angular-expanders
5.4.0 (2024-12-12)
Added
- Added
searchKey
attribute for<nsc-select>
components explicitly in forms. This is based on theangular.defaultFilterField
option, if present, otherwise it is the constantdisplaylabel
. This attribute value can be overridden in custom anchors. - Added custom anchor
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 fixdatachildren
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 anchors 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 theSegmentParametersClearer
,SegmentParametersSerializer
,SegmentParametersDeserializer
andSegmentParametersUrlSaver
fromngx-ns-core
to save/retrieveSegmentParameters
to/from theurl
. - In the
list
page every change to theSegmentParameters
now get persisted. On init of the page these parameters get read from storage and used to initialize thedatasource
.
- Created
- Added child
DataView
capabilities. This is based on thedataChilds
model inelements
. If noDataView
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
incore.tokens
expander. - Added use of
NavTabDirective
andNavTabGroupComponent
to visualizedata 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 childadd
form and (2) the correct filter options to make the parent filter static on childlist
view. - Added the children of a
DataView
as lazy loaded children of thedetail
route.
- Added translations for these pages in
- 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
toBehaviourSubject
for sortobservable
in<DataConnector>-data-source
expander. <DataConnector>-data-source
now also updates individualobservables
on initialization of the segment parameters.- Changed
<DataView>-action.service
to handle routing correctly indata children
. This now gets provided onmodule
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 ofedit
anddetails
has been switched around with:id
. Meaningdetails/:id
has become:id/details
. - Breaking Change: Currently routing used always
:id
als path parameter. Withdata 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
andedit
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 doesthis.location.back()
. - Breaking Change: Added
[filterOptions]
be default inlist
page. This can interfere with custom code. - Rejuvenations:
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.0 (2024-11-20)
Added
- Added custom anchors before and after form components in the new add and edit page HTML templates.
- Added custom anchors to the auth.config.ts file.
Changed
- Breaking change: Replaced existing custom
add/edit-page
anchors withadd/edit-page-after-form
anchor. - Rejuvenations:
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 aFilterOption
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
andDataConnector
to the extendable elements.
Changed
- Rejuvenations:
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 ofTranslateModule
. See migration guide for more information. - Changed uses of
valueField neq null
orlinkField neq null
tolinkFieldType
check in expanders.
5.0.3 (2024-11-06)
Fixed
- Added field specific classes on field for
filter-form
component. - Fixed
DATASOURCE
InjectionTokens
forfilter-form
. Now anInjectionToken
is expanded for every filter field present, it does not implicitly rely onlinkFields
anymore. - Fixed lowerCase legacy filter
formControlName
entries.
5.0.2 (2024-11-04)
Changed
- Rejuvenations:
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 expanders that use
LINK_FIELDS
, only allowLn02
. This was not done consistently. However, this can be changed in the future.
5.0.0 (2024-10-30)
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 layer separation in the angular stack. This has been accomplished by expanding DataAccess
interfaces and InjectionTokens
. This token can be implemented by a separate expansion resource specific to a certain control layer implementation, e.g. rest-expanders
, json:API
, ...
Added
- Added custom
serve-options
anchors inangular.json5
. - Breaking change: Added
<DataConnector>-event.model.ts
and<DataConnector>-event.service.ts
whereDataAccess
events can be defined and subscribed to. This is now separated from the<DataConnector>-data-access.service
.
Changed
- Rejuvenations:
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 theAuthDataAccess
interface that can be implemented by a control layer 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 layer 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 aFILE_IO_DATA_ACCESS
InjectionToken
that implements theFileIoDataAccess
interface that can be implemented by a control layer implementation. - Breaking change: Filter fields are now camelCase. Previous filter fields found in
<DataConnector>-filters.ts
(and related services/components) were lowercase. This was a overfitting to therest-expanders
, with the separation of the control layer this has been fixed. This will result in custom code that not will compile and potentially missing translations. - The
TableTsExpander
andTableHtmlExpander
got a refactor of the pagination implementation. Now using thepage.model.ts
DTO from@nsx/ngx-ns-core
. - The
DataSourceTsExpander
got a refactor to true private fields and new implementation of the updatedNscPaginatedDataSource
using thePage
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 toangular-stdapi-stack
. -
Breaking change: Removed
http.service
. The implementation of this service was control layer specific. Due to the separation of the control layer implementation this service has been removed. Functionality has been moved to eitherFILE_IO_DATA_ACCESS
of other helper services/functions with the same behaviour. -
Breaking change: Removed
rest-expanders
specific DTO expanders.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 latterPageModel.ts
andPagination.ts
are a good example. These have been replaced bypage.model.ts
from@nsx/ngx-ns-core
. Therest-expander
andstandard
APIs alternative will map to this.
4.11.1 (2024-09-30)
Changed
- Rejuvenations:
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 anchors 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 onAngularApp
,FeatureModule
andDataView
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 theFormDefinition
interface.dataview-add/edit/filter-form.component.*
: This is a self-containing form that gives a visual representation of the form and used thedirective
to add logic to the form. Using theFormHostControlDirective
this form can also be used as a subset of a larger form. The definition of form buttons can be changed using content with theFormButtonsDirective
. The visual placement of the form is now powered bycss-grid
and can be easily altered using custom anchors.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 adataview.model.ts
ordataconnector.filters.ts
.dataview-add/edit-page.component.*
: The definition of the page that uses the form component. The page now has anadd/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.
- Added
- Changed typing in
dataconnector-filters.ts
. Links are now typed asReference
and dates are typed asDate
. - Changed value type of
<nsx-date-picker>
component to also acceptnull
. - Changed value type of
<nsx-yes-no-toggle>
component to also acceptnull
. - Changed that non-required fields in
dataconnector.model.ts
,dataconnector-create.document.ts
anddataconnector-modify.document.ts
can also benull
instead of onlyundefined
. - Increased
anyComponentStyle
css budgets to 30kb for a warning and 40kb for an error. - Rejuvenations:
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 theResponseHeader
event the method was relying on. Instead now theResponse
event is being used.
4.10.2 (2024-09-04)
Changed
- Rejuvenations:
net.democritus.test:expanders-assert
:0.10.0 -> 1.0.0
Fixed
- Compatibility issue with micro-radiant. Added
FeatureModuleDataRefConverter
.