@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,49 +1,45 @@
1
- import { ActionPayload } from '@ngdux/store-common';
2
- import { Store } from '@ngrx/store';
3
- import { ListActions, ListSelectors } from '../models/list.model';
4
- export declare abstract class AbstractListFacade<T, E, S = T, Params = Record<string, string>> {
5
- protected readonly store: Store;
6
- private readonly listActions;
7
- private readonly listSelectors;
8
- readonly resources$: import("rxjs").Observable<S[]>;
9
- readonly loadingState$: import("rxjs").Observable<import("@ngdux/data-model-common").RequestState>;
10
- readonly requestState$: import("rxjs").Observable<import("@ngdux/data-model-common").RequestState>;
11
- readonly errors$: import("rxjs").Observable<E | undefined>;
12
- readonly isReady$: import("rxjs").Observable<boolean>;
13
- readonly areSelectedReady$: import("rxjs").Observable<boolean>;
14
- readonly currentPageData$: import("rxjs").Observable<S[]>;
15
- readonly currentPageNumber$: import("rxjs").Observable<number>;
16
- readonly filteringOptions$: import("rxjs").Observable<import("@ngdux/data-model-common").FilteringOptions>;
17
- readonly requestParameters$: import("rxjs").Observable<Params | undefined>;
18
- readonly lastPageNumber$: import("rxjs").Observable<number | undefined>;
19
- readonly pagingOptions$: import("rxjs").Observable<import("@ngdux/data-model-common").PagingOptions>;
20
- readonly requestOptions$: import("rxjs").Observable<import("@ngdux/data-model-common").RequestOptions<Record<string, string>>>;
21
- readonly sortingOptions$: import("rxjs").Observable<import("@ngdux/data-model-common").SortingOptions>;
22
- readonly selectedItems$: import("rxjs").Observable<S[]>;
23
- readonly totalCount$: import("rxjs").Observable<number>;
24
- constructor(store: Store, listActions: ListActions<T, E, S, Params>, listSelectors: ListSelectors<S, E, Params>);
25
- setPageSize(props: ActionPayload<ListActions<T, E, S, Params>['setPageSize']>): void;
26
- setFiltering(props: ActionPayload<ListActions<T, E, S, Params>['setFiltering']>): void;
27
- setSorting(props: ActionPayload<ListActions<T, E, S, Params>['setSorting']>): void;
28
- setRequestParameters(props: ActionPayload<ListActions<T, E, S, Params>['setRequestParams']>): void;
29
- changeFiltering(props: ActionPayload<ListActions<T, E, S, Params>['changeFiltering']>): void;
30
- changePagingOptions(props: ActionPayload<ListActions<T, E, S, Params>['changePagingOptions']>): void;
31
- changePageSize(props: ActionPayload<ListActions<T, E, S, Params>['changePageSize']>): void;
32
- changePageNumber(props: ActionPayload<ListActions<T, E, S, Params>['changePageNumber']>): void;
33
- changeSelectedResources(props: ActionPayload<ListActions<T, E, S, Params>['changeSelectedResources']>): void;
34
- changeSorting(props: ActionPayload<ListActions<T, E, S, Params>['changeSorting']>): void;
35
- changeRequestParams(props: ActionPayload<ListActions<T, E, S, Params>['changeRequestParams']>): void;
36
- loadPage(): void;
37
- loadFirstPage(): void;
38
- loadNextPage(): void;
39
- loadPreviousPage(): void;
40
- patch(props: ActionPayload<ListActions<T, E, S, Params>['patch']>): void;
41
- delete(props: ActionPayload<ListActions<T, E, S, Params>['delete']>): void;
42
- initialize(): void;
43
- reinitialize(): void;
44
- resetRequestState(): void;
45
- /**
46
- * @deprecated The method will be removed. The AbstractFacade will not be responsible for it anymore
47
- */
48
- showRemovalsConfirmation(): void;
49
- }
1
+ import { ActionPayload } from '@ngdux/store-common';
2
+ import { Store } from '@ngrx/store';
3
+ import { ListActions, ListSelectors } from '../models/list.model';
4
+ export declare abstract class AbstractListFacade<T, E, S = T, Params = Record<string, string>> {
5
+ protected readonly store: Store;
6
+ private readonly listActions;
7
+ private readonly listSelectors;
8
+ readonly resources$: import("rxjs").Observable<S[]>;
9
+ readonly loadingState$: import("rxjs").Observable<import("@ngdux/data-model-common").RequestState>;
10
+ readonly requestState$: import("rxjs").Observable<import("@ngdux/data-model-common").RequestState>;
11
+ readonly errors$: import("rxjs").Observable<E | undefined>;
12
+ readonly isReady$: import("rxjs").Observable<boolean>;
13
+ readonly areSelectedReady$: import("rxjs").Observable<boolean>;
14
+ readonly currentPageData$: import("rxjs").Observable<S[]>;
15
+ readonly currentPageNumber$: import("rxjs").Observable<number>;
16
+ readonly filteringOptions$: import("rxjs").Observable<import("@ngdux/data-model-common").FilteringOptions>;
17
+ readonly requestParameters$: import("rxjs").Observable<Params | undefined>;
18
+ readonly lastPageNumber$: import("rxjs").Observable<number | undefined>;
19
+ readonly pagingOptions$: import("rxjs").Observable<import("@ngdux/data-model-common").PagingOptions>;
20
+ readonly requestOptions$: import("rxjs").Observable<import("@ngdux/data-model-common").RequestOptions<Record<string, string>>>;
21
+ readonly sortingOptions$: import("rxjs").Observable<import("@ngdux/data-model-common").SortingField[]>;
22
+ readonly selectedItems$: import("rxjs").Observable<S[]>;
23
+ readonly totalCount$: import("rxjs").Observable<number>;
24
+ constructor(store: Store, listActions: ListActions<T, E, S, Params>, listSelectors: ListSelectors<S, E, Params>);
25
+ setPageSize(props: ActionPayload<ListActions<T, E, S, Params>['setPageSize']>): void;
26
+ setFiltering(props: ActionPayload<ListActions<T, E, S, Params>['setFiltering']>): void;
27
+ setSorting(props: ActionPayload<ListActions<T, E, S, Params>['setSorting']>): void;
28
+ setRequestParameters(props: ActionPayload<ListActions<T, E, S, Params>['setRequestParams']>): void;
29
+ changeFiltering(props: ActionPayload<ListActions<T, E, S, Params>['changeFiltering']>): void;
30
+ changePagingOptions(props: ActionPayload<ListActions<T, E, S, Params>['changePagingOptions']>): void;
31
+ changePageSize(props: ActionPayload<ListActions<T, E, S, Params>['changePageSize']>): void;
32
+ changePageNumber(props: ActionPayload<ListActions<T, E, S, Params>['changePageNumber']>): void;
33
+ changeSelectedResources(props: ActionPayload<ListActions<T, E, S, Params>['changeSelectedResources']>): void;
34
+ changeSorting(props: ActionPayload<ListActions<T, E, S, Params>['changeSorting']>): void;
35
+ changeRequestParams(props: ActionPayload<ListActions<T, E, S, Params>['changeRequestParams']>): void;
36
+ loadPage(): void;
37
+ loadFirstPage(): void;
38
+ loadNextPage(): void;
39
+ loadPreviousPage(): void;
40
+ patch(props: ActionPayload<ListActions<T, E, S, Params>['patch']>): void;
41
+ delete(props: ActionPayload<ListActions<T, E, S, Params>['delete']>): void;
42
+ initialize(): void;
43
+ reinitialize(): void;
44
+ resetRequestState(): void;
45
+ }
@@ -1,2 +1,2 @@
1
- import { ListActions } from '../models/list.model';
2
- export declare function createListActions<T, E, S = T, Params = Record<string, string>>(featureName: string): ListActions<T, E, S, Params>;
1
+ import { ListActions } from '../models/list.model';
2
+ export declare function createListActions<T, E, S = T, Params = Record<string, string>>(featureName: string): ListActions<T, E, S, Params>;
@@ -1,10 +1,10 @@
1
- import { EntityAdapter } from '@ngrx/entity';
2
- import { ActionReducer, ReducerTypes } from '@ngrx/store';
3
- import { ActionCreator } from '@ngrx/store/src/models';
4
- import { ListActions, ListState } from '../models/list.model';
5
- export declare function createListEntityAdapter<T extends {
6
- [key: string]: any;
7
- }>(idKey?: string): EntityAdapter<T>;
8
- export declare function createListReducer<T, E, S = T, Params = Record<string, string>>(entityAdapter: EntityAdapter<S>, actions: ListActions<T, E, S, Params>, actionHandlers?: ReducerTypes<ListState<S, E, Params>, ActionCreator[]>[], initialListState?: {
9
- [key: string]: unknown;
10
- }): ActionReducer<ListState<S, E, Params>>;
1
+ import { EntityAdapter } from '@ngrx/entity';
2
+ import { ActionReducer, ReducerTypes } from '@ngrx/store';
3
+ import { ActionCreator } from '@ngrx/store/src/models';
4
+ import { ListActions, ListState } from '../models/list.model';
5
+ export declare function createListEntityAdapter<T extends {
6
+ [key: string]: any;
7
+ }>(idKey?: string): EntityAdapter<T>;
8
+ export declare function createListReducer<T, E, S = T, Params = Record<string, string>>(entityAdapter: EntityAdapter<S>, actions: ListActions<T, E, S, Params>, actionHandlers?: ReducerTypes<ListState<S, E, Params>, ActionCreator[]>[], initialListState?: {
9
+ [key: string]: unknown;
10
+ }): ActionReducer<ListState<S, E, Params>>;
@@ -1,4 +1,4 @@
1
- import { EntityAdapter } from '@ngrx/entity';
2
- import { DefaultProjectorFn, MemoizedSelector } from '@ngrx/store';
3
- import { ListSelectors, ListState } from '../models/list.model';
4
- export declare function createListSelectors<T, E, Params = Record<string, string>>(entityAdapter: EntityAdapter<T>, getListState: MemoizedSelector<object, ListState<T, E, Params>, DefaultProjectorFn<ListState<T, E, Params>>>): ListSelectors<T, E, Params>;
1
+ import { EntityAdapter } from '@ngrx/entity';
2
+ import { DefaultProjectorFn, MemoizedSelector } from '@ngrx/store';
3
+ import { ListSelectors, ListState } from '../models/list.model';
4
+ export declare function createListSelectors<T, E, Params = Record<string, string>>(entityAdapter: EntityAdapter<T>, getListState: MemoizedSelector<object, ListState<T, E, Params>, DefaultProjectorFn<ListState<T, E, Params>>>): ListSelectors<T, E, Params>;
@@ -1,12 +1,12 @@
1
- import { Action } from '@ngrx/store';
2
- import { ListState } from '../models/list.model';
3
- export declare function createListState<T extends {
4
- [key: string]: any;
5
- }, E, S extends {
6
- [key: string]: any;
7
- } = T, Params = Record<string, string>>(featureName: string, idKey?: string): {
8
- actions: import("../models/list.model").ListActions<T, E, S, Params>;
9
- reducer: (state: ListState<S, E, Params>, action: Action) => ListState<S, E, Params>;
10
- selectors: import("../models/list.model").ListSelectors<S, E, Params>;
11
- entityAdapter: import("@ngrx/entity").EntityAdapter<S>;
12
- };
1
+ import { Action } from '@ngrx/store';
2
+ import { ListState } from '../models/list.model';
3
+ export declare function createListState<T extends {
4
+ [key: string]: any;
5
+ }, E, S extends {
6
+ [key: string]: any;
7
+ } = T, Params = Record<string, string>>(featureName: string, idKey?: string): {
8
+ actions: import("../models/list.model").ListActions<T, E, S, Params>;
9
+ reducer: (state: ListState<S, E, Params>, action: Action) => ListState<S, E, Params>;
10
+ selectors: import("../models/list.model").ListSelectors<S, E, Params>;
11
+ entityAdapter: import("@ngrx/entity").EntityAdapter<S>;
12
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ngdux/list",
3
- "version": "1.4.0",
3
+ "version": "3.0.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git@github.com:allanartuso/ngdux.git",
@@ -8,121 +8,14 @@
8
8
  },
9
9
  "homepage": "https://github.com/allanartuso/ngdux/tree/master/libs/ngdux/util/store/list#readme",
10
10
  "peerDependencies": {
11
- "@ngdux/data-model-common": "^1.0.0",
12
- "@angular/core": "^15.0.0",
13
- "@ngdux/store-common": "^1.0.0",
14
- "@ngrx/entity": "^15.0.0"
11
+ "@ngdux/data-model-common": "^3.0.0",
12
+ "@angular/core": "^17.0.0",
13
+ "@ngdux/store-common": "^3.0.0",
14
+ "@ngrx/entity": "^17.0.0",
15
+ "@ngrx/store": "^17.0.0",
16
+ "@ngrx/effects": "^17.0.0"
15
17
  },
16
- "default": {
17
- "name": "@ngdux/list",
18
- "version": "1.3.2",
19
- "repository": {
20
- "type": "git",
21
- "url": "git@github.com:allanartuso/ngdux.git",
22
- "directory": "/libs/ngdux/util/store/list"
23
- },
24
- "homepage": "https://github.com/allanartuso/ngdux/tree/master/libs/ngdux/util/store/list#readme",
25
- "peerDependencies": {
26
- "@ngdux/data-model-common": "^1.0.0",
27
- "@angular/core": "^15.0.0",
28
- "@ngdux/store-common": "^1.0.0",
29
- "@ngrx/entity": "^15.0.0"
30
- },
31
- "default": {
32
- "name": "@ngdux/list",
33
- "version": "1.3.1",
34
- "repository": {
35
- "type": "git",
36
- "url": "git@github.com:allanartuso/ngdux.git",
37
- "directory": "/libs/ngdux/util/store/list"
38
- },
39
- "homepage": "https://github.com/allanartuso/ngdux/tree/master/libs/ngdux/util/store/list#readme",
40
- "peerDependencies": {
41
- "@ngdux/data-model-common": "^1.0.0",
42
- "@angular/core": "^15.0.0",
43
- "@ngdux/store-common": "^1.0.0",
44
- "@ngrx/entity": "^15.0.0"
45
- },
46
- "default": {
47
- "name": "@ngdux/list",
48
- "version": "1.3.0",
49
- "repository": {
50
- "type": "git",
51
- "url": "git@github.com:allanartuso/ngdux.git",
52
- "directory": "/libs/ngdux/util/store/list"
53
- },
54
- "homepage": "https://github.com/allanartuso/ngdux/tree/master/libs/ngdux/util/store/list#readme",
55
- "peerDependencies": {
56
- "@ngdux/data-model-common": "^1.0.0",
57
- "@angular/core": "^15.0.0",
58
- "@ngdux/store-common": "^1.0.0",
59
- "@ngrx/entity": "^15.0.0"
60
- },
61
- "default": {
62
- "name": "@ngdux/list",
63
- "version": "1.2.1",
64
- "repository": {
65
- "type": "git",
66
- "url": "git@github.com:allanartuso/ngdux.git",
67
- "directory": "/libs/ngdux/util/store/list"
68
- },
69
- "homepage": "https://github.com/allanartuso/ngdux/tree/master/libs/ngdux/util/store/list#readme",
70
- "peerDependencies": {
71
- "@ngdux/data-model-common": "^1.0.0",
72
- "@angular/core": "^15.0.0",
73
- "@ngdux/store-common": "^1.0.0",
74
- "@ngrx/entity": "^15.0.0"
75
- },
76
- "default": {
77
- "name": "@ngdux/list",
78
- "version": "1.2.0",
79
- "repository": {
80
- "type": "git",
81
- "url": "git@github.com:allanartuso/ngdux.git",
82
- "directory": "/libs/ngdux/util/store/list"
83
- },
84
- "homepage": "https://github.com/allanartuso/ngdux/tree/master/libs/ngdux/util/store/list#readme",
85
- "peerDependencies": {
86
- "@ngdux/data-model-common": "^1.0.0",
87
- "@angular/core": "^15.0.0",
88
- "@ngdux/store-common": "^1.0.0",
89
- "@ngrx/entity": "^15.0.0"
90
- },
91
- "default": {
92
- "name": "@ngdux/list",
93
- "version": "1.1.1",
94
- "repository": {
95
- "type": "git",
96
- "url": "git@github.com:allanartuso/ngdux.git",
97
- "directory": "/libs/ngdux/util/store/list"
98
- },
99
- "homepage": "https://github.com/allanartuso/ngdux/tree/master/libs/ngdux/util/store/list#readme",
100
- "default": {
101
- "name": "@ngdux/list",
102
- "repository": {
103
- "type": "git",
104
- "url": "git@github.com:allanartuso/ngdux.git",
105
- "directory": "/libs/ngdux/util/store/list"
106
- },
107
- "homepage": "https://github.com/allanartuso/ngdux/tree/master/libs/ngdux/util/store/list#readme"
108
- },
109
- "peerDependencies": {
110
- "@ngdux/data-model-common": "^1.0.0",
111
- "@angular/core": "^15.0.0",
112
- "@ngdux/store-common": "^1.0.0",
113
- "@ngrx/entity": "^15.0.0"
114
- }
115
- }
116
- }
117
- }
118
- }
119
- }
120
- },
121
- "module": "fesm2015/ngdux-list.mjs",
122
- "es2020": "fesm2020/ngdux-list.mjs",
123
- "esm2020": "esm2020/ngdux-list.mjs",
124
- "fesm2020": "fesm2020/ngdux-list.mjs",
125
- "fesm2015": "fesm2015/ngdux-list.mjs",
18
+ "module": "fesm2022/ngdux-list.mjs",
126
19
  "typings": "index.d.ts",
127
20
  "exports": {
128
21
  "./package.json": {
@@ -130,11 +23,9 @@
130
23
  },
131
24
  ".": {
132
25
  "types": "./index.d.ts",
133
- "esm2020": "./esm2020/ngdux-list.mjs",
134
- "es2020": "./fesm2020/ngdux-list.mjs",
135
- "es2015": "./fesm2015/ngdux-list.mjs",
136
- "node": "./fesm2015/ngdux-list.mjs",
137
- "default": "./fesm2020/ngdux-list.mjs"
26
+ "esm2022": "./esm2022/ngdux-list.mjs",
27
+ "esm": "./esm2022/ngdux-list.mjs",
28
+ "default": "./fesm2022/ngdux-list.mjs"
138
29
  }
139
30
  },
140
31
  "sideEffects": false,
@@ -1,55 +0,0 @@
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
- }
47
- ListStateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ListStateService, deps: [{ token: i1.ReducerManager }, { token: LIST_FEATURE_KEYS }], target: i0.ɵɵFactoryTarget.Injectable });
48
- ListStateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ListStateService });
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ListStateService, decorators: [{
50
- type: Injectable
51
- }], ctorParameters: function () { return [{ type: i1.ReducerManager }, { type: undefined, decorators: [{
52
- type: Inject,
53
- args: [LIST_FEATURE_KEYS]
54
- }] }]; } });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmdkdXgvdXRpbC9zdG9yZS9saXN0L3NyYy9saWIvK3N0YXRlL3N0YXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwRSxPQUFPLEVBQUUsaUJBQWlCLEVBQXlDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0YsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7OztBQUd4RSxNQUFNLE9BQU8sZ0JBQWdCO0lBVTNCLFlBQTZCLGNBQThCLEVBQTZCLFdBQXFCO1FBQWhGLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUpqRCxZQUFPLEdBQXFELEVBQUUsQ0FBQztRQUMvRCxjQUFTLEdBQW9ELEVBQUUsQ0FBQztRQUl4RSxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzdDLFdBQVcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQzdCLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDdkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUN0RCxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDNUQ7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFUyxVQUFVLENBQUMsVUFBa0I7UUFDckMsT0FBTyxpQkFBaUIsQ0FBc0IsVUFBVSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixPQUFPLHVCQUF1QixFQUFLLENBQUM7SUFDdEMsQ0FBQztJQUVTLFVBQVUsQ0FBQyxVQUFrQixFQUFFLE9BQXlDO1FBQ2hGLE1BQU0sZUFBZSxHQUFhLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLElBQUksRUFBRSxDQUFDLENBQUM7UUFFekYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDekMsTUFBTSxPQUFPLEdBQUcsaUJBQWlCLENBQXNCLElBQUksQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDcEYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ3JEO0lBQ0gsQ0FBQztJQUVTLFlBQVksQ0FBQyxVQUFrQjtRQUN2QyxNQUFNLFFBQVEsR0FBRyxxQkFBcUIsQ0FBOEIsVUFBVSxDQUFDLENBQUM7UUFDaEYsT0FBTyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxVQUFrQjtRQUNsQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELG1CQUFtQixDQUFDLFVBQWtCO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNwQyxDQUFDOzs2R0FqRFUsZ0JBQWdCLGdEQVUwQyxpQkFBaUI7aUhBVjNFLGdCQUFnQjsyRkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVOzswQkFXcUQsTUFBTTsyQkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRW50aXR5QWRhcHRlciB9IGZyb20gJ0BuZ3J4L2VudGl0eSc7XHJcbmltcG9ydCB7IFJlZHVjZXJNYW5hZ2VyLCBjcmVhdGVGZWF0dXJlU2VsZWN0b3IgfSBmcm9tICdAbmdyeC9zdG9yZSc7XHJcbmltcG9ydCB7IExJU1RfRkVBVFVSRV9LRVlTLCBMaXN0QWN0aW9ucywgTGlzdFNlbGVjdG9ycywgTGlzdFN0YXRlIH0gZnJvbSAnLi4vbW9kZWxzL2xpc3QubW9kZWwnO1xyXG5pbXBvcnQgeyBjcmVhdGVMaXN0QWN0aW9ucyB9IGZyb20gJy4uL3N0YXRlLWdlbmVyYXRvci9saXN0LWFjdGlvbnMnO1xyXG5pbXBvcnQgeyBjcmVhdGVMaXN0RW50aXR5QWRhcHRlciwgY3JlYXRlTGlzdFJlZHVjZXIgfSBmcm9tICcuLi9zdGF0ZS1nZW5lcmF0b3IvbGlzdC1yZWR1Y2VyJztcclxuaW1wb3J0IHsgY3JlYXRlTGlzdFNlbGVjdG9ycyB9IGZyb20gJy4uL3N0YXRlLWdlbmVyYXRvci9saXN0LXNlbGVjdG9ycyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBMaXN0U3RhdGVTZXJ2aWNlPFxyXG4gIFQgZXh0ZW5kcyB7IFtrZXk6IHN0cmluZ106IGFueSB9LFxyXG4gIEVycm9yID0gdW5rbm93bixcclxuICBTIGV4dGVuZHMgeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IFQsXHJcbiAgUGFyYW1zID0gUmVjb3JkPHN0cmluZywgc3RyaW5nPlxyXG4+IHtcclxuICBwcm90ZWN0ZWQgYWN0aW9uczogUmVjb3JkPHN0cmluZywgTGlzdEFjdGlvbnM8VCwgRXJyb3IsIFMsIFBhcmFtcz4+ID0ge307XHJcbiAgcHJvdGVjdGVkIHNlbGVjdG9yczogUmVjb3JkPHN0cmluZywgTGlzdFNlbGVjdG9yczxTLCBFcnJvciwgUGFyYW1zPj4gPSB7fTtcclxuICBwcml2YXRlIGVudGl0eUFkYXB0ZXI6IEVudGl0eUFkYXB0ZXI8Uz47XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcmVkdWNlck1hbmFnZXI6IFJlZHVjZXJNYW5hZ2VyLCBASW5qZWN0KExJU1RfRkVBVFVSRV9LRVlTKSBmZWF0dXJlS2V5czogc3RyaW5nW10pIHtcclxuICAgIHRoaXMuZW50aXR5QWRhcHRlciA9IHRoaXMuZ2V0RW50aXR5QWRhcHRlcigpO1xyXG4gICAgZmVhdHVyZUtleXMuZm9yRWFjaChmZWF0dXJlS2V5ID0+IHtcclxuICAgICAgaWYgKCF0aGlzLmFjdGlvbnNbZmVhdHVyZUtleV0pIHtcclxuICAgICAgICB0aGlzLmFjdGlvbnNbZmVhdHVyZUtleV0gPSB0aGlzLmdldEFjdGlvbnMoZmVhdHVyZUtleSk7XHJcbiAgICAgICAgdGhpcy5hZGRSZWR1Y2VyKGZlYXR1cmVLZXksIHRoaXMuYWN0aW9uc1tmZWF0dXJlS2V5XSk7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RvcnNbZmVhdHVyZUtleV0gPSB0aGlzLmdldFNlbGVjdG9ycyhmZWF0dXJlS2V5KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgZ2V0QWN0aW9ucyhmZWF0dXJlS2V5OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiBjcmVhdGVMaXN0QWN0aW9uczxULCBFcnJvciwgUywgUGFyYW1zPihmZWF0dXJlS2V5KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RW50aXR5QWRhcHRlcigpIHtcclxuICAgIHJldHVybiBjcmVhdGVMaXN0RW50aXR5QWRhcHRlcjxTPigpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGFkZFJlZHVjZXIoZmVhdHVyZUtleTogc3RyaW5nLCBhY3Rpb25zOiBMaXN0QWN0aW9uczxULCBFcnJvciwgUywgUGFyYW1zPikge1xyXG4gICAgY29uc3QgY3VycmVudFJlZHVjZXJzOiBzdHJpbmdbXSA9IE9iamVjdC5rZXlzKHRoaXMucmVkdWNlck1hbmFnZXIuY3VycmVudFJlZHVjZXJzIHx8IHt9KTtcclxuXHJcbiAgICBpZiAoIWN1cnJlbnRSZWR1Y2Vycy5pbmNsdWRlcyhmZWF0dXJlS2V5KSkge1xyXG4gICAgICBjb25zdCByZWR1Y2VyID0gY3JlYXRlTGlzdFJlZHVjZXI8VCwgRXJyb3IsIFMsIFBhcmFtcz4odGhpcy5lbnRpdHlBZGFwdGVyLCBhY3Rpb25zKTtcclxuICAgICAgdGhpcy5yZWR1Y2VyTWFuYWdlci5hZGRSZWR1Y2VyKGZlYXR1cmVLZXksIHJlZHVjZXIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGdldFNlbGVjdG9ycyhmZWF0dXJlS2V5OiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGdldFN0YXRlID0gY3JlYXRlRmVhdHVyZVNlbGVjdG9yPExpc3RTdGF0ZTxTLCBFcnJvciwgUGFyYW1zPj4oZmVhdHVyZUtleSk7XHJcbiAgICByZXR1cm4gY3JlYXRlTGlzdFNlbGVjdG9ycyh0aGlzLmVudGl0eUFkYXB0ZXIsIGdldFN0YXRlKTtcclxuICB9XHJcblxyXG4gIGdldEZlYXR1cmVBY3Rpb25zKGZlYXR1cmVLZXk6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuYWN0aW9uc1tmZWF0dXJlS2V5XTtcclxuICB9XHJcblxyXG4gIGdldEZlYXR1cmVTZWxlY3RvcnMoZmVhdHVyZUtleTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RvcnNbZmVhdHVyZUtleV07XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,7 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmdkdXgvdXRpbC9zdG9yZS9saXN0L3NyYy9saWIvbW9kZWxzL2xpc3QubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaURBQWlEO0FBQ2pELE9BQU8sRUFBRSxjQUFjLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFnQnJELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLElBQUksY0FBYyxDQUFTLGtCQUFrQixDQUFDLENBQUM7QUFDL0UsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQVMsbUJBQW1CLENBQUMsQ0FBQztBQUNqRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxjQUFjLENBQVMsZUFBZSxDQUFDLENBQUM7QUFDekUsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsSUFBSSxjQUFjLENBQVMsNEJBQTRCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXMgKi9cclxuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBFcnJvckR0byxcclxuICBGaWx0ZXJpbmdPcHRpb25zLFxyXG4gIExpc3ROb3RpZmljYXRpb25TZXJ2aWNlLFxyXG4gIExpc3RTZXJ2aWNlLFxyXG4gIFBhZ2luZ09wdGlvbnMsXHJcbiAgUmVxdWVzdE9wdGlvbnMsXHJcbiAgUmVxdWVzdFN0YXRlLFxyXG4gIFNvcnRpbmdPcHRpb25zXHJcbn0gZnJvbSAnQG5nZHV4L2RhdGEtbW9kZWwtY29tbW9uJztcclxuaW1wb3J0IHsgQXBpUmVxdWVzdFN0YXRlLCBMb2FkaW5nU3RhdGUgfSBmcm9tICdAbmdkdXgvc3RvcmUtY29tbW9uJztcclxuaW1wb3J0IHsgRW50aXR5U3RhdGUgfSBmcm9tICdAbmdyeC9lbnRpdHknO1xyXG5pbXBvcnQgeyBBY3Rpb25DcmVhdG9yLCBNZW1vaXplZFNlbGVjdG9yIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xyXG5pbXBvcnQgeyBUeXBlZEFjdGlvbiB9IGZyb20gJ0BuZ3J4L3N0b3JlL3NyYy9tb2RlbHMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IExJU1RfRkVBVFVSRV9LRVkgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPignTElTVF9GRUFUVVJFX0tFWScpO1xyXG5leHBvcnQgY29uc3QgTElTVF9GRUFUVVJFX0tFWVMgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPignTElTVF9GRUFUVVJFX0tFWVMnKTtcclxuZXhwb3J0IGNvbnN0IExJU1RfU0VSVklDRVMgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPignTElTVF9TRVJWSUNFUycpO1xyXG5leHBvcnQgY29uc3QgTElTVF9OT1RJRklDQVRJT05fU0VSVklDRVMgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPignTElTVF9OT1RJRklDQVRJT05fU0VSVklDRVMnKTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTGlzdFN0YXRlPFQsIEUgPSB1bmtub3duLCBQYXJhbXMgPSBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PlxyXG4gIGV4dGVuZHMgRW50aXR5U3RhdGU8VD4sXHJcbiAgICBSZXF1ZXN0T3B0aW9uczxQYXJhbXM+LFxyXG4gICAgQXBpUmVxdWVzdFN0YXRlPEU+LFxyXG4gICAgTG9hZGluZ1N0YXRlIHtcclxuICBzZWxlY3RlZFJlc291cmNlSWRzOiBzdHJpbmdbXTtcclxuICBsYXN0UGFnZU51bWJlcj86IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMaXN0U2VsZWN0b3JzPFQsIEUgPSB1bmtub3duLCBQYXJhbXMgPSBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XHJcbiAgZ2V0QWxsOiBNZW1vaXplZFNlbGVjdG9yPG9iamVjdCwgVFtdPjtcclxuICBnZXRSZXF1ZXN0T3B0aW9uczogTWVtb2l6ZWRTZWxlY3RvcjxvYmplY3QsIFJlcXVlc3RPcHRpb25zPjtcclxuICBpc0xhc3RQYWdlOiBNZW1vaXplZFNlbGVjdG9yPG9iamVjdCwgYm9vbGVhbj47XHJcbiAgZ2V0Q3VycmVudFBhZ2VEYXRhOiBNZW1vaXplZFNlbGVjdG9yPG9iamVjdCwgVFtdPjtcclxuICBnZXRQYWdpbmdPcHRpb25zOiBNZW1vaXplZFNlbGVjdG9yPG9iamVjdCwgUGFnaW5nT3B0aW9ucz47XHJcbiAgZ2V0U29ydGluZ09wdGlvbnM6IE1lbW9pemVkU2VsZWN0b3I8b2JqZWN0LCBTb3J0aW5nT3B0aW9ucz47XHJcbiAgZ2V0RmlsdGVyaW5nT3B0aW9uczogTWVtb2l6ZWRTZWxlY3RvcjxvYmplY3QsIEZpbHRlcmluZ09wdGlvbnM+O1xyXG4gIGdldFJlcXVlc3RQYXJhbWV0ZXJzOiBNZW1vaXplZFNlbGVjdG9yPG9iamVjdCwgUGFyYW1zIHwgdW5kZWZpbmVkPjtcclxuICBnZXRDdXJyZW50UGFnZU51bWJlcjogTWVtb2l6ZWRTZWxlY3RvcjxvYmplY3QsIG51bWJlcj47XHJcbiAgZ2V0TGFzdFBhZ2VOdW1iZXI6IE1lbW9pemVkU2VsZWN0b3I8b2JqZWN0LCBudW1iZXIgfCB1bmRlZmluZWQ+O1xyXG4gIGdldExvYWRpbmdTdGF0ZTogTWVtb2l6ZWRTZWxlY3RvcjxvYmplY3QsIFJlcXVlc3RTdGF0ZT47XHJcbiAgZ2V0U2VsZWN0ZWRSZXNvdXJjZUlkczogTWVtb2l6ZWRTZWxlY3RvcjxvYmplY3QsIHN0cmluZ1tdPjtcclxuICBnZXRTZWxlY3RlZEl0ZW1zOiBNZW1vaXplZFNlbGVjdG9yPG9iamVjdCwgVFtdPjtcclxuICBnZXRTZWxlY3Rpb25SZWNvcmQ6IE1lbW9pemVkU2VsZWN0b3I8b2JqZWN0LCBSZWNvcmQ8c3RyaW5nLCBUPj47XHJcbiAgZ2V0UmVxdWVzdFN0YXRlOiBNZW1vaXplZFNlbGVjdG9yPG9iamVjdCwgUmVxdWVzdFN0YXRlPjtcclxuICBnZXRFcnJvcnM6IE1lbW9pemVkU2VsZWN0b3I8b2JqZWN0LCBFIHwgdW5kZWZpbmVkPjtcclxuICBhcmVTZWxlY3RlZFJlYWR5OiBNZW1vaXplZFNlbGVjdG9yPG9iamVjdCwgYm9vbGVhbj47XHJcbiAgaXNSZWFkeTogTWVtb2l6ZWRTZWxlY3RvcjxvYmplY3QsIGJvb2xlYW4+O1xyXG4gIGlzRGVsZXRlRGlzYWJsZWQ6IE1lbW9pemVkU2VsZWN0b3I8b2JqZWN0LCBib29sZWFuPjtcclxuICBpc0NvcHlEaXNhYmxlZDogTWVtb2l6ZWRTZWxlY3RvcjxvYmplY3QsIGJvb2xlYW4+O1xyXG4gIGdldFRvdGFsQ291bnQ6IE1lbW9pemVkU2VsZWN0b3I8b2JqZWN0LCBudW1iZXI+O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIExpc3RBY3Rpb25zPEVudGl0eSwgRXJyb3IgPSB1bmtub3duLCBTdW1tYXJ5ID0gRW50aXR5LCBQYXJhbXMgPSBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XHJcbiAgLyoqXHJcbiAgICogU2V0IHRoZSBwYWdlIHNpemUgd2l0aG91dCByZWxvYWRpbmcgdGhlIGxpc3RcclxuICAgKi9cclxuICBzZXRQYWdlU2l6ZTogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogeyBwYWdlU2l6ZTogbnVtYmVyIH0pID0+IHsgcGFnZVNpemU6IG51bWJlciB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XHJcbiAgLyoqXHJcbiAgICogU2V0IHRoZSBzb3J0aW5nIG9wdGlvbnMgd2l0aG91dCByZWxvYWRpbmcgdGhlIGxpc3RcclxuICAgKi9cclxuICBzZXRTb3J0aW5nOiBBY3Rpb25DcmVhdG9yPFxyXG4gICAgc3RyaW5nLFxyXG4gICAgKHByb3BzOiB7IHNvcnRpbmdPcHRpb25zOiBTb3J0aW5nT3B0aW9ucyB9KSA9PiB7IHNvcnRpbmdPcHRpb25zOiBTb3J0aW5nT3B0aW9ucyB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPlxyXG4gID47XHJcbiAgLyoqXHJcbiAgICogU2V0IHRoZSBmaWx0ZXJpbmcgb3B0aW9ucyB3aXRob3V0IHJlbG9hZGluZyB0aGUgbGlzdFxyXG4gICAqL1xyXG4gIHNldEZpbHRlcmluZzogQWN0aW9uQ3JlYXRvcjxcclxuICAgIHN0cmluZyxcclxuICAgIChwcm9wczogeyBmaWx0ZXJpbmdPcHRpb25zOiBGaWx0ZXJpbmdPcHRpb25zIH0pID0+IHsgZmlsdGVyaW5nT3B0aW9uczogRmlsdGVyaW5nT3B0aW9ucyB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPlxyXG4gID47XHJcbiAgLyoqXHJcbiAgICogU2V0IHRoZSByZXF1ZXN0IHBhcmFtZXRlcnMgd2l0aG91dCByZWxvYWRpbmcgdGhlIGxpc3RcclxuICAgKi9cclxuICBzZXRSZXF1ZXN0UGFyYW1zOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiB7IHBhcmFtczogUGFyYW1zIH0pID0+IHsgcGFyYW1zOiBQYXJhbXMgfSAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xyXG5cclxuICAvKipcclxuICAgKiBDaGFuZ2UgdGhlIHBhZ2luZyBvcHRpb25zIGFuZCByZWxvYWQgdGhlIGxpc3RcclxuICAgKi9cclxuICBjaGFuZ2VQYWdpbmdPcHRpb25zOiBBY3Rpb25DcmVhdG9yPFxyXG4gICAgc3RyaW5nLFxyXG4gICAgKHByb3BzOiB7IHBhZ2luZ09wdGlvbnM6IFBhZ2luZ09wdGlvbnMgfSkgPT4geyBwYWdpbmdPcHRpb25zOiBQYWdpbmdPcHRpb25zIH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+XHJcbiAgPjtcclxuXHJcbiAgLyoqXHJcbiAgICogQ2hhbmdlIHRoZSBwYWdlIG51bWJlciBhbmQgcmVsb2FkIHRoZSBsaXN0XHJcbiAgICovXHJcbiAgY2hhbmdlUGFnZU51bWJlcjogQWN0aW9uQ3JlYXRvcjxcclxuICAgIHN0cmluZyxcclxuICAgIChwcm9wczogeyBwYWdlTnVtYmVyOiBudW1iZXIgfSkgPT4geyBwYWdlTnVtYmVyOiBudW1iZXIgfSAmIFR5cGVkQWN0aW9uPHN0cmluZz5cclxuICA+O1xyXG4gIC8qKlxyXG4gICAqIENoYW5nZSB0aGUgcGFnZSBzaXplIGFuZCByZWxvYWQgdGhlIGxpc3RcclxuICAgKi9cclxuICBjaGFuZ2VQYWdlU2l6ZTogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogeyBwYWdlU2l6ZTogbnVtYmVyIH0pID0+IHsgcGFnZVNpemU6IG51bWJlciB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XHJcbiAgLyoqXHJcbiAgICogQ2hhbmdlIHRoZSBzb3J0aW5nIG9wdGlvbnMgYW5kIHJlbG9hZCB0aGUgbGlzdFxyXG4gICAqL1xyXG4gIGNoYW5nZVNvcnRpbmc6IEFjdGlvbkNyZWF0b3I8XHJcbiAgICBzdHJpbmcsXHJcbiAgICAocHJvcHM6IHsgc29ydGluZ09wdGlvbnM6IFNvcnRpbmdPcHRpb25zIH0pID0+IHsgc29ydGluZ09wdGlvbnM6IFNvcnRpbmdPcHRpb25zIH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+XHJcbiAgPjtcclxuICAvKipcclxuICAgKiBDaGFuZ2UgdGhlIGZpbHRlcmluZyBvcHRpb25zIGFuZCByZWxvYWQgdGhlIGxpc3RcclxuICAgKi9cclxuICBjaGFuZ2VGaWx0ZXJpbmc6IEFjdGlvbkNyZWF0b3I8XHJcbiAgICBzdHJpbmcsXHJcbiAgICAocHJvcHM6IHsgZmlsdGVyaW5nT3B0aW9uczogRmlsdGVyaW5nT3B0aW9ucyB9KSA9PiB7IGZpbHRlcmluZ09wdGlvbnM6IEZpbHRlcmluZ09wdGlvbnMgfSAmIFR5cGVkQWN0aW9uPHN0cmluZz5cclxuICA+O1xyXG4gIC8qKlxyXG4gICAqIENoYW5nZSB0aGUgcmVxdWVzdCBwYXJhbWV0ZXJzIGFuZCByZWxvYWQgdGhlIGxpc3RcclxuICAgKi9cclxuICBjaGFuZ2VSZXF1ZXN0UGFyYW1zOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiB7IHBhcmFtczogUGFyYW1zIH0pID0+IHsgcGFyYW1zOiBQYXJhbXMgfSAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xyXG5cclxuICBjaGFuZ2VTZWxlY3RlZFJlc291cmNlczogQWN0aW9uQ3JlYXRvcjxcclxuICAgIHN0cmluZyxcclxuICAgIChwcm9wczogeyBzZWxlY3RlZFJlc291cmNlSWRzOiBzdHJpbmdbXSB9KSA9PiB7IHNlbGVjdGVkUmVzb3VyY2VJZHM6IHN0cmluZ1tdIH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+XHJcbiAgPjtcclxuICBsb2FkUGFnZTogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsICgpID0+IFR5cGVkQWN0aW9uPHN0cmluZz4+O1xyXG4gIGxvYWRQYWdlU3VjY2VzczogQWN0aW9uQ3JlYXRvcjxcclxuICAgIHN0cmluZyxcclxuICAgIChwcm9wczoge1xyXG4gICAgICByZXNvdXJjZXM6IFN1bW1hcnlbXTtcclxuICAgICAgcGFnaW5nT3B0aW9uczogUGFnaW5nT3B0aW9ucztcclxuICAgIH0pID0+IHsgcmVzb3VyY2VzOiBTdW1tYXJ5W107IHBhZ2luZ09wdGlvbnM6IFBhZ2luZ09wdGlvbnMgfSAmIFR5cGVkQWN0aW9uPHN0cmluZz5cclxuICA+O1xyXG4gIGxvYWRQYWdlRmFpbHVyZTogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsIChwcm9wczogeyBlcnJvcnM6IEVycm9yIH0pID0+IHsgZXJyb3JzOiBFcnJvciB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XHJcbiAgZGVsZXRlOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiB7IHJlc291cmNlSWRzOiBzdHJpbmdbXSB9KSA9PiB7IHJlc291cmNlSWRzOiBzdHJpbmdbXSB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPj47XHJcbiAgZGVsZXRlU3VjY2VzczogQWN0aW9uQ3JlYXRvcjxcclxuICAgIHN0cmluZyxcclxuICAgIChwcm9wczogeyByZXNvdXJjZUlkczogc3RyaW5nW10gfSkgPT4geyByZXNvdXJjZUlkczogc3RyaW5nW10gfSAmIFR5cGVkQWN0aW9uPHN0cmluZz5cclxuICA+O1xyXG4gIGRlbGV0ZUZhaWx1cmU6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAocHJvcHM6IHsgZXJyb3JzOiBFcnJvciB9KSA9PiB7IGVycm9yczogRXJyb3IgfSAmIFR5cGVkQWN0aW9uPHN0cmluZz4+O1xyXG4gIHBhdGNoOiBBY3Rpb25DcmVhdG9yPFxyXG4gICAgc3RyaW5nLFxyXG4gICAgKHByb3BzOiB7XHJcbiAgICAgIHJlc291cmNlSWRzOiBzdHJpbmdbXTtcclxuICAgICAgcmVzb3VyY2U6IFBhcnRpYWw8RW50aXR5PjtcclxuICAgIH0pID0+IHsgcmVzb3VyY2VJZHM6IHN0cmluZ1tdOyByZXNvdXJjZTogUGFydGlhbDxFbnRpdHk+IH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+XHJcbiAgPjtcclxuICBwYXRjaFN1Y2Nlc3M6IEFjdGlvbkNyZWF0b3I8XHJcbiAgICBzdHJpbmcsXHJcbiAgICAocHJvcHM6IHsgcmVzb3VyY2VzOiAoRW50aXR5IHwgRXJyb3JEdG8pW10gfSkgPT4geyByZXNvdXJjZXM6IChFbnRpdHkgfCBFcnJvckR0bylbXSB9ICYgVHlwZWRBY3Rpb248c3RyaW5nPlxyXG4gID47XHJcbiAgcGF0Y2hGYWlsdXJlOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKHByb3BzOiB7IGVycm9yczogRXJyb3IgfSkgPT4geyBlcnJvcnM6IEVycm9yIH0gJiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcclxuICBsb2FkTmV4dFBhZ2U6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAoKSA9PiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlIHRoZSBjdXJyZW50IGRhdGEsIHNldCB0aGUgcGFnZSBudW1iZXIgdG8gMSBhbmQgZGVzZWxlY3QgcmVzb3VyY2VzLlxyXG4gICAqIEtlZXAgYWxsIHRoZSByZXN0LCBsaWtlIGZpbHRlcmluZ09wdGlvbnMgYW5kIHNvcnRpbmdPcHRpb25zXHJcbiAgICovXHJcbiAgaW5pdGlhbGl6ZTogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsICgpID0+IFR5cGVkQWN0aW9uPHN0cmluZz4+O1xyXG4gIC8qKlxyXG4gICAqIFJlc2V0IHRvIHRoZSBpbml0aWFsIHN0YXRlXHJcbiAgICovXHJcbiAgcmVzZXQ6IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAoKSA9PiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcclxuICBsb2FkUHJldmlvdXNQYWdlOiBBY3Rpb25DcmVhdG9yPHN0cmluZywgKCkgPT4gVHlwZWRBY3Rpb248c3RyaW5nPj47XHJcbiAgbG9hZEZpcnN0UGFnZTogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsICgpID0+IFR5cGVkQWN0aW9uPHN0cmluZz4+O1xyXG4gIC8qKlxyXG4gICAqIFJlc2V0IHRoZSByZXF1ZXN0IHN0YXRlIHRvIGlkbGVcclxuICAgKi9cclxuICByZXNldFJlcXVlc3RTdGF0ZTogQWN0aW9uQ3JlYXRvcjxzdHJpbmcsICgpID0+IFR5cGVkQWN0aW9uPHN0cmluZz4+O1xyXG4gIC8qKlxyXG4gICAqIEBkZXByZWNhdGVkIFRoZSBtZXRob2Qgd2lsbCBiZSByZW1vdmVkLiBUSGUgQWJzdHJhY3RFZmZlY3Qgd2lsbCBub3QgYmUgcmVzcG9uc2libGUgZm9yIGl0IGFueW1vcmVcclxuICAgKi9cclxuICBzaG93UmVtb3ZhbHNDb25maXJtYXRpb246IEFjdGlvbkNyZWF0b3I8c3RyaW5nLCAoKSA9PiBUeXBlZEFjdGlvbjxzdHJpbmc+PjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBOZ2R1eExpc3RTdGF0ZU1vZHVsZUNvbmZpZzxcclxuICBUIGV4dGVuZHMgeyBba2V5OiBzdHJpbmddOiBhbnkgfSxcclxuICBFLFxyXG4gIFMgPSBULFxyXG4gIFBhcmFtcyA9IFJlY29yZDxzdHJpbmcsIHN0cmluZz5cclxuPiB7XHJcbiAgc2VydmljZTogVHlwZTxMaXN0U2VydmljZTxULCBTLCBQYXJhbXM+PjtcclxuICBub3RpZmljYXRpb25TZXJ2aWNlPzogVHlwZTxMaXN0Tm90aWZpY2F0aW9uU2VydmljZTxFPj47XHJcbn1cclxuIl19
@@ -1,66 +0,0 @@
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.texts = {
14
- deleteConfirmationTitle: 'Delete resources',
15
- deleteConfirmationMessage: 'Are you sure to delete the selected resources?'
16
- };
17
- 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())));
18
- this.loadFirstPage$ = createEffect(() => this.actions$.pipe(ofType(this.listActions.loadFirstPage), map(() => this.listActions.changePageNumber({ pageNumber: 1 }))));
19
- 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 }))));
20
- 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 }))));
21
- 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]) => {
22
- return this.service
23
- .loadResources({
24
- pagingOptions,
25
- sortingOptions,
26
- filteringOptions,
27
- requestParameters
28
- })
29
- .pipe(map(resources => this.listActions.loadPageSuccess({
30
- resources,
31
- pagingOptions
32
- })), catchError((errors) => of(this.listActions.loadPageFailure({ errors }))));
33
- })));
34
- this.patch$ = createEffect(() => this.actions$.pipe(ofType(this.listActions.patch), exhaustMap(action => {
35
- if (!this.service.patchResources) {
36
- throw new Error('patchResources not implement in the ListService');
37
- }
38
- return this.service.patchResources(action.resourceIds, action.resource).pipe(map(resources => this.listActions.patchSuccess({ resources })), catchError((errors) => of(this.listActions.patchFailure({ errors }))));
39
- })));
40
- /**
41
- * @deprecated The method will be removed. THe AbstractEffect will not be responsible for it anymore
42
- */
43
- this.showRemovalsDialog$ = createEffect(() => this.actions$.pipe(ofType(this.listActions.showRemovalsConfirmation), switchMap(() => {
44
- if (this.notificationService?.openConfirmationDialog) {
45
- return this.notificationService.openConfirmationDialog({
46
- message: this.texts.deleteConfirmationMessage,
47
- title: this.texts.deleteConfirmationTitle
48
- });
49
- }
50
- return of(true);
51
- }), filter(confirmed => confirmed), withLatestFrom(this.store.pipe(select(this.listSelectors.getSelectedResourceIds))), filter(([, resourceIds]) => !!resourceIds.length), map(([, resourceIds]) => this.listActions.delete({ resourceIds }))));
52
- this.delete$ = createEffect(() => this.actions$.pipe(ofType(this.listActions.delete), exhaustMap(({ resourceIds }) => {
53
- if (!this.service.deleteResources) {
54
- throw new Error('deleteResources not implement in the ListService');
55
- }
56
- return this.service.deleteResources(resourceIds).pipe(map(() => this.listActions.deleteSuccess({ resourceIds })), catchError((errors) => of(this.listActions.deleteFailure({ errors }))));
57
- })));
58
- this.deleteSuccess$ = createEffect(() => this.actions$.pipe(ofType(this.listActions.deleteSuccess), tap(({ resourceIds }) => {
59
- this.notificationService?.onListDelete(resourceIds);
60
- })), { dispatch: false });
61
- this.errorsHandler$ = createEffect(() => this.actions$.pipe(ofType(this.listActions.loadPageFailure, this.listActions.deleteFailure, this.listActions.patchFailure), tap(({ errors }) => {
62
- this.notificationService?.onListErrors(errors);
63
- })), { dispatch: false });
64
- }
65
- }
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtbGlzdC1lZmZlY3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZ2R1eC91dGlsL3N0b3JlL2xpc3Qvc3JjL2xpYi9zdGF0ZS1nZW5lcmF0b3IvYWJzdHJhY3QtbGlzdC1lZmZlY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBVyxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBUyxNQUFNLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQixPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJckcsTUFBTSxPQUFnQixtQkFBbUI7SUErSnZDLFlBQ3FCLFFBQWlCLEVBQ2pCLEtBQVksRUFDWixPQUFrQyxFQUNsQyxXQUF5QyxFQUN6QyxhQUEwQyxFQUMxQyxtQkFBZ0Q7UUFMaEQsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNqQixVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQ1osWUFBTyxHQUFQLE9BQU8sQ0FBMkI7UUFDbEMsZ0JBQVcsR0FBWCxXQUFXLENBQThCO1FBQ3pDLGtCQUFhLEdBQWIsYUFBYSxDQUE2QjtRQUMxQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQTZCO1FBcEtyRSxVQUFLLEdBQUc7WUFDTix1QkFBdUIsRUFBRSxrQkFBa0I7WUFDM0MseUJBQXlCLEVBQUUsZ0RBQWdEO1NBQzVFLENBQUM7UUFFRixZQUFPLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUMxQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDaEIsTUFBTSxDQUNKLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUMvQixJQUFJ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VyxFQUFFLEVBQUUsRUFBRTtZQUN0QixJQUFJLENBQUMsbUJBQW1CLEVBQUUsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3RELENBQUMsQ0FBQyxDQUNILEVBQ0gsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQ3BCLENBQUM7UUFFRixtQkFBYyxHQUFHLFlBQVksQ0FDM0IsR0FBRyxFQUFFLENBQ0gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ2hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxFQUN2RyxHQUFHLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUU7WUFDakIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqRCxDQUFDLENBQUMsQ0FDSCxFQUNILEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUNwQixDQUFDO0lBU0MsQ0FBQztDQUNMIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGlzdE5vdGlmaWNhdGlvblNlcnZpY2UsIExpc3RTZXJ2aWNlIH0gZnJvbSAnQG5nZHV4L2RhdGEtbW9kZWwtY29tbW9uJztcclxuaW1wb3J0IHsgQWN0aW9ucywgY3JlYXRlRWZmZWN0LCBvZlR5cGUgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcclxuaW1wb3J0IHsgU3RvcmUsIHNlbGVjdCB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcclxuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZXhoYXVzdE1hcCwgZmlsdGVyLCBtYXAsIHN3aXRjaE1hcCwgdGFwLCB3aXRoTGF0ZXN0RnJvbSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IExpc3RBY3Rpb25zLCBMaXN0U2VsZWN0b3JzIH0gZnJvbSAnLi4vbW9kZWxzL2xpc3QubW9kZWwnO1xyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0TGlzdEVmZmVjdHM8VCwgRSA9IHVua25vd24sIFMgPSBULCBQYXJhbXMgPSBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XHJcbiAgdGV4dHMgPSB7XHJcbiAgICBkZWxldGVDb25maXJtYXRpb25UaXRsZTogJ0RlbGV0ZSByZXNvdXJjZXMnLFxyXG4gICAgZGVsZXRlQ29uZmlybWF0aW9uTWVzc2FnZTogJ0FyZSB5b3Ugc3VyZSB0byBkZWxldGUgdGhlIHNlbGVjdGVkIHJlc291cmNlcz8nXHJcbiAgfTtcclxuXHJcbiAgcmVsb2FkJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxyXG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxyXG4gICAgICBvZlR5cGUoXHJcbiAgICAgICAgdGhpcy5saXN0QWN0aW9ucy5jaGFuZ2VQYWdlU2l6ZSxcclxuICAgICAgICB0aGlzLmxpc3RBY3Rpb25zLmNoYW5nZVNvcnRpbmcsXHJcbiAgICAgICAgdGhpcy5saXN0QWN0aW9ucy5jaGFuZ2VGaWx0ZXJpbmcsXHJcbiAgICAgICAgdGhpcy5saXN0QWN0aW9ucy5jaGFuZ2VQYWdpbmdPcHRpb25zLFxyXG4gICAgICAgIHRoaXMubGlzdEFjdGlvbnMuY2hhbmdlUmVxdWVzdFBhcmFtcyxcclxuICAgICAgICB0aGlzLmxpc3RBY3Rpb25zLmluaXRpYWxpemUsXHJcbiAgICAgICAgdGhpcy5saXN0QWN0aW9ucy5yZXNldCxcclxuICAgICAgICB0aGlzLmxpc3RBY3Rpb25zLmNoYW5nZVBhZ2VOdW1iZXIsXHJcbiAgICAgICAgdGhpcy5saXN0QWN0aW9ucy5wYXRjaFN1Y2Nlc3MsXHJcbiAgICAgICAgdGhpcy5saXN0QWN0aW9ucy5kZWxldGVTdWNjZXNzXHJcbiAgICAgICksXHJcbiAgICAgIG1hcCgoKSA9PiB0aGlzLmxpc3RBY3Rpb25zLmxvYWRQYWdlKCkpXHJcbiAgICApXHJcbiAgKTtcclxuXHJcbiAgbG9hZEZpcnN0UGFnZSQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cclxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgICAgb2ZUeXBlKHRoaXMubGlzdEFjdGlvbnMubG9hZEZpcnN0UGFnZSksXHJcbiAgICAgIG1hcCgoKSA9PiB0aGlzLmxpc3RBY3Rpb25zLmNoYW5nZVBhZ2VOdW1iZXIoeyBwYWdlTnVtYmVyOiAxIH0pKVxyXG4gICAgKVxyXG4gICk7XHJcblxyXG4gIGxvYWRQcmV2aW91c1BhZ2UkID0gY3JlYXRlRWZmZWN0KCgpID0+XHJcbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgICAgIG9mVHlwZSh0aGlzLmxpc3RBY3Rpb25zLmxvYWRQcmV2aW91c1BhZ2UpLFxyXG4gICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHRoaXMubGlzdFNlbGVjdG9ycy5nZXRDdXJyZW50UGFnZU51bWJlcikpKSxcclxuICAgICAgZmlsdGVyKChbLCBjdXJyZW50UGFnZU51bWJlcl0pID0+IGN1cnJlbnRQYWdlTnVtYmVyID4gMSksXHJcbiAgICAgIG1hcCgoWywgY3VycmVudFBhZ2VOdW1iZXJdKSA9PiB0aGlzLmxpc3RBY3Rpb25zLmNoYW5nZVBhZ2VOdW1iZXIoeyBwYWdlTnVtYmVyOiBjdXJyZW50UGFnZU51bWJlciAtIDEgfSkpXHJcbiAgICApXHJcbiAgKTtcclxuXHJcbiAgbG9hZE5leHRQYWdlJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxyXG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxyXG4gICAgICBvZlR5cGUodGhpcy5saXN0QWN0aW9ucy5sb2FkTmV4dFBhZ2UpLFxyXG4gICAgICB3aXRoTGF0ZXN0RnJvbShcclxuICAgICAgICB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHRoaXMubGlzdFNlbGVjdG9ycy5pc0xhc3RQYWdlKSksXHJcbiAgICAgICAgdGhpcy5zdG9yZS5waXBlKHNlbGVjdCh0aGlzLmxpc3RTZWxlY3RvcnMuZ2V0Q3VycmVudFBhZ2VOdW1iZXIpKVxyXG4gICAgICApLFxyXG4gICAgICBmaWx0ZXIoKFssIGlzTGFzdFBhZ2VdKSA9PiAhaXNMYXN0UGFnZSksXHJcbiAgICAgIG1hcCgoWywgLCBjdXJyZW50UGFnZU51bWJlcl0pID0+IHRoaXMubGlzdEFjdGlvbnMuY2hhbmdlUGFnZU51bWJlcih7IHBhZ2VOdW1iZXI6IGN1cnJlbnRQYWdlTnVtYmVyICsgMSB9KSlcclxuICAgIClcclxuICApO1xyXG5cclxuICBsb2FkUGFnZSQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cclxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgICAgb2ZUeXBlKHRoaXMubGlzdEFjdGlvbnMubG9hZFBhZ2UpLFxyXG4gICAgICB3aXRoTGF0ZXN0RnJvbShcclxuICAgICAgICB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHRoaXMubGlzdFNlbGVjdG9ycy5nZXRQYWdpbmdPcHRpb25zKSksXHJcbiAgICAgICAgdGhpcy5zdG9yZS5waXBlKHNlbGVjdCh0aGlzLmxpc3RTZWxlY3RvcnMuZ2V0U29ydGluZ09wdGlvbnMpKSxcclxuICAgICAgICB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHRoaXMubGlzdFNlbGVjdG9ycy5nZXRGaWx0ZXJpbmdPcHRpb25zKSksXHJcbiAgICAgICAgdGhpcy5zdG9yZS5waXBlKHNlbGVjdCh0aGlzLmxpc3RTZWxlY3RvcnMuZ2V0UmVxdWVzdFBhcmFtZXRlcnMpKVxyXG4gICAgICApLFxyXG4gICAgICBzd2l0Y2hNYXAoKFssIHBhZ2luZ09wdGlvbnMsIHNvcnRpbmdPcHRpb25zLCBmaWx0ZXJpbmdPcHRpb25zLCByZXF1ZXN0UGFyYW1ldGVyc10pID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZXJ2aWNlXHJcbiAgICAgICAgICAubG9hZFJlc291cmNlcyh7XHJcbiAgICAgICAgICAgIHBhZ2luZ09wdGlvbnMsXHJcbiAgICAgICAgICAgIHNvcnRpbmdPcHRpb25zLFxyXG4gICAgICAgICAgICBmaWx0ZXJpbmdPcHRpb25zLFxyXG4gICAgICAgICAgICByZXF1ZXN0UGFyYW1ldGVyc1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICBtYXAocmVzb3VyY2VzID0+XHJcbiAgICAgICAgICAgICAgdGhpcy5saXN0QWN0aW9ucy5sb2FkUGFnZVN1Y2Nlc3Moe1xyXG4gICAgICAgICAgICAgICAgcmVzb3VyY2VzLFxyXG4gICAgICAgICAgICAgICAgcGFnaW5nT3B0aW9uc1xyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yczogRSkgPT4gb2YodGhpcy5saXN0QWN0aW9ucy5sb2FkUGFnZUZhaWx1cmUoeyBlcnJvcnMgfSkpKVxyXG4gICAgICAgICAgKTtcclxuICAgICAgfSlcclxuICAgIClcclxuICApO1xyXG5cclxuICBwYXRjaCQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cclxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgICAgb2ZUeXBlKHRoaXMubGlzdEFjdGlvbnMucGF0Y2gpLFxyXG4gICAgICBleGhhdXN0TWFwKGFjdGlvbiA9PiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnNlcnZpY2UucGF0Y2hSZXNvdXJjZXMpIHtcclxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcigncGF0Y2hSZXNvdXJjZXMgbm90IGltcGxlbWVudCBpbiB0aGUgTGlzdFNlcnZpY2UnKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnNlcnZpY2UucGF0Y2hSZXNvdXJjZXMoYWN0aW9uLnJlc291cmNlSWRzLCBhY3Rpb24ucmVzb3VyY2UpLnBpcGUoXHJcbiAgICAgICAgICBtYXAocmVzb3VyY2VzID0+IHRoaXMubGlzdEFjdGlvbnMucGF0Y2hTdWNjZXNzKHsgcmVzb3VyY2VzIH0pKSxcclxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yczogRSkgPT4gb2YodGhpcy5saXN0QWN0aW9ucy5wYXRjaEZhaWx1cmUoeyBlcnJvcnMgfSkpKVxyXG4gICAgICAgICk7XHJcbiAgICAgIH0pXHJcbiAgICApXHJcbiAgKTtcclxuXHJcbiAgLyoqXHJcbiAgICogQGRlcHJlY2F0ZWQgVGhlIG1ldGhvZCB3aWxsIGJlIHJlbW92ZWQuIFRIZSBBYnN0cmFjdEVmZmVjdCB3aWxsIG5vdCBiZSByZXNwb25zaWJsZSBmb3IgaXQgYW55bW9yZVxyXG4gICAqL1xyXG4gIHNob3dSZW1vdmFsc0RpYWxvZyQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cclxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgICAgb2ZUeXBlKHRoaXMubGlzdEFjdGlvbnMuc2hvd1JlbW92YWxzQ29uZmlybWF0aW9uKSxcclxuICAgICAgc3dpdGNoTWFwKCgpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlPy5vcGVuQ29uZmlybWF0aW9uRGlhbG9nKSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLm9wZW5Db25maXJtYXRpb25EaWFsb2coe1xyXG4gICAgICAgICAgICBtZXNzYWdlOiB0aGlzLnRleHRzLmRlbGV0ZUNvbmZpcm1hdGlvbk1lc3NhZ2UsXHJcbiAgICAgICAgICAgIHRpdGxlOiB0aGlzLnRleHRzLmRlbGV0ZUNvbmZpcm1hdGlvblRpdGxlXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBvZih0cnVlKTtcclxuICAgICAgfSksXHJcbiAgICAgIGZpbHRlcihjb25maXJtZWQgPT4gY29uZmlybWVkKSxcclxuICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5zdG9yZS5waXBlKHNlbGVjdCh0aGlzLmxpc3RTZWxlY3RvcnMuZ2V0U2VsZWN0ZWRSZXNvdXJjZUlkcykpKSxcclxuICAgICAgZmlsdGVyKChbLCByZXNvdXJjZUlkc10pID0+ICEhcmVzb3VyY2VJZHMubGVuZ3RoKSxcclxuICAgICAgbWFwKChbLCByZXNvdXJjZUlkc10pID0+IHRoaXMubGlzdEFjdGlvbnMuZGVsZXRlKHsgcmVzb3VyY2VJZHMgfSkpXHJcbiAgICApXHJcbiAgKTtcclxuXHJcbiAgZGVsZXRlJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxyXG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxyXG4gICAgICBvZlR5cGUodGhpcy5saXN0QWN0aW9ucy5kZWxldGUpLFxyXG4gICAgICBleGhhdXN0TWFwKCh7IHJlc291cmNlSWRzIH0pID0+IHtcclxuICAgICAgICBpZiAoIXRoaXMuc2VydmljZS5kZWxldGVSZXNvdXJjZXMpIHtcclxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignZGVsZXRlUmVzb3VyY2VzIG5vdCBpbXBsZW1lbnQgaW4gdGhlIExpc3RTZXJ2aWNlJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLmRlbGV0ZVJlc291cmNlcyhyZXNvdXJjZUlkcykucGlwZShcclxuICAgICAgICAgIG1hcCgoKSA9PiB0aGlzLmxpc3RBY3Rpb25zLmRlbGV0ZVN1Y2Nlc3MoeyByZXNvdXJjZUlkcyB9KSksXHJcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcnM6IEUpID0+IG9mKHRoaXMubGlzdEFjdGlvbnMuZGVsZXRlRmFpbHVyZSh7IGVycm9ycyB9KSkpXHJcbiAgICAgICAgKTtcclxuICAgICAgfSlcclxuICAgIClcclxuICApO1xyXG5cclxuICBkZWxldGVTdWNjZXNzJCA9IGNyZWF0ZUVmZmVjdChcclxuICAgICgpID0+XHJcbiAgICAgIHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgICAgICBvZlR5cGUodGhpcy5saXN0QWN0aW9ucy5kZWxldGVTdWNjZXNzKSxcclxuICAgICAgICB0YXAoKHsgcmVzb3VyY2VJZHMgfSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlPy5vbkxpc3REZWxldGUocmVzb3VyY2VJZHMpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICksXHJcbiAgICB7IGRpc3BhdGNoOiBmYWxzZSB9XHJcbiAgKTtcclxuXHJcbiAgZXJyb3JzSGFuZGxlciQgPSBjcmVhdGVFZmZlY3QoXHJcbiAgICAoKSA9PlxyXG4gICAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgICAgICAgb2ZUeXBlKHRoaXMubGlzdEFjdGlvbnMubG9hZFBhZ2VGYWlsdXJlLCB0aGlzLmxpc3RBY3Rpb25zLmRlbGV0ZUZhaWx1cmUsIHRoaXMubGlzdEFjdGlvbnMucGF0Y2hGYWlsdXJlKSxcclxuICAgICAgICB0YXAoKHsgZXJyb3JzIH0pID0+IHtcclxuICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZT8ub25MaXN0RXJyb3JzKGVycm9ycyk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKSxcclxuICAgIHsgZGlzcGF0Y2g6IGZhbHNlIH1cclxuICApO1xyXG5cclxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoXHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgYWN0aW9ucyQ6IEFjdGlvbnMsXHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3RvcmU6IFN0b3JlLFxyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHNlcnZpY2U6IExpc3RTZXJ2aWNlPFQsIFMsIFBhcmFtcz4sXHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbGlzdEFjdGlvbnM6IExpc3RBY3Rpb25zPFQsIEUsIFMsIFBhcmFtcz4sXHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbGlzdFNlbGVjdG9yczogTGlzdFNlbGVjdG9yczxTLCBFLCBQYXJhbXM+LFxyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG5vdGlmaWNhdGlvblNlcnZpY2U/OiBMaXN0Tm90aWZpY2F0aW9uU2VydmljZTxFPlxyXG4gICkge31cclxufVxyXG4iXX0=
@@ -1,44 +0,0 @@
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
- }
36
- AbstractListReducerManager.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AbstractListReducerManager, deps: [{ token: i1.ReducerManager }, { token: LIST_FEATURE_KEY }], target: i0.ɵɵFactoryTarget.Injectable });
37
- AbstractListReducerManager.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AbstractListReducerManager });
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AbstractListReducerManager, decorators: [{
39
- type: Injectable
40
- }], ctorParameters: function () { return [{ type: i1.ReducerManager }, { type: undefined, decorators: [{
41
- type: Inject,
42
- args: [LIST_FEATURE_KEY]
43
- }] }]; } });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtbGlzdC1zdGF0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZ2R1eC91dGlsL3N0b3JlL2xpc3Qvc3JjL2xpYi9zdGF0ZS1nZW5lcmF0b3IvYWJzdHJhY3QtbGlzdC1zdGF0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxjQUFjLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUF5QyxNQUFNLHNCQUFzQixDQUFDO0FBQy9GLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7QUFHdkQsTUFBTSxPQUFnQiwwQkFBMEI7SUFVOUMsWUFDbUIsY0FBOEIsRUFDSixVQUFrQjtRQUQ1QyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDSixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBRTdELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDN0MsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFUyxVQUFVO1FBQ2xCLE9BQU8saUJBQWlCLENBQWtCLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLE9BQU8sdUJBQXVCLEVBQUssQ0FBQztJQUN0QyxDQUFDO0lBRVMsVUFBVTtRQUNsQixNQUFNLGVBQWUsR0FBYSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRXpGLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUM5QyxNQUFNLE9BQU8sR0FBRyxpQkFBaUIsQ0FBa0IsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDckYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztTQUMxRDtJQUNILENBQUM7SUFFUyxZQUFZO1FBQ3BCLE1BQU0sUUFBUSxHQUFHLHFCQUFxQixDQUEwQixJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakYsT0FBTyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzNELENBQUM7O3VIQXhDbUIsMEJBQTBCLGdEQVlwQyxnQkFBZ0I7MkhBWk4sMEJBQTBCOzJGQUExQiwwQkFBMEI7a0JBRC9DLFVBQVU7OzBCQWFOLE1BQU07MkJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEVudGl0eUFkYXB0ZXIgfSBmcm9tICdAbmdyeC9lbnRpdHknO1xyXG5pbXBvcnQgeyBSZWR1Y2VyTWFuYWdlciwgY3JlYXRlRmVhdHVyZVNlbGVjdG9yIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xyXG5pbXBvcnQgeyBMSVNUX0ZFQVRVUkVfS0VZLCBMaXN0QWN0aW9ucywgTGlzdFNlbGVjdG9ycywgTGlzdFN0YXRlIH0gZnJvbSAnLi4vbW9kZWxzL2xpc3QubW9kZWwnO1xyXG5pbXBvcnQgeyBjcmVhdGVMaXN0QWN0aW9ucyB9IGZyb20gJy4vbGlzdC1hY3Rpb25zJztcclxuaW1wb3J0IHsgY3JlYXRlTGlzdEVudGl0eUFkYXB0ZXIsIGNyZWF0ZUxpc3RSZWR1Y2VyIH0gZnJvbSAnLi9saXN0LXJlZHVjZXInO1xyXG5pbXBvcnQgeyBjcmVhdGVMaXN0U2VsZWN0b3JzIH0gZnJvbSAnLi9saXN0LXNlbGVjdG9ycyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdExpc3RSZWR1Y2VyTWFuYWdlcjxcclxuICBUIGV4dGVuZHMgeyBba2V5OiBzdHJpbmddOiBhbnkgfSxcclxuICBFLFxyXG4gIFMgZXh0ZW5kcyB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0gVCxcclxuICBQYXJhbXMgPSBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+XHJcbj4ge1xyXG4gIGFjdGlvbnM6IExpc3RBY3Rpb25zPFQsIEUsIFMsIFBhcmFtcz47XHJcbiAgc2VsZWN0b3JzOiBMaXN0U2VsZWN0b3JzPFMsIEUsIFBhcmFtcz47XHJcbiAgcHJpdmF0ZSBlbnRpdHlBZGFwdGVyOiBFbnRpdHlBZGFwdGVyPFM+O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVkdWNlck1hbmFnZXI6IFJlZHVjZXJNYW5hZ2VyLFxyXG4gICAgQEluamVjdChMSVNUX0ZFQVRVUkVfS0VZKSBwcml2YXRlIHJlYWRvbmx5IGZlYXR1cmVLZXk6IHN0cmluZ1xyXG4gICkge1xyXG4gICAgdGhpcy5hY3Rpb25zID0gdGhpcy5nZXRBY3Rpb25zKCk7XHJcbiAgICB0aGlzLmVudGl0eUFkYXB0ZXIgPSB0aGlzLmdldEVudGl0eUFkYXB0ZXIoKTtcclxuICAgIHRoaXMuYWRkUmVkdWNlcigpO1xyXG4gICAgdGhpcy5zZWxlY3RvcnMgPSB0aGlzLmdldFNlbGVjdG9ycygpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGdldEFjdGlvbnMoKSB7XHJcbiAgICByZXR1cm4gY3JlYXRlTGlzdEFjdGlvbnM8VCwgRSwgUywgUGFyYW1zPih0aGlzLmZlYXR1cmVLZXkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRFbnRpdHlBZGFwdGVyKCkge1xyXG4gICAgcmV0dXJuIGNyZWF0ZUxpc3RFbnRpdHlBZGFwdGVyPFM+KCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgYWRkUmVkdWNlcigpIHtcclxuICAgIGNvbnN0IGN1cnJlbnRSZWR1Y2Vyczogc3RyaW5nW10gPSBPYmplY3Qua2V5cyh0aGlzLnJlZHVjZXJNYW5hZ2VyLmN1cnJlbnRSZWR1Y2VycyB8fCB7fSk7XHJcblxyXG4gICAgaWYgKCFjdXJyZW50UmVkdWNlcnMuaW5jbHVkZXModGhpcy5mZWF0dXJlS2V5KSkge1xyXG4gICAgICBjb25zdCByZWR1Y2VyID0gY3JlYXRlTGlzdFJlZHVjZXI8VCwgRSwgUywgUGFyYW1zPih0aGlzLmVudGl0eUFkYXB0ZXIsIHRoaXMuYWN0aW9ucyk7XHJcbiAgICAgIHRoaXMucmVkdWNlck1hbmFnZXIuYWRkUmVkdWNlcih0aGlzLmZlYXR1cmVLZXksIHJlZHVjZXIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGdldFNlbGVjdG9ycygpIHtcclxuICAgIGNvbnN0IGdldFN0YXRlID0gY3JlYXRlRmVhdHVyZVNlbGVjdG9yPExpc3RTdGF0ZTxTLCBFLCBQYXJhbXM+Pih0aGlzLmZlYXR1cmVLZXkpO1xyXG4gICAgcmV0dXJuIGNyZWF0ZUxpc3RTZWxlY3RvcnModGhpcy5lbnRpdHlBZGFwdGVyLCBnZXRTdGF0ZSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==