@ng-atomic/common 5.12.0 → 5.13.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.
@@ -1,22 +1,27 @@
1
1
  import { ComponentStore } from '@ngrx/component-store';
2
- import { compareById } from '@ng-atomic/common/utils';
3
2
  import { ReplaySubject } from 'rxjs';
4
3
  import { distinctUntilChanged } from 'rxjs/operators';
4
+ import { createEntityAdapter } from '@ngrx/entity';
5
5
  export const distinctUntilChangedArray = () => {
6
6
  return distinctUntilChanged((pre, cur) => JSON.stringify(pre) === JSON.stringify(cur));
7
7
  };
8
8
  export class EntitiesStore extends ComponentStore {
9
- get entities() { return this.get().entities; }
10
- constructor(initialState) {
11
- super(initialState);
9
+ constructor(adapter = createEntityAdapter({
10
+ selectId: (entity) => entity.id,
11
+ sortComparer: false,
12
+ })) {
13
+ super(adapter.getInitialState());
14
+ this.adapter = adapter;
12
15
  this.refresh$ = new ReplaySubject(1);
13
- this.entities$ = this.select(({ entities }) => entities ? entities.sort(compareById) : []);
14
- this.size$ = this.select(({ entities }) => entities?.length ?? 0);
15
- this.setEntities = this.updater((state, entities) => ({ ...state, entities }));
16
+ this.selectors = this.adapter.getSelectors();
17
+ this.entities$ = this.select(this.selectors.selectAll);
18
+ this.size$ = this.select(this.selectors.selectTotal);
19
+ this.setEntities = this.updater((state, entities) => this.adapter.setAll(entities, state));
16
20
  this.refresh();
17
21
  }
22
+ get entities() { return this.selectors.selectAll(this.get()); }
18
23
  refresh() {
19
24
  this.refresh$.next();
20
25
  }
21
26
  }
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXRpZXMuc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvc3RvcmVzL2VudGl0aWVzL2VudGl0aWVzLnN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFjLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsb0JBQW9CLEVBQTBCLE1BQU0sZ0JBQWdCLENBQUM7QUFNOUUsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsR0FBTSxFQUFFO0lBQy9DLE9BQU8sb0JBQW9CLENBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUM1RixDQUFDLENBQUM7QUFFRixNQUFNLE9BQWdCLGFBQXdFLFNBQVEsY0FBaUI7SUFHckgsSUFBSSxRQUFRLEtBQUssT0FBTyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUs5QyxZQUFZLFlBQWU7UUFDekIsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBUkgsYUFBUSxHQUFHLElBQUksYUFBYSxDQUFPLENBQUMsQ0FBQyxDQUFDO1FBSXpELGNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwRixVQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUM7UUFPM0QsZ0JBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLFFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFDLEdBQUcsS0FBSyxFQUFFLFFBQVEsRUFBQyxDQUFDLENBQUMsQ0FBQztRQUgzRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQU1ELE9BQU87UUFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudFN0b3JlIH0gZnJvbSAnQG5ncngvY29tcG9uZW50LXN0b3JlJztcbmltcG9ydCB7IGNvbXBhcmVCeUlkIH0gZnJvbSAnQG5nLWF0b21pYy9jb21tb24vdXRpbHMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIHRhcCwgZmlsdGVyLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXRpZXNTdGF0ZTxFPiB7XG4gIGVudGl0aWVzOiBFW11cbn1cblxuZXhwb3J0IGNvbnN0IGRpc3RpbmN0VW50aWxDaGFuZ2VkQXJyYXkgPSA8VD4oKSA9PiB7XG4gIHJldHVybiBkaXN0aW5jdFVudGlsQ2hhbmdlZDxUPigocHJlLCBjdXIpID0+IEpTT04uc3RyaW5naWZ5KHByZSkgPT09IEpTT04uc3RyaW5naWZ5KGN1cikpO1xufTtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEVudGl0aWVzU3RvcmU8RSBleHRlbmRzIHtpZDogc3RyaW5nfSwgUyBleHRlbmRzIEVudGl0aWVzU3RhdGU8RT4gPSBhbnk+IGV4dGVuZHMgQ29tcG9uZW50U3RvcmU8Uz4ge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcmVmcmVzaCQgPSBuZXcgUmVwbGF5U3ViamVjdDx2b2lkPigxKTtcblxuICBnZXQgZW50aXRpZXMoKSB7IHJldHVybiB0aGlzLmdldCgpLmVudGl0aWVzOyB9XG5cbiAgZW50aXRpZXMkID0gdGhpcy5zZWxlY3QoKHtlbnRpdGllc30pID0+IGVudGl0aWVzID8gZW50aXRpZXMuc29ydChjb21wYXJlQnlJZCkgOiBbXSk7XG4gIHNpemUkID0gdGhpcy5zZWxlY3QoKHtlbnRpdGllc30pID0+IGVudGl0aWVzPy5sZW5ndGggPz8gMCk7XG4gIFxuICBjb25zdHJ1Y3Rvcihpbml0aWFsU3RhdGU6IFMpIHtcbiAgICBzdXBlcihpbml0aWFsU3RhdGUpO1xuICAgIHRoaXMucmVmcmVzaCgpO1xuICB9XG5cbiAgc2V0RW50aXRpZXMgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBlbnRpdGllczogRVtdKSA9PiAoey4uLnN0YXRlLCBlbnRpdGllc30pKTtcblxuICBhYnN0cmFjdCBnZXRFbnRpdGllczogUmV0dXJuVHlwZTx0eXBlb2YgdGhpcy5lZmZlY3Q+O1xuXG4gIHJlZnJlc2goKSB7XG4gICAgdGhpcy5yZWZyZXNoJC5uZXh0KCk7XG4gIH1cbn0iXX0=
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXRpZXMuc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvc3RvcmVzL2VudGl0aWVzL2VudGl0aWVzLnN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBOEIsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFL0UsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsR0FBTSxFQUFFO0lBQy9DLE9BQU8sb0JBQW9CLENBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUM1RixDQUFDLENBQUM7QUFFRixNQUFNLE9BQWdCLGFBR3BCLFNBQVEsY0FBaUI7SUFDekIsWUFDWSxVQUE0QixtQkFBbUIsQ0FBSTtRQUMzRCxRQUFRLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQy9CLFlBQVksRUFBRSxLQUFLO0tBQ3BCLENBQUM7UUFFRixLQUFLLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBTyxDQUFDLENBQUM7UUFMNUIsWUFBTyxHQUFQLE9BQU8sQ0FHZjtRQU1lLGFBQVEsR0FBRyxJQUFJLGFBQWEsQ0FBTyxDQUFDLENBQUMsQ0FBQztRQUN0QyxjQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUkzRCxjQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2xELFVBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFaEQsZ0JBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLFFBQWEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFYekYsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFLRCxJQUFJLFFBQVEsS0FBSyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQVMvRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRTdG9yZSB9IGZyb20gJ0BuZ3J4L2NvbXBvbmVudC1zdG9yZSc7XG5pbXBvcnQgeyBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEVudGl0eVN0YXRlLCBFbnRpdHlBZGFwdGVyLCBjcmVhdGVFbnRpdHlBZGFwdGVyIH0gZnJvbSAnQG5ncngvZW50aXR5JztcblxuZXhwb3J0IGNvbnN0IGRpc3RpbmN0VW50aWxDaGFuZ2VkQXJyYXkgPSA8VD4oKSA9PiB7XG4gIHJldHVybiBkaXN0aW5jdFVudGlsQ2hhbmdlZDxUPigocHJlLCBjdXIpID0+IEpTT04uc3RyaW5naWZ5KHByZSkgPT09IEpTT04uc3RyaW5naWZ5KGN1cikpO1xufTtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEVudGl0aWVzU3RvcmU8XG4gIEUgZXh0ZW5kcyB7aWQ6IHN0cmluZ30sXG4gIFMgZXh0ZW5kcyBFbnRpdHlTdGF0ZTxFPiA9IGFueSxcbj4gZXh0ZW5kcyBDb21wb25lbnRTdG9yZTxTPiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBhZGFwdGVyOiBFbnRpdHlBZGFwdGVyPEU+ID0gY3JlYXRlRW50aXR5QWRhcHRlcjxFPih7XG4gICAgICBzZWxlY3RJZDogKGVudGl0eSkgPT4gZW50aXR5LmlkLFxuICAgICAgc29ydENvbXBhcmVyOiBmYWxzZSxcbiAgICB9KSxcbiAgKSB7XG4gICAgc3VwZXIoYWRhcHRlci5nZXRJbml0aWFsU3RhdGUoKSBhcyBTKTtcbiAgICB0aGlzLnJlZnJlc2goKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWFkb25seSByZWZyZXNoJCA9IG5ldyBSZXBsYXlTdWJqZWN0PHZvaWQ+KDEpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VsZWN0b3JzID0gdGhpcy5hZGFwdGVyLmdldFNlbGVjdG9ycygpO1xuXG4gIGdldCBlbnRpdGllcygpIHsgcmV0dXJuIHRoaXMuc2VsZWN0b3JzLnNlbGVjdEFsbCh0aGlzLmdldCgpKTsgfVxuXG4gIGVudGl0aWVzJCA9IHRoaXMuc2VsZWN0KHRoaXMuc2VsZWN0b3JzLnNlbGVjdEFsbCk7XG4gIHNpemUkID0gdGhpcy5zZWxlY3QodGhpcy5zZWxlY3RvcnMuc2VsZWN0VG90YWwpO1xuICBcbiAgc2V0RW50aXRpZXMgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBlbnRpdGllczogRVtdKSA9PiB0aGlzLmFkYXB0ZXIuc2V0QWxsKGVudGl0aWVzLCBzdGF0ZSkpO1xuXG4gIGFic3RyYWN0IGdldEVudGl0aWVzOiBSZXR1cm5UeXBlPHR5cGVvZiB0aGlzLmVmZmVjdD47XG5cbiAgcmVmcmVzaCgpIHtcbiAgICB0aGlzLnJlZnJlc2gkLm5leHQoKTtcbiAgfVxufVxuIl19
@@ -1,2 +1,5 @@
1
- export const compareById = (a, b) => parseInt(a.id, 10) - parseInt(b.id, 10);
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFyZS1ieS1pZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BuZy1hdG9taWMvY29tbW9uL3NyYy91dGlscy9jb21wYXJlLWJ5LWlkL2NvbXBhcmUtYnktaWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUMsQ0FBUSxFQUFFLENBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBIYXNJZCA9IHsgaWQ6IHN0cmluZyB9O1xuZXhwb3J0IGNvbnN0IGNvbXBhcmVCeUlkID0gKGE6IEhhc0lkLCBiOiBIYXNJZCkgPT4gcGFyc2VJbnQoYS5pZCwgMTApIC0gcGFyc2VJbnQoYi5pZCwgMTApO1xuIl19
1
+ export function compareByIdFactory(key) {
2
+ return (a, b) => parseInt(a?.[key], 10) - parseInt(b?.[key], 10);
3
+ }
4
+ export const compareById = compareByIdFactory('id');
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFyZS1ieS1pZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BuZy1hdG9taWMvY29tbW9uL3NyYy91dGlscy9jb21wYXJlLWJ5LWlkL2NvbXBhcmUtYnktaWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsTUFBTSxVQUFVLGtCQUFrQixDQUFDLEdBQVc7SUFDNUMsT0FBTyxDQUFDLENBQU0sRUFBRSxDQUFNLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDN0UsQ0FBQztBQUNELE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEhhc0lkID0geyBpZDogc3RyaW5nIH07XG5leHBvcnQgZnVuY3Rpb24gY29tcGFyZUJ5SWRGYWN0b3J5KGtleTogc3RyaW5nKSB7XG4gIHJldHVybiAoYTogYW55LCBiOiBhbnkpID0+IHBhcnNlSW50KGE/LltrZXldLCAxMCkgLSBwYXJzZUludChiPy5ba2V5XSwgMTApO1xufVxuZXhwb3J0IGNvbnN0IGNvbXBhcmVCeUlkID0gY29tcGFyZUJ5SWRGYWN0b3J5KCdpZCcpO1xuIl19
@@ -1,21 +1,26 @@
1
1
  import { ComponentStore } from '@ngrx/component-store';
2
- import { compareById } from '@ng-atomic/common/utils';
3
2
  import { ReplaySubject } from 'rxjs';
4
3
  import { distinctUntilChanged } from 'rxjs/operators';
4
+ import { createEntityAdapter } from '@ngrx/entity';
5
5
 
6
6
  const distinctUntilChangedArray = () => {
7
7
  return distinctUntilChanged((pre, cur) => JSON.stringify(pre) === JSON.stringify(cur));
8
8
  };
9
9
  class EntitiesStore extends ComponentStore {
10
- get entities() { return this.get().entities; }
11
- constructor(initialState) {
12
- super(initialState);
10
+ constructor(adapter = createEntityAdapter({
11
+ selectId: (entity) => entity.id,
12
+ sortComparer: false,
13
+ })) {
14
+ super(adapter.getInitialState());
15
+ this.adapter = adapter;
13
16
  this.refresh$ = new ReplaySubject(1);
14
- this.entities$ = this.select(({ entities }) => entities ? entities.sort(compareById) : []);
15
- this.size$ = this.select(({ entities }) => { var _a; return (_a = entities === null || entities === void 0 ? void 0 : entities.length) !== null && _a !== void 0 ? _a : 0; });
16
- this.setEntities = this.updater((state, entities) => (Object.assign(Object.assign({}, state), { entities })));
17
+ this.selectors = this.adapter.getSelectors();
18
+ this.entities$ = this.select(this.selectors.selectAll);
19
+ this.size$ = this.select(this.selectors.selectTotal);
20
+ this.setEntities = this.updater((state, entities) => this.adapter.setAll(entities, state));
17
21
  this.refresh();
18
22
  }
23
+ get entities() { return this.selectors.selectAll(this.get()); }
19
24
  refresh() {
20
25
  this.refresh$.next();
21
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ng-atomic-common-stores-entities.mjs","sources":["../../../../../packages/@ng-atomic/common/src/stores/entities/entities.store.ts","../../../../../packages/@ng-atomic/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, ReplaySubject } from 'rxjs';\nimport { distinctUntilChanged, tap, filter, switchMap } from 'rxjs/operators';\n\nexport interface EntitiesState<E> {\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<E extends {id: string}, S extends EntitiesState<E> = any> extends ComponentStore<S> {\n protected readonly refresh$ = new ReplaySubject<void>(1);\n\n get entities() { return this.get().entities; }\n\n entities$ = this.select(({entities}) => entities ? entities.sort(compareById) : []);\n size$ = this.select(({entities}) => entities?.length ?? 0);\n \n constructor(initialState: S) {\n super(initialState);\n this.refresh();\n }\n\n setEntities = this.updater((state, entities: E[]) => ({...state, entities}));\n\n abstract getEntities: ReturnType<typeof this.effect>;\n\n refresh() {\n this.refresh$.next();\n }\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AASO,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,aAAwE,SAAQ,cAAiB,CAAA;IAGrH,IAAI,QAAQ,GAAK,EAAA,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE;AAK9C,IAAA,WAAA,CAAY,YAAe,EAAA;QACzB,KAAK,CAAC,YAAY,CAAC,CAAC;QARH,IAAA,CAAA,QAAQ,GAAG,IAAI,aAAa,CAAO,CAAC,CAAC,CAAC;AAIzD,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;AACpF,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAC,QAAQ,EAAC,KAAI,EAAA,IAAA,EAAA,CAAA,CAAC,OAAA,CAAA,EAAA,GAAA,QAAQ,KAAA,IAAA,IAAR,QAAQ,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAR,QAAQ,CAAE,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,CAAC,CAAA,EAAA,CAAC,CAAC;QAO3D,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;QAH3E,IAAI,CAAC,OAAO,EAAE,CAAC;KAChB;IAMD,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACtB;AACF;;ACjCD;;AAEG;;;;"}
1
+ {"version":3,"file":"ng-atomic-common-stores-entities.mjs","sources":["../../../../../packages/@ng-atomic/common/src/stores/entities/entities.store.ts","../../../../../packages/@ng-atomic/common/src/stores/entities/ng-atomic-common-stores-entities.ts"],"sourcesContent":["import { ComponentStore } from '@ngrx/component-store';\nimport { ReplaySubject } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\nimport { EntityState, EntityAdapter, createEntityAdapter } from '@ngrx/entity';\n\nexport const distinctUntilChangedArray = <T>() => {\n return distinctUntilChanged<T>((pre, cur) => JSON.stringify(pre) === JSON.stringify(cur));\n};\n\nexport abstract class EntitiesStore<\n E extends {id: string},\n S extends EntityState<E> = any,\n> extends ComponentStore<S> {\n constructor(\n protected adapter: EntityAdapter<E> = createEntityAdapter<E>({\n selectId: (entity) => entity.id,\n sortComparer: false,\n }),\n ) {\n super(adapter.getInitialState() as S);\n this.refresh();\n }\n\n protected readonly refresh$ = new ReplaySubject<void>(1);\n protected readonly selectors = this.adapter.getSelectors();\n\n get entities() { return this.selectors.selectAll(this.get()); }\n\n entities$ = this.select(this.selectors.selectAll);\n size$ = this.select(this.selectors.selectTotal);\n \n setEntities = this.updater((state, entities: E[]) => this.adapter.setAll(entities, state));\n\n abstract getEntities: ReturnType<typeof this.effect>;\n\n refresh() {\n this.refresh$.next();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAKO,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,aAGpB,SAAQ,cAAiB,CAAA;IACzB,WACY,CAAA,OAAA,GAA4B,mBAAmB,CAAI;QAC3D,QAAQ,EAAE,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE;AAC/B,QAAA,YAAY,EAAE,KAAK;KACpB,CAAC,EAAA;AAEF,QAAA,KAAK,CAAC,OAAO,CAAC,eAAe,EAAO,CAAC,CAAC;AAL5B,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAGf;QAMe,IAAA,CAAA,QAAQ,GAAG,IAAI,aAAa,CAAO,CAAC,CAAC,CAAC;QACtC,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;AAI3D,QAAA,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AAClD,QAAA,IAAK,CAAA,KAAA,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAEhD,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,QAAa,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;QAXzF,IAAI,CAAC,OAAO,EAAE,CAAC;KAChB;AAKD,IAAA,IAAI,QAAQ,GAAK,EAAA,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE;IAS/D,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACtB;AACF;;ACtCD;;AAEG;;;;"}
@@ -14,7 +14,10 @@ const comma = (n) => n === null ? '0' : n.toLocaleString();
14
14
  const commaStr = (n, unit = '円') => n < 0 ? `-${comma(abs(n))}${unit}` : `${comma(n)}${unit}`;
15
15
  const abs = (n) => Math.abs(n);
16
16
 
17
- const compareById = (a, b) => parseInt(a.id, 10) - parseInt(b.id, 10);
17
+ function compareByIdFactory(key) {
18
+ return (a, b) => parseInt(a === null || a === void 0 ? void 0 : a[key], 10) - parseInt(b === null || b === void 0 ? void 0 : b[key], 10);
19
+ }
20
+ const compareById = compareByIdFactory('id');
18
21
 
19
22
  const removeComma = (str) => str.replace(/\,/g, '');
20
23
  const DATE_FORMAT = 'YYYY-MM-DDTHH:mm:ss';
@@ -405,5 +408,5 @@ const _lt = (value, query) => {
405
408
  * Generated bundle index. Do not edit.
406
409
  */
407
410
 
408
- export { DATE_FORMAT, DayjsDateAdapter, DayjsDateModule, MAT_DAYJS_DATE_ADAPTER_OPTIONS, MAT_DAYJS_DATE_ADAPTER_OPTIONS_FACTORY, MAT_DAYJS_DATE_FORMATS, MAT_DAYJS_DATE_FORMATS_FOR_JP, MAT_DAYJS_JP_PROVIDERS, MatDayjsDateModule, SMART_EXP_TRANSFORMER, abs, comma, commaStr, compareById, filterByQuery, isDateStr, isDateTimeStr, isIsoString, removeComma, smartExpTransformer, timestampToDayjs, toObject, yenTransform };
411
+ export { DATE_FORMAT, DayjsDateAdapter, DayjsDateModule, MAT_DAYJS_DATE_ADAPTER_OPTIONS, MAT_DAYJS_DATE_ADAPTER_OPTIONS_FACTORY, MAT_DAYJS_DATE_FORMATS, MAT_DAYJS_DATE_FORMATS_FOR_JP, MAT_DAYJS_JP_PROVIDERS, MatDayjsDateModule, SMART_EXP_TRANSFORMER, abs, comma, commaStr, compareById, compareByIdFactory, filterByQuery, isDateStr, isDateTimeStr, isIsoString, removeComma, smartExpTransformer, timestampToDayjs, toObject, yenTransform };
409
412
  //# sourceMappingURL=ng-atomic-common-utils.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ng-atomic-common-utils.mjs","sources":["../../../../../packages/@ng-atomic/common/src/utils/comma/comma.ts","../../../../../packages/@ng-atomic/common/src/utils/compare-by-id/compare-by-id.ts","../../../../../packages/@ng-atomic/common/src/utils/date-utils/date-utils.ts","../../../../../packages/@ng-atomic/common/src/utils/mat-dayjs-date/dayjs-date.adapter.ts","../../../../../packages/@ng-atomic/common/src/utils/mat-dayjs-date/dayjs-date.formats.ts","../../../../../packages/@ng-atomic/common/src/utils/mat-dayjs-date/dayjs-jp-providers.ts","../../../../../packages/@ng-atomic/common/src/utils/mat-dayjs-date/dayjs-date.module.ts","../../../../../packages/@ng-atomic/common/src/utils/smart-exp-transformer/smart-exp-transformer.ts","../../../../../packages/@ng-atomic/common/src/utils/to-object/to-object.ts","../../../../../packages/@ng-atomic/common/src/utils/query/query.resolver.ts","../../../../../packages/@ng-atomic/common/src/utils/index.ts","../../../../../packages/@ng-atomic/common/src/utils/ng-atomic-common-utils.ts"],"sourcesContent":["export const comma = (n: number | null): string => n === null ? '0' : n.toLocaleString();\nexport const commaStr = (n: number, unit: string = '円') => n < 0 ? `-${comma(abs(n))}${unit}` : `${comma(n)}${unit}`;\nexport const abs = (n: number) => Math.abs(n);","export type HasId = { id: string };\nexport const compareById = (a: HasId, b: HasId) => parseInt(a.id, 10) - parseInt(b.id, 10);\n","import dayjs from 'dayjs';\n\nexport const removeComma = (str: string) => str.replace(/\\,/g, '');\n\nexport const DATE_FORMAT = 'YYYY-MM-DDTHH:mm:ss';\nconst DATE_REGEX = /^[0-9]{4}\\/(0[1-9]|1[0-2])\\/(0[1-9]|[12][0-9]|3[01])$/;\nconst DATETIME_REGEX = /^\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\+([+-][0-2]\\d:[0-5]\\d)$/;\nexport const isDateStr = (str: string | null): str is string => str && !!str.match(DATE_REGEX);\nexport const isDateTimeStr = (str: string | null): str is string => str && !!str.match(DATE_REGEX);\n\nconst ISO_REGEX = /\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+([+-][0-2]\\d:[0-5]\\d|Z)/;\nexport const isIsoString = (str: string | null): str is string => str && !!str.match(ISO_REGEX);\n\n\nexport interface Timestamp {\n toDate: () => Date;\n}\n\nexport function timestampToDayjs(timestamp: Timestamp | null): dayjs.Dayjs | null {\n return timestamp ? dayjs(timestamp.toDate()) : null;\n}","\nimport { Optional, Inject, InjectionToken } from '@angular/core';\nimport { DateAdapter, MAT_DATE_LOCALE } from '@angular/material/core';\nimport dayjs from 'dayjs';\nimport { Dayjs } from 'dayjs';\nimport utc from 'dayjs/plugin/utc';\nimport localeData from 'dayjs/plugin/localeData';\nimport LocalizedFormat from 'dayjs/plugin/localizedFormat';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\n\n\nexport interface DayJsDateAdapterOptions {\n /**\n * Turns the use of utc dates on or off.\n * Changing this will change how Angular Material components like DatePicker output dates.\n * {@default false}\n */\n useUtc?: boolean;\n}\n\n/** InjectionToken for Dayjs date adapter to configure options. */\nexport const MAT_DAYJS_DATE_ADAPTER_OPTIONS = new InjectionToken<DayJsDateAdapterOptions>(\n 'MAT_DAYJS_DATE_ADAPTER_OPTIONS', {\n providedIn: 'root',\n factory: MAT_DAYJS_DATE_ADAPTER_OPTIONS_FACTORY\n});\n\nexport function MAT_DAYJS_DATE_ADAPTER_OPTIONS_FACTORY(): DayJsDateAdapterOptions {\n return {\n useUtc: false\n };\n}\n\n/** Creates an array and fills it with values. */\nfunction range<T>(length: number, valueFunction: (index: number) => T): T[] {\n const valuesArray = Array(length);\n for (let i = 0; i < length; i++) {\n valuesArray[i] = valueFunction(i);\n }\n return valuesArray;\n}\n\n/** Adapts Dayjs Dates for use with Angular Material. */\nexport class DayjsDateAdapter extends DateAdapter<Dayjs> {\n private localeData!: {\n firstDayOfWeek: number,\n longMonths: string[],\n shortMonths: string[],\n dates: string[],\n longDaysOfWeek: string[],\n shortDaysOfWeek: string[],\n narrowDaysOfWeek: string[]\n };\n\n constructor(\n @Optional() @Inject(MAT_DATE_LOCALE) public dateLocale: string,\n @Optional() @Inject(MAT_DAYJS_DATE_ADAPTER_OPTIONS) private options?: DayJsDateAdapterOptions\n ) {\n super();\n this.initializeParser(dateLocale);\n }\n\n // TODO: Implement\n override setLocale(locale: string) {\n super.setLocale(locale);\n\n const dayJsLocaleData = this.dayJs().localeData();\n this.localeData = {\n firstDayOfWeek: dayJsLocaleData.firstDayOfWeek(),\n longMonths: dayJsLocaleData.months(),\n shortMonths: dayJsLocaleData.monthsShort(),\n dates: range(31, (i) => this.createDate(2017, 0, i + 1).format('D')),\n longDaysOfWeek: range(7, (i) => this.dayJs().set('day', i).format('dddd')),\n shortDaysOfWeek: dayJsLocaleData.weekdaysShort(),\n narrowDaysOfWeek: dayJsLocaleData.weekdaysMin(),\n };\n }\n\n getYear(date: Dayjs): number {\n return this.dayJs(date).year();\n }\n\n getMonth(date: Dayjs): number {\n return this.dayJs(date).month();\n }\n\n getDate(date: Dayjs): number {\n return this.dayJs(date).date();\n }\n\n getDayOfWeek(date: Dayjs): number {\n return this.dayJs(date).day();\n }\n\n getMonthNames(style: 'long' | 'short' | 'narrow'): string[] {\n return style === 'long' ? this.localeData.longMonths : this.localeData.shortMonths;\n }\n\n getDateNames(): string[] {\n return this.localeData.dates;\n }\n\n getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[] {\n if (style === 'long') {\n return this.localeData.longDaysOfWeek;\n }\n if (style === 'short') {\n return this.localeData.shortDaysOfWeek;\n }\n return this.localeData.narrowDaysOfWeek;\n }\n\n getYearName(date: Dayjs): string {\n return this.dayJs(date).format('YYYY');\n }\n\n getFirstDayOfWeek(): number {\n return this.localeData.firstDayOfWeek;\n }\n\n getNumDaysInMonth(date: Dayjs): number {\n return this.dayJs(date).daysInMonth();\n }\n\n clone(date: Dayjs): Dayjs {\n return date.clone();\n }\n\n createDate(year: number, month: number, date: number): Dayjs {\n const returnDayjs = this.dayJs()\n .set('year', year)\n .set('month', month)\n .set('date', date);\n return returnDayjs;\n }\n\n today(): Dayjs {\n return this.dayJs();\n }\n\n parse(value: any, parseFormat: string): Dayjs | null {\n if (value && typeof value === 'string') {\n return this.dayJs(value, dayjs().localeData().longDateFormat(parseFormat), this.locale);\n }\n return value ? this.dayJs(value).locale(this.locale) : null;\n }\n\n format(date: Dayjs, displayFormat: string): string {\n if (!this.isValid(date)) {\n throw Error('DayjsDateAdapter: Cannot format invalid date.');\n }\n return date.locale(this.locale).format(displayFormat);\n }\n\n addCalendarYears(date: Dayjs, years: number): Dayjs {\n return date.add(years, 'year');\n }\n\n addCalendarMonths(date: Dayjs, months: number): Dayjs {\n return date.add(months, 'month');\n }\n\n addCalendarDays(date: Dayjs, days: number): Dayjs {\n return date.add(days, 'day');\n }\n\n toIso8601(date: Dayjs): string {\n return date.toISOString();\n }\n\n /**\n * Attempts to deserialize a value to a valid date object. This is different from parsing in that\n * deserialize should only accept non-ambiguous, locale-independent formats (e.g. a ISO 8601\n * string). The default implementation does not allow any deserialization, it simply checks that\n * the given value is already a valid date object or null. The `<mat-datepicker>` will call this\n * method on all of it's `@Input()` properties that accept dates. It is therefore possible to\n * support passing values from your backend directly to these properties by overriding this method\n * to also deserialize the format used by your backend.\n * @param value The value to be deserialized into a date object.\n * @returns The deserialized date object, either a valid date, null if the value can be\n * deserialized into a null date (e.g. the empty string), or an invalid date.\n */\n override deserialize(value: any): Dayjs | null {\n let date;\n if (value instanceof Date) {\n date = this.dayJs(value);\n } else if (this.isDateInstance(value)) {\n // NOTE: assumes that cloning also sets the correct locale.\n return this.clone(value);\n }\n if (typeof value === 'string') {\n if (!value) {\n return null;\n }\n date = this.dayJs(value).toISOString();\n }\n if (date && this.isValid(date as Dayjs)) {\n return this.dayJs(date); // NOTE: Is this necessary since Dayjs is immutable and Moment was not?\n }\n return super.deserialize(value);\n }\n\n isDateInstance(obj: any): boolean {\n return dayjs.isDayjs(obj);\n }\n\n isValid(date: Dayjs): boolean {\n return this.dayJs(date).isValid();\n }\n\n invalid(): Dayjs {\n return this.dayJs(null);\n }\n\n private dayJs(input?: any, format?: string, locale?: string): Dayjs {\n if (!this.shouldUseUtc) {\n return dayjs(input, { format, locale }, locale);\n }\n return dayjs(input, { format, locale, utc: this.shouldUseUtc }, locale).utc();\n }\n\n private get shouldUseUtc(): boolean {\n const { useUtc }: DayJsDateAdapterOptions = this.options || {};\n return !!useUtc;\n }\n\n private initializeParser(dateLocale: string) {\n if (this.shouldUseUtc) {\n dayjs.extend(utc);\n }\n\n dayjs.extend(LocalizedFormat);\n dayjs.extend(customParseFormat);\n dayjs.extend(localeData);\n\n this.setLocale(dateLocale);\n }\n}","import { MatDateFormats } from '@angular/material/core';\n\n/**\n * Custom Date-Formats and Adapter (using https://github.com/iamkun/dayjs)\n */\nexport const MAT_DAYJS_DATE_FORMATS: MatDateFormats = {\n parse: {\n dateInput: 'MM/DD/YYYY',\n },\n display: {\n dateInput: 'MM/DD/YYYY',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n }\n};","import { MatDateFormats, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport dayjs from 'dayjs';\nimport 'dayjs/locale/ja'\ndayjs.locale('ja');\n\nexport const MAT_DAYJS_DATE_FORMATS_FOR_JP: MatDateFormats = {\n parse: {\n dateInput: 'YYYY/MM/DD',\n },\n display: {\n dateInput: 'YYYY/MM/DD',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n }\n};\n\nexport const MAT_DAYJS_JP_PROVIDERS = [\n { provide: MAT_DATE_LOCALE, useValue: 'ja' },\n { provide: MAT_DATE_FORMATS, useValue: MAT_DAYJS_DATE_FORMATS_FOR_JP },\n];\n","import { NgModule } from '@angular/core';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { DayjsDateAdapter, MAT_DAYJS_DATE_ADAPTER_OPTIONS } from './dayjs-date.adapter';\nimport { MAT_DAYJS_DATE_FORMATS } from './dayjs-date.formats';\n\n@NgModule({\n providers: [\n {\n provide: DateAdapter,\n useClass: DayjsDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_DAYJS_DATE_ADAPTER_OPTIONS]\n },\n ],\n})\nexport class DayjsDateModule { }\n\n@NgModule({\n imports: [DayjsDateModule],\n providers: [{ provide: MAT_DATE_FORMATS, useValue: MAT_DAYJS_DATE_FORMATS }],\n})\nexport class MatDayjsDateModule { }","import { InjectionToken } from '@angular/core';\nimport dayjs from 'dayjs';\nimport { comma } from '../comma';\n\nexport const SMART_EXP_TRANSFORMER = new InjectionToken<SmartExpTransformer>('[@ng-atomic/common] Smart Transformer');\n\nexport type SmartExpTransformer = (input: string | number | dayjs.Dayjs | any, key?: string) => string;\n\n// export const yenTransform = (value: number, _unit?: string): string => {\n// return value < 1 ? `${comma(value * 100)}%` : `${comma(value)}円`;\n// }\n\nexport const yenTransform = (value: number, _unit?: string): string => {\n return `${comma(value)}円`;\n}\n\nexport const smartExpTransformer: SmartExpTransformer = input => dayjs.isDayjs(input)\n ? input.format('YY/MM/DD')\n : Array.isArray(input) \n ? `${input.length}個のアイテム`\n : typeof input === 'number'\n ? yenTransform(input)\n : input;","const getAllProps = (obj: object, keys: string[] = Object.keys(obj)): string[] => {\n const proto = Object.getPrototypeOf(obj);\n keys = Object.getOwnPropertyNames(proto)\n .filter(v => v !== '__proto__')\n .filter(v => Object.getOwnPropertyDescriptor(proto, v)!.get instanceof Function)\n .concat(keys);\n\n return proto.constructor.name === 'Object' ? keys : getAllProps(proto, keys);\n}\n\nexport const toObject = (obj: object): object => getAllProps(obj).reduce((p, k) => ({...p, [k]: obj[k]}), {});\n","import { flatten } from 'flat';\nimport { smartExpTransformer, SmartExpTransformer } from '../smart-exp-transformer';\nimport { toObject } from '../to-object';\nimport dayjs from 'dayjs';\n\nexport const filterByQuery = <T>(\n items: T[], \n queryString: string, \n dlm: Record<string, string> = {},\n transformer: SmartExpTransformer = smartExpTransformer,\n): T[] => {\n return new QueryResolver(dlm, transformer).resolve(items, queryString);\n}\n\ntype QueryResolveFunc<T> = (items: T[], query: string) => T[];\n\nclass QueryResolver<T extends object = any> {\n REVERSED_MAP: Record<string, string>;\n\n constructor(\n map: Record<string, string>,\n private transformer: SmartExpTransformer,\n ) {\n this.REVERSED_MAP = Object.entries(map).reduce((p, [k, v]) => ({\n ...p, [v]: k\n }), {} as Record<string, string>);\n }\n\n resolve(items: T[], queryString: string): T[] {\n return this.resolveQueries(items, queryString.split(' ').filter(q => q.length));\n }\n\n resolveQueries(items: T[], queries: string[]): T[] {\n return queries.reduce((_items, query: string) => {\n if (query.includes(':')) return this.inQueryByKey(_items, query);\n if (query.includes('=')) return this.inQueryByKey(_items, query);\n if (query.includes('>')) return this.gtQueryByKey(_items, query);\n if (query.includes('<')) return this.ltQueryByKey(_items, query);\n return this.inQuery(_items, query);\n }, items);\n }\n\n private parseQuery(query: string): [boolean, string, string] {\n const [_key, value] = query.split(':');\n return [_key.startsWith('-'), _key.startsWith('-') ? _key.slice(1) : _key, value];\n }\n\n private inQueryByKey: QueryResolveFunc<T> = (items, query) => {\n const [not, _key, value] = this.parseQuery(query);\n const key = this.REVERSED_MAP?.[_key] ?? _key;\n return items.filter(item => _not(this.in(key, flatten(toObject(item as any))?.[key], value), not));\n }\n\n private gtQueryByKey: QueryResolveFunc<T> = (items, query) => {\n const [_key, value] = query.split('>');\n const key = this.REVERSED_MAP?.[_key] ?? _key;\n return items.filter(item => {\n // TODO(nontangent): flattenしたときにdayjsが壊れる\n const v = flatten(toObject(item as any))?.[key] ?? toObject(item as any)?.[key];\n return this.gt(key, v, value)\n });\n }\n\n private ltQueryByKey: QueryResolveFunc<T> = (items, query) => {\n const [_key, value] = query.split('<');\n const key = this.REVERSED_MAP?.[_key] ?? _key;\n return items.filter(item => {\n // TODO(nontangent): flattenしたときにdayjsが壊れる\n const v = flatten(toObject(item as any))?.[key] ?? toObject(item as any)?.[key];\n return this.lt(key, v, value)\n });\n }\n\n private inQuery: QueryResolveFunc<T> = (items, q) => {\n return items.filter(item => Object.entries(flatten(toObject(item as T))).some(([k, v]) => this.in(k, v, q)));\n }\n\n private in(k: string, v: any, q: string) {\n return _in(this.transformer(v, k), q);\n }\n\n private gt(k: string, v: any, q: string) {\n // const value = dayjs.isDayjs(v) ? v : this.transformer(v, k);\n return _gt(v, q);\n }\n\n private lt(k: string, v: any, q: string) {\n // const value = dayjs.isDayjs(v) ? v : this.transformer(v, k);\n return _lt(v, q);\n }\n}\n\nconst _not = (bool: boolean, not: boolean): boolean => {\n return not ? !bool : bool;\n}\n\nconst _in = (value: any, query: string): boolean => {\n return typeof value === 'string' ? value?.includes(query) : false;\n}\n\nconst _gt = (value: any, query: string): boolean => {\n return typeof value === 'string' \n ? parseFloat(value) > parseFloat(query) \n : typeof value === 'number'\n ? value > parseFloat(query)\n : dayjs.isDayjs(value)\n ? dayjs(query).isBefore(value)\n : false;\n}\n\nconst _lt = (value: any, query: string): boolean => {\n return typeof value === 'string' \n ? parseFloat(value) < parseFloat(query) \n : typeof value === 'number'\n ? value < parseFloat(query)\n : dayjs.isDayjs(value)\n ? dayjs(query).isAfter(value)\n : false;\n}","export * from './comma';\nexport * from './compare-by-id';\nexport * from './date-utils';\nexport * from './mat-dayjs-date';\nexport * from './smart-exp-transformer';\nexport * from './to-object';\nexport * from './query';\n// export * from './define-element';\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-utils.mjs","sources":["../../../../../packages/@ng-atomic/common/src/utils/comma/comma.ts","../../../../../packages/@ng-atomic/common/src/utils/compare-by-id/compare-by-id.ts","../../../../../packages/@ng-atomic/common/src/utils/date-utils/date-utils.ts","../../../../../packages/@ng-atomic/common/src/utils/mat-dayjs-date/dayjs-date.adapter.ts","../../../../../packages/@ng-atomic/common/src/utils/mat-dayjs-date/dayjs-date.formats.ts","../../../../../packages/@ng-atomic/common/src/utils/mat-dayjs-date/dayjs-jp-providers.ts","../../../../../packages/@ng-atomic/common/src/utils/mat-dayjs-date/dayjs-date.module.ts","../../../../../packages/@ng-atomic/common/src/utils/smart-exp-transformer/smart-exp-transformer.ts","../../../../../packages/@ng-atomic/common/src/utils/to-object/to-object.ts","../../../../../packages/@ng-atomic/common/src/utils/query/query.resolver.ts","../../../../../packages/@ng-atomic/common/src/utils/index.ts","../../../../../packages/@ng-atomic/common/src/utils/ng-atomic-common-utils.ts"],"sourcesContent":["export const comma = (n: number | null): string => n === null ? '0' : n.toLocaleString();\nexport const commaStr = (n: number, unit: string = '円') => n < 0 ? `-${comma(abs(n))}${unit}` : `${comma(n)}${unit}`;\nexport const abs = (n: number) => Math.abs(n);","export type HasId = { id: string };\nexport function compareByIdFactory(key: string) {\n return (a: any, b: any) => parseInt(a?.[key], 10) - parseInt(b?.[key], 10);\n}\nexport const compareById = compareByIdFactory('id');\n","import dayjs from 'dayjs';\n\nexport const removeComma = (str: string) => str.replace(/\\,/g, '');\n\nexport const DATE_FORMAT = 'YYYY-MM-DDTHH:mm:ss';\nconst DATE_REGEX = /^[0-9]{4}\\/(0[1-9]|1[0-2])\\/(0[1-9]|[12][0-9]|3[01])$/;\nconst DATETIME_REGEX = /^\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\+([+-][0-2]\\d:[0-5]\\d)$/;\nexport const isDateStr = (str: string | null): str is string => str && !!str.match(DATE_REGEX);\nexport const isDateTimeStr = (str: string | null): str is string => str && !!str.match(DATE_REGEX);\n\nconst ISO_REGEX = /\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+([+-][0-2]\\d:[0-5]\\d|Z)/;\nexport const isIsoString = (str: string | null): str is string => str && !!str.match(ISO_REGEX);\n\n\nexport interface Timestamp {\n toDate: () => Date;\n}\n\nexport function timestampToDayjs(timestamp: Timestamp | null): dayjs.Dayjs | null {\n return timestamp ? dayjs(timestamp.toDate()) : null;\n}","\nimport { Optional, Inject, InjectionToken } from '@angular/core';\nimport { DateAdapter, MAT_DATE_LOCALE } from '@angular/material/core';\nimport dayjs from 'dayjs';\nimport { Dayjs } from 'dayjs';\nimport utc from 'dayjs/plugin/utc';\nimport localeData from 'dayjs/plugin/localeData';\nimport LocalizedFormat from 'dayjs/plugin/localizedFormat';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\n\n\nexport interface DayJsDateAdapterOptions {\n /**\n * Turns the use of utc dates on or off.\n * Changing this will change how Angular Material components like DatePicker output dates.\n * {@default false}\n */\n useUtc?: boolean;\n}\n\n/** InjectionToken for Dayjs date adapter to configure options. */\nexport const MAT_DAYJS_DATE_ADAPTER_OPTIONS = new InjectionToken<DayJsDateAdapterOptions>(\n 'MAT_DAYJS_DATE_ADAPTER_OPTIONS', {\n providedIn: 'root',\n factory: MAT_DAYJS_DATE_ADAPTER_OPTIONS_FACTORY\n});\n\nexport function MAT_DAYJS_DATE_ADAPTER_OPTIONS_FACTORY(): DayJsDateAdapterOptions {\n return {\n useUtc: false\n };\n}\n\n/** Creates an array and fills it with values. */\nfunction range<T>(length: number, valueFunction: (index: number) => T): T[] {\n const valuesArray = Array(length);\n for (let i = 0; i < length; i++) {\n valuesArray[i] = valueFunction(i);\n }\n return valuesArray;\n}\n\n/** Adapts Dayjs Dates for use with Angular Material. */\nexport class DayjsDateAdapter extends DateAdapter<Dayjs> {\n private localeData!: {\n firstDayOfWeek: number,\n longMonths: string[],\n shortMonths: string[],\n dates: string[],\n longDaysOfWeek: string[],\n shortDaysOfWeek: string[],\n narrowDaysOfWeek: string[]\n };\n\n constructor(\n @Optional() @Inject(MAT_DATE_LOCALE) public dateLocale: string,\n @Optional() @Inject(MAT_DAYJS_DATE_ADAPTER_OPTIONS) private options?: DayJsDateAdapterOptions\n ) {\n super();\n this.initializeParser(dateLocale);\n }\n\n // TODO: Implement\n override setLocale(locale: string) {\n super.setLocale(locale);\n\n const dayJsLocaleData = this.dayJs().localeData();\n this.localeData = {\n firstDayOfWeek: dayJsLocaleData.firstDayOfWeek(),\n longMonths: dayJsLocaleData.months(),\n shortMonths: dayJsLocaleData.monthsShort(),\n dates: range(31, (i) => this.createDate(2017, 0, i + 1).format('D')),\n longDaysOfWeek: range(7, (i) => this.dayJs().set('day', i).format('dddd')),\n shortDaysOfWeek: dayJsLocaleData.weekdaysShort(),\n narrowDaysOfWeek: dayJsLocaleData.weekdaysMin(),\n };\n }\n\n getYear(date: Dayjs): number {\n return this.dayJs(date).year();\n }\n\n getMonth(date: Dayjs): number {\n return this.dayJs(date).month();\n }\n\n getDate(date: Dayjs): number {\n return this.dayJs(date).date();\n }\n\n getDayOfWeek(date: Dayjs): number {\n return this.dayJs(date).day();\n }\n\n getMonthNames(style: 'long' | 'short' | 'narrow'): string[] {\n return style === 'long' ? this.localeData.longMonths : this.localeData.shortMonths;\n }\n\n getDateNames(): string[] {\n return this.localeData.dates;\n }\n\n getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[] {\n if (style === 'long') {\n return this.localeData.longDaysOfWeek;\n }\n if (style === 'short') {\n return this.localeData.shortDaysOfWeek;\n }\n return this.localeData.narrowDaysOfWeek;\n }\n\n getYearName(date: Dayjs): string {\n return this.dayJs(date).format('YYYY');\n }\n\n getFirstDayOfWeek(): number {\n return this.localeData.firstDayOfWeek;\n }\n\n getNumDaysInMonth(date: Dayjs): number {\n return this.dayJs(date).daysInMonth();\n }\n\n clone(date: Dayjs): Dayjs {\n return date.clone();\n }\n\n createDate(year: number, month: number, date: number): Dayjs {\n const returnDayjs = this.dayJs()\n .set('year', year)\n .set('month', month)\n .set('date', date);\n return returnDayjs;\n }\n\n today(): Dayjs {\n return this.dayJs();\n }\n\n parse(value: any, parseFormat: string): Dayjs | null {\n if (value && typeof value === 'string') {\n return this.dayJs(value, dayjs().localeData().longDateFormat(parseFormat), this.locale);\n }\n return value ? this.dayJs(value).locale(this.locale) : null;\n }\n\n format(date: Dayjs, displayFormat: string): string {\n if (!this.isValid(date)) {\n throw Error('DayjsDateAdapter: Cannot format invalid date.');\n }\n return date.locale(this.locale).format(displayFormat);\n }\n\n addCalendarYears(date: Dayjs, years: number): Dayjs {\n return date.add(years, 'year');\n }\n\n addCalendarMonths(date: Dayjs, months: number): Dayjs {\n return date.add(months, 'month');\n }\n\n addCalendarDays(date: Dayjs, days: number): Dayjs {\n return date.add(days, 'day');\n }\n\n toIso8601(date: Dayjs): string {\n return date.toISOString();\n }\n\n /**\n * Attempts to deserialize a value to a valid date object. This is different from parsing in that\n * deserialize should only accept non-ambiguous, locale-independent formats (e.g. a ISO 8601\n * string). The default implementation does not allow any deserialization, it simply checks that\n * the given value is already a valid date object or null. The `<mat-datepicker>` will call this\n * method on all of it's `@Input()` properties that accept dates. It is therefore possible to\n * support passing values from your backend directly to these properties by overriding this method\n * to also deserialize the format used by your backend.\n * @param value The value to be deserialized into a date object.\n * @returns The deserialized date object, either a valid date, null if the value can be\n * deserialized into a null date (e.g. the empty string), or an invalid date.\n */\n override deserialize(value: any): Dayjs | null {\n let date;\n if (value instanceof Date) {\n date = this.dayJs(value);\n } else if (this.isDateInstance(value)) {\n // NOTE: assumes that cloning also sets the correct locale.\n return this.clone(value);\n }\n if (typeof value === 'string') {\n if (!value) {\n return null;\n }\n date = this.dayJs(value).toISOString();\n }\n if (date && this.isValid(date as Dayjs)) {\n return this.dayJs(date); // NOTE: Is this necessary since Dayjs is immutable and Moment was not?\n }\n return super.deserialize(value);\n }\n\n isDateInstance(obj: any): boolean {\n return dayjs.isDayjs(obj);\n }\n\n isValid(date: Dayjs): boolean {\n return this.dayJs(date).isValid();\n }\n\n invalid(): Dayjs {\n return this.dayJs(null);\n }\n\n private dayJs(input?: any, format?: string, locale?: string): Dayjs {\n if (!this.shouldUseUtc) {\n return dayjs(input, { format, locale }, locale);\n }\n return dayjs(input, { format, locale, utc: this.shouldUseUtc }, locale).utc();\n }\n\n private get shouldUseUtc(): boolean {\n const { useUtc }: DayJsDateAdapterOptions = this.options || {};\n return !!useUtc;\n }\n\n private initializeParser(dateLocale: string) {\n if (this.shouldUseUtc) {\n dayjs.extend(utc);\n }\n\n dayjs.extend(LocalizedFormat);\n dayjs.extend(customParseFormat);\n dayjs.extend(localeData);\n\n this.setLocale(dateLocale);\n }\n}","import { MatDateFormats } from '@angular/material/core';\n\n/**\n * Custom Date-Formats and Adapter (using https://github.com/iamkun/dayjs)\n */\nexport const MAT_DAYJS_DATE_FORMATS: MatDateFormats = {\n parse: {\n dateInput: 'MM/DD/YYYY',\n },\n display: {\n dateInput: 'MM/DD/YYYY',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n }\n};","import { MatDateFormats, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport dayjs from 'dayjs';\nimport 'dayjs/locale/ja'\ndayjs.locale('ja');\n\nexport const MAT_DAYJS_DATE_FORMATS_FOR_JP: MatDateFormats = {\n parse: {\n dateInput: 'YYYY/MM/DD',\n },\n display: {\n dateInput: 'YYYY/MM/DD',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n }\n};\n\nexport const MAT_DAYJS_JP_PROVIDERS = [\n { provide: MAT_DATE_LOCALE, useValue: 'ja' },\n { provide: MAT_DATE_FORMATS, useValue: MAT_DAYJS_DATE_FORMATS_FOR_JP },\n];\n","import { NgModule } from '@angular/core';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { DayjsDateAdapter, MAT_DAYJS_DATE_ADAPTER_OPTIONS } from './dayjs-date.adapter';\nimport { MAT_DAYJS_DATE_FORMATS } from './dayjs-date.formats';\n\n@NgModule({\n providers: [\n {\n provide: DateAdapter,\n useClass: DayjsDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_DAYJS_DATE_ADAPTER_OPTIONS]\n },\n ],\n})\nexport class DayjsDateModule { }\n\n@NgModule({\n imports: [DayjsDateModule],\n providers: [{ provide: MAT_DATE_FORMATS, useValue: MAT_DAYJS_DATE_FORMATS }],\n})\nexport class MatDayjsDateModule { }","import { InjectionToken } from '@angular/core';\nimport dayjs from 'dayjs';\nimport { comma } from '../comma';\n\nexport const SMART_EXP_TRANSFORMER = new InjectionToken<SmartExpTransformer>('[@ng-atomic/common] Smart Transformer');\n\nexport type SmartExpTransformer = (input: string | number | dayjs.Dayjs | any, key?: string) => string;\n\n// export const yenTransform = (value: number, _unit?: string): string => {\n// return value < 1 ? `${comma(value * 100)}%` : `${comma(value)}円`;\n// }\n\nexport const yenTransform = (value: number, _unit?: string): string => {\n return `${comma(value)}円`;\n}\n\nexport const smartExpTransformer: SmartExpTransformer = input => dayjs.isDayjs(input)\n ? input.format('YY/MM/DD')\n : Array.isArray(input) \n ? `${input.length}個のアイテム`\n : typeof input === 'number'\n ? yenTransform(input)\n : input;","const getAllProps = (obj: object, keys: string[] = Object.keys(obj)): string[] => {\n const proto = Object.getPrototypeOf(obj);\n keys = Object.getOwnPropertyNames(proto)\n .filter(v => v !== '__proto__')\n .filter(v => Object.getOwnPropertyDescriptor(proto, v)!.get instanceof Function)\n .concat(keys);\n\n return proto.constructor.name === 'Object' ? keys : getAllProps(proto, keys);\n}\n\nexport const toObject = (obj: object): object => getAllProps(obj).reduce((p, k) => ({...p, [k]: obj[k]}), {});\n","import { flatten } from 'flat';\nimport { smartExpTransformer, SmartExpTransformer } from '../smart-exp-transformer';\nimport { toObject } from '../to-object';\nimport dayjs from 'dayjs';\n\nexport const filterByQuery = <T>(\n items: T[], \n queryString: string, \n dlm: Record<string, string> = {},\n transformer: SmartExpTransformer = smartExpTransformer,\n): T[] => {\n return new QueryResolver(dlm, transformer).resolve(items, queryString);\n}\n\ntype QueryResolveFunc<T> = (items: T[], query: string) => T[];\n\nclass QueryResolver<T extends object = any> {\n REVERSED_MAP: Record<string, string>;\n\n constructor(\n map: Record<string, string>,\n private transformer: SmartExpTransformer,\n ) {\n this.REVERSED_MAP = Object.entries(map).reduce((p, [k, v]) => ({\n ...p, [v]: k\n }), {} as Record<string, string>);\n }\n\n resolve(items: T[], queryString: string): T[] {\n return this.resolveQueries(items, queryString.split(' ').filter(q => q.length));\n }\n\n resolveQueries(items: T[], queries: string[]): T[] {\n return queries.reduce((_items, query: string) => {\n if (query.includes(':')) return this.inQueryByKey(_items, query);\n if (query.includes('=')) return this.inQueryByKey(_items, query);\n if (query.includes('>')) return this.gtQueryByKey(_items, query);\n if (query.includes('<')) return this.ltQueryByKey(_items, query);\n return this.inQuery(_items, query);\n }, items);\n }\n\n private parseQuery(query: string): [boolean, string, string] {\n const [_key, value] = query.split(':');\n return [_key.startsWith('-'), _key.startsWith('-') ? _key.slice(1) : _key, value];\n }\n\n private inQueryByKey: QueryResolveFunc<T> = (items, query) => {\n const [not, _key, value] = this.parseQuery(query);\n const key = this.REVERSED_MAP?.[_key] ?? _key;\n return items.filter(item => _not(this.in(key, flatten(toObject(item as any))?.[key], value), not));\n }\n\n private gtQueryByKey: QueryResolveFunc<T> = (items, query) => {\n const [_key, value] = query.split('>');\n const key = this.REVERSED_MAP?.[_key] ?? _key;\n return items.filter(item => {\n // TODO(nontangent): flattenしたときにdayjsが壊れる\n const v = flatten(toObject(item as any))?.[key] ?? toObject(item as any)?.[key];\n return this.gt(key, v, value)\n });\n }\n\n private ltQueryByKey: QueryResolveFunc<T> = (items, query) => {\n const [_key, value] = query.split('<');\n const key = this.REVERSED_MAP?.[_key] ?? _key;\n return items.filter(item => {\n // TODO(nontangent): flattenしたときにdayjsが壊れる\n const v = flatten(toObject(item as any))?.[key] ?? toObject(item as any)?.[key];\n return this.lt(key, v, value)\n });\n }\n\n private inQuery: QueryResolveFunc<T> = (items, q) => {\n return items.filter(item => Object.entries(flatten(toObject(item as T))).some(([k, v]) => this.in(k, v, q)));\n }\n\n private in(k: string, v: any, q: string) {\n return _in(this.transformer(v, k), q);\n }\n\n private gt(k: string, v: any, q: string) {\n // const value = dayjs.isDayjs(v) ? v : this.transformer(v, k);\n return _gt(v, q);\n }\n\n private lt(k: string, v: any, q: string) {\n // const value = dayjs.isDayjs(v) ? v : this.transformer(v, k);\n return _lt(v, q);\n }\n}\n\nconst _not = (bool: boolean, not: boolean): boolean => {\n return not ? !bool : bool;\n}\n\nconst _in = (value: any, query: string): boolean => {\n return typeof value === 'string' ? value?.includes(query) : false;\n}\n\nconst _gt = (value: any, query: string): boolean => {\n return typeof value === 'string' \n ? parseFloat(value) > parseFloat(query) \n : typeof value === 'number'\n ? value > parseFloat(query)\n : dayjs.isDayjs(value)\n ? dayjs(query).isBefore(value)\n : false;\n}\n\nconst _lt = (value: any, query: string): boolean => {\n return typeof value === 'string' \n ? parseFloat(value) < parseFloat(query) \n : typeof value === 'number'\n ? value < parseFloat(query)\n : dayjs.isDayjs(value)\n ? dayjs(query).isAfter(value)\n : false;\n}","export * from './comma';\nexport * from './compare-by-id';\nexport * from './date-utils';\nexport * from './mat-dayjs-date';\nexport * from './smart-exp-transformer';\nexport * from './to-object';\nexport * from './query';\n// export * from './define-element';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,21 +1,26 @@
1
1
  import { ComponentStore } from '@ngrx/component-store';
2
- import { compareById } from '@ng-atomic/common/utils';
3
2
  import { ReplaySubject } from 'rxjs';
4
3
  import { distinctUntilChanged } from 'rxjs/operators';
4
+ import { createEntityAdapter } from '@ngrx/entity';
5
5
 
6
6
  const distinctUntilChangedArray = () => {
7
7
  return distinctUntilChanged((pre, cur) => JSON.stringify(pre) === JSON.stringify(cur));
8
8
  };
9
9
  class EntitiesStore extends ComponentStore {
10
- get entities() { return this.get().entities; }
11
- constructor(initialState) {
12
- super(initialState);
10
+ constructor(adapter = createEntityAdapter({
11
+ selectId: (entity) => entity.id,
12
+ sortComparer: false,
13
+ })) {
14
+ super(adapter.getInitialState());
15
+ this.adapter = adapter;
13
16
  this.refresh$ = new ReplaySubject(1);
14
- this.entities$ = this.select(({ entities }) => entities ? entities.sort(compareById) : []);
15
- this.size$ = this.select(({ entities }) => entities?.length ?? 0);
16
- this.setEntities = this.updater((state, entities) => ({ ...state, entities }));
17
+ this.selectors = this.adapter.getSelectors();
18
+ this.entities$ = this.select(this.selectors.selectAll);
19
+ this.size$ = this.select(this.selectors.selectTotal);
20
+ this.setEntities = this.updater((state, entities) => this.adapter.setAll(entities, state));
17
21
  this.refresh();
18
22
  }
23
+ get entities() { return this.selectors.selectAll(this.get()); }
19
24
  refresh() {
20
25
  this.refresh$.next();
21
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ng-atomic-common-stores-entities.mjs","sources":["../../../../../packages/@ng-atomic/common/src/stores/entities/entities.store.ts","../../../../../packages/@ng-atomic/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, ReplaySubject } from 'rxjs';\nimport { distinctUntilChanged, tap, filter, switchMap } from 'rxjs/operators';\n\nexport interface EntitiesState<E> {\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<E extends {id: string}, S extends EntitiesState<E> = any> extends ComponentStore<S> {\n protected readonly refresh$ = new ReplaySubject<void>(1);\n\n get entities() { return this.get().entities; }\n\n entities$ = this.select(({entities}) => entities ? entities.sort(compareById) : []);\n size$ = this.select(({entities}) => entities?.length ?? 0);\n \n constructor(initialState: S) {\n super(initialState);\n this.refresh();\n }\n\n setEntities = this.updater((state, entities: E[]) => ({...state, entities}));\n\n abstract getEntities: ReturnType<typeof this.effect>;\n\n refresh() {\n this.refresh$.next();\n }\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AASO,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,aAAwE,SAAQ,cAAiB,CAAA;IAGrH,IAAI,QAAQ,GAAK,EAAA,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE;AAK9C,IAAA,WAAA,CAAY,YAAe,EAAA;QACzB,KAAK,CAAC,YAAY,CAAC,CAAC;AARH,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,aAAa,CAAO,CAAC,CAAC,CAAC;QAIzD,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;AACpF,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAC,QAAQ,EAAC,KAAK,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC;QAO3D,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,QAAa,MAAM,EAAC,GAAG,KAAK,EAAE,QAAQ,EAAC,CAAC,CAAC,CAAC;QAH3E,IAAI,CAAC,OAAO,EAAE,CAAC;KAChB;IAMD,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACtB;AACF;;ACjCD;;AAEG;;;;"}
1
+ {"version":3,"file":"ng-atomic-common-stores-entities.mjs","sources":["../../../../../packages/@ng-atomic/common/src/stores/entities/entities.store.ts","../../../../../packages/@ng-atomic/common/src/stores/entities/ng-atomic-common-stores-entities.ts"],"sourcesContent":["import { ComponentStore } from '@ngrx/component-store';\nimport { ReplaySubject } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\nimport { EntityState, EntityAdapter, createEntityAdapter } from '@ngrx/entity';\n\nexport const distinctUntilChangedArray = <T>() => {\n return distinctUntilChanged<T>((pre, cur) => JSON.stringify(pre) === JSON.stringify(cur));\n};\n\nexport abstract class EntitiesStore<\n E extends {id: string},\n S extends EntityState<E> = any,\n> extends ComponentStore<S> {\n constructor(\n protected adapter: EntityAdapter<E> = createEntityAdapter<E>({\n selectId: (entity) => entity.id,\n sortComparer: false,\n }),\n ) {\n super(adapter.getInitialState() as S);\n this.refresh();\n }\n\n protected readonly refresh$ = new ReplaySubject<void>(1);\n protected readonly selectors = this.adapter.getSelectors();\n\n get entities() { return this.selectors.selectAll(this.get()); }\n\n entities$ = this.select(this.selectors.selectAll);\n size$ = this.select(this.selectors.selectTotal);\n \n setEntities = this.updater((state, entities: E[]) => this.adapter.setAll(entities, state));\n\n abstract getEntities: ReturnType<typeof this.effect>;\n\n refresh() {\n this.refresh$.next();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAKO,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,aAGpB,SAAQ,cAAiB,CAAA;IACzB,WACY,CAAA,OAAA,GAA4B,mBAAmB,CAAI;QAC3D,QAAQ,EAAE,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE;AAC/B,QAAA,YAAY,EAAE,KAAK;KACpB,CAAC,EAAA;AAEF,QAAA,KAAK,CAAC,OAAO,CAAC,eAAe,EAAO,CAAC,CAAC;QAL5B,IAAO,CAAA,OAAA,GAAP,OAAO,CAGf;AAMe,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,aAAa,CAAO,CAAC,CAAC,CAAC;AACtC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;QAI3D,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAClD,IAAK,CAAA,KAAA,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAEhD,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,QAAa,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;QAXzF,IAAI,CAAC,OAAO,EAAE,CAAC;KAChB;AAKD,IAAA,IAAI,QAAQ,GAAK,EAAA,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE;IAS/D,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACtB;AACF;;ACtCD;;AAEG;;;;"}
@@ -14,7 +14,10 @@ const comma = (n) => n === null ? '0' : n.toLocaleString();
14
14
  const commaStr = (n, unit = '円') => n < 0 ? `-${comma(abs(n))}${unit}` : `${comma(n)}${unit}`;
15
15
  const abs = (n) => Math.abs(n);
16
16
 
17
- const compareById = (a, b) => parseInt(a.id, 10) - parseInt(b.id, 10);
17
+ function compareByIdFactory(key) {
18
+ return (a, b) => parseInt(a?.[key], 10) - parseInt(b?.[key], 10);
19
+ }
20
+ const compareById = compareByIdFactory('id');
18
21
 
19
22
  const removeComma = (str) => str.replace(/\,/g, '');
20
23
  const DATE_FORMAT = 'YYYY-MM-DDTHH:mm:ss';
@@ -402,5 +405,5 @@ const _lt = (value, query) => {
402
405
  * Generated bundle index. Do not edit.
403
406
  */
404
407
 
405
- export { DATE_FORMAT, DayjsDateAdapter, DayjsDateModule, MAT_DAYJS_DATE_ADAPTER_OPTIONS, MAT_DAYJS_DATE_ADAPTER_OPTIONS_FACTORY, MAT_DAYJS_DATE_FORMATS, MAT_DAYJS_DATE_FORMATS_FOR_JP, MAT_DAYJS_JP_PROVIDERS, MatDayjsDateModule, SMART_EXP_TRANSFORMER, abs, comma, commaStr, compareById, filterByQuery, isDateStr, isDateTimeStr, isIsoString, removeComma, smartExpTransformer, timestampToDayjs, toObject, yenTransform };
408
+ export { DATE_FORMAT, DayjsDateAdapter, DayjsDateModule, MAT_DAYJS_DATE_ADAPTER_OPTIONS, MAT_DAYJS_DATE_ADAPTER_OPTIONS_FACTORY, MAT_DAYJS_DATE_FORMATS, MAT_DAYJS_DATE_FORMATS_FOR_JP, MAT_DAYJS_JP_PROVIDERS, MatDayjsDateModule, SMART_EXP_TRANSFORMER, abs, comma, commaStr, compareById, compareByIdFactory, filterByQuery, isDateStr, isDateTimeStr, isIsoString, removeComma, smartExpTransformer, timestampToDayjs, toObject, yenTransform };
406
409
  //# sourceMappingURL=ng-atomic-common-utils.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ng-atomic-common-utils.mjs","sources":["../../../../../packages/@ng-atomic/common/src/utils/comma/comma.ts","../../../../../packages/@ng-atomic/common/src/utils/compare-by-id/compare-by-id.ts","../../../../../packages/@ng-atomic/common/src/utils/date-utils/date-utils.ts","../../../../../packages/@ng-atomic/common/src/utils/mat-dayjs-date/dayjs-date.adapter.ts","../../../../../packages/@ng-atomic/common/src/utils/mat-dayjs-date/dayjs-date.formats.ts","../../../../../packages/@ng-atomic/common/src/utils/mat-dayjs-date/dayjs-jp-providers.ts","../../../../../packages/@ng-atomic/common/src/utils/mat-dayjs-date/dayjs-date.module.ts","../../../../../packages/@ng-atomic/common/src/utils/smart-exp-transformer/smart-exp-transformer.ts","../../../../../packages/@ng-atomic/common/src/utils/to-object/to-object.ts","../../../../../packages/@ng-atomic/common/src/utils/query/query.resolver.ts","../../../../../packages/@ng-atomic/common/src/utils/index.ts","../../../../../packages/@ng-atomic/common/src/utils/ng-atomic-common-utils.ts"],"sourcesContent":["export const comma = (n: number | null): string => n === null ? '0' : n.toLocaleString();\nexport const commaStr = (n: number, unit: string = '円') => n < 0 ? `-${comma(abs(n))}${unit}` : `${comma(n)}${unit}`;\nexport const abs = (n: number) => Math.abs(n);","export type HasId = { id: string };\nexport const compareById = (a: HasId, b: HasId) => parseInt(a.id, 10) - parseInt(b.id, 10);\n","import dayjs from 'dayjs';\n\nexport const removeComma = (str: string) => str.replace(/\\,/g, '');\n\nexport const DATE_FORMAT = 'YYYY-MM-DDTHH:mm:ss';\nconst DATE_REGEX = /^[0-9]{4}\\/(0[1-9]|1[0-2])\\/(0[1-9]|[12][0-9]|3[01])$/;\nconst DATETIME_REGEX = /^\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\+([+-][0-2]\\d:[0-5]\\d)$/;\nexport const isDateStr = (str: string | null): str is string => str && !!str.match(DATE_REGEX);\nexport const isDateTimeStr = (str: string | null): str is string => str && !!str.match(DATE_REGEX);\n\nconst ISO_REGEX = /\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+([+-][0-2]\\d:[0-5]\\d|Z)/;\nexport const isIsoString = (str: string | null): str is string => str && !!str.match(ISO_REGEX);\n\n\nexport interface Timestamp {\n toDate: () => Date;\n}\n\nexport function timestampToDayjs(timestamp: Timestamp | null): dayjs.Dayjs | null {\n return timestamp ? dayjs(timestamp.toDate()) : null;\n}","\nimport { Optional, Inject, InjectionToken } from '@angular/core';\nimport { DateAdapter, MAT_DATE_LOCALE } from '@angular/material/core';\nimport dayjs from 'dayjs';\nimport { Dayjs } from 'dayjs';\nimport utc from 'dayjs/plugin/utc';\nimport localeData from 'dayjs/plugin/localeData';\nimport LocalizedFormat from 'dayjs/plugin/localizedFormat';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\n\n\nexport interface DayJsDateAdapterOptions {\n /**\n * Turns the use of utc dates on or off.\n * Changing this will change how Angular Material components like DatePicker output dates.\n * {@default false}\n */\n useUtc?: boolean;\n}\n\n/** InjectionToken for Dayjs date adapter to configure options. */\nexport const MAT_DAYJS_DATE_ADAPTER_OPTIONS = new InjectionToken<DayJsDateAdapterOptions>(\n 'MAT_DAYJS_DATE_ADAPTER_OPTIONS', {\n providedIn: 'root',\n factory: MAT_DAYJS_DATE_ADAPTER_OPTIONS_FACTORY\n});\n\nexport function MAT_DAYJS_DATE_ADAPTER_OPTIONS_FACTORY(): DayJsDateAdapterOptions {\n return {\n useUtc: false\n };\n}\n\n/** Creates an array and fills it with values. */\nfunction range<T>(length: number, valueFunction: (index: number) => T): T[] {\n const valuesArray = Array(length);\n for (let i = 0; i < length; i++) {\n valuesArray[i] = valueFunction(i);\n }\n return valuesArray;\n}\n\n/** Adapts Dayjs Dates for use with Angular Material. */\nexport class DayjsDateAdapter extends DateAdapter<Dayjs> {\n private localeData!: {\n firstDayOfWeek: number,\n longMonths: string[],\n shortMonths: string[],\n dates: string[],\n longDaysOfWeek: string[],\n shortDaysOfWeek: string[],\n narrowDaysOfWeek: string[]\n };\n\n constructor(\n @Optional() @Inject(MAT_DATE_LOCALE) public dateLocale: string,\n @Optional() @Inject(MAT_DAYJS_DATE_ADAPTER_OPTIONS) private options?: DayJsDateAdapterOptions\n ) {\n super();\n this.initializeParser(dateLocale);\n }\n\n // TODO: Implement\n override setLocale(locale: string) {\n super.setLocale(locale);\n\n const dayJsLocaleData = this.dayJs().localeData();\n this.localeData = {\n firstDayOfWeek: dayJsLocaleData.firstDayOfWeek(),\n longMonths: dayJsLocaleData.months(),\n shortMonths: dayJsLocaleData.monthsShort(),\n dates: range(31, (i) => this.createDate(2017, 0, i + 1).format('D')),\n longDaysOfWeek: range(7, (i) => this.dayJs().set('day', i).format('dddd')),\n shortDaysOfWeek: dayJsLocaleData.weekdaysShort(),\n narrowDaysOfWeek: dayJsLocaleData.weekdaysMin(),\n };\n }\n\n getYear(date: Dayjs): number {\n return this.dayJs(date).year();\n }\n\n getMonth(date: Dayjs): number {\n return this.dayJs(date).month();\n }\n\n getDate(date: Dayjs): number {\n return this.dayJs(date).date();\n }\n\n getDayOfWeek(date: Dayjs): number {\n return this.dayJs(date).day();\n }\n\n getMonthNames(style: 'long' | 'short' | 'narrow'): string[] {\n return style === 'long' ? this.localeData.longMonths : this.localeData.shortMonths;\n }\n\n getDateNames(): string[] {\n return this.localeData.dates;\n }\n\n getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[] {\n if (style === 'long') {\n return this.localeData.longDaysOfWeek;\n }\n if (style === 'short') {\n return this.localeData.shortDaysOfWeek;\n }\n return this.localeData.narrowDaysOfWeek;\n }\n\n getYearName(date: Dayjs): string {\n return this.dayJs(date).format('YYYY');\n }\n\n getFirstDayOfWeek(): number {\n return this.localeData.firstDayOfWeek;\n }\n\n getNumDaysInMonth(date: Dayjs): number {\n return this.dayJs(date).daysInMonth();\n }\n\n clone(date: Dayjs): Dayjs {\n return date.clone();\n }\n\n createDate(year: number, month: number, date: number): Dayjs {\n const returnDayjs = this.dayJs()\n .set('year', year)\n .set('month', month)\n .set('date', date);\n return returnDayjs;\n }\n\n today(): Dayjs {\n return this.dayJs();\n }\n\n parse(value: any, parseFormat: string): Dayjs | null {\n if (value && typeof value === 'string') {\n return this.dayJs(value, dayjs().localeData().longDateFormat(parseFormat), this.locale);\n }\n return value ? this.dayJs(value).locale(this.locale) : null;\n }\n\n format(date: Dayjs, displayFormat: string): string {\n if (!this.isValid(date)) {\n throw Error('DayjsDateAdapter: Cannot format invalid date.');\n }\n return date.locale(this.locale).format(displayFormat);\n }\n\n addCalendarYears(date: Dayjs, years: number): Dayjs {\n return date.add(years, 'year');\n }\n\n addCalendarMonths(date: Dayjs, months: number): Dayjs {\n return date.add(months, 'month');\n }\n\n addCalendarDays(date: Dayjs, days: number): Dayjs {\n return date.add(days, 'day');\n }\n\n toIso8601(date: Dayjs): string {\n return date.toISOString();\n }\n\n /**\n * Attempts to deserialize a value to a valid date object. This is different from parsing in that\n * deserialize should only accept non-ambiguous, locale-independent formats (e.g. a ISO 8601\n * string). The default implementation does not allow any deserialization, it simply checks that\n * the given value is already a valid date object or null. The `<mat-datepicker>` will call this\n * method on all of it's `@Input()` properties that accept dates. It is therefore possible to\n * support passing values from your backend directly to these properties by overriding this method\n * to also deserialize the format used by your backend.\n * @param value The value to be deserialized into a date object.\n * @returns The deserialized date object, either a valid date, null if the value can be\n * deserialized into a null date (e.g. the empty string), or an invalid date.\n */\n override deserialize(value: any): Dayjs | null {\n let date;\n if (value instanceof Date) {\n date = this.dayJs(value);\n } else if (this.isDateInstance(value)) {\n // NOTE: assumes that cloning also sets the correct locale.\n return this.clone(value);\n }\n if (typeof value === 'string') {\n if (!value) {\n return null;\n }\n date = this.dayJs(value).toISOString();\n }\n if (date && this.isValid(date as Dayjs)) {\n return this.dayJs(date); // NOTE: Is this necessary since Dayjs is immutable and Moment was not?\n }\n return super.deserialize(value);\n }\n\n isDateInstance(obj: any): boolean {\n return dayjs.isDayjs(obj);\n }\n\n isValid(date: Dayjs): boolean {\n return this.dayJs(date).isValid();\n }\n\n invalid(): Dayjs {\n return this.dayJs(null);\n }\n\n private dayJs(input?: any, format?: string, locale?: string): Dayjs {\n if (!this.shouldUseUtc) {\n return dayjs(input, { format, locale }, locale);\n }\n return dayjs(input, { format, locale, utc: this.shouldUseUtc }, locale).utc();\n }\n\n private get shouldUseUtc(): boolean {\n const { useUtc }: DayJsDateAdapterOptions = this.options || {};\n return !!useUtc;\n }\n\n private initializeParser(dateLocale: string) {\n if (this.shouldUseUtc) {\n dayjs.extend(utc);\n }\n\n dayjs.extend(LocalizedFormat);\n dayjs.extend(customParseFormat);\n dayjs.extend(localeData);\n\n this.setLocale(dateLocale);\n }\n}","import { MatDateFormats } from '@angular/material/core';\n\n/**\n * Custom Date-Formats and Adapter (using https://github.com/iamkun/dayjs)\n */\nexport const MAT_DAYJS_DATE_FORMATS: MatDateFormats = {\n parse: {\n dateInput: 'MM/DD/YYYY',\n },\n display: {\n dateInput: 'MM/DD/YYYY',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n }\n};","import { MatDateFormats, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport dayjs from 'dayjs';\nimport 'dayjs/locale/ja'\ndayjs.locale('ja');\n\nexport const MAT_DAYJS_DATE_FORMATS_FOR_JP: MatDateFormats = {\n parse: {\n dateInput: 'YYYY/MM/DD',\n },\n display: {\n dateInput: 'YYYY/MM/DD',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n }\n};\n\nexport const MAT_DAYJS_JP_PROVIDERS = [\n { provide: MAT_DATE_LOCALE, useValue: 'ja' },\n { provide: MAT_DATE_FORMATS, useValue: MAT_DAYJS_DATE_FORMATS_FOR_JP },\n];\n","import { NgModule } from '@angular/core';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { DayjsDateAdapter, MAT_DAYJS_DATE_ADAPTER_OPTIONS } from './dayjs-date.adapter';\nimport { MAT_DAYJS_DATE_FORMATS } from './dayjs-date.formats';\n\n@NgModule({\n providers: [\n {\n provide: DateAdapter,\n useClass: DayjsDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_DAYJS_DATE_ADAPTER_OPTIONS]\n },\n ],\n})\nexport class DayjsDateModule { }\n\n@NgModule({\n imports: [DayjsDateModule],\n providers: [{ provide: MAT_DATE_FORMATS, useValue: MAT_DAYJS_DATE_FORMATS }],\n})\nexport class MatDayjsDateModule { }","import { InjectionToken } from '@angular/core';\nimport dayjs from 'dayjs';\nimport { comma } from '../comma';\n\nexport const SMART_EXP_TRANSFORMER = new InjectionToken<SmartExpTransformer>('[@ng-atomic/common] Smart Transformer');\n\nexport type SmartExpTransformer = (input: string | number | dayjs.Dayjs | any, key?: string) => string;\n\n// export const yenTransform = (value: number, _unit?: string): string => {\n// return value < 1 ? `${comma(value * 100)}%` : `${comma(value)}円`;\n// }\n\nexport const yenTransform = (value: number, _unit?: string): string => {\n return `${comma(value)}円`;\n}\n\nexport const smartExpTransformer: SmartExpTransformer = input => dayjs.isDayjs(input)\n ? input.format('YY/MM/DD')\n : Array.isArray(input) \n ? `${input.length}個のアイテム`\n : typeof input === 'number'\n ? yenTransform(input)\n : input;","const getAllProps = (obj: object, keys: string[] = Object.keys(obj)): string[] => {\n const proto = Object.getPrototypeOf(obj);\n keys = Object.getOwnPropertyNames(proto)\n .filter(v => v !== '__proto__')\n .filter(v => Object.getOwnPropertyDescriptor(proto, v)!.get instanceof Function)\n .concat(keys);\n\n return proto.constructor.name === 'Object' ? keys : getAllProps(proto, keys);\n}\n\nexport const toObject = (obj: object): object => getAllProps(obj).reduce((p, k) => ({...p, [k]: obj[k]}), {});\n","import { flatten } from 'flat';\nimport { smartExpTransformer, SmartExpTransformer } from '../smart-exp-transformer';\nimport { toObject } from '../to-object';\nimport dayjs from 'dayjs';\n\nexport const filterByQuery = <T>(\n items: T[], \n queryString: string, \n dlm: Record<string, string> = {},\n transformer: SmartExpTransformer = smartExpTransformer,\n): T[] => {\n return new QueryResolver(dlm, transformer).resolve(items, queryString);\n}\n\ntype QueryResolveFunc<T> = (items: T[], query: string) => T[];\n\nclass QueryResolver<T extends object = any> {\n REVERSED_MAP: Record<string, string>;\n\n constructor(\n map: Record<string, string>,\n private transformer: SmartExpTransformer,\n ) {\n this.REVERSED_MAP = Object.entries(map).reduce((p, [k, v]) => ({\n ...p, [v]: k\n }), {} as Record<string, string>);\n }\n\n resolve(items: T[], queryString: string): T[] {\n return this.resolveQueries(items, queryString.split(' ').filter(q => q.length));\n }\n\n resolveQueries(items: T[], queries: string[]): T[] {\n return queries.reduce((_items, query: string) => {\n if (query.includes(':')) return this.inQueryByKey(_items, query);\n if (query.includes('=')) return this.inQueryByKey(_items, query);\n if (query.includes('>')) return this.gtQueryByKey(_items, query);\n if (query.includes('<')) return this.ltQueryByKey(_items, query);\n return this.inQuery(_items, query);\n }, items);\n }\n\n private parseQuery(query: string): [boolean, string, string] {\n const [_key, value] = query.split(':');\n return [_key.startsWith('-'), _key.startsWith('-') ? _key.slice(1) : _key, value];\n }\n\n private inQueryByKey: QueryResolveFunc<T> = (items, query) => {\n const [not, _key, value] = this.parseQuery(query);\n const key = this.REVERSED_MAP?.[_key] ?? _key;\n return items.filter(item => _not(this.in(key, flatten(toObject(item as any))?.[key], value), not));\n }\n\n private gtQueryByKey: QueryResolveFunc<T> = (items, query) => {\n const [_key, value] = query.split('>');\n const key = this.REVERSED_MAP?.[_key] ?? _key;\n return items.filter(item => {\n // TODO(nontangent): flattenしたときにdayjsが壊れる\n const v = flatten(toObject(item as any))?.[key] ?? toObject(item as any)?.[key];\n return this.gt(key, v, value)\n });\n }\n\n private ltQueryByKey: QueryResolveFunc<T> = (items, query) => {\n const [_key, value] = query.split('<');\n const key = this.REVERSED_MAP?.[_key] ?? _key;\n return items.filter(item => {\n // TODO(nontangent): flattenしたときにdayjsが壊れる\n const v = flatten(toObject(item as any))?.[key] ?? toObject(item as any)?.[key];\n return this.lt(key, v, value)\n });\n }\n\n private inQuery: QueryResolveFunc<T> = (items, q) => {\n return items.filter(item => Object.entries(flatten(toObject(item as T))).some(([k, v]) => this.in(k, v, q)));\n }\n\n private in(k: string, v: any, q: string) {\n return _in(this.transformer(v, k), q);\n }\n\n private gt(k: string, v: any, q: string) {\n // const value = dayjs.isDayjs(v) ? v : this.transformer(v, k);\n return _gt(v, q);\n }\n\n private lt(k: string, v: any, q: string) {\n // const value = dayjs.isDayjs(v) ? v : this.transformer(v, k);\n return _lt(v, q);\n }\n}\n\nconst _not = (bool: boolean, not: boolean): boolean => {\n return not ? !bool : bool;\n}\n\nconst _in = (value: any, query: string): boolean => {\n return typeof value === 'string' ? value?.includes(query) : false;\n}\n\nconst _gt = (value: any, query: string): boolean => {\n return typeof value === 'string' \n ? parseFloat(value) > parseFloat(query) \n : typeof value === 'number'\n ? value > parseFloat(query)\n : dayjs.isDayjs(value)\n ? dayjs(query).isBefore(value)\n : false;\n}\n\nconst _lt = (value: any, query: string): boolean => {\n return typeof value === 'string' \n ? parseFloat(value) < parseFloat(query) \n : typeof value === 'number'\n ? value < parseFloat(query)\n : dayjs.isDayjs(value)\n ? dayjs(query).isAfter(value)\n : false;\n}","export * from './comma';\nexport * from './compare-by-id';\nexport * from './date-utils';\nexport * from './mat-dayjs-date';\nexport * from './smart-exp-transformer';\nexport * from './to-object';\nexport * from './query';\n// export * from './define-element';\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-utils.mjs","sources":["../../../../../packages/@ng-atomic/common/src/utils/comma/comma.ts","../../../../../packages/@ng-atomic/common/src/utils/compare-by-id/compare-by-id.ts","../../../../../packages/@ng-atomic/common/src/utils/date-utils/date-utils.ts","../../../../../packages/@ng-atomic/common/src/utils/mat-dayjs-date/dayjs-date.adapter.ts","../../../../../packages/@ng-atomic/common/src/utils/mat-dayjs-date/dayjs-date.formats.ts","../../../../../packages/@ng-atomic/common/src/utils/mat-dayjs-date/dayjs-jp-providers.ts","../../../../../packages/@ng-atomic/common/src/utils/mat-dayjs-date/dayjs-date.module.ts","../../../../../packages/@ng-atomic/common/src/utils/smart-exp-transformer/smart-exp-transformer.ts","../../../../../packages/@ng-atomic/common/src/utils/to-object/to-object.ts","../../../../../packages/@ng-atomic/common/src/utils/query/query.resolver.ts","../../../../../packages/@ng-atomic/common/src/utils/index.ts","../../../../../packages/@ng-atomic/common/src/utils/ng-atomic-common-utils.ts"],"sourcesContent":["export const comma = (n: number | null): string => n === null ? '0' : n.toLocaleString();\nexport const commaStr = (n: number, unit: string = '円') => n < 0 ? `-${comma(abs(n))}${unit}` : `${comma(n)}${unit}`;\nexport const abs = (n: number) => Math.abs(n);","export type HasId = { id: string };\nexport function compareByIdFactory(key: string) {\n return (a: any, b: any) => parseInt(a?.[key], 10) - parseInt(b?.[key], 10);\n}\nexport const compareById = compareByIdFactory('id');\n","import dayjs from 'dayjs';\n\nexport const removeComma = (str: string) => str.replace(/\\,/g, '');\n\nexport const DATE_FORMAT = 'YYYY-MM-DDTHH:mm:ss';\nconst DATE_REGEX = /^[0-9]{4}\\/(0[1-9]|1[0-2])\\/(0[1-9]|[12][0-9]|3[01])$/;\nconst DATETIME_REGEX = /^\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\+([+-][0-2]\\d:[0-5]\\d)$/;\nexport const isDateStr = (str: string | null): str is string => str && !!str.match(DATE_REGEX);\nexport const isDateTimeStr = (str: string | null): str is string => str && !!str.match(DATE_REGEX);\n\nconst ISO_REGEX = /\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+([+-][0-2]\\d:[0-5]\\d|Z)/;\nexport const isIsoString = (str: string | null): str is string => str && !!str.match(ISO_REGEX);\n\n\nexport interface Timestamp {\n toDate: () => Date;\n}\n\nexport function timestampToDayjs(timestamp: Timestamp | null): dayjs.Dayjs | null {\n return timestamp ? dayjs(timestamp.toDate()) : null;\n}","\nimport { Optional, Inject, InjectionToken } from '@angular/core';\nimport { DateAdapter, MAT_DATE_LOCALE } from '@angular/material/core';\nimport dayjs from 'dayjs';\nimport { Dayjs } from 'dayjs';\nimport utc from 'dayjs/plugin/utc';\nimport localeData from 'dayjs/plugin/localeData';\nimport LocalizedFormat from 'dayjs/plugin/localizedFormat';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\n\n\nexport interface DayJsDateAdapterOptions {\n /**\n * Turns the use of utc dates on or off.\n * Changing this will change how Angular Material components like DatePicker output dates.\n * {@default false}\n */\n useUtc?: boolean;\n}\n\n/** InjectionToken for Dayjs date adapter to configure options. */\nexport const MAT_DAYJS_DATE_ADAPTER_OPTIONS = new InjectionToken<DayJsDateAdapterOptions>(\n 'MAT_DAYJS_DATE_ADAPTER_OPTIONS', {\n providedIn: 'root',\n factory: MAT_DAYJS_DATE_ADAPTER_OPTIONS_FACTORY\n});\n\nexport function MAT_DAYJS_DATE_ADAPTER_OPTIONS_FACTORY(): DayJsDateAdapterOptions {\n return {\n useUtc: false\n };\n}\n\n/** Creates an array and fills it with values. */\nfunction range<T>(length: number, valueFunction: (index: number) => T): T[] {\n const valuesArray = Array(length);\n for (let i = 0; i < length; i++) {\n valuesArray[i] = valueFunction(i);\n }\n return valuesArray;\n}\n\n/** Adapts Dayjs Dates for use with Angular Material. */\nexport class DayjsDateAdapter extends DateAdapter<Dayjs> {\n private localeData!: {\n firstDayOfWeek: number,\n longMonths: string[],\n shortMonths: string[],\n dates: string[],\n longDaysOfWeek: string[],\n shortDaysOfWeek: string[],\n narrowDaysOfWeek: string[]\n };\n\n constructor(\n @Optional() @Inject(MAT_DATE_LOCALE) public dateLocale: string,\n @Optional() @Inject(MAT_DAYJS_DATE_ADAPTER_OPTIONS) private options?: DayJsDateAdapterOptions\n ) {\n super();\n this.initializeParser(dateLocale);\n }\n\n // TODO: Implement\n override setLocale(locale: string) {\n super.setLocale(locale);\n\n const dayJsLocaleData = this.dayJs().localeData();\n this.localeData = {\n firstDayOfWeek: dayJsLocaleData.firstDayOfWeek(),\n longMonths: dayJsLocaleData.months(),\n shortMonths: dayJsLocaleData.monthsShort(),\n dates: range(31, (i) => this.createDate(2017, 0, i + 1).format('D')),\n longDaysOfWeek: range(7, (i) => this.dayJs().set('day', i).format('dddd')),\n shortDaysOfWeek: dayJsLocaleData.weekdaysShort(),\n narrowDaysOfWeek: dayJsLocaleData.weekdaysMin(),\n };\n }\n\n getYear(date: Dayjs): number {\n return this.dayJs(date).year();\n }\n\n getMonth(date: Dayjs): number {\n return this.dayJs(date).month();\n }\n\n getDate(date: Dayjs): number {\n return this.dayJs(date).date();\n }\n\n getDayOfWeek(date: Dayjs): number {\n return this.dayJs(date).day();\n }\n\n getMonthNames(style: 'long' | 'short' | 'narrow'): string[] {\n return style === 'long' ? this.localeData.longMonths : this.localeData.shortMonths;\n }\n\n getDateNames(): string[] {\n return this.localeData.dates;\n }\n\n getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[] {\n if (style === 'long') {\n return this.localeData.longDaysOfWeek;\n }\n if (style === 'short') {\n return this.localeData.shortDaysOfWeek;\n }\n return this.localeData.narrowDaysOfWeek;\n }\n\n getYearName(date: Dayjs): string {\n return this.dayJs(date).format('YYYY');\n }\n\n getFirstDayOfWeek(): number {\n return this.localeData.firstDayOfWeek;\n }\n\n getNumDaysInMonth(date: Dayjs): number {\n return this.dayJs(date).daysInMonth();\n }\n\n clone(date: Dayjs): Dayjs {\n return date.clone();\n }\n\n createDate(year: number, month: number, date: number): Dayjs {\n const returnDayjs = this.dayJs()\n .set('year', year)\n .set('month', month)\n .set('date', date);\n return returnDayjs;\n }\n\n today(): Dayjs {\n return this.dayJs();\n }\n\n parse(value: any, parseFormat: string): Dayjs | null {\n if (value && typeof value === 'string') {\n return this.dayJs(value, dayjs().localeData().longDateFormat(parseFormat), this.locale);\n }\n return value ? this.dayJs(value).locale(this.locale) : null;\n }\n\n format(date: Dayjs, displayFormat: string): string {\n if (!this.isValid(date)) {\n throw Error('DayjsDateAdapter: Cannot format invalid date.');\n }\n return date.locale(this.locale).format(displayFormat);\n }\n\n addCalendarYears(date: Dayjs, years: number): Dayjs {\n return date.add(years, 'year');\n }\n\n addCalendarMonths(date: Dayjs, months: number): Dayjs {\n return date.add(months, 'month');\n }\n\n addCalendarDays(date: Dayjs, days: number): Dayjs {\n return date.add(days, 'day');\n }\n\n toIso8601(date: Dayjs): string {\n return date.toISOString();\n }\n\n /**\n * Attempts to deserialize a value to a valid date object. This is different from parsing in that\n * deserialize should only accept non-ambiguous, locale-independent formats (e.g. a ISO 8601\n * string). The default implementation does not allow any deserialization, it simply checks that\n * the given value is already a valid date object or null. The `<mat-datepicker>` will call this\n * method on all of it's `@Input()` properties that accept dates. It is therefore possible to\n * support passing values from your backend directly to these properties by overriding this method\n * to also deserialize the format used by your backend.\n * @param value The value to be deserialized into a date object.\n * @returns The deserialized date object, either a valid date, null if the value can be\n * deserialized into a null date (e.g. the empty string), or an invalid date.\n */\n override deserialize(value: any): Dayjs | null {\n let date;\n if (value instanceof Date) {\n date = this.dayJs(value);\n } else if (this.isDateInstance(value)) {\n // NOTE: assumes that cloning also sets the correct locale.\n return this.clone(value);\n }\n if (typeof value === 'string') {\n if (!value) {\n return null;\n }\n date = this.dayJs(value).toISOString();\n }\n if (date && this.isValid(date as Dayjs)) {\n return this.dayJs(date); // NOTE: Is this necessary since Dayjs is immutable and Moment was not?\n }\n return super.deserialize(value);\n }\n\n isDateInstance(obj: any): boolean {\n return dayjs.isDayjs(obj);\n }\n\n isValid(date: Dayjs): boolean {\n return this.dayJs(date).isValid();\n }\n\n invalid(): Dayjs {\n return this.dayJs(null);\n }\n\n private dayJs(input?: any, format?: string, locale?: string): Dayjs {\n if (!this.shouldUseUtc) {\n return dayjs(input, { format, locale }, locale);\n }\n return dayjs(input, { format, locale, utc: this.shouldUseUtc }, locale).utc();\n }\n\n private get shouldUseUtc(): boolean {\n const { useUtc }: DayJsDateAdapterOptions = this.options || {};\n return !!useUtc;\n }\n\n private initializeParser(dateLocale: string) {\n if (this.shouldUseUtc) {\n dayjs.extend(utc);\n }\n\n dayjs.extend(LocalizedFormat);\n dayjs.extend(customParseFormat);\n dayjs.extend(localeData);\n\n this.setLocale(dateLocale);\n }\n}","import { MatDateFormats } from '@angular/material/core';\n\n/**\n * Custom Date-Formats and Adapter (using https://github.com/iamkun/dayjs)\n */\nexport const MAT_DAYJS_DATE_FORMATS: MatDateFormats = {\n parse: {\n dateInput: 'MM/DD/YYYY',\n },\n display: {\n dateInput: 'MM/DD/YYYY',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n }\n};","import { MatDateFormats, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport dayjs from 'dayjs';\nimport 'dayjs/locale/ja'\ndayjs.locale('ja');\n\nexport const MAT_DAYJS_DATE_FORMATS_FOR_JP: MatDateFormats = {\n parse: {\n dateInput: 'YYYY/MM/DD',\n },\n display: {\n dateInput: 'YYYY/MM/DD',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n }\n};\n\nexport const MAT_DAYJS_JP_PROVIDERS = [\n { provide: MAT_DATE_LOCALE, useValue: 'ja' },\n { provide: MAT_DATE_FORMATS, useValue: MAT_DAYJS_DATE_FORMATS_FOR_JP },\n];\n","import { NgModule } from '@angular/core';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { DayjsDateAdapter, MAT_DAYJS_DATE_ADAPTER_OPTIONS } from './dayjs-date.adapter';\nimport { MAT_DAYJS_DATE_FORMATS } from './dayjs-date.formats';\n\n@NgModule({\n providers: [\n {\n provide: DateAdapter,\n useClass: DayjsDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_DAYJS_DATE_ADAPTER_OPTIONS]\n },\n ],\n})\nexport class DayjsDateModule { }\n\n@NgModule({\n imports: [DayjsDateModule],\n providers: [{ provide: MAT_DATE_FORMATS, useValue: MAT_DAYJS_DATE_FORMATS }],\n})\nexport class MatDayjsDateModule { }","import { InjectionToken } from '@angular/core';\nimport dayjs from 'dayjs';\nimport { comma } from '../comma';\n\nexport const SMART_EXP_TRANSFORMER = new InjectionToken<SmartExpTransformer>('[@ng-atomic/common] Smart Transformer');\n\nexport type SmartExpTransformer = (input: string | number | dayjs.Dayjs | any, key?: string) => string;\n\n// export const yenTransform = (value: number, _unit?: string): string => {\n// return value < 1 ? `${comma(value * 100)}%` : `${comma(value)}円`;\n// }\n\nexport const yenTransform = (value: number, _unit?: string): string => {\n return `${comma(value)}円`;\n}\n\nexport const smartExpTransformer: SmartExpTransformer = input => dayjs.isDayjs(input)\n ? input.format('YY/MM/DD')\n : Array.isArray(input) \n ? `${input.length}個のアイテム`\n : typeof input === 'number'\n ? yenTransform(input)\n : input;","const getAllProps = (obj: object, keys: string[] = Object.keys(obj)): string[] => {\n const proto = Object.getPrototypeOf(obj);\n keys = Object.getOwnPropertyNames(proto)\n .filter(v => v !== '__proto__')\n .filter(v => Object.getOwnPropertyDescriptor(proto, v)!.get instanceof Function)\n .concat(keys);\n\n return proto.constructor.name === 'Object' ? keys : getAllProps(proto, keys);\n}\n\nexport const toObject = (obj: object): object => getAllProps(obj).reduce((p, k) => ({...p, [k]: obj[k]}), {});\n","import { flatten } from 'flat';\nimport { smartExpTransformer, SmartExpTransformer } from '../smart-exp-transformer';\nimport { toObject } from '../to-object';\nimport dayjs from 'dayjs';\n\nexport const filterByQuery = <T>(\n items: T[], \n queryString: string, \n dlm: Record<string, string> = {},\n transformer: SmartExpTransformer = smartExpTransformer,\n): T[] => {\n return new QueryResolver(dlm, transformer).resolve(items, queryString);\n}\n\ntype QueryResolveFunc<T> = (items: T[], query: string) => T[];\n\nclass QueryResolver<T extends object = any> {\n REVERSED_MAP: Record<string, string>;\n\n constructor(\n map: Record<string, string>,\n private transformer: SmartExpTransformer,\n ) {\n this.REVERSED_MAP = Object.entries(map).reduce((p, [k, v]) => ({\n ...p, [v]: k\n }), {} as Record<string, string>);\n }\n\n resolve(items: T[], queryString: string): T[] {\n return this.resolveQueries(items, queryString.split(' ').filter(q => q.length));\n }\n\n resolveQueries(items: T[], queries: string[]): T[] {\n return queries.reduce((_items, query: string) => {\n if (query.includes(':')) return this.inQueryByKey(_items, query);\n if (query.includes('=')) return this.inQueryByKey(_items, query);\n if (query.includes('>')) return this.gtQueryByKey(_items, query);\n if (query.includes('<')) return this.ltQueryByKey(_items, query);\n return this.inQuery(_items, query);\n }, items);\n }\n\n private parseQuery(query: string): [boolean, string, string] {\n const [_key, value] = query.split(':');\n return [_key.startsWith('-'), _key.startsWith('-') ? _key.slice(1) : _key, value];\n }\n\n private inQueryByKey: QueryResolveFunc<T> = (items, query) => {\n const [not, _key, value] = this.parseQuery(query);\n const key = this.REVERSED_MAP?.[_key] ?? _key;\n return items.filter(item => _not(this.in(key, flatten(toObject(item as any))?.[key], value), not));\n }\n\n private gtQueryByKey: QueryResolveFunc<T> = (items, query) => {\n const [_key, value] = query.split('>');\n const key = this.REVERSED_MAP?.[_key] ?? _key;\n return items.filter(item => {\n // TODO(nontangent): flattenしたときにdayjsが壊れる\n const v = flatten(toObject(item as any))?.[key] ?? toObject(item as any)?.[key];\n return this.gt(key, v, value)\n });\n }\n\n private ltQueryByKey: QueryResolveFunc<T> = (items, query) => {\n const [_key, value] = query.split('<');\n const key = this.REVERSED_MAP?.[_key] ?? _key;\n return items.filter(item => {\n // TODO(nontangent): flattenしたときにdayjsが壊れる\n const v = flatten(toObject(item as any))?.[key] ?? toObject(item as any)?.[key];\n return this.lt(key, v, value)\n });\n }\n\n private inQuery: QueryResolveFunc<T> = (items, q) => {\n return items.filter(item => Object.entries(flatten(toObject(item as T))).some(([k, v]) => this.in(k, v, q)));\n }\n\n private in(k: string, v: any, q: string) {\n return _in(this.transformer(v, k), q);\n }\n\n private gt(k: string, v: any, q: string) {\n // const value = dayjs.isDayjs(v) ? v : this.transformer(v, k);\n return _gt(v, q);\n }\n\n private lt(k: string, v: any, q: string) {\n // const value = dayjs.isDayjs(v) ? v : this.transformer(v, k);\n return _lt(v, q);\n }\n}\n\nconst _not = (bool: boolean, not: boolean): boolean => {\n return not ? !bool : bool;\n}\n\nconst _in = (value: any, query: string): boolean => {\n return typeof value === 'string' ? value?.includes(query) : false;\n}\n\nconst _gt = (value: any, query: string): boolean => {\n return typeof value === 'string' \n ? parseFloat(value) > parseFloat(query) \n : typeof value === 'number'\n ? value > parseFloat(query)\n : dayjs.isDayjs(value)\n ? dayjs(query).isBefore(value)\n : false;\n}\n\nconst _lt = (value: any, query: string): boolean => {\n return typeof value === 'string' \n ? parseFloat(value) < parseFloat(query) \n : typeof value === 'number'\n ? value < parseFloat(query)\n : dayjs.isDayjs(value)\n ? dayjs(query).isAfter(value)\n : false;\n}","export * from './comma';\nexport * from './compare-by-id';\nexport * from './date-utils';\nexport * from './mat-dayjs-date';\nexport * from './smart-exp-transformer';\nexport * from './to-object';\nexport * from './query';\n// export * from './define-element';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;MAAa,KAAK,GAAG,CAAC,CAAgB,KAAa,CAAC,KAAK,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,cAAc,GAAG;AAC5E,MAAA,QAAQ,GAAG,CAAC,CAAS,EAAE,IAAe,GAAA,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAI,CAAA,EAAA,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAG,EAAA,IAAI,EAAE,GAAG,CAAA,EAAG,KAAK,CAAC,CAAC,CAAC,CAAG,EAAA,IAAI,GAAG;AAC9G,MAAM,GAAG,GAAG,CAAC,CAAS,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC;;ACDtC,SAAU,kBAAkB,CAAC,GAAW,EAAA;AAC5C,IAAA,OAAO,CAAC,CAAM,EAAE,CAAM,KAAK,QAAQ,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;AAC7E,CAAC;MACY,WAAW,GAAG,kBAAkB,CAAC,IAAI;;ACFrC,MAAA,WAAW,GAAG,CAAC,GAAW,KAAK,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,EAAE;AAE5D,MAAM,WAAW,GAAG,sBAAsB;AACjD,MAAM,UAAU,GAAG,uDAAuD,CAAC;AAC3E,MAAM,cAAc,GAAG,uEAAuE,CAAC;AAClF,MAAA,SAAS,GAAG,CAAC,GAAkB,KAAoB,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE;AAClF,MAAA,aAAa,GAAG,CAAC,GAAkB,KAAoB,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE;AAEnG,MAAM,SAAS,GAAG,0EAA0E,CAAC;AAChF,MAAA,WAAW,GAAG,CAAC,GAAkB,KAAoB,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE;AAO1F,SAAU,gBAAgB,CAAC,SAA2B,EAAA;AAC1D,IAAA,OAAO,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC;AACtD;;ACAA;MACa,8BAA8B,GAAG,IAAI,cAAc,CAC9D,gCAAgC,EAAE;AAClC,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,OAAO,EAAE,sCAAsC;AAChD,CAAA,EAAE;SAEa,sCAAsC,GAAA;IACpD,OAAO;AACL,QAAA,MAAM,EAAE,KAAK;KACd,CAAC;AACJ,CAAC;AAED;AACA,SAAS,KAAK,CAAI,MAAc,EAAE,aAAmC,EAAA;AACnE,IAAA,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;QAC/B,WAAW,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;AACnC,KAAA;AACD,IAAA,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;AACO,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,WAAkB,CAAA;IAWtD,WAC8C,CAAA,UAAkB,EACF,OAAiC,EAAA;AAE7F,QAAA,KAAK,EAAE,CAAC;QAHoC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAQ;QACF,IAAO,CAAA,OAAA,GAAP,OAAO,CAA0B;AAG7F,QAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;KACnC;;AAGQ,IAAA,SAAS,CAAC,MAAc,EAAA;AAC/B,QAAA,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAExB,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,CAAC;QAClD,IAAI,CAAC,UAAU,GAAG;AAChB,YAAA,cAAc,EAAE,eAAe,CAAC,cAAc,EAAE;AAChD,YAAA,UAAU,EAAE,eAAe,CAAC,MAAM,EAAE;AACpC,YAAA,WAAW,EAAE,eAAe,CAAC,WAAW,EAAE;YAC1C,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACpE,cAAc,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC1E,YAAA,eAAe,EAAE,eAAe,CAAC,aAAa,EAAE;AAChD,YAAA,gBAAgB,EAAE,eAAe,CAAC,WAAW,EAAE;SAChD,CAAC;KACH;AAED,IAAA,OAAO,CAAC,IAAW,EAAA;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;KAChC;AAED,IAAA,QAAQ,CAAC,IAAW,EAAA;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;KACjC;AAED,IAAA,OAAO,CAAC,IAAW,EAAA;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;KAChC;AAED,IAAA,YAAY,CAAC,IAAW,EAAA;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;KAC/B;AAED,IAAA,aAAa,CAAC,KAAkC,EAAA;AAC9C,QAAA,OAAO,KAAK,KAAK,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;KACpF;IAED,YAAY,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;KAC9B;AAED,IAAA,iBAAiB,CAAC,KAAkC,EAAA;QAClD,IAAI,KAAK,KAAK,MAAM,EAAE;AACpB,YAAA,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;AACvC,SAAA;QACD,IAAI,KAAK,KAAK,OAAO,EAAE;AACrB,YAAA,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;AACxC,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC;KACzC;AAED,IAAA,WAAW,CAAC,IAAW,EAAA;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;KACxC;IAED,iBAAiB,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;KACvC;AAED,IAAA,iBAAiB,CAAC,IAAW,EAAA;QAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;KACvC;AAED,IAAA,KAAK,CAAC,IAAW,EAAA;AACf,QAAA,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;KACrB;AAED,IAAA,UAAU,CAAC,IAAY,EAAE,KAAa,EAAE,IAAY,EAAA;AAClD,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,EAAE;AAC7B,aAAA,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;AACjB,aAAA,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC;AACnB,aAAA,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACrB,QAAA,OAAO,WAAW,CAAC;KACpB;IAED,KAAK,GAAA;AACH,QAAA,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;KACrB;IAED,KAAK,CAAC,KAAU,EAAE,WAAmB,EAAA;AACnC,QAAA,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YACtC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,UAAU,EAAE,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AACzF,SAAA;QACD,OAAO,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;KAC7D;IAED,MAAM,CAAC,IAAW,EAAE,aAAqB,EAAA;AACvC,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACvB,YAAA,MAAM,KAAK,CAAC,+CAA+C,CAAC,CAAC;AAC9D,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;KACvD;IAED,gBAAgB,CAAC,IAAW,EAAE,KAAa,EAAA;QACzC,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;KAChC;IAED,iBAAiB,CAAC,IAAW,EAAE,MAAc,EAAA;QAC3C,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAClC;IAED,eAAe,CAAC,IAAW,EAAE,IAAY,EAAA;QACvC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;KAC9B;AAED,IAAA,SAAS,CAAC,IAAW,EAAA;AACnB,QAAA,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;KAC3B;AAED;;;;;;;;;;;AAWG;AACO,IAAA,WAAW,CAAC,KAAU,EAAA;AAC9B,QAAA,IAAI,IAAI,CAAC;QACT,IAAI,KAAK,YAAY,IAAI,EAAE;AACzB,YAAA,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC1B,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;;AAErC,YAAA,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC1B,SAAA;AACD,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,IAAI,CAAC,KAAK,EAAE;AACV,gBAAA,OAAO,IAAI,CAAC;AACb,aAAA;YACD,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;AACxC,SAAA;QACD,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,IAAa,CAAC,EAAE;YACvC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACzB,SAAA;AACD,QAAA,OAAO,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;KACjC;AAED,IAAA,cAAc,CAAC,GAAQ,EAAA;AACrB,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;KAC3B;AAED,IAAA,OAAO,CAAC,IAAW,EAAA;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;KACnC;IAED,OAAO,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KACzB;AAEO,IAAA,KAAK,CAAC,KAAW,EAAE,MAAe,EAAE,MAAe,EAAA;AACzD,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACtB,YAAA,OAAO,KAAK,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC;AACjD,SAAA;QACD,OAAO,KAAK,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC;KAC/E;AAED,IAAA,IAAY,YAAY,GAAA;QACtB,MAAM,EAAE,MAAM,EAAE,GAA4B,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;QAC/D,OAAO,CAAC,CAAC,MAAM,CAAC;KACjB;AAEO,IAAA,gBAAgB,CAAC,UAAkB,EAAA;QACzC,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACnB,SAAA;AAED,QAAA,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AAC9B,QAAA,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAChC,QAAA,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAEzB,QAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;KAC5B;EACF;AAlMY,gBAAgB,GAAA,UAAA,CAAA;IAYxB,OAAA,CAAA,CAAA,EAAA,QAAQ,EAAE,CAAA;AAAE,IAAA,OAAA,CAAA,CAAA,EAAA,MAAM,CAAC,eAAe,CAAC,CAAA;IACnC,OAAA,CAAA,CAAA,EAAA,QAAQ,EAAE,CAAA;AAAE,IAAA,OAAA,CAAA,CAAA,EAAA,MAAM,CAAC,8BAA8B,CAAC,CAAA;;AAb1C,CAAA,EAAA,gBAAgB,CAkM5B;;AC3OD;;AAEG;AACU,MAAA,sBAAsB,GAAmB;AACpD,IAAA,KAAK,EAAE;AACL,QAAA,SAAS,EAAE,YAAY;AACxB,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,SAAS,EAAE,YAAY;AACvB,QAAA,cAAc,EAAE,UAAU;AAC1B,QAAA,aAAa,EAAE,IAAI;AACnB,QAAA,kBAAkB,EAAE,WAAW;AAChC,KAAA;;;ACXH,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAEN,MAAA,6BAA6B,GAAmB;AAC3D,IAAA,KAAK,EAAE;AACL,QAAA,SAAS,EAAE,YAAY;AACxB,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,SAAS,EAAE,YAAY;AACvB,QAAA,cAAc,EAAE,UAAU;AAC1B,QAAA,aAAa,EAAE,IAAI;AACnB,QAAA,kBAAkB,EAAE,WAAW;AAChC,KAAA;EACD;AAEW,MAAA,sBAAsB,GAAG;AACpC,IAAA,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE;AAC5C,IAAA,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,6BAA6B,EAAE;;;MCL3D,eAAe,CAAA;;4GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;6GAAf,eAAe,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,EARf,SAAA,EAAA;AACT,QAAA;AACE,YAAA,OAAO,EAAE,WAAW;AACpB,YAAA,QAAQ,EAAE,gBAAgB;AAC1B,YAAA,IAAI,EAAE,CAAC,eAAe,EAAE,8BAA8B,CAAC;AACxD,SAAA;AACF,KAAA,EAAA,CAAA,CAAA;2FAEU,eAAe,EAAA,UAAA,EAAA,CAAA;kBAT3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,WAAW;AACpB,4BAAA,QAAQ,EAAE,gBAAgB;AAC1B,4BAAA,IAAI,EAAE,CAAC,eAAe,EAAE,8BAA8B,CAAC;AACxD,yBAAA;AACF,qBAAA;AACF,iBAAA,CAAA;;MAOY,kBAAkB,CAAA;;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YANlB,eAAe,CAAA,EAAA,CAAA,CAAA;AAMf,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,EAFlB,SAAA,EAAA,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,sBAAsB,EAAE,CAAC,YADlE,eAAe,CAAA,EAAA,CAAA,CAAA;2FAGd,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,eAAe,CAAC;oBAC1B,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,sBAAsB,EAAE,CAAC;AAC7E,iBAAA,CAAA;;;MCfY,qBAAqB,GAAG,IAAI,cAAc,CAAsB,uCAAuC,EAAE;AAItH;AACA;AACA;MAEa,YAAY,GAAG,CAAC,KAAa,EAAE,KAAc,KAAY;AACpE,IAAA,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;AAC5B,EAAC;AAEM,MAAM,mBAAmB,GAAwB,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AACnF,MAAE,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC;AAC1B,MAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AACtB,UAAE,CAAA,EAAG,KAAK,CAAC,MAAM,CAAQ,MAAA,CAAA;AACzB,UAAE,OAAO,KAAK,KAAK,QAAQ;AAC3B,cAAE,YAAY,CAAC,KAAK,CAAC;cACnB;;ACtBJ,MAAM,WAAW,GAAG,CAAC,GAAW,EAAE,IAAA,GAAiB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAc;IAC/E,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AACzC,IAAA,IAAI,GAAG,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC;SACrC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,WAAW,CAAC;AAC9B,SAAA,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,CAAC,CAAE,CAAC,GAAG,YAAY,QAAQ,CAAC;SAC/E,MAAM,CAAC,IAAI,CAAC,CAAC;IAEhB,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,QAAQ,GAAG,IAAI,GAAG,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC/E,CAAC,CAAA;AAEY,MAAA,QAAQ,GAAG,CAAC,GAAW,KAAa,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAE;;ACLrG,MAAM,aAAa,GAAG,CAC3B,KAAU,EACV,WAAmB,EACnB,MAA8B,EAAE,EAChC,WAAmC,GAAA,mBAAmB,KAC/C;AACP,IAAA,OAAO,IAAI,aAAa,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AACzE,EAAC;AAID,MAAM,aAAa,CAAA;IAGjB,WACE,CAAA,GAA2B,EACnB,WAAgC,EAAA;QAAhC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAqB;AA0BlC,QAAA,IAAA,CAAA,YAAY,GAAwB,CAAC,KAAK,EAAE,KAAK,KAAI;AAC3D,YAAA,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAClD,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC;AAC9C,YAAA,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAW,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACrG,SAAC,CAAA;AAEO,QAAA,IAAA,CAAA,YAAY,GAAwB,CAAC,KAAK,EAAE,KAAK,KAAI;AAC3D,YAAA,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACvC,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC;AAC9C,YAAA,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,IAAG;;gBAEzB,MAAM,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAW,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,QAAQ,CAAC,IAAW,CAAC,GAAG,GAAG,CAAC,CAAC;gBAChF,OAAO,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,CAAA;AAC/B,aAAC,CAAC,CAAC;AACL,SAAC,CAAA;AAEO,QAAA,IAAA,CAAA,YAAY,GAAwB,CAAC,KAAK,EAAE,KAAK,KAAI;AAC3D,YAAA,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACvC,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC;AAC9C,YAAA,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,IAAG;;gBAEzB,MAAM,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAW,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,QAAQ,CAAC,IAAW,CAAC,GAAG,GAAG,CAAC,CAAC;gBAChF,OAAO,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,CAAA;AAC/B,aAAC,CAAC,CAAC;AACL,SAAC,CAAA;AAEO,QAAA,IAAA,CAAA,OAAO,GAAwB,CAAC,KAAK,EAAE,CAAC,KAAI;YAClD,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/G,SAAC,CAAA;QApDC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM;AAC7D,YAAA,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;SACb,CAAC,EAAE,EAA4B,CAAC,CAAC;KACnC;IAED,OAAO,CAAC,KAAU,EAAE,WAAmB,EAAA;QACrC,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;KACjF;IAED,cAAc,CAAC,KAAU,EAAE,OAAiB,EAAA;QAC1C,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,KAAa,KAAI;AAC9C,YAAA,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACjE,YAAA,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACjE,YAAA,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACjE,YAAA,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACjE,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;SACpC,EAAE,KAAK,CAAC,CAAC;KACX;AAEO,IAAA,UAAU,CAAC,KAAa,EAAA;AAC9B,QAAA,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACvC,QAAA,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC;KACnF;AAgCO,IAAA,EAAE,CAAC,CAAS,EAAE,CAAM,EAAE,CAAS,EAAA;AACrC,QAAA,OAAO,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;KACvC;AAEO,IAAA,EAAE,CAAC,CAAS,EAAE,CAAM,EAAE,CAAS,EAAA;;AAErC,QAAA,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;KAClB;AAEO,IAAA,EAAE,CAAC,CAAS,EAAE,CAAM,EAAE,CAAS,EAAA;;AAErC,QAAA,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;KAClB;AACF,CAAA;AAED,MAAM,IAAI,GAAG,CAAC,IAAa,EAAE,GAAY,KAAa;IACpD,OAAO,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;AAC5B,CAAC,CAAA;AAED,MAAM,GAAG,GAAG,CAAC,KAAU,EAAE,KAAa,KAAa;AACjD,IAAA,OAAO,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;AACpE,CAAC,CAAA;AAED,MAAM,GAAG,GAAG,CAAC,KAAU,EAAE,KAAa,KAAa;IACjD,OAAO,OAAO,KAAK,KAAK,QAAQ;UAC5B,UAAU,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC;AACvC,UAAE,OAAO,KAAK,KAAK,QAAQ;AAC3B,cAAE,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;AAC3B,cAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;kBACpB,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;kBAC5B,KAAK,CAAC;AACZ,CAAC,CAAA;AAED,MAAM,GAAG,GAAG,CAAC,KAAU,EAAE,KAAa,KAAa;IACjD,OAAO,OAAO,KAAK,KAAK,QAAQ;UAC5B,UAAU,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC;AACvC,UAAE,OAAO,KAAK,KAAK,QAAQ;AAC3B,cAAE,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;AAC3B,cAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;kBACpB,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;kBAC3B,KAAK,CAAC;AACZ,CAAC;;AC/GD;;ACPA;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ng-atomic/common",
3
- "version": "5.12.0",
3
+ "version": "5.13.0",
4
4
  "license": "MIT",
5
5
  "module": "fesm2015/ng-atomic-common.mjs",
6
6
  "es2020": "fesm2020/ng-atomic-common.mjs",
@@ -225,6 +225,7 @@
225
225
  "dayjs": "1.11.7",
226
226
  "papaparse": "^5.4.1",
227
227
  "flat": "^5.0.2",
228
- "@angular/material": "^15.0.0"
228
+ "@angular/material": "^15.0.0",
229
+ "@ngrx/entity": "^15.3.0"
229
230
  }
230
231
  }
@@ -1,18 +1,18 @@
1
1
  import { ComponentStore } from '@ngrx/component-store';
2
- import { Observable, ReplaySubject } from 'rxjs';
3
- export interface EntitiesState<E> {
4
- entities: E[];
5
- }
2
+ import { ReplaySubject } from 'rxjs';
3
+ import { EntityState, EntityAdapter } from '@ngrx/entity';
6
4
  export declare const distinctUntilChangedArray: <T>() => import("rxjs").MonoTypeOperatorFunction<T>;
7
5
  export declare abstract class EntitiesStore<E extends {
8
6
  id: string;
9
- }, S extends EntitiesState<E> = any> extends ComponentStore<S> {
7
+ }, S extends EntityState<E> = any> extends ComponentStore<S> {
8
+ protected adapter: EntityAdapter<E>;
9
+ constructor(adapter?: EntityAdapter<E>);
10
10
  protected readonly refresh$: ReplaySubject<void>;
11
+ protected readonly selectors: import("@ngrx/entity/src/models").EntitySelectors<E, EntityState<E>>;
11
12
  get entities(): E[];
12
- entities$: Observable<E[]>;
13
- size$: Observable<number>;
14
- constructor(initialState: S);
15
- setEntities: (observableOrValue: E[] | Observable<E[]>) => import("rxjs").Subscription;
13
+ entities$: import("rxjs").Observable<E[]>;
14
+ size$: import("rxjs").Observable<number>;
15
+ setEntities: (observableOrValue: E[] | import("rxjs").Observable<E[]>) => import("rxjs").Subscription;
16
16
  abstract getEntities: ReturnType<typeof this.effect>;
17
17
  refresh(): void;
18
18
  }
@@ -1,4 +1,5 @@
1
1
  export type HasId = {
2
2
  id: string;
3
3
  };
4
- export declare const compareById: (a: HasId, b: HasId) => number;
4
+ export declare function compareByIdFactory(key: string): (a: any, b: any) => number;
5
+ export declare const compareById: (a: any, b: any) => number;