@ngdux/list 1.3.0 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -13,6 +13,7 @@ export class AbstractListFacade {
|
|
|
13
13
|
this.currentPageData$ = this.store.pipe(select(this.listSelectors.getCurrentPageData));
|
|
14
14
|
this.currentPageNumber$ = this.store.pipe(select(this.listSelectors.getCurrentPageNumber));
|
|
15
15
|
this.filteringOptions$ = this.store.pipe(select(this.listSelectors.getFilteringOptions));
|
|
16
|
+
this.requestParameters$ = this.store.pipe(select(this.listSelectors.getRequestParameters));
|
|
16
17
|
this.lastPageNumber$ = this.store.pipe(select(this.listSelectors.getLastPageNumber));
|
|
17
18
|
this.pagingOptions$ = this.store.pipe(select(this.listSelectors.getPagingOptions));
|
|
18
19
|
this.requestOptions$ = this.store.pipe(select(this.listSelectors.getRequestOptions));
|
|
@@ -29,6 +30,9 @@ export class AbstractListFacade {
|
|
|
29
30
|
setSorting(props) {
|
|
30
31
|
this.store.dispatch(this.listActions.setSorting(props));
|
|
31
32
|
}
|
|
33
|
+
setRequestParameters(props) {
|
|
34
|
+
this.store.dispatch(this.listActions.setRequestParams(props));
|
|
35
|
+
}
|
|
32
36
|
changeFiltering(props) {
|
|
33
37
|
this.store.dispatch(this.listActions.changeFiltering(props));
|
|
34
38
|
}
|
|
@@ -47,6 +51,9 @@ export class AbstractListFacade {
|
|
|
47
51
|
changeSorting(props) {
|
|
48
52
|
this.store.dispatch(this.listActions.changeSorting(props));
|
|
49
53
|
}
|
|
54
|
+
changeRequestParams(props) {
|
|
55
|
+
this.store.dispatch(this.listActions.changeRequestParams(props));
|
|
56
|
+
}
|
|
50
57
|
loadPage() {
|
|
51
58
|
this.store.dispatch(this.listActions.loadPage());
|
|
52
59
|
}
|
|
@@ -78,4 +85,4 @@ export class AbstractListFacade {
|
|
|
78
85
|
this.store.dispatch(this.listActions.showRemovalsConfirmation());
|
|
79
86
|
}
|
|
80
87
|
}
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtbGlzdC5mYWNhZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nZHV4L3V0aWwvc3RvcmUvbGlzdC9zcmMvbGliLytzdGF0ZS9hYnN0cmFjdC1saXN0LmZhY2FkZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFTLE1BQU0sYUFBYSxDQUFDO0FBRzVDLE1BQU0sT0FBZ0Isa0JBQWtCO0lBaUJ0QyxZQUNxQixLQUFZLEVBQ2QsV0FBaUMsRUFDakMsYUFBa0M7UUFGaEMsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUNkLGdCQUFXLEdBQVgsV0FBVyxDQUFzQjtRQUNqQyxrQkFBYSxHQUFiLGFBQWEsQ0FBcUI7UUFuQjVDLGVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ2hFLGtCQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztRQUM1RSxrQkFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7UUFDNUUsWUFBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDaEUsYUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDL0Qsc0JBQWlCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJ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USxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELHdCQUF3QjtRQUN0QixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLHdCQUF3QixFQUFFLENBQUMsQ0FBQztJQUNuRSxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3Rpb25QYXlsb2FkIH0gZnJvbSAnQG5nZHV4L3N0b3JlLWNvbW1vbic7XHJcbmltcG9ydCB7IHNlbGVjdCwgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XHJcbmltcG9ydCB7IExpc3RBY3Rpb25zLCBMaXN0U2VsZWN0b3JzIH0gZnJvbSAnLi4vbW9kZWxzL2xpc3QubW9kZWwnO1xyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0TGlzdEZhY2FkZTxULCBFLCBTID0gVD4ge1xyXG4gIHJlYWRvbmx5IHJlc291cmNlcyQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHRoaXMubGlzdFNlbGVjdG9ycy5nZXRBbGwpKTtcclxuICByZWFkb25seSBsb2FkaW5nU3RhdGUkID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdCh0aGlzLmxpc3RTZWxlY3RvcnMuZ2V0TG9hZGluZ1N0YXRlKSk7XHJcbiAgcmVhZG9ubHkgcmVxdWVzdFN0YXRlJCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QodGhpcy5saXN0U2VsZWN0b3JzLmdldFJlcXVlc3RTdGF0ZSkpO1xyXG4gIHJlYWRvbmx5IGVycm9ycyQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHRoaXMubGlzdFNlbGVjdG9ycy5nZXRFcnJvcnMpKTtcclxuICByZWFkb25seSBpc1JlYWR5JCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QodGhpcy5saXN0U2VsZWN0b3JzLmlzUmVhZHkpKTtcclxuICByZWFkb25seSBhcmVTZWxlY3RlZFJlYWR5JCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QodGhpcy5saXN0U2VsZWN0b3JzLmFyZVNlbGVjdGVkUmVhZHkpKTtcclxuICByZWFkb25seSBjdXJyZW50UGFnZURhdGEkID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdCh0aGlzLmxpc3RTZWxlY3RvcnMuZ2V0Q3VycmVudFBhZ2VEYXRhKSk7XHJcbiAgcmVhZG9ubHkgY3VycmVudFBhZ2VOdW1iZXIkID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdCh0aGlzLmxpc3RTZWxlY3RvcnMuZ2V0Q3VycmVudFBhZ2VOdW1iZXIpKTtcclxuICByZWFkb25seSBmaWx0ZXJpbmdPcHRpb25zJCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QodGhpcy5saXN0U2VsZWN0b3JzLmdldEZpbHRlcmluZ09wdGlvbnMpKTtcclxuICByZWFkb25seSBsYXN0UGFnZU51bWJlciQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHRoaXMubGlzdFNlbGVjdG9ycy5nZXRMYXN0UGFnZU51bWJlcikpO1xyXG4gIHJlYWRvbmx5IHBhZ2luZ09wdGlvbnMkID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdCh0aGlzLmxpc3RTZWxlY3RvcnMuZ2V0UGFnaW5nT3B0aW9ucykpO1xyXG4gIHJlYWRvbmx5IHJlcXVlc3RPcHRpb25zJCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QodGhpcy5saXN0U2VsZWN0b3JzLmdldFJlcXVlc3RPcHRpb25zKSk7XHJcbiAgcmVhZG9ubHkgc29ydGluZ09wdGlvbnMkID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdCh0aGlzLmxpc3RTZWxlY3RvcnMuZ2V0U29ydGluZ09wdGlvbnMpKTtcclxuICByZWFkb25seSBzZWxlY3RlZEl0ZW1zJCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QodGhpcy5saXN0U2VsZWN0b3JzLmdldFNlbGVjdGVkSXRlbXMpKTtcclxuICByZWFkb25seSB0b3RhbENvdW50JCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QodGhpcy5saXN0U2VsZWN0b3JzLmdldFRvdGFsQ291bnQpKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3RvcmU6IFN0b3JlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBsaXN0QWN0aW9uczogTGlzdEFjdGlvbnM8VCwgRSwgUz4sXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxpc3RTZWxlY3RvcnM6IExpc3RTZWxlY3RvcnM8UywgRT5cclxuICApIHt9XHJcblxyXG4gIHNldFBhZ2VTaXplKHByb3BzOiBBY3Rpb25QYXlsb2FkPExpc3RBY3Rpb25zPFQsIEU+WydzZXRQYWdlU2l6ZSddPik6IHZvaWQge1xyXG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaCh0aGlzLmxpc3RBY3Rpb25zLnNldFBhZ2VTaXplKHByb3BzKSk7XHJcbiAgfVxyXG5cclxuICBzZXRGaWx0ZXJpbmcocHJvcHM6IEFjdGlvblBheWxvYWQ8TGlzdEFjdGlvbnM8VCwgRT5bJ3NldEZpbHRlcmluZyddPik6IHZvaWQge1xyXG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaCh0aGlzLmxpc3RBY3Rpb25zLnNldEZpbHRlcmluZyhwcm9wcykpO1xyXG4gIH1cclxuXHJcbiAgc2V0U29ydGluZyhwcm9wczogQWN0aW9uUGF5bG9hZDxMaXN0QWN0aW9uczxULCBFPlsnc2V0U29ydGluZyddPik6IHZvaWQge1xyXG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaCh0aGlzLmxpc3RBY3Rpb25zLnNldFNvcnRpbmcocHJvcHMpKTtcclxuICB9XHJcblxyXG4gIGNoYW5nZUZpbHRlcmluZyhwcm9wczogQWN0aW9uUGF5bG9hZDxMaXN0QWN0aW9uczxULCBFPlsnY2hhbmdlRmlsdGVyaW5nJ10+KTogdm9pZCB7XHJcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKHRoaXMubGlzdEFjdGlvbnMuY2hhbmdlRmlsdGVyaW5nKHByb3BzKSk7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VQYWdpbmdPcHRpb25zKHByb3BzOiBBY3Rpb25QYXlsb2FkPExpc3RBY3Rpb25zPFQsIEU+WydjaGFuZ2VQYWdpbmdPcHRpb25zJ10+KTogdm9pZCB7XHJcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKHRoaXMubGlzdEFjdGlvbnMuY2hhbmdlUGFnaW5nT3B0aW9ucyhwcm9wcykpO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlUGFnZVNpemUocHJvcHM6IEFjdGlvblBheWxvYWQ8TGlzdEFjdGlvbnM8VCwgRT5bJ2NoYW5nZVBhZ2VTaXplJ10+KTogdm9pZCB7XHJcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKHRoaXMubGlzdEFjdGlvbnMuY2hhbmdlUGFnZVNpemUocHJvcHMpKTtcclxuICB9XHJcblxyXG4gIGNoYW5nZVBhZ2VOdW1iZXIocHJvcHM6IEFjdGlvblBheWxvYWQ8TGlzdEFjdGlvbnM8VCwgRT5bJ2NoYW5nZVBhZ2VOdW1iZXInXT4pOiB2b2lkIHtcclxuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2godGhpcy5saXN0QWN0aW9ucy5jaGFuZ2VQYWdlTnVtYmVyKHByb3BzKSk7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VTZWxlY3RlZFJlc291cmNlcyhwcm9wczogQWN0aW9uUGF5bG9hZDxMaXN0QWN0aW9uczxULCBFPlsnY2hhbmdlU2VsZWN0ZWRSZXNvdXJjZXMnXT4pOiB2b2lkIHtcclxuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2godGhpcy5saXN0QWN0aW9ucy5jaGFuZ2VTZWxlY3RlZFJlc291cmNlcyhwcm9wcykpO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlU29ydGluZyhwcm9wczogQWN0aW9uUGF5bG9hZDxMaXN0QWN0aW9uczxULCBFPlsnY2hhbmdlU29ydGluZyddPik6IHZvaWQge1xyXG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaCh0aGlzLmxpc3RBY3Rpb25zLmNoYW5nZVNvcnRpbmcocHJvcHMpKTtcclxuICB9XHJcblxyXG4gIGxvYWRQYWdlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaCh0aGlzLmxpc3RBY3Rpb25zLmxvYWRQYWdlKCkpO1xyXG4gIH1cclxuXHJcbiAgbG9hZEZpcnN0UGFnZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2godGhpcy5saXN0QWN0aW9ucy5sb2FkRmlyc3RQYWdlKCkpO1xyXG4gIH1cclxuXHJcbiAgbG9hZE5leHRQYWdlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaCh0aGlzLmxpc3RBY3Rpb25zLmxvYWROZXh0UGFnZSgpKTtcclxuICB9XHJcblxyXG4gIGxvYWRQcmV2aW91c1BhZ2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKHRoaXMubGlzdEFjdGlvbnMubG9hZFByZXZpb3VzUGFnZSgpKTtcclxuICB9XHJcblxyXG4gIHBhdGNoKHByb3BzOiBBY3Rpb25QYXlsb2FkPExpc3RBY3Rpb25zPFQsIEU+WydwYXRjaCddPik6IHZvaWQge1xyXG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaCh0aGlzLmxpc3RBY3Rpb25zLnBhdGNoKHByb3BzKSk7XHJcbiAgfVxyXG5cclxuICBkZWxldGUocHJvcHM6IEFjdGlvblBheWxvYWQ8TGlzdEFjdGlvbnM8VCwgRT5bJ2RlbGV0ZSddPik6IHZvaWQge1xyXG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaCh0aGlzLmxpc3RBY3Rpb25zLmRlbGV0ZShwcm9wcykpO1xyXG4gIH1cclxuXHJcbiAgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2godGhpcy5saXN0QWN0aW9ucy5pbml0aWFsaXplKCkpO1xyXG4gIH1cclxuXHJcbiAgcmVpbml0aWFsaXplKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaCh0aGlzLmxpc3RBY3Rpb25zLnJlc2V0KCkpO1xyXG4gIH1cclxuXHJcbiAgcmVzZXRSZXF1ZXN0U3RhdGUoKTogdm9pZCB7XHJcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKHRoaXMubGlzdEFjdGlvbnMucmVzZXRSZXF1ZXN0U3RhdGUoKSk7XHJcbiAgfVxyXG5cclxuICBzaG93UmVtb3ZhbHNDb25maXJtYXRpb24oKTogdm9pZCB7XHJcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKHRoaXMubGlzdEFjdGlvbnMuc2hvd1JlbW92YWxzQ29uZmlybWF0aW9uKCkpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtbGlzdC5mYWNhZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nZHV4L3V0aWwvc3RvcmUvbGlzdC9zcmMvbGliLytzdGF0ZS9hYnN0cmFjdC1saXN0LmZhY2FkZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFTLE1BQU0sYUFBYSxDQUFDO0FBRzVDLE1BQU0sT0FBZ0Isa0JBQWtCO0lBa0J0QyxZQUNxQixLQUFZLEVBQ2QsV0FBaUMsRUFDakMsYUFBa0M7UUFGaEMsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUNkLGdCQUFXLEdBQVgsV0FBVyxDQUFzQjtRQUNqQyxrQkFBYSxHQUFiLGFBQWEsQ0FBcUI7UUFwQjVDLGVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ2hFLGtCQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztRQUM1RSxrQkFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7UUFDNUUsWUFBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDaEUsYUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDL0Qsc0JBQWlCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJ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SyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQWdEO1FBQ3BELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFpRDtRQUN0RCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsd0JBQXdCO1FBQ3RCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsd0JBQXdCLEVBQUUsQ0FBQyxDQUFDO0lBQ25FLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvblBheWxvYWQgfSBmcm9tICdAbmdkdXgvc3RvcmUtY29tbW9uJztcclxuaW1wb3J0IHsgc2VsZWN0LCBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcclxuaW1wb3J0IHsgTGlzdEFjdGlvbnMsIExpc3RTZWxlY3RvcnMgfSBmcm9tICcuLi9tb2RlbHMvbGlzdC5tb2RlbCc7XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RMaXN0RmFjYWRlPFQsIEUsIFMgPSBUPiB7XHJcbiAgcmVhZG9ubHkgcmVzb3VyY2VzJCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QodGhpcy5saXN0U2VsZWN0b3JzLmdldEFsbCkpO1xyXG4gIHJlYWRvbmx5IGxvYWRpbmdTdGF0ZSQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHRoaXMubGlzdFNlbGVjdG9ycy5nZXRMb2FkaW5nU3RhdGUpKTtcclxuICByZWFkb25seSByZXF1ZXN0U3RhdGUkID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdCh0aGlzLmxpc3RTZWxlY3RvcnMuZ2V0UmVxdWVzdFN0YXRlKSk7XHJcbiAgcmVhZG9ubHkgZXJyb3JzJCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QodGhpcy5saXN0U2VsZWN0b3JzLmdldEVycm9ycykpO1xyXG4gIHJlYWRvbmx5IGlzUmVhZHkkID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdCh0aGlzLmxpc3RTZWxlY3RvcnMuaXNSZWFkeSkpO1xyXG4gIHJlYWRvbmx5IGFyZVNlbGVjdGVkUmVhZHkkID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdCh0aGlzLmxpc3RTZWxlY3RvcnMuYXJlU2VsZWN0ZWRSZWFkeSkpO1xyXG4gIHJlYWRvbmx5IGN1cnJlbnRQYWdlRGF0YSQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHRoaXMubGlzdFNlbGVjdG9ycy5nZXRDdXJyZW50UGFnZURhdGEpKTtcclxuICByZWFkb25seSBjdXJyZW50UGFnZU51bWJlciQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHRoaXMubGlzdFNlbGVjdG9ycy5nZXRDdXJyZW50UGFnZU51bWJlcikpO1xyXG4gIHJlYWRvbmx5IGZpbHRlcmluZ09wdGlvbnMkID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdCh0aGlzLmxpc3RTZWxlY3RvcnMuZ2V0RmlsdGVyaW5nT3B0aW9ucykpO1xyXG4gIHJlYWRvbmx5IHJlcXVlc3RQYXJhbWV0ZXJzJCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QodGhpcy5saXN0U2VsZWN0b3JzLmdldFJlcXVlc3RQYXJhbWV0ZXJzKSk7XHJcbiAgcmVhZG9ubHkgbGFzdFBhZ2VOdW1iZXIkID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdCh0aGlzLmxpc3RTZWxlY3RvcnMuZ2V0TGFzdFBhZ2VOdW1iZXIpKTtcclxuICByZWFkb25seSBwYWdpbmdPcHRpb25zJCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QodGhpcy5saXN0U2VsZWN0b3JzLmdldFBhZ2luZ09wdGlvbnMpKTtcclxuICByZWFkb25seSByZXF1ZXN0T3B0aW9ucyQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHRoaXMubGlzdFNlbGVjdG9ycy5nZXRSZXF1ZXN0T3B0aW9ucykpO1xyXG4gIHJlYWRvbmx5IHNvcnRpbmdPcHRpb25zJCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QodGhpcy5saXN0U2VsZWN0b3JzLmdldFNvcnRpbmdPcHRpb25zKSk7XHJcbiAgcmVhZG9ubHkgc2VsZWN0ZWRJdGVtcyQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHRoaXMubGlzdFNlbGVjdG9ycy5nZXRTZWxlY3RlZEl0ZW1zKSk7XHJcbiAgcmVhZG9ubHkgdG90YWxDb3VudCQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHRoaXMubGlzdFNlbGVjdG9ycy5nZXRUb3RhbENvdW50KSk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHN0b3JlOiBTdG9yZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbGlzdEFjdGlvbnM6IExpc3RBY3Rpb25zPFQsIEUsIFM+LFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBsaXN0U2VsZWN0b3JzOiBMaXN0U2VsZWN0b3JzPFMsIEU+XHJcbiAgKSB7fVxyXG5cclxuICBzZXRQYWdlU2l6ZShwcm9wczogQWN0aW9uUGF5bG9hZDxMaXN0QWN0aW9uczxULCBFPlsnc2V0UGFnZVNpemUnXT4pOiB2b2lkIHtcclxuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2godGhpcy5saXN0QWN0aW9ucy5zZXRQYWdlU2l6ZShwcm9wcykpO1xyXG4gIH1cclxuXHJcbiAgc2V0RmlsdGVyaW5nKHByb3BzOiBBY3Rpb25QYXlsb2FkPExpc3RBY3Rpb25zPFQsIEU+WydzZXRGaWx0ZXJpbmcnXT4pOiB2b2lkIHtcclxuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2godGhpcy5saXN0QWN0aW9ucy5zZXRGaWx0ZXJpbmcocHJvcHMpKTtcclxuICB9XHJcblxyXG4gIHNldFNvcnRpbmcocHJvcHM6IEFjdGlvblBheWxvYWQ8TGlzdEFjdGlvbnM8VCwgRT5bJ3NldFNvcnRpbmcnXT4pOiB2b2lkIHtcclxuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2godGhpcy5saXN0QWN0aW9ucy5zZXRTb3J0aW5nKHByb3BzKSk7XHJcbiAgfVxyXG5cclxuICBzZXRSZXF1ZXN0UGFyYW1ldGVycyhwcm9wczogQWN0aW9uUGF5bG9hZDxMaXN0QWN0aW9uczxULCBFPlsnc2V0UmVxdWVzdFBhcmFtcyddPikge1xyXG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaCh0aGlzLmxpc3RBY3Rpb25zLnNldFJlcXVlc3RQYXJhbXMocHJvcHMpKTtcclxuICB9XHJcblxyXG4gIGNoYW5nZUZpbHRlcmluZyhwcm9wczogQWN0aW9uUGF5bG9hZDxMaXN0QWN0aW9uczxULCBFPlsnY2hhbmdlRmlsdGVyaW5nJ10+KTogdm9pZCB7XHJcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKHRoaXMubGlzdEFjdGlvbnMuY2hhbmdlRmlsdGVyaW5nKHByb3BzKSk7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VQYWdpbmdPcHRpb25zKHByb3BzOiBBY3Rpb25QYXlsb2FkPExpc3RBY3Rpb25zPFQsIEU+WydjaGFuZ2VQYWdpbmdPcHRpb25zJ10+KTogdm9pZCB7XHJcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKHRoaXMubGlzdEFjdGlvbnMuY2hhbmdlUGFnaW5nT3B0aW9ucyhwcm9wcykpO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlUGFnZVNpemUocHJvcHM6IEFjdGlvblBheWxvYWQ8TGlzdEFjdGlvbnM8VCwgRT5bJ2NoYW5nZVBhZ2VTaXplJ10+KTogdm9pZCB7XHJcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKHRoaXMubGlzdEFjdGlvbnMuY2hhbmdlUGFnZVNpemUocHJvcHMpKTtcclxuICB9XHJcblxyXG4gIGNoYW5nZVBhZ2VOdW1iZXIocHJvcHM6IEFjdGlvblBheWxvYWQ8TGlzdEFjdGlvbnM8VCwgRT5bJ2NoYW5nZVBhZ2VOdW1iZXInXT4pOiB2b2lkIHtcclxuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2godGhpcy5saXN0QWN0aW9ucy5jaGFuZ2VQYWdlTnVtYmVyKHByb3BzKSk7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VTZWxlY3RlZFJlc291cmNlcyhwcm9wczogQWN0aW9uUGF5bG9hZDxMaXN0QWN0aW9uczxULCBFPlsnY2hhbmdlU2VsZWN0ZWRSZXNvdXJjZXMnXT4pOiB2b2lkIHtcclxuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2godGhpcy5saXN0QWN0aW9ucy5jaGFuZ2VTZWxlY3RlZFJlc291cmNlcyhwcm9wcykpO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlU29ydGluZyhwcm9wczogQWN0aW9uUGF5bG9hZDxMaXN0QWN0aW9uczxULCBFPlsnY2hhbmdlU29ydGluZyddPik6IHZvaWQge1xyXG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaCh0aGlzLmxpc3RBY3Rpb25zLmNoYW5nZVNvcnRpbmcocHJvcHMpKTtcclxuICB9XHJcblxyXG4gIGNoYW5nZVJlcXVlc3RQYXJhbXMocHJvcHM6IEFjdGlvblBheWxvYWQ8TGlzdEFjdGlvbnM8VCwgRT5bJ2NoYW5nZVJlcXVlc3RQYXJhbXMnXT4pOiB2b2lkIHtcclxuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2godGhpcy5saXN0QWN0aW9ucy5jaGFuZ2VSZXF1ZXN0UGFyYW1zKHByb3BzKSk7XHJcbiAgfVxyXG5cclxuICBsb2FkUGFnZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2godGhpcy5saXN0QWN0aW9ucy5sb2FkUGFnZSgpKTtcclxuICB9XHJcblxyXG4gIGxvYWRGaXJzdFBhZ2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKHRoaXMubGlzdEFjdGlvbnMubG9hZEZpcnN0UGFnZSgpKTtcclxuICB9XHJcblxyXG4gIGxvYWROZXh0UGFnZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2godGhpcy5saXN0QWN0aW9ucy5sb2FkTmV4dFBhZ2UoKSk7XHJcbiAgfVxyXG5cclxuICBsb2FkUHJldmlvdXNQYWdlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaCh0aGlzLmxpc3RBY3Rpb25zLmxvYWRQcmV2aW91c1BhZ2UoKSk7XHJcbiAgfVxyXG5cclxuICBwYXRjaChwcm9wczogQWN0aW9uUGF5bG9hZDxMaXN0QWN0aW9uczxULCBFPlsncGF0Y2gnXT4pOiB2b2lkIHtcclxuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2godGhpcy5saXN0QWN0aW9ucy5wYXRjaChwcm9wcykpO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlKHByb3BzOiBBY3Rpb25QYXlsb2FkPExpc3RBY3Rpb25zPFQsIEU+WydkZWxldGUnXT4pOiB2b2lkIHtcclxuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2godGhpcy5saXN0QWN0aW9ucy5kZWxldGUocHJvcHMpKTtcclxuICB9XHJcblxyXG4gIGluaXRpYWxpemUoKTogdm9pZCB7XHJcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKHRoaXMubGlzdEFjdGlvbnMuaW5pdGlhbGl6ZSgpKTtcclxuICB9XHJcblxyXG4gIHJlaW5pdGlhbGl6ZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2godGhpcy5saXN0QWN0aW9ucy5yZXNldCgpKTtcclxuICB9XHJcblxyXG4gIHJlc2V0UmVxdWVzdFN0YXRlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaCh0aGlzLmxpc3RBY3Rpb25zLnJlc2V0UmVxdWVzdFN0YXRlKCkpO1xyXG4gIH1cclxuXHJcbiAgc2hvd1JlbW92YWxzQ29uZmlybWF0aW9uKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaCh0aGlzLmxpc3RBY3Rpb25zLnNob3dSZW1vdmFsc0NvbmZpcm1hdGlvbigpKTtcclxuICB9XHJcbn1cclxuIl19
|
package/fesm2015/ngdux-list.mjs
CHANGED
|
@@ -309,6 +309,7 @@ class AbstractListFacade {
|
|
|
309
309
|
this.currentPageData$ = this.store.pipe(select(this.listSelectors.getCurrentPageData));
|
|
310
310
|
this.currentPageNumber$ = this.store.pipe(select(this.listSelectors.getCurrentPageNumber));
|
|
311
311
|
this.filteringOptions$ = this.store.pipe(select(this.listSelectors.getFilteringOptions));
|
|
312
|
+
this.requestParameters$ = this.store.pipe(select(this.listSelectors.getRequestParameters));
|
|
312
313
|
this.lastPageNumber$ = this.store.pipe(select(this.listSelectors.getLastPageNumber));
|
|
313
314
|
this.pagingOptions$ = this.store.pipe(select(this.listSelectors.getPagingOptions));
|
|
314
315
|
this.requestOptions$ = this.store.pipe(select(this.listSelectors.getRequestOptions));
|
|
@@ -325,6 +326,9 @@ class AbstractListFacade {
|
|
|
325
326
|
setSorting(props) {
|
|
326
327
|
this.store.dispatch(this.listActions.setSorting(props));
|
|
327
328
|
}
|
|
329
|
+
setRequestParameters(props) {
|
|
330
|
+
this.store.dispatch(this.listActions.setRequestParams(props));
|
|
331
|
+
}
|
|
328
332
|
changeFiltering(props) {
|
|
329
333
|
this.store.dispatch(this.listActions.changeFiltering(props));
|
|
330
334
|
}
|
|
@@ -343,6 +347,9 @@ class AbstractListFacade {
|
|
|
343
347
|
changeSorting(props) {
|
|
344
348
|
this.store.dispatch(this.listActions.changeSorting(props));
|
|
345
349
|
}
|
|
350
|
+
changeRequestParams(props) {
|
|
351
|
+
this.store.dispatch(this.listActions.changeRequestParams(props));
|
|
352
|
+
}
|
|
346
353
|
loadPage() {
|
|
347
354
|
this.store.dispatch(this.listActions.loadPage());
|
|
348
355
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngdux-list.mjs","sources":["../../../../../../../libs/ngdux/util/store/list/src/lib/+state/abstract-list-effects.ts","../../../../../../../libs/ngdux/util/store/list/src/lib/models/list.model.ts","../../../../../../../libs/ngdux/util/store/list/src/lib/+state/list-actions.ts","../../../../../../../libs/ngdux/util/store/list/src/lib/+state/list-reducer.ts","../../../../../../../libs/ngdux/util/store/list/src/lib/+state/list-selectors.ts","../../../../../../../libs/ngdux/util/store/list/src/lib/+state/abstract-list-state.service.ts","../../../../../../../libs/ngdux/util/store/list/src/lib/+state/abstract-list.facade.ts","../../../../../../../libs/ngdux/util/store/list/src/lib/+state/list-state.ts","../../../../../../../libs/ngdux/util/store/list/src/ngdux-list.ts"],"sourcesContent":["import { ListNotificationService, ListService } from '@ngdux/data-model-common';\r\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\r\nimport { Store, select } from '@ngrx/store';\r\nimport { of } from 'rxjs';\r\nimport { catchError, concatMap, exhaustMap, filter, map, switchMap, tap, withLatestFrom } from 'rxjs/operators';\r\n\r\nimport { ListActions, ListSelectors } from '../models/list.model';\r\n\r\nexport abstract class AbstractListEffects<T, E, S = T> {\r\n texts = {\r\n deleteConfirmationTitle: 'Delete resources',\r\n deleteConfirmationMessage: 'Are you sure to delete the selected resources?'\r\n };\r\n\r\n reload$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(\r\n this.listActions.changePageSize,\r\n this.listActions.changeSorting,\r\n this.listActions.changeFiltering,\r\n this.listActions.changeRequestParams,\r\n this.listActions.initialize,\r\n this.listActions.reset,\r\n this.listActions.changePageNumber,\r\n this.listActions.patchSuccess,\r\n this.listActions.deleteSuccess\r\n ),\r\n map(() => this.listActions.loadPage())\r\n )\r\n );\r\n\r\n loadFirstPage$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(this.listActions.loadFirstPage),\r\n map(() => this.listActions.changePageNumber({ pageNumber: 1 }))\r\n )\r\n );\r\n\r\n loadPreviousPage$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(this.listActions.loadPreviousPage),\r\n withLatestFrom(this.store.pipe(select(this.listSelectors.getCurrentPageNumber))),\r\n filter(([, currentPageNumber]) => currentPageNumber > 1),\r\n map(([, currentPageNumber]) => this.listActions.changePageNumber({ pageNumber: currentPageNumber - 1 }))\r\n )\r\n );\r\n\r\n loadNextPage$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(this.listActions.loadNextPage),\r\n withLatestFrom(\r\n this.store.pipe(select(this.listSelectors.isLastPage)),\r\n this.store.pipe(select(this.listSelectors.getCurrentPageNumber))\r\n ),\r\n filter(([, isLastPage]) => !isLastPage),\r\n map(([, , currentPageNumber]) => this.listActions.changePageNumber({ pageNumber: currentPageNumber + 1 }))\r\n )\r\n );\r\n\r\n changePagingOptions$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(this.listActions.changePagingOptions),\r\n withLatestFrom(this.store.pipe(select(this.listSelectors.getPagingOptions))),\r\n map(([action, pagingOptions]) => {\r\n if (action.pagingOptions.pageSize !== pagingOptions.pageSize) {\r\n return this.listActions.changePageSize({ pageSize: action.pagingOptions.pageSize });\r\n } else {\r\n return this.listActions.changePageNumber({ pageNumber: action.pagingOptions.page });\r\n }\r\n })\r\n )\r\n );\r\n\r\n loadPage$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(this.listActions.loadPage),\r\n withLatestFrom(\r\n this.store.pipe(select(this.listSelectors.getPagingOptions)),\r\n this.store.pipe(select(this.listSelectors.getSortingOptions)),\r\n this.store.pipe(select(this.listSelectors.getFilteringOptions)),\r\n this.store.pipe(select(this.listSelectors.getRequestParameters))\r\n ),\r\n concatMap(([, pagingOptions, sortingOptions, filteringOptions, requestParameters]) => {\r\n return this.service\r\n .loadResources({\r\n pagingOptions,\r\n sortingOptions,\r\n filteringOptions,\r\n requestParameters\r\n })\r\n .pipe(\r\n map(resources =>\r\n this.listActions.loadPageSuccess({\r\n resources,\r\n pagingOptions\r\n })\r\n ),\r\n catchError((errors: E) => of(this.listActions.loadPageFailure({ errors })))\r\n );\r\n })\r\n )\r\n );\r\n\r\n patch$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(this.listActions.patch),\r\n exhaustMap(action => {\r\n if (!this.service.patchResources) {\r\n throw new Error('patchResources not implement in the ListService');\r\n }\r\n\r\n return this.service.patchResources(action.resourceIds, action.resource).pipe(\r\n map(resources => this.listActions.patchSuccess({ resources })),\r\n catchError((errors: E) => of(this.listActions.patchFailure({ errors })))\r\n );\r\n })\r\n )\r\n );\r\n\r\n showRemovalsDialog$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(this.listActions.showRemovalsConfirmation),\r\n switchMap(() => {\r\n if (this.notificationService?.openConfirmationDialog) {\r\n return this.notificationService.openConfirmationDialog({\r\n message: this.texts.deleteConfirmationMessage,\r\n title: this.texts.deleteConfirmationTitle\r\n });\r\n }\r\n\r\n return of(true);\r\n }),\r\n filter(confirmed => confirmed),\r\n withLatestFrom(this.store.pipe(select(this.listSelectors.getSelectedResourceIds))),\r\n map(([, resourceIds]) => this.listActions.delete({ resourceIds }))\r\n )\r\n );\r\n\r\n delete$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(this.listActions.delete),\r\n exhaustMap(({ resourceIds }) => {\r\n if (!this.service.deleteResources) {\r\n throw new Error('deleteResources not implement in the ListService');\r\n }\r\n\r\n return this.service.deleteResources(resourceIds).pipe(\r\n map(() => this.listActions.deleteSuccess({ resourceIds })),\r\n catchError((errors: E) => of(this.listActions.deleteFailure({ errors })))\r\n );\r\n })\r\n )\r\n );\r\n\r\n deleteUsersSuccess$ = createEffect(\r\n () =>\r\n this.actions$.pipe(\r\n ofType(this.listActions.deleteSuccess),\r\n tap(({ resourceIds }) => {\r\n this.notificationService?.onListDelete(resourceIds);\r\n })\r\n ),\r\n { dispatch: false }\r\n );\r\n\r\n errorsHandler$ = createEffect(\r\n () =>\r\n this.actions$.pipe(\r\n ofType(this.listActions.loadPageFailure, this.listActions.deleteFailure, this.listActions.patchFailure),\r\n tap(({ errors }) => {\r\n this.notificationService?.onListErrors(errors);\r\n })\r\n ),\r\n { dispatch: false }\r\n );\r\n\r\n protected constructor(\r\n protected readonly actions$: Actions,\r\n protected readonly store: Store,\r\n protected readonly service: ListService<T, S>,\r\n protected readonly listActions: ListActions<T, E, S>,\r\n protected readonly listSelectors: ListSelectors<S, E>,\r\n protected readonly notificationService?: ListNotificationService<E>\r\n ) {}\r\n}\r\n","/* eslint-disable @typescript-eslint/ban-types */\r\nimport { InjectionToken } from '@angular/core';\r\nimport {\r\n ErrorDto,\r\n FilteringOptions,\r\n PagingOptions,\r\n RequestOptions,\r\n RequestState,\r\n SortingOptions\r\n} from '@ngdux/data-model-common';\r\nimport { ApiRequestState, LoadingState } from '@ngdux/store-common';\r\nimport { EntityState } from '@ngrx/entity';\r\nimport { ActionCreator, MemoizedSelector } from '@ngrx/store';\r\nimport { TypedAction } from '@ngrx/store/src/models';\r\n\r\nexport const LIST_FEATURE_KEY = new InjectionToken<string>('LIST_FEATURE_KEY');\r\n\r\nexport interface ListState<T, E> extends EntityState<T>, RequestOptions, ApiRequestState<E>, LoadingState {\r\n selectedResourceIds: string[];\r\n lastPageNumber?: number;\r\n}\r\n\r\nexport interface ListSelectors<T, E> {\r\n getAll: MemoizedSelector<object, T[]>;\r\n getRequestOptions: MemoizedSelector<object, RequestOptions>;\r\n isLastPage: MemoizedSelector<object, boolean>;\r\n getCurrentPageData: MemoizedSelector<object, T[]>;\r\n getPagingOptions: MemoizedSelector<object, PagingOptions>;\r\n getSortingOptions: MemoizedSelector<object, SortingOptions>;\r\n getFilteringOptions: MemoizedSelector<object, FilteringOptions>;\r\n getRequestParameters: MemoizedSelector<object, Record<string, string> | undefined>;\r\n getCurrentPageNumber: MemoizedSelector<object, number>;\r\n getLastPageNumber: MemoizedSelector<object, number | undefined>;\r\n getLoadingState: MemoizedSelector<object, RequestState>;\r\n getSelectedResourceIds: MemoizedSelector<object, string[]>;\r\n getSelectedItems: MemoizedSelector<object, T[]>;\r\n getSelectionRecord: MemoizedSelector<object, Record<string, T>>;\r\n getRequestState: MemoizedSelector<object, RequestState>;\r\n getErrors: MemoizedSelector<object, E | undefined>;\r\n areSelectedReady: MemoizedSelector<object, boolean>;\r\n isReady: MemoizedSelector<object, boolean>;\r\n isDeleteDisabled: MemoizedSelector<object, boolean>;\r\n isCopyDisabled: MemoizedSelector<object, boolean>;\r\n getTotalCount: MemoizedSelector<object, number>;\r\n}\r\n\r\nexport interface ListActions<Entity, Error, Summary = Entity, Params = Record<string, string>> {\r\n /**\r\n * Set the page size without reloading the list\r\n */\r\n setPageSize: ActionCreator<string, (props: { pageSize: number }) => { pageSize: number } & TypedAction<string>>;\r\n /**\r\n * Set the sorting options without reloading the list\r\n */\r\n setSorting: ActionCreator<\r\n string,\r\n (props: { sortingOptions: SortingOptions }) => { sortingOptions: SortingOptions } & TypedAction<string>\r\n >;\r\n /**\r\n * Set the filtering options without reloading the list\r\n */\r\n setFiltering: ActionCreator<\r\n string,\r\n (props: { filteringOptions: FilteringOptions }) => { filteringOptions: FilteringOptions } & TypedAction<string>\r\n >;\r\n /**\r\n * Set the request parameters without reloading the list\r\n */\r\n setRequestParams: ActionCreator<string, (props: { params: Params }) => { params: Params } & TypedAction<string>>;\r\n\r\n /**\r\n * Change the paging options and reload the list\r\n */\r\n changePagingOptions: ActionCreator<\r\n string,\r\n (props: { pagingOptions: PagingOptions }) => { pagingOptions: PagingOptions } & TypedAction<string>\r\n >;\r\n\r\n /**\r\n * Change the page number and reload the list\r\n */\r\n changePageNumber: ActionCreator<\r\n string,\r\n (props: { pageNumber: number }) => { pageNumber: number } & TypedAction<string>\r\n >;\r\n /**\r\n * Change the page size and reload the list\r\n */\r\n changePageSize: ActionCreator<string, (props: { pageSize: number }) => { pageSize: number } & TypedAction<string>>;\r\n /**\r\n * Change the sorting options and reload the list\r\n */\r\n changeSorting: ActionCreator<\r\n string,\r\n (props: { sortingOptions: SortingOptions }) => { sortingOptions: SortingOptions } & TypedAction<string>\r\n >;\r\n /**\r\n * Change the filtering options and reload the list\r\n */\r\n changeFiltering: ActionCreator<\r\n string,\r\n (props: { filteringOptions: FilteringOptions }) => { filteringOptions: FilteringOptions } & TypedAction<string>\r\n >;\r\n /**\r\n * Change the request parameters and reload the list\r\n */\r\n changeRequestParams: ActionCreator<string, (props: { params: Params }) => { params: Params } & TypedAction<string>>;\r\n\r\n changeSelectedResources: ActionCreator<\r\n string,\r\n (props: { selectedResourceIds: string[] }) => { selectedResourceIds: string[] } & TypedAction<string>\r\n >;\r\n loadPage: ActionCreator<string, () => TypedAction<string>>;\r\n loadPageSuccess: ActionCreator<\r\n string,\r\n (props: {\r\n resources: Summary[];\r\n pagingOptions: PagingOptions;\r\n }) => { resources: Summary[]; pagingOptions: PagingOptions } & TypedAction<string>\r\n >;\r\n loadPageFailure: ActionCreator<string, (props: { errors: Error }) => { errors: Error } & TypedAction<string>>;\r\n delete: ActionCreator<string, (props: { resourceIds: string[] }) => { resourceIds: string[] } & TypedAction<string>>;\r\n deleteSuccess: ActionCreator<\r\n string,\r\n (props: { resourceIds: string[] }) => { resourceIds: string[] } & TypedAction<string>\r\n >;\r\n deleteFailure: ActionCreator<string, (props: { errors: Error }) => { errors: Error } & TypedAction<string>>;\r\n patch: ActionCreator<\r\n string,\r\n (props: {\r\n resourceIds: string[];\r\n resource: Partial<Entity>;\r\n }) => { resourceIds: string[]; resource: Partial<Entity> } & TypedAction<string>\r\n >;\r\n patchSuccess: ActionCreator<\r\n string,\r\n (props: { resources: (Entity | ErrorDto)[] }) => { resources: (Entity | ErrorDto)[] } & TypedAction<string>\r\n >;\r\n patchFailure: ActionCreator<string, (props: { errors: Error }) => { errors: Error } & TypedAction<string>>;\r\n loadNextPage: ActionCreator<string, () => TypedAction<string>>;\r\n\r\n /**\r\n * Remove the current data, set the page number to 1 and deselect resources.\r\n * Keep all the rest, like filteringOptions and sortingOptions\r\n */\r\n initialize: ActionCreator<string, () => TypedAction<string>>;\r\n /**\r\n * Reset to the initial state\r\n */\r\n reset: ActionCreator<string, () => TypedAction<string>>;\r\n loadPreviousPage: ActionCreator<string, () => TypedAction<string>>;\r\n loadFirstPage: ActionCreator<string, () => TypedAction<string>>;\r\n /**\r\n * Reset the request state to idle\r\n */\r\n resetRequestState: ActionCreator<string, () => TypedAction<string>>;\r\n showRemovalsConfirmation: ActionCreator<string, () => TypedAction<string>>;\r\n}\r\n","import { ErrorDto, FilteringOptions, PagingOptions, SortingOptions } from '@ngdux/data-model-common';\r\nimport { createAction, props } from '@ngrx/store';\r\nimport { ListActions } from '../models/list.model';\r\n\r\nexport function createListActions<T, E, S = T, Params = Record<string, string>>(\r\n featureName: string\r\n): ListActions<T, E, S, Params> {\r\n const resetRequestState = createAction(`[${featureName} Page] Reset ${featureName} Request State`);\r\n const initialize = createAction(`[${featureName} Page] Initialize ${featureName}`);\r\n const reset = createAction(`[Organization ${featureName} Page] Reset ${featureName}`);\r\n\r\n const loadNextPage = createAction(`[${featureName} Page] Load Next ${featureName} Page`);\r\n const loadPreviousPage = createAction(`[${featureName} Page] Load Previous ${featureName} Page`);\r\n const loadFirstPage = createAction(`[${featureName} Page] Load First ${featureName} Page`);\r\n\r\n const setPageSize = createAction(`[${featureName} Page] Set ${featureName} Page Size`, props<{ pageSize: number }>());\r\n const setSorting = createAction(\r\n `[${featureName} Page] Set ${featureName} Sorting`,\r\n props<{ sortingOptions: SortingOptions }>()\r\n );\r\n const setFiltering = createAction(\r\n `[${featureName} Page] Set ${featureName} Filtering`,\r\n props<{ filteringOptions: FilteringOptions }>()\r\n );\r\n const setRequestParams = createAction(\r\n `[${featureName} Page] Set ${featureName} Request Params`,\r\n props<{ params: Params }>()\r\n );\r\n\r\n const changePageSize = createAction(\r\n `[${featureName} Page] Change ${featureName} Page Size`,\r\n props<{ pageSize: number }>()\r\n );\r\n\r\n const changePageNumber = createAction(\r\n `[${featureName} Page] Change ${featureName} Page Number`,\r\n props<{ pageNumber: number }>()\r\n );\r\n\r\n const changePagingOptions = createAction(\r\n `[${featureName} Page] Change ${featureName} Page Options`,\r\n props<{ pagingOptions: PagingOptions }>()\r\n );\r\n const changeSorting = createAction(\r\n `[${featureName} Page] Change ${featureName} Sorting`,\r\n props<{ sortingOptions: SortingOptions }>()\r\n );\r\n const changeFiltering = createAction(\r\n `[${featureName} Page] Change ${featureName} Filtering`,\r\n props<{ filteringOptions: FilteringOptions }>()\r\n );\r\n const changeSelectedResources = createAction(\r\n `[${featureName} Page] Change Selected Resources ${featureName}`,\r\n props<{ selectedResourceIds: string[] }>()\r\n );\r\n const changeRequestParams = createAction(\r\n `[${featureName} Page] Change ${featureName} Request Params`,\r\n props<{ params: Params }>()\r\n );\r\n\r\n const loadPage = createAction(`[${featureName} Page] Load ${featureName} Page`);\r\n const loadPageSuccess = createAction(\r\n `[${featureName} Page] Load ${featureName} Page Success`,\r\n props<{ resources: S[]; pagingOptions: PagingOptions }>()\r\n );\r\n const loadPageFailure = createAction(\r\n `[${featureName} Page] Load ${featureName} Page Failure`,\r\n props<{ errors: E }>()\r\n );\r\n\r\n const deleteAction = createAction(`[${featureName} Page] Delete ${featureName}`, props<{ resourceIds: string[] }>());\r\n const deleteSuccess = createAction(\r\n `[${featureName} Page] Delete ${featureName} Success`,\r\n props<{ resourceIds: string[] }>()\r\n );\r\n const deleteFailure = createAction(`[${featureName} Page] Delete ${featureName} Failure`, props<{ errors: E }>());\r\n\r\n const patch = createAction(\r\n `[${featureName} Page] Patch ${featureName}`,\r\n props<{ resourceIds: string[]; resource: Partial<T> }>()\r\n );\r\n const patchSuccess = createAction(\r\n `[${featureName} Page] Patch ${featureName} Success`,\r\n props<{ resources: (T | ErrorDto)[] }>()\r\n );\r\n const patchFailure = createAction(`[${featureName} Page] Patch ${featureName} Failure`, props<{ errors: E }>());\r\n\r\n const showRemovalsConfirmation = createAction(`[${featureName} Page] Show ${featureName} Removal Confirmation`);\r\n\r\n return {\r\n initialize,\r\n reset,\r\n setPageSize,\r\n setSorting,\r\n setFiltering,\r\n setRequestParams,\r\n changePageSize,\r\n changePageNumber,\r\n changePagingOptions,\r\n changeSorting,\r\n changeFiltering,\r\n changeRequestParams,\r\n loadPreviousPage,\r\n loadNextPage,\r\n loadFirstPage,\r\n changeSelectedResources,\r\n loadPage,\r\n loadPageSuccess,\r\n loadPageFailure,\r\n delete: deleteAction,\r\n deleteSuccess,\r\n deleteFailure,\r\n patch,\r\n patchSuccess,\r\n patchFailure,\r\n resetRequestState,\r\n showRemovalsConfirmation\r\n };\r\n}\r\n","import { DEFAULT_PAGE, DEFAULT_REQUEST_OPTIONS, RequestState } from '@ngdux/data-model-common';\r\nimport {\r\n createLoadingStateActionHandlers,\r\n createRequestStateActionHandlers,\r\n getLastPageNumber\r\n} from '@ngdux/store-common';\r\nimport { EntityAdapter, createEntityAdapter } from '@ngrx/entity';\r\nimport { ActionReducer, ReducerTypes, createReducer, on } from '@ngrx/store';\r\nimport { ActionCreator } from '@ngrx/store/src/models';\r\n\r\nimport { ListActions, ListState } from '../models/list.model';\r\n\r\nexport function createListEntityAdapter<T extends { [key: string]: any }>(idKey = 'id'): EntityAdapter<T> {\r\n return createEntityAdapter({\r\n selectId: resource => resource[idKey]\r\n });\r\n}\r\n\r\nexport function createListReducer<T, E, S = T>(\r\n entityAdapter: EntityAdapter<S>,\r\n actions: ListActions<T, E, S>,\r\n actionHandlers?: ReducerTypes<ListState<S, E>, ActionCreator[]>[],\r\n initialListState?: { [key: string]: unknown }\r\n): ActionReducer<ListState<S, E>> {\r\n const initialState: ListState<S, E> = { ...createInitialListState<S, E>(entityAdapter), ...initialListState };\r\n return createReducer<ListState<S, E>>(\r\n initialState,\r\n ...createListActionHandlers<T, E, S>(initialState, entityAdapter, actions),\r\n ...(actionHandlers || [])\r\n );\r\n}\r\n\r\nfunction createInitialListState<T, E>(entityAdapter: EntityAdapter<T>): ListState<T, E> {\r\n return entityAdapter.getInitialState({\r\n ...DEFAULT_REQUEST_OPTIONS,\r\n lastPageNumber: undefined,\r\n selectedResourceIds: [],\r\n loadingState: RequestState.IDLE,\r\n requestState: RequestState.IDLE,\r\n errors: undefined\r\n });\r\n}\r\n\r\nfunction createListActionHandlers<T, E, S>(\r\n initialListState: ListState<S, E>,\r\n entityAdapter: EntityAdapter<S>,\r\n actions: ListActions<T, E, S>\r\n): ReducerTypes<ListState<S, E>, ActionCreator[]>[] {\r\n return [\r\n on(actions.reset, () => initialListState),\r\n on(actions.initialize, (state: ListState<S, E>) =>\r\n entityAdapter.removeAll({\r\n ...state,\r\n selectedResourceIds: [],\r\n pagingOptions: {\r\n ...state.pagingOptions,\r\n page: DEFAULT_PAGE\r\n },\r\n requestState: RequestState.IDLE\r\n })\r\n ),\r\n on(actions.changePageSize, actions.setPageSize, (state: ListState<S, E>, { pageSize }) => ({\r\n ...state,\r\n pagingOptions: { page: DEFAULT_PAGE, pageSize },\r\n lastPageNumber: undefined\r\n })),\r\n on(actions.changePageNumber, (state: ListState<S, E>, { pageNumber }) => ({\r\n ...state,\r\n pagingOptions: { ...state.pagingOptions, page: pageNumber }\r\n })),\r\n on(actions.changeSorting, actions.setSorting, (state: ListState<S, E>, { sortingOptions }) => ({\r\n ...state,\r\n sortingOptions,\r\n pagingOptions: { ...state.pagingOptions, page: DEFAULT_PAGE }\r\n })),\r\n on(actions.changeFiltering, actions.setFiltering, (state: ListState<S, E>, { filteringOptions }) => ({\r\n ...state,\r\n filteringOptions,\r\n pagingOptions: { ...state.pagingOptions, page: DEFAULT_PAGE },\r\n lastPageNumber: undefined\r\n })),\r\n on(actions.changeRequestParams, actions.setRequestParams, (state: ListState<S, E>, { params }) => ({\r\n ...state,\r\n params,\r\n pagingOptions: { ...state.pagingOptions, page: DEFAULT_PAGE }\r\n })),\r\n on(actions.changeSelectedResources, (state: ListState<S, E>, { selectedResourceIds }) => ({\r\n ...state,\r\n selectedResourceIds\r\n })),\r\n on(actions.loadFirstPage, (state: ListState<S, E>) => ({\r\n ...state,\r\n pagingOptions: { ...state.pagingOptions, page: 1 }\r\n })),\r\n on(actions.loadPageSuccess, (state: ListState<S, E>, { resources, pagingOptions }) => {\r\n const lastPageNumber = getLastPageNumber(resources, pagingOptions) || state.lastPageNumber;\r\n if (lastPageNumber && pagingOptions.page > lastPageNumber) {\r\n return {\r\n ...state,\r\n pagingOptions: {\r\n ...state.pagingOptions,\r\n page: lastPageNumber\r\n },\r\n lastPageNumber,\r\n selectedResourceIds: []\r\n };\r\n }\r\n\r\n return entityAdapter.setAll(resources, {\r\n ...state,\r\n lastPageNumber,\r\n selectedResourceIds: []\r\n });\r\n }),\r\n on(actions.deleteSuccess, (state: ListState<S, E>) => ({\r\n ...state,\r\n selectedResourceIds: [] as string[]\r\n })),\r\n ...createLoadingStateActionHandlers<ListState<S, E>>(\r\n actions.loadPage,\r\n actions.loadPageSuccess,\r\n actions.loadPageFailure\r\n ),\r\n ...createRequestStateActionHandlers<ListState<S, E>, E>(\r\n undefined,\r\n actions.delete,\r\n actions.deleteSuccess,\r\n actions.deleteFailure\r\n ),\r\n ...createRequestStateActionHandlers<ListState<S, E>, E>(\r\n actions.resetRequestState,\r\n actions.patch,\r\n actions.patchSuccess,\r\n actions.patchFailure\r\n )\r\n ];\r\n}\r\n","/* eslint-disable @typescript-eslint/ban-types */\r\nimport { RequestOptions, RequestState } from '@ngdux/data-model-common';\r\nimport { EntityAdapter } from '@ngrx/entity';\r\nimport { DefaultProjectorFn, MemoizedSelector, createSelector } from '@ngrx/store';\r\nimport { ListSelectors, ListState } from '../models/list.model';\r\n\r\nexport function createListSelectors<T, E>(\r\n entityAdapter: EntityAdapter<T>,\r\n getListState: MemoizedSelector<object, ListState<T, E>, DefaultProjectorFn<ListState<T, E>>>\r\n): ListSelectors<T, E> {\r\n const getAll = createSelector(getListState, entityAdapter.getSelectors().selectAll);\r\n\r\n const getPagingOptions = createSelector(getListState, state => state.pagingOptions);\r\n\r\n const getRequestOptions = createSelector(\r\n getListState,\r\n (state): RequestOptions => ({\r\n pagingOptions: state.pagingOptions,\r\n sortingOptions: state.sortingOptions,\r\n filteringOptions: state.filteringOptions\r\n })\r\n );\r\n\r\n const getLastPageNumber = createSelector(getListState, state => state.lastPageNumber);\r\n\r\n const isLastPage = createSelector(getPagingOptions, getLastPageNumber, ({ page }, lastPageNumber) => {\r\n return lastPageNumber ? lastPageNumber <= page : false;\r\n });\r\n\r\n const getCurrentPageData = createSelector(getAll, resources => {\r\n return resources;\r\n });\r\n\r\n const getSortingOptions = createSelector(getListState, state => state.sortingOptions);\r\n\r\n const getRequestParameters = createSelector(getListState, state => state.requestParameters);\r\n\r\n const getFilteringOptions = createSelector(getListState, state => state.filteringOptions);\r\n\r\n const getCurrentPageNumber = createSelector(getPagingOptions, options => options?.page);\r\n\r\n const getSelectedResourceIds = createSelector(getListState, state => state.selectedResourceIds);\r\n\r\n const getLoadingState = createSelector(getListState, state => state.loadingState);\r\n\r\n const getSelectedItems = createSelector(\r\n getSelectedResourceIds,\r\n createSelector(getListState, entityAdapter.getSelectors().selectEntities),\r\n (selectedResourceIds, resources): T[] =>\r\n selectedResourceIds.reduce((acc, selectedResourceId): T[] => {\r\n const resource = resources[selectedResourceId];\r\n if (resource) {\r\n acc.push(resource);\r\n }\r\n return acc;\r\n }, [] as T[])\r\n );\r\n\r\n const getSelectionRecord = createSelector(\r\n getSelectedResourceIds,\r\n createSelector(getListState, entityAdapter.getSelectors().selectEntities),\r\n (selectedResourceIds, resources): Record<string, T> =>\r\n selectedResourceIds.reduce((selected, selectedResourceId) => {\r\n const resource = resources[selectedResourceId];\r\n if (resource) {\r\n selected[selectedResourceId] = resource;\r\n }\r\n return selected;\r\n }, {} as Record<string, T>)\r\n );\r\n\r\n const getRequestState = createSelector(getListState, state => state.requestState);\r\n\r\n const getErrors = createSelector(getListState, state => state.errors);\r\n\r\n const isReady = createSelector(\r\n getAll,\r\n getLoadingState,\r\n (users, loadingState) => !!users && loadingState === RequestState.SUCCESS\r\n );\r\n\r\n const areSelectedReady = createSelector(\r\n getSelectedResourceIds,\r\n getSelectionRecord,\r\n getLoadingState,\r\n (selectedResourceIds, resources, loadingState) => {\r\n return selectedResourceIds.every(resourceId => !!resources[resourceId]) && loadingState === RequestState.SUCCESS;\r\n }\r\n );\r\n\r\n const isDeleteDisabled = createSelector(getSelectedResourceIds, selectedResourceIds => !selectedResourceIds.length);\r\n\r\n const isCopyDisabled = createSelector(\r\n getSelectedResourceIds,\r\n selectedResourceIds => selectedResourceIds.length !== 1\r\n );\r\n\r\n const getTotalCount = createSelector(\r\n getPagingOptions,\r\n isLastPage,\r\n getCurrentPageData,\r\n (pagingOptions, isLastPage, currentPageData) => {\r\n if (!pagingOptions) {\r\n return 0;\r\n }\r\n\r\n if (isLastPage) {\r\n return (pagingOptions.page - 1) * pagingOptions.pageSize + currentPageData.length;\r\n }\r\n return (pagingOptions.page + 1) * pagingOptions.pageSize;\r\n }\r\n );\r\n\r\n return {\r\n getAll,\r\n getRequestOptions,\r\n isLastPage,\r\n getCurrentPageData,\r\n getPagingOptions,\r\n getSortingOptions,\r\n getFilteringOptions,\r\n getRequestParameters,\r\n getCurrentPageNumber,\r\n getLastPageNumber,\r\n getLoadingState,\r\n getSelectedResourceIds,\r\n getSelectedItems,\r\n getSelectionRecord,\r\n getRequestState,\r\n getErrors,\r\n areSelectedReady,\r\n isReady,\r\n isDeleteDisabled,\r\n isCopyDisabled,\r\n getTotalCount\r\n };\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { EntityAdapter } from '@ngrx/entity';\r\nimport { ReducerManager, createFeatureSelector } from '@ngrx/store';\r\nimport { LIST_FEATURE_KEY, ListActions, ListSelectors, ListState } from '../models/list.model';\r\nimport { createListActions } from './list-actions';\r\nimport { createListEntityAdapter, createListReducer } from './list-reducer';\r\nimport { createListSelectors } from './list-selectors';\r\n\r\n@Injectable()\r\nexport abstract class AbstractListReducerManager<\r\n T extends { [key: string]: any },\r\n E,\r\n S extends { [key: string]: any } = T\r\n> {\r\n actions: ListActions<T, E, S>;\r\n selectors: ListSelectors<S, E>;\r\n private entityAdapter: EntityAdapter<S>;\r\n\r\n constructor(\r\n private readonly reducerManager: ReducerManager,\r\n @Inject(LIST_FEATURE_KEY) private readonly featureKey: string\r\n ) {\r\n this.actions = this.getActions();\r\n this.entityAdapter = this.getEntityAdapter();\r\n this.addReducer();\r\n this.selectors = this.getSelectors();\r\n }\r\n\r\n protected getActions() {\r\n return createListActions<T, E, S>(this.featureKey);\r\n }\r\n\r\n private getEntityAdapter() {\r\n return createListEntityAdapter<S>();\r\n }\r\n\r\n protected addReducer() {\r\n const currentReducers: string[] = Object.keys(this.reducerManager.currentReducers || {});\r\n\r\n if (!currentReducers.includes(this.featureKey)) {\r\n const reducer = createListReducer<T, E, S>(this.entityAdapter, this.actions);\r\n this.reducerManager.addReducer(this.featureKey, reducer);\r\n }\r\n }\r\n\r\n protected getSelectors() {\r\n const getState = createFeatureSelector<ListState<S, E>>(this.featureKey);\r\n return createListSelectors(this.entityAdapter, getState);\r\n }\r\n}\r\n","import { ActionPayload } from '@ngdux/store-common';\r\nimport { select, Store } from '@ngrx/store';\r\nimport { ListActions, ListSelectors } from '../models/list.model';\r\n\r\nexport abstract class AbstractListFacade<T, E, S = T> {\r\n readonly resources$ = this.store.pipe(select(this.listSelectors.getAll));\r\n readonly loadingState$ = this.store.pipe(select(this.listSelectors.getLoadingState));\r\n readonly requestState$ = this.store.pipe(select(this.listSelectors.getRequestState));\r\n readonly errors$ = this.store.pipe(select(this.listSelectors.getErrors));\r\n readonly isReady$ = this.store.pipe(select(this.listSelectors.isReady));\r\n readonly areSelectedReady$ = this.store.pipe(select(this.listSelectors.areSelectedReady));\r\n readonly currentPageData$ = this.store.pipe(select(this.listSelectors.getCurrentPageData));\r\n readonly currentPageNumber$ = this.store.pipe(select(this.listSelectors.getCurrentPageNumber));\r\n readonly filteringOptions$ = this.store.pipe(select(this.listSelectors.getFilteringOptions));\r\n readonly lastPageNumber$ = this.store.pipe(select(this.listSelectors.getLastPageNumber));\r\n readonly pagingOptions$ = this.store.pipe(select(this.listSelectors.getPagingOptions));\r\n readonly requestOptions$ = this.store.pipe(select(this.listSelectors.getRequestOptions));\r\n readonly sortingOptions$ = this.store.pipe(select(this.listSelectors.getSortingOptions));\r\n readonly selectedItems$ = this.store.pipe(select(this.listSelectors.getSelectedItems));\r\n readonly totalCount$ = this.store.pipe(select(this.listSelectors.getTotalCount));\r\n\r\n constructor(\r\n protected readonly store: Store,\r\n private readonly listActions: ListActions<T, E, S>,\r\n private readonly listSelectors: ListSelectors<S, E>\r\n ) {}\r\n\r\n setPageSize(props: ActionPayload<ListActions<T, E>['setPageSize']>): void {\r\n this.store.dispatch(this.listActions.setPageSize(props));\r\n }\r\n\r\n setFiltering(props: ActionPayload<ListActions<T, E>['setFiltering']>): void {\r\n this.store.dispatch(this.listActions.setFiltering(props));\r\n }\r\n\r\n setSorting(props: ActionPayload<ListActions<T, E>['setSorting']>): void {\r\n this.store.dispatch(this.listActions.setSorting(props));\r\n }\r\n\r\n changeFiltering(props: ActionPayload<ListActions<T, E>['changeFiltering']>): void {\r\n this.store.dispatch(this.listActions.changeFiltering(props));\r\n }\r\n\r\n changePagingOptions(props: ActionPayload<ListActions<T, E>['changePagingOptions']>): void {\r\n this.store.dispatch(this.listActions.changePagingOptions(props));\r\n }\r\n\r\n changePageSize(props: ActionPayload<ListActions<T, E>['changePageSize']>): void {\r\n this.store.dispatch(this.listActions.changePageSize(props));\r\n }\r\n\r\n changePageNumber(props: ActionPayload<ListActions<T, E>['changePageNumber']>): void {\r\n this.store.dispatch(this.listActions.changePageNumber(props));\r\n }\r\n\r\n changeSelectedResources(props: ActionPayload<ListActions<T, E>['changeSelectedResources']>): void {\r\n this.store.dispatch(this.listActions.changeSelectedResources(props));\r\n }\r\n\r\n changeSorting(props: ActionPayload<ListActions<T, E>['changeSorting']>): void {\r\n this.store.dispatch(this.listActions.changeSorting(props));\r\n }\r\n\r\n loadPage(): void {\r\n this.store.dispatch(this.listActions.loadPage());\r\n }\r\n\r\n loadFirstPage(): void {\r\n this.store.dispatch(this.listActions.loadFirstPage());\r\n }\r\n\r\n loadNextPage(): void {\r\n this.store.dispatch(this.listActions.loadNextPage());\r\n }\r\n\r\n loadPreviousPage(): void {\r\n this.store.dispatch(this.listActions.loadPreviousPage());\r\n }\r\n\r\n patch(props: ActionPayload<ListActions<T, E>['patch']>): void {\r\n this.store.dispatch(this.listActions.patch(props));\r\n }\r\n\r\n delete(props: ActionPayload<ListActions<T, E>['delete']>): void {\r\n this.store.dispatch(this.listActions.delete(props));\r\n }\r\n\r\n initialize(): void {\r\n this.store.dispatch(this.listActions.initialize());\r\n }\r\n\r\n reinitialize(): void {\r\n this.store.dispatch(this.listActions.reset());\r\n }\r\n\r\n resetRequestState(): void {\r\n this.store.dispatch(this.listActions.resetRequestState());\r\n }\r\n\r\n showRemovalsConfirmation(): void {\r\n this.store.dispatch(this.listActions.showRemovalsConfirmation());\r\n }\r\n}\r\n","import { Action, createFeatureSelector } from '@ngrx/store';\r\nimport { ListState } from '../models/list.model';\r\nimport { createListActions } from './list-actions';\r\nimport { createListEntityAdapter, createListReducer } from './list-reducer';\r\nimport { createListSelectors } from './list-selectors';\r\n\r\nexport function createListState<T extends { [key: string]: any }, E, S extends { [key: string]: any } = T>(\r\n featureName: string,\r\n idKey?: string\r\n) {\r\n const actions = createListActions<T, E, S>(featureName);\r\n const entityAdapter = createListEntityAdapter<S>(idKey);\r\n const reducer = createListReducer<T, E, S>(entityAdapter, actions);\r\n const getState = createFeatureSelector<ListState<S, E>>(featureName);\r\n const selectors = createListSelectors<S, E>(entityAdapter, getState);\r\n\r\n return {\r\n actions,\r\n reducer: (state: ListState<S, E>, action: Action): ListState<S, E> => reducer(state, action),\r\n selectors,\r\n entityAdapter\r\n };\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngdux-list.mjs","sources":["../../../../../../../libs/ngdux/util/store/list/src/lib/+state/abstract-list-effects.ts","../../../../../../../libs/ngdux/util/store/list/src/lib/models/list.model.ts","../../../../../../../libs/ngdux/util/store/list/src/lib/+state/list-actions.ts","../../../../../../../libs/ngdux/util/store/list/src/lib/+state/list-reducer.ts","../../../../../../../libs/ngdux/util/store/list/src/lib/+state/list-selectors.ts","../../../../../../../libs/ngdux/util/store/list/src/lib/+state/abstract-list-state.service.ts","../../../../../../../libs/ngdux/util/store/list/src/lib/+state/abstract-list.facade.ts","../../../../../../../libs/ngdux/util/store/list/src/lib/+state/list-state.ts","../../../../../../../libs/ngdux/util/store/list/src/ngdux-list.ts"],"sourcesContent":["import { ListNotificationService, ListService } from '@ngdux/data-model-common';\r\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\r\nimport { Store, select } from '@ngrx/store';\r\nimport { of } from 'rxjs';\r\nimport { catchError, concatMap, exhaustMap, filter, map, switchMap, tap, withLatestFrom } from 'rxjs/operators';\r\n\r\nimport { ListActions, ListSelectors } from '../models/list.model';\r\n\r\nexport abstract class AbstractListEffects<T, E, S = T> {\r\n texts = {\r\n deleteConfirmationTitle: 'Delete resources',\r\n deleteConfirmationMessage: 'Are you sure to delete the selected resources?'\r\n };\r\n\r\n reload$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(\r\n this.listActions.changePageSize,\r\n this.listActions.changeSorting,\r\n this.listActions.changeFiltering,\r\n this.listActions.changeRequestParams,\r\n this.listActions.initialize,\r\n this.listActions.reset,\r\n this.listActions.changePageNumber,\r\n this.listActions.patchSuccess,\r\n this.listActions.deleteSuccess\r\n ),\r\n map(() => this.listActions.loadPage())\r\n )\r\n );\r\n\r\n loadFirstPage$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(this.listActions.loadFirstPage),\r\n map(() => this.listActions.changePageNumber({ pageNumber: 1 }))\r\n )\r\n );\r\n\r\n loadPreviousPage$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(this.listActions.loadPreviousPage),\r\n withLatestFrom(this.store.pipe(select(this.listSelectors.getCurrentPageNumber))),\r\n filter(([, currentPageNumber]) => currentPageNumber > 1),\r\n map(([, currentPageNumber]) => this.listActions.changePageNumber({ pageNumber: currentPageNumber - 1 }))\r\n )\r\n );\r\n\r\n loadNextPage$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(this.listActions.loadNextPage),\r\n withLatestFrom(\r\n this.store.pipe(select(this.listSelectors.isLastPage)),\r\n this.store.pipe(select(this.listSelectors.getCurrentPageNumber))\r\n ),\r\n filter(([, isLastPage]) => !isLastPage),\r\n map(([, , currentPageNumber]) => this.listActions.changePageNumber({ pageNumber: currentPageNumber + 1 }))\r\n )\r\n );\r\n\r\n changePagingOptions$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(this.listActions.changePagingOptions),\r\n withLatestFrom(this.store.pipe(select(this.listSelectors.getPagingOptions))),\r\n map(([action, pagingOptions]) => {\r\n if (action.pagingOptions.pageSize !== pagingOptions.pageSize) {\r\n return this.listActions.changePageSize({ pageSize: action.pagingOptions.pageSize });\r\n } else {\r\n return this.listActions.changePageNumber({ pageNumber: action.pagingOptions.page });\r\n }\r\n })\r\n )\r\n );\r\n\r\n loadPage$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(this.listActions.loadPage),\r\n withLatestFrom(\r\n this.store.pipe(select(this.listSelectors.getPagingOptions)),\r\n this.store.pipe(select(this.listSelectors.getSortingOptions)),\r\n this.store.pipe(select(this.listSelectors.getFilteringOptions)),\r\n this.store.pipe(select(this.listSelectors.getRequestParameters))\r\n ),\r\n concatMap(([, pagingOptions, sortingOptions, filteringOptions, requestParameters]) => {\r\n return this.service\r\n .loadResources({\r\n pagingOptions,\r\n sortingOptions,\r\n filteringOptions,\r\n requestParameters\r\n })\r\n .pipe(\r\n map(resources =>\r\n this.listActions.loadPageSuccess({\r\n resources,\r\n pagingOptions\r\n })\r\n ),\r\n catchError((errors: E) => of(this.listActions.loadPageFailure({ errors })))\r\n );\r\n })\r\n )\r\n );\r\n\r\n patch$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(this.listActions.patch),\r\n exhaustMap(action => {\r\n if (!this.service.patchResources) {\r\n throw new Error('patchResources not implement in the ListService');\r\n }\r\n\r\n return this.service.patchResources(action.resourceIds, action.resource).pipe(\r\n map(resources => this.listActions.patchSuccess({ resources })),\r\n catchError((errors: E) => of(this.listActions.patchFailure({ errors })))\r\n );\r\n })\r\n )\r\n );\r\n\r\n showRemovalsDialog$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(this.listActions.showRemovalsConfirmation),\r\n switchMap(() => {\r\n if (this.notificationService?.openConfirmationDialog) {\r\n return this.notificationService.openConfirmationDialog({\r\n message: this.texts.deleteConfirmationMessage,\r\n title: this.texts.deleteConfirmationTitle\r\n });\r\n }\r\n\r\n return of(true);\r\n }),\r\n filter(confirmed => confirmed),\r\n withLatestFrom(this.store.pipe(select(this.listSelectors.getSelectedResourceIds))),\r\n map(([, resourceIds]) => this.listActions.delete({ resourceIds }))\r\n )\r\n );\r\n\r\n delete$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(this.listActions.delete),\r\n exhaustMap(({ resourceIds }) => {\r\n if (!this.service.deleteResources) {\r\n throw new Error('deleteResources not implement in the ListService');\r\n }\r\n\r\n return this.service.deleteResources(resourceIds).pipe(\r\n map(() => this.listActions.deleteSuccess({ resourceIds })),\r\n catchError((errors: E) => of(this.listActions.deleteFailure({ errors })))\r\n );\r\n })\r\n )\r\n );\r\n\r\n deleteUsersSuccess$ = createEffect(\r\n () =>\r\n this.actions$.pipe(\r\n ofType(this.listActions.deleteSuccess),\r\n tap(({ resourceIds }) => {\r\n this.notificationService?.onListDelete(resourceIds);\r\n })\r\n ),\r\n { dispatch: false }\r\n );\r\n\r\n errorsHandler$ = createEffect(\r\n () =>\r\n this.actions$.pipe(\r\n ofType(this.listActions.loadPageFailure, this.listActions.deleteFailure, this.listActions.patchFailure),\r\n tap(({ errors }) => {\r\n this.notificationService?.onListErrors(errors);\r\n })\r\n ),\r\n { dispatch: false }\r\n );\r\n\r\n protected constructor(\r\n protected readonly actions$: Actions,\r\n protected readonly store: Store,\r\n protected readonly service: ListService<T, S>,\r\n protected readonly listActions: ListActions<T, E, S>,\r\n protected readonly listSelectors: ListSelectors<S, E>,\r\n protected readonly notificationService?: ListNotificationService<E>\r\n ) {}\r\n}\r\n","/* eslint-disable @typescript-eslint/ban-types */\r\nimport { InjectionToken } from '@angular/core';\r\nimport {\r\n ErrorDto,\r\n FilteringOptions,\r\n PagingOptions,\r\n RequestOptions,\r\n RequestState,\r\n SortingOptions\r\n} from '@ngdux/data-model-common';\r\nimport { ApiRequestState, LoadingState } from '@ngdux/store-common';\r\nimport { EntityState } from '@ngrx/entity';\r\nimport { ActionCreator, MemoizedSelector } from '@ngrx/store';\r\nimport { TypedAction } from '@ngrx/store/src/models';\r\n\r\nexport const LIST_FEATURE_KEY = new InjectionToken<string>('LIST_FEATURE_KEY');\r\n\r\nexport interface ListState<T, E> extends EntityState<T>, RequestOptions, ApiRequestState<E>, LoadingState {\r\n selectedResourceIds: string[];\r\n lastPageNumber?: number;\r\n}\r\n\r\nexport interface ListSelectors<T, E> {\r\n getAll: MemoizedSelector<object, T[]>;\r\n getRequestOptions: MemoizedSelector<object, RequestOptions>;\r\n isLastPage: MemoizedSelector<object, boolean>;\r\n getCurrentPageData: MemoizedSelector<object, T[]>;\r\n getPagingOptions: MemoizedSelector<object, PagingOptions>;\r\n getSortingOptions: MemoizedSelector<object, SortingOptions>;\r\n getFilteringOptions: MemoizedSelector<object, FilteringOptions>;\r\n getRequestParameters: MemoizedSelector<object, Record<string, string> | undefined>;\r\n getCurrentPageNumber: MemoizedSelector<object, number>;\r\n getLastPageNumber: MemoizedSelector<object, number | undefined>;\r\n getLoadingState: MemoizedSelector<object, RequestState>;\r\n getSelectedResourceIds: MemoizedSelector<object, string[]>;\r\n getSelectedItems: MemoizedSelector<object, T[]>;\r\n getSelectionRecord: MemoizedSelector<object, Record<string, T>>;\r\n getRequestState: MemoizedSelector<object, RequestState>;\r\n getErrors: MemoizedSelector<object, E | undefined>;\r\n areSelectedReady: MemoizedSelector<object, boolean>;\r\n isReady: MemoizedSelector<object, boolean>;\r\n isDeleteDisabled: MemoizedSelector<object, boolean>;\r\n isCopyDisabled: MemoizedSelector<object, boolean>;\r\n getTotalCount: MemoizedSelector<object, number>;\r\n}\r\n\r\nexport interface ListActions<Entity, Error, Summary = Entity, Params = Record<string, string>> {\r\n /**\r\n * Set the page size without reloading the list\r\n */\r\n setPageSize: ActionCreator<string, (props: { pageSize: number }) => { pageSize: number } & TypedAction<string>>;\r\n /**\r\n * Set the sorting options without reloading the list\r\n */\r\n setSorting: ActionCreator<\r\n string,\r\n (props: { sortingOptions: SortingOptions }) => { sortingOptions: SortingOptions } & TypedAction<string>\r\n >;\r\n /**\r\n * Set the filtering options without reloading the list\r\n */\r\n setFiltering: ActionCreator<\r\n string,\r\n (props: { filteringOptions: FilteringOptions }) => { filteringOptions: FilteringOptions } & TypedAction<string>\r\n >;\r\n /**\r\n * Set the request parameters without reloading the list\r\n */\r\n setRequestParams: ActionCreator<string, (props: { params: Params }) => { params: Params } & TypedAction<string>>;\r\n\r\n /**\r\n * Change the paging options and reload the list\r\n */\r\n changePagingOptions: ActionCreator<\r\n string,\r\n (props: { pagingOptions: PagingOptions }) => { pagingOptions: PagingOptions } & TypedAction<string>\r\n >;\r\n\r\n /**\r\n * Change the page number and reload the list\r\n */\r\n changePageNumber: ActionCreator<\r\n string,\r\n (props: { pageNumber: number }) => { pageNumber: number } & TypedAction<string>\r\n >;\r\n /**\r\n * Change the page size and reload the list\r\n */\r\n changePageSize: ActionCreator<string, (props: { pageSize: number }) => { pageSize: number } & TypedAction<string>>;\r\n /**\r\n * Change the sorting options and reload the list\r\n */\r\n changeSorting: ActionCreator<\r\n string,\r\n (props: { sortingOptions: SortingOptions }) => { sortingOptions: SortingOptions } & TypedAction<string>\r\n >;\r\n /**\r\n * Change the filtering options and reload the list\r\n */\r\n changeFiltering: ActionCreator<\r\n string,\r\n (props: { filteringOptions: FilteringOptions }) => { filteringOptions: FilteringOptions } & TypedAction<string>\r\n >;\r\n /**\r\n * Change the request parameters and reload the list\r\n */\r\n changeRequestParams: ActionCreator<string, (props: { params: Params }) => { params: Params } & TypedAction<string>>;\r\n\r\n changeSelectedResources: ActionCreator<\r\n string,\r\n (props: { selectedResourceIds: string[] }) => { selectedResourceIds: string[] } & TypedAction<string>\r\n >;\r\n loadPage: ActionCreator<string, () => TypedAction<string>>;\r\n loadPageSuccess: ActionCreator<\r\n string,\r\n (props: {\r\n resources: Summary[];\r\n pagingOptions: PagingOptions;\r\n }) => { resources: Summary[]; pagingOptions: PagingOptions } & TypedAction<string>\r\n >;\r\n loadPageFailure: ActionCreator<string, (props: { errors: Error }) => { errors: Error } & TypedAction<string>>;\r\n delete: ActionCreator<string, (props: { resourceIds: string[] }) => { resourceIds: string[] } & TypedAction<string>>;\r\n deleteSuccess: ActionCreator<\r\n string,\r\n (props: { resourceIds: string[] }) => { resourceIds: string[] } & TypedAction<string>\r\n >;\r\n deleteFailure: ActionCreator<string, (props: { errors: Error }) => { errors: Error } & TypedAction<string>>;\r\n patch: ActionCreator<\r\n string,\r\n (props: {\r\n resourceIds: string[];\r\n resource: Partial<Entity>;\r\n }) => { resourceIds: string[]; resource: Partial<Entity> } & TypedAction<string>\r\n >;\r\n patchSuccess: ActionCreator<\r\n string,\r\n (props: { resources: (Entity | ErrorDto)[] }) => { resources: (Entity | ErrorDto)[] } & TypedAction<string>\r\n >;\r\n patchFailure: ActionCreator<string, (props: { errors: Error }) => { errors: Error } & TypedAction<string>>;\r\n loadNextPage: ActionCreator<string, () => TypedAction<string>>;\r\n\r\n /**\r\n * Remove the current data, set the page number to 1 and deselect resources.\r\n * Keep all the rest, like filteringOptions and sortingOptions\r\n */\r\n initialize: ActionCreator<string, () => TypedAction<string>>;\r\n /**\r\n * Reset to the initial state\r\n */\r\n reset: ActionCreator<string, () => TypedAction<string>>;\r\n loadPreviousPage: ActionCreator<string, () => TypedAction<string>>;\r\n loadFirstPage: ActionCreator<string, () => TypedAction<string>>;\r\n /**\r\n * Reset the request state to idle\r\n */\r\n resetRequestState: ActionCreator<string, () => TypedAction<string>>;\r\n showRemovalsConfirmation: ActionCreator<string, () => TypedAction<string>>;\r\n}\r\n","import { ErrorDto, FilteringOptions, PagingOptions, SortingOptions } from '@ngdux/data-model-common';\r\nimport { createAction, props } from '@ngrx/store';\r\nimport { ListActions } from '../models/list.model';\r\n\r\nexport function createListActions<T, E, S = T, Params = Record<string, string>>(\r\n featureName: string\r\n): ListActions<T, E, S, Params> {\r\n const resetRequestState = createAction(`[${featureName} Page] Reset ${featureName} Request State`);\r\n const initialize = createAction(`[${featureName} Page] Initialize ${featureName}`);\r\n const reset = createAction(`[Organization ${featureName} Page] Reset ${featureName}`);\r\n\r\n const loadNextPage = createAction(`[${featureName} Page] Load Next ${featureName} Page`);\r\n const loadPreviousPage = createAction(`[${featureName} Page] Load Previous ${featureName} Page`);\r\n const loadFirstPage = createAction(`[${featureName} Page] Load First ${featureName} Page`);\r\n\r\n const setPageSize = createAction(`[${featureName} Page] Set ${featureName} Page Size`, props<{ pageSize: number }>());\r\n const setSorting = createAction(\r\n `[${featureName} Page] Set ${featureName} Sorting`,\r\n props<{ sortingOptions: SortingOptions }>()\r\n );\r\n const setFiltering = createAction(\r\n `[${featureName} Page] Set ${featureName} Filtering`,\r\n props<{ filteringOptions: FilteringOptions }>()\r\n );\r\n const setRequestParams = createAction(\r\n `[${featureName} Page] Set ${featureName} Request Params`,\r\n props<{ params: Params }>()\r\n );\r\n\r\n const changePageSize = createAction(\r\n `[${featureName} Page] Change ${featureName} Page Size`,\r\n props<{ pageSize: number }>()\r\n );\r\n\r\n const changePageNumber = createAction(\r\n `[${featureName} Page] Change ${featureName} Page Number`,\r\n props<{ pageNumber: number }>()\r\n );\r\n\r\n const changePagingOptions = createAction(\r\n `[${featureName} Page] Change ${featureName} Page Options`,\r\n props<{ pagingOptions: PagingOptions }>()\r\n );\r\n const changeSorting = createAction(\r\n `[${featureName} Page] Change ${featureName} Sorting`,\r\n props<{ sortingOptions: SortingOptions }>()\r\n );\r\n const changeFiltering = createAction(\r\n `[${featureName} Page] Change ${featureName} Filtering`,\r\n props<{ filteringOptions: FilteringOptions }>()\r\n );\r\n const changeSelectedResources = createAction(\r\n `[${featureName} Page] Change Selected Resources ${featureName}`,\r\n props<{ selectedResourceIds: string[] }>()\r\n );\r\n const changeRequestParams = createAction(\r\n `[${featureName} Page] Change ${featureName} Request Params`,\r\n props<{ params: Params }>()\r\n );\r\n\r\n const loadPage = createAction(`[${featureName} Page] Load ${featureName} Page`);\r\n const loadPageSuccess = createAction(\r\n `[${featureName} Page] Load ${featureName} Page Success`,\r\n props<{ resources: S[]; pagingOptions: PagingOptions }>()\r\n );\r\n const loadPageFailure = createAction(\r\n `[${featureName} Page] Load ${featureName} Page Failure`,\r\n props<{ errors: E }>()\r\n );\r\n\r\n const deleteAction = createAction(`[${featureName} Page] Delete ${featureName}`, props<{ resourceIds: string[] }>());\r\n const deleteSuccess = createAction(\r\n `[${featureName} Page] Delete ${featureName} Success`,\r\n props<{ resourceIds: string[] }>()\r\n );\r\n const deleteFailure = createAction(`[${featureName} Page] Delete ${featureName} Failure`, props<{ errors: E }>());\r\n\r\n const patch = createAction(\r\n `[${featureName} Page] Patch ${featureName}`,\r\n props<{ resourceIds: string[]; resource: Partial<T> }>()\r\n );\r\n const patchSuccess = createAction(\r\n `[${featureName} Page] Patch ${featureName} Success`,\r\n props<{ resources: (T | ErrorDto)[] }>()\r\n );\r\n const patchFailure = createAction(`[${featureName} Page] Patch ${featureName} Failure`, props<{ errors: E }>());\r\n\r\n const showRemovalsConfirmation = createAction(`[${featureName} Page] Show ${featureName} Removal Confirmation`);\r\n\r\n return {\r\n initialize,\r\n reset,\r\n setPageSize,\r\n setSorting,\r\n setFiltering,\r\n setRequestParams,\r\n changePageSize,\r\n changePageNumber,\r\n changePagingOptions,\r\n changeSorting,\r\n changeFiltering,\r\n changeRequestParams,\r\n loadPreviousPage,\r\n loadNextPage,\r\n loadFirstPage,\r\n changeSelectedResources,\r\n loadPage,\r\n loadPageSuccess,\r\n loadPageFailure,\r\n delete: deleteAction,\r\n deleteSuccess,\r\n deleteFailure,\r\n patch,\r\n patchSuccess,\r\n patchFailure,\r\n resetRequestState,\r\n showRemovalsConfirmation\r\n };\r\n}\r\n","import { DEFAULT_PAGE, DEFAULT_REQUEST_OPTIONS, RequestState } from '@ngdux/data-model-common';\r\nimport {\r\n createLoadingStateActionHandlers,\r\n createRequestStateActionHandlers,\r\n getLastPageNumber\r\n} from '@ngdux/store-common';\r\nimport { EntityAdapter, createEntityAdapter } from '@ngrx/entity';\r\nimport { ActionReducer, ReducerTypes, createReducer, on } from '@ngrx/store';\r\nimport { ActionCreator } from '@ngrx/store/src/models';\r\n\r\nimport { ListActions, ListState } from '../models/list.model';\r\n\r\nexport function createListEntityAdapter<T extends { [key: string]: any }>(idKey = 'id'): EntityAdapter<T> {\r\n return createEntityAdapter({\r\n selectId: resource => resource[idKey]\r\n });\r\n}\r\n\r\nexport function createListReducer<T, E, S = T>(\r\n entityAdapter: EntityAdapter<S>,\r\n actions: ListActions<T, E, S>,\r\n actionHandlers?: ReducerTypes<ListState<S, E>, ActionCreator[]>[],\r\n initialListState?: { [key: string]: unknown }\r\n): ActionReducer<ListState<S, E>> {\r\n const initialState: ListState<S, E> = { ...createInitialListState<S, E>(entityAdapter), ...initialListState };\r\n return createReducer<ListState<S, E>>(\r\n initialState,\r\n ...createListActionHandlers<T, E, S>(initialState, entityAdapter, actions),\r\n ...(actionHandlers || [])\r\n );\r\n}\r\n\r\nfunction createInitialListState<T, E>(entityAdapter: EntityAdapter<T>): ListState<T, E> {\r\n return entityAdapter.getInitialState({\r\n ...DEFAULT_REQUEST_OPTIONS,\r\n lastPageNumber: undefined,\r\n selectedResourceIds: [],\r\n loadingState: RequestState.IDLE,\r\n requestState: RequestState.IDLE,\r\n errors: undefined\r\n });\r\n}\r\n\r\nfunction createListActionHandlers<T, E, S>(\r\n initialListState: ListState<S, E>,\r\n entityAdapter: EntityAdapter<S>,\r\n actions: ListActions<T, E, S>\r\n): ReducerTypes<ListState<S, E>, ActionCreator[]>[] {\r\n return [\r\n on(actions.reset, () => initialListState),\r\n on(actions.initialize, (state: ListState<S, E>) =>\r\n entityAdapter.removeAll({\r\n ...state,\r\n selectedResourceIds: [],\r\n pagingOptions: {\r\n ...state.pagingOptions,\r\n page: DEFAULT_PAGE\r\n },\r\n requestState: RequestState.IDLE\r\n })\r\n ),\r\n on(actions.changePageSize, actions.setPageSize, (state: ListState<S, E>, { pageSize }) => ({\r\n ...state,\r\n pagingOptions: { page: DEFAULT_PAGE, pageSize },\r\n lastPageNumber: undefined\r\n })),\r\n on(actions.changePageNumber, (state: ListState<S, E>, { pageNumber }) => ({\r\n ...state,\r\n pagingOptions: { ...state.pagingOptions, page: pageNumber }\r\n })),\r\n on(actions.changeSorting, actions.setSorting, (state: ListState<S, E>, { sortingOptions }) => ({\r\n ...state,\r\n sortingOptions,\r\n pagingOptions: { ...state.pagingOptions, page: DEFAULT_PAGE }\r\n })),\r\n on(actions.changeFiltering, actions.setFiltering, (state: ListState<S, E>, { filteringOptions }) => ({\r\n ...state,\r\n filteringOptions,\r\n pagingOptions: { ...state.pagingOptions, page: DEFAULT_PAGE },\r\n lastPageNumber: undefined\r\n })),\r\n on(actions.changeRequestParams, actions.setRequestParams, (state: ListState<S, E>, { params }) => ({\r\n ...state,\r\n params,\r\n pagingOptions: { ...state.pagingOptions, page: DEFAULT_PAGE }\r\n })),\r\n on(actions.changeSelectedResources, (state: ListState<S, E>, { selectedResourceIds }) => ({\r\n ...state,\r\n selectedResourceIds\r\n })),\r\n on(actions.loadFirstPage, (state: ListState<S, E>) => ({\r\n ...state,\r\n pagingOptions: { ...state.pagingOptions, page: 1 }\r\n })),\r\n on(actions.loadPageSuccess, (state: ListState<S, E>, { resources, pagingOptions }) => {\r\n const lastPageNumber = getLastPageNumber(resources, pagingOptions) || state.lastPageNumber;\r\n if (lastPageNumber && pagingOptions.page > lastPageNumber) {\r\n return {\r\n ...state,\r\n pagingOptions: {\r\n ...state.pagingOptions,\r\n page: lastPageNumber\r\n },\r\n lastPageNumber,\r\n selectedResourceIds: []\r\n };\r\n }\r\n\r\n return entityAdapter.setAll(resources, {\r\n ...state,\r\n lastPageNumber,\r\n selectedResourceIds: []\r\n });\r\n }),\r\n on(actions.deleteSuccess, (state: ListState<S, E>) => ({\r\n ...state,\r\n selectedResourceIds: [] as string[]\r\n })),\r\n ...createLoadingStateActionHandlers<ListState<S, E>>(\r\n actions.loadPage,\r\n actions.loadPageSuccess,\r\n actions.loadPageFailure\r\n ),\r\n ...createRequestStateActionHandlers<ListState<S, E>, E>(\r\n undefined,\r\n actions.delete,\r\n actions.deleteSuccess,\r\n actions.deleteFailure\r\n ),\r\n ...createRequestStateActionHandlers<ListState<S, E>, E>(\r\n actions.resetRequestState,\r\n actions.patch,\r\n actions.patchSuccess,\r\n actions.patchFailure\r\n )\r\n ];\r\n}\r\n","/* eslint-disable @typescript-eslint/ban-types */\r\nimport { RequestOptions, RequestState } from '@ngdux/data-model-common';\r\nimport { EntityAdapter } from '@ngrx/entity';\r\nimport { DefaultProjectorFn, MemoizedSelector, createSelector } from '@ngrx/store';\r\nimport { ListSelectors, ListState } from '../models/list.model';\r\n\r\nexport function createListSelectors<T, E>(\r\n entityAdapter: EntityAdapter<T>,\r\n getListState: MemoizedSelector<object, ListState<T, E>, DefaultProjectorFn<ListState<T, E>>>\r\n): ListSelectors<T, E> {\r\n const getAll = createSelector(getListState, entityAdapter.getSelectors().selectAll);\r\n\r\n const getPagingOptions = createSelector(getListState, state => state.pagingOptions);\r\n\r\n const getRequestOptions = createSelector(\r\n getListState,\r\n (state): RequestOptions => ({\r\n pagingOptions: state.pagingOptions,\r\n sortingOptions: state.sortingOptions,\r\n filteringOptions: state.filteringOptions\r\n })\r\n );\r\n\r\n const getLastPageNumber = createSelector(getListState, state => state.lastPageNumber);\r\n\r\n const isLastPage = createSelector(getPagingOptions, getLastPageNumber, ({ page }, lastPageNumber) => {\r\n return lastPageNumber ? lastPageNumber <= page : false;\r\n });\r\n\r\n const getCurrentPageData = createSelector(getAll, resources => {\r\n return resources;\r\n });\r\n\r\n const getSortingOptions = createSelector(getListState, state => state.sortingOptions);\r\n\r\n const getRequestParameters = createSelector(getListState, state => state.requestParameters);\r\n\r\n const getFilteringOptions = createSelector(getListState, state => state.filteringOptions);\r\n\r\n const getCurrentPageNumber = createSelector(getPagingOptions, options => options?.page);\r\n\r\n const getSelectedResourceIds = createSelector(getListState, state => state.selectedResourceIds);\r\n\r\n const getLoadingState = createSelector(getListState, state => state.loadingState);\r\n\r\n const getSelectedItems = createSelector(\r\n getSelectedResourceIds,\r\n createSelector(getListState, entityAdapter.getSelectors().selectEntities),\r\n (selectedResourceIds, resources): T[] =>\r\n selectedResourceIds.reduce((acc, selectedResourceId): T[] => {\r\n const resource = resources[selectedResourceId];\r\n if (resource) {\r\n acc.push(resource);\r\n }\r\n return acc;\r\n }, [] as T[])\r\n );\r\n\r\n const getSelectionRecord = createSelector(\r\n getSelectedResourceIds,\r\n createSelector(getListState, entityAdapter.getSelectors().selectEntities),\r\n (selectedResourceIds, resources): Record<string, T> =>\r\n selectedResourceIds.reduce((selected, selectedResourceId) => {\r\n const resource = resources[selectedResourceId];\r\n if (resource) {\r\n selected[selectedResourceId] = resource;\r\n }\r\n return selected;\r\n }, {} as Record<string, T>)\r\n );\r\n\r\n const getRequestState = createSelector(getListState, state => state.requestState);\r\n\r\n const getErrors = createSelector(getListState, state => state.errors);\r\n\r\n const isReady = createSelector(\r\n getAll,\r\n getLoadingState,\r\n (users, loadingState) => !!users && loadingState === RequestState.SUCCESS\r\n );\r\n\r\n const areSelectedReady = createSelector(\r\n getSelectedResourceIds,\r\n getSelectionRecord,\r\n getLoadingState,\r\n (selectedResourceIds, resources, loadingState) => {\r\n return selectedResourceIds.every(resourceId => !!resources[resourceId]) && loadingState === RequestState.SUCCESS;\r\n }\r\n );\r\n\r\n const isDeleteDisabled = createSelector(getSelectedResourceIds, selectedResourceIds => !selectedResourceIds.length);\r\n\r\n const isCopyDisabled = createSelector(\r\n getSelectedResourceIds,\r\n selectedResourceIds => selectedResourceIds.length !== 1\r\n );\r\n\r\n const getTotalCount = createSelector(\r\n getPagingOptions,\r\n isLastPage,\r\n getCurrentPageData,\r\n (pagingOptions, isLastPage, currentPageData) => {\r\n if (!pagingOptions) {\r\n return 0;\r\n }\r\n\r\n if (isLastPage) {\r\n return (pagingOptions.page - 1) * pagingOptions.pageSize + currentPageData.length;\r\n }\r\n return (pagingOptions.page + 1) * pagingOptions.pageSize;\r\n }\r\n );\r\n\r\n return {\r\n getAll,\r\n getRequestOptions,\r\n isLastPage,\r\n getCurrentPageData,\r\n getPagingOptions,\r\n getSortingOptions,\r\n getFilteringOptions,\r\n getRequestParameters,\r\n getCurrentPageNumber,\r\n getLastPageNumber,\r\n getLoadingState,\r\n getSelectedResourceIds,\r\n getSelectedItems,\r\n getSelectionRecord,\r\n getRequestState,\r\n getErrors,\r\n areSelectedReady,\r\n isReady,\r\n isDeleteDisabled,\r\n isCopyDisabled,\r\n getTotalCount\r\n };\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { EntityAdapter } from '@ngrx/entity';\r\nimport { ReducerManager, createFeatureSelector } from '@ngrx/store';\r\nimport { LIST_FEATURE_KEY, ListActions, ListSelectors, ListState } from '../models/list.model';\r\nimport { createListActions } from './list-actions';\r\nimport { createListEntityAdapter, createListReducer } from './list-reducer';\r\nimport { createListSelectors } from './list-selectors';\r\n\r\n@Injectable()\r\nexport abstract class AbstractListReducerManager<\r\n T extends { [key: string]: any },\r\n E,\r\n S extends { [key: string]: any } = T\r\n> {\r\n actions: ListActions<T, E, S>;\r\n selectors: ListSelectors<S, E>;\r\n private entityAdapter: EntityAdapter<S>;\r\n\r\n constructor(\r\n private readonly reducerManager: ReducerManager,\r\n @Inject(LIST_FEATURE_KEY) private readonly featureKey: string\r\n ) {\r\n this.actions = this.getActions();\r\n this.entityAdapter = this.getEntityAdapter();\r\n this.addReducer();\r\n this.selectors = this.getSelectors();\r\n }\r\n\r\n protected getActions() {\r\n return createListActions<T, E, S>(this.featureKey);\r\n }\r\n\r\n private getEntityAdapter() {\r\n return createListEntityAdapter<S>();\r\n }\r\n\r\n protected addReducer() {\r\n const currentReducers: string[] = Object.keys(this.reducerManager.currentReducers || {});\r\n\r\n if (!currentReducers.includes(this.featureKey)) {\r\n const reducer = createListReducer<T, E, S>(this.entityAdapter, this.actions);\r\n this.reducerManager.addReducer(this.featureKey, reducer);\r\n }\r\n }\r\n\r\n protected getSelectors() {\r\n const getState = createFeatureSelector<ListState<S, E>>(this.featureKey);\r\n return createListSelectors(this.entityAdapter, getState);\r\n }\r\n}\r\n","import { ActionPayload } from '@ngdux/store-common';\r\nimport { select, Store } from '@ngrx/store';\r\nimport { ListActions, ListSelectors } from '../models/list.model';\r\n\r\nexport abstract class AbstractListFacade<T, E, S = T> {\r\n readonly resources$ = this.store.pipe(select(this.listSelectors.getAll));\r\n readonly loadingState$ = this.store.pipe(select(this.listSelectors.getLoadingState));\r\n readonly requestState$ = this.store.pipe(select(this.listSelectors.getRequestState));\r\n readonly errors$ = this.store.pipe(select(this.listSelectors.getErrors));\r\n readonly isReady$ = this.store.pipe(select(this.listSelectors.isReady));\r\n readonly areSelectedReady$ = this.store.pipe(select(this.listSelectors.areSelectedReady));\r\n readonly currentPageData$ = this.store.pipe(select(this.listSelectors.getCurrentPageData));\r\n readonly currentPageNumber$ = this.store.pipe(select(this.listSelectors.getCurrentPageNumber));\r\n readonly filteringOptions$ = this.store.pipe(select(this.listSelectors.getFilteringOptions));\r\n readonly requestParameters$ = this.store.pipe(select(this.listSelectors.getRequestParameters));\r\n readonly lastPageNumber$ = this.store.pipe(select(this.listSelectors.getLastPageNumber));\r\n readonly pagingOptions$ = this.store.pipe(select(this.listSelectors.getPagingOptions));\r\n readonly requestOptions$ = this.store.pipe(select(this.listSelectors.getRequestOptions));\r\n readonly sortingOptions$ = this.store.pipe(select(this.listSelectors.getSortingOptions));\r\n readonly selectedItems$ = this.store.pipe(select(this.listSelectors.getSelectedItems));\r\n readonly totalCount$ = this.store.pipe(select(this.listSelectors.getTotalCount));\r\n\r\n constructor(\r\n protected readonly store: Store,\r\n private readonly listActions: ListActions<T, E, S>,\r\n private readonly listSelectors: ListSelectors<S, E>\r\n ) {}\r\n\r\n setPageSize(props: ActionPayload<ListActions<T, E>['setPageSize']>): void {\r\n this.store.dispatch(this.listActions.setPageSize(props));\r\n }\r\n\r\n setFiltering(props: ActionPayload<ListActions<T, E>['setFiltering']>): void {\r\n this.store.dispatch(this.listActions.setFiltering(props));\r\n }\r\n\r\n setSorting(props: ActionPayload<ListActions<T, E>['setSorting']>): void {\r\n this.store.dispatch(this.listActions.setSorting(props));\r\n }\r\n\r\n setRequestParameters(props: ActionPayload<ListActions<T, E>['setRequestParams']>) {\r\n this.store.dispatch(this.listActions.setRequestParams(props));\r\n }\r\n\r\n changeFiltering(props: ActionPayload<ListActions<T, E>['changeFiltering']>): void {\r\n this.store.dispatch(this.listActions.changeFiltering(props));\r\n }\r\n\r\n changePagingOptions(props: ActionPayload<ListActions<T, E>['changePagingOptions']>): void {\r\n this.store.dispatch(this.listActions.changePagingOptions(props));\r\n }\r\n\r\n changePageSize(props: ActionPayload<ListActions<T, E>['changePageSize']>): void {\r\n this.store.dispatch(this.listActions.changePageSize(props));\r\n }\r\n\r\n changePageNumber(props: ActionPayload<ListActions<T, E>['changePageNumber']>): void {\r\n this.store.dispatch(this.listActions.changePageNumber(props));\r\n }\r\n\r\n changeSelectedResources(props: ActionPayload<ListActions<T, E>['changeSelectedResources']>): void {\r\n this.store.dispatch(this.listActions.changeSelectedResources(props));\r\n }\r\n\r\n changeSorting(props: ActionPayload<ListActions<T, E>['changeSorting']>): void {\r\n this.store.dispatch(this.listActions.changeSorting(props));\r\n }\r\n\r\n changeRequestParams(props: ActionPayload<ListActions<T, E>['changeRequestParams']>): void {\r\n this.store.dispatch(this.listActions.changeRequestParams(props));\r\n }\r\n\r\n loadPage(): void {\r\n this.store.dispatch(this.listActions.loadPage());\r\n }\r\n\r\n loadFirstPage(): void {\r\n this.store.dispatch(this.listActions.loadFirstPage());\r\n }\r\n\r\n loadNextPage(): void {\r\n this.store.dispatch(this.listActions.loadNextPage());\r\n }\r\n\r\n loadPreviousPage(): void {\r\n this.store.dispatch(this.listActions.loadPreviousPage());\r\n }\r\n\r\n patch(props: ActionPayload<ListActions<T, E>['patch']>): void {\r\n this.store.dispatch(this.listActions.patch(props));\r\n }\r\n\r\n delete(props: ActionPayload<ListActions<T, E>['delete']>): void {\r\n this.store.dispatch(this.listActions.delete(props));\r\n }\r\n\r\n initialize(): void {\r\n this.store.dispatch(this.listActions.initialize());\r\n }\r\n\r\n reinitialize(): void {\r\n this.store.dispatch(this.listActions.reset());\r\n }\r\n\r\n resetRequestState(): void {\r\n this.store.dispatch(this.listActions.resetRequestState());\r\n }\r\n\r\n showRemovalsConfirmation(): void {\r\n this.store.dispatch(this.listActions.showRemovalsConfirmation());\r\n }\r\n}\r\n","import { Action, createFeatureSelector } from '@ngrx/store';\r\nimport { ListState } from '../models/list.model';\r\nimport { createListActions } from './list-actions';\r\nimport { createListEntityAdapter, createListReducer } from './list-reducer';\r\nimport { createListSelectors } from './list-selectors';\r\n\r\nexport function createListState<T extends { [key: string]: any }, E, S extends { [key: string]: any } = T>(\r\n featureName: string,\r\n idKey?: string\r\n) {\r\n const actions = createListActions<T, E, S>(featureName);\r\n const entityAdapter = createListEntityAdapter<S>(idKey);\r\n const reducer = createListReducer<T, E, S>(entityAdapter, actions);\r\n const getState = createFeatureSelector<ListState<S, E>>(featureName);\r\n const selectors = createListSelectors<S, E>(entityAdapter, getState);\r\n\r\n return {\r\n actions,\r\n reducer: (state: ListState<S, E>, action: Action): ListState<S, E> => reducer(state, action),\r\n selectors,\r\n entityAdapter\r\n };\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/fesm2020/ngdux-list.mjs
CHANGED
|
@@ -360,6 +360,7 @@ class AbstractListFacade {
|
|
|
360
360
|
this.currentPageData$ = this.store.pipe(select(this.listSelectors.getCurrentPageData));
|
|
361
361
|
this.currentPageNumber$ = this.store.pipe(select(this.listSelectors.getCurrentPageNumber));
|
|
362
362
|
this.filteringOptions$ = this.store.pipe(select(this.listSelectors.getFilteringOptions));
|
|
363
|
+
this.requestParameters$ = this.store.pipe(select(this.listSelectors.getRequestParameters));
|
|
363
364
|
this.lastPageNumber$ = this.store.pipe(select(this.listSelectors.getLastPageNumber));
|
|
364
365
|
this.pagingOptions$ = this.store.pipe(select(this.listSelectors.getPagingOptions));
|
|
365
366
|
this.requestOptions$ = this.store.pipe(select(this.listSelectors.getRequestOptions));
|
|
@@ -376,6 +377,9 @@ class AbstractListFacade {
|
|
|
376
377
|
setSorting(props) {
|
|
377
378
|
this.store.dispatch(this.listActions.setSorting(props));
|
|
378
379
|
}
|
|
380
|
+
setRequestParameters(props) {
|
|
381
|
+
this.store.dispatch(this.listActions.setRequestParams(props));
|
|
382
|
+
}
|
|
379
383
|
changeFiltering(props) {
|
|
380
384
|
this.store.dispatch(this.listActions.changeFiltering(props));
|
|
381
385
|
}
|
|
@@ -394,6 +398,9 @@ class AbstractListFacade {
|
|
|
394
398
|
changeSorting(props) {
|
|
395
399
|
this.store.dispatch(this.listActions.changeSorting(props));
|
|
396
400
|
}
|
|
401
|
+
changeRequestParams(props) {
|
|
402
|
+
this.store.dispatch(this.listActions.changeRequestParams(props));
|
|
403
|
+
}
|
|
397
404
|
loadPage() {
|
|
398
405
|
this.store.dispatch(this.listActions.loadPage());
|
|
399
406
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngdux-list.mjs","sources":["../../../../../../../libs/ngdux/util/store/list/src/lib/+state/abstract-list-effects.ts","../../../../../../../libs/ngdux/util/store/list/src/lib/models/list.model.ts","../../../../../../../libs/ngdux/util/store/list/src/lib/+state/list-actions.ts","../../../../../../../libs/ngdux/util/store/list/src/lib/+state/list-reducer.ts","../../../../../../../libs/ngdux/util/store/list/src/lib/+state/list-selectors.ts","../../../../../../../libs/ngdux/util/store/list/src/lib/+state/abstract-list-state.service.ts","../../../../../../../libs/ngdux/util/store/list/src/lib/+state/abstract-list.facade.ts","../../../../../../../libs/ngdux/util/store/list/src/lib/+state/list-state.ts","../../../../../../../libs/ngdux/util/store/list/src/ngdux-list.ts"],"sourcesContent":["import { ListNotificationService, ListService } from '@ngdux/data-model-common';\r\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\r\nimport { Store, select } from '@ngrx/store';\r\nimport { of } from 'rxjs';\r\nimport { catchError, concatMap, exhaustMap, filter, map, switchMap, tap, withLatestFrom } from 'rxjs/operators';\r\n\r\nimport { ListActions, ListSelectors } from '../models/list.model';\r\n\r\nexport abstract class AbstractListEffects<T, E, S = T> {\r\n texts = {\r\n deleteConfirmationTitle: 'Delete resources',\r\n deleteConfirmationMessage: 'Are you sure to delete the selected resources?'\r\n };\r\n\r\n reload$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(\r\n this.listActions.changePageSize,\r\n this.listActions.changeSorting,\r\n this.listActions.changeFiltering,\r\n this.listActions.changeRequestParams,\r\n this.listActions.initialize,\r\n this.listActions.reset,\r\n this.listActions.changePageNumber,\r\n this.listActions.patchSuccess,\r\n this.listActions.deleteSuccess\r\n ),\r\n map(() => this.listActions.loadPage())\r\n )\r\n );\r\n\r\n loadFirstPage$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(this.listActions.loadFirstPage),\r\n map(() => this.listActions.changePageNumber({ pageNumber: 1 }))\r\n )\r\n );\r\n\r\n loadPreviousPage$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(this.listActions.loadPreviousPage),\r\n withLatestFrom(this.store.pipe(select(this.listSelectors.getCurrentPageNumber))),\r\n filter(([, currentPageNumber]) => currentPageNumber > 1),\r\n map(([, currentPageNumber]) => this.listActions.changePageNumber({ pageNumber: currentPageNumber - 1 }))\r\n )\r\n );\r\n\r\n loadNextPage$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(this.listActions.loadNextPage),\r\n withLatestFrom(\r\n this.store.pipe(select(this.listSelectors.isLastPage)),\r\n this.store.pipe(select(this.listSelectors.getCurrentPageNumber))\r\n ),\r\n filter(([, isLastPage]) => !isLastPage),\r\n map(([, , currentPageNumber]) => this.listActions.changePageNumber({ pageNumber: currentPageNumber + 1 }))\r\n )\r\n );\r\n\r\n changePagingOptions$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(this.listActions.changePagingOptions),\r\n withLatestFrom(this.store.pipe(select(this.listSelectors.getPagingOptions))),\r\n map(([action, pagingOptions]) => {\r\n if (action.pagingOptions.pageSize !== pagingOptions.pageSize) {\r\n return this.listActions.changePageSize({ pageSize: action.pagingOptions.pageSize });\r\n } else {\r\n return this.listActions.changePageNumber({ pageNumber: action.pagingOptions.page });\r\n }\r\n })\r\n )\r\n );\r\n\r\n loadPage$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(this.listActions.loadPage),\r\n withLatestFrom(\r\n this.store.pipe(select(this.listSelectors.getPagingOptions)),\r\n this.store.pipe(select(this.listSelectors.getSortingOptions)),\r\n this.store.pipe(select(this.listSelectors.getFilteringOptions)),\r\n this.store.pipe(select(this.listSelectors.getRequestParameters))\r\n ),\r\n concatMap(([, pagingOptions, sortingOptions, filteringOptions, requestParameters]) => {\r\n return this.service\r\n .loadResources({\r\n pagingOptions,\r\n sortingOptions,\r\n filteringOptions,\r\n requestParameters\r\n })\r\n .pipe(\r\n map(resources =>\r\n this.listActions.loadPageSuccess({\r\n resources,\r\n pagingOptions\r\n })\r\n ),\r\n catchError((errors: E) => of(this.listActions.loadPageFailure({ errors })))\r\n );\r\n })\r\n )\r\n );\r\n\r\n patch$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(this.listActions.patch),\r\n exhaustMap(action => {\r\n if (!this.service.patchResources) {\r\n throw new Error('patchResources not implement in the ListService');\r\n }\r\n\r\n return this.service.patchResources(action.resourceIds, action.resource).pipe(\r\n map(resources => this.listActions.patchSuccess({ resources })),\r\n catchError((errors: E) => of(this.listActions.patchFailure({ errors })))\r\n );\r\n })\r\n )\r\n );\r\n\r\n showRemovalsDialog$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(this.listActions.showRemovalsConfirmation),\r\n switchMap(() => {\r\n if (this.notificationService?.openConfirmationDialog) {\r\n return this.notificationService.openConfirmationDialog({\r\n message: this.texts.deleteConfirmationMessage,\r\n title: this.texts.deleteConfirmationTitle\r\n });\r\n }\r\n\r\n return of(true);\r\n }),\r\n filter(confirmed => confirmed),\r\n withLatestFrom(this.store.pipe(select(this.listSelectors.getSelectedResourceIds))),\r\n map(([, resourceIds]) => this.listActions.delete({ resourceIds }))\r\n )\r\n );\r\n\r\n delete$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(this.listActions.delete),\r\n exhaustMap(({ resourceIds }) => {\r\n if (!this.service.deleteResources) {\r\n throw new Error('deleteResources not implement in the ListService');\r\n }\r\n\r\n return this.service.deleteResources(resourceIds).pipe(\r\n map(() => this.listActions.deleteSuccess({ resourceIds })),\r\n catchError((errors: E) => of(this.listActions.deleteFailure({ errors })))\r\n );\r\n })\r\n )\r\n );\r\n\r\n deleteUsersSuccess$ = createEffect(\r\n () =>\r\n this.actions$.pipe(\r\n ofType(this.listActions.deleteSuccess),\r\n tap(({ resourceIds }) => {\r\n this.notificationService?.onListDelete(resourceIds);\r\n })\r\n ),\r\n { dispatch: false }\r\n );\r\n\r\n errorsHandler$ = createEffect(\r\n () =>\r\n this.actions$.pipe(\r\n ofType(this.listActions.loadPageFailure, this.listActions.deleteFailure, this.listActions.patchFailure),\r\n tap(({ errors }) => {\r\n this.notificationService?.onListErrors(errors);\r\n })\r\n ),\r\n { dispatch: false }\r\n );\r\n\r\n protected constructor(\r\n protected readonly actions$: Actions,\r\n protected readonly store: Store,\r\n protected readonly service: ListService<T, S>,\r\n protected readonly listActions: ListActions<T, E, S>,\r\n protected readonly listSelectors: ListSelectors<S, E>,\r\n protected readonly notificationService?: ListNotificationService<E>\r\n ) {}\r\n}\r\n","/* eslint-disable @typescript-eslint/ban-types */\r\nimport { InjectionToken } from '@angular/core';\r\nimport {\r\n ErrorDto,\r\n FilteringOptions,\r\n PagingOptions,\r\n RequestOptions,\r\n RequestState,\r\n SortingOptions\r\n} from '@ngdux/data-model-common';\r\nimport { ApiRequestState, LoadingState } from '@ngdux/store-common';\r\nimport { EntityState } from '@ngrx/entity';\r\nimport { ActionCreator, MemoizedSelector } from '@ngrx/store';\r\nimport { TypedAction } from '@ngrx/store/src/models';\r\n\r\nexport const LIST_FEATURE_KEY = new InjectionToken<string>('LIST_FEATURE_KEY');\r\n\r\nexport interface ListState<T, E> extends EntityState<T>, RequestOptions, ApiRequestState<E>, LoadingState {\r\n selectedResourceIds: string[];\r\n lastPageNumber?: number;\r\n}\r\n\r\nexport interface ListSelectors<T, E> {\r\n getAll: MemoizedSelector<object, T[]>;\r\n getRequestOptions: MemoizedSelector<object, RequestOptions>;\r\n isLastPage: MemoizedSelector<object, boolean>;\r\n getCurrentPageData: MemoizedSelector<object, T[]>;\r\n getPagingOptions: MemoizedSelector<object, PagingOptions>;\r\n getSortingOptions: MemoizedSelector<object, SortingOptions>;\r\n getFilteringOptions: MemoizedSelector<object, FilteringOptions>;\r\n getRequestParameters: MemoizedSelector<object, Record<string, string> | undefined>;\r\n getCurrentPageNumber: MemoizedSelector<object, number>;\r\n getLastPageNumber: MemoizedSelector<object, number | undefined>;\r\n getLoadingState: MemoizedSelector<object, RequestState>;\r\n getSelectedResourceIds: MemoizedSelector<object, string[]>;\r\n getSelectedItems: MemoizedSelector<object, T[]>;\r\n getSelectionRecord: MemoizedSelector<object, Record<string, T>>;\r\n getRequestState: MemoizedSelector<object, RequestState>;\r\n getErrors: MemoizedSelector<object, E | undefined>;\r\n areSelectedReady: MemoizedSelector<object, boolean>;\r\n isReady: MemoizedSelector<object, boolean>;\r\n isDeleteDisabled: MemoizedSelector<object, boolean>;\r\n isCopyDisabled: MemoizedSelector<object, boolean>;\r\n getTotalCount: MemoizedSelector<object, number>;\r\n}\r\n\r\nexport interface ListActions<Entity, Error, Summary = Entity, Params = Record<string, string>> {\r\n /**\r\n * Set the page size without reloading the list\r\n */\r\n setPageSize: ActionCreator<string, (props: { pageSize: number }) => { pageSize: number } & TypedAction<string>>;\r\n /**\r\n * Set the sorting options without reloading the list\r\n */\r\n setSorting: ActionCreator<\r\n string,\r\n (props: { sortingOptions: SortingOptions }) => { sortingOptions: SortingOptions } & TypedAction<string>\r\n >;\r\n /**\r\n * Set the filtering options without reloading the list\r\n */\r\n setFiltering: ActionCreator<\r\n string,\r\n (props: { filteringOptions: FilteringOptions }) => { filteringOptions: FilteringOptions } & TypedAction<string>\r\n >;\r\n /**\r\n * Set the request parameters without reloading the list\r\n */\r\n setRequestParams: ActionCreator<string, (props: { params: Params }) => { params: Params } & TypedAction<string>>;\r\n\r\n /**\r\n * Change the paging options and reload the list\r\n */\r\n changePagingOptions: ActionCreator<\r\n string,\r\n (props: { pagingOptions: PagingOptions }) => { pagingOptions: PagingOptions } & TypedAction<string>\r\n >;\r\n\r\n /**\r\n * Change the page number and reload the list\r\n */\r\n changePageNumber: ActionCreator<\r\n string,\r\n (props: { pageNumber: number }) => { pageNumber: number } & TypedAction<string>\r\n >;\r\n /**\r\n * Change the page size and reload the list\r\n */\r\n changePageSize: ActionCreator<string, (props: { pageSize: number }) => { pageSize: number } & TypedAction<string>>;\r\n /**\r\n * Change the sorting options and reload the list\r\n */\r\n changeSorting: ActionCreator<\r\n string,\r\n (props: { sortingOptions: SortingOptions }) => { sortingOptions: SortingOptions } & TypedAction<string>\r\n >;\r\n /**\r\n * Change the filtering options and reload the list\r\n */\r\n changeFiltering: ActionCreator<\r\n string,\r\n (props: { filteringOptions: FilteringOptions }) => { filteringOptions: FilteringOptions } & TypedAction<string>\r\n >;\r\n /**\r\n * Change the request parameters and reload the list\r\n */\r\n changeRequestParams: ActionCreator<string, (props: { params: Params }) => { params: Params } & TypedAction<string>>;\r\n\r\n changeSelectedResources: ActionCreator<\r\n string,\r\n (props: { selectedResourceIds: string[] }) => { selectedResourceIds: string[] } & TypedAction<string>\r\n >;\r\n loadPage: ActionCreator<string, () => TypedAction<string>>;\r\n loadPageSuccess: ActionCreator<\r\n string,\r\n (props: {\r\n resources: Summary[];\r\n pagingOptions: PagingOptions;\r\n }) => { resources: Summary[]; pagingOptions: PagingOptions } & TypedAction<string>\r\n >;\r\n loadPageFailure: ActionCreator<string, (props: { errors: Error }) => { errors: Error } & TypedAction<string>>;\r\n delete: ActionCreator<string, (props: { resourceIds: string[] }) => { resourceIds: string[] } & TypedAction<string>>;\r\n deleteSuccess: ActionCreator<\r\n string,\r\n (props: { resourceIds: string[] }) => { resourceIds: string[] } & TypedAction<string>\r\n >;\r\n deleteFailure: ActionCreator<string, (props: { errors: Error }) => { errors: Error } & TypedAction<string>>;\r\n patch: ActionCreator<\r\n string,\r\n (props: {\r\n resourceIds: string[];\r\n resource: Partial<Entity>;\r\n }) => { resourceIds: string[]; resource: Partial<Entity> } & TypedAction<string>\r\n >;\r\n patchSuccess: ActionCreator<\r\n string,\r\n (props: { resources: (Entity | ErrorDto)[] }) => { resources: (Entity | ErrorDto)[] } & TypedAction<string>\r\n >;\r\n patchFailure: ActionCreator<string, (props: { errors: Error }) => { errors: Error } & TypedAction<string>>;\r\n loadNextPage: ActionCreator<string, () => TypedAction<string>>;\r\n\r\n /**\r\n * Remove the current data, set the page number to 1 and deselect resources.\r\n * Keep all the rest, like filteringOptions and sortingOptions\r\n */\r\n initialize: ActionCreator<string, () => TypedAction<string>>;\r\n /**\r\n * Reset to the initial state\r\n */\r\n reset: ActionCreator<string, () => TypedAction<string>>;\r\n loadPreviousPage: ActionCreator<string, () => TypedAction<string>>;\r\n loadFirstPage: ActionCreator<string, () => TypedAction<string>>;\r\n /**\r\n * Reset the request state to idle\r\n */\r\n resetRequestState: ActionCreator<string, () => TypedAction<string>>;\r\n showRemovalsConfirmation: ActionCreator<string, () => TypedAction<string>>;\r\n}\r\n","import { ErrorDto, FilteringOptions, PagingOptions, SortingOptions } from '@ngdux/data-model-common';\r\nimport { createAction, props } from '@ngrx/store';\r\nimport { ListActions } from '../models/list.model';\r\n\r\nexport function createListActions<T, E, S = T, Params = Record<string, string>>(\r\n featureName: string\r\n): ListActions<T, E, S, Params> {\r\n const resetRequestState = createAction(`[${featureName} Page] Reset ${featureName} Request State`);\r\n const initialize = createAction(`[${featureName} Page] Initialize ${featureName}`);\r\n const reset = createAction(`[Organization ${featureName} Page] Reset ${featureName}`);\r\n\r\n const loadNextPage = createAction(`[${featureName} Page] Load Next ${featureName} Page`);\r\n const loadPreviousPage = createAction(`[${featureName} Page] Load Previous ${featureName} Page`);\r\n const loadFirstPage = createAction(`[${featureName} Page] Load First ${featureName} Page`);\r\n\r\n const setPageSize = createAction(`[${featureName} Page] Set ${featureName} Page Size`, props<{ pageSize: number }>());\r\n const setSorting = createAction(\r\n `[${featureName} Page] Set ${featureName} Sorting`,\r\n props<{ sortingOptions: SortingOptions }>()\r\n );\r\n const setFiltering = createAction(\r\n `[${featureName} Page] Set ${featureName} Filtering`,\r\n props<{ filteringOptions: FilteringOptions }>()\r\n );\r\n const setRequestParams = createAction(\r\n `[${featureName} Page] Set ${featureName} Request Params`,\r\n props<{ params: Params }>()\r\n );\r\n\r\n const changePageSize = createAction(\r\n `[${featureName} Page] Change ${featureName} Page Size`,\r\n props<{ pageSize: number }>()\r\n );\r\n\r\n const changePageNumber = createAction(\r\n `[${featureName} Page] Change ${featureName} Page Number`,\r\n props<{ pageNumber: number }>()\r\n );\r\n\r\n const changePagingOptions = createAction(\r\n `[${featureName} Page] Change ${featureName} Page Options`,\r\n props<{ pagingOptions: PagingOptions }>()\r\n );\r\n const changeSorting = createAction(\r\n `[${featureName} Page] Change ${featureName} Sorting`,\r\n props<{ sortingOptions: SortingOptions }>()\r\n );\r\n const changeFiltering = createAction(\r\n `[${featureName} Page] Change ${featureName} Filtering`,\r\n props<{ filteringOptions: FilteringOptions }>()\r\n );\r\n const changeSelectedResources = createAction(\r\n `[${featureName} Page] Change Selected Resources ${featureName}`,\r\n props<{ selectedResourceIds: string[] }>()\r\n );\r\n const changeRequestParams = createAction(\r\n `[${featureName} Page] Change ${featureName} Request Params`,\r\n props<{ params: Params }>()\r\n );\r\n\r\n const loadPage = createAction(`[${featureName} Page] Load ${featureName} Page`);\r\n const loadPageSuccess = createAction(\r\n `[${featureName} Page] Load ${featureName} Page Success`,\r\n props<{ resources: S[]; pagingOptions: PagingOptions }>()\r\n );\r\n const loadPageFailure = createAction(\r\n `[${featureName} Page] Load ${featureName} Page Failure`,\r\n props<{ errors: E }>()\r\n );\r\n\r\n const deleteAction = createAction(`[${featureName} Page] Delete ${featureName}`, props<{ resourceIds: string[] }>());\r\n const deleteSuccess = createAction(\r\n `[${featureName} Page] Delete ${featureName} Success`,\r\n props<{ resourceIds: string[] }>()\r\n );\r\n const deleteFailure = createAction(`[${featureName} Page] Delete ${featureName} Failure`, props<{ errors: E }>());\r\n\r\n const patch = createAction(\r\n `[${featureName} Page] Patch ${featureName}`,\r\n props<{ resourceIds: string[]; resource: Partial<T> }>()\r\n );\r\n const patchSuccess = createAction(\r\n `[${featureName} Page] Patch ${featureName} Success`,\r\n props<{ resources: (T | ErrorDto)[] }>()\r\n );\r\n const patchFailure = createAction(`[${featureName} Page] Patch ${featureName} Failure`, props<{ errors: E }>());\r\n\r\n const showRemovalsConfirmation = createAction(`[${featureName} Page] Show ${featureName} Removal Confirmation`);\r\n\r\n return {\r\n initialize,\r\n reset,\r\n setPageSize,\r\n setSorting,\r\n setFiltering,\r\n setRequestParams,\r\n changePageSize,\r\n changePageNumber,\r\n changePagingOptions,\r\n changeSorting,\r\n changeFiltering,\r\n changeRequestParams,\r\n loadPreviousPage,\r\n loadNextPage,\r\n loadFirstPage,\r\n changeSelectedResources,\r\n loadPage,\r\n loadPageSuccess,\r\n loadPageFailure,\r\n delete: deleteAction,\r\n deleteSuccess,\r\n deleteFailure,\r\n patch,\r\n patchSuccess,\r\n patchFailure,\r\n resetRequestState,\r\n showRemovalsConfirmation\r\n };\r\n}\r\n","import { DEFAULT_PAGE, DEFAULT_REQUEST_OPTIONS, RequestState } from '@ngdux/data-model-common';\r\nimport {\r\n createLoadingStateActionHandlers,\r\n createRequestStateActionHandlers,\r\n getLastPageNumber\r\n} from '@ngdux/store-common';\r\nimport { EntityAdapter, createEntityAdapter } from '@ngrx/entity';\r\nimport { ActionReducer, ReducerTypes, createReducer, on } from '@ngrx/store';\r\nimport { ActionCreator } from '@ngrx/store/src/models';\r\n\r\nimport { ListActions, ListState } from '../models/list.model';\r\n\r\nexport function createListEntityAdapter<T extends { [key: string]: any }>(idKey = 'id'): EntityAdapter<T> {\r\n return createEntityAdapter({\r\n selectId: resource => resource[idKey]\r\n });\r\n}\r\n\r\nexport function createListReducer<T, E, S = T>(\r\n entityAdapter: EntityAdapter<S>,\r\n actions: ListActions<T, E, S>,\r\n actionHandlers?: ReducerTypes<ListState<S, E>, ActionCreator[]>[],\r\n initialListState?: { [key: string]: unknown }\r\n): ActionReducer<ListState<S, E>> {\r\n const initialState: ListState<S, E> = { ...createInitialListState<S, E>(entityAdapter), ...initialListState };\r\n return createReducer<ListState<S, E>>(\r\n initialState,\r\n ...createListActionHandlers<T, E, S>(initialState, entityAdapter, actions),\r\n ...(actionHandlers || [])\r\n );\r\n}\r\n\r\nfunction createInitialListState<T, E>(entityAdapter: EntityAdapter<T>): ListState<T, E> {\r\n return entityAdapter.getInitialState({\r\n ...DEFAULT_REQUEST_OPTIONS,\r\n lastPageNumber: undefined,\r\n selectedResourceIds: [],\r\n loadingState: RequestState.IDLE,\r\n requestState: RequestState.IDLE,\r\n errors: undefined\r\n });\r\n}\r\n\r\nfunction createListActionHandlers<T, E, S>(\r\n initialListState: ListState<S, E>,\r\n entityAdapter: EntityAdapter<S>,\r\n actions: ListActions<T, E, S>\r\n): ReducerTypes<ListState<S, E>, ActionCreator[]>[] {\r\n return [\r\n on(actions.reset, () => initialListState),\r\n on(actions.initialize, (state: ListState<S, E>) =>\r\n entityAdapter.removeAll({\r\n ...state,\r\n selectedResourceIds: [],\r\n pagingOptions: {\r\n ...state.pagingOptions,\r\n page: DEFAULT_PAGE\r\n },\r\n requestState: RequestState.IDLE\r\n })\r\n ),\r\n on(actions.changePageSize, actions.setPageSize, (state: ListState<S, E>, { pageSize }) => ({\r\n ...state,\r\n pagingOptions: { page: DEFAULT_PAGE, pageSize },\r\n lastPageNumber: undefined\r\n })),\r\n on(actions.changePageNumber, (state: ListState<S, E>, { pageNumber }) => ({\r\n ...state,\r\n pagingOptions: { ...state.pagingOptions, page: pageNumber }\r\n })),\r\n on(actions.changeSorting, actions.setSorting, (state: ListState<S, E>, { sortingOptions }) => ({\r\n ...state,\r\n sortingOptions,\r\n pagingOptions: { ...state.pagingOptions, page: DEFAULT_PAGE }\r\n })),\r\n on(actions.changeFiltering, actions.setFiltering, (state: ListState<S, E>, { filteringOptions }) => ({\r\n ...state,\r\n filteringOptions,\r\n pagingOptions: { ...state.pagingOptions, page: DEFAULT_PAGE },\r\n lastPageNumber: undefined\r\n })),\r\n on(actions.changeRequestParams, actions.setRequestParams, (state: ListState<S, E>, { params }) => ({\r\n ...state,\r\n params,\r\n pagingOptions: { ...state.pagingOptions, page: DEFAULT_PAGE }\r\n })),\r\n on(actions.changeSelectedResources, (state: ListState<S, E>, { selectedResourceIds }) => ({\r\n ...state,\r\n selectedResourceIds\r\n })),\r\n on(actions.loadFirstPage, (state: ListState<S, E>) => ({\r\n ...state,\r\n pagingOptions: { ...state.pagingOptions, page: 1 }\r\n })),\r\n on(actions.loadPageSuccess, (state: ListState<S, E>, { resources, pagingOptions }) => {\r\n const lastPageNumber = getLastPageNumber(resources, pagingOptions) || state.lastPageNumber;\r\n if (lastPageNumber && pagingOptions.page > lastPageNumber) {\r\n return {\r\n ...state,\r\n pagingOptions: {\r\n ...state.pagingOptions,\r\n page: lastPageNumber\r\n },\r\n lastPageNumber,\r\n selectedResourceIds: []\r\n };\r\n }\r\n\r\n return entityAdapter.setAll(resources, {\r\n ...state,\r\n lastPageNumber,\r\n selectedResourceIds: []\r\n });\r\n }),\r\n on(actions.deleteSuccess, (state: ListState<S, E>) => ({\r\n ...state,\r\n selectedResourceIds: [] as string[]\r\n })),\r\n ...createLoadingStateActionHandlers<ListState<S, E>>(\r\n actions.loadPage,\r\n actions.loadPageSuccess,\r\n actions.loadPageFailure\r\n ),\r\n ...createRequestStateActionHandlers<ListState<S, E>, E>(\r\n undefined,\r\n actions.delete,\r\n actions.deleteSuccess,\r\n actions.deleteFailure\r\n ),\r\n ...createRequestStateActionHandlers<ListState<S, E>, E>(\r\n actions.resetRequestState,\r\n actions.patch,\r\n actions.patchSuccess,\r\n actions.patchFailure\r\n )\r\n ];\r\n}\r\n","/* eslint-disable @typescript-eslint/ban-types */\r\nimport { RequestOptions, RequestState } from '@ngdux/data-model-common';\r\nimport { EntityAdapter } from '@ngrx/entity';\r\nimport { DefaultProjectorFn, MemoizedSelector, createSelector } from '@ngrx/store';\r\nimport { ListSelectors, ListState } from '../models/list.model';\r\n\r\nexport function createListSelectors<T, E>(\r\n entityAdapter: EntityAdapter<T>,\r\n getListState: MemoizedSelector<object, ListState<T, E>, DefaultProjectorFn<ListState<T, E>>>\r\n): ListSelectors<T, E> {\r\n const getAll = createSelector(getListState, entityAdapter.getSelectors().selectAll);\r\n\r\n const getPagingOptions = createSelector(getListState, state => state.pagingOptions);\r\n\r\n const getRequestOptions = createSelector(\r\n getListState,\r\n (state): RequestOptions => ({\r\n pagingOptions: state.pagingOptions,\r\n sortingOptions: state.sortingOptions,\r\n filteringOptions: state.filteringOptions\r\n })\r\n );\r\n\r\n const getLastPageNumber = createSelector(getListState, state => state.lastPageNumber);\r\n\r\n const isLastPage = createSelector(getPagingOptions, getLastPageNumber, ({ page }, lastPageNumber) => {\r\n return lastPageNumber ? lastPageNumber <= page : false;\r\n });\r\n\r\n const getCurrentPageData = createSelector(getAll, resources => {\r\n return resources;\r\n });\r\n\r\n const getSortingOptions = createSelector(getListState, state => state.sortingOptions);\r\n\r\n const getRequestParameters = createSelector(getListState, state => state.requestParameters);\r\n\r\n const getFilteringOptions = createSelector(getListState, state => state.filteringOptions);\r\n\r\n const getCurrentPageNumber = createSelector(getPagingOptions, options => options?.page);\r\n\r\n const getSelectedResourceIds = createSelector(getListState, state => state.selectedResourceIds);\r\n\r\n const getLoadingState = createSelector(getListState, state => state.loadingState);\r\n\r\n const getSelectedItems = createSelector(\r\n getSelectedResourceIds,\r\n createSelector(getListState, entityAdapter.getSelectors().selectEntities),\r\n (selectedResourceIds, resources): T[] =>\r\n selectedResourceIds.reduce((acc, selectedResourceId): T[] => {\r\n const resource = resources[selectedResourceId];\r\n if (resource) {\r\n acc.push(resource);\r\n }\r\n return acc;\r\n }, [] as T[])\r\n );\r\n\r\n const getSelectionRecord = createSelector(\r\n getSelectedResourceIds,\r\n createSelector(getListState, entityAdapter.getSelectors().selectEntities),\r\n (selectedResourceIds, resources): Record<string, T> =>\r\n selectedResourceIds.reduce((selected, selectedResourceId) => {\r\n const resource = resources[selectedResourceId];\r\n if (resource) {\r\n selected[selectedResourceId] = resource;\r\n }\r\n return selected;\r\n }, {} as Record<string, T>)\r\n );\r\n\r\n const getRequestState = createSelector(getListState, state => state.requestState);\r\n\r\n const getErrors = createSelector(getListState, state => state.errors);\r\n\r\n const isReady = createSelector(\r\n getAll,\r\n getLoadingState,\r\n (users, loadingState) => !!users && loadingState === RequestState.SUCCESS\r\n );\r\n\r\n const areSelectedReady = createSelector(\r\n getSelectedResourceIds,\r\n getSelectionRecord,\r\n getLoadingState,\r\n (selectedResourceIds, resources, loadingState) => {\r\n return selectedResourceIds.every(resourceId => !!resources[resourceId]) && loadingState === RequestState.SUCCESS;\r\n }\r\n );\r\n\r\n const isDeleteDisabled = createSelector(getSelectedResourceIds, selectedResourceIds => !selectedResourceIds.length);\r\n\r\n const isCopyDisabled = createSelector(\r\n getSelectedResourceIds,\r\n selectedResourceIds => selectedResourceIds.length !== 1\r\n );\r\n\r\n const getTotalCount = createSelector(\r\n getPagingOptions,\r\n isLastPage,\r\n getCurrentPageData,\r\n (pagingOptions, isLastPage, currentPageData) => {\r\n if (!pagingOptions) {\r\n return 0;\r\n }\r\n\r\n if (isLastPage) {\r\n return (pagingOptions.page - 1) * pagingOptions.pageSize + currentPageData.length;\r\n }\r\n return (pagingOptions.page + 1) * pagingOptions.pageSize;\r\n }\r\n );\r\n\r\n return {\r\n getAll,\r\n getRequestOptions,\r\n isLastPage,\r\n getCurrentPageData,\r\n getPagingOptions,\r\n getSortingOptions,\r\n getFilteringOptions,\r\n getRequestParameters,\r\n getCurrentPageNumber,\r\n getLastPageNumber,\r\n getLoadingState,\r\n getSelectedResourceIds,\r\n getSelectedItems,\r\n getSelectionRecord,\r\n getRequestState,\r\n getErrors,\r\n areSelectedReady,\r\n isReady,\r\n isDeleteDisabled,\r\n isCopyDisabled,\r\n getTotalCount\r\n };\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { EntityAdapter } from '@ngrx/entity';\r\nimport { ReducerManager, createFeatureSelector } from '@ngrx/store';\r\nimport { LIST_FEATURE_KEY, ListActions, ListSelectors, ListState } from '../models/list.model';\r\nimport { createListActions } from './list-actions';\r\nimport { createListEntityAdapter, createListReducer } from './list-reducer';\r\nimport { createListSelectors } from './list-selectors';\r\n\r\n@Injectable()\r\nexport abstract class AbstractListReducerManager<\r\n T extends { [key: string]: any },\r\n E,\r\n S extends { [key: string]: any } = T\r\n> {\r\n actions: ListActions<T, E, S>;\r\n selectors: ListSelectors<S, E>;\r\n private entityAdapter: EntityAdapter<S>;\r\n\r\n constructor(\r\n private readonly reducerManager: ReducerManager,\r\n @Inject(LIST_FEATURE_KEY) private readonly featureKey: string\r\n ) {\r\n this.actions = this.getActions();\r\n this.entityAdapter = this.getEntityAdapter();\r\n this.addReducer();\r\n this.selectors = this.getSelectors();\r\n }\r\n\r\n protected getActions() {\r\n return createListActions<T, E, S>(this.featureKey);\r\n }\r\n\r\n private getEntityAdapter() {\r\n return createListEntityAdapter<S>();\r\n }\r\n\r\n protected addReducer() {\r\n const currentReducers: string[] = Object.keys(this.reducerManager.currentReducers || {});\r\n\r\n if (!currentReducers.includes(this.featureKey)) {\r\n const reducer = createListReducer<T, E, S>(this.entityAdapter, this.actions);\r\n this.reducerManager.addReducer(this.featureKey, reducer);\r\n }\r\n }\r\n\r\n protected getSelectors() {\r\n const getState = createFeatureSelector<ListState<S, E>>(this.featureKey);\r\n return createListSelectors(this.entityAdapter, getState);\r\n }\r\n}\r\n","import { ActionPayload } from '@ngdux/store-common';\r\nimport { select, Store } from '@ngrx/store';\r\nimport { ListActions, ListSelectors } from '../models/list.model';\r\n\r\nexport abstract class AbstractListFacade<T, E, S = T> {\r\n readonly resources$ = this.store.pipe(select(this.listSelectors.getAll));\r\n readonly loadingState$ = this.store.pipe(select(this.listSelectors.getLoadingState));\r\n readonly requestState$ = this.store.pipe(select(this.listSelectors.getRequestState));\r\n readonly errors$ = this.store.pipe(select(this.listSelectors.getErrors));\r\n readonly isReady$ = this.store.pipe(select(this.listSelectors.isReady));\r\n readonly areSelectedReady$ = this.store.pipe(select(this.listSelectors.areSelectedReady));\r\n readonly currentPageData$ = this.store.pipe(select(this.listSelectors.getCurrentPageData));\r\n readonly currentPageNumber$ = this.store.pipe(select(this.listSelectors.getCurrentPageNumber));\r\n readonly filteringOptions$ = this.store.pipe(select(this.listSelectors.getFilteringOptions));\r\n readonly lastPageNumber$ = this.store.pipe(select(this.listSelectors.getLastPageNumber));\r\n readonly pagingOptions$ = this.store.pipe(select(this.listSelectors.getPagingOptions));\r\n readonly requestOptions$ = this.store.pipe(select(this.listSelectors.getRequestOptions));\r\n readonly sortingOptions$ = this.store.pipe(select(this.listSelectors.getSortingOptions));\r\n readonly selectedItems$ = this.store.pipe(select(this.listSelectors.getSelectedItems));\r\n readonly totalCount$ = this.store.pipe(select(this.listSelectors.getTotalCount));\r\n\r\n constructor(\r\n protected readonly store: Store,\r\n private readonly listActions: ListActions<T, E, S>,\r\n private readonly listSelectors: ListSelectors<S, E>\r\n ) {}\r\n\r\n setPageSize(props: ActionPayload<ListActions<T, E>['setPageSize']>): void {\r\n this.store.dispatch(this.listActions.setPageSize(props));\r\n }\r\n\r\n setFiltering(props: ActionPayload<ListActions<T, E>['setFiltering']>): void {\r\n this.store.dispatch(this.listActions.setFiltering(props));\r\n }\r\n\r\n setSorting(props: ActionPayload<ListActions<T, E>['setSorting']>): void {\r\n this.store.dispatch(this.listActions.setSorting(props));\r\n }\r\n\r\n changeFiltering(props: ActionPayload<ListActions<T, E>['changeFiltering']>): void {\r\n this.store.dispatch(this.listActions.changeFiltering(props));\r\n }\r\n\r\n changePagingOptions(props: ActionPayload<ListActions<T, E>['changePagingOptions']>): void {\r\n this.store.dispatch(this.listActions.changePagingOptions(props));\r\n }\r\n\r\n changePageSize(props: ActionPayload<ListActions<T, E>['changePageSize']>): void {\r\n this.store.dispatch(this.listActions.changePageSize(props));\r\n }\r\n\r\n changePageNumber(props: ActionPayload<ListActions<T, E>['changePageNumber']>): void {\r\n this.store.dispatch(this.listActions.changePageNumber(props));\r\n }\r\n\r\n changeSelectedResources(props: ActionPayload<ListActions<T, E>['changeSelectedResources']>): void {\r\n this.store.dispatch(this.listActions.changeSelectedResources(props));\r\n }\r\n\r\n changeSorting(props: ActionPayload<ListActions<T, E>['changeSorting']>): void {\r\n this.store.dispatch(this.listActions.changeSorting(props));\r\n }\r\n\r\n loadPage(): void {\r\n this.store.dispatch(this.listActions.loadPage());\r\n }\r\n\r\n loadFirstPage(): void {\r\n this.store.dispatch(this.listActions.loadFirstPage());\r\n }\r\n\r\n loadNextPage(): void {\r\n this.store.dispatch(this.listActions.loadNextPage());\r\n }\r\n\r\n loadPreviousPage(): void {\r\n this.store.dispatch(this.listActions.loadPreviousPage());\r\n }\r\n\r\n patch(props: ActionPayload<ListActions<T, E>['patch']>): void {\r\n this.store.dispatch(this.listActions.patch(props));\r\n }\r\n\r\n delete(props: ActionPayload<ListActions<T, E>['delete']>): void {\r\n this.store.dispatch(this.listActions.delete(props));\r\n }\r\n\r\n initialize(): void {\r\n this.store.dispatch(this.listActions.initialize());\r\n }\r\n\r\n reinitialize(): void {\r\n this.store.dispatch(this.listActions.reset());\r\n }\r\n\r\n resetRequestState(): void {\r\n this.store.dispatch(this.listActions.resetRequestState());\r\n }\r\n\r\n showRemovalsConfirmation(): void {\r\n this.store.dispatch(this.listActions.showRemovalsConfirmation());\r\n }\r\n}\r\n","import { Action, createFeatureSelector } from '@ngrx/store';\r\nimport { ListState } from '../models/list.model';\r\nimport { createListActions } from './list-actions';\r\nimport { createListEntityAdapter, createListReducer } from './list-reducer';\r\nimport { createListSelectors } from './list-selectors';\r\n\r\nexport function createListState<T extends { [key: string]: any }, E, S extends { [key: string]: any } = T>(\r\n featureName: string,\r\n idKey?: string\r\n) {\r\n const actions = createListActions<T, E, S>(featureName);\r\n const entityAdapter = createListEntityAdapter<S>(idKey);\r\n const reducer = createListReducer<T, E, S>(entityAdapter, actions);\r\n const getState = createFeatureSelector<ListState<S, E>>(featureName);\r\n const selectors = createListSelectors<S, E>(entityAdapter, getState);\r\n\r\n return {\r\n actions,\r\n reducer: (state: ListState<S, E>, action: Action): ListState<S, E> => reducer(state, action),\r\n selectors,\r\n entityAdapter\r\n };\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;MAQsB,mBAAmB,CAAA;IAwKvC,WACqB,CAAA,QAAiB,EACjB,KAAY,EACZ,OAA0B,EAC1B,WAAiC,EACjC,aAAkC,EAClC,mBAAgD,EAAA;QALhD,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAS;QACjB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAO;QACZ,IAAO,CAAA,OAAA,GAAP,OAAO,CAAmB;QAC1B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAsB;QACjC,IAAa,CAAA,aAAA,GAAb,aAAa,CAAqB;QAClC,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAA6B;AA7KrE,QAAA,IAAA,CAAA,KAAK,GAAG;AACN,YAAA,uBAAuB,EAAE,kBAAkB;AAC3C,YAAA,yBAAyB,EAAE,gDAAgD;SAC5E,CAAC;AAEF,QAAA,IAAA,CAAA,OAAO,GAAG,YAAY,CAAC,MACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,MAAM,CACJ,IAAI,CAAC,WAAW,CAAC,cAAc,EAC/B,IAAI,CAAC,WAAW,CAAC,aAAa,EAC9B,IAAI,CAAC,WAAW,CAAC,eAAe,EAChC,IAAI,CAAC,WAAW,CAAC,mBAAmB,EACpC,IAAI,CAAC,WAAW,CAAC,UAAU,EAC3B,IAAI,CAAC,WAAW,CAAC,KAAK,EACtB,IAAI,CAAC,WAAW,CAAC,gBAAgB,EACjC,IAAI,CAAC,WAAW,CAAC,YAAY,EAC7B,IAAI,CAAC,WAAW,CAAC,aAAa,CAC/B,EACD,GAAG,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CACvC,CACF,CAAC;AAEF,QAAA,IAAA,CAAA,cAAc,GAAG,YAAY,CAAC,MAC5B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,EACtC,GAAG,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,CAChE,CACF,CAAC;AAEF,QAAA,IAAA,CAAA,iBAAiB,GAAG,YAAY,CAAC,MAC/B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EACzC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAChF,MAAM,CAAC,CAAC,GAAG,iBAAiB,CAAC,KAAK,iBAAiB,GAAG,CAAC,CAAC,EACxD,GAAG,CAAC,CAAC,GAAG,iBAAiB,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,UAAU,EAAE,iBAAiB,GAAG,CAAC,EAAE,CAAC,CAAC,CACzG,CACF,CAAC;QAEF,IAAa,CAAA,aAAA,GAAG,YAAY,CAAC,MAC3B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,EACrC,cAAc,CACZ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,EACtD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,CACjE,EACD,MAAM,CAAC,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,EACvC,GAAG,CAAC,CAAC,KAAK,iBAAiB,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,UAAU,EAAE,iBAAiB,GAAG,CAAC,EAAE,CAAC,CAAC,CAC3G,CACF,CAAC;QAEF,IAAoB,CAAA,oBAAA,GAAG,YAAY,CAAC,MAClC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,EAC5C,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAC5E,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,aAAa,CAAC,KAAI;YAC9B,IAAI,MAAM,CAAC,aAAa,CAAC,QAAQ,KAAK,aAAa,CAAC,QAAQ,EAAE;AAC5D,gBAAA,OAAO,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;AACrF,aAAA;AAAM,iBAAA;AACL,gBAAA,OAAO,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;AACrF,aAAA;SACF,CAAC,CACH,CACF,CAAC;QAEF,IAAS,CAAA,SAAA,GAAG,YAAY,CAAC,MACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EACjC,cAAc,CACZ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,EAC5D,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,EAC7D,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC,EAC/D,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,CACjE,EACD,SAAS,CAAC,CAAC,GAAG,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,iBAAiB,CAAC,KAAI;YACnF,OAAO,IAAI,CAAC,OAAO;AAChB,iBAAA,aAAa,CAAC;gBACb,aAAa;gBACb,cAAc;gBACd,gBAAgB;gBAChB,iBAAiB;aAClB,CAAC;AACD,iBAAA,IAAI,CACH,GAAG,CAAC,SAAS,IACX,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC;gBAC/B,SAAS;gBACT,aAAa;aACd,CAAC,CACH,EACD,UAAU,CAAC,CAAC,MAAS,KAAK,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAC5E,CAAC;SACL,CAAC,CACH,CACF,CAAC;QAEF,IAAM,CAAA,MAAA,GAAG,YAAY,CAAC,MACpB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAC9B,UAAU,CAAC,MAAM,IAAG;AAClB,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;AAChC,gBAAA,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;AACpE,aAAA;YAED,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAC1E,GAAG,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,EAC9D,UAAU,CAAC,CAAC,MAAS,KAAK,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CACzE,CAAC;SACH,CAAC,CACH,CACF,CAAC;QAEF,IAAmB,CAAA,mBAAA,GAAG,YAAY,CAAC,MACjC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAAC,EACjD,SAAS,CAAC,MAAK;AACb,YAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE,sBAAsB,EAAE;AACpD,gBAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,sBAAsB,CAAC;AACrD,oBAAA,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,yBAAyB;AAC7C,oBAAA,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,uBAAuB;AAC1C,iBAAA,CAAC,CAAC;AACJ,aAAA;AAED,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;SACjB,CAAC,EACF,MAAM,CAAC,SAAS,IAAI,SAAS,CAAC,EAC9B,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAClF,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CACnE,CACF,CAAC;AAEF,QAAA,IAAA,CAAA,OAAO,GAAG,YAAY,CAAC,MACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAC/B,UAAU,CAAC,CAAC,EAAE,WAAW,EAAE,KAAI;AAC7B,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;AACjC,gBAAA,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;AACrE,aAAA;YAED,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,IAAI,CACnD,GAAG,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,EAC1D,UAAU,CAAC,CAAC,MAAS,KAAK,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAC1E,CAAC;SACH,CAAC,CACH,CACF,CAAC;AAEF,QAAA,IAAA,CAAA,mBAAmB,GAAG,YAAY,CAChC,MACE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,EACtC,GAAG,CAAC,CAAC,EAAE,WAAW,EAAE,KAAI;AACtB,YAAA,IAAI,CAAC,mBAAmB,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;SACrD,CAAC,CACH,EACH,EAAE,QAAQ,EAAE,KAAK,EAAE,CACpB,CAAC;AAEF,QAAA,IAAA,CAAA,cAAc,GAAG,YAAY,CAC3B,MACE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,EACvG,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,KAAI;AACjB,YAAA,IAAI,CAAC,mBAAmB,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;SAChD,CAAC,CACH,EACH,EAAE,QAAQ,EAAE,KAAK,EAAE,CACpB,CAAC;KASE;AACL;;ACxLD;MAea,gBAAgB,GAAG,IAAI,cAAc,CAAS,kBAAkB;;ACXvE,SAAU,iBAAiB,CAC/B,WAAmB,EAAA;IAEnB,MAAM,iBAAiB,GAAG,YAAY,CAAC,CAAA,CAAA,EAAI,WAAW,CAAgB,aAAA,EAAA,WAAW,CAAgB,cAAA,CAAA,CAAC,CAAC;IACnG,MAAM,UAAU,GAAG,YAAY,CAAC,CAAA,CAAA,EAAI,WAAW,CAAqB,kBAAA,EAAA,WAAW,CAAE,CAAA,CAAC,CAAC;IACnF,MAAM,KAAK,GAAG,YAAY,CAAC,CAAA,cAAA,EAAiB,WAAW,CAAgB,aAAA,EAAA,WAAW,CAAE,CAAA,CAAC,CAAC;IAEtF,MAAM,YAAY,GAAG,YAAY,CAAC,CAAA,CAAA,EAAI,WAAW,CAAoB,iBAAA,EAAA,WAAW,CAAO,KAAA,CAAA,CAAC,CAAC;IACzF,MAAM,gBAAgB,GAAG,YAAY,CAAC,CAAA,CAAA,EAAI,WAAW,CAAwB,qBAAA,EAAA,WAAW,CAAO,KAAA,CAAA,CAAC,CAAC;IACjG,MAAM,aAAa,GAAG,YAAY,CAAC,CAAA,CAAA,EAAI,WAAW,CAAqB,kBAAA,EAAA,WAAW,CAAO,KAAA,CAAA,CAAC,CAAC;AAE3F,IAAA,MAAM,WAAW,GAAG,YAAY,CAAC,CAAI,CAAA,EAAA,WAAW,CAAc,WAAA,EAAA,WAAW,CAAY,UAAA,CAAA,EAAE,KAAK,EAAwB,CAAC,CAAC;AACtH,IAAA,MAAM,UAAU,GAAG,YAAY,CAC7B,CAAI,CAAA,EAAA,WAAW,CAAc,WAAA,EAAA,WAAW,CAAU,QAAA,CAAA,EAClD,KAAK,EAAsC,CAC5C,CAAC;AACF,IAAA,MAAM,YAAY,GAAG,YAAY,CAC/B,CAAI,CAAA,EAAA,WAAW,CAAc,WAAA,EAAA,WAAW,CAAY,UAAA,CAAA,EACpD,KAAK,EAA0C,CAChD,CAAC;AACF,IAAA,MAAM,gBAAgB,GAAG,YAAY,CACnC,CAAI,CAAA,EAAA,WAAW,CAAc,WAAA,EAAA,WAAW,CAAiB,eAAA,CAAA,EACzD,KAAK,EAAsB,CAC5B,CAAC;AAEF,IAAA,MAAM,cAAc,GAAG,YAAY,CACjC,CAAI,CAAA,EAAA,WAAW,CAAiB,cAAA,EAAA,WAAW,CAAY,UAAA,CAAA,EACvD,KAAK,EAAwB,CAC9B,CAAC;AAEF,IAAA,MAAM,gBAAgB,GAAG,YAAY,CACnC,CAAI,CAAA,EAAA,WAAW,CAAiB,cAAA,EAAA,WAAW,CAAc,YAAA,CAAA,EACzD,KAAK,EAA0B,CAChC,CAAC;AAEF,IAAA,MAAM,mBAAmB,GAAG,YAAY,CACtC,CAAI,CAAA,EAAA,WAAW,CAAiB,cAAA,EAAA,WAAW,CAAe,aAAA,CAAA,EAC1D,KAAK,EAAoC,CAC1C,CAAC;AACF,IAAA,MAAM,aAAa,GAAG,YAAY,CAChC,CAAI,CAAA,EAAA,WAAW,CAAiB,cAAA,EAAA,WAAW,CAAU,QAAA,CAAA,EACrD,KAAK,EAAsC,CAC5C,CAAC;AACF,IAAA,MAAM,eAAe,GAAG,YAAY,CAClC,CAAI,CAAA,EAAA,WAAW,CAAiB,cAAA,EAAA,WAAW,CAAY,UAAA,CAAA,EACvD,KAAK,EAA0C,CAChD,CAAC;AACF,IAAA,MAAM,uBAAuB,GAAG,YAAY,CAC1C,CAAI,CAAA,EAAA,WAAW,CAAoC,iCAAA,EAAA,WAAW,CAAE,CAAA,EAChE,KAAK,EAAqC,CAC3C,CAAC;AACF,IAAA,MAAM,mBAAmB,GAAG,YAAY,CACtC,CAAI,CAAA,EAAA,WAAW,CAAiB,cAAA,EAAA,WAAW,CAAiB,eAAA,CAAA,EAC5D,KAAK,EAAsB,CAC5B,CAAC;IAEF,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAA,CAAA,EAAI,WAAW,CAAe,YAAA,EAAA,WAAW,CAAO,KAAA,CAAA,CAAC,CAAC;AAChF,IAAA,MAAM,eAAe,GAAG,YAAY,CAClC,CAAI,CAAA,EAAA,WAAW,CAAe,YAAA,EAAA,WAAW,CAAe,aAAA,CAAA,EACxD,KAAK,EAAoD,CAC1D,CAAC;AACF,IAAA,MAAM,eAAe,GAAG,YAAY,CAClC,CAAI,CAAA,EAAA,WAAW,CAAe,YAAA,EAAA,WAAW,CAAe,aAAA,CAAA,EACxD,KAAK,EAAiB,CACvB,CAAC;AAEF,IAAA,MAAM,YAAY,GAAG,YAAY,CAAC,CAAI,CAAA,EAAA,WAAW,CAAiB,cAAA,EAAA,WAAW,CAAE,CAAA,EAAE,KAAK,EAA6B,CAAC,CAAC;AACrH,IAAA,MAAM,aAAa,GAAG,YAAY,CAChC,CAAI,CAAA,EAAA,WAAW,CAAiB,cAAA,EAAA,WAAW,CAAU,QAAA,CAAA,EACrD,KAAK,EAA6B,CACnC,CAAC;AACF,IAAA,MAAM,aAAa,GAAG,YAAY,CAAC,CAAI,CAAA,EAAA,WAAW,CAAiB,cAAA,EAAA,WAAW,CAAU,QAAA,CAAA,EAAE,KAAK,EAAiB,CAAC,CAAC;AAElH,IAAA,MAAM,KAAK,GAAG,YAAY,CACxB,CAAI,CAAA,EAAA,WAAW,CAAgB,aAAA,EAAA,WAAW,CAAE,CAAA,EAC5C,KAAK,EAAmD,CACzD,CAAC;AACF,IAAA,MAAM,YAAY,GAAG,YAAY,CAC/B,CAAI,CAAA,EAAA,WAAW,CAAgB,aAAA,EAAA,WAAW,CAAU,QAAA,CAAA,EACpD,KAAK,EAAmC,CACzC,CAAC;AACF,IAAA,MAAM,YAAY,GAAG,YAAY,CAAC,CAAI,CAAA,EAAA,WAAW,CAAgB,aAAA,EAAA,WAAW,CAAU,QAAA,CAAA,EAAE,KAAK,EAAiB,CAAC,CAAC;IAEhH,MAAM,wBAAwB,GAAG,YAAY,CAAC,CAAA,CAAA,EAAI,WAAW,CAAe,YAAA,EAAA,WAAW,CAAuB,qBAAA,CAAA,CAAC,CAAC;IAEhH,OAAO;QACL,UAAU;QACV,KAAK;QACL,WAAW;QACX,UAAU;QACV,YAAY;QACZ,gBAAgB;QAChB,cAAc;QACd,gBAAgB;QAChB,mBAAmB;QACnB,aAAa;QACb,eAAe;QACf,mBAAmB;QACnB,gBAAgB;QAChB,YAAY;QACZ,aAAa;QACb,uBAAuB;QACvB,QAAQ;QACR,eAAe;QACf,eAAe;AACf,QAAA,MAAM,EAAE,YAAY;QACpB,aAAa;QACb,aAAa;QACb,KAAK;QACL,YAAY;QACZ,YAAY;QACZ,iBAAiB;QACjB,wBAAwB;KACzB,CAAC;AACJ;;AC1GgB,SAAA,uBAAuB,CAAmC,KAAK,GAAG,IAAI,EAAA;AACpF,IAAA,OAAO,mBAAmB,CAAC;QACzB,QAAQ,EAAE,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC;AACtC,KAAA,CAAC,CAAC;AACL,CAAC;AAEK,SAAU,iBAAiB,CAC/B,aAA+B,EAC/B,OAA6B,EAC7B,cAAiE,EACjE,gBAA6C,EAAA;AAE7C,IAAA,MAAM,YAAY,GAAoB,EAAE,GAAG,sBAAsB,CAAO,aAAa,CAAC,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAC9G,OAAO,aAAa,CAClB,YAAY,EACZ,GAAG,wBAAwB,CAAU,YAAY,EAAE,aAAa,EAAE,OAAO,CAAC,EAC1E,IAAI,cAAc,IAAI,EAAE,CAAC,CAC1B,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAO,aAA+B,EAAA;IACnE,OAAO,aAAa,CAAC,eAAe,CAAC;AACnC,QAAA,GAAG,uBAAuB;AAC1B,QAAA,cAAc,EAAE,SAAS;AACzB,QAAA,mBAAmB,EAAE,EAAE;QACvB,YAAY,EAAE,YAAY,CAAC,IAAI;QAC/B,YAAY,EAAE,YAAY,CAAC,IAAI;AAC/B,QAAA,MAAM,EAAE,SAAS;AAClB,KAAA,CAAC,CAAC;AACL,CAAC;AAED,SAAS,wBAAwB,CAC/B,gBAAiC,EACjC,aAA+B,EAC/B,OAA6B,EAAA;IAE7B,OAAO;QACL,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACzC,QAAA,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,KAAsB,KAC5C,aAAa,CAAC,SAAS,CAAC;AACtB,YAAA,GAAG,KAAK;AACR,YAAA,mBAAmB,EAAE,EAAE;AACvB,YAAA,aAAa,EAAE;gBACb,GAAG,KAAK,CAAC,aAAa;AACtB,gBAAA,IAAI,EAAE,YAAY;AACnB,aAAA;YACD,YAAY,EAAE,YAAY,CAAC,IAAI;AAChC,SAAA,CAAC,CACH;AACD,QAAA,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,KAAsB,EAAE,EAAE,QAAQ,EAAE,MAAM;AACzF,YAAA,GAAG,KAAK;AACR,YAAA,aAAa,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE;AAC/C,YAAA,cAAc,EAAE,SAAS;AAC1B,SAAA,CAAC,CAAC;AACH,QAAA,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,KAAsB,EAAE,EAAE,UAAU,EAAE,MAAM;AACxE,YAAA,GAAG,KAAK;YACR,aAAa,EAAE,EAAE,GAAG,KAAK,CAAC,aAAa,EAAE,IAAI,EAAE,UAAU,EAAE;AAC5D,SAAA,CAAC,CAAC;AACH,QAAA,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,KAAsB,EAAE,EAAE,cAAc,EAAE,MAAM;AAC7F,YAAA,GAAG,KAAK;YACR,cAAc;YACd,aAAa,EAAE,EAAE,GAAG,KAAK,CAAC,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE;AAC9D,SAAA,CAAC,CAAC;AACH,QAAA,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,KAAsB,EAAE,EAAE,gBAAgB,EAAE,MAAM;AACnG,YAAA,GAAG,KAAK;YACR,gBAAgB;YAChB,aAAa,EAAE,EAAE,GAAG,KAAK,CAAC,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE;AAC7D,YAAA,cAAc,EAAE,SAAS;AAC1B,SAAA,CAAC,CAAC;AACH,QAAA,EAAE,CAAC,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC,KAAsB,EAAE,EAAE,MAAM,EAAE,MAAM;AACjG,YAAA,GAAG,KAAK;YACR,MAAM;YACN,aAAa,EAAE,EAAE,GAAG,KAAK,CAAC,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE;AAC9D,SAAA,CAAC,CAAC;AACH,QAAA,EAAE,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC,KAAsB,EAAE,EAAE,mBAAmB,EAAE,MAAM;AACxF,YAAA,GAAG,KAAK;YACR,mBAAmB;AACpB,SAAA,CAAC,CAAC;QACH,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,KAAsB,MAAM;AACrD,YAAA,GAAG,KAAK;YACR,aAAa,EAAE,EAAE,GAAG,KAAK,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE;AACnD,SAAA,CAAC,CAAC;AACH,QAAA,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,KAAsB,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,KAAI;AACnF,YAAA,MAAM,cAAc,GAAG,iBAAiB,CAAC,SAAS,EAAE,aAAa,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC;AAC3F,YAAA,IAAI,cAAc,IAAI,aAAa,CAAC,IAAI,GAAG,cAAc,EAAE;gBACzD,OAAO;AACL,oBAAA,GAAG,KAAK;AACR,oBAAA,aAAa,EAAE;wBACb,GAAG,KAAK,CAAC,aAAa;AACtB,wBAAA,IAAI,EAAE,cAAc;AACrB,qBAAA;oBACD,cAAc;AACd,oBAAA,mBAAmB,EAAE,EAAE;iBACxB,CAAC;AACH,aAAA;AAED,YAAA,OAAO,aAAa,CAAC,MAAM,CAAC,SAAS,EAAE;AACrC,gBAAA,GAAG,KAAK;gBACR,cAAc;AACd,gBAAA,mBAAmB,EAAE,EAAE;AACxB,aAAA,CAAC,CAAC;AACL,SAAC,CAAC;QACF,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,KAAsB,MAAM;AACrD,YAAA,GAAG,KAAK;AACR,YAAA,mBAAmB,EAAE,EAAc;AACpC,SAAA,CAAC,CAAC;AACH,QAAA,GAAG,gCAAgC,CACjC,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,eAAe,EACvB,OAAO,CAAC,eAAe,CACxB;AACD,QAAA,GAAG,gCAAgC,CACjC,SAAS,EACT,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,aAAa,EACrB,OAAO,CAAC,aAAa,CACtB;AACD,QAAA,GAAG,gCAAgC,CACjC,OAAO,CAAC,iBAAiB,EACzB,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,YAAY,EACpB,OAAO,CAAC,YAAY,CACrB;KACF,CAAC;AACJ;;ACxIA;AAMgB,SAAA,mBAAmB,CACjC,aAA+B,EAC/B,YAA4F,EAAA;AAE5F,IAAA,MAAM,MAAM,GAAG,cAAc,CAAC,YAAY,EAAE,aAAa,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,CAAC;AAEpF,IAAA,MAAM,gBAAgB,GAAG,cAAc,CAAC,YAAY,EAAE,KAAK,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;IAEpF,MAAM,iBAAiB,GAAG,cAAc,CACtC,YAAY,EACZ,CAAC,KAAK,MAAsB;QAC1B,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;AACzC,KAAA,CAAC,CACH,CAAC;AAEF,IAAA,MAAM,iBAAiB,GAAG,cAAc,CAAC,YAAY,EAAE,KAAK,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;AAEtF,IAAA,MAAM,UAAU,GAAG,cAAc,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,cAAc,KAAI;QAClG,OAAO,cAAc,GAAG,cAAc,IAAI,IAAI,GAAG,KAAK,CAAC;AACzD,KAAC,CAAC,CAAC;IAEH,MAAM,kBAAkB,GAAG,cAAc,CAAC,MAAM,EAAE,SAAS,IAAG;AAC5D,QAAA,OAAO,SAAS,CAAC;AACnB,KAAC,CAAC,CAAC;AAEH,IAAA,MAAM,iBAAiB,GAAG,cAAc,CAAC,YAAY,EAAE,KAAK,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;AAEtF,IAAA,MAAM,oBAAoB,GAAG,cAAc,CAAC,YAAY,EAAE,KAAK,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;AAE5F,IAAA,MAAM,mBAAmB,GAAG,cAAc,CAAC,YAAY,EAAE,KAAK,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;AAE1F,IAAA,MAAM,oBAAoB,GAAG,cAAc,CAAC,gBAAgB,EAAE,OAAO,IAAI,OAAO,EAAE,IAAI,CAAC,CAAC;AAExF,IAAA,MAAM,sBAAsB,GAAG,cAAc,CAAC,YAAY,EAAE,KAAK,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;AAEhG,IAAA,MAAM,eAAe,GAAG,cAAc,CAAC,YAAY,EAAE,KAAK,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;AAElF,IAAA,MAAM,gBAAgB,GAAG,cAAc,CACrC,sBAAsB,EACtB,cAAc,CAAC,YAAY,EAAE,aAAa,CAAC,YAAY,EAAE,CAAC,cAAc,CAAC,EACzE,CAAC,mBAAmB,EAAE,SAAS,KAC7B,mBAAmB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,kBAAkB,KAAS;AAC1D,QAAA,MAAM,QAAQ,GAAG,SAAS,CAAC,kBAAkB,CAAC,CAAC;AAC/C,QAAA,IAAI,QAAQ,EAAE;AACZ,YAAA,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACpB,SAAA;AACD,QAAA,OAAO,GAAG,CAAC;AACb,KAAC,EAAE,EAAS,CAAC,CAChB,CAAC;AAEF,IAAA,MAAM,kBAAkB,GAAG,cAAc,CACvC,sBAAsB,EACtB,cAAc,CAAC,YAAY,EAAE,aAAa,CAAC,YAAY,EAAE,CAAC,cAAc,CAAC,EACzE,CAAC,mBAAmB,EAAE,SAAS,KAC7B,mBAAmB,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,kBAAkB,KAAI;AAC1D,QAAA,MAAM,QAAQ,GAAG,SAAS,CAAC,kBAAkB,CAAC,CAAC;AAC/C,QAAA,IAAI,QAAQ,EAAE;AACZ,YAAA,QAAQ,CAAC,kBAAkB,CAAC,GAAG,QAAQ,CAAC;AACzC,SAAA;AACD,QAAA,OAAO,QAAQ,CAAC;AAClB,KAAC,EAAE,EAAuB,CAAC,CAC9B,CAAC;AAEF,IAAA,MAAM,eAAe,GAAG,cAAc,CAAC,YAAY,EAAE,KAAK,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;AAElF,IAAA,MAAM,SAAS,GAAG,cAAc,CAAC,YAAY,EAAE,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;IAEtE,MAAM,OAAO,GAAG,cAAc,CAC5B,MAAM,EACN,eAAe,EACf,CAAC,KAAK,EAAE,YAAY,KAAK,CAAC,CAAC,KAAK,IAAI,YAAY,KAAK,YAAY,CAAC,OAAO,CAC1E,CAAC;AAEF,IAAA,MAAM,gBAAgB,GAAG,cAAc,CACrC,sBAAsB,EACtB,kBAAkB,EAClB,eAAe,EACf,CAAC,mBAAmB,EAAE,SAAS,EAAE,YAAY,KAAI;QAC/C,OAAO,mBAAmB,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,IAAI,YAAY,KAAK,YAAY,CAAC,OAAO,CAAC;AACnH,KAAC,CACF,CAAC;AAEF,IAAA,MAAM,gBAAgB,GAAG,cAAc,CAAC,sBAAsB,EAAE,mBAAmB,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAEpH,IAAA,MAAM,cAAc,GAAG,cAAc,CACnC,sBAAsB,EACtB,mBAAmB,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC,CACxD,CAAC;AAEF,IAAA,MAAM,aAAa,GAAG,cAAc,CAClC,gBAAgB,EAChB,UAAU,EACV,kBAAkB,EAClB,CAAC,aAAa,EAAE,UAAU,EAAE,eAAe,KAAI;QAC7C,IAAI,CAAC,aAAa,EAAE;AAClB,YAAA,OAAO,CAAC,CAAC;AACV,SAAA;AAED,QAAA,IAAI,UAAU,EAAE;AACd,YAAA,OAAO,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,IAAI,aAAa,CAAC,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC;AACnF,SAAA;QACD,OAAO,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC;AAC3D,KAAC,CACF,CAAC;IAEF,OAAO;QACL,MAAM;QACN,iBAAiB;QACjB,UAAU;QACV,kBAAkB;QAClB,gBAAgB;QAChB,iBAAiB;QACjB,mBAAmB;QACnB,oBAAoB;QACpB,oBAAoB;QACpB,iBAAiB;QACjB,eAAe;QACf,sBAAsB;QACtB,gBAAgB;QAChB,kBAAkB;QAClB,eAAe;QACf,SAAS;QACT,gBAAgB;QAChB,OAAO;QACP,gBAAgB;QAChB,cAAc;QACd,aAAa;KACd,CAAC;AACJ;;MC/HsB,0BAA0B,CAAA;IAS9C,WACmB,CAAA,cAA8B,EACJ,UAAkB,EAAA;QAD5C,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QACJ,IAAU,CAAA,UAAA,GAAV,UAAU,CAAQ;AAE7D,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;AACjC,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC7C,IAAI,CAAC,UAAU,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;KACtC;IAES,UAAU,GAAA;AAClB,QAAA,OAAO,iBAAiB,CAAU,IAAI,CAAC,UAAU,CAAC,CAAC;KACpD;IAEO,gBAAgB,GAAA;QACtB,OAAO,uBAAuB,EAAK,CAAC;KACrC;IAES,UAAU,GAAA;AAClB,QAAA,MAAM,eAAe,GAAa,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC;QAEzF,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AAC9C,YAAA,MAAM,OAAO,GAAG,iBAAiB,CAAU,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7E,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAC1D,SAAA;KACF;IAES,YAAY,GAAA;QACpB,MAAM,QAAQ,GAAG,qBAAqB,CAAkB,IAAI,CAAC,UAAU,CAAC,CAAC;QACzE,OAAO,mBAAmB,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;KAC1D;;AAvCmB,0BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,gDAWpC,gBAAgB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;2HAXN,0BAA0B,EAAA,CAAA,CAAA;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAD/C,UAAU;;0BAYN,MAAM;2BAAC,gBAAgB,CAAA;;;MChBN,kBAAkB,CAAA;AAiBtC,IAAA,WAAA,CACqB,KAAY,EACd,WAAiC,EACjC,aAAkC,EAAA;QAFhC,IAAK,CAAA,KAAA,GAAL,KAAK,CAAO;QACd,IAAW,CAAA,WAAA,GAAX,WAAW,CAAsB;QACjC,IAAa,CAAA,aAAA,GAAb,aAAa,CAAqB;AAnB5C,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;AAChE,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC;AAC5E,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC;AAC5E,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;AAChE,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;AAC/D,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACjF,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAClF,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAC;AACtF,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC,CAAC;AACpF,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAChF,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAC9E,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAChF,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAChF,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAC9E,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;KAM7E;AAEJ,IAAA,WAAW,CAAC,KAAsD,EAAA;AAChE,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;KAC1D;AAED,IAAA,YAAY,CAAC,KAAuD,EAAA;AAClE,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;KAC3D;AAED,IAAA,UAAU,CAAC,KAAqD,EAAA;AAC9D,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;KACzD;AAED,IAAA,eAAe,CAAC,KAA0D,EAAA;AACxE,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;KAC9D;AAED,IAAA,mBAAmB,CAAC,KAA8D,EAAA;AAChF,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;KAClE;AAED,IAAA,cAAc,CAAC,KAAyD,EAAA;AACtE,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;KAC7D;AAED,IAAA,gBAAgB,CAAC,KAA2D,EAAA;AAC1E,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;KAC/D;AAED,IAAA,uBAAuB,CAAC,KAAkE,EAAA;AACxF,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC;KACtE;AAED,IAAA,aAAa,CAAC,KAAwD,EAAA;AACpE,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;KAC5D;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;KAClD;IAED,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC,CAAC;KACvD;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC,CAAC;KACtD;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC,CAAC;KAC1D;AAED,IAAA,KAAK,CAAC,KAAgD,EAAA;AACpD,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;KACpD;AAED,IAAA,MAAM,CAAC,KAAiD,EAAA;AACtD,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;KACrD;IAED,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC;KACpD;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC;KAC/C;IAED,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC;KAC3D;IAED,wBAAwB,GAAA;AACtB,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,wBAAwB,EAAE,CAAC,CAAC;KAClE;AACF;;AChGe,SAAA,eAAe,CAC7B,WAAmB,EACnB,KAAc,EAAA;AAEd,IAAA,MAAM,OAAO,GAAG,iBAAiB,CAAU,WAAW,CAAC,CAAC;AACxD,IAAA,MAAM,aAAa,GAAG,uBAAuB,CAAI,KAAK,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,iBAAiB,CAAU,aAAa,EAAE,OAAO,CAAC,CAAC;AACnE,IAAA,MAAM,QAAQ,GAAG,qBAAqB,CAAkB,WAAW,CAAC,CAAC;IACrE,MAAM,SAAS,GAAG,mBAAmB,CAAO,aAAa,EAAE,QAAQ,CAAC,CAAC;IAErE,OAAO;QACL,OAAO;AACP,QAAA,OAAO,EAAE,CAAC,KAAsB,EAAE,MAAc,KAAsB,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;QAC5F,SAAS;QACT,aAAa;KACd,CAAC;AACJ;;ACtBA;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"ngdux-list.mjs","sources":["../../../../../../../libs/ngdux/util/store/list/src/lib/+state/abstract-list-effects.ts","../../../../../../../libs/ngdux/util/store/list/src/lib/models/list.model.ts","../../../../../../../libs/ngdux/util/store/list/src/lib/+state/list-actions.ts","../../../../../../../libs/ngdux/util/store/list/src/lib/+state/list-reducer.ts","../../../../../../../libs/ngdux/util/store/list/src/lib/+state/list-selectors.ts","../../../../../../../libs/ngdux/util/store/list/src/lib/+state/abstract-list-state.service.ts","../../../../../../../libs/ngdux/util/store/list/src/lib/+state/abstract-list.facade.ts","../../../../../../../libs/ngdux/util/store/list/src/lib/+state/list-state.ts","../../../../../../../libs/ngdux/util/store/list/src/ngdux-list.ts"],"sourcesContent":["import { ListNotificationService, ListService } from '@ngdux/data-model-common';\r\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\r\nimport { Store, select } from '@ngrx/store';\r\nimport { of } from 'rxjs';\r\nimport { catchError, concatMap, exhaustMap, filter, map, switchMap, tap, withLatestFrom } from 'rxjs/operators';\r\n\r\nimport { ListActions, ListSelectors } from '../models/list.model';\r\n\r\nexport abstract class AbstractListEffects<T, E, S = T> {\r\n texts = {\r\n deleteConfirmationTitle: 'Delete resources',\r\n deleteConfirmationMessage: 'Are you sure to delete the selected resources?'\r\n };\r\n\r\n reload$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(\r\n this.listActions.changePageSize,\r\n this.listActions.changeSorting,\r\n this.listActions.changeFiltering,\r\n this.listActions.changeRequestParams,\r\n this.listActions.initialize,\r\n this.listActions.reset,\r\n this.listActions.changePageNumber,\r\n this.listActions.patchSuccess,\r\n this.listActions.deleteSuccess\r\n ),\r\n map(() => this.listActions.loadPage())\r\n )\r\n );\r\n\r\n loadFirstPage$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(this.listActions.loadFirstPage),\r\n map(() => this.listActions.changePageNumber({ pageNumber: 1 }))\r\n )\r\n );\r\n\r\n loadPreviousPage$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(this.listActions.loadPreviousPage),\r\n withLatestFrom(this.store.pipe(select(this.listSelectors.getCurrentPageNumber))),\r\n filter(([, currentPageNumber]) => currentPageNumber > 1),\r\n map(([, currentPageNumber]) => this.listActions.changePageNumber({ pageNumber: currentPageNumber - 1 }))\r\n )\r\n );\r\n\r\n loadNextPage$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(this.listActions.loadNextPage),\r\n withLatestFrom(\r\n this.store.pipe(select(this.listSelectors.isLastPage)),\r\n this.store.pipe(select(this.listSelectors.getCurrentPageNumber))\r\n ),\r\n filter(([, isLastPage]) => !isLastPage),\r\n map(([, , currentPageNumber]) => this.listActions.changePageNumber({ pageNumber: currentPageNumber + 1 }))\r\n )\r\n );\r\n\r\n changePagingOptions$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(this.listActions.changePagingOptions),\r\n withLatestFrom(this.store.pipe(select(this.listSelectors.getPagingOptions))),\r\n map(([action, pagingOptions]) => {\r\n if (action.pagingOptions.pageSize !== pagingOptions.pageSize) {\r\n return this.listActions.changePageSize({ pageSize: action.pagingOptions.pageSize });\r\n } else {\r\n return this.listActions.changePageNumber({ pageNumber: action.pagingOptions.page });\r\n }\r\n })\r\n )\r\n );\r\n\r\n loadPage$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(this.listActions.loadPage),\r\n withLatestFrom(\r\n this.store.pipe(select(this.listSelectors.getPagingOptions)),\r\n this.store.pipe(select(this.listSelectors.getSortingOptions)),\r\n this.store.pipe(select(this.listSelectors.getFilteringOptions)),\r\n this.store.pipe(select(this.listSelectors.getRequestParameters))\r\n ),\r\n concatMap(([, pagingOptions, sortingOptions, filteringOptions, requestParameters]) => {\r\n return this.service\r\n .loadResources({\r\n pagingOptions,\r\n sortingOptions,\r\n filteringOptions,\r\n requestParameters\r\n })\r\n .pipe(\r\n map(resources =>\r\n this.listActions.loadPageSuccess({\r\n resources,\r\n pagingOptions\r\n })\r\n ),\r\n catchError((errors: E) => of(this.listActions.loadPageFailure({ errors })))\r\n );\r\n })\r\n )\r\n );\r\n\r\n patch$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(this.listActions.patch),\r\n exhaustMap(action => {\r\n if (!this.service.patchResources) {\r\n throw new Error('patchResources not implement in the ListService');\r\n }\r\n\r\n return this.service.patchResources(action.resourceIds, action.resource).pipe(\r\n map(resources => this.listActions.patchSuccess({ resources })),\r\n catchError((errors: E) => of(this.listActions.patchFailure({ errors })))\r\n );\r\n })\r\n )\r\n );\r\n\r\n showRemovalsDialog$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(this.listActions.showRemovalsConfirmation),\r\n switchMap(() => {\r\n if (this.notificationService?.openConfirmationDialog) {\r\n return this.notificationService.openConfirmationDialog({\r\n message: this.texts.deleteConfirmationMessage,\r\n title: this.texts.deleteConfirmationTitle\r\n });\r\n }\r\n\r\n return of(true);\r\n }),\r\n filter(confirmed => confirmed),\r\n withLatestFrom(this.store.pipe(select(this.listSelectors.getSelectedResourceIds))),\r\n map(([, resourceIds]) => this.listActions.delete({ resourceIds }))\r\n )\r\n );\r\n\r\n delete$ = createEffect(() =>\r\n this.actions$.pipe(\r\n ofType(this.listActions.delete),\r\n exhaustMap(({ resourceIds }) => {\r\n if (!this.service.deleteResources) {\r\n throw new Error('deleteResources not implement in the ListService');\r\n }\r\n\r\n return this.service.deleteResources(resourceIds).pipe(\r\n map(() => this.listActions.deleteSuccess({ resourceIds })),\r\n catchError((errors: E) => of(this.listActions.deleteFailure({ errors })))\r\n );\r\n })\r\n )\r\n );\r\n\r\n deleteUsersSuccess$ = createEffect(\r\n () =>\r\n this.actions$.pipe(\r\n ofType(this.listActions.deleteSuccess),\r\n tap(({ resourceIds }) => {\r\n this.notificationService?.onListDelete(resourceIds);\r\n })\r\n ),\r\n { dispatch: false }\r\n );\r\n\r\n errorsHandler$ = createEffect(\r\n () =>\r\n this.actions$.pipe(\r\n ofType(this.listActions.loadPageFailure, this.listActions.deleteFailure, this.listActions.patchFailure),\r\n tap(({ errors }) => {\r\n this.notificationService?.onListErrors(errors);\r\n })\r\n ),\r\n { dispatch: false }\r\n );\r\n\r\n protected constructor(\r\n protected readonly actions$: Actions,\r\n protected readonly store: Store,\r\n protected readonly service: ListService<T, S>,\r\n protected readonly listActions: ListActions<T, E, S>,\r\n protected readonly listSelectors: ListSelectors<S, E>,\r\n protected readonly notificationService?: ListNotificationService<E>\r\n ) {}\r\n}\r\n","/* eslint-disable @typescript-eslint/ban-types */\r\nimport { InjectionToken } from '@angular/core';\r\nimport {\r\n ErrorDto,\r\n FilteringOptions,\r\n PagingOptions,\r\n RequestOptions,\r\n RequestState,\r\n SortingOptions\r\n} from '@ngdux/data-model-common';\r\nimport { ApiRequestState, LoadingState } from '@ngdux/store-common';\r\nimport { EntityState } from '@ngrx/entity';\r\nimport { ActionCreator, MemoizedSelector } from '@ngrx/store';\r\nimport { TypedAction } from '@ngrx/store/src/models';\r\n\r\nexport const LIST_FEATURE_KEY = new InjectionToken<string>('LIST_FEATURE_KEY');\r\n\r\nexport interface ListState<T, E> extends EntityState<T>, RequestOptions, ApiRequestState<E>, LoadingState {\r\n selectedResourceIds: string[];\r\n lastPageNumber?: number;\r\n}\r\n\r\nexport interface ListSelectors<T, E> {\r\n getAll: MemoizedSelector<object, T[]>;\r\n getRequestOptions: MemoizedSelector<object, RequestOptions>;\r\n isLastPage: MemoizedSelector<object, boolean>;\r\n getCurrentPageData: MemoizedSelector<object, T[]>;\r\n getPagingOptions: MemoizedSelector<object, PagingOptions>;\r\n getSortingOptions: MemoizedSelector<object, SortingOptions>;\r\n getFilteringOptions: MemoizedSelector<object, FilteringOptions>;\r\n getRequestParameters: MemoizedSelector<object, Record<string, string> | undefined>;\r\n getCurrentPageNumber: MemoizedSelector<object, number>;\r\n getLastPageNumber: MemoizedSelector<object, number | undefined>;\r\n getLoadingState: MemoizedSelector<object, RequestState>;\r\n getSelectedResourceIds: MemoizedSelector<object, string[]>;\r\n getSelectedItems: MemoizedSelector<object, T[]>;\r\n getSelectionRecord: MemoizedSelector<object, Record<string, T>>;\r\n getRequestState: MemoizedSelector<object, RequestState>;\r\n getErrors: MemoizedSelector<object, E | undefined>;\r\n areSelectedReady: MemoizedSelector<object, boolean>;\r\n isReady: MemoizedSelector<object, boolean>;\r\n isDeleteDisabled: MemoizedSelector<object, boolean>;\r\n isCopyDisabled: MemoizedSelector<object, boolean>;\r\n getTotalCount: MemoizedSelector<object, number>;\r\n}\r\n\r\nexport interface ListActions<Entity, Error, Summary = Entity, Params = Record<string, string>> {\r\n /**\r\n * Set the page size without reloading the list\r\n */\r\n setPageSize: ActionCreator<string, (props: { pageSize: number }) => { pageSize: number } & TypedAction<string>>;\r\n /**\r\n * Set the sorting options without reloading the list\r\n */\r\n setSorting: ActionCreator<\r\n string,\r\n (props: { sortingOptions: SortingOptions }) => { sortingOptions: SortingOptions } & TypedAction<string>\r\n >;\r\n /**\r\n * Set the filtering options without reloading the list\r\n */\r\n setFiltering: ActionCreator<\r\n string,\r\n (props: { filteringOptions: FilteringOptions }) => { filteringOptions: FilteringOptions } & TypedAction<string>\r\n >;\r\n /**\r\n * Set the request parameters without reloading the list\r\n */\r\n setRequestParams: ActionCreator<string, (props: { params: Params }) => { params: Params } & TypedAction<string>>;\r\n\r\n /**\r\n * Change the paging options and reload the list\r\n */\r\n changePagingOptions: ActionCreator<\r\n string,\r\n (props: { pagingOptions: PagingOptions }) => { pagingOptions: PagingOptions } & TypedAction<string>\r\n >;\r\n\r\n /**\r\n * Change the page number and reload the list\r\n */\r\n changePageNumber: ActionCreator<\r\n string,\r\n (props: { pageNumber: number }) => { pageNumber: number } & TypedAction<string>\r\n >;\r\n /**\r\n * Change the page size and reload the list\r\n */\r\n changePageSize: ActionCreator<string, (props: { pageSize: number }) => { pageSize: number } & TypedAction<string>>;\r\n /**\r\n * Change the sorting options and reload the list\r\n */\r\n changeSorting: ActionCreator<\r\n string,\r\n (props: { sortingOptions: SortingOptions }) => { sortingOptions: SortingOptions } & TypedAction<string>\r\n >;\r\n /**\r\n * Change the filtering options and reload the list\r\n */\r\n changeFiltering: ActionCreator<\r\n string,\r\n (props: { filteringOptions: FilteringOptions }) => { filteringOptions: FilteringOptions } & TypedAction<string>\r\n >;\r\n /**\r\n * Change the request parameters and reload the list\r\n */\r\n changeRequestParams: ActionCreator<string, (props: { params: Params }) => { params: Params } & TypedAction<string>>;\r\n\r\n changeSelectedResources: ActionCreator<\r\n string,\r\n (props: { selectedResourceIds: string[] }) => { selectedResourceIds: string[] } & TypedAction<string>\r\n >;\r\n loadPage: ActionCreator<string, () => TypedAction<string>>;\r\n loadPageSuccess: ActionCreator<\r\n string,\r\n (props: {\r\n resources: Summary[];\r\n pagingOptions: PagingOptions;\r\n }) => { resources: Summary[]; pagingOptions: PagingOptions } & TypedAction<string>\r\n >;\r\n loadPageFailure: ActionCreator<string, (props: { errors: Error }) => { errors: Error } & TypedAction<string>>;\r\n delete: ActionCreator<string, (props: { resourceIds: string[] }) => { resourceIds: string[] } & TypedAction<string>>;\r\n deleteSuccess: ActionCreator<\r\n string,\r\n (props: { resourceIds: string[] }) => { resourceIds: string[] } & TypedAction<string>\r\n >;\r\n deleteFailure: ActionCreator<string, (props: { errors: Error }) => { errors: Error } & TypedAction<string>>;\r\n patch: ActionCreator<\r\n string,\r\n (props: {\r\n resourceIds: string[];\r\n resource: Partial<Entity>;\r\n }) => { resourceIds: string[]; resource: Partial<Entity> } & TypedAction<string>\r\n >;\r\n patchSuccess: ActionCreator<\r\n string,\r\n (props: { resources: (Entity | ErrorDto)[] }) => { resources: (Entity | ErrorDto)[] } & TypedAction<string>\r\n >;\r\n patchFailure: ActionCreator<string, (props: { errors: Error }) => { errors: Error } & TypedAction<string>>;\r\n loadNextPage: ActionCreator<string, () => TypedAction<string>>;\r\n\r\n /**\r\n * Remove the current data, set the page number to 1 and deselect resources.\r\n * Keep all the rest, like filteringOptions and sortingOptions\r\n */\r\n initialize: ActionCreator<string, () => TypedAction<string>>;\r\n /**\r\n * Reset to the initial state\r\n */\r\n reset: ActionCreator<string, () => TypedAction<string>>;\r\n loadPreviousPage: ActionCreator<string, () => TypedAction<string>>;\r\n loadFirstPage: ActionCreator<string, () => TypedAction<string>>;\r\n /**\r\n * Reset the request state to idle\r\n */\r\n resetRequestState: ActionCreator<string, () => TypedAction<string>>;\r\n showRemovalsConfirmation: ActionCreator<string, () => TypedAction<string>>;\r\n}\r\n","import { ErrorDto, FilteringOptions, PagingOptions, SortingOptions } from '@ngdux/data-model-common';\r\nimport { createAction, props } from '@ngrx/store';\r\nimport { ListActions } from '../models/list.model';\r\n\r\nexport function createListActions<T, E, S = T, Params = Record<string, string>>(\r\n featureName: string\r\n): ListActions<T, E, S, Params> {\r\n const resetRequestState = createAction(`[${featureName} Page] Reset ${featureName} Request State`);\r\n const initialize = createAction(`[${featureName} Page] Initialize ${featureName}`);\r\n const reset = createAction(`[Organization ${featureName} Page] Reset ${featureName}`);\r\n\r\n const loadNextPage = createAction(`[${featureName} Page] Load Next ${featureName} Page`);\r\n const loadPreviousPage = createAction(`[${featureName} Page] Load Previous ${featureName} Page`);\r\n const loadFirstPage = createAction(`[${featureName} Page] Load First ${featureName} Page`);\r\n\r\n const setPageSize = createAction(`[${featureName} Page] Set ${featureName} Page Size`, props<{ pageSize: number }>());\r\n const setSorting = createAction(\r\n `[${featureName} Page] Set ${featureName} Sorting`,\r\n props<{ sortingOptions: SortingOptions }>()\r\n );\r\n const setFiltering = createAction(\r\n `[${featureName} Page] Set ${featureName} Filtering`,\r\n props<{ filteringOptions: FilteringOptions }>()\r\n );\r\n const setRequestParams = createAction(\r\n `[${featureName} Page] Set ${featureName} Request Params`,\r\n props<{ params: Params }>()\r\n );\r\n\r\n const changePageSize = createAction(\r\n `[${featureName} Page] Change ${featureName} Page Size`,\r\n props<{ pageSize: number }>()\r\n );\r\n\r\n const changePageNumber = createAction(\r\n `[${featureName} Page] Change ${featureName} Page Number`,\r\n props<{ pageNumber: number }>()\r\n );\r\n\r\n const changePagingOptions = createAction(\r\n `[${featureName} Page] Change ${featureName} Page Options`,\r\n props<{ pagingOptions: PagingOptions }>()\r\n );\r\n const changeSorting = createAction(\r\n `[${featureName} Page] Change ${featureName} Sorting`,\r\n props<{ sortingOptions: SortingOptions }>()\r\n );\r\n const changeFiltering = createAction(\r\n `[${featureName} Page] Change ${featureName} Filtering`,\r\n props<{ filteringOptions: FilteringOptions }>()\r\n );\r\n const changeSelectedResources = createAction(\r\n `[${featureName} Page] Change Selected Resources ${featureName}`,\r\n props<{ selectedResourceIds: string[] }>()\r\n );\r\n const changeRequestParams = createAction(\r\n `[${featureName} Page] Change ${featureName} Request Params`,\r\n props<{ params: Params }>()\r\n );\r\n\r\n const loadPage = createAction(`[${featureName} Page] Load ${featureName} Page`);\r\n const loadPageSuccess = createAction(\r\n `[${featureName} Page] Load ${featureName} Page Success`,\r\n props<{ resources: S[]; pagingOptions: PagingOptions }>()\r\n );\r\n const loadPageFailure = createAction(\r\n `[${featureName} Page] Load ${featureName} Page Failure`,\r\n props<{ errors: E }>()\r\n );\r\n\r\n const deleteAction = createAction(`[${featureName} Page] Delete ${featureName}`, props<{ resourceIds: string[] }>());\r\n const deleteSuccess = createAction(\r\n `[${featureName} Page] Delete ${featureName} Success`,\r\n props<{ resourceIds: string[] }>()\r\n );\r\n const deleteFailure = createAction(`[${featureName} Page] Delete ${featureName} Failure`, props<{ errors: E }>());\r\n\r\n const patch = createAction(\r\n `[${featureName} Page] Patch ${featureName}`,\r\n props<{ resourceIds: string[]; resource: Partial<T> }>()\r\n );\r\n const patchSuccess = createAction(\r\n `[${featureName} Page] Patch ${featureName} Success`,\r\n props<{ resources: (T | ErrorDto)[] }>()\r\n );\r\n const patchFailure = createAction(`[${featureName} Page] Patch ${featureName} Failure`, props<{ errors: E }>());\r\n\r\n const showRemovalsConfirmation = createAction(`[${featureName} Page] Show ${featureName} Removal Confirmation`);\r\n\r\n return {\r\n initialize,\r\n reset,\r\n setPageSize,\r\n setSorting,\r\n setFiltering,\r\n setRequestParams,\r\n changePageSize,\r\n changePageNumber,\r\n changePagingOptions,\r\n changeSorting,\r\n changeFiltering,\r\n changeRequestParams,\r\n loadPreviousPage,\r\n loadNextPage,\r\n loadFirstPage,\r\n changeSelectedResources,\r\n loadPage,\r\n loadPageSuccess,\r\n loadPageFailure,\r\n delete: deleteAction,\r\n deleteSuccess,\r\n deleteFailure,\r\n patch,\r\n patchSuccess,\r\n patchFailure,\r\n resetRequestState,\r\n showRemovalsConfirmation\r\n };\r\n}\r\n","import { DEFAULT_PAGE, DEFAULT_REQUEST_OPTIONS, RequestState } from '@ngdux/data-model-common';\r\nimport {\r\n createLoadingStateActionHandlers,\r\n createRequestStateActionHandlers,\r\n getLastPageNumber\r\n} from '@ngdux/store-common';\r\nimport { EntityAdapter, createEntityAdapter } from '@ngrx/entity';\r\nimport { ActionReducer, ReducerTypes, createReducer, on } from '@ngrx/store';\r\nimport { ActionCreator } from '@ngrx/store/src/models';\r\n\r\nimport { ListActions, ListState } from '../models/list.model';\r\n\r\nexport function createListEntityAdapter<T extends { [key: string]: any }>(idKey = 'id'): EntityAdapter<T> {\r\n return createEntityAdapter({\r\n selectId: resource => resource[idKey]\r\n });\r\n}\r\n\r\nexport function createListReducer<T, E, S = T>(\r\n entityAdapter: EntityAdapter<S>,\r\n actions: ListActions<T, E, S>,\r\n actionHandlers?: ReducerTypes<ListState<S, E>, ActionCreator[]>[],\r\n initialListState?: { [key: string]: unknown }\r\n): ActionReducer<ListState<S, E>> {\r\n const initialState: ListState<S, E> = { ...createInitialListState<S, E>(entityAdapter), ...initialListState };\r\n return createReducer<ListState<S, E>>(\r\n initialState,\r\n ...createListActionHandlers<T, E, S>(initialState, entityAdapter, actions),\r\n ...(actionHandlers || [])\r\n );\r\n}\r\n\r\nfunction createInitialListState<T, E>(entityAdapter: EntityAdapter<T>): ListState<T, E> {\r\n return entityAdapter.getInitialState({\r\n ...DEFAULT_REQUEST_OPTIONS,\r\n lastPageNumber: undefined,\r\n selectedResourceIds: [],\r\n loadingState: RequestState.IDLE,\r\n requestState: RequestState.IDLE,\r\n errors: undefined\r\n });\r\n}\r\n\r\nfunction createListActionHandlers<T, E, S>(\r\n initialListState: ListState<S, E>,\r\n entityAdapter: EntityAdapter<S>,\r\n actions: ListActions<T, E, S>\r\n): ReducerTypes<ListState<S, E>, ActionCreator[]>[] {\r\n return [\r\n on(actions.reset, () => initialListState),\r\n on(actions.initialize, (state: ListState<S, E>) =>\r\n entityAdapter.removeAll({\r\n ...state,\r\n selectedResourceIds: [],\r\n pagingOptions: {\r\n ...state.pagingOptions,\r\n page: DEFAULT_PAGE\r\n },\r\n requestState: RequestState.IDLE\r\n })\r\n ),\r\n on(actions.changePageSize, actions.setPageSize, (state: ListState<S, E>, { pageSize }) => ({\r\n ...state,\r\n pagingOptions: { page: DEFAULT_PAGE, pageSize },\r\n lastPageNumber: undefined\r\n })),\r\n on(actions.changePageNumber, (state: ListState<S, E>, { pageNumber }) => ({\r\n ...state,\r\n pagingOptions: { ...state.pagingOptions, page: pageNumber }\r\n })),\r\n on(actions.changeSorting, actions.setSorting, (state: ListState<S, E>, { sortingOptions }) => ({\r\n ...state,\r\n sortingOptions,\r\n pagingOptions: { ...state.pagingOptions, page: DEFAULT_PAGE }\r\n })),\r\n on(actions.changeFiltering, actions.setFiltering, (state: ListState<S, E>, { filteringOptions }) => ({\r\n ...state,\r\n filteringOptions,\r\n pagingOptions: { ...state.pagingOptions, page: DEFAULT_PAGE },\r\n lastPageNumber: undefined\r\n })),\r\n on(actions.changeRequestParams, actions.setRequestParams, (state: ListState<S, E>, { params }) => ({\r\n ...state,\r\n params,\r\n pagingOptions: { ...state.pagingOptions, page: DEFAULT_PAGE }\r\n })),\r\n on(actions.changeSelectedResources, (state: ListState<S, E>, { selectedResourceIds }) => ({\r\n ...state,\r\n selectedResourceIds\r\n })),\r\n on(actions.loadFirstPage, (state: ListState<S, E>) => ({\r\n ...state,\r\n pagingOptions: { ...state.pagingOptions, page: 1 }\r\n })),\r\n on(actions.loadPageSuccess, (state: ListState<S, E>, { resources, pagingOptions }) => {\r\n const lastPageNumber = getLastPageNumber(resources, pagingOptions) || state.lastPageNumber;\r\n if (lastPageNumber && pagingOptions.page > lastPageNumber) {\r\n return {\r\n ...state,\r\n pagingOptions: {\r\n ...state.pagingOptions,\r\n page: lastPageNumber\r\n },\r\n lastPageNumber,\r\n selectedResourceIds: []\r\n };\r\n }\r\n\r\n return entityAdapter.setAll(resources, {\r\n ...state,\r\n lastPageNumber,\r\n selectedResourceIds: []\r\n });\r\n }),\r\n on(actions.deleteSuccess, (state: ListState<S, E>) => ({\r\n ...state,\r\n selectedResourceIds: [] as string[]\r\n })),\r\n ...createLoadingStateActionHandlers<ListState<S, E>>(\r\n actions.loadPage,\r\n actions.loadPageSuccess,\r\n actions.loadPageFailure\r\n ),\r\n ...createRequestStateActionHandlers<ListState<S, E>, E>(\r\n undefined,\r\n actions.delete,\r\n actions.deleteSuccess,\r\n actions.deleteFailure\r\n ),\r\n ...createRequestStateActionHandlers<ListState<S, E>, E>(\r\n actions.resetRequestState,\r\n actions.patch,\r\n actions.patchSuccess,\r\n actions.patchFailure\r\n )\r\n ];\r\n}\r\n","/* eslint-disable @typescript-eslint/ban-types */\r\nimport { RequestOptions, RequestState } from '@ngdux/data-model-common';\r\nimport { EntityAdapter } from '@ngrx/entity';\r\nimport { DefaultProjectorFn, MemoizedSelector, createSelector } from '@ngrx/store';\r\nimport { ListSelectors, ListState } from '../models/list.model';\r\n\r\nexport function createListSelectors<T, E>(\r\n entityAdapter: EntityAdapter<T>,\r\n getListState: MemoizedSelector<object, ListState<T, E>, DefaultProjectorFn<ListState<T, E>>>\r\n): ListSelectors<T, E> {\r\n const getAll = createSelector(getListState, entityAdapter.getSelectors().selectAll);\r\n\r\n const getPagingOptions = createSelector(getListState, state => state.pagingOptions);\r\n\r\n const getRequestOptions = createSelector(\r\n getListState,\r\n (state): RequestOptions => ({\r\n pagingOptions: state.pagingOptions,\r\n sortingOptions: state.sortingOptions,\r\n filteringOptions: state.filteringOptions\r\n })\r\n );\r\n\r\n const getLastPageNumber = createSelector(getListState, state => state.lastPageNumber);\r\n\r\n const isLastPage = createSelector(getPagingOptions, getLastPageNumber, ({ page }, lastPageNumber) => {\r\n return lastPageNumber ? lastPageNumber <= page : false;\r\n });\r\n\r\n const getCurrentPageData = createSelector(getAll, resources => {\r\n return resources;\r\n });\r\n\r\n const getSortingOptions = createSelector(getListState, state => state.sortingOptions);\r\n\r\n const getRequestParameters = createSelector(getListState, state => state.requestParameters);\r\n\r\n const getFilteringOptions = createSelector(getListState, state => state.filteringOptions);\r\n\r\n const getCurrentPageNumber = createSelector(getPagingOptions, options => options?.page);\r\n\r\n const getSelectedResourceIds = createSelector(getListState, state => state.selectedResourceIds);\r\n\r\n const getLoadingState = createSelector(getListState, state => state.loadingState);\r\n\r\n const getSelectedItems = createSelector(\r\n getSelectedResourceIds,\r\n createSelector(getListState, entityAdapter.getSelectors().selectEntities),\r\n (selectedResourceIds, resources): T[] =>\r\n selectedResourceIds.reduce((acc, selectedResourceId): T[] => {\r\n const resource = resources[selectedResourceId];\r\n if (resource) {\r\n acc.push(resource);\r\n }\r\n return acc;\r\n }, [] as T[])\r\n );\r\n\r\n const getSelectionRecord = createSelector(\r\n getSelectedResourceIds,\r\n createSelector(getListState, entityAdapter.getSelectors().selectEntities),\r\n (selectedResourceIds, resources): Record<string, T> =>\r\n selectedResourceIds.reduce((selected, selectedResourceId) => {\r\n const resource = resources[selectedResourceId];\r\n if (resource) {\r\n selected[selectedResourceId] = resource;\r\n }\r\n return selected;\r\n }, {} as Record<string, T>)\r\n );\r\n\r\n const getRequestState = createSelector(getListState, state => state.requestState);\r\n\r\n const getErrors = createSelector(getListState, state => state.errors);\r\n\r\n const isReady = createSelector(\r\n getAll,\r\n getLoadingState,\r\n (users, loadingState) => !!users && loadingState === RequestState.SUCCESS\r\n );\r\n\r\n const areSelectedReady = createSelector(\r\n getSelectedResourceIds,\r\n getSelectionRecord,\r\n getLoadingState,\r\n (selectedResourceIds, resources, loadingState) => {\r\n return selectedResourceIds.every(resourceId => !!resources[resourceId]) && loadingState === RequestState.SUCCESS;\r\n }\r\n );\r\n\r\n const isDeleteDisabled = createSelector(getSelectedResourceIds, selectedResourceIds => !selectedResourceIds.length);\r\n\r\n const isCopyDisabled = createSelector(\r\n getSelectedResourceIds,\r\n selectedResourceIds => selectedResourceIds.length !== 1\r\n );\r\n\r\n const getTotalCount = createSelector(\r\n getPagingOptions,\r\n isLastPage,\r\n getCurrentPageData,\r\n (pagingOptions, isLastPage, currentPageData) => {\r\n if (!pagingOptions) {\r\n return 0;\r\n }\r\n\r\n if (isLastPage) {\r\n return (pagingOptions.page - 1) * pagingOptions.pageSize + currentPageData.length;\r\n }\r\n return (pagingOptions.page + 1) * pagingOptions.pageSize;\r\n }\r\n );\r\n\r\n return {\r\n getAll,\r\n getRequestOptions,\r\n isLastPage,\r\n getCurrentPageData,\r\n getPagingOptions,\r\n getSortingOptions,\r\n getFilteringOptions,\r\n getRequestParameters,\r\n getCurrentPageNumber,\r\n getLastPageNumber,\r\n getLoadingState,\r\n getSelectedResourceIds,\r\n getSelectedItems,\r\n getSelectionRecord,\r\n getRequestState,\r\n getErrors,\r\n areSelectedReady,\r\n isReady,\r\n isDeleteDisabled,\r\n isCopyDisabled,\r\n getTotalCount\r\n };\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { EntityAdapter } from '@ngrx/entity';\r\nimport { ReducerManager, createFeatureSelector } from '@ngrx/store';\r\nimport { LIST_FEATURE_KEY, ListActions, ListSelectors, ListState } from '../models/list.model';\r\nimport { createListActions } from './list-actions';\r\nimport { createListEntityAdapter, createListReducer } from './list-reducer';\r\nimport { createListSelectors } from './list-selectors';\r\n\r\n@Injectable()\r\nexport abstract class AbstractListReducerManager<\r\n T extends { [key: string]: any },\r\n E,\r\n S extends { [key: string]: any } = T\r\n> {\r\n actions: ListActions<T, E, S>;\r\n selectors: ListSelectors<S, E>;\r\n private entityAdapter: EntityAdapter<S>;\r\n\r\n constructor(\r\n private readonly reducerManager: ReducerManager,\r\n @Inject(LIST_FEATURE_KEY) private readonly featureKey: string\r\n ) {\r\n this.actions = this.getActions();\r\n this.entityAdapter = this.getEntityAdapter();\r\n this.addReducer();\r\n this.selectors = this.getSelectors();\r\n }\r\n\r\n protected getActions() {\r\n return createListActions<T, E, S>(this.featureKey);\r\n }\r\n\r\n private getEntityAdapter() {\r\n return createListEntityAdapter<S>();\r\n }\r\n\r\n protected addReducer() {\r\n const currentReducers: string[] = Object.keys(this.reducerManager.currentReducers || {});\r\n\r\n if (!currentReducers.includes(this.featureKey)) {\r\n const reducer = createListReducer<T, E, S>(this.entityAdapter, this.actions);\r\n this.reducerManager.addReducer(this.featureKey, reducer);\r\n }\r\n }\r\n\r\n protected getSelectors() {\r\n const getState = createFeatureSelector<ListState<S, E>>(this.featureKey);\r\n return createListSelectors(this.entityAdapter, getState);\r\n }\r\n}\r\n","import { ActionPayload } from '@ngdux/store-common';\r\nimport { select, Store } from '@ngrx/store';\r\nimport { ListActions, ListSelectors } from '../models/list.model';\r\n\r\nexport abstract class AbstractListFacade<T, E, S = T> {\r\n readonly resources$ = this.store.pipe(select(this.listSelectors.getAll));\r\n readonly loadingState$ = this.store.pipe(select(this.listSelectors.getLoadingState));\r\n readonly requestState$ = this.store.pipe(select(this.listSelectors.getRequestState));\r\n readonly errors$ = this.store.pipe(select(this.listSelectors.getErrors));\r\n readonly isReady$ = this.store.pipe(select(this.listSelectors.isReady));\r\n readonly areSelectedReady$ = this.store.pipe(select(this.listSelectors.areSelectedReady));\r\n readonly currentPageData$ = this.store.pipe(select(this.listSelectors.getCurrentPageData));\r\n readonly currentPageNumber$ = this.store.pipe(select(this.listSelectors.getCurrentPageNumber));\r\n readonly filteringOptions$ = this.store.pipe(select(this.listSelectors.getFilteringOptions));\r\n readonly requestParameters$ = this.store.pipe(select(this.listSelectors.getRequestParameters));\r\n readonly lastPageNumber$ = this.store.pipe(select(this.listSelectors.getLastPageNumber));\r\n readonly pagingOptions$ = this.store.pipe(select(this.listSelectors.getPagingOptions));\r\n readonly requestOptions$ = this.store.pipe(select(this.listSelectors.getRequestOptions));\r\n readonly sortingOptions$ = this.store.pipe(select(this.listSelectors.getSortingOptions));\r\n readonly selectedItems$ = this.store.pipe(select(this.listSelectors.getSelectedItems));\r\n readonly totalCount$ = this.store.pipe(select(this.listSelectors.getTotalCount));\r\n\r\n constructor(\r\n protected readonly store: Store,\r\n private readonly listActions: ListActions<T, E, S>,\r\n private readonly listSelectors: ListSelectors<S, E>\r\n ) {}\r\n\r\n setPageSize(props: ActionPayload<ListActions<T, E>['setPageSize']>): void {\r\n this.store.dispatch(this.listActions.setPageSize(props));\r\n }\r\n\r\n setFiltering(props: ActionPayload<ListActions<T, E>['setFiltering']>): void {\r\n this.store.dispatch(this.listActions.setFiltering(props));\r\n }\r\n\r\n setSorting(props: ActionPayload<ListActions<T, E>['setSorting']>): void {\r\n this.store.dispatch(this.listActions.setSorting(props));\r\n }\r\n\r\n setRequestParameters(props: ActionPayload<ListActions<T, E>['setRequestParams']>) {\r\n this.store.dispatch(this.listActions.setRequestParams(props));\r\n }\r\n\r\n changeFiltering(props: ActionPayload<ListActions<T, E>['changeFiltering']>): void {\r\n this.store.dispatch(this.listActions.changeFiltering(props));\r\n }\r\n\r\n changePagingOptions(props: ActionPayload<ListActions<T, E>['changePagingOptions']>): void {\r\n this.store.dispatch(this.listActions.changePagingOptions(props));\r\n }\r\n\r\n changePageSize(props: ActionPayload<ListActions<T, E>['changePageSize']>): void {\r\n this.store.dispatch(this.listActions.changePageSize(props));\r\n }\r\n\r\n changePageNumber(props: ActionPayload<ListActions<T, E>['changePageNumber']>): void {\r\n this.store.dispatch(this.listActions.changePageNumber(props));\r\n }\r\n\r\n changeSelectedResources(props: ActionPayload<ListActions<T, E>['changeSelectedResources']>): void {\r\n this.store.dispatch(this.listActions.changeSelectedResources(props));\r\n }\r\n\r\n changeSorting(props: ActionPayload<ListActions<T, E>['changeSorting']>): void {\r\n this.store.dispatch(this.listActions.changeSorting(props));\r\n }\r\n\r\n changeRequestParams(props: ActionPayload<ListActions<T, E>['changeRequestParams']>): void {\r\n this.store.dispatch(this.listActions.changeRequestParams(props));\r\n }\r\n\r\n loadPage(): void {\r\n this.store.dispatch(this.listActions.loadPage());\r\n }\r\n\r\n loadFirstPage(): void {\r\n this.store.dispatch(this.listActions.loadFirstPage());\r\n }\r\n\r\n loadNextPage(): void {\r\n this.store.dispatch(this.listActions.loadNextPage());\r\n }\r\n\r\n loadPreviousPage(): void {\r\n this.store.dispatch(this.listActions.loadPreviousPage());\r\n }\r\n\r\n patch(props: ActionPayload<ListActions<T, E>['patch']>): void {\r\n this.store.dispatch(this.listActions.patch(props));\r\n }\r\n\r\n delete(props: ActionPayload<ListActions<T, E>['delete']>): void {\r\n this.store.dispatch(this.listActions.delete(props));\r\n }\r\n\r\n initialize(): void {\r\n this.store.dispatch(this.listActions.initialize());\r\n }\r\n\r\n reinitialize(): void {\r\n this.store.dispatch(this.listActions.reset());\r\n }\r\n\r\n resetRequestState(): void {\r\n this.store.dispatch(this.listActions.resetRequestState());\r\n }\r\n\r\n showRemovalsConfirmation(): void {\r\n this.store.dispatch(this.listActions.showRemovalsConfirmation());\r\n }\r\n}\r\n","import { Action, createFeatureSelector } from '@ngrx/store';\r\nimport { ListState } from '../models/list.model';\r\nimport { createListActions } from './list-actions';\r\nimport { createListEntityAdapter, createListReducer } from './list-reducer';\r\nimport { createListSelectors } from './list-selectors';\r\n\r\nexport function createListState<T extends { [key: string]: any }, E, S extends { [key: string]: any } = T>(\r\n featureName: string,\r\n idKey?: string\r\n) {\r\n const actions = createListActions<T, E, S>(featureName);\r\n const entityAdapter = createListEntityAdapter<S>(idKey);\r\n const reducer = createListReducer<T, E, S>(entityAdapter, actions);\r\n const getState = createFeatureSelector<ListState<S, E>>(featureName);\r\n const selectors = createListSelectors<S, E>(entityAdapter, getState);\r\n\r\n return {\r\n actions,\r\n reducer: (state: ListState<S, E>, action: Action): ListState<S, E> => reducer(state, action),\r\n selectors,\r\n entityAdapter\r\n };\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@ export declare abstract class AbstractListFacade<T, E, S = T> {
|
|
|
14
14
|
readonly currentPageData$: import("rxjs").Observable<S[]>;
|
|
15
15
|
readonly currentPageNumber$: import("rxjs").Observable<number>;
|
|
16
16
|
readonly filteringOptions$: import("rxjs").Observable<import("@ngdux/data-model-common").FilteringOptions>;
|
|
17
|
+
readonly requestParameters$: import("rxjs").Observable<Record<string, string> | undefined>;
|
|
17
18
|
readonly lastPageNumber$: import("rxjs").Observable<number | undefined>;
|
|
18
19
|
readonly pagingOptions$: import("rxjs").Observable<import("@ngdux/data-model-common").PagingOptions>;
|
|
19
20
|
readonly requestOptions$: import("rxjs").Observable<import("@ngdux/data-model-common").RequestOptions>;
|
|
@@ -24,12 +25,14 @@ export declare abstract class AbstractListFacade<T, E, S = T> {
|
|
|
24
25
|
setPageSize(props: ActionPayload<ListActions<T, E>['setPageSize']>): void;
|
|
25
26
|
setFiltering(props: ActionPayload<ListActions<T, E>['setFiltering']>): void;
|
|
26
27
|
setSorting(props: ActionPayload<ListActions<T, E>['setSorting']>): void;
|
|
28
|
+
setRequestParameters(props: ActionPayload<ListActions<T, E>['setRequestParams']>): void;
|
|
27
29
|
changeFiltering(props: ActionPayload<ListActions<T, E>['changeFiltering']>): void;
|
|
28
30
|
changePagingOptions(props: ActionPayload<ListActions<T, E>['changePagingOptions']>): void;
|
|
29
31
|
changePageSize(props: ActionPayload<ListActions<T, E>['changePageSize']>): void;
|
|
30
32
|
changePageNumber(props: ActionPayload<ListActions<T, E>['changePageNumber']>): void;
|
|
31
33
|
changeSelectedResources(props: ActionPayload<ListActions<T, E>['changeSelectedResources']>): void;
|
|
32
34
|
changeSorting(props: ActionPayload<ListActions<T, E>['changeSorting']>): void;
|
|
35
|
+
changeRequestParams(props: ActionPayload<ListActions<T, E>['changeRequestParams']>): void;
|
|
33
36
|
loadPage(): void;
|
|
34
37
|
loadFirstPage(): void;
|
|
35
38
|
loadNextPage(): void;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ngdux/list",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.1",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git@github.com:allanartuso/ngdux.git",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
},
|
|
16
16
|
"default": {
|
|
17
17
|
"name": "@ngdux/list",
|
|
18
|
-
"version": "1.
|
|
18
|
+
"version": "1.3.0",
|
|
19
19
|
"repository": {
|
|
20
20
|
"type": "git",
|
|
21
21
|
"url": "git@github.com:allanartuso/ngdux.git",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
},
|
|
31
31
|
"default": {
|
|
32
32
|
"name": "@ngdux/list",
|
|
33
|
-
"version": "1.2.
|
|
33
|
+
"version": "1.2.1",
|
|
34
34
|
"repository": {
|
|
35
35
|
"type": "git",
|
|
36
36
|
"url": "git@github.com:allanartuso/ngdux.git",
|
|
@@ -45,27 +45,43 @@
|
|
|
45
45
|
},
|
|
46
46
|
"default": {
|
|
47
47
|
"name": "@ngdux/list",
|
|
48
|
-
"version": "1.
|
|
48
|
+
"version": "1.2.0",
|
|
49
49
|
"repository": {
|
|
50
50
|
"type": "git",
|
|
51
51
|
"url": "git@github.com:allanartuso/ngdux.git",
|
|
52
52
|
"directory": "/libs/ngdux/util/store/list"
|
|
53
53
|
},
|
|
54
54
|
"homepage": "https://github.com/allanartuso/ngdux/tree/master/libs/ngdux/util/store/list#readme",
|
|
55
|
+
"peerDependencies": {
|
|
56
|
+
"@ngdux/data-model-common": "^1.0.0",
|
|
57
|
+
"@angular/core": "^15.0.0",
|
|
58
|
+
"@ngdux/store-common": "^1.0.0",
|
|
59
|
+
"@ngrx/entity": "^15.0.0"
|
|
60
|
+
},
|
|
55
61
|
"default": {
|
|
56
62
|
"name": "@ngdux/list",
|
|
63
|
+
"version": "1.1.1",
|
|
57
64
|
"repository": {
|
|
58
65
|
"type": "git",
|
|
59
66
|
"url": "git@github.com:allanartuso/ngdux.git",
|
|
60
67
|
"directory": "/libs/ngdux/util/store/list"
|
|
61
68
|
},
|
|
62
|
-
"homepage": "https://github.com/allanartuso/ngdux/tree/master/libs/ngdux/util/store/list#readme"
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
+
"homepage": "https://github.com/allanartuso/ngdux/tree/master/libs/ngdux/util/store/list#readme",
|
|
70
|
+
"default": {
|
|
71
|
+
"name": "@ngdux/list",
|
|
72
|
+
"repository": {
|
|
73
|
+
"type": "git",
|
|
74
|
+
"url": "git@github.com:allanartuso/ngdux.git",
|
|
75
|
+
"directory": "/libs/ngdux/util/store/list"
|
|
76
|
+
},
|
|
77
|
+
"homepage": "https://github.com/allanartuso/ngdux/tree/master/libs/ngdux/util/store/list#readme"
|
|
78
|
+
},
|
|
79
|
+
"peerDependencies": {
|
|
80
|
+
"@ngdux/data-model-common": "^1.0.0",
|
|
81
|
+
"@angular/core": "^15.0.0",
|
|
82
|
+
"@ngdux/store-common": "^1.0.0",
|
|
83
|
+
"@ngrx/entity": "^15.0.0"
|
|
84
|
+
}
|
|
69
85
|
}
|
|
70
86
|
}
|
|
71
87
|
}
|