@ngdux/list 1.3.2 → 1.4.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/index.mjs +10 -8
- package/esm2020/lib/+state/effects.mjs +23 -0
- package/esm2020/lib/+state/state.service.mjs +55 -0
- package/esm2020/lib/models/list.model.mjs +4 -1
- package/esm2020/lib/ngdux-list-state.module.mjs +53 -0
- package/esm2020/lib/services/list-notification-service.mjs +21 -0
- package/esm2020/lib/state-generator/abstract-list-effects.mjs +66 -0
- package/esm2020/lib/state-generator/abstract-list-state.service.mjs +44 -0
- package/esm2020/lib/state-generator/abstract-list.facade.mjs +91 -0
- package/esm2020/lib/state-generator/list-actions.mjs +63 -0
- package/esm2020/lib/state-generator/list-reducer.mjs +104 -0
- package/esm2020/lib/state-generator/list-selectors.mjs +80 -0
- package/esm2020/lib/state-generator/list-state.mjs +18 -0
- package/fesm2015/ngdux-list.mjs +240 -107
- package/fesm2015/ngdux-list.mjs.map +1 -1
- package/fesm2020/ngdux-list.mjs +240 -105
- package/fesm2020/ngdux-list.mjs.map +1 -1
- package/index.d.ts +9 -7
- package/lib/+state/effects.d.ts +14 -0
- package/lib/+state/state.service.d.ts +22 -0
- package/lib/models/list.model.d.ts +18 -6
- package/lib/ngdux-list-state.module.d.ts +23 -0
- package/lib/services/list-notification-service.d.ts +13 -0
- package/lib/{+state → state-generator}/abstract-list-effects.d.ts +9 -11
- package/lib/{+state → state-generator}/abstract-list-state.service.d.ts +7 -7
- package/lib/{+state → state-generator}/abstract-list.facade.d.ts +20 -17
- package/lib/{+state → state-generator}/list-reducer.d.ts +2 -2
- package/lib/state-generator/list-selectors.d.ts +4 -0
- package/lib/{+state → state-generator}/list-state.d.ts +4 -4
- package/package.json +29 -13
- package/esm2020/lib/+state/abstract-list-effects.mjs +0 -71
- package/esm2020/lib/+state/abstract-list-state.service.mjs +0 -44
- package/esm2020/lib/+state/abstract-list.facade.mjs +0 -88
- package/esm2020/lib/+state/list-actions.mjs +0 -60
- package/esm2020/lib/+state/list-reducer.mjs +0 -97
- package/esm2020/lib/+state/list-selectors.mjs +0 -80
- package/esm2020/lib/+state/list-state.mjs +0 -18
- package/lib/+state/list-selectors.d.ts +0 -4
- /package/lib/{+state → state-generator}/list-actions.d.ts +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ActionPayload } from '@ngdux/store-common';
|
|
2
2
|
import { Store } from '@ngrx/store';
|
|
3
3
|
import { ListActions, ListSelectors } from '../models/list.model';
|
|
4
|
-
export declare abstract class AbstractListFacade<T, E, S = T
|
|
4
|
+
export declare abstract class AbstractListFacade<T, E, S = T, Params = Record<string, string>> {
|
|
5
5
|
protected readonly store: Store;
|
|
6
6
|
private readonly listActions;
|
|
7
7
|
private readonly listSelectors;
|
|
@@ -14,33 +14,36 @@ export declare abstract class AbstractListFacade<T, E, S = T> {
|
|
|
14
14
|
readonly currentPageData$: import("rxjs").Observable<S[]>;
|
|
15
15
|
readonly currentPageNumber$: import("rxjs").Observable<number>;
|
|
16
16
|
readonly filteringOptions$: import("rxjs").Observable<import("@ngdux/data-model-common").FilteringOptions>;
|
|
17
|
-
readonly requestParameters$: import("rxjs").Observable<
|
|
17
|
+
readonly requestParameters$: import("rxjs").Observable<Params | undefined>;
|
|
18
18
|
readonly lastPageNumber$: import("rxjs").Observable<number | undefined>;
|
|
19
19
|
readonly pagingOptions$: import("rxjs").Observable<import("@ngdux/data-model-common").PagingOptions>;
|
|
20
|
-
readonly requestOptions$: import("rxjs").Observable<import("@ngdux/data-model-common").RequestOptions
|
|
20
|
+
readonly requestOptions$: import("rxjs").Observable<import("@ngdux/data-model-common").RequestOptions<Record<string, string>>>;
|
|
21
21
|
readonly sortingOptions$: import("rxjs").Observable<import("@ngdux/data-model-common").SortingOptions>;
|
|
22
22
|
readonly selectedItems$: import("rxjs").Observable<S[]>;
|
|
23
23
|
readonly totalCount$: import("rxjs").Observable<number>;
|
|
24
|
-
constructor(store: Store, listActions: ListActions<T, E, S>, listSelectors: ListSelectors<S, E>);
|
|
25
|
-
setPageSize(props: ActionPayload<ListActions<T, E>['setPageSize']>): void;
|
|
26
|
-
setFiltering(props: ActionPayload<ListActions<T, E>['setFiltering']>): void;
|
|
27
|
-
setSorting(props: ActionPayload<ListActions<T, E>['setSorting']>): void;
|
|
28
|
-
setRequestParameters(props: ActionPayload<ListActions<T, E>['setRequestParams']>): void;
|
|
29
|
-
changeFiltering(props: ActionPayload<ListActions<T, E>['changeFiltering']>): void;
|
|
30
|
-
changePagingOptions(props: ActionPayload<ListActions<T, E>['changePagingOptions']>): void;
|
|
31
|
-
changePageSize(props: ActionPayload<ListActions<T, E>['changePageSize']>): void;
|
|
32
|
-
changePageNumber(props: ActionPayload<ListActions<T, E>['changePageNumber']>): void;
|
|
33
|
-
changeSelectedResources(props: ActionPayload<ListActions<T, E>['changeSelectedResources']>): void;
|
|
34
|
-
changeSorting(props: ActionPayload<ListActions<T, E>['changeSorting']>): void;
|
|
35
|
-
changeRequestParams(props: ActionPayload<ListActions<T, E>['changeRequestParams']>): void;
|
|
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
36
|
loadPage(): void;
|
|
37
37
|
loadFirstPage(): void;
|
|
38
38
|
loadNextPage(): void;
|
|
39
39
|
loadPreviousPage(): void;
|
|
40
|
-
patch(props: ActionPayload<ListActions<T, E>['patch']>): void;
|
|
41
|
-
delete(props: ActionPayload<ListActions<T, E>['delete']>): void;
|
|
40
|
+
patch(props: ActionPayload<ListActions<T, E, S, Params>['patch']>): void;
|
|
41
|
+
delete(props: ActionPayload<ListActions<T, E, S, Params>['delete']>): void;
|
|
42
42
|
initialize(): void;
|
|
43
43
|
reinitialize(): void;
|
|
44
44
|
resetRequestState(): void;
|
|
45
|
+
/**
|
|
46
|
+
* @deprecated The method will be removed. The AbstractFacade will not be responsible for it anymore
|
|
47
|
+
*/
|
|
45
48
|
showRemovalsConfirmation(): void;
|
|
46
49
|
}
|
|
@@ -5,6 +5,6 @@ import { ListActions, ListState } from '../models/list.model';
|
|
|
5
5
|
export declare function createListEntityAdapter<T extends {
|
|
6
6
|
[key: string]: any;
|
|
7
7
|
}>(idKey?: string): EntityAdapter<T>;
|
|
8
|
-
export declare function createListReducer<T, E, S = 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
9
|
[key: string]: unknown;
|
|
10
|
-
}): ActionReducer<ListState<S, E>>;
|
|
10
|
+
}): ActionReducer<ListState<S, E, Params>>;
|
|
@@ -0,0 +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>;
|
|
@@ -4,9 +4,9 @@ export declare function createListState<T extends {
|
|
|
4
4
|
[key: string]: any;
|
|
5
5
|
}, E, S extends {
|
|
6
6
|
[key: string]: any;
|
|
7
|
-
} = T
|
|
8
|
-
actions: import("../models/list.model").ListActions<T, E, S,
|
|
9
|
-
reducer: (state: ListState<S, E>, action: Action) => ListState<S, E>;
|
|
10
|
-
selectors: import("../models/list.model").ListSelectors<S, E>;
|
|
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
11
|
entityAdapter: import("@ngrx/entity").EntityAdapter<S>;
|
|
12
12
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ngdux/list",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git@github.com:allanartuso/ngdux.git",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
},
|
|
16
16
|
"default": {
|
|
17
17
|
"name": "@ngdux/list",
|
|
18
|
-
"version": "1.3.
|
|
18
|
+
"version": "1.3.2",
|
|
19
19
|
"repository": {
|
|
20
20
|
"type": "git",
|
|
21
21
|
"url": "git@github.com:allanartuso/ngdux.git",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
},
|
|
31
31
|
"default": {
|
|
32
32
|
"name": "@ngdux/list",
|
|
33
|
-
"version": "1.3.
|
|
33
|
+
"version": "1.3.1",
|
|
34
34
|
"repository": {
|
|
35
35
|
"type": "git",
|
|
36
36
|
"url": "git@github.com:allanartuso/ngdux.git",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
},
|
|
46
46
|
"default": {
|
|
47
47
|
"name": "@ngdux/list",
|
|
48
|
-
"version": "1.
|
|
48
|
+
"version": "1.3.0",
|
|
49
49
|
"repository": {
|
|
50
50
|
"type": "git",
|
|
51
51
|
"url": "git@github.com:allanartuso/ngdux.git",
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
},
|
|
61
61
|
"default": {
|
|
62
62
|
"name": "@ngdux/list",
|
|
63
|
-
"version": "1.2.
|
|
63
|
+
"version": "1.2.1",
|
|
64
64
|
"repository": {
|
|
65
65
|
"type": "git",
|
|
66
66
|
"url": "git@github.com:allanartuso/ngdux.git",
|
|
@@ -75,27 +75,43 @@
|
|
|
75
75
|
},
|
|
76
76
|
"default": {
|
|
77
77
|
"name": "@ngdux/list",
|
|
78
|
-
"version": "1.
|
|
78
|
+
"version": "1.2.0",
|
|
79
79
|
"repository": {
|
|
80
80
|
"type": "git",
|
|
81
81
|
"url": "git@github.com:allanartuso/ngdux.git",
|
|
82
82
|
"directory": "/libs/ngdux/util/store/list"
|
|
83
83
|
},
|
|
84
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
|
+
},
|
|
85
91
|
"default": {
|
|
86
92
|
"name": "@ngdux/list",
|
|
93
|
+
"version": "1.1.1",
|
|
87
94
|
"repository": {
|
|
88
95
|
"type": "git",
|
|
89
96
|
"url": "git@github.com:allanartuso/ngdux.git",
|
|
90
97
|
"directory": "/libs/ngdux/util/store/list"
|
|
91
98
|
},
|
|
92
|
-
"homepage": "https://github.com/allanartuso/ngdux/tree/master/libs/ngdux/util/store/list#readme"
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
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
|
+
}
|
|
99
115
|
}
|
|
100
116
|
}
|
|
101
117
|
}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import { createEffect, ofType } from '@ngrx/effects';
|
|
2
|
-
import { select } from '@ngrx/store';
|
|
3
|
-
import { of } from 'rxjs';
|
|
4
|
-
import { catchError, concatMap, 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.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.changePagingOptions$ = createEffect(() => this.actions$.pipe(ofType(this.listActions.changePagingOptions), withLatestFrom(this.store.pipe(select(this.listSelectors.getPagingOptions))), map(([action, pagingOptions]) => {
|
|
22
|
-
if (action.pagingOptions.pageSize !== pagingOptions.pageSize) {
|
|
23
|
-
return this.listActions.changePageSize({ pageSize: action.pagingOptions.pageSize });
|
|
24
|
-
}
|
|
25
|
-
else {
|
|
26
|
-
return this.listActions.changePageNumber({ pageNumber: action.pagingOptions.page });
|
|
27
|
-
}
|
|
28
|
-
})));
|
|
29
|
-
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))), concatMap(([, pagingOptions, sortingOptions, filteringOptions, requestParameters]) => {
|
|
30
|
-
return this.service
|
|
31
|
-
.loadResources({
|
|
32
|
-
pagingOptions,
|
|
33
|
-
sortingOptions,
|
|
34
|
-
filteringOptions,
|
|
35
|
-
requestParameters
|
|
36
|
-
})
|
|
37
|
-
.pipe(map(resources => this.listActions.loadPageSuccess({
|
|
38
|
-
resources,
|
|
39
|
-
pagingOptions
|
|
40
|
-
})), catchError((errors) => of(this.listActions.loadPageFailure({ errors }))));
|
|
41
|
-
})));
|
|
42
|
-
this.patch$ = createEffect(() => this.actions$.pipe(ofType(this.listActions.patch), exhaustMap(action => {
|
|
43
|
-
if (!this.service.patchResources) {
|
|
44
|
-
throw new Error('patchResources not implement in the ListService');
|
|
45
|
-
}
|
|
46
|
-
return this.service.patchResources(action.resourceIds, action.resource).pipe(map(resources => this.listActions.patchSuccess({ resources })), catchError((errors) => of(this.listActions.patchFailure({ errors }))));
|
|
47
|
-
})));
|
|
48
|
-
this.showRemovalsDialog$ = createEffect(() => this.actions$.pipe(ofType(this.listActions.showRemovalsConfirmation), switchMap(() => {
|
|
49
|
-
if (this.notificationService?.openConfirmationDialog) {
|
|
50
|
-
return this.notificationService.openConfirmationDialog({
|
|
51
|
-
message: this.texts.deleteConfirmationMessage,
|
|
52
|
-
title: this.texts.deleteConfirmationTitle
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
return of(true);
|
|
56
|
-
}), filter(confirmed => confirmed), withLatestFrom(this.store.pipe(select(this.listSelectors.getSelectedResourceIds))), map(([, resourceIds]) => this.listActions.delete({ resourceIds }))));
|
|
57
|
-
this.delete$ = createEffect(() => this.actions$.pipe(ofType(this.listActions.delete), exhaustMap(({ resourceIds }) => {
|
|
58
|
-
if (!this.service.deleteResources) {
|
|
59
|
-
throw new Error('deleteResources not implement in the ListService');
|
|
60
|
-
}
|
|
61
|
-
return this.service.deleteResources(resourceIds).pipe(map(() => this.listActions.deleteSuccess({ resourceIds })), catchError((errors) => of(this.listActions.deleteFailure({ errors }))));
|
|
62
|
-
})));
|
|
63
|
-
this.deleteUsersSuccess$ = createEffect(() => this.actions$.pipe(ofType(this.listActions.deleteSuccess), tap(({ resourceIds }) => {
|
|
64
|
-
this.notificationService?.onListDelete(resourceIds);
|
|
65
|
-
})), { dispatch: false });
|
|
66
|
-
this.errorsHandler$ = createEffect(() => this.actions$.pipe(ofType(this.listActions.loadPageFailure, this.listActions.deleteFailure, this.listActions.patchFailure), tap(({ errors }) => {
|
|
67
|
-
this.notificationService?.onListErrors(errors);
|
|
68
|
-
})), { dispatch: false });
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtbGlzdC1lZmZlY3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZ2R1eC91dGlsL3N0b3JlL2xpc3Qvc3JjL2xpYi8rc3RhdGUvYWJzdHJhY3QtbGlzdC1lZmZlY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBVyxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBUyxNQUFNLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQixPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSWhILE1BQU0sT0FBZ0IsbUJBQW1CO0lBd0t2QyxZQUNxQixRQUFpQixFQUNqQixLQUFZLEVBQ1osT0FBMEIsRUFDMUIsV0FBaUMsRUFDakMsYUFBa0MsRUFDbEMsbUJBQWdEO1FBTGhELGFBQVEsR0FBUixRQUFRLENBQVM7UUFDakIsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUNaLFlBQU8sR0FBUCxPQUFPLENBQW1CO1FBQzFCLGdCQUFXLEdBQVgsV0FBVyxDQUFzQjtRQUNqQyxrQkFBYSxHQUFiLGFBQWEsQ0FBcUI7UUFDbEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUE2QjtRQTdLckUsVUFBSyxHQUFHO1lBQ04sdUJBQXVCLEVBQUUsa0JBQWtCO1lBQzNDLHlCQUF5QixFQUFFLGdEQUFnRDtTQUM1RSxDQUFDO1FBRUYsWUFBTyxHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FDMUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ2hCLE1BQU0sQ0FDSixJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFDL0IsSUFB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LENBQ3BCLENBQUM7SUFTQyxDQUFDO0NBQ0wiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMaXN0Tm90aWZpY2F0aW9uU2VydmljZSwgTGlzdFNlcnZpY2UgfSBmcm9tICdAbmdkdXgvZGF0YS1tb2RlbC1jb21tb24nO1xyXG5pbXBvcnQgeyBBY3Rpb25zLCBjcmVhdGVFZmZlY3QsIG9mVHlwZSB9IGZyb20gJ0BuZ3J4L2VmZmVjdHMnO1xyXG5pbXBvcnQgeyBTdG9yZSwgc2VsZWN0IH0gZnJvbSAnQG5ncngvc3RvcmUnO1xyXG5pbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBjb25jYXRNYXAsIGV4aGF1c3RNYXAsIGZpbHRlciwgbWFwLCBzd2l0Y2hNYXAsIHRhcCwgd2l0aExhdGVzdEZyb20gfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBMaXN0QWN0aW9ucywgTGlzdFNlbGVjdG9ycyB9IGZyb20gJy4uL21vZGVscy9saXN0Lm1vZGVsJztcclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdExpc3RFZmZlY3RzPFQsIEUsIFMgPSBUPiB7XHJcbiAgdGV4dHMgPSB7XHJcbiAgICBkZWxldGVDb25maXJtYXRpb25UaXRsZTogJ0RlbGV0ZSByZXNvdXJjZXMnLFxyXG4gICAgZGVsZXRlQ29uZmlybWF0aW9uTWVzc2FnZTogJ0FyZSB5b3Ugc3VyZSB0byBkZWxldGUgdGhlIHNlbGVjdGVkIHJlc291cmNlcz8nXHJcbiAgfTtcclxuXHJcbiAgcmVsb2FkJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxyXG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxyXG4gICAgICBvZlR5cGUoXHJcbiAgICAgICAgdGhpcy5saXN0QWN0aW9ucy5jaGFuZ2VQYWdlU2l6ZSxcclxuICAgICAgICB0aGlzLmxpc3RBY3Rpb25zLmNoYW5nZVNvcnRpbmcsXHJcbiAgICAgICAgdGhpcy5saXN0QWN0aW9ucy5jaGFuZ2VGaWx0ZXJpbmcsXHJcbiAgICAgICAgdGhpcy5saXN0QWN0aW9ucy5jaGFuZ2VSZXF1ZXN0UGFyYW1zLFxyXG4gICAgICAgIHRoaXMubGlzdEFjdGlvbnMuaW5pdGlhbGl6ZSxcclxuICAgICAgICB0aGlzLmxpc3RBY3Rpb25zLnJlc2V0LFxyXG4gICAgICAgIHRoaXMubGlzdEFjdGlvbnMuY2hhbmdlUGFnZU51bWJlcixcclxuICAgICAgICB0aGlzLmxpc3RBY3Rpb25zLnBhdGNoU3VjY2VzcyxcclxuICAgICAgICB0aGlzLmxpc3RBY3Rpb25zLmRlbGV0ZVN1Y2Nlc3NcclxuICAgICAgKSxcclxuICAgICAgbWFwKCgpID0+IHRoaXMubGlzdEFjdGlvbnMubG9hZFBhZ2UoKSlcclxuICAgIClcclxuICApO1xyXG5cclxuICBsb2FkRmlyc3RQYWdlJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxyXG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxyXG4gICAgICBvZlR5cGUodGhpcy5saXN0QWN0aW9ucy5sb2FkRmlyc3RQYWdlKSxcclxuICAgICAgbWFwKCgpID0+IHRoaXMubGlzdEFjdGlvbnMuY2hhbmdlUGFnZU51bWJlcih7IHBhZ2VOdW1iZXI6IDEgfSkpXHJcbiAgICApXHJcbiAgKTtcclxuXHJcbiAgbG9hZFByZXZpb3VzUGFnZSQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cclxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgICAgb2ZUeXBlKHRoaXMubGlzdEFjdGlvbnMubG9hZFByZXZpb3VzUGFnZSksXHJcbiAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuc3RvcmUucGlwZShzZWxlY3QodGhpcy5saXN0U2VsZWN0b3JzLmdldEN1cnJlbnRQYWdlTnVtYmVyKSkpLFxyXG4gICAgICBmaWx0ZXIoKFssIGN1cnJlbnRQYWdlTnVtYmVyXSkgPT4gY3VycmVudFBhZ2VOdW1iZXIgPiAxKSxcclxuICAgICAgbWFwKChbLCBjdXJyZW50UGFnZU51bWJlcl0pID0+IHRoaXMubGlzdEFjdGlvbnMuY2hhbmdlUGFnZU51bWJlcih7IHBhZ2VOdW1iZXI6IGN1cnJlbnRQYWdlTnVtYmVyIC0gMSB9KSlcclxuICAgIClcclxuICApO1xyXG5cclxuICBsb2FkTmV4dFBhZ2UkID0gY3JlYXRlRWZmZWN0KCgpID0+XHJcbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgICAgIG9mVHlwZSh0aGlzLmxpc3RBY3Rpb25zLmxvYWROZXh0UGFnZSksXHJcbiAgICAgIHdpdGhMYXRlc3RGcm9tKFxyXG4gICAgICAgIHRoaXMuc3RvcmUucGlwZShzZWxlY3QodGhpcy5saXN0U2VsZWN0b3JzLmlzTGFzdFBhZ2UpKSxcclxuICAgICAgICB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHRoaXMubGlzdFNlbGVjdG9ycy5nZXRDdXJyZW50UGFnZU51bWJlcikpXHJcbiAgICAgICksXHJcbiAgICAgIGZpbHRlcigoWywgaXNMYXN0UGFnZV0pID0+ICFpc0xhc3RQYWdlKSxcclxuICAgICAgbWFwKChbLCAsIGN1cnJlbnRQYWdlTnVtYmVyXSkgPT4gdGhpcy5saXN0QWN0aW9ucy5jaGFuZ2VQYWdlTnVtYmVyKHsgcGFnZU51bWJlcjogY3VycmVudFBhZ2VOdW1iZXIgKyAxIH0pKVxyXG4gICAgKVxyXG4gICk7XHJcblxyXG4gIGNoYW5nZVBhZ2luZ09wdGlvbnMkID0gY3JlYXRlRWZmZWN0KCgpID0+XHJcbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgICAgIG9mVHlwZSh0aGlzLmxpc3RBY3Rpb25zLmNoYW5nZVBhZ2luZ09wdGlvbnMpLFxyXG4gICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHRoaXMubGlzdFNlbGVjdG9ycy5nZXRQYWdpbmdPcHRpb25zKSkpLFxyXG4gICAgICBtYXAoKFthY3Rpb24sIHBhZ2luZ09wdGlvbnNdKSA9PiB7XHJcbiAgICAgICAgaWYgKGFjdGlvbi5wYWdpbmdPcHRpb25zLnBhZ2VTaXplICE9PSBwYWdpbmdPcHRpb25zLnBhZ2VTaXplKSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5saXN0QWN0aW9ucy5jaGFuZ2VQYWdlU2l6ZSh7IHBhZ2VTaXplOiBhY3Rpb24ucGFnaW5nT3B0aW9ucy5wYWdlU2l6ZSB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMubGlzdEFjdGlvbnMuY2hhbmdlUGFnZU51bWJlcih7IHBhZ2VOdW1iZXI6IGFjdGlvbi5wYWdpbmdPcHRpb25zLnBhZ2UgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKVxyXG4gICk7XHJcblxyXG4gIGxvYWRQYWdlJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxyXG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxyXG4gICAgICBvZlR5cGUodGhpcy5saXN0QWN0aW9ucy5sb2FkUGFnZSksXHJcbiAgICAgIHdpdGhMYXRlc3RGcm9tKFxyXG4gICAgICAgIHRoaXMuc3RvcmUucGlwZShzZWxlY3QodGhpcy5saXN0U2VsZWN0b3JzLmdldFBhZ2luZ09wdGlvbnMpKSxcclxuICAgICAgICB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHRoaXMubGlzdFNlbGVjdG9ycy5nZXRTb3J0aW5nT3B0aW9ucykpLFxyXG4gICAgICAgIHRoaXMuc3RvcmUucGlwZShzZWxlY3QodGhpcy5saXN0U2VsZWN0b3JzLmdldEZpbHRlcmluZ09wdGlvbnMpKSxcclxuICAgICAgICB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHRoaXMubGlzdFNlbGVjdG9ycy5nZXRSZXF1ZXN0UGFyYW1ldGVycykpXHJcbiAgICAgICksXHJcbiAgICAgIGNvbmNhdE1hcCgoWywgcGFnaW5nT3B0aW9ucywgc29ydGluZ09wdGlvbnMsIGZpbHRlcmluZ09wdGlvbnMsIHJlcXVlc3RQYXJhbWV0ZXJzXSkgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNlcnZpY2VcclxuICAgICAgICAgIC5sb2FkUmVzb3VyY2VzKHtcclxuICAgICAgICAgICAgcGFnaW5nT3B0aW9ucyxcclxuICAgICAgICAgICAgc29ydGluZ09wdGlvbnMsXHJcbiAgICAgICAgICAgIGZpbHRlcmluZ09wdGlvbnMsXHJcbiAgICAgICAgICAgIHJlcXVlc3RQYXJhbWV0ZXJzXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcChyZXNvdXJjZXMgPT5cclxuICAgICAgICAgICAgICB0aGlzLmxpc3RBY3Rpb25zLmxvYWRQYWdlU3VjY2Vzcyh7XHJcbiAgICAgICAgICAgICAgICByZXNvdXJjZXMsXHJcbiAgICAgICAgICAgICAgICBwYWdpbmdPcHRpb25zXHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3JzOiBFKSA9PiBvZih0aGlzLmxpc3RBY3Rpb25zLmxvYWRQYWdlRmFpbHVyZSh7IGVycm9ycyB9KSkpXHJcbiAgICAgICAgICApO1xyXG4gICAgICB9KVxyXG4gICAgKVxyXG4gICk7XHJcblxyXG4gIHBhdGNoJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxyXG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxyXG4gICAgICBvZlR5cGUodGhpcy5saXN0QWN0aW9ucy5wYXRjaCksXHJcbiAgICAgIGV4aGF1c3RNYXAoYWN0aW9uID0+IHtcclxuICAgICAgICBpZiAoIXRoaXMuc2VydmljZS5wYXRjaFJlc291cmNlcykge1xyXG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdwYXRjaFJlc291cmNlcyBub3QgaW1wbGVtZW50IGluIHRoZSBMaXN0U2VydmljZScpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VydmljZS5wYXRjaFJlc291cmNlcyhhY3Rpb24ucmVzb3VyY2VJZHMsIGFjdGlvbi5yZXNvdXJjZSkucGlwZShcclxuICAgICAgICAgIG1hcChyZXNvdXJjZXMgPT4gdGhpcy5saXN0QWN0aW9ucy5wYXRjaFN1Y2Nlc3MoeyByZXNvdXJjZXMgfSkpLFxyXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3JzOiBFKSA9PiBvZih0aGlzLmxpc3RBY3Rpb25zLnBhdGNoRmFpbHVyZSh7IGVycm9ycyB9KSkpXHJcbiAgICAgICAgKTtcclxuICAgICAgfSlcclxuICAgIClcclxuICApO1xyXG5cclxuICBzaG93UmVtb3ZhbHNEaWFsb2ckID0gY3JlYXRlRWZmZWN0KCgpID0+XHJcbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgICAgIG9mVHlwZSh0aGlzLmxpc3RBY3Rpb25zLnNob3dSZW1vdmFsc0NvbmZpcm1hdGlvbiksXHJcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMubm90aWZpY2F0aW9uU2VydmljZT8ub3BlbkNvbmZpcm1hdGlvbkRpYWxvZykge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5vcGVuQ29uZmlybWF0aW9uRGlhbG9nKHtcclxuICAgICAgICAgICAgbWVzc2FnZTogdGhpcy50ZXh0cy5kZWxldGVDb25maXJtYXRpb25NZXNzYWdlLFxyXG4gICAgICAgICAgICB0aXRsZTogdGhpcy50ZXh0cy5kZWxldGVDb25maXJtYXRpb25UaXRsZVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gb2YodHJ1ZSk7XHJcbiAgICAgIH0pLFxyXG4gICAgICBmaWx0ZXIoY29uZmlybWVkID0+IGNvbmZpcm1lZCksXHJcbiAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuc3RvcmUucGlwZShzZWxlY3QodGhpcy5saXN0U2VsZWN0b3JzLmdldFNlbGVjdGVkUmVzb3VyY2VJZHMpKSksXHJcbiAgICAgIG1hcCgoWywgcmVzb3VyY2VJZHNdKSA9PiB0aGlzLmxpc3RBY3Rpb25zLmRlbGV0ZSh7IHJlc291cmNlSWRzIH0pKVxyXG4gICAgKVxyXG4gICk7XHJcblxyXG4gIGRlbGV0ZSQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cclxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgICAgb2ZUeXBlKHRoaXMubGlzdEFjdGlvbnMuZGVsZXRlKSxcclxuICAgICAgZXhoYXVzdE1hcCgoeyByZXNvdXJjZUlkcyB9KSA9PiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnNlcnZpY2UuZGVsZXRlUmVzb3VyY2VzKSB7XHJcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2RlbGV0ZVJlc291cmNlcyBub3QgaW1wbGVtZW50IGluIHRoZSBMaXN0U2VydmljZScpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VydmljZS5kZWxldGVSZXNvdXJjZXMocmVzb3VyY2VJZHMpLnBpcGUoXHJcbiAgICAgICAgICBtYXAoKCkgPT4gdGhpcy5saXN0QWN0aW9ucy5kZWxldGVTdWNjZXNzKHsgcmVzb3VyY2VJZHMgfSkpLFxyXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3JzOiBFKSA9PiBvZih0aGlzLmxpc3RBY3Rpb25zLmRlbGV0ZUZhaWx1cmUoeyBlcnJvcnMgfSkpKVxyXG4gICAgICAgICk7XHJcbiAgICAgIH0pXHJcbiAgICApXHJcbiAgKTtcclxuXHJcbiAgZGVsZXRlVXNlcnNTdWNjZXNzJCA9IGNyZWF0ZUVmZmVjdChcclxuICAgICgpID0+XHJcbiAgICAgIHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgICAgICBvZlR5cGUodGhpcy5saXN0QWN0aW9ucy5kZWxldGVTdWNjZXNzKSxcclxuICAgICAgICB0YXAoKHsgcmVzb3VyY2VJZHMgfSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlPy5vbkxpc3REZWxldGUocmVzb3VyY2VJZHMpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICksXHJcbiAgICB7IGRpc3BhdGNoOiBmYWxzZSB9XHJcbiAgKTtcclxuXHJcbiAgZXJyb3JzSGFuZGxlciQgPSBjcmVhdGVFZmZlY3QoXHJcbiAgICAoKSA9PlxyXG4gICAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgICAgICAgb2ZUeXBlKHRoaXMubGlzdEFjdGlvbnMubG9hZFBhZ2VGYWlsdXJlLCB0aGlzLmxpc3RBY3Rpb25zLmRlbGV0ZUZhaWx1cmUsIHRoaXMubGlzdEFjdGlvbnMucGF0Y2hGYWlsdXJlKSxcclxuICAgICAgICB0YXAoKHsgZXJyb3JzIH0pID0+IHtcclxuICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZT8ub25MaXN0RXJyb3JzKGVycm9ycyk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKSxcclxuICAgIHsgZGlzcGF0Y2g6IGZhbHNlIH1cclxuICApO1xyXG5cclxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoXHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgYWN0aW9ucyQ6IEFjdGlvbnMsXHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3RvcmU6IFN0b3JlLFxyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHNlcnZpY2U6IExpc3RTZXJ2aWNlPFQsIFM+LFxyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGxpc3RBY3Rpb25zOiBMaXN0QWN0aW9uczxULCBFLCBTPixcclxuICAgIHByb3RlY3RlZCByZWFkb25seSBsaXN0U2VsZWN0b3JzOiBMaXN0U2VsZWN0b3JzPFMsIEU+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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtbGlzdC1zdGF0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZ2R1eC91dGlsL3N0b3JlL2xpc3Qvc3JjL2xpYi8rc3RhdGUvYWJzdHJhY3QtbGlzdC1zdGF0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxjQUFjLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUF5QyxNQUFNLHNCQUFzQixDQUFDO0FBQy9GLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7QUFHdkQsTUFBTSxPQUFnQiwwQkFBMEI7SUFTOUMsWUFDbUIsY0FBOEIsRUFDSixVQUFrQjtRQUQ1QyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDSixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBRTdELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDN0MsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFUyxVQUFVO1FBQ2xCLE9BQU8saUJBQWlCLENBQVUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsT0FBTyx1QkFBdUIsRUFBSyxDQUFDO0lBQ3RDLENBQUM7SUFFUyxVQUFVO1FBQ2xCLE1BQU0sZUFBZSxHQUFhLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLElBQUksRUFBRSxDQUFDLENBQUM7UUFFekYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQzlDLE1BQU0sT0FBTyxHQUFHLGlCQUFpQixDQUFVLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzdFLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDMUQ7SUFDSCxDQUFDO0lBRVMsWUFBWTtRQUNwQixNQUFNLFFBQVEsR0FBRyxxQkFBcUIsQ0FBa0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pFLE9BQU8sbUJBQW1CLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMzRCxDQUFDOzt1SEF2Q21CLDBCQUEwQixnREFXcEMsZ0JBQWdCOzJIQVhOLDBCQUEwQjsyRkFBMUIsMEJBQTBCO2tCQUQvQyxVQUFVOzswQkFZTixNQUFNOzJCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBFbnRpdHlBZGFwdGVyIH0gZnJvbSAnQG5ncngvZW50aXR5JztcclxuaW1wb3J0IHsgUmVkdWNlck1hbmFnZXIsIGNyZWF0ZUZlYXR1cmVTZWxlY3RvciB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcclxuaW1wb3J0IHsgTElTVF9GRUFUVVJFX0tFWSwgTGlzdEFjdGlvbnMsIExpc3RTZWxlY3RvcnMsIExpc3RTdGF0ZSB9IGZyb20gJy4uL21vZGVscy9saXN0Lm1vZGVsJztcclxuaW1wb3J0IHsgY3JlYXRlTGlzdEFjdGlvbnMgfSBmcm9tICcuL2xpc3QtYWN0aW9ucyc7XHJcbmltcG9ydCB7IGNyZWF0ZUxpc3RFbnRpdHlBZGFwdGVyLCBjcmVhdGVMaXN0UmVkdWNlciB9IGZyb20gJy4vbGlzdC1yZWR1Y2VyJztcclxuaW1wb3J0IHsgY3JlYXRlTGlzdFNlbGVjdG9ycyB9IGZyb20gJy4vbGlzdC1zZWxlY3RvcnMnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RMaXN0UmVkdWNlck1hbmFnZXI8XHJcbiAgVCBleHRlbmRzIHsgW2tleTogc3RyaW5nXTogYW55IH0sXHJcbiAgRSxcclxuICBTIGV4dGVuZHMgeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IFRcclxuPiB7XHJcbiAgYWN0aW9uczogTGlzdEFjdGlvbnM8VCwgRSwgUz47XHJcbiAgc2VsZWN0b3JzOiBMaXN0U2VsZWN0b3JzPFMsIEU+O1xyXG4gIHByaXZhdGUgZW50aXR5QWRhcHRlcjogRW50aXR5QWRhcHRlcjxTPjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlZHVjZXJNYW5hZ2VyOiBSZWR1Y2VyTWFuYWdlcixcclxuICAgIEBJbmplY3QoTElTVF9GRUFUVVJFX0tFWSkgcHJpdmF0ZSByZWFkb25seSBmZWF0dXJlS2V5OiBzdHJpbmdcclxuICApIHtcclxuICAgIHRoaXMuYWN0aW9ucyA9IHRoaXMuZ2V0QWN0aW9ucygpO1xyXG4gICAgdGhpcy5lbnRpdHlBZGFwdGVyID0gdGhpcy5nZXRFbnRpdHlBZGFwdGVyKCk7XHJcbiAgICB0aGlzLmFkZFJlZHVjZXIoKTtcclxuICAgIHRoaXMuc2VsZWN0b3JzID0gdGhpcy5nZXRTZWxlY3RvcnMoKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBnZXRBY3Rpb25zKCkge1xyXG4gICAgcmV0dXJuIGNyZWF0ZUxpc3RBY3Rpb25zPFQsIEUsIFM+KHRoaXMuZmVhdHVyZUtleSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEVudGl0eUFkYXB0ZXIoKSB7XHJcbiAgICByZXR1cm4gY3JlYXRlTGlzdEVudGl0eUFkYXB0ZXI8Uz4oKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBhZGRSZWR1Y2VyKCkge1xyXG4gICAgY29uc3QgY3VycmVudFJlZHVjZXJzOiBzdHJpbmdbXSA9IE9iamVjdC5rZXlzKHRoaXMucmVkdWNlck1hbmFnZXIuY3VycmVudFJlZHVjZXJzIHx8IHt9KTtcclxuXHJcbiAgICBpZiAoIWN1cnJlbnRSZWR1Y2Vycy5pbmNsdWRlcyh0aGlzLmZlYXR1cmVLZXkpKSB7XHJcbiAgICAgIGNvbnN0IHJlZHVjZXIgPSBjcmVhdGVMaXN0UmVkdWNlcjxULCBFLCBTPih0aGlzLmVudGl0eUFkYXB0ZXIsIHRoaXMuYWN0aW9ucyk7XHJcbiAgICAgIHRoaXMucmVkdWNlck1hbmFnZXIuYWRkUmVkdWNlcih0aGlzLmZlYXR1cmVLZXksIHJlZHVjZXIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGdldFNlbGVjdG9ycygpIHtcclxuICAgIGNvbnN0IGdldFN0YXRlID0gY3JlYXRlRmVhdHVyZVNlbGVjdG9yPExpc3RTdGF0ZTxTLCBFPj4odGhpcy5mZWF0dXJlS2V5KTtcclxuICAgIHJldHVybiBjcmVhdGVMaXN0U2VsZWN0b3JzKHRoaXMuZW50aXR5QWRhcHRlciwgZ2V0U3RhdGUpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import { select } from '@ngrx/store';
|
|
2
|
-
export class AbstractListFacade {
|
|
3
|
-
constructor(store, listActions, listSelectors) {
|
|
4
|
-
this.store = store;
|
|
5
|
-
this.listActions = listActions;
|
|
6
|
-
this.listSelectors = listSelectors;
|
|
7
|
-
this.resources$ = this.store.pipe(select(this.listSelectors.getAll));
|
|
8
|
-
this.loadingState$ = this.store.pipe(select(this.listSelectors.getLoadingState));
|
|
9
|
-
this.requestState$ = this.store.pipe(select(this.listSelectors.getRequestState));
|
|
10
|
-
this.errors$ = this.store.pipe(select(this.listSelectors.getErrors));
|
|
11
|
-
this.isReady$ = this.store.pipe(select(this.listSelectors.isReady));
|
|
12
|
-
this.areSelectedReady$ = this.store.pipe(select(this.listSelectors.areSelectedReady));
|
|
13
|
-
this.currentPageData$ = this.store.pipe(select(this.listSelectors.getCurrentPageData));
|
|
14
|
-
this.currentPageNumber$ = this.store.pipe(select(this.listSelectors.getCurrentPageNumber));
|
|
15
|
-
this.filteringOptions$ = this.store.pipe(select(this.listSelectors.getFilteringOptions));
|
|
16
|
-
this.requestParameters$ = this.store.pipe(select(this.listSelectors.getRequestParameters));
|
|
17
|
-
this.lastPageNumber$ = this.store.pipe(select(this.listSelectors.getLastPageNumber));
|
|
18
|
-
this.pagingOptions$ = this.store.pipe(select(this.listSelectors.getPagingOptions));
|
|
19
|
-
this.requestOptions$ = this.store.pipe(select(this.listSelectors.getRequestOptions));
|
|
20
|
-
this.sortingOptions$ = this.store.pipe(select(this.listSelectors.getSortingOptions));
|
|
21
|
-
this.selectedItems$ = this.store.pipe(select(this.listSelectors.getSelectedItems));
|
|
22
|
-
this.totalCount$ = this.store.pipe(select(this.listSelectors.getTotalCount));
|
|
23
|
-
}
|
|
24
|
-
setPageSize(props) {
|
|
25
|
-
this.store.dispatch(this.listActions.setPageSize(props));
|
|
26
|
-
}
|
|
27
|
-
setFiltering(props) {
|
|
28
|
-
this.store.dispatch(this.listActions.setFiltering(props));
|
|
29
|
-
}
|
|
30
|
-
setSorting(props) {
|
|
31
|
-
this.store.dispatch(this.listActions.setSorting(props));
|
|
32
|
-
}
|
|
33
|
-
setRequestParameters(props) {
|
|
34
|
-
this.store.dispatch(this.listActions.setRequestParams(props));
|
|
35
|
-
}
|
|
36
|
-
changeFiltering(props) {
|
|
37
|
-
this.store.dispatch(this.listActions.changeFiltering(props));
|
|
38
|
-
}
|
|
39
|
-
changePagingOptions(props) {
|
|
40
|
-
this.store.dispatch(this.listActions.changePagingOptions(props));
|
|
41
|
-
}
|
|
42
|
-
changePageSize(props) {
|
|
43
|
-
this.store.dispatch(this.listActions.changePageSize(props));
|
|
44
|
-
}
|
|
45
|
-
changePageNumber(props) {
|
|
46
|
-
this.store.dispatch(this.listActions.changePageNumber(props));
|
|
47
|
-
}
|
|
48
|
-
changeSelectedResources(props) {
|
|
49
|
-
this.store.dispatch(this.listActions.changeSelectedResources(props));
|
|
50
|
-
}
|
|
51
|
-
changeSorting(props) {
|
|
52
|
-
this.store.dispatch(this.listActions.changeSorting(props));
|
|
53
|
-
}
|
|
54
|
-
changeRequestParams(props) {
|
|
55
|
-
this.store.dispatch(this.listActions.changeRequestParams(props));
|
|
56
|
-
}
|
|
57
|
-
loadPage() {
|
|
58
|
-
this.store.dispatch(this.listActions.loadPage());
|
|
59
|
-
}
|
|
60
|
-
loadFirstPage() {
|
|
61
|
-
this.store.dispatch(this.listActions.loadFirstPage());
|
|
62
|
-
}
|
|
63
|
-
loadNextPage() {
|
|
64
|
-
this.store.dispatch(this.listActions.loadNextPage());
|
|
65
|
-
}
|
|
66
|
-
loadPreviousPage() {
|
|
67
|
-
this.store.dispatch(this.listActions.loadPreviousPage());
|
|
68
|
-
}
|
|
69
|
-
patch(props) {
|
|
70
|
-
this.store.dispatch(this.listActions.patch(props));
|
|
71
|
-
}
|
|
72
|
-
delete(props) {
|
|
73
|
-
this.store.dispatch(this.listActions.delete(props));
|
|
74
|
-
}
|
|
75
|
-
initialize() {
|
|
76
|
-
this.store.dispatch(this.listActions.initialize());
|
|
77
|
-
}
|
|
78
|
-
reinitialize() {
|
|
79
|
-
this.store.dispatch(this.listActions.reset());
|
|
80
|
-
}
|
|
81
|
-
resetRequestState() {
|
|
82
|
-
this.store.dispatch(this.listActions.resetRequestState());
|
|
83
|
-
}
|
|
84
|
-
showRemovalsConfirmation() {
|
|
85
|
-
this.store.dispatch(this.listActions.showRemovalsConfirmation());
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtbGlzdC5mYWNhZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nZHV4L3V0aWwvc3RvcmUvbGlzdC9zcmMvbGliLytzdGF0ZS9hYnN0cmFjdC1saXN0LmZhY2FkZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFTLE1BQU0sYUFBYSxDQUFDO0FBRzVDLE1BQU0sT0FBZ0Isa0JBQWtCO0lBa0J0QyxZQUNxQixLQUFZLEVBQ2QsV0FBaUMsRUFDakMsYUFBa0M7UUFGaEMsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUNkLGdCQUFXLEdBQVgsV0FBVyxDQUFzQjtRQUNqQyxrQkFBYSxHQUFiLGFBQWEsQ0FBcUI7UUFwQjVDLGVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ2hFLGtCQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztRQUM1RSxrQkFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7UUFDNUUsWUFBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDaEUsYUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDL0Qsc0JBQWlCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJ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SyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQWdEO1FBQ3BELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFpRDtRQUN0RCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsd0JBQXdCO1FBQ3RCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsd0JBQXdCLEVBQUUsQ0FBQyxDQUFDO0lBQ25FLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvblBheWxvYWQgfSBmcm9tICdAbmdkdXgvc3RvcmUtY29tbW9uJztcclxuaW1wb3J0IHsgc2VsZWN0LCBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcclxuaW1wb3J0IHsgTGlzdEFjdGlvbnMsIExpc3RTZWxlY3RvcnMgfSBmcm9tICcuLi9tb2RlbHMvbGlzdC5tb2RlbCc7XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RMaXN0RmFjYWRlPFQsIEUsIFMgPSBUPiB7XHJcbiAgcmVhZG9ubHkgcmVzb3VyY2VzJCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QodGhpcy5saXN0U2VsZWN0b3JzLmdldEFsbCkpO1xyXG4gIHJlYWRvbmx5IGxvYWRpbmdTdGF0ZSQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHRoaXMubGlzdFNlbGVjdG9ycy5nZXRMb2FkaW5nU3RhdGUpKTtcclxuICByZWFkb25seSByZXF1ZXN0U3RhdGUkID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdCh0aGlzLmxpc3RTZWxlY3RvcnMuZ2V0UmVxdWVzdFN0YXRlKSk7XHJcbiAgcmVhZG9ubHkgZXJyb3JzJCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QodGhpcy5saXN0U2VsZWN0b3JzLmdldEVycm9ycykpO1xyXG4gIHJlYWRvbmx5IGlzUmVhZHkkID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdCh0aGlzLmxpc3RTZWxlY3RvcnMuaXNSZWFkeSkpO1xyXG4gIHJlYWRvbmx5IGFyZVNlbGVjdGVkUmVhZHkkID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdCh0aGlzLmxpc3RTZWxlY3RvcnMuYXJlU2VsZWN0ZWRSZWFkeSkpO1xyXG4gIHJlYWRvbmx5IGN1cnJlbnRQYWdlRGF0YSQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHRoaXMubGlzdFNlbGVjdG9ycy5nZXRDdXJyZW50UGFnZURhdGEpKTtcclxuICByZWFkb25seSBjdXJyZW50UGFnZU51bWJlciQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHRoaXMubGlzdFNlbGVjdG9ycy5nZXRDdXJyZW50UGFnZU51bWJlcikpO1xyXG4gIHJlYWRvbmx5IGZpbHRlcmluZ09wdGlvbnMkID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdCh0aGlzLmxpc3RTZWxlY3RvcnMuZ2V0RmlsdGVyaW5nT3B0aW9ucykpO1xyXG4gIHJlYWRvbmx5IHJlcXVlc3RQYXJhbWV0ZXJzJCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QodGhpcy5saXN0U2VsZWN0b3JzLmdldFJlcXVlc3RQYXJhbWV0ZXJzKSk7XHJcbiAgcmVhZG9ubHkgbGFzdFBhZ2VOdW1iZXIkID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdCh0aGlzLmxpc3RTZWxlY3RvcnMuZ2V0TGFzdFBhZ2VOdW1iZXIpKTtcclxuICByZWFkb25seSBwYWdpbmdPcHRpb25zJCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QodGhpcy5saXN0U2VsZWN0b3JzLmdldFBhZ2luZ09wdGlvbnMpKTtcclxuICByZWFkb25seSByZXF1ZXN0T3B0aW9ucyQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHRoaXMubGlzdFNlbGVjdG9ycy5nZXRSZXF1ZXN0T3B0aW9ucykpO1xyXG4gIHJlYWRvbmx5IHNvcnRpbmdPcHRpb25zJCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QodGhpcy5saXN0U2VsZWN0b3JzLmdldFNvcnRpbmdPcHRpb25zKSk7XHJcbiAgcmVhZG9ubHkgc2VsZWN0ZWRJdGVtcyQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHRoaXMubGlzdFNlbGVjdG9ycy5nZXRTZWxlY3RlZEl0ZW1zKSk7XHJcbiAgcmVhZG9ubHkgdG90YWxDb3VudCQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KHRoaXMubGlzdFNlbGVjdG9ycy5nZXRUb3RhbENvdW50KSk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHN0b3JlOiBTdG9yZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbGlzdEFjdGlvbnM6IExpc3RBY3Rpb25zPFQsIEUsIFM+LFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBsaXN0U2VsZWN0b3JzOiBMaXN0U2VsZWN0b3JzPFMsIEU+XHJcbiAgKSB7fVxyXG5cclxuICBzZXRQYWdlU2l6ZShwcm9wczogQWN0aW9uUGF5bG9hZDxMaXN0QWN0aW9uczxULCBFPlsnc2V0UGFnZVNpemUnXT4pOiB2b2lkIHtcclxuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2godGhpcy5saXN0QWN0aW9ucy5zZXRQYWdlU2l6ZShwcm9wcykpO1xyXG4gIH1cclxuXHJcbiAgc2V0RmlsdGVyaW5nKHByb3BzOiBBY3Rpb25QYXlsb2FkPExpc3RBY3Rpb25zPFQsIEU+WydzZXRGaWx0ZXJpbmcnXT4pOiB2b2lkIHtcclxuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2godGhpcy5saXN0QWN0aW9ucy5zZXRGaWx0ZXJpbmcocHJvcHMpKTtcclxuICB9XHJcblxyXG4gIHNldFNvcnRpbmcocHJvcHM6IEFjdGlvblBheWxvYWQ8TGlzdEFjdGlvbnM8VCwgRT5bJ3NldFNvcnRpbmcnXT4pOiB2b2lkIHtcclxuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2godGhpcy5saXN0QWN0aW9ucy5zZXRTb3J0aW5nKHByb3BzKSk7XHJcbiAgfVxyXG5cclxuICBzZXRSZXF1ZXN0UGFyYW1ldGVycyhwcm9wczogQWN0aW9uUGF5bG9hZDxMaXN0QWN0aW9uczxULCBFPlsnc2V0UmVxdWVzdFBhcmFtcyddPikge1xyXG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaCh0aGlzLmxpc3RBY3Rpb25zLnNldFJlcXVlc3RQYXJhbXMocHJvcHMpKTtcclxuICB9XHJcblxyXG4gIGNoYW5nZUZpbHRlcmluZyhwcm9wczogQWN0aW9uUGF5bG9hZDxMaXN0QWN0aW9uczxULCBFPlsnY2hhbmdlRmlsdGVyaW5nJ10+KTogdm9pZCB7XHJcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKHRoaXMubGlzdEFjdGlvbnMuY2hhbmdlRmlsdGVyaW5nKHByb3BzKSk7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VQYWdpbmdPcHRpb25zKHByb3BzOiBBY3Rpb25QYXlsb2FkPExpc3RBY3Rpb25zPFQsIEU+WydjaGFuZ2VQYWdpbmdPcHRpb25zJ10+KTogdm9pZCB7XHJcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKHRoaXMubGlzdEFjdGlvbnMuY2hhbmdlUGFnaW5nT3B0aW9ucyhwcm9wcykpO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlUGFnZVNpemUocHJvcHM6IEFjdGlvblBheWxvYWQ8TGlzdEFjdGlvbnM8VCwgRT5bJ2NoYW5nZVBhZ2VTaXplJ10+KTogdm9pZCB7XHJcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKHRoaXMubGlzdEFjdGlvbnMuY2hhbmdlUGFnZVNpemUocHJvcHMpKTtcclxuICB9XHJcblxyXG4gIGNoYW5nZVBhZ2VOdW1iZXIocHJvcHM6IEFjdGlvblBheWxvYWQ8TGlzdEFjdGlvbnM8VCwgRT5bJ2NoYW5nZVBhZ2VOdW1iZXInXT4pOiB2b2lkIHtcclxuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2godGhpcy5saXN0QWN0aW9ucy5jaGFuZ2VQYWdlTnVtYmVyKHByb3BzKSk7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VTZWxlY3RlZFJlc291cmNlcyhwcm9wczogQWN0aW9uUGF5bG9hZDxMaXN0QWN0aW9uczxULCBFPlsnY2hhbmdlU2VsZWN0ZWRSZXNvdXJjZXMnXT4pOiB2b2lkIHtcclxuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2godGhpcy5saXN0QWN0aW9ucy5jaGFuZ2VTZWxlY3RlZFJlc291cmNlcyhwcm9wcykpO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlU29ydGluZyhwcm9wczogQWN0aW9uUGF5bG9hZDxMaXN0QWN0aW9uczxULCBFPlsnY2hhbmdlU29ydGluZyddPik6IHZvaWQge1xyXG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaCh0aGlzLmxpc3RBY3Rpb25zLmNoYW5nZVNvcnRpbmcocHJvcHMpKTtcclxuICB9XHJcblxyXG4gIGNoYW5nZVJlcXVlc3RQYXJhbXMocHJvcHM6IEFjdGlvblBheWxvYWQ8TGlzdEFjdGlvbnM8VCwgRT5bJ2NoYW5nZVJlcXVlc3RQYXJhbXMnXT4pOiB2b2lkIHtcclxuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2godGhpcy5saXN0QWN0aW9ucy5jaGFuZ2VSZXF1ZXN0UGFyYW1zKHByb3BzKSk7XHJcbiAgfVxyXG5cclxuICBsb2FkUGFnZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2godGhpcy5saXN0QWN0aW9ucy5sb2FkUGFnZSgpKTtcclxuICB9XHJcblxyXG4gIGxvYWRGaXJzdFBhZ2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKHRoaXMubGlzdEFjdGlvbnMubG9hZEZpcnN0UGFnZSgpKTtcclxuICB9XHJcblxyXG4gIGxvYWROZXh0UGFnZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2godGhpcy5saXN0QWN0aW9ucy5sb2FkTmV4dFBhZ2UoKSk7XHJcbiAgfVxyXG5cclxuICBsb2FkUHJldmlvdXNQYWdlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaCh0aGlzLmxpc3RBY3Rpb25zLmxvYWRQcmV2aW91c1BhZ2UoKSk7XHJcbiAgfVxyXG5cclxuICBwYXRjaChwcm9wczogQWN0aW9uUGF5bG9hZDxMaXN0QWN0aW9uczxULCBFPlsncGF0Y2gnXT4pOiB2b2lkIHtcclxuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2godGhpcy5saXN0QWN0aW9ucy5wYXRjaChwcm9wcykpO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlKHByb3BzOiBBY3Rpb25QYXlsb2FkPExpc3RBY3Rpb25zPFQsIEU+WydkZWxldGUnXT4pOiB2b2lkIHtcclxuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2godGhpcy5saXN0QWN0aW9ucy5kZWxldGUocHJvcHMpKTtcclxuICB9XHJcblxyXG4gIGluaXRpYWxpemUoKTogdm9pZCB7XHJcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKHRoaXMubGlzdEFjdGlvbnMuaW5pdGlhbGl6ZSgpKTtcclxuICB9XHJcblxyXG4gIHJlaW5pdGlhbGl6ZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2godGhpcy5saXN0QWN0aW9ucy5yZXNldCgpKTtcclxuICB9XHJcblxyXG4gIHJlc2V0UmVxdWVzdFN0YXRlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaCh0aGlzLmxpc3RBY3Rpb25zLnJlc2V0UmVxdWVzdFN0YXRlKCkpO1xyXG4gIH1cclxuXHJcbiAgc2hvd1JlbW92YWxzQ29uZmlybWF0aW9uKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaCh0aGlzLmxpc3RBY3Rpb25zLnNob3dSZW1vdmFsc0NvbmZpcm1hdGlvbigpKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { createAction, props } from '@ngrx/store';
|
|
2
|
-
export function createListActions(featureName) {
|
|
3
|
-
const resetRequestState = createAction(`[${featureName} Page] Reset ${featureName} Request State`);
|
|
4
|
-
const initialize = createAction(`[${featureName} Page] Initialize ${featureName}`);
|
|
5
|
-
const reset = createAction(`[Organization ${featureName} Page] Reset ${featureName}`);
|
|
6
|
-
const loadNextPage = createAction(`[${featureName} Page] Load Next ${featureName} Page`);
|
|
7
|
-
const loadPreviousPage = createAction(`[${featureName} Page] Load Previous ${featureName} Page`);
|
|
8
|
-
const loadFirstPage = createAction(`[${featureName} Page] Load First ${featureName} Page`);
|
|
9
|
-
const setPageSize = createAction(`[${featureName} Page] Set ${featureName} Page Size`, props());
|
|
10
|
-
const setSorting = createAction(`[${featureName} Page] Set ${featureName} Sorting`, props());
|
|
11
|
-
const setFiltering = createAction(`[${featureName} Page] Set ${featureName} Filtering`, props());
|
|
12
|
-
const setRequestParams = createAction(`[${featureName} Page] Set ${featureName} Request Params`, props());
|
|
13
|
-
const changePageSize = createAction(`[${featureName} Page] Change ${featureName} Page Size`, props());
|
|
14
|
-
const changePageNumber = createAction(`[${featureName} Page] Change ${featureName} Page Number`, props());
|
|
15
|
-
const changePagingOptions = createAction(`[${featureName} Page] Change ${featureName} Page Options`, props());
|
|
16
|
-
const changeSorting = createAction(`[${featureName} Page] Change ${featureName} Sorting`, props());
|
|
17
|
-
const changeFiltering = createAction(`[${featureName} Page] Change ${featureName} Filtering`, props());
|
|
18
|
-
const changeSelectedResources = createAction(`[${featureName} Page] Change Selected Resources ${featureName}`, props());
|
|
19
|
-
const changeRequestParams = createAction(`[${featureName} Page] Change ${featureName} Request Params`, props());
|
|
20
|
-
const loadPage = createAction(`[${featureName} Page] Load ${featureName} Page`);
|
|
21
|
-
const loadPageSuccess = createAction(`[${featureName} Page] Load ${featureName} Page Success`, props());
|
|
22
|
-
const loadPageFailure = createAction(`[${featureName} Page] Load ${featureName} Page Failure`, props());
|
|
23
|
-
const deleteAction = createAction(`[${featureName} Page] Delete ${featureName}`, props());
|
|
24
|
-
const deleteSuccess = createAction(`[${featureName} Page] Delete ${featureName} Success`, props());
|
|
25
|
-
const deleteFailure = createAction(`[${featureName} Page] Delete ${featureName} Failure`, props());
|
|
26
|
-
const patch = createAction(`[${featureName} Page] Patch ${featureName}`, props());
|
|
27
|
-
const patchSuccess = createAction(`[${featureName} Page] Patch ${featureName} Success`, props());
|
|
28
|
-
const patchFailure = createAction(`[${featureName} Page] Patch ${featureName} Failure`, props());
|
|
29
|
-
const showRemovalsConfirmation = createAction(`[${featureName} Page] Show ${featureName} Removal Confirmation`);
|
|
30
|
-
return {
|
|
31
|
-
initialize,
|
|
32
|
-
reset,
|
|
33
|
-
setPageSize,
|
|
34
|
-
setSorting,
|
|
35
|
-
setFiltering,
|
|
36
|
-
setRequestParams,
|
|
37
|
-
changePageSize,
|
|
38
|
-
changePageNumber,
|
|
39
|
-
changePagingOptions,
|
|
40
|
-
changeSorting,
|
|
41
|
-
changeFiltering,
|
|
42
|
-
changeRequestParams,
|
|
43
|
-
loadPreviousPage,
|
|
44
|
-
loadNextPage,
|
|
45
|
-
loadFirstPage,
|
|
46
|
-
changeSelectedResources,
|
|
47
|
-
loadPage,
|
|
48
|
-
loadPageSuccess,
|
|
49
|
-
loadPageFailure,
|
|
50
|
-
delete: deleteAction,
|
|
51
|
-
deleteSuccess,
|
|
52
|
-
deleteFailure,
|
|
53
|
-
patch,
|
|
54
|
-
patchSuccess,
|
|
55
|
-
patchFailure,
|
|
56
|
-
resetRequestState,
|
|
57
|
-
showRemovalsConfirmation
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1hY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZ2R1eC91dGlsL3N0b3JlL2xpc3Qvc3JjL2xpYi8rc3RhdGUvbGlzdC1hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBR2xELE1BQU0sVUFBVSxpQkFBaUIsQ0FDL0IsV0FBbUI7SUFFbkIsTUFBTSxpQkFBaUIsR0FBRyxZQUFZLENBQUMsSUFBSSxXQUFXLGdCQUFnQixXQUFXLGdCQUFnQixDQUFDLENBQUM7SUFDbkcsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDLElBQUksV0FBVyxxQkFBcUIsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUNuRixNQUFNLEtBQUssR0FBRyxZQUFZLENBQUMsaUJBQWlCLFdBQVcsZ0JBQWdCLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFFdEYsTUFBTSxZQUFZLEdBQUcsWUFBWSxDQUFDLElBQUksV0FBVyxvQkFBb0IsV0FBVyxPQUFPLENBQUMsQ0FBQztJQUN6RixNQUFNLGdCQUFnQixHQUFHLFlBQVksQ0FBQyxJQUFJLFdBQVcsd0JBQXdCLFdBQVcsT0FBTyxDQUFDLENBQUM7SUFDakcsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDLElBQUksV0FBVyxxQkFBcUIsV0FBVyxPQUFPLENBQUMsQ0FBQztJQUUzRixNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUMsSUFBSSxXQUFXLGNBQWMsV0FBVyxZQUFZLEVBQUUsS0FBSyxFQUF3QixDQUFDLENBQUM7SUFDdEgsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUM3QixJQUFJLFdBQVcsY0FBYyxXQUFXLFVBQVUsRUFDbEQsS0FBSyxFQUFzQyxDQUM1QyxDQUFDO0lBQ0YsTUFBTSxZQUFZLEdBQUcsWUFBWSxDQUMvQixJQUFJLFdBQVcsY0FBYyxXQUFXLFlBQVks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O1FBQ2IsS0FBSztRQUNMLFlBQVk7UUFDWixZQUFZO1FBQ1osaUJBQWlCO1FBQ2pCLHdCQUF3QjtLQUN6QixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVycm9yRHRvLCBGaWx0ZXJpbmdPcHRpb25zLCBQYWdpbmdPcHRpb25zLCBTb3J0aW5nT3B0aW9ucyB9IGZyb20gJ0BuZ2R1eC9kYXRhLW1vZGVsLWNvbW1vbic7XHJcbmltcG9ydCB7IGNyZWF0ZUFjdGlvbiwgcHJvcHMgfSBmcm9tICdAbmdyeC9zdG9yZSc7XHJcbmltcG9ydCB7IExpc3RBY3Rpb25zIH0gZnJvbSAnLi4vbW9kZWxzL2xpc3QubW9kZWwnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUxpc3RBY3Rpb25zPFQsIEUsIFMgPSBULCBQYXJhbXMgPSBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PihcclxuICBmZWF0dXJlTmFtZTogc3RyaW5nXHJcbik6IExpc3RBY3Rpb25zPFQsIEUsIFMsIFBhcmFtcz4ge1xyXG4gIGNvbnN0IHJlc2V0UmVxdWVzdFN0YXRlID0gY3JlYXRlQWN0aW9uKGBbJHtmZWF0dXJlTmFtZX0gUGFnZV0gUmVzZXQgJHtmZWF0dXJlTmFtZX0gUmVxdWVzdCBTdGF0ZWApO1xyXG4gIGNvbnN0IGluaXRpYWxpemUgPSBjcmVhdGVBY3Rpb24oYFske2ZlYXR1cmVOYW1lfSBQYWdlXSBJbml0aWFsaXplICR7ZmVhdHVyZU5hbWV9YCk7XHJcbiAgY29uc3QgcmVzZXQgPSBjcmVhdGVBY3Rpb24oYFtPcmdhbml6YXRpb24gJHtmZWF0dXJlTmFtZX0gUGFnZV0gUmVzZXQgJHtmZWF0dXJlTmFtZX1gKTtcclxuXHJcbiAgY29uc3QgbG9hZE5leHRQYWdlID0gY3JlYXRlQWN0aW9uKGBbJHtmZWF0dXJlTmFtZX0gUGFnZV0gTG9hZCBOZXh0ICR7ZmVhdHVyZU5hbWV9IFBhZ2VgKTtcclxuICBjb25zdCBsb2FkUHJldmlvdXNQYWdlID0gY3JlYXRlQWN0aW9uKGBbJHtmZWF0dXJlTmFtZX0gUGFnZV0gTG9hZCBQcmV2aW91cyAke2ZlYXR1cmVOYW1lfSBQYWdlYCk7XHJcbiAgY29uc3QgbG9hZEZpcnN0UGFnZSA9IGNyZWF0ZUFjdGlvbihgWyR7ZmVhdHVyZU5hbWV9IFBhZ2VdIExvYWQgRmlyc3QgJHtmZWF0dXJlTmFtZX0gUGFnZWApO1xyXG5cclxuICBjb25zdCBzZXRQYWdlU2l6ZSA9IGNyZWF0ZUFjdGlvbihgWyR7ZmVhdHVyZU5hbWV9IFBhZ2VdIFNldCAke2ZlYXR1cmVOYW1lfSBQYWdlIFNpemVgLCBwcm9wczx7IHBhZ2VTaXplOiBudW1iZXIgfT4oKSk7XHJcbiAgY29uc3Qgc2V0U29ydGluZyA9IGNyZWF0ZUFjdGlvbihcclxuICAgIGBbJHtmZWF0dXJlTmFtZX0gUGFnZV0gU2V0ICR7ZmVhdHVyZU5hbWV9IFNvcnRpbmdgLFxyXG4gICAgcHJvcHM8eyBzb3J0aW5nT3B0aW9uczogU29ydGluZ09wdGlvbnMgfT4oKVxyXG4gICk7XHJcbiAgY29uc3Qgc2V0RmlsdGVyaW5nID0gY3JlYXRlQWN0aW9uKFxyXG4gICAgYFske2ZlYXR1cmVOYW1lfSBQYWdlXSBTZXQgJHtmZWF0dXJlTmFtZX0gRmlsdGVyaW5nYCxcclxuICAgIHByb3BzPHsgZmlsdGVyaW5nT3B0aW9uczogRmlsdGVyaW5nT3B0aW9ucyB9PigpXHJcbiAgKTtcclxuICBjb25zdCBzZXRSZXF1ZXN0UGFyYW1zID0gY3JlYXRlQWN0aW9uKFxyXG4gICAgYFske2ZlYXR1cmVOYW1lfSBQYWdlXSBTZXQgJHtmZWF0dXJlTmFtZX0gUmVxdWVzdCBQYXJhbXNgLFxyXG4gICAgcHJvcHM8eyBwYXJhbXM6IFBhcmFtcyB9PigpXHJcbiAgKTtcclxuXHJcbiAgY29uc3QgY2hhbmdlUGFnZVNpemUgPSBjcmVhdGVBY3Rpb24oXHJcbiAgICBgWyR7ZmVhdHVyZU5hbWV9IFBhZ2VdIENoYW5nZSAke2ZlYXR1cmVOYW1lfSBQYWdlIFNpemVgLFxyXG4gICAgcHJvcHM8eyBwYWdlU2l6ZTogbnVtYmVyIH0+KClcclxuICApO1xyXG5cclxuICBjb25zdCBjaGFuZ2VQYWdlTnVtYmVyID0gY3JlYXRlQWN0aW9uKFxyXG4gICAgYFske2ZlYXR1cmVOYW1lfSBQYWdlXSBDaGFuZ2UgJHtmZWF0dXJlTmFtZX0gUGFnZSBOdW1iZXJgLFxyXG4gICAgcHJvcHM8eyBwYWdlTnVtYmVyOiBudW1iZXIgfT4oKVxyXG4gICk7XHJcblxyXG4gIGNvbnN0IGNoYW5nZVBhZ2luZ09wdGlvbnMgPSBjcmVhdGVBY3Rpb24oXHJcbiAgICBgWyR7ZmVhdHVyZU5hbWV9IFBhZ2VdIENoYW5nZSAke2ZlYXR1cmVOYW1lfSBQYWdlIE9wdGlvbnNgLFxyXG4gICAgcHJvcHM8eyBwYWdpbmdPcHRpb25zOiBQYWdpbmdPcHRpb25zIH0+KClcclxuICApO1xyXG4gIGNvbnN0IGNoYW5nZVNvcnRpbmcgPSBjcmVhdGVBY3Rpb24oXHJcbiAgICBgWyR7ZmVhdHVyZU5hbWV9IFBhZ2VdIENoYW5nZSAke2ZlYXR1cmVOYW1lfSBTb3J0aW5nYCxcclxuICAgIHByb3BzPHsgc29ydGluZ09wdGlvbnM6IFNvcnRpbmdPcHRpb25zIH0+KClcclxuICApO1xyXG4gIGNvbnN0IGNoYW5nZUZpbHRlcmluZyA9IGNyZWF0ZUFjdGlvbihcclxuICAgIGBbJHtmZWF0dXJlTmFtZX0gUGFnZV0gQ2hhbmdlICR7ZmVhdHVyZU5hbWV9IEZpbHRlcmluZ2AsXHJcbiAgICBwcm9wczx7IGZpbHRlcmluZ09wdGlvbnM6IEZpbHRlcmluZ09wdGlvbnMgfT4oKVxyXG4gICk7XHJcbiAgY29uc3QgY2hhbmdlU2VsZWN0ZWRSZXNvdXJjZXMgPSBjcmVhdGVBY3Rpb24oXHJcbiAgICBgWyR7ZmVhdHVyZU5hbWV9IFBhZ2VdIENoYW5nZSBTZWxlY3RlZCBSZXNvdXJjZXMgJHtmZWF0dXJlTmFtZX1gLFxyXG4gICAgcHJvcHM8eyBzZWxlY3RlZFJlc291cmNlSWRzOiBzdHJpbmdbXSB9PigpXHJcbiAgKTtcclxuICBjb25zdCBjaGFuZ2VSZXF1ZXN0UGFyYW1zID0gY3JlYXRlQWN0aW9uKFxyXG4gICAgYFske2ZlYXR1cmVOYW1lfSBQYWdlXSBDaGFuZ2UgJHtmZWF0dXJlTmFtZX0gUmVxdWVzdCBQYXJhbXNgLFxyXG4gICAgcHJvcHM8eyBwYXJhbXM6IFBhcmFtcyB9PigpXHJcbiAgKTtcclxuXHJcbiAgY29uc3QgbG9hZFBhZ2UgPSBjcmVhdGVBY3Rpb24oYFske2ZlYXR1cmVOYW1lfSBQYWdlXSBMb2FkICR7ZmVhdHVyZU5hbWV9IFBhZ2VgKTtcclxuICBjb25zdCBsb2FkUGFnZVN1Y2Nlc3MgPSBjcmVhdGVBY3Rpb24oXHJcbiAgICBgWyR7ZmVhdHVyZU5hbWV9IFBhZ2VdIExvYWQgJHtmZWF0dXJlTmFtZX0gUGFnZSBTdWNjZXNzYCxcclxuICAgIHByb3BzPHsgcmVzb3VyY2VzOiBTW107IHBhZ2luZ09wdGlvbnM6IFBhZ2luZ09wdGlvbnMgfT4oKVxyXG4gICk7XHJcbiAgY29uc3QgbG9hZFBhZ2VGYWlsdXJlID0gY3JlYXRlQWN0aW9uKFxyXG4gICAgYFske2ZlYXR1cmVOYW1lfSBQYWdlXSBMb2FkICR7ZmVhdHVyZU5hbWV9IFBhZ2UgRmFpbHVyZWAsXHJcbiAgICBwcm9wczx7IGVycm9yczogRSB9PigpXHJcbiAgKTtcclxuXHJcbiAgY29uc3QgZGVsZXRlQWN0aW9uID0gY3JlYXRlQWN0aW9uKGBbJHtmZWF0dXJlTmFtZX0gUGFnZV0gRGVsZXRlICR7ZmVhdHVyZU5hbWV9YCwgcHJvcHM8eyByZXNvdXJjZUlkczogc3RyaW5nW10gfT4oKSk7XHJcbiAgY29uc3QgZGVsZXRlU3VjY2VzcyA9IGNyZWF0ZUFjdGlvbihcclxuICAgIGBbJHtmZWF0dXJlTmFtZX0gUGFnZV0gRGVsZXRlICR7ZmVhdHVyZU5hbWV9IFN1Y2Nlc3NgLFxyXG4gICAgcHJvcHM8eyByZXNvdXJjZUlkczogc3RyaW5nW10gfT4oKVxyXG4gICk7XHJcbiAgY29uc3QgZGVsZXRlRmFpbHVyZSA9IGNyZWF0ZUFjdGlvbihgWyR7ZmVhdHVyZU5hbWV9IFBhZ2VdIERlbGV0ZSAke2ZlYXR1cmVOYW1lfSBGYWlsdXJlYCwgcHJvcHM8eyBlcnJvcnM6IEUgfT4oKSk7XHJcblxyXG4gIGNvbnN0IHBhdGNoID0gY3JlYXRlQWN0aW9uKFxyXG4gICAgYFske2ZlYXR1cmVOYW1lfSBQYWdlXSBQYXRjaCAke2ZlYXR1cmVOYW1lfWAsXHJcbiAgICBwcm9wczx7IHJlc291cmNlSWRzOiBzdHJpbmdbXTsgcmVzb3VyY2U6IFBhcnRpYWw8VD4gfT4oKVxyXG4gICk7XHJcbiAgY29uc3QgcGF0Y2hTdWNjZXNzID0gY3JlYXRlQWN0aW9uKFxyXG4gICAgYFske2ZlYXR1cmVOYW1lfSBQYWdlXSBQYXRjaCAke2ZlYXR1cmVOYW1lfSBTdWNjZXNzYCxcclxuICAgIHByb3BzPHsgcmVzb3VyY2VzOiAoVCB8IEVycm9yRHRvKVtdIH0+KClcclxuICApO1xyXG4gIGNvbnN0IHBhdGNoRmFpbHVyZSA9IGNyZWF0ZUFjdGlvbihgWyR7ZmVhdHVyZU5hbWV9IFBhZ2VdIFBhdGNoICR7ZmVhdHVyZU5hbWV9IEZhaWx1cmVgLCBwcm9wczx7IGVycm9yczogRSB9PigpKTtcclxuXHJcbiAgY29uc3Qgc2hvd1JlbW92YWxzQ29uZmlybWF0aW9uID0gY3JlYXRlQWN0aW9uKGBbJHtmZWF0dXJlTmFtZX0gUGFnZV0gU2hvdyAke2ZlYXR1cmVOYW1lfSBSZW1vdmFsIENvbmZpcm1hdGlvbmApO1xyXG5cclxuICByZXR1cm4ge1xyXG4gICAgaW5pdGlhbGl6ZSxcclxuICAgIHJlc2V0LFxyXG4gICAgc2V0UGFnZVNpemUsXHJcbiAgICBzZXRTb3J0aW5nLFxyXG4gICAgc2V0RmlsdGVyaW5nLFxyXG4gICAgc2V0UmVxdWVzdFBhcmFtcyxcclxuICAgIGNoYW5nZVBhZ2VTaXplLFxyXG4gICAgY2hhbmdlUGFnZU51bWJlcixcclxuICAgIGNoYW5nZVBhZ2luZ09wdGlvbnMsXHJcbiAgICBjaGFuZ2VTb3J0aW5nLFxyXG4gICAgY2hhbmdlRmlsdGVyaW5nLFxyXG4gICAgY2hhbmdlUmVxdWVzdFBhcmFtcyxcclxuICAgIGxvYWRQcmV2aW91c1BhZ2UsXHJcbiAgICBsb2FkTmV4dFBhZ2UsXHJcbiAgICBsb2FkRmlyc3RQYWdlLFxyXG4gICAgY2hhbmdlU2VsZWN0ZWRSZXNvdXJjZXMsXHJcbiAgICBsb2FkUGFnZSxcclxuICAgIGxvYWRQYWdlU3VjY2VzcyxcclxuICAgIGxvYWRQYWdlRmFpbHVyZSxcclxuICAgIGRlbGV0ZTogZGVsZXRlQWN0aW9uLFxyXG4gICAgZGVsZXRlU3VjY2VzcyxcclxuICAgIGRlbGV0ZUZhaWx1cmUsXHJcbiAgICBwYXRjaCxcclxuICAgIHBhdGNoU3VjY2VzcyxcclxuICAgIHBhdGNoRmFpbHVyZSxcclxuICAgIHJlc2V0UmVxdWVzdFN0YXRlLFxyXG4gICAgc2hvd1JlbW92YWxzQ29uZmlybWF0aW9uXHJcbiAgfTtcclxufVxyXG4iXX0=
|