@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.
- package/{esm2020 → esm2022}/index.mjs +11 -11
- package/{esm2020 → esm2022}/lib/+state/effects.mjs +23 -23
- package/esm2022/lib/+state/state.service.mjs +55 -0
- package/esm2022/lib/models/list.model.mjs +7 -0
- package/{esm2020 → esm2022}/lib/ngdux-list-state.module.mjs +53 -53
- package/{esm2020 → esm2022}/lib/services/list-notification-service.mjs +21 -21
- package/esm2022/lib/state-generator/abstract-list-effects.mjs +50 -0
- package/esm2022/lib/state-generator/abstract-list-state.service.mjs +44 -0
- package/{esm2020 → esm2022}/lib/state-generator/abstract-list.facade.mjs +85 -91
- package/{esm2020 → esm2022}/lib/state-generator/list-actions.mjs +58 -63
- package/esm2022/lib/state-generator/list-reducer.mjs +104 -0
- package/esm2022/lib/state-generator/list-selectors.mjs +80 -0
- package/{esm2020 → esm2022}/lib/state-generator/list-state.mjs +17 -17
- package/{esm2020 → esm2022}/ngdux-list.mjs +4 -4
- package/{fesm2020 → fesm2022}/ngdux-list.mjs +523 -550
- package/fesm2022/ngdux-list.mjs.map +1 -0
- package/index.d.ts +11 -11
- package/lib/+state/effects.d.ts +14 -14
- package/lib/+state/state.service.d.ts +22 -22
- package/lib/models/list.model.d.ts +191 -195
- package/lib/ngdux-list-state.module.d.ts +23 -23
- package/lib/services/list-notification-service.d.ts +13 -13
- package/lib/state-generator/abstract-list-effects.d.ts +49 -59
- package/lib/state-generator/abstract-list-state.service.d.ts +21 -21
- package/lib/state-generator/abstract-list.facade.d.ts +45 -49
- package/lib/state-generator/list-actions.d.ts +2 -2
- package/lib/state-generator/list-reducer.d.ts +10 -10
- package/lib/state-generator/list-selectors.d.ts +4 -4
- package/lib/state-generator/list-state.d.ts +12 -12
- package/package.json +11 -120
- package/esm2020/lib/+state/state.service.mjs +0 -55
- package/esm2020/lib/models/list.model.mjs +0 -7
- package/esm2020/lib/state-generator/abstract-list-effects.mjs +0 -66
- package/esm2020/lib/state-generator/abstract-list-state.service.mjs +0 -44
- package/esm2020/lib/state-generator/list-reducer.mjs +0 -104
- package/esm2020/lib/state-generator/list-selectors.mjs +0 -80
- package/fesm2015/ngdux-list.mjs +0 -537
- package/fesm2015/ngdux-list.mjs.map +0 -1
- 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,
|
|
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
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
39
|
-
type: NgModule,
|
|
40
|
-
args: [{
|
|
41
|
-
providers: [ListStateService]
|
|
42
|
-
}]
|
|
43
|
-
}], ctorParameters:
|
|
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,
|
|
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 { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.2.2", ngImport: i0, type: NgduxListStateModule }); }
|
|
36
|
+
static { this.ɵinj = 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
|
-
|
|
17
|
-
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
19
|
-
type: Injectable
|
|
20
|
-
}] });
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
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 { this.ɵprov = 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=
|