@ngdux/list 1.4.0 → 3.0.0

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.
Files changed (39) hide show
  1. package/{esm2020 → esm2022}/index.mjs +11 -11
  2. package/{esm2020 → esm2022}/lib/+state/effects.mjs +23 -23
  3. package/esm2022/lib/+state/state.service.mjs +55 -0
  4. package/esm2022/lib/models/list.model.mjs +7 -0
  5. package/{esm2020 → esm2022}/lib/ngdux-list-state.module.mjs +53 -53
  6. package/{esm2020 → esm2022}/lib/services/list-notification-service.mjs +21 -21
  7. package/esm2022/lib/state-generator/abstract-list-effects.mjs +50 -0
  8. package/esm2022/lib/state-generator/abstract-list-state.service.mjs +44 -0
  9. package/{esm2020 → esm2022}/lib/state-generator/abstract-list.facade.mjs +85 -91
  10. package/{esm2020 → esm2022}/lib/state-generator/list-actions.mjs +58 -63
  11. package/esm2022/lib/state-generator/list-reducer.mjs +104 -0
  12. package/esm2022/lib/state-generator/list-selectors.mjs +80 -0
  13. package/{esm2020 → esm2022}/lib/state-generator/list-state.mjs +17 -17
  14. package/{esm2020 → esm2022}/ngdux-list.mjs +4 -4
  15. package/{fesm2020 → fesm2022}/ngdux-list.mjs +523 -550
  16. package/fesm2022/ngdux-list.mjs.map +1 -0
  17. package/index.d.ts +11 -11
  18. package/lib/+state/effects.d.ts +14 -14
  19. package/lib/+state/state.service.d.ts +22 -22
  20. package/lib/models/list.model.d.ts +191 -195
  21. package/lib/ngdux-list-state.module.d.ts +23 -23
  22. package/lib/services/list-notification-service.d.ts +13 -13
  23. package/lib/state-generator/abstract-list-effects.d.ts +49 -59
  24. package/lib/state-generator/abstract-list-state.service.d.ts +21 -21
  25. package/lib/state-generator/abstract-list.facade.d.ts +45 -49
  26. package/lib/state-generator/list-actions.d.ts +2 -2
  27. package/lib/state-generator/list-reducer.d.ts +10 -10
  28. package/lib/state-generator/list-selectors.d.ts +4 -4
  29. package/lib/state-generator/list-state.d.ts +12 -12
  30. package/package.json +11 -120
  31. package/esm2020/lib/+state/state.service.mjs +0 -55
  32. package/esm2020/lib/models/list.model.mjs +0 -7
  33. package/esm2020/lib/state-generator/abstract-list-effects.mjs +0 -66
  34. package/esm2020/lib/state-generator/abstract-list-state.service.mjs +0 -44
  35. package/esm2020/lib/state-generator/list-reducer.mjs +0 -104
  36. package/esm2020/lib/state-generator/list-selectors.mjs +0 -80
  37. package/fesm2015/ngdux-list.mjs +0 -537
  38. package/fesm2015/ngdux-list.mjs.map +0 -1
  39. package/fesm2020/ngdux-list.mjs.map +0 -1
@@ -1,12 +1,12 @@
1
- export { RequestState } from '@ngdux/data-model-common';
2
- export { ListStateService } from './lib/+state/state.service';
3
- export * from './lib/models/list.model';
4
- export * from './lib/ngdux-list-state.module';
5
- export * from './lib/state-generator/abstract-list-effects';
6
- export * from './lib/state-generator/abstract-list-state.service';
7
- export * from './lib/state-generator/abstract-list.facade';
8
- export * from './lib/state-generator/list-actions';
9
- export * from './lib/state-generator/list-reducer';
10
- export * from './lib/state-generator/list-selectors';
11
- export * from './lib/state-generator/list-state';
1
+ export { RequestState } from '@ngdux/data-model-common';
2
+ export { ListStateService } from './lib/+state/state.service';
3
+ export * from './lib/models/list.model';
4
+ export * from './lib/ngdux-list-state.module';
5
+ export * from './lib/state-generator/abstract-list-effects';
6
+ export * from './lib/state-generator/abstract-list-state.service';
7
+ export * from './lib/state-generator/abstract-list.facade';
8
+ export * from './lib/state-generator/list-actions';
9
+ export * from './lib/state-generator/list-reducer';
10
+ export * from './lib/state-generator/list-selectors';
11
+ export * from './lib/state-generator/list-state';
12
12
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nZHV4L3V0aWwvc3RvcmUvbGlzdC9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF3RCxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxrQ0FBa0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IExpc3ROb3RpZmljYXRpb25TZXJ2aWNlLCBMaXN0U2VydmljZSwgUmVxdWVzdE9wdGlvbnMsIFJlcXVlc3RTdGF0ZSB9IGZyb20gJ0BuZ2R1eC9kYXRhLW1vZGVsLWNvbW1vbic7XHJcbmV4cG9ydCB7IExpc3RTdGF0ZVNlcnZpY2UgfSBmcm9tICcuL2xpYi8rc3RhdGUvc3RhdGUuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9saXN0Lm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbmdkdXgtbGlzdC1zdGF0ZS5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zdGF0ZS1nZW5lcmF0b3IvYWJzdHJhY3QtbGlzdC1lZmZlY3RzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RhdGUtZ2VuZXJhdG9yL2Fic3RyYWN0LWxpc3Qtc3RhdGUuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N0YXRlLWdlbmVyYXRvci9hYnN0cmFjdC1saXN0LmZhY2FkZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N0YXRlLWdlbmVyYXRvci9saXN0LWFjdGlvbnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zdGF0ZS1nZW5lcmF0b3IvbGlzdC1yZWR1Y2VyJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RhdGUtZ2VuZXJhdG9yL2xpc3Qtc2VsZWN0b3JzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RhdGUtZ2VuZXJhdG9yL2xpc3Qtc3RhdGUnO1xyXG4iXX0=
@@ -1,23 +1,23 @@
1
- import { __decorate, __metadata, __param } from "tslib";
2
- import { Optional } from '@angular/core';
3
- import { Actions } from '@ngrx/effects';
4
- import { Store } from '@ngrx/store';
5
- import { AbstractListEffects } from '../state-generator/abstract-list-effects';
6
- import { ListStateService } from './state.service';
7
- let ListEffects = class ListEffects extends AbstractListEffects {
8
- constructor(actions$, store, listStateService, featureKey, service, notificationService) {
9
- super(actions$, store, service, listStateService.getFeatureActions(featureKey), listStateService.getFeatureSelectors(featureKey), notificationService);
10
- this.featureKey = featureKey;
11
- }
12
- ngrxOnIdentifyEffects() {
13
- return this.featureKey;
14
- }
15
- };
16
- ListEffects = __decorate([
17
- __param(5, Optional()),
18
- __metadata("design:paramtypes", [Actions,
19
- Store,
20
- ListStateService, String, Object, Object])
21
- ], ListEffects);
22
- export { ListEffects };
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWZmZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmdkdXgvdXRpbC9zdG9yZS9saXN0L3NyYy9saWIvK3N0YXRlL2VmZmVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLE9BQU8sRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU1QyxJQUFNLFdBQVcsR0FBakIsTUFBTSxXQU1YLFNBQVEsbUJBQXdDO0lBR2hELFlBQ0UsUUFBaUIsRUFDakIsS0FBWSxFQUNaLGdCQUF1RCxFQUN0QyxVQUFrQixFQUNuQyxPQUFrQyxFQUN0QixtQkFBb0Q7UUFFaEUsS0FBSyxDQUNILFFBQVEsRUFDUixLQUFLLEVBQ0wsT0FBTyxFQUNQLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxFQUM5QyxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsRUFDaEQsbUJBQW1CLENBQ3BCLENBQUM7UUFYZSxlQUFVLEdBQVYsVUFBVSxDQUFRO0lBWXJDLENBQUM7SUFFRCxxQkFBcUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7Q0FDRixDQUFBO0FBOUJZLFdBQVc7SUFlbkIsV0FBQSxRQUFRLEVBQUUsQ0FBQTtxQ0FMRCxPQUFPO1FBQ1YsS0FBSztRQUNNLGdCQUFnQjtHQVp6QixXQUFXLENBOEJ2QjtTQTlCWSxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTGlzdE5vdGlmaWNhdGlvblNlcnZpY2UsIExpc3RTZXJ2aWNlIH0gZnJvbSAnQG5nZHV4L2RhdGEtbW9kZWwtY29tbW9uJztcclxuaW1wb3J0IHsgQWN0aW9ucywgT25JZGVudGlmeUVmZmVjdHMgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcclxuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XHJcbmltcG9ydCB7IEFic3RyYWN0TGlzdEVmZmVjdHMgfSBmcm9tICcuLi9zdGF0ZS1nZW5lcmF0b3IvYWJzdHJhY3QtbGlzdC1lZmZlY3RzJztcclxuaW1wb3J0IHsgTGlzdFN0YXRlU2VydmljZSB9IGZyb20gJy4vc3RhdGUuc2VydmljZSc7XHJcblxyXG5leHBvcnQgY2xhc3MgTGlzdEVmZmVjdHM8XHJcbiAgICBUIGV4dGVuZHMgeyBba2V5OiBzdHJpbmddOiBhbnkgfSxcclxuICAgIEVycm9yID0gdW5rbm93bixcclxuICAgIFMgZXh0ZW5kcyB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0gVCxcclxuICAgIFBhcmFtcyA9IFJlY29yZDxzdHJpbmcsIHN0cmluZz5cclxuICA+XHJcbiAgZXh0ZW5kcyBBYnN0cmFjdExpc3RFZmZlY3RzPFQsIEVycm9yLCBTLCBQYXJhbXM+XHJcbiAgaW1wbGVtZW50cyBPbklkZW50aWZ5RWZmZWN0c1xyXG57XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBhY3Rpb25zJDogQWN0aW9ucyxcclxuICAgIHN0b3JlOiBTdG9yZSxcclxuICAgIGxpc3RTdGF0ZVNlcnZpY2U6IExpc3RTdGF0ZVNlcnZpY2U8VCwgRXJyb3IsIFMsIFBhcmFtcz4sXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZlYXR1cmVLZXk6IHN0cmluZyxcclxuICAgIHNlcnZpY2U6IExpc3RTZXJ2aWNlPFQsIFMsIFBhcmFtcz4sXHJcbiAgICBAT3B0aW9uYWwoKSBub3RpZmljYXRpb25TZXJ2aWNlPzogTGlzdE5vdGlmaWNhdGlvblNlcnZpY2U8RXJyb3I+XHJcbiAgKSB7XHJcbiAgICBzdXBlcihcclxuICAgICAgYWN0aW9ucyQsXHJcbiAgICAgIHN0b3JlLFxyXG4gICAgICBzZXJ2aWNlLFxyXG4gICAgICBsaXN0U3RhdGVTZXJ2aWNlLmdldEZlYXR1cmVBY3Rpb25zKGZlYXR1cmVLZXkpLFxyXG4gICAgICBsaXN0U3RhdGVTZXJ2aWNlLmdldEZlYXR1cmVTZWxlY3RvcnMoZmVhdHVyZUtleSksXHJcbiAgICAgIG5vdGlmaWNhdGlvblNlcnZpY2VcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBuZ3J4T25JZGVudGlmeUVmZmVjdHMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5mZWF0dXJlS2V5O1xyXG4gIH1cclxufVxyXG4iXX0=
1
+ import { __decorate, __metadata, __param } from "tslib";
2
+ import { Optional } from '@angular/core';
3
+ import { Actions } from '@ngrx/effects';
4
+ import { Store } from '@ngrx/store';
5
+ import { AbstractListEffects } from '../state-generator/abstract-list-effects';
6
+ import { ListStateService } from './state.service';
7
+ let ListEffects = class ListEffects extends AbstractListEffects {
8
+ constructor(actions$, store, listStateService, featureKey, service, notificationService) {
9
+ super(actions$, store, service, listStateService.getFeatureActions(featureKey), listStateService.getFeatureSelectors(featureKey), notificationService);
10
+ this.featureKey = featureKey;
11
+ }
12
+ ngrxOnIdentifyEffects() {
13
+ return this.featureKey;
14
+ }
15
+ };
16
+ ListEffects = __decorate([
17
+ __param(5, Optional()),
18
+ __metadata("design:paramtypes", [Actions,
19
+ Store,
20
+ ListStateService, String, Object, Object])
21
+ ], ListEffects);
22
+ export { ListEffects };
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWZmZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmdkdXgvdXRpbC9zdG9yZS9saXN0L3NyYy9saWIvK3N0YXRlL2VmZmVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLE9BQU8sRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVuRCxJQUFhLFdBQVcsR0FBeEIsTUFBYSxXQU1YLFNBQVEsbUJBQXdDO0lBR2hELFlBQ0UsUUFBaUIsRUFDakIsS0FBWSxFQUNaLGdCQUF1RCxFQUN0QyxVQUFrQixFQUNuQyxPQUFrQyxFQUN0QixtQkFBb0Q7UUFFaEUsS0FBSyxDQUNILFFBQVEsRUFDUixLQUFLLEVBQ0wsT0FBTyxFQUNQLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxFQUM5QyxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsRUFDaEQsbUJBQW1CLENBQ3BCLENBQUM7UUFYZSxlQUFVLEdBQVYsVUFBVSxDQUFRO0lBWXJDLENBQUM7SUFFRCxxQkFBcUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7Q0FDRixDQUFBO0FBOUJZLFdBQVc7SUFlbkIsV0FBQSxRQUFRLEVBQUUsQ0FBQTtxQ0FMRCxPQUFPO1FBQ1YsS0FBSztRQUNNLGdCQUFnQjtHQVp6QixXQUFXLENBOEJ2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IExpc3ROb3RpZmljYXRpb25TZXJ2aWNlLCBMaXN0U2VydmljZSB9IGZyb20gJ0BuZ2R1eC9kYXRhLW1vZGVsLWNvbW1vbic7XHJcbmltcG9ydCB7IEFjdGlvbnMsIE9uSWRlbnRpZnlFZmZlY3RzIH0gZnJvbSAnQG5ncngvZWZmZWN0cyc7XHJcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdExpc3RFZmZlY3RzIH0gZnJvbSAnLi4vc3RhdGUtZ2VuZXJhdG9yL2Fic3RyYWN0LWxpc3QtZWZmZWN0cyc7XHJcbmltcG9ydCB7IExpc3RTdGF0ZVNlcnZpY2UgfSBmcm9tICcuL3N0YXRlLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IGNsYXNzIExpc3RFZmZlY3RzPFxyXG4gICAgVCBleHRlbmRzIHsgW2tleTogc3RyaW5nXTogYW55IH0sXHJcbiAgICBFcnJvciA9IHVua25vd24sXHJcbiAgICBTIGV4dGVuZHMgeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IFQsXHJcbiAgICBQYXJhbXMgPSBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+XHJcbiAgPlxyXG4gIGV4dGVuZHMgQWJzdHJhY3RMaXN0RWZmZWN0czxULCBFcnJvciwgUywgUGFyYW1zPlxyXG4gIGltcGxlbWVudHMgT25JZGVudGlmeUVmZmVjdHNcclxue1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgYWN0aW9ucyQ6IEFjdGlvbnMsXHJcbiAgICBzdG9yZTogU3RvcmUsXHJcbiAgICBsaXN0U3RhdGVTZXJ2aWNlOiBMaXN0U3RhdGVTZXJ2aWNlPFQsIEVycm9yLCBTLCBQYXJhbXM+LFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBmZWF0dXJlS2V5OiBzdHJpbmcsXHJcbiAgICBzZXJ2aWNlOiBMaXN0U2VydmljZTxULCBTLCBQYXJhbXM+LFxyXG4gICAgQE9wdGlvbmFsKCkgbm90aWZpY2F0aW9uU2VydmljZT86IExpc3ROb3RpZmljYXRpb25TZXJ2aWNlPEVycm9yPlxyXG4gICkge1xyXG4gICAgc3VwZXIoXHJcbiAgICAgIGFjdGlvbnMkLFxyXG4gICAgICBzdG9yZSxcclxuICAgICAgc2VydmljZSxcclxuICAgICAgbGlzdFN0YXRlU2VydmljZS5nZXRGZWF0dXJlQWN0aW9ucyhmZWF0dXJlS2V5KSxcclxuICAgICAgbGlzdFN0YXRlU2VydmljZS5nZXRGZWF0dXJlU2VsZWN0b3JzKGZlYXR1cmVLZXkpLFxyXG4gICAgICBub3RpZmljYXRpb25TZXJ2aWNlXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgbmdyeE9uSWRlbnRpZnlFZmZlY3RzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZmVhdHVyZUtleTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,55 @@
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import { ReducerManager, createFeatureSelector } from '@ngrx/store';
3
+ import { LIST_FEATURE_KEYS } from '../models/list.model';
4
+ import { createListActions } from '../state-generator/list-actions';
5
+ import { createListEntityAdapter, createListReducer } from '../state-generator/list-reducer';
6
+ import { createListSelectors } from '../state-generator/list-selectors';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@ngrx/store";
9
+ export class ListStateService {
10
+ constructor(reducerManager, featureKeys) {
11
+ this.reducerManager = reducerManager;
12
+ this.actions = {};
13
+ this.selectors = {};
14
+ this.entityAdapter = this.getEntityAdapter();
15
+ featureKeys.forEach(featureKey => {
16
+ if (!this.actions[featureKey]) {
17
+ this.actions[featureKey] = this.getActions(featureKey);
18
+ this.addReducer(featureKey, this.actions[featureKey]);
19
+ this.selectors[featureKey] = this.getSelectors(featureKey);
20
+ }
21
+ });
22
+ }
23
+ getActions(featureKey) {
24
+ return createListActions(featureKey);
25
+ }
26
+ getEntityAdapter() {
27
+ return createListEntityAdapter();
28
+ }
29
+ addReducer(featureKey, actions) {
30
+ const currentReducers = Object.keys(this.reducerManager.currentReducers || {});
31
+ if (!currentReducers.includes(featureKey)) {
32
+ const reducer = createListReducer(this.entityAdapter, actions);
33
+ this.reducerManager.addReducer(featureKey, reducer);
34
+ }
35
+ }
36
+ getSelectors(featureKey) {
37
+ const getState = createFeatureSelector(featureKey);
38
+ return createListSelectors(this.entityAdapter, getState);
39
+ }
40
+ getFeatureActions(featureKey) {
41
+ return this.actions[featureKey];
42
+ }
43
+ getFeatureSelectors(featureKey) {
44
+ return this.selectors[featureKey];
45
+ }
46
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: ListStateService, deps: [{ token: i1.ReducerManager }, { token: LIST_FEATURE_KEYS }], target: i0.ɵɵFactoryTarget.Injectable }); }
47
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: ListStateService }); }
48
+ }
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: ListStateService, decorators: [{
50
+ type: Injectable
51
+ }], ctorParameters: () => [{ type: i1.ReducerManager }, { type: undefined, decorators: [{
52
+ type: Inject,
53
+ args: [LIST_FEATURE_KEYS]
54
+ }] }] });
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmdkdXgvdXRpbC9zdG9yZS9saXN0L3NyYy9saWIvK3N0YXRlL3N0YXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwRSxPQUFPLEVBQUUsaUJBQWlCLEVBQXlDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0YsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7OztBQUd4RSxNQUFNLE9BQU8sZ0JBQWdCO0lBVTNCLFlBQTZCLGNBQThCLEVBQTZCLFdBQXFCO1FBQWhGLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUpqRCxZQUFPLEdBQXFELEVBQUUsQ0FBQztRQUMvRCxjQUFTLEdBQW9ELEVBQUUsQ0FBQztRQUl4RSxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzdDLFdBQVcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztnQkFDOUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUN2RCxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RELElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM3RCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRVMsVUFBVSxDQUFDLFVBQWtCO1FBQ3JDLE9BQU8saUJBQWlCLENBQXNCLFVBQVUsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsT0FBTyx1QkFBdUIsRUFBSyxDQUFDO0lBQ3RDLENBQUM7SUFFUyxVQUFVLENBQUMsVUFBa0IsRUFBRSxPQUF5QztRQUNoRixNQUFNLGVBQWUsR0FBYSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRXpGLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDMUMsTUFBTSxPQUFPLEdBQUcsaUJBQWlCLENBQXNCLElBQUksQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDcEYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3RELENBQUM7SUFDSCxDQUFDO0lBRVMsWUFBWSxDQUFDLFVBQWtCO1FBQ3ZDLE1BQU0sUUFBUSxHQUFHLHFCQUFxQixDQUE4QixVQUFVLENBQUMsQ0FBQztRQUNoRixPQUFPLG1CQUFtQixDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELGlCQUFpQixDQUFDLFVBQWtCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsbUJBQW1CLENBQUMsVUFBa0I7UUFDcEMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7OEdBakRVLGdCQUFnQixnREFVMEMsaUJBQWlCO2tIQVYzRSxnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVU7OzBCQVdxRCxNQUFNOzJCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBFbnRpdHlBZGFwdGVyIH0gZnJvbSAnQG5ncngvZW50aXR5JztcclxuaW1wb3J0IHsgUmVkdWNlck1hbmFnZXIsIGNyZWF0ZUZlYXR1cmVTZWxlY3RvciB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcclxuaW1wb3J0IHsgTElTVF9GRUFUVVJFX0tFWVMsIExpc3RBY3Rpb25zLCBMaXN0U2VsZWN0b3JzLCBMaXN0U3RhdGUgfSBmcm9tICcuLi9tb2RlbHMvbGlzdC5tb2RlbCc7XHJcbmltcG9ydCB7IGNyZWF0ZUxpc3RBY3Rpb25zIH0gZnJvbSAnLi4vc3RhdGUtZ2VuZXJhdG9yL2xpc3QtYWN0aW9ucyc7XHJcbmltcG9ydCB7IGNyZWF0ZUxpc3RFbnRpdHlBZGFwdGVyLCBjcmVhdGVMaXN0UmVkdWNlciB9IGZyb20gJy4uL3N0YXRlLWdlbmVyYXRvci9saXN0LXJlZHVjZXInO1xyXG5pbXBvcnQgeyBjcmVhdGVMaXN0U2VsZWN0b3JzIH0gZnJvbSAnLi4vc3RhdGUtZ2VuZXJhdG9yL2xpc3Qtc2VsZWN0b3JzJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIExpc3RTdGF0ZVNlcnZpY2U8XHJcbiAgVCBleHRlbmRzIHsgW2tleTogc3RyaW5nXTogYW55IH0sXHJcbiAgRXJyb3IgPSB1bmtub3duLFxyXG4gIFMgZXh0ZW5kcyB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0gVCxcclxuICBQYXJhbXMgPSBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+XHJcbj4ge1xyXG4gIHByb3RlY3RlZCBhY3Rpb25zOiBSZWNvcmQ8c3RyaW5nLCBMaXN0QWN0aW9uczxULCBFcnJvciwgUywgUGFyYW1zPj4gPSB7fTtcclxuICBwcm90ZWN0ZWQgc2VsZWN0b3JzOiBSZWNvcmQ8c3RyaW5nLCBMaXN0U2VsZWN0b3JzPFMsIEVycm9yLCBQYXJhbXM+PiA9IHt9O1xyXG4gIHByaXZhdGUgZW50aXR5QWRhcHRlcjogRW50aXR5QWRhcHRlcjxTPjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSByZWR1Y2VyTWFuYWdlcjogUmVkdWNlck1hbmFnZXIsIEBJbmplY3QoTElTVF9GRUFUVVJFX0tFWVMpIGZlYXR1cmVLZXlzOiBzdHJpbmdbXSkge1xyXG4gICAgdGhpcy5lbnRpdHlBZGFwdGVyID0gdGhpcy5nZXRFbnRpdHlBZGFwdGVyKCk7XHJcbiAgICBmZWF0dXJlS2V5cy5mb3JFYWNoKGZlYXR1cmVLZXkgPT4ge1xyXG4gICAgICBpZiAoIXRoaXMuYWN0aW9uc1tmZWF0dXJlS2V5XSkge1xyXG4gICAgICAgIHRoaXMuYWN0aW9uc1tmZWF0dXJlS2V5XSA9IHRoaXMuZ2V0QWN0aW9ucyhmZWF0dXJlS2V5KTtcclxuICAgICAgICB0aGlzLmFkZFJlZHVjZXIoZmVhdHVyZUtleSwgdGhpcy5hY3Rpb25zW2ZlYXR1cmVLZXldKTtcclxuICAgICAgICB0aGlzLnNlbGVjdG9yc1tmZWF0dXJlS2V5XSA9IHRoaXMuZ2V0U2VsZWN0b3JzKGZlYXR1cmVLZXkpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBnZXRBY3Rpb25zKGZlYXR1cmVLZXk6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIGNyZWF0ZUxpc3RBY3Rpb25zPFQsIEVycm9yLCBTLCBQYXJhbXM+KGZlYXR1cmVLZXkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRFbnRpdHlBZGFwdGVyKCkge1xyXG4gICAgcmV0dXJuIGNyZWF0ZUxpc3RFbnRpdHlBZGFwdGVyPFM+KCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgYWRkUmVkdWNlcihmZWF0dXJlS2V5OiBzdHJpbmcsIGFjdGlvbnM6IExpc3RBY3Rpb25zPFQsIEVycm9yLCBTLCBQYXJhbXM+KSB7XHJcbiAgICBjb25zdCBjdXJyZW50UmVkdWNlcnM6IHN0cmluZ1tdID0gT2JqZWN0LmtleXModGhpcy5yZWR1Y2VyTWFuYWdlci5jdXJyZW50UmVkdWNlcnMgfHwge30pO1xyXG5cclxuICAgIGlmICghY3VycmVudFJlZHVjZXJzLmluY2x1ZGVzKGZlYXR1cmVLZXkpKSB7XHJcbiAgICAgIGNvbnN0IHJlZHVjZXIgPSBjcmVhdGVMaXN0UmVkdWNlcjxULCBFcnJvciwgUywgUGFyYW1zPih0aGlzLmVudGl0eUFkYXB0ZXIsIGFjdGlvbnMpO1xyXG4gICAgICB0aGlzLnJlZHVjZXJNYW5hZ2VyLmFkZFJlZHVjZXIoZmVhdHVyZUtleSwgcmVkdWNlcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgZ2V0U2VsZWN0b3JzKGZlYXR1cmVLZXk6IHN0cmluZykge1xyXG4gICAgY29uc3QgZ2V0U3RhdGUgPSBjcmVhdGVGZWF0dXJlU2VsZWN0b3I8TGlzdFN0YXRlPFMsIEVycm9yLCBQYXJhbXM+PihmZWF0dXJlS2V5KTtcclxuICAgIHJldHVybiBjcmVhdGVMaXN0U2VsZWN0b3JzKHRoaXMuZW50aXR5QWRhcHRlciwgZ2V0U3RhdGUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0RmVhdHVyZUFjdGlvbnMoZmVhdHVyZUtleTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hY3Rpb25zW2ZlYXR1cmVLZXldO1xyXG4gIH1cclxuXHJcbiAgZ2V0RmVhdHVyZVNlbGVjdG9ycyhmZWF0dXJlS2V5OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLnNlbGVjdG9yc1tmZWF0dXJlS2V5XTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,7 @@
1
+ /* eslint-disable @typescript-eslint/ban-types */
2
+ import { InjectionToken } from '@angular/core';
3
+ export const LIST_FEATURE_KEY = new InjectionToken('LIST_FEATURE_KEY');
4
+ export const LIST_FEATURE_KEYS = new InjectionToken('LIST_FEATURE_KEYS');
5
+ export const LIST_SERVICES = new InjectionToken('LIST_SERVICES');
6
+ export const LIST_NOTIFICATION_SERVICES = new InjectionToken('LIST_NOTIFICATION_SERVICES');
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmdkdXgvdXRpbC9zdG9yZS9saXN0L3NyYy9saWIvbW9kZWxzL2xpc3QubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaURBQWlEO0FBQ2pELE9BQU8sRUFBRSxjQUFjLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFnQnJELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLElBQUksY0FBYyxDQUFTLGtCQUFrQixDQUFDLENBQUM7QUFDL0UsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQVMsbUJBQW1CLENBQUMsQ0FBQztBQUNqRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxjQUFjLENBQVMsZUFBZSxDQUFDLENBQUM7QUFDekUsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsSUFBSSxjQUFjLENBQVMsNEJBQTRCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXMgKi9cclxuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBFcnJvckR0byxcclxuICBGaWx0ZXJpbmdPcHRpb25zLFxyXG4gIExpc3ROb3RpZmljYXRpb25TZXJ2aWNlLFxyXG4gIExpc3RTZXJ2aWNlLFxyXG4gIFBhZ2luZ09wdGlvbnMsXHJcbiAgUmVxdWVzdE9wdGlvbnMsXHJcbiAgUmVxdWVzdFN0YXRlLFxyXG4gIFNvcnRpbmdGaWVsZFxyXG59IGZyb20gJ0BuZ2R1eC9kYXRhLW1vZGVsLWNvbW1vbic7XHJcbmltcG9ydCB7IEFwaVJlcXVlc3RTdGF0ZSwgTG9hZGluZ1N0YXRlIH0gZnJvbSAnQG5nZHV4L3N0b3JlLWNvbW1vbic7XHJcbmltcG9ydCB7IEVudGl0eVN0YXRlIH0gZnJvbSAnQG5ncngvZW50aXR5JztcclxuaW1wb3J0IHsgQWN0aW9uQ3JlYXRvciwgTWVtb2l6ZWRTZWxlY3RvciB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcclxuaW1wb3J0IHsgVHlwZWRBY3Rpb24gfSBmcm9tICdAbmdyeC9zdG9yZS9zcmMvbW9kZWxzJztcclxuXHJcbmV4cG9ydCBjb25zdCBMSVNUX0ZFQVRVUkVfS0VZID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ0xJU1RfRkVBVFVSRV9LRVknKTtcclxuZXhwb3J0IGNvbnN0IExJU1RfRkVBVFVSRV9LRVlTID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ0xJU1RfRkVBVFVSRV9LRVlTJyk7XHJcbmV4cG9ydCBjb25zdCBMSVNUX1NFUlZJQ0VTID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ0xJU1RfU0VSVklDRVMnKTtcclxuZXhwb3J0IGNvbnN0IExJU1RfTk9USUZJQ0FUSU9OX1NFUlZJQ0VTID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ0xJU1RfTk9USUZJQ0FUSU9OX1NFUlZJQ0VTJyk7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIExpc3RTdGF0ZTxULCBFID0gdW5rbm93biwgUGFyYW1zID0gUmVjb3JkPHN0cmluZywgc3RyaW5nPj5cclxuICBleHRlbmRzIEVudGl0eVN0YXRlPFQ+LFxyXG4gICAgUmVxdWVzdE9wdGlvbnM8UGFyYW1zPixcclxuICAgIEFwaVJlcXVlc3RTdGF0ZTxFPixcclxuICAgIExvYWRpbmdTdGF0ZSB7XHJcbiAgc2VsZWN0ZWRSZXNvdXJjZUlkczogc3RyaW5nW107XHJcbiAgbGFzdFBhZ2VOdW1iZXI/OiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTGlzdFNlbGVjdG9yczxULCBFID0gdW5rbm93biwgUGFyYW1zID0gUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xyXG4gIGdldEFsbDogTWVtb2l6ZWRTZWxlY3RvcjxvYmplY3QsIFRbXT47XHJcbiAgZ2V0UmVxdWVzdE9wdGlvbnM6IE1lbW9pemVkU2VsZWN0b3I8b2JqZWN0LCBSZXF1ZXN0T3B0aW9ucz47XHJcbiAgaXNMYXN0UGFnZTogTWVtb2l6ZWRTZWxlY3RvcjxvYmplY3QsIGJvb2xlYW4+O1xyXG4gIGdldEN1cnJlbnRQYWdlRGF0YTogTWVtb2l6ZWRTZWxlY3RvcjxvYmplY3QsIFRbXT47XHJcbiAgZ2V0UGFnaW5nT3B0aW9uczogTWVtb2l6ZWRTZWxlY3RvcjxvYmplY3QsIFBhZ2luZ09wdGlvbnM+O1xyXG4gIGdldFNvcnRpbmdPcHRpb25zOiBNZW1vaXplZFNlbGVjdG9yPG9iamVjdCwgU29ydGluZ0ZpZWxkW10+O1xyXG4gIGdldEZpbHRlcmluZ09wdGlvbnM6IE1lbW9pemVkU2VsZWN0b3I8b2JqZWN0LCBGaWx0ZXJpbmdPcHRpb25zPjtcclxuICBnZXRSZXF1ZXN0UGFyYW1ldGVyczogTWVtb2l6ZWRTZWxlY3RvcjxvYmplY3QsIFBhcmFtcyB8IHVuZGVmaW5lZD47XHJcbiAgZ2V0Q3VycmVudFBhZ2VOdW1iZXI6IE1lbW9pemVkU2VsZWN0b3I8b2JqZWN0LCBudW1iZXI+O1xyXG4gIGdldExhc3RQYWdlTnVtYmVyOiBNZW1vaXplZFNlbGVjdG9yPG9iamVjdCwgbnVtYmVyIHwgdW5kZWZpbmVkPjtcclxuICBnZXRMb2FkaW5nU3RhdGU6IE1lbW9pemVkU2VsZWN0b3I8b2JqZWN0LCBSZXF1ZXN0U3RhdGU+O1xyXG4gIGdldFNlbGVjdGVkUmVzb3VyY2VJZHM6IE1lbW9pemVkU2VsZWN0b3I8b2JqZWN0LCBzdHJpbmdbXT47XHJcbiAgZ2V0U2VsZWN0ZWRJdGVtczogTWVtb2l6ZWRTZWxlY3RvcjxvYmplY3QsIFRbXT47XHJcbiAgZ2V0U2VsZWN0aW9uUmVjb3JkOiBNZW1vaXplZFNlbGVjdG9yPG9iamVjdCwgUmVjb3JkPHN0cmluZywgVD4+O1xyXG4gIGdldFJlcXVlc3RTdGF0ZTogTWVtb2l6ZWRTZWxlY3RvcjxvYmplY3QsIFJlcXVlc3RTdGF0ZT47XHJcbiAgZ2V0RXJyb3JzOiBNZW1vaXplZFNlbGVjdG9yPG9iamVjdCwgRSB8IHVuZGVmaW5lZD47XHJcbiAgYXJlU2VsZWN0ZWRSZWFkeTogTWVtb2l6ZWRTZWxlY3RvcjxvYmplY3QsIGJvb2xlYW4+O1xyXG4gIGlzUmVhZHk6IE1lbW9pemVkU2VsZWN0b3I8b2JqZWN0LCBib29sZWFuPjtcclxuICBpc0RlbGV0ZURpc2FibGVkOiBNZW1vaXplZFNlbGVjdG9yPG9iamVjdCwgYm9vbGVhbj47XHJcbiAgaXNDb3B5RGlzYWJsZWQ6IE1lbW9pemVkU2VsZWN0b3I8b2JqZWN0LCBib29sZWFuPjtcclxuICBnZXRUb3RhbENvdW50OiBNZW1vaXplZFNlbGVjdG9yPG9iamVjdCwgbnVtYmVyPjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMaXN0QWN0aW9uczxFbnRpdHksIEVycm9yID0gdW5rbm93biwgU3VtbWFyeSA9IEVudGl0eSwgUGFyYW1zID0gUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xyXG4gIC8qKlxyXG4gICAqIFNldCB0aGUgcGFnZSBzaXplIHdpdGhvdXQgcmVsb2FkaW5nIHRoZSBsaXN0XHJcbiAgICovXHJcbiAgc2V0UGFnZVNpemU6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAocHJvcHM6IHsgcGFnZVNpemU6IG51bWJlciB9KSA9PiB7IHBhZ2VTaXplOiBudW1iZXIgfSAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xyXG4gIC8qKlxyXG4gICAqIFNldCB0aGUgc29ydGluZyBvcHRpb25zIHdpdGhvdXQgcmVsb2FkaW5nIHRoZSBsaXN0XHJcbiAgICovXHJcbiAgc2V0U29ydGluZzogQWN0aW9uQ3JlYXRvcjxcclxuICAgIHN0cmluZyxcclxuICAgIChwcm9wczogeyBzb3J0aW5nT3B0aW9uczogU29ydGluZ0ZpZWxkW10gfSkgPT4geyBzb3J0aW5nT3B0aW9uczogU29ydGluZ0ZpZWxkW10gfSAmIFR5cGVkQWN0aW9uPHN0cmluZz5cclxuICA+O1xyXG4gIC8qKlxyXG4gICAqIFNldCB0aGUgZmlsdGVyaW5nIG9wdGlvbnMgd2l0aG91dCByZWxvYWRpbmcgdGhlIGxpc3RcclxuICAgKi9cclxuICBzZXRGaWx0ZXJpbmc6IEFjdGlvbkNyZWF0b3I8XHJcbiAgICBzdHJpbmcsXHJcbiAgICAocHJvcHM6IHsgZmlsdGVyaW5nT3B0aW9uczogRmlsdGVyaW5nT3B0aW9ucyB9KSA9PiB7IGZpbHRlcmluZ09wdGlvbnM6IEZpbHRlcmluZ09wdGlvbnMgfSAmIFR5cGVkQWN0aW9uPHN0cmluZz5cclxuICA+O1xyXG4gIC8qKlxyXG4gICAqIFNldCB0aGUgcmVxdWVzdCBwYXJhbWV0ZXJzIHdpdGhvdXQgcmVsb2FkaW5nIHRoZSBsaXN0XHJcbiAgICovXHJcbiAgc2V0UmVxdWVzdFBhcmFtczogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogeyBwYXJhbXM6IFBhcmFtcyB9KSA9PiB7IHBhcmFtczogUGFyYW1zIH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcclxuXHJcbiAgLyoqXHJcbiAgICogQ2hhbmdlIHRoZSBwYWdpbmcgb3B0aW9ucyBhbmQgcmVsb2FkIHRoZSBsaXN0XHJcbiAgICovXHJcbiAgY2hhbmdlUGFnaW5nT3B0aW9uczogQWN0aW9uQ3JlYXRvcjxcclxuICAgIHN0cmluZyxcclxuICAgIChwcm9wczogeyBwYWdpbmdPcHRpb25zOiBQYWdpbmdPcHRpb25zIH0pID0+IHsgcGFnaW5nT3B0aW9uczogUGFnaW5nT3B0aW9ucyB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPlxyXG4gID47XHJcblxyXG4gIC8qKlxyXG4gICAqIENoYW5nZSB0aGUgcGFnZSBudW1iZXIgYW5kIHJlbG9hZCB0aGUgbGlzdFxyXG4gICAqL1xyXG4gIGNoYW5nZVBhZ2VOdW1iZXI6IEFjdGlvbkNyZWF0b3I8XHJcbiAgICBzdHJpbmcsXHJcbiAgICAocHJvcHM6IHsgcGFnZU51bWJlcjogbnVtYmVyIH0pID0+IHsgcGFnZU51bWJlcjogbnVtYmVyIH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+XHJcbiAgPjtcclxuICAvKipcclxuICAgKiBDaGFuZ2UgdGhlIHBhZ2Ugc2l6ZSBhbmQgcmVsb2FkIHRoZSBsaXN0XHJcbiAgICovXHJcbiAgY2hhbmdlUGFnZVNpemU6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAocHJvcHM6IHsgcGFnZVNpemU6IG51bWJlciB9KSA9PiB7IHBhZ2VTaXplOiBudW1iZXIgfSAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xyXG4gIC8qKlxyXG4gICAqIENoYW5nZSB0aGUgc29ydGluZyBvcHRpb25zIGFuZCByZWxvYWQgdGhlIGxpc3RcclxuICAgKi9cclxuICBjaGFuZ2VTb3J0aW5nOiBBY3Rpb25DcmVhdG9yPFxyXG4gICAgc3RyaW5nLFxyXG4gICAgKHByb3BzOiB7IHNvcnRpbmdPcHRpb25zOiBTb3J0aW5nRmllbGRbXSB9KSA9PiB7IHNvcnRpbmdPcHRpb25zOiBTb3J0aW5nRmllbGRbXSB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPlxyXG4gID47XHJcbiAgLyoqXHJcbiAgICogQ2hhbmdlIHRoZSBmaWx0ZXJpbmcgb3B0aW9ucyBhbmQgcmVsb2FkIHRoZSBsaXN0XHJcbiAgICovXHJcbiAgY2hhbmdlRmlsdGVyaW5nOiBBY3Rpb25DcmVhdG9yPFxyXG4gICAgc3RyaW5nLFxyXG4gICAgKHByb3BzOiB7IGZpbHRlcmluZ09wdGlvbnM6IEZpbHRlcmluZ09wdGlvbnMgfSkgPT4geyBmaWx0ZXJpbmdPcHRpb25zOiBGaWx0ZXJpbmdPcHRpb25zIH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+XHJcbiAgPjtcclxuICAvKipcclxuICAgKiBDaGFuZ2UgdGhlIHJlcXVlc3QgcGFyYW1ldGVycyBhbmQgcmVsb2FkIHRoZSBsaXN0XHJcbiAgICovXHJcbiAgY2hhbmdlUmVxdWVzdFBhcmFtczogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogeyBwYXJhbXM6IFBhcmFtcyB9KSA9PiB7IHBhcmFtczogUGFyYW1zIH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcclxuXHJcbiAgY2hhbmdlU2VsZWN0ZWRSZXNvdXJjZXM6IEFjdGlvbkNyZWF0b3I8XHJcbiAgICBzdHJpbmcsXHJcbiAgICAocHJvcHM6IHsgc2VsZWN0ZWRSZXNvdXJjZUlkczogc3RyaW5nW10gfSkgPT4geyBzZWxlY3RlZFJlc291cmNlSWRzOiBzdHJpbmdbXSB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPlxyXG4gID47XHJcbiAgbG9hZFBhZ2U6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAoKSA9PiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcclxuICBsb2FkUGFnZVN1Y2Nlc3M6IEFjdGlvbkNyZWF0b3I8XHJcbiAgICBzdHJpbmcsXHJcbiAgICAocHJvcHM6IHtcclxuICAgICAgcmVzb3VyY2VzOiBTdW1tYXJ5W107XHJcbiAgICAgIHBhZ2luZ09wdGlvbnM6IFBhZ2luZ09wdGlvbnM7XHJcbiAgICB9KSA9PiB7IHJlc291cmNlczogU3VtbWFyeVtdOyBwYWdpbmdPcHRpb25zOiBQYWdpbmdPcHRpb25zIH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+XHJcbiAgPjtcclxuICBsb2FkUGFnZUZhaWx1cmU6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAocHJvcHM6IHsgZXJyb3JzOiBFcnJvciB9KSA9PiB7IGVycm9yczogRXJyb3IgfSAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xyXG4gIGRlbGV0ZTogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogeyByZXNvdXJjZUlkczogc3RyaW5nW10gfSkgPT4geyByZXNvdXJjZUlkczogc3RyaW5nW10gfSAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xyXG4gIGRlbGV0ZVN1Y2Nlc3M6IEFjdGlvbkNyZWF0b3I8XHJcbiAgICBzdHJpbmcsXHJcbiAgICAocHJvcHM6IHsgcmVzb3VyY2VJZHM6IHN0cmluZ1tdIH0pID0+IHsgcmVzb3VyY2VJZHM6IHN0cmluZ1tdIH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+XHJcbiAgPjtcclxuICBkZWxldGVGYWlsdXJlOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiB7IGVycm9yczogRXJyb3IgfSkgPT4geyBlcnJvcnM6IEVycm9yIH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcclxuICBwYXRjaDogQWN0aW9uQ3JlYXRvcjxcclxuICAgIHN0cmluZyxcclxuICAgIChwcm9wczoge1xyXG4gICAgICByZXNvdXJjZUlkczogc3RyaW5nW107XHJcbiAgICAgIHJlc291cmNlOiBQYXJ0aWFsPEVudGl0eT47XHJcbiAgICB9KSA9PiB7IHJlc291cmNlSWRzOiBzdHJpbmdbXTsgcmVzb3VyY2U6IFBhcnRpYWw8RW50aXR5PiB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPlxyXG4gID47XHJcbiAgcGF0Y2hTdWNjZXNzOiBBY3Rpb25DcmVhdG9yPFxyXG4gICAgc3RyaW5nLFxyXG4gICAgKHByb3BzOiB7IHJlc291cmNlczogKEVudGl0eSB8IEVycm9yRHRvKVtdIH0pID0+IHsgcmVzb3VyY2VzOiAoRW50aXR5IHwgRXJyb3JEdG8pW10gfSAmIFR5cGVkQWN0aW9uPHN0cmluZz5cclxuICA+O1xyXG4gIHBhdGNoRmFpbHVyZTogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogeyBlcnJvcnM6IEVycm9yIH0pID0+IHsgZXJyb3JzOiBFcnJvciB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XHJcbiAgbG9hZE5leHRQYWdlOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKCkgPT4gVHlwZWRBY3Rpb248c3RyaW5nPj47XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZSB0aGUgY3VycmVudCBkYXRhLCBzZXQgdGhlIHBhZ2UgbnVtYmVyIHRvIDEgYW5kIGRlc2VsZWN0IHJlc291cmNlcy5cclxuICAgKiBLZWVwIGFsbCB0aGUgcmVzdCwgbGlrZSBmaWx0ZXJpbmdPcHRpb25zIGFuZCBzb3J0aW5nT3B0aW9uc1xyXG4gICAqL1xyXG4gIGluaXRpYWxpemU6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAoKSA9PiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcclxuICAvKipcclxuICAgKiBSZXNldCB0byB0aGUgaW5pdGlhbCBzdGF0ZVxyXG4gICAqL1xyXG4gIHJlc2V0OiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKCkgPT4gVHlwZWRBY3Rpb248c3RyaW5nPj47XHJcbiAgbG9hZFByZXZpb3VzUGFnZTogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsICgpID0+IFR5cGVkQWN0aW9uPHN0cmluZz4+O1xyXG4gIGxvYWRGaXJzdFBhZ2U6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAoKSA9PiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcclxuICAvKipcclxuICAgKiBSZXNldCB0aGUgcmVxdWVzdCBzdGF0ZSB0byBpZGxlXHJcbiAgICovXHJcbiAgcmVzZXRSZXF1ZXN0U3RhdGU6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAoKSA9PiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBOZ2R1eExpc3RTdGF0ZU1vZHVsZUNvbmZpZzxcclxuICBUIGV4dGVuZHMgeyBba2V5OiBzdHJpbmddOiBhbnkgfSxcclxuICBFLFxyXG4gIFMgPSBULFxyXG4gIFBhcmFtcyA9IFJlY29yZDxzdHJpbmcsIHN0cmluZz5cclxuPiB7XHJcbiAgc2VydmljZTogVHlwZTxMaXN0U2VydmljZTxULCBTLCBQYXJhbXM+PjtcclxuICBub3RpZmljYXRpb25TZXJ2aWNlPzogVHlwZTxMaXN0Tm90aWZpY2F0aW9uU2VydmljZTxFPj47XHJcbn1cclxuIl19
@@ -1,53 +1,53 @@
1
- import { Inject, NgModule } from '@angular/core';
2
- import { RegisterEffectsService } from '@ngdux/store-common';
3
- import { Actions } from '@ngrx/effects';
4
- import { Store } from '@ngrx/store';
5
- import { ListEffects } from './+state/effects';
6
- import { ListStateService } from './+state/state.service';
7
- import { LIST_FEATURE_KEYS, LIST_NOTIFICATION_SERVICES, LIST_SERVICES } from './models/list.model';
8
- import { NotificationServicePlaceholder } from './services/list-notification-service';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "@ngdux/store-common";
11
- import * as i2 from "@ngrx/effects";
12
- import * as i3 from "@ngrx/store";
13
- import * as i4 from "./+state/state.service";
14
- export class NgduxListStateModule {
15
- constructor(registerEffectsService, actions$, store, listStateService, featureKeys, services, notificationServices) {
16
- featureKeys.forEach((featureKey, index) => {
17
- const listEffects = new ListEffects(actions$, store, listStateService, featureKey, services[index], notificationServices[index]);
18
- registerEffectsService.registerEffects([listEffects]);
19
- });
20
- }
21
- static config(config) {
22
- return {
23
- ngModule: NgduxListStateModule,
24
- providers: [
25
- { provide: LIST_SERVICES, multi: true, useClass: config.service },
26
- {
27
- provide: LIST_NOTIFICATION_SERVICES,
28
- multi: true,
29
- useClass: config.notificationService || NotificationServicePlaceholder
30
- }
31
- ]
32
- };
33
- }
34
- }
35
- NgduxListStateModulefac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NgduxListStateModule, deps: [{ token: i1.RegisterEffectsService }, { token: i2.Actions }, { token: i3.Store }, { token: i4.ListStateService }, { token: LIST_FEATURE_KEYS }, { token: LIST_SERVICES }, { token: LIST_NOTIFICATION_SERVICES }], target: i0.ɵɵFactoryTarget.NgModule });
36
- NgduxListStateModulemod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: NgduxListStateModule });
37
- NgduxListStateModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NgduxListStateModule, providers: [ListStateService] });
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NgduxListStateModule, decorators: [{
39
- type: NgModule,
40
- args: [{
41
- providers: [ListStateService]
42
- }]
43
- }], ctorParameters: function () { return [{ type: i1.RegisterEffectsService }, { type: i2.Actions }, { type: i3.Store }, { type: i4.ListStateService }, { type: undefined, decorators: [{
44
- type: Inject,
45
- args: [LIST_FEATURE_KEYS]
46
- }] }, { type: undefined, decorators: [{
47
- type: Inject,
48
- args: [LIST_SERVICES]
49
- }] }, { type: undefined, decorators: [{
50
- type: Inject,
51
- args: [LIST_NOTIFICATION_SERVICES]
52
- }] }]; } });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdkdXgtbGlzdC1zdGF0ZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nZHV4L3V0aWwvc3RvcmUvbGlzdC9zcmMvbGliL25nZHV4LWxpc3Qtc3RhdGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV0RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsMEJBQTBCLEVBQzFCLGFBQWEsRUFFZCxNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7Ozs7QUFLdEYsTUFBTSxPQUFPLG9CQUFvQjtJQU0vQixZQUNFLHNCQUE4QyxFQUM5QyxRQUFpQixFQUNqQixLQUFZLEVBQ1osZ0JBQXVELEVBQzVCLFdBQXFCLEVBQ3pCLFFBQXFDLEVBQ3hCLG9CQUFzRDtRQUUxRixXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ3hDLE1BQU0sV0FBVyxHQUFHLElBQUksV0FBVyxDQUNqQyxRQUFRLEVBQ1IsS0FBSyxFQUNMLGdCQUFnQixFQUNoQixVQUFVLEVBQ1YsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUNmLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUM1QixDQUFDO1lBQ0Ysc0JBQXNCLENBQUMsZUFBZSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUN4RCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBTSxDQU1YLE1BQXVEO1FBRXZELE9BQU87WUFDTCxRQUFRLEVBQUUsb0JBQW9CO1lBQzlCLFNBQVMsRUFBRTtnQkFDVCxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLE9BQU8sRUFBRTtnQkFDakU7b0JBQ0UsT0FBTyxFQUFFLDBCQUEwQjtvQkFDbkMsS0FBSyxFQUFFLElBQUk7b0JBQ1gsUUFBUSxFQUFFLE1BQU0sQ0FBQyxtQkFBbUIsSUFBSSw4QkFBOEI7aUJBQ3ZFO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQzs7aUhBL0NVLG9CQUFvQixvSUFXckIsaUJBQWlCLGFBQ2pCLGFBQWEsYUFDYiwwQkFBMEI7a0hBYnpCLG9CQUFvQjtrSEFBcEIsb0JBQW9CLGFBRnBCLENBQUMsZ0JBQWdCLENBQUM7MkZBRWxCLG9CQUFvQjtrQkFIaEMsUUFBUTttQkFBQztvQkFDUixTQUFTLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztpQkFDOUI7OzBCQVlJLE1BQU07MkJBQUMsaUJBQWlCOzswQkFDeEIsTUFBTTsyQkFBQyxhQUFhOzswQkFDcEIsTUFBTTsyQkFBQywwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IExpc3ROb3RpZmljYXRpb25TZXJ2aWNlLCBMaXN0U2VydmljZSB9IGZyb20gJ0BuZ2R1eC9kYXRhLW1vZGVsLWNvbW1vbic7XHJcbmltcG9ydCB7IFJlZ2lzdGVyRWZmZWN0c1NlcnZpY2UgfSBmcm9tICdAbmdkdXgvc3RvcmUtY29tbW9uJztcclxuaW1wb3J0IHsgQWN0aW9ucyB9IGZyb20gJ0BuZ3J4L2VmZmVjdHMnO1xyXG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcclxuaW1wb3J0IHsgTGlzdEVmZmVjdHMgfSBmcm9tICcuLytzdGF0ZS9lZmZlY3RzJztcclxuaW1wb3J0IHsgTGlzdFN0YXRlU2VydmljZSB9IGZyb20gJy4vK3N0YXRlL3N0YXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gIExJU1RfRkVBVFVSRV9LRVlTLFxyXG4gIExJU1RfTk9USUZJQ0FUSU9OX1NFUlZJQ0VTLFxyXG4gIExJU1RfU0VSVklDRVMsXHJcbiAgTmdkdXhMaXN0U3RhdGVNb2R1bGVDb25maWdcclxufSBmcm9tICcuL21vZGVscy9saXN0Lm1vZGVsJztcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZVBsYWNlaG9sZGVyIH0gZnJvbSAnLi9zZXJ2aWNlcy9saXN0LW5vdGlmaWNhdGlvbi1zZXJ2aWNlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgcHJvdmlkZXJzOiBbTGlzdFN0YXRlU2VydmljZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIE5nZHV4TGlzdFN0YXRlTW9kdWxlPFxyXG4gIFQgZXh0ZW5kcyB7IFtrZXk6IHN0cmluZ106IGFueSB9LFxyXG4gIEVycm9yID0gdW5rbm93bixcclxuICBTIGV4dGVuZHMgeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IFQsXHJcbiAgUGFyYW1zID0gUmVjb3JkPHN0cmluZywgc3RyaW5nPlxyXG4+IHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHJlZ2lzdGVyRWZmZWN0c1NlcnZpY2U6IFJlZ2lzdGVyRWZmZWN0c1NlcnZpY2UsXHJcbiAgICBhY3Rpb25zJDogQWN0aW9ucyxcclxuICAgIHN0b3JlOiBTdG9yZSxcclxuICAgIGxpc3RTdGF0ZVNlcnZpY2U6IExpc3RTdGF0ZVNlcnZpY2U8VCwgRXJyb3IsIFMsIFBhcmFtcz4sXHJcbiAgICBASW5qZWN0KExJU1RfRkVBVFVSRV9LRVlTKSBmZWF0dXJlS2V5czogc3RyaW5nW10sXHJcbiAgICBASW5qZWN0KExJU1RfU0VSVklDRVMpIHNlcnZpY2VzOiBMaXN0U2VydmljZTxULCBTLCBQYXJhbXM+W10sXHJcbiAgICBASW5qZWN0KExJU1RfTk9USUZJQ0FUSU9OX1NFUlZJQ0VTKSBub3RpZmljYXRpb25TZXJ2aWNlczogTGlzdE5vdGlmaWNhdGlvblNlcnZpY2U8RXJyb3I+W11cclxuICApIHtcclxuICAgIGZlYXR1cmVLZXlzLmZvckVhY2goKGZlYXR1cmVLZXksIGluZGV4KSA9PiB7XHJcbiAgICAgIGNvbnN0IGxpc3RFZmZlY3RzID0gbmV3IExpc3RFZmZlY3RzKFxyXG4gICAgICAgIGFjdGlvbnMkLFxyXG4gICAgICAgIHN0b3JlLFxyXG4gICAgICAgIGxpc3RTdGF0ZVNlcnZpY2UsXHJcbiAgICAgICAgZmVhdHVyZUtleSxcclxuICAgICAgICBzZXJ2aWNlc1tpbmRleF0sXHJcbiAgICAgICAgbm90aWZpY2F0aW9uU2VydmljZXNbaW5kZXhdXHJcbiAgICAgICk7XHJcbiAgICAgIHJlZ2lzdGVyRWZmZWN0c1NlcnZpY2UucmVnaXN0ZXJFZmZlY3RzKFtsaXN0RWZmZWN0c10pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgY29uZmlnPFxyXG4gICAgVCBleHRlbmRzIHsgW2tleTogc3RyaW5nXTogYW55IH0sXHJcbiAgICBFcnJvciA9IHVua25vd24sXHJcbiAgICBTIGV4dGVuZHMgeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IFQsXHJcbiAgICBQYXJhbXMgPSBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+XHJcbiAgPihcclxuICAgIGNvbmZpZzogTmdkdXhMaXN0U3RhdGVNb2R1bGVDb25maWc8VCwgRXJyb3IsIFMsIFBhcmFtcz5cclxuICApOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE5nZHV4TGlzdFN0YXRlTW9kdWxlPFQsIEVycm9yLCBTLCBQYXJhbXM+PiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogTmdkdXhMaXN0U3RhdGVNb2R1bGUsXHJcbiAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHsgcHJvdmlkZTogTElTVF9TRVJWSUNFUywgbXVsdGk6IHRydWUsIHVzZUNsYXNzOiBjb25maWcuc2VydmljZSB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IExJU1RfTk9USUZJQ0FUSU9OX1NFUlZJQ0VTLFxyXG4gICAgICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgICAgICB1c2VDbGFzczogY29uZmlnLm5vdGlmaWNhdGlvblNlcnZpY2UgfHwgTm90aWZpY2F0aW9uU2VydmljZVBsYWNlaG9sZGVyXHJcbiAgICAgICAgfVxyXG4gICAgICBdXHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG4iXX0=
1
+ import { Inject, NgModule } from '@angular/core';
2
+ import { RegisterEffectsService } from '@ngdux/store-common';
3
+ import { Actions } from '@ngrx/effects';
4
+ import { Store } from '@ngrx/store';
5
+ import { ListEffects } from './+state/effects';
6
+ import { ListStateService } from './+state/state.service';
7
+ import { LIST_FEATURE_KEYS, LIST_NOTIFICATION_SERVICES, LIST_SERVICES } from './models/list.model';
8
+ import { NotificationServicePlaceholder } from './services/list-notification-service';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@ngdux/store-common";
11
+ import * as i2 from "@ngrx/effects";
12
+ import * as i3 from "@ngrx/store";
13
+ import * as i4 from "./+state/state.service";
14
+ export class NgduxListStateModule {
15
+ constructor(registerEffectsService, actions$, store, listStateService, featureKeys, services, notificationServices) {
16
+ featureKeys.forEach((featureKey, index) => {
17
+ const listEffects = new ListEffects(actions$, store, listStateService, featureKey, services[index], notificationServices[index]);
18
+ registerEffectsService.registerEffects([listEffects]);
19
+ });
20
+ }
21
+ static config(config) {
22
+ return {
23
+ ngModule: NgduxListStateModule,
24
+ providers: [
25
+ { provide: LIST_SERVICES, multi: true, useClass: config.service },
26
+ {
27
+ provide: LIST_NOTIFICATION_SERVICES,
28
+ multi: true,
29
+ useClass: config.notificationService || NotificationServicePlaceholder
30
+ }
31
+ ]
32
+ };
33
+ }
34
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NgduxListStateModule, deps: [{ token: i1.RegisterEffectsService }, { token: i2.Actions }, { token: i3.Store }, { token: i4.ListStateService }, { token: LIST_FEATURE_KEYS }, { token: LIST_SERVICES }, { token: LIST_NOTIFICATION_SERVICES }], target: i0.ɵɵFactoryTarget.NgModule }); }
35
+ static { thismod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.2.2", ngImport: i0, type: NgduxListStateModule }); }
36
+ static { thisinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NgduxListStateModule, providers: [ListStateService] }); }
37
+ }
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NgduxListStateModule, decorators: [{
39
+ type: NgModule,
40
+ args: [{
41
+ providers: [ListStateService]
42
+ }]
43
+ }], ctorParameters: () => [{ type: i1.RegisterEffectsService }, { type: i2.Actions }, { type: i3.Store }, { type: i4.ListStateService }, { type: undefined, decorators: [{
44
+ type: Inject,
45
+ args: [LIST_FEATURE_KEYS]
46
+ }] }, { type: undefined, decorators: [{
47
+ type: Inject,
48
+ args: [LIST_SERVICES]
49
+ }] }, { type: undefined, decorators: [{
50
+ type: Inject,
51
+ args: [LIST_NOTIFICATION_SERVICES]
52
+ }] }] });
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdkdXgtbGlzdC1zdGF0ZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nZHV4L3V0aWwvc3RvcmUvbGlzdC9zcmMvbGliL25nZHV4LWxpc3Qtc3RhdGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV0RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsMEJBQTBCLEVBQzFCLGFBQWEsRUFFZCxNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7Ozs7QUFLdEYsTUFBTSxPQUFPLG9CQUFvQjtJQU0vQixZQUNFLHNCQUE4QyxFQUM5QyxRQUFpQixFQUNqQixLQUFZLEVBQ1osZ0JBQXVELEVBQzVCLFdBQXFCLEVBQ3pCLFFBQXFDLEVBQ3hCLG9CQUFzRDtRQUUxRixXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ3hDLE1BQU0sV0FBVyxHQUFHLElBQUksV0FBVyxDQUNqQyxRQUFRLEVBQ1IsS0FBSyxFQUNMLGdCQUFnQixFQUNoQixVQUFVLEVBQ1YsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUNmLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUM1QixDQUFDO1lBQ0Ysc0JBQXNCLENBQUMsZUFBZSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUN4RCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBTSxDQU1YLE1BQXVEO1FBRXZELE9BQU87WUFDTCxRQUFRLEVBQUUsb0JBQW9CO1lBQzlCLFNBQVMsRUFBRTtnQkFDVCxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLE9BQU8sRUFBRTtnQkFDakU7b0JBQ0UsT0FBTyxFQUFFLDBCQUEwQjtvQkFDbkMsS0FBSyxFQUFFLElBQUk7b0JBQ1gsUUFBUSxFQUFFLE1BQU0sQ0FBQyxtQkFBbUIsSUFBSSw4QkFBOEI7aUJBQ3ZFO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQzs4R0EvQ1Usb0JBQW9CLG9JQVdyQixpQkFBaUIsYUFDakIsYUFBYSxhQUNiLDBCQUEwQjsrR0FiekIsb0JBQW9COytHQUFwQixvQkFBb0IsYUFGcEIsQ0FBQyxnQkFBZ0IsQ0FBQzs7MkZBRWxCLG9CQUFvQjtrQkFIaEMsUUFBUTttQkFBQztvQkFDUixTQUFTLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztpQkFDOUI7OzBCQVlJLE1BQU07MkJBQUMsaUJBQWlCOzswQkFDeEIsTUFBTTsyQkFBQyxhQUFhOzswQkFDcEIsTUFBTTsyQkFBQywwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IExpc3ROb3RpZmljYXRpb25TZXJ2aWNlLCBMaXN0U2VydmljZSB9IGZyb20gJ0BuZ2R1eC9kYXRhLW1vZGVsLWNvbW1vbic7XHJcbmltcG9ydCB7IFJlZ2lzdGVyRWZmZWN0c1NlcnZpY2UgfSBmcm9tICdAbmdkdXgvc3RvcmUtY29tbW9uJztcclxuaW1wb3J0IHsgQWN0aW9ucyB9IGZyb20gJ0BuZ3J4L2VmZmVjdHMnO1xyXG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcclxuaW1wb3J0IHsgTGlzdEVmZmVjdHMgfSBmcm9tICcuLytzdGF0ZS9lZmZlY3RzJztcclxuaW1wb3J0IHsgTGlzdFN0YXRlU2VydmljZSB9IGZyb20gJy4vK3N0YXRlL3N0YXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gIExJU1RfRkVBVFVSRV9LRVlTLFxyXG4gIExJU1RfTk9USUZJQ0FUSU9OX1NFUlZJQ0VTLFxyXG4gIExJU1RfU0VSVklDRVMsXHJcbiAgTmdkdXhMaXN0U3RhdGVNb2R1bGVDb25maWdcclxufSBmcm9tICcuL21vZGVscy9saXN0Lm1vZGVsJztcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZVBsYWNlaG9sZGVyIH0gZnJvbSAnLi9zZXJ2aWNlcy9saXN0LW5vdGlmaWNhdGlvbi1zZXJ2aWNlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgcHJvdmlkZXJzOiBbTGlzdFN0YXRlU2VydmljZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIE5nZHV4TGlzdFN0YXRlTW9kdWxlPFxyXG4gIFQgZXh0ZW5kcyB7IFtrZXk6IHN0cmluZ106IGFueSB9LFxyXG4gIEVycm9yID0gdW5rbm93bixcclxuICBTIGV4dGVuZHMgeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IFQsXHJcbiAgUGFyYW1zID0gUmVjb3JkPHN0cmluZywgc3RyaW5nPlxyXG4+IHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHJlZ2lzdGVyRWZmZWN0c1NlcnZpY2U6IFJlZ2lzdGVyRWZmZWN0c1NlcnZpY2UsXHJcbiAgICBhY3Rpb25zJDogQWN0aW9ucyxcclxuICAgIHN0b3JlOiBTdG9yZSxcclxuICAgIGxpc3RTdGF0ZVNlcnZpY2U6IExpc3RTdGF0ZVNlcnZpY2U8VCwgRXJyb3IsIFMsIFBhcmFtcz4sXHJcbiAgICBASW5qZWN0KExJU1RfRkVBVFVSRV9LRVlTKSBmZWF0dXJlS2V5czogc3RyaW5nW10sXHJcbiAgICBASW5qZWN0KExJU1RfU0VSVklDRVMpIHNlcnZpY2VzOiBMaXN0U2VydmljZTxULCBTLCBQYXJhbXM+W10sXHJcbiAgICBASW5qZWN0KExJU1RfTk9USUZJQ0FUSU9OX1NFUlZJQ0VTKSBub3RpZmljYXRpb25TZXJ2aWNlczogTGlzdE5vdGlmaWNhdGlvblNlcnZpY2U8RXJyb3I+W11cclxuICApIHtcclxuICAgIGZlYXR1cmVLZXlzLmZvckVhY2goKGZlYXR1cmVLZXksIGluZGV4KSA9PiB7XHJcbiAgICAgIGNvbnN0IGxpc3RFZmZlY3RzID0gbmV3IExpc3RFZmZlY3RzKFxyXG4gICAgICAgIGFjdGlvbnMkLFxyXG4gICAgICAgIHN0b3JlLFxyXG4gICAgICAgIGxpc3RTdGF0ZVNlcnZpY2UsXHJcbiAgICAgICAgZmVhdHVyZUtleSxcclxuICAgICAgICBzZXJ2aWNlc1tpbmRleF0sXHJcbiAgICAgICAgbm90aWZpY2F0aW9uU2VydmljZXNbaW5kZXhdXHJcbiAgICAgICk7XHJcbiAgICAgIHJlZ2lzdGVyRWZmZWN0c1NlcnZpY2UucmVnaXN0ZXJFZmZlY3RzKFtsaXN0RWZmZWN0c10pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgY29uZmlnPFxyXG4gICAgVCBleHRlbmRzIHsgW2tleTogc3RyaW5nXTogYW55IH0sXHJcbiAgICBFcnJvciA9IHVua25vd24sXHJcbiAgICBTIGV4dGVuZHMgeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IFQsXHJcbiAgICBQYXJhbXMgPSBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+XHJcbiAgPihcclxuICAgIGNvbmZpZzogTmdkdXhMaXN0U3RhdGVNb2R1bGVDb25maWc8VCwgRXJyb3IsIFMsIFBhcmFtcz5cclxuICApOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE5nZHV4TGlzdFN0YXRlTW9kdWxlPFQsIEVycm9yLCBTLCBQYXJhbXM+PiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogTmdkdXhMaXN0U3RhdGVNb2R1bGUsXHJcbiAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHsgcHJvdmlkZTogTElTVF9TRVJWSUNFUywgbXVsdGk6IHRydWUsIHVzZUNsYXNzOiBjb25maWcuc2VydmljZSB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IExJU1RfTk9USUZJQ0FUSU9OX1NFUlZJQ0VTLFxyXG4gICAgICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgICAgICB1c2VDbGFzczogY29uZmlnLm5vdGlmaWNhdGlvblNlcnZpY2UgfHwgTm90aWZpY2F0aW9uU2VydmljZVBsYWNlaG9sZGVyXHJcbiAgICAgICAgfVxyXG4gICAgICBdXHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,21 +1,21 @@
1
- import { Injectable } from '@angular/core';
2
- import { of } from 'rxjs';
3
- import * as i0 from "@angular/core";
4
- export class NotificationServicePlaceholder {
5
- onListErrors(errors) {
6
- console.error('ERROR', errors);
7
- }
8
- onListDelete(ids) {
9
- console.log(`Resources ${ids.join(', ')} have been deleted.`);
10
- }
11
- openConfirmationDialog(data) {
12
- console.log(data.title, data.message);
13
- return of(true);
14
- }
15
- }
16
- NotificationServicePlaceholderfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NotificationServicePlaceholder, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
17
- NotificationServicePlaceholder.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NotificationServicePlaceholder });
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NotificationServicePlaceholder, decorators: [{
19
- type: Injectable
20
- }] });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1ub3RpZmljYXRpb24tc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmdkdXgvdXRpbC9zdG9yZS9saXN0L3NyYy9saWIvc2VydmljZXMvbGlzdC1ub3RpZmljYXRpb24tc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBR3RDLE1BQU0sT0FBTyw4QkFBOEI7SUFDekMsWUFBWSxDQUFDLE1BQWdCO1FBQzNCLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxZQUFZLENBQUMsR0FBYTtRQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsc0JBQXNCLENBQUMsSUFBd0M7UUFDN0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV0QyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQixDQUFDOzsySEFiVSw4QkFBOEI7K0hBQTlCLDhCQUE4QjsyRkFBOUIsOEJBQThCO2tCQUQxQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBFcnJvckR0bywgTGlzdE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICdAbmdkdXgvZGF0YS1tb2RlbC1jb21tb24nO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uU2VydmljZVBsYWNlaG9sZGVyIGltcGxlbWVudHMgTGlzdE5vdGlmaWNhdGlvblNlcnZpY2U8RXJyb3JEdG8+IHtcclxuICBvbkxpc3RFcnJvcnMoZXJyb3JzOiBFcnJvckR0byk6IHZvaWQge1xyXG4gICAgY29uc29sZS5lcnJvcignRVJST1InLCBlcnJvcnMpO1xyXG4gIH1cclxuXHJcbiAgb25MaXN0RGVsZXRlKGlkczogc3RyaW5nW10pOiB2b2lkIHtcclxuICAgIGNvbnNvbGUubG9nKGBSZXNvdXJjZXMgJHtpZHMuam9pbignLCAnKX0gaGF2ZSBiZWVuIGRlbGV0ZWQuYCk7XHJcbiAgfVxyXG5cclxuICBvcGVuQ29uZmlybWF0aW9uRGlhbG9nKGRhdGE6IHsgbWVzc2FnZTogc3RyaW5nOyB0aXRsZTogc3RyaW5nIH0pOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgIGNvbnNvbGUubG9nKGRhdGEudGl0bGUsIGRhdGEubWVzc2FnZSk7XHJcblxyXG4gICAgcmV0dXJuIG9mKHRydWUpO1xyXG4gIH1cclxufVxyXG4iXX0=
1
+ import { Injectable } from '@angular/core';
2
+ import { of } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ export class NotificationServicePlaceholder {
5
+ onListErrors(errors) {
6
+ console.error('ERROR', errors);
7
+ }
8
+ onListDelete(ids) {
9
+ console.log(`Resources ${ids.join(', ')} have been deleted.`);
10
+ }
11
+ openConfirmationDialog(data) {
12
+ console.log(data.title, data.message);
13
+ return of(true);
14
+ }
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NotificationServicePlaceholder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
16
+ static { thisprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NotificationServicePlaceholder }); }
17
+ }
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NotificationServicePlaceholder, decorators: [{
19
+ type: Injectable
20
+ }] });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1ub3RpZmljYXRpb24tc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmdkdXgvdXRpbC9zdG9yZS9saXN0L3NyYy9saWIvc2VydmljZXMvbGlzdC1ub3RpZmljYXRpb24tc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBR3RDLE1BQU0sT0FBTyw4QkFBOEI7SUFDekMsWUFBWSxDQUFDLE1BQWdCO1FBQzNCLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxZQUFZLENBQUMsR0FBYTtRQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsc0JBQXNCLENBQUMsSUFBd0M7UUFDN0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV0QyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQixDQUFDOzhHQWJVLDhCQUE4QjtrSEFBOUIsOEJBQThCOzsyRkFBOUIsOEJBQThCO2tCQUQxQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBFcnJvckR0bywgTGlzdE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICdAbmdkdXgvZGF0YS1tb2RlbC1jb21tb24nO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uU2VydmljZVBsYWNlaG9sZGVyIGltcGxlbWVudHMgTGlzdE5vdGlmaWNhdGlvblNlcnZpY2U8RXJyb3JEdG8+IHtcclxuICBvbkxpc3RFcnJvcnMoZXJyb3JzOiBFcnJvckR0byk6IHZvaWQge1xyXG4gICAgY29uc29sZS5lcnJvcignRVJST1InLCBlcnJvcnMpO1xyXG4gIH1cclxuXHJcbiAgb25MaXN0RGVsZXRlKGlkczogc3RyaW5nW10pOiB2b2lkIHtcclxuICAgIGNvbnNvbGUubG9nKGBSZXNvdXJjZXMgJHtpZHMuam9pbignLCAnKX0gaGF2ZSBiZWVuIGRlbGV0ZWQuYCk7XHJcbiAgfVxyXG5cclxuICBvcGVuQ29uZmlybWF0aW9uRGlhbG9nKGRhdGE6IHsgbWVzc2FnZTogc3RyaW5nOyB0aXRsZTogc3RyaW5nIH0pOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgIGNvbnNvbGUubG9nKGRhdGEudGl0bGUsIGRhdGEubWVzc2FnZSk7XHJcblxyXG4gICAgcmV0dXJuIG9mKHRydWUpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,50 @@
1
+ import { createEffect, ofType } from '@ngrx/effects';
2
+ import { select } from '@ngrx/store';
3
+ import { of } from 'rxjs';
4
+ import { catchError, exhaustMap, filter, map, switchMap, tap, withLatestFrom } from 'rxjs/operators';
5
+ export class AbstractListEffects {
6
+ constructor(actions$, store, service, listActions, listSelectors, notificationService) {
7
+ this.actions$ = actions$;
8
+ this.store = store;
9
+ this.service = service;
10
+ this.listActions = listActions;
11
+ this.listSelectors = listSelectors;
12
+ this.notificationService = notificationService;
13
+ this.reload$ = createEffect(() => this.actions$.pipe(ofType(this.listActions.changePageSize, this.listActions.changeSorting, this.listActions.changeFiltering, this.listActions.changePagingOptions, this.listActions.changeRequestParams, this.listActions.initialize, this.listActions.reset, this.listActions.changePageNumber, this.listActions.patchSuccess, this.listActions.deleteSuccess), map(() => this.listActions.loadPage())));
14
+ this.loadFirstPage$ = createEffect(() => this.actions$.pipe(ofType(this.listActions.loadFirstPage), map(() => this.listActions.changePageNumber({ pageNumber: 1 }))));
15
+ this.loadPreviousPage$ = createEffect(() => this.actions$.pipe(ofType(this.listActions.loadPreviousPage), withLatestFrom(this.store.pipe(select(this.listSelectors.getCurrentPageNumber))), filter(([, currentPageNumber]) => currentPageNumber > 1), map(([, currentPageNumber]) => this.listActions.changePageNumber({ pageNumber: currentPageNumber - 1 }))));
16
+ this.loadNextPage$ = createEffect(() => this.actions$.pipe(ofType(this.listActions.loadNextPage), withLatestFrom(this.store.pipe(select(this.listSelectors.isLastPage)), this.store.pipe(select(this.listSelectors.getCurrentPageNumber))), filter(([, isLastPage]) => !isLastPage), map(([, , currentPageNumber]) => this.listActions.changePageNumber({ pageNumber: currentPageNumber + 1 }))));
17
+ this.loadPage$ = createEffect(() => this.actions$.pipe(ofType(this.listActions.loadPage), withLatestFrom(this.store.pipe(select(this.listSelectors.getPagingOptions)), this.store.pipe(select(this.listSelectors.getSortingOptions)), this.store.pipe(select(this.listSelectors.getFilteringOptions)), this.store.pipe(select(this.listSelectors.getRequestParameters))), switchMap(([, pagingOptions, sortingOptions, filteringOptions, requestParameters]) => {
18
+ return this.service
19
+ .loadResources({
20
+ pagingOptions,
21
+ sortingOptions,
22
+ filteringOptions,
23
+ requestParameters
24
+ })
25
+ .pipe(map(resources => this.listActions.loadPageSuccess({
26
+ resources,
27
+ pagingOptions
28
+ })), catchError((errors) => of(this.listActions.loadPageFailure({ errors }))));
29
+ })));
30
+ this.patch$ = createEffect(() => this.actions$.pipe(ofType(this.listActions.patch), exhaustMap(action => {
31
+ if (!this.service.patchResources) {
32
+ throw new Error('patchResources not implement in the ListService');
33
+ }
34
+ return this.service.patchResources(action.resourceIds, action.resource).pipe(map(resources => this.listActions.patchSuccess({ resources })), catchError((errors) => of(this.listActions.patchFailure({ errors }))));
35
+ })));
36
+ this.delete$ = createEffect(() => this.actions$.pipe(ofType(this.listActions.delete), exhaustMap(({ resourceIds }) => {
37
+ if (!this.service.deleteResources) {
38
+ throw new Error('deleteResources not implement in the ListService');
39
+ }
40
+ return this.service.deleteResources(resourceIds).pipe(map(() => this.listActions.deleteSuccess({ resourceIds })), catchError((errors) => of(this.listActions.deleteFailure({ errors }))));
41
+ })));
42
+ this.deleteSuccess$ = createEffect(() => this.actions$.pipe(ofType(this.listActions.deleteSuccess), tap(({ resourceIds }) => {
43
+ this.notificationService?.onListDelete(resourceIds);
44
+ })), { dispatch: false });
45
+ this.errorsHandler$ = createEffect(() => this.actions$.pipe(ofType(this.listActions.loadPageFailure, this.listActions.deleteFailure, this.listActions.patchFailure), tap(({ errors }) => {
46
+ this.notificationService?.onListErrors(errors);
47
+ })), { dispatch: false });
48
+ }
49
+ }
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtbGlzdC1lZmZlY3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZ2R1eC91dGlsL3N0b3JlL2xpc3Qvc3JjL2xpYi9zdGF0ZS1nZW5lcmF0b3IvYWJzdHJhY3QtbGlzdC1lZmZlY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBVyxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBUyxNQUFNLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQixPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJckcsTUFBTSxPQUFnQixtQkFBbUI7SUFtSXZDLFlBQ3FCLFFBQWlCLEVBQ2pCLEtBQVksRUFDWixPQUFrQyxFQUNsQyxXQUF5QyxFQUN6QyxhQUEwQyxFQUMxQyxtQkFBZ0Q7UUFMaEQsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNqQixVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQ1osWUFBTyxHQUFQLE9BQU8sQ0FBMkI7UUFDbEMsZ0JBQVcsR0FBWCxXQUFXLENBQThCO1FBQ3pDLGtCQUFhLEdBQWIsYUFBYSxDQUE2QjtRQUMxQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQTZCO1FBeElyRSxZQUFPLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUMxQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDaEIsTUFBTSxDQUNKLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUMvQixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFDOUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQ2hDLElBQUksQ0FBQyxXQUFXLENB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Q0FBQyxJQUFJLENBQ2hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxFQUN0QyxHQUFHLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUU7WUFDdEIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN0RCxDQUFDLENBQUMsQ0FDSCxFQUNILEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUNwQixDQUFDO1FBRUYsbUJBQWMsR0FBRyxZQUFZLENBQzNCLEdBQUcsRUFBRSxDQUNILElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNoQixNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsRUFDdkcsR0FBRyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakQsQ0FBQyxDQUFDLENBQ0gsRUFDSCxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FDcEIsQ0FBQztJQVNDLENBQUM7Q0FDTCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExpc3ROb3RpZmljYXRpb25TZXJ2aWNlLCBMaXN0U2VydmljZSB9IGZyb20gJ0BuZ2R1eC9kYXRhLW1vZGVsLWNvbW1vbic7XHJcbmltcG9ydCB7IEFjdGlvbnMsIGNyZWF0ZUVmZmVjdCwgb2ZUeXBlIH0gZnJvbSAnQG5ncngvZWZmZWN0cyc7XHJcbmltcG9ydCB7IFN0b3JlLCBzZWxlY3QgfSBmcm9tICdAbmdyeC9zdG9yZSc7XHJcbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGV4aGF1c3RNYXAsIGZpbHRlciwgbWFwLCBzd2l0Y2hNYXAsIHRhcCwgd2l0aExhdGVzdEZyb20gfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBMaXN0QWN0aW9ucywgTGlzdFNlbGVjdG9ycyB9IGZyb20gJy4uL21vZGVscy9saXN0Lm1vZGVsJztcclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdExpc3RFZmZlY3RzPFQsIEUgPSB1bmtub3duLCBTID0gVCwgUGFyYW1zID0gUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xyXG4gIHJlbG9hZCQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cclxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgICAgb2ZUeXBlKFxyXG4gICAgICAgIHRoaXMubGlzdEFjdGlvbnMuY2hhbmdlUGFnZVNpemUsXHJcbiAgICAgICAgdGhpcy5saXN0QWN0aW9ucy5jaGFuZ2VTb3J0aW5nLFxyXG4gICAgICAgIHRoaXMubGlzdEFjdGlvbnMuY2hhbmdlRmlsdGVyaW5nLFxyXG4gICAgICAgIHRoaXMubGlzdEFjdGlvbnMuY2hhbmdlUGFnaW5nT3B0aW9ucyxcclxuICAgICAgICB0aGlzLmxpc3RBY3Rpb25zLmNoYW5nZVJlcXVlc3RQYXJhbXMsXHJcbiAgICAgICAgdGhpcy5saXN0QWN0aW9ucy5pbml0aWFsaXplLFxyXG4gICAgICAgIHRoaXMubGlzdEFjdGlvbnMucmVzZXQsXHJcbiAgICAgICAgdGhpcy5saXN0QWN0aW9ucy5jaGFuZ2VQYWdlTnVtYmVyLFxyXG4gICAgICAgIHRoaXMubGlzdEFjdGlvbnMucGF0Y2hTdWNjZXNzLFxyXG4gICAgICAgIHRoaXMubGlzdEFjdGlvbnMuZGVsZXRlU3VjY2Vzc1xyXG4gICAgICApLFxyXG4gICAgICBtYXAoKCkgPT4gdGhpcy5saXN0QWN0aW9ucy5sb2FkUGFnZSgpKVxyXG4gICAgKVxyXG4gICk7XHJcblxyXG4gIGxvYWRGaXJzdFBhZ2UkID0gY3JlYXRlRWZmZWN0KCgpID0+XHJcbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgICAgIG9mVHlwZSh0aGlzLmxpc3RBY3Rpb25zLmxvYWRGaXJzdFBhZ2UpLFxyXG4gICAgICBtYXAoKCkgPT4gdGhpcy5saXN0QWN0aW9ucy5jaGFuZ2VQYWdlTnVtYmVyKHsgcGFnZU51bWJlcjogMSB9KSlcclxuICAgIClcclxuICApO1xyXG5cclxuICBsb2FkUHJldmlvdXNQYWdlJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxyXG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxyXG4gICAgICBvZlR5cGUodGhpcy5saXN0QWN0aW9ucy5sb2FkUHJldmlvdXNQYWdlKSxcclxuICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5zdG9yZS5waXBlKHNlbGVjdCh0aGlzLmxpc3RTZWxlY3RvcnMuZ2V0Q3VycmVudFBhZ2VOdW1iZXIpKSksXHJcbiAgICAgIGZpbHRlcigoWywgY3VycmVudFBhZ2VOdW1iZXJdKSA9PiBjdXJyZW50UGFnZU51bWJlciA+IDEpLFxyXG4gICAgICBtYXAoKFssIGN1cnJlbnRQYWdlTnVtYmVyXSkgPT4gdGhpcy5saXN0QWN0aW9ucy5jaGFuZ2VQYWdlTnVtYmVyKHsgcGFnZU51bWJlcjogY3VycmVudFBhZ2VOdW1iZXIgLSAxIH0pKVxyXG4gICAgKVxyXG4gICk7XHJcblxyXG4gIGxvYWROZXh0UGFnZSQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cclxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgICAgb2ZUeXBlKHRoaXMubGlzdEFjdGlvbnMubG9hZE5leHRQYWdlKSxcclxuICAgICAgd2l0aExhdGVzdEZyb20oXHJcbiAgICAgICAgdGhpcy5zdG9yZS5waXBlKHNlbGVjdCh0aGlzLmxpc3RTZWxlY3RvcnMuaXNMYXN0UGFnZSkpLFxyXG4gICAgICAgIHRoaXMuc3RvcmUucGlwZShzZWxlY3QodGhpcy5saXN0U2VsZWN0b3JzLmdldEN1cnJlbnRQYWdlTnVtYmVyKSlcclxuICAgICAgKSxcclxuICAgICAgZmlsdGVyKChbLCBpc0xhc3RQYWdlXSkgPT4gIWlzTGFzdFBhZ2UpLFxyXG4gICAgICBtYXAoKFssICwgY3VycmVudFBhZ2VOdW1iZXJdKSA9PiB0aGlzLmxpc3RBY3Rpb25zLmNoYW5nZVBhZ2VOdW1iZXIoeyBwYWdlTnVtYmVyOiBjdXJyZW50UGFnZU51bWJlciArIDEgfSkpXHJcbiAgICApXHJcbiAgKTtcclxuXHJcbiAgbG9hZFBhZ2UkID0gY3JlYXRlRWZmZWN0KCgpID0+XHJcbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgICAgIG9mVHlwZSh0aGlzLmxpc3RBY3Rpb25zLmxvYWRQYWdlKSxcclxuICAgICAgd2l0aExhdGVzdEZyb20oXHJcbiAgICAgICAgdGhpcy5zdG9yZS5waXBlKHNlbGVjdCh0aGlzLmxpc3RTZWxlY3RvcnMuZ2V0UGFnaW5nT3B0aW9ucykpLFxyXG4gICAgICAgIHRoaXMuc3RvcmUucGlwZShzZWxlY3QodGhpcy5saXN0U2VsZWN0b3JzLmdldFNvcnRpbmdPcHRpb25zKSksXHJcbiAgICAgICAgdGhpcy5zdG9yZS5waXBlKHNlbGVjdCh0aGlzLmxpc3RTZWxlY3RvcnMuZ2V0RmlsdGVyaW5nT3B0aW9ucykpLFxyXG4gICAgICAgIHRoaXMuc3RvcmUucGlwZShzZWxlY3QodGhpcy5saXN0U2VsZWN0b3JzLmdldFJlcXVlc3RQYXJhbWV0ZXJzKSlcclxuICAgICAgKSxcclxuICAgICAgc3dpdGNoTWFwKChbLCBwYWdpbmdPcHRpb25zLCBzb3J0aW5nT3B0aW9ucywgZmlsdGVyaW5nT3B0aW9ucywgcmVxdWVzdFBhcmFtZXRlcnNdKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VydmljZVxyXG4gICAgICAgICAgLmxvYWRSZXNvdXJjZXMoe1xyXG4gICAgICAgICAgICBwYWdpbmdPcHRpb25zLFxyXG4gICAgICAgICAgICBzb3J0aW5nT3B0aW9ucyxcclxuICAgICAgICAgICAgZmlsdGVyaW5nT3B0aW9ucyxcclxuICAgICAgICAgICAgcmVxdWVzdFBhcmFtZXRlcnNcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgbWFwKHJlc291cmNlcyA9PlxyXG4gICAgICAgICAgICAgIHRoaXMubGlzdEFjdGlvbnMubG9hZFBhZ2VTdWNjZXNzKHtcclxuICAgICAgICAgICAgICAgIHJlc291cmNlcyxcclxuICAgICAgICAgICAgICAgIHBhZ2luZ09wdGlvbnNcclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcnM6IEUpID0+IG9mKHRoaXMubGlzdEFjdGlvbnMubG9hZFBhZ2VGYWlsdXJlKHsgZXJyb3JzIH0pKSlcclxuICAgICAgICAgICk7XHJcbiAgICAgIH0pXHJcbiAgICApXHJcbiAgKTtcclxuXHJcbiAgcGF0Y2gkID0gY3JlYXRlRWZmZWN0KCgpID0+XHJcbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgICAgIG9mVHlwZSh0aGlzLmxpc3RBY3Rpb25zLnBhdGNoKSxcclxuICAgICAgZXhoYXVzdE1hcChhY3Rpb24gPT4ge1xyXG4gICAgICAgIGlmICghdGhpcy5zZXJ2aWNlLnBhdGNoUmVzb3VyY2VzKSB7XHJcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3BhdGNoUmVzb3VyY2VzIG5vdCBpbXBsZW1lbnQgaW4gdGhlIExpc3RTZXJ2aWNlJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLnBhdGNoUmVzb3VyY2VzKGFjdGlvbi5yZXNvdXJjZUlkcywgYWN0aW9uLnJlc291cmNlKS5waXBlKFxyXG4gICAgICAgICAgbWFwKHJlc291cmNlcyA9PiB0aGlzLmxpc3RBY3Rpb25zLnBhdGNoU3VjY2Vzcyh7IHJlc291cmNlcyB9KSksXHJcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcnM6IEUpID0+IG9mKHRoaXMubGlzdEFjdGlvbnMucGF0Y2hGYWlsdXJlKHsgZXJyb3JzIH0pKSlcclxuICAgICAgICApO1xyXG4gICAgICB9KVxyXG4gICAgKVxyXG4gICk7XHJcblxyXG4gIGRlbGV0ZSQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cclxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgICAgb2ZUeXBlKHRoaXMubGlzdEFjdGlvbnMuZGVsZXRlKSxcclxuICAgICAgZXhoYXVzdE1hcCgoeyByZXNvdXJjZUlkcyB9KSA9PiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnNlcnZpY2UuZGVsZXRlUmVzb3VyY2VzKSB7XHJcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2RlbGV0ZVJlc291cmNlcyBub3QgaW1wbGVtZW50IGluIHRoZSBMaXN0U2VydmljZScpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VydmljZS5kZWxldGVSZXNvdXJjZXMocmVzb3VyY2VJZHMpLnBpcGUoXHJcbiAgICAgICAgICBtYXAoKCkgPT4gdGhpcy5saXN0QWN0aW9ucy5kZWxldGVTdWNjZXNzKHsgcmVzb3VyY2VJZHMgfSkpLFxyXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3JzOiBFKSA9PiBvZih0aGlzLmxpc3RBY3Rpb25zLmRlbGV0ZUZhaWx1cmUoeyBlcnJvcnMgfSkpKVxyXG4gICAgICAgICk7XHJcbiAgICAgIH0pXHJcbiAgICApXHJcbiAgKTtcclxuXHJcbiAgZGVsZXRlU3VjY2VzcyQgPSBjcmVhdGVFZmZlY3QoXHJcbiAgICAoKSA9PlxyXG4gICAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgICAgICAgb2ZUeXBlKHRoaXMubGlzdEFjdGlvbnMuZGVsZXRlU3VjY2VzcyksXHJcbiAgICAgICAgdGFwKCh7IHJlc291cmNlSWRzIH0pID0+IHtcclxuICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZT8ub25MaXN0RGVsZXRlKHJlc291cmNlSWRzKTtcclxuICAgICAgICB9KVxyXG4gICAgICApLFxyXG4gICAgeyBkaXNwYXRjaDogZmFsc2UgfVxyXG4gICk7XHJcblxyXG4gIGVycm9yc0hhbmRsZXIkID0gY3JlYXRlRWZmZWN0KFxyXG4gICAgKCkgPT5cclxuICAgICAgdGhpcy5hY3Rpb25zJC5waXBlKFxyXG4gICAgICAgIG9mVHlwZSh0aGlzLmxpc3RBY3Rpb25zLmxvYWRQYWdlRmFpbHVyZSwgdGhpcy5saXN0QWN0aW9ucy5kZWxldGVGYWlsdXJlLCB0aGlzLmxpc3RBY3Rpb25zLnBhdGNoRmFpbHVyZSksXHJcbiAgICAgICAgdGFwKCh7IGVycm9ycyB9KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2U/Lm9uTGlzdEVycm9ycyhlcnJvcnMpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICksXHJcbiAgICB7IGRpc3BhdGNoOiBmYWxzZSB9XHJcbiAgKTtcclxuXHJcbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGFjdGlvbnMkOiBBY3Rpb25zLFxyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHN0b3JlOiBTdG9yZSxcclxuICAgIHByb3RlY3RlZCByZWFkb25seSBzZXJ2aWNlOiBMaXN0U2VydmljZTxULCBTLCBQYXJhbXM+LFxyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGxpc3RBY3Rpb25zOiBMaXN0QWN0aW9uczxULCBFLCBTLCBQYXJhbXM+LFxyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGxpc3RTZWxlY3RvcnM6IExpc3RTZWxlY3RvcnM8UywgRSwgUGFyYW1zPixcclxuICAgIHByb3RlY3RlZCByZWFkb25seSBub3RpZmljYXRpb25TZXJ2aWNlPzogTGlzdE5vdGlmaWNhdGlvblNlcnZpY2U8RT5cclxuICApIHt9XHJcbn1cclxuIl19
@@ -0,0 +1,44 @@
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import { ReducerManager, createFeatureSelector } from '@ngrx/store';
3
+ import { LIST_FEATURE_KEY } from '../models/list.model';
4
+ import { createListActions } from './list-actions';
5
+ import { createListEntityAdapter, createListReducer } from './list-reducer';
6
+ import { createListSelectors } from './list-selectors';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@ngrx/store";
9
+ export class AbstractListReducerManager {
10
+ constructor(reducerManager, featureKey) {
11
+ this.reducerManager = reducerManager;
12
+ this.featureKey = featureKey;
13
+ this.actions = this.getActions();
14
+ this.entityAdapter = this.getEntityAdapter();
15
+ this.addReducer();
16
+ this.selectors = this.getSelectors();
17
+ }
18
+ getActions() {
19
+ return createListActions(this.featureKey);
20
+ }
21
+ getEntityAdapter() {
22
+ return createListEntityAdapter();
23
+ }
24
+ addReducer() {
25
+ const currentReducers = Object.keys(this.reducerManager.currentReducers || {});
26
+ if (!currentReducers.includes(this.featureKey)) {
27
+ const reducer = createListReducer(this.entityAdapter, this.actions);
28
+ this.reducerManager.addReducer(this.featureKey, reducer);
29
+ }
30
+ }
31
+ getSelectors() {
32
+ const getState = createFeatureSelector(this.featureKey);
33
+ return createListSelectors(this.entityAdapter, getState);
34
+ }
35
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: AbstractListReducerManager, deps: [{ token: i1.ReducerManager }, { token: LIST_FEATURE_KEY }], target: i0.ɵɵFactoryTarget.Injectable }); }
36
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: AbstractListReducerManager }); }
37
+ }
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: AbstractListReducerManager, decorators: [{
39
+ type: Injectable
40
+ }], ctorParameters: () => [{ type: i1.ReducerManager }, { type: undefined, decorators: [{
41
+ type: Inject,
42
+ args: [LIST_FEATURE_KEY]
43
+ }] }] });
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtbGlzdC1zdGF0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZ2R1eC91dGlsL3N0b3JlL2xpc3Qvc3JjL2xpYi9zdGF0ZS1nZW5lcmF0b3IvYWJzdHJhY3QtbGlzdC1zdGF0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxjQUFjLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUF5QyxNQUFNLHNCQUFzQixDQUFDO0FBQy9GLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7QUFHdkQsTUFBTSxPQUFnQiwwQkFBMEI7SUFVOUMsWUFDbUIsY0FBOEIsRUFDSixVQUFrQjtRQUQ1QyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDSixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBRTdELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDN0MsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFUyxVQUFVO1FBQ2xCLE9BQU8saUJBQWlCLENBQWtCLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLE9BQU8sdUJBQXVCLEVBQUssQ0FBQztJQUN0QyxDQUFDO0lBRVMsVUFBVTtRQUNsQixNQUFNLGVBQWUsR0FBYSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRXpGLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQy9DLE1BQU0sT0FBTyxHQUFHLGlCQUFpQixDQUFrQixJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNyRixJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzNELENBQUM7SUFDSCxDQUFDO0lBRVMsWUFBWTtRQUNwQixNQUFNLFFBQVEsR0FBRyxxQkFBcUIsQ0FBMEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pGLE9BQU8sbUJBQW1CLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMzRCxDQUFDOzhHQXhDbUIsMEJBQTBCLGdEQVlwQyxnQkFBZ0I7a0hBWk4sMEJBQTBCOzsyRkFBMUIsMEJBQTBCO2tCQUQvQyxVQUFVOzswQkFhTixNQUFNOzJCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBFbnRpdHlBZGFwdGVyIH0gZnJvbSAnQG5ncngvZW50aXR5JztcclxuaW1wb3J0IHsgUmVkdWNlck1hbmFnZXIsIGNyZWF0ZUZlYXR1cmVTZWxlY3RvciB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcclxuaW1wb3J0IHsgTElTVF9GRUFUVVJFX0tFWSwgTGlzdEFjdGlvbnMsIExpc3RTZWxlY3RvcnMsIExpc3RTdGF0ZSB9IGZyb20gJy4uL21vZGVscy9saXN0Lm1vZGVsJztcclxuaW1wb3J0IHsgY3JlYXRlTGlzdEFjdGlvbnMgfSBmcm9tICcuL2xpc3QtYWN0aW9ucyc7XHJcbmltcG9ydCB7IGNyZWF0ZUxpc3RFbnRpdHlBZGFwdGVyLCBjcmVhdGVMaXN0UmVkdWNlciB9IGZyb20gJy4vbGlzdC1yZWR1Y2VyJztcclxuaW1wb3J0IHsgY3JlYXRlTGlzdFNlbGVjdG9ycyB9IGZyb20gJy4vbGlzdC1zZWxlY3RvcnMnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RMaXN0UmVkdWNlck1hbmFnZXI8XHJcbiAgVCBleHRlbmRzIHsgW2tleTogc3RyaW5nXTogYW55IH0sXHJcbiAgRSxcclxuICBTIGV4dGVuZHMgeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IFQsXHJcbiAgUGFyYW1zID0gUmVjb3JkPHN0cmluZywgc3RyaW5nPlxyXG4+IHtcclxuICBhY3Rpb25zOiBMaXN0QWN0aW9uczxULCBFLCBTLCBQYXJhbXM+O1xyXG4gIHNlbGVjdG9yczogTGlzdFNlbGVjdG9yczxTLCBFLCBQYXJhbXM+O1xyXG4gIHByaXZhdGUgZW50aXR5QWRhcHRlcjogRW50aXR5QWRhcHRlcjxTPjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlZHVjZXJNYW5hZ2VyOiBSZWR1Y2VyTWFuYWdlcixcclxuICAgIEBJbmplY3QoTElTVF9GRUFUVVJFX0tFWSkgcHJpdmF0ZSByZWFkb25seSBmZWF0dXJlS2V5OiBzdHJpbmdcclxuICApIHtcclxuICAgIHRoaXMuYWN0aW9ucyA9IHRoaXMuZ2V0QWN0aW9ucygpO1xyXG4gICAgdGhpcy5lbnRpdHlBZGFwdGVyID0gdGhpcy5nZXRFbnRpdHlBZGFwdGVyKCk7XHJcbiAgICB0aGlzLmFkZFJlZHVjZXIoKTtcclxuICAgIHRoaXMuc2VsZWN0b3JzID0gdGhpcy5nZXRTZWxlY3RvcnMoKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBnZXRBY3Rpb25zKCkge1xyXG4gICAgcmV0dXJuIGNyZWF0ZUxpc3RBY3Rpb25zPFQsIEUsIFMsIFBhcmFtcz4odGhpcy5mZWF0dXJlS2V5KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RW50aXR5QWRhcHRlcigpIHtcclxuICAgIHJldHVybiBjcmVhdGVMaXN0RW50aXR5QWRhcHRlcjxTPigpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGFkZFJlZHVjZXIoKSB7XHJcbiAgICBjb25zdCBjdXJyZW50UmVkdWNlcnM6IHN0cmluZ1tdID0gT2JqZWN0LmtleXModGhpcy5yZWR1Y2VyTWFuYWdlci5jdXJyZW50UmVkdWNlcnMgfHwge30pO1xyXG5cclxuICAgIGlmICghY3VycmVudFJlZHVjZXJzLmluY2x1ZGVzKHRoaXMuZmVhdHVyZUtleSkpIHtcclxuICAgICAgY29uc3QgcmVkdWNlciA9IGNyZWF0ZUxpc3RSZWR1Y2VyPFQsIEUsIFMsIFBhcmFtcz4odGhpcy5lbnRpdHlBZGFwdGVyLCB0aGlzLmFjdGlvbnMpO1xyXG4gICAgICB0aGlzLnJlZHVjZXJNYW5hZ2VyLmFkZFJlZHVjZXIodGhpcy5mZWF0dXJlS2V5LCByZWR1Y2VyKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBnZXRTZWxlY3RvcnMoKSB7XHJcbiAgICBjb25zdCBnZXRTdGF0ZSA9IGNyZWF0ZUZlYXR1cmVTZWxlY3RvcjxMaXN0U3RhdGU8UywgRSwgUGFyYW1zPj4odGhpcy5mZWF0dXJlS2V5KTtcclxuICAgIHJldHVybiBjcmVhdGVMaXN0U2VsZWN0b3JzKHRoaXMuZW50aXR5QWRhcHRlciwgZ2V0U3RhdGUpO1xyXG4gIH1cclxufVxyXG4iXX0=