@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.
Files changed (39) hide show
  1. package/esm2020/index.mjs +10 -8
  2. package/esm2020/lib/+state/effects.mjs +23 -0
  3. package/esm2020/lib/+state/state.service.mjs +55 -0
  4. package/esm2020/lib/models/list.model.mjs +4 -1
  5. package/esm2020/lib/ngdux-list-state.module.mjs +53 -0
  6. package/esm2020/lib/services/list-notification-service.mjs +21 -0
  7. package/esm2020/lib/state-generator/abstract-list-effects.mjs +66 -0
  8. package/esm2020/lib/state-generator/abstract-list-state.service.mjs +44 -0
  9. package/esm2020/lib/state-generator/abstract-list.facade.mjs +91 -0
  10. package/esm2020/lib/state-generator/list-actions.mjs +63 -0
  11. package/esm2020/lib/state-generator/list-reducer.mjs +104 -0
  12. package/esm2020/lib/state-generator/list-selectors.mjs +80 -0
  13. package/esm2020/lib/state-generator/list-state.mjs +18 -0
  14. package/fesm2015/ngdux-list.mjs +240 -107
  15. package/fesm2015/ngdux-list.mjs.map +1 -1
  16. package/fesm2020/ngdux-list.mjs +240 -105
  17. package/fesm2020/ngdux-list.mjs.map +1 -1
  18. package/index.d.ts +9 -7
  19. package/lib/+state/effects.d.ts +14 -0
  20. package/lib/+state/state.service.d.ts +22 -0
  21. package/lib/models/list.model.d.ts +18 -6
  22. package/lib/ngdux-list-state.module.d.ts +23 -0
  23. package/lib/services/list-notification-service.d.ts +13 -0
  24. package/lib/{+state → state-generator}/abstract-list-effects.d.ts +9 -11
  25. package/lib/{+state → state-generator}/abstract-list-state.service.d.ts +7 -7
  26. package/lib/{+state → state-generator}/abstract-list.facade.d.ts +20 -17
  27. package/lib/{+state → state-generator}/list-reducer.d.ts +2 -2
  28. package/lib/state-generator/list-selectors.d.ts +4 -0
  29. package/lib/{+state → state-generator}/list-state.d.ts +4 -4
  30. package/package.json +29 -13
  31. package/esm2020/lib/+state/abstract-list-effects.mjs +0 -71
  32. package/esm2020/lib/+state/abstract-list-state.service.mjs +0 -44
  33. package/esm2020/lib/+state/abstract-list.facade.mjs +0 -88
  34. package/esm2020/lib/+state/list-actions.mjs +0 -60
  35. package/esm2020/lib/+state/list-reducer.mjs +0 -97
  36. package/esm2020/lib/+state/list-selectors.mjs +0 -80
  37. package/esm2020/lib/+state/list-state.mjs +0 -18
  38. package/lib/+state/list-selectors.d.ts +0 -4
  39. /package/lib/{+state → state-generator}/list-actions.d.ts +0 -0
@@ -0,0 +1,63 @@
1
+ import { createAction, props } from '@ngrx/store';
2
+ export function createListActions(featureName) {
3
+ const resetRequestState = createAction(`[${featureName} API] Reset ${featureName} Request State`);
4
+ const initialize = createAction(`[${featureName} API] Initialize ${featureName}`);
5
+ const reset = createAction(`[Organization ${featureName} API] Reset ${featureName}`);
6
+ const loadNextPage = createAction(`[${featureName} API] Load Next ${featureName} Page`);
7
+ const loadPreviousPage = createAction(`[${featureName} API] Load Previous ${featureName} Page`);
8
+ const loadFirstPage = createAction(`[${featureName} API] Load First ${featureName} Page`);
9
+ const setPageSize = createAction(`[${featureName} API] Set ${featureName} Page Size`, props());
10
+ const setSorting = createAction(`[${featureName} API] Set ${featureName} Sorting`, props());
11
+ const setFiltering = createAction(`[${featureName} API] Set ${featureName} Filtering`, props());
12
+ const setRequestParams = createAction(`[${featureName} API] Set ${featureName} Request Params`, props());
13
+ const changePageSize = createAction(`[${featureName} API] Change ${featureName} Page Size`, props());
14
+ const changePageNumber = createAction(`[${featureName} API] Change ${featureName} Page Number`, props());
15
+ const changePagingOptions = createAction(`[${featureName} API] Change ${featureName} Page Options`, props());
16
+ const changeSorting = createAction(`[${featureName} API] Change ${featureName} Sorting`, props());
17
+ const changeFiltering = createAction(`[${featureName} API] Change ${featureName} Filtering`, props());
18
+ const changeSelectedResources = createAction(`[${featureName} API] Change Selected Resources ${featureName}`, props());
19
+ const changeRequestParams = createAction(`[${featureName} API] Change ${featureName} Request Params`, props());
20
+ const loadPage = createAction(`[${featureName} API] Load ${featureName} Page`);
21
+ const loadPageSuccess = createAction(`[${featureName} API] Load ${featureName} Page Success`, props());
22
+ const loadPageFailure = createAction(`[${featureName} API] Load ${featureName} Page Failure`, props());
23
+ const deleteAction = createAction(`[${featureName} API] Delete ${featureName}`, props());
24
+ const deleteSuccess = createAction(`[${featureName} API] Delete ${featureName} Success`, props());
25
+ const deleteFailure = createAction(`[${featureName} API] Delete ${featureName} Failure`, props());
26
+ const patch = createAction(`[${featureName} API] Patch ${featureName}`, props());
27
+ const patchSuccess = createAction(`[${featureName} API] Patch ${featureName} Success`, props());
28
+ const patchFailure = createAction(`[${featureName} API] Patch ${featureName} Failure`, props());
29
+ /**
30
+ * @deprecated The method will be removed. The AbstractEffect will not be responsible for it anymore
31
+ */
32
+ const showRemovalsConfirmation = createAction(`[${featureName} API] Show ${featureName} Removal Confirmation`);
33
+ return {
34
+ initialize,
35
+ reset,
36
+ setPageSize,
37
+ setSorting,
38
+ setFiltering,
39
+ setRequestParams,
40
+ changePageSize,
41
+ changePageNumber,
42
+ changePagingOptions,
43
+ changeSorting,
44
+ changeFiltering,
45
+ changeRequestParams,
46
+ loadPreviousPage,
47
+ loadNextPage,
48
+ loadFirstPage,
49
+ changeSelectedResources,
50
+ loadPage,
51
+ loadPageSuccess,
52
+ loadPageFailure,
53
+ delete: deleteAction,
54
+ deleteSuccess,
55
+ deleteFailure,
56
+ patch,
57
+ patchSuccess,
58
+ patchFailure,
59
+ resetRequestState,
60
+ showRemovalsConfirmation
61
+ };
62
+ }
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1hY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZ2R1eC91dGlsL3N0b3JlL2xpc3Qvc3JjL2xpYi9zdGF0ZS1nZW5lcmF0b3IvbGlzdC1hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBR2xELE1BQU0sVUFBVSxpQkFBaUIsQ0FDL0IsV0FBbUI7SUFFbkIsTUFBTSxpQkFBaUIsR0FBRyxZQUFZLENBQUMsSUFBSSxXQUFXLGVBQWUsV0FBVyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2xHLE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQyxJQUFJLFdBQVcsb0JBQW9CLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDbEYsTUFBTSxLQUFLLEdBQUcsWUFBWSxDQUFDLGlCQUFpQixXQUFXLGVBQWUsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUVyRixNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMsSUFBSSxXQUFXLG1CQUFtQixXQUFXLE9BQU8sQ0FBQyxDQUFDO0lBQ3hGLE1BQU0sZ0JBQWdCLEdBQUcsWUFBWSxDQUFDLElBQUksV0FBVyx1QkFBdUIsV0FBVyxPQUFPLENBQUMsQ0FBQztJQUNoRyxNQUFNLGFBQWEsR0FBRyxZQUFZLENBQUMsSUFBSSxXQUFXLG9CQUFvQixXQUFXLE9BQU8sQ0FBQyxDQUFDO0lBRTFGLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQyxJQUFJLFdBQVcsYUFBYSxXQUFXLFlBQVksRUFBRSxLQUFLLEVBQXdCLENBQUMsQ0FBQztJQUNySCxNQUFNLFVBQVUsR0FBRyxZQUFZLENBQzdCLElBQUksV0FBVyxhQUFhLFdBQVcsVUFBVSxFQUNqRCxLQUFLLEVBQXNDLENBQzVDLENBQUM7SUFDRixNQUFNLFlBQVksR0FBRyxZQUFZLENBQy9CLElBQUksV0FBVyxhQUFhLFdBQVcsWUFBWSxFQUNuRCxLQUFLLEVBQTBDLENBQ2hELENBQUM7SUFDRixNQUFNLGdCQUFnQixHQUFHLFlBQVksQ0FDbkMsSUFBSSxXQUFXLGFBQWEsV0FBVyxpQkFBaUIsRUFDeEQsS0FBSyxFQUFzQixDQUM1QixDQUFDO0lBRUYsTUFBTSxjQUFjLEdBQUcsWUFBWSxDQUNqQyxJQUFJLFdBQVcsZ0JBQWdCLFdBQVcsWUFBWSxFQUN0RCxLQUFLLEVBQXdCLENBQzlCLENBQUM7SUFFRixNQUFNLGdCQUFnQixHQUFHLFlBQVksQ0FDbkMsSUFBSSxXQUFXLGdCQUFnQixXQUFXLGNBQWMsRUFDeEQsS0FBSyxFQUEwQixDQUNoQyxDQUFDO0lBRUYsTUFBTSxtQkFBbUIsR0FBRyxZQUFZLENBQ3RDLElBQUksV0FBVyxnQkFBZ0IsV0FBVyxlQUFlLEVBQ3pELEtBQUssRUFBb0MsQ0FDMUMsQ0FBQztJQUNGLE1BQU0sYUFBYSxHQUFHLFlBQVksQ0FDaEMsSUFBSSxXQUFXLGdCQUFnQixXQUFXLFVBQVUsRUFDcEQsS0FBSyxFQUFzQyxDQUM1QyxDQUFDO0lBQ0YsTUFBTSxlQUFlLEdBQUcsWUFBWSxDQUNsQyxJQUFJLFdBQVcsZ0JBQWdCLFdBQVcsWUFBWSxFQUN0RCxLQUFLLEVBQTBDLENBQ2hELENBQUM7SUFDRixNQUFNLHVCQUF1QixHQUFHLFlBQVksQ0FDMUMsSUFBSSxXQUFXLG1DQUFtQyxXQUFXLEVBQUUsRUFDL0QsS0FBSyxFQUFxQyxDQUMzQyxDQUFDO0lBQ0YsTUFBTSxtQkFBbUIsR0FBRyxZQUFZLENBQ3RDLElBQUksV0FBVyxnQkFBZ0IsV0FBVyxpQkFBaUIsRUFDM0QsS0FBSyxFQUFzQixDQUM1QixDQUFDO0lBRUYsTUFBTSxRQUFRLEdBQUcsWUFBWSxDQUFDLElBQUksV0FBVyxjQUFjLFdBQVcsT0FBTyxDQUFDLENBQUM7SUFDL0UsTUFBTSxlQUFlLEdBQUcsWUFBWSxDQUNsQyxJQUFJLFdBQVcsY0FBYyxXQUFXLGVBQWUsRUFDdkQsS0FBSyxFQUFvRCxDQUMxRCxDQUFDO0lBQ0YsTUFBTSxlQUFlLEdBQUcsWUFBWSxDQUFDLElBQUksV0FBVyxjQUFjLFdBQVcsZUFBZSxFQUFFLEtBQUssRUFBaUIsQ0FBQyxDQUFDO0lBRXRILE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxJQUFJLFdBQVcsZ0JBQWdCLFdBQVcsRUFBRSxFQUFFLEtBQUssRUFBNkIsQ0FBQyxDQUFDO0lBQ3BILE1BQU0sYUFBYSxHQUFHLFlBQVksQ0FDaEMsSUFBSSxXQUFXLGdCQUFnQixXQUFXLFVBQVUsRUFDcEQsS0FBSyxFQUE2QixDQUNuQyxDQUFDO0lBQ0YsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDLElBQUksV0FBVyxnQkFBZ0IsV0FBVyxVQUFVLEVBQUUsS0FBSyxFQUFpQixDQUFDLENBQUM7SUFFakgsTUFBTSxLQUFLLEdBQUcsWUFBWSxDQUN4QixJQUFJLFdBQVcsZUFBZSxXQUFXLEVBQUUsRUFDM0MsS0FBSyxFQUFtRCxDQUN6RCxDQUFDO0lBQ0YsTUFBTSxZQUFZLEdBQUcsWUFBWSxDQUMvQixJQUFJLFdBQVcsZUFBZSxXQUFXLFVBQVUsRUFDbkQsS0FBSyxFQUFtQyxDQUN6QyxDQUFDO0lBQ0YsTUFBTSxZQUFZLEdBQUcsWUFBWSxDQUFDLElBQUksV0FBVyxlQUFlLFdBQVcsVUFBVSxFQUFFLEtBQUssRUFBaUIsQ0FBQyxDQUFDO0lBRS9HOztPQUVHO0lBQ0gsTUFBTSx3QkFBd0IsR0FBRyxZQUFZLENBQUMsSUFBSSxXQUFXLGNBQWMsV0FBVyx1QkFBdUIsQ0FBQyxDQUFDO0lBRS9HLE9BQU87UUFDTCxVQUFVO1FBQ1YsS0FBSztRQUNMLFdBQVc7UUFDWCxVQUFVO1FBQ1YsWUFBWTtRQUNaLGdCQUFnQjtRQUNoQixjQUFjO1FBQ2QsZ0JBQWdCO1FBQ2hCLG1CQUFtQjtRQUNuQixhQUFhO1FBQ2IsZUFBZTtRQUNmLG1CQUFtQjtRQUNuQixnQkFBZ0I7UUFDaEIsWUFBWTtRQUNaLGFBQWE7UUFDYix1QkFBdUI7UUFDdkIsUUFBUTtRQUNSLGVBQWU7UUFDZixlQUFlO1FBQ2YsTUFBTSxFQUFFLFlBQVk7UUFDcEIsYUFBYTtRQUNiLGFBQWE7UUFDYixLQUFLO1FBQ0wsWUFBWTtRQUNaLFlBQVk7UUFDWixpQkFBaUI7UUFDakIsd0JBQXdCO0tBQ3pCLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXJyb3JEdG8sIEZpbHRlcmluZ09wdGlvbnMsIFBhZ2luZ09wdGlvbnMsIFNvcnRpbmdPcHRpb25zIH0gZnJvbSAnQG5nZHV4L2RhdGEtbW9kZWwtY29tbW9uJztcclxuaW1wb3J0IHsgY3JlYXRlQWN0aW9uLCBwcm9wcyB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcclxuaW1wb3J0IHsgTGlzdEFjdGlvbnMgfSBmcm9tICcuLi9tb2RlbHMvbGlzdC5tb2RlbCc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTGlzdEFjdGlvbnM8VCwgRSwgUyA9IFQsIFBhcmFtcyA9IFJlY29yZDxzdHJpbmcsIHN0cmluZz4+KFxyXG4gIGZlYXR1cmVOYW1lOiBzdHJpbmdcclxuKTogTGlzdEFjdGlvbnM8VCwgRSwgUywgUGFyYW1zPiB7XHJcbiAgY29uc3QgcmVzZXRSZXF1ZXN0U3RhdGUgPSBjcmVhdGVBY3Rpb24oYFske2ZlYXR1cmVOYW1lfSBBUEldIFJlc2V0ICR7ZmVhdHVyZU5hbWV9IFJlcXVlc3QgU3RhdGVgKTtcclxuICBjb25zdCBpbml0aWFsaXplID0gY3JlYXRlQWN0aW9uKGBbJHtmZWF0dXJlTmFtZX0gQVBJXSBJbml0aWFsaXplICR7ZmVhdHVyZU5hbWV9YCk7XHJcbiAgY29uc3QgcmVzZXQgPSBjcmVhdGVBY3Rpb24oYFtPcmdhbml6YXRpb24gJHtmZWF0dXJlTmFtZX0gQVBJXSBSZXNldCAke2ZlYXR1cmVOYW1lfWApO1xyXG5cclxuICBjb25zdCBsb2FkTmV4dFBhZ2UgPSBjcmVhdGVBY3Rpb24oYFske2ZlYXR1cmVOYW1lfSBBUEldIExvYWQgTmV4dCAke2ZlYXR1cmVOYW1lfSBQYWdlYCk7XHJcbiAgY29uc3QgbG9hZFByZXZpb3VzUGFnZSA9IGNyZWF0ZUFjdGlvbihgWyR7ZmVhdHVyZU5hbWV9IEFQSV0gTG9hZCBQcmV2aW91cyAke2ZlYXR1cmVOYW1lfSBQYWdlYCk7XHJcbiAgY29uc3QgbG9hZEZpcnN0UGFnZSA9IGNyZWF0ZUFjdGlvbihgWyR7ZmVhdHVyZU5hbWV9IEFQSV0gTG9hZCBGaXJzdCAke2ZlYXR1cmVOYW1lfSBQYWdlYCk7XHJcblxyXG4gIGNvbnN0IHNldFBhZ2VTaXplID0gY3JlYXRlQWN0aW9uKGBbJHtmZWF0dXJlTmFtZX0gQVBJXSBTZXQgJHtmZWF0dXJlTmFtZX0gUGFnZSBTaXplYCwgcHJvcHM8eyBwYWdlU2l6ZTogbnVtYmVyIH0+KCkpO1xyXG4gIGNvbnN0IHNldFNvcnRpbmcgPSBjcmVhdGVBY3Rpb24oXHJcbiAgICBgWyR7ZmVhdHVyZU5hbWV9IEFQSV0gU2V0ICR7ZmVhdHVyZU5hbWV9IFNvcnRpbmdgLFxyXG4gICAgcHJvcHM8eyBzb3J0aW5nT3B0aW9uczogU29ydGluZ09wdGlvbnMgfT4oKVxyXG4gICk7XHJcbiAgY29uc3Qgc2V0RmlsdGVyaW5nID0gY3JlYXRlQWN0aW9uKFxyXG4gICAgYFske2ZlYXR1cmVOYW1lfSBBUEldIFNldCAke2ZlYXR1cmVOYW1lfSBGaWx0ZXJpbmdgLFxyXG4gICAgcHJvcHM8eyBmaWx0ZXJpbmdPcHRpb25zOiBGaWx0ZXJpbmdPcHRpb25zIH0+KClcclxuICApO1xyXG4gIGNvbnN0IHNldFJlcXVlc3RQYXJhbXMgPSBjcmVhdGVBY3Rpb24oXHJcbiAgICBgWyR7ZmVhdHVyZU5hbWV9IEFQSV0gU2V0ICR7ZmVhdHVyZU5hbWV9IFJlcXVlc3QgUGFyYW1zYCxcclxuICAgIHByb3BzPHsgcGFyYW1zOiBQYXJhbXMgfT4oKVxyXG4gICk7XHJcblxyXG4gIGNvbnN0IGNoYW5nZVBhZ2VTaXplID0gY3JlYXRlQWN0aW9uKFxyXG4gICAgYFske2ZlYXR1cmVOYW1lfSBBUEldIENoYW5nZSAke2ZlYXR1cmVOYW1lfSBQYWdlIFNpemVgLFxyXG4gICAgcHJvcHM8eyBwYWdlU2l6ZTogbnVtYmVyIH0+KClcclxuICApO1xyXG5cclxuICBjb25zdCBjaGFuZ2VQYWdlTnVtYmVyID0gY3JlYXRlQWN0aW9uKFxyXG4gICAgYFske2ZlYXR1cmVOYW1lfSBBUEldIENoYW5nZSAke2ZlYXR1cmVOYW1lfSBQYWdlIE51bWJlcmAsXHJcbiAgICBwcm9wczx7IHBhZ2VOdW1iZXI6IG51bWJlciB9PigpXHJcbiAgKTtcclxuXHJcbiAgY29uc3QgY2hhbmdlUGFnaW5nT3B0aW9ucyA9IGNyZWF0ZUFjdGlvbihcclxuICAgIGBbJHtmZWF0dXJlTmFtZX0gQVBJXSBDaGFuZ2UgJHtmZWF0dXJlTmFtZX0gUGFnZSBPcHRpb25zYCxcclxuICAgIHByb3BzPHsgcGFnaW5nT3B0aW9uczogUGFnaW5nT3B0aW9ucyB9PigpXHJcbiAgKTtcclxuICBjb25zdCBjaGFuZ2VTb3J0aW5nID0gY3JlYXRlQWN0aW9uKFxyXG4gICAgYFske2ZlYXR1cmVOYW1lfSBBUEldIENoYW5nZSAke2ZlYXR1cmVOYW1lfSBTb3J0aW5nYCxcclxuICAgIHByb3BzPHsgc29ydGluZ09wdGlvbnM6IFNvcnRpbmdPcHRpb25zIH0+KClcclxuICApO1xyXG4gIGNvbnN0IGNoYW5nZUZpbHRlcmluZyA9IGNyZWF0ZUFjdGlvbihcclxuICAgIGBbJHtmZWF0dXJlTmFtZX0gQVBJXSBDaGFuZ2UgJHtmZWF0dXJlTmFtZX0gRmlsdGVyaW5nYCxcclxuICAgIHByb3BzPHsgZmlsdGVyaW5nT3B0aW9uczogRmlsdGVyaW5nT3B0aW9ucyB9PigpXHJcbiAgKTtcclxuICBjb25zdCBjaGFuZ2VTZWxlY3RlZFJlc291cmNlcyA9IGNyZWF0ZUFjdGlvbihcclxuICAgIGBbJHtmZWF0dXJlTmFtZX0gQVBJXSBDaGFuZ2UgU2VsZWN0ZWQgUmVzb3VyY2VzICR7ZmVhdHVyZU5hbWV9YCxcclxuICAgIHByb3BzPHsgc2VsZWN0ZWRSZXNvdXJjZUlkczogc3RyaW5nW10gfT4oKVxyXG4gICk7XHJcbiAgY29uc3QgY2hhbmdlUmVxdWVzdFBhcmFtcyA9IGNyZWF0ZUFjdGlvbihcclxuICAgIGBbJHtmZWF0dXJlTmFtZX0gQVBJXSBDaGFuZ2UgJHtmZWF0dXJlTmFtZX0gUmVxdWVzdCBQYXJhbXNgLFxyXG4gICAgcHJvcHM8eyBwYXJhbXM6IFBhcmFtcyB9PigpXHJcbiAgKTtcclxuXHJcbiAgY29uc3QgbG9hZFBhZ2UgPSBjcmVhdGVBY3Rpb24oYFske2ZlYXR1cmVOYW1lfSBBUEldIExvYWQgJHtmZWF0dXJlTmFtZX0gUGFnZWApO1xyXG4gIGNvbnN0IGxvYWRQYWdlU3VjY2VzcyA9IGNyZWF0ZUFjdGlvbihcclxuICAgIGBbJHtmZWF0dXJlTmFtZX0gQVBJXSBMb2FkICR7ZmVhdHVyZU5hbWV9IFBhZ2UgU3VjY2Vzc2AsXHJcbiAgICBwcm9wczx7IHJlc291cmNlczogU1tdOyBwYWdpbmdPcHRpb25zOiBQYWdpbmdPcHRpb25zIH0+KClcclxuICApO1xyXG4gIGNvbnN0IGxvYWRQYWdlRmFpbHVyZSA9IGNyZWF0ZUFjdGlvbihgWyR7ZmVhdHVyZU5hbWV9IEFQSV0gTG9hZCAke2ZlYXR1cmVOYW1lfSBQYWdlIEZhaWx1cmVgLCBwcm9wczx7IGVycm9yczogRSB9PigpKTtcclxuXHJcbiAgY29uc3QgZGVsZXRlQWN0aW9uID0gY3JlYXRlQWN0aW9uKGBbJHtmZWF0dXJlTmFtZX0gQVBJXSBEZWxldGUgJHtmZWF0dXJlTmFtZX1gLCBwcm9wczx7IHJlc291cmNlSWRzOiBzdHJpbmdbXSB9PigpKTtcclxuICBjb25zdCBkZWxldGVTdWNjZXNzID0gY3JlYXRlQWN0aW9uKFxyXG4gICAgYFske2ZlYXR1cmVOYW1lfSBBUEldIERlbGV0ZSAke2ZlYXR1cmVOYW1lfSBTdWNjZXNzYCxcclxuICAgIHByb3BzPHsgcmVzb3VyY2VJZHM6IHN0cmluZ1tdIH0+KClcclxuICApO1xyXG4gIGNvbnN0IGRlbGV0ZUZhaWx1cmUgPSBjcmVhdGVBY3Rpb24oYFske2ZlYXR1cmVOYW1lfSBBUEldIERlbGV0ZSAke2ZlYXR1cmVOYW1lfSBGYWlsdXJlYCwgcHJvcHM8eyBlcnJvcnM6IEUgfT4oKSk7XHJcblxyXG4gIGNvbnN0IHBhdGNoID0gY3JlYXRlQWN0aW9uKFxyXG4gICAgYFske2ZlYXR1cmVOYW1lfSBBUEldIFBhdGNoICR7ZmVhdHVyZU5hbWV9YCxcclxuICAgIHByb3BzPHsgcmVzb3VyY2VJZHM6IHN0cmluZ1tdOyByZXNvdXJjZTogUGFydGlhbDxUPiB9PigpXHJcbiAgKTtcclxuICBjb25zdCBwYXRjaFN1Y2Nlc3MgPSBjcmVhdGVBY3Rpb24oXHJcbiAgICBgWyR7ZmVhdHVyZU5hbWV9IEFQSV0gUGF0Y2ggJHtmZWF0dXJlTmFtZX0gU3VjY2Vzc2AsXHJcbiAgICBwcm9wczx7IHJlc291cmNlczogKFQgfCBFcnJvckR0bylbXSB9PigpXHJcbiAgKTtcclxuICBjb25zdCBwYXRjaEZhaWx1cmUgPSBjcmVhdGVBY3Rpb24oYFske2ZlYXR1cmVOYW1lfSBBUEldIFBhdGNoICR7ZmVhdHVyZU5hbWV9IEZhaWx1cmVgLCBwcm9wczx7IGVycm9yczogRSB9PigpKTtcclxuXHJcbiAgLyoqXHJcbiAgICogQGRlcHJlY2F0ZWQgVGhlIG1ldGhvZCB3aWxsIGJlIHJlbW92ZWQuIFRoZSBBYnN0cmFjdEVmZmVjdCB3aWxsIG5vdCBiZSByZXNwb25zaWJsZSBmb3IgaXQgYW55bW9yZVxyXG4gICAqL1xyXG4gIGNvbnN0IHNob3dSZW1vdmFsc0NvbmZpcm1hdGlvbiA9IGNyZWF0ZUFjdGlvbihgWyR7ZmVhdHVyZU5hbWV9IEFQSV0gU2hvdyAke2ZlYXR1cmVOYW1lfSBSZW1vdmFsIENvbmZpcm1hdGlvbmApO1xyXG5cclxuICByZXR1cm4ge1xyXG4gICAgaW5pdGlhbGl6ZSxcclxuICAgIHJlc2V0LFxyXG4gICAgc2V0UGFnZVNpemUsXHJcbiAgICBzZXRTb3J0aW5nLFxyXG4gICAgc2V0RmlsdGVyaW5nLFxyXG4gICAgc2V0UmVxdWVzdFBhcmFtcyxcclxuICAgIGNoYW5nZVBhZ2VTaXplLFxyXG4gICAgY2hhbmdlUGFnZU51bWJlcixcclxuICAgIGNoYW5nZVBhZ2luZ09wdGlvbnMsXHJcbiAgICBjaGFuZ2VTb3J0aW5nLFxyXG4gICAgY2hhbmdlRmlsdGVyaW5nLFxyXG4gICAgY2hhbmdlUmVxdWVzdFBhcmFtcyxcclxuICAgIGxvYWRQcmV2aW91c1BhZ2UsXHJcbiAgICBsb2FkTmV4dFBhZ2UsXHJcbiAgICBsb2FkRmlyc3RQYWdlLFxyXG4gICAgY2hhbmdlU2VsZWN0ZWRSZXNvdXJjZXMsXHJcbiAgICBsb2FkUGFnZSxcclxuICAgIGxvYWRQYWdlU3VjY2VzcyxcclxuICAgIGxvYWRQYWdlRmFpbHVyZSxcclxuICAgIGRlbGV0ZTogZGVsZXRlQWN0aW9uLFxyXG4gICAgZGVsZXRlU3VjY2VzcyxcclxuICAgIGRlbGV0ZUZhaWx1cmUsXHJcbiAgICBwYXRjaCxcclxuICAgIHBhdGNoU3VjY2VzcyxcclxuICAgIHBhdGNoRmFpbHVyZSxcclxuICAgIHJlc2V0UmVxdWVzdFN0YXRlLFxyXG4gICAgc2hvd1JlbW92YWxzQ29uZmlybWF0aW9uXHJcbiAgfTtcclxufVxyXG4iXX0=
@@ -0,0 +1,104 @@
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=
@@ -0,0 +1,80 @@
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==
@@ -0,0 +1,18 @@
1
+ import { createFeatureSelector } from '@ngrx/store';
2
+ import { createListActions } from './list-actions';
3
+ import { createListEntityAdapter, createListReducer } from './list-reducer';
4
+ import { createListSelectors } from './list-selectors';
5
+ export function createListState(featureName, idKey) {
6
+ const actions = createListActions(featureName);
7
+ const entityAdapter = createListEntityAdapter(idKey);
8
+ const reducer = createListReducer(entityAdapter, actions);
9
+ const getState = createFeatureSelector(featureName);
10
+ const selectors = createListSelectors(entityAdapter, getState);
11
+ return {
12
+ actions,
13
+ reducer: (state, action) => reducer(state, action),
14
+ selectors,
15
+ entityAdapter
16
+ };
17
+ }
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmdkdXgvdXRpbC9zdG9yZS9saXN0L3NyYy9saWIvc3RhdGUtZ2VuZXJhdG9yL2xpc3Qtc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFVLHFCQUFxQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXZELE1BQU0sVUFBVSxlQUFlLENBSzdCLFdBQW1CLEVBQUUsS0FBYztJQUNuQyxNQUFNLE9BQU8sR0FBRyxpQkFBaUIsQ0FBa0IsV0FBVyxDQUFDLENBQUM7SUFDaEUsTUFBTSxhQUFhLEdBQUcsdUJBQXVCLENBQUksS0FBSyxDQUFDLENBQUM7SUFDeEQsTUFBTSxPQUFPLEdBQUcsaUJBQWlCLENBQWtCLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMzRSxNQUFNLFFBQVEsR0FBRyxxQkFBcUIsQ0FBMEIsV0FBVyxDQUFDLENBQUM7SUFDN0UsTUFBTSxTQUFTLEdBQUcsbUJBQW1CLENBQWUsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBRTdFLE9BQU87UUFDTCxPQUFPO1FBQ1AsT0FBTyxFQUFFLENBQUMsS0FBOEIsRUFBRSxNQUFjLEVBQTJCLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQztRQUM1RyxTQUFTO1FBQ1QsYUFBYTtLQUNkLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aW9uLCBjcmVhdGVGZWF0dXJlU2VsZWN0b3IgfSBmcm9tICdAbmdyeC9zdG9yZSc7XHJcbmltcG9ydCB7IExpc3RTdGF0ZSB9IGZyb20gJy4uL21vZGVscy9saXN0Lm1vZGVsJztcclxuaW1wb3J0IHsgY3JlYXRlTGlzdEFjdGlvbnMgfSBmcm9tICcuL2xpc3QtYWN0aW9ucyc7XHJcbmltcG9ydCB7IGNyZWF0ZUxpc3RFbnRpdHlBZGFwdGVyLCBjcmVhdGVMaXN0UmVkdWNlciB9IGZyb20gJy4vbGlzdC1yZWR1Y2VyJztcclxuaW1wb3J0IHsgY3JlYXRlTGlzdFNlbGVjdG9ycyB9IGZyb20gJy4vbGlzdC1zZWxlY3RvcnMnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUxpc3RTdGF0ZTxcclxuICBUIGV4dGVuZHMgeyBba2V5OiBzdHJpbmddOiBhbnkgfSxcclxuICBFLFxyXG4gIFMgZXh0ZW5kcyB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0gVCxcclxuICBQYXJhbXMgPSBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+XHJcbj4oZmVhdHVyZU5hbWU6IHN0cmluZywgaWRLZXk/OiBzdHJpbmcpIHtcclxuICBjb25zdCBhY3Rpb25zID0gY3JlYXRlTGlzdEFjdGlvbnM8VCwgRSwgUywgUGFyYW1zPihmZWF0dXJlTmFtZSk7XHJcbiAgY29uc3QgZW50aXR5QWRhcHRlciA9IGNyZWF0ZUxpc3RFbnRpdHlBZGFwdGVyPFM+KGlkS2V5KTtcclxuICBjb25zdCByZWR1Y2VyID0gY3JlYXRlTGlzdFJlZHVjZXI8VCwgRSwgUywgUGFyYW1zPihlbnRpdHlBZGFwdGVyLCBhY3Rpb25zKTtcclxuICBjb25zdCBnZXRTdGF0ZSA9IGNyZWF0ZUZlYXR1cmVTZWxlY3RvcjxMaXN0U3RhdGU8UywgRSwgUGFyYW1zPj4oZmVhdHVyZU5hbWUpO1xyXG4gIGNvbnN0IHNlbGVjdG9ycyA9IGNyZWF0ZUxpc3RTZWxlY3RvcnM8UywgRSwgUGFyYW1zPihlbnRpdHlBZGFwdGVyLCBnZXRTdGF0ZSk7XHJcblxyXG4gIHJldHVybiB7XHJcbiAgICBhY3Rpb25zLFxyXG4gICAgcmVkdWNlcjogKHN0YXRlOiBMaXN0U3RhdGU8UywgRSwgUGFyYW1zPiwgYWN0aW9uOiBBY3Rpb24pOiBMaXN0U3RhdGU8UywgRSwgUGFyYW1zPiA9PiByZWR1Y2VyKHN0YXRlLCBhY3Rpb24pLFxyXG4gICAgc2VsZWN0b3JzLFxyXG4gICAgZW50aXR5QWRhcHRlclxyXG4gIH07XHJcbn1cclxuIl19