@ng-atomic/common 4.1.1 → 4.3.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 (56) hide show
  1. package/esm2020/stores/entities/entities.store.mjs +8 -33
  2. package/esm2020/stores/pagination/index.mjs +2 -0
  3. package/esm2020/stores/pagination/ng-atomic-common-stores-pagination.mjs +5 -0
  4. package/esm2020/stores/pagination/pagination.store.mjs +32 -0
  5. package/esm2020/stores/query/index.mjs +2 -0
  6. package/esm2020/stores/query/ng-atomic-common-stores-query.mjs +5 -0
  7. package/esm2020/stores/query/query.store.mjs +30 -0
  8. package/esm2020/stores/selection/index.mjs +2 -0
  9. package/esm2020/stores/selection/ng-atomic-common-stores-selection.mjs +5 -0
  10. package/esm2020/stores/selection/selection.store.mjs +29 -0
  11. package/esm2020/utils/page/index.mjs +2 -0
  12. package/esm2020/utils/page/ng-atomic-common-utils-page.mjs +5 -0
  13. package/esm2020/utils/page/page.mjs +20 -0
  14. package/fesm2015/ng-atomic-common-stores-entities.mjs +8 -33
  15. package/fesm2015/ng-atomic-common-stores-entities.mjs.map +1 -1
  16. package/fesm2015/ng-atomic-common-stores-pagination.mjs +41 -0
  17. package/fesm2015/ng-atomic-common-stores-pagination.mjs.map +1 -0
  18. package/fesm2015/ng-atomic-common-stores-query.mjs +40 -0
  19. package/fesm2015/ng-atomic-common-stores-query.mjs.map +1 -0
  20. package/fesm2015/ng-atomic-common-stores-selection.mjs +38 -0
  21. package/fesm2015/ng-atomic-common-stores-selection.mjs.map +1 -0
  22. package/fesm2015/ng-atomic-common-utils-page.mjs +21 -0
  23. package/fesm2015/ng-atomic-common-utils-page.mjs.map +1 -0
  24. package/fesm2020/ng-atomic-common-stores-entities.mjs +8 -33
  25. package/fesm2020/ng-atomic-common-stores-entities.mjs.map +1 -1
  26. package/fesm2020/ng-atomic-common-stores-pagination.mjs +39 -0
  27. package/fesm2020/ng-atomic-common-stores-pagination.mjs.map +1 -0
  28. package/fesm2020/ng-atomic-common-stores-query.mjs +36 -0
  29. package/fesm2020/ng-atomic-common-stores-query.mjs.map +1 -0
  30. package/fesm2020/ng-atomic-common-stores-selection.mjs +36 -0
  31. package/fesm2020/ng-atomic-common-stores-selection.mjs.map +1 -0
  32. package/fesm2020/ng-atomic-common-utils-page.mjs +26 -0
  33. package/fesm2020/ng-atomic-common-utils-page.mjs.map +1 -0
  34. package/package.json +33 -1
  35. package/stores/entities/entities.store.d.ts +3 -23
  36. package/stores/entities/entities.store.d.ts.map +1 -1
  37. package/stores/pagination/index.d.ts +2 -0
  38. package/stores/pagination/index.d.ts.map +1 -0
  39. package/stores/pagination/ng-atomic-common-stores-pagination.d.ts.map +1 -0
  40. package/stores/pagination/pagination.store.d.ts +25 -0
  41. package/stores/pagination/pagination.store.d.ts.map +1 -0
  42. package/stores/query/index.d.ts +2 -0
  43. package/stores/query/index.d.ts.map +1 -0
  44. package/stores/query/ng-atomic-common-stores-query.d.ts.map +1 -0
  45. package/stores/query/query.store.d.ts +18 -0
  46. package/stores/query/query.store.d.ts.map +1 -0
  47. package/stores/selection/index.d.ts +2 -0
  48. package/stores/selection/index.d.ts.map +1 -0
  49. package/stores/selection/ng-atomic-common-stores-selection.d.ts.map +1 -0
  50. package/stores/selection/selection.store.d.ts +24 -0
  51. package/stores/selection/selection.store.d.ts.map +1 -0
  52. package/utils/page/index.d.ts +2 -0
  53. package/utils/page/index.d.ts.map +1 -0
  54. package/utils/page/ng-atomic-common-utils-page.d.ts.map +1 -0
  55. package/utils/page/page.d.ts +12 -0
  56. package/utils/page/page.d.ts.map +1 -0
@@ -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
@@ -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;;;;"}
@@ -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) => ({ ...state, userId }));
15
14
  this.setEntities = this.updater((state, entities) => ({ ...state, entities }));
16
- this.setPage = this.updater((state, page) => ({ ...state, page }));
17
- this.setIdSet = this.updater((state, idSet) => ({ ...state, idSet }));
18
- this.setSortKey = this.updater((state, sortKey) => ({ ...state, sortKey }));
19
- this.setSortOrder = this.updater((state, sortOrder) => ({ ...state, sortOrder }));
20
- this.addId = this.updater((state, id) => ({ ...state, idSet: new Set([...state.idSet, id]) }));
21
- this.removeId = this.updater((state, id) => {
22
- return { ...state, idSet: new Set([...state.idSet].filter(_id => _id !== id)) };
23
- });
24
- this.setQuery = this.updater((state, query) => ({ ...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;QAJtB,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;QAC9E,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,MAAM,EAAC,GAAG,KAAK,EAAE,MAAM,EAAC,CAAC,CAAC,CAAC;QAC1E,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,QAAa,MAAM,EAAC,GAAG,KAAK,EAAE,QAAQ,EAAC,CAAC,CAAC,CAAC;QAE7E,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,39 @@
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) => ({ ...state, page }));
12
+ this.setSortKey = this.updater((state, sortKey) => ({ ...state, page: this.page.patch({ sortKey }) }));
13
+ this.setSortOrder = this.updater((state, sortOrder) => ({ ...state, page: this.page.patch({ sortOrder }) }));
14
+ this.patch = this.updater((state, page) => ({ ...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 () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PaginationStore, [{
31
+ type: Injectable
32
+ }], function () { return []; }, null); })();
33
+
34
+ /**
35
+ * Generated bundle index. Do not edit.
36
+ */
37
+
38
+ export { PaginationStore };
39
+ //# 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":";;;;;;AAUM,MAAO,eAAgB,SAAQ,cAAmB,CAAA;AACtD,IAAA,WAAA,GAAA;QAAe,KAAK,CAAC,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAC,CAAC,CAAA;AAQzC,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;QAEzC,IAAO,CAAA,OAAA,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,IAAU,MAAM,EAAC,GAAG,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC;AAClE,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,OAAe,MAAM,EAAC,GAAG,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAC,OAAO,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC;AACtG,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,SAAyB,MAAM,EAAC,GAAG,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAC,SAAS,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC;AACpH,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,IAAmB,MAAM,EAAC,GAAG,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC,CAAC;AAEjG,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,SAA4B,KAAK,SAAS,CAAC,IAAI,CAC1E,GAAG,CAAC,CAAC,EAAC,MAAM,EAAQ,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAC,MAAM,EAAC,CAAC,CAAC,CAAC,CAClE,CAAC,CAAC;KAjBuC;AAE1C,IAAA,IAAI,IAAI,GAAK,EAAA,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE;IACpD,IAAI,OAAO,GAAK,EAAA,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;IAC3C,IAAI,SAAS,GAAK,EAAA,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;IAC/C,IAAI,KAAK,GAAK,EAAA,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;IACvC,IAAI,GAAG,GAAK,EAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AAanC,IAAA,mBAAmB,CAAC,OAAe,EAAE,IAAa,GAAA,IAAI,CAAC,IAAI,EAAA;AACzD,QAAA,MAAM,OAAO,GAAG,CAAC,KAAqB,KAAK,KAAK,KAAK,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC;QAC5E,MAAM,SAAS,GAAG,OAAO,KAAK,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;QAC7E,IAAI,CAAC,KAAK,CAAC,EAAC,OAAO,EAAE,SAAS,EAAC,CAAC,CAAC;KAClC;;8EAxBU,eAAe,GAAA,CAAA,EAAA,CAAA;AAAf,eAAA,CAAA,KAAA,iBAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,eAAe,WAAf,eAAe,CAAA,IAAA,EAAA,CAAA,CAAA;uFAAf,eAAe,EAAA,CAAA;cAD3B,UAAU;;;ACTX;;AAEG;;;;"}
@@ -0,0 +1,36 @@
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 * as i1 from '@ng-atomic/common/services/query-resolver';
5
+ import { ComponentStore } from '@ngrx/component-store';
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) => ({ ...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
+
31
+ /**
32
+ * Generated bundle index. Do not edit.
33
+ */
34
+
35
+ export { QueryStore };
36
+ //# 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;QAHT,IAAa,CAAA,aAAA,GAAb,aAAa,CAAsB;QACE,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,MAAM,EAAC,GAAG,KAAK,EAAE,KAAK,EAAC,CAAC,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;uFAAV,UAAU,EAAA,CAAA;cADtB,UAAU;;sBAIN,QAAQ;;sBAAI,MAAM;uBAAC,eAAe,CAAA;;;ACbvC;;AAEG;;;;"}
@@ -0,0 +1,36 @@
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) => ({ ...state, idSet }));
9
+ this.setInitialIdSet = this.updater((state, initialIdSet) => ({ ...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 () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SelectionStore, [{
28
+ type: Injectable
29
+ }], function () { return []; }, null); })();
30
+
31
+ /**
32
+ * Generated bundle index. Do not edit.
33
+ */
34
+
35
+ export { SelectionStore };
36
+ //# 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,MAAM,EAAC,GAAG,KAAK,EAAE,KAAK,EAAC,CAAC,CAAC,CAAC;QAC5E,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,YAAyB,MAAM,EAAC,GAAG,KAAK,EAAE,YAAY,EAAC,CAAC,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;uFAAd,cAAc,EAAA,CAAA;cAD1B,UAAU;;;ACTX;;AAEG;;;;"}
@@ -0,0 +1,26 @@
1
+ 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
+
21
+ /**
22
+ * Generated bundle index. Do not edit.
23
+ */
24
+
25
+ export { Page };
26
+ //# 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;AACnC,QAAA,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,EAAE;AAC/B,YAAA,QAAQ,EAAE,EAAE;AACZ,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,MAAM,EAAE,GAAG;AACX,YAAA,GAAG,KAAK;AACT,SAAA,CAAC,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;AACtB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,EAAC,GAAG,IAAI,EAAE,GAAG,GAAG,EAAC,CAAC,CAAC;KACrC;AACF;;AC5BD;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ng-atomic/common",
3
- "version": "4.1.1",
3
+ "version": "4.3.0",
4
4
  "license": "MIT",
5
5
  "module": "fesm2015/ng-atomic-common.mjs",
6
6
  "es2020": "fesm2020/ng-atomic-common.mjs",
@@ -140,6 +140,30 @@
140
140
  "node": "./fesm2015/ng-atomic-common-stores-entity.mjs",
141
141
  "default": "./fesm2020/ng-atomic-common-stores-entity.mjs"
142
142
  },
143
+ "./stores/pagination": {
144
+ "types": "./stores/pagination/index.d.ts",
145
+ "esm2020": "./esm2020/stores/pagination/ng-atomic-common-stores-pagination.mjs",
146
+ "es2020": "./fesm2020/ng-atomic-common-stores-pagination.mjs",
147
+ "es2015": "./fesm2015/ng-atomic-common-stores-pagination.mjs",
148
+ "node": "./fesm2015/ng-atomic-common-stores-pagination.mjs",
149
+ "default": "./fesm2020/ng-atomic-common-stores-pagination.mjs"
150
+ },
151
+ "./stores/query": {
152
+ "types": "./stores/query/index.d.ts",
153
+ "esm2020": "./esm2020/stores/query/ng-atomic-common-stores-query.mjs",
154
+ "es2020": "./fesm2020/ng-atomic-common-stores-query.mjs",
155
+ "es2015": "./fesm2015/ng-atomic-common-stores-query.mjs",
156
+ "node": "./fesm2015/ng-atomic-common-stores-query.mjs",
157
+ "default": "./fesm2020/ng-atomic-common-stores-query.mjs"
158
+ },
159
+ "./stores/selection": {
160
+ "types": "./stores/selection/index.d.ts",
161
+ "esm2020": "./esm2020/stores/selection/ng-atomic-common-stores-selection.mjs",
162
+ "es2020": "./fesm2020/ng-atomic-common-stores-selection.mjs",
163
+ "es2015": "./fesm2015/ng-atomic-common-stores-selection.mjs",
164
+ "node": "./fesm2015/ng-atomic-common-stores-selection.mjs",
165
+ "default": "./fesm2020/ng-atomic-common-stores-selection.mjs"
166
+ },
143
167
  "./utils": {
144
168
  "types": "./utils/index.d.ts",
145
169
  "esm2020": "./esm2020/utils/ng-atomic-common-utils.mjs",
@@ -147,6 +171,14 @@
147
171
  "es2015": "./fesm2015/ng-atomic-common-utils.mjs",
148
172
  "node": "./fesm2015/ng-atomic-common-utils.mjs",
149
173
  "default": "./fesm2020/ng-atomic-common-utils.mjs"
174
+ },
175
+ "./utils/page": {
176
+ "types": "./utils/page/index.d.ts",
177
+ "esm2020": "./esm2020/utils/page/ng-atomic-common-utils-page.mjs",
178
+ "es2020": "./fesm2020/ng-atomic-common-utils-page.mjs",
179
+ "es2015": "./fesm2015/ng-atomic-common-utils-page.mjs",
180
+ "node": "./fesm2015/ng-atomic-common-utils-page.mjs",
181
+ "default": "./fesm2020/ng-atomic-common-utils-page.mjs"
150
182
  }
151
183
  },
152
184
  "sideEffects": false,
@@ -1,40 +1,20 @@
1
1
  import { ComponentStore } from '@ngrx/component-store';
2
- import { QueryResolverService } from '@ng-atomic/common/services/query-resolver';
3
2
  import { Observable } from 'rxjs';
4
- export declare type Page = any;
5
3
  export interface EntitiesState<E> {
6
4
  userId: string;
7
- idSet: Set<string>;
8
- query: string;
9
5
  entities: E[];
10
- page: Page;
11
- sortKey?: string;
12
- sortOrder?: 'asc' | 'desc';
13
6
  }
7
+ export declare const distinctUntilChangedArray: <T>() => import("rxjs").MonoTypeOperatorFunction<T>;
14
8
  export declare abstract class EntitiesStore<S extends EntitiesState<E>, E extends {
15
9
  id: string;
16
10
  }> extends ComponentStore<S> {
17
- queryResolver: QueryResolverService;
18
- abstract LANG_MAP: Record<string, string>;
19
- get page(): Page;
20
- get sortKey(): string;
21
- get sortOrder(): string;
22
- get idSet(): Set<string>;
11
+ get entities(): E[];
23
12
  userId$: Observable<string>;
24
13
  entities$: Observable<E[]>;
25
- constructor(initialState: S, queryResolver?: QueryResolverService);
14
+ constructor(initialState: S);
26
15
  setUserId: (observableOrValue: string | Observable<string>) => import("rxjs").Subscription;
27
16
  setEntities: (observableOrValue: E[] | Observable<E[]>) => import("rxjs").Subscription;
28
- setPage: (() => void) | ((observableOrValue: any) => import("rxjs").Subscription);
29
- setIdSet: (observableOrValue: Set<string> | Observable<Set<string>>) => import("rxjs").Subscription;
30
- setSortKey: (observableOrValue: string | Observable<string>) => import("rxjs").Subscription;
31
- setSortOrder: (observableOrValue: "asc" | "desc" | Observable<"asc" | "desc">) => import("rxjs").Subscription;
32
- addId: (observableOrValue: string | Observable<string>) => import("rxjs").Subscription;
33
- removeId: (observableOrValue: string | Observable<string>) => import("rxjs").Subscription;
34
- setQuery: (observableOrValue: string | Observable<string>) => import("rxjs").Subscription;
35
- getPage: (observableOrValue: E[] | Observable<E[]>) => import("rxjs").Subscription;
36
17
  getEntities: (observableOrValue: string | Observable<string>) => import("rxjs").Subscription;
37
- changeSortFromEvent(name: string): void;
38
18
  abstract _getEntities(data?: object): Observable<E[]>;
39
19
  }
40
20
  //# sourceMappingURL=entities.store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"entities.store.d.ts","sourceRoot":"","sources":["../../../../../libs/common/src/stores/entities/entities.store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAGlC,oBAAY,IAAI,GAAG,GAAG,CAAA;AAEtB,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,EAAE,CAAA;IACb,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CAC5B;AAED,8BAAsB,aAAa,CAAC,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS;IAAC,EAAE,EAAE,MAAM,CAAA;CAAC,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;IAetG,aAAa;IAdtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE1C,IAAI,IAAI,IAAI,IAAI,CAA0C;IAC1D,IAAI,OAAO,IAAI,MAAM,CAA6C;IAClE,IAAI,SAAS,IAAI,MAAM,CAA+C;IACtE,IAAI,KAAK,IAAI,GAAG,CAAC,MAAM,CAAC,CAA2C;IAEnE,OAAO,qBAAuE;IAC9E,SAAS,kBAEgF;gBAGvF,YAAY,EAAE,CAAC,EACR,aAAa,uBAA6B;IAOnD,SAAS,kFAAiE;IAC1E,WAAW,4EAAkE;IAC7E,OAAO,2EAA2D;IAClE,QAAQ,4FAAoE;IAC5E,UAAU,kFAAmE;IAC7E,YAAY,kGAA+E;IAC3F,KAAK,kFAA2F;IAChG,QAAQ,kFAEL;IACH,QAAQ,kFAA+D;IAEvE,OAAO,4EAEJ;IAEH,WAAW,kFAIR;IAEH,mBAAmB,CAAC,IAAI,EAAE,MAAM;IAUhC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC;CACtD"}
1
+ {"version":3,"file":"entities.store.d.ts","sourceRoot":"","sources":["../../../../../libs/common/src/stores/entities/entities.store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAGlC,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,CAAC,EAAE,CAAA;CACd;AAED,eAAO,MAAM,yBAAyB,qDAErC,CAAC;AAEF,8BAAsB,aAAa,CAAC,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS;IAAC,EAAE,EAAE,MAAM,CAAA;CAAC,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;IAC/G,IAAI,QAAQ,QAAkC;IAE9C,OAAO,qBAAuE;IAC9E,SAAS,kBAA2E;gBAExE,YAAY,EAAE,CAAC;IAK3B,SAAS,kFAAiE;IAC1E,WAAW,4EAAkE;IAE7E,WAAW,kFAIR;IAEH,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC;CACtD"}
@@ -0,0 +1,2 @@
1
+ export * from './pagination.store';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../libs/common/src/stores/pagination/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ng-atomic-common-stores-pagination.d.ts","sourceRoot":"","sources":["../../../../../libs/common/src/stores/pagination/ng-atomic-common-stores-pagination.ts"],"names":[],"mappings":"AAAA;;GAEG;;AAEH,cAAc,SAAS,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { ComponentStore } from "@ngrx/component-store";
2
+ import { Page } from '@ng-atomic/common/utils/page';
3
+ import { Observable } from "rxjs";
4
+ import * as i0 from "@angular/core";
5
+ export interface EntitiesState<E> {
6
+ page: Page;
7
+ }
8
+ export declare class PaginationStore extends ComponentStore<any> {
9
+ constructor();
10
+ get page(): any;
11
+ get sortKey(): any;
12
+ get sortOrder(): any;
13
+ get start(): any;
14
+ get end(): any;
15
+ page$: Observable<any>;
16
+ setPage: (observableOrValue: Page | Observable<Page>) => import("rxjs").Subscription;
17
+ setSortKey: (observableOrValue: string | Observable<string>) => import("rxjs").Subscription;
18
+ setSortOrder: (observableOrValue: "asc" | "desc" | Observable<"asc" | "desc">) => import("rxjs").Subscription;
19
+ patch: (observableOrValue: Partial<Page> | Observable<Partial<Page>>) => import("rxjs").Subscription;
20
+ getPageLength: (observableOrValue: any[] | Observable<any[]>) => import("rxjs").Subscription;
21
+ changeSortFromEvent(sortKey: string, page?: Page): void;
22
+ static ɵfac: i0.ɵɵFactoryDeclaration<PaginationStore, never>;
23
+ static ɵprov: i0.ɵɵInjectableDeclaration<PaginationStore>;
24
+ }
25
+ //# sourceMappingURL=pagination.store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.store.d.ts","sourceRoot":"","sources":["../../../../../libs/common/src/stores/pagination/pagination.store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AACpD,OAAO,EAAE,UAAU,EAAO,MAAM,MAAM,CAAC;;AAGvC,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,qBACa,eAAgB,SAAQ,cAAc,CAAC,GAAG,CAAC;;IAGtD,IAAI,IAAI,QAA4C;IACpD,IAAI,OAAO,QAAgC;IAC3C,IAAI,SAAS,QAAkC;IAC/C,IAAI,KAAK,QAA8B;IACvC,IAAI,GAAG,QAA4B;IAEnC,KAAK,kBAAoC;IAEzC,OAAO,8EAA2D;IAClE,UAAU,kFAA4F;IACtG,YAAY,kGAAwG;IACpH,KAAK,gGAA4F;IAEjG,aAAa,gFAEV;IAEH,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,IAAgB;yCApBhD,eAAe;6CAAf,eAAe;CA0B3B"}
@@ -0,0 +1,2 @@
1
+ export * from './query.store';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../libs/common/src/stores/query/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ng-atomic-common-stores-query.d.ts","sourceRoot":"","sources":["../../../../../libs/common/src/stores/query/ng-atomic-common-stores-query.ts"],"names":[],"mappings":"AAAA;;GAEG;;AAEH,cAAc,SAAS,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { QueryResolverService } from "@ng-atomic/common/services/query-resolver";
2
+ import { ComponentStore } from "@ngrx/component-store";
3
+ import * as i0 from "@angular/core";
4
+ export interface QueryState {
5
+ query: string;
6
+ }
7
+ export declare class QueryStore<E> extends ComponentStore<QueryState> {
8
+ protected queryResolver: QueryResolverService;
9
+ protected langMap: Record<string, string>;
10
+ constructor(queryResolver: QueryResolverService, langMap: Record<string, string>);
11
+ get query(): string;
12
+ query$: import("rxjs").Observable<string>;
13
+ setQuery: (observableOrValue: string | import("rxjs").Observable<string>) => import("rxjs").Subscription;
14
+ resolve(entities: E[]): E[];
15
+ static ɵfac: i0.ɵɵFactoryDeclaration<QueryStore<any>, [null, { optional: true; }]>;
16
+ static ɵprov: i0.ɵɵInjectableDeclaration<QueryStore<any>>;
17
+ }
18
+ //# sourceMappingURL=query.store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.store.d.ts","sourceRoot":"","sources":["../../../../../libs/common/src/stores/query/query.store.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;;AAEvD,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBACa,UAAU,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,UAAU,CAAC;IAEzD,SAAS,CAAC,aAAa,EAAE,oBAAoB;IACR,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;gBADpE,aAAa,EAAE,oBAAoB,EACE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAKhF,IAAI,KAAK,IAAI,MAAM,CAA6B;IAChD,MAAM,oCAAuC;IAE7C,QAAQ,iGAA+D;IAEvE,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE;yCAbhB,UAAU;6CAAV,UAAU;CAiBtB"}
@@ -0,0 +1,2 @@
1
+ export * from './selection.store';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../libs/common/src/stores/selection/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ng-atomic-common-stores-selection.d.ts","sourceRoot":"","sources":["../../../../../libs/common/src/stores/selection/ng-atomic-common-stores-selection.ts"],"names":[],"mappings":"AAAA;;GAEG;;AAEH,cAAc,SAAS,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { ComponentStore } from "@ngrx/component-store";
2
+ import * as i0 from "@angular/core";
3
+ export interface SelectionState {
4
+ idSet: Set<string>;
5
+ initialIdSet: Set<string> | null;
6
+ }
7
+ export declare class SelectionStore extends ComponentStore<SelectionState> {
8
+ get idSet(): Set<string>;
9
+ get initialIdSet(): Set<string>;
10
+ constructor();
11
+ setIdSet: (observableOrValue: Set<string> | import("rxjs").Observable<Set<string>>) => import("rxjs").Subscription;
12
+ setInitialIdSet: (observableOrValue: Set<string> | import("rxjs").Observable<Set<string>>) => import("rxjs").Subscription;
13
+ addIds: (ids: string[]) => import("rxjs").Subscription;
14
+ addId: (id: string) => import("rxjs").Subscription;
15
+ removeId: (id: string) => import("rxjs").Subscription;
16
+ toggleId: (id: string) => import("rxjs").Subscription;
17
+ getSelectedAndUnselected(): [Set<string>, Set<string>];
18
+ filterBySelectedIds<E extends {
19
+ id: string;
20
+ }>(entities: E[]): E[];
21
+ static ɵfac: i0.ɵɵFactoryDeclaration<SelectionStore, never>;
22
+ static ɵprov: i0.ɵɵInjectableDeclaration<SelectionStore>;
23
+ }
24
+ //# sourceMappingURL=selection.store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selection.store.d.ts","sourceRoot":"","sources":["../../../../../libs/common/src/stores/selection/selection.store.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;;AAEvD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACnB,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;CAElC;AAED,qBACa,cAAe,SAAQ,cAAc,CAAC,cAAc,CAAC;IAChE,IAAI,KAAK,IAAI,GAAG,CAAC,MAAM,CAAC,CAA2C;IACnE,IAAI,YAAY,IAAI,GAAG,CAAC,MAAM,CAAC,CAAkD;;IAMjF,QAAQ,2GAAoE;IAC5E,eAAe,2GAAkF;IAEjG,MAAM,QAAS,MAAM,EAAE,iCAAqD;IAC5E,KAAK,OAAQ,MAAM,iCAAuB;IAE1C,QAAQ,OAAQ,MAAM,iCAAuE;IAC7F,QAAQ,OAAQ,MAAM,iCAA8D;IAEpF,wBAAwB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAKtD,mBAAmB,CAAC,CAAC,SAAS;QAAC,EAAE,EAAE,MAAM,CAAA;KAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE;yCAtBpD,cAAc;6CAAd,cAAc;CAyB1B"}
@@ -0,0 +1,2 @@
1
+ export * from './page';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../libs/common/src/utils/page/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ng-atomic-common-utils-page.d.ts","sourceRoot":"","sources":["../../../../../libs/common/src/utils/page/ng-atomic-common-utils-page.ts"],"names":[],"mappings":"AAAA;;GAEG;;AAEH,cAAc,SAAS,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { PageEvent } from '@angular/material/paginator';
2
+ export interface Page extends PageEvent {
3
+ sortKey: string;
4
+ sortOrder: 'asc' | 'desc';
5
+ }
6
+ export declare class Page {
7
+ static from(event?: Partial<Page>): Page;
8
+ get start(): number;
9
+ get end(): number;
10
+ patch(obj: Partial<Page>): Page;
11
+ }
12
+ //# sourceMappingURL=page.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../../../../libs/common/src/utils/page/page.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAExD,MAAM,WAAW,IAAK,SAAQ,SAAS;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,KAAK,GAAG,MAAM,CAAC;CAC3B;AAED,qBAAa,IAAI;IACf,MAAM,CAAC,IAAI,CAAC,KAAK,GAAE,OAAO,CAAC,IAAI,CAAM,GAAG,IAAI;IAS5C,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAGhC"}