@ngutil/data 0.0.10 → 0.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/esm2022/index.mjs +6 -3
  2. package/esm2022/provider/array.mjs +9 -0
  3. package/esm2022/provider/index.mjs +5 -0
  4. package/esm2022/provider/local.mjs +26 -0
  5. package/esm2022/provider/observable.mjs +8 -0
  6. package/esm2022/provider/provider.mjs +10 -0
  7. package/esm2022/source/index.mjs +3 -0
  8. package/esm2022/source/properties/abstract.mjs +33 -0
  9. package/esm2022/source/properties/filter.mjs +16 -0
  10. package/esm2022/source/properties/grouper.mjs +16 -0
  11. package/esm2022/source/properties/index.mjs +5 -0
  12. package/esm2022/source/properties/slimer.mjs +16 -0
  13. package/esm2022/source/properties/sorter.mjs +16 -0
  14. package/esm2022/source/proxy.directive.mjs +152 -0
  15. package/esm2022/source/source.mjs +108 -0
  16. package/esm2022/store/collection-store.mjs +3 -0
  17. package/esm2022/store/index.mjs +3 -0
  18. package/esm2022/store/memory-store.mjs +79 -0
  19. package/fesm2022/ngutil-data.mjs +957 -166
  20. package/fesm2022/ngutil-data.mjs.map +1 -1
  21. package/index.d.ts +5 -2
  22. package/package.json +2 -2
  23. package/provider/array.d.ts +7 -0
  24. package/provider/index.d.ts +4 -0
  25. package/provider/local.d.ts +15 -0
  26. package/provider/observable.d.ts +7 -0
  27. package/provider/provider.d.ts +31 -0
  28. package/source/index.d.ts +2 -0
  29. package/source/properties/abstract.d.ts +17 -0
  30. package/source/properties/filter.d.ts +11 -0
  31. package/source/properties/grouper.d.ts +11 -0
  32. package/source/properties/index.d.ts +4 -0
  33. package/source/properties/slimer.d.ts +11 -0
  34. package/source/properties/sorter.d.ts +11 -0
  35. package/source/proxy.directive.d.ts +57 -0
  36. package/source/source.d.ts +35 -0
  37. package/store/collection-store.d.ts +49 -0
  38. package/store/index.d.ts +2 -0
  39. package/store/memory-store.d.ts +16 -0
package/esm2022/index.mjs CHANGED
@@ -1,3 +1,6 @@
1
- export { sortBy } from "./query/sorter";
2
- export { filterBy } from "./query/filter";
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kYXRhL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFZLE1BQU0sZ0JBQWdCLENBQUE7QUFDakQsT0FBTyxFQUFFLFFBQVEsRUFBWSxNQUFNLGdCQUFnQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgc29ydEJ5LCBTb3J0ZXJGbiB9IGZyb20gXCIuL3F1ZXJ5L3NvcnRlclwiXG5leHBvcnQgeyBmaWx0ZXJCeSwgRmlsdGVyRm4gfSBmcm9tIFwiLi9xdWVyeS9maWx0ZXJcIlxuIl19
1
+ export * from "./model";
2
+ export * from "./provider";
3
+ export * from "./query";
4
+ export * from "./source";
5
+ export * from "./store";
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kYXRhL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFNBQVMsQ0FBQTtBQUN2QixjQUFjLFlBQVksQ0FBQTtBQUMxQixjQUFjLFNBQVMsQ0FBQTtBQUN2QixjQUFjLFVBQVUsQ0FBQTtBQUN4QixjQUFjLFNBQVMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL21vZGVsXCJcbmV4cG9ydCAqIGZyb20gXCIuL3Byb3ZpZGVyXCJcbmV4cG9ydCAqIGZyb20gXCIuL3F1ZXJ5XCJcbmV4cG9ydCAqIGZyb20gXCIuL3NvdXJjZVwiXG5leHBvcnQgKiBmcm9tIFwiLi9zdG9yZVwiXG4iXX0=
@@ -0,0 +1,9 @@
1
+ import { of } from "rxjs";
2
+ import { LocalProvider } from "./local";
3
+ export class ArrayProvider extends LocalProvider {
4
+ constructor(meta, items) {
5
+ super(meta);
6
+ this.items$ = of(items);
7
+ }
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYXRhL3NyYy9wcm92aWRlci9hcnJheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW1CLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUcxQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBRXZDLE1BQU0sT0FBTyxhQUErQixTQUFRLGFBQWdCO0lBR2hFLFlBQVksSUFBdUIsRUFBRSxLQUFtQjtRQUNwRCxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDWCxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUMzQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIE9ic2VydmFibGUsIG9mIH0gZnJvbSBcInJ4anNcIlxuXG5pbXBvcnQgdHlwZSB7IE1vZGVsLCBNb2RlbE1ldGFJbnB1dCB9IGZyb20gXCIuLi9tb2RlbFwiXG5pbXBvcnQgeyBMb2NhbFByb3ZpZGVyIH0gZnJvbSBcIi4vbG9jYWxcIlxuXG5leHBvcnQgY2xhc3MgQXJyYXlQcm92aWRlcjxUIGV4dGVuZHMgTW9kZWw+IGV4dGVuZHMgTG9jYWxQcm92aWRlcjxUPiB7XG4gICAgb3ZlcnJpZGUgcmVhZG9ubHkgaXRlbXMkOiBPYnNlcnZhYmxlPHJlYWRvbmx5IFRbXT5cblxuICAgIGNvbnN0cnVjdG9yKG1ldGE6IE1vZGVsTWV0YUlucHV0PFQ+LCBpdGVtczogcmVhZG9ubHkgVFtdKSB7XG4gICAgICAgIHN1cGVyKG1ldGEpXG4gICAgICAgIHRoaXMuaXRlbXMkID0gb2YoaXRlbXMpXG4gICAgfVxufVxuIl19
@@ -0,0 +1,5 @@
1
+ export { DataProvider } from "./provider";
2
+ export { LocalProvider } from "./local";
3
+ export { ArrayProvider } from "./array";
4
+ export { ObservableProvider } from "./observable";
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYXRhL3NyYy9wcm92aWRlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ3pDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFDdkMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUN2QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxjQUFjLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBEYXRhUHJvdmlkZXIgfSBmcm9tIFwiLi9wcm92aWRlclwiXG5leHBvcnQgeyBMb2NhbFByb3ZpZGVyIH0gZnJvbSBcIi4vbG9jYWxcIlxuZXhwb3J0IHsgQXJyYXlQcm92aWRlciB9IGZyb20gXCIuL2FycmF5XCJcbmV4cG9ydCB7IE9ic2VydmFibGVQcm92aWRlciB9IGZyb20gXCIuL29ic2VydmFibGVcIlxuIl19
@@ -0,0 +1,26 @@
1
+ import { map } from "rxjs";
2
+ import { ModelMeta } from "../model";
3
+ import { queryExecutor } from "../query";
4
+ import { DataProvider } from "./provider";
5
+ export class LocalProvider extends DataProvider {
6
+ #executor;
7
+ constructor(meta) {
8
+ super();
9
+ this.isAsync = false;
10
+ this.meta = ModelMeta.coerce(meta);
11
+ }
12
+ executor(request) {
13
+ return (this.#executor = queryExecutor(request, this.#executor));
14
+ }
15
+ queryList(request) {
16
+ const exec = this.executor(request);
17
+ return this.items$.pipe(map(items => exec(items)));
18
+ }
19
+ queryItem(ref, request) {
20
+ return this.queryList(request).pipe(map(list => list.items.find(ref.toFilter())));
21
+ }
22
+ queryPosition(ref, request) {
23
+ return this.queryList(request).pipe(map(list => list.items.findIndex(ref.toFilter())));
24
+ }
25
+ }
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYXRhL3NyYy9wcm92aWRlci9sb2NhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFBO0FBRXRDLE9BQU8sRUFBUyxTQUFTLEVBQWdDLE1BQU0sVUFBVSxDQUFBO0FBQ3pFLE9BQU8sRUFBUyxhQUFhLEVBQThCLE1BQU0sVUFBVSxDQUFBO0FBQzNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFekMsTUFBTSxPQUFnQixhQUErQixTQUFRLFlBQWU7SUFLeEUsU0FBUyxDQUFtQjtJQUU1QixZQUFZLElBQXVCO1FBQy9CLEtBQUssRUFBRSxDQUFBO1FBUE8sWUFBTyxHQUFHLEtBQUssQ0FBQTtRQVE3QixJQUFJLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDdEMsQ0FBQztJQUVELFFBQVEsQ0FBQyxPQUFpQjtRQUN0QixPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxhQUFhLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFBO0lBQ3BFLENBQUM7SUFFUSxTQUFTLENBQUMsT0FBaUI7UUFDaEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUNuQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDdEQsQ0FBQztJQUVRLFNBQVMsQ0FBQyxHQUFpQixFQUFFLE9BQWlCO1FBQ25ELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3JGLENBQUM7SUFFUSxhQUFhLENBQUMsR0FBaUIsRUFBRSxPQUFpQjtRQUN2RCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUMxRixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtYXAsIE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiXG5cbmltcG9ydCB7IE1vZGVsLCBNb2RlbE1ldGEsIE1vZGVsTWV0YUlucHV0LCBNb2RlbFJlZk5vcm0gfSBmcm9tIFwiLi4vbW9kZWxcIlxuaW1wb3J0IHsgUXVlcnksIHF1ZXJ5RXhlY3V0b3IsIFF1ZXJ5RXhlY3V0b3IsIFF1ZXJ5UmVzdWx0IH0gZnJvbSBcIi4uL3F1ZXJ5XCJcbmltcG9ydCB7IERhdGFQcm92aWRlciB9IGZyb20gXCIuL3Byb3ZpZGVyXCJcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIExvY2FsUHJvdmlkZXI8VCBleHRlbmRzIE1vZGVsPiBleHRlbmRzIERhdGFQcm92aWRlcjxUPiB7XG4gICAgb3ZlcnJpZGUgcmVhZG9ubHkgaXNBc3luYyA9IGZhbHNlXG4gICAgb3ZlcnJpZGUgcmVhZG9ubHkgbWV0YTogTW9kZWxNZXRhPFQ+XG4gICAgYWJzdHJhY3QgcmVhZG9ubHkgaXRlbXMkOiBPYnNlcnZhYmxlPHJlYWRvbmx5IFRbXT5cblxuICAgICNleGVjdXRvcj86IFF1ZXJ5RXhlY3V0b3I8VD5cblxuICAgIGNvbnN0cnVjdG9yKG1ldGE6IE1vZGVsTWV0YUlucHV0PFQ+KSB7XG4gICAgICAgIHN1cGVyKClcbiAgICAgICAgdGhpcy5tZXRhID0gTW9kZWxNZXRhLmNvZXJjZShtZXRhKVxuICAgIH1cblxuICAgIGV4ZWN1dG9yKHJlcXVlc3Q6IFF1ZXJ5PFQ+KTogUXVlcnlFeGVjdXRvcjxUPiB7XG4gICAgICAgIHJldHVybiAodGhpcy4jZXhlY3V0b3IgPSBxdWVyeUV4ZWN1dG9yKHJlcXVlc3QsIHRoaXMuI2V4ZWN1dG9yKSlcbiAgICB9XG5cbiAgICBvdmVycmlkZSBxdWVyeUxpc3QocmVxdWVzdDogUXVlcnk8VD4pOiBPYnNlcnZhYmxlPFF1ZXJ5UmVzdWx0PFQ+PiB7XG4gICAgICAgIGNvbnN0IGV4ZWMgPSB0aGlzLmV4ZWN1dG9yKHJlcXVlc3QpXG4gICAgICAgIHJldHVybiB0aGlzLml0ZW1zJC5waXBlKG1hcChpdGVtcyA9PiBleGVjKGl0ZW1zKSkpXG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgcXVlcnlJdGVtKHJlZjogTW9kZWxSZWZOb3JtLCByZXF1ZXN0OiBRdWVyeTxUPik6IE9ic2VydmFibGU8VCB8IHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5xdWVyeUxpc3QocmVxdWVzdCkucGlwZShtYXAobGlzdCA9PiBsaXN0Lml0ZW1zLmZpbmQocmVmLnRvRmlsdGVyKCkpKSlcbiAgICB9XG5cbiAgICBvdmVycmlkZSBxdWVyeVBvc2l0aW9uKHJlZjogTW9kZWxSZWZOb3JtLCByZXF1ZXN0OiBRdWVyeTxUPik6IE9ic2VydmFibGU8bnVtYmVyIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnF1ZXJ5TGlzdChyZXF1ZXN0KS5waXBlKG1hcChsaXN0ID0+IGxpc3QuaXRlbXMuZmluZEluZGV4KHJlZi50b0ZpbHRlcigpKSkpXG4gICAgfVxufVxuIl19
@@ -0,0 +1,8 @@
1
+ import { LocalProvider } from "./local";
2
+ export class ObservableProvider extends LocalProvider {
3
+ constructor(meta, src) {
4
+ super(meta);
5
+ this.items$ = src;
6
+ }
7
+ }
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2YWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RhdGEvc3JjL3Byb3ZpZGVyL29ic2VydmFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUV2QyxNQUFNLE9BQU8sa0JBQW9DLFNBQVEsYUFBZ0I7SUFHckUsWUFBWSxJQUF1QixFQUFFLEdBQTZCO1FBQzlELEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNYLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFBO0lBQ3JCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCJcblxuaW1wb3J0IHR5cGUgeyBNb2RlbCwgTW9kZWxNZXRhSW5wdXQgfSBmcm9tIFwiLi4vbW9kZWxcIlxuaW1wb3J0IHsgTG9jYWxQcm92aWRlciB9IGZyb20gXCIuL2xvY2FsXCJcblxuZXhwb3J0IGNsYXNzIE9ic2VydmFibGVQcm92aWRlcjxUIGV4dGVuZHMgTW9kZWw+IGV4dGVuZHMgTG9jYWxQcm92aWRlcjxUPiB7XG4gICAgcmVhZG9ubHkgaXRlbXMkOiBPYnNlcnZhYmxlPHJlYWRvbmx5IFRbXT5cblxuICAgIGNvbnN0cnVjdG9yKG1ldGE6IE1vZGVsTWV0YUlucHV0PFQ+LCBzcmM6IE9ic2VydmFibGU8cmVhZG9ubHkgVFtdPikge1xuICAgICAgICBzdXBlcihtZXRhKVxuICAgICAgICB0aGlzLml0ZW1zJCA9IHNyY1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,10 @@
1
+ import { DataSource } from "../source";
2
+ export class DataProvider {
3
+ /**
4
+ * @returns New data source instance
5
+ */
6
+ toDataSource(store) {
7
+ return new DataSource(this, store);
8
+ }
9
+ }
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYXRhL3NyYy9wcm92aWRlci9wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBR3RDLE1BQU0sT0FBZ0IsWUFBWTtJQTBCOUI7O09BRUc7SUFDSCxZQUFZLENBQUMsS0FBMEI7UUFDbkMsT0FBTyxJQUFJLFVBQVUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUE7SUFDdEMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIlxuXG5pbXBvcnQgdHlwZSB7IE1vZGVsLCBNb2RlbE1ldGEsIE1vZGVsUmVmTm9ybSB9IGZyb20gXCIuLi9tb2RlbFwiXG5pbXBvcnQgdHlwZSB7IFF1ZXJ5LCBRdWVyeVJlc3VsdCB9IGZyb20gXCIuLi9xdWVyeVwiXG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSBcIi4uL3NvdXJjZVwiXG5pbXBvcnQgdHlwZSB7IENvbGxlY3Rpb25TdG9yZSB9IGZyb20gXCIuLi9zdG9yZVwiXG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEYXRhUHJvdmlkZXI8VCBleHRlbmRzIE1vZGVsPiB7XG4gICAgLyoqXG4gICAgICogYHRydWVgIHdoZW4gdGhlIHByb3ZpZGVyIGlzIG1ha2luZyBhc3luYyByZXF1ZXN0c1xuICAgICAqL1xuICAgIGFic3RyYWN0IHJlYWRvbmx5IGlzQXN5bmM6IGJvb2xlYW5cblxuICAgIC8qKlxuICAgICAqIE1ldGFkYXRhIG9mIG1vZGVsXG4gICAgICovXG4gICAgYWJzdHJhY3QgcmVhZG9ubHkgbWV0YTogTW9kZWxNZXRhPFQ+XG5cbiAgICAvKipcbiAgICAgKiBRdWVyeSBpdGVtcyBieSB0aGUgZ2l2ZW4gcmVxdWVzdFxuICAgICAqL1xuICAgIGFic3RyYWN0IHF1ZXJ5TGlzdChyZXF1ZXN0OiBRdWVyeTxUPik6IE9ic2VydmFibGU8UXVlcnlSZXN1bHQ8VD4+XG5cbiAgICAvKipcbiAgICAgKiBRdWVyeSBleGFjdGx5IG9uZSBpdGVtIGJ5IHRoZSBnaXZlbiByZXF1ZXN0XG4gICAgICovXG4gICAgYWJzdHJhY3QgcXVlcnlJdGVtKHJlZjogTW9kZWxSZWZOb3JtLCByZXF1ZXN0OiBRdWVyeTxUPik6IE9ic2VydmFibGU8VCB8IHVuZGVmaW5lZD5cblxuICAgIC8qKlxuICAgICAqIFF1ZXJ5IGl0ZW0gcG9zaXRpb24gaW4gdGhlIGxpc3QgdGhhdCBtYXRjaGluZyBieSB0aGUgZ2l2ZW4gcmVxdWVzdFxuICAgICAqL1xuICAgIGFic3RyYWN0IHF1ZXJ5UG9zaXRpb24ocmVmOiBNb2RlbFJlZk5vcm0sIHJlcXVlc3Q6IFF1ZXJ5PFQ+KTogT2JzZXJ2YWJsZTxudW1iZXIgfCB1bmRlZmluZWQ+XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyBOZXcgZGF0YSBzb3VyY2UgaW5zdGFuY2VcbiAgICAgKi9cbiAgICB0b0RhdGFTb3VyY2Uoc3RvcmU/OiBDb2xsZWN0aW9uU3RvcmU8VD4pOiBEYXRhU291cmNlPFQ+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRhU291cmNlKHRoaXMsIHN0b3JlKVxuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export { DataSource } from "./source";
2
+ export { DataSourceProxy } from "./proxy.directive";
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYXRhL3NyYy9zb3VyY2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUNyQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSBcIi4vc291cmNlXCJcbmV4cG9ydCB7IERhdGFTb3VyY2VQcm94eSB9IGZyb20gXCIuL3Byb3h5LmRpcmVjdGl2ZVwiXG4iXX0=
@@ -0,0 +1,33 @@
1
+ import { BehaviorSubject, combineLatest, map } from "rxjs";
2
+ import { isEqual } from "lodash";
3
+ import { deepClone, deepFreeze } from "@ngutil/common";
4
+ export class Property extends BehaviorSubject {
5
+ // readonly #signal: Signal<DeepReadonly<T> | undefined> = toSignal(this, { requireSync: true })
6
+ set(value, clone = true) {
7
+ if (!isEqual(this.value, value)) {
8
+ if (value != null) {
9
+ this.next(deepFreeze(clone ? deepClone(value) : value));
10
+ }
11
+ else {
12
+ this.next(undefined);
13
+ }
14
+ }
15
+ }
16
+ get() {
17
+ return this.value;
18
+ }
19
+ del() {
20
+ this.set(undefined);
21
+ }
22
+ }
23
+ export class PropertyCombined {
24
+ }
25
+ export function mergedProperty(merger, ...props) {
26
+ if (props.length > 1) {
27
+ return combineLatest(props).pipe(map(values => deepFreeze(merger(...values))));
28
+ }
29
+ else {
30
+ return props[0];
31
+ }
32
+ }
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYXRhL3NyYy9zb3VyY2UvcHJvcGVydGllcy9hYnN0cmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUE7QUFFdEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUVoQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBZ0IsTUFBTSxnQkFBZ0IsQ0FBQTtBQUVwRSxNQUFNLE9BQWdCLFFBQVksU0FBUSxlQUE0QztJQUNsRixnR0FBZ0c7SUFFaEcsR0FBRyxDQUFDLEtBQW9CLEVBQUUsUUFBaUIsSUFBSTtRQUMzQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM5QixJQUFJLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBUSxDQUFDLENBQUE7WUFDeEUsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUE7WUFDeEIsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBRUQsR0FBRztRQUNDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQTtJQUNyQixDQUFDO0lBRUQsR0FBRztRQUNDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDdkIsQ0FBQztDQU1KO0FBRUQsTUFBTSxPQUFnQixnQkFBZ0I7Q0FJckM7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUFDLE1BQWdDLEVBQUUsR0FBRyxLQUF3QjtJQUN4RixJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDbkIsT0FBTyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNsRixDQUFDO1NBQU0sQ0FBQztRQUNKLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBUSxDQUFBO0lBQzFCLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtYXAsIE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiXG5cbmltcG9ydCB7IGlzRXF1YWwgfSBmcm9tIFwibG9kYXNoXCJcblxuaW1wb3J0IHsgZGVlcENsb25lLCBkZWVwRnJlZXplLCBEZWVwUmVhZG9ubHkgfSBmcm9tIFwiQG5ndXRpbC9jb21tb25cIlxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUHJvcGVydHk8VD4gZXh0ZW5kcyBCZWhhdmlvclN1YmplY3Q8RGVlcFJlYWRvbmx5PFQ+IHwgdW5kZWZpbmVkPiB7XG4gICAgLy8gcmVhZG9ubHkgI3NpZ25hbDogU2lnbmFsPERlZXBSZWFkb25seTxUPiB8IHVuZGVmaW5lZD4gPSB0b1NpZ25hbCh0aGlzLCB7IHJlcXVpcmVTeW5jOiB0cnVlIH0pXG5cbiAgICBzZXQodmFsdWU6IFQgfCB1bmRlZmluZWQsIGNsb25lOiBib29sZWFuID0gdHJ1ZSkge1xuICAgICAgICBpZiAoIWlzRXF1YWwodGhpcy52YWx1ZSwgdmFsdWUpKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMubmV4dChkZWVwRnJlZXplPFQ+KGNsb25lID8gZGVlcENsb25lPFQ+KHZhbHVlKSA6IHZhbHVlKSBhcyBhbnkpXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubmV4dCh1bmRlZmluZWQpXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlXG4gICAgfVxuXG4gICAgZGVsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldCh1bmRlZmluZWQpXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWVyZ2UgdmFsdWVzIGFuZCBlbWl0IHdoZW4gY2hhbmdlZCAoZG9udCBjaGFuZ2Ugb3JpZ2luYWwgdmFsdWVzKVxuICAgICAqL1xuICAgIGFic3RyYWN0IHVwZGF0ZShvdGhlcjogVCk6IHZvaWRcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFByb3BlcnR5Q29tYmluZWQ8VD4ge1xuICAgIGFic3RyYWN0IHJlYWRvbmx5IG5vcm1hbDogUHJvcGVydHk8VD5cbiAgICBhYnN0cmFjdCByZWFkb25seSBmb3JjZWQ6IFByb3BlcnR5PFQ+XG4gICAgYWJzdHJhY3QgcmVhZG9ubHkgbWVyZ2VkJDogT2JzZXJ2YWJsZTxEZWVwUmVhZG9ubHk8VD4gfCB1bmRlZmluZWQ+XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZWRQcm9wZXJ0eShtZXJnZXI6ICguLi5pdGVtczogYW55W10pID0+IGFueSwgLi4ucHJvcHM6IE9ic2VydmFibGU8YW55PltdKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBpZiAocHJvcHMubGVuZ3RoID4gMSkge1xuICAgICAgICByZXR1cm4gY29tYmluZUxhdGVzdChwcm9wcykucGlwZShtYXAodmFsdWVzID0+IGRlZXBGcmVlemUobWVyZ2VyKC4uLnZhbHVlcykpKSlcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gcHJvcHNbMF0gYXMgYW55XG4gICAgfVxufVxuIl19
@@ -0,0 +1,16 @@
1
+ import { filterMerge } from "../../query";
2
+ import { mergedProperty, Property, PropertyCombined } from "./abstract";
3
+ export class FilterProperty extends Property {
4
+ update(other) {
5
+ this.set(filterMerge(this.value, other), false);
6
+ }
7
+ }
8
+ export class FilterCombined extends PropertyCombined {
9
+ constructor() {
10
+ super(...arguments);
11
+ this.normal = new FilterProperty(undefined);
12
+ this.forced = new FilterProperty(undefined);
13
+ this.merged$ = mergedProperty(filterMerge, this.normal, this.forced);
14
+ }
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGF0YS9zcmMvc291cmNlL3Byb3BlcnRpZXMvZmlsdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDekMsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFdkUsTUFBTSxPQUFPLGNBQWtCLFNBQVEsUUFBVztJQUNyQyxNQUFNLENBQUMsS0FBUTtRQUNwQixJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBRSxJQUF1QixDQUFDLEtBQUssRUFBRSxLQUFLLENBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUM5RSxDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8sY0FBa0IsU0FBUSxnQkFBbUI7SUFBMUQ7O1FBQ2EsV0FBTSxHQUFHLElBQUksY0FBYyxDQUFJLFNBQVMsQ0FBQyxDQUFBO1FBQ3pDLFdBQU0sR0FBRyxJQUFJLGNBQWMsQ0FBSSxTQUFTLENBQUMsQ0FBQTtRQUN6QyxZQUFPLEdBQTRDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDckgsQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCJcblxuaW1wb3J0IHsgRGVlcFJlYWRvbmx5IH0gZnJvbSBcIkBuZ3V0aWwvY29tbW9uXCJcblxuaW1wb3J0IHsgZmlsdGVyTWVyZ2UgfSBmcm9tIFwiLi4vLi4vcXVlcnlcIlxuaW1wb3J0IHsgbWVyZ2VkUHJvcGVydHksIFByb3BlcnR5LCBQcm9wZXJ0eUNvbWJpbmVkIH0gZnJvbSBcIi4vYWJzdHJhY3RcIlxuXG5leHBvcnQgY2xhc3MgRmlsdGVyUHJvcGVydHk8VD4gZXh0ZW5kcyBQcm9wZXJ0eTxUPiB7XG4gICAgb3ZlcnJpZGUgdXBkYXRlKG90aGVyOiBUKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0KGZpbHRlck1lcmdlKCh0aGlzIGFzIHsgdmFsdWU6IGFueSB9KS52YWx1ZSwgb3RoZXIpIGFzIGFueSwgZmFsc2UpXG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRmlsdGVyQ29tYmluZWQ8VD4gZXh0ZW5kcyBQcm9wZXJ0eUNvbWJpbmVkPFQ+IHtcbiAgICBvdmVycmlkZSBub3JtYWwgPSBuZXcgRmlsdGVyUHJvcGVydHk8VD4odW5kZWZpbmVkKVxuICAgIG92ZXJyaWRlIGZvcmNlZCA9IG5ldyBGaWx0ZXJQcm9wZXJ0eTxUPih1bmRlZmluZWQpXG4gICAgb3ZlcnJpZGUgbWVyZ2VkJDogT2JzZXJ2YWJsZTxEZWVwUmVhZG9ubHk8VD4gfCB1bmRlZmluZWQ+ID0gbWVyZ2VkUHJvcGVydHkoZmlsdGVyTWVyZ2UsIHRoaXMubm9ybWFsLCB0aGlzLmZvcmNlZClcbn1cbiJdfQ==
@@ -0,0 +1,16 @@
1
+ import { grouperMerge } from "../../query";
2
+ import { mergedProperty, Property, PropertyCombined } from "./abstract";
3
+ export class GrouperProperty extends Property {
4
+ update(other) {
5
+ this.set(grouperMerge(this.value, other), false);
6
+ }
7
+ }
8
+ export class GrouperCombined extends PropertyCombined {
9
+ constructor() {
10
+ super(...arguments);
11
+ this.normal = new GrouperProperty(undefined);
12
+ this.forced = new GrouperProperty(undefined);
13
+ this.merged$ = mergedProperty(grouperMerge, this.normal, this.forced);
14
+ }
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RhdGEvc3JjL3NvdXJjZS9wcm9wZXJ0aWVzL2dyb3VwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUV2RSxNQUFNLE9BQU8sZUFBbUIsU0FBUSxRQUFXO0lBQ3RDLE1BQU0sQ0FBQyxLQUFRO1FBQ3BCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFFLElBQXVCLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBUSxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBQy9FLENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBTyxlQUFtQixTQUFRLGdCQUFtQjtJQUEzRDs7UUFDYSxXQUFNLEdBQUcsSUFBSSxlQUFlLENBQUksU0FBUyxDQUFDLENBQUE7UUFDMUMsV0FBTSxHQUFHLElBQUksZUFBZSxDQUFJLFNBQVMsQ0FBQyxDQUFBO1FBQzFDLFlBQU8sR0FBNEMsY0FBYyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUN0SCxDQUFDO0NBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIlxuXG5pbXBvcnQgeyBEZWVwUmVhZG9ubHkgfSBmcm9tIFwiQG5ndXRpbC9jb21tb25cIlxuXG5pbXBvcnQgeyBncm91cGVyTWVyZ2UgfSBmcm9tIFwiLi4vLi4vcXVlcnlcIlxuaW1wb3J0IHsgbWVyZ2VkUHJvcGVydHksIFByb3BlcnR5LCBQcm9wZXJ0eUNvbWJpbmVkIH0gZnJvbSBcIi4vYWJzdHJhY3RcIlxuXG5leHBvcnQgY2xhc3MgR3JvdXBlclByb3BlcnR5PFQ+IGV4dGVuZHMgUHJvcGVydHk8VD4ge1xuICAgIG92ZXJyaWRlIHVwZGF0ZShvdGhlcjogVCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldChncm91cGVyTWVyZ2UoKHRoaXMgYXMgeyB2YWx1ZTogYW55IH0pLnZhbHVlLCBvdGhlcikgYXMgYW55LCBmYWxzZSlcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBHcm91cGVyQ29tYmluZWQ8VD4gZXh0ZW5kcyBQcm9wZXJ0eUNvbWJpbmVkPFQ+IHtcbiAgICBvdmVycmlkZSBub3JtYWwgPSBuZXcgR3JvdXBlclByb3BlcnR5PFQ+KHVuZGVmaW5lZClcbiAgICBvdmVycmlkZSBmb3JjZWQgPSBuZXcgR3JvdXBlclByb3BlcnR5PFQ+KHVuZGVmaW5lZClcbiAgICBvdmVycmlkZSBtZXJnZWQkOiBPYnNlcnZhYmxlPERlZXBSZWFkb25seTxUPiB8IHVuZGVmaW5lZD4gPSBtZXJnZWRQcm9wZXJ0eShncm91cGVyTWVyZ2UsIHRoaXMubm9ybWFsLCB0aGlzLmZvcmNlZClcbn1cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ export { FilterProperty, FilterCombined } from "./filter";
2
+ export { SorterProperty, SorterCombined } from "./sorter";
3
+ export { SlimerProperty, SlimerCombined } from "./slimer";
4
+ export { GrouperProperty, GrouperCombined } from "./grouper";
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYXRhL3NyYy9zb3VyY2UvcHJvcGVydGllcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxNQUFNLFdBQVcsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEZpbHRlclByb3BlcnR5LCBGaWx0ZXJDb21iaW5lZCB9IGZyb20gXCIuL2ZpbHRlclwiXG5leHBvcnQgeyBTb3J0ZXJQcm9wZXJ0eSwgU29ydGVyQ29tYmluZWQgfSBmcm9tIFwiLi9zb3J0ZXJcIlxuZXhwb3J0IHsgU2xpbWVyUHJvcGVydHksIFNsaW1lckNvbWJpbmVkIH0gZnJvbSBcIi4vc2xpbWVyXCJcbmV4cG9ydCB7IEdyb3VwZXJQcm9wZXJ0eSwgR3JvdXBlckNvbWJpbmVkIH0gZnJvbSBcIi4vZ3JvdXBlclwiXG4iXX0=
@@ -0,0 +1,16 @@
1
+ import { slimerMerge } from "../../query";
2
+ import { mergedProperty, Property, PropertyCombined } from "./abstract";
3
+ export class SlimerProperty extends Property {
4
+ update(other) {
5
+ this.set(slimerMerge(this.value, other), false);
6
+ }
7
+ }
8
+ export class SlimerCombined extends PropertyCombined {
9
+ constructor() {
10
+ super(...arguments);
11
+ this.normal = new SlimerProperty(undefined);
12
+ this.forced = new SlimerProperty(undefined);
13
+ this.merged$ = mergedProperty(slimerMerge, this.normal, this.forced);
14
+ }
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpbWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGF0YS9zcmMvc291cmNlL3Byb3BlcnRpZXMvc2xpbWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDekMsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFdkUsTUFBTSxPQUFPLGNBQWtCLFNBQVEsUUFBVztJQUNyQyxNQUFNLENBQUMsS0FBUTtRQUNwQixJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBRSxJQUF1QixDQUFDLEtBQUssRUFBRSxLQUFLLENBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUM5RSxDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8sY0FBa0IsU0FBUSxnQkFBbUI7SUFBMUQ7O1FBQ2EsV0FBTSxHQUFHLElBQUksY0FBYyxDQUFJLFNBQVMsQ0FBQyxDQUFBO1FBQ3pDLFdBQU0sR0FBRyxJQUFJLGNBQWMsQ0FBSSxTQUFTLENBQUMsQ0FBQTtRQUN6QyxZQUFPLEdBQTRDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDckgsQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCJcblxuaW1wb3J0IHsgRGVlcFJlYWRvbmx5IH0gZnJvbSBcIkBuZ3V0aWwvY29tbW9uXCJcblxuaW1wb3J0IHsgc2xpbWVyTWVyZ2UgfSBmcm9tIFwiLi4vLi4vcXVlcnlcIlxuaW1wb3J0IHsgbWVyZ2VkUHJvcGVydHksIFByb3BlcnR5LCBQcm9wZXJ0eUNvbWJpbmVkIH0gZnJvbSBcIi4vYWJzdHJhY3RcIlxuXG5leHBvcnQgY2xhc3MgU2xpbWVyUHJvcGVydHk8VD4gZXh0ZW5kcyBQcm9wZXJ0eTxUPiB7XG4gICAgb3ZlcnJpZGUgdXBkYXRlKG90aGVyOiBUKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0KHNsaW1lck1lcmdlKCh0aGlzIGFzIHsgdmFsdWU6IGFueSB9KS52YWx1ZSwgb3RoZXIpIGFzIGFueSwgZmFsc2UpXG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2xpbWVyQ29tYmluZWQ8VD4gZXh0ZW5kcyBQcm9wZXJ0eUNvbWJpbmVkPFQ+IHtcbiAgICBvdmVycmlkZSBub3JtYWwgPSBuZXcgU2xpbWVyUHJvcGVydHk8VD4odW5kZWZpbmVkKVxuICAgIG92ZXJyaWRlIGZvcmNlZCA9IG5ldyBTbGltZXJQcm9wZXJ0eTxUPih1bmRlZmluZWQpXG4gICAgb3ZlcnJpZGUgbWVyZ2VkJDogT2JzZXJ2YWJsZTxEZWVwUmVhZG9ubHk8VD4gfCB1bmRlZmluZWQ+ID0gbWVyZ2VkUHJvcGVydHkoc2xpbWVyTWVyZ2UsIHRoaXMubm9ybWFsLCB0aGlzLmZvcmNlZClcbn1cbiJdfQ==
@@ -0,0 +1,16 @@
1
+ import { sorterMerge } from "../../query";
2
+ import { mergedProperty, Property, PropertyCombined } from "./abstract";
3
+ export class SorterProperty extends Property {
4
+ update(other) {
5
+ this.set(sorterMerge(this.value, other), false);
6
+ }
7
+ }
8
+ export class SorterCombined extends PropertyCombined {
9
+ constructor() {
10
+ super(...arguments);
11
+ this.normal = new SorterProperty(undefined);
12
+ this.forced = new SorterProperty(undefined);
13
+ this.merged$ = mergedProperty(sorterMerge, this.normal, this.forced);
14
+ }
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGF0YS9zcmMvc291cmNlL3Byb3BlcnRpZXMvc29ydGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDekMsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFdkUsTUFBTSxPQUFPLGNBQWtCLFNBQVEsUUFBVztJQUNyQyxNQUFNLENBQUMsS0FBUTtRQUNwQixJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBRSxJQUF1QixDQUFDLEtBQUssRUFBRSxLQUFZLENBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUNyRixDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8sY0FBa0IsU0FBUSxnQkFBbUI7SUFBMUQ7O1FBQ2EsV0FBTSxHQUFHLElBQUksY0FBYyxDQUFJLFNBQVMsQ0FBQyxDQUFBO1FBQ3pDLFdBQU0sR0FBRyxJQUFJLGNBQWMsQ0FBSSxTQUFTLENBQUMsQ0FBQTtRQUN6QyxZQUFPLEdBQTRDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDckgsQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCJcblxuaW1wb3J0IHsgRGVlcFJlYWRvbmx5IH0gZnJvbSBcIkBuZ3V0aWwvY29tbW9uXCJcblxuaW1wb3J0IHsgc29ydGVyTWVyZ2UgfSBmcm9tIFwiLi4vLi4vcXVlcnlcIlxuaW1wb3J0IHsgbWVyZ2VkUHJvcGVydHksIFByb3BlcnR5LCBQcm9wZXJ0eUNvbWJpbmVkIH0gZnJvbSBcIi4vYWJzdHJhY3RcIlxuXG5leHBvcnQgY2xhc3MgU29ydGVyUHJvcGVydHk8VD4gZXh0ZW5kcyBQcm9wZXJ0eTxUPiB7XG4gICAgb3ZlcnJpZGUgdXBkYXRlKG90aGVyOiBUKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0KHNvcnRlck1lcmdlKCh0aGlzIGFzIHsgdmFsdWU6IGFueSB9KS52YWx1ZSwgb3RoZXIgYXMgYW55KSBhcyBhbnksIGZhbHNlKVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNvcnRlckNvbWJpbmVkPFQ+IGV4dGVuZHMgUHJvcGVydHlDb21iaW5lZDxUPiB7XG4gICAgb3ZlcnJpZGUgbm9ybWFsID0gbmV3IFNvcnRlclByb3BlcnR5PFQ+KHVuZGVmaW5lZClcbiAgICBvdmVycmlkZSBmb3JjZWQgPSBuZXcgU29ydGVyUHJvcGVydHk8VD4odW5kZWZpbmVkKVxuICAgIG92ZXJyaWRlIG1lcmdlZCQ6IE9ic2VydmFibGU8RGVlcFJlYWRvbmx5PFQ+IHwgdW5kZWZpbmVkPiA9IG1lcmdlZFByb3BlcnR5KHNvcnRlck1lcmdlLCB0aGlzLm5vcm1hbCwgdGhpcy5mb3JjZWQpXG59XG4iXX0=
@@ -0,0 +1,152 @@
1
+ import { DataSource as CdkDataSource } from "@angular/cdk/collections";
2
+ import { Directive, Input, Optional } from "@angular/core";
3
+ import { toSignal } from "@angular/core/rxjs-interop";
4
+ import { combineLatest, finalize, of, ReplaySubject, share, Subject, Subscription, switchMap, takeUntil, tap, throwError } from "rxjs";
5
+ import { Busy } from "@ngutil/common";
6
+ import { DataProvider } from "../provider/provider";
7
+ import { DataSource } from "./source";
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@ngutil/common";
10
+ /**
11
+ * @example
12
+ * ```html
13
+ * <table [nuDataSource]="..." [filter]="{isActive: true}" [sorter]="[{name: 'asc'}]"></table>
14
+ * ```
15
+ *
16
+ * ```ts
17
+ * @Component({
18
+ * template: `<table [nuDataSource]="users$"></table>`
19
+ * })
20
+ * class UserTable {
21
+ * readonly userService = inject(UserService)
22
+ * readonly users$ = UserService.all()
23
+ * }
24
+ * ```
25
+ *
26
+ * ```ts
27
+ * @Component({
28
+ * selector: "table.my-table",
29
+ * template: `
30
+ * <cdk-virtual-scroll-viewport itemSize="50" class="example-viewport">
31
+ * <div *cdkVirtualFor="let item of dataSource" class="example-item">{{item}}</div>
32
+ * </cdk-virtual-scroll-viewport>
33
+ * `
34
+ * })
35
+ * class TableComponent {
36
+ * readonly dataSource = inject(DataSourceProxy)
37
+ * }
38
+ * ```
39
+ */
40
+ export class DataSourceProxy extends CdkDataSource {
41
+ set source(value) {
42
+ this.#valueSub?.unsubscribe();
43
+ this.#valueSub = coerceDataSource(value)
44
+ .pipe(tap(v => {
45
+ if (v == null) {
46
+ throw new Error("Missing DataSource");
47
+ }
48
+ }))
49
+ .subscribe(this.source$);
50
+ }
51
+ #valueSub;
52
+ set filter(value) {
53
+ this.#filter.next(value);
54
+ }
55
+ #filter;
56
+ // TODO: maybe mergedFilter$ = this.value$.pipe(switchMap(value => value.filter.merged$))
57
+ set sorter(value) {
58
+ this.#sorter.next(value);
59
+ }
60
+ #sorter;
61
+ set grouper(value) {
62
+ this.#grouper.next(value);
63
+ }
64
+ #grouper;
65
+ set slimer(value) {
66
+ this.#slimer.next(value);
67
+ }
68
+ #slimer;
69
+ #subs;
70
+ constructor(busy) {
71
+ super();
72
+ this.source$ = new ReplaySubject(1);
73
+ this.items$ = this.source$.pipe(switchMap(value => value.items$), share());
74
+ this.busy$ = this.source$.pipe(switchMap(value => value.busy$), share());
75
+ this.isBusy = toSignal(this.busy$, { rejectErrors: true, initialValue: false });
76
+ this.#filter = new ReplaySubject(1);
77
+ this.#sorter = new ReplaySubject(1);
78
+ this.#grouper = new ReplaySubject(1);
79
+ this.#slimer = new ReplaySubject(1);
80
+ this.#subs = new Subscription();
81
+ this.#cvSubs = new Map();
82
+ if (busy != null) {
83
+ this.#subs.add(busy.connect(this.busy$).subscribe());
84
+ }
85
+ this.#subs.add(combineLatest({ src: this.source$, filter: this.#filter }).subscribe(({ src, filter }) => {
86
+ src.filter.forced.set(filter);
87
+ }));
88
+ this.#subs.add(combineLatest({ src: this.source$, sorter: this.#sorter }).subscribe(({ src, sorter }) => {
89
+ src.sorter.forced.set(sorter);
90
+ }));
91
+ this.#subs.add(combineLatest({ src: this.source$, grouper: this.#grouper }).subscribe(({ src, grouper }) => {
92
+ src.grouper.forced.set(grouper);
93
+ }));
94
+ this.#subs.add(combineLatest({ src: this.source$, slimer: this.#slimer }).subscribe(({ src, slimer }) => {
95
+ src.slimer.forced.set(slimer);
96
+ }));
97
+ }
98
+ #cvSubs;
99
+ connect(collectionViewer) {
100
+ const until = new Subject();
101
+ this.#cvSubs.get(collectionViewer)?.next();
102
+ this.#cvSubs.set(collectionViewer, until);
103
+ return this.source$.pipe(switchMap(value => value.connect(collectionViewer)), takeUntil(until), finalize(() => this.#cvSubs.delete(collectionViewer)));
104
+ }
105
+ disconnect(collectionViewer) {
106
+ this.#cvSubs.get(collectionViewer)?.next();
107
+ this.#cvSubs.delete(collectionViewer);
108
+ }
109
+ ngOnDestroy() {
110
+ this.#valueSub?.unsubscribe();
111
+ this.#valueSub = undefined;
112
+ this.#subs.unsubscribe();
113
+ }
114
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: DataSourceProxy, deps: [{ token: i1.Busy, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
115
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.5", type: DataSourceProxy, isStandalone: true, selector: "[nuDataSource]", inputs: { source: ["nuDataSource", "source"], filter: "filter", sorter: "sorter", grouper: "grouper", slimer: "slimer" }, exportAs: ["nuDataSource"], usesInheritance: true, ngImport: i0 }); }
116
+ }
117
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: DataSourceProxy, decorators: [{
118
+ type: Directive,
119
+ args: [{
120
+ standalone: true,
121
+ selector: "[nuDataSource]",
122
+ exportAs: "nuDataSource"
123
+ }]
124
+ }], ctorParameters: () => [{ type: i1.Busy, decorators: [{
125
+ type: Optional
126
+ }] }], propDecorators: { source: [{
127
+ type: Input,
128
+ args: [{ required: true, alias: "nuDataSource" }]
129
+ }], filter: [{
130
+ type: Input
131
+ }], sorter: [{
132
+ type: Input
133
+ }], grouper: [{
134
+ type: Input
135
+ }], slimer: [{
136
+ type: Input
137
+ }] } });
138
+ function coerceDataSource(value) {
139
+ if (value instanceof DataSourceProxy) {
140
+ return value.source$;
141
+ }
142
+ else if (value instanceof DataSource) {
143
+ return of(value);
144
+ }
145
+ else if (value instanceof DataProvider) {
146
+ return of(value.toDataSource());
147
+ }
148
+ else {
149
+ return throwError(() => new Error("Invalid DataSource value"));
150
+ }
151
+ }
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJveHkuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGF0YS9zcmMvc291cmNlL3Byb3h5LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxJQUFJLGFBQWEsRUFBb0IsTUFBTSwwQkFBMEIsQ0FBQTtBQUN4RixPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBYSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDckUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBRXJELE9BQU8sRUFDSCxhQUFhLEVBQ2IsUUFBUSxFQUVSLEVBQUUsRUFDRixhQUFhLEVBQ2IsS0FBSyxFQUNMLE9BQU8sRUFDUCxZQUFZLEVBQ1osU0FBUyxFQUNULFNBQVMsRUFDVCxHQUFHLEVBQ0gsVUFBVSxFQUNiLE1BQU0sTUFBTSxDQUFBO0FBRWIsT0FBTyxFQUFFLElBQUksRUFBbUIsTUFBTSxnQkFBZ0IsQ0FBQTtBQUd0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFFbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQTs7O0FBSXJDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTZCRztBQU1ILE1BQU0sT0FBTyxlQUNULFNBQVEsYUFBNEI7SUFHcEMsSUFDSSxNQUFNLENBQUMsS0FBeUI7UUFDaEMsSUFBSSxDQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsQ0FBQTtRQUM3QixJQUFJLENBQUMsU0FBUyxHQUFHLGdCQUFnQixDQUFJLEtBQUssQ0FBQzthQUN0QyxJQUFJLENBQ0QsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ0osSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO1lBQ3pDLENBQUM7UUFD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LE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3BCLENBQUM7U0FBTSxJQUFJLEtBQUssWUFBWSxZQUFZLEVBQUUsQ0FBQztRQUN2QyxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQTtJQUNuQyxDQUFDO1NBQU0sQ0FBQztRQUNKLE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQTtJQUNsRSxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFTb3VyY2UgYXMgQ2RrRGF0YVNvdXJjZSwgQ29sbGVjdGlvblZpZXdlciB9IGZyb20gXCJAYW5ndWxhci9jZGsvY29sbGVjdGlvbnNcIlxuaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgT25EZXN0cm95LCBPcHRpb25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCJcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wXCJcblxuaW1wb3J0IHtcbiAgICBjb21iaW5lTGF0ZXN0LFxuICAgIGZpbmFsaXplLFxuICAgIE9ic2VydmFibGUsXG4gICAgb2YsXG4gICAgUmVwbGF5U3ViamVjdCxcbiAgICBzaGFyZSxcbiAgICBTdWJqZWN0LFxuICAgIFN1YnNjcmlwdGlvbixcbiAgICBzd2l0Y2hNYXAsXG4gICAgdGFrZVVudGlsLFxuICAgIHRhcCxcbiAgICB0aHJvd0Vycm9yXG59IGZyb20gXCJyeGpzXCJcblxuaW1wb3J0IHsgQnVzeSwgQ29ubmVjdFByb3RvY29sIH0gZnJvbSBcIkBuZ3V0aWwvY29tbW9uXCJcblxuaW1wb3J0IHsgTW9kZWwgfSBmcm9tIFwiLi4vbW9kZWxcIlxuaW1wb3J0IHsgRGF0YVByb3ZpZGVyIH0gZnJvbSBcIi4uL3Byb3ZpZGVyL3Byb3ZpZGVyXCJcbmltcG9ydCB7IEZpbHRlciwgR3JvdXBlciwgU2xpbWVyLCBTb3J0ZXIgfSBmcm9tIFwiLi4vcXVlcnlcIlxuaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gXCIuL3NvdXJjZVwiXG5cbmV4cG9ydCB0eXBlIERhdGFTb3VyY2VJbnB1dDxUIGV4dGVuZHMgTW9kZWw+ID0gYW55XG5cbi8qKlxuICogQGV4YW1wbGVcbiAqIGBgYGh0bWxcbiAqIDx0YWJsZSBbbnVEYXRhU291cmNlXT1cIi4uLlwiIFtmaWx0ZXJdPVwie2lzQWN0aXZlOiB0cnVlfVwiIFtzb3J0ZXJdPVwiW3tuYW1lOiAnYXNjJ31dXCI+PC90YWJsZT5cbiAqIGBgYFxuICpcbiAqIGBgYHRzXG4gKiBAQ29tcG9uZW50KHtcbiAqICAgdGVtcGxhdGU6IGA8dGFibGUgW251RGF0YVNvdXJjZV09XCJ1c2VycyRcIj48L3RhYmxlPmBcbiAqIH0pXG4gKiBjbGFzcyBVc2VyVGFibGUge1xuICogICByZWFkb25seSB1c2VyU2VydmljZSA9IGluamVjdChVc2VyU2VydmljZSlcbiAqICAgcmVhZG9ubHkgdXNlcnMkID0gVXNlclNlcnZpY2UuYWxsKClcbiAqIH1cbiAqIGBgYFxuICpcbiAqIGBgYHRzXG4gKiBAQ29tcG9uZW50KHtcbiAqICAgc2VsZWN0b3I6IFwidGFibGUubXktdGFibGVcIixcbiAqICAgdGVtcGxhdGU6IGBcbiAqICAgPGNkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydCBpdGVtU2l6ZT1cIjUwXCIgY2xhc3M9XCJleGFtcGxlLXZpZXdwb3J0XCI+XG4gKiAgICAgICA8ZGl2ICpjZGtWaXJ0dWFsRm9yPVwibGV0IGl0ZW0gb2YgZGF0YVNvdXJjZVwiIGNsYXNzPVwiZXhhbXBsZS1pdGVtXCI+e3tpdGVtfX08L2Rpdj5cbiAqICAgPC9jZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQ+XG4gKiAgIGBcbiAqIH0pXG4gKiBjbGFzcyBUYWJsZUNvbXBvbmVudCB7XG4gKiAgIHJlYWRvbmx5IGRhdGFTb3VyY2UgPSBpbmplY3QoRGF0YVNvdXJjZVByb3h5KVxuICogfVxuICogYGBgXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6IFwiW251RGF0YVNvdXJjZV1cIixcbiAgICBleHBvcnRBczogXCJudURhdGFTb3VyY2VcIlxufSlcbmV4cG9ydCBjbGFzcyBEYXRhU291cmNlUHJveHk8VCBleHRlbmRzIE1vZGVsID0gTW9kZWw+XG4gICAgZXh0ZW5kcyBDZGtEYXRhU291cmNlPFQgfCB1bmRlZmluZWQ+XG4gICAgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIENvbm5lY3RQcm90b2NvbFxue1xuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlLCBhbGlhczogXCJudURhdGFTb3VyY2VcIiB9KVxuICAgIHNldCBzb3VyY2UodmFsdWU6IERhdGFTb3VyY2VJbnB1dDxUPikge1xuICAgICAgICB0aGlzLiN2YWx1ZVN1Yj8udW5zdWJzY3JpYmUoKVxuICAgICAgICB0aGlzLiN2YWx1ZVN1YiA9IGNvZXJjZURhdGFTb3VyY2U8VD4odmFsdWUpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YXAodiA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2ID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgRGF0YVNvdXJjZVwiKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUodGhpcy5zb3VyY2UkKVxuICAgIH1cbiAgICAjdmFsdWVTdWI/OiBTdWJzY3JpcHRpb25cbiAgICByZWFkb25seSBzb3VyY2UkID0gbmV3IFJlcGxheVN1YmplY3Q8RGF0YVNvdXJjZTxUPj4oMSlcblxuICAgIHJlYWRvbmx5IGl0ZW1zJCA9IHRoaXMuc291cmNlJC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAodmFsdWUgPT4gdmFsdWUuaXRlbXMkKSxcbiAgICAgICAgc2hhcmUoKVxuICAgIClcblxuICAgIHJlYWRvbmx5IGJ1c3kkID0gdGhpcy5zb3VyY2UkLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCh2YWx1ZSA9PiB2YWx1ZS5idXN5JCksXG4gICAgICAgIHNoYXJlKClcbiAgICApXG4gICAgcmVhZG9ubHkgaXNCdXN5ID0gdG9TaWduYWwodGhpcy5idXN5JCwgeyByZWplY3RFcnJvcnM6IHRydWUsIGluaXRpYWxWYWx1ZTogZmFsc2UgfSlcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGZpbHRlcih2YWx1ZTogRmlsdGVyPFQ+KSB7XG4gICAgICAgIHRoaXMuI2ZpbHRlci5uZXh0KHZhbHVlKVxuICAgIH1cbiAgICByZWFkb25seSAjZmlsdGVyID0gbmV3IFJlcGxheVN1YmplY3Q8RmlsdGVyPFQ+PigxKVxuICAgIC8vIFRPRE86IG1heWJlIG1lcmdlZEZpbHRlciQgPSB0aGlzLnZhbHVlJC5waXBlKHN3aXRjaE1hcCh2YWx1ZSA9PiB2YWx1ZS5maWx0ZXIubWVyZ2VkJCkpXG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBzb3J0ZXIodmFsdWU6IFNvcnRlcjxUPikge1xuICAgICAgICB0aGlzLiNzb3J0ZXIubmV4dCh2YWx1ZSlcbiAgICB9XG4gICAgcmVhZG9ubHkgI3NvcnRlciA9IG5ldyBSZXBsYXlTdWJqZWN0PFNvcnRlcjxUPj4oMSlcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGdyb3VwZXIodmFsdWU6IEdyb3VwZXI8VD4pIHtcbiAgICAgICAgdGhpcy4jZ3JvdXBlci5uZXh0KHZhbHVlKVxuICAgIH1cbiAgICByZWFkb25seSAjZ3JvdXBlciA9IG5ldyBSZXBsYXlTdWJqZWN0PEdyb3VwZXI8VD4+KDEpXG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBzbGltZXIodmFsdWU6IFNsaW1lcjxUPikge1xuICAgICAgICB0aGlzLiNzbGltZXIubmV4dCh2YWx1ZSlcbiAgICB9XG4gICAgcmVhZG9ubHkgI3NsaW1lciA9IG5ldyBSZXBsYXlTdWJqZWN0PFNsaW1lcjxUPj4oMSlcblxuICAgIHJlYWRvbmx5ICNzdWJzID0gbmV3IFN1YnNjcmlwdGlvbigpXG5cbiAgICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBidXN5PzogQnVzeTxhbnk+KSB7XG4gICAgICAgIHN1cGVyKClcblxuICAgICAgICBpZiAoYnVzeSAhPSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLiNzdWJzLmFkZChidXN5LmNvbm5lY3QodGhpcy5idXN5JCkuc3Vic2NyaWJlKCkpXG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLiNzdWJzLmFkZChcbiAgICAgICAgICAgIGNvbWJpbmVMYXRlc3QoeyBzcmM6IHRoaXMuc291cmNlJCwgZmlsdGVyOiB0aGlzLiNmaWx0ZXIgfSkuc3Vic2NyaWJlKCh7IHNyYywgZmlsdGVyIH0pID0+IHtcbiAgICAgICAgICAgICAgICBzcmMuZmlsdGVyLmZvcmNlZC5zZXQoZmlsdGVyKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKVxuXG4gICAgICAgIHRoaXMuI3N1YnMuYWRkKFxuICAgICAgICAgICAgY29tYmluZUxhdGVzdCh7IHNyYzogdGhpcy5zb3VyY2UkLCBzb3J0ZXI6IHRoaXMuI3NvcnRlciB9KS5zdWJzY3JpYmUoKHsgc3JjLCBzb3J0ZXIgfSkgPT4ge1xuICAgICAgICAgICAgICAgIHNyYy5zb3J0ZXIuZm9yY2VkLnNldChzb3J0ZXIpXG4gICAgICAgICAgICB9KVxuICAgICAgICApXG5cbiAgICAgICAgdGhpcy4jc3Vicy5hZGQoXG4gICAgICAgICAgICBjb21iaW5lTGF0ZXN0KHsgc3JjOiB0aGlzLnNvdXJjZSQsIGdyb3VwZXI6IHRoaXMuI2dyb3VwZXIgfSkuc3Vic2NyaWJlKCh7IHNyYywgZ3JvdXBlciB9KSA9PiB7XG4gICAgICAgICAgICAgICAgc3JjLmdyb3VwZXIuZm9yY2VkLnNldChncm91cGVyKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKVxuXG4gICAgICAgIHRoaXMuI3N1YnMuYWRkKFxuICAgICAgICAgICAgY29tYmluZUxhdGVzdCh7IHNyYzogdGhpcy5zb3VyY2UkLCBzbGltZXI6IHRoaXMuI3NsaW1lciB9KS5zdWJzY3JpYmUoKHsgc3JjLCBzbGltZXIgfSkgPT4ge1xuICAgICAgICAgICAgICAgIHNyYy5zbGltZXIuZm9yY2VkLnNldChzbGltZXIpXG4gICAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgfVxuXG4gICAgI2N2U3VicyA9IG5ldyBNYXA8Q29sbGVjdGlvblZpZXdlciwgU3ViamVjdDx2b2lkPj4oKVxuXG4gICAgb3ZlcnJpZGUgY29ubmVjdChjb2xsZWN0aW9uVmlld2VyOiBDb2xsZWN0aW9uVmlld2VyKTogT2JzZXJ2YWJsZTxyZWFkb25seSAoVCB8IHVuZGVmaW5lZClbXT4ge1xuICAgICAgICBjb25zdCB1bnRpbCA9IG5ldyBTdWJqZWN0PHZvaWQ+KClcblxuICAgICAgICB0aGlzLiNjdlN1YnMuZ2V0KGNvbGxlY3Rpb25WaWV3ZXIpPy5uZXh0KClcbiAgICAgICAgdGhpcy4jY3ZTdWJzLnNldChjb2xsZWN0aW9uVmlld2VyLCB1bnRpbClcblxuICAgICAgICByZXR1cm4gdGhpcy5zb3VyY2UkLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXAodmFsdWUgPT4gdmFsdWUuY29ubmVjdChjb2xsZWN0aW9uVmlld2VyKSksXG4gICAgICAgICAgICB0YWtlVW50aWwodW50aWwpLFxuICAgICAgICAgICAgZmluYWxpemUoKCkgPT4gdGhpcy4jY3ZTdWJzLmRlbGV0ZShjb2xsZWN0aW9uVmlld2VyKSlcbiAgICAgICAgKVxuICAgIH1cblxuICAgIG92ZXJyaWRlIGRpc2Nvbm5lY3QoY29sbGVjdGlvblZpZXdlcjogQ29sbGVjdGlvblZpZXdlcik6IHZvaWQge1xuICAgICAgICB0aGlzLiNjdlN1YnMuZ2V0KGNvbGxlY3Rpb25WaWV3ZXIpPy5uZXh0KClcbiAgICAgICAgdGhpcy4jY3ZTdWJzLmRlbGV0ZShjb2xsZWN0aW9uVmlld2VyKVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLiN2YWx1ZVN1Yj8udW5zdWJzY3JpYmUoKVxuICAgICAgICB0aGlzLiN2YWx1ZVN1YiA9IHVuZGVmaW5lZFxuICAgICAgICB0aGlzLiNzdWJzLnVuc3Vic2NyaWJlKClcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGNvZXJjZURhdGFTb3VyY2U8VCBleHRlbmRzIE1vZGVsPih2YWx1ZTogRGF0YVNvdXJjZUlucHV0PFQ+KTogT2JzZXJ2YWJsZTxEYXRhU291cmNlPFQ+PiB7XG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0YVNvdXJjZVByb3h5KSB7XG4gICAgICAgIHJldHVybiB2YWx1ZS5zb3VyY2UkXG4gICAgfSBlbHNlIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGFTb3VyY2UpIHtcbiAgICAgICAgcmV0dXJuIG9mKHZhbHVlKVxuICAgIH0gZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRhUHJvdmlkZXIpIHtcbiAgICAgICAgcmV0dXJuIG9mKHZhbHVlLnRvRGF0YVNvdXJjZSgpKVxuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcihcIkludmFsaWQgRGF0YVNvdXJjZSB2YWx1ZVwiKSlcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,108 @@
1
+ import { DataSource as CdkDataSource } from "@angular/cdk/collections";
2
+ import { BehaviorSubject, combineLatest, debounceTime, distinctUntilChanged, finalize, map, Observable, of, ReplaySubject, shareReplay, Subject, switchMap, take, takeUntil, tap } from "rxjs";
3
+ import { isEqual, merge } from "lodash";
4
+ import { deepClone, deepFreeze } from "@ngutil/common";
5
+ import { MemoryStore } from "../store";
6
+ import { FilterCombined, GrouperCombined, SlimerCombined, SorterCombined } from "./properties";
7
+ const DEBOUNCE_TIME = 50;
8
+ export class DataSource extends CdkDataSource {
9
+ #queryBase;
10
+ #slice;
11
+ #reload;
12
+ constructor(provider, store) {
13
+ super();
14
+ this.provider = provider;
15
+ this.busy$ = new BehaviorSubject(false);
16
+ this.total$ = new BehaviorSubject(undefined);
17
+ this.filter = new FilterCombined();
18
+ this.sorter = new SorterCombined();
19
+ this.slimer = new SlimerCombined();
20
+ this.grouper = new GrouperCombined();
21
+ this.#queryBase = combineLatest({
22
+ filter: this.filter.merged$,
23
+ sorter: this.sorter.merged$,
24
+ slimer: this.slimer.merged$,
25
+ grouper: this.grouper.merged$
26
+ }).pipe(shareReplay(1));
27
+ this.#slice = new ReplaySubject(1);
28
+ this.slice$ = this.#slice.pipe(distinctUntilChanged(isEqual), map(slice => deepFreeze(deepClone(slice))), shareReplay(1));
29
+ this.#reload = new Subject();
30
+ this.reset$ = merge(this.#queryBase, this.#reload).pipe(tap(() => this.#setBusy(true)), switchMap(() => this.store.clear()), shareReplay(1));
31
+ this.query$ = combineLatest({ base: this.#queryBase, slice: this.slice$ }).pipe(map(({ base, slice }) => {
32
+ return { ...base, slice };
33
+ }), shareReplay(1));
34
+ this.items$ = combineLatest({ query: this.query$, reset: this.reset$ }).pipe(tap(() => this.#setBusy(true)), debounceTime(DEBOUNCE_TIME), switchMap(({ query }) =>
35
+ // TODO: maybe hasSlice + getSlice
36
+ this.store.getSlice(query.slice).pipe(switchMap(items => {
37
+ // TODO: endReached
38
+ const hasMissing = items.some(v => v == null);
39
+ if (hasMissing) {
40
+ return this.provider.queryList(query).pipe(switchMap(result => {
41
+ if (result.total != null) {
42
+ this.total$.next(result.total);
43
+ }
44
+ return this.store.insertSlice(query.slice, result.items);
45
+ }));
46
+ }
47
+ else {
48
+ return of(items);
49
+ }
50
+ }))), finalize(() => this.#setBusy(false)), shareReplay(1));
51
+ this.#cvSubs = new Map();
52
+ if (store == null) {
53
+ store = new MemoryStore();
54
+ }
55
+ this.store = store;
56
+ }
57
+ setSlice(slice) {
58
+ this.#slice.next(slice);
59
+ return this;
60
+ }
61
+ realod() {
62
+ this.#reload.next();
63
+ }
64
+ getItem(ref) {
65
+ const refn = this.provider.meta.normalizeRef(ref);
66
+ return this.#storeFirst(query => this.store.get(refn), query => this.provider.queryItem(refn, query));
67
+ }
68
+ getItemPosition(ref) {
69
+ const refn = this.provider.meta.normalizeRef(ref);
70
+ return this.#storeFirst(query => this.store.indexOf(refn).pipe(map(i => (i < 0 ? undefined : i))), query => this.provider.queryPosition(refn, query));
71
+ }
72
+ realodItem(ref, insertPosition) {
73
+ const refn = this.provider.meta.normalizeRef(ref);
74
+ return this.query$.pipe(switchMap(query => this.provider.queryItem(refn, query)), switchMap(item => item != null ? this.store.updateOrInsert(refn, item, insertPosition).pipe(map(() => item)) : of(item)), take(1));
75
+ }
76
+ #storeFirst(storeFn, selfFn) {
77
+ return this.query$.pipe(take(1), switchMap(query => storeFn(query).pipe(switchMap(result => (result == null ? selfFn(query) : of(result))))));
78
+ }
79
+ #setBusy(busy) {
80
+ if (this.provider.isAsync) {
81
+ if (this.busy$.value !== busy) {
82
+ this.busy$.next(busy);
83
+ }
84
+ }
85
+ }
86
+ #cvSubs;
87
+ connect(collectionViewer) {
88
+ const until = new Subject();
89
+ this.#cvSubs.get(collectionViewer)?.next();
90
+ this.#cvSubs.set(collectionViewer, until);
91
+ return new Observable((subscriber) => {
92
+ const sub1 = collectionViewer.viewChange.subscribe(this.#slice);
93
+ const sub2 = this.items$.subscribe(subscriber);
94
+ return () => {
95
+ if (this.#cvSubs.get(collectionViewer) === until) {
96
+ this.#cvSubs.delete(collectionViewer);
97
+ }
98
+ sub1.unsubscribe();
99
+ sub2.unsubscribe();
100
+ };
101
+ }).pipe(takeUntil(until));
102
+ }
103
+ disconnect(collectionViewer) {
104
+ this.#cvSubs.get(collectionViewer)?.next();
105
+ this.#cvSubs.delete(collectionViewer);
106
+ }
107
+ }
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGF0YS9zcmMvc291cmNlL3NvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxJQUFJLGFBQWEsRUFBb0IsTUFBTSwwQkFBMEIsQ0FBQTtBQUV4RixPQUFPLEVBQ0gsZUFBZSxFQUNmLGFBQWEsRUFDYixZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLFFBQVEsRUFDUixHQUFHLEVBQ0gsVUFBVSxFQUNWLEVBQUUsRUFDRixhQUFhLEVBQ2IsV0FBVyxFQUNYLE9BQU8sRUFFUCxTQUFTLEVBQ1QsSUFBSSxFQUNKLFNBQVMsRUFDVCxHQUFHLEVBQ04sTUFBTSxNQUFNLENBQUE7QUFFYixPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUV2QyxPQUFPLEVBQW1CLFNBQVMsRUFBRSxVQUFVLEVBQWdCLE1BQU0sZ0JBQWdCLENBQUE7QUFLckYsT0FBTyxFQUF3QixXQUFXLEVBQTBCLE1BQU0sVUFBVSxDQUFBO0FBQ3BGLE9BQU8sRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFFOUYsTUFBTSxhQUFhLEdBQUcsRUFBRSxDQUFBO0FBSXhCLE1BQU0sT0FBTyxVQUE0QixTQUFRLGFBQTRCO0lBU2hFLFVBQVUsQ0FLSTtJQUVkLE1BQU0sQ0FBOEI7SUFPcEMsT0FBTyxDQUFzQjtJQTJDdEMsWUFDb0IsUUFBeUIsRUFDekMsS0FBMEI7UUFFMUIsS0FBSyxFQUFFLENBQUE7UUFIUyxhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQWxFcEMsVUFBSyxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFBO1FBQzNDLFdBQU0sR0FBRyxJQUFJLGVBQWUsQ0FBcUIsU0FBUyxDQUFDLENBQUE7UUFFM0QsV0FBTSxHQUFHLElBQUksY0FB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LENBQUMsTUFBTSxDQUFDLENBQUE7WUFDL0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUE7WUFFOUMsT0FBTyxHQUFHLEVBQUU7Z0JBQ1IsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEtBQUssRUFBRSxDQUFDO29CQUMvQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO2dCQUN6QyxDQUFDO2dCQUNELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQTtnQkFDbEIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFBO1lBQ3RCLENBQUMsQ0FBQTtRQUNMLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtJQUM3QixDQUFDO0lBRVEsVUFBVSxDQUFDLGdCQUFrQztRQUNsRCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFBO1FBQzFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUE7SUFDekMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YVNvdXJjZSBhcyBDZGtEYXRhU291cmNlLCBDb2xsZWN0aW9uVmlld2VyIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9jb2xsZWN0aW9uc1wiXG5cbmltcG9ydCB7XG4gICAgQmVoYXZpb3JTdWJqZWN0LFxuICAgIGNvbWJpbmVMYXRlc3QsXG4gICAgZGVib3VuY2VUaW1lLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICAgIGZpbmFsaXplLFxuICAgIG1hcCxcbiAgICBPYnNlcnZhYmxlLFxuICAgIG9mLFxuICAgIFJlcGxheVN1YmplY3QsXG4gICAgc2hhcmVSZXBsYXksXG4gICAgU3ViamVjdCxcbiAgICBTdWJzY3JpYmVyLFxuICAgIHN3aXRjaE1hcCxcbiAgICB0YWtlLFxuICAgIHRha2VVbnRpbCxcbiAgICB0YXBcbn0gZnJvbSBcInJ4anNcIlxuXG5pbXBvcnQgeyBpc0VxdWFsLCBtZXJnZSB9IGZyb20gXCJsb2Rhc2hcIlxuXG5pbXBvcnQgeyBDb25uZWN0UHJvdG9jb2wsIGRlZXBDbG9uZSwgZGVlcEZyZWV6ZSwgRGVlcFJlYWRvbmx5IH0gZnJvbSBcIkBuZ3V0aWwvY29tbW9uXCJcblxuaW1wb3J0IHR5cGUgeyBNb2RlbCwgTW9kZWxSZWYgfSBmcm9tIFwiLi4vbW9kZWxcIlxuaW1wb3J0IHR5cGUgeyBEYXRhUHJvdmlkZXIgfSBmcm9tIFwiLi4vcHJvdmlkZXIvcHJvdmlkZXJcIlxuaW1wb3J0IHR5cGUgeyBGaWx0ZXIsIEdyb3VwZXIsIFF1ZXJ5LCBTbGljZSwgU2xpbWVyLCBTb3J0ZXIgfSBmcm9tIFwiLi4vcXVlcnlcIlxuaW1wb3J0IHsgdHlwZSBDb2xsZWN0aW9uU3RvcmUsIE1lbW9yeVN0b3JlLCB0eXBlIFBhcnRpYWxDb2xsZWN0aW9uIH0gZnJvbSBcIi4uL3N0b3JlXCJcbmltcG9ydCB7IEZpbHRlckNvbWJpbmVkLCBHcm91cGVyQ29tYmluZWQsIFNsaW1lckNvbWJpbmVkLCBTb3J0ZXJDb21iaW5lZCB9IGZyb20gXCIuL3Byb3BlcnRpZXNcIlxuXG5jb25zdCBERUJPVU5DRV9USU1FID0gNTBcblxudHlwZSBEU1F1ZXJ5PFQgZXh0ZW5kcyBNb2RlbD4gPSBRdWVyeTxUPiAmIHsgc2xpY2U6IERlZXBSZWFkb25seTxTbGljZT4gfVxuXG5leHBvcnQgY2xhc3MgRGF0YVNvdXJjZTxUIGV4dGVuZHMgTW9kZWw+IGV4dGVuZHMgQ2RrRGF0YVNvdXJjZTxUIHwgdW5kZWZpbmVkPiBpbXBsZW1lbnRzIENvbm5lY3RQcm90b2NvbCB7XG4gICAgcmVhZG9ubHkgYnVzeSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKVxuICAgIHJlYWRvbmx5IHRvdGFsJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpXG5cbiAgICByZWFkb25seSBmaWx0ZXIgPSBuZXcgRmlsdGVyQ29tYmluZWQ8RmlsdGVyPFQ+PigpXG4gICAgcmVhZG9ubHkgc29ydGVyID0gbmV3IFNvcnRlckNvbWJpbmVkPFNvcnRlcjxUPj4oKVxuICAgIHJlYWRvbmx5IHNsaW1lciA9IG5ldyBTbGltZXJDb21iaW5lZDxTbGltZXI8VD4+KClcbiAgICByZWFkb25seSBncm91cGVyID0gbmV3IEdyb3VwZXJDb21iaW5lZDxHcm91cGVyPFQ+PigpXG5cbiAgICByZWFkb25seSAjcXVlcnlCYXNlID0gY29tYmluZUxhdGVzdCh7XG4gICAgICAgIGZpbHRlcjogdGhpcy5maWx0ZXIubWVyZ2VkJCxcbiAgICAgICAgc29ydGVyOiB0aGlzLnNvcnRlci5tZXJnZWQkLFxuICAgICAgICBzbGltZXI6IHRoaXMuc2xpbWVyLm1lcmdlZCQsXG4gICAgICAgIGdyb3VwZXI6IHRoaXMuZ3JvdXBlci5tZXJnZWQkXG4gICAgfSkucGlwZShzaGFyZVJlcGxheSgxKSlcblxuICAgIHJlYWRvbmx5ICNzbGljZSA9IG5ldyBSZXBsYXlTdWJqZWN0PFNsaWNlPigxKVxuICAgIHJlYWRvbmx5IHNsaWNlJDogT2JzZXJ2YWJsZTxTbGljZT4gPSB0aGlzLiNzbGljZS5waXBlKFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZChpc0VxdWFsKSxcbiAgICAgICAgbWFwKHNsaWNlID0+IGRlZXBGcmVlemUoZGVlcENsb25lKHNsaWNlKSkpLFxuICAgICAgICBzaGFyZVJlcGxheSgxKVxuICAgIClcblxuICAgIHJlYWRvbmx5ICNyZWxvYWQgPSBuZXcgU3ViamVjdDx2b2lkPigpXG4gICAgcmVhZG9ubHkgcmVzZXQkOiBPYnNlcnZhYmxlPHVua25vd24+ID0gbWVyZ2UodGhpcy4jcXVlcnlCYXNlLCB0aGlzLiNyZWxvYWQpLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLiNzZXRCdXN5KHRydWUpKSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuc3RvcmUuY2xlYXIoKSksXG4gICAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKVxuXG4gICAgcmVhZG9ubHkgcXVlcnkkOiBPYnNlcnZhYmxlPERTUXVlcnk8VD4+ID0gY29tYmluZUxhdGVzdCh7IGJhc2U6IHRoaXMuI3F1ZXJ5QmFzZSwgc2xpY2U6IHRoaXMuc2xpY2UkIH0pLnBpcGUoXG4gICAgICAgIG1hcCgoeyBiYXNlLCBzbGljZSB9KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4geyAuLi5iYXNlLCBzbGljZSB9XG4gICAgICAgIH0pLFxuICAgICAgICBzaGFyZVJlcGxheSgxKVxuICAgIClcblxuICAgIHJlYWRvbmx5IGl0ZW1zJDogT2JzZXJ2YWJsZTxQYXJ0aWFsQ29sbGVjdGlvbjxUPj4gPSBjb21iaW5lTGF0ZXN0KHsgcXVlcnk6IHRoaXMucXVlcnkkLCByZXNldDogdGhpcy5yZXNldCQgfSkucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuI3NldEJ1c3kodHJ1ZSkpLFxuICAgICAgICBkZWJvdW5jZVRpbWUoREVCT1VOQ0VfVElNRSksXG4gICAgICAgIHN3aXRjaE1hcCgoeyBxdWVyeSB9KSA9PlxuICAgICAgICAgICAgLy8gVE9ETzogbWF5YmUgaGFzU2xpY2UgKyBnZXRTbGljZVxuICAgICAgICAgICAgdGhpcy5zdG9yZS5nZXRTbGljZShxdWVyeS5zbGljZSkucGlwZShcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoaXRlbXMgPT4ge1xuICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBlbmRSZWFjaGVkXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGhhc01pc3NpbmcgPSBpdGVtcy5zb21lKHYgPT4gdiA9PSBudWxsKVxuICAgICAgICAgICAgICAgICAgICBpZiAoaGFzTWlzc2luZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvdmlkZXIucXVlcnlMaXN0KHF1ZXJ5KS5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaE1hcChyZXN1bHQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0LnRvdGFsICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG90YWwkLm5leHQocmVzdWx0LnRvdGFsKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnN0b3JlLmluc2VydFNsaWNlKHF1ZXJ5LnNsaWNlLCByZXN1bHQuaXRlbXMpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvZihpdGVtcylcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICksXG4gICAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMuI3NldEJ1c3koZmFsc2UpKSxcbiAgICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApXG5cbiAgICByZWFkb25seSBzdG9yZTogQ29sbGVjdGlvblN0b3JlPFQ+XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBwcm92aWRlcjogRGF0YVByb3ZpZGVyPFQ+LFxuICAgICAgICBzdG9yZT86IENvbGxlY3Rpb25TdG9yZTxUPlxuICAgICkge1xuICAgICAgICBzdXBlcigpXG4gICAgICAgIGlmIChzdG9yZSA9PSBudWxsKSB7XG4gICAgICAgICAgICBzdG9yZSA9IG5ldyBNZW1vcnlTdG9yZSgpXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zdG9yZSA9IHN0b3JlXG4gICAgfVxuXG4gICAgc2V0U2xpY2Uoc2xpY2U6IFNsaWNlKSB7XG4gICAgICAgIHRoaXMuI3NsaWNlLm5leHQoc2xpY2UpXG4gICAgICAgIHJldHVybiB0aGlzXG4gICAgfVxuXG4gICAgcmVhbG9kKCkge1xuICAgICAgICB0aGlzLiNyZWxvYWQubmV4dCgpXG4gICAgfVxuXG4gICAgZ2V0SXRlbShyZWY6IE1vZGVsUmVmKTogT2JzZXJ2YWJsZTxUIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIGNvbnN0IHJlZm4gPSB0aGlzLnByb3ZpZGVyLm1ldGEubm9ybWFsaXplUmVmKHJlZilcbiAgICAgICAgcmV0dXJuIHRoaXMuI3N0b3JlRmlyc3QoXG4gICAgICAgICAgICBxdWVyeSA9PiB0aGlzLnN0b3JlLmdldChyZWZuKSxcbiAgICAgICAgICAgIHF1ZXJ5ID0+IHRoaXMucHJvdmlkZXIucXVlcnlJdGVtKHJlZm4sIHF1ZXJ5KVxuICAgICAgICApXG4gICAgfVxuXG4gICAgZ2V0SXRlbVBvc2l0aW9uKHJlZjogTW9kZWxSZWYpOiBPYnNlcnZhYmxlPG51bWJlciB8IHVuZGVmaW5lZD4ge1xuICAgICAgICBjb25zdCByZWZuID0gdGhpcy5wcm92aWRlci5tZXRhLm5vcm1hbGl6ZVJlZihyZWYpXG4gICAgICAgIHJldHVybiB0aGlzLiNzdG9yZUZpcnN0KFxuICAgICAgICAgICAgcXVlcnkgPT4gdGhpcy5zdG9yZS5pbmRleE9mKHJlZm4pLnBpcGUobWFwKGkgPT4gKGkgPCAwID8gdW5kZWZpbmVkIDogaSkpKSxcbiAgICAgICAgICAgIHF1ZXJ5ID0+IHRoaXMucHJvdmlkZXIucXVlcnlQb3NpdGlvbihyZWZuLCBxdWVyeSlcbiAgICAgICAgKVxuICAgIH1cblxuICAgIHJlYWxvZEl0ZW0ocmVmOiBNb2RlbFJlZiwgaW5zZXJ0UG9zaXRpb24/OiBudW1iZXIpOiBPYnNlcnZhYmxlPFQgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgY29uc3QgcmVmbiA9IHRoaXMucHJvdmlkZXIubWV0YS5ub3JtYWxpemVSZWYocmVmKVxuICAgICAgICByZXR1cm4gdGhpcy5xdWVyeSQucGlwZShcbiAgICAgICAgICAgIHN3aXRjaE1hcChxdWVyeSA9PiB0aGlzLnByb3ZpZGVyLnF1ZXJ5SXRlbShyZWZuLCBxdWVyeSkpLFxuICAgICAgICAgICAgc3dpdGNoTWFwKGl0ZW0gPT5cbiAgICAgICAgICAgICAgICBpdGVtICE9IG51bGwgPyB0aGlzLnN0b3JlLnVwZGF0ZU9ySW5zZXJ0KHJlZm4sIGl0ZW0sIGluc2VydFBvc2l0aW9uKS5waXBlKG1hcCgoKSA9PiBpdGVtKSkgOiBvZihpdGVtKVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHRha2UoMSlcbiAgICAgICAgKVxuICAgIH1cblxuICAgICNzdG9yZUZpcnN0PFg+KFxuICAgICAgICBzdG9yZUZuOiAocXVlcnk6IFF1ZXJ5PFQ+KSA9PiBPYnNlcnZhYmxlPFg+LFxuICAgICAgICBzZWxmRm46IChxdWVyeTogUXVlcnk8VD4pID0+IE9ic2VydmFibGU8WD5cbiAgICApOiBPYnNlcnZhYmxlPFg+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucXVlcnkkLnBpcGUoXG4gICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgc3dpdGNoTWFwKHF1ZXJ5ID0+IHN0b3JlRm4ocXVlcnkpLnBpcGUoc3dpdGNoTWFwKHJlc3VsdCA9PiAocmVzdWx0ID09IG51bGwgPyBzZWxmRm4ocXVlcnkpIDogb2YocmVzdWx0KSkpKSlcbiAgICAgICAgKVxuICAgIH1cblxuICAgICNzZXRCdXN5KGJ1c3k6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHRoaXMucHJvdmlkZXIuaXNBc3luYykge1xuICAgICAgICAgICAgaWYgKHRoaXMuYnVzeSQudmFsdWUgIT09IGJ1c3kpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmJ1c3kkLm5leHQoYnVzeSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICNjdlN1YnMgPSBuZXcgTWFwPENvbGxlY3Rpb25WaWV3ZXIsIFN1YmplY3Q8dm9pZD4+KClcblxuICAgIG92ZXJyaWRlIGNvbm5lY3QoY29sbGVjdGlvblZpZXdlcjogQ29sbGVjdGlvblZpZXdlcik6IE9ic2VydmFibGU8cmVhZG9ubHkgKFQgfCB1bmRlZmluZWQpW10+IHtcbiAgICAgICAgY29uc3QgdW50aWwgPSBuZXcgU3ViamVjdDx2b2lkPigpXG5cbiAgICAgICAgdGhpcy4jY3ZTdWJzLmdldChjb2xsZWN0aW9uVmlld2VyKT8ubmV4dCgpXG4gICAgICAgIHRoaXMuI2N2U3Vicy5zZXQoY29sbGVjdGlvblZpZXdlciwgdW50aWwpXG5cbiAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChzdWJzY3JpYmVyOiBTdWJzY3JpYmVyPHJlYWRvbmx5IChUIHwgdW5kZWZpbmVkKVtdPikgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3ViMSA9IGNvbGxlY3Rpb25WaWV3ZXIudmlld0NoYW5nZS5zdWJzY3JpYmUodGhpcy4jc2xpY2UpXG4gICAgICAgICAgICBjb25zdCBzdWIyID0gdGhpcy5pdGVtcyQuc3Vic2NyaWJlKHN1YnNjcmliZXIpXG5cbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuI2N2U3Vicy5nZXQoY29sbGVjdGlvblZpZXdlcikgPT09IHVudGlsKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuI2N2U3Vicy5kZWxldGUoY29sbGVjdGlvblZpZXdlcilcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc3ViMS51bnN1YnNjcmliZSgpXG4gICAgICAgICAgICAgICAgc3ViMi51bnN1YnNjcmliZSgpXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLnBpcGUodGFrZVVudGlsKHVudGlsKSlcbiAgICB9XG5cbiAgICBvdmVycmlkZSBkaXNjb25uZWN0KGNvbGxlY3Rpb25WaWV3ZXI6IENvbGxlY3Rpb25WaWV3ZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy4jY3ZTdWJzLmdldChjb2xsZWN0aW9uVmlld2VyKT8ubmV4dCgpXG4gICAgICAgIHRoaXMuI2N2U3Vicy5kZWxldGUoY29sbGVjdGlvblZpZXdlcilcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,3 @@
1
+ export class CollectionStore {
2
+ }
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi1zdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RhdGEvc3JjL3N0b3JlL2NvbGxlY3Rpb24tc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EsTUFBTSxPQUFnQixlQUFlO0NBbURwQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiXG5cbmltcG9ydCB7IERlZXBSZWFkb25seSB9IGZyb20gXCJAbmd1dGlsL2NvbW1vblwiXG5cbmltcG9ydCB7IE1vZGVsLCBNb2RlbFJlZk5vcm0gfSBmcm9tIFwiLi4vbW9kZWxcIlxuaW1wb3J0IHsgU2xpY2UgfSBmcm9tIFwiLi4vcXVlcnlcIlxuXG5leHBvcnQgdHlwZSBQYXJ0aWFsQ29sbGVjdGlvbjxUPiA9IHJlYWRvbmx5IChUIHwgdW5kZWZpbmVkKVtdXG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDb2xsZWN0aW9uU3RvcmU8VCBleHRlbmRzIE1vZGVsPiB7XG4gICAgLyoqXG4gICAgICogVXBkYXRlIHRoZSBnaXZlbiBzbGljZSwgYW5kIHJldHVybiBhbGwgaXRlbXMgb2JzZXJ2YWJsZVxuICAgICAqL1xuICAgIGFic3RyYWN0IGluc2VydFNsaWNlKHNsaWNlOiBEZWVwUmVhZG9ubHk8U2xpY2U+LCBpdGVtczogcmVhZG9ubHkgVFtdKTogT2JzZXJ2YWJsZTxQYXJ0aWFsQ29sbGVjdGlvbjxUPj5cblxuICAgIC8qKlxuICAgICAqIEByZXR1cm5zIGB0cnVlYCB3aGVuIHRoZSBnaXZlbiBzbGljZSBpcyBhdmFpbGFibGUgaW4gdGhlIGNhY2hlXG4gICAgICovXG4gICAgYWJzdHJhY3QgaGFzU2xpY2Uoc2xpY2U6IERlZXBSZWFkb25seTxTbGljZT4pOiBPYnNlcnZhYmxlPGJvb2xlYW4+XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyBpdGVtcyBieSB0aGUgZ2l2ZW4gc2xpY2VcbiAgICAgKi9cbiAgICBhYnN0cmFjdCBnZXRTbGljZShzbGljZTogRGVlcFJlYWRvbmx5PFNsaWNlPik6IE9ic2VydmFibGU8UGFydGlhbENvbGxlY3Rpb248VD4+XG5cbiAgICAvKipcbiAgICAgKiBHZXQgaXRlbSBmcm9tIGNvbGxlY3Rpb25cbiAgICAgKi9cbiAgICBhYnN0cmFjdCBnZXQocmVmOiBNb2RlbFJlZk5vcm0pOiBPYnNlcnZhYmxlPFQgfCB1bmRlZmluZWQ+XG5cbiAgICAvKipcbiAgICAgKiBHZXQgaW5kZXggb2YgaXRlbSBpbiBjb2xsZWN0aW9uLCAtMSBpZiBub3QgZm91bmRcbiAgICAgKi9cbiAgICBhYnN0cmFjdCBpbmRleE9mKHJlZjogTW9kZWxSZWZOb3JtKTogT2JzZXJ2YWJsZTxudW1iZXI+XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGUgaXRlbSBpbiBjb2xsZWN0aW9uXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB0aGUgdXBkYXRlZCBpbmRleCwgb3IgLTEgaWYgbm90IGZvdW5kXG4gICAgICovXG4gICAgYWJzdHJhY3QgdXBkYXRlKHJlZjogTW9kZWxSZWZOb3JtLCBpdGVtOiBUKTogT2JzZXJ2YWJsZTxudW1iZXI+XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGUgaXRlbSBpZiBleGlzdHMgaW4gY29sbGVjdGlvbiwgb3IgaW5zZXJ0IGF0IHRoZSBnaXZlbiBwb3NpdGlvblxuICAgICAqXG4gICAgICogQHBhcmFtIHBvc2l0aW9uIElmIHBvc2l0b24gaXMgbmVnYXRpdmUsIGluc2VydCBhdCB0aGUgZW5kIG9mIGNvbGxlY3Rpb25cbiAgICAgKiBAcmV0dXJucyB0aGUgdXBkYXRlZCBpbmRleCBvciBpbmRleCBvZiB3aGVyZSB0byBpbnNlcnRcbiAgICAgKi9cbiAgICBhYnN0cmFjdCB1cGRhdGVPckluc2VydChyZWY6IE1vZGVsUmVmTm9ybSwgaXRlbTogVCwgcG9zaXRpb24/OiBudW1iZXIpOiBPYnNlcnZhYmxlPG51bWJlcj5cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZSBpdGVtIGZyb20gY29sbGVjdGlvblxuICAgICAqIEByZXR1cm5zIHRoZSBpbmRleCBvZiBkZWxldGVkIGl0ZW0sIC0xIGlmIG5vdCBmb3VuZFxuICAgICAqL1xuICAgIGFic3RyYWN0IGRlbChyZWY6IE1vZGVsUmVmTm9ybSk6IE9ic2VydmFibGU8bnVtYmVyPlxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBhbGwgaXRlbXMgZnJvbSBjb2xsZWN0aW9uXG4gICAgICovXG4gICAgYWJzdHJhY3QgY2xlYXIoKTogT2JzZXJ2YWJsZTx2b2lkPlxufVxuIl19
@@ -0,0 +1,3 @@
1
+ export { CollectionStore } from "./collection-store";
2
+ export { MemoryStore } from "./memory-store";
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYXRhL3NyYy9zdG9yZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFxQixNQUFNLG9CQUFvQixDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IENvbGxlY3Rpb25TdG9yZSwgUGFydGlhbENvbGxlY3Rpb24gfSBmcm9tIFwiLi9jb2xsZWN0aW9uLXN0b3JlXCJcbmV4cG9ydCB7IE1lbW9yeVN0b3JlIH0gZnJvbSBcIi4vbWVtb3J5LXN0b3JlXCJcbiJdfQ==