@ng-atomic/common 4.1.0 → 4.2.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 (62) hide show
  1. package/esm2020/pipes/pagination/pagination.pipe.mjs +1 -2
  2. package/esm2020/stores/entities/entities.store.mjs +8 -33
  3. package/esm2020/stores/pagination/index.mjs +2 -0
  4. package/esm2020/stores/pagination/ng-atomic-common-stores-pagination.mjs +5 -0
  5. package/esm2020/stores/pagination/pagination.store.mjs +32 -0
  6. package/esm2020/stores/query/index.mjs +2 -0
  7. package/esm2020/stores/query/ng-atomic-common-stores-query.mjs +5 -0
  8. package/esm2020/stores/query/query.store.mjs +30 -0
  9. package/esm2020/stores/selection/index.mjs +2 -0
  10. package/esm2020/stores/selection/ng-atomic-common-stores-selection.mjs +5 -0
  11. package/esm2020/stores/selection/selection.store.mjs +29 -0
  12. package/esm2020/utils/page/index.mjs +2 -0
  13. package/esm2020/utils/page/ng-atomic-common-utils-page.mjs +5 -0
  14. package/esm2020/utils/page/page.mjs +20 -0
  15. package/fesm2015/ng-atomic-common-pipes-pagination.mjs +0 -1
  16. package/fesm2015/ng-atomic-common-pipes-pagination.mjs.map +1 -1
  17. package/fesm2015/ng-atomic-common-stores-entities.mjs +8 -33
  18. package/fesm2015/ng-atomic-common-stores-entities.mjs.map +1 -1
  19. package/fesm2015/ng-atomic-common-stores-pagination.mjs +41 -0
  20. package/fesm2015/ng-atomic-common-stores-pagination.mjs.map +1 -0
  21. package/fesm2015/ng-atomic-common-stores-query.mjs +40 -0
  22. package/fesm2015/ng-atomic-common-stores-query.mjs.map +1 -0
  23. package/fesm2015/ng-atomic-common-stores-selection.mjs +38 -0
  24. package/fesm2015/ng-atomic-common-stores-selection.mjs.map +1 -0
  25. package/fesm2015/ng-atomic-common-utils-page.mjs +21 -0
  26. package/fesm2015/ng-atomic-common-utils-page.mjs.map +1 -0
  27. package/fesm2020/ng-atomic-common-pipes-pagination.mjs +0 -1
  28. package/fesm2020/ng-atomic-common-pipes-pagination.mjs.map +1 -1
  29. package/fesm2020/ng-atomic-common-stores-entities.mjs +8 -33
  30. package/fesm2020/ng-atomic-common-stores-entities.mjs.map +1 -1
  31. package/fesm2020/ng-atomic-common-stores-pagination.mjs +39 -0
  32. package/fesm2020/ng-atomic-common-stores-pagination.mjs.map +1 -0
  33. package/fesm2020/ng-atomic-common-stores-query.mjs +36 -0
  34. package/fesm2020/ng-atomic-common-stores-query.mjs.map +1 -0
  35. package/fesm2020/ng-atomic-common-stores-selection.mjs +36 -0
  36. package/fesm2020/ng-atomic-common-stores-selection.mjs.map +1 -0
  37. package/fesm2020/ng-atomic-common-utils-page.mjs +26 -0
  38. package/fesm2020/ng-atomic-common-utils-page.mjs.map +1 -0
  39. package/package.json +33 -1
  40. package/pipes/pagination/pagination.pipe.d.ts.map +1 -1
  41. package/stores/entities/entities.store.d.ts +3 -23
  42. package/stores/entities/entities.store.d.ts.map +1 -1
  43. package/stores/pagination/index.d.ts +2 -0
  44. package/stores/pagination/index.d.ts.map +1 -0
  45. package/stores/pagination/ng-atomic-common-stores-pagination.d.ts.map +1 -0
  46. package/stores/pagination/pagination.store.d.ts +25 -0
  47. package/stores/pagination/pagination.store.d.ts.map +1 -0
  48. package/stores/query/index.d.ts +2 -0
  49. package/stores/query/index.d.ts.map +1 -0
  50. package/stores/query/ng-atomic-common-stores-query.d.ts.map +1 -0
  51. package/stores/query/query.store.d.ts +18 -0
  52. package/stores/query/query.store.d.ts.map +1 -0
  53. package/stores/selection/index.d.ts +2 -0
  54. package/stores/selection/index.d.ts.map +1 -0
  55. package/stores/selection/ng-atomic-common-stores-selection.d.ts.map +1 -0
  56. package/stores/selection/selection.store.d.ts +24 -0
  57. package/stores/selection/selection.store.d.ts.map +1 -0
  58. package/utils/page/index.d.ts +2 -0
  59. package/utils/page/index.d.ts.map +1 -0
  60. package/utils/page/ng-atomic-common-utils-page.d.ts.map +1 -0
  61. package/utils/page/page.d.ts +12 -0
  62. package/utils/page/page.d.ts.map +1 -0
@@ -9,7 +9,6 @@ export class PaginationPipe {
9
9
  this.transformer ?? (this.transformer = smartSortByTransformer);
10
10
  }
11
11
  transform(items, { sortKey, sortOrder, start, end }) {
12
- // transform<T>(items: T[], key: string, order: 'asc' | 'desc', start: number, end: number): T[] {
13
12
  return this.slicePipe.transform(this.transformer(items, sortKey, sortOrder), start, end);
14
13
  }
15
14
  }
@@ -27,4 +26,4 @@ PaginationPipe.ɵpipe = /*@__PURE__*/ i0.ɵɵdefinePipe({ name: "pagination", ty
27
26
  type: Inject,
28
27
  args: [SMART_SORT_BY_TRANSFORMER]
29
28
  }] }]; }, null); })();
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL3BpcGVzL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxzQkFBc0IsRUFBMEIseUJBQXlCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7QUFNbEksTUFBTSxPQUFPLGNBQWM7SUFHekIsWUFHVSxXQUFtQztRQUFuQyxnQkFBVyxHQUFYLFdBQVcsQ0FBd0I7UUFMckMsY0FBUyxHQUFHLElBQUksU0FBUyxFQUFFLENBQUM7UUFPbEMsSUFBSSxDQUFDLFdBQVcsS0FBaEIsSUFBSSxDQUFDLFdBQVcsR0FBSyxzQkFBc0IsRUFBQztJQUM5QyxDQUFDO0lBRUQsU0FBUyxDQUFJLEtBQVUsRUFBRSxFQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBMkU7UUFDbkksc0dBQXNHO1FBQ3BHLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMzRixDQUFDOzs0RUFkVSxjQUFjLHVCQUtmLHlCQUF5QjtpRkFMeEIsY0FBYzt1RkFBZCxjQUFjO2NBSjFCLElBQUk7ZUFBQztnQkFDSixJQUFJLEVBQUUsWUFBWTtnQkFDbEIsSUFBSSxFQUFFLElBQUk7YUFDWDs7c0JBS0ksUUFBUTs7c0JBQ1IsTUFBTTt1QkFBQyx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTbGljZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0LCBPcHRpb25hbCwgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgc21hcnRTb3J0QnlUcmFuc2Zvcm1lciwgU21hcnRTb3J0QnlUcmFuc2Zvcm1lciwgU01BUlRfU09SVF9CWV9UUkFOU0ZPUk1FUiB9IGZyb20gJ0BuZy1hdG9taWMvY29tbW9uL3BpcGVzL3NtYXJ0LXNvcnQtYnknO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdwYWdpbmF0aW9uJyxcbiAgcHVyZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvblBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgcHJpdmF0ZSBzbGljZVBpcGUgPSBuZXcgU2xpY2VQaXBlKCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KFNNQVJUX1NPUlRfQllfVFJBTlNGT1JNRVIpXG4gICAgcHJpdmF0ZSB0cmFuc2Zvcm1lcjogU21hcnRTb3J0QnlUcmFuc2Zvcm1lcixcbiAgKSB7XG4gICAgdGhpcy50cmFuc2Zvcm1lciA/Pz0gc21hcnRTb3J0QnlUcmFuc2Zvcm1lcjtcbiAgfVxuXG4gIHRyYW5zZm9ybTxUPihpdGVtczogVFtdLCB7c29ydEtleSwgc29ydE9yZGVyLCBzdGFydCwgZW5kfToge3NvcnRLZXk6IHN0cmluZywgc29ydE9yZGVyOiAnYXNjJyB8ICdkZXNjJywgc3RhcnQ6IG51bWJlciwgZW5kOiBudW1iZXJ9KSB7XG4gIC8vIHRyYW5zZm9ybTxUPihpdGVtczogVFtdLCBrZXk6IHN0cmluZywgb3JkZXI6ICdhc2MnIHwgJ2Rlc2MnLCBzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlcik6IFRbXSB7ICAgIFxuICAgIHJldHVybiB0aGlzLnNsaWNlUGlwZS50cmFuc2Zvcm0odGhpcy50cmFuc2Zvcm1lcihpdGVtcywgc29ydEtleSwgc29ydE9yZGVyKSwgc3RhcnQsIGVuZCk7XG4gIH1cbn1cbiJdfQ==
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL3BpcGVzL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxzQkFBc0IsRUFBMEIseUJBQXlCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7QUFNbEksTUFBTSxPQUFPLGNBQWM7SUFHekIsWUFHVSxXQUFtQztRQUFuQyxnQkFBVyxHQUFYLFdBQVcsQ0FBd0I7UUFMckMsY0FBUyxHQUFHLElBQUksU0FBUyxFQUFFLENBQUM7UUFPbEMsSUFBSSxDQUFDLFdBQVcsS0FBaEIsSUFBSSxDQUFDLFdBQVcsR0FBSyxzQkFBc0IsRUFBQztJQUM5QyxDQUFDO0lBRUQsU0FBUyxDQUFJLEtBQVUsRUFBRSxFQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBMkU7UUFDakksT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzNGLENBQUM7OzRFQWJVLGNBQWMsdUJBS2YseUJBQXlCO2lGQUx4QixjQUFjO3VGQUFkLGNBQWM7Y0FKMUIsSUFBSTtlQUFDO2dCQUNKLElBQUksRUFBRSxZQUFZO2dCQUNsQixJQUFJLEVBQUUsSUFBSTthQUNYOztzQkFLSSxRQUFROztzQkFDUixNQUFNO3VCQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNsaWNlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3QsIE9wdGlvbmFsLCBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBzbWFydFNvcnRCeVRyYW5zZm9ybWVyLCBTbWFydFNvcnRCeVRyYW5zZm9ybWVyLCBTTUFSVF9TT1JUX0JZX1RSQU5TRk9STUVSIH0gZnJvbSAnQG5nLWF0b21pYy9jb21tb24vcGlwZXMvc21hcnQtc29ydC1ieSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ3BhZ2luYXRpb24nLFxuICBwdXJlOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBQYWdpbmF0aW9uUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBwcml2YXRlIHNsaWNlUGlwZSA9IG5ldyBTbGljZVBpcGUoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoU01BUlRfU09SVF9CWV9UUkFOU0ZPUk1FUilcbiAgICBwcml2YXRlIHRyYW5zZm9ybWVyOiBTbWFydFNvcnRCeVRyYW5zZm9ybWVyLFxuICApIHtcbiAgICB0aGlzLnRyYW5zZm9ybWVyID8/PSBzbWFydFNvcnRCeVRyYW5zZm9ybWVyO1xuICB9XG5cbiAgdHJhbnNmb3JtPFQ+KGl0ZW1zOiBUW10sIHtzb3J0S2V5LCBzb3J0T3JkZXIsIHN0YXJ0LCBlbmR9OiB7c29ydEtleTogc3RyaW5nLCBzb3J0T3JkZXI6ICdhc2MnIHwgJ2Rlc2MnLCBzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlcn0pIHtcbiAgICByZXR1cm4gdGhpcy5zbGljZVBpcGUudHJhbnNmb3JtKHRoaXMudHJhbnNmb3JtZXIoaXRlbXMsIHNvcnRLZXksIHNvcnRPcmRlciksIHN0YXJ0LCBlbmQpO1xuICB9XG59XG4iXX0=
@@ -1,44 +1,19 @@
1
1
  import { ComponentStore } from '@ngrx/component-store';
2
- import { QueryResolverService } from '@ng-atomic/common/services/query-resolver';
3
2
  import { compareById } from '@ng-atomic/common/utils';
4
- import { distinctUntilChanged, tap, map, filter, switchMap } from 'rxjs/operators';
3
+ import { distinctUntilChanged, tap, filter, switchMap } from 'rxjs/operators';
4
+ export const distinctUntilChangedArray = () => {
5
+ return distinctUntilChanged((pre, cur) => JSON.stringify(pre) === JSON.stringify(cur));
6
+ };
5
7
  export class EntitiesStore extends ComponentStore {
6
- constructor(initialState, queryResolver = new QueryResolverService()) {
8
+ constructor(initialState) {
7
9
  super(initialState);
8
- this.queryResolver = queryResolver;
9
10
  this.userId$ = this.select(state => state.userId).pipe(filter(userId => !!userId));
10
- this.entities$ = this.select(({ query, entities }) => this.queryResolver.resolve(entities, query, this.LANG_MAP))
11
- .pipe(map((entities) => entities.sort(compareById)))
12
- .pipe(distinctUntilChanged((pre, cur) => JSON.stringify(pre) === JSON.stringify(cur)));
11
+ this.entities$ = this.select(({ entities }) => entities ? entities.sort(compareById) : []);
13
12
  this.setUserId = this.updater((state, userId) => ({ ...state, userId }));
14
13
  this.setEntities = this.updater((state, entities) => ({ ...state, entities }));
15
- this.setPage = this.updater((state, page) => ({ ...state, page }));
16
- this.setIdSet = this.updater((state, idSet) => ({ ...state, idSet }));
17
- this.setSortKey = this.updater((state, sortKey) => ({ ...state, sortKey }));
18
- this.setSortOrder = this.updater((state, sortOrder) => ({ ...state, sortOrder }));
19
- this.addId = this.updater((state, id) => ({ ...state, idSet: new Set([...state.idSet, id]) }));
20
- this.removeId = this.updater((state, id) => {
21
- return { ...state, idSet: new Set([...state.idSet].filter(_id => _id !== id)) };
22
- });
23
- this.setQuery = this.updater((state, query) => ({ ...state, query }));
24
- this.getPage = this.effect((entities$) => entities$.pipe(tap(({ length }) => this.setPage(this.page.patch({ length })))));
25
14
  this.getEntities = this.effect((userId$) => userId$.pipe(filter(userId => !!userId), switchMap((userId) => this._getEntities({ userId })), tap((entities) => this.setEntities(entities))));
26
- this.getPage(this.entities$);
27
15
  this.getEntities(this.userId$);
28
16
  }
29
- get page() { return this.get(state => state.page); }
30
- get sortKey() { return this.get(state => state.sortKey); }
31
- get sortOrder() { return this.get(state => state.sortOrder); }
32
- get idSet() { return this.get(state => state.idSet); }
33
- changeSortFromEvent(name) {
34
- if (name === this.sortKey) {
35
- const order = this.sortOrder === 'asc' ? 'desc' : 'asc';
36
- this.setSortOrder(order);
37
- }
38
- else {
39
- this.setSortKey(name);
40
- this.setSortOrder('asc');
41
- }
42
- }
17
+ get entities() { return this.get().entities; }
43
18
  }
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXRpZXMuc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvc3RvcmVzL2VudGl0aWVzL2VudGl0aWVzLnN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNqRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFdEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBY25GLE1BQU0sT0FBZ0IsYUFBa0UsU0FBUSxjQUFpQjtJQWEvRyxZQUNFLFlBQWUsRUFDUixnQkFBZ0IsSUFBSSxvQkFBb0IsRUFBRTtRQUVqRCxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFGYixrQkFBYSxHQUFiLGFBQWEsQ0FBNkI7UUFQbkQsWUFBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzlFLGNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxLQUFLLEVBQUUsUUFBUSxFQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ3ZHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFD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QUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDMUI7SUFDSCxDQUFDO0NBR0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRTdG9yZSB9IGZyb20gJ0BuZ3J4L2NvbXBvbmVudC1zdG9yZSc7XG5pbXBvcnQgeyBRdWVyeVJlc29sdmVyU2VydmljZSB9IGZyb20gJ0BuZy1hdG9taWMvY29tbW9uL3NlcnZpY2VzL3F1ZXJ5LXJlc29sdmVyJztcbmltcG9ydCB7IGNvbXBhcmVCeUlkIH0gZnJvbSAnQG5nLWF0b21pYy9jb21tb24vdXRpbHMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIHRhcCwgbWFwLCBmaWx0ZXIsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZXhwb3J0IHR5cGUgUGFnZSA9IGFueVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0aWVzU3RhdGU8RT4ge1xuICB1c2VySWQ6IHN0cmluZzsgXG4gIGlkU2V0OiBTZXQ8c3RyaW5nPjtcbiAgcXVlcnk6IHN0cmluZztcbiAgZW50aXRpZXM6IEVbXVxuICBwYWdlOiBQYWdlO1xuICBzb3J0S2V5Pzogc3RyaW5nO1xuICBzb3J0T3JkZXI/OiAnYXNjJyB8ICdkZXNjJztcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEVudGl0aWVzU3RvcmU8UyBleHRlbmRzIEVudGl0aWVzU3RhdGU8RT4sIEUgZXh0ZW5kcyB7aWQ6IHN0cmluZ30+IGV4dGVuZHMgQ29tcG9uZW50U3RvcmU8Uz4ge1xuICBhYnN0cmFjdCBMQU5HX01BUDogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuICBnZXQgcGFnZSgpOiBQYWdlIHsgcmV0dXJuIHRoaXMuZ2V0KHN0YXRlID0+IHN0YXRlLnBhZ2UpOyB9XG4gIGdldCBzb3J0S2V5KCk6IHN0cmluZyB7IHJldHVybiB0aGlzLmdldChzdGF0ZSA9PiBzdGF0ZS5zb3J0S2V5KTsgfVxuICBnZXQgc29ydE9yZGVyKCk6IHN0cmluZyB7IHJldHVybiB0aGlzLmdldChzdGF0ZSA9PiBzdGF0ZS5zb3J0T3JkZXIpOyB9XG4gIGdldCBpZFNldCgpOiBTZXQ8c3RyaW5nPiB7IHJldHVybiB0aGlzLmdldChzdGF0ZSA9PiBzdGF0ZS5pZFNldCk7IH1cblxuICB1c2VySWQkID0gdGhpcy5zZWxlY3Qoc3RhdGUgPT4gc3RhdGUudXNlcklkKS5waXBlKGZpbHRlcih1c2VySWQgPT4gISF1c2VySWQpKTtcbiAgZW50aXRpZXMkID0gdGhpcy5zZWxlY3QoKHtxdWVyeSwgZW50aXRpZXN9KSA9PiB0aGlzLnF1ZXJ5UmVzb2x2ZXIucmVzb2x2ZShlbnRpdGllcywgcXVlcnksIHRoaXMuTEFOR19NQVApKVxuICAgIC5waXBlKG1hcCgoZW50aXRpZXM6IEVbXSkgPT4gZW50aXRpZXMuc29ydChjb21wYXJlQnlJZCkpKVxuICAgIC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKChwcmUsIGN1cikgPT4gSlNPTi5zdHJpbmdpZnkocHJlKSA9PT0gSlNPTi5zdHJpbmdpZnkoY3VyKSkpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGluaXRpYWxTdGF0ZTogUyxcbiAgICBwdWJsaWMgcXVlcnlSZXNvbHZlciA9IG5ldyBRdWVyeVJlc29sdmVyU2VydmljZSgpLFxuICApIHtcbiAgICBzdXBlcihpbml0aWFsU3RhdGUpO1xuICAgIHRoaXMuZ2V0UGFnZSh0aGlzLmVudGl0aWVzJCk7XG4gICAgdGhpcy5nZXRFbnRpdGllcyh0aGlzLnVzZXJJZCQpO1xuICB9XG5cbiAgc2V0VXNlcklkID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgdXNlcklkOiBzdHJpbmcpID0+ICh7Li4uc3RhdGUsIHVzZXJJZH0pKTtcbiAgc2V0RW50aXRpZXMgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBlbnRpdGllczogRVtdKSA9PiAoey4uLnN0YXRlLCBlbnRpdGllc30pKTtcbiAgc2V0UGFnZSA9IHRoaXMudXBkYXRlcigoc3RhdGUsIHBhZ2U6IFBhZ2UpID0+ICh7Li4uc3RhdGUsIHBhZ2V9KSk7XG4gIHNldElkU2V0ID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgaWRTZXQ6IFNldDxzdHJpbmc+KSA9PiAoey4uLnN0YXRlLCBpZFNldH0pKTtcbiAgc2V0U29ydEtleSA9IHRoaXMudXBkYXRlcigoc3RhdGUsIHNvcnRLZXk6IHN0cmluZykgPT4gKHsuLi5zdGF0ZSwgc29ydEtleX0pKTtcbiAgc2V0U29ydE9yZGVyID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgc29ydE9yZGVyOiAnYXNjJyB8ICdkZXNjJykgPT4gKHsuLi5zdGF0ZSwgc29ydE9yZGVyfSkpO1xuICBhZGRJZCA9IHRoaXMudXBkYXRlcigoc3RhdGUsIGlkOiBzdHJpbmcpID0+ICh7Li4uc3RhdGUsIGlkU2V0OiBuZXcgU2V0KFsuLi5zdGF0ZS5pZFNldCwgaWRdKX0pKTtcbiAgcmVtb3ZlSWQgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBpZDogc3RyaW5nKSA9PiB7XG4gICAgcmV0dXJuIHsuLi5zdGF0ZSwgaWRTZXQ6IG5ldyBTZXQoWy4uLnN0YXRlLmlkU2V0XS5maWx0ZXIoX2lkID0+IF9pZCAhPT0gaWQpKX1cbiAgfSk7XG4gIHNldFF1ZXJ5ID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgcXVlcnk6IHN0cmluZykgPT4gKHsuLi5zdGF0ZSwgcXVlcnl9KSk7XG5cbiAgZ2V0UGFnZSA9IHRoaXMuZWZmZWN0KChlbnRpdGllcyQ6IE9ic2VydmFibGU8RVtdPikgPT4gZW50aXRpZXMkLnBpcGUoXG4gICAgdGFwKCh7bGVuZ3RofTogRVtdKSA9PiB0aGlzLnNldFBhZ2UodGhpcy5wYWdlLnBhdGNoKHtsZW5ndGh9KSkpLFxuICApKTtcblxuICBnZXRFbnRpdGllcyA9IHRoaXMuZWZmZWN0KCh1c2VySWQkOiBPYnNlcnZhYmxlPHN0cmluZz4pID0+IHVzZXJJZCQucGlwZShcbiAgICBmaWx0ZXIodXNlcklkID0+ICEhdXNlcklkKSxcbiAgICBzd2l0Y2hNYXAoKHVzZXJJZCkgPT4gdGhpcy5fZ2V0RW50aXRpZXMoe3VzZXJJZH0pKSxcbiAgICB0YXAoKGVudGl0aWVzOiBFW10pID0+IHRoaXMuc2V0RW50aXRpZXMoZW50aXRpZXMpKSxcbiAgKSk7IFxuXG4gIGNoYW5nZVNvcnRGcm9tRXZlbnQobmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKG5hbWUgPT09IHRoaXMuc29ydEtleSkge1xuICAgICAgY29uc3Qgb3JkZXIgPSB0aGlzLnNvcnRPcmRlciA9PT0gJ2FzYycgPyAnZGVzYycgOiAnYXNjJztcbiAgICAgIHRoaXMuc2V0U29ydE9yZGVyKG9yZGVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXRTb3J0S2V5KG5hbWUpO1xuICAgICAgdGhpcy5zZXRTb3J0T3JkZXIoJ2FzYycpO1xuICAgIH1cbiAgfVxuXG4gIGFic3RyYWN0IF9nZXRFbnRpdGllcyhkYXRhPzogb2JqZWN0KTogT2JzZXJ2YWJsZTxFW10+O1xufSJdfQ==
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXRpZXMuc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvc3RvcmVzL2VudGl0aWVzL2VudGl0aWVzLnN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFdEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFPOUUsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsR0FBTSxFQUFFO0lBQy9DLE9BQU8sb0JBQW9CLENBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUM1RixDQUFDLENBQUM7QUFFRixNQUFNLE9BQWdCLGFBQWtFLFNBQVEsY0FBaUI7SUFNL0csWUFBWSxZQUFlO1FBQ3pCLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUp0QixZQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDOUUsY0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLFFBQVEsRUFBQyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBT3BGLGNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLE1BQWMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFDLEdBQUcsS0FBSyxFQUFFLE1BQU0sRUFBQyxDQUFDLENBQUMsQ0FBQztRQUMxRSxnQkFBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsUUFBYSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUMsR0FBRyxLQUFLLEVBQUUsUUFBUSxFQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTdFLGdCQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQTJCLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ3JFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFDMUIsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUMsTUFBTSxFQUFDLENBQUMsQ0FBQyxFQUNsRCxHQUFHLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FDbkQsQ0FBQyxDQUFDO1FBVkQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQVJELElBQUksUUFBUSxLQUFLLE9BQU8sSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7Q0FvQi9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50U3RvcmUgfSBmcm9tICdAbmdyeC9jb21wb25lbnQtc3RvcmUnO1xuaW1wb3J0IHsgY29tcGFyZUJ5SWQgfSBmcm9tICdAbmctYXRvbWljL2NvbW1vbi91dGlscyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgdGFwLCBmaWx0ZXIsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdGllc1N0YXRlPEU+IHtcbiAgdXNlcklkOiBzdHJpbmc7IFxuICBlbnRpdGllczogRVtdXG59XG5cbmV4cG9ydCBjb25zdCBkaXN0aW5jdFVudGlsQ2hhbmdlZEFycmF5ID0gPFQ+KCkgPT4ge1xuICByZXR1cm4gZGlzdGluY3RVbnRpbENoYW5nZWQ8VD4oKHByZSwgY3VyKSA9PiBKU09OLnN0cmluZ2lmeShwcmUpID09PSBKU09OLnN0cmluZ2lmeShjdXIpKTtcbn07XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBFbnRpdGllc1N0b3JlPFMgZXh0ZW5kcyBFbnRpdGllc1N0YXRlPEU+LCBFIGV4dGVuZHMge2lkOiBzdHJpbmd9PiBleHRlbmRzIENvbXBvbmVudFN0b3JlPFM+IHtcbiAgZ2V0IGVudGl0aWVzKCkgeyByZXR1cm4gdGhpcy5nZXQoKS5lbnRpdGllczsgfVxuXG4gIHVzZXJJZCQgPSB0aGlzLnNlbGVjdChzdGF0ZSA9PiBzdGF0ZS51c2VySWQpLnBpcGUoZmlsdGVyKHVzZXJJZCA9PiAhIXVzZXJJZCkpO1xuICBlbnRpdGllcyQgPSB0aGlzLnNlbGVjdCgoe2VudGl0aWVzfSkgPT4gZW50aXRpZXMgPyBlbnRpdGllcy5zb3J0KGNvbXBhcmVCeUlkKSA6IFtdKTtcbiAgXG4gIGNvbnN0cnVjdG9yKGluaXRpYWxTdGF0ZTogUykge1xuICAgIHN1cGVyKGluaXRpYWxTdGF0ZSk7XG4gICAgdGhpcy5nZXRFbnRpdGllcyh0aGlzLnVzZXJJZCQpO1xuICB9XG5cbiAgc2V0VXNlcklkID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgdXNlcklkOiBzdHJpbmcpID0+ICh7Li4uc3RhdGUsIHVzZXJJZH0pKTtcbiAgc2V0RW50aXRpZXMgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBlbnRpdGllczogRVtdKSA9PiAoey4uLnN0YXRlLCBlbnRpdGllc30pKTtcblxuICBnZXRFbnRpdGllcyA9IHRoaXMuZWZmZWN0KCh1c2VySWQkOiBPYnNlcnZhYmxlPHN0cmluZz4pID0+IHVzZXJJZCQucGlwZShcbiAgICBmaWx0ZXIodXNlcklkID0+ICEhdXNlcklkKSxcbiAgICBzd2l0Y2hNYXAoKHVzZXJJZCkgPT4gdGhpcy5fZ2V0RW50aXRpZXMoe3VzZXJJZH0pKSxcbiAgICB0YXAoKGVudGl0aWVzOiBFW10pID0+IHRoaXMuc2V0RW50aXRpZXMoZW50aXRpZXMpKSxcbiAgKSk7IFxuXG4gIGFic3RyYWN0IF9nZXRFbnRpdGllcyhkYXRhPzogb2JqZWN0KTogT2JzZXJ2YWJsZTxFW10+O1xufSJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './pagination.store';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvc3RvcmVzL3BhZ2luYXRpb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcGFnaW5hdGlvbi5zdG9yZSc7XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctYXRvbWljLWNvbW1vbi1zdG9yZXMtcGFnaW5hdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9zdG9yZXMvcGFnaW5hdGlvbi9uZy1hdG9taWMtY29tbW9uLXN0b3Jlcy1wYWdpbmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -0,0 +1,32 @@
1
+ import { ComponentStore } from "@ngrx/component-store";
2
+ import { Page } from '@ng-atomic/common/utils/page';
3
+ import { tap } from "rxjs";
4
+ import { Injectable } from "@angular/core";
5
+ import * as i0 from "@angular/core";
6
+ export class PaginationStore extends ComponentStore {
7
+ constructor() {
8
+ super({ page: Page.from() });
9
+ this.page$ = this.select(state => state.page);
10
+ this.setPage = this.updater((state, page) => ({ ...state, page }));
11
+ this.setSortKey = this.updater((state, sortKey) => ({ ...state, page: this.page.patch({ sortKey }) }));
12
+ this.setSortOrder = this.updater((state, sortOrder) => ({ ...state, page: this.page.patch({ sortOrder }) }));
13
+ this.patch = this.updater((state, page) => ({ ...state, page: state.page.patch(page) }));
14
+ this.getPageLength = this.effect((entities$) => entities$.pipe(tap(({ length }) => this.setPage(this.page.patch({ length })))));
15
+ }
16
+ get page() { return this.get(state => state.page); }
17
+ get sortKey() { return this.page.sortKey; }
18
+ get sortOrder() { return this.page.sortOrder; }
19
+ get start() { return this.page.start; }
20
+ get end() { return this.page.end; }
21
+ changeSortFromEvent(sortKey, page = this.page) {
22
+ const reverse = (order) => order === 'asc' ? 'desc' : 'asc';
23
+ const sortOrder = sortKey === page.sortKey ? reverse(page.sortOrder) : 'asc';
24
+ this.patch({ sortKey, sortOrder });
25
+ }
26
+ }
27
+ PaginationStore.ɵfac = function PaginationStore_Factory(t) { return new (t || PaginationStore)(); };
28
+ PaginationStore.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: PaginationStore, factory: PaginationStore.ɵfac });
29
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PaginationStore, [{
30
+ type: Injectable
31
+ }], function () { return []; }, null); })();
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5zdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9zdG9yZXMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLnN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEQsT0FBTyxFQUFjLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU8zQyxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxjQUFtQjtJQUN0RDtRQUFlLEtBQUssQ0FBQyxFQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUMsQ0FBQyxDQUFBO1FBUXpDLFVBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXpDLFlBQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLElBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFDLEdBQUcsS0FBSyxFQUFFLElBQUksRUFBQyxDQUFDLENBQUMsQ0FBQztRQUNsRSxlQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxPQUFlLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBQyxHQUFHLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBQyxPQUFPLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RHLGlCQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxTQUF5QixFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUMsR0FBRyxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztRQUNwSCxVQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFtQixFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUMsR0FBRyxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO1FBRWpHLGtCQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQTRCLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQzFFLEdBQUcsQ0FBQyxDQUFDLEVBQUMsTUFBTSxFQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBQyxNQUFNLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDbEUsQ0FBQyxDQUFDO0lBakJzQyxDQUFDO0lBRTFDLElBQUksSUFBSSxLQUFLLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEQsSUFBSSxPQUFPLEtBQUssT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDM0MsSUFBSSxTQUFTLEtBQUssT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDL0MsSUFBSSxLQUFLLEtBQUssT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDdkMsSUFBSSxHQUFHLEtBQUssT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFhbkMsbUJBQW1CLENBQUMsT0FBZSxFQUFFLE9BQWEsSUFBSSxDQUFDLElBQUk7UUFDekQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxLQUFxQixFQUFFLEVBQUUsQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUM1RSxNQUFNLFNBQVMsR0FBRyxPQUFPLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQzdFLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBQyxPQUFPLEVBQUUsU0FBUyxFQUFDLENBQUMsQ0FBQztJQUNuQyxDQUFDOzs4RUF4QlUsZUFBZTtxRUFBZixlQUFlLFdBQWYsZUFBZTt1RkFBZixlQUFlO2NBRDNCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRTdG9yZSB9IGZyb20gXCJAbmdyeC9jb21wb25lbnQtc3RvcmVcIjtcbmltcG9ydCB7IFBhZ2UgfSBmcm9tICdAbmctYXRvbWljL2NvbW1vbi91dGlscy9wYWdlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIHRhcCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdGllc1N0YXRlPEU+IHtcbiAgcGFnZTogUGFnZTtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFBhZ2luYXRpb25TdG9yZSBleHRlbmRzIENvbXBvbmVudFN0b3JlPGFueT4ge1xuICBjb25zdHJ1Y3RvcigpIHtzdXBlcih7cGFnZTogUGFnZS5mcm9tKCl9KX1cblxuICBnZXQgcGFnZSgpIHsgcmV0dXJuIHRoaXMuZ2V0KHN0YXRlID0+IHN0YXRlLnBhZ2UpOyB9XG4gIGdldCBzb3J0S2V5KCkgeyByZXR1cm4gdGhpcy5wYWdlLnNvcnRLZXk7IH1cbiAgZ2V0IHNvcnRPcmRlcigpIHsgcmV0dXJuIHRoaXMucGFnZS5zb3J0T3JkZXI7IH1cbiAgZ2V0IHN0YXJ0KCkgeyByZXR1cm4gdGhpcy5wYWdlLnN0YXJ0OyB9XG4gIGdldCBlbmQoKSB7IHJldHVybiB0aGlzLnBhZ2UuZW5kOyB9XG5cbiAgcGFnZSQgPSB0aGlzLnNlbGVjdChzdGF0ZSA9PiBzdGF0ZS5wYWdlKTtcblxuICBzZXRQYWdlID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgcGFnZTogUGFnZSkgPT4gKHsuLi5zdGF0ZSwgcGFnZX0pKTtcbiAgc2V0U29ydEtleSA9IHRoaXMudXBkYXRlcigoc3RhdGUsIHNvcnRLZXk6IHN0cmluZykgPT4gKHsuLi5zdGF0ZSwgcGFnZTogdGhpcy5wYWdlLnBhdGNoKHtzb3J0S2V5fSl9KSk7XG4gIHNldFNvcnRPcmRlciA9IHRoaXMudXBkYXRlcigoc3RhdGUsIHNvcnRPcmRlcjogJ2FzYycgfCAnZGVzYycpID0+ICh7Li4uc3RhdGUsIHBhZ2U6IHRoaXMucGFnZS5wYXRjaCh7c29ydE9yZGVyfSl9KSk7XG4gIHBhdGNoID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgcGFnZTogUGFydGlhbDxQYWdlPikgPT4gKHsuLi5zdGF0ZSwgcGFnZTogc3RhdGUucGFnZS5wYXRjaChwYWdlKX0pKTtcbiBcbiAgZ2V0UGFnZUxlbmd0aCA9IHRoaXMuZWZmZWN0KChlbnRpdGllcyQ6IE9ic2VydmFibGU8YW55W10+KSA9PiBlbnRpdGllcyQucGlwZShcbiAgICB0YXAoKHtsZW5ndGh9OiBhbnlbXSkgPT4gdGhpcy5zZXRQYWdlKHRoaXMucGFnZS5wYXRjaCh7bGVuZ3RofSkpKSxcbiAgKSk7XG5cbiAgY2hhbmdlU29ydEZyb21FdmVudChzb3J0S2V5OiBzdHJpbmcsIHBhZ2U6IFBhZ2UgPSB0aGlzLnBhZ2UpIHtcbiAgICBjb25zdCByZXZlcnNlID0gKG9yZGVyOiAnYXNjJyB8ICdkZXNjJykgPT4gb3JkZXIgPT09ICdhc2MnID8gJ2Rlc2MnIDogJ2FzYyc7XG4gICAgY29uc3Qgc29ydE9yZGVyID0gc29ydEtleSA9PT0gcGFnZS5zb3J0S2V5ID8gcmV2ZXJzZShwYWdlLnNvcnRPcmRlcikgOiAnYXNjJztcbiAgICB0aGlzLnBhdGNoKHtzb3J0S2V5LCBzb3J0T3JkZXJ9KTtcbiAgfVxuXG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './query.store';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvc3RvcmVzL3F1ZXJ5L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9xdWVyeS5zdG9yZSc7XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctYXRvbWljLWNvbW1vbi1zdG9yZXMtcXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvc3RvcmVzL3F1ZXJ5L25nLWF0b21pYy1jb21tb24tc3RvcmVzLXF1ZXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -0,0 +1,30 @@
1
+ import { Inject, Injectable, Optional } from "@angular/core";
2
+ import { DOMAIN_LANG_MAP } from "@ng-atomic/common/pipes/domain";
3
+ import { QueryResolverService } from "@ng-atomic/common/services/query-resolver";
4
+ import { ComponentStore } from "@ngrx/component-store";
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@ng-atomic/common/services/query-resolver";
7
+ export class QueryStore extends ComponentStore {
8
+ constructor(queryResolver, langMap) {
9
+ super({ query: '' });
10
+ this.queryResolver = queryResolver;
11
+ this.langMap = langMap;
12
+ this.query$ = this.select((state) => state.query);
13
+ this.setQuery = this.updater((state, query) => ({ ...state, query }));
14
+ }
15
+ get query() { return this.get().query; }
16
+ resolve(entities) {
17
+ return this.queryResolver.resolve(entities, this.query, this.langMap);
18
+ }
19
+ }
20
+ QueryStore.ɵfac = function QueryStore_Factory(t) { return new (t || QueryStore)(i0.ɵɵinject(i1.QueryResolverService), i0.ɵɵinject(DOMAIN_LANG_MAP, 8)); };
21
+ QueryStore.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: QueryStore, factory: QueryStore.ɵfac });
22
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(QueryStore, [{
23
+ type: Injectable
24
+ }], function () { return [{ type: i1.QueryResolverService }, { type: undefined, decorators: [{
25
+ type: Optional
26
+ }, {
27
+ type: Inject,
28
+ args: [DOMAIN_LANG_MAP]
29
+ }] }]; }, null); })();
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvc3RvcmVzL3F1ZXJ5L3F1ZXJ5LnN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDakYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7QUFPdkQsTUFBTSxPQUFPLFVBQWMsU0FBUSxjQUEwQjtJQUMzRCxZQUNZLGFBQW1DLEVBQ0UsT0FBK0I7UUFFOUUsS0FBSyxDQUFDLEVBQUMsS0FBSyxFQUFFLEVBQUUsRUFBQyxDQUFDLENBQUM7UUFIVCxrQkFBYSxHQUFiLGFBQWEsQ0FBc0I7UUFDRSxZQUFPLEdBQVAsT0FBTyxDQUF3QjtRQU1oRixXQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTdDLGFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFDLEdBQUcsS0FBSyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUMsQ0FBQztJQUx2RSxDQUFDO0lBRUQsSUFBSSxLQUFLLEtBQWEsT0FBTyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUtoRCxPQUFPLENBQUMsUUFBYTtRQUNuQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4RSxDQUFDOztvRUFmVSxVQUFVLG9EQUdDLGVBQWU7Z0VBSDFCLFVBQVUsV0FBVixVQUFVO3VGQUFWLFVBQVU7Y0FEdEIsVUFBVTs7c0JBSU4sUUFBUTs7c0JBQUksTUFBTTt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBET01BSU5fTEFOR19NQVAgfSBmcm9tIFwiQG5nLWF0b21pYy9jb21tb24vcGlwZXMvZG9tYWluXCI7XG5pbXBvcnQgeyBRdWVyeVJlc29sdmVyU2VydmljZSB9IGZyb20gXCJAbmctYXRvbWljL2NvbW1vbi9zZXJ2aWNlcy9xdWVyeS1yZXNvbHZlclwiO1xuaW1wb3J0IHsgQ29tcG9uZW50U3RvcmUgfSBmcm9tIFwiQG5ncngvY29tcG9uZW50LXN0b3JlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUXVlcnlTdGF0ZSB7XG4gIHF1ZXJ5OiBzdHJpbmc7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBRdWVyeVN0b3JlPEU+IGV4dGVuZHMgQ29tcG9uZW50U3RvcmU8UXVlcnlTdGF0ZT4ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgcXVlcnlSZXNvbHZlcjogUXVlcnlSZXNvbHZlclNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChET01BSU5fTEFOR19NQVApIHByb3RlY3RlZCBsYW5nTWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuICApIHtcbiAgICBzdXBlcih7cXVlcnk6ICcnfSk7XG4gIH1cblxuICBnZXQgcXVlcnkoKTogc3RyaW5nIHsgcmV0dXJuIHRoaXMuZ2V0KCkucXVlcnk7IH1cbiAgcXVlcnkkID0gdGhpcy5zZWxlY3QoKHN0YXRlKSA9PiBzdGF0ZS5xdWVyeSk7XG5cbiAgc2V0UXVlcnkgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBxdWVyeTogc3RyaW5nKSA9PiAoey4uLnN0YXRlLCBxdWVyeX0pKTtcblxuICByZXNvbHZlKGVudGl0aWVzOiBFW10pOiBFW10ge1xuICAgIHJldHVybiB0aGlzLnF1ZXJ5UmVzb2x2ZXIucmVzb2x2ZShlbnRpdGllcywgdGhpcy5xdWVyeSwgdGhpcy5sYW5nTWFwKTtcbiAgfVxuXG59Il19
@@ -0,0 +1,2 @@
1
+ export * from './selection.store';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvc3RvcmVzL3NlbGVjdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zZWxlY3Rpb24uc3RvcmUnO1xuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctYXRvbWljLWNvbW1vbi1zdG9yZXMtc2VsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL3N0b3Jlcy9zZWxlY3Rpb24vbmctYXRvbWljLWNvbW1vbi1zdG9yZXMtc2VsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -0,0 +1,29 @@
1
+ import { Injectable } from "@angular/core";
2
+ import { ComponentStore } from "@ngrx/component-store";
3
+ import * as i0 from "@angular/core";
4
+ export class SelectionStore extends ComponentStore {
5
+ constructor() {
6
+ super({ idSet: new Set(), initialIdSet: null });
7
+ this.setIdSet = this.updater((state, idSet) => ({ ...state, idSet }));
8
+ this.setInitialIdSet = this.updater((state, initialIdSet) => ({ ...state, initialIdSet }));
9
+ this.addIds = (ids) => this.setIdSet(new Set([...this.idSet, ...ids]));
10
+ this.addId = (id) => this.addIds([id]);
11
+ this.removeId = (id) => this.setIdSet(new Set([...this.idSet].filter(_id => _id !== id)));
12
+ this.toggleId = (id) => this.idSet.has(id) ? this.removeId(id) : this.addId(id);
13
+ }
14
+ get idSet() { return this.get(state => state.idSet); }
15
+ get initialIdSet() { return this.get(state => state.initialIdSet); }
16
+ getSelectedAndUnselected() {
17
+ const unselectedIdSet = new Set([...this.initialIdSet].filter(id => !this.idSet.has(id)));
18
+ return [this.idSet, unselectedIdSet];
19
+ }
20
+ filterBySelectedIds(entities) {
21
+ return entities.filter(({ id }) => this.idSet.has(id));
22
+ }
23
+ }
24
+ SelectionStore.ɵfac = function SelectionStore_Factory(t) { return new (t || SelectionStore)(); };
25
+ SelectionStore.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: SelectionStore, factory: SelectionStore.ɵfac });
26
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SelectionStore, [{
27
+ type: Injectable
28
+ }], function () { return []; }, null); })();
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLnN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL3N0b3Jlcy9zZWxlY3Rpb24vc2VsZWN0aW9uLnN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQVN2RCxNQUFNLE9BQU8sY0FBZSxTQUFRLGNBQThCO0lBSWhFO1FBQ0UsS0FBSyxDQUFDLEVBQUMsS0FBSyxFQUFFLElBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7UUFHaEQsYUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBa0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFDLEdBQUcsS0FBSyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUMsQ0FBQztRQUM1RSxvQkFBZSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsWUFBeUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFDLEdBQUcsS0FBSyxFQUFFLFlBQVksRUFBQyxDQUFDLENBQUMsQ0FBQztRQUVqRyxXQUFNLEdBQUcsQ0FBQyxHQUFhLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUUsVUFBSyxHQUFHLENBQUMsRUFBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUUxQyxhQUFRLEdBQUcsQ0FBQyxFQUFVLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdGLGFBQVEsR0FBRyxDQUFDLEVBQVUsRUFBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFUcEYsQ0FBQztJQUxELElBQUksS0FBSyxLQUFrQixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25FLElBQUksWUFBWSxLQUFrQixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBZWpGLHdCQUF3QjtRQUN0QixNQUFNLGVBQWUsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFGLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxtQkFBbUIsQ0FBeUIsUUFBYTtRQUN2RCxPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7OzRFQXhCVSxjQUFjO29FQUFkLGNBQWMsV0FBZCxjQUFjO3VGQUFkLGNBQWM7Y0FEMUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQ29tcG9uZW50U3RvcmUgfSBmcm9tIFwiQG5ncngvY29tcG9uZW50LXN0b3JlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0aW9uU3RhdGUge1xuICBpZFNldDogU2V0PHN0cmluZz47XG4gIGluaXRpYWxJZFNldDogU2V0PHN0cmluZz4gfCBudWxsO1xuXG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTZWxlY3Rpb25TdG9yZSBleHRlbmRzIENvbXBvbmVudFN0b3JlPFNlbGVjdGlvblN0YXRlPiB7XG4gIGdldCBpZFNldCgpOiBTZXQ8c3RyaW5nPiB7IHJldHVybiB0aGlzLmdldChzdGF0ZSA9PiBzdGF0ZS5pZFNldCk7IH1cbiAgZ2V0IGluaXRpYWxJZFNldCgpOiBTZXQ8c3RyaW5nPiB7IHJldHVybiB0aGlzLmdldChzdGF0ZSA9PiBzdGF0ZS5pbml0aWFsSWRTZXQpOyB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoe2lkU2V0OiBuZXcgU2V0KCksIGluaXRpYWxJZFNldDogbnVsbH0pO1xuICB9XG5cbiAgc2V0SWRTZXQgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBpZFNldDogU2V0PHN0cmluZz4pID0+ICh7Li4uc3RhdGUsIGlkU2V0fSkpO1xuICBzZXRJbml0aWFsSWRTZXQgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBpbml0aWFsSWRTZXQ6IFNldDxzdHJpbmc+KSA9PiAoey4uLnN0YXRlLCBpbml0aWFsSWRTZXR9KSk7XG5cbiAgYWRkSWRzID0gKGlkczogc3RyaW5nW10pID0+IHRoaXMuc2V0SWRTZXQobmV3IFNldChbLi4udGhpcy5pZFNldCwgLi4uaWRzXSkpO1xuICBhZGRJZCA9IChpZDogc3RyaW5nKSA9PiB0aGlzLmFkZElkcyhbaWRdKTtcbiAgXG4gIHJlbW92ZUlkID0gKGlkOiBzdHJpbmcpID0+IHRoaXMuc2V0SWRTZXQobmV3IFNldChbLi4udGhpcy5pZFNldF0uZmlsdGVyKF9pZCA9PiBfaWQgIT09IGlkKSkpO1xuICB0b2dnbGVJZCA9IChpZDogc3RyaW5nKSAgPT4gdGhpcy5pZFNldC5oYXMoaWQpID8gdGhpcy5yZW1vdmVJZChpZCkgOiB0aGlzLmFkZElkKGlkKTtcblxuICBnZXRTZWxlY3RlZEFuZFVuc2VsZWN0ZWQoKTogW1NldDxzdHJpbmc+LCBTZXQ8c3RyaW5nPl0ge1xuICAgIGNvbnN0IHVuc2VsZWN0ZWRJZFNldCA9IG5ldyBTZXQoWy4uLnRoaXMuaW5pdGlhbElkU2V0XS5maWx0ZXIoaWQgPT4gIXRoaXMuaWRTZXQuaGFzKGlkKSkpO1xuICAgIHJldHVybiBbdGhpcy5pZFNldCwgdW5zZWxlY3RlZElkU2V0XTtcbiAgfVxuXG4gIGZpbHRlckJ5U2VsZWN0ZWRJZHM8RSBleHRlbmRzIHtpZDogc3RyaW5nfT4oZW50aXRpZXM6IEVbXSk6IEVbXSB7XG4gICAgcmV0dXJuIGVudGl0aWVzLmZpbHRlcigoe2lkfSkgPT4gdGhpcy5pZFNldC5oYXMoaWQpKTtcbiAgfVxufSJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './page';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvdXRpbHMvcGFnZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcGFnZSc7XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctYXRvbWljLWNvbW1vbi11dGlscy1wYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL3V0aWxzL3BhZ2UvbmctYXRvbWljLWNvbW1vbi11dGlscy1wYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -0,0 +1,20 @@
1
+ export class Page {
2
+ static from(event = {}) {
3
+ return Object.assign(new Page(), {
4
+ pageSize: 50,
5
+ pageIndex: 0,
6
+ length: 100,
7
+ ...event
8
+ });
9
+ }
10
+ get start() {
11
+ return this.pageIndex * this.pageSize;
12
+ }
13
+ get end() {
14
+ return Math.min((this.pageIndex + 1) * this.pageSize, this.length);
15
+ }
16
+ patch(obj) {
17
+ return Page.from({ ...this, ...obj });
18
+ }
19
+ }
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy91dGlscy9wYWdlL3BhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsTUFBTSxPQUFPLElBQUk7SUFDZixNQUFNLENBQUMsSUFBSSxDQUFDLFFBQXVCLEVBQUU7UUFDbkMsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUU7WUFDL0IsUUFBUSxFQUFFLEVBQUU7WUFDWixTQUFTLEVBQUUsQ0FBQztZQUNaLE1BQU0sRUFBRSxHQUFHO1lBQ1gsR0FBRyxLQUFLO1NBQ1QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxLQUFLLENBQUMsR0FBa0I7UUFDdEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUMsR0FBRyxJQUFJLEVBQUUsR0FBRyxHQUFHLEVBQUMsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhZ2VFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFnZSBleHRlbmRzIFBhZ2VFdmVudCB7XG4gIHNvcnRLZXk6IHN0cmluZztcbiAgc29ydE9yZGVyOiAnYXNjJyB8ICdkZXNjJztcbn1cblxuZXhwb3J0IGNsYXNzIFBhZ2Uge1xuICBzdGF0aWMgZnJvbShldmVudDogUGFydGlhbDxQYWdlPiA9IHt9KTogUGFnZSB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24obmV3IFBhZ2UoKSwge1xuICAgICAgcGFnZVNpemU6IDUwLFxuICAgICAgcGFnZUluZGV4OiAwLFxuICAgICAgbGVuZ3RoOiAxMDAsXG4gICAgICAuLi5ldmVudFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0IHN0YXJ0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMucGFnZUluZGV4ICogdGhpcy5wYWdlU2l6ZTtcbiAgfVxuXG4gIGdldCBlbmQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gTWF0aC5taW4oKHRoaXMucGFnZUluZGV4ICsgMSkgKiB0aGlzLnBhZ2VTaXplLCB0aGlzLmxlbmd0aCk7XG4gIH1cblxuICBwYXRjaChvYmo6IFBhcnRpYWw8UGFnZT4pOiBQYWdlIHtcbiAgICByZXR1cm4gUGFnZS5mcm9tKHsuLi50aGlzLCAuLi5vYmp9KTtcbiAgfVxufVxuIl19
@@ -11,7 +11,6 @@ class PaginationPipe {
11
11
  (_a = this.transformer) !== null && _a !== void 0 ? _a : (this.transformer = smartSortByTransformer);
12
12
  }
13
13
  transform(items, { sortKey, sortOrder, start, end }) {
14
- // transform<T>(items: T[], key: string, order: 'asc' | 'desc', start: number, end: number): T[] {
15
14
  return this.slicePipe.transform(this.transformer(items, sortKey, sortOrder), start, end);
16
15
  }
17
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ng-atomic-common-pipes-pagination.mjs","sources":["../../../../libs/common/src/pipes/pagination/pagination.pipe.ts","../../../../libs/common/src/pipes/pagination/pagination.module.ts","../../../../libs/common/src/pipes/pagination/ng-atomic-common-pipes-pagination.ts"],"sourcesContent":["import { SlicePipe } from '@angular/common';\nimport { Inject, Optional, Pipe, PipeTransform } from '@angular/core';\nimport { smartSortByTransformer, SmartSortByTransformer, SMART_SORT_BY_TRANSFORMER } from '@ng-atomic/common/pipes/smart-sort-by';\n\n@Pipe({\n name: 'pagination',\n pure: true,\n})\nexport class PaginationPipe implements PipeTransform {\n private slicePipe = new SlicePipe();\n\n constructor(\n @Optional()\n @Inject(SMART_SORT_BY_TRANSFORMER)\n private transformer: SmartSortByTransformer,\n ) {\n this.transformer ??= smartSortByTransformer;\n }\n\n transform<T>(items: T[], {sortKey, sortOrder, start, end}: {sortKey: string, sortOrder: 'asc' | 'desc', start: number, end: number}) {\n // transform<T>(items: T[], key: string, order: 'asc' | 'desc', start: number, end: number): T[] { \n return this.slicePipe.transform(this.transformer(items, sortKey, sortOrder), start, end);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PaginationPipe } from './pagination.pipe';\n\n\n\n@NgModule({\n declarations: [\n PaginationPipe\n ],\n imports: [\n CommonModule,\n ],\n exports: [\n PaginationPipe\n ]\n})\nexport class PaginationModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MAQa,cAAc,CAAA;AAGzB,IAAA,WAAA,CAGU,WAAmC,EAAA;;AAAnC,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAwB;AALrC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;QAOlC,CAAA,EAAA,GAAA,IAAI,CAAC,WAAW,MAAhB,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,IAAA,IAAI,CAAC,WAAW,GAAK,sBAAsB,CAAC,CAAA;KAC7C;IAED,SAAS,CAAI,KAAU,EAAE,EAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAA2E,EAAA;;QAEjI,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;KAC1F;;AAdU,cAAA,CAAA,IAAA,GAAA,SAAA,sBAAA,CAAA,CAAA,EAAA,EAAA,OAAA,KAAA,CAAA,IAAA,cAAc,uBAKf,yBAAyB,EAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA;iFALxB,cAAc,EAAA,IAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;4EAAd,cAAc,EAAA,CAAA;kBAJ1B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,YAAY;AAClB,oBAAA,IAAI,EAAE,IAAI;iBACX,CAAA;;;8BAKI,QAAQ;;8BACR,MAAM;+BAAC,yBAAyB,CAAA;;;;;MCIxB,gBAAgB,CAAA;;gFAAhB,gBAAgB,GAAA,CAAA,EAAA,CAAA;kEAAhB,gBAAgB,EAAA,CAAA,CAAA;sEANzB,YAAY,CAAA,EAAA,CAAA,CAAA;;4EAMH,gBAAgB,EAAA,CAAA;kBAX5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,cAAc;AACf,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,cAAc;AACf,qBAAA;iBACF,CAAA;;;AACY,CAAA,cAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,gBAAgB,EATzB,EAAA,YAAA,EAAA,CAAA,cAAc,CAGd,EAAA,OAAA,EAAA,CAAA,YAAY,aAGZ,cAAc,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;ACdlB;;AAEG;;;;"}
1
+ {"version":3,"file":"ng-atomic-common-pipes-pagination.mjs","sources":["../../../../libs/common/src/pipes/pagination/pagination.pipe.ts","../../../../libs/common/src/pipes/pagination/pagination.module.ts","../../../../libs/common/src/pipes/pagination/ng-atomic-common-pipes-pagination.ts"],"sourcesContent":["import { SlicePipe } from '@angular/common';\nimport { Inject, Optional, Pipe, PipeTransform } from '@angular/core';\nimport { smartSortByTransformer, SmartSortByTransformer, SMART_SORT_BY_TRANSFORMER } from '@ng-atomic/common/pipes/smart-sort-by';\n\n@Pipe({\n name: 'pagination',\n pure: true,\n})\nexport class PaginationPipe implements PipeTransform {\n private slicePipe = new SlicePipe();\n\n constructor(\n @Optional()\n @Inject(SMART_SORT_BY_TRANSFORMER)\n private transformer: SmartSortByTransformer,\n ) {\n this.transformer ??= smartSortByTransformer;\n }\n\n transform<T>(items: T[], {sortKey, sortOrder, start, end}: {sortKey: string, sortOrder: 'asc' | 'desc', start: number, end: number}) {\n return this.slicePipe.transform(this.transformer(items, sortKey, sortOrder), start, end);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PaginationPipe } from './pagination.pipe';\n\n\n\n@NgModule({\n declarations: [\n PaginationPipe\n ],\n imports: [\n CommonModule,\n ],\n exports: [\n PaginationPipe\n ]\n})\nexport class PaginationModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MAQa,cAAc,CAAA;AAGzB,IAAA,WAAA,CAGU,WAAmC,EAAA;;AAAnC,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAwB;AALrC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;QAOlC,CAAA,EAAA,GAAA,IAAI,CAAC,WAAW,MAAhB,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,IAAA,IAAI,CAAC,WAAW,GAAK,sBAAsB,CAAC,CAAA;KAC7C;IAED,SAAS,CAAI,KAAU,EAAE,EAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAA2E,EAAA;QACjI,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;KAC1F;;AAbU,cAAA,CAAA,IAAA,GAAA,SAAA,sBAAA,CAAA,CAAA,EAAA,EAAA,OAAA,KAAA,CAAA,IAAA,cAAc,uBAKf,yBAAyB,EAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA;iFALxB,cAAc,EAAA,IAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;4EAAd,cAAc,EAAA,CAAA;kBAJ1B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,YAAY;AAClB,oBAAA,IAAI,EAAE,IAAI;iBACX,CAAA;;;8BAKI,QAAQ;;8BACR,MAAM;+BAAC,yBAAyB,CAAA;;;;;MCIxB,gBAAgB,CAAA;;gFAAhB,gBAAgB,GAAA,CAAA,EAAA,CAAA;kEAAhB,gBAAgB,EAAA,CAAA,CAAA;sEANzB,YAAY,CAAA,EAAA,CAAA,CAAA;;4EAMH,gBAAgB,EAAA,CAAA;kBAX5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,cAAc;AACf,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,cAAc;AACf,qBAAA;iBACF,CAAA;;;AACY,CAAA,cAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,gBAAgB,EATzB,EAAA,YAAA,EAAA,CAAA,cAAc,CAGd,EAAA,OAAA,EAAA,CAAA,YAAY,aAGZ,cAAc,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;ACdlB;;AAEG;;;;"}
@@ -1,51 +1,26 @@
1
1
  import { ComponentStore } from '@ngrx/component-store';
2
- import { QueryResolverService } from '@ng-atomic/common/services/query-resolver';
3
2
  import { compareById } from '@ng-atomic/common/utils';
4
- import { filter, map, distinctUntilChanged, tap, switchMap } from 'rxjs/operators';
3
+ import { distinctUntilChanged, filter, switchMap, tap } from 'rxjs/operators';
5
4
 
5
+ const distinctUntilChangedArray = () => {
6
+ return distinctUntilChanged((pre, cur) => JSON.stringify(pre) === JSON.stringify(cur));
7
+ };
6
8
  class EntitiesStore extends ComponentStore {
7
- constructor(initialState, queryResolver = new QueryResolverService()) {
9
+ constructor(initialState) {
8
10
  super(initialState);
9
- this.queryResolver = queryResolver;
10
11
  this.userId$ = this.select(state => state.userId).pipe(filter(userId => !!userId));
11
- this.entities$ = this.select(({ query, entities }) => this.queryResolver.resolve(entities, query, this.LANG_MAP))
12
- .pipe(map((entities) => entities.sort(compareById)))
13
- .pipe(distinctUntilChanged((pre, cur) => JSON.stringify(pre) === JSON.stringify(cur)));
12
+ this.entities$ = this.select(({ entities }) => entities ? entities.sort(compareById) : []);
14
13
  this.setUserId = this.updater((state, userId) => (Object.assign(Object.assign({}, state), { userId })));
15
14
  this.setEntities = this.updater((state, entities) => (Object.assign(Object.assign({}, state), { entities })));
16
- this.setPage = this.updater((state, page) => (Object.assign(Object.assign({}, state), { page })));
17
- this.setIdSet = this.updater((state, idSet) => (Object.assign(Object.assign({}, state), { idSet })));
18
- this.setSortKey = this.updater((state, sortKey) => (Object.assign(Object.assign({}, state), { sortKey })));
19
- this.setSortOrder = this.updater((state, sortOrder) => (Object.assign(Object.assign({}, state), { sortOrder })));
20
- this.addId = this.updater((state, id) => (Object.assign(Object.assign({}, state), { idSet: new Set([...state.idSet, id]) })));
21
- this.removeId = this.updater((state, id) => {
22
- return Object.assign(Object.assign({}, state), { idSet: new Set([...state.idSet].filter(_id => _id !== id)) });
23
- });
24
- this.setQuery = this.updater((state, query) => (Object.assign(Object.assign({}, state), { query })));
25
- this.getPage = this.effect((entities$) => entities$.pipe(tap(({ length }) => this.setPage(this.page.patch({ length })))));
26
15
  this.getEntities = this.effect((userId$) => userId$.pipe(filter(userId => !!userId), switchMap((userId) => this._getEntities({ userId })), tap((entities) => this.setEntities(entities))));
27
- this.getPage(this.entities$);
28
16
  this.getEntities(this.userId$);
29
17
  }
30
- get page() { return this.get(state => state.page); }
31
- get sortKey() { return this.get(state => state.sortKey); }
32
- get sortOrder() { return this.get(state => state.sortOrder); }
33
- get idSet() { return this.get(state => state.idSet); }
34
- changeSortFromEvent(name) {
35
- if (name === this.sortKey) {
36
- const order = this.sortOrder === 'asc' ? 'desc' : 'asc';
37
- this.setSortOrder(order);
38
- }
39
- else {
40
- this.setSortKey(name);
41
- this.setSortOrder('asc');
42
- }
43
- }
18
+ get entities() { return this.get().entities; }
44
19
  }
45
20
 
46
21
  /**
47
22
  * Generated bundle index. Do not edit.
48
23
  */
49
24
 
50
- export { EntitiesStore };
25
+ export { EntitiesStore, distinctUntilChangedArray };
51
26
  //# sourceMappingURL=ng-atomic-common-stores-entities.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ng-atomic-common-stores-entities.mjs","sources":["../../../../libs/common/src/stores/entities/entities.store.ts","../../../../libs/common/src/stores/entities/ng-atomic-common-stores-entities.ts"],"sourcesContent":["import { ComponentStore } from '@ngrx/component-store';\nimport { QueryResolverService } from '@ng-atomic/common/services/query-resolver';\nimport { compareById } from '@ng-atomic/common/utils';\nimport { Observable } from 'rxjs';\nimport { distinctUntilChanged, tap, map, filter, switchMap } from 'rxjs/operators';\n\nexport type Page = any\n\nexport interface EntitiesState<E> {\n userId: string; \n idSet: Set<string>;\n query: string;\n entities: E[]\n page: Page;\n sortKey?: string;\n sortOrder?: 'asc' | 'desc';\n}\n\nexport abstract class EntitiesStore<S extends EntitiesState<E>, E extends {id: string}> extends ComponentStore<S> {\n abstract LANG_MAP: Record<string, string>;\n\n get page(): Page { return this.get(state => state.page); }\n get sortKey(): string { return this.get(state => state.sortKey); }\n get sortOrder(): string { return this.get(state => state.sortOrder); }\n get idSet(): Set<string> { return this.get(state => state.idSet); }\n\n userId$ = this.select(state => state.userId).pipe(filter(userId => !!userId));\n entities$ = this.select(({query, entities}) => this.queryResolver.resolve(entities, query, this.LANG_MAP))\n .pipe(map((entities: E[]) => entities.sort(compareById)))\n .pipe(distinctUntilChanged((pre, cur) => JSON.stringify(pre) === JSON.stringify(cur)));\n\n constructor(\n initialState: S,\n public queryResolver = new QueryResolverService(),\n ) {\n super(initialState);\n this.getPage(this.entities$);\n this.getEntities(this.userId$);\n }\n\n setUserId = this.updater((state, userId: string) => ({...state, userId}));\n setEntities = this.updater((state, entities: E[]) => ({...state, entities}));\n setPage = this.updater((state, page: Page) => ({...state, page}));\n setIdSet = this.updater((state, idSet: Set<string>) => ({...state, idSet}));\n setSortKey = this.updater((state, sortKey: string) => ({...state, sortKey}));\n setSortOrder = this.updater((state, sortOrder: 'asc' | 'desc') => ({...state, sortOrder}));\n addId = this.updater((state, id: string) => ({...state, idSet: new Set([...state.idSet, id])}));\n removeId = this.updater((state, id: string) => {\n return {...state, idSet: new Set([...state.idSet].filter(_id => _id !== id))}\n });\n setQuery = this.updater((state, query: string) => ({...state, query}));\n\n getPage = this.effect((entities$: Observable<E[]>) => entities$.pipe(\n tap(({length}: E[]) => this.setPage(this.page.patch({length}))),\n ));\n\n getEntities = this.effect((userId$: Observable<string>) => userId$.pipe(\n filter(userId => !!userId),\n switchMap((userId) => this._getEntities({userId})),\n tap((entities: E[]) => this.setEntities(entities)),\n )); \n\n changeSortFromEvent(name: string) {\n if (name === this.sortKey) {\n const order = this.sortOrder === 'asc' ? 'desc' : 'asc';\n this.setSortOrder(order);\n } else {\n this.setSortKey(name);\n this.setSortOrder('asc');\n }\n }\n\n abstract _getEntities(data?: object): Observable<E[]>;\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-atomic-common-stores-entities.mjs","sources":["../../../../libs/common/src/stores/entities/entities.store.ts","../../../../libs/common/src/stores/entities/ng-atomic-common-stores-entities.ts"],"sourcesContent":["import { ComponentStore } from '@ngrx/component-store';\nimport { compareById } from '@ng-atomic/common/utils';\nimport { Observable } from 'rxjs';\nimport { distinctUntilChanged, tap, filter, switchMap } from 'rxjs/operators';\n\nexport interface EntitiesState<E> {\n userId: string; \n entities: E[]\n}\n\nexport const distinctUntilChangedArray = <T>() => {\n return distinctUntilChanged<T>((pre, cur) => JSON.stringify(pre) === JSON.stringify(cur));\n};\n\nexport abstract class EntitiesStore<S extends EntitiesState<E>, E extends {id: string}> extends ComponentStore<S> {\n get entities() { return this.get().entities; }\n\n userId$ = this.select(state => state.userId).pipe(filter(userId => !!userId));\n entities$ = this.select(({entities}) => entities ? entities.sort(compareById) : []);\n \n constructor(initialState: S) {\n super(initialState);\n this.getEntities(this.userId$);\n }\n\n setUserId = this.updater((state, userId: string) => ({...state, userId}));\n setEntities = this.updater((state, entities: E[]) => ({...state, entities}));\n\n getEntities = this.effect((userId$: Observable<string>) => userId$.pipe(\n filter(userId => !!userId),\n switchMap((userId) => this._getEntities({userId})),\n tap((entities: E[]) => this.setEntities(entities)),\n )); \n\n abstract _getEntities(data?: object): Observable<E[]>;\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAUO,MAAM,yBAAyB,GAAG,MAAQ;IAC/C,OAAO,oBAAoB,CAAI,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5F,EAAE;AAEI,MAAgB,aAAkE,SAAQ,cAAiB,CAAA;AAM/G,IAAA,WAAA,CAAY,YAAe,EAAA;QACzB,KAAK,CAAC,YAAY,CAAC,CAAC;AAJtB,QAAA,IAAO,CAAA,OAAA,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9E,QAAA,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAC,QAAQ,EAAC,KAAK,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;QAOpF,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,MAAc,MAAU,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,KAAK,KAAE,MAAM,EAAA,CAAA,CAAE,CAAC,CAAC;QAC1E,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,QAAa,MAAU,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,KAAK,KAAE,QAAQ,EAAA,CAAA,CAAE,CAAC,CAAC;AAE7E,QAAA,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,OAA2B,KAAK,OAAO,CAAC,IAAI,CACrE,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,EAC1B,SAAS,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,YAAY,CAAC,EAAC,MAAM,EAAC,CAAC,CAAC,EAClD,GAAG,CAAC,CAAC,QAAa,KAAK,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CACnD,CAAC,CAAC;AAVD,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAChC;IARD,IAAI,QAAQ,GAAK,EAAA,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE;AAoB/C;;ACnCD;;AAEG;;;;"}
@@ -0,0 +1,41 @@
1
+ import { ComponentStore } from '@ngrx/component-store';
2
+ import { Page } from '@ng-atomic/common/utils/page';
3
+ import { tap } from 'rxjs';
4
+ import * as i0 from '@angular/core';
5
+ import { Injectable } from '@angular/core';
6
+
7
+ class PaginationStore extends ComponentStore {
8
+ constructor() {
9
+ super({ page: Page.from() });
10
+ this.page$ = this.select(state => state.page);
11
+ this.setPage = this.updater((state, page) => (Object.assign(Object.assign({}, state), { page })));
12
+ this.setSortKey = this.updater((state, sortKey) => (Object.assign(Object.assign({}, state), { page: this.page.patch({ sortKey }) })));
13
+ this.setSortOrder = this.updater((state, sortOrder) => (Object.assign(Object.assign({}, state), { page: this.page.patch({ sortOrder }) })));
14
+ this.patch = this.updater((state, page) => (Object.assign(Object.assign({}, state), { page: state.page.patch(page) })));
15
+ this.getPageLength = this.effect((entities$) => entities$.pipe(tap(({ length }) => this.setPage(this.page.patch({ length })))));
16
+ }
17
+ get page() { return this.get(state => state.page); }
18
+ get sortKey() { return this.page.sortKey; }
19
+ get sortOrder() { return this.page.sortOrder; }
20
+ get start() { return this.page.start; }
21
+ get end() { return this.page.end; }
22
+ changeSortFromEvent(sortKey, page = this.page) {
23
+ const reverse = (order) => order === 'asc' ? 'desc' : 'asc';
24
+ const sortOrder = sortKey === page.sortKey ? reverse(page.sortOrder) : 'asc';
25
+ this.patch({ sortKey, sortOrder });
26
+ }
27
+ }
28
+ PaginationStore.ɵfac = function PaginationStore_Factory(t) { return new (t || PaginationStore)(); };
29
+ PaginationStore.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: PaginationStore, factory: PaginationStore.ɵfac });
30
+ (function () {
31
+ (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PaginationStore, [{
32
+ type: Injectable
33
+ }], function () { return []; }, null);
34
+ })();
35
+
36
+ /**
37
+ * Generated bundle index. Do not edit.
38
+ */
39
+
40
+ export { PaginationStore };
41
+ //# sourceMappingURL=ng-atomic-common-stores-pagination.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ng-atomic-common-stores-pagination.mjs","sources":["../../../../libs/common/src/stores/pagination/pagination.store.ts","../../../../libs/common/src/stores/pagination/ng-atomic-common-stores-pagination.ts"],"sourcesContent":["import { ComponentStore } from \"@ngrx/component-store\";\nimport { Page } from '@ng-atomic/common/utils/page';\nimport { Observable, tap } from \"rxjs\";\nimport { Injectable } from \"@angular/core\";\n\nexport interface EntitiesState<E> {\n page: Page;\n}\n\n@Injectable()\nexport class PaginationStore extends ComponentStore<any> {\n constructor() {super({page: Page.from()})}\n\n get page() { return this.get(state => state.page); }\n get sortKey() { return this.page.sortKey; }\n get sortOrder() { return this.page.sortOrder; }\n get start() { return this.page.start; }\n get end() { return this.page.end; }\n\n page$ = this.select(state => state.page);\n\n setPage = this.updater((state, page: Page) => ({...state, page}));\n setSortKey = this.updater((state, sortKey: string) => ({...state, page: this.page.patch({sortKey})}));\n setSortOrder = this.updater((state, sortOrder: 'asc' | 'desc') => ({...state, page: this.page.patch({sortOrder})}));\n patch = this.updater((state, page: Partial<Page>) => ({...state, page: state.page.patch(page)}));\n \n getPageLength = this.effect((entities$: Observable<any[]>) => entities$.pipe(\n tap(({length}: any[]) => this.setPage(this.page.patch({length}))),\n ));\n\n changeSortFromEvent(sortKey: string, page: Page = this.page) {\n const reverse = (order: 'asc' | 'desc') => order === 'asc' ? 'desc' : 'asc';\n const sortOrder = sortKey === page.sortKey ? reverse(page.sortOrder) : 'asc';\n this.patch({sortKey, sortOrder});\n }\n\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable, Optional, Inject } from '@angular/core';
3
+ import { DOMAIN_LANG_MAP } from '@ng-atomic/common/pipes/domain';
4
+ import { ComponentStore } from '@ngrx/component-store';
5
+ import * as i1 from '@ng-atomic/common/services/query-resolver';
6
+
7
+ class QueryStore extends ComponentStore {
8
+ constructor(queryResolver, langMap) {
9
+ super({ query: '' });
10
+ this.queryResolver = queryResolver;
11
+ this.langMap = langMap;
12
+ this.query$ = this.select((state) => state.query);
13
+ this.setQuery = this.updater((state, query) => (Object.assign(Object.assign({}, state), { query })));
14
+ }
15
+ get query() { return this.get().query; }
16
+ resolve(entities) {
17
+ return this.queryResolver.resolve(entities, this.query, this.langMap);
18
+ }
19
+ }
20
+ QueryStore.ɵfac = function QueryStore_Factory(t) { return new (t || QueryStore)(i0.ɵɵinject(i1.QueryResolverService), i0.ɵɵinject(DOMAIN_LANG_MAP, 8)); };
21
+ QueryStore.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: QueryStore, factory: QueryStore.ɵfac });
22
+ (function () {
23
+ (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(QueryStore, [{
24
+ type: Injectable
25
+ }], function () {
26
+ return [{ type: i1.QueryResolverService }, { type: undefined, decorators: [{
27
+ type: Optional
28
+ }, {
29
+ type: Inject,
30
+ args: [DOMAIN_LANG_MAP]
31
+ }] }];
32
+ }, null);
33
+ })();
34
+
35
+ /**
36
+ * Generated bundle index. Do not edit.
37
+ */
38
+
39
+ export { QueryStore };
40
+ //# sourceMappingURL=ng-atomic-common-stores-query.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ng-atomic-common-stores-query.mjs","sources":["../../../../libs/common/src/stores/query/query.store.ts","../../../../libs/common/src/stores/query/ng-atomic-common-stores-query.ts"],"sourcesContent":["import { Inject, Injectable, Optional } from \"@angular/core\";\nimport { DOMAIN_LANG_MAP } from \"@ng-atomic/common/pipes/domain\";\nimport { QueryResolverService } from \"@ng-atomic/common/services/query-resolver\";\nimport { ComponentStore } from \"@ngrx/component-store\";\n\nexport interface QueryState {\n query: string;\n}\n\n@Injectable()\nexport class QueryStore<E> extends ComponentStore<QueryState> {\n constructor(\n protected queryResolver: QueryResolverService,\n @Optional() @Inject(DOMAIN_LANG_MAP) protected langMap: Record<string, string>,\n ) {\n super({query: ''});\n }\n\n get query(): string { return this.get().query; }\n query$ = this.select((state) => state.query);\n\n setQuery = this.updater((state, query: string) => ({...state, query}));\n\n resolve(entities: E[]): E[] {\n return this.queryResolver.resolve(entities, this.query, this.langMap);\n }\n\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAUM,MAAO,UAAc,SAAQ,cAA0B,CAAA;IAC3D,WACY,CAAA,aAAmC,EACE,OAA+B,EAAA;AAE9E,QAAA,KAAK,CAAC,EAAC,KAAK,EAAE,EAAE,EAAC,CAAC,CAAC;AAHT,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAsB;AACE,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAwB;AAMhF,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC;QAE7C,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAa,MAAU,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,KAAK,KAAE,KAAK,EAAA,CAAA,CAAE,CAAC,CAAC;KALtE;IAED,IAAI,KAAK,GAAa,EAAA,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE;AAKhD,IAAA,OAAO,CAAC,QAAa,EAAA;AACnB,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;KACvE;;AAfU,UAAA,CAAA,IAAA,GAAA,SAAA,kBAAA,CAAA,CAAA,EAAA,EAAA,OAAA,KAAA,CAAA,IAAA,UAAU,oDAGC,eAAe,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA;AAH1B,UAAA,CAAA,KAAA,iBAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,UAAU,WAAV,UAAU,CAAA,IAAA,EAAA,CAAA,CAAA;;4EAAV,UAAU,EAAA,CAAA;kBADtB,UAAU;;;8BAIN,QAAQ;;8BAAI,MAAM;+BAAC,eAAe,CAAA;;;;;ACbvC;;AAEG;;;;"}
@@ -0,0 +1,38 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable } from '@angular/core';
3
+ import { ComponentStore } from '@ngrx/component-store';
4
+
5
+ class SelectionStore extends ComponentStore {
6
+ constructor() {
7
+ super({ idSet: new Set(), initialIdSet: null });
8
+ this.setIdSet = this.updater((state, idSet) => (Object.assign(Object.assign({}, state), { idSet })));
9
+ this.setInitialIdSet = this.updater((state, initialIdSet) => (Object.assign(Object.assign({}, state), { initialIdSet })));
10
+ this.addIds = (ids) => this.setIdSet(new Set([...this.idSet, ...ids]));
11
+ this.addId = (id) => this.addIds([id]);
12
+ this.removeId = (id) => this.setIdSet(new Set([...this.idSet].filter(_id => _id !== id)));
13
+ this.toggleId = (id) => this.idSet.has(id) ? this.removeId(id) : this.addId(id);
14
+ }
15
+ get idSet() { return this.get(state => state.idSet); }
16
+ get initialIdSet() { return this.get(state => state.initialIdSet); }
17
+ getSelectedAndUnselected() {
18
+ const unselectedIdSet = new Set([...this.initialIdSet].filter(id => !this.idSet.has(id)));
19
+ return [this.idSet, unselectedIdSet];
20
+ }
21
+ filterBySelectedIds(entities) {
22
+ return entities.filter(({ id }) => this.idSet.has(id));
23
+ }
24
+ }
25
+ SelectionStore.ɵfac = function SelectionStore_Factory(t) { return new (t || SelectionStore)(); };
26
+ SelectionStore.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: SelectionStore, factory: SelectionStore.ɵfac });
27
+ (function () {
28
+ (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SelectionStore, [{
29
+ type: Injectable
30
+ }], function () { return []; }, null);
31
+ })();
32
+
33
+ /**
34
+ * Generated bundle index. Do not edit.
35
+ */
36
+
37
+ export { SelectionStore };
38
+ //# sourceMappingURL=ng-atomic-common-stores-selection.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ng-atomic-common-stores-selection.mjs","sources":["../../../../libs/common/src/stores/selection/selection.store.ts","../../../../libs/common/src/stores/selection/ng-atomic-common-stores-selection.ts"],"sourcesContent":["import { Injectable } from \"@angular/core\";\nimport { ComponentStore } from \"@ngrx/component-store\";\n\nexport interface SelectionState {\n idSet: Set<string>;\n initialIdSet: Set<string> | null;\n\n}\n\n@Injectable()\nexport class SelectionStore extends ComponentStore<SelectionState> {\n get idSet(): Set<string> { return this.get(state => state.idSet); }\n get initialIdSet(): Set<string> { return this.get(state => state.initialIdSet); }\n\n constructor() {\n super({idSet: new Set(), initialIdSet: null});\n }\n\n setIdSet = this.updater((state, idSet: Set<string>) => ({...state, idSet}));\n setInitialIdSet = this.updater((state, initialIdSet: Set<string>) => ({...state, initialIdSet}));\n\n addIds = (ids: string[]) => this.setIdSet(new Set([...this.idSet, ...ids]));\n addId = (id: string) => this.addIds([id]);\n \n removeId = (id: string) => this.setIdSet(new Set([...this.idSet].filter(_id => _id !== id)));\n toggleId = (id: string) => this.idSet.has(id) ? this.removeId(id) : this.addId(id);\n\n getSelectedAndUnselected(): [Set<string>, Set<string>] {\n const unselectedIdSet = new Set([...this.initialIdSet].filter(id => !this.idSet.has(id)));\n return [this.idSet, unselectedIdSet];\n }\n\n filterBySelectedIds<E extends {id: string}>(entities: E[]): E[] {\n return entities.filter(({id}) => this.idSet.has(id));\n }\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAUM,MAAO,cAAe,SAAQ,cAA8B,CAAA;AAIhE,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,CAAC,EAAC,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE,YAAY,EAAE,IAAI,EAAC,CAAC,CAAC;QAGhD,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAkB,MAAU,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,KAAK,KAAE,KAAK,EAAA,CAAA,CAAE,CAAC,CAAC;QAC5E,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,YAAyB,MAAU,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,KAAK,KAAE,YAAY,EAAA,CAAA,CAAE,CAAC,CAAC;QAEjG,IAAM,CAAA,MAAA,GAAG,CAAC,GAAa,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAC5E,QAAA,IAAA,CAAA,KAAK,GAAG,CAAC,EAAU,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAE1C,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,EAAU,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7F,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,EAAU,KAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;KATnF;AALD,IAAA,IAAI,KAAK,GAAkB,EAAA,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE;AACnE,IAAA,IAAI,YAAY,GAAkB,EAAA,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE;IAejF,wBAAwB,GAAA;AACtB,QAAA,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1F,QAAA,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;KACtC;AAED,IAAA,mBAAmB,CAAyB,QAAa,EAAA;QACvD,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAC,EAAE,EAAC,KAAK,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;KACtD;;4EAxBU,cAAc,GAAA,CAAA,EAAA,CAAA;AAAd,cAAA,CAAA,KAAA,iBAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,cAAc,WAAd,cAAc,CAAA,IAAA,EAAA,CAAA,CAAA;;4EAAd,cAAc,EAAA,CAAA;kBAD1B,UAAU;;;;ACTX;;AAEG;;;;"}
@@ -0,0 +1,21 @@
1
+ class Page {
2
+ static from(event = {}) {
3
+ return Object.assign(new Page(), Object.assign({ pageSize: 50, pageIndex: 0, length: 100 }, event));
4
+ }
5
+ get start() {
6
+ return this.pageIndex * this.pageSize;
7
+ }
8
+ get end() {
9
+ return Math.min((this.pageIndex + 1) * this.pageSize, this.length);
10
+ }
11
+ patch(obj) {
12
+ return Page.from(Object.assign(Object.assign({}, this), obj));
13
+ }
14
+ }
15
+
16
+ /**
17
+ * Generated bundle index. Do not edit.
18
+ */
19
+
20
+ export { Page };
21
+ //# sourceMappingURL=ng-atomic-common-utils-page.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ng-atomic-common-utils-page.mjs","sources":["../../../../libs/common/src/utils/page/page.ts","../../../../libs/common/src/utils/page/ng-atomic-common-utils-page.ts"],"sourcesContent":["import { PageEvent } from '@angular/material/paginator';\n\nexport interface Page extends PageEvent {\n sortKey: string;\n sortOrder: 'asc' | 'desc';\n}\n\nexport class Page {\n static from(event: Partial<Page> = {}): Page {\n return Object.assign(new Page(), {\n pageSize: 50,\n pageIndex: 0,\n length: 100,\n ...event\n });\n }\n\n get start(): number {\n return this.pageIndex * this.pageSize;\n }\n\n get end(): number {\n return Math.min((this.pageIndex + 1) * this.pageSize, this.length);\n }\n\n patch(obj: Partial<Page>): Page {\n return Page.from({...this, ...obj});\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"MAOa,IAAI,CAAA;AACf,IAAA,OAAO,IAAI,CAAC,KAAA,GAAuB,EAAE,EAAA;QACnC,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,EAC7B,MAAA,CAAA,MAAA,CAAA,EAAA,QAAQ,EAAE,EAAE,EACZ,SAAS,EAAE,CAAC,EACZ,MAAM,EAAE,GAAG,EAAA,EACR,KAAK,CAAA,CACR,CAAC;KACJ;AAED,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;KACvC;AAED,IAAA,IAAI,GAAG,GAAA;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;KACpE;AAED,IAAA,KAAK,CAAC,GAAkB,EAAA;QACtB,OAAO,IAAI,CAAC,IAAI,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAK,IAAI,CAAK,EAAA,GAAG,EAAE,CAAC;KACrC;AACF;;AC5BD;;AAEG;;;;"}
@@ -10,7 +10,6 @@ class PaginationPipe {
10
10
  this.transformer ?? (this.transformer = smartSortByTransformer);
11
11
  }
12
12
  transform(items, { sortKey, sortOrder, start, end }) {
13
- // transform<T>(items: T[], key: string, order: 'asc' | 'desc', start: number, end: number): T[] {
14
13
  return this.slicePipe.transform(this.transformer(items, sortKey, sortOrder), start, end);
15
14
  }
16
15
  }