@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,104 +0,0 @@
1
- import { DEFAULT_PAGE, getDefaultRequestOptions, RequestState } from '@ngdux/data-model-common';
2
- import { createLoadingStateActionHandlers, createRequestStateActionHandlers, getLastPageNumber } from '@ngdux/store-common';
3
- import { createEntityAdapter } from '@ngrx/entity';
4
- import { createReducer, on } from '@ngrx/store';
5
- export function createListEntityAdapter(idKey = 'id') {
6
- return createEntityAdapter({
7
- selectId: resource => resource[idKey]
8
- });
9
- }
10
- export function createListReducer(entityAdapter, actions, actionHandlers, initialListState) {
11
- const initialState = {
12
- ...createInitialListState(entityAdapter),
13
- ...initialListState
14
- };
15
- return createReducer(initialState, ...createListActionHandlers(initialState, entityAdapter, actions), ...(actionHandlers || []));
16
- }
17
- function createInitialListState(entityAdapter) {
18
- return entityAdapter.getInitialState({
19
- ...getDefaultRequestOptions(),
20
- lastPageNumber: undefined,
21
- selectedResourceIds: [],
22
- loadingState: RequestState.IDLE,
23
- requestState: RequestState.IDLE,
24
- errors: undefined
25
- });
26
- }
27
- function createListActionHandlers(initialListState, entityAdapter, actions) {
28
- return [
29
- on(actions.reset, () => initialListState),
30
- on(actions.initialize, (state) => entityAdapter.removeAll({
31
- ...state,
32
- selectedResourceIds: [],
33
- pagingOptions: {
34
- ...state.pagingOptions,
35
- page: DEFAULT_PAGE
36
- },
37
- requestState: RequestState.IDLE
38
- })),
39
- on(actions.changePageSize, actions.setPageSize, (state, { pageSize }) => ({
40
- ...state,
41
- pagingOptions: { page: DEFAULT_PAGE, pageSize },
42
- lastPageNumber: undefined
43
- })),
44
- on(actions.changePageNumber, (state, { pageNumber }) => ({
45
- ...state,
46
- pagingOptions: { ...state.pagingOptions, page: pageNumber }
47
- })),
48
- on(actions.changePagingOptions, (state, { pagingOptions }) => ({
49
- ...state,
50
- pagingOptions
51
- })),
52
- on(actions.changeSorting, actions.setSorting, (state, { sortingOptions }) => ({
53
- ...state,
54
- sortingOptions,
55
- pagingOptions: { ...state.pagingOptions, page: DEFAULT_PAGE }
56
- })),
57
- on(actions.changeFiltering, actions.setFiltering, (state, { filteringOptions }) => ({
58
- ...state,
59
- filteringOptions,
60
- pagingOptions: { ...state.pagingOptions, page: DEFAULT_PAGE },
61
- lastPageNumber: undefined
62
- })),
63
- on(actions.changeRequestParams, actions.setRequestParams, (state, { params }) => ({
64
- ...state,
65
- requestParameters: params,
66
- pagingOptions: { ...state.pagingOptions, page: DEFAULT_PAGE }
67
- })),
68
- on(actions.changeSelectedResources, (state, { selectedResourceIds }) => ({
69
- ...state,
70
- selectedResourceIds
71
- })),
72
- on(actions.loadFirstPage, (state) => ({
73
- ...state,
74
- pagingOptions: { ...state.pagingOptions, page: 1 }
75
- })),
76
- on(actions.loadPageSuccess, (state, { resources, pagingOptions }) => {
77
- const lastPageNumber = getLastPageNumber(resources, pagingOptions) || state.lastPageNumber;
78
- if (lastPageNumber && pagingOptions.page > lastPageNumber) {
79
- return {
80
- ...state,
81
- pagingOptions: {
82
- ...state.pagingOptions,
83
- page: lastPageNumber
84
- },
85
- lastPageNumber,
86
- selectedResourceIds: []
87
- };
88
- }
89
- return entityAdapter.setAll(resources, {
90
- ...state,
91
- lastPageNumber,
92
- selectedResourceIds: []
93
- });
94
- }),
95
- on(actions.deleteSuccess, (state) => ({
96
- ...state,
97
- selectedResourceIds: []
98
- })),
99
- ...createLoadingStateActionHandlers(actions.loadPage, actions.loadPageSuccess, actions.loadPageFailure),
100
- ...createRequestStateActionHandlers(undefined, actions.delete, actions.deleteSuccess, actions.deleteFailure),
101
- ...createRequestStateActionHandlers(actions.resetRequestState, actions.patch, actions.patchSuccess, actions.patchFailure)
102
- ];
103
- }
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1yZWR1Y2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZ2R1eC91dGlsL3N0b3JlL2xpc3Qvc3JjL2xpYi9zdGF0ZS1nZW5lcmF0b3IvbGlzdC1yZWR1Y2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsd0JBQXdCLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEcsT0FBTyxFQUNMLGdDQUFnQyxFQUNoQyxnQ0FBZ0MsRUFDaEMsaUJBQWlCLEVBQ2xCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLG1CQUFtQixFQUFpQixNQUFNLGNBQWMsQ0FBQztBQUNsRSxPQUFPLEVBQWlCLGFBQWEsRUFBRSxFQUFFLEVBQWdCLE1BQU0sYUFBYSxDQUFDO0FBSzdFLE1BQU0sVUFBVSx1QkFBdUIsQ0FBbUMsS0FBSyxHQUFHLElBQUk7SUFDcEYsT0FBTyxtQkFBbUIsQ0FBQztRQUN6QixRQUFRLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO0tBQ3RDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsaUJBQWlCLENBQy9CLGFBQStCLEVBQy9CLE9BQXFDLEVBQ3JDLGNBQXlFLEVBQ3pFLGdCQUE2QztJQUU3QyxNQUFNLFlBQVksR0FBNEI7UUFDNUMsR0FBRyxzQkFBc0IsQ0FBZSxhQUFhLENBQUM7UUFDdEQsR0FBRyxnQkFBZ0I7S0FDcEIsQ0FBQztJQUNGLE9BQU8sYUFBYSxDQUNsQixZQUFZLEVBQ1osR0FBRyx3QkFBd0IsQ0FBa0IsWUFBWSxFQUFFLGFBQWEsRUFBRSxPQUFPLENBQUMsRUFDbEYsR0FBRyxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUMsQ0FDMUIsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLHNCQUFzQixDQUM3QixhQUErQjtJQUUvQixPQUFPLGFB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QUMsUUFBUSxFQUNoQixPQUFPLENBQUMsZUFBZSxFQUN2QixPQUFPLENBQUMsZUFBZSxDQUN4QjtRQUNELEdBQUcsZ0NBQWdDLENBQ2pDLFNBQVMsRUFDVCxPQUFPLENBQUMsTUFBTSxFQUNkLE9BQU8sQ0FBQyxhQUFhLEVBQ3JCLE9BQU8sQ0FBQyxhQUFhLENBQ3RCO1FBQ0QsR0FBRyxnQ0FBZ0MsQ0FDakMsT0FBTyxDQUFDLGlCQUFpQixFQUN6QixPQUFPLENBQUMsS0FBSyxFQUNiLE9BQU8sQ0FBQyxZQUFZLEVBQ3BCLE9BQU8sQ0FBQyxZQUFZLENBQ3JCO0tBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBERUZBVUxUX1BBR0UsIGdldERlZmF1bHRSZXF1ZXN0T3B0aW9ucywgUmVxdWVzdFN0YXRlIH0gZnJvbSAnQG5nZHV4L2RhdGEtbW9kZWwtY29tbW9uJztcclxuaW1wb3J0IHtcclxuICBjcmVhdGVMb2FkaW5nU3RhdGVBY3Rpb25IYW5kbGVycyxcclxuICBjcmVhdGVSZXF1ZXN0U3RhdGVBY3Rpb25IYW5kbGVycyxcclxuICBnZXRMYXN0UGFnZU51bWJlclxyXG59IGZyb20gJ0BuZ2R1eC9zdG9yZS1jb21tb24nO1xyXG5pbXBvcnQgeyBjcmVhdGVFbnRpdHlBZGFwdGVyLCBFbnRpdHlBZGFwdGVyIH0gZnJvbSAnQG5ncngvZW50aXR5JztcclxuaW1wb3J0IHsgQWN0aW9uUmVkdWNlciwgY3JlYXRlUmVkdWNlciwgb24sIFJlZHVjZXJUeXBlcyB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcclxuaW1wb3J0IHsgQWN0aW9uQ3JlYXRvciB9IGZyb20gJ0BuZ3J4L3N0b3JlL3NyYy9tb2RlbHMnO1xyXG5cclxuaW1wb3J0IHsgTGlzdEFjdGlvbnMsIExpc3RTdGF0ZSB9IGZyb20gJy4uL21vZGVscy9saXN0Lm1vZGVsJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVMaXN0RW50aXR5QWRhcHRlcjxUIGV4dGVuZHMgeyBba2V5OiBzdHJpbmddOiBhbnkgfT4oaWRLZXkgPSAnaWQnKTogRW50aXR5QWRhcHRlcjxUPiB7XHJcbiAgcmV0dXJuIGNyZWF0ZUVudGl0eUFkYXB0ZXIoe1xyXG4gICAgc2VsZWN0SWQ6IHJlc291cmNlID0+IHJlc291cmNlW2lkS2V5XVxyXG4gIH0pO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTGlzdFJlZHVjZXI8VCwgRSwgUyA9IFQsIFBhcmFtcyA9IFJlY29yZDxzdHJpbmcsIHN0cmluZz4+KFxyXG4gIGVudGl0eUFkYXB0ZXI6IEVudGl0eUFkYXB0ZXI8Uz4sXHJcbiAgYWN0aW9uczogTGlzdEFjdGlvbnM8VCwgRSwgUywgUGFyYW1zPixcclxuICBhY3Rpb25IYW5kbGVycz86IFJlZHVjZXJUeXBlczxMaXN0U3RhdGU8UywgRSwgUGFyYW1zPiwgQWN0aW9uQ3JlYXRvcltdPltdLFxyXG4gIGluaXRpYWxMaXN0U3RhdGU/OiB7IFtrZXk6IHN0cmluZ106IHVua25vd24gfVxyXG4pOiBBY3Rpb25SZWR1Y2VyPExpc3RTdGF0ZTxTLCBFLCBQYXJhbXM+PiB7XHJcbiAgY29uc3QgaW5pdGlhbFN0YXRlOiBMaXN0U3RhdGU8UywgRSwgUGFyYW1zPiA9IHtcclxuICAgIC4uLmNyZWF0ZUluaXRpYWxMaXN0U3RhdGU8UywgRSwgUGFyYW1zPihlbnRpdHlBZGFwdGVyKSxcclxuICAgIC4uLmluaXRpYWxMaXN0U3RhdGVcclxuICB9O1xyXG4gIHJldHVybiBjcmVhdGVSZWR1Y2VyPExpc3RTdGF0ZTxTLCBFLCBQYXJhbXM+PihcclxuICAgIGluaXRpYWxTdGF0ZSxcclxuICAgIC4uLmNyZWF0ZUxpc3RBY3Rpb25IYW5kbGVyczxULCBFLCBTLCBQYXJhbXM+KGluaXRpYWxTdGF0ZSwgZW50aXR5QWRhcHRlciwgYWN0aW9ucyksXHJcbiAgICAuLi4oYWN0aW9uSGFuZGxlcnMgfHwgW10pXHJcbiAgKTtcclxufVxyXG5cclxuZnVuY3Rpb24gY3JlYXRlSW5pdGlhbExpc3RTdGF0ZTxULCBFLCBQYXJhbXMgPSBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PihcclxuICBlbnRpdHlBZGFwdGVyOiBFbnRpdHlBZGFwdGVyPFQ+XHJcbik6IExpc3RTdGF0ZTxULCBFLCBQYXJhbXM+IHtcclxuICByZXR1cm4gZW50aXR5QWRhcHRlci5nZXRJbml0aWFsU3RhdGUoe1xyXG4gICAgLi4uZ2V0RGVmYXVsdFJlcXVlc3RPcHRpb25zPFBhcmFtcz4oKSxcclxuICAgIGxhc3RQYWdlTnVtYmVyOiB1bmRlZmluZWQsXHJcbiAgICBzZWxlY3RlZFJlc291cmNlSWRzOiBbXSxcclxuICAgIGxvYWRpbmdTdGF0ZTogUmVxdWVzdFN0YXRlLklETEUsXHJcbiAgICByZXF1ZXN0U3RhdGU6IFJlcXVlc3RTdGF0ZS5JRExFLFxyXG4gICAgZXJyb3JzOiB1bmRlZmluZWRcclxuICB9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gY3JlYXRlTGlzdEFjdGlvbkhhbmRsZXJzPFQsIEUsIFMsIFBhcmFtcz4oXHJcbiAgaW5pdGlhbExpc3RTdGF0ZTogTGlzdFN0YXRlPFMsIEUsIFBhcmFtcz4sXHJcbiAgZW50aXR5QWRhcHRlcjogRW50aXR5QWRhcHRlcjxTPixcclxuICBhY3Rpb25zOiBMaXN0QWN0aW9uczxULCBFLCBTLCBQYXJhbXM+XHJcbik6IFJlZHVjZXJUeXBlczxMaXN0U3RhdGU8UywgRSwgUGFyYW1zPiwgQWN0aW9uQ3JlYXRvcltdPltdIHtcclxuICByZXR1cm4gW1xyXG4gICAgb24oYWN0aW9ucy5yZXNldCwgKCkgPT4gaW5pdGlhbExpc3RTdGF0ZSksXHJcbiAgICBvbihhY3Rpb25zLmluaXRpYWxpemUsIChzdGF0ZTogTGlzdFN0YXRlPFMsIEUsIFBhcmFtcz4pID0+XHJcbiAgICAgIGVudGl0eUFkYXB0ZXIucmVtb3ZlQWxsKHtcclxuICAgICAgICAuLi5zdGF0ZSxcclxuICAgICAgICBzZWxlY3RlZFJlc291cmNlSWRzOiBbXSxcclxuICAgICAgICBwYWdpbmdPcHRpb25zOiB7XHJcbiAgICAgICAgICAuLi5zdGF0ZS5wYWdpbmdPcHRpb25zLFxyXG4gICAgICAgICAgcGFnZTogREVGQVVMVF9QQUdFXHJcbiAgICAgICAgfSxcclxuICAgICAgICByZXF1ZXN0U3RhdGU6IFJlcXVlc3RTdGF0ZS5JRExFXHJcbiAgICAgIH0pXHJcbiAgICApLFxyXG4gICAgb24oYWN0aW9ucy5jaGFuZ2VQYWdlU2l6ZSwgYWN0aW9ucy5zZXRQYWdlU2l6ZSwgKHN0YXRlOiBMaXN0U3RhdGU8UywgRSwgUGFyYW1zPiwgeyBwYWdlU2l6ZSB9KSA9PiAoe1xyXG4gICAgICAuLi5zdGF0ZSxcclxuICAgICAgcGFnaW5nT3B0aW9uczogeyBwYWdlOiBERUZBVUxUX1BBR0UsIHBhZ2VTaXplIH0sXHJcbiAgICAgIGxhc3RQYWdlTnVtYmVyOiB1bmRlZmluZWRcclxuICAgIH0pKSxcclxuICAgIG9uKGFjdGlvbnMuY2hhbmdlUGFnZU51bWJlciwgKHN0YXRlOiBMaXN0U3RhdGU8UywgRSwgUGFyYW1zPiwgeyBwYWdlTnVtYmVyIH0pID0+ICh7XHJcbiAgICAgIC4uLnN0YXRlLFxyXG4gICAgICBwYWdpbmdPcHRpb25zOiB7IC4uLnN0YXRlLnBhZ2luZ09wdGlvbnMsIHBhZ2U6IHBhZ2VOdW1iZXIgfVxyXG4gICAgfSkpLFxyXG4gICAgb24oYWN0aW9ucy5jaGFuZ2VQYWdpbmdPcHRpb25zLCAoc3RhdGU6IExpc3RTdGF0ZTxTLCBFLCBQYXJhbXM+LCB7IHBhZ2luZ09wdGlvbnMgfSkgPT4gKHtcclxuICAgICAgLi4uc3RhdGUsXHJcbiAgICAgIHBhZ2luZ09wdGlvbnNcclxuICAgIH0pKSxcclxuICAgIG9uKGFjdGlvbnMuY2hhbmdlU29ydGluZywgYWN0aW9ucy5zZXRTb3J0aW5nLCAoc3RhdGU6IExpc3RTdGF0ZTxTLCBFLCBQYXJhbXM+LCB7IHNvcnRpbmdPcHRpb25zIH0pID0+ICh7XHJcbiAgICAgIC4uLnN0YXRlLFxyXG4gICAgICBzb3J0aW5nT3B0aW9ucyxcclxuICAgICAgcGFnaW5nT3B0aW9uczogeyAuLi5zdGF0ZS5wYWdpbmdPcHRpb25zLCBwYWdlOiBERUZBVUxUX1BBR0UgfVxyXG4gICAgfSkpLFxyXG4gICAgb24oYWN0aW9ucy5jaGFuZ2VGaWx0ZXJpbmcsIGFjdGlvbnMuc2V0RmlsdGVyaW5nLCAoc3RhdGU6IExpc3RTdGF0ZTxTLCBFLCBQYXJhbXM+LCB7IGZpbHRlcmluZ09wdGlvbnMgfSkgPT4gKHtcclxuICAgICAgLi4uc3RhdGUsXHJcbiAgICAgIGZpbHRlcmluZ09wdGlvbnMsXHJcbiAgICAgIHBhZ2luZ09wdGlvbnM6IHsgLi4uc3RhdGUucGFnaW5nT3B0aW9ucywgcGFnZTogREVGQVVMVF9QQUdFIH0sXHJcbiAgICAgIGxhc3RQYWdlTnVtYmVyOiB1bmRlZmluZWRcclxuICAgIH0pKSxcclxuICAgIG9uKFxyXG4gICAgICBhY3Rpb25zLmNoYW5nZVJlcXVlc3RQYXJhbXMsXHJcbiAgICAgIGFjdGlvbnMuc2V0UmVxdWVzdFBhcmFtcyxcclxuICAgICAgKHN0YXRlOiBMaXN0U3RhdGU8UywgRSwgUGFyYW1zPiwgeyBwYXJhbXMgfSk6IExpc3RTdGF0ZTxTLCBFLCBQYXJhbXM+ID0+ICh7XHJcbiAgICAgICAgLi4uc3RhdGUsXHJcbiAgICAgICAgcmVxdWVzdFBhcmFtZXRlcnM6IHBhcmFtcyxcclxuICAgICAgICBwYWdpbmdPcHRpb25zOiB7IC4uLnN0YXRlLnBhZ2luZ09wdGlvbnMsIHBhZ2U6IERFRkFVTFRfUEFHRSB9XHJcbiAgICAgIH0pXHJcbiAgICApLFxyXG4gICAgb24oYWN0aW9ucy5jaGFuZ2VTZWxlY3RlZFJlc291cmNlcywgKHN0YXRlOiBMaXN0U3RhdGU8UywgRSwgUGFyYW1zPiwgeyBzZWxlY3RlZFJlc291cmNlSWRzIH0pID0+ICh7XHJcbiAgICAgIC4uLnN0YXRlLFxyXG4gICAgICBzZWxlY3RlZFJlc291cmNlSWRzXHJcbiAgICB9KSksXHJcbiAgICBvbihhY3Rpb25zLmxvYWRGaXJzdFBhZ2UsIChzdGF0ZTogTGlzdFN0YXRlPFMsIEUsIFBhcmFtcz4pID0+ICh7XHJcbiAgICAgIC4uLnN0YXRlLFxyXG4gICAgICBwYWdpbmdPcHRpb25zOiB7IC4uLnN0YXRlLnBhZ2luZ09wdGlvbnMsIHBhZ2U6IDEgfVxyXG4gICAgfSkpLFxyXG4gICAgb24oYWN0aW9ucy5sb2FkUGFnZVN1Y2Nlc3MsIChzdGF0ZTogTGlzdFN0YXRlPFMsIEUsIFBhcmFtcz4sIHsgcmVzb3VyY2VzLCBwYWdpbmdPcHRpb25zIH0pID0+IHtcclxuICAgICAgY29uc3QgbGFzdFBhZ2VOdW1iZXIgPSBnZXRMYXN0UGFnZU51bWJlcihyZXNvdXJjZXMsIHBhZ2luZ09wdGlvbnMpIHx8IHN0YXRlLmxhc3RQYWdlTnVtYmVyO1xyXG4gICAgICBpZiAobGFzdFBhZ2VOdW1iZXIgJiYgcGFnaW5nT3B0aW9ucy5wYWdlID4gbGFzdFBhZ2VOdW1iZXIpIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgLi4uc3RhdGUsXHJcbiAgICAgICAgICBwYWdpbmdPcHRpb25zOiB7XHJcbiAgICAgICAgICAgIC4uLnN0YXRlLnBhZ2luZ09wdGlvbnMsXHJcbiAgICAgICAgICAgIHBhZ2U6IGxhc3RQYWdlTnVtYmVyXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgbGFzdFBhZ2VOdW1iZXIsXHJcbiAgICAgICAgICBzZWxlY3RlZFJlc291cmNlSWRzOiBbXVxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiBlbnRpdHlBZGFwdGVyLnNldEFsbChyZXNvdXJjZXMsIHtcclxuICAgICAgICAuLi5zdGF0ZSxcclxuICAgICAgICBsYXN0UGFnZU51bWJlcixcclxuICAgICAgICBzZWxlY3RlZFJlc291cmNlSWRzOiBbXVxyXG4gICAgICB9KTtcclxuICAgIH0pLFxyXG4gICAgb24oYWN0aW9ucy5kZWxldGVTdWNjZXNzLCAoc3RhdGU6IExpc3RTdGF0ZTxTLCBFLCBQYXJhbXM+KSA9PiAoe1xyXG4gICAgICAuLi5zdGF0ZSxcclxuICAgICAgc2VsZWN0ZWRSZXNvdXJjZUlkczogW10gYXMgc3RyaW5nW11cclxuICAgIH0pKSxcclxuICAgIC4uLmNyZWF0ZUxvYWRpbmdTdGF0ZUFjdGlvbkhhbmRsZXJzPExpc3RTdGF0ZTxTLCBFLCBQYXJhbXM+PihcclxuICAgICAgYWN0aW9ucy5sb2FkUGFnZSxcclxuICAgICAgYWN0aW9ucy5sb2FkUGFnZVN1Y2Nlc3MsXHJcbiAgICAgIGFjdGlvbnMubG9hZFBhZ2VGYWlsdXJlXHJcbiAgICApLFxyXG4gICAgLi4uY3JlYXRlUmVxdWVzdFN0YXRlQWN0aW9uSGFuZGxlcnM8TGlzdFN0YXRlPFMsIEUsIFBhcmFtcz4sIEU+KFxyXG4gICAgICB1bmRlZmluZWQsXHJcbiAgICAgIGFjdGlvbnMuZGVsZXRlLFxyXG4gICAgICBhY3Rpb25zLmRlbGV0ZVN1Y2Nlc3MsXHJcbiAgICAgIGFjdGlvbnMuZGVsZXRlRmFpbHVyZVxyXG4gICAgKSxcclxuICAgIC4uLmNyZWF0ZVJlcXVlc3RTdGF0ZUFjdGlvbkhhbmRsZXJzPExpc3RTdGF0ZTxTLCBFLCBQYXJhbXM+LCBFPihcclxuICAgICAgYWN0aW9ucy5yZXNldFJlcXVlc3RTdGF0ZSxcclxuICAgICAgYWN0aW9ucy5wYXRjaCxcclxuICAgICAgYWN0aW9ucy5wYXRjaFN1Y2Nlc3MsXHJcbiAgICAgIGFjdGlvbnMucGF0Y2hGYWlsdXJlXHJcbiAgICApXHJcbiAgXTtcclxufVxyXG4iXX0=
@@ -1,80 +0,0 @@
1
- /* eslint-disable @typescript-eslint/ban-types */
2
- import { RequestState } from '@ngdux/data-model-common';
3
- import { createSelector } from '@ngrx/store';
4
- export function createListSelectors(entityAdapter, getListState) {
5
- const getAll = createSelector(getListState, entityAdapter.getSelectors().selectAll);
6
- const getPagingOptions = createSelector(getListState, state => state.pagingOptions);
7
- const getRequestOptions = createSelector(getListState, (state) => ({
8
- pagingOptions: state.pagingOptions,
9
- sortingOptions: state.sortingOptions,
10
- filteringOptions: state.filteringOptions
11
- }));
12
- const getLastPageNumber = createSelector(getListState, state => state.lastPageNumber);
13
- const isLastPage = createSelector(getPagingOptions, getLastPageNumber, ({ page }, lastPageNumber) => {
14
- return lastPageNumber ? lastPageNumber <= page : false;
15
- });
16
- const getCurrentPageData = createSelector(getAll, resources => {
17
- return resources;
18
- });
19
- const getSortingOptions = createSelector(getListState, state => state.sortingOptions);
20
- const getRequestParameters = createSelector(getListState, state => state.requestParameters);
21
- const getFilteringOptions = createSelector(getListState, state => state.filteringOptions);
22
- const getCurrentPageNumber = createSelector(getPagingOptions, options => options?.page);
23
- const getSelectedResourceIds = createSelector(getListState, state => state.selectedResourceIds);
24
- const getLoadingState = createSelector(getListState, state => state.loadingState);
25
- const getSelectedItems = createSelector(getSelectedResourceIds, createSelector(getListState, entityAdapter.getSelectors().selectEntities), (selectedResourceIds, resources) => selectedResourceIds.reduce((acc, selectedResourceId) => {
26
- const resource = resources[selectedResourceId];
27
- if (resource) {
28
- acc.push(resource);
29
- }
30
- return acc;
31
- }, []));
32
- const getSelectionRecord = createSelector(getSelectedResourceIds, createSelector(getListState, entityAdapter.getSelectors().selectEntities), (selectedResourceIds, resources) => selectedResourceIds.reduce((selected, selectedResourceId) => {
33
- const resource = resources[selectedResourceId];
34
- if (resource) {
35
- selected[selectedResourceId] = resource;
36
- }
37
- return selected;
38
- }, {}));
39
- const getRequestState = createSelector(getListState, state => state.requestState);
40
- const getErrors = createSelector(getListState, state => state.errors);
41
- const isReady = createSelector(getAll, getLoadingState, (users, loadingState) => !!users && loadingState === RequestState.SUCCESS);
42
- const areSelectedReady = createSelector(getSelectedResourceIds, getSelectionRecord, getLoadingState, (selectedResourceIds, resources, loadingState) => {
43
- return selectedResourceIds.every(resourceId => !!resources[resourceId]) && loadingState === RequestState.SUCCESS;
44
- });
45
- const isDeleteDisabled = createSelector(getSelectedResourceIds, selectedResourceIds => !selectedResourceIds.length);
46
- const isCopyDisabled = createSelector(getSelectedResourceIds, selectedResourceIds => selectedResourceIds.length !== 1);
47
- const getTotalCount = createSelector(getPagingOptions, isLastPage, getCurrentPageData, (pagingOptions, isLastPage, currentPageData) => {
48
- if (!pagingOptions) {
49
- return 0;
50
- }
51
- if (isLastPage) {
52
- return (pagingOptions.page - 1) * pagingOptions.pageSize + currentPageData.length;
53
- }
54
- return (pagingOptions.page + 1) * pagingOptions.pageSize;
55
- });
56
- return {
57
- getAll,
58
- getRequestOptions,
59
- isLastPage,
60
- getCurrentPageData,
61
- getPagingOptions,
62
- getSortingOptions,
63
- getFilteringOptions,
64
- getRequestParameters,
65
- getCurrentPageNumber,
66
- getLastPageNumber,
67
- getLoadingState,
68
- getSelectedResourceIds,
69
- getSelectedItems,
70
- getSelectionRecord,
71
- getRequestState,
72
- getErrors,
73
- areSelectedReady,
74
- isReady,
75
- isDeleteDisabled,
76
- isCopyDisabled,
77
- getTotalCount
78
- };
79
- }
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1zZWxlY3RvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nZHV4L3V0aWwvc3RvcmUvbGlzdC9zcmMvbGliL3N0YXRlLWdlbmVyYXRvci9saXN0LXNlbGVjdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpREFBaUQ7QUFDakQsT0FBTyxFQUFrQixZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV4RSxPQUFPLEVBQXdDLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUduRixNQUFNLFVBQVUsbUJBQW1CLENBQ2pDLGFBQStCLEVBQy9CLFlBQTRHO0lBRTVHLE1BQU0sTUFBTSxHQUFHLGNBQWMsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRXBGLE1BQU0sZ0JBQWdCLEdBQUcsY0FBYyxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUVwRixNQUFNLGlCQUFpQixHQUFHLGNBQWMsQ0FDdEMsWUFBWSxFQUNaLENBQUMsS0FBSyxFQUFrQixFQUFFLENBQUMsQ0FBQztRQUMxQixhQUFhLEVBQUUsS0FBSyxDQUFDLGFBQWE7UUFDbEMsY0FBYyxFQUFFLEtBQUssQ0FBQyxjQUFjO1FBQ3BDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxnQkFBZ0I7S0FDekMsQ0FBQyxDQUNILENBQUM7SUFFRixNQUFNLGlCQUFpQixHQUFHLGNBQWMsQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7SUFFdEYsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxjQUFjLEVBQUUsRUFBRTtRQUNsRyxPQUFPLGNBQWMsQ0FBQyxD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QkFBb0I7UUFDcEIsaUJBQWlCO1FBQ2pCLGVBQWU7UUFDZixzQkFBc0I7UUFDdEIsZ0JBQWdCO1FBQ2hCLGtCQUFrQjtRQUNsQixlQUFlO1FBQ2YsU0FBUztRQUNULGdCQUFnQjtRQUNoQixPQUFPO1FBQ1AsZ0JBQWdCO1FBQ2hCLGNBQWM7UUFDZCxhQUFhO0tBQ2QsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzICovXHJcbmltcG9ydCB7IFJlcXVlc3RPcHRpb25zLCBSZXF1ZXN0U3RhdGUgfSBmcm9tICdAbmdkdXgvZGF0YS1tb2RlbC1jb21tb24nO1xyXG5pbXBvcnQgeyBFbnRpdHlBZGFwdGVyIH0gZnJvbSAnQG5ncngvZW50aXR5JztcclxuaW1wb3J0IHsgRGVmYXVsdFByb2plY3RvckZuLCBNZW1vaXplZFNlbGVjdG9yLCBjcmVhdGVTZWxlY3RvciB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcclxuaW1wb3J0IHsgTGlzdFNlbGVjdG9ycywgTGlzdFN0YXRlIH0gZnJvbSAnLi4vbW9kZWxzL2xpc3QubW9kZWwnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUxpc3RTZWxlY3RvcnM8VCwgRSwgUGFyYW1zID0gUmVjb3JkPHN0cmluZywgc3RyaW5nPj4oXHJcbiAgZW50aXR5QWRhcHRlcjogRW50aXR5QWRhcHRlcjxUPixcclxuICBnZXRMaXN0U3RhdGU6IE1lbW9pemVkU2VsZWN0b3I8b2JqZWN0LCBMaXN0U3RhdGU8VCwgRSwgUGFyYW1zPiwgRGVmYXVsdFByb2plY3RvckZuPExpc3RTdGF0ZTxULCBFLCBQYXJhbXM+Pj5cclxuKTogTGlzdFNlbGVjdG9yczxULCBFLCBQYXJhbXM+IHtcclxuICBjb25zdCBnZXRBbGwgPSBjcmVhdGVTZWxlY3RvcihnZXRMaXN0U3RhdGUsIGVudGl0eUFkYXB0ZXIuZ2V0U2VsZWN0b3JzKCkuc2VsZWN0QWxsKTtcclxuXHJcbiAgY29uc3QgZ2V0UGFnaW5nT3B0aW9ucyA9IGNyZWF0ZVNlbGVjdG9yKGdldExpc3RTdGF0ZSwgc3RhdGUgPT4gc3RhdGUucGFnaW5nT3B0aW9ucyk7XHJcblxyXG4gIGNvbnN0IGdldFJlcXVlc3RPcHRpb25zID0gY3JlYXRlU2VsZWN0b3IoXHJcbiAgICBnZXRMaXN0U3RhdGUsXHJcbiAgICAoc3RhdGUpOiBSZXF1ZXN0T3B0aW9ucyA9PiAoe1xyXG4gICAgICBwYWdpbmdPcHRpb25zOiBzdGF0ZS5wYWdpbmdPcHRpb25zLFxyXG4gICAgICBzb3J0aW5nT3B0aW9uczogc3RhdGUuc29ydGluZ09wdGlvbnMsXHJcbiAgICAgIGZpbHRlcmluZ09wdGlvbnM6IHN0YXRlLmZpbHRlcmluZ09wdGlvbnNcclxuICAgIH0pXHJcbiAgKTtcclxuXHJcbiAgY29uc3QgZ2V0TGFzdFBhZ2VOdW1iZXIgPSBjcmVhdGVTZWxlY3RvcihnZXRMaXN0U3RhdGUsIHN0YXRlID0+IHN0YXRlLmxhc3RQYWdlTnVtYmVyKTtcclxuXHJcbiAgY29uc3QgaXNMYXN0UGFnZSA9IGNyZWF0ZVNlbGVjdG9yKGdldFBhZ2luZ09wdGlvbnMsIGdldExhc3RQYWdlTnVtYmVyLCAoeyBwYWdlIH0sIGxhc3RQYWdlTnVtYmVyKSA9PiB7XHJcbiAgICByZXR1cm4gbGFzdFBhZ2VOdW1iZXIgPyBsYXN0UGFnZU51bWJlciA8PSBwYWdlIDogZmFsc2U7XHJcbiAgfSk7XHJcblxyXG4gIGNvbnN0IGdldEN1cnJlbnRQYWdlRGF0YSA9IGNyZWF0ZVNlbGVjdG9yKGdldEFsbCwgcmVzb3VyY2VzID0+IHtcclxuICAgIHJldHVybiByZXNvdXJjZXM7XHJcbiAgfSk7XHJcblxyXG4gIGNvbnN0IGdldFNvcnRpbmdPcHRpb25zID0gY3JlYXRlU2VsZWN0b3IoZ2V0TGlzdFN0YXRlLCBzdGF0ZSA9PiBzdGF0ZS5zb3J0aW5nT3B0aW9ucyk7XHJcblxyXG4gIGNvbnN0IGdldFJlcXVlc3RQYXJhbWV0ZXJzID0gY3JlYXRlU2VsZWN0b3IoZ2V0TGlzdFN0YXRlLCBzdGF0ZSA9PiBzdGF0ZS5yZXF1ZXN0UGFyYW1ldGVycyk7XHJcblxyXG4gIGNvbnN0IGdldEZpbHRlcmluZ09wdGlvbnMgPSBjcmVhdGVTZWxlY3RvcihnZXRMaXN0U3RhdGUsIHN0YXRlID0+IHN0YXRlLmZpbHRlcmluZ09wdGlvbnMpO1xyXG5cclxuICBjb25zdCBnZXRDdXJyZW50UGFnZU51bWJlciA9IGNyZWF0ZVNlbGVjdG9yKGdldFBhZ2luZ09wdGlvbnMsIG9wdGlvbnMgPT4gb3B0aW9ucz8ucGFnZSk7XHJcblxyXG4gIGNvbnN0IGdldFNlbGVjdGVkUmVzb3VyY2VJZHMgPSBjcmVhdGVTZWxlY3RvcihnZXRMaXN0U3RhdGUsIHN0YXRlID0+IHN0YXRlLnNlbGVjdGVkUmVzb3VyY2VJZHMpO1xyXG5cclxuICBjb25zdCBnZXRMb2FkaW5nU3RhdGUgPSBjcmVhdGVTZWxlY3RvcihnZXRMaXN0U3RhdGUsIHN0YXRlID0+IHN0YXRlLmxvYWRpbmdTdGF0ZSk7XHJcblxyXG4gIGNvbnN0IGdldFNlbGVjdGVkSXRlbXMgPSBjcmVhdGVTZWxlY3RvcihcclxuICAgIGdldFNlbGVjdGVkUmVzb3VyY2VJZHMsXHJcbiAgICBjcmVhdGVTZWxlY3RvcihnZXRMaXN0U3RhdGUsIGVudGl0eUFkYXB0ZXIuZ2V0U2VsZWN0b3JzKCkuc2VsZWN0RW50aXRpZXMpLFxyXG4gICAgKHNlbGVjdGVkUmVzb3VyY2VJZHMsIHJlc291cmNlcyk6IFRbXSA9PlxyXG4gICAgICBzZWxlY3RlZFJlc291cmNlSWRzLnJlZHVjZSgoYWNjLCBzZWxlY3RlZFJlc291cmNlSWQpOiBUW10gPT4ge1xyXG4gICAgICAgIGNvbnN0IHJlc291cmNlID0gcmVzb3VyY2VzW3NlbGVjdGVkUmVzb3VyY2VJZF07XHJcbiAgICAgICAgaWYgKHJlc291cmNlKSB7XHJcbiAgICAgICAgICBhY2MucHVzaChyZXNvdXJjZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBhY2M7XHJcbiAgICAgIH0sIFtdIGFzIFRbXSlcclxuICApO1xyXG5cclxuICBjb25zdCBnZXRTZWxlY3Rpb25SZWNvcmQgPSBjcmVhdGVTZWxlY3RvcihcclxuICAgIGdldFNlbGVjdGVkUmVzb3VyY2VJZHMsXHJcbiAgICBjcmVhdGVTZWxlY3RvcihnZXRMaXN0U3RhdGUsIGVudGl0eUFkYXB0ZXIuZ2V0U2VsZWN0b3JzKCkuc2VsZWN0RW50aXRpZXMpLFxyXG4gICAgKHNlbGVjdGVkUmVzb3VyY2VJZHMsIHJlc291cmNlcyk6IFJlY29yZDxzdHJpbmcsIFQ+ID0+XHJcbiAgICAgIHNlbGVjdGVkUmVzb3VyY2VJZHMucmVkdWNlKChzZWxlY3RlZCwgc2VsZWN0ZWRSZXNvdXJjZUlkKSA9PiB7XHJcbiAgICAgICAgY29uc3QgcmVzb3VyY2UgPSByZXNvdXJjZXNbc2VsZWN0ZWRSZXNvdXJjZUlkXTtcclxuICAgICAgICBpZiAocmVzb3VyY2UpIHtcclxuICAgICAgICAgIHNlbGVjdGVkW3NlbGVjdGVkUmVzb3VyY2VJZF0gPSByZXNvdXJjZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHNlbGVjdGVkO1xyXG4gICAgICB9LCB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBUPilcclxuICApO1xyXG5cclxuICBjb25zdCBnZXRSZXF1ZXN0U3RhdGUgPSBjcmVhdGVTZWxlY3RvcihnZXRMaXN0U3RhdGUsIHN0YXRlID0+IHN0YXRlLnJlcXVlc3RTdGF0ZSk7XHJcblxyXG4gIGNvbnN0IGdldEVycm9ycyA9IGNyZWF0ZVNlbGVjdG9yKGdldExpc3RTdGF0ZSwgc3RhdGUgPT4gc3RhdGUuZXJyb3JzKTtcclxuXHJcbiAgY29uc3QgaXNSZWFkeSA9IGNyZWF0ZVNlbGVjdG9yKFxyXG4gICAgZ2V0QWxsLFxyXG4gICAgZ2V0TG9hZGluZ1N0YXRlLFxyXG4gICAgKHVzZXJzLCBsb2FkaW5nU3RhdGUpID0+ICEhdXNlcnMgJiYgbG9hZGluZ1N0YXRlID09PSBSZXF1ZXN0U3RhdGUuU1VDQ0VTU1xyXG4gICk7XHJcblxyXG4gIGNvbnN0IGFyZVNlbGVjdGVkUmVhZHkgPSBjcmVhdGVTZWxlY3RvcihcclxuICAgIGdldFNlbGVjdGVkUmVzb3VyY2VJZHMsXHJcbiAgICBnZXRTZWxlY3Rpb25SZWNvcmQsXHJcbiAgICBnZXRMb2FkaW5nU3RhdGUsXHJcbiAgICAoc2VsZWN0ZWRSZXNvdXJjZUlkcywgcmVzb3VyY2VzLCBsb2FkaW5nU3RhdGUpID0+IHtcclxuICAgICAgcmV0dXJuIHNlbGVjdGVkUmVzb3VyY2VJZHMuZXZlcnkocmVzb3VyY2VJZCA9PiAhIXJlc291cmNlc1tyZXNvdXJjZUlkXSkgJiYgbG9hZGluZ1N0YXRlID09PSBSZXF1ZXN0U3RhdGUuU1VDQ0VTUztcclxuICAgIH1cclxuICApO1xyXG5cclxuICBjb25zdCBpc0RlbGV0ZURpc2FibGVkID0gY3JlYXRlU2VsZWN0b3IoZ2V0U2VsZWN0ZWRSZXNvdXJjZUlkcywgc2VsZWN0ZWRSZXNvdXJjZUlkcyA9PiAhc2VsZWN0ZWRSZXNvdXJjZUlkcy5sZW5ndGgpO1xyXG5cclxuICBjb25zdCBpc0NvcHlEaXNhYmxlZCA9IGNyZWF0ZVNlbGVjdG9yKFxyXG4gICAgZ2V0U2VsZWN0ZWRSZXNvdXJjZUlkcyxcclxuICAgIHNlbGVjdGVkUmVzb3VyY2VJZHMgPT4gc2VsZWN0ZWRSZXNvdXJjZUlkcy5sZW5ndGggIT09IDFcclxuICApO1xyXG5cclxuICBjb25zdCBnZXRUb3RhbENvdW50ID0gY3JlYXRlU2VsZWN0b3IoXHJcbiAgICBnZXRQYWdpbmdPcHRpb25zLFxyXG4gICAgaXNMYXN0UGFnZSxcclxuICAgIGdldEN1cnJlbnRQYWdlRGF0YSxcclxuICAgIChwYWdpbmdPcHRpb25zLCBpc0xhc3RQYWdlLCBjdXJyZW50UGFnZURhdGEpID0+IHtcclxuICAgICAgaWYgKCFwYWdpbmdPcHRpb25zKSB7XHJcbiAgICAgICAgcmV0dXJuIDA7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChpc0xhc3RQYWdlKSB7XHJcbiAgICAgICAgcmV0dXJuIChwYWdpbmdPcHRpb25zLnBhZ2UgLSAxKSAqIHBhZ2luZ09wdGlvbnMucGFnZVNpemUgKyBjdXJyZW50UGFnZURhdGEubGVuZ3RoO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiAocGFnaW5nT3B0aW9ucy5wYWdlICsgMSkgKiBwYWdpbmdPcHRpb25zLnBhZ2VTaXplO1xyXG4gICAgfVxyXG4gICk7XHJcblxyXG4gIHJldHVybiB7XHJcbiAgICBnZXRBbGwsXHJcbiAgICBnZXRSZXF1ZXN0T3B0aW9ucyxcclxuICAgIGlzTGFzdFBhZ2UsXHJcbiAgICBnZXRDdXJyZW50UGFnZURhdGEsXHJcbiAgICBnZXRQYWdpbmdPcHRpb25zLFxyXG4gICAgZ2V0U29ydGluZ09wdGlvbnMsXHJcbiAgICBnZXRGaWx0ZXJpbmdPcHRpb25zLFxyXG4gICAgZ2V0UmVxdWVzdFBhcmFtZXRlcnMsXHJcbiAgICBnZXRDdXJyZW50UGFnZU51bWJlcixcclxuICAgIGdldExhc3RQYWdlTnVtYmVyLFxyXG4gICAgZ2V0TG9hZGluZ1N0YXRlLFxyXG4gICAgZ2V0U2VsZWN0ZWRSZXNvdXJjZUlkcyxcclxuICAgIGdldFNlbGVjdGVkSXRlbXMsXHJcbiAgICBnZXRTZWxlY3Rpb25SZWNvcmQsXHJcbiAgICBnZXRSZXF1ZXN0U3RhdGUsXHJcbiAgICBnZXRFcnJvcnMsXHJcbiAgICBhcmVTZWxlY3RlZFJlYWR5LFxyXG4gICAgaXNSZWFkeSxcclxuICAgIGlzRGVsZXRlRGlzYWJsZWQsXHJcbiAgICBpc0NvcHlEaXNhYmxlZCxcclxuICAgIGdldFRvdGFsQ291bnRcclxuICB9O1xyXG59XHJcbiJdfQ==