Skip to main content

angular-expanders-runtime


4.2.0 (2026-10-14)​

Changed​

  • Separated styling from @nsx/ngx-ns-core:
    • the palettes, mixins and variables are now in their own @nsx/ngx-ns-core/abstracts, so components that need these compile much faster.
    • the rich text editor styles are now in their own @nsx/ngx-ns-core/rich-text. Before, every stylesheet that used the library scss got its own copy of these styles.

4.1.1 (2026-10-13)​

Fixed​

  • nsc-table-row-action-menu-item now shows as disabled immediately when disabled is set from code, for example by an authorization directive. Before, the item only looked disabled after hovering over it.

4.1.0 (2026-10-06)​

Added​

  • Data cells of nsc-table have the nsc-table__cell class. ns-core.table-theme keeps their content on a single line, so all rows have the same height. Content that does not fit is cut off with an ellipsis.
  • Added nscAutofocus directive, which focuses its host (or the first focusable element inside it, such as the input of a form fieldFieldA property of a DataElement expanded to a database column and user interface input element.) once it is rendered, and again whenever its bound value becomes true. Its focus() method focuses it on demand.
  • Added nscTooltipOnlyWhenTruncated to nscTooltip, which only shows the tooltip when the text of the host element is cut off.
  • Added nscTooltipPosition to nscTooltip to choose the preferred side of the host element (above, below, left or right, default above).
  • Added selectedIndex to nsc-tab-group to activate a tab programmatically. selectedIndexChange emits the index of the tab the user activates, and [(selectedIndex)] supports two-way binding.

Changed​

  • The tooltips of compacted items in nsc-sidebar-menu are now shown to the right of the item instead of above it.
  • WarningMissingTranslationHandler warnings about missing keys now include whether translations were still loading or not.

Fixed​

  • Long option labels in nsc-select and nsc-multi-select no longer wrap. They are cut off with an ellipsis, and the full label is shown in a tooltip on hover.
  • The clear button of nsc-filter-input no longer changes the width of the fieldFieldA property of a DataElement expanded to a database column and user interface input element. when it appears.
  • Long file names in nsc-table-file-column are cut off with an ellipsis instead of pushing the download button out of the cell.
  • Scrolling the options of nsc-select and nsc-multi-select no longer keeps firing scroll events after scrolling stops.

4.0.0 (2026-09-28)​

Added​

  • Added nsc-big-string-details and nsc-big-string-details-title to show long strings in details.
  • Added support for grouping nsc-sidebar-menu items vertically under a title. A new MenuGroup type can be used alongside MenuItems.
  • Added support for opening menu items in new tabs by using the new openInNewTab property of MenuItem.
  • Added css variables to override styling which can be customized by defining --nsc-custom-...
    • --nsc-table-background-color
    • --nsc-table-header-background-color
    • --nsc-tab-background-color
    • --nsc-tab-background-color-hover
    • --nsc-tab-background-color-active
    • --nsc-tab-border-width
    • --nsc-tab-border-color
    • --nsc-tab-border-radius
    • --nsc-tab-gap-between
    • --nsc-tab-margin-bottom
    • --nsc-tab-indicator-display
    • --nsc-sidebar-menu-navigation-group-title-color
    • --nsc-sidebar-menu-navigation-group-title-padding-top
    • --nsc-sidebar-menu-navigation-group-divider-color
    • --nsc-button--no-background-background-color
    • --nsc-dialog-actions-background
    • --nsc-dialog-actions-border-width
    • --nsc-dialog-actions-border-color
    • --nsc-dialog-border-width
    • --nsc-dialog-border-color
  • Add icon config to change several icons in list table page.
    • Row-inspect, default: visibility
    • Row-action-menu, default: more_vert
    • file, default: download_file
  • Documentation: every component page now lists its usage, inputs, outputs and --nsc-* styling variables, and has a playground to try the component.
    • New pages: alert, badge, tooltip, tabs, column-settings, details, number-fieldFieldA property of a DataElement expanded to a database column and user interface input element., file-input, rich-text-editor, fieldFieldA property of a DataElement expanded to a database column and user interface input element.-errors and dashboard-box.
    • The table, filter, select, text-fieldFieldA property of a DataElement expanded to a database column and user interface input element., multi-select and text-area-fieldFieldA property of a DataElement expanded to a database column and user interface input element. pages are no longer empty.

Changed​

  • The translation loader now allows multiple translations to be loaded in by setting the language to a comma separated list of languages. The list prioritizes the leftmost language so this._translateService.use('custom,gen'); will first fetch gen.json5 and then overwrite/append translations in custom.json5.
  • Breaking Change: Update styling of Table component:
    • Added wrapper div to provide background colors
    • Added a default border between rows
    • The header row's height is now also determined by the chosen RowHeight setting.
  • Breaking Change: Update styling of Tabs component:
    • Made tabs look like buttons
    • Removed letter spacing
    • Added a border around tab content
  • Breaking Change: Update styling of Dialog component:
    • Made title align vertically with close button
    • Backdrop now blurs instead of darkening
    • Dialog actions no longer take vertical space when there are no actions defined
    • Added a background color to dialog actions
    • Dialog actions are right-aligned by default now, instead of left.
  • Breaking Change: Update styling of Button component:
    • Removed bottom shadow from style buttons (info, warning, ...)
  • Breaking Change: Made info-palette an alias for the accent-palette, reflected in info-alerts and info-buttons
  • Updated dependencies:
    • uuid: ^13.0.0 -> ^14.0.0
    • ngx-skeleton-loader: ^12.0.0 -> ^13.0.0
    • @eslint/js: ^9.39.2 -> ^10.0.0
    • eslint: ^9.39.2 -> ^10.0.0
    • jasmine-core: ~6.0.1 -> ~6.3.0
    • karma-jasmine-html-reporter: ~2.2.0 -> ~2.3.0
  • Migrated the ESLint configuration to the flat config format (eslint.config.mjs), as ESLint 10 no longer supports .eslintrc.json.
    • Added angular-eslint, typescript-eslint, eslint-plugin-prettier and eslint-config-prettier.
    • Removed @eslint/eslintrc, @angular-eslint/builder, @angular-eslint/eslint-plugin, @angular-eslint/eslint-plugin-template, @angular-eslint/schematics, @angular-eslint/template-parser, @typescript-eslint/eslint-plugin and @typescript-eslint/parser. These are now provided by angular-eslint and typescript-eslint.
    • Resolved all lint errors reported by the new configuration.
  • Breaking Change: Replaced constructor parameter injection with the inject() function. Classes that extend or manually instantiate the following classes must no longer pass constructor arguments:
    • BreadcrumbsIconService, PaginatorTranslationService
    • BreadcrumbsComponent, FilterComponent
    • DialogTitleDirective, ExpansionPanelTitleDirective, FilterFormDirective, FocusFormFieldDirective, FormFieldHostControlDirective, FormFieldLabelDirective, FormGroupHostControlDirective, SelectNoSelectableOptionsDirective, SelectNoneOptionDirective, SelectOptionDirective, SelectValueDirective

Fixed​

  • Clickable elements of nsc-sidebar-menu (navigation items, breadcrumbs, header, return header and collapse toggle) and nsc-link-details can now be focused with the keyboard and activated with Enter.
  • Fixed nsc-sidebar-menu navigation item icons getting cut off when a long title is truncated with an ellipsis. The icon no longer shrinks to make room for the title text.
  • When updating the select component's fallback option, the select component now always show it.
  • Documentation: the docs app now includes the details, column-settings, tooltip and charts theme mixins, so these components render as in the demo app (e.g. nsc-big-string-details clamps to 3 lines).
  • Documentation: corrected wrong examples, such as the icon config providers of the button and sidebar menu, provideNscDateFormats() and the yes-no toggle translation keys.

Removed​

  • Breaking Change: Removed the table row height icon config. It is now part of the table icon config.

3.0.1 (2026-08-20)​

Fixed​

  • Docs no longer fail at runtime because of the missing translation handler provider not working properly.

3.0.0 (2026-08-18)​

Changed​

  • Updated to angular 22. See also the migration guide
    • Version updates:
      • @angular/cdk: 21.1.2 -> 22.1.0
      • @angular/common: 21.1.2 -> 22.1.1
      • @angular/compiler: 21.1.2 -> 22.1.1
      • @angular/core: 21.1.2 -> 22.1.1
      • @angular/forms: 21.1.2 -> 22.1.1
      • @angular/material: 21.1.2 -> 22.1.0
      • @angular/material-date-fns-adapter: 21.1.2 -> 22.1.0
      • @angular/platform-browser: 21.1.2 -> 22.1.1
      • @angular/platform-browser-dynamic: 21.1.2 -> 22.1.1
      • @angular/router: 21.1.2 -> 22.1.1
      • @ng-doc/app: 21.0.0 -> 21.1.0
      • @ng-doc/builder: 21.0.0 -> 21.1.0
      • @ng-doc/core: 21.0.0 -> 21.1.0
      • @ng-doc/ui-kit: 21.0.0 -> 21.1.0
      • @ng-matero/extensions: 21.1.3 -> 22.0.0
      • @ng-matero/extensions-date-fns-adapter: 21.0.0 -> 22.0.0
      • @ngx-translate/core: 17.0.0 -> 18.0.0
      • @ngx-translate/http-loader: 17.0.0 -> 18.0.0
      • @angular/build: 21.1.2 -> 22.1.3
      • @angular-eslint/builder: 21.2.0 -> 22.0.0
      • @angular-eslint/eslint-plugin: 21.2.0 -> 22.0.0
      • @angular-eslint/eslint-plugin-template: 21.2.0 -> 22.0.0
      • @angular-eslint/schematics: 21.2.0 -> 22.0.0
      • @angular-eslint/template-parser: 21.2.0 -> 22.0.0
      • @angular/cli: 21.1.2 -> 22.1.3
      • @angular/compiler-cli: 21.1.2 -> 22.1.1
      • @typescript-eslint/eslint-plugin: 8.54.0 -> 8.65.0
      • @typescript-eslint/parser: 8.54.0 -> 8.65.0
      • ng-packagr: 21.1.0 -> 22.1.0
      • typescript: 5.9.3 -> 6.0.0
  • Compiler options no longer allow a baseUrl, this has been removed and all paths now start with ./
  • MatSortHeader was changed, so the SortHeaderComponent that extends it was also changed

2.6.3 (2026-08-10)​

Fixed​

  • Clicking multiple columns in multi sort did not always sort correctly

2.6.2 (2026-07-31)​

Fixed​

  • Icons in nsc-text-fieldsFieldA property of a DataElement expanded to a database column and user interface input element. no longer overlap with an error icon if the fieldFieldA property of a DataElement expanded to a database column and user interface input element. is invalid.

2.6.1 (2026-07-30)​

Added​

  • Added extra documentation regarding running the demo applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. and deploying a snapshot on a separate applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution..

Fixed​

  • Fixed nsc-file-input fieldsFieldA property of a DataElement expanded to a database column and user interface input element. still allowing files to be uploaded/removed when disabled.
  • Fixed aria warning coming from badge in sidebar.
  • Fixed NG0956 warning in nsc-breadcrumbs caused by tracking breadcrumbs by object identity; now tracks by index.

2.6.0 (2026-06-22)​

Added​

  • Added passwordInput input to nsc-text-field component to enable masking form fieldFieldA property of a DataElement expanded to a database column and user interface input element. value.

2.5.0 (2026-05-19)​

Added​

  • Added a inspectingMultipleRowsEnabled input fieldFieldA property of a DataElement expanded to a database column and user interface input element. on nsc-table to allow multiple inspect panels to be open at the same time. False by default (only allows 1 open panel at the same time).

Fixed​

  • nsc-yes-no-toggle now always displays a star in its label when its form control is required. It did not work when Validator.required was passed in a list of validators.

2.4.0 (2026-04-22)​

Added​

  • Added DEFAULT_DATE_PROVIDER injection token to provide the default date to be used for nsc-date-time-picker.
  • Added a clear field icon-button to text-fieldFieldA property of a DataElement expanded to a database column and user interface input element. component, similar to the clear-button on nsc-select. Hidden by default. Can be activated with [hideClearButtons]="false" on the nsc-text-fieldFieldA property of a DataElement expanded to a database column and user interface input element. component.

Fixed​

  • Fixed table selection not persisting through a table refresh, when the underlying data didn't change.
    • Data in selection will be compared by the idField input when provided.

2.3.1 (2026-04-01)​

Removed​

  • Removed peer-dependency on @angular/animations:21.1.4, this is being deprecated.

2.3.0 (2026-03-17)​

Changed​

  • Removed (click) propagation when clicking on a button in a table column component.
    • <nsc-table-row-inspect>
    • <nsc-table-file-column>
  • Increased click surface of <nsc-file-input> component to the whole component instead of only the inner input.
  • Improved behavior of <nsc-file-input> component when an error happens during upload. An error callback has been added to the upload subscribe, this will reset the formControl if no FileInputError is caught. When a FileInputError error model is caught, it will add errors underneath the component.
  • Added an "error" fileInputUploadInProgress during upload, this will prevent forms to be submitted while an upload is still in progress. With the help of a custom UploadStateMatcher the error is not shown as an error, but with a yellow outline instead.
  • Refactored button HTML setup into templates for better readability.

Fixed​

  • Fixed triggering of validations when using button or dropzone to choose a file for <nsc-file-input> component.
  • Fixed <nsc-file-input> component can now try a file upload of the same file again.
  • Added aria-hidden with tabindex=-1 to:
    • home button of breadcrumb component
    • hidden input of yes-no-toggle component
  • Added aria-label attribute to:
    • file-input icon buttons
    • asset download buttons in table
  • Remove aria-sort attribute from table sort headers when it is set to "none".

2.2.2 (2026-02-25)​

Fixed​

  • Fixed flickering navigation buttons of <nsc-entry-paginator> when loading page.
  • Added the aria-sort attribute back to the correct <th> element instead of a <div>. This was unintentionally moved for the column resize feature in trying to make the order not change when pressing the column resizer. This has been implemented differently now.

    WCAG: Elements must only use supported ARIA attributes

  • Wrapped home icon for breadcrumbs in an <a> element with an aria-label attribute.

    WCAG: ARIA hidden element must not be focusable or contain focusable elements

  • Added aria-label attribute to icon only buttons.
    • <nsc-column-settings>
    • <nsc-table-row-height>
    • <nsc-(multi-)select> clear buttons
    • <nsc-entry-paginator>
    • <nsc-sidebar-menu-breadcrumb-menu>

    WCAG: Buttons must have discernible text

  • Added aria-label attribute to <mat-checkbox> components that have no label.

    WCAG: Form elements must have labels


2.2.1 (2026-02-12)​

Changed​

  • Any select component using the NscArrayDataSource as data will now filter as case-insensitive by default.
    • Added optional input to the NscArrayDataSource -> NscArrayDataSourceOptions. This type contains the optional fieldFieldA property of a DataElement expanded to a database column and user interface input element. filterCaseSensitive to control this behavior.
    • By default filterCaseSensitive is false.

2.2.0 (2026-02-04)​

Added​

  • Added new interface NscFilterOptionsSource.

Changed​

  • Updated dependencies:
    • @angular/*: ^21.1.2
    • @nsx/ns-charts: ^1.4.2 -> ^1.5.0
    • ngx-skeleton-loader: ~11.3.0 -> ~12.0.0
    • @eslint/js: ^10.0.0 -> ^9.39.2
    • @types/jasmine: ~5.1.8 -> ~6.0.0
    • @typescript-eslint/eslint-plugin: ^8.52.0 -> ^8.54.0
    • @typescript-eslint/parser: ^8.52.0 -> ^8.54.0
    • jasmine-core: ~5.13.0 -> ~6.0.1
    • karma-jasmine-html-reporter: ~2.1.0 -> ~2.2.0
    • ng-packagr: ^21.0.1 -> ^21.1.0
    • prettier: ^3.7.4 -> ^3.8.1

Deleted​

  • Removed vulnerable dependencies:
    • eslint-config-prettier: ^10.1.8
    • eslint-plugin-prettier: ^5.5.4"

2.1.1 (2026-01-30)​

Fixed​

  • Fixed undefined issue with BreadcrumbsRouteService breadcrumb function.

2.1.0 (2026-01-26)​

Changed​

  • Made BreadcrumbsRouteService able to take functions as breadcrumb data, this allows to use resolved data in the breadcrumbs.

2.0.0 (2026-01-16)​

Added​

  • Added PaginatedList model.
  • Added LOGGER InjectionToken that defaults instantiates a ConsoleLogger.
  • Added cache busting to the Json5HttpTranslateLoader.
  • Added styling to the nsc-rich-text-editor so that the editable text more closely represents the output rendered by a browser.
  • Added <nsc-filter-input> component, this component is a simple <mat-form-field> that, when a value is entered, will emit that value after a certain debounce time. A label can also be given to this component if required.
  • Added [nscBadge] directive. It takes a value and color input and will show a chip above the component where this directive is added.

Changed​

  • Transformed blob-error-interceptor.ts to blob-error-handler.ts, that wraps a catchError pipe operator.
  • Made objectIdentifier optional in event.model.ts.
  • Made <nsc-filter> component work with expanded new filtering structure. Relaxed the type restrictions.
  • Breaking Change: Made objectIdentifier optional in event.model.ts. This can result in type errors.
  • Changed the tag of formatted block from <p> to <div> in the nsc-rich-text-editor.
  • Upgraded to angular 21 together with a rejuvenationRejuvenationThe core process of harvesting custom code from designated anchors and ext directories, updating model configurations, and re-expanding code artifacts to continuously evolve software without losing custom implementations. of all other relevant dependencies.
  • Updated ngx-translate to version 17.
  • Make sidebar dynamic by updating all inputs/outputs to signals.
  • Skip opening sidebar breadcrumb menu if it only contains 1 item.
  • Changed the type FilterOptions to filter out any key that equals _type. This relates to the new filter functionality introduced in angular-expanders 7.0.0.
  • Changed component <nsc-nav-tab-group> way it will handle queryParams from merge to replace. For more information: QueryParamsHandling.
  • Changed scss of component <nsc-nav-tab-group> with the intent of improving reactivity.

Fixed​

  • Fixed double call of sortChange event.

1.15.1 (2026-01-22)​

Fixed​

  • None option and the loading indicator do not increase dropdown height for <nsc-(multi-)select> components.

1.15.0 (2025-12-11)​

Added​

  • Added hideClearButton attribute to <nsc-(multi-)select> component. There is also a `` CSS variable to make to indicative arrow disappear.
  • Added decimalSeparators attribute to <nsc-number-field> component. This option allows to give a string of characters that will be interpreted as valid inputs for the decimal separator, e.g '.,;'.

Fixed​

  • Only using async pipe on datasource.$loading once in table component to improve performance.

1.14.0 (2025-11-20)​

Added​

  • Translation for action buttons in nsc-date-time-picker.
  • Added visibleOptionsSize input to <nsc-(multi-)select> component.

Changed​

  • Show only loading indicator in <nsc-(multi-)select> viewport if infinite datasource is loading first page.

Fixed​

  • Not detecting <nsc-(multi-)select> viewport size, causing the buffer to be smaller than the viewport size.
  • <nsc-(multi-)select> viewport shows only first page of infinite datasource if defaultPageSize is smaller than visible options size. Automatically load next page until there is enough buffer.

1.13.0 (2025-11-05)​

Added​

  • Add table column width service for setting width from anywhere, instead of only within the resize directive.
  • Add nscTableColumnResizable directive to nsc-bulk-select-column.

Changed​

  • Move "setting column width" logic into public method of nscTableColumnResizable.
  • Removed validator for minFractionDigits option. Show trailing zeros instead.

1.12.1 (2025-09-29)​

Fixed​

  • Allow undefined as type of selectedRowId in nsc-table component.
  • Links are now editable in nsc-rich-text component.
  • Exported rich text now displays enters correctly.

1.12.0 (2025-09-02)​

Added​

  • Add hideNumberIndicatorSymbol input to nsc-number-field to enable hiding number symbol.
  • Add *nscDialogTitle dialog directive for supplying dialog titles via templates.
  • Added [minDate] and [maxDate] input properties to datepicker components.
  • Added (yearSelected) and (monthSelected) output events to datepicker components.
  • Add FormFieldLabelDirective to enable adding any content as form fieldFieldA property of a DataElement expanded to a database column and user interface input element. label.

Changed​

  • Form fieldFieldA property of a DataElement expanded to a database column and user interface input element. input label is not required anymore.
  • Update form fieldsFieldA property of a DataElement expanded to a database column and user interface input element. to use signals: FileInput, RichTextEditor, TextAreaInput.
  • Migrate deprecated NgIf/NgFor/NgSwitch usage to control flow.

Fixed​

  • Stop flickering of tooltip when tooltip-panel is displayed over tooltip-trigger element.
  • TooltipDirective now has text as default type when not provided.

1.11.1 (2025-08-13)​

Fixed​

  • Stop <nsc-filter> component from interfering with nsc-(multi-)select> scrolling behavior.

1.11.0 (2025-08-13)​

Added​

  • Added nscTabLabelContent to enable custom tab label content.
  • Added explicit margin: 0 and padding: 0 inline styles to headers and paragraphs for <nsc-rich-text-editor> component. This allows for correct rendering when used in emails.

Changed​

  • Changed name of <nsc-date-range-picker> component default errors for consistency.
  • Changed name of <nsc-number-field> component default errors for consistency.
  • Refactored <nsc-table> component. Switched to signal inputs and outputs for easier datasource changes. Also switched to more variables being protected or private.
  • Input label is no longer required for tabs and nav-tabs.

Fixed​

  • <nsc-number-details> component could not show the value 0, this has been fixed by allowing null and undefined as valid input of the nscNumber directive that returns empty string.

1.10.0 (2025-07-29)​

Added​

  • Added tracking to nsc-table when the [idField] is defined.
  • Added support for injecting table row inspect panel using <ng-template nscTableRowInspectPanel let-row>.
  • Added optional viewContainerRef variable to dialog.service open method. This allows for passing on the injectionContext of the calling component.
  • Added alignHeader input variable to table-column.component.
  • Added strict input to YesNoToggleComponent.
  • Added (selectChange) output event to SelectComponent and MultiSelectComponent

Changed​

  • Use signal inputs in YesNoToggleComponent.
  • Inspect panel will now stay open when the data is updated but the row id did not change.
  • Refactored nsc-(multi-)select component to use signals.

Fixed​

  • Allow minus sign when formatting was disabled in NscNumberDirective. Now you can start with a minus sign.
  • Table header cell needs position: relative to display column resizer properly.

1.9.0 (2025-07-08)​

Added​

  • Added get previousUrl(): string | undefined method to PreviousRouteService.

1.8.2 (2025-07-01)​

Fixed​

  • blobErrorInterceptor error type checking.
  • Only initialize row inspect panels that the user opens, and destroy it when the user closes it.

1.8.1 (2025-06-24)​

Fixed​

  • Fixed FormGroup not being found when using nsc-date-range-picker with a formGroupName.

1.8.0 (2025-06-23)​

Added​

  • Added <nsc-entry-paginator> component and NscEntryPaginatorDataSource<D> interface defining the logic needed by the component. This component can be used to navigate between previous and next entries.
  • Added suffix attribute to nsc-number-field and nsc-text-field.

Changed​

  • Made nscDate pipe also accept undefined and null.
  • RejuvenationsRejuvenationThe core process of harvesting custom code from designated anchors and ext directories, updating model configurations, and re-expanding code artifacts to continuously evolve software without losing custom implementations.:
    • @angular/*: ^19.2.9 -> ^19.2.14
    • @angular/cdk: ^19.2.14 -> ^19.2.18
    • @angular/material*: ^19.2.14 -> ^19.2.18
    • @ng-matero/extensions: ^19.3.3 -> ^19.4.1
    • @angular/build: ^19.2.10 -> ^19.2.15
    • @angular/cli: ^19.2.10 -> ^19.2.15
    • @angular-eslint/*: ^19.3.0 -> ^19.8.1
    • @types/jasmine: ~5.1.7 -> ~5.1.8
    • eslint/js: ^9.26.0 -> ^10.0.0
    • eslint: ^9.26.0 -> ^9.29.0
    • @typescript-eslint/*: ^8.32.0 -> ^8.34.1
    • eslint-config-prettier: ^10.1.2 -> ^10.1.5
    • eslint-plugin-prettier: ^5.4.0 -> ^5.5.0
    • jasmine-core: ~5.7.1 -> ~5.8.0
    • prettier: ^3.5.3 -> ^3.6.0
    • prettier-eslint: ^16.4.1 -> ^16.4.2
    • zone.js: ~0.15.0 -> ~0.15.1

Fixed​

  • Fixed <nsc-date-range-picker> component value change and validation propagation
  • Chart components will now render the correct data when updating the dataSource after the chart has been rendered
  • Added dialogActionsAlignment input property to DialogComponent.
  • Switched ngx-skeleton-loader version to stable one: ^11.0.0 -> ~11.1.0
  • Fixed faulty error border showing for nsc-number-field and nsc-yes-no-toggle when an initial value is given.
  • Fixed nsc-filter dropdown not positioning correct when there is not enough screen real estate.

1.7.1 (2025-06-17)​

Fixed​

  • Fixed search not always autofocussing in nsc-(multi-)select when opened.

1.7.0 (2025-06-05)​

Added​

  • Added selectedRowId model and idField input for table component.
  • Added css variable to override styling: --nsc-table-row-selected-background-color

Changed​

  • Refactored <nsc-(multi-)select> and NscSelectDataSource. This update will allow dynamic updates to select fieldsFieldA property of a DataElement expanded to a database column and user interface input element.. Useful (for example) when the available options depend on another fieldFieldA property of a DataElement expanded to a database column and user interface input element. in the form.
    • Relaxes interface constraint on the nsc-select component (removes the InfiniteDataSource requirement, makes it optional instead).
    • Re-implements the private SelectArrayDataSource as exported NscArrayDataSource.
    • New implementation allows either Reference[] or Observable<Reference[]> as inputs.

Fixed​

  • Ignore NaN values when transforming badgeCount input parameter in NavTabDirective.
  • Fixed table row index being undefined because of multiTemplateDataRows directive.
  • Root-level menu-items without children will now close the sidebar on navigation for mobile viewports.

1.6.0 (2025-05-28)​

Added​

  • Added previous-route.service.ts.
  • Highlight selected rows in TableComponent.
  • Added TableRowInspectPanel
  • Added css variables to override styling:
    • --nsc-table-row-border-width
    • --nsc-table-row-inspect-panel-background-color

Changed​

  • Removed the setInitialValue function from NscNumberDirective. Value changes are now detected and handled if the number input changes. Allowed value typesValue Type (ValueType). A specifier defining how data in a Field is rendered in the UI, stored in the database, and validated in business logic. are number, undefined, and null. All other types will result in NaN value.
  • Improved column widths implementation and added set saved column widths on load.
  • Click directives now don't call event.stopPropagation().

Fixed​

  • Setting number fieldFieldA property of a DataElement expanded to a database column and user interface input element. value
  • Number fieldFieldA property of a DataElement expanded to a database column and user interface input element. dirty status

1.5.1 (2025-05-15)​

Fixed​

  • Removed console.log() statements left behind.

1.5.0 (2025-05-07)​

Added​

  • Emit expanded status of nsc-expansion-panel.
  • Added badgeCount option to <nsc-tab> and <nsc-nav-tab> components.
  • Added DataAccessValidator class with a formFieldErrors({ errors }: { errors: string[] }) validator, that can be used to retain back-end errors.

Changed​

  • Breaking change Replaced valueAxis property with valueAxes property in LineChartConfig and BarChartConfig, which accepts an array of ValueAxisLayout configurations instead of a single configuration.
  • Add explicit typing to open method of dialog service to avoid returning any-type.
  • Made warning-missing-translation-handler use Logger.
  • Refactored <nsc-column-settings> component to not be dependent on the <nsc-column> directive.
  • Reworked loading indicator of the table component.
  • RejuvenationsRejuvenationThe core process of harvesting custom code from designated anchors and ext directories, updating model configurations, and re-expanding code artifacts to continuously evolve software without losing custom implementations.:
    • @angular/*: ^19.2.3 -> ^19.2.9
    • @angular/cdk: ^19.2.4 -> ^19.2.14
    • @angular/material*: ^19.2.4 -> ^19.2.14
    • @ng-matero/extensions: 19.2.1 -> ^19.3.3
    • @angular/cli: ^19.2.4 -> ^19.2.10
    • @ng-doc/*: 19.1.0 -> 19.2.0
    • @nsx/ns-charts: ^1.2.0 -> ^1.3.0
    • ngx-skeleton-loader: ^10.0.0 -> ^11.0.0
    • @angular-eslint/*: ^19.2.1 -> ^19.3.0
    • @types/jasmine: ~5.1.7 -> ~5.1.8
    • eslint: ^9.22.0 -> ^9.26.0
    • @typescript-eslint/*: ^8.26.1 -> ^8.32.0
    • eslint-config-prettier: ^10.1.1 -> ^10.1.2
    • eslint-plugin-prettier: ^5.2.3 -> ^5.4.0
    • jasmine-core: ~5.6.0 -> ~5.7.1
    • ng-packagr: ^19.2.0 -> ^19.2.2
    • prettier: ^3.3.3 -> ^3.5.3
    • prettier-eslint: ^16.3.0 -> ^16.4.1
    • typescript: ~5.8.2 -> ~5.8.3
    • @eslint/eslintrc: ^3.3.0 -> ^3.3.1
    • @eslint/js: ^9.22.0 -> ^9.26.0

Fixed​

  • Fixed missing styling for core angular material components.
  • Fix styling for column-resizer of column with resizing disabled.
  • Do not show nsx.table.no_data_row when table datasource is still loading.
  • Fixed <nsc-rich-text-editor> component not showing initial value.
  • Fixed styling issues of <nsc-markup-details> component.
  • Fixed <nsc-(multi-)-select> component not opening when no values are present.
  • Fixed runtime error when resizing columns due to bulk-select column not having a columnId attribute.

1.4.0 (2025-03-24)​

Added​

  • Added nscTooltip directive:
    • Added hover mode to nscTooltip directive.
    • Added content type to nscTooltip directive. Supported types:
      • html
      • text
  • Added detail components:
    • <nsc-boolean-details>
    • <nsc-date-details>
    • <nsc-link-details>
    • <nsc-markup-details>
    • <nsc-number-details>
    • <nsc-time-stamp-details>
  • Added --nsc-details-color and --nsc-details-color-contrast CSS variables to change the colors of icons, links, and chips.
  • Added button component:
    • button[nsc-button]
  • Added support for click event in charts with examples in demo and doc.
  • Added css variables to override styling:
    • --nsc-table-row-border-color
    • --nsc-table-row-border-radius
    • --nsc-table-row-hover-background-color
    • --nsc-button-font-weight
  • Add TableRowInspect component.
  • Added table column resizing, which can be disabled per column by setting resizingDisabled.
  • Added dialog component and service.
  • Added confirmation dialog component.
  • Added NscFormBuilder with support for resizing ArrayForms.
  • Added NscFormArray directive to help with rendering ArrayForms.
  • Added ExpansionPanelComponent component.

Changed​

  • Redesigned DetailsDemoComponent and <nsc-file-details>.
  • Redesigned sidebar-menu:
    • Made sidebar standalone.
    • Made sidebar responsive.
    • Updated sidebar styling.
  • Use nsc-button for all buttons in demo applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution..
  • Disabled zoom of dashboard boxes by default.
  • Changed peerDependency setup to allow yarn package manager.
  • Replaced min-width with --nsc-form-field--min-width css variable for all form fieldFieldA property of a DataElement expanded to a database column and user interface input element. components.
  • Updated to Angular 19. See update guide.
  • Breaking change: Changed filtering of nsc-(multi-)select. Removed the searchKey input attribute, instead filtering is now based on the filter({ filterValue }: { filterValue: string | null }): void method provided by the NscSelectFilter interface.
  • RejuvenationsRejuvenationThe core process of harvesting custom code from designated anchors and ext directories, updating model configurations, and re-expanding code artifacts to continuously evolve software without losing custom implementations.:
    • @angular/*: ^18.2.11 -> ^19.2.3
    • @angular/cdk: ^18.2.12 -> ^19.2.4
    • @angular/material*: ^18.2.12 -> ^19.2.4
    • @ng-matero/extensions: 18.2.4 -> ^19.2.1
    • @ng-matero/extensions-date-fns-adapter: 18.0.0 -> ^19.1.0
    • @angular/cli: ^18.2.11 -> ^19.2.4
    • @ng-doc/*: 18.3.0 -> 19.1.0
    • @ngx-translate/core: ^16.0.3 -> ^16.0.4
    • @ngx-translate/http-loader: ^16.0.0 -> ^16.0.1
    • @nsx/ns-charts: ^1.1.2 -> ^1.2.0
    • ngx-skeleton-loader: ^9.0.0 -> ^10.0.0
    • quill: ^2.0.2 -> ^2.0.3
    • rxjs: ~7.8.1 -> ~7.8.2
    • tslib: ^2.8.0 -> ^2.8.1
    • uuid: 11.0.3 -> ^11.1.0
    • zone.js: ~0.14.10 -> ~0.15.0
    • @angular-eslint/*: ^18.4.0 -> ^19.2.1
    • @types/jasmine: ~5.1.4 -> ~5.1.7
    • eslint: ^9.14.0 -> ^9.22.0
    • @typescript-eslint/*: ^8.13.0 -> ^8.26.1
    • eslint-config-prettier: ^9.1.0 -> ^10.1.1
    • eslint-plugin-prettier: ^5.2.1 -> ^5.2.3
    • jasmine-core: ~5.4.0 -> ~5.6.0
    • ng-packagr: ^18.2.1 -> ^19.2.0
    • prettier: ^3.3.3 -> ^3.5.3
    • typescript: ~5.5.4 -> ~5.8.2

Removed​

  • Removed dialog type variable.
  • Removed segment parameter services: SegmentParameterClearer, SegmentParameterSerializer and SegmentParameterDeserializer. They were moved to the angular-expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact..

Fixed​

  • Viewport service considers all screen widths from a certain point as mobile, without a gap.
  • Fixed table and mobile sidebar toggle button in demo.
  • Ignore query parameters when calculating the active tab in NavTabGroupComponent.
  • Text shown in select and multi-selects cuts off before remove icon instead of intersecting with it.
  • Fixed --nsc-sidebar-menu-custom-navigation-item-color not changing the color of the navigation item icon.

1.3.4 (2025-03-21)​

Fixed​

  • Changed order of --nsc-sidebar-menu-navigation-title-color and --nsc-sidebar-menu-custom-navigation-title-color in sidebar-menu-navigation.component.scss to allow the custom value to override the default.
  • Fixed matNoDataRow message not showing up in table when no results are present.

1.3.3 (2025-03-13)​

Fixed​

  • Added [replaceUrl]="true" to nav-tab-group-component.html. This fixes the issue that every load of a child-route pushes a new history entry for the browser.

1.3.2 (2025-02-25)​

Fixed​

  • Added replaceUrl: true to segment-parameters-url-saver.service.ts. This fixes the issue that every change in segment parameters pushes a new history entry for the browser.

1.3.1 (2025-01-20)​

Fixed​

  • The loading spinner in <nsc-select> caused an overflow in the dropdown menu, which caused the user to see multiple scrollbars in some browsers.
  • The segment-parameters-deserializer incorrectly deserialized strings starting with a number to a number. The parseFloat implementation has been swapped with Number.

1.3.0 (2025-01-09)​

Added​

  • Added ProgressCharts:
    • Runtime angular component
    • Demo and doc
  • Added documentation for console-logger.service, log-level.ts and logger.model.ts.
  • Added code examples in documentation for chart components.

Fixed​

  • Increased the RichTextEditorComponent focus on click surface.

1.2.0 (2024-12-12)​

Added​

  • Added new project ngx-ns-charts:
    • Added chart and dashboard components:
      • BarChartComponent
      • LineChartComponent
      • RadialChartComponent
      • IconBox
      • ValueBox
      • DashboardBox
    • Added dashboard-icon-config to configure icon set used in dashboard components.
    • Added graph-source.model.ts for feeding charts data.
    • Added very simple mappers to convert types from ns-charts to ngx-ns-charts.
    • Added documentation for yes-no-toggle component.
    • Added documentation for paginator component.

Changed​

  • The ns-core-demo and ns-core-doc projects were changed to demo and doc since they demo and doc both ngx-ns-core and ngx-ns-charts now.

Fixed​

  • <nsc-select> and <nsc-multi-select> component did not set filter to null when empty string value was given, resulting in unwanted effects. This has been resolved.
  • FormControl value changes were not reflected in the RichTextEditorComponent.

1.1.1 (2024-12-05)​

Changed​

  • Changed routing path for SegmentParametersUrlSaver.

1.1.0 (2024-12-03)​

Added​

  • Added <nsc-tab-group> component which provides a wrapper for the <mat-tab-group> component. Tabs can be given as content using the <nsc-tab> component. The tab component takes a label and a disabled attribute as input. Using the --nsc-custom-active-tab-label-color css variable you can change the color of an active label, otherwise the theme color is being used.
  • Added <nsc-nav-tab-group> component which provides a wrapper for the <mat-tab-nav-bar> component. Tabs can be given as content using the <nsc-nav-tab> directive. This component can be used to route to children routes.
  • Added helper classes to save segment parameters to the url:
    • SegmentParametersClearer: Makes existing entries null, that they don't persist forever.
    • SegmentParametersSerializer: Converts SegmentParameters to a format that is compatible with the url.
    • SegmentParametersDeserializer: Converts url parameters back to SegmentParameters.
    • SegmentParametersUrlSaver: Service that adds queue capabilities to angular url parameter saving.

Changed​

  • Breadcrumbs routing now preserve query parameters.
  • Breadcrumbs now changes route parameters everywhere (e.g. :id).

1.0.0 (2024-11-07)​

Added​

  • Added possibility to change visualization of filter chips. A filter-options.model.ts type can be used to define if a filter is displayed as static or hidden. The optional @Input attribute filterOptions has been added to the <nsc-filter> component

Changed​

  • RejuvenationsRejuvenationThe core process of harvesting custom code from designated anchors and ext directories, updating model configurations, and re-expanding code artifacts to continuously evolve software without losing custom implementations.:
    • @angular/*: ^18.2.9 -> ^18.2.11
    • @angular/cdk: ^18.2.10 -> ^18.2.12
    • @angular/material*: ^18.2.10 -> ^18.2.12
    • @ng-matero/extensions: 18.2.3 -> 18.2.4
    • @angular-devkit/*: ^18.2.10 -> ^18.2.11
    • @angular/cli: ^18.2.10 -> ^18.2.11
    • @angular/compiler-cli: ^18.2.9 -> ^18.2.11
    • @ng-doc/*: ^17.6.16 -> ^18.3.0
    • @ngx-translate/core: ^15.0.0 -> ^16.0.3
    • @ngx-translate/http-loader: ^8.0.0 -> ^16.0.0
    • eslint: ^9.13.0 -> ^9.14.0
    • @typescript-eslint/*: ^8.12.2 -> ^8.13.0
  • NgDoc upgrade.
  • NgxTranslate upgrade.

Fixed​

  • Boolean values are correctly translated in the filter.component.ts.

0.7.0 (2024-10-30)​

Added​

  • Added disableConcurrentBuilds for jenkins.
  • Added event.model.ts interface.
  • Added page.model.ts to represent pagination.

Changed​

  • Breaking change: Changed location for filter.model.ts from @nsx/ngx-ns-core/filter to @nsx/ngx-ns-core.
  • Breaking change: Changed location for sorting.model.ts from @nsx/ngx-ns-core/table to @nsx/ngx-ns-core.
  • Breaking change: Changed paginator component. Instead of paginator as input attribute. It now has:
    • @Input({ required: true }) pageNumber!: number;
    • @Input({ required: true }) pageSize!: number;
    • @Input({ required: true }) totalNumberOfElements!: number;
  • Breaking change: Changed contract of NscPaginatedDataSource, and removed pageInformation$(). It now is uniform with pagination$().
  • RejuvenationsRejuvenationThe core process of harvesting custom code from designated anchors and ext directories, updating model configurations, and re-expanding code artifacts to continuously evolve software without losing custom implementations.:
    • @angular/*: ^18.2.5 -> ^18.2.9
    • @angular/cdk: ^18.2.5 -> ^18.2.10
    • @angular/material*: ^18.2.5 -> ^18.2.10
    • @ng-matero/extensions: 18.2.1 -> 18.2.3
    • tslib: ^2.7.0 -> ^2.8.0
    • uuid: ^10.0.0 -> ^11.0.2
    • @angular-devkit/*: ^18.2.5 -> ^18.2.10
    • @angular-eslint/*: 18.3.1 -> ^18.4.0
    • @angular/cli: ^18.2.5 -> ^18.2.10
    • @angular/compiler-cli: ^18.2.5 -> ^18.2.9
    • @typescript-eslint/*: ^8.7.0 -> ^8.12.2
    • jasmine-core: ~5.3.0 -> ~5.4.0

Deleted​

  • Removed paginator.model.ts.

0.6.0 (2024-09-25)​

Added​

  • Disabled state is now reflected in form component host attributes.
  • Added form-buttons.directive.ts that is used to indicate what are content buttons for form components.
  • Added form-definition.interface.ts that defines how a form directive should look like.
  • Added form-host-control.directive.ts that can be used re-use a FormGroup or FormArray from a parent definition in a child self-contained form component.
  • Added disabled property to <nsc-table-row-action-menu-item> component.

Changed​

  • Added null and undefined as possibilities of input for <nsc-file-input> and <nsc-file-details> components.
  • RejuvenationsRejuvenationThe core process of harvesting custom code from designated anchors and ext directories, updating model configurations, and re-expanding code artifacts to continuously evolve software without losing custom implementations.:
    • @angular/*: ^18.2.2 -> ^18.2.5
    • @ng-matero/extensions: 18.2.0 -> 18.2.1
    • tslib: ^2.6.3 -> ^2.7.0
    • @angular-devkit/*: ^18.2.2 -> ^18.2.5
    • @angular-eslint/*: 18.3.0 -> ^18.3.1
    • @typescript-eslint/*: ^8.2.0 -> ^8.7.0
    • eslint: ^9.9.1 -> ^9.11.1
    • jasmine-core: ~5.2.0 -> ~5.3.0

Fixed​

  • Made <nsc-yes-no-toggle> component correctly reflect disabled changes.
  • Made file extension check case-insensitive, because the file selector pop-up is also case-insensitive.

0.5.0 (2024-09-02)​

Added​

  • Added <nsc-rich-text-editor>component that can be used in forms. This is a QuillJs based WYSIWYG editor that fits our styling. With the RICH_TEXT_EDITOR_CONFIG injection token you can define some configuration of the editor. This can be provided using the provideRichTextEditorConfig function. Otherwise, the default value are used:
const DEFAULT_RICH_TEXT_EDITOR_CONFIG: NscRichTextEditorConfig = {
enableToolbar: true,
toolbarConfig: {
enableColorControls: true,
enableTextDecorationsControls: true,
enableAlignmentControls: true,
enableListControls: true,
enableFontControls: true,
},
};
  • Added Quill peer dependency: quill: ^2.0.2
  • Added placeholder input attribute to nsc-filter component. This can be used to customise shown placeholder when no filters are active.
  • Added blob-error-interceptor. This interceptor will check if the response of an http call is a blob, but actually should be a json and convert it to json.

Changed​

  • Update to angular 18. Kept material design 2.
  • RejuvenationsRejuvenationThe core process of harvesting custom code from designated anchors and ext directories, updating model configurations, and re-expanding code artifacts to continuously evolve software without losing custom implementations.:
    • @angular/*: ^17.x.x -> ^18.2.2
    • @ng-matero/extensions: 17.3.5 -> 18.2.0
    • @ng-matero/extensions-date-fns-adapter: 17.1.2 -> 18.0.0
    • zone.js: ~0.14.8 -> ~0.14.10
    • tslib: ^2.6.2 -> ^2.6.3
    • uuid: ^9.0.1 -> ^10.0.0
    • @angular-eslint/*: 17.5.2 -> 18.3.0
    • @types/uuid: ^9.0.8 -> ^10.0.0
    • @typescript-eslint/*: 7.18.0 -> ^8.2.0
    • eslint: ^8.57.0 -> ^9.9.1
    • karma: ~6.4.3 -> ~6.4.4
    • ng-packagr: ^17.3.0 -> ^18.2.1
    • typescript: ~5.4.5 -> ~5.5.4

Fixed​

  • fixed #116: nsc-filter component does not alter all filters anymore when one entry gets deleted.
  • fixed #117: nsc-filter component does not have a hardcoded 'Search on' string anymore for the placeholder. Instead, only the searhKey is translated, or it can be customised with placeholder input attribute.
  • fixed #131a: Changed sort behaviour back to old behaviour. Original test has been adopted.
  • fixed #131b: Made sidebar able to scroll vertically again.

0.4.0 (2024-08-14)​

Added​

  • File IO components and helpers:
    • Added <nsc-file-input> component that can be used in forms. It can be linked with a FormControl that has FileModel as value. When a downloadUrl is present on the FileModel then a download button will be shown. Validation is present with the attributes:
      • allowedFileTypes?: string[]: Allows a list of file extensions to be given on which can be filtered and validated. An error is given named fileInputInvalidType with the allowed extensions as parameter named allowedFileTypes.
      • allowedFileSize?: number: Allows a size in bytes to be given on which to validate. An error is given named fileInputInvalidSize accompanied by the parameters actualSize and allowedFileSize. A file can be added by opening a file window or by dropping a file in the dropzone. The upload and download functionality is based on the FileUploadSource and FileDownloadSource interfaces. You can give an implementation by providing the uploadSource and downloadSource attributes.
    • Added <nsc-file-detail> component that can be used in readonly pages. This component also relies on a FileModel. It will show the file name, and add a download button when the FileModel has a downloadUrl and a downloadSource has been provided.
    • Added <nsc-table-file-column> component that can be used in tables. This component also relies on a FileModel. It will show the file name and add a download button when the FileModel has a downloadUrl and a downloadSource has been provided.
    • Added file-size service and pipe to transform bytes to a more human-readable format of kB, MB, GB, etc.
    • Added file-name-parser function to extract file name from Content-Disposition header. If it cannot be extracted an uuid v4 will be returned instead.
    • Added save-file function to make a browser save a blob correctly to a file when is has been downloaded using a http call that has headers.
  • Added ESlint and prettier setup.

Changed​

  • Reformated all code with new linter and formatter.

Fixed​

  • Added a null/empty check that returns false to instanceOfReference function.

0.3.0 (2024-07-25)​

Added​

  • Added a <nsc-field-errors> component that can be used together with the form fieldsFieldA property of a DataElement expanded to a database column and user interface input element.. This component will accept a form control as input attribute and will call a FORM_FIELD_ERROR_PARSER service to parse the present errors. An own implementation of the service needs to implement the FormFieldErrorParser interface and can be provided with the FORM_FIELD_ERROR_PARSER token.
  • Added description attribute to <date-picker> component.
  • Added <date-time-picker> component to be used in forms. A default locale, parse- and displayFormat can be provided by using provideNscDateFormats.
  • Added logging interface and a console logging service.
  • Added duration visualization of <alert> component. Also added redirect capabilities to the component.
  • Added NscDatePipe and NscDateTimePipe that formats dates based on the set formats in the NSC_DATE_ADAPTER.
  • The alert service now returns an observable to indicate when the triggered alert has been closed.

Changed​

  • Breaking Change: Changed provideNscDateFormat to provideNscDateFormats that accepts the interface NscDateFormats which is extended to also accept a date time format.
  • <yes-no-toggle> component can now handle errors. The component has also got some visual tweaks to fit the styling better.
  • Made some visual tweaks to <alert> component and set default alert duration to 5 seconds.
  • The table component now allows horizontal scrolling when the content of columns gets to wide.
  • Made width and collapsed width of sidebar in to variables and exposed them.
  • RejuvenationsRejuvenationThe core process of harvesting custom code from designated anchors and ext directories, updating model configurations, and re-expanding code artifacts to continuously evolve software without losing custom implementations.:
    • @angular/*: ^17.3.9 -> ^17.3.12
    • @angular/cdk: ^17.3.9 -> ^17.3.10
    • @angular/material: ^17.3.9 -> ^17.3.10
    • @angular-devkit/build-angular: ^17.3.7 -> ^17.3.8
    • @angular/cli: ^17.3.7 -> ^17.3.8
    • @ng-doc/*: ^17.6.8 -> ^17.6.16
    • zone.js: ~0.14.6 -> ~0.14.8
    • jasmine-core: ~5.1.12 -> ~5.2.0

Fixed​

  • <select> and <multi-select> components do not try to focus on search anymore when search is disabled.
  • <select> and <multi-select> components now allow the use of the spacebar in the search.

0.2.0 (2024-07-09)​

Added​

  • Added click and double click events to table with TableCellInformation object als content of the output event.
  • Added functionality to adjust height of select and multi-select viewport depending on the number of items available. When no entries are present it shows a default 'Nothing found for "{{value}}"' message. The maximum number of items shown at once is 4. The default translation key for this can be overridden by providing SELECT_TRANSLATION_CONFIG in your applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution..
  • Added feature to disable search for select and multi-select. Use the searchDisabled input attribute for this.
  • Added <date-picker> component to be used in forms. A default locale, parse- and displayFormat can be provided by using provideNscDateFormat. Other formats can be instantiated with an object of type NscDateFormat and given to the provide function as argument. The formats can be built using unicode tokens. Afterwards, these values can be changed by injecting NSC_DATE_ADAPTER and using the methods:
    • updateParseFormat({value}: { value: string | string [] }): void;
    • updateDisplayFormat({value}: { value: string }): void;
    • updateLocale({value}: { value: string }): void;
    • formatDate({value, displayFormat} : {value: Date, displayFormat: string}): string;
  • Added <date-range-picker> component to be used in forms.

Fixed​

  • Changed overlay close logic of filter.component. This co-operates better with other components using an overlay, e.g. date-picker.
  • Disabled reset button for select and multi-select when form control is disabled.
  • Fixed value not being displayed issue when select and multi-select are instantiated with a value, but the value is not present in the current data stream.
  • Made select and multi-select not override all the filters when a search is applied. Instead, now it appends the search filter to the current active filters.
  • Made <filter> component display boolean and dates correctly.

Changed​

  • Changed scroll behaviour of filter form overlay. When overlay is shown, scrolling is now blocked.
  • Changed default value for isDummyShown variable in select to true.

0.1.1 (2024-06-17)​

Added​

  • Added ordering attribute to MenuItem which allows the sidebar component to take into account the order of the MenuItem array as well as the set preferred ordering.

Changed​

  • Clear icon of select and multi-select has been reverted to cross.
  • Search fieldFieldA property of a DataElement expanded to a database column and user interface input element. is focussed when select and multi-select opens.
  • Default "none" option in select has been removed. This still can be added custom with SelectNoneOptionDirective.

Fixed​

  • Account for the possible 'overflow' (text that is too long) of items in the menu.
  • Clear functionality of select and multi-select does not error anymore when item is cleared that was not rendered.

0.1.0 (2024-06-11)​

Added​

  • Added pagination$ observable to NscPaginatedDataSource interface.
  • Added searchKey input attribute to select and multi-select to set used filter key. This attribute can only be set OnInit and cannot change anymore, otherwise an error is thrown.
  • Added index as an available context variable to TableCellDirective. This allows components within an nsc-table that use the *nscTableCell directive to access the zero-based index of the row that the templateRef is in.
  • Added SelectNoSelectableOptionsDirective and rendering capability in select and multi-select for this directive if no data is present when filtered.

Changed​

  • Default filter key of select and multi-select is displaylabel instead of displayLabel.
  • Clearing a select or multi-select resets the form control now instead of setting an empty string/array. This change in behaviour is also represented with a different icon now. When a form control is made with {nonNullable:true} and a default starting value. The control is reset to this default value.

Fixed​

  • Fixed clear select button position when scrolling.

0.0.6 (2024-05-21)​

Added​

  • Added <nsc-select> component to be used in forms. The component allows a NscSelectDataSource<D> input as well as an Array<D>. The latter will be wrapped in the provided SelectArrayDatasource<D>. There are 3 directives to allow customizations.
    • SelectNoneOptionDirective: Customize how the clear option looks like.
    • SelectOptionDirective: Customize how options look like.
    • SelectValueDirective: Customize how the selected option looks like.
  • Added <nsc-multi-select> component to be used in forms.
  • Added NscInfiniteDataSource interface.

Changed​

  • RejuvenationsRejuvenationThe core process of harvesting custom code from designated anchors and ext directories, updating model configurations, and re-expanding code artifacts to continuously evolve software without losing custom implementations.:
    • @angular/*: ^17.3.0 -> ^17.3.9
    • @angular-devkit/build-angular: ^17.3.0 -> ^17.3.7
    • @angular/cli: ^17.3.0 -> ^17.3.7
    • @ng-doc/*: ^17.5.5 -> ^17.6.8
    • typescript: ~5.4.2 -> ~5.4.5
    • zone.js: ~0.14.4 -> ~0.14.6
  • Refactored file names of models to have kebab-case name with .model suffix:
    • Alert.ts -> alert.model.ts
    • Breadcrumb.ts -> breadcrumb.model.ts
    • BreadcrumbsIconConfig.ts -> breadcrumbs-icon-config.model.ts
    • Filter.ts -> filter.model.ts
    • NscFilterSource.ts -> filter-source.model.ts
    • FilterTranslationConfig.ts -> filter-translation-config.model.ts
    • NscSelectDataSource.ts -> select-data-source.model.ts
    • Paginator.ts -> paginator.model.ts
    • PaginatorTranslationConfig.ts -> paginator-translation-config.model.ts
    • Reference.ts -> reference.model.ts
    • NscDataSource.ts -> data-source.model.ts
    • MenuItem.ts -> menu-item.model.ts
    • HomeItem.ts -> home-item.model.ts
    • SidebarMenuIconConfig.ts -> sidebar-menu-icon-config.model.ts
    • Sorting.ts -> sorting.model.ts
    • Alert.ts -> alert.model.ts
    • Alert.ts -> alert.model.ts
    • Alert.ts -> alert.model.ts
  • Location of NscDataSource interfaces has changed from @nsx/ns-core/table to @nsx/ns-core.

0.0.5 (2024-03-20)​

Changed​

  • Made <sidebar-menu-navigation-item> an <a> tag instead of a <div>, which enables right click functionalities like "open in new tab".
  • Fixed border issue with divider.

0.0.4 (2024-03-18)​

Added​

  • Added <yes-no-toggle> component to be used in forms.
  • Created <table-row-action-menu> and <table-row-action-menu-item> components that can be used together with the table component to add a row specific action menu.
  • Created demo pages for form components.

Changed​

  • Split up library in sub-entries to lower initial load size.
  • Refactored <text-area-field>:
    • Added auto resize capabilities
    • Added warning icon when invalid
    • Made subscriptSizing dynamic
  • Optimized routing of demo applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution..
  • RejuvenationsRejuvenationThe core process of harvesting custom code from designated anchors and ext directories, updating model configurations, and re-expanding code artifacts to continuously evolve software without losing custom implementations.:
    • @angular/*: ^17.2.* -> ^17.3.0
    • @ng-doc/*: ^17.5.1 -> ^17.5.5
    • ng-packagr: ^17.2.0 -> ^17.3.0
    • typescript: ~5.3.3 -> ~5.4.2

0.0.3 (2024-02-29)​

Added​

  • ngx-ns-core
    • FilterModel:
      • FilterModel component <nsc-filter>: Displays active filters as chips, can add a text filter and allows a dropdown form with more filters. Component has optional translation capabilities, that can be configured using FilterTranslationConfigModel.
      • FilterModel interface.
      • FilterSourceModel interface: Holds filter state.
      • FilterModel form directive [nscFilterForm]: Used to enable form dropdown capabilities.
    • Forms:
      • Focus directive [nscFocusFormField]: Used to autofocus on a form control.
      • Form directive [nscFormFieldHostControl]: Implementation of ControlValueAccessor interface and can be used on filter fieldFieldA property of a DataElement expanded to a database column and user interface input element. components to add formControl, formControlName, ... capabilities more easily.
      • Text-fieldFieldA property of a DataElement expanded to a database column and user interface input element. component <nsc-text-field>
      • Text-area-fieldFieldA property of a DataElement expanded to a database column and user interface input element. component <nsc-text-area-field>
    • PaginatorModel:
      • PaginatorModel component <nsc-paginator>: Component has optional translation capabilities, that can be configured using PaginatorTranslationConfigModel.
      • PaginatorModel interface.
    • Table:
      • Table component <nsc-table>: Accepts DataSourceModel or array as data input. Has multi sort capabilities. Expects <nsc-table-column> components as content to define how to render the data.
      • Table-column component <nsc-table-column> and table-cell directive [nscTableCell]: Describes how the header and content of a column should look like.
      • Sorting interface.
      • DataSourceModel, NscFilterableDataSource, NscSortableDataSource, NscPaginatedDataSource interfaces: Holds data state.

Changed​

  • Refactored breadcrumbs and sidebar translations.
  • Added 'identifier' fieldFieldA property of a DataElement expanded to a database column and user interface input element. as id for SidebarMenuNavigationItem.
  • RejuvenationRejuvenationThe core process of harvesting custom code from designated anchors and ext directories, updating model configurations, and re-expanding code artifacts to continuously evolve software without losing custom implementations.:
    • @angular/*: ^17.0.* -> ^17.2.2
    • @angular/material: ^17.0.4 -> ^17.2.1
    • @angular/cdk: ^17.0.4 -> ^17.2.1
    • @ng-doc/*: ^17.2.2 -> ^17.5.1
    • @angular-devkit/build-angular: ^17.0.10 -> ^17.2.1
    • @angular/cli: ^17.0.10 -> ^17.2.1
    • @types/uuid: ^9.0.7 -> ^9.0.8
    • karma-coverage: ~2.2.0 -> ~2.2.1
    • karma: ~6.4.2 -> ~6.4.3
    • ng-packagr: ^17.0.3 -> ^17.2.0
    • typescript: ~5.2.2 -> ~5.3.3
    • zone.js: ~0.14.3 -> ~0.14.4

0.0.2 (2024-01-11)​

Added​

  • ngx-ns-core
    • AlertModel service AlertService and interface AlertModel
    • Breadcrumbs:
      • component <nsc-breadcrumbs> and interface BreadcrumbModel
      • service BreadcrumbsRouteService: Retrieves breadcrumbs from angular routing data
      • service BreadcrumbsIconService: Allows to change the icon font set and used icons of <nsc-breadcrumbs>
    • Service SidebarMenuRouteService: Retrieves active MenuItemModel from angular routing data
    • Translation tests for components using translation service
    • Material theming default variables

Changed​

  • Upgrade to Angular 17 and Angular Material 17
    • Documentation framework needed adjustments to work with Angular 17
    • Deployment is changed for Angular 17
  • RejuvenationRejuvenationThe core process of harvesting custom code from designated anchors and ext directories, updating model configurations, and re-expanding code artifacts to continuously evolve software without losing custom implementations.:
    • org.apache.maven.plugins:maven-clean-plugin: 3.3.1 -> 3.3.2
  • Jenkinsfile: no more publication for renovate branches and PRs

Fixed​

  • Translate tooltip of sidebar correctly
  • Translation issue in demo + documentation
  • nsc prefix was missing for sidebar css theming variables

0.0.1 (2023-12-08)​

Added​

  • ngx-ns-core
    • Divider component <nsc-divider>
    • Header component <nsc-header>
    • Sidebar-menu component <nsc-sidebar-menu>
    • Translation classes:
      • Json5HttpTranslateLoader: adds possibility to load json5 translation files for @ngx-translate.
      • WarningMissingTranslationHandler: adds possibility to show a console warning when a translation is missing for @ngx-translate.
    • Commonly used SASS variables and mixins.
  • ns-core-demo
    • Demo Angular applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. showcasing the content of the ngx-ns-core library.
  • ns-core-doc
    • Documentation Angular applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. built with @ng-doc to showcase the different components, directives, services, API of ngx-ns-core. It has a markdown style for documentation enhanced with interactive demonstration environments.