@ng-atomic/common 19.12.3 → 19.12.4
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.
|
@@ -141,15 +141,15 @@ const distinctUntilChangedArray = () => {
|
|
|
141
141
|
return distinctUntilChanged((pre, cur) => JSON.stringify(pre) === JSON.stringify(cur));
|
|
142
142
|
};
|
|
143
143
|
class BaseEntityStore extends ComponentStore {
|
|
144
|
+
get selectors() { return this.entityAdapter.getSelectors(); }
|
|
144
145
|
constructor(entity, entityAdapter = createEntityAdapter({ selectId: (entity) => entity.id, sortComparer: false })) {
|
|
145
146
|
super(entityAdapter.getInitialState());
|
|
146
147
|
this.entity = entity;
|
|
147
148
|
this.entityAdapter = entityAdapter;
|
|
148
149
|
this.refresh$ = new ReplaySubject(1);
|
|
149
|
-
this.
|
|
150
|
-
this.all$ = this.select(this.selectors.selectAll);
|
|
150
|
+
this.all$ = this.select((state) => this.selectors.selectAll(state));
|
|
151
151
|
this.all = toSignal(this.all$);
|
|
152
|
-
this.total$ = this.select(this.selectors.selectTotal);
|
|
152
|
+
this.total$ = this.select((state) => this.selectors.selectTotal(state));
|
|
153
153
|
this.total = toSignal(this.total$);
|
|
154
154
|
/** @deprecated use BaseEntityStore.all$ instead. */
|
|
155
155
|
this.entities$ = this.all$;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-atomic-common-stores-entities.mjs","sources":["../tmp-esm2022/stores/entities/proxy-id.service.js","../tmp-esm2022/stores/entities/task-composer.js","../tmp-esm2022/stores/entities/entity-store-adapter.js","../tmp-esm2022/stores/entities/entity-store.js","../tmp-esm2022/stores/entities/entity-store-manager.js","../tmp-esm2022/stores/entities/di.js","../tmp-esm2022/stores/entities/ng-atomic-common-stores-entities.js"],"sourcesContent":["import { Injectable } from \"@angular/core\";\nimport * as i0 from \"@angular/core\";\nexport class ProxyIdService {\n constructor() {\n this.proxyMap = new Map();\n }\n isProxyId(id) {\n return !!id?.startsWith('proxy-');\n }\n proxyId(_id) {\n const id = this.isProxyId(_id) ? _id : `proxy-${this.proxyMap.size}`;\n if (!this.proxyMap.get(id))\n this.proxyMap.set(id, id);\n return id;\n }\n update(proxyId, id) {\n this.proxyMap.set(proxyId, id);\n }\n resolve(proxyIdOrId) {\n return this.isProxyId(proxyIdOrId) ? this.proxyMap.get(proxyIdOrId) : proxyIdOrId;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: ProxyIdService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: ProxyIdService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: ProxyIdService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJveHktaWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BuZy1hdG9taWMvY29tbW9uL3NyYy9saWIvc3RvcmVzL2VudGl0aWVzL3Byb3h5LWlkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHM0MsTUFBTSxPQUFPLGNBQWM7SUFEM0I7UUFFRSxhQUFRLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7S0FtQnRDO0lBakJDLFNBQVMsQ0FBQyxFQUFpQjtRQUN6QixPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxPQUFPLENBQUMsR0FBVztRQUNqQixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyRSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFlLEVBQUUsRUFBVTtRQUNoQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELE9BQU8sQ0FBQyxXQUFtQjtRQUN6QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUM7SUFDcEYsQ0FBQzs4R0FuQlUsY0FBYztrSEFBZCxjQUFjLGNBREYsTUFBTTs7MkZBQ2xCLGNBQWM7a0JBRDFCLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIFByb3h5SWRTZXJ2aWNlIHtcbiAgcHJveHlNYXAgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuXG4gIGlzUHJveHlJZChpZDogc3RyaW5nIHwgbnVsbCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIWlkPy5zdGFydHNXaXRoKCdwcm94eS0nKTtcbiAgfVxuXG4gIHByb3h5SWQoX2lkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGlkID0gdGhpcy5pc1Byb3h5SWQoX2lkKSA/IF9pZCA6IGBwcm94eS0ke3RoaXMucHJveHlNYXAuc2l6ZX1gO1xuICAgIGlmICghdGhpcy5wcm94eU1hcC5nZXQoaWQpKSB0aGlzLnByb3h5TWFwLnNldChpZCwgaWQpO1xuICAgIHJldHVybiBpZDtcbiAgfVxuXG4gIHVwZGF0ZShwcm94eUlkOiBzdHJpbmcsIGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLnByb3h5TWFwLnNldChwcm94eUlkLCBpZCk7XG4gIH1cblxuICByZXNvbHZlKHByb3h5SWRPcklkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlzUHJveHlJZChwcm94eUlkT3JJZCkgPyB0aGlzLnByb3h5TWFwLmdldChwcm94eUlkT3JJZCkgOiBwcm94eUlkT3JJZDtcbiAgfVxufVxuIl19","import { Injectable, inject } from \"@angular/core\";\nimport { merge } from \"lodash-es\";\nimport { ProxyIdService } from \"./proxy-id.service\";\nimport * as i0 from \"@angular/core\";\nexport function pushMap(map, id, item) {\n const items = map.get(id) ?? [];\n items.push(item);\n map.set(id, items);\n return map;\n}\nexport class TaskComposerService {\n constructor() {\n this.proxyId = inject(ProxyIdService);\n }\n composeTasks(tasks) {\n const map = new Map();\n tasks.sort((a, b) => a.timestamp - b.timestamp).forEach((task) => {\n let id = task.payload?.id;\n switch (task.type) {\n case 'noop':\n break;\n case 'create':\n id = this.proxyId.proxyId(task.payload.id);\n pushMap(map, id, { ...task, payload: { ...task.payload, id } });\n break;\n case 'update':\n case 'delete':\n pushMap(map, this.proxyId.resolve(id), task);\n break;\n }\n });\n const _tasks = [];\n for (const tasks of map.values()) {\n _tasks.push(this.compose(tasks));\n }\n return _tasks.filter(task => task.type !== 'noop');\n }\n compose(tasks) {\n let created = false;\n return tasks.reduce((a, b) => {\n switch (b.type) {\n case 'create':\n created = true;\n return {\n type: 'create',\n payload: b.payload,\n timestamp: b.timestamp,\n };\n case 'update':\n return {\n type: created ? 'create' : 'update',\n payload: merge(a.payload, b.payload),\n timestamp: b.timestamp,\n };\n case 'delete':\n return {\n type: created ? 'noop' : 'delete',\n payload: b.payload,\n timestamp: b.timestamp,\n };\n }\n }, { type: 'noop', payload: {} });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: TaskComposerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: TaskComposerService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: TaskComposerService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1jb21wb3Nlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BuZy1hdG9taWMvY29tbW9uL3NyYy9saWIvc3RvcmVzL2VudGl0aWVzL3Rhc2stY29tcG9zZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNsQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBK0JwRCxNQUFNLFVBQVUsT0FBTyxDQUFJLEdBQXFCLEVBQUUsRUFBVSxFQUFHLElBQU87SUFDcEUsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDaEMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQixHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNuQixPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFHRCxNQUFNLE9BQU8sbUJBQW1CO0lBRGhDO1FBRVcsWUFBTyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztLQXFEM0M7SUFuREMsWUFBWSxDQUFtQixLQUFnQjtRQUM3QyxNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsRUFBcUIsQ0FBQztRQUN6QyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDL0QsSUFBSSxFQUFFLEdBQUksSUFBSSxDQUFDLE9BQWUsRUFBRSxFQUFFLENBQUM7WUFDbkMsUUFBTyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ2pCLEtBQUssTUFBTTtvQkFDVCxNQUFLO2dCQUNQLEtBQUssUUFBUTtvQkFDWCxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDM0MsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBQyxHQUFHLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBQyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFDLEVBQVksQ0FBQyxDQUFDO29CQUN2RSxNQUFNO2dCQUNSLEtBQUssUUFBUSxDQUFDO2dCQUNkLEtBQUssUUFBUTtvQkFDWCxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO29CQUM3QyxNQUFNO1lBQ1YsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxNQUFNLEdBQWMsRUFBRSxDQUFDO1FBQzdCLEtBQUssTUFBTSxLQUFLLElBQUksR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7WUFDakMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDbkMsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELE9BQU8sQ0FBbUIsS0FBZ0I7UUFDeEMsSUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUMzQixRQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDZCxLQUFLLFFBQVE7b0JBQ1gsT0FBTyxHQUFHLElBQUksQ0FBQztvQkFDZixPQUFPO3dCQUNMLElBQUksRUFBRSxRQUFRO3dCQUNkLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTzt3QkFDbEIsU0FBUyxFQUFFLENBQUMsQ0FBQyxTQUFTO3FCQUNaLENBQUM7Z0JBQ2YsS0FBSyxRQUFRO29CQUNYLE9BQU87d0JBQ0wsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRO3dCQUNuQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQzt3QkFDcEMsU0FBUyxFQUFFLENBQUMsQ0FBQyxTQUFTO3FCQUNaLENBQUM7Z0JBQ2YsS0FBSyxRQUFRO29CQUNYLE9BQU87d0JBQ0wsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRO3dCQUNqQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU87d0JBQ2xCLFNBQVMsRUFBRSxDQUFDLENBQUMsU0FBUztxQkFDWixDQUFDO1lBQ2pCLENBQUM7UUFDSCxDQUFDLEVBQUUsRUFBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQVksQ0FBQyxDQUFBO0lBQzVDLENBQUM7OEdBckRVLG1CQUFtQjtrSEFBbkIsbUJBQW1CLGNBRFAsTUFBTTs7MkZBQ2xCLG1CQUFtQjtrQkFEL0IsVUFBVTttQkFBQyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgbWVyZ2UgfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5pbXBvcnQgeyBQcm94eUlkU2VydmljZSB9IGZyb20gXCIuL3Byb3h5LWlkLnNlcnZpY2VcIjtcblxuZXhwb3J0IHR5cGUgRW50aXR5ID0ge2lkOiBzdHJpbmd9O1xuXG5pbnRlcmZhY2UgQmFzZVRhc2sge1xuICB0eXBlOiAnY3JlYXRlJyB8ICd1cGRhdGUnIHwgJ2RlbGV0ZScgfCAnbm9vcCc7XG4gIHRpbWVzdGFtcDogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgQ3JlYXRlQWN0aW9uPFQgZXh0ZW5kcyBFbnRpdHk+IGV4dGVuZHMgQmFzZVRhc2sge1xuICB0eXBlOiAnY3JlYXRlJztcbiAgcGF5bG9hZDogVDtcbn1cblxuaW50ZXJmYWNlIFVwZGF0ZUFjdGlvbjxUIGV4dGVuZHMgRW50aXR5PiBleHRlbmRzIEJhc2VUYXNrIHtcbiAgdHlwZTogJ3VwZGF0ZSc7XG4gIHBheWxvYWQ6IFBhcnRpYWw8VD4gJiBFbnRpdHk7XG59XG5cbmludGVyZmFjZSBEZWxldGVBY3Rpb24gZXh0ZW5kcyBCYXNlVGFzayB7XG4gIHR5cGU6ICdkZWxldGUnO1xuICBwYXlsb2FkOiBFbnRpdHk7XG59XG5cbmludGVyZmFjZSBOb29wQWN0aW9uIGV4dGVuZHMgQmFzZVRhc2sge1xuICB0eXBlOiAnbm9vcCc7XG4gIHBheWxvYWQ6IHt9O1xufVxuXG5leHBvcnQgdHlwZSBUYXNrPFQgZXh0ZW5kcyBFbnRpdHk+ID0gQ3JlYXRlQWN0aW9uPFQ+IHwgVXBkYXRlQWN0aW9uPFQ+IHwgRGVsZXRlQWN0aW9uIHwgTm9vcEFjdGlvbjtcblxuZXhwb3J0IGZ1bmN0aW9uIHB1c2hNYXA8VD4obWFwOiBNYXA8c3RyaW5nLCBUW10+LCBpZDogc3RyaW5nLCAgaXRlbTogVCk6IE1hcDxzdHJpbmcsIFRbXT4ge1xuICBjb25zdCBpdGVtcyA9IG1hcC5nZXQoaWQpID8/IFtdO1xuICBpdGVtcy5wdXNoKGl0ZW0pO1xuICBtYXAuc2V0KGlkLCBpdGVtcyk7XG4gIHJldHVybiBtYXA7XG59XG5cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIFRhc2tDb21wb3NlclNlcnZpY2Uge1xuICByZWFkb25seSBwcm94eUlkID0gaW5qZWN0KFByb3h5SWRTZXJ2aWNlKTtcblxuICBjb21wb3NlVGFza3M8VCBleHRlbmRzIEVudGl0eT4odGFza3M6IFRhc2s8VD5bXSk6IFRhc2s8VD5bXSB7XG4gICAgY29uc3QgbWFwID0gbmV3IE1hcDxzdHJpbmcsIFRhc2s8VD5bXT4oKTtcbiAgICB0YXNrcy5zb3J0KChhLCBiKSA9PiBhLnRpbWVzdGFtcCAtIGIudGltZXN0YW1wKS5mb3JFYWNoKCh0YXNrKSA9PiB7XG4gICAgICBsZXQgaWQgPSAodGFzay5wYXlsb2FkIGFzIGFueSk/LmlkO1xuICAgICAgc3dpdGNoKHRhc2sudHlwZSkge1xuICAgICAgICBjYXNlICdub29wJzpcbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlICdjcmVhdGUnOlxuICAgICAgICAgIGlkID0gdGhpcy5wcm94eUlkLnByb3h5SWQodGFzay5wYXlsb2FkLmlkKTtcbiAgICAgICAgICBwdXNoTWFwKG1hcCwgaWQsIHsuLi50YXNrLCBwYXlsb2FkOiB7Li4udGFzay5wYXlsb2FkLCBpZH19IGFzIFRhc2s8VD4pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICd1cGRhdGUnOlxuICAgICAgICBjYXNlICdkZWxldGUnOlxuICAgICAgICAgIHB1c2hNYXAobWFwLCB0aGlzLnByb3h5SWQucmVzb2x2ZShpZCksIHRhc2spO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29uc3QgX3Rhc2tzOiBUYXNrPFQ+W10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IHRhc2tzIG9mIG1hcC52YWx1ZXMoKSkge1xuICAgICAgX3Rhc2tzLnB1c2godGhpcy5jb21wb3NlKHRhc2tzKSk7XG4gICAgfVxuICAgIHJldHVybiBfdGFza3MuZmlsdGVyKHRhc2sgPT4gdGFzay50eXBlICE9PSAnbm9vcCcpO1xuICB9XG5cbiAgY29tcG9zZTxUIGV4dGVuZHMgRW50aXR5Pih0YXNrczogVGFzazxUPltdKTogVGFzazxUPiB7XG4gICAgbGV0IGNyZWF0ZWQgPSBmYWxzZTtcbiAgICByZXR1cm4gdGFza3MucmVkdWNlKChhLCBiKSA9PiB7XG4gICAgICBzd2l0Y2goYi50eXBlKSB7XG4gICAgICAgIGNhc2UgJ2NyZWF0ZSc6XG4gICAgICAgICAgY3JlYXRlZCA9IHRydWU7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHR5cGU6ICdjcmVhdGUnLFxuICAgICAgICAgICAgcGF5bG9hZDogYi5wYXlsb2FkLFxuICAgICAgICAgICAgdGltZXN0YW1wOiBiLnRpbWVzdGFtcCxcbiAgICAgICAgICB9IGFzIFRhc2s8VD47XG4gICAgICAgIGNhc2UgJ3VwZGF0ZSc6XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHR5cGU6IGNyZWF0ZWQgPyAnY3JlYXRlJyA6ICd1cGRhdGUnLFxuICAgICAgICAgICAgcGF5bG9hZDogbWVyZ2UoYS5wYXlsb2FkLCBiLnBheWxvYWQpLFxuICAgICAgICAgICAgdGltZXN0YW1wOiBiLnRpbWVzdGFtcCxcbiAgICAgICAgICB9IGFzIFRhc2s8VD47XG4gICAgICAgIGNhc2UgJ2RlbGV0ZSc6XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHR5cGU6IGNyZWF0ZWQgPyAnbm9vcCcgOiAnZGVsZXRlJyxcbiAgICAgICAgICAgIHBheWxvYWQ6IGIucGF5bG9hZCxcbiAgICAgICAgICAgIHRpbWVzdGFtcDogYi50aW1lc3RhbXAsXG4gICAgICAgICAgfSBhcyBUYXNrPFQ+O1xuICAgICAgfVxuICAgIH0sIHt0eXBlOiAnbm9vcCcsIHBheWxvYWQ6IHt9fSBhcyBUYXNrPFQ+KVxuICB9XG59XG4iXX0=","import { InjectionToken, Injector, inject } from '@angular/core';\nexport class EntityStoreAdapter {\n list() {\n throw new Error('not implemented');\n }\n create(entity) {\n throw new Error('not implemented');\n }\n update(entity) {\n throw new Error('not implemented');\n }\n delete(entity) {\n throw new Error('not implemented');\n }\n save(entity) {\n throw new Error('not implemented');\n }\n}\nexport const ENTITY_STORE_ADAPTER = new InjectionToken('ENTITY_STORE_ADAPTER');\nexport function provideEntityStoreAdapter(entity, adapterFactory) {\n return {\n provide: ENTITY_STORE_ADAPTER,\n multi: true,\n useFactory: (injector) => {\n return { entity, adapter: adapterFactory(injector) };\n },\n deps: [Injector]\n };\n}\nexport function injectEntityStoreAdapter(entity) {\n const adapters = inject(ENTITY_STORE_ADAPTER, { optional: true }) ?? [];\n return adapters.find(adapter => adapter.entity === entity)?.adapter;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXN0b3JlLWFkYXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3N0b3Jlcy9lbnRpdGllcy9lbnRpdHktc3RvcmUtYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLakUsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixJQUFJO1FBQ0YsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxNQUFNLENBQUUsTUFBUztRQUNmLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsTUFBTSxDQUFFLE1BQWtDO1FBQ3hDLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsTUFBTSxDQUFFLE1BQXFCO1FBQzNCLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxDQUFFLE1BQVM7UUFDYixNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDckMsQ0FBQztDQUNGO0FBRUQsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxjQUFjLENBR2pELHNCQUFzQixDQUFDLENBQUM7QUFFN0IsTUFBTSxVQUFVLHlCQUF5QixDQUN2QyxNQUFlLEVBQ2YsY0FBNkQ7SUFFN0QsT0FBTztRQUNMLE9BQU8sRUFBRSxvQkFBb0I7UUFDN0IsS0FBSyxFQUFFLElBQUk7UUFDWCxVQUFVLEVBQUUsQ0FBQyxRQUFrQixFQUFFLEVBQUU7WUFDakMsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDdkQsQ0FBQztRQUNELElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQztLQUNqQixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSx3QkFBd0IsQ0FBbUIsTUFBZTtJQUN4RSxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsb0JBQW9CLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEUsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUMsRUFBRSxPQUFnQyxDQUFDO0FBQy9GLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IEluamVjdGlvblRva2VuLCBJbmplY3RvciwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUeXBlIH0gZnJvbSAnQG54LWRkZC9jb21tb24vZG9tYWluJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEVudGl0eSB9IGZyb20gJy4vdGFzay1jb21wb3Nlcic7XG5cbmV4cG9ydCBjbGFzcyBFbnRpdHlTdG9yZUFkYXB0ZXI8RSBleHRlbmRzIEVudGl0eT4ge1xuICBsaXN0PygpOiBPYnNlcnZhYmxlPEVbXT4ge1xuICAgIHRocm93IG5ldyBFcnJvcignbm90IGltcGxlbWVudGVkJyk7XG4gIH1cblxuICBjcmVhdGU/KGVudGl0eTogRSk6IFByb21pc2U8RT4ge1xuICAgIHRocm93IG5ldyBFcnJvcignbm90IGltcGxlbWVudGVkJyk7XG4gIH1cblxuICB1cGRhdGU/KGVudGl0eTogUGFydGlhbDxFPiAmIFBpY2s8RSwgJ2lkJz4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ25vdCBpbXBsZW1lbnRlZCcpO1xuICB9XG5cbiAgZGVsZXRlPyhlbnRpdHk6IFBpY2s8RSwgJ2lkJz4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ25vdCBpbXBsZW1lbnRlZCcpO1xuICB9XG5cbiAgc2F2ZT8oZW50aXR5OiBFKTogUHJvbWlzZTxFPiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdub3QgaW1wbGVtZW50ZWQnKTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgRU5USVRZX1NUT1JFX0FEQVBURVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48e1xuICBlbnRpdHk6IFR5cGU8RW50aXR5PixcbiAgYWRhcHRlcjogRW50aXR5U3RvcmVBZGFwdGVyPEVudGl0eT5cbn1bXT4oJ0VOVElUWV9TVE9SRV9BREFQVEVSJyk7XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlRW50aXR5U3RvcmVBZGFwdGVyPEUgZXh0ZW5kcyBFbnRpdHk+KFxuICBlbnRpdHk6IFR5cGU8RT4sXG4gIGFkYXB0ZXJGYWN0b3J5OiAoaW5qZWN0b3I6IEluamVjdG9yKSA9PiBFbnRpdHlTdG9yZUFkYXB0ZXI8RT4sXG4pIHtcbiAgcmV0dXJuIHtcbiAgICBwcm92aWRlOiBFTlRJVFlfU1RPUkVfQURBUFRFUixcbiAgICBtdWx0aTogdHJ1ZSxcbiAgICB1c2VGYWN0b3J5OiAoaW5qZWN0b3I6IEluamVjdG9yKSA9PiB7XG4gICAgICByZXR1cm4geyBlbnRpdHksIGFkYXB0ZXI6IGFkYXB0ZXJGYWN0b3J5KGluamVjdG9yKSB9O1xuICAgIH0sXG4gICAgZGVwczogW0luamVjdG9yXVxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0RW50aXR5U3RvcmVBZGFwdGVyPEUgZXh0ZW5kcyBFbnRpdHk+KGVudGl0eTogVHlwZTxFPik6IEVudGl0eVN0b3JlQWRhcHRlcjxFPiB7XG4gIGNvbnN0IGFkYXB0ZXJzID0gaW5qZWN0KEVOVElUWV9TVE9SRV9BREFQVEVSLCB7b3B0aW9uYWw6IHRydWV9KSA/PyBbXTtcbiAgcmV0dXJuIGFkYXB0ZXJzLmZpbmQoYWRhcHRlciA9PiBhZGFwdGVyLmVudGl0eSA9PT0gZW50aXR5KT8uYWRhcHRlciBhcyBFbnRpdHlTdG9yZUFkYXB0ZXI8RT47XG59XG4iXX0=","import { toSignal } from '@angular/core/rxjs-interop';\nimport { inject } from '@angular/core';\nimport { ComponentStore } from '@ngrx/component-store';\nimport { createEntityAdapter } from '@ngrx/entity';\nimport { ReplaySubject, Subject, isObservable, of } from 'rxjs';\nimport { bufferTime, distinctUntilChanged, filter, map, shareReplay, switchMap, tap } from 'rxjs/operators';\nimport { merge } from 'lodash-es';\nimport { TaskComposerService } from './task-composer';\nimport { ProxyIdService } from './proxy-id.service';\nimport { injectEntityStoreAdapter } from './entity-store-adapter';\nexport const distinctUntilChangedArray = () => {\n return distinctUntilChanged((pre, cur) => JSON.stringify(pre) === JSON.stringify(cur));\n};\nexport class BaseEntityStore extends ComponentStore {\n constructor(entity, entityAdapter = createEntityAdapter({ selectId: (entity) => entity.id, sortComparer: false })) {\n super(entityAdapter.getInitialState());\n this.entity = entity;\n this.entityAdapter = entityAdapter;\n this.refresh$ = new ReplaySubject(1);\n this.selectors = this.entityAdapter.getSelectors();\n this.all$ = this.select(this.selectors.selectAll);\n this.all = toSignal(this.all$);\n this.total$ = this.select(this.selectors.selectTotal);\n this.total = toSignal(this.total$);\n /** @deprecated use BaseEntityStore.all$ instead. */\n this.entities$ = this.all$;\n /** @deprecated use BaseEntityStore.all instead. */\n this.entities = this.all;\n /** @deprecated use BaseEntityStore.total$ instead. */\n this.size$ = this.total$;\n this.addOne = this.updater((state, entity) => this.entityAdapter.addOne(entity, state));\n this.addMany = this.updater((state, entities) => this.entityAdapter.addMany(entities, state));\n this.updateOne = this.updater((state, update) => this.entityAdapter.updateOne(update, state));\n this.updateMany = this.updater((state, updates) => this.entityAdapter.updateMany(updates, state));\n this.upsertOne = this.updater((state, entity) => this.entityAdapter.upsertOne(entity, state));\n this.upsertMany = this.updater((state, entities) => this.entityAdapter.upsertMany(entities, state));\n this.removeOne = this.updater((state, id) => this.entityAdapter.removeOne(id, state));\n this.removeMany = this.updater((state, ids) => this.entityAdapter.removeMany(ids, state));\n this.removeAll = this.updater((state) => this.entityAdapter.removeAll(state));\n this.setOne = this.updater((state, entity) => this.entityAdapter.setOne(entity, state));\n this.setAll = this.updater((state, entities) => this.entityAdapter.setAll(entities, state));\n this.getEntities = this.effect((refresh$) => refresh$.pipe(switchMap(() => this.adapter?.list() ?? of([])), tap((entities) => this.setAll(entities))));\n this.adapter = injectEntityStoreAdapter(entity);\n this.getEntities(this.refresh$);\n this.refresh();\n }\n refresh() {\n this.refresh$.next();\n }\n mapToOne(valueOrObs) {\n const wrap = (valueOrObs) => isObservable(valueOrObs) ? valueOrObs : of(valueOrObs);\n return wrap(valueOrObs).pipe(switchMap(id => this.select((state) => this.selectors.selectEntities(state)[id])));\n }\n}\nexport class EntityStore extends BaseEntityStore {\n constructor(entity, entityAdapter = createEntityAdapter({ selectId: (entity) => entity.id, sortComparer: false })) {\n super(entity, entityAdapter);\n this.entity = entity;\n this.entityAdapter = entityAdapter;\n this.proxyId = inject(ProxyIdService, {});\n this.composer = inject(TaskComposerService);\n this.taskSubject$ = new Subject();\n this.task$ = this.taskSubject$.pipe(map(task => {\n switch (task.type) {\n case 'create': return merge(task, { payload: { id: this.proxyId.proxyId(task.payload.id) } });\n default: return task;\n }\n }), shareReplay(1));\n this.composedTasks$ = this.task$.pipe(bufferTime(5 * 1000), filter(tasks => tasks.length > 0), map((tasks) => this.composer.composeTasks(tasks)));\n this.task$.subscribe((task) => this.runTask(task));\n this.composedTasks$.subscribe(tasks => this.runComposedTasks(tasks));\n }\n dispatch(action) {\n this.taskSubject$.next(action);\n }\n async runTask(task) {\n switch (task.type) {\n case 'create': return this.addOne(task.payload);\n case 'update': return this.updateOne({ id: task.payload.id, changes: task.payload });\n case 'delete': return this.removeOne(task.payload.id);\n }\n }\n async runComposedTasks(tasks) {\n return Promise.all(tasks.map((task) => {\n switch (task.type) {\n case 'create': return this.adapter.create(task.payload)\n .then((entity) => {\n this.proxyId.update(task.payload.id, entity.id);\n const _entity = this.state().entities[task.payload.id];\n this.removeOne(task.payload.id);\n this.addOne({ ..._entity, id: entity.id });\n });\n case 'update': return this.adapter.update({\n ...task.payload,\n id: this.proxyId.resolve(task.payload.id),\n });\n case 'delete': return this.adapter.delete({\n ...task.payload,\n id: this.proxyId.resolve(task.payload.id),\n });\n }\n }))\n .then(() => this.onSyncSucceeded())\n .catch(() => this.onSyncFailed());\n }\n onSyncFailed() { }\n onSyncSucceeded() { }\n create(payload) {\n return this.adapter.create(payload);\n }\n update(payload) {\n return this.adapter.update(payload);\n }\n delete(payload) {\n return this.adapter.delete(payload);\n }\n save(payload) {\n return this.adapter.save(payload);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb21tb24vc3JjL2xpYi9zdG9yZXMvZW50aXRpZXMvZW50aXR5LXN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RCxPQUFPLEVBQThCLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQy9FLE9BQU8sRUFBYyxhQUFhLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUcsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNsQyxPQUFPLEVBQWdCLG1CQUFtQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBc0Isd0JBQXdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV0RixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxHQUFNLEVBQUU7SUFDL0MsT0FBTyxvQkFBb0IsQ0FBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzVGLENBQUMsQ0FBQztBQUVGLE1B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Q0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztpQkFDMUMsQ0FBQyxDQUFDO2dCQUNILEtBQUssUUFBUSxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztvQkFDeEMsR0FBRyxJQUFJLENBQUMsT0FBTztvQkFDZixFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7aUJBQ25DLENBQUMsQ0FBQztZQUNaLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQzthQUNGLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7YUFDbEMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFUyxZQUFZLEtBQUssQ0FBQztJQUNsQixlQUFlLEtBQUssQ0FBQztJQUUvQixNQUFNLENBQUMsT0FBVTtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFtQztRQUN4QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBc0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBSSxDQUFDLE9BQVU7UUFDYixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUeXBlIH0gZnJvbSAnQG54LWRkZC9jb21tb24vZG9tYWluJztcbmltcG9ydCB7IENvbXBvbmVudFN0b3JlIH0gZnJvbSAnQG5ncngvY29tcG9uZW50LXN0b3JlJztcbmltcG9ydCB7IEVudGl0eVN0YXRlLCBFbnRpdHlBZGFwdGVyLCBjcmVhdGVFbnRpdHlBZGFwdGVyIH0gZnJvbSAnQG5ncngvZW50aXR5JztcbmltcG9ydCB7IE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIFN1YmplY3QsIGlzT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGJ1ZmZlclRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCwgc2hhcmVSZXBsYXksIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgbWVyZ2UgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgRW50aXR5LCBUYXNrLCBUYXNrQ29tcG9zZXJTZXJ2aWNlIH0gZnJvbSAnLi90YXNrLWNvbXBvc2VyJztcbmltcG9ydCB7IFByb3h5SWRTZXJ2aWNlIH0gZnJvbSAnLi9wcm94eS1pZC5zZXJ2aWNlJztcbmltcG9ydCB7IEVudGl0eVN0b3JlQWRhcHRlciwgaW5qZWN0RW50aXR5U3RvcmVBZGFwdGVyIH0gZnJvbSAnLi9lbnRpdHktc3RvcmUtYWRhcHRlcic7XG5cbmV4cG9ydCBjb25zdCBkaXN0aW5jdFVudGlsQ2hhbmdlZEFycmF5ID0gPFQ+KCkgPT4ge1xuICByZXR1cm4gZGlzdGluY3RVbnRpbENoYW5nZWQ8VD4oKHByZSwgY3VyKSA9PiBKU09OLnN0cmluZ2lmeShwcmUpID09PSBKU09OLnN0cmluZ2lmeShjdXIpKTtcbn07XG5cbmV4cG9ydCBjbGFzcyBCYXNlRW50aXR5U3RvcmU8RSBleHRlbmRzIEVudGl0eT4gZXh0ZW5kcyBDb21wb25lbnRTdG9yZTxFbnRpdHlTdGF0ZTxFPj4ge1xuICBwcm90ZWN0ZWQgYWRhcHRlcjogRW50aXR5U3RvcmVBZGFwdGVyPEU+O1xuXG4gIHByb3RlY3RlZCByZWFkb25seSByZWZyZXNoJCA9IG5ldyBSZXBsYXlTdWJqZWN0PHZvaWQ+KDEpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VsZWN0b3JzID0gdGhpcy5lbnRpdHlBZGFwdGVyLmdldFNlbGVjdG9ycygpO1xuICByZWFkb25seSBhbGwkID0gdGhpcy5zZWxlY3QodGhpcy5zZWxlY3RvcnMuc2VsZWN0QWxsKTtcbiAgcmVhZG9ubHkgYWxsID0gdG9TaWduYWwodGhpcy5hbGwkKTtcbiAgcmVhZG9ubHkgdG90YWwkID0gdGhpcy5zZWxlY3QodGhpcy5zZWxlY3RvcnMuc2VsZWN0VG90YWwpO1xuICByZWFkb25seSB0b3RhbCA9IHRvU2lnbmFsKHRoaXMudG90YWwkKTtcblxuICAvKiogQGRlcHJlY2F0ZWQgdXNlIEJhc2VFbnRpdHlTdG9yZS5hbGwkIGluc3RlYWQuICovXG4gIHJlYWRvbmx5IGVudGl0aWVzJCA9IHRoaXMuYWxsJFxuICAvKiogQGRlcHJlY2F0ZWQgdXNlIEJhc2VFbnRpdHlTdG9yZS5hbGwgaW5zdGVhZC4gKi9cbiAgcmVhZG9ubHkgZW50aXRpZXMgPSB0aGlzLmFsbDtcbiAgLyoqIEBkZXByZWNhdGVkIHVzZSBCYXNlRW50aXR5U3RvcmUudG90YWwkIGluc3RlYWQuICovXG4gIHJlYWRvbmx5IHNpemUkID0gdGhpcy50b3RhbCQ7XG5cbiAgcmVhZG9ubHkgYWRkT25lID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgZW50aXR5OiBFKSA9PiB0aGlzLmVudGl0eUFkYXB0ZXIuYWRkT25lKGVudGl0eSwgc3RhdGUpKTtcbiAgcmVhZG9ubHkgYWRkTWFueSA9IHRoaXMudXBkYXRlcigoc3RhdGUsIGVudGl0aWVzOiBFW10pID0+IHRoaXMuZW50aXR5QWRhcHRlci5hZGRNYW55KGVudGl0aWVzLCBzdGF0ZSkpO1xuICByZWFkb25seSB1cGRhdGVPbmUgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCB1cGRhdGU6IHtpZDogc3RyaW5nLCBjaGFuZ2VzOiBQYXJ0aWFsPEU+fSkgPT4gdGhpcy5lbnRpdHlBZGFwdGVyLnVwZGF0ZU9uZSh1cGRhdGUsIHN0YXRlKSk7XG4gIHJlYWRvbmx5IHVwZGF0ZU1hbnkgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCB1cGRhdGVzOiB7aWQ6IHN0cmluZywgY2hhbmdlczogUGFydGlhbDxFPn1bXSkgPT4gdGhpcy5lbnRpdHlBZGFwdGVyLnVwZGF0ZU1hbnkodXBkYXRlcywgc3RhdGUpKTtcbiAgcmVhZG9ubHkgdXBzZXJ0T25lID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgZW50aXR5OiBFKSA9PiB0aGlzLmVudGl0eUFkYXB0ZXIudXBzZXJ0T25lKGVudGl0eSwgc3RhdGUpKTtcbiAgcmVhZG9ubHkgdXBzZXJ0TWFueSA9IHRoaXMudXBkYXRlcigoc3RhdGUsIGVudGl0aWVzOiBFW10pID0+IHRoaXMuZW50aXR5QWRhcHRlci51cHNlcnRNYW55KGVudGl0aWVzLCBzdGF0ZSkpO1xuICByZWFkb25seSByZW1vdmVPbmUgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBpZDogc3RyaW5nKSA9PiB0aGlzLmVudGl0eUFkYXB0ZXIucmVtb3ZlT25lKGlkLCBzdGF0ZSkpO1xuICByZWFkb25seSByZW1vdmVNYW55ID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgaWRzOiBzdHJpbmdbXSkgPT4gdGhpcy5lbnRpdHlBZGFwdGVyLnJlbW92ZU1hbnkoaWRzLCBzdGF0ZSkpO1xuICByZWFkb25seSByZW1vdmVBbGwgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlKSA9PiB0aGlzLmVudGl0eUFkYXB0ZXIucmVtb3ZlQWxsKHN0YXRlKSk7XG4gIHJlYWRvbmx5IHNldE9uZSA9IHRoaXMudXBkYXRlcigoc3RhdGUsIGVudGl0eTogRSkgPT4gdGhpcy5lbnRpdHlBZGFwdGVyLnNldE9uZShlbnRpdHksIHN0YXRlKSk7XG4gIHJlYWRvbmx5IHNldEFsbCA9IHRoaXMudXBkYXRlcigoc3RhdGUsIGVudGl0aWVzOiBFW10pID0+IHRoaXMuZW50aXR5QWRhcHRlci5zZXRBbGwoZW50aXRpZXMsIHN0YXRlKSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGVudGl0eTogVHlwZTxFPixcbiAgICBwcm90ZWN0ZWQgZW50aXR5QWRhcHRlcjogRW50aXR5QWRhcHRlcjxFPiA9IGNyZWF0ZUVudGl0eUFkYXB0ZXI8RT4oe3NlbGVjdElkOiAoZW50aXR5KSA9PiBlbnRpdHkuaWQsIHNvcnRDb21wYXJlcjogZmFsc2V9KSxcbiAgKSB7XG4gICAgc3VwZXIoZW50aXR5QWRhcHRlci5nZXRJbml0aWFsU3RhdGUoKSk7XG4gICAgdGhpcy5hZGFwdGVyID0gaW5qZWN0RW50aXR5U3RvcmVBZGFwdGVyKGVudGl0eSk7XG4gICAgdGhpcy5nZXRFbnRpdGllcyh0aGlzLnJlZnJlc2gkKTtcbiAgICB0aGlzLnJlZnJlc2goKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRFbnRpdGllcyA9IHRoaXMuZWZmZWN0KChyZWZyZXNoJDogT2JzZXJ2YWJsZTx2b2lkPikgPT4gcmVmcmVzaCQucGlwZShcbiAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5hZGFwdGVyPy5saXN0KCkgPz8gb2YoW10pKSxcbiAgICB0YXAoKGVudGl0aWVzOiBFW10pID0+IHRoaXMuc2V0QWxsKGVudGl0aWVzKSksXG4gICkpO1xuXG4gIHJlZnJlc2goKSB7XG4gICAgdGhpcy5yZWZyZXNoJC5uZXh0KCk7XG4gIH1cblxuICBtYXBUb09uZSh2YWx1ZU9yT2JzOiBzdHJpbmcgfCBPYnNlcnZhYmxlPHN0cmluZz4pOiBPYnNlcnZhYmxlPEU+IHtcbiAgICBjb25zdCB3cmFwID0gKHZhbHVlT3JPYnM6IHN0cmluZyB8IE9ic2VydmFibGU8c3RyaW5nPikgPT4gaXNPYnNlcnZhYmxlKHZhbHVlT3JPYnMpID8gdmFsdWVPck9icyA6IG9mKHZhbHVlT3JPYnMpO1xuICAgIHJldHVybiB3cmFwKHZhbHVlT3JPYnMpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoaWQgPT4gdGhpcy5zZWxlY3QoKHN0YXRlKSA9PiB0aGlzLnNlbGVjdG9ycy5zZWxlY3RFbnRpdGllcyhzdGF0ZSlbaWRdKSksXG4gICAgKTtcbiAgfVxuXG59XG5cbmV4cG9ydCBjbGFzcyBFbnRpdHlTdG9yZTxFIGV4dGVuZHMgRW50aXR5PiBleHRlbmRzIEJhc2VFbnRpdHlTdG9yZTxFPiB7XG4gIHByb3RlY3RlZCBwcm94eUlkID0gaW5qZWN0KFByb3h5SWRTZXJ2aWNlLCB7fSk7XG4gIHByb3RlY3RlZCBjb21wb3NlciA9IGluamVjdChUYXNrQ29tcG9zZXJTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIHRhc2tTdWJqZWN0JCA9IG5ldyBTdWJqZWN0PFRhc2s8RT4+KCk7XG4gIHByb3RlY3RlZCB0YXNrJDogT2JzZXJ2YWJsZTxUYXNrPEU+PiA9IHRoaXMudGFza1N1YmplY3QkLnBpcGUoXG4gICAgbWFwKHRhc2sgPT4ge1xuICAgICAgc3dpdGNoKHRhc2sudHlwZSkge1xuICAgICAgICBjYXNlICdjcmVhdGUnOiByZXR1cm4gbWVyZ2UodGFzaywge3BheWxvYWQ6IHtpZDogdGhpcy5wcm94eUlkLnByb3h5SWQodGFzay5wYXlsb2FkLmlkKX19KTtcbiAgICAgICAgZGVmYXVsdDogcmV0dXJuIHRhc2s7XG4gICAgICB9XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSksXG4gICk7XG4gIHByb3RlY3RlZCBjb21wb3NlZFRhc2tzJCA9IHRoaXMudGFzayQucGlwZShcbiAgICBidWZmZXJUaW1lKDUgKiAxMDAwKSxcbiAgICBmaWx0ZXIodGFza3MgPT4gdGFza3MubGVuZ3RoID4gMCksXG4gICAgbWFwKCh0YXNrcykgPT4gdGhpcy5jb21wb3Nlci5jb21wb3NlVGFza3ModGFza3MpKSxcbiAgKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgZW50aXR5OiBUeXBlPEU+LFxuICAgIHByb3RlY3RlZCBlbnRpdHlBZGFwdGVyOiBFbnRpdHlBZGFwdGVyPEU+ID0gY3JlYXRlRW50aXR5QWRhcHRlcjxFPih7c2VsZWN0SWQ6IChlbnRpdHkpID0+IGVudGl0eS5pZCwgc29ydENvbXBhcmVyOiBmYWxzZX0pLFxuICApIHtcbiAgICBzdXBlcihlbnRpdHksIGVudGl0eUFkYXB0ZXIpO1xuICAgIHRoaXMudGFzayQuc3Vic2NyaWJlKCh0YXNrOiBUYXNrPEU+KSA9PiB0aGlzLnJ1blRhc2sodGFzaykpO1xuICAgIHRoaXMuY29tcG9zZWRUYXNrcyQuc3Vic2NyaWJlKHRhc2tzID0+IHRoaXMucnVuQ29tcG9zZWRUYXNrcyh0YXNrcykpO1xuICB9XG5cbiAgZGlzcGF0Y2goYWN0aW9uOiBUYXNrPEU+KSB7XG4gICAgdGhpcy50YXNrU3ViamVjdCQubmV4dChhY3Rpb24pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHJ1blRhc2sodGFzazogVGFzazxFPik6IFByb21pc2U8YW55PiB7XG4gICAgc3dpdGNoKHRhc2sudHlwZSkge1xuICAgICAgY2FzZSAnY3JlYXRlJzogcmV0dXJuIHRoaXMuYWRkT25lKHRhc2sucGF5bG9hZCk7XG4gICAgICBjYXNlICd1cGRhdGUnOiByZXR1cm4gdGhpcy51cGRhdGVPbmUoe2lkOiB0YXNrLnBheWxvYWQuaWQsIGNoYW5nZXM6IHRhc2sucGF5bG9hZH0pO1xuICAgICAgY2FzZSAnZGVsZXRlJzogcmV0dXJuIHRoaXMucmVtb3ZlT25lKHRhc2sucGF5bG9hZC5pZCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHJ1bkNvbXBvc2VkVGFza3ModGFza3M6IFRhc2s8RT5bXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBQcm9taXNlLmFsbCh0YXNrcy5tYXAoKHRhc2spID0+IHtcbiAgICAgIHN3aXRjaCh0YXNrLnR5cGUpIHtcbiAgICAgICAgY2FzZSAnY3JlYXRlJzogcmV0dXJuIHRoaXMuYWRhcHRlci5jcmVhdGUodGFzay5wYXlsb2FkKVxuICAgICAgICAgIC50aGVuKChlbnRpdHkpID0+IHtcbiAgICAgICAgICAgIHRoaXMucHJveHlJZC51cGRhdGUodGFzay5wYXlsb2FkLmlkLCBlbnRpdHkuaWQpO1xuICAgICAgICAgICAgY29uc3QgX2VudGl0eSA9IHRoaXMuc3RhdGUoKS5lbnRpdGllc1t0YXNrLnBheWxvYWQuaWRdO1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVPbmUodGFzay5wYXlsb2FkLmlkKTtcbiAgICAgICAgICAgIHRoaXMuYWRkT25lKHsuLi5fZW50aXR5LCBpZDogZW50aXR5LmlkfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIGNhc2UgJ3VwZGF0ZSc6IHJldHVybiB0aGlzLmFkYXB0ZXIudXBkYXRlKHtcbiAgICAgICAgICAuLi50YXNrLnBheWxvYWQsXG4gICAgICAgICAgaWQ6IHRoaXMucHJveHlJZC5yZXNvbHZlKHRhc2sucGF5bG9hZC5pZCksXG4gICAgICAgIH0pO1xuICAgICAgICBjYXNlICdkZWxldGUnOiByZXR1cm4gdGhpcy5hZGFwdGVyLmRlbGV0ZSh7XG4gICAgICAgICAgLi4udGFzay5wYXlsb2FkLFxuICAgICAgICAgIGlkOiB0aGlzLnByb3h5SWQucmVzb2x2ZSh0YXNrLnBheWxvYWQuaWQpLFxuICAgICAgICB9IGFzIGFueSk7XG4gICAgICB9XG4gICAgfSkpXG4gICAgLnRoZW4oKCkgPT4gdGhpcy5vblN5bmNTdWNjZWVkZWQoKSlcbiAgICAuY2F0Y2goKCkgPT4gdGhpcy5vblN5bmNGYWlsZWQoKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25TeW5jRmFpbGVkKCkgeyB9XG4gIHByb3RlY3RlZCBvblN5bmNTdWNjZWVkZWQoKSB7IH1cblxuICBjcmVhdGUocGF5bG9hZDogRSk6IFByb21pc2U8RT4ge1xuICAgIHJldHVybiB0aGlzLmFkYXB0ZXIuY3JlYXRlKHBheWxvYWQpO1xuICB9XG5cbiAgdXBkYXRlKHBheWxvYWQ6IFBpY2s8RSwgJ2lkJz4gJiBQYXJ0aWFsPEU+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuYWRhcHRlci51cGRhdGUocGF5bG9hZCk7XG4gIH1cblxuICBkZWxldGUocGF5bG9hZDogUGljazxFLCAnaWQnPik6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmFkYXB0ZXIuZGVsZXRlKHBheWxvYWQpO1xuICB9XG5cbiAgc2F2ZShwYXlsb2FkOiBFKTogUHJvbWlzZTxFPiB7XG4gICAgcmV0dXJuIHRoaXMuYWRhcHRlci5zYXZlKHBheWxvYWQpO1xuICB9XG59XG4iXX0=","import { Injectable, inject } from '@angular/core';\nimport { EntityStore } from './entity-store';\nimport * as i0 from \"@angular/core\";\nexport { distinctUntilChangedArray } from './entity-store';\nexport class EntityStoreService {\n constructor() {\n this.storeMap = new Map();\n }\n get(Entity) {\n if (!this.storeMap.has(Entity)) {\n this.storeMap.set(Entity, new EntityStore(Entity));\n }\n return this.storeMap.get(Entity);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: EntityStoreService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: EntityStoreService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: EntityStoreService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\nexport function injectEntityStore(Entity) {\n return inject(EntityStoreService).get(Entity);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXN0b3JlLW1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3N0b3Jlcy9lbnRpdGllcy9lbnRpdHktc3RvcmUtbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBQzdDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzNELE1BQU0sT0FBTyxrQkFBa0I7SUFEL0I7UUFFWSxhQUFRLEdBQUcsSUFBSSxHQUFHLEVBQXFDLENBQUM7S0FRbkU7SUFOQyxHQUFHLENBQW1CLE1BQWU7UUFDbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDckQsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFtQixDQUFDO0lBQ3JELENBQUM7OEdBUlUsa0JBQWtCO2tIQUFsQixrQkFBa0IsY0FETixNQUFNOzsyRkFDbEIsa0JBQWtCO2tCQUQ5QixVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQzs7QUFZaEMsTUFBTSxVQUFVLGlCQUFpQixDQUFtQixNQUFlO0lBQ2pFLE9BQU8sTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFR5cGUgfSBmcm9tICdAbngtZGRkL2NvbW1vbi9kb21haW4nO1xuaW1wb3J0IHsgRW50aXR5IH0gZnJvbSAnLi90YXNrLWNvbXBvc2VyJztcbmltcG9ydCB7IEVudGl0eVN0b3JlIH0gZnJvbSAnLi9lbnRpdHktc3RvcmUnO1xuZXhwb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWRBcnJheSB9IGZyb20gJy4vZW50aXR5LXN0b3JlJztcblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgRW50aXR5U3RvcmVTZXJ2aWNlIHtcbiAgcHJvdGVjdGVkIHN0b3JlTWFwID0gbmV3IE1hcDxUeXBlPEVudGl0eT4sIEVudGl0eVN0b3JlPEVudGl0eT4+KCk7XG5cbiAgZ2V0PEUgZXh0ZW5kcyBFbnRpdHk+KEVudGl0eTogVHlwZTxFPik6IEVudGl0eVN0b3JlPEU+IHtcbiAgICBpZiAoIXRoaXMuc3RvcmVNYXAuaGFzKEVudGl0eSkpIHtcbiAgICAgIHRoaXMuc3RvcmVNYXAuc2V0KEVudGl0eSwgbmV3IEVudGl0eVN0b3JlKEVudGl0eSkpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zdG9yZU1hcC5nZXQoRW50aXR5KSBhcyBFbnRpdHlTdG9yZTxFPjtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0RW50aXR5U3RvcmU8RSBleHRlbmRzIEVudGl0eT4oRW50aXR5OiBUeXBlPEU+KTogRW50aXR5U3RvcmU8RT4ge1xuICByZXR1cm4gaW5qZWN0KEVudGl0eVN0b3JlU2VydmljZSkuZ2V0KEVudGl0eSk7XG59XG4iXX0=","import { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { computed, inject } from '@angular/core';\nimport { Resolver } from '@nx-ddd/common/domain';\nimport { injectResolver$ } from '@ng-atomic/common/utils';\nimport { combineLatest, isObservable, of, filter, map, shareReplay, switchMap } from 'rxjs';\nimport { injectEntityStore } from './entity-store-manager';\nimport { derivedAsync } from 'ngxtension/derived-async';\nexport function injectOne$(Entity, params, resolverType = Resolver) {\n if (resolverType) {\n return combineLatest({\n resolver: injectResolver$(resolverType, params),\n Entity: injectEntityStore(Entity).mapToOne(params.id).pipe(filter((Entity) => !!Entity)),\n }).pipe(map(({ resolver, Entity }) => resolver.resolve(Entity)), shareReplay(1), takeUntilDestroyed());\n }\n return injectEntityStore(Entity).mapToOne(params.id).pipe(shareReplay(1), takeUntilDestroyed());\n}\nfunction signalMapToObsMap(map) {\n return Object.entries(map).reduce((acc, [key, value]) => {\n acc[key] = toObservable(value);\n return acc;\n }, {});\n}\nexport function injectOne(Entity, params, resolverType = Resolver) {\n return toSignal(injectOne$(Entity, signalMapToObsMap(params), resolverType));\n}\nexport function injectAll$(Entity, params = {}, resolverType = Resolver) {\n if (resolverType) {\n return combineLatest({\n resolver: injectResolver$(resolverType, params),\n entities: injectEntityStore(Entity).all$,\n }).pipe(map(({ resolver, entities }) => resolver.resolveMany(entities)), shareReplay(1), takeUntilDestroyed());\n }\n return injectEntityStore(Entity).entities$.pipe(shareReplay(1), takeUntilDestroyed());\n}\nexport const callSignalMap = (map) => {\n return computed(() => Object.entries(map).reduce((acc, [key, value]) => {\n return { ...acc, [key]: value() };\n }, {}));\n};\n// export function injectAll<T extends Entity>(\n// Entity: Type<T>,\n// params: Record<string, Signal<any>> = {},\n// resolverType?: new (params: Record<string, any>) => Resolver<T>\n// ) {\n// const store = injectEntityStore(Entity);\n// if (resolverType) {\n// return computed(() => {\n// const resolver = getResolver(resolverType, callSignalMap(params)());\n// const items = resolver.resolveMany(store.all());\n// return items;\n// });\n// }\n// return computed(() => store.all());\n// }\nexport function injectAll(Entity, params = {}, resolverType = Resolver) {\n const $params = signalMapToObsMap(params);\n const all$ = injectAll$(Entity, $params, resolverType);\n return derivedAsync(() => all$, { initialValue: [] });\n}\nexport function mapToOne$(storeType, keyOrKey$) {\n const store = inject(storeType, {});\n const key$ = isObservable(keyOrKey$) ? keyOrKey$ : of(keyOrKey$);\n return key$.pipe(switchMap(key => store.mapToOne(key)));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3N0b3Jlcy9lbnRpdGllcy9kaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hGLE9BQU8sRUFBVSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxRQUFRLEVBQXNCLE1BQU0sdUJBQXVCLENBQUM7QUFDckUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBYyxhQUFhLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHeEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBS3hELE1BQU0sVUFBVSxVQUFVLENBQ3hCLE1BQWUsRUFDZixNQUFpQyxFQUNqQyxlQUFzQyxRQUFRO0lBRTlDLElBQUksWUFBWSxFQUFFLENBQUM7UUFDakIsT0FBTyxhQUFhLENBQUM7WUFDbkIsUUFBUSxFQUFFLGVBQWUsQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDO1lBQy9DLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDeEQsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQzdCO1NBQ0YsQ0FBQyxDQUFDLElBQUksQ0FDTCxHQUFHLENBQUMsQ0FBQyxFQUFFLFFB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R0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQztJQUN2RCxPQUFPLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUN4RCxDQUFDO0FBSUQsTUFBTSxVQUFVLFNBQVMsQ0FDdkIsU0FBbUMsRUFDbkMsU0FBb0M7SUFFcEMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFpQixTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDcEQsTUFBTSxJQUFJLEdBQUcsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNqRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCwgdG9PYnNlcnZhYmxlLCB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IFNpZ25hbCwgY29tcHV0ZWQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVzb2x2ZXIsIEJhc2VSZXNvbHZlciwgVHlwZSB9IGZyb20gJ0BueC1kZGQvY29tbW9uL2RvbWFpbic7XG5pbXBvcnQgeyBpbmplY3RSZXNvbHZlciQgfSBmcm9tICdAbmctYXRvbWljL2NvbW1vbi91dGlscyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBjb21iaW5lTGF0ZXN0LCBpc09ic2VydmFibGUsIG9mLCBmaWx0ZXIsIG1hcCwgc2hhcmVSZXBsYXksIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRW50aXR5IH0gZnJvbSAnLi90YXNrLWNvbXBvc2VyJztcbmltcG9ydCB7IEVudGl0eVN0b3JlIH0gZnJvbSAnLi9lbnRpdHktc3RvcmUnO1xuaW1wb3J0IHsgaW5qZWN0RW50aXR5U3RvcmUgfSBmcm9tICcuL2VudGl0eS1zdG9yZS1tYW5hZ2VyJztcbmltcG9ydCB7IGRlcml2ZWRBc3luYyB9IGZyb20gJ25neHRlbnNpb24vZGVyaXZlZC1hc3luYyc7XG5cbnR5cGUgT25lUHJvcHM8Vj4gPSB7aWQ6IFYsIFtrZXk6IHN0cmluZ106IFZ9O1xudHlwZSBBbGxQcm9wczxWPiA9IHtba2V5OiBzdHJpbmddOiBWfTtcblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdE9uZSQ8VCBleHRlbmRzIEVudGl0eT4oXG4gIEVudGl0eTogVHlwZTxUPixcbiAgcGFyYW1zOiBPbmVQcm9wczxPYnNlcnZhYmxlPGFueT4+LFxuICByZXNvbHZlclR5cGU6IFR5cGU8QmFzZVJlc29sdmVyPFQ+PiA9IFJlc29sdmVyXG4pOiBPYnNlcnZhYmxlPFQ+IHtcbiAgaWYgKHJlc29sdmVyVHlwZSkge1xuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KHtcbiAgICAgIHJlc29sdmVyOiBpbmplY3RSZXNvbHZlciQocmVzb2x2ZXJUeXBlLCBwYXJhbXMpLFxuICAgICAgRW50aXR5OiBpbmplY3RFbnRpdHlTdG9yZShFbnRpdHkpLm1hcFRvT25lKHBhcmFtcy5pZCkucGlwZShcbiAgICAgICAgZmlsdGVyKChFbnRpdHkpID0+ICEhRW50aXR5KVxuICAgICAgKSxcbiAgICB9KS5waXBlKFxuICAgICAgbWFwKCh7IHJlc29sdmVyLCBFbnRpdHkgfSkgPT4gcmVzb2x2ZXIucmVzb2x2ZShFbnRpdHkpKSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpLFxuICAgICAgdGFrZVVudGlsRGVzdHJveWVkKCksXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBpbmplY3RFbnRpdHlTdG9yZShFbnRpdHkpLm1hcFRvT25lKHBhcmFtcy5pZCkucGlwZShcbiAgICBzaGFyZVJlcGxheSgxKSxcbiAgICB0YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgKTtcbn1cblxuZnVuY3Rpb24gc2lnbmFsTWFwVG9PYnNNYXAobWFwOiBBbGxQcm9wczxTaWduYWw8YW55Pj4pOiBBbGxQcm9wczxPYnNlcnZhYmxlPGFueT4+IHtcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKG1hcCkucmVkdWNlKChhY2MsIFtrZXksIHZhbHVlXSkgPT4ge1xuICAgIGFjY1trZXldID0gdG9PYnNlcnZhYmxlKHZhbHVlIGFzIGFueSk7XG4gICAgcmV0dXJuIGFjYztcbiAgfSwge30gYXMgQWxsUHJvcHM8T2JzZXJ2YWJsZTxhbnk+Pik7XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdE9uZTxUIGV4dGVuZHMgRW50aXR5PihcbiAgRW50aXR5OiBUeXBlPFQ+LFxuICBwYXJhbXM6IE9uZVByb3BzPFNpZ25hbDxhbnk+PixcbiAgcmVzb2x2ZXJUeXBlOiBUeXBlPEJhc2VSZXNvbHZlcjxUPj4gPSBSZXNvbHZlclxuKSB7XG4gIHJldHVybiB0b1NpZ25hbChpbmplY3RPbmUkKEVudGl0eSwgc2lnbmFsTWFwVG9PYnNNYXAocGFyYW1zKSBhcyBhbnksIHJlc29sdmVyVHlwZSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0QWxsJDxUIGV4dGVuZHMgRW50aXR5PihcbiAgRW50aXR5OiBUeXBlPFQ+LFxuICBwYXJhbXM6IFJlY29yZDxzdHJpbmcsIE9ic2VydmFibGU8YW55Pj4gPSB7fSxcbiAgcmVzb2x2ZXJUeXBlOiBUeXBlPEJhc2VSZXNvbHZlcjxUPj4gPSBSZXNvbHZlclxuKSB7XG4gIGlmIChyZXNvbHZlclR5cGUpIHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdCh7XG4gICAgICByZXNvbHZlcjogaW5qZWN0UmVzb2x2ZXIkKHJlc29sdmVyVHlwZSwgcGFyYW1zKSxcbiAgICAgIGVudGl0aWVzOiBpbmplY3RFbnRpdHlTdG9yZShFbnRpdHkpLmFsbCQsXG4gICAgfSkucGlwZShcbiAgICAgIG1hcCgoeyByZXNvbHZlciwgZW50aXRpZXMgfSkgPT4gcmVzb2x2ZXIucmVzb2x2ZU1hbnkoZW50aXRpZXMpKSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpLFxuICAgICAgdGFrZVVudGlsRGVzdHJveWVkKCksXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBpbmplY3RFbnRpdHlTdG9yZShFbnRpdHkpLmVudGl0aWVzJC5waXBlKFxuICAgIHNoYXJlUmVwbGF5KDEpLFxuICAgIHRha2VVbnRpbERlc3Ryb3llZCgpLFxuICApO1xufVxuXG5leHBvcnQgY29uc3QgY2FsbFNpZ25hbE1hcCA9IDxUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgU2lnbmFsPGFueT4+PihtYXA6IFQpOiBTaWduYWw8VD4gPT4gIHtcbiAgcmV0dXJuIGNvbXB1dGVkKCgpID0+IE9iamVjdC5lbnRyaWVzKG1hcCkucmVkdWNlKChhY2MsIFtrZXksIHZhbHVlXSkgPT4ge1xuICAgIHJldHVybiB7Li4uYWNjLCBba2V5XTogdmFsdWUoKX07XG4gIH0sIHt9IGFzIFQpKTtcbn1cblxuLy8gZXhwb3J0IGZ1bmN0aW9uIGluamVjdEFsbDxUIGV4dGVuZHMgRW50aXR5Pihcbi8vICAgRW50aXR5OiBUeXBlPFQ+LFxuLy8gICBwYXJhbXM6IFJlY29yZDxzdHJpbmcsIFNpZ25hbDxhbnk+PiA9IHt9LFxuLy8gICByZXNvbHZlclR5cGU/OiBuZXcgKHBhcmFtczogUmVjb3JkPHN0cmluZywgYW55PikgPT4gUmVzb2x2ZXI8VD5cbi8vICkge1xuLy8gICBjb25zdCBzdG9yZSA9IGluamVjdEVudGl0eVN0b3JlKEVudGl0eSk7XG4vLyAgIGlmIChyZXNvbHZlclR5cGUpIHtcbi8vICAgICByZXR1cm4gY29tcHV0ZWQoKCkgPT4ge1xuLy8gICAgICAgY29uc3QgcmVzb2x2ZXIgPSBnZXRSZXNvbHZlcihyZXNvbHZlclR5cGUsIGNhbGxTaWduYWxNYXAocGFyYW1zKSgpKTtcbi8vICAgICAgIGNvbnN0IGl0ZW1zID0gcmVzb2x2ZXIucmVzb2x2ZU1hbnkoc3RvcmUuYWxsKCkpO1xuLy8gICAgICAgcmV0dXJuIGl0ZW1zO1xuLy8gICAgIH0pO1xuLy8gICB9XG4vLyAgIHJldHVybiBjb21wdXRlZCgoKSA9PiBzdG9yZS5hbGwoKSk7XG4vLyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RBbGw8VCBleHRlbmRzIEVudGl0eT4oXG4gIEVudGl0eTogVHlwZTxUPixcbiAgcGFyYW1zOiBBbGxQcm9wczxTaWduYWw8YW55Pj4gPSB7fSxcbiAgcmVzb2x2ZXJUeXBlOiBUeXBlPEJhc2VSZXNvbHZlcjxUPj4gPSBSZXNvbHZlclxuKTogU2lnbmFsPFRbXT4ge1xuICBjb25zdCAkcGFyYW1zID0gc2lnbmFsTWFwVG9PYnNNYXAocGFyYW1zKTtcbiAgY29uc3QgYWxsJCA9IGluamVjdEFsbCQoRW50aXR5LCAkcGFyYW1zLCByZXNvbHZlclR5cGUpO1xuICByZXR1cm4gZGVyaXZlZEFzeW5jKCgpID0+IGFsbCQsIHsgaW5pdGlhbFZhbHVlOiBbXSB9KTtcbn1cblxuZXhwb3J0IHR5cGUgVmFsdWVPck9ic2VydmFibGU8VD4gPSBUIHwgT2JzZXJ2YWJsZTxUPjtcblxuZXhwb3J0IGZ1bmN0aW9uIG1hcFRvT25lJDxUIGV4dGVuZHMge2lkOiBzdHJpbmd9PihcbiAgc3RvcmVUeXBlOiBuZXcgKCkgPT4gRW50aXR5U3RvcmU8VD4sXG4gIGtleU9yS2V5JDogVmFsdWVPck9ic2VydmFibGU8c3RyaW5nPixcbik6IE9ic2VydmFibGU8VD4ge1xuICBjb25zdCBzdG9yZSA9IGluamVjdDxFbnRpdHlTdG9yZTxUPj4oc3RvcmVUeXBlLCB7fSk7XG4gIGNvbnN0IGtleSQgPSBpc09ic2VydmFibGUoa2V5T3JLZXkkKSA/IGtleU9yS2V5JCA6IG9mKGtleU9yS2V5JCk7XG4gIHJldHVybiBrZXkkLnBpcGUoc3dpdGNoTWFwKGtleSA9PiBzdG9yZS5tYXBUb09uZShrZXkpKSk7XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctYXRvbWljLWNvbW1vbi1zdG9yZXMtZW50aXRpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3N0b3Jlcy9lbnRpdGllcy9uZy1hdG9taWMtY29tbW9uLXN0b3Jlcy1lbnRpdGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":["filter","map","shareReplay","switchMap"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-atomic-common-stores-entities.mjs","sources":["../tmp-esm2022/stores/entities/proxy-id.service.js","../tmp-esm2022/stores/entities/task-composer.js","../tmp-esm2022/stores/entities/entity-store-adapter.js","../tmp-esm2022/stores/entities/entity-store.js","../tmp-esm2022/stores/entities/entity-store-manager.js","../tmp-esm2022/stores/entities/di.js","../tmp-esm2022/stores/entities/ng-atomic-common-stores-entities.js"],"sourcesContent":["import { Injectable } from \"@angular/core\";\nimport * as i0 from \"@angular/core\";\nexport class ProxyIdService {\n constructor() {\n this.proxyMap = new Map();\n }\n isProxyId(id) {\n return !!id?.startsWith('proxy-');\n }\n proxyId(_id) {\n const id = this.isProxyId(_id) ? _id : `proxy-${this.proxyMap.size}`;\n if (!this.proxyMap.get(id))\n this.proxyMap.set(id, id);\n return id;\n }\n update(proxyId, id) {\n this.proxyMap.set(proxyId, id);\n }\n resolve(proxyIdOrId) {\n return this.isProxyId(proxyIdOrId) ? this.proxyMap.get(proxyIdOrId) : proxyIdOrId;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: ProxyIdService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: ProxyIdService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: ProxyIdService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJveHktaWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BuZy1hdG9taWMvY29tbW9uL3NyYy9saWIvc3RvcmVzL2VudGl0aWVzL3Byb3h5LWlkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHM0MsTUFBTSxPQUFPLGNBQWM7SUFEM0I7UUFFRSxhQUFRLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7S0FtQnRDO0lBakJDLFNBQVMsQ0FBQyxFQUFpQjtRQUN6QixPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxPQUFPLENBQUMsR0FBVztRQUNqQixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyRSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFlLEVBQUUsRUFBVTtRQUNoQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELE9BQU8sQ0FBQyxXQUFtQjtRQUN6QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUM7SUFDcEYsQ0FBQzs4R0FuQlUsY0FBYztrSEFBZCxjQUFjLGNBREYsTUFBTTs7MkZBQ2xCLGNBQWM7a0JBRDFCLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIFByb3h5SWRTZXJ2aWNlIHtcbiAgcHJveHlNYXAgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuXG4gIGlzUHJveHlJZChpZDogc3RyaW5nIHwgbnVsbCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIWlkPy5zdGFydHNXaXRoKCdwcm94eS0nKTtcbiAgfVxuXG4gIHByb3h5SWQoX2lkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGlkID0gdGhpcy5pc1Byb3h5SWQoX2lkKSA/IF9pZCA6IGBwcm94eS0ke3RoaXMucHJveHlNYXAuc2l6ZX1gO1xuICAgIGlmICghdGhpcy5wcm94eU1hcC5nZXQoaWQpKSB0aGlzLnByb3h5TWFwLnNldChpZCwgaWQpO1xuICAgIHJldHVybiBpZDtcbiAgfVxuXG4gIHVwZGF0ZShwcm94eUlkOiBzdHJpbmcsIGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLnByb3h5TWFwLnNldChwcm94eUlkLCBpZCk7XG4gIH1cblxuICByZXNvbHZlKHByb3h5SWRPcklkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlzUHJveHlJZChwcm94eUlkT3JJZCkgPyB0aGlzLnByb3h5TWFwLmdldChwcm94eUlkT3JJZCkgOiBwcm94eUlkT3JJZDtcbiAgfVxufVxuIl19","import { Injectable, inject } from \"@angular/core\";\nimport { merge } from \"lodash-es\";\nimport { ProxyIdService } from \"./proxy-id.service\";\nimport * as i0 from \"@angular/core\";\nexport function pushMap(map, id, item) {\n const items = map.get(id) ?? [];\n items.push(item);\n map.set(id, items);\n return map;\n}\nexport class TaskComposerService {\n constructor() {\n this.proxyId = inject(ProxyIdService);\n }\n composeTasks(tasks) {\n const map = new Map();\n tasks.sort((a, b) => a.timestamp - b.timestamp).forEach((task) => {\n let id = task.payload?.id;\n switch (task.type) {\n case 'noop':\n break;\n case 'create':\n id = this.proxyId.proxyId(task.payload.id);\n pushMap(map, id, { ...task, payload: { ...task.payload, id } });\n break;\n case 'update':\n case 'delete':\n pushMap(map, this.proxyId.resolve(id), task);\n break;\n }\n });\n const _tasks = [];\n for (const tasks of map.values()) {\n _tasks.push(this.compose(tasks));\n }\n return _tasks.filter(task => task.type !== 'noop');\n }\n compose(tasks) {\n let created = false;\n return tasks.reduce((a, b) => {\n switch (b.type) {\n case 'create':\n created = true;\n return {\n type: 'create',\n payload: b.payload,\n timestamp: b.timestamp,\n };\n case 'update':\n return {\n type: created ? 'create' : 'update',\n payload: merge(a.payload, b.payload),\n timestamp: b.timestamp,\n };\n case 'delete':\n return {\n type: created ? 'noop' : 'delete',\n payload: b.payload,\n timestamp: b.timestamp,\n };\n }\n }, { type: 'noop', payload: {} });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: TaskComposerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: TaskComposerService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: TaskComposerService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1jb21wb3Nlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BuZy1hdG9taWMvY29tbW9uL3NyYy9saWIvc3RvcmVzL2VudGl0aWVzL3Rhc2stY29tcG9zZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNsQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBK0JwRCxNQUFNLFVBQVUsT0FBTyxDQUFJLEdBQXFCLEVBQUUsRUFBVSxFQUFHLElBQU87SUFDcEUsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDaEMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQixHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNuQixPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFHRCxNQUFNLE9BQU8sbUJBQW1CO0lBRGhDO1FBRVcsWUFBTyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztLQXFEM0M7SUFuREMsWUFBWSxDQUFtQixLQUFnQjtRQUM3QyxNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsRUFBcUIsQ0FBQztRQUN6QyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDL0QsSUFBSSxFQUFFLEdBQUksSUFBSSxDQUFDLE9BQWUsRUFBRSxFQUFFLENBQUM7WUFDbkMsUUFBTyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ2pCLEtBQUssTUFBTTtvQkFDVCxNQUFLO2dCQUNQLEtBQUssUUFBUTtvQkFDWCxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDM0MsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBQyxHQUFHLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBQyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFDLEVBQVksQ0FBQyxDQUFDO29CQUN2RSxNQUFNO2dCQUNSLEtBQUssUUFBUSxDQUFDO2dCQUNkLEtBQUssUUFBUTtvQkFDWCxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO29CQUM3QyxNQUFNO1lBQ1YsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxNQUFNLEdBQWMsRUFBRSxDQUFDO1FBQzdCLEtBQUssTUFBTSxLQUFLLElBQUksR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7WUFDakMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDbkMsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELE9BQU8sQ0FBbUIsS0FBZ0I7UUFDeEMsSUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUMzQixRQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDZCxLQUFLLFFBQVE7b0JBQ1gsT0FBTyxHQUFHLElBQUksQ0FBQztvQkFDZixPQUFPO3dCQUNMLElBQUksRUFBRSxRQUFRO3dCQUNkLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTzt3QkFDbEIsU0FBUyxFQUFFLENBQUMsQ0FBQyxTQUFTO3FCQUNaLENBQUM7Z0JBQ2YsS0FBSyxRQUFRO29CQUNYLE9BQU87d0JBQ0wsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRO3dCQUNuQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQzt3QkFDcEMsU0FBUyxFQUFFLENBQUMsQ0FBQyxTQUFTO3FCQUNaLENBQUM7Z0JBQ2YsS0FBSyxRQUFRO29CQUNYLE9BQU87d0JBQ0wsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRO3dCQUNqQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU87d0JBQ2xCLFNBQVMsRUFBRSxDQUFDLENBQUMsU0FBUztxQkFDWixDQUFDO1lBQ2pCLENBQUM7UUFDSCxDQUFDLEVBQUUsRUFBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQVksQ0FBQyxDQUFBO0lBQzVDLENBQUM7OEdBckRVLG1CQUFtQjtrSEFBbkIsbUJBQW1CLGNBRFAsTUFBTTs7MkZBQ2xCLG1CQUFtQjtrQkFEL0IsVUFBVTttQkFBQyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgbWVyZ2UgfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5pbXBvcnQgeyBQcm94eUlkU2VydmljZSB9IGZyb20gXCIuL3Byb3h5LWlkLnNlcnZpY2VcIjtcblxuZXhwb3J0IHR5cGUgRW50aXR5ID0ge2lkOiBzdHJpbmd9O1xuXG5pbnRlcmZhY2UgQmFzZVRhc2sge1xuICB0eXBlOiAnY3JlYXRlJyB8ICd1cGRhdGUnIHwgJ2RlbGV0ZScgfCAnbm9vcCc7XG4gIHRpbWVzdGFtcDogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgQ3JlYXRlQWN0aW9uPFQgZXh0ZW5kcyBFbnRpdHk+IGV4dGVuZHMgQmFzZVRhc2sge1xuICB0eXBlOiAnY3JlYXRlJztcbiAgcGF5bG9hZDogVDtcbn1cblxuaW50ZXJmYWNlIFVwZGF0ZUFjdGlvbjxUIGV4dGVuZHMgRW50aXR5PiBleHRlbmRzIEJhc2VUYXNrIHtcbiAgdHlwZTogJ3VwZGF0ZSc7XG4gIHBheWxvYWQ6IFBhcnRpYWw8VD4gJiBFbnRpdHk7XG59XG5cbmludGVyZmFjZSBEZWxldGVBY3Rpb24gZXh0ZW5kcyBCYXNlVGFzayB7XG4gIHR5cGU6ICdkZWxldGUnO1xuICBwYXlsb2FkOiBFbnRpdHk7XG59XG5cbmludGVyZmFjZSBOb29wQWN0aW9uIGV4dGVuZHMgQmFzZVRhc2sge1xuICB0eXBlOiAnbm9vcCc7XG4gIHBheWxvYWQ6IHt9O1xufVxuXG5leHBvcnQgdHlwZSBUYXNrPFQgZXh0ZW5kcyBFbnRpdHk+ID0gQ3JlYXRlQWN0aW9uPFQ+IHwgVXBkYXRlQWN0aW9uPFQ+IHwgRGVsZXRlQWN0aW9uIHwgTm9vcEFjdGlvbjtcblxuZXhwb3J0IGZ1bmN0aW9uIHB1c2hNYXA8VD4obWFwOiBNYXA8c3RyaW5nLCBUW10+LCBpZDogc3RyaW5nLCAgaXRlbTogVCk6IE1hcDxzdHJpbmcsIFRbXT4ge1xuICBjb25zdCBpdGVtcyA9IG1hcC5nZXQoaWQpID8/IFtdO1xuICBpdGVtcy5wdXNoKGl0ZW0pO1xuICBtYXAuc2V0KGlkLCBpdGVtcyk7XG4gIHJldHVybiBtYXA7XG59XG5cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIFRhc2tDb21wb3NlclNlcnZpY2Uge1xuICByZWFkb25seSBwcm94eUlkID0gaW5qZWN0KFByb3h5SWRTZXJ2aWNlKTtcblxuICBjb21wb3NlVGFza3M8VCBleHRlbmRzIEVudGl0eT4odGFza3M6IFRhc2s8VD5bXSk6IFRhc2s8VD5bXSB7XG4gICAgY29uc3QgbWFwID0gbmV3IE1hcDxzdHJpbmcsIFRhc2s8VD5bXT4oKTtcbiAgICB0YXNrcy5zb3J0KChhLCBiKSA9PiBhLnRpbWVzdGFtcCAtIGIudGltZXN0YW1wKS5mb3JFYWNoKCh0YXNrKSA9PiB7XG4gICAgICBsZXQgaWQgPSAodGFzay5wYXlsb2FkIGFzIGFueSk/LmlkO1xuICAgICAgc3dpdGNoKHRhc2sudHlwZSkge1xuICAgICAgICBjYXNlICdub29wJzpcbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlICdjcmVhdGUnOlxuICAgICAgICAgIGlkID0gdGhpcy5wcm94eUlkLnByb3h5SWQodGFzay5wYXlsb2FkLmlkKTtcbiAgICAgICAgICBwdXNoTWFwKG1hcCwgaWQsIHsuLi50YXNrLCBwYXlsb2FkOiB7Li4udGFzay5wYXlsb2FkLCBpZH19IGFzIFRhc2s8VD4pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICd1cGRhdGUnOlxuICAgICAgICBjYXNlICdkZWxldGUnOlxuICAgICAgICAgIHB1c2hNYXAobWFwLCB0aGlzLnByb3h5SWQucmVzb2x2ZShpZCksIHRhc2spO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29uc3QgX3Rhc2tzOiBUYXNrPFQ+W10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IHRhc2tzIG9mIG1hcC52YWx1ZXMoKSkge1xuICAgICAgX3Rhc2tzLnB1c2godGhpcy5jb21wb3NlKHRhc2tzKSk7XG4gICAgfVxuICAgIHJldHVybiBfdGFza3MuZmlsdGVyKHRhc2sgPT4gdGFzay50eXBlICE9PSAnbm9vcCcpO1xuICB9XG5cbiAgY29tcG9zZTxUIGV4dGVuZHMgRW50aXR5Pih0YXNrczogVGFzazxUPltdKTogVGFzazxUPiB7XG4gICAgbGV0IGNyZWF0ZWQgPSBmYWxzZTtcbiAgICByZXR1cm4gdGFza3MucmVkdWNlKChhLCBiKSA9PiB7XG4gICAgICBzd2l0Y2goYi50eXBlKSB7XG4gICAgICAgIGNhc2UgJ2NyZWF0ZSc6XG4gICAgICAgICAgY3JlYXRlZCA9IHRydWU7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHR5cGU6ICdjcmVhdGUnLFxuICAgICAgICAgICAgcGF5bG9hZDogYi5wYXlsb2FkLFxuICAgICAgICAgICAgdGltZXN0YW1wOiBiLnRpbWVzdGFtcCxcbiAgICAgICAgICB9IGFzIFRhc2s8VD47XG4gICAgICAgIGNhc2UgJ3VwZGF0ZSc6XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHR5cGU6IGNyZWF0ZWQgPyAnY3JlYXRlJyA6ICd1cGRhdGUnLFxuICAgICAgICAgICAgcGF5bG9hZDogbWVyZ2UoYS5wYXlsb2FkLCBiLnBheWxvYWQpLFxuICAgICAgICAgICAgdGltZXN0YW1wOiBiLnRpbWVzdGFtcCxcbiAgICAgICAgICB9IGFzIFRhc2s8VD47XG4gICAgICAgIGNhc2UgJ2RlbGV0ZSc6XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHR5cGU6IGNyZWF0ZWQgPyAnbm9vcCcgOiAnZGVsZXRlJyxcbiAgICAgICAgICAgIHBheWxvYWQ6IGIucGF5bG9hZCxcbiAgICAgICAgICAgIHRpbWVzdGFtcDogYi50aW1lc3RhbXAsXG4gICAgICAgICAgfSBhcyBUYXNrPFQ+O1xuICAgICAgfVxuICAgIH0sIHt0eXBlOiAnbm9vcCcsIHBheWxvYWQ6IHt9fSBhcyBUYXNrPFQ+KVxuICB9XG59XG4iXX0=","import { InjectionToken, Injector, inject } from '@angular/core';\nexport class EntityStoreAdapter {\n list() {\n throw new Error('not implemented');\n }\n create(entity) {\n throw new Error('not implemented');\n }\n update(entity) {\n throw new Error('not implemented');\n }\n delete(entity) {\n throw new Error('not implemented');\n }\n save(entity) {\n throw new Error('not implemented');\n }\n}\nexport const ENTITY_STORE_ADAPTER = new InjectionToken('ENTITY_STORE_ADAPTER');\nexport function provideEntityStoreAdapter(entity, adapterFactory) {\n return {\n provide: ENTITY_STORE_ADAPTER,\n multi: true,\n useFactory: (injector) => {\n return { entity, adapter: adapterFactory(injector) };\n },\n deps: [Injector]\n };\n}\nexport function injectEntityStoreAdapter(entity) {\n const adapters = inject(ENTITY_STORE_ADAPTER, { optional: true }) ?? [];\n return adapters.find(adapter => adapter.entity === entity)?.adapter;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXN0b3JlLWFkYXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3N0b3Jlcy9lbnRpdGllcy9lbnRpdHktc3RvcmUtYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLakUsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixJQUFJO1FBQ0YsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxNQUFNLENBQUUsTUFBUztRQUNmLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsTUFBTSxDQUFFLE1BQWtDO1FBQ3hDLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsTUFBTSxDQUFFLE1BQXFCO1FBQzNCLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxDQUFFLE1BQVM7UUFDYixNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDckMsQ0FBQztDQUNGO0FBRUQsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxjQUFjLENBR2pELHNCQUFzQixDQUFDLENBQUM7QUFFN0IsTUFBTSxVQUFVLHlCQUF5QixDQUN2QyxNQUFlLEVBQ2YsY0FBNkQ7SUFFN0QsT0FBTztRQUNMLE9BQU8sRUFBRSxvQkFBb0I7UUFDN0IsS0FBSyxFQUFFLElBQUk7UUFDWCxVQUFVLEVBQUUsQ0FBQyxRQUFrQixFQUFFLEVBQUU7WUFDakMsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDdkQsQ0FBQztRQUNELElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQztLQUNqQixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSx3QkFBd0IsQ0FBbUIsTUFBZTtJQUN4RSxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsb0JBQW9CLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEUsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUMsRUFBRSxPQUFnQyxDQUFDO0FBQy9GLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IEluamVjdGlvblRva2VuLCBJbmplY3RvciwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUeXBlIH0gZnJvbSAnQG54LWRkZC9jb21tb24vZG9tYWluJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEVudGl0eSB9IGZyb20gJy4vdGFzay1jb21wb3Nlcic7XG5cbmV4cG9ydCBjbGFzcyBFbnRpdHlTdG9yZUFkYXB0ZXI8RSBleHRlbmRzIEVudGl0eT4ge1xuICBsaXN0PygpOiBPYnNlcnZhYmxlPEVbXT4ge1xuICAgIHRocm93IG5ldyBFcnJvcignbm90IGltcGxlbWVudGVkJyk7XG4gIH1cblxuICBjcmVhdGU/KGVudGl0eTogRSk6IFByb21pc2U8RT4ge1xuICAgIHRocm93IG5ldyBFcnJvcignbm90IGltcGxlbWVudGVkJyk7XG4gIH1cblxuICB1cGRhdGU/KGVudGl0eTogUGFydGlhbDxFPiAmIFBpY2s8RSwgJ2lkJz4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ25vdCBpbXBsZW1lbnRlZCcpO1xuICB9XG5cbiAgZGVsZXRlPyhlbnRpdHk6IFBpY2s8RSwgJ2lkJz4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ25vdCBpbXBsZW1lbnRlZCcpO1xuICB9XG5cbiAgc2F2ZT8oZW50aXR5OiBFKTogUHJvbWlzZTxFPiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdub3QgaW1wbGVtZW50ZWQnKTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgRU5USVRZX1NUT1JFX0FEQVBURVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48e1xuICBlbnRpdHk6IFR5cGU8RW50aXR5PixcbiAgYWRhcHRlcjogRW50aXR5U3RvcmVBZGFwdGVyPEVudGl0eT5cbn1bXT4oJ0VOVElUWV9TVE9SRV9BREFQVEVSJyk7XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlRW50aXR5U3RvcmVBZGFwdGVyPEUgZXh0ZW5kcyBFbnRpdHk+KFxuICBlbnRpdHk6IFR5cGU8RT4sXG4gIGFkYXB0ZXJGYWN0b3J5OiAoaW5qZWN0b3I6IEluamVjdG9yKSA9PiBFbnRpdHlTdG9yZUFkYXB0ZXI8RT4sXG4pIHtcbiAgcmV0dXJuIHtcbiAgICBwcm92aWRlOiBFTlRJVFlfU1RPUkVfQURBUFRFUixcbiAgICBtdWx0aTogdHJ1ZSxcbiAgICB1c2VGYWN0b3J5OiAoaW5qZWN0b3I6IEluamVjdG9yKSA9PiB7XG4gICAgICByZXR1cm4geyBlbnRpdHksIGFkYXB0ZXI6IGFkYXB0ZXJGYWN0b3J5KGluamVjdG9yKSB9O1xuICAgIH0sXG4gICAgZGVwczogW0luamVjdG9yXVxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0RW50aXR5U3RvcmVBZGFwdGVyPEUgZXh0ZW5kcyBFbnRpdHk+KGVudGl0eTogVHlwZTxFPik6IEVudGl0eVN0b3JlQWRhcHRlcjxFPiB7XG4gIGNvbnN0IGFkYXB0ZXJzID0gaW5qZWN0KEVOVElUWV9TVE9SRV9BREFQVEVSLCB7b3B0aW9uYWw6IHRydWV9KSA/PyBbXTtcbiAgcmV0dXJuIGFkYXB0ZXJzLmZpbmQoYWRhcHRlciA9PiBhZGFwdGVyLmVudGl0eSA9PT0gZW50aXR5KT8uYWRhcHRlciBhcyBFbnRpdHlTdG9yZUFkYXB0ZXI8RT47XG59XG4iXX0=","import { toSignal } from '@angular/core/rxjs-interop';\nimport { inject } from '@angular/core';\nimport { ComponentStore } from '@ngrx/component-store';\nimport { createEntityAdapter } from '@ngrx/entity';\nimport { ReplaySubject, Subject, isObservable, of } from 'rxjs';\nimport { bufferTime, distinctUntilChanged, filter, map, shareReplay, switchMap, tap } from 'rxjs/operators';\nimport { merge } from 'lodash-es';\nimport { TaskComposerService } from './task-composer';\nimport { ProxyIdService } from './proxy-id.service';\nimport { injectEntityStoreAdapter } from './entity-store-adapter';\nexport const distinctUntilChangedArray = () => {\n return distinctUntilChanged((pre, cur) => JSON.stringify(pre) === JSON.stringify(cur));\n};\nexport class BaseEntityStore extends ComponentStore {\n get selectors() { return this.entityAdapter.getSelectors(); }\n constructor(entity, entityAdapter = createEntityAdapter({ selectId: (entity) => entity.id, sortComparer: false })) {\n super(entityAdapter.getInitialState());\n this.entity = entity;\n this.entityAdapter = entityAdapter;\n this.refresh$ = new ReplaySubject(1);\n this.all$ = this.select((state) => this.selectors.selectAll(state));\n this.all = toSignal(this.all$);\n this.total$ = this.select((state) => this.selectors.selectTotal(state));\n this.total = toSignal(this.total$);\n /** @deprecated use BaseEntityStore.all$ instead. */\n this.entities$ = this.all$;\n /** @deprecated use BaseEntityStore.all instead. */\n this.entities = this.all;\n /** @deprecated use BaseEntityStore.total$ instead. */\n this.size$ = this.total$;\n this.addOne = this.updater((state, entity) => this.entityAdapter.addOne(entity, state));\n this.addMany = this.updater((state, entities) => this.entityAdapter.addMany(entities, state));\n this.updateOne = this.updater((state, update) => this.entityAdapter.updateOne(update, state));\n this.updateMany = this.updater((state, updates) => this.entityAdapter.updateMany(updates, state));\n this.upsertOne = this.updater((state, entity) => this.entityAdapter.upsertOne(entity, state));\n this.upsertMany = this.updater((state, entities) => this.entityAdapter.upsertMany(entities, state));\n this.removeOne = this.updater((state, id) => this.entityAdapter.removeOne(id, state));\n this.removeMany = this.updater((state, ids) => this.entityAdapter.removeMany(ids, state));\n this.removeAll = this.updater((state) => this.entityAdapter.removeAll(state));\n this.setOne = this.updater((state, entity) => this.entityAdapter.setOne(entity, state));\n this.setAll = this.updater((state, entities) => this.entityAdapter.setAll(entities, state));\n this.getEntities = this.effect((refresh$) => refresh$.pipe(switchMap(() => this.adapter?.list() ?? of([])), tap((entities) => this.setAll(entities))));\n this.adapter = injectEntityStoreAdapter(entity);\n this.getEntities(this.refresh$);\n this.refresh();\n }\n refresh() {\n this.refresh$.next();\n }\n mapToOne(valueOrObs) {\n const wrap = (valueOrObs) => isObservable(valueOrObs) ? valueOrObs : of(valueOrObs);\n return wrap(valueOrObs).pipe(switchMap(id => this.select((state) => this.selectors.selectEntities(state)[id])));\n }\n}\nexport class EntityStore extends BaseEntityStore {\n constructor(entity, entityAdapter = createEntityAdapter({ selectId: (entity) => entity.id, sortComparer: false })) {\n super(entity, entityAdapter);\n this.entity = entity;\n this.entityAdapter = entityAdapter;\n this.proxyId = inject(ProxyIdService, {});\n this.composer = inject(TaskComposerService);\n this.taskSubject$ = new Subject();\n this.task$ = this.taskSubject$.pipe(map(task => {\n switch (task.type) {\n case 'create': return merge(task, { payload: { id: this.proxyId.proxyId(task.payload.id) } });\n default: return task;\n }\n }), shareReplay(1));\n this.composedTasks$ = this.task$.pipe(bufferTime(5 * 1000), filter(tasks => tasks.length > 0), map((tasks) => this.composer.composeTasks(tasks)));\n this.task$.subscribe((task) => this.runTask(task));\n this.composedTasks$.subscribe(tasks => this.runComposedTasks(tasks));\n }\n dispatch(action) {\n this.taskSubject$.next(action);\n }\n async runTask(task) {\n switch (task.type) {\n case 'create': return this.addOne(task.payload);\n case 'update': return this.updateOne({ id: task.payload.id, changes: task.payload });\n case 'delete': return this.removeOne(task.payload.id);\n }\n }\n async runComposedTasks(tasks) {\n return Promise.all(tasks.map((task) => {\n switch (task.type) {\n case 'create': return this.adapter.create(task.payload)\n .then((entity) => {\n this.proxyId.update(task.payload.id, entity.id);\n const _entity = this.state().entities[task.payload.id];\n this.removeOne(task.payload.id);\n this.addOne({ ..._entity, id: entity.id });\n });\n case 'update': return this.adapter.update({\n ...task.payload,\n id: this.proxyId.resolve(task.payload.id),\n });\n case 'delete': return this.adapter.delete({\n ...task.payload,\n id: this.proxyId.resolve(task.payload.id),\n });\n }\n }))\n .then(() => this.onSyncSucceeded())\n .catch(() => this.onSyncFailed());\n }\n onSyncFailed() { }\n onSyncSucceeded() { }\n create(payload) {\n return this.adapter.create(payload);\n }\n update(payload) {\n return this.adapter.update(payload);\n }\n delete(payload) {\n return this.adapter.delete(payload);\n }\n save(payload) {\n return this.adapter.save(payload);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb21tb24vc3JjL2xpYi9zdG9yZXMvZW50aXRpZXMvZW50aXR5LXN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RCxPQUFPLEVBQThCLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQy9FLE9BQU8sRUFBYyxhQUFhLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUcsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNsQyxPQUFPLEVBQWdCLG1CQUFtQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBc0Isd0JBQXdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV0RixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxHQUFNLEVBQUU7SUFDL0MsT0FBTyxvQkFBb0IsQ0FBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzVGLENBQUMsQ0FBQztBQUVGLE1B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dCI6WyJpbXBvcnQgeyB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHlwZSB9IGZyb20gJ0BueC1kZGQvY29tbW9uL2RvbWFpbic7XG5pbXBvcnQgeyBDb21wb25lbnRTdG9yZSB9IGZyb20gJ0BuZ3J4L2NvbXBvbmVudC1zdG9yZSc7XG5pbXBvcnQgeyBFbnRpdHlTdGF0ZSwgRW50aXR5QWRhcHRlciwgY3JlYXRlRW50aXR5QWRhcHRlciB9IGZyb20gJ0BuZ3J4L2VudGl0eSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0LCBTdWJqZWN0LCBpc09ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBidWZmZXJUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBtYXAsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IG1lcmdlIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEVudGl0eSwgVGFzaywgVGFza0NvbXBvc2VyU2VydmljZSB9IGZyb20gJy4vdGFzay1jb21wb3Nlcic7XG5pbXBvcnQgeyBQcm94eUlkU2VydmljZSB9IGZyb20gJy4vcHJveHktaWQuc2VydmljZSc7XG5pbXBvcnQgeyBFbnRpdHlTdG9yZUFkYXB0ZXIsIGluamVjdEVudGl0eVN0b3JlQWRhcHRlciB9IGZyb20gJy4vZW50aXR5LXN0b3JlLWFkYXB0ZXInO1xuXG5leHBvcnQgY29uc3QgZGlzdGluY3RVbnRpbENoYW5nZWRBcnJheSA9IDxUPigpID0+IHtcbiAgcmV0dXJuIGRpc3RpbmN0VW50aWxDaGFuZ2VkPFQ+KChwcmUsIGN1cikgPT4gSlNPTi5zdHJpbmdpZnkocHJlKSA9PT0gSlNPTi5zdHJpbmdpZnkoY3VyKSk7XG59O1xuXG5leHBvcnQgY2xhc3MgQmFzZUVudGl0eVN0b3JlPEUgZXh0ZW5kcyBFbnRpdHk+IGV4dGVuZHMgQ29tcG9uZW50U3RvcmU8RW50aXR5U3RhdGU8RT4+IHtcbiAgcHJvdGVjdGVkIGFkYXB0ZXI6IEVudGl0eVN0b3JlQWRhcHRlcjxFPjtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcmVmcmVzaCQgPSBuZXcgUmVwbGF5U3ViamVjdDx2b2lkPigxKTtcbiAgcHJvdGVjdGVkIGdldCBzZWxlY3RvcnMoKSB7IHJldHVybiB0aGlzLmVudGl0eUFkYXB0ZXIuZ2V0U2VsZWN0b3JzKCk7IH1cbiAgcmVhZG9ubHkgYWxsJCA9IHRoaXMuc2VsZWN0KChzdGF0ZSkgPT4gdGhpcy5zZWxlY3RvcnMuc2VsZWN0QWxsKHN0YXRlKSk7XG4gIHJlYWRvbmx5IGFsbCA9IHRvU2lnbmFsKHRoaXMuYWxsJCk7XG4gIHJlYWRvbmx5IHRvdGFsJCA9IHRoaXMuc2VsZWN0KChzdGF0ZSkgPT4gdGhpcy5zZWxlY3RvcnMuc2VsZWN0VG90YWwoc3RhdGUpKTtcbiAgcmVhZG9ubHkgdG90YWwgPSB0b1NpZ25hbCh0aGlzLnRvdGFsJCk7XG5cbiAgLyoqIEBkZXByZWNhdGVkIHVzZSBCYXNlRW50aXR5U3RvcmUuYWxsJCBpbnN0ZWFkLiAqL1xuICByZWFkb25seSBlbnRpdGllcyQgPSB0aGlzLmFsbCRcbiAgLyoqIEBkZXByZWNhdGVkIHVzZSBCYXNlRW50aXR5U3RvcmUuYWxsIGluc3RlYWQuICovXG4gIHJlYWRvbmx5IGVudGl0aWVzID0gdGhpcy5hbGw7XG4gIC8qKiBAZGVwcmVjYXRlZCB1c2UgQmFzZUVudGl0eVN0b3JlLnRvdGFsJCBpbnN0ZWFkLiAqL1xuICByZWFkb25seSBzaXplJCA9IHRoaXMudG90YWwkO1xuXG4gIHJlYWRvbmx5IGFkZE9uZSA9IHRoaXMudXBkYXRlcigoc3RhdGUsIGVudGl0eTogRSkgPT4gdGhpcy5lbnRpdHlBZGFwdGVyLmFkZE9uZShlbnRpdHksIHN0YXRlKSk7XG4gIHJlYWRvbmx5IGFkZE1hbnkgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBlbnRpdGllczogRVtdKSA9PiB0aGlzLmVudGl0eUFkYXB0ZXIuYWRkTWFueShlbnRpdGllcywgc3RhdGUpKTtcbiAgcmVhZG9ubHkgdXBkYXRlT25lID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgdXBkYXRlOiB7aWQ6IHN0cmluZywgY2hhbmdlczogUGFydGlhbDxFPn0pID0+IHRoaXMuZW50aXR5QWRhcHRlci51cGRhdGVPbmUodXBkYXRlLCBzdGF0ZSkpO1xuICByZWFkb25seSB1cGRhdGVNYW55ID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgdXBkYXRlczoge2lkOiBzdHJpbmcsIGNoYW5nZXM6IFBhcnRpYWw8RT59W10pID0+IHRoaXMuZW50aXR5QWRhcHRlci51cGRhdGVNYW55KHVwZGF0ZXMsIHN0YXRlKSk7XG4gIHJlYWRvbmx5IHVwc2VydE9uZSA9IHRoaXMudXBkYXRlcigoc3RhdGUsIGVudGl0eTogRSkgPT4gdGhpcy5lbnRpdHlBZGFwdGVyLnVwc2VydE9uZShlbnRpdHksIHN0YXRlKSk7XG4gIHJlYWRvbmx5IHVwc2VydE1hbnkgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBlbnRpdGllczogRVtdKSA9PiB0aGlzLmVudGl0eUFkYXB0ZXIudXBzZXJ0TWFueShlbnRpdGllcywgc3RhdGUpKTtcbiAgcmVhZG9ubHkgcmVtb3ZlT25lID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgaWQ6IHN0cmluZykgPT4gdGhpcy5lbnRpdHlBZGFwdGVyLnJlbW92ZU9uZShpZCwgc3RhdGUpKTtcbiAgcmVhZG9ubHkgcmVtb3ZlTWFueSA9IHRoaXMudXBkYXRlcigoc3RhdGUsIGlkczogc3RyaW5nW10pID0+IHRoaXMuZW50aXR5QWRhcHRlci5yZW1vdmVNYW55KGlkcywgc3RhdGUpKTtcbiAgcmVhZG9ubHkgcmVtb3ZlQWxsID0gdGhpcy51cGRhdGVyKChzdGF0ZSkgPT4gdGhpcy5lbnRpdHlBZGFwdGVyLnJlbW92ZUFsbChzdGF0ZSkpO1xuICByZWFkb25seSBzZXRPbmUgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBlbnRpdHk6IEUpID0+IHRoaXMuZW50aXR5QWRhcHRlci5zZXRPbmUoZW50aXR5LCBzdGF0ZSkpO1xuICByZWFkb25seSBzZXRBbGwgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBlbnRpdGllczogRVtdKSA9PiB0aGlzLmVudGl0eUFkYXB0ZXIuc2V0QWxsKGVudGl0aWVzLCBzdGF0ZSkpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBlbnRpdHk6IFR5cGU8RT4sXG4gICAgcHJvdGVjdGVkIGVudGl0eUFkYXB0ZXI6IEVudGl0eUFkYXB0ZXI8RT4gPSBjcmVhdGVFbnRpdHlBZGFwdGVyPEU+KHtzZWxlY3RJZDogKGVudGl0eSkgPT4gZW50aXR5LmlkLCBzb3J0Q29tcGFyZXI6IGZhbHNlfSksXG4gICkge1xuICAgIHN1cGVyKGVudGl0eUFkYXB0ZXIuZ2V0SW5pdGlhbFN0YXRlKCkpO1xuICAgIHRoaXMuYWRhcHRlciA9IGluamVjdEVudGl0eVN0b3JlQWRhcHRlcihlbnRpdHkpO1xuICAgIHRoaXMuZ2V0RW50aXRpZXModGhpcy5yZWZyZXNoJCk7XG4gICAgdGhpcy5yZWZyZXNoKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0RW50aXRpZXMgPSB0aGlzLmVmZmVjdCgocmVmcmVzaCQ6IE9ic2VydmFibGU8dm9pZD4pID0+IHJlZnJlc2gkLnBpcGUoXG4gICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuYWRhcHRlcj8ubGlzdCgpID8/IG9mKFtdKSksXG4gICAgdGFwKChlbnRpdGllczogRVtdKSA9PiB0aGlzLnNldEFsbChlbnRpdGllcykpLFxuICApKTtcblxuICByZWZyZXNoKCkge1xuICAgIHRoaXMucmVmcmVzaCQubmV4dCgpO1xuICB9XG5cbiAgbWFwVG9PbmUodmFsdWVPck9iczogc3RyaW5nIHwgT2JzZXJ2YWJsZTxzdHJpbmc+KTogT2JzZXJ2YWJsZTxFPiB7XG4gICAgY29uc3Qgd3JhcCA9ICh2YWx1ZU9yT2JzOiBzdHJpbmcgfCBPYnNlcnZhYmxlPHN0cmluZz4pID0+IGlzT2JzZXJ2YWJsZSh2YWx1ZU9yT2JzKSA/IHZhbHVlT3JPYnMgOiBvZih2YWx1ZU9yT2JzKTtcbiAgICByZXR1cm4gd3JhcCh2YWx1ZU9yT2JzKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKGlkID0+IHRoaXMuc2VsZWN0KChzdGF0ZSkgPT4gdGhpcy5zZWxlY3RvcnMuc2VsZWN0RW50aXRpZXMoc3RhdGUpW2lkXSkpLFxuICAgICk7XG4gIH1cblxufVxuXG5leHBvcnQgY2xhc3MgRW50aXR5U3RvcmU8RSBleHRlbmRzIEVudGl0eT4gZXh0ZW5kcyBCYXNlRW50aXR5U3RvcmU8RT4ge1xuICBwcm90ZWN0ZWQgcHJveHlJZCA9IGluamVjdChQcm94eUlkU2VydmljZSwge30pO1xuICBwcm90ZWN0ZWQgY29tcG9zZXIgPSBpbmplY3QoVGFza0NvbXBvc2VyU2VydmljZSk7XG4gIHByb3RlY3RlZCB0YXNrU3ViamVjdCQgPSBuZXcgU3ViamVjdDxUYXNrPEU+PigpO1xuICBwcm90ZWN0ZWQgdGFzayQ6IE9ic2VydmFibGU8VGFzazxFPj4gPSB0aGlzLnRhc2tTdWJqZWN0JC5waXBlKFxuICAgIG1hcCh0YXNrID0+IHtcbiAgICAgIHN3aXRjaCh0YXNrLnR5cGUpIHtcbiAgICAgICAgY2FzZSAnY3JlYXRlJzogcmV0dXJuIG1lcmdlKHRhc2ssIHtwYXlsb2FkOiB7aWQ6IHRoaXMucHJveHlJZC5wcm94eUlkKHRhc2sucGF5bG9hZC5pZCl9fSk7XG4gICAgICAgIGRlZmF1bHQ6IHJldHVybiB0YXNrO1xuICAgICAgfVxuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KDEpLFxuICApO1xuICBwcm90ZWN0ZWQgY29tcG9zZWRUYXNrcyQgPSB0aGlzLnRhc2skLnBpcGUoXG4gICAgYnVmZmVyVGltZSg1ICogMTAwMCksXG4gICAgZmlsdGVyKHRhc2tzID0+IHRhc2tzLmxlbmd0aCA+IDApLFxuICAgIG1hcCgodGFza3MpID0+IHRoaXMuY29tcG9zZXIuY29tcG9zZVRhc2tzKHRhc2tzKSksXG4gICk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGVudGl0eTogVHlwZTxFPixcbiAgICBwcm90ZWN0ZWQgZW50aXR5QWRhcHRlcjogRW50aXR5QWRhcHRlcjxFPiA9IGNyZWF0ZUVudGl0eUFkYXB0ZXI8RT4oe3NlbGVjdElkOiAoZW50aXR5KSA9PiBlbnRpdHkuaWQsIHNvcnRDb21wYXJlcjogZmFsc2V9KSxcbiAgKSB7XG4gICAgc3VwZXIoZW50aXR5LCBlbnRpdHlBZGFwdGVyKTtcbiAgICB0aGlzLnRhc2skLnN1YnNjcmliZSgodGFzazogVGFzazxFPikgPT4gdGhpcy5ydW5UYXNrKHRhc2spKTtcbiAgICB0aGlzLmNvbXBvc2VkVGFza3MkLnN1YnNjcmliZSh0YXNrcyA9PiB0aGlzLnJ1bkNvbXBvc2VkVGFza3ModGFza3MpKTtcbiAgfVxuXG4gIGRpc3BhdGNoKGFjdGlvbjogVGFzazxFPikge1xuICAgIHRoaXMudGFza1N1YmplY3QkLm5leHQoYWN0aW9uKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBydW5UYXNrKHRhc2s6IFRhc2s8RT4pOiBQcm9taXNlPGFueT4ge1xuICAgIHN3aXRjaCh0YXNrLnR5cGUpIHtcbiAgICAgIGNhc2UgJ2NyZWF0ZSc6IHJldHVybiB0aGlzLmFkZE9uZSh0YXNrLnBheWxvYWQpO1xuICAgICAgY2FzZSAndXBkYXRlJzogcmV0dXJuIHRoaXMudXBkYXRlT25lKHtpZDogdGFzay5wYXlsb2FkLmlkLCBjaGFuZ2VzOiB0YXNrLnBheWxvYWR9KTtcbiAgICAgIGNhc2UgJ2RlbGV0ZSc6IHJldHVybiB0aGlzLnJlbW92ZU9uZSh0YXNrLnBheWxvYWQuaWQpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBydW5Db21wb3NlZFRhc2tzKHRhc2tzOiBUYXNrPEU+W10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gUHJvbWlzZS5hbGwodGFza3MubWFwKCh0YXNrKSA9PiB7XG4gICAgICBzd2l0Y2godGFzay50eXBlKSB7XG4gICAgICAgIGNhc2UgJ2NyZWF0ZSc6IHJldHVybiB0aGlzLmFkYXB0ZXIuY3JlYXRlKHRhc2sucGF5bG9hZClcbiAgICAgICAgICAudGhlbigoZW50aXR5KSA9PiB7XG4gICAgICAgICAgICB0aGlzLnByb3h5SWQudXBkYXRlKHRhc2sucGF5bG9hZC5pZCwgZW50aXR5LmlkKTtcbiAgICAgICAgICAgIGNvbnN0IF9lbnRpdHkgPSB0aGlzLnN0YXRlKCkuZW50aXRpZXNbdGFzay5wYXlsb2FkLmlkXTtcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlT25lKHRhc2sucGF5bG9hZC5pZCk7XG4gICAgICAgICAgICB0aGlzLmFkZE9uZSh7Li4uX2VudGl0eSwgaWQ6IGVudGl0eS5pZH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICBjYXNlICd1cGRhdGUnOiByZXR1cm4gdGhpcy5hZGFwdGVyLnVwZGF0ZSh7XG4gICAgICAgICAgLi4udGFzay5wYXlsb2FkLFxuICAgICAgICAgIGlkOiB0aGlzLnByb3h5SWQucmVzb2x2ZSh0YXNrLnBheWxvYWQuaWQpLFxuICAgICAgICB9KTtcbiAgICAgICAgY2FzZSAnZGVsZXRlJzogcmV0dXJuIHRoaXMuYWRhcHRlci5kZWxldGUoe1xuICAgICAgICAgIC4uLnRhc2sucGF5bG9hZCxcbiAgICAgICAgICBpZDogdGhpcy5wcm94eUlkLnJlc29sdmUodGFzay5wYXlsb2FkLmlkKSxcbiAgICAgICAgfSBhcyBhbnkpO1xuICAgICAgfVxuICAgIH0pKVxuICAgIC50aGVuKCgpID0+IHRoaXMub25TeW5jU3VjY2VlZGVkKCkpXG4gICAgLmNhdGNoKCgpID0+IHRoaXMub25TeW5jRmFpbGVkKCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uU3luY0ZhaWxlZCgpIHsgfVxuICBwcm90ZWN0ZWQgb25TeW5jU3VjY2VlZGVkKCkgeyB9XG5cbiAgY3JlYXRlKHBheWxvYWQ6IEUpOiBQcm9taXNlPEU+IHtcbiAgICByZXR1cm4gdGhpcy5hZGFwdGVyLmNyZWF0ZShwYXlsb2FkKTtcbiAgfVxuXG4gIHVwZGF0ZShwYXlsb2FkOiBQaWNrPEUsICdpZCc+ICYgUGFydGlhbDxFPik6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmFkYXB0ZXIudXBkYXRlKHBheWxvYWQpO1xuICB9XG5cbiAgZGVsZXRlKHBheWxvYWQ6IFBpY2s8RSwgJ2lkJz4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5hZGFwdGVyLmRlbGV0ZShwYXlsb2FkKTtcbiAgfVxuXG4gIHNhdmUocGF5bG9hZDogRSk6IFByb21pc2U8RT4ge1xuICAgIHJldHVybiB0aGlzLmFkYXB0ZXIuc2F2ZShwYXlsb2FkKTtcbiAgfVxufVxuIl19","import { Injectable, inject } from '@angular/core';\nimport { EntityStore } from './entity-store';\nimport * as i0 from \"@angular/core\";\nexport { distinctUntilChangedArray } from './entity-store';\nexport class EntityStoreService {\n constructor() {\n this.storeMap = new Map();\n }\n get(Entity) {\n if (!this.storeMap.has(Entity)) {\n this.storeMap.set(Entity, new EntityStore(Entity));\n }\n return this.storeMap.get(Entity);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: EntityStoreService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: EntityStoreService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: EntityStoreService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\nexport function injectEntityStore(Entity) {\n return inject(EntityStoreService).get(Entity);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXN0b3JlLW1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3N0b3Jlcy9lbnRpdGllcy9lbnRpdHktc3RvcmUtbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBQzdDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzNELE1BQU0sT0FBTyxrQkFBa0I7SUFEL0I7UUFFWSxhQUFRLEdBQUcsSUFBSSxHQUFHLEVBQXFDLENBQUM7S0FRbkU7SUFOQyxHQUFHLENBQW1CLE1BQWU7UUFDbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDckQsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFtQixDQUFDO0lBQ3JELENBQUM7OEdBUlUsa0JBQWtCO2tIQUFsQixrQkFBa0IsY0FETixNQUFNOzsyRkFDbEIsa0JBQWtCO2tCQUQ5QixVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQzs7QUFZaEMsTUFBTSxVQUFVLGlCQUFpQixDQUFtQixNQUFlO0lBQ2pFLE9BQU8sTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFR5cGUgfSBmcm9tICdAbngtZGRkL2NvbW1vbi9kb21haW4nO1xuaW1wb3J0IHsgRW50aXR5IH0gZnJvbSAnLi90YXNrLWNvbXBvc2VyJztcbmltcG9ydCB7IEVudGl0eVN0b3JlIH0gZnJvbSAnLi9lbnRpdHktc3RvcmUnO1xuZXhwb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWRBcnJheSB9IGZyb20gJy4vZW50aXR5LXN0b3JlJztcblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgRW50aXR5U3RvcmVTZXJ2aWNlIHtcbiAgcHJvdGVjdGVkIHN0b3JlTWFwID0gbmV3IE1hcDxUeXBlPEVudGl0eT4sIEVudGl0eVN0b3JlPEVudGl0eT4+KCk7XG5cbiAgZ2V0PEUgZXh0ZW5kcyBFbnRpdHk+KEVudGl0eTogVHlwZTxFPik6IEVudGl0eVN0b3JlPEU+IHtcbiAgICBpZiAoIXRoaXMuc3RvcmVNYXAuaGFzKEVudGl0eSkpIHtcbiAgICAgIHRoaXMuc3RvcmVNYXAuc2V0KEVudGl0eSwgbmV3IEVudGl0eVN0b3JlKEVudGl0eSkpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zdG9yZU1hcC5nZXQoRW50aXR5KSBhcyBFbnRpdHlTdG9yZTxFPjtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0RW50aXR5U3RvcmU8RSBleHRlbmRzIEVudGl0eT4oRW50aXR5OiBUeXBlPEU+KTogRW50aXR5U3RvcmU8RT4ge1xuICByZXR1cm4gaW5qZWN0KEVudGl0eVN0b3JlU2VydmljZSkuZ2V0KEVudGl0eSk7XG59XG4iXX0=","import { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { computed, inject } from '@angular/core';\nimport { Resolver } from '@nx-ddd/common/domain';\nimport { injectResolver$ } from '@ng-atomic/common/utils';\nimport { combineLatest, isObservable, of, filter, map, shareReplay, switchMap } from 'rxjs';\nimport { injectEntityStore } from './entity-store-manager';\nimport { derivedAsync } from 'ngxtension/derived-async';\nexport function injectOne$(Entity, params, resolverType = Resolver) {\n if (resolverType) {\n return combineLatest({\n resolver: injectResolver$(resolverType, params),\n Entity: injectEntityStore(Entity).mapToOne(params.id).pipe(filter((Entity) => !!Entity)),\n }).pipe(map(({ resolver, Entity }) => resolver.resolve(Entity)), shareReplay(1), takeUntilDestroyed());\n }\n return injectEntityStore(Entity).mapToOne(params.id).pipe(shareReplay(1), takeUntilDestroyed());\n}\nfunction signalMapToObsMap(map) {\n return Object.entries(map).reduce((acc, [key, value]) => {\n acc[key] = toObservable(value);\n return acc;\n }, {});\n}\nexport function injectOne(Entity, params, resolverType = Resolver) {\n return toSignal(injectOne$(Entity, signalMapToObsMap(params), resolverType));\n}\nexport function injectAll$(Entity, params = {}, resolverType = Resolver) {\n if (resolverType) {\n return combineLatest({\n resolver: injectResolver$(resolverType, params),\n entities: injectEntityStore(Entity).all$,\n }).pipe(map(({ resolver, entities }) => resolver.resolveMany(entities)), shareReplay(1), takeUntilDestroyed());\n }\n return injectEntityStore(Entity).entities$.pipe(shareReplay(1), takeUntilDestroyed());\n}\nexport const callSignalMap = (map) => {\n return computed(() => Object.entries(map).reduce((acc, [key, value]) => {\n return { ...acc, [key]: value() };\n }, {}));\n};\n// export function injectAll<T extends Entity>(\n// Entity: Type<T>,\n// params: Record<string, Signal<any>> = {},\n// resolverType?: new (params: Record<string, any>) => Resolver<T>\n// ) {\n// const store = injectEntityStore(Entity);\n// if (resolverType) {\n// return computed(() => {\n// const resolver = getResolver(resolverType, callSignalMap(params)());\n// const items = resolver.resolveMany(store.all());\n// return items;\n// });\n// }\n// return computed(() => store.all());\n// }\nexport function injectAll(Entity, params = {}, resolverType = Resolver) {\n const $params = signalMapToObsMap(params);\n const all$ = injectAll$(Entity, $params, resolverType);\n return derivedAsync(() => all$, { initialValue: [] });\n}\nexport function mapToOne$(storeType, keyOrKey$) {\n const store = inject(storeType, {});\n const key$ = isObservable(keyOrKey$) ? keyOrKey$ : of(keyOrKey$);\n return key$.pipe(switchMap(key => store.mapToOne(key)));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3N0b3Jlcy9lbnRpdGllcy9kaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hGLE9BQU8sRUFBVSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxRQUFRLEVBQXNCLE1BQU0sdUJBQXVCLENBQUM7QUFDckUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBYyxhQUFhLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHeEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBS3hELE1BQU0sVUFBVSxVQUFVLENBQ3hCLE1BQWUsRUFDZixNQUFpQyxFQUNqQyxlQUFzQyxRQUFRO0lBRTlDLElBQUksWUFBWSxFQUFFLENBQUM7UUFDakIsT0FBTyxhQUFhLENBQUM7WUFDbkIsUUFBUSxFQUFFLGVBQWUsQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDO1lBQy9DLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDeEQsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQzdCO1NBQ0YsQ0FBQyxDQUFDLElBQUksQ0FDTCxHQUFHLENBQUMsQ0FBQyxFQUFFLFFB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R0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQztJQUN2RCxPQUFPLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUN4RCxDQUFDO0FBSUQsTUFBTSxVQUFVLFNBQVMsQ0FDdkIsU0FBbUMsRUFDbkMsU0FBb0M7SUFFcEMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFpQixTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDcEQsTUFBTSxJQUFJLEdBQUcsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNqRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCwgdG9PYnNlcnZhYmxlLCB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IFNpZ25hbCwgY29tcHV0ZWQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVzb2x2ZXIsIEJhc2VSZXNvbHZlciwgVHlwZSB9IGZyb20gJ0BueC1kZGQvY29tbW9uL2RvbWFpbic7XG5pbXBvcnQgeyBpbmplY3RSZXNvbHZlciQgfSBmcm9tICdAbmctYXRvbWljL2NvbW1vbi91dGlscyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBjb21iaW5lTGF0ZXN0LCBpc09ic2VydmFibGUsIG9mLCBmaWx0ZXIsIG1hcCwgc2hhcmVSZXBsYXksIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRW50aXR5IH0gZnJvbSAnLi90YXNrLWNvbXBvc2VyJztcbmltcG9ydCB7IEVudGl0eVN0b3JlIH0gZnJvbSAnLi9lbnRpdHktc3RvcmUnO1xuaW1wb3J0IHsgaW5qZWN0RW50aXR5U3RvcmUgfSBmcm9tICcuL2VudGl0eS1zdG9yZS1tYW5hZ2VyJztcbmltcG9ydCB7IGRlcml2ZWRBc3luYyB9IGZyb20gJ25neHRlbnNpb24vZGVyaXZlZC1hc3luYyc7XG5cbnR5cGUgT25lUHJvcHM8Vj4gPSB7aWQ6IFYsIFtrZXk6IHN0cmluZ106IFZ9O1xudHlwZSBBbGxQcm9wczxWPiA9IHtba2V5OiBzdHJpbmddOiBWfTtcblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdE9uZSQ8VCBleHRlbmRzIEVudGl0eT4oXG4gIEVudGl0eTogVHlwZTxUPixcbiAgcGFyYW1zOiBPbmVQcm9wczxPYnNlcnZhYmxlPGFueT4+LFxuICByZXNvbHZlclR5cGU6IFR5cGU8QmFzZVJlc29sdmVyPFQ+PiA9IFJlc29sdmVyXG4pOiBPYnNlcnZhYmxlPFQ+IHtcbiAgaWYgKHJlc29sdmVyVHlwZSkge1xuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KHtcbiAgICAgIHJlc29sdmVyOiBpbmplY3RSZXNvbHZlciQocmVzb2x2ZXJUeXBlLCBwYXJhbXMpLFxuICAgICAgRW50aXR5OiBpbmplY3RFbnRpdHlTdG9yZShFbnRpdHkpLm1hcFRvT25lKHBhcmFtcy5pZCkucGlwZShcbiAgICAgICAgZmlsdGVyKChFbnRpdHkpID0+ICEhRW50aXR5KVxuICAgICAgKSxcbiAgICB9KS5waXBlKFxuICAgICAgbWFwKCh7IHJlc29sdmVyLCBFbnRpdHkgfSkgPT4gcmVzb2x2ZXIucmVzb2x2ZShFbnRpdHkpKSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpLFxuICAgICAgdGFrZVVudGlsRGVzdHJveWVkKCksXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBpbmplY3RFbnRpdHlTdG9yZShFbnRpdHkpLm1hcFRvT25lKHBhcmFtcy5pZCkucGlwZShcbiAgICBzaGFyZVJlcGxheSgxKSxcbiAgICB0YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgKTtcbn1cblxuZnVuY3Rpb24gc2lnbmFsTWFwVG9PYnNNYXAobWFwOiBBbGxQcm9wczxTaWduYWw8YW55Pj4pOiBBbGxQcm9wczxPYnNlcnZhYmxlPGFueT4+IHtcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKG1hcCkucmVkdWNlKChhY2MsIFtrZXksIHZhbHVlXSkgPT4ge1xuICAgIGFjY1trZXldID0gdG9PYnNlcnZhYmxlKHZhbHVlIGFzIGFueSk7XG4gICAgcmV0dXJuIGFjYztcbiAgfSwge30gYXMgQWxsUHJvcHM8T2JzZXJ2YWJsZTxhbnk+Pik7XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdE9uZTxUIGV4dGVuZHMgRW50aXR5PihcbiAgRW50aXR5OiBUeXBlPFQ+LFxuICBwYXJhbXM6IE9uZVByb3BzPFNpZ25hbDxhbnk+PixcbiAgcmVzb2x2ZXJUeXBlOiBUeXBlPEJhc2VSZXNvbHZlcjxUPj4gPSBSZXNvbHZlclxuKSB7XG4gIHJldHVybiB0b1NpZ25hbChpbmplY3RPbmUkKEVudGl0eSwgc2lnbmFsTWFwVG9PYnNNYXAocGFyYW1zKSBhcyBhbnksIHJlc29sdmVyVHlwZSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0QWxsJDxUIGV4dGVuZHMgRW50aXR5PihcbiAgRW50aXR5OiBUeXBlPFQ+LFxuICBwYXJhbXM6IFJlY29yZDxzdHJpbmcsIE9ic2VydmFibGU8YW55Pj4gPSB7fSxcbiAgcmVzb2x2ZXJUeXBlOiBUeXBlPEJhc2VSZXNvbHZlcjxUPj4gPSBSZXNvbHZlclxuKSB7XG4gIGlmIChyZXNvbHZlclR5cGUpIHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdCh7XG4gICAgICByZXNvbHZlcjogaW5qZWN0UmVzb2x2ZXIkKHJlc29sdmVyVHlwZSwgcGFyYW1zKSxcbiAgICAgIGVudGl0aWVzOiBpbmplY3RFbnRpdHlTdG9yZShFbnRpdHkpLmFsbCQsXG4gICAgfSkucGlwZShcbiAgICAgIG1hcCgoeyByZXNvbHZlciwgZW50aXRpZXMgfSkgPT4gcmVzb2x2ZXIucmVzb2x2ZU1hbnkoZW50aXRpZXMpKSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpLFxuICAgICAgdGFrZVVudGlsRGVzdHJveWVkKCksXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBpbmplY3RFbnRpdHlTdG9yZShFbnRpdHkpLmVudGl0aWVzJC5waXBlKFxuICAgIHNoYXJlUmVwbGF5KDEpLFxuICAgIHRha2VVbnRpbERlc3Ryb3llZCgpLFxuICApO1xufVxuXG5leHBvcnQgY29uc3QgY2FsbFNpZ25hbE1hcCA9IDxUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgU2lnbmFsPGFueT4+PihtYXA6IFQpOiBTaWduYWw8VD4gPT4gIHtcbiAgcmV0dXJuIGNvbXB1dGVkKCgpID0+IE9iamVjdC5lbnRyaWVzKG1hcCkucmVkdWNlKChhY2MsIFtrZXksIHZhbHVlXSkgPT4ge1xuICAgIHJldHVybiB7Li4uYWNjLCBba2V5XTogdmFsdWUoKX07XG4gIH0sIHt9IGFzIFQpKTtcbn1cblxuLy8gZXhwb3J0IGZ1bmN0aW9uIGluamVjdEFsbDxUIGV4dGVuZHMgRW50aXR5Pihcbi8vICAgRW50aXR5OiBUeXBlPFQ+LFxuLy8gICBwYXJhbXM6IFJlY29yZDxzdHJpbmcsIFNpZ25hbDxhbnk+PiA9IHt9LFxuLy8gICByZXNvbHZlclR5cGU/OiBuZXcgKHBhcmFtczogUmVjb3JkPHN0cmluZywgYW55PikgPT4gUmVzb2x2ZXI8VD5cbi8vICkge1xuLy8gICBjb25zdCBzdG9yZSA9IGluamVjdEVudGl0eVN0b3JlKEVudGl0eSk7XG4vLyAgIGlmIChyZXNvbHZlclR5cGUpIHtcbi8vICAgICByZXR1cm4gY29tcHV0ZWQoKCkgPT4ge1xuLy8gICAgICAgY29uc3QgcmVzb2x2ZXIgPSBnZXRSZXNvbHZlcihyZXNvbHZlclR5cGUsIGNhbGxTaWduYWxNYXAocGFyYW1zKSgpKTtcbi8vICAgICAgIGNvbnN0IGl0ZW1zID0gcmVzb2x2ZXIucmVzb2x2ZU1hbnkoc3RvcmUuYWxsKCkpO1xuLy8gICAgICAgcmV0dXJuIGl0ZW1zO1xuLy8gICAgIH0pO1xuLy8gICB9XG4vLyAgIHJldHVybiBjb21wdXRlZCgoKSA9PiBzdG9yZS5hbGwoKSk7XG4vLyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RBbGw8VCBleHRlbmRzIEVudGl0eT4oXG4gIEVudGl0eTogVHlwZTxUPixcbiAgcGFyYW1zOiBBbGxQcm9wczxTaWduYWw8YW55Pj4gPSB7fSxcbiAgcmVzb2x2ZXJUeXBlOiBUeXBlPEJhc2VSZXNvbHZlcjxUPj4gPSBSZXNvbHZlclxuKTogU2lnbmFsPFRbXT4ge1xuICBjb25zdCAkcGFyYW1zID0gc2lnbmFsTWFwVG9PYnNNYXAocGFyYW1zKTtcbiAgY29uc3QgYWxsJCA9IGluamVjdEFsbCQoRW50aXR5LCAkcGFyYW1zLCByZXNvbHZlclR5cGUpO1xuICByZXR1cm4gZGVyaXZlZEFzeW5jKCgpID0+IGFsbCQsIHsgaW5pdGlhbFZhbHVlOiBbXSB9KTtcbn1cblxuZXhwb3J0IHR5cGUgVmFsdWVPck9ic2VydmFibGU8VD4gPSBUIHwgT2JzZXJ2YWJsZTxUPjtcblxuZXhwb3J0IGZ1bmN0aW9uIG1hcFRvT25lJDxUIGV4dGVuZHMge2lkOiBzdHJpbmd9PihcbiAgc3RvcmVUeXBlOiBuZXcgKCkgPT4gRW50aXR5U3RvcmU8VD4sXG4gIGtleU9yS2V5JDogVmFsdWVPck9ic2VydmFibGU8c3RyaW5nPixcbik6IE9ic2VydmFibGU8VD4ge1xuICBjb25zdCBzdG9yZSA9IGluamVjdDxFbnRpdHlTdG9yZTxUPj4oc3RvcmVUeXBlLCB7fSk7XG4gIGNvbnN0IGtleSQgPSBpc09ic2VydmFibGUoa2V5T3JLZXkkKSA/IGtleU9yS2V5JCA6IG9mKGtleU9yS2V5JCk7XG4gIHJldHVybiBrZXkkLnBpcGUoc3dpdGNoTWFwKGtleSA9PiBzdG9yZS5tYXBUb09uZShrZXkpKSk7XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctYXRvbWljLWNvbW1vbi1zdG9yZXMtZW50aXRpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3N0b3Jlcy9lbnRpdGllcy9uZy1hdG9taWMtY29tbW9uLXN0b3Jlcy1lbnRpdGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":["filter","map","shareReplay","switchMap"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ng-atomic/common",
|
|
3
|
-
"version": "19.12.
|
|
3
|
+
"version": "19.12.4",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"peerDependencies": {
|
|
6
|
-
"@nx-ddd/core": "19.12.
|
|
7
|
-
"@nx-ddd/common": "19.12.
|
|
6
|
+
"@nx-ddd/core": "19.12.4",
|
|
7
|
+
"@nx-ddd/common": "19.12.4"
|
|
8
8
|
},
|
|
9
9
|
"dependencies": {
|
|
10
10
|
"tslib": "^2.3.0"
|
|
@@ -87,6 +87,10 @@
|
|
|
87
87
|
"types": "./pipes/grouped-by/index.d.ts",
|
|
88
88
|
"default": "./fesm2022/ng-atomic-common-pipes-grouped-by.mjs"
|
|
89
89
|
},
|
|
90
|
+
"./pipes/index": {
|
|
91
|
+
"types": "./pipes/index/index.d.ts",
|
|
92
|
+
"default": "./fesm2022/ng-atomic-common-pipes-index.mjs"
|
|
93
|
+
},
|
|
90
94
|
"./pipes/index-length": {
|
|
91
95
|
"types": "./pipes/index-length/index.d.ts",
|
|
92
96
|
"default": "./fesm2022/ng-atomic-common-pipes-index-length.mjs"
|
|
@@ -95,10 +99,6 @@
|
|
|
95
99
|
"types": "./pipes/keys/index.d.ts",
|
|
96
100
|
"default": "./fesm2022/ng-atomic-common-pipes-keys.mjs"
|
|
97
101
|
},
|
|
98
|
-
"./pipes/index": {
|
|
99
|
-
"types": "./pipes/index/index.d.ts",
|
|
100
|
-
"default": "./fesm2022/ng-atomic-common-pipes-index.mjs"
|
|
101
|
-
},
|
|
102
102
|
"./pipes/map": {
|
|
103
103
|
"types": "./pipes/map/index.d.ts",
|
|
104
104
|
"default": "./fesm2022/ng-atomic-common-pipes-map.mjs"
|
|
@@ -81,7 +81,7 @@ declare class BaseEntityStore<E extends Entity> extends ComponentStore<EntitySta
|
|
|
81
81
|
protected entityAdapter: EntityAdapter<E>;
|
|
82
82
|
protected adapter: EntityStoreAdapter<E>;
|
|
83
83
|
protected readonly refresh$: ReplaySubject<void>;
|
|
84
|
-
protected
|
|
84
|
+
protected get selectors(): _ngrx_entity_src_models.EntitySelectors<E, EntityState<E>>;
|
|
85
85
|
readonly all$: Observable<E[]>;
|
|
86
86
|
readonly all: i0.Signal<E[]>;
|
|
87
87
|
readonly total$: Observable<number>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sources":["../../../../../../packages/@ng-atomic/common/src/lib/stores/entities/proxy-id.service.ts","../../../../../../packages/@ng-atomic/common/src/lib/stores/entities/task-composer.ts","../../../../../../packages/@ng-atomic/common/src/lib/stores/entities/entity-store-adapter.ts","../../../../../../packages/@ng-atomic/common/src/lib/stores/entities/entity-store.ts","../../../../../../packages/@ng-atomic/common/src/lib/stores/entities/di.ts","../../../../../../packages/@ng-atomic/common/src/lib/stores/entities/entity-store-manager.ts"],"sourcesContent":[null,null,null,null,null,null],"names":["_angular_core"],"mappings":";;;;;;;;;AAEA,cAAA,cAAA;AAEE,cAAA,GAAA;AAEA;AAIA;AAMA;AAIA;;;AAGD;;ACnBK,KAAA,MAAA;;;AAEN,UAAA,QAAA;;;AAGC;AAED,UAAA,YAAA,WAAA,MAAA,UAAA,QAAA;;;AAGC;AAED,UAAA,YAAA,WAAA,MAAA,UAAA,QAAA;;AAEE,aAAA,OAAA,MAAA,MAAA;AACD;AAED,UAAA,YAAA,SAAA,QAAA;;;AAGC;AAED,UAAA,UAAA,SAAA,QAAA;;;AAGC;AAEK,KAAA,IAAA,WAAA,MAAA,IAAA,YAAA,MAAA,YAAA,MAAA,YAAA,GAAA,UAAA;AAEN,iBAAA,OAAA,SAAA,GAAA,qCAAA,GAAA;AAOA,cAAA,mBAAA;;AAIE,2BAAA,MAAA,SAAA,IAAA,QAAA,IAAA;AAyBA,sBAAA,MAAA,SAAA,IAAA,QAAA,IAAA;;;AA0BD;;ACzFD,cAAA,kBAAA,WAAA,MAAA;AACE,aAAA,UAAA;;AAQA,oBAAA,OAAA,MAAA,IAAA,YAAA,OAAA;AAIA,oBAAA,IAAA,YAAA,OAAA;;AAOD;AAED,cAAA,oBAAA,EAAA,cAAA;;;;AAKA,iBAAA,yBAAA,WAAA,MAAA,UAAA,IAAA,gCAAA,QAAA,KAAA,kBAAA;;;;;;;;;;;AAYC;AAED,iBAAA,wBAAA,WAAA,MAAA,UAAA,IAAA,MAAA,kBAAA;;ACnCA,cAAA,yBAAA;AAIA,cAAA,eAAA,WAAA,MAAA,UAAA,cAAA,CAAA,WAAA;AA8BI,sBAAA,IAAA;AACA,6BAAA,aAAA;AA9BF,uBAAA,kBAAA;AAEA,iCAAA,aAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sources":["../../../../../../packages/@ng-atomic/common/src/lib/stores/entities/proxy-id.service.ts","../../../../../../packages/@ng-atomic/common/src/lib/stores/entities/task-composer.ts","../../../../../../packages/@ng-atomic/common/src/lib/stores/entities/entity-store-adapter.ts","../../../../../../packages/@ng-atomic/common/src/lib/stores/entities/entity-store.ts","../../../../../../packages/@ng-atomic/common/src/lib/stores/entities/di.ts","../../../../../../packages/@ng-atomic/common/src/lib/stores/entities/entity-store-manager.ts"],"sourcesContent":[null,null,null,null,null,null],"names":["_angular_core"],"mappings":"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"}
|