@ng-atomic/common 4.1.0 → 4.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/pipes/pagination/pagination.pipe.mjs +1 -2
- package/esm2020/stores/entities/entities.store.mjs +8 -33
- package/esm2020/stores/pagination/index.mjs +2 -0
- package/esm2020/stores/pagination/ng-atomic-common-stores-pagination.mjs +5 -0
- package/esm2020/stores/pagination/pagination.store.mjs +32 -0
- package/esm2020/stores/query/index.mjs +2 -0
- package/esm2020/stores/query/ng-atomic-common-stores-query.mjs +5 -0
- package/esm2020/stores/query/query.store.mjs +30 -0
- package/esm2020/stores/selection/index.mjs +2 -0
- package/esm2020/stores/selection/ng-atomic-common-stores-selection.mjs +5 -0
- package/esm2020/stores/selection/selection.store.mjs +29 -0
- package/esm2020/utils/page/index.mjs +2 -0
- package/esm2020/utils/page/ng-atomic-common-utils-page.mjs +5 -0
- package/esm2020/utils/page/page.mjs +20 -0
- package/fesm2015/ng-atomic-common-pipes-pagination.mjs +0 -1
- package/fesm2015/ng-atomic-common-pipes-pagination.mjs.map +1 -1
- package/fesm2015/ng-atomic-common-stores-entities.mjs +8 -33
- package/fesm2015/ng-atomic-common-stores-entities.mjs.map +1 -1
- package/fesm2015/ng-atomic-common-stores-pagination.mjs +41 -0
- package/fesm2015/ng-atomic-common-stores-pagination.mjs.map +1 -0
- package/fesm2015/ng-atomic-common-stores-query.mjs +40 -0
- package/fesm2015/ng-atomic-common-stores-query.mjs.map +1 -0
- package/fesm2015/ng-atomic-common-stores-selection.mjs +38 -0
- package/fesm2015/ng-atomic-common-stores-selection.mjs.map +1 -0
- package/fesm2015/ng-atomic-common-utils-page.mjs +21 -0
- package/fesm2015/ng-atomic-common-utils-page.mjs.map +1 -0
- package/fesm2020/ng-atomic-common-pipes-pagination.mjs +0 -1
- package/fesm2020/ng-atomic-common-pipes-pagination.mjs.map +1 -1
- package/fesm2020/ng-atomic-common-stores-entities.mjs +8 -33
- package/fesm2020/ng-atomic-common-stores-entities.mjs.map +1 -1
- package/fesm2020/ng-atomic-common-stores-pagination.mjs +39 -0
- package/fesm2020/ng-atomic-common-stores-pagination.mjs.map +1 -0
- package/fesm2020/ng-atomic-common-stores-query.mjs +36 -0
- package/fesm2020/ng-atomic-common-stores-query.mjs.map +1 -0
- package/fesm2020/ng-atomic-common-stores-selection.mjs +36 -0
- package/fesm2020/ng-atomic-common-stores-selection.mjs.map +1 -0
- package/fesm2020/ng-atomic-common-utils-page.mjs +26 -0
- package/fesm2020/ng-atomic-common-utils-page.mjs.map +1 -0
- package/package.json +33 -1
- package/pipes/pagination/pagination.pipe.d.ts.map +1 -1
- package/stores/entities/entities.store.d.ts +3 -23
- package/stores/entities/entities.store.d.ts.map +1 -1
- package/stores/pagination/index.d.ts +2 -0
- package/stores/pagination/index.d.ts.map +1 -0
- package/stores/pagination/ng-atomic-common-stores-pagination.d.ts.map +1 -0
- package/stores/pagination/pagination.store.d.ts +25 -0
- package/stores/pagination/pagination.store.d.ts.map +1 -0
- package/stores/query/index.d.ts +2 -0
- package/stores/query/index.d.ts.map +1 -0
- package/stores/query/ng-atomic-common-stores-query.d.ts.map +1 -0
- package/stores/query/query.store.d.ts +18 -0
- package/stores/query/query.store.d.ts.map +1 -0
- package/stores/selection/index.d.ts +2 -0
- package/stores/selection/index.d.ts.map +1 -0
- package/stores/selection/ng-atomic-common-stores-selection.d.ts.map +1 -0
- package/stores/selection/selection.store.d.ts +24 -0
- package/stores/selection/selection.store.d.ts.map +1 -0
- package/utils/page/index.d.ts +2 -0
- package/utils/page/index.d.ts.map +1 -0
- package/utils/page/ng-atomic-common-utils-page.d.ts.map +1 -0
- package/utils/page/page.d.ts +12 -0
- package/utils/page/page.d.ts.map +1 -0
|
@@ -9,7 +9,6 @@ export class PaginationPipe {
|
|
|
9
9
|
this.transformer ?? (this.transformer = smartSortByTransformer);
|
|
10
10
|
}
|
|
11
11
|
transform(items, { sortKey, sortOrder, start, end }) {
|
|
12
|
-
// transform<T>(items: T[], key: string, order: 'asc' | 'desc', start: number, end: number): T[] {
|
|
13
12
|
return this.slicePipe.transform(this.transformer(items, sortKey, sortOrder), start, end);
|
|
14
13
|
}
|
|
15
14
|
}
|
|
@@ -27,4 +26,4 @@ PaginationPipe.ɵpipe = /*@__PURE__*/ i0.ɵɵdefinePipe({ name: "pagination", ty
|
|
|
27
26
|
type: Inject,
|
|
28
27
|
args: [SMART_SORT_BY_TRANSFORMER]
|
|
29
28
|
}] }]; }, null); })();
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL3BpcGVzL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxzQkFBc0IsRUFBMEIseUJBQXlCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7QUFNbEksTUFBTSxPQUFPLGNBQWM7SUFHekIsWUFHVSxXQUFtQztRQUFuQyxnQkFBVyxHQUFYLFdBQVcsQ0FBd0I7UUFMckMsY0FBUyxHQUFHLElBQUksU0FBUyxFQUFFLENBQUM7UUFPbEMsSUFBSSxDQUFDLFdBQVcsS0FBaEIsSUFBSSxDQUFDLFdBQVcsR0FBSyxzQkFBc0IsRUFBQztJQUM5QyxDQUFDO0lBRUQsU0FBUyxDQUFJLEtBQVUsRUFBRSxFQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBMkU7UUFDakksT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzNGLENBQUM7OzRFQWJVLGNBQWMsdUJBS2YseUJBQXlCO2lGQUx4QixjQUFjO3VGQUFkLGNBQWM7Y0FKMUIsSUFBSTtlQUFDO2dCQUNKLElBQUksRUFBRSxZQUFZO2dCQUNsQixJQUFJLEVBQUUsSUFBSTthQUNYOztzQkFLSSxRQUFROztzQkFDUixNQUFNO3VCQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNsaWNlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3QsIE9wdGlvbmFsLCBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBzbWFydFNvcnRCeVRyYW5zZm9ybWVyLCBTbWFydFNvcnRCeVRyYW5zZm9ybWVyLCBTTUFSVF9TT1JUX0JZX1RSQU5TRk9STUVSIH0gZnJvbSAnQG5nLWF0b21pYy9jb21tb24vcGlwZXMvc21hcnQtc29ydC1ieSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ3BhZ2luYXRpb24nLFxuICBwdXJlOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBQYWdpbmF0aW9uUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBwcml2YXRlIHNsaWNlUGlwZSA9IG5ldyBTbGljZVBpcGUoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoU01BUlRfU09SVF9CWV9UUkFOU0ZPUk1FUilcbiAgICBwcml2YXRlIHRyYW5zZm9ybWVyOiBTbWFydFNvcnRCeVRyYW5zZm9ybWVyLFxuICApIHtcbiAgICB0aGlzLnRyYW5zZm9ybWVyID8/PSBzbWFydFNvcnRCeVRyYW5zZm9ybWVyO1xuICB9XG5cbiAgdHJhbnNmb3JtPFQ+KGl0ZW1zOiBUW10sIHtzb3J0S2V5LCBzb3J0T3JkZXIsIHN0YXJ0LCBlbmR9OiB7c29ydEtleTogc3RyaW5nLCBzb3J0T3JkZXI6ICdhc2MnIHwgJ2Rlc2MnLCBzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlcn0pIHtcbiAgICByZXR1cm4gdGhpcy5zbGljZVBpcGUudHJhbnNmb3JtKHRoaXMudHJhbnNmb3JtZXIoaXRlbXMsIHNvcnRLZXksIHNvcnRPcmRlciksIHN0YXJ0LCBlbmQpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,44 +1,19 @@
|
|
|
1
1
|
import { ComponentStore } from '@ngrx/component-store';
|
|
2
|
-
import { QueryResolverService } from '@ng-atomic/common/services/query-resolver';
|
|
3
2
|
import { compareById } from '@ng-atomic/common/utils';
|
|
4
|
-
import { distinctUntilChanged, tap,
|
|
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
|
|
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(({
|
|
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
|
|
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,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXRpZXMuc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvc3RvcmVzL2VudGl0aWVzL2VudGl0aWVzLnN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFdEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFPOUUsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsR0FBTSxFQUFFO0lBQy9DLE9BQU8sb0JBQW9CLENBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUM1RixDQUFDLENBQUM7QUFFRixNQUFNLE9BQWdCLGFBQWtFLFNBQVEsY0FBaUI7SUFNL0csWUFBWSxZQUFlO1FBQ3pCLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUp0QixZQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDOUUsY0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLFFBQVEsRUFBQyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBT3BGLGNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLE1BQWMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFDLEdBQUcsS0FBSyxFQUFFLE1BQU0sRUFBQyxDQUFDLENBQUMsQ0FBQztRQUMxRSxnQkFBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsUUFBYSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUMsR0FBRyxLQUFLLEVBQUUsUUFBUSxFQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTdFLGdCQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQTJCLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ3JFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFDMUIsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUMsTUFBTSxFQUFDLENBQUMsQ0FBQyxFQUNsRCxHQUFHLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FDbkQsQ0FBQyxDQUFDO1FBVkQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQVJELElBQUksUUFBUSxLQUFLLE9BQU8sSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7Q0FvQi9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50U3RvcmUgfSBmcm9tICdAbmdyeC9jb21wb25lbnQtc3RvcmUnO1xuaW1wb3J0IHsgY29tcGFyZUJ5SWQgfSBmcm9tICdAbmctYXRvbWljL2NvbW1vbi91dGlscyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgdGFwLCBmaWx0ZXIsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdGllc1N0YXRlPEU+IHtcbiAgdXNlcklkOiBzdHJpbmc7IFxuICBlbnRpdGllczogRVtdXG59XG5cbmV4cG9ydCBjb25zdCBkaXN0aW5jdFVudGlsQ2hhbmdlZEFycmF5ID0gPFQ+KCkgPT4ge1xuICByZXR1cm4gZGlzdGluY3RVbnRpbENoYW5nZWQ8VD4oKHByZSwgY3VyKSA9PiBKU09OLnN0cmluZ2lmeShwcmUpID09PSBKU09OLnN0cmluZ2lmeShjdXIpKTtcbn07XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBFbnRpdGllc1N0b3JlPFMgZXh0ZW5kcyBFbnRpdGllc1N0YXRlPEU+LCBFIGV4dGVuZHMge2lkOiBzdHJpbmd9PiBleHRlbmRzIENvbXBvbmVudFN0b3JlPFM+IHtcbiAgZ2V0IGVudGl0aWVzKCkgeyByZXR1cm4gdGhpcy5nZXQoKS5lbnRpdGllczsgfVxuXG4gIHVzZXJJZCQgPSB0aGlzLnNlbGVjdChzdGF0ZSA9PiBzdGF0ZS51c2VySWQpLnBpcGUoZmlsdGVyKHVzZXJJZCA9PiAhIXVzZXJJZCkpO1xuICBlbnRpdGllcyQgPSB0aGlzLnNlbGVjdCgoe2VudGl0aWVzfSkgPT4gZW50aXRpZXMgPyBlbnRpdGllcy5zb3J0KGNvbXBhcmVCeUlkKSA6IFtdKTtcbiAgXG4gIGNvbnN0cnVjdG9yKGluaXRpYWxTdGF0ZTogUykge1xuICAgIHN1cGVyKGluaXRpYWxTdGF0ZSk7XG4gICAgdGhpcy5nZXRFbnRpdGllcyh0aGlzLnVzZXJJZCQpO1xuICB9XG5cbiAgc2V0VXNlcklkID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgdXNlcklkOiBzdHJpbmcpID0+ICh7Li4uc3RhdGUsIHVzZXJJZH0pKTtcbiAgc2V0RW50aXRpZXMgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBlbnRpdGllczogRVtdKSA9PiAoey4uLnN0YXRlLCBlbnRpdGllc30pKTtcblxuICBnZXRFbnRpdGllcyA9IHRoaXMuZWZmZWN0KCh1c2VySWQkOiBPYnNlcnZhYmxlPHN0cmluZz4pID0+IHVzZXJJZCQucGlwZShcbiAgICBmaWx0ZXIodXNlcklkID0+ICEhdXNlcklkKSxcbiAgICBzd2l0Y2hNYXAoKHVzZXJJZCkgPT4gdGhpcy5fZ2V0RW50aXRpZXMoe3VzZXJJZH0pKSxcbiAgICB0YXAoKGVudGl0aWVzOiBFW10pID0+IHRoaXMuc2V0RW50aXRpZXMoZW50aXRpZXMpKSxcbiAgKSk7IFxuXG4gIGFic3RyYWN0IF9nZXRFbnRpdGllcyhkYXRhPzogb2JqZWN0KTogT2JzZXJ2YWJsZTxFW10+O1xufSJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './pagination.store';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvc3RvcmVzL3BhZ2luYXRpb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcGFnaW5hdGlvbi5zdG9yZSc7XG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctYXRvbWljLWNvbW1vbi1zdG9yZXMtcGFnaW5hdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9zdG9yZXMvcGFnaW5hdGlvbi9uZy1hdG9taWMtY29tbW9uLXN0b3Jlcy1wYWdpbmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { ComponentStore } from "@ngrx/component-store";
|
|
2
|
+
import { Page } from '@ng-atomic/common/utils/page';
|
|
3
|
+
import { tap } from "rxjs";
|
|
4
|
+
import { Injectable } from "@angular/core";
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class PaginationStore extends ComponentStore {
|
|
7
|
+
constructor() {
|
|
8
|
+
super({ page: Page.from() });
|
|
9
|
+
this.page$ = this.select(state => state.page);
|
|
10
|
+
this.setPage = this.updater((state, page) => ({ ...state, page }));
|
|
11
|
+
this.setSortKey = this.updater((state, sortKey) => ({ ...state, page: this.page.patch({ sortKey }) }));
|
|
12
|
+
this.setSortOrder = this.updater((state, sortOrder) => ({ ...state, page: this.page.patch({ sortOrder }) }));
|
|
13
|
+
this.patch = this.updater((state, page) => ({ ...state, page: state.page.patch(page) }));
|
|
14
|
+
this.getPageLength = this.effect((entities$) => entities$.pipe(tap(({ length }) => this.setPage(this.page.patch({ length })))));
|
|
15
|
+
}
|
|
16
|
+
get page() { return this.get(state => state.page); }
|
|
17
|
+
get sortKey() { return this.page.sortKey; }
|
|
18
|
+
get sortOrder() { return this.page.sortOrder; }
|
|
19
|
+
get start() { return this.page.start; }
|
|
20
|
+
get end() { return this.page.end; }
|
|
21
|
+
changeSortFromEvent(sortKey, page = this.page) {
|
|
22
|
+
const reverse = (order) => order === 'asc' ? 'desc' : 'asc';
|
|
23
|
+
const sortOrder = sortKey === page.sortKey ? reverse(page.sortOrder) : 'asc';
|
|
24
|
+
this.patch({ sortKey, sortOrder });
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
PaginationStore.ɵfac = function PaginationStore_Factory(t) { return new (t || PaginationStore)(); };
|
|
28
|
+
PaginationStore.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: PaginationStore, factory: PaginationStore.ɵfac });
|
|
29
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PaginationStore, [{
|
|
30
|
+
type: Injectable
|
|
31
|
+
}], function () { return []; }, null); })();
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5zdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9zdG9yZXMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLnN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEQsT0FBTyxFQUFjLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU8zQyxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxjQUFtQjtJQUN0RDtRQUFlLEtBQUssQ0FBQyxFQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUMsQ0FBQyxDQUFBO1FBUXpDLFVBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXpDLFlBQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLElBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFDLEdBQUcsS0FBSyxFQUFFLElBQUksRUFBQyxDQUFDLENBQUMsQ0FBQztRQUNsRSxlQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxPQUFlLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBQyxHQUFHLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBQyxPQUFPLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RHLGlCQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxTQUF5QixFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUMsR0FBRyxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztRQUNwSCxVQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFtQixFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUMsR0FBRyxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO1FBRWpHLGtCQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQTRCLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQzFFLEdBQUcsQ0FBQyxDQUFDLEVBQUMsTUFBTSxFQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBQyxNQUFNLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDbEUsQ0FBQyxDQUFDO0lBakJzQyxDQUFDO0lBRTFDLElBQUksSUFBSSxLQUFLLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEQsSUFBSSxPQUFPLEtBQUssT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDM0MsSUFBSSxTQUFTLEtBQUssT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDL0MsSUFBSSxLQUFLLEtBQUssT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDdkMsSUFBSSxHQUFHLEtBQUssT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFhbkMsbUJBQW1CLENBQUMsT0FBZSxFQUFFLE9BQWEsSUFBSSxDQUFDLElBQUk7UUFDekQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxLQUFxQixFQUFFLEVBQUUsQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUM1RSxNQUFNLFNBQVMsR0FBRyxPQUFPLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQzdFLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBQyxPQUFPLEVBQUUsU0FBUyxFQUFDLENBQUMsQ0FBQztJQUNuQyxDQUFDOzs4RUF4QlUsZUFBZTtxRUFBZixlQUFlLFdBQWYsZUFBZTt1RkFBZixlQUFlO2NBRDNCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRTdG9yZSB9IGZyb20gXCJAbmdyeC9jb21wb25lbnQtc3RvcmVcIjtcbmltcG9ydCB7IFBhZ2UgfSBmcm9tICdAbmctYXRvbWljL2NvbW1vbi91dGlscy9wYWdlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIHRhcCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdGllc1N0YXRlPEU+IHtcbiAgcGFnZTogUGFnZTtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFBhZ2luYXRpb25TdG9yZSBleHRlbmRzIENvbXBvbmVudFN0b3JlPGFueT4ge1xuICBjb25zdHJ1Y3RvcigpIHtzdXBlcih7cGFnZTogUGFnZS5mcm9tKCl9KX1cblxuICBnZXQgcGFnZSgpIHsgcmV0dXJuIHRoaXMuZ2V0KHN0YXRlID0+IHN0YXRlLnBhZ2UpOyB9XG4gIGdldCBzb3J0S2V5KCkgeyByZXR1cm4gdGhpcy5wYWdlLnNvcnRLZXk7IH1cbiAgZ2V0IHNvcnRPcmRlcigpIHsgcmV0dXJuIHRoaXMucGFnZS5zb3J0T3JkZXI7IH1cbiAgZ2V0IHN0YXJ0KCkgeyByZXR1cm4gdGhpcy5wYWdlLnN0YXJ0OyB9XG4gIGdldCBlbmQoKSB7IHJldHVybiB0aGlzLnBhZ2UuZW5kOyB9XG5cbiAgcGFnZSQgPSB0aGlzLnNlbGVjdChzdGF0ZSA9PiBzdGF0ZS5wYWdlKTtcblxuICBzZXRQYWdlID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgcGFnZTogUGFnZSkgPT4gKHsuLi5zdGF0ZSwgcGFnZX0pKTtcbiAgc2V0U29ydEtleSA9IHRoaXMudXBkYXRlcigoc3RhdGUsIHNvcnRLZXk6IHN0cmluZykgPT4gKHsuLi5zdGF0ZSwgcGFnZTogdGhpcy5wYWdlLnBhdGNoKHtzb3J0S2V5fSl9KSk7XG4gIHNldFNvcnRPcmRlciA9IHRoaXMudXBkYXRlcigoc3RhdGUsIHNvcnRPcmRlcjogJ2FzYycgfCAnZGVzYycpID0+ICh7Li4uc3RhdGUsIHBhZ2U6IHRoaXMucGFnZS5wYXRjaCh7c29ydE9yZGVyfSl9KSk7XG4gIHBhdGNoID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgcGFnZTogUGFydGlhbDxQYWdlPikgPT4gKHsuLi5zdGF0ZSwgcGFnZTogc3RhdGUucGFnZS5wYXRjaChwYWdlKX0pKTtcbiBcbiAgZ2V0UGFnZUxlbmd0aCA9IHRoaXMuZWZmZWN0KChlbnRpdGllcyQ6IE9ic2VydmFibGU8YW55W10+KSA9PiBlbnRpdGllcyQucGlwZShcbiAgICB0YXAoKHtsZW5ndGh9OiBhbnlbXSkgPT4gdGhpcy5zZXRQYWdlKHRoaXMucGFnZS5wYXRjaCh7bGVuZ3RofSkpKSxcbiAgKSk7XG5cbiAgY2hhbmdlU29ydEZyb21FdmVudChzb3J0S2V5OiBzdHJpbmcsIHBhZ2U6IFBhZ2UgPSB0aGlzLnBhZ2UpIHtcbiAgICBjb25zdCByZXZlcnNlID0gKG9yZGVyOiAnYXNjJyB8ICdkZXNjJykgPT4gb3JkZXIgPT09ICdhc2MnID8gJ2Rlc2MnIDogJ2FzYyc7XG4gICAgY29uc3Qgc29ydE9yZGVyID0gc29ydEtleSA9PT0gcGFnZS5zb3J0S2V5ID8gcmV2ZXJzZShwYWdlLnNvcnRPcmRlcikgOiAnYXNjJztcbiAgICB0aGlzLnBhdGNoKHtzb3J0S2V5LCBzb3J0T3JkZXJ9KTtcbiAgfVxuXG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './query.store';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvc3RvcmVzL3F1ZXJ5L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9xdWVyeS5zdG9yZSc7XG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctYXRvbWljLWNvbW1vbi1zdG9yZXMtcXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvc3RvcmVzL3F1ZXJ5L25nLWF0b21pYy1jb21tb24tc3RvcmVzLXF1ZXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Inject, Injectable, Optional } from "@angular/core";
|
|
2
|
+
import { DOMAIN_LANG_MAP } from "@ng-atomic/common/pipes/domain";
|
|
3
|
+
import { QueryResolverService } from "@ng-atomic/common/services/query-resolver";
|
|
4
|
+
import { ComponentStore } from "@ngrx/component-store";
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@ng-atomic/common/services/query-resolver";
|
|
7
|
+
export class QueryStore extends ComponentStore {
|
|
8
|
+
constructor(queryResolver, langMap) {
|
|
9
|
+
super({ query: '' });
|
|
10
|
+
this.queryResolver = queryResolver;
|
|
11
|
+
this.langMap = langMap;
|
|
12
|
+
this.query$ = this.select((state) => state.query);
|
|
13
|
+
this.setQuery = this.updater((state, query) => ({ ...state, query }));
|
|
14
|
+
}
|
|
15
|
+
get query() { return this.get().query; }
|
|
16
|
+
resolve(entities) {
|
|
17
|
+
return this.queryResolver.resolve(entities, this.query, this.langMap);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
QueryStore.ɵfac = function QueryStore_Factory(t) { return new (t || QueryStore)(i0.ɵɵinject(i1.QueryResolverService), i0.ɵɵinject(DOMAIN_LANG_MAP, 8)); };
|
|
21
|
+
QueryStore.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: QueryStore, factory: QueryStore.ɵfac });
|
|
22
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(QueryStore, [{
|
|
23
|
+
type: Injectable
|
|
24
|
+
}], function () { return [{ type: i1.QueryResolverService }, { type: undefined, decorators: [{
|
|
25
|
+
type: Optional
|
|
26
|
+
}, {
|
|
27
|
+
type: Inject,
|
|
28
|
+
args: [DOMAIN_LANG_MAP]
|
|
29
|
+
}] }]; }, null); })();
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvc3RvcmVzL3F1ZXJ5L3F1ZXJ5LnN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDakYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7QUFPdkQsTUFBTSxPQUFPLFVBQWMsU0FBUSxjQUEwQjtJQUMzRCxZQUNZLGFBQW1DLEVBQ0UsT0FBK0I7UUFFOUUsS0FBSyxDQUFDLEVBQUMsS0FBSyxFQUFFLEVBQUUsRUFBQyxDQUFDLENBQUM7UUFIVCxrQkFBYSxHQUFiLGFBQWEsQ0FBc0I7UUFDRSxZQUFPLEdBQVAsT0FBTyxDQUF3QjtRQU1oRixXQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTdDLGFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFDLEdBQUcsS0FBSyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUMsQ0FBQztJQUx2RSxDQUFDO0lBRUQsSUFBSSxLQUFLLEtBQWEsT0FBTyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUtoRCxPQUFPLENBQUMsUUFBYTtRQUNuQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4RSxDQUFDOztvRUFmVSxVQUFVLG9EQUdDLGVBQWU7Z0VBSDFCLFVBQVUsV0FBVixVQUFVO3VGQUFWLFVBQVU7Y0FEdEIsVUFBVTs7c0JBSU4sUUFBUTs7c0JBQUksTUFBTTt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBET01BSU5fTEFOR19NQVAgfSBmcm9tIFwiQG5nLWF0b21pYy9jb21tb24vcGlwZXMvZG9tYWluXCI7XG5pbXBvcnQgeyBRdWVyeVJlc29sdmVyU2VydmljZSB9IGZyb20gXCJAbmctYXRvbWljL2NvbW1vbi9zZXJ2aWNlcy9xdWVyeS1yZXNvbHZlclwiO1xuaW1wb3J0IHsgQ29tcG9uZW50U3RvcmUgfSBmcm9tIFwiQG5ncngvY29tcG9uZW50LXN0b3JlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUXVlcnlTdGF0ZSB7XG4gIHF1ZXJ5OiBzdHJpbmc7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBRdWVyeVN0b3JlPEU+IGV4dGVuZHMgQ29tcG9uZW50U3RvcmU8UXVlcnlTdGF0ZT4ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgcXVlcnlSZXNvbHZlcjogUXVlcnlSZXNvbHZlclNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChET01BSU5fTEFOR19NQVApIHByb3RlY3RlZCBsYW5nTWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuICApIHtcbiAgICBzdXBlcih7cXVlcnk6ICcnfSk7XG4gIH1cblxuICBnZXQgcXVlcnkoKTogc3RyaW5nIHsgcmV0dXJuIHRoaXMuZ2V0KCkucXVlcnk7IH1cbiAgcXVlcnkkID0gdGhpcy5zZWxlY3QoKHN0YXRlKSA9PiBzdGF0ZS5xdWVyeSk7XG5cbiAgc2V0UXVlcnkgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBxdWVyeTogc3RyaW5nKSA9PiAoey4uLnN0YXRlLCBxdWVyeX0pKTtcblxuICByZXNvbHZlKGVudGl0aWVzOiBFW10pOiBFW10ge1xuICAgIHJldHVybiB0aGlzLnF1ZXJ5UmVzb2x2ZXIucmVzb2x2ZShlbnRpdGllcywgdGhpcy5xdWVyeSwgdGhpcy5sYW5nTWFwKTtcbiAgfVxuXG59Il19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './selection.store';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvc3RvcmVzL3NlbGVjdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zZWxlY3Rpb24uc3RvcmUnO1xuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctYXRvbWljLWNvbW1vbi1zdG9yZXMtc2VsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL3N0b3Jlcy9zZWxlY3Rpb24vbmctYXRvbWljLWNvbW1vbi1zdG9yZXMtc2VsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Injectable } from "@angular/core";
|
|
2
|
+
import { ComponentStore } from "@ngrx/component-store";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class SelectionStore extends ComponentStore {
|
|
5
|
+
constructor() {
|
|
6
|
+
super({ idSet: new Set(), initialIdSet: null });
|
|
7
|
+
this.setIdSet = this.updater((state, idSet) => ({ ...state, idSet }));
|
|
8
|
+
this.setInitialIdSet = this.updater((state, initialIdSet) => ({ ...state, initialIdSet }));
|
|
9
|
+
this.addIds = (ids) => this.setIdSet(new Set([...this.idSet, ...ids]));
|
|
10
|
+
this.addId = (id) => this.addIds([id]);
|
|
11
|
+
this.removeId = (id) => this.setIdSet(new Set([...this.idSet].filter(_id => _id !== id)));
|
|
12
|
+
this.toggleId = (id) => this.idSet.has(id) ? this.removeId(id) : this.addId(id);
|
|
13
|
+
}
|
|
14
|
+
get idSet() { return this.get(state => state.idSet); }
|
|
15
|
+
get initialIdSet() { return this.get(state => state.initialIdSet); }
|
|
16
|
+
getSelectedAndUnselected() {
|
|
17
|
+
const unselectedIdSet = new Set([...this.initialIdSet].filter(id => !this.idSet.has(id)));
|
|
18
|
+
return [this.idSet, unselectedIdSet];
|
|
19
|
+
}
|
|
20
|
+
filterBySelectedIds(entities) {
|
|
21
|
+
return entities.filter(({ id }) => this.idSet.has(id));
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
SelectionStore.ɵfac = function SelectionStore_Factory(t) { return new (t || SelectionStore)(); };
|
|
25
|
+
SelectionStore.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: SelectionStore, factory: SelectionStore.ɵfac });
|
|
26
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SelectionStore, [{
|
|
27
|
+
type: Injectable
|
|
28
|
+
}], function () { return []; }, null); })();
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLnN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL3N0b3Jlcy9zZWxlY3Rpb24vc2VsZWN0aW9uLnN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQVN2RCxNQUFNLE9BQU8sY0FBZSxTQUFRLGNBQThCO0lBSWhFO1FBQ0UsS0FBSyxDQUFDLEVBQUMsS0FBSyxFQUFFLElBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7UUFHaEQsYUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBa0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFDLEdBQUcsS0FBSyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUMsQ0FBQztRQUM1RSxvQkFBZSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsWUFBeUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFDLEdBQUcsS0FBSyxFQUFFLFlBQVksRUFBQyxDQUFDLENBQUMsQ0FBQztRQUVqRyxXQUFNLEdBQUcsQ0FBQyxHQUFhLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUUsVUFBSyxHQUFHLENBQUMsRUFBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUUxQyxhQUFRLEdBQUcsQ0FBQyxFQUFVLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdGLGFBQVEsR0FBRyxDQUFDLEVBQVUsRUFBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFUcEYsQ0FBQztJQUxELElBQUksS0FBSyxLQUFrQixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25FLElBQUksWUFBWSxLQUFrQixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBZWpGLHdCQUF3QjtRQUN0QixNQUFNLGVBQWUsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFGLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxtQkFBbUIsQ0FBeUIsUUFBYTtRQUN2RCxPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7OzRFQXhCVSxjQUFjO29FQUFkLGNBQWMsV0FBZCxjQUFjO3VGQUFkLGNBQWM7Y0FEMUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQ29tcG9uZW50U3RvcmUgfSBmcm9tIFwiQG5ncngvY29tcG9uZW50LXN0b3JlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0aW9uU3RhdGUge1xuICBpZFNldDogU2V0PHN0cmluZz47XG4gIGluaXRpYWxJZFNldDogU2V0PHN0cmluZz4gfCBudWxsO1xuXG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTZWxlY3Rpb25TdG9yZSBleHRlbmRzIENvbXBvbmVudFN0b3JlPFNlbGVjdGlvblN0YXRlPiB7XG4gIGdldCBpZFNldCgpOiBTZXQ8c3RyaW5nPiB7IHJldHVybiB0aGlzLmdldChzdGF0ZSA9PiBzdGF0ZS5pZFNldCk7IH1cbiAgZ2V0IGluaXRpYWxJZFNldCgpOiBTZXQ8c3RyaW5nPiB7IHJldHVybiB0aGlzLmdldChzdGF0ZSA9PiBzdGF0ZS5pbml0aWFsSWRTZXQpOyB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoe2lkU2V0OiBuZXcgU2V0KCksIGluaXRpYWxJZFNldDogbnVsbH0pO1xuICB9XG5cbiAgc2V0SWRTZXQgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBpZFNldDogU2V0PHN0cmluZz4pID0+ICh7Li4uc3RhdGUsIGlkU2V0fSkpO1xuICBzZXRJbml0aWFsSWRTZXQgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBpbml0aWFsSWRTZXQ6IFNldDxzdHJpbmc+KSA9PiAoey4uLnN0YXRlLCBpbml0aWFsSWRTZXR9KSk7XG5cbiAgYWRkSWRzID0gKGlkczogc3RyaW5nW10pID0+IHRoaXMuc2V0SWRTZXQobmV3IFNldChbLi4udGhpcy5pZFNldCwgLi4uaWRzXSkpO1xuICBhZGRJZCA9IChpZDogc3RyaW5nKSA9PiB0aGlzLmFkZElkcyhbaWRdKTtcbiAgXG4gIHJlbW92ZUlkID0gKGlkOiBzdHJpbmcpID0+IHRoaXMuc2V0SWRTZXQobmV3IFNldChbLi4udGhpcy5pZFNldF0uZmlsdGVyKF9pZCA9PiBfaWQgIT09IGlkKSkpO1xuICB0b2dnbGVJZCA9IChpZDogc3RyaW5nKSAgPT4gdGhpcy5pZFNldC5oYXMoaWQpID8gdGhpcy5yZW1vdmVJZChpZCkgOiB0aGlzLmFkZElkKGlkKTtcblxuICBnZXRTZWxlY3RlZEFuZFVuc2VsZWN0ZWQoKTogW1NldDxzdHJpbmc+LCBTZXQ8c3RyaW5nPl0ge1xuICAgIGNvbnN0IHVuc2VsZWN0ZWRJZFNldCA9IG5ldyBTZXQoWy4uLnRoaXMuaW5pdGlhbElkU2V0XS5maWx0ZXIoaWQgPT4gIXRoaXMuaWRTZXQuaGFzKGlkKSkpO1xuICAgIHJldHVybiBbdGhpcy5pZFNldCwgdW5zZWxlY3RlZElkU2V0XTtcbiAgfVxuXG4gIGZpbHRlckJ5U2VsZWN0ZWRJZHM8RSBleHRlbmRzIHtpZDogc3RyaW5nfT4oZW50aXRpZXM6IEVbXSk6IEVbXSB7XG4gICAgcmV0dXJuIGVudGl0aWVzLmZpbHRlcigoe2lkfSkgPT4gdGhpcy5pZFNldC5oYXMoaWQpKTtcbiAgfVxufSJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './page';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvdXRpbHMvcGFnZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcGFnZSc7XG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctYXRvbWljLWNvbW1vbi11dGlscy1wYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL3V0aWxzL3BhZ2UvbmctYXRvbWljLWNvbW1vbi11dGlscy1wYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export class Page {
|
|
2
|
+
static from(event = {}) {
|
|
3
|
+
return Object.assign(new Page(), {
|
|
4
|
+
pageSize: 50,
|
|
5
|
+
pageIndex: 0,
|
|
6
|
+
length: 100,
|
|
7
|
+
...event
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
get start() {
|
|
11
|
+
return this.pageIndex * this.pageSize;
|
|
12
|
+
}
|
|
13
|
+
get end() {
|
|
14
|
+
return Math.min((this.pageIndex + 1) * this.pageSize, this.length);
|
|
15
|
+
}
|
|
16
|
+
patch(obj) {
|
|
17
|
+
return Page.from({ ...this, ...obj });
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy91dGlscy9wYWdlL3BhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsTUFBTSxPQUFPLElBQUk7SUFDZixNQUFNLENBQUMsSUFBSSxDQUFDLFFBQXVCLEVBQUU7UUFDbkMsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUU7WUFDL0IsUUFBUSxFQUFFLEVBQUU7WUFDWixTQUFTLEVBQUUsQ0FBQztZQUNaLE1BQU0sRUFBRSxHQUFHO1lBQ1gsR0FBRyxLQUFLO1NBQ1QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxLQUFLLENBQUMsR0FBa0I7UUFDdEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUMsR0FBRyxJQUFJLEVBQUUsR0FBRyxHQUFHLEVBQUMsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhZ2VFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFnZSBleHRlbmRzIFBhZ2VFdmVudCB7XG4gIHNvcnRLZXk6IHN0cmluZztcbiAgc29ydE9yZGVyOiAnYXNjJyB8ICdkZXNjJztcbn1cblxuZXhwb3J0IGNsYXNzIFBhZ2Uge1xuICBzdGF0aWMgZnJvbShldmVudDogUGFydGlhbDxQYWdlPiA9IHt9KTogUGFnZSB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24obmV3IFBhZ2UoKSwge1xuICAgICAgcGFnZVNpemU6IDUwLFxuICAgICAgcGFnZUluZGV4OiAwLFxuICAgICAgbGVuZ3RoOiAxMDAsXG4gICAgICAuLi5ldmVudFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0IHN0YXJ0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMucGFnZUluZGV4ICogdGhpcy5wYWdlU2l6ZTtcbiAgfVxuXG4gIGdldCBlbmQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gTWF0aC5taW4oKHRoaXMucGFnZUluZGV4ICsgMSkgKiB0aGlzLnBhZ2VTaXplLCB0aGlzLmxlbmd0aCk7XG4gIH1cblxuICBwYXRjaChvYmo6IFBhcnRpYWw8UGFnZT4pOiBQYWdlIHtcbiAgICByZXR1cm4gUGFnZS5mcm9tKHsuLi50aGlzLCAuLi5vYmp9KTtcbiAgfVxufVxuIl19
|
|
@@ -11,7 +11,6 @@ class PaginationPipe {
|
|
|
11
11
|
(_a = this.transformer) !== null && _a !== void 0 ? _a : (this.transformer = smartSortByTransformer);
|
|
12
12
|
}
|
|
13
13
|
transform(items, { sortKey, sortOrder, start, end }) {
|
|
14
|
-
// transform<T>(items: T[], key: string, order: 'asc' | 'desc', start: number, end: number): T[] {
|
|
15
14
|
return this.slicePipe.transform(this.transformer(items, sortKey, sortOrder), start, end);
|
|
16
15
|
}
|
|
17
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-atomic-common-pipes-pagination.mjs","sources":["../../../../libs/common/src/pipes/pagination/pagination.pipe.ts","../../../../libs/common/src/pipes/pagination/pagination.module.ts","../../../../libs/common/src/pipes/pagination/ng-atomic-common-pipes-pagination.ts"],"sourcesContent":["import { SlicePipe } from '@angular/common';\nimport { Inject, Optional, Pipe, PipeTransform } from '@angular/core';\nimport { smartSortByTransformer, SmartSortByTransformer, SMART_SORT_BY_TRANSFORMER } from '@ng-atomic/common/pipes/smart-sort-by';\n\n@Pipe({\n name: 'pagination',\n pure: true,\n})\nexport class PaginationPipe implements PipeTransform {\n private slicePipe = new SlicePipe();\n\n constructor(\n @Optional()\n @Inject(SMART_SORT_BY_TRANSFORMER)\n private transformer: SmartSortByTransformer,\n ) {\n this.transformer ??= smartSortByTransformer;\n }\n\n transform<T>(items: T[], {sortKey, sortOrder, start, end}: {sortKey: string, sortOrder: 'asc' | 'desc', start: number, end: number}) {\n
|
|
1
|
+
{"version":3,"file":"ng-atomic-common-pipes-pagination.mjs","sources":["../../../../libs/common/src/pipes/pagination/pagination.pipe.ts","../../../../libs/common/src/pipes/pagination/pagination.module.ts","../../../../libs/common/src/pipes/pagination/ng-atomic-common-pipes-pagination.ts"],"sourcesContent":["import { SlicePipe } from '@angular/common';\nimport { Inject, Optional, Pipe, PipeTransform } from '@angular/core';\nimport { smartSortByTransformer, SmartSortByTransformer, SMART_SORT_BY_TRANSFORMER } from '@ng-atomic/common/pipes/smart-sort-by';\n\n@Pipe({\n name: 'pagination',\n pure: true,\n})\nexport class PaginationPipe implements PipeTransform {\n private slicePipe = new SlicePipe();\n\n constructor(\n @Optional()\n @Inject(SMART_SORT_BY_TRANSFORMER)\n private transformer: SmartSortByTransformer,\n ) {\n this.transformer ??= smartSortByTransformer;\n }\n\n transform<T>(items: T[], {sortKey, sortOrder, start, end}: {sortKey: string, sortOrder: 'asc' | 'desc', start: number, end: number}) {\n return this.slicePipe.transform(this.transformer(items, sortKey, sortOrder), start, end);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PaginationPipe } from './pagination.pipe';\n\n\n\n@NgModule({\n declarations: [\n PaginationPipe\n ],\n imports: [\n CommonModule,\n ],\n exports: [\n PaginationPipe\n ]\n})\nexport class PaginationModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MAQa,cAAc,CAAA;AAGzB,IAAA,WAAA,CAGU,WAAmC,EAAA;;AAAnC,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAwB;AALrC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;QAOlC,CAAA,EAAA,GAAA,IAAI,CAAC,WAAW,MAAhB,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,IAAA,IAAI,CAAC,WAAW,GAAK,sBAAsB,CAAC,CAAA;KAC7C;IAED,SAAS,CAAI,KAAU,EAAE,EAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAA2E,EAAA;QACjI,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;KAC1F;;AAbU,cAAA,CAAA,IAAA,GAAA,SAAA,sBAAA,CAAA,CAAA,EAAA,EAAA,OAAA,KAAA,CAAA,IAAA,cAAc,uBAKf,yBAAyB,EAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA;iFALxB,cAAc,EAAA,IAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;4EAAd,cAAc,EAAA,CAAA;kBAJ1B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,YAAY;AAClB,oBAAA,IAAI,EAAE,IAAI;iBACX,CAAA;;;8BAKI,QAAQ;;8BACR,MAAM;+BAAC,yBAAyB,CAAA;;;;;MCIxB,gBAAgB,CAAA;;gFAAhB,gBAAgB,GAAA,CAAA,EAAA,CAAA;kEAAhB,gBAAgB,EAAA,CAAA,CAAA;sEANzB,YAAY,CAAA,EAAA,CAAA,CAAA;;4EAMH,gBAAgB,EAAA,CAAA;kBAX5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,cAAc;AACf,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,cAAc;AACf,qBAAA;iBACF,CAAA;;;AACY,CAAA,cAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,gBAAgB,EATzB,EAAA,YAAA,EAAA,CAAA,cAAc,CAGd,EAAA,OAAA,EAAA,CAAA,YAAY,aAGZ,cAAc,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;ACdlB;;AAEG;;;;"}
|
|
@@ -1,51 +1,26 @@
|
|
|
1
1
|
import { ComponentStore } from '@ngrx/component-store';
|
|
2
|
-
import { QueryResolverService } from '@ng-atomic/common/services/query-resolver';
|
|
3
2
|
import { compareById } from '@ng-atomic/common/utils';
|
|
4
|
-
import {
|
|
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
|
|
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(({
|
|
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
|
|
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 {
|
|
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":";;;;;;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,MAAU,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,KAAK,KAAE,IAAI,EAAA,CAAA,CAAE,CAAC,CAAC;AAClE,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,OAAe,MAAK,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAK,KAAK,CAAA,EAAA,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAC,OAAO,EAAC,CAAC,EAAA,CAAA,CAAE,CAAC,CAAC;AACtG,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,SAAyB,MAAK,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAK,KAAK,CAAA,EAAA,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAC,SAAS,EAAC,CAAC,EAAA,CAAA,CAAE,CAAC,CAAC;AACpH,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,IAAmB,MAAU,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,KAAK,CAAE,EAAA,EAAA,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAA,CAAA,CAAE,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;;4EAAf,eAAe,EAAA,CAAA;kBAD3B,UAAU;;;;ACTX;;AAEG;;;;"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Injectable, Optional, Inject } from '@angular/core';
|
|
3
|
+
import { DOMAIN_LANG_MAP } from '@ng-atomic/common/pipes/domain';
|
|
4
|
+
import { ComponentStore } from '@ngrx/component-store';
|
|
5
|
+
import * as i1 from '@ng-atomic/common/services/query-resolver';
|
|
6
|
+
|
|
7
|
+
class QueryStore extends ComponentStore {
|
|
8
|
+
constructor(queryResolver, langMap) {
|
|
9
|
+
super({ query: '' });
|
|
10
|
+
this.queryResolver = queryResolver;
|
|
11
|
+
this.langMap = langMap;
|
|
12
|
+
this.query$ = this.select((state) => state.query);
|
|
13
|
+
this.setQuery = this.updater((state, query) => (Object.assign(Object.assign({}, state), { query })));
|
|
14
|
+
}
|
|
15
|
+
get query() { return this.get().query; }
|
|
16
|
+
resolve(entities) {
|
|
17
|
+
return this.queryResolver.resolve(entities, this.query, this.langMap);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
QueryStore.ɵfac = function QueryStore_Factory(t) { return new (t || QueryStore)(i0.ɵɵinject(i1.QueryResolverService), i0.ɵɵinject(DOMAIN_LANG_MAP, 8)); };
|
|
21
|
+
QueryStore.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: QueryStore, factory: QueryStore.ɵfac });
|
|
22
|
+
(function () {
|
|
23
|
+
(typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(QueryStore, [{
|
|
24
|
+
type: Injectable
|
|
25
|
+
}], function () {
|
|
26
|
+
return [{ type: i1.QueryResolverService }, { type: undefined, decorators: [{
|
|
27
|
+
type: Optional
|
|
28
|
+
}, {
|
|
29
|
+
type: Inject,
|
|
30
|
+
args: [DOMAIN_LANG_MAP]
|
|
31
|
+
}] }];
|
|
32
|
+
}, null);
|
|
33
|
+
})();
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Generated bundle index. Do not edit.
|
|
37
|
+
*/
|
|
38
|
+
|
|
39
|
+
export { QueryStore };
|
|
40
|
+
//# sourceMappingURL=ng-atomic-common-stores-query.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ng-atomic-common-stores-query.mjs","sources":["../../../../libs/common/src/stores/query/query.store.ts","../../../../libs/common/src/stores/query/ng-atomic-common-stores-query.ts"],"sourcesContent":["import { Inject, Injectable, Optional } from \"@angular/core\";\nimport { DOMAIN_LANG_MAP } from \"@ng-atomic/common/pipes/domain\";\nimport { QueryResolverService } from \"@ng-atomic/common/services/query-resolver\";\nimport { ComponentStore } from \"@ngrx/component-store\";\n\nexport interface QueryState {\n query: string;\n}\n\n@Injectable()\nexport class QueryStore<E> extends ComponentStore<QueryState> {\n constructor(\n protected queryResolver: QueryResolverService,\n @Optional() @Inject(DOMAIN_LANG_MAP) protected langMap: Record<string, string>,\n ) {\n super({query: ''});\n }\n\n get query(): string { return this.get().query; }\n query$ = this.select((state) => state.query);\n\n setQuery = this.updater((state, query: string) => ({...state, query}));\n\n resolve(entities: E[]): E[] {\n return this.queryResolver.resolve(entities, this.query, this.langMap);\n }\n\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAUM,MAAO,UAAc,SAAQ,cAA0B,CAAA;IAC3D,WACY,CAAA,aAAmC,EACE,OAA+B,EAAA;AAE9E,QAAA,KAAK,CAAC,EAAC,KAAK,EAAE,EAAE,EAAC,CAAC,CAAC;AAHT,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAsB;AACE,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAwB;AAMhF,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC;QAE7C,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAa,MAAU,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,KAAK,KAAE,KAAK,EAAA,CAAA,CAAE,CAAC,CAAC;KALtE;IAED,IAAI,KAAK,GAAa,EAAA,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE;AAKhD,IAAA,OAAO,CAAC,QAAa,EAAA;AACnB,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;KACvE;;AAfU,UAAA,CAAA,IAAA,GAAA,SAAA,kBAAA,CAAA,CAAA,EAAA,EAAA,OAAA,KAAA,CAAA,IAAA,UAAU,oDAGC,eAAe,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA;AAH1B,UAAA,CAAA,KAAA,iBAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,UAAU,WAAV,UAAU,CAAA,IAAA,EAAA,CAAA,CAAA;;4EAAV,UAAU,EAAA,CAAA;kBADtB,UAAU;;;8BAIN,QAAQ;;8BAAI,MAAM;+BAAC,eAAe,CAAA;;;;;ACbvC;;AAEG;;;;"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import { ComponentStore } from '@ngrx/component-store';
|
|
4
|
+
|
|
5
|
+
class SelectionStore extends ComponentStore {
|
|
6
|
+
constructor() {
|
|
7
|
+
super({ idSet: new Set(), initialIdSet: null });
|
|
8
|
+
this.setIdSet = this.updater((state, idSet) => (Object.assign(Object.assign({}, state), { idSet })));
|
|
9
|
+
this.setInitialIdSet = this.updater((state, initialIdSet) => (Object.assign(Object.assign({}, state), { initialIdSet })));
|
|
10
|
+
this.addIds = (ids) => this.setIdSet(new Set([...this.idSet, ...ids]));
|
|
11
|
+
this.addId = (id) => this.addIds([id]);
|
|
12
|
+
this.removeId = (id) => this.setIdSet(new Set([...this.idSet].filter(_id => _id !== id)));
|
|
13
|
+
this.toggleId = (id) => this.idSet.has(id) ? this.removeId(id) : this.addId(id);
|
|
14
|
+
}
|
|
15
|
+
get idSet() { return this.get(state => state.idSet); }
|
|
16
|
+
get initialIdSet() { return this.get(state => state.initialIdSet); }
|
|
17
|
+
getSelectedAndUnselected() {
|
|
18
|
+
const unselectedIdSet = new Set([...this.initialIdSet].filter(id => !this.idSet.has(id)));
|
|
19
|
+
return [this.idSet, unselectedIdSet];
|
|
20
|
+
}
|
|
21
|
+
filterBySelectedIds(entities) {
|
|
22
|
+
return entities.filter(({ id }) => this.idSet.has(id));
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
SelectionStore.ɵfac = function SelectionStore_Factory(t) { return new (t || SelectionStore)(); };
|
|
26
|
+
SelectionStore.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: SelectionStore, factory: SelectionStore.ɵfac });
|
|
27
|
+
(function () {
|
|
28
|
+
(typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SelectionStore, [{
|
|
29
|
+
type: Injectable
|
|
30
|
+
}], function () { return []; }, null);
|
|
31
|
+
})();
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Generated bundle index. Do not edit.
|
|
35
|
+
*/
|
|
36
|
+
|
|
37
|
+
export { SelectionStore };
|
|
38
|
+
//# sourceMappingURL=ng-atomic-common-stores-selection.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ng-atomic-common-stores-selection.mjs","sources":["../../../../libs/common/src/stores/selection/selection.store.ts","../../../../libs/common/src/stores/selection/ng-atomic-common-stores-selection.ts"],"sourcesContent":["import { Injectable } from \"@angular/core\";\nimport { ComponentStore } from \"@ngrx/component-store\";\n\nexport interface SelectionState {\n idSet: Set<string>;\n initialIdSet: Set<string> | null;\n\n}\n\n@Injectable()\nexport class SelectionStore extends ComponentStore<SelectionState> {\n get idSet(): Set<string> { return this.get(state => state.idSet); }\n get initialIdSet(): Set<string> { return this.get(state => state.initialIdSet); }\n\n constructor() {\n super({idSet: new Set(), initialIdSet: null});\n }\n\n setIdSet = this.updater((state, idSet: Set<string>) => ({...state, idSet}));\n setInitialIdSet = this.updater((state, initialIdSet: Set<string>) => ({...state, initialIdSet}));\n\n addIds = (ids: string[]) => this.setIdSet(new Set([...this.idSet, ...ids]));\n addId = (id: string) => this.addIds([id]);\n \n removeId = (id: string) => this.setIdSet(new Set([...this.idSet].filter(_id => _id !== id)));\n toggleId = (id: string) => this.idSet.has(id) ? this.removeId(id) : this.addId(id);\n\n getSelectedAndUnselected(): [Set<string>, Set<string>] {\n const unselectedIdSet = new Set([...this.initialIdSet].filter(id => !this.idSet.has(id)));\n return [this.idSet, unselectedIdSet];\n }\n\n filterBySelectedIds<E extends {id: string}>(entities: E[]): E[] {\n return entities.filter(({id}) => this.idSet.has(id));\n }\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAUM,MAAO,cAAe,SAAQ,cAA8B,CAAA;AAIhE,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,CAAC,EAAC,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE,YAAY,EAAE,IAAI,EAAC,CAAC,CAAC;QAGhD,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAkB,MAAU,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,KAAK,KAAE,KAAK,EAAA,CAAA,CAAE,CAAC,CAAC;QAC5E,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,YAAyB,MAAU,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,KAAK,KAAE,YAAY,EAAA,CAAA,CAAE,CAAC,CAAC;QAEjG,IAAM,CAAA,MAAA,GAAG,CAAC,GAAa,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAC5E,QAAA,IAAA,CAAA,KAAK,GAAG,CAAC,EAAU,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAE1C,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,EAAU,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7F,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,EAAU,KAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;KATnF;AALD,IAAA,IAAI,KAAK,GAAkB,EAAA,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE;AACnE,IAAA,IAAI,YAAY,GAAkB,EAAA,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE;IAejF,wBAAwB,GAAA;AACtB,QAAA,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1F,QAAA,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;KACtC;AAED,IAAA,mBAAmB,CAAyB,QAAa,EAAA;QACvD,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAC,EAAE,EAAC,KAAK,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;KACtD;;4EAxBU,cAAc,GAAA,CAAA,EAAA,CAAA;AAAd,cAAA,CAAA,KAAA,iBAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,cAAc,WAAd,cAAc,CAAA,IAAA,EAAA,CAAA,CAAA;;4EAAd,cAAc,EAAA,CAAA;kBAD1B,UAAU;;;;ACTX;;AAEG;;;;"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
class Page {
|
|
2
|
+
static from(event = {}) {
|
|
3
|
+
return Object.assign(new Page(), Object.assign({ pageSize: 50, pageIndex: 0, length: 100 }, event));
|
|
4
|
+
}
|
|
5
|
+
get start() {
|
|
6
|
+
return this.pageIndex * this.pageSize;
|
|
7
|
+
}
|
|
8
|
+
get end() {
|
|
9
|
+
return Math.min((this.pageIndex + 1) * this.pageSize, this.length);
|
|
10
|
+
}
|
|
11
|
+
patch(obj) {
|
|
12
|
+
return Page.from(Object.assign(Object.assign({}, this), obj));
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Generated bundle index. Do not edit.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
export { Page };
|
|
21
|
+
//# sourceMappingURL=ng-atomic-common-utils-page.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ng-atomic-common-utils-page.mjs","sources":["../../../../libs/common/src/utils/page/page.ts","../../../../libs/common/src/utils/page/ng-atomic-common-utils-page.ts"],"sourcesContent":["import { PageEvent } from '@angular/material/paginator';\n\nexport interface Page extends PageEvent {\n sortKey: string;\n sortOrder: 'asc' | 'desc';\n}\n\nexport class Page {\n static from(event: Partial<Page> = {}): Page {\n return Object.assign(new Page(), {\n pageSize: 50,\n pageIndex: 0,\n length: 100,\n ...event\n });\n }\n\n get start(): number {\n return this.pageIndex * this.pageSize;\n }\n\n get end(): number {\n return Math.min((this.pageIndex + 1) * this.pageSize, this.length);\n }\n\n patch(obj: Partial<Page>): Page {\n return Page.from({...this, ...obj});\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"MAOa,IAAI,CAAA;AACf,IAAA,OAAO,IAAI,CAAC,KAAA,GAAuB,EAAE,EAAA;QACnC,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,EAC7B,MAAA,CAAA,MAAA,CAAA,EAAA,QAAQ,EAAE,EAAE,EACZ,SAAS,EAAE,CAAC,EACZ,MAAM,EAAE,GAAG,EAAA,EACR,KAAK,CAAA,CACR,CAAC;KACJ;AAED,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;KACvC;AAED,IAAA,IAAI,GAAG,GAAA;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;KACpE;AAED,IAAA,KAAK,CAAC,GAAkB,EAAA;QACtB,OAAO,IAAI,CAAC,IAAI,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAK,IAAI,CAAK,EAAA,GAAG,EAAE,CAAC;KACrC;AACF;;AC5BD;;AAEG;;;;"}
|
|
@@ -10,7 +10,6 @@ class PaginationPipe {
|
|
|
10
10
|
this.transformer ?? (this.transformer = smartSortByTransformer);
|
|
11
11
|
}
|
|
12
12
|
transform(items, { sortKey, sortOrder, start, end }) {
|
|
13
|
-
// transform<T>(items: T[], key: string, order: 'asc' | 'desc', start: number, end: number): T[] {
|
|
14
13
|
return this.slicePipe.transform(this.transformer(items, sortKey, sortOrder), start, end);
|
|
15
14
|
}
|
|
16
15
|
}
|