Skip to main content

angular-expanders


8.5.0 (2026-10-21)​

Added​

  • Added custom anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. in login method of the OIDC AuthService.
  • Added option angular.hasFormFieldDependencies on a DataView to expand form fieldFieldA property of a DataElement expanded to a database column and user interface input element. dependencies for its add and edit forms.
  • Added the providers anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to the add and edit form components, so features can add providers.

Changed​

  • Updated dependencies:
    • @nsx/ngx-ns-core: 4.2.0 -> 4.3.0

8.4.0 (2026-10-14)​

Added​

  • Added feature anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to the default column settings.

Changed​

  • Generated component stylesheets now use @use '@nsx/ngx-ns-core/abstracts' as ns-core; instead of the full @nsx/ngx-ns-core entry. The new entry only contains the palettes, mixins and variables, so each component stylesheet no longer compiles all theme files and no longer contains its own copy of the rich text editor styles.
  • main.scss now includes the rich text editor styles once with @use '@nsx/ngx-ns-core/rich-text';, because @nsx/ngx-ns-core no longer includes them.
  • Updated dependencies:
    • @nsx/ngx-ns-core: 4.1.1 -> 4.2.0

Fixed​

  • Fix margin-bottom making details of data children look strange.
  • Fixed vertical scrolling in filter panel.

8.3.0 (2026-10-13)​

Changed​

  • Breaking change: getSearchBarLabel() on the <DataView>SearchBarCoordinator interface now returns a translation key (string) instead of translated text. The list page translates the key with the translate pipe. Custom coordinators that call TranslateService.instant() must return the key instead. Use angular-finder-expanders with the matching release.
  • Updated dependencies:
    • @nsx/ngx-ns-core: 4.1.0 -> 4.1.1

Fixed​

  • The search bar label on list pages is updated when the translations are loaded or the language changes.
  • Fix compile issues in list-page.component.scss due to missing scss imports.
  • No longer skip custom anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. by returning early in the validateLogin method in the auth service.

8.2.0 (2026-10-06)​

Added​

  • Added option angular.defaultSelectedFilter on DataView to preselect a filter in the filter form when the page opens.

Changed​

  • Small build time optimizations in tsconfig.json:
    • Breaking change: Enabled isolatedModules so the build transpiles with esbuild instead of the TypeScript compiler. Custom code that re-exports types needs export type, and a const enum can no longer be used from another file.
    • Enabled skipLibCheck, which skips type-checking of all .d.ts declaration files in /node_modules.
  • Table cells no longer wrap, so all rows have the same height. Values that do not fit are cut off with an ellipsis, the column can be resized to show more. The single-line styles now come from ns-core.table-theme in ngx-ns-core, which applies them to every data cell of nsc-table.
  • Multi-link fieldsFieldA property of a DataElement expanded to a database column and user interface input element. are shown as a comma-separated list instead of one item per line, in tables and in details.
  • The search bar on list pages is focused when the page opens, except on data-child list pages in a details page.
  • The first fieldFieldA property of a DataElement expanded to a database column and user interface input element. of the filter form is focused when the filter panel opens or when the user picks another filter.
  • Updated dependencies:
    • @nsx/ngx-ns-core: 4.0.0 -> 4.1.0

Fixed​

  • Added whitespace to the bottom of the details component to make flickering on tab change less likely.
  • Clearing the filter (e.g. by emptying the search bar) now also removes the filter from the URL. The same applies to sorting and pagination.
  • The filter labels in the filter panel are updated when the translations are loaded or the language changes.
  • Removed unnecessary "demo-vendor-detail" class styling in detail page.
  • A <uses> of type private_service is no longer expanded when a <uses> of type service with the same eval is present, preventing duplicate service fieldsFieldA property of a DataElement expanded to a database column and user interface input element. that do not compile.
  • Breaking fix: Access rights relating to the dataConnector now use the featureModule of the dataConnector.
  • Removed every .firstToLower that was added to after featureModuleNameCamelCase since this is redundant.

8.1.0 (2026-09-28)​

Added​

  • Added option angular.customization.hasCustomAppBudgetConfig for defining your own budget config in the angular.json file.
  • Added custom anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion.:
    • Custom imports in the FilterCoordinatorDirective, since custom anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. are already injected for data childs.
    • Custom interceptors when providing the HttpClient.

Changed​

  • Breaking change: Updated styling of expanded CRUD pages
  • Breaking changes: Updates to the sidebar menu:
    • Use MenuEntry in menu-service, menu-interface and configs to allow MenuGroups to be used.
    • Moved the state variable isSidebarCollapsed from the layout-component to the menu-service, allowing other components to also set the state via the menu-service. These changes are also reflected in the Menu interface.
  • BigStrings shown in detail components are now cut off after a couple of lines (3 by default), with a button to toggle showing the entire value.
  • Group base feature modules in the default sidebar full menu config.
  • Changed default translation values for:
    • list-page titles
    • detail-page titles
    • data-child-tab labels
  • Updated dependencies:
    • @nsx/ngx-ns-core: 3.0.0 -> 4.0.0 (Contains breaking changes: see its changelog for more info)
    • @ngx-translate/core: 17.0.0 -> 18.0.0

8.0.0 (2026-08-18)​

Changed​

  • Updated to angular 22. See also the migration guide
    • Version updates:
      • @nsx/ngx-ns-core: 2.6.2 -> 3.0.0
      • @angular/cdk: 21.1.4 -> 22.1.0
      • @angular/common: 21.1.4 -> 22.1.0
      • @angular/compiler: 21.1.4 -> 22.1.0
      • @angular/core: 21.1.4 -> 22.1.0
      • @angular/forms: 21.1.4 -> 22.1.0
      • @angular/material: 21.1.4 -> 22.1.0
      • @angular/platform-browser: 21.1.4 -> 22.1.0
      • @angular/platform-browser-dynamic: 21.1.4 -> 22.1.0
      • @angular/router: 21.1.4 -> 22.1.0
      • @angular/build: 21.1.4 -> 22.1.2
      • @angular/cli: 21.1.4 -> 22.1.2
      • @angular/compiler-cli: 21.1.4 -> 22.1.0
      • typescript: 5.8.3 -> 6.0.3
    • Changes:
      • Compiler options no longer allow a baseUrl, this has been removed and all paths now start with ./
        • Also added path "src/*": ["./src/*"] to tsconfig.json5 to provide backwards compatibility for projects that use src/app in imports.
      • The reportProgress option for http requests was removed, instead reportDownload and reportUpload are used in their respective functions.
  • Set Angular analytics to false in angular.json.

Fixed​

  • The GenerateDefaultAngularApp now also adds the angular.legacy.authorization option to fix the issues with data access.

7.14.3 (2026-08-10)​

Fixed​

  • The icon value for menu items did not work properly

Changed​

  • Updated dependencies:
    • @nsx/ngx-ns-core: 2.6.2 -> 2.6.3

7.14.2 (2026-07-31)​

Changed​

  • Updated dependencies:
    • @nsx/ngx-ns-core: 2.6.1 -> 2.6.2

7.14.1 (2026-07-30)​

Changed​

  • Updated dependencies:
    • @nsx/ngx-ns-core: 2.6.0 -> 2.6.1

Fixed​

  • File fieldsFieldA property of a DataElement expanded to a database column and user interface input element. no longer expect an IO source in the table, forms and details components when there does not exist a valid corresponding DataConnectorField. This fixes compile errors when not having the stdapi.io.download or stdapi.io.upload option on the fieldFieldA property of a DataElement expanded to a database column and user interface input element..

7.14.0 (2026-07-28)​

Added​

  • Added an updateIcon() method to the menu.service.ts.

Changed​

  • Split the definition of MENU_CONFIG_FULL into separate MenuItems, to make it easier to include expanded menu items in custom menus.
  • 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.:
    • net.democritus.metamodel:nsx-metamodel-stack: 2026.1.0 -> 2026.4.3
    • net.democritus.metamodel:prime-core: 2026.4.0 -> 2026.4.3

Removed​

  • Removed workflow base feature module from GenerateDefaultAngularApp transmuter.

7.13.0 (2026-07-23)​

Added​

  • Added feature anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion. layout in layout.component.html.
  • Added app-properties.svg as a new icon to be used for the applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. properties button.
  • Added custom anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. in layout.component.scss.
  • Added direct import type to allow imports without the from keyword.
  • Added feature anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion. in DetailScssExpander.

Changed​

  • Move topbar menu from Auth feature to topbar expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. to enable adding more menu items with feature expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact..
  • Updated nativetype variable replacements in DetailHtmlExpander and TableHtmlExpander.

Fixed​

  • Breaking fix: Fixed the branding feature. Added missing custom overrides for the angular.hasCustomBranding option. This has impact on the following feature anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion.:
    • branding-text-font in index.html
    • branding-icon-font in index.html
    • branding-sidebar in layout.component.scss

Migration info: Copy over wrongfully expanded code from the mentioned anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. in the new custom anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion..


7.12.1 (2026-07-02)​

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.:
    • net.democritus.model:modelTransmutations-core: 2.7.0 -> 2.8.0

7.12.0 (2026-06-25)​

Added​

  • Added GenerateDefaultAngularApp transmuter, it generates FeatureModules, DataConnectors and DataViews for all Components and DataElements, unless they have the noViewLayer option.
  • Moved the definition of the angular.noViewLayer option from angular-finderFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement.-expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. to the angular-expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact.. It can now be applied to fieldsFieldA property of a DataElement expanded to a database column and user interface input element. as well.

Changed​

  • Updated dependencies:
    • @nsx/ngx-ns-core: 2.4.0 -> 2.6.0
  • 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.:
    • net.democritus.metamodel:prime-core: 2026.1.0 -> 2026.4.0
    • org.apache.maven.plugins:maven-compiler-plugin: 3.11.0 -> 3.15.0
    • net.democritus.model:modelTransmutations-core: 2.6.1 -> 2.7.0
    • net.democritus.model:modelTransmutations-test-support: 2.6.1 -> 2.7.0

Fixed​

  • The AngularAppNamingRule validation no longer fails when the applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. shortname is kebab-case.

Removed​

  • Removed UpgradeToAngularProject transmuter.

7.11.2 (2026-06-03)​

Fixed​

  • Fixed issue in data children causing a routing loop when using onSameUrlNavigation: 'reload'.

7.11.1 (2026-06-01)​

Fixed​

  • Table columns are now correctly expanded when a FeatureModule depends on Component in its model file.
  • Fixed filter mismatch on data children when navigating to a parent view through breadcrumbs.

7.11.0 (2026-04-22)​

Added​

  • Added detail-page default anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. around the default detail component to allow changing it.
  • Added feature anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. in filter-coordinator.directive to adjust which filters are available by default.
  • Added an out-of-the-box MenuItem structure based on available FeatureModules and DataViews. It is only used when there is no custom structure defined.

Changed​

  • The MenuService now supports defining a MenuItem structure based on the user's profile. Actually getting the current user's profile is not implemented yet.
  • Updated dependencies:
    • @nsx/ngx-ns-core: 2.3.1 -> 2.4.0

7.10.0 (2026-04-08)​

Removed​

  • Removed filter badge for beam release. It does not always display the active filter count properly. Fixing this requires breaking changes.

Fixed​

  • Fixed filter segmentparameter deserializer not correctly deserializing long numeric strings.

7.9.1 (2026-04-01)​

Changed​

  • Updated dependencies:
    • @nsx/ngx-ns-core: 2.3.0 -> 2.3.1

7.9.0 (2026-03-31)​

Changed​

  • The filter badge now displays the actual number of active filter fieldsFieldA property of a DataElement expanded to a database column and user interface input element. (excluding hidden and disabled fieldsFieldA property of a DataElement expanded to a database column and user interface input element.) rather than a static 1.

7.8.0 (2026-03-17)​

Added​

  • Added option angular.instance-hyper-link.disabled as cascading option on FieldComposite that expands link fieldsFieldA property of a DataElement expanded to a database column and user interface input element. as regular texts instead of a hyperlink for table and detail components. This option can also be used to disable the hyperlink on name fieldsFieldA property of a DataElement expanded to a database column and user interface input element. that link to the details page.
  • Added TapAlertErrorOperatorExpander that handles an AlertErrorModel but does not swallow the error.

Changed​

  • Updated dependencies:
    • @nsx/ngx-ns-core: 2.2.2 -> 2.3.0
  • Hide filter selector when only one value is possible. Add a delete filter button to clear filter selection.

Fixed​

  • Add prefix to aria-label of mat-checkbox in boolean table cell to avoid null value removing the label

Fixed​

  • Delayed and re-ordered initial filtering setup / data-source initialization in list-page component. No more double fetch calls are being done. For data children this will also correctly do one call now with a parent filter. Reloading on a data children page will also respect the saved filter now.

7.7.0 (2026-03-05)​

Changed​

  • Changed behavior of column sorting when column has been removed from view. This now resets the sorting to the initial sorting if the columns of the initial sorting are still visible.

Fixed​

  • Reverted a styling change on the details-page which cause elements to overlap in some cases.

7.6.1 (2026-02-25)​

Fixed​

  • Added aria-label attribute to icon only buttons.
    • list-page: The filter, refresh and add button.
    • details-page: The edit and delete button.
    • inspect-component: The edit, delete and close button.

    WCAG: Buttons must have discernible text

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

    WCAG: Form elements must have labels

  • Updated dependencies:
    • @nsx/ngx-ns-core: 2.2.1 -> 2.2.2

7.6.0 (2026-02-16)​

Changed​

  • Moved finder and querysearch related metamodels and expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. to separate repo's.

Fixed​

  • Updated dependencies to fix npm install with new runtime version 2.2.1:
    • @angular/...: 21.1.2 -> 21.1.4

7.5.0 (2026-02-13)​

Added​

  • Added support for option cruds.table.pageSize, which determines the available options in the table paginator.

Changed​

  • Updated dependencies:
    • @nsx/ngx-ns-core: 2.2.0 -> 2.2.1

Fixed​

  • Fixed legacy filtering option expanding not compilable code, due to filter options changes.

7.4.1 (2026-02-10)​

Fixed​

  • Fixed the DefaultActionAuthorizationService starting multiple requests for the same accessRight.
  • Added extra validation inside the SegmentParametersSerializer and SegmentParameterDeserializer.
    • Empty strings will no longer be serialized.
    • Empty strings that were being serialized will no longer deserialize into '0'.

7.4.0 (2026-02-04)​

Added​

  • Breaking Changes: The filterOptions have been refactored to classes and the filter forms now subscribe to a new injectable <...>FilterOptionsSource that is provided on root. Wherever these filterOptions need to be updated you can inject the <...>FilterOptionsSource into your component and call the updateFilterOptions() function. The filterComponent will update accordingly. The previous feature and custom anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. have been removed from the <...>FilterFormComponent any lost customization can be re-added as explained before.
  • Added new functionality to always pre-select a filter in the filter component when only one filter is present.
  • Added signal to disable the searchbar on a list-view.

Changed​

  • Updated dependencies:
    • @angular/*: 21.1.2
    • @nsx/ngx-ns-core: 2.1.1 -> 2.2.0

Fixed​

  • Fixed incorrect name for filter class being used when the angular.defaultQueryFilter or angular.defaultFinderFilter options.

7.3.2 (2026-02-02)​

Fixed​

  • Fixed the succes-event function, this incorrectly failed when deleting went successfully. This is because the success response of a delete call is undefined.
  • Re-added lost default projectionProjectionA tailored subset of fields on a DataElement designed to encapsulate data for a specific technical or functional view. set in initialize for list pages.

7.3.1 (2026-01-30)​

Fixed​

  • @nsx/ngx-ns-core: 2.1.0 -> 2.1.1

7.3.0 (2026-01-30)​

Changed​

  • Downgraded expansionResource versions:
    • net.democritus:querysearch-expanders: 3.5.2 -> 3.4.0
    • net.democritus:base-components: 2026.1.0 -> 2025.3.0

7.2.1 (2026-01-29)​

Fixed​

  • Clear AUTHORIZATION_CACHE_SOURCE when user logs out.
  • Filter name is now correctly handled in QS filter form.

7.2.0 (2026-01-26)​

Added​

  • Added support for the following options, these will hide/disable fieldsFieldA property of a DataElement expanded to a database column and user interface input element. on the expanded create or edit forms:
    • cruds.form.hide
    • cruds.form.hideOnCreate
    • cruds.form.hideOnModify
    • cruds.form.disable
    • cruds.form.disableOnCreate
    • cruds.form.disableOnModify

Changed​

  • Split up finderConnector and finderView creation in the enrichers. This allows users to use the filter classes and other things only expanded on filterConnector.
  • Changed searchDisabled attribute to no longer be added by default and removed by a feature, the attribute is now added when needed.
  • Updated MenuService to use new inject dependency injection instead of constructor arguments.
  • Upgrade PackageJsonExpander to latest versions:
    • @nsx/ngx-ns-core: 2.0.0 -> 2.1.0: This now allows functions for breadcrumbs using resolved data.
      • Example:
{
data: {
breadcrumb: (data: any) => `$\{data.demoElement.stringField}`,
},
resolve: {
demoElement: demoElementResolver,
}
}

Fixed​

  • Fixed distinct filtering out parents that came from different DataElements. This caused only one DataChild page to work correctly when multiple DataElements had a child to the same target DataElement.
  • Fixed FeatureModule imports coming from DataView instead of DataConnector.
  • Fixed QS naming issues with underscores.
  • Fixed duplicate asset fieldsFieldA property of a DataElement expanded to a database column and user interface input element. in the FinderFilter class definitions, this was caused by an oversight in the initial implementation.
  • Added asset fieldFieldA property of a DataElement expanded to a database column and user interface input element. into the FinderFilter forms, they were already present in the directive but were missing in the html.

7.1.0 (2026-01-20)​

Changes​

  • Cleanup of maven structure.
  • Metamodels uses Standard Metamodel 3 profile now.
  • 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.:
    • net.democritus.metamodel:nsx-metamodel-stack: 2025.14.0 -> 2026.1.0
    • net.democritus:expanders-core: 8.5.0 -> 8.6.0
    • net.democritus:base-components-model: 2024.6.2 -> 2026.1.0
    • net.democritus.metamodel:prime-core: 2025.16.0 -> 2026.1.0
    • com.fasterxml.jackson.core:jackson-databind: 2.20.1 -> 2.21.0
    • net.democritus.test:expanders-assert: 1.3.2 -> 1.4.0

Removed​

  • Removed use of nsx-versions-maven-plugin.
  • Removed dependency of prime-data.

7.0.1 (2026-01-19)​

Fixed​

  • Added custom import and custom impl anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to menu service token factory.
  • Changed ContentChild FormButtons in the add/edit/filter forms to optional, they were generating template errors when not provided.
  • Added unknown to featureModuleActionRights to not get compile errors when expanding empty featureModules.
  • Fixed some issues with modelLoadingEnrichers ending too early.
  • Fixed imports in ListPageTsExpander to use correct FeatureModule.

7.0.0 (2026-01-16)​

Added​

  • Added Filter support.

    • When the angular-finderFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement.-expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. or angular-query-expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. is present, every finderFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement. without the noViewLayer option and every querysearch will be supported on its associated list page component.
    • Added a FilterConnector element that implements the Connector element in the model and added a FinderConnector / QueryConnector that implements the abstract FilterConnector.
    • Added a FilterView element that implements the View element in the model and added a FinderView / QueryView that implements the abstract FilterView.
    • Added a new sidebar on the list page that will be expanded when a filter is present.
    • Added support for the hasSearchBar option on DataElement, this will expand a form in the header of the list page.
      • The form will use the simplest (the least amount of OperatorPairs) finderFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement. in the model that contains the fieldFieldA property of a DataElement expanded to a database column and user interface input element. and operator passed as the value of the option to filter the list.
    • Added multiple model validations to check if all findersFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement. are present for DataChild list pages and DataElements with the option hasSearchBar enabled.
    • Added new <...>FilterFormComponent that will expand a form for every querysearch (with the correct options relating to technologies used (stdapi / svcapi)) and findersFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement. (excluding findAll and with option noViewLayer) in the model.
    • Added new <...>FilterComponent that handles all possible filtering on a list page.
    • Added new option on finderFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement. angular.defaultFinderFilter. This will allow any dropdowns in the edit/add and filter forms to be searchable using the chosen finderFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement.. What fieldFieldA property of a DataElement expanded to a database column and user interface input element. of the finderFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement. needs to be used must be set as the option value.
    • Added new option on querysearch angular.defaultQueryFilter. This will allow any dropdowns in the edit/add and filter forms to be searchable using the chosen querysearch. What fieldFieldA property of a DataElement expanded to a database column and user interface input element. of the querysearch needs to be used must be set as the option value.
  • Made DataView default actions (add/edit) swappable:

    • Added tag #angular.data-view.action.add.custom to disable default add page.
    • Added tag #angular.data-view.action.edit.custom to disable default edit page.
    • Added tag #angular.data-view.action.delete.custom to disable default delete dialog.
    • Added tag #angular.data-view.routing.add.disable to disable the add route.
    • Added tag #angular.data-view.routing.edit.disable to disable the edit route.
    • Added feature anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to remaining DataView actions (add, edit, delete, details, list).
  • Added DataProjection support.

    • Metamodel addition of DataProjectionConnector. Currently, this is automatically generated for details and info projectionsProjectionA tailored subset of fields on a DataElement designed to encapsulate data for a specific technical or functional view..
    • Metamodel addition of ListView. Currently, this is automatically generated linked to a DataProjectionConnector for the info projectionProjectionA tailored subset of fields on a DataElement designed to encapsulate data for a specific technical or functional view.. With the option angular.legacy.table.useModelProjection this can be changed back to details. This is a cascading option and can be set on AngularApp, FeatureModule or DataConnector.
    • Expanded data sources now work with projectionsProjectionA tailored subset of fields on a DataElement designed to encapsulate data for a specific technical or functional view..
    • Interface change
      • getSingle({ id }: { id: string }): Observable<%dataConnector%Model>; -> getSingle<T extends keyof %dataConnector%Projection = '%dataConnector%'>({ id, projection }: { id: string, projection?: T }): Observable<%dataConnector%Projection[T]>;
      • getList({ segmentParameters }: { segmentParameters?: %dataConnector%SegmentParameters }): Observable<%dataConnector%ListModel>; -> getList<T extends keyof %dataConnector%Projection = '%dataConnector%'>({ segmentParameters, projection }: { segmentParameters?: %dataConnector%SegmentParameters, projection?: T }): Observable<PaginatedList<%dataConnector%Projection[T]\>>;
    • Default projectionProjectionA tailored subset of fields on a DataElement designed to encapsulate data for a specific technical or functional view. is the details projectionProjectionA tailored subset of fields on a DataElement designed to encapsulate data for a specific technical or functional view. which corresponds with DataConnector.model.ts for backwards compatibility reasons.
    • The DataProjectionConnectorComposite has a helper method getModelName that can be used to get the right name of the connector. To not break backwards compatibility the name of DataConnector.model.ts should be kept. The decision has been made to make this the 'details' projectionProjectionA tailored subset of fields on a DataElement designed to encapsulate data for a specific technical or functional view., however to not change the name. That is why a DataProjectionConnector with the same name as the linked DataConnector will return the name of the DataConnector. Other projectionsProjectionA tailored subset of fields on a DataElement designed to encapsulate data for a specific technical or functional view., e.g. Table will return the name of DataConnector + name of DataProjectionConnector.
    • Added TransmuteIsTableColumnOption transmuter to switch the option angular.isTableColumn to the info flag on a fieldFieldA property of a DataElement expanded to a database column and user interface input element..
  • Added an API specific HttpClient. This allows for easy changing of authentication headers, error handling etc. per different API implemented.

    • An AngularApp-http-client.service.ts is expanded that handles

      • Http request methods
      • BaseUrl
      • Default headers (Authorization, content-type)
      • Default operators (handleUnauthorizedError)

      The rest is handled in the *-data-access.service.ts services.

    • To facilitate the removal of the use of interceptors a lot of operator functions that handled the logic of the interceptors have been created.

      • handleDataAccessError
      • handleAlertError
      • handleDataAccessFormError
      • notifyDataConnectorSuccessEvent
      • notifyDataConnectorFailureEvent

      These can be used to add this behaviour easily to custom endpoints.

    • This is still based on the angular HttpClient and all functionality of this client can still be used.

  • Added a new layerType ANGULAR_FUNCTIONS. This will expand a new folder for every angular module where functions can reside. All the newly expanded operator functions can be found here.

  • Added authorization support. Added AuthorizationRights to make certain parts of the applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. not accessible (used in guards, directives, services). These rights can be accessed through the ACTION_AUTHORIZATION_SOURCE InjectionToken, the interface can be provided by a control layerLayerLogical separation of functionality within a single system/application, focused on code organization. specific implementation, or you can provide your own. Some directives have been added to handle authorization on the most common used components

    • ButtonAuthorizationDirective
    • TableRowActionMenuAuthorizationDirective

    These directives handle disabling components as well as showing tooltips on why it is disabled. You can look at these as examples when wanting to use the authorization feature somewhere else.

  • Metamodel additions of abstract Connector and View.

    • A DataConnector now has a reference to connectors and these can be a DataProjectionConnector, FilterConnector, etc.
    • A DataView now has a reference to views and these can be a ListView, FilterView, etc.
  • The option angular.allowedFileTypes with a comma separated list of file extension types (eg. .jpeg,.png) as its value. This option restricts file upload fieldsFieldA property of a DataElement expanded to a database column and user interface input element. to only allow the defined file types for the add and edit form.

  • Added custom anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to StorageKeys expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact.. Projects had this concept as well and now they can add their keys.

  • Added updateBadgeCount method to MenuService.

  • Added MENU_SERVICE injection token and an interface to enable custom implementations of the Menu using the angular.customization.hasCustomMenuService option

Changed​

  • Breaking Changes: Related to the addition of Filter support, previously only one querysearch was supported to be used as a filter. This has been changed to any amount of querysearches and findersFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement.. The following breaking changes could be present in your project when upgrading:
  1. The previous standard querysearch model (now filter) has been changed from an interface to a class. Any places in the code where object instancing is used to create a filter object needs to be changed to a new class instance using:
  const filter = new FooBarFilter();
filter.foo = this.barService.getBarValue();

or wrapping the object in the fromObject() function expanded in the new class:

const filter = FooBarFilter.fromObject({obj: {foo: this.barService.getBarValue()}});
  1. The token injecting the InfiniteDataSource used for populating the dropdowns in the forms has been changed from <...>FILTER_DATA_SOURCE to <...>FINDER_FILTER_DATA_SOURCE and <...>QUERY_FILTER_DATA_SOURCE for findersFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement. and queryssearches respectively.
  2. When upgrading from a previous version your previously defined querysearch model file used will have been renamed from <...>Filters to <...>Filter resulting in possible breaking code in custom anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion.. You can safely assume that changing <...>Filters to <...>Filter wil fix most issues in custom code and custom imports.
  3. Some imports could have been removed/added from the expanded files resulting in missing/duplicate imports.
  4. It could be possible that when a DataChild is defined in the model, and you do not have a valid fieldFieldA property of a DataElement expanded to a database column and user interface input element. in the filter of the child pointing to the parent that code will be expanded that will not compile. If you run into this problem, add a fieldFieldA property of a DataElement expanded to a database column and user interface input element. to your filter pointing to the parent.
  5. The FilterOptions have been moved from being calculated in their FilterOptionResolver to being calculated directly in their respective FilterFormComponent(s). If you have any custom code on the list page interacting with filterOptions this will have to be moved to the FilterFormComponent(s)

The above changes can be quite jarring for a mature project to go through, especially if a lot of custom code interacts with the previous filtering. Because of this, a legacy root tag was added:

#angular.filters.legacy

This will attempt to keep the code and visuals as close as possible to the previous querysearch filtering implementation. However, the new classes and names for the filter models will still be used resulting in possible breaking changes as explained above.

  • Breaking Change: Related to the addition of the API specific HttpClient. The use of angular interceptors have been removed and moved to the specific clients. When you use the generic angular httpClient the following will no longer occur
    1. Error mapping (check if error from svc-api and map it to internal error structure)
    2. Error handling (directly act on an error, e.g. 404)
    3. File download error handling
    4. Authentication header addition Either change to the new expanded api specific HttpClient (preferred) or add these interceptors again as custom code while awaiting the refactor.
  • Breaking Change: The interface of the expanded HttpClient is slightly different from the one from Angular, due to following the NS theorems. This means that it is not possible to just swap the client around, however it is not difficult to refactor the code. The InjectionToken is called HTTP_CLIENT and is expanded as httpClient = inject(HTTP_CLIENT), which can give compile errors in custom code. Example: from .get(url, {headers: headers, params: params}) to get ({url: url, options: options}) where options are HttpClientOptions containing the default angular HttpClient parameters as well as API specific HttpClient options.
  • Breaking Change: Some imports are no longer default expanded in *-data-access.service.ts services:
    • catchError
    • AlertErrorModel
    • throwError
    • EMPTY
    • tap
    • filter
  • Breaking Change: When have defined a custom token for a DataSource, you should add the type now. This is necessary, otherwise the datasources cannot be used with multiple projectionsProjectionA tailored subset of fields on a DataElement designed to encapsulate data for a specific technical or functional view..
  • Changed HeaderButtonSorter to OrderSorter, because it did not only apply to header buttons. This feature anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion. comparator class can be used to sort features from low to high, with a lower number being injected earlier.
  • Breaking Change: Made MenuItems a signal, enabling dynamic sidebar items.
  • Updated import anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. of MenuService.
  • Upgraded prime-core: 2025.8.6 -> 2025.16.0. This allows for a change from the use of modules-expansion-runtime to the default way of adding module dependencies added in prime-core. A ModelLoadingListener still makes sure that the featureModules fieldFieldA property of a DataElement expanded to a database column and user interface input element. is fieldFieldA property of a DataElement expanded to a database column and user interface input element. for the AngularApp program for backwards compatibility reasons. In order to make this work, an upgrade of the expanders-maven-plugin to 2025.6.0 is needed.
  • Upgrade PackageJsonExpander to latest versions:
    • Updated to angular 21. See also the migration guide
      • Version updates:
        • @nsx/ngx-ns-core: 1.15.0 -> 2.0.0
        • @angular/*: 19.2.14 -> 21.0.7
        • @angular/cdk: 19.2.18 -> 21.0.6
        • @angular/material: 19.2.18 -> 21.0.6
        • @angular/build: 19.2.15 -> 21.0.5
        • @angular/cli: 19.2.15 -> 21.0.5
        • Update : 19.0.0 -> 20.0.2
        • typescript: 5.8.3 -> 5.9.3
        • zone.js: 0.15.1 -> 0.16.0
      • Changes:
        • Removed @angular/animations, this is being deprecated. However, if necessary it can be re-added custom in the package.json5 file and provided in the app.config. ts.
        • Control flow syntax migration, Angular is planning on removing the ngIf, ngFor, ... directives in Angular 22. They deprecated them a while ago, so it is best to start switching to the control flow syntax.
    • Updated ngx-translate to version 17. See also the migration guide.
    • Updated yarn: 4.7.0 -> 4.12.0
  • Breaking Change: To make the DataSource default to a certain projectionProjectionA tailored subset of fields on a DataElement designed to encapsulate data for a specific technical or functional view., the InjectionToken for the DataSource needed to get a type. For this reason we moved the DataView related tokens to a different file DataView-view.tokens. To get the tokens back in the original place, you can use the option angular.legacy.tokens. This is a cascading option and can be set on AngularApp, FeatureModule or DataConnector. In the future we will start combining the token in the interface file, instead of using a separate token file.
  • 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.:
    • net.democritus:expanders-test-utils: 8.2.6 -> 8.5.0
    • net.democritus:expanders-core: 8.2.6 -> 8.5.0
    • net.democritus.validations.model:validations-test-support: 3.8.0 -> 3.9.0
    • net.democritus.validations.model:validations-core: 3.8.0 -> 3.9.0

Removed​

  • Breaking Change: Removed the resolver that calculated the FilterOption object when navigating to a data child list page.
  • Removed the guard that executed when routing to a data child list page. This was no longer needed.
  • Removed the angular.isTableColumn option. This is no longer used, because the logic is now based on projectionsProjectionA tailored subset of fields on a DataElement designed to encapsulate data for a specific technical or functional view.. A transmuter has been added to convert to the new implementation.
  • Removed angular.isTableColumn option transmuter.
  • Breaking Change: Removed DataConnectorListModel expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact.. It was changed with a generic PaginatedList model from the ns-core runtime library.

6.19.1 (2026-01-23)​

Fixed​

  • Upgrade PackageJsonExpander to latest versions:
    • @nsx/ngx-ns-core: 1.15.0 -> 1.15.1
  • Limit amount of digits instead of enforcing them for digit restrictions.

6.19.0 (2025-12-11)​

Changed​

  • Upgrade PackageJsonExpander to latest versions:
    • @nsx/ngx-ns-core: 1.14.0 -> 1.15.0

6.18.1 (2025-11-21)​

Fixed​

  • Fixed decoding params that are possibly null in guard.

6.18.0 (2025-11-20)​

Changed​

  • Upgrade PackageJsonExpander to latest versions:
    • @nsx/ngx-ns-core: 1.13.0 -> 1.14.0

6.17.2 (2025-11-18)​

Fixed​

  • Decode url encoded params in guard, to avoid using encoded params in data access calls.

6.17.1 (2025-11-07)​

Fixed​

  • Use feature module of dataConnector for the segment parameters in list page.

6.17.0 (2025-11-06)​

Changed​

  • Moved all default implementations of table-view-options behind a tag #angular.data-view.view.table.default
  • Breaking change: LIST_PAGE_SIZE has been moved to StorageKeysTsExpander and renamed to <DATAVIEW>_LIST_PAGE_SIZE.

Added​

  • Added option angular.data-view.hasCustomTableViewOptions to disable default implementation.
  • Added StorageKeysTsExpander to centralize key names used in local storage.

6.16.1 (2025-09-29)​

Fixed​

  • Upgrade PackageJsonExpander to latest versions:
    • @nsx/ngx-ns-core: 1.12.0 -> 1.12.1
  • 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.:
    • org.assertj:assertj-core: 3.27.4 > 3.27.6
    • org.codehaus.mojo:flatten-maven-plugin: 1.7.2 > 1.7.3

6.16.0 (2025-09-19)​

Added​

  • Added nativeTypes:
    • angular:table-cell:string
    • angular:table-cell:boolean
    • angular:table-cell-import:boolean
    • angular:table-cell:number
    • angular:table-cell-import:number
    • angular:table-cell:date
    • angular:table-cell-import:date
    • angular:table-cell:date-time
    • angular:table-cell-import:date-time

Changed​

  • Changed TableExpander to use nativeTypes.
  • 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.:
    • org.apache.maven.plugins:maven-surefire-plugin: 3.5.3 > 3.5.4

6.15.0 (2025-09-02)​

Added​

  • When inspecting a table entry, select the corresponding row in the table.
  • Added min/max date validation to FormFieldErrorParserExpander.
  • Added nominal type to error models.

Changed​

  • Upgrade PackageJsonExpander to latest versions:
    • @nsx/ngx-ns-core: 1.11.1 -> 1.12.0
  • Made translation providing interchangeable.
  • 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.:
    • com.fasterxml.jackson.core:jackson-databind: 2.19.2 > 2.20.0
    • net.democritus.metamodel:modules-expansion-runtime: 1.1.2 > 1.1.3

Fixed​

  • Made #sorting and #filtering undefined in EntryPaginatorDatasourceExpander. This makes sure that there is no funky behaviour possible switching between QS and findersFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement. when using std-api.
  • Fixed wrong use of FeatureModule in mappings involving DataConnector.
  • Fixed wrong DataConnector import that should be DataView.

6.14.1 (2025-08-22)​

Fixed​

  • Header cell of sticky table columns should not be displayed above inspect-panel backdrop.

6.14.0 (2025-08-22)​

Added​

  • Added module-metamodel dependency: net.democritus.metamodel:1.1.2. This allows for correct module dependencies in the projects (FeatureModules that depend on each other).

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.:
    • net.democritus:expanders-test-utils: 7.8.3 -> 8.2.6
    • net.democritus:expanders-core: 7.8.3 -> 8.2.6
    • net.democritus.metamodel:prime-test-support: 2025.1.0 -> 2025.8.6
    • net.democritus.metamodel:prime-core: 2025.1.0 -> 2025.8.6
    • net.democritus:prime-data: 2024.0.3 -> 2025.0.0

6.13.3 (2025-08-21)​

Fixed​

  • Added missing , to component imports for login.component.ts.

6.13.2 (2025-08-19)​

Fixed​

  • Return router.createUrlTrees in guards to avoid double navigation

6.13.1 (2025-08-13)​

Fixed​

  • Upgrade PackageJsonExpander to latest versions:
    • @nsx/ngx-ns-core: 1.11.0 -> 1.11.1

6.13.0 (2025-08-13)​

Added​

  • Added new error code parsing to FormFieldErrorParserImpl:
    • numberFieldMinFractionDigits
    • numberFieldMinIntegerDigits
    • dateRangePickerStartDateInvalid
    • dateRangePickerEndDateInvalid
  • Added new translations to gen.json5:
    • nsx.error.MIN_FRACTION_DIGITS
    • nsx.error.MIN_INTEGER_DIGITS
    • nsx.error.START_DATE_INVALED
    • nsx.error.END_DATE_INVALED
  • Added custom anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion. module-imports in login.component.ts.
  • Added custom anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion. properties in package.json5.

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.:
    • net.democritus.test:expanders-assert: 1.2.1 -> 1.2.2
    • org.assertj:assertj-core: 3.27.3 -> 3.27.4
    • org.codehaus.mojo:flatten-maven-plugin: 1.7.1 -> 1.7.2
  • Refactored error handling setup:
    • Switched to interface, InjectionToken, implementation setup applicable by a tag for:
      • FormErrorHandler: #angular.error.form-error-handler.default
      • AlertErrorHandler: #angular.error.alert-error-handler.default
      • AlertErrorService: #angular.error.alert-error-presenter.default
      • FormFieldErrorParser: #angular.error.form-field-error-parser.default
      • ErrorHandler: #angular.error.error-handler.default
    • Breaking change: Moved everything error handling related to package net.democritus.angular.angularapp.errorhandling.
    • Breaking change: Name changes
      • AlertErrorHandler -> AlertErrorHandlerService, however it is better to use ALERT_ERROR_HANDLER InjectionToken now in custom code.
      • FormErrorHandler -> FormErrorHandlerService, however it is better to use FORM_ERROR_HANDLER InjectionToken now in custom code.
      • AlertErrorService -> SnackbarAlertErrorPresenter.
    • Changed use of AlertErrorHandler and FormErrorHandler to use of their respective InjectionTokens.
    • Changed implementation of FormErrorHandlerService to remove previous instantiated ValidatorFn so that they don't stack.
  • Upgrade PackageJsonExpander to latest versions:
    • @nsx/ngx-ns-core: 1.10.0 -> 1.11.0
  • Changed use of deprecated constructor of Separators in Json5Converter.
  • Made success action for add and edit form interchangeable. Current behaviour has been moved to a feature triggered respectively by the tags #angular.form.add-success.default and #angular.form.edit-success.default.
  • Refactored <DataView-table> component.
    • Breaking change: Switched ngIf to @if, this means that ngIf no longer is default imported.
    • Breaking change: Switched dataSource input property to signal input. Check usage in custom code and change to dataSource().
    • Relaxed typing of dataSource input. This was DataConnectorDataSource but is now
type`DataConnector`
TableSource = NscDataSource < `DataConnector` % Model > &
NscPaginatedDataSource<Page> &
NscSortableDataSource < `DataConnector`
Sorting >;

Fixed​

  • Extracted query-search related code from EntryPaginatorDataSourceExpander in a separate feature.
  • Fixed QS mappings and added tests for this.

6.12.0 (2025-07-29)​

Added​

  • Added attribute anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. for the <nsc-paginator> component in the TableHtmlExpander.

Changed​

  • Updated TableColumnsActionsHtmlExpander with the (click)="$event.stopPropagation()" callback, to stop triggering row inspect of table.
  • Upgrade PackageJsonExpander to latest versions:
    • @nsx/ngx-ns-core: 1.9.0 -> 1.10.0
  • 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.:
    • org.junit.jupiter:junit-jupiter: 5.13.3 -> 5.13.4
    • com.fasterxml.jackson.core:jackson-databind: 2.19.1 -> 2.19.2
    • net.democritus:expanders-test-utils: 7.8.2 -> 7.8.3
    • net.democritus:expanders-core: 7.8.2 -> 7.8.3
    • net.democritus.validations.model:validations-core: 3.7.0 -> 3.8.0
    • net.democritus.validations.model:validations-test-support: 3.7.0 -> 3.8.0

6.11.0 (2025-07-14)​

Added​

  • Added anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. for actions column header.

6.10.0 (2025-07-14)​

Added​

  • Added ErrorModel type to wrap existing error models

6.9.0 (2025-07-09)​

Added​

  • Added optional initialSorting input to DataView-table expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact., to visually set the correct sorting when the dataSource has not been initialized yet.

Changed​

  • Upgrade PackageJsonExpander to latest versions:
    • @nsx/ngx-ns-core: 1.8.2 -> 1.9.0
  • 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.:
    • org.junit.jupiter:junit-jupiter: 5.13.1 -> 5.13.3

6.8.0 (2025-07-02)​

Added​

  • Added a fail-safe for unhandled FormErrorModels.
  • Added custom anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to TableColumnActionsComponent
  • Added API_BASE_URL InjectionToken to not be reliant on the config mechanism directly.
  • Added feature anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to table component ngOnInit

Changed​

  • Moved services from constructor to anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion. in TableColumnActionsComponent
  • Breaking change: Removed component-imports feature anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion. in TableColumnActionsComponent.
  • Put DataSource initialization between default anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. (customization-datasource-initialize) in list-page.ts expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact..
  • Upgrade PackageJsonExpander to latest versions:
    • @nsx/ngx-ns-core: 1.8.1 -> 1.8.2

Fixed​

  • Loading is now set to false when an error occurs in the getList call of DataConnector-datasource.service.ts.
  • Fixed TargetDataViewFinder::findByDataElement throwing an IllegalArugmentException during expansion in some cases.

6.7.1 (2025-06-24)​

Fixed​

  • Sorting is now deserialized again.

6.7.0 (2025-06-24)​

Added​

  • Added angular.auth.excludeUrl option.

Changed​

  • Upgrade PackageJsonExpander to latest versions:
    • @nsx/ngx-ns-core: 1.8.0 -> 1.8.1

Fixed​

  • Breaking change: Changed data children path from parentDataView-childField to parentDataView.childField. This fixes routing in nested structures containing a similar name to parentDataView-.

6.6.1 (2025-06-23)​

Fixed​

  • Fixed private/protected issue in inspect-panel.component.

6.6.0 (2025-06-23)​

Added​

  • Added an EntryPaginatorDatasource that contains the logic for the new nsc-entry-paginator component. This component is also added to the details and inspect components. It can be toggled off by removing the #angular.entry-paginator tag from the profile.
  • Added replaceHistory capabilities to the actions.service calls.
  • Added option angular.customization.hasCustomInitialLoginSequence to make it possible to customize the login sequence with oidc login.
  • Added anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to all form components html.
  • Added custom anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to logout method in auth.service.

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.:
    • org.junit.jupiter:junit-jupiter: 5.13.0 -> 5.13.1
    • net.democritus.maven.plugins:expanders-maven-plugin: 2025.1.0 -> 2025.2.0
    • com.fasterxml.jackson.core:jackson-databind: 2.19.0 -> 2.19.1
    • org.codehaus.mojo:flatten-maven-plugin: 1.7.0 -> 1.7.1
  • Upgrade PackageJsonExpander to latest versions:
    • @nsx/ngx-ns-core: 1.7.1 -> 1.8.0
    • @angular/*: 19.2.9 -> 19.2.14
    • @angular/cdk: 19.2.14 -> 19.2.18
    • @angular/material*: 19.2.14 -> 19.2.18
    • @angular/build: ^19.2.10 -> ^19.2.15
    • @angular/cli: ^19.2.10 -> ^19.2.15
    • zone.js: 0.15.0 -> 0.15.1

Fixed​

  • Fixed applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. would not compile when an exposed file fieldFieldA property of a DataElement expanded to a database column and user interface input element. was not marked as downloadable.

6.5.1 (2025-06-17)​

Fixed​

  • Upgrade PackageJsonExpander to latest versions:
    • @nsx/ngx-ns-core: 1.7.0 -> 1.7.1

6.5.0 (2025-06-05)​

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.:
    • org.junit.jupiter:junit-jupiter: 5.12.2 -> 5.13.0
  • Upgrade PackageJsonExpander to latest versions:
    • @nsx/ngx-ns-core: 1.6.0 -> 1.7.0

Fixed​

  • Fixed dubious filtering of segment-parameter keys in deserialization service.

6.4.0 (2025-05-28)​

Added​

  • Added custom anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. in TableColumnActionsTs expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact..
  • Added provider anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. in TableTs expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact..
  • Added logout call when UNAUTHORIZED error occurs.
  • Added feature anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to:
    • error.interceptor
    • alert-error-handler.service
    • DataView-table.component.html

Changed​

  • Upgrade PackageJsonExpander to latest versions:
    • @nsx/ngx-ns-core: 1.5.1 -> 1.6.0

Fixed​

  • Fixed infinite loading with data-source when api call returned an error.
  • Fixed cancel button for data child pages.

6.3.0 (2025-05-20)​

Added​

  • Added anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to routing in DataView-routing.module.ts.

6.2.0 (2025-05-15)​

Added​

  • Added anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to table component in list-page.component.html.
  • Added anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. in angular.json5 to allow custom build/serve configurations.
  • Added anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. in main.ts to allow custom app configurations.

Changed​

  • Changed list-header-buttons anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to use HeaderButtonSorter.
  • Disabled resizing on inspect and actions table columns.
  • Upgrade PackageJsonExpander to latest versions:
    • @nsx/ngx-ns-core: 1.5.0 -> 1.5.1
  • Made FeatureModule element extendable.

Fixed​

  • Fixed TargetDataConnectorFinder::findByDataElement throwing an IllegalArugmentException during expansion in some cases.

6.1.0 (2025-05-07)​

Added​

  • Added DataView specific segment-parameters serializer services. This allows for less generic expansion of serialization.
  • Added Ln0x support:
    • Added support for all Ln0x link fieldsFieldA property of a DataElement expanded to a database column and user interface input element. in data fetching and visualizing. Based on used control implementation.
    • Added support for cross component links in add and edit forms.
    • Added support for collection link fieldsFieldA property of a DataElement expanded to a database column and user interface input element. in add and edit forms.
  • Added custom anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. in DetailHtmlExpander and DetailTsExpander to allow adding custom fieldsFieldA property of a DataElement expanded to a database column and user interface input element. to detail-component.
  • Added digits restrictions to <nsc-number-field>.
  • Added provideNscNumber to app.config.
  • Added model validation for angular.defaultFilterField option.
  • Added actions feature anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion. in TableColumnActionsHtmlExpander.
  • Added option angular.customization.hasCustomDetailHeaderButtons option to remove default generated buttons and insert custom ones instead.
  • Added custom anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. before and after the authorization top bar dropdown menu buttons.
  • Added custom anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to dataView router provider array.

Changed​

  • Moved filter serialization to angular-querysearch-expanders.
  • Made segment-parameter-url-state related expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. applicable based on the $angular.segment-parameters-state.url tag.
  • Breaking change: Moved DataView__SEGMENT_PARAMETERS_STATE injectionToken to interface file. Otherwise, it was expanded based on DataConnector, but this conflicts with how it actually is used.
  • Breaking change: Moved the DataView__COLUMN_SETTINGS_DATA_ACCESS injectionToken from DataConnector.tokens.ts to DataView-view.tokens.ts. This was wrong before and this fixes having a DataView for a DataConnector that is defined in another FeatureModule.
  • 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.:
    • org.jacoco:jacoco-maven-plugin: 0.8.12 -> 0.8.13
    • org.apache.maven.plugins:maven-surefire-plugin: 3.5.2 -> 3.5.3
    • org.sonarsource.scanner.maven:sonar-maven-plugin: 4.0.0.4389 -> 5.0.0.4751
    • net.democritus.maven.plugins:expanders-maven-plugin: 2025.0.0 -> 2025.1.0
    • net.democritus.metamodel:nsx-metamodel-stack: 2024.8.0 -> 2025.1.0
    • org.junit.jupiter:junit-jupiter: 5.12.1 -> 5.12.2
    • com.fasterxml.jackson.core:jackson-databind: 2.18.3 -> 2.19.0
    • net.democritus:nsx-parent: 2024.2.0 -> 2025.0.0
    • net.democritus.test:expanders-assert: 1.1.1 -> 1.2.0
  • Switched to uses syntax for transport nativeType. This makes it possible to remove expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. features that only exist for adding imports.
  • Use location.back() to close the inspection panel.
  • Added DataView option angular.hasNoActionsColumn that does not expand an 'actions' column in the DataView table component.
  • Changed <nsc-number-field> nativeType implementation.
  • Upgrade PackageJsonExpander to latest versions:
    • @nsx/ngx-ns-core: 1.4.0 -> 1.5.0
    • @angular/*: 19.2.3 -> 19.2.9
    • @angular/cdk: 19.2.4 -> 19.2.14
    • @angular/material*: 19.2.4 -> 19.2.14
    • @angular/cli: 19.2.4 -> 19.2.10
    • typescript: 5.8.2 -> 5.8.3
  • Put all the html and css code for the headers of pages in between default anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion..
  • Delayed loading in data-source to remove jitter.
  • Changed form-error-handler.service to use the Validator DataAccessValidator.formFieldErrors, which allows for longer retention of errors returning from the back-end.

Fixed​

  • Added z-index to mobile viewport styling in LayoutComponentScssExpander to solve the navigation sidebar sliding under some ui-elements like tables and form-elements.
  • Initialized isSidebarCollapsed with the viewportService value of isCurrentlyMobile in the LayoutComponentTsExpander. This avoids that a page reload on mobile viewports obscures the entire current page with the navigation sidebar.
  • Made the 'inspect' column in the stickyColumns from ColumnSettingsSourceExpander not expand when the angular.hasNoInspectColumn option is set to the DataView.
  • Fixed faulty imports when DataView targets a DataConnector from another FeatureModule.
  • Made the angular-querysearch-expanders implementation for the filter function use the current value of the filters instead of the initial value in the InfiniteDatasourceTsExpander ExpanderFeature. This fixes that filters that are applied dynamically after initialization of the datasource are lost when using the nsc-select search-input.

Deleted​

  • Deleted column-settings component. Everything is handled now by the service.

6.0.1 (2025-04-02)​

Fixed​

  • .harvestInclude expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. are now OS independent.

6.0.0 (2025-03-24)​

Added​

  • Implemented clean harvest.
  • Added custom layout option angular.customization.hasCustomLayout. This will trigger the #angular.customization.hasCustomLayout tag and will give custom anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. in the app-routing.module for layout component. It will also not expand the layout.component files.
  • Added column-settings component and services.
  • Added single-line class to date fieldsFieldA property of a DataElement expanded to a database column and user interface input element..
  • Added inspect column to tables in list views.
  • Added inspect action to action services, with a default implementation that can be overwritten by setting the angular.customization.hasCustomInspect option to dataview.
  • Added option angular.hasNoInspectColumn to toggle inspect column of dataview table components.
  • Added method feature anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to data access interface.
  • Added list-header-buttons feature anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion. in list page css.
  • Added css feature anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to AddFormScssExpander
  • Added providers feature anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to DataViewRoutingModuleExpander
  • Added css feature anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to EditFormScssExpander
  • Added segment-parameter services, previously found in the runtime, with anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to extend them.
  • Added yarn support. When applying a profile containing the #angular.yarn tag, yarn as a package manager will be made possible.
  • Added option angular.customization.hasCustomListHeaderButtons to toggle not expand default list header buttons of dataview list page components.

Changed​

  • Made core components standalone:
    • layout.component
    • top-bar.component
    • locale-selector.component
    • confirmation-dialog.component
  • Switched to expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact.-assert:
    • AuthTopBarComponentTsExpander
    • TopbarComponentTsExpander
  • Switched to import strategy:
    • AuthTopBarComponentTsExpander
    • ConfirmationDialogComponentTsExpander
    • LayoutComponentTsExpander
    • TopBarComponentTsExpander
  • Changed layout.component to make use of newly styled sidebar and topbar from ngx-ns-core.
  • Changed <DataView>-list.component to make use of column-settings feature. Also added row-height and refresh buttons.
  • Replaced material buttons with nsc-buttons in components and pages. Breaking change: expanded code does not include material button theme anymore.
  • Moved to harvest-expanders for harvestingHarvestingThe process of extracting and persisting custom code from anchors and ext directories back into source directories. steps. This made it possible to remove a lot of expansion steps and helper classes for harvestingHarvestingThe process of extracting and persisting custom code from anchors and ext directories back into source directories.. To make this work, .harvestInclude expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. have been added. Breaking change: Some files on root level that do not harvest anymore need to be added in the custom anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. of .harvestInclude. Also move the ext files of the AngularApp in a folder called src.
  • Breaking change: Extracted QuerySearch related expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. to separate bundle, named angular-querysearch-expanders. If you want the same behaviour as before, you need to add this bundle.
  • Breaking change: Refactored details page to new styling. This is not form based anymore. Named DataView-detail-page now. It also has a reusable (see table inspect) component called DataView-detail. Title is now translated completely.
  • Breaking change: Refactored list page to new styling. Buttons change and anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. added. Title is now translated completely.
  • Breaking change: Refactored Angular module use to new Angular recommended setup (standalone).
    • app.config.ts instead of app.module.ts.
    • app.routes.ts instead of app-routing.module.ts.
    • FeatureModule.routes.ts instead of FeatureModule-routing.module.ts.
    • Removed FeatureModule.module.ts.
  • Changed location of config.js script loading in index.html to after base href set.
  • Updated to Angular 19. See update guide.
  • 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.:
    • net.democritus.maven.plugins:expanders-maven-plugin: 2024.7.0 -> 2025.0.0
    • com.fasterxml.jackson.core:jackson-databind: 2.18.2 -> 2.18.3
  • Upgrade PackageJsonExpander to latest versions:
    • @nsx/ngx-ns-core: 1.3.4 -> 1.4.0

Removed​

  • Breaking change: Removed core.module.
  • Breaking change: Removed shared.module together with last shared components:
    • nsx-datepicker
    • nsx-yes-no-toggle
  • Breaking change: Removed DialogServiceExpander, it has been moved to ngx-ns-core.
  • Breaking change: Removed ConfirmationDialog component, it has been moved to ngx-ns-core.
  • Breaking change: Removed legacy forms.
  • Breaking change: Removed pages module. Everything is moved to DataView-routing.module.
  • Removed angular.migration.filter option.

Fixed​

  • Scrollbars are only visible when necessary in Chromium-based browsers.

5.6.3 (2025-03-21)​

Fixed​

  • Upgrade PackageJsonExpander to latest versions:
    • @nsx/ngx-ns-core: 1.3.3 -> 1.3.4

5.6.2 (2025-03-18)​

Fixed​

  • Errors coming from the backend linked to a disabled formControl will now be shown as AlertError.

5.6.1 (2025-03-13)​

Fixed​

  • Added replaceUrl: this.isDataChild as navigationOption to the actionsService actions: add, details, edit and list. This fixes the issue that every executed action on a data-child pushes a new history entry for the browser.
  • Added replaceUrl: true as navigationOption in the DataView childRouteGuards to fix that a redirect pushes a new history entry for the browser.
  • Upgrade PackageJsonExpander to latest versions:
    • @nsx/ngx-ns-core: 1.3.2 -> 1.3.3

5.6.0 (2025-02-25)​

Added​

  • Added stopping of previous getList when multiple are done using the DataConnector-data-source.
  • Added 'disable save button feature whilst waiting on response' feature.
  • Added option angular.apiRoot.

Changed​

  • Breaking change: Changed AngularApp ProgramType to have projectRoot/angular/angularApps/$angularApp.name$ as sourceDirectory for harvest, ext and model directories of the angularApp. This allows multiple AngularApps to co-exist in a project.
  • Breaking change: Changed allowed value of option angular.isFilterField. This does not require a DataRef anymore, but only needs the name of the linked DataConnector.
  • Breaking change: If you use the option angular.hasCustomBranding, you will get custom anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to style your own login component.
  • Changed MainScssExpander to use all linked DataViews of all linked FeatureModules of the current AngularApp instead of all DataViews from the DataRegistry to avoid expanding all DataViews in every AngularApp. Only the used DataViews should be used.
  • Refactored use of dataRegistry, it is not used anymore to retrieve the DataConnectors or DataViews.
  • Refactored finderFinderA search specification combining field-operator pairs to execute standard data queries on a DataElement. for DataConnectors and DataViews. It now used an algorithm that first looks at elements present in its own FeatureModule.
  • Breaking change: Wrapped <title> tag with the default anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. branding-title to make it customizable when using angular.hasCustomBranding.

Fixed​

  • Upgrade PackageJsonExpander to latest versions:
    • @nsx/ngx-ns-core: 1.3.1 -> 1.3.2

Removed​

  • Removed custom branding features for login expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact..

5.5.2 (2025-01-27)​

Fixed​

  • Absolute route for children now set correctly on refresh.

5.5.1 (2025-01-20)​

Fixed​

  • Upgrade PackageJsonExpander to latest versions:
    • @nsx/ngx-ns-core: 1.3.0 -> 1.3.1

5.5.0 (2025-01-09)​

Added​

  • Added expansion step that resets the ArtifactRegistry before every expansion.
  • Added AngularApp to the extendable elements.

Changed​

  • Browsing to the login page, while already logged in, redirects to the home page.
  • Upgrade PackageJsonExpander to latest versions:
    • @nsx/ngx-ns-core: 1.2.0 -> 1.3.0
  • 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.:
    • net.democritus.maven.plugins:expanders-maven-plugin: 2024.6.1 -> 2024.7.0
    • com.fasterxml.jackson.core:jackson-databind: 2.18.1 -> 2.18.2
    • org.assertj:assertj-core: 3.27.0 -> 3.27.2

Fixed​

  • Fixed child routing always using uuid of first selected parent due to initialization of absolute route in constructor only being called once, on module load.

Removed​

  • Removed unnecessary functionalKey check in ListTsExpander.

5.4.0 (2024-12-12)​

Added​

  • Added searchKey attribute for <nsc-select> components explicitly in forms. This is based on the angular.defaultFilterField option, if present, otherwise it is the constant displaylabel. This attribute value can be overridden in custom anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion..
  • Added custom anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion. providers to <DataView>Module.ts. This now allows supplying or overriding providers.

Changed​

  • Upgrade PackageJsonExpander to latest versions:
    • @nsx/ngx-ns-core: 1.1.1 -> 1.2.0

Fixed​

  • Fixed infinite loading bug when reloading browser on a page with DataView Children open.

5.3.2 (2024-12-09)​

Fixed​

  • It was possible to have data children filtered on the wrong parent. The CanActivate guard checked if an id is present, but it did not check if it was the correct id. This is now fixed.

5.3.1 (2024-12-05)​

Added​

  • Added convert method to <DataConnector>-SegmentParametersState.
  • Added DataViewGuard to fix datachildren issue with same child different identifier to same parent.

Changed​

  • Upgrade PackageJsonExpander to latest versions:
    • @nsx/ngx-ns-core: 1.1.0 -> 1.1.1

Fixed​

  • Fixed datachild imports.

5.3.0 (2024-12-03)​

Added​

  • Added custom variables anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to table component.
  • Added segment parameters save capabilities with url save implementation:
    • Created <DataConnector>-SegmentParametersState that has the following methods:
      • saveState({segmentParameters}: {segmentParameters: %dataConnector%SegmentParameters}): void;
      • retrieveState(): %dataConnector%SegmentParameters;
    • To use this and make it possible to swap out the implementation a <DataConnector>_SEGMENT_PARAMETERS_STATE InjectionToken has been added that can be injected.
    • Created <DataConnector>-SegmentParametersUrlStateService that implements the <DataConnector>-SegmentParametersState interface. It uses the SegmentParametersClearer, SegmentParametersSerializer, SegmentParametersDeserializer and SegmentParametersUrlSaver from ngx-ns-core to save/retrieve SegmentParameters to/from the url.
    • In the list page every change to the SegmentParameters now get persisted. On init of the page these parameters get read from storage and used to initialize the datasource.
  • Added child DataView capabilities. This is based on the dataChilds model in elements. If no DataView is present for the chosen child, an error will show at expansion time:
    • Added translations for these pages in gen.json5.
    • Added IS_DATA_CHILD InjectionToken in core.tokens expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact..
    • Added use of NavTabDirective and NavTabGroupComponent to visualize data children in tabs.
    • Added <DataView>.resolver to handle getting <DataConnector>Model before routing to details or edit. This resolver also contains functions for its children to provide (1) the parent information to the child add form and (2) the correct filter options to make the parent filter static on child list view.
    • Added the children of a DataView as lazy loaded children of the detail route.
  • Added edit button on details page.
  • Added [initialSorting]="initialSorting" to <nsc-table> component to reflect the sorting correctly.

Changed​

  • Caution: Made following routing options default (these can be overridden where effect is not desired):
    • bindToComponentInputs: true
    • paramsInheritanceStrategy: 'always'
  • Changed Subject to BehaviourSubject for sort observable in <DataConnector>-data-source expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact..
  • <DataConnector>-data-source now also updates individual observables on initialization of the segment parameters.
  • Changed <DataView>-action.service to handle routing correctly in data children. This now gets provided on module level as well as on root.
  • Breaking Change: Following has been requested by several projects and also fits well together with data children. The routing of edit and details has been switched around with :id. Meaning details/:id has become :id/details.
  • Breaking Change: Currently routing used always :id als path parameter. With data children this is not possible anymore, because :id would get overridden. Now the path parameter is as follows: :<featureModule><dataView>Id. Please check this where you retrieve path parameters from the route.
  • Breaking Change: Because resolvers are now used, details and edit pages have a <DataConnector>Model input attribute that gets filled. It does not rely on retrieve the id from the path parameters anymore.
  • Breaking Change: The details page uses InputSignals, because of the added reactivity needed to initialize children filters. This is also the way forward with Angular 19. What breaks is that calls to the model in the html template now needs a () behind it.
  • Changed behaviour of cancel in add page, it now does this.location.back().
  • Breaking Change: Added [filterOptions] be default in list page. This can interfere with custom code.
  • 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.:
    • net.democritus.maven.plugins:expanders-maven-plugin: 2024.6.0 -> 2024.6.1
  • Upgrade PackageJsonExpander to latest versions:
    • @nsx/ngx-ns-core: 1.0.0 -> 1.1.0

5.2.1 (2024-11-26)​

Fixed​

  • Fixed the custom anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. in auth.config.ts.

5.2.0 (2024-11-20)​

Added​

  • Added custom anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. before and after form components in the new add and edit page HTML templates.
  • Added custom anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to the auth.config.ts file.

Changed​

  • Breaking change: Replaced existing custom add/edit-page anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. with add/edit-page-after-form anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion..
  • 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.:
    • net.democritus.metamodel:prime-test-support: 2024.6.0 -> 2024.7.0
    • net.democritus.metamodel:prime-core: 2024.7.0 -> 2024.8.0
    • net.democritus.metamodel:nsx-metamodel-stack: 2024.7.0 -> 2024.8.0
    • net.democritus.maven.plugins:expanders-maven-plugin: 2024.5.0 -> 2024.6.0
    • org.sonarsource.scanner.maven:sonar-maven-plugin: 4.0.0.4121 -> 5.0.0.4389
    • net.democritus:nsx-parent: 2024.1.0 -> 2024.2.0

5.1.0 (2024-11-07)​

Added​

  • Added FilterOption functionality. You can now define a FilterOption object using custom code in the <list-page> component. This can be used as attribute for the <nsc-filter> component as well as the <DataView-filter-form> component. This will disable certain filters or make them hidden.
  • Added DataView and DataConnector to the extendable elements.

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.:
    • net.democritus.metamodel:prime-test-support: 2024.6.0 -> 2024.7.0
    • net.democritus.metamodel:prime-core: 2024.6.0 -> 2024.7.0
    • net.democritus:expanders-test-utils: 7.7.3 -> 7.8.2
    • net.democritus:Expanders: 7.7.3 -> 7.8.2
    • net.democritus:expanders-core: 7.7.3 -> 7.8.2
    • net.democritus:base-components-model: 2024.6.1 -> 2024.6.2
  • Upgrade PackageJsonExpander to latest versions:
    • @nsx/ngx-ns-core: 0.7.0 -> 1.0.0
    • @angular/*: ^18.2.9 -> ^18.2.11
    • @angular/cdk: ^18.2.10 -> ^18.2.12
    • @angular/material: ^18.2.10 -> ^18.2.12
    • @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
    • @ngx-translate/core: ^15.0.0 -> ^16.0.3
  • Updated ngx-translate to latest version and removed use of TranslateModule. See migration guide for more information.
  • Changed uses of valueField neq null or linkField neq null to linkFieldType check in expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact..

5.0.3 (2024-11-06)​

Fixed​

  • Added fieldFieldA property of a DataElement expanded to a database column and user interface input element. specific classes on fieldFieldA property of a DataElement expanded to a database column and user interface input element. for filter-form component.
  • Fixed DATASOURCE InjectionTokens for filter-form. Now an InjectionToken is expanded for every filter fieldFieldA property of a DataElement expanded to a database column and user interface input element. present, it does not implicitly rely on linkFields anymore.
  • Fixed lowerCase legacy filter formControlName entries.

5.0.2 (2024-11-04)​

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.:
    • org.apache.maven.plugins:maven-surefire-plugin: 3.5.1 -> 3.5.2

Fixed​

  • Legacy filter forms were not altered with the camelCase filter name breaking change.

5.0.1 (2024-10-31)​

Fixed​

  • Made expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. that use LINK_FIELDS, only allow Ln02. This was not done consistently. However, this can be changed in the future.

5.0.0 (2024-10-30)​

caution

This version contains some breaking changes. Please refer to the migration guide in the documentation for more information about this change and what code is affected.

This major release marks the beginning of control layerLayerLogical separation of functionality within a single system/application, focused on code organization. separation in the angular stack. This has been accomplished by expanding DataAccess interfaces and InjectionTokens. This token can be implemented by a separate expansion resourceExpansion Resource (ExpansionResource). A reusable resource bundle containing expanders and features that provide specific application capabilities, defined in the expansion settings and added to the classpath during expansion. specific to a certain control layerLayerLogical separation of functionality within a single system/application, focused on code organization. implementation, e.g. rest-expanders, json:API, ...

Added​

  • Added custom serve-options anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. in angular.json5.
  • Breaking change: Added <DataConnector>-event.model.ts and <DataConnector>-event.service.ts where DataAccess events can be defined and subscribed to. This is now separated from the <DataConnector>-data-access.service.

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.:
    • net.democritus:base-components-model: 2024.5.3 -> 2024.6.1
    • net.democritus:expanders-test-utils: 7.7.2 -> 7.7.3
    • net.democritus:Expanders: 7.7.2 -> 7.7.3
    • net.democritus:expanders-core: 7.7.2 -> 7.7.3
    • net.democritus.maven.plugins:expanders-maven-plugin: 2024.4.0 -> 2024.5.0
    • com.fasterxml.jackson.core:jackson-databind: 2.17.2 -> 2.18.1
    • net.democritus.test:expanders-assert: 1.0.0 -> 1.1.0
    • net.democritus.model:modelTransmutations-test-support: 2.4.3 -> 2.5.0
    • net.democritus.model:modelTransmutations-core: 2.4.3 -> 2.5.0
    • net.democritus.validations.model:validations-test-support: 3.6.2 -> 3.7.0
    • net.democritus.validations.model:validations-core: 3.6.2 -> 3.7.0
    • org.junit.jupiter:junit-jupiter: 5.11.0 -> 5.11.3
    • org.apache.maven.plugins:maven-surefire-plugin: 3.5.0 -> 3.5.1
  • Upgrade PackageJsonExpander to latest versions:
    • @nsx/ngx-ns-core: 0.6.0 -> 0.7.0
    • @angular/*: ^18.2.5 -> ^18.2.9
    • @angular/cdk: ^18.2.5 -> ^18.2.10
    • @angular/material: ^18.2.5 -> ^18.2.10
    • @angular-devkit/*: ^18.2.5 -> ^18.2.10
    • @angular/cli: ^18.2.5 -> ^18.2.10
    • @angular/compiler-cli: ^18.2.5 -> ^18.2.9
    • tslib: ^2.7.0 -> ^2.8.0
  • Refactored login authentication call. Now it uses a AUTH_DATA_ACCESS InjectionToken that implements the AuthDataAccess interface that can be implemented by a control layerLayerLogical separation of functionality within a single system/application, focused on code organization. implementation.
  • Breaking change: Refactored <DataConnector>-data-access.service to use data access pattern. Before, all calls were directly to the <DataConnector>-data-access.service. This has been changed, and now instead a <DATACONNECTOR>_DATA_ACCESS InjectionToken is used. This token implements the <DataConnector>DataAccess interface that can be implemented by a control layerLayerLogical separation of functionality within a single system/application, focused on code organization. implementation. The method signatures got some small changed:
    • getSingle({ id }: { id: string }): Observable<%dataConnector%Model>;
    getList({ segmentParameters }: { segmentParameters?: %dataConnector%SegmentParameters }): Observable<%dataConnector%ListModel>;
    • create({ model }: { model: %dataConnector%Model }): Observable<{ id: string }>;
    • update({ model }: { model: %dataConnector%Model }): Observable<void>;
    • delete({ id }: { id: string }): Observable<void>;
  • Breaking change: Refactored file IO to use data access pattern. Before, an all-purpose upload and download method was available in the http.service. This has been removed, and now it uses a FILE_IO_DATA_ACCESS InjectionToken that implements the FileIoDataAccess interface that can be implemented by a control layerLayerLogical separation of functionality within a single system/application, focused on code organization. implementation.
  • Breaking change: Filter fieldsFieldA property of a DataElement expanded to a database column and user interface input element. are now camelCase. Previous filter fieldsFieldA property of a DataElement expanded to a database column and user interface input element. found in <DataConnector>-filters.ts ( and related services/components) were lowercase. This was a overfitting to the rest-expanders, with the separation of the control layerLayerLogical separation of functionality within a single system/application, focused on code organization. this has been fixed. This will result in custom code that not will compile and potentially missing translations.
  • The TableTsExpander and TableHtmlExpander got a refactor of the pagination implementation. Now using the page.model.ts DTO from @nsx/ngx-ns-core.
  • The DataSourceTsExpander got a refactor to true private fieldsFieldA property of a DataElement expanded to a database column and user interface input element. and new implementation of the updated NscPaginatedDataSource using the Page DTO.
  • Updated all xsd versions to latest.

Deleted​

  • Removed dependencies:

    • net.democritus:rest-jaxrs-stack
    • net.democritus:rest-expanders
    • one.util.streamex
  • Breaking change: Removed angular-jaxrs-stack definition. This has been moved to a new repo and renamed to angular-stdapi-stack.

  • Breaking change: Removed http.service. The implementation of this service was control layerLayerLogical separation of functionality within a single system/application, focused on code organization. specific. Due to the separation of the control layerLayerLogical separation of functionality within a single system/application, focused on code organization. implementation this service has been removed. Functionality has been moved to either FILE_IO_DATA_ACCESS of other helper services/functions with the same behaviour.

  • Breaking change: Removed rest-expanders specific DTO expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact..

    • HrefModelTsExpander
    • InstanceCreatedTsExpander
    • LinksModelTsExpander
    • PageModelTsExpander
    • PaginatedListTsExpander
    • PaginationTsExpander

    These have been either moved to the angular-svcapi-expanders or replaced with an angular specific DTO. For the latter PageModel.ts and Pagination.ts are a good example. These have been replaced by page.model.ts from @nsx/ngx-ns-core. The rest-expander and standard APIs alternative will map to this.


4.11.1 (2024-09-30)​

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.:
    • org.junit:junit-bom: 5.11.0 -> 5.11.1

Fixed​

  • Added tag applicability check to FilterFormModelExpander.

4.11.0 (2024-09-25)​

Added​

  • Added custom attribute anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to <nsc-table-row-action-menu-item> components usages in <dataview-table-column-actions> component.

Changed​

  • New forms implementation:
    • Added legacy.angular.oldForms.reenable option on AngularApp, FeatureModule and DataView to re-enable old form behaviour. This option is cascading.
    • Forms are now split up in to:
      • dataview-add/edit/filter-form.directive.ts: This directive contains the definition and submit logic of the form. It implements the FormDefinition interface.
      • dataview-add/edit/filter-form.component.*: This is a self-containing form that gives a visual representation of the form and used the directive to add logic to the form. Using the FormHostControlDirective this form can also be used as a subset of a larger form. The definition of form buttons can be changed using content with the FormButtonsDirective. The visual placement of the form is now powered by css-grid and can be easily altered using custom anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion..
      • dataview-add/edit/filter.form.ts: The forms ar now typed and defined in this file.
      • dataview-add/edit/filter-form-mapper.service.ts: This mapper service will map the form representation onto a dataview.model.ts or dataconnector.filters.ts.
      • dataview-add/edit-page.component.*: The definition of the page that uses the form component. The page now has an add/edit_page_title translation key to make grammatically correct changes. This component is now standalone.
      • Changed route from /new to /add. Also, the breadcrumb translation has been changed.
  • Changed typing in dataconnector-filters.ts. Links are now typed as Reference and dates are typed as Date.
  • Changed value typeValue Type (ValueType). A specifier defining how data in a Field is rendered in the UI, stored in the database, and validated in business logic. of <nsx-date-picker> component to also accept null.
  • Changed value typeValue Type (ValueType). A specifier defining how data in a Field is rendered in the UI, stored in the database, and validated in business logic. of <nsx-yes-no-toggle> component to also accept null.
  • Changed that non-required fieldsFieldA property of a DataElement expanded to a database column and user interface input element. in dataconnector.model.ts, dataconnector-create.document.ts and dataconnector-modify.document.ts can also be null instead of only undefined.
  • Increased anyComponentStyle css budgets to 30kb for a warning and 40kb for an error.
  • 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.:
    • one.util:streamex: 0.8.2 -> 0.8.3
    • net.democritus:base-components-model: 2024.5.2 -> 2024.5.3
    • net.democritus.model:prime-builders: 2.4.2 -> 2.4.3
    • net.democritus.maven.plugins:expanders-maven-plugin: 2024.3.2 -> 2024.4.0
    • net.democritus:rest-jaxrs-stack: 4.32.1 -> 4.34.0
    • net.democritus:rest-expanders: 4.28.1 -> 4.29.0
    • net.democritus.metamodel:nsx-metamodel-stack: 2024.5.0 -> 2024.6.0
    • net.democritus.metamodel:prime-metamodel: 2024.5.0 -> 2024.6.0
    • net.democritus.metamodel:prime-core: 2024.5.0 -> 2024.6.0
  • Upgrade PackageJsonExpander to latest versions:
    • @nsx/ngx-ns-core: 0.5.0 -> 0.6.0
    • @angular/*: ^18.2.2 -> ^18.2.5
    • @angular-devkit/build-angular: ^18.2.2 -> ^18.2.5
    • tslib: ^2.6.3 -> ^2.7.0
    • Pinned rollup version to 4.22.4 to fix vulnerabilities.

Deleted​

  • Removed unused imports from dataview.module.ts, because now add- and edit-pages are standalone.

4.10.3 (2024-09-16)​

Fixed​

  • Upload file client method did not work for Chrome. This browser does not provide the ResponseHeader event the method was relying on. Instead now the Response event is being used.

4.10.2 (2024-09-04)​

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.:
    • net.democritus.test:expanders-assert: 0.10.0 -> 1.0.0

Fixed​

  • Compatibility issue with micro-radiant. Added FeatureModuleDataRefConverter.

4.10.1 (2024-09-03)​

Fixed​

  • Increased error budget from 10kb to 30kb. Needed to handle styling of quill.
  • Upgrade rest-expanders:
    • net.democritus:rest-jaxrs-stack: 4.32.0 -> 4.32.1
    • net.democritus:rest-expanders: 4.28.0 -> 4.28.1

4.10.0 (2024-09-03)​

Added​

  • Added support for audit.modify.timestamp and audit.create.timestamp options, and the behaviour of the rest-expanders with these options. Use document values of created and lastModified. Also added support for sorting.
  • Added support for MarkupString valueType in add en edit pages.
  • Added blobErrorInterceptor to httpClient. This will convert blob errors that actually should be a json.
  • Added validation that checks for every DataView in a rest-expanders setting if a default filter is defined. This can be either name or the value of the option angular.defaultFilterField.
  • Added allowedCommonJsDependencies entry for quill-delta.
  • Added testing dependencies:
    • org.assertj:assertj-core: 3.26.3
    • org.junit.jupiter:junit-jupiter: 5.11.0

Changed​

  • Angular 18 support:
    • @angular/*: 17.x.x -> 18.2.2
    • typescript: 5.4.5 -> 5.5.4
    • Changed Webpack to Vite.
    • Angular Material still has material design 2 support.
  • Upgrade PackageJsonExpander to latest versions:
    • @nsx/ngx-ns-core: 0.4.0 -> 0.5.0
    • tslib: 2.6.2 -> 2.6.3
    • zone.js: 0.14.8 -> 0.14.10
  • 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.:
    • net.democritus.model:modelTransmutations-core: 2.4.2 -> 2.4.3
    • net.democritus.model:model-builder-expanders: 2.4.2 -> 2.4.3
    • org.apache.maven.plugins:maven-surefire-plugin: 3.4.0 -> 3.5.0
    • net.democritus.test:expanders-assert: 0.9.1 -> 0.10.0
    • net.democritus:rest-jaxrs-stack: 4.30.1 -> 4.32.0
    • net.democritus:rest-expanders: 4.26.0 -> 4.28.0
    • net.democritus.metamodel:nsx-metamodel-stack: 2024.4.5 -> 2024.5.0
    • net.democritus.metamodel:prime-metamodel: 2024.4.5 -> 2024.5.0
    • net.democritus.metamodel:prime-core: 2024.4.5 -> 2024.5.0
    • net.democritus:querysearch-expanders: 3.3.0 -> 3.3.1
  • Placed error handling of http calls in DataConnector-data-access.service. This way a rest call is always handled correctly, even in error.
  • Changed validations test to expanders-assert.
  • Changed transmutations test to expanders-assert.
  • Changed metamodel to use ontology-expanders.

Fix​

  • Fixed copy error in EnglishI18nJsonExpander. Changed to min to max.
  • Fixed filter value mapping in http.service. When an array is given as filter value, this now gets converted to a comma separated list and set in the HttpParams. Before the same filter key was added multiple times with different values to the HttpParams. That behaviour could not be handled by the rest-expanders back-end.
  • Translations of link fieldsFieldA property of a DataElement expanded to a database column and user interface input element. in FilterForm component were fixed.
  • Made test options hidden.
  • fixed #131: Fixed scrolling behaviour of layout. Now sidebar and main content will scroll correctly.
  • Re-added fieldFieldA property of a DataElement expanded to a database column and user interface input element. specific classes on fieldFieldA property of a DataElement expanded to a database column and user interface input element. components for add and edit pages.
  • Fixed missing reason in unknown rest-expanders http errors.
  • Fixed unused headers in download file method (http.service).

Removed​

  • Removed hamcrest dependency.
  • Removed builders.

4.9.1 (2024-08-20)​

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.:
    • org.junit:junit-bom: 5.10.2 -> 5.11.0
    • org.apache.maven.plugins:maven-surefire-plugin: 3.3.1 -> 3.4.0

Fixed​

  • AnchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion. names in FilterFormHtmlExpander were not the fieldFieldA property of a DataElement expanded to a database column and user interface input element. names, but the types. Changed to fieldFieldA property of a DataElement expanded to a database column and user interface input element. names.

4.9.0 (2024-08-14)​

Added​

  • Added custom anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to data-element-filter-form.component.ts ExpanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. to allow customising defaultSegmentParameters.
  • Added custom anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to TopbarComponentScssExpander. While adding the setup also changed to accommodate expanders-assert and import-strategy.
  • Added support for file IO:
    • DataConnectorField element added to angularProjects.
    • FieldIoSourceExpander generates an IO client service for every DataConnectorField.
    • RestExpFileDataConnectorFieldEnricher model loading step adds a DataConnectorField for every Field that is a file.
    • Added rules that will trigger based on rest-expander options (svcapi.endpoint.upload and svcapi.endpoint.download).
  • Added columns attribute to DataViewTable component that accepts an array of strings representing column ids. This can be used to only render these corresponding columns.

Changed​

  • Implemented // TODO implement new error service in data-element-details.component.ts and data-element-edit.component.ts by replacing the {next: () => {}, error: (err) =>{}} subscription with a regular subscription.
  • Changed translationKey of filterForm linkField dropdowns to use filterField instead of fieldsFieldA property of a DataElement expanded to a database column and user interface input element. in data-element-filter-form.component.html.
  • Split defaultSegmentParameters definition and linkFieldDataSource initialization in data-element-filter-form.component.ts to allow customising defaultSegmentParameters.
  • Split value-definition and usage of the fieldsFieldA property of a DataElement expanded to a database column and user interface input element. id and diplayLabel in RestExpReferenceMapperExpander.stg to allow customisation of the reference mapping. Also added custom anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. in the RestExpModelMapperExpander to allow the same functionality.
  • 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.:
    • net.democritus.test:expanders-assert: 0.9.0 -> 0.9.1
    • org.hamcrest:hamcrest: 2.2 -> 3.0
    • net.democritus:rest-jaxrs-stack: 4.21.1 -> 4.30.1
    • net.democritus:rest-expanders: 4.21.1 -> 4.26.0
    • net.democritus:base-components-model: 2024.3.4 -> 2024.5.2
    • net.democritus:querysearch-expanders: 2.28.0 -> 3.3.0
    • net.democritus:prime-data: 2024.0.2 -> 2024.0.3
    • net.democritus.maven.plugins:expanders.maven.plugin: 2024.2.1 -> 2024.3.2
    • net.democritus.metamodel:nsx-metamodel-stack: 2024.3.13 -> 2024.4.5
    • net.democritus.metamodel:prime-metamodel: 2024.3.13 -> 2024.4.5
    • net.democritus.metamodel:prime-test-support: 2024.3.13 -> 2024.4.5
    • net.democritus.metamodel:prime-core: 2024.3.13 -> 2024.4.5
    • net.democritus:expanders-test-utils: 7.5.0 -> 7.7.2
    • net.democritus:Expanders: 7.5.0 -> 7.7.1
    • net.democritus:expanders-core: 7.5.0 -> 7.7.1
    • com.fasterxml.jackson.core:jackson-databind: 2.17.1 -> 2.17.2
  • Added support for file IO:
    • Add form Html and Ts expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. can handle files.
    • Edit form Html and Ts expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. can handle files.
    • Detail page Html and Ts expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. can handle files.
    • Table component Html and Ts expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. can handle files.
    • Model and mapper changes to support files.
    • Translations and errors updated to accommodate files.
    • Updated data-access.service and http.service to handle file uploads and downloads.
  • Upgrade PackageJsonExpander to latest versions:
    • @nsx/ngx-ns-core: 0.3.0 -> 0.4.0

4.8.1 (2024-07-30)​

Changed​

  • Made actions column sticky for tables, so that overflow does not push it of screen.

Fixed​

  • Added forgotten sidebar-collapsed class in <layout> component.

4.8.0 (2024-07-25)​

Added​

  • Added custom anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to DataConnector.tokens.ts ExpanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact..
  • Added custom anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to tsconfig.json5 ExpanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. for lib customizations.
  • LinkFields and ValueFields are now seen as sortable, only CalculatedFields are ignored.
  • Added const type to the service import handler of AngularImportResolver.
  • Added new error handling expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact.:
    • ErrorInterceptorExpander
    • ErrorMapperInterceptorExpander
    • AlertErrorModelExpander
    • FieldErrorModelExpander
    • FormErrorModelExpander
    • RestExpDataAccessErrorDocumentExpander
    • AlertErrorHandlerServiceExpander
    • AlertErrorServiceExpander
    • ErrorHandlerServiceExpander
    • FormErrorHandlerServiceExpander
    • FormFieldErrorParserExpander
    • RestExpDataAccessErrorMapperExpander
    • RestExpDataAccessFormErrorMapperExpander
    • FormFieldErrorParserExpander
  • Added translations for error codes in EnglishI18nJsonExpander.
  • Added LOGGER token to CoreTokensExpander.
  • Added nativeTypes:
    • angular:form-input-import:big-string
    • angular:form-input:big-string
    • angular:form-input-import:number
    • angular:form-input:number
    • angular:form-input-import:date-time
    • angular:form-input:date-time

Changed​

  • Changed importStatement method of AngularServiceImportsDefinition to also correctly translate service tokens names that do not contain an underscore.
  • Changed overflow styling of layout to make tables scroll and keep the rest fixed.
  • Changed column-gap to gap property for DataView-filter-form.scss expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact..
  • Changed date pipes in DataView-table-component to use nscDatePipe and nscDateTimePipe instead.
  • Changed AuthInterceptorExpander to a function instead of a service. This also changes the location of the artifactArtifactA build or deployment result, such as a Docker container image or Java archive, produced by a software project., which is a Breaking Change, from /services to /constants in the auth module.
  • Changed error handling in DataAccessTsExpander, NewTsExpander, EditTsExpander, LoginComponentTsExpander and ActionServiceTsExpander.
  • ** Breaking Change**: Changed provideNscDateFormat to provideNscDateFormats in AppModuleExpander.
  • Changed AppModuleExpander to provide HttpClient with function that accepts providers.
  • Changed AppModuleExpander to provide a root error handler.
  • Changed AppModuleExpander to provide a FORM_FIELD_ERROR_PARSER.
  • Upgrade PackageJsonExpander to latest versions:
    • @nsx/ngx-ns-core: 0.2.0 -> 0.3.0
    • @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
    • zone.js: ~0.14.6 -> ~0.14.8
  • Updated simpleValueTypes with new nativeTypes.
  • Changed New*Expander and Edit*Expander to use nativeTypes.

Fixed​

  • Fixed double login call when using basic authentication.
  • Fixed missing translation in delete dialog.

4.7.1 (2024-07-16)​

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.:
    • net.democritus.metamodel:nsx-metamodel-stack: 2024.3.13 -> 2024.3.15
    • net.democritus.metamodel:prime-metamodel: 2024.3.13 -> 2024.3.15
    • net.democritus.metamodel:prime-test-support: 2024.3.13 -> 2024.3.15
    • net.democritus.metamodel:prime-core: 2024.3.13 -> 2024.3.15
    • net.democritus:expanders-test-utils: 7.4.5 -> 7.5.0
    • net.democritus:Expanders: 7.4.5 -> 7.5.0
    • net.democritus:expanders-core: 7.4.5 -> 7.5.0
    • net.democritus.test:expanders-assert: 0.7.1-SNAPSHOT -> 0.9.0
    • org.apache.maven.plugins:maven-surefire-plugin: 3.3.0 -> 3.3.1

4.7.0 (2024-07-09)​

Added​

  • Made oidc authentication flow able to redirect to initial load url after authentication was successful.
  • Added custom-table-attributes anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. to DataView-table component.
  • Added support for yes-no-toggle in DataView-filter-form component.
  • Added support for date-picker in DataView-filter-form 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.:
    • net.democritus:Expanders: 7.4.4 -> 7.4.5
    • net.democritus:base-components-model: 2024.3.2 -> 2024.3.4
  • Upgrade PackageJsonExpander to latest versions:
    • @nsx/ngx-ns-core: 0.1.1 -> 0.2.0
  • Changed use of DateAdapter to handle i18n of date-picker component correctly.
  • Made filtering handle booleans and dates correctly.

Fixed​

  • Fixed scss @use conflict for DataViews with the same name in different FeatureModules.
  • Fixed missing search translation of <select> component.

Removed​

  • Removed DataView specific search translation.

4.6.1 (2024-06-17)​

Added​

  • Added content anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. for select in add, edit and filter form.

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.:
    • net.democritus:rest-jaxrs-stack: 4.20.2 -> 4.21.1
    • net.democritus.metamodel:prime-metamodel: 2024.3.11 -> 2024.3.12
    • net.democritus.metamodel:prime-core: 2024.3.11 -> 2024.3.12
    • net.democritus:Expanders: 7.4.0 -> 7.4.4
    • net.democritus:base-components-model: 2024.3.0 -> 2024.3.2
    • net.democritus:querysearch-expanders: 2.27.0 -> 2.28.0
    • org.apache.maven.plugins:maven-surefire-plugin: 3.2.5 -> 3.3.0
  • Upgrade PackageJsonExpander to latest versions:
    • @nsx/ngx-ns-core: 0.1.0 -> 0.1.1

4.6.0 (2024-06-11)​

Added​

  • Added global style partial for DataViewTable. In this file you can set column width and other styles that need to be defined globally.
  • Added classes to detail, table, edit, and new fieldsFieldA property of a DataElement expanded to a database column and user interface input element. for styling following descriptive-class-name__{fieldName}.
  • Added get pagination$() method to DataSourceTsExpander.
  • Added anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. in html attributes for nsc-select.
  • Added logic to store and retrieve preferred page size in list page.

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.:
    • net.democritus.test:expanders-assert: 0.5.0 -> 0.8.0
    • net.democritus.validations.model:validations-core: 3.5.1 -> 3.6.2
    • net.democritus.model:modelTransmutations-core: 2.3.4 -> 2.4.1
    • net.democritus.maven.plugins:expanders.maven.plugin: 2024.1.1 -> 2024.2.1
    • net.democritus:rest-jaxrs-stack: 4.19.0 -> 4.20.2
    • net.democritus.model:model-builder-expanders: 2.3.4 -> 2.4.2
    • net.democritus.metamodel:prime-metamodel: 2024.2.3 -> 2024.3.11
    • net.democritus.metamodel:prime-core: 2024.2.3 -> 2024.3.11
    • org.sonarsource.scanner.maven:org.sonarsource.scanner.mave: 3.11.0.3922 -> 4.0.0.4121
    • net.democritus:Expanders: 7.0.5 -> 7.4.0
    • net.democritus:base-components-model: 2024.2.0 -> 2024.3.0
  • Added a value to option angular.isLinkFilterField that follows the pattern featureModuleName::DataConnectorName.
  • A SelectComponent is expanded in the FilterFormComponent when a QueryField has the option angular.isLinkFilterField:featureModuleName::DataConnectorName instead of custom anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion..
  • Upgrade PackageJsonExpander to latest versions:
    • @nsx/ngx-ns-core: 0.0.6 -> 0.1.0
  • Changed behaviour of storage for base authentication related information. Instead of localStorage it now uses sessionStorage. Each time you open a tab with the website you will need to log in again.

Fixed​

  • Fixed padding issue in add and edit pages.

4.5.0 (2024-05-27)​

caution

This version contains some breaking changes. Please refer to the migration guide in the documentation for more information about this change and what code is affected.

Added​

  • Added feature anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion. translations to EnglishI18nJsonExpander.
  • Added deprecation date (2024-11-01) for angular.migration.filter option.
  • Added AngularImportResolver that can be used to add ECMAScript imports as well as angular specific imports and service injections. Two parameters for the import anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion. are now handled, namely Component and Service. The <uses> tag can have 4 types now: component, module, service and private_service. All these types will be placed in the @imports anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion. using the EsImportResolver. The first two will also be placed under @imports(Component) and the service ones will be placed under @imports(Service).
  • Added list action to ActionsServiceTsExpander that routes to the DataView list page.
  • More elaborate and correct mapping services for going from DTO to Entity models.
    • CreateDocumentMapper
    • ModifyDocumentMapper
    • ModelMapper
    • ReferenceMapper
  • Added option angular.defaultLanguage for AngularApp to set the value of the default used language.

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.:

    • net.democritus:Expanders: 7.0.5 -> 7.3.1
    • net.democritus:base-components-model: 2024.1.3 -> 2024.2.0
    • net.democritus.validations.model:validations-core: 3.4.1 -> 3.5.1
    • net.democritus.model:modelTransmutations-core: 2.3.2 -> 2.3.4
    • net.democritus.maven.plugins:expanders.maven.plugin: 2024.0.0 -> 2024.1.1
    • net.democritus:nsx-parent: 2024.0.0 -> 2024.1.0
    • net.democritus:rest-jaxrs-stack: 4.16.0 -> 4.19.0
    • net.democritus:prime-data: 2024.0.1 -> 2024.0.2
    • net.democritus.metamodel:prime-metamodel: 2024.1.1 -> 2024.2.3
    • net.democritus.test:expanders-assert: 0.3.0 -> 0.5.0
    • net.democritus:querysearch-expanders: 2.24.0 -> 2.27.0
    • com.fasterxml.jackson.core:jackson-databind: 2.17.0 -> 2.17.1
  • Updated all xsd schema's to latest version.

  • Internal angular services, routes and pages don't rely on functionalKey option anymore, but use a generic id identifier as variable. This is a breaking change for route information extraction and Service and Actions methods.

  • Refactored more tests to expanders-assert:

    • DataViewModuleExpander
    • DataViewRoutingModuleExpander
    • NewScssExpander
    • DetailsScssExpander
    • EditScssExpander
    • HttpServiceExpander
    • LocaleSelectorExpanders
  • Streamlined usage of name DataElement, DataView and DataConnector in expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact..

  • ExpandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. don't rely on rest-expanders options anymore but use tags instead. These tags can be added by a rule activated via rest-expanders options or different constructs.

  • Moved services from injection in constructor to fieldFieldA property of a DataElement expanded to a database column and user interface input element. variable with inject() as angular devs are hinting at the change. Applied for:

    • NewTsExpander
    • DetailTsExpander
    • ListTsExpander
    • EditTsExpander
    • TableTsExpander
    • ServiceTsExpander
    • ActionsServiceTsExpander
    • HttpServiceExpander
    • AppComponentTsExpander

    The name of injected services in these files are changed to use a camelCase version of the class name. Impacts:

    • dataSource -> dataConnectorDataSource
    • filterSource -> dataConnectorFilterSource
    • route -> activatedRoute
    • translate -> translateService
  • Upgrade PackageJsonExpander to latest versions:

    • @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
    • typescript: ~5.4.2 -> ~5.4.5
    • zone.js: ~0.14.4 -> ~0.14.6
    • @nsx/ngx-ns-core: 0.0.5 -> 0.0.6
  • Changed .data model files to .document. Also added more .document files:

    • DataConnector-create.document
    • DataConnector-modify.document
    • DataConnector-reference.document
  • Renamed service file-names:

    • dataConnector.service -> DataConnector-data-access.service
    • dataConnector.datasource -> DataConnector-data-source.service
    • dataConnector.filtersource -> DataConnector-filter-source.service
    • dataConnector-infinite.datasource -> DataConnector-infinite-data-source.service
  • Renamed service:

    • DataConnectorService -> DataConnectorDataAccessService
  • Changed filter mapping in http.service to accommodate use of Reference in filters.

  • Refactored use of DropDownComponent to SelectComponent from ns-core. Also added translations for the search.

  • Changed how dates are displayed in a table:

    • Date: "dd-MM-yyyy"
    • Timestamp: "dd-MM-yyyy HH:mm"

Fixed​

  • Routing of table columns (name and linkFieldsFieldA property of a DataElement expanded to a database column and user interface input element.) do not happen in function of current route anymore. Instead, it uses the corresponding action service.
  • Routing of links in detail components do not happen in function of current route anymore. Instead, it uses the corresponding action service.
  • Fixed behaviour of locale-selector, now it stores selected language, meaning when a page refresh is done, the other language does not reappear. The styling and look of the component is also fixed.

Removed​

  • Removed redundant imports feature anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion..
    • DataViewRoutingModuleExpander
    • AppComponentTsExpander
    • ServiceTsExpander
    • FilterTsExpander
    • ListDataTsExpander
    • ListModelTsExpander
    • FilterFormModelTsExpander
    • TableTsExpander
    • TableColumnActionsTsExpander
    • ListTsExpander
    • NewTsExpander
    • EditTsExpander
    • ModelTsExpander
    • HttpServiceExpander
  • Removed option legacy.iconFont.enabled, because deprecation date has been surpassed.
  • Removed deprecated options angular.auth.basic.enable and angular.auth.oidc.enable.
  • Removed component expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact.:
    • DropdownComponent
    • MultiSelectDropdownComponent

4.4.4 (2024-04-08)​

Added​

  • Custom anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. for constructor-arguments and on-init method in *-filter-form.component.ts.

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.:
    • net.democritus:Expanders: 7.0.1 -> 7.0.5
    • net.democritus:base-components-model: 2024.1.1 -> 2024.1.3
    • net.democritus:rest-jaxrs-stack: 4.13.1 -> 4.16.0
    • net.democritus.metamodel:prime-metamodel: 2024.1.0 -> 2024.1.1
    • com.fasterxml.jackson.core:jackson-databind: 2.16.1 -> 2.17.0
    • org.jacoco:jacoco-maven-plugin: 0.8.11 -> 0.8.12

4.4.3 (2024-04-04)​

Added​

  • Custom anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. for imports, variables, constructor and methods in *-filter-form.component.ts.

4.4.2 (2024-03-21)​

Added​

  • Custom anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. for providers in page components.

4.4.1 (2024-03-20)​

Added​

  • Custom anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. at the bottom of the crud pages.
  • Added 'update' Event for update action.

Changed​

  • Fixed missing translations:
    • Delete dialog
    • Apply filter button
  • 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.:
    • net.democritus:Expanders: 7.0.0 -> 7.0.1
    • net.democritus:base-components-model: 2024.1.0 -> 2024.1.1
    • net.democritus:rest-jaxrs-stack: 4.13.0 -> 4.13.1
  • Upgrade PackageJsonExpander to latest versions:
    • @nsx/ngx-ns-core: 0.0.4 -> 0.0.5

4.4.0 (2024-03-18)​

Added​

  • Custom anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion. for assets in AngularJsonExpander.
  • Sorting on link fieldsFieldA property of a DataElement expanded to a database column and user interface input element..
  • An event observable has been added to the DataElementService. Side effects have been added to the create and delete calls that push an Event onto the observable. This observable can be used to act on delete and create actions.
export interface Event {
objectIdentifier: string;
type: 'create' | 'delete';
}
  • DataElementActionsService has been added that defines what actions are present on a DataElement, e.g. add, edit, delete and details.
  • Branding feature that toggles all nsx branding off and adds custom anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. instead. Option angular.hasCustomBranding on the AngularApp can be used for this.
  • Customization feature to change specific default expanded code into custom anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion.:
    • angular.hasCustomHeaderContent on AngularApp: The header of the layout can be altered.
    • angular.hasCustomTableRowActions on DataView: The default table row actions can be altered.

MINOR BREAKING CHANGE:

Naming of anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. have been changed to prefix branding and customization:

  • index.html: favicon -> branding-favicon
  • _default-theme.scss: colors -> branding-colors
  • _default-theme.scss: typography -> branding-typography
  • _default-theme.scss: density -> branding-density
  • layout.html: sidebar-branding -> branding-sidebar
  • layout.html: header-content -> customization-header-content

Changed​

  • Added reset of margin to 0px for h1, h2, h3, h4, h5, h6. Added more sensible bottom margin for add, edit, list and detail page title.
  • Action column of table refactored. Separated in component that uses the DataElementActionsService for cleaner code.
  • EsImportResolver now also allows underscores.
  • Changed imports for ngx-ns-core.
  • 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.:
    • com.fasterxml.jackson.core:jackson-databind: 2.16.1 -> 2.17.0
    • org.sonarsource.scanner.maven:org.sonarsource.scanner.mave: 3.10.0.2594 -> 3.11.0.3922
    • net.democritus.metamodel:nsx-metamodel-stack: 2024.0.4 -> 2024.1.0
    • net.democritus:Expanders: 6.5.0 -> 7.0.0
    • net.democritus:base-components-model: 2024.0.0 -> 2024.1.0
    • net.democritus:nsx-parent: 2023.0.2 -> 2024.0.0
    • net.democritus:rest-jaxrs-stack: 4.12.0 -> 4.13.0
    • net.democritus:querysearch-expanders: 2.23.1 -> 2.24.0
  • Upgrade PackageJsonExpander to latest versions:
    • @angular/*: ^17.2.x -> ^17.3.0
    • @angular-devkit/build-angular: ^17.2.1 -> ^17.3.0
    • @nsx/ngx-ns-core: 0.0.3 -> 0.0.4

4.3.0 (2024-02-29)​

Added​

  • DataSourceTsExpander: Adds for every DataConnector a DataSource service.
  • FilterSourceTsExpander: Adds for every DataConnector a FilterSource service.
  • Table*Expander: Adds for every DataView a table component containing the fieldsFieldA property of a DataElement expanded to a database column and user interface input element. tagged with option angular.isTableColumn as columns.
  • FilterForm*Expander: Adds for every DataView a filter form component containing the fieldsFieldA property of a DataElement expanded to a database column and user interface input element. tagged with #angular.isFilterField.
  • FilterFormModelTsExpander: Adds for every DataView a filter form interface.
  • SegmentParametersTsExpander: Adds a type that combines sorting, pagination and filtering for a DataConnector.
  • Tag rules to not be dependent on rest-expander or querysearch-expander options:
    • #angular.isTableColumn
    • #angular.hasFilterForm
    • #angular.isFilterField
  • Options:
    • angular.isTableColumn: Marks a fieldFieldA property of a DataElement expanded to a database column and user interface input element. as column for a DataElement table.
    • angular.isLinkFilterField: Marks a QueryFilterField as a LinkField instead of a string ValueField.
    • angular.defaultFilterField: Defines the default fieldFieldA property of a DataElement expanded to a database column and user interface input element. name to filter on.
  • AddDefaultAngularTable transmutation that adds the angular.isTableColumn option to all fieldsFieldA property of a DataElement expanded to a database column and user interface input element. with the option exposeRestField.
  • angular:form-input:string nativeType.
  • String simpleValueType.

Removed​

  • PaginatorComponent*Expander
  • TableComponent*Expander
  • TableColumnComponent*Expander
  • TableCellDirectiveTsExpander
  • TableSearchComponent*Expander

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.:
    • net.democritus.metamodel:nsx-metamodel-stack: 2023.12.0 -> 2024.0.4
    • net.democritus:prime-data: 2023.2.3 -> 2024.0.1
    • net.democritus.metamodel:prime-metamodel: 2023.12.0 -> 2024.0.4
    • net.democritus.model:model-builder-expanders: 2.3.0 -> 2.3.2
    • net.democritus.maven.plugins:expanders.maven.plugin: 2023.8.3 -> 2024.0.0
    • net.democritus:Expanders: 6.2.2 -> 6.5.0
    • net.democritus:rest-jaxrs-stack: 4.8.0 -> 4.12.0
    • net.democritus:querysearch-expanders: 2.22.0 -> 2.23.1
    • net.democritus:base-components-model: 2023.14.5 -> 2024.0.0
    • net.democritus.model:modelTransmutations-core: 2.3.0 -> 2.3.2
    • org.junit:junit-bom: 5.10.1 -> 5.10.2
    • org.apache.maven.plugins:maven-surefire-plugin: 3.2.3 -> 3.2.5
    • org.codehaus.mojo:flatten-maven-plugin: 1.5.0 -> 1.6.0
    • net.democritus.test:expanders-assert: 0.1.4 -> 0.3.0
  • Removed sortby fieldFieldA property of a DataElement expanded to a database column and user interface input element. from PaginationTsExpander.
  • Changed Sorting and Filter types to the ones defined in ngx-ns-core in HttpServiceExpander.
  • Updated all xlmns schema's to latest versions. ExpanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. and mapping .xml files were updated accordingly.
  • List*Expander now uses new table and filter components. Everything is linked by the dataSource.
  • Refactored more tests to expanders-assert:
    • ServiceTsExpander
    • SortingTsExpander
    • ModelTsExpander
    • ListModelTsExpander
    • ListDataTsExpander
    • FiltersTsExpander
    • DataTsExpander
  • Refactored expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. to use new import systemSystemA set of interconnected components that work together to achieve a specific purpose or function.:
    • ServiceTsExpander
    • ListModelTsExpander
    • ListDataTsExpander
    • ListTsExpander
    • FiltersTsExpander
  • Upgrade PackageJsonExpander to latest versions:
    • @angular/*: ^17.0.* -> ^17.2.2
    • @angular/material: ^17.0.4 -> ^17.2.1
    • @angular/cdk: ^17.0.4 -> ^17.2.1
    • @angular-devkit/build-angular: ^17.0.10 -> ^17.2.1
    • @angular/cli: ^17.0.10 -> ^17.2.1
    • typescript: ~5.2.2 -> ~5.3.3
    • zone.js: ~0.14.3 -> ~0.14.4
    • @nsx/ngx-ns-core: 0.0.2 -> 0.0.3
  • Updated list component:
    • Updated table component to new design
    • Updated paginator component to new design
    • Updated filter component to new design
  • Translations added in EnglishI18nJsonExpander:
    • Paginator translations
    • FilterFieldsFieldA property of a DataElement expanded to a database column and user interface input element. translations
  • Expand filter fieldsFieldA property of a DataElement expanded to a database column and user interface input element. in FiltersTsExpander based on #angular.isFilterField tag.

4.2.0 (2024-01-11)​

Added​

  • Added ngx-ns-core version 0.0.2
  • Added net.democritus.test:expanders-assert: 0.1.4

Refactored​

  • Started refactoring tests to expanders-assert
  • Breadcrumbs refactored. Breaking change: in routing change name and isBreadcrumb data entries to breadcrumb. The former is replaced by breadcrumb and the latter has become obsolete.
  • Styling setup. Breaking change: _theme-to-material-component-exposer.scss has been replaced with _theme-to-component-exposer.scss. Material expose mixin _theme-to-css-classes-exposer.scss has been deleted. Behaviour can be re-added custom if wanted.
  • Changed to Material symbols instead of Material icons. Introduced the option legacy.iconFont.enabled to allow gradual change.

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.:
    • net.democritus.metamodel:nsx-metamodel-stack: 2023.9.1 -> 2023.12.0
    • net.democritus:prime-data: 2023.1.2 -> 2023.2.2
    • net.democritus.metamodel:prime-metamodel: 2023.9.1 -> 2023.12.0
    • net.democritus.model:model-builder-expanders: 2.2.3 -> 2.3.0
    • net.democritus.maven.plugins:expanders.maven.plugin: 2023.7.0 -> 2023.8.3
    • net.democritus:Expanders: 5.37.5 -> 6.2.2
    • net.democritus:rest-jaxrs-stack: 3.33.0 -> 4.8.0
    • net.democritus:querysearch-expanders: 2.20.0 -> 2.22.0
    • net.democritus:base-components-model: 2023.14.2 -> 2023.14.5
    • net.democritus.metamodel:prime-core: 2023.9.1 -> 2023.10.1
    • net.democritus.model:modelTransmutations-core: 2.2.3 -> 2.3.0
    • com.fasterxml.jackson.core:jackson-databind: 2.15.3 -> 2.16.1
    • org.apache.maven.plugins:maven-surefire-plugin: 3.2.2 -> 3.2.3
    • net.democritus.validations.model:validations-core: 3.3.2 -> 3.4.1
  • Updated layout component:
    • Updated sidebar component to new design
    • Updated header component to new design
  • Updated alert component
  • Updated login screen to match with the designs
  • Added mobile-viewport mode for login screen
  • Changed PrettyPrinter config of .json5 to .json file conversion.
  • Upgrade to angular 17 and angular material 17

4.1.1 (2023-10-23)​

Merged 4.0.13 into main branch.

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.:
    • net.democritus:Expanders: 5.37.3 -> 5.37.5
    • net.democritus:base-components-model: 2023.14.0 -> 2023.14.2
    • net.democritus.maven.plugins:nsx-versions-maven-plugin: 2023.1.2 -> 2023.2.0
    • net.democritus:querysearch-expanders: 2.18.0 -> 2.20.0

4.1.0 (2023-10-17)​

Changed​

  • Refactored styling:
    • Added 2 extra expanded folders: layout and pages
    • Changed src/styles.scss to src/styles/main.scss
    • Refactored content of original styles.scss to better follow the '7-1 file systemSystemA set of interconnected components that work together to achieve a specific purpose or function.' pattern.
  • Upgrade to angular 16:
    • Upgraded package versions.
    • Changed AuthGuard implementation to follow new 'Functional router guards' guidelines.
    • Removed polyfills.ts file, zone.js is now added in the angular.json file.
    • Removed .browserlistrc file, a default is used. When this needs to be different, you can add it as an ext file.
    • Removed @angular/flex-layout implementation with regular css flex.
    • Used legacy version of Angular Material components. !IMPORTANT!: Reasoning for this is, we will redesign everything in the next release, meaning that a temporary upgrade of components would be wasted resources. Caution, when using this release you should use legacy Angular Material components in custom code!

4.0.13 (2023-10-23)​

Fixed​

  • Added trailing comma to NgxTranslate package.json FeatureExpander.

4.0.12 (2023-10-17)​

Fixed​

  • Fixed nullpointer in stg file of ModelTsExpander.
  • Made DataConnector expandersExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. only look at Ln02 LinkFieldsFieldA property of a DataElement expanded to a database column and user interface input element..

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.:
    • net.democritus:Expanders: 5.37.1 -> 5.37.3
    • com.fasterxml.jackson.core:jackson-databind: 2.15.2 -> 2.15.3
    • org.jacoco:jacoco-maven-plugin: 0.8.10 -> 0.8.11
    • net.democritus:rest-jaxrs-stack: 3.31.0 -> 3.33.0

4.0.11 (2023-10-13)​

Fixed​

  • Fixed angular.migration.filter option to be able to use LN02 fieldsFieldA property of a DataElement expanded to a database column and user interface input element. correctly. Retrieve String SimpleValueType from DataRegistry instead of creating a new one that is missing the needed NativeTypes.
  • Removed canExecute check in write manifest file test. This check is OS dependent and actually does not add value.

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.:
    • net.democritus:Expanders: 5.36.5 -> 5.37.1
    • net.democritus.model:modelTransmutations-core: 2.2.2 -> 2.2.3
    • net.democritus.maven.plugins:expanders.maven.plugin: 2023.6.0 -> 2023.7.0
    • net.democritus.metamodel:prime-core: 2023.8.0 -> 2023.9.1
    • net.democritus:base-components-model: 2023.12.0 -> 2023.14.0
    • net.democritus:rest-jaxrs-stack: 3.29.1 -> 3.31.0

4.0.10 (2023-10-06)​

Fixed​

  • Resolved issue when functionalKey has 'name' as value.

4.0.9 (2023-10-05)​

Fixed​

  • Fixed infinite error loop for http errors.

4.0.8 (2023-10-05)​

Fixed​

  • Fixed inconsistent naming of formGroup in list page.
  • Fixed isRequired issue.
  • Temp fix for DataElementModel fill in create and edit submit.

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.:
    • NSX Metamodels and Expanders: 5.36.4 -> 5.36.5

4.0.7 (2023-10-03)​

Fixed​

  • Fixed broken oidc auth implementation.

Changed​

  • Refactored auth module: removed auth routing and regular module. Instead now the login component is standalone and for oidc a module is added that handles oidc implementation.
  • Made CopyImagesStep synchronized and added better FileSystem check.

4.0.6 (2023-10-02)​

Fixed​

  • Deprecation warnings.
  • Name check of AngularApp now also checks if isAsciiAlphaNumeric.

Changed​

  • Added quality of life improvements to Jenkinsfile.
  • Refactored expansion/harvest code. Added root as ext folder with depth 1.
  • Made manifest artifacts.xml read-only.
  • 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.:
    • net.democritus:base-components-model: 2023.11.0 -> 2023.12.0
    • NSX Metamodels and Expanders: 5.36.3 -> 5.36.4
    • net.democritus:rest-jaxrs-stack: 3.29.0 -> 3.29.1

4.0.5 (2023-09-26)​

Fixed​

  • Corrected baseUrl of HttpService to camelCase of AngularApp name.

Added​

  • Added rule that checks if AngularApp is kebab-case of ApplicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. name.
  • Support for string[] filter type in HttpService.

4.0.4 (2023-09-25)​

Changed​

  • Upgrade transmutation is now called UpgradeToAngularProject, it also has added functionality concerning angular.migration.filter option and naming op elements.
  • Updated validations concerning naming: FeatureModule and AngularApp need to be kebab-case.
  • Altered angular.auth.basic.enable and angular.auth.oidc.enable options to angular.basicAuth.enable and angular.oidcAuth.enable respectively. This was needed for the upgrade transmutation. The old options are still active on ApplicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. but deprecated.

4.0.3 (2023-09-22)​

  • Added transmutations:
    • Upgrade: Run on ApplicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. element. Creates for every DataElement with a angular.model or angular.view option, a MetaModel setup with a DataConnector and a DataConnector with DataView respectively. It creates FeatureModules based on packageName of the DataElement in question, e.g. org.normalizedsystems.users will become the FeatureModule users. If this contains a already existing predefined module name (core, shared, auth, translation) it takes the ApplicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. shortName.
    • AddDefaultAngularCrud: Run on DataElement. Creates a MetaModel setup with a DataConnector and a DataView. This is placed in the FeatureModule defined as described above.
  • Added validations:
    • <expansionResource name="net.democritus.angular:angularProjects-validation" version="4.0.3"/> can be added to enable the validations. This is also packaged in the stack.
    • AngularApp prefix should be kebab-case.
    • FeatureModule name should be kebab-case.
    • DataConnector name should be same as DataElement.
    • DataView name should be same as DataElement.

4.0.2 (2023-09-19)​

  • Removed sonar build from stack deploy.

4.0.1 (2023-09-19)​

  • Fixed malfunctioning jenkinsfile.

4.0.0 (2023-09-19)​

  • Added metamodel support.
  • Changed expand and harvest logic to not use gen/ext folders anymore, but to use a manifest file containing all the expanded artifactsArtifactA build or deployment result, such as a Docker container image or Java archive, produced by a software project..
  • Changed expanded folder structure.
  • Refactored DataElementService.
  • Refactored table component.
  • Added backend support for filtering.
  • More small tweaks and refactorings.
  • Changed groupId to net.democritus.angular.

3.3.3 (2024-02-21)​

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.:
    • net.democritus.maven.plugins:expanders.maven.plugin: 2023.5.0 -> 2024.0.0
    • net.democritus:Expanders: 5.33.2 -> 6.5.0
    • net.democritus:base-components-model: 2023.11.0 -> 2024.0.0
    • net.democritus:prime-core: 2023.6.1 -> 2024.0.4
    • net.democritus:prime-data: 2023.1.2 -> 2024.0.1
    • net.democritus.validations.model:validations-core: 3.3.1 -> 3.4.1
    • com.fasterxml.jackson.core:jackson-databind: 2.15.2 -> 2.16.1
  • Added mvn flatten plugin to pom.xml

3.3.2 (2023-09-18)​

  • Added custom anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. for allowedCommonJsDependencies in angular.json.

3.3.1 (2023-08-29)​

  • [BUGFIX] Fixed dropdown components in add/edit/detail pages when no 'name' fieldFieldA property of a DataElement expanded to a database column and user interface input element. is used.
  • 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.:
    • Expanders: 5.30.5 -> 5.32.0
    • Prime-core: 2023.5.3 -> 2023.5.4
    • Base-components: 2023.8.2 -> 2023.10.0

3.3.0 (2023-08-08)​

  • [BUGFIX] Fixed front-end only expand when HyperLink is used in project.
  • Made tsconfig.json a json5 file.
  • Added custom anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion. in tsconfig.json5.

3.2.0 (2023-07-11)​

  • [BUGFIX] updated alertComponent scss to fix error, info, warn and success styles not being applied
  • [BUGFIX] updated contentProjection in multi-select-dropdown, this was missing from 3.1.4
  • [BUGFIX] ANG-33: added support for enteredAt and lastModifiedAt
  • [BUGFIX] Fixed front-end only expand when MarkupString is used in project.

3.1.4 (2023-06-23)​

  • Added missing semicolon in basic AuthService.ts
  • [BUGFIX] Fixed contentProjection for mat-error and mat-hint in Dropdown, YesNoToggle and DatePicker.

MINOR BREAKING CHANGE:

Content-projectionProjectionA tailored subset of fields on a DataElement designed to encapsulate data for a specific technical or functional view.-identifiers have been changed to [matErrorContent] and [matHintContent], as the old identifiers [matErrors] and [matHint] do not represent the actual slot-function anymore.

Reasoning: Previous projectionProjectionA tailored subset of fields on a DataElement designed to encapsulate data for a specific technical or functional view.-slots did not behave like proper mat-errors and mat-hints. mat-error and mat-hint are forced to be a direct child of mat-form-fieldFieldA property of a DataElement expanded to a database column and user interface input element.. But the old projetion just placed them inside the mat-form-fieldFieldA property of a DataElement expanded to a database column and user interface input element.. Therefore, we have changed the setup such that the components use mat-error and mat-hint directly and have a contentSlot inside these elements, triggering the rename of the slots.


3.1.3 (2023-06-15)​

  • Made frontend expand only possible again. Added base-components-model to dependencies.

3.1.2 (2023-06-13)​

  • [BUGFIX] changed config.js script loading path to use absolute path instead of relative

3.1.1 (2023-05-30)​

  • Refactored oidc implementation to use the new Config construction. If no oidcIssuer, oidcClientId or oidcScope is given in the config.js, the applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. will still compile, but a white screen is shown. Following error will be seen in the console:
ERROR issuer  must use HTTPS (with TLS), or config value for property 'requireHttps' must be set to 'false' and allow HTTP (without TLS).

3.1.0 upgrade notes​

  • To upgrade to the 3.1.0+ release, you will need to update your docker setup.
  • An example of the setup can be found in the demo-project
  • Here is an overview of the most important changes
    • Ensure that projectName>docker>frontend>entrypoint.sh contains the following:
    for FILE in /app/config/*; do echo "$(envsubst < $FILE)" > $FILE; done;
    mv /app/config/config.template.js /app/config/config.js
    • Ensure that projectName>docker>frontend>Dockerfile ends with the following:
    COPY entrypoint.sh /
    RUN dos2unix /entrypoint.sh
    RUN chmod +x /entrypoint.sh
    ENTRYPOINT [ "/entrypoint.sh" ]
    • You no longer need the older env.js file. You can delete it and remove it from your index.html

3.1.0 (2023-05-26)​

  • Added pretty print to output of json5.
  • Added translations to expanded components and pages.
  • Added custom anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. for module-imports.
  • [BUGFIX] support for valueTypes in ListHtml pages.
  • [BUGFIX] temp fix for dropdown entries (show 100).
  • [BUGFIX] use functionalKey for dropdown if name is not present.
  • [BUGFIX] made formControl empty string for link fieldsFieldA property of a DataElement expanded to a database column and user interface input element..
  • [BUGFIX] fixed kebab-case redirect for edit save.
  • [BUGFIX] fixed menu example to show title instead if name.
  • Added default logo's.
  • Reworked login page.
  • Made basic auth possible without custom code additions. Changed 'angular.auth.basic.enable' option to have a value, which is the endpoint used to do the login.
  • Altered docker environment substitution. No more is a window env subst in de environment.ts file recommended. Instead add docker substituted entries in de 'config.js' and 'config.template.js' files. Also alter the config.interface.ts interface to have typescripted variables. Use it in files as follows:
import {Config} from "~/config.interface";

declare let __config: Config;
// ...
__config.baseUrl

3.0.6 (2023-05-09)​

  • [BUGFIX] Fixed table shortcomings
  • Added support for GET filter value on exposeRestField option for OutputModel.

3.0.5 (2023-04-26)​

  • [BUGFIX] Fixed routing
  • [BUGFIX] Fixed login css
  • [BUGFIX] Fixed yes-no-toggle component being unable to use an initial value from the formControl
  • [BUGFIX] Split dual functionality in DropdownCompoment into separate DropdownComponent and MultiSelectDropdownComponent.
  • [BUGFIX] Fixed DropdownComponent being unable to use an initial value from the formControl
  • Refactored YesNoToggle and DropdownComponent to use translate pipe
  • Upgraded package-versions to latest Angular V14 compatible releases
  • Added anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. in app.module
  • [EXPERIMENTAL] MultiSelectDropdownComponent is considered experimental, as it lacks proper testing. Feedback or bugreports are welcome.

3.0.4 (2023-03-29)​

  • [BUGFIX] Fixed yes-no-toggle component not passing the @Input color to the yes/no chips

3.0.3 (2023-03-14)​

  • [BUGFIX] Added clean harvest functionality

3.0.2 (2023-03-13)​

  • Authentication refactor: angular.auth.oidc.enable and angular.auth.basic.enable authentication options added for ApplicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. element
  • Model validation added to block use of both options at the same time
  • Added expansion step for automatic json5 conversion
  • Added extra anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion. in angular.json5 and package.json5
  • Updated yes-no-toggle, datepicker and dropdown UI components. Dropdown now also have multiselect.
  • Added support for svgIcons in the menu
  • [BUGFIX] Changed TopBarComponent to look for logo in 'assets/ext/images' instead of 'assets/images'
  • [BUGFIX] Corrected Outputmodel to show linkFieldsFieldA property of a DataElement expanded to a database column and user interface input element. for DataElements with the option angular.model
  • [BUGFIX] Added missing page query param to Pagination

3.0.1 (2023-01-16)​

  • ngx-translate added
  • [BUGFIX] ReferenceModel duplicate name fieldFieldA property of a DataElement expanded to a database column and user interface input element. fix

3.0.0 (2022-10-26)​

  • refactored to angular material approach. See it as a big reset.

2.3.1 (2022-08-05)​

Fixed​

  • Corrected usage of functionalKey option in the expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. mappings.

2.3.0 (2022-01-10)​

  • translations_default.ts: Add some default translations for buttons, notifications, texts
  • TableControlComponent: Fix styling

2.2.0 (2021-12-30)​

BackendConnectorService​

  • Fix anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion. name
  • Remove unused fieldsFieldA property of a DataElement expanded to a database column and user interface input element. and methods

SelectDropdown​

  • Only display maximum 5 options in the dropdown

AppRoutingModule​

  • Remove route to PageNotFoundModule

PageNotFound​

  • Do not expand this component anymore

package.json​

  • Remove keycloak packages: keycloak-angular and keycloak-js. For applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. that uses those packages, please create a package.json overlay file

SearchComponent​

  • Change button to link => allow 'Open in new tab'
  • Pass pagination from ListComponent to SearchComponent instead of just pageSize

LinkButtonComponent​

  • Add expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. for this Angular component
  • This is a link element that looks like a button

[DataElement]ListComponent​

  • Change some buttons to links (use LinkButtonComponent instead of ButtonComponent)
  • Removed methods:
    • buttonNames()
    • goTo[DataElement]DetailPage() (with custom anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion.: anchor:custom-go-to-detail-page)
    • goToAdd[DataElement]Form() (with custom anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion.: anchor:custom-go-to-new-page)
    • goToEdit[DataElement]Form() (with custom anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion.: custom-go-to-edit-page)
  • Removed custom anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion.:
    • anchor:custom-new-button-click-handler
    • anchor:custom-detail-button-click-handler
    • anchor:custom-edit-button-click-handler

[DataElement]AdvancedSearchComponent​

  • Change a button to link (use LinkButtonComponent instead of ButtonComponent)
  • Removed methods:
    • buttonNames()
    • goTo[DataElement]DetailPage() (with custom anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion.: anchor:custom-go-to-detail-page)
  • Removed custom anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion.:
    • anchor:custom-detail-button-click-handler

[DataElement]DetailComponent​

  • Change a button to link (use LinkButtonComponent instead of ButtonComponent)
  • Removed methods:
    • buttonNames()
    • goToEdit[DataElement]Form() (with custom anchorAnchorA marker within generated source code reserved for adding custom logic during re-expansion.: anchor:custom-go-to-edit-page)
  • Removed custom anchorsAnchorA marker within generated source code reserved for adding custom logic during re-expansion.:
    • anchor:custom-edit-button-click-handler

2.1.0 (2021-12-08)​

AdvancedSearchComponent​

  • Add method statusCssClass back to advanced-search.component.ts expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. (must have been deleted by accident before)

2.0.0 (2021-11-18)​

  • Do not use Angular runtime anymore

1.0.0 (2021-04-29)​

  • Initial version, containing Angular expanderExpanderA unit of generation that combines a data tree instance (functional M1 model) with a template to generate an artifact. and angular runtime