@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.
- package/esm2022/index.mjs +6 -3
- package/esm2022/provider/array.mjs +9 -0
- package/esm2022/provider/index.mjs +5 -0
- package/esm2022/provider/local.mjs +26 -0
- package/esm2022/provider/observable.mjs +8 -0
- package/esm2022/provider/provider.mjs +10 -0
- package/esm2022/source/index.mjs +3 -0
- package/esm2022/source/properties/abstract.mjs +33 -0
- package/esm2022/source/properties/filter.mjs +16 -0
- package/esm2022/source/properties/grouper.mjs +16 -0
- package/esm2022/source/properties/index.mjs +5 -0
- package/esm2022/source/properties/slimer.mjs +16 -0
- package/esm2022/source/properties/sorter.mjs +16 -0
- package/esm2022/source/proxy.directive.mjs +152 -0
- package/esm2022/source/source.mjs +108 -0
- package/esm2022/store/collection-store.mjs +3 -0
- package/esm2022/store/index.mjs +3 -0
- package/esm2022/store/memory-store.mjs +79 -0
- package/fesm2022/ngutil-data.mjs +957 -166
- package/fesm2022/ngutil-data.mjs.map +1 -1
- package/index.d.ts +5 -2
- package/package.json +2 -2
- package/provider/array.d.ts +7 -0
- package/provider/index.d.ts +4 -0
- package/provider/local.d.ts +15 -0
- package/provider/observable.d.ts +7 -0
- package/provider/provider.d.ts +31 -0
- package/source/index.d.ts +2 -0
- package/source/properties/abstract.d.ts +17 -0
- package/source/properties/filter.d.ts +11 -0
- package/source/properties/grouper.d.ts +11 -0
- package/source/properties/index.d.ts +4 -0
- package/source/properties/slimer.d.ts +11 -0
- package/source/properties/sorter.d.ts +11 -0
- package/source/proxy.directive.d.ts +57 -0
- package/source/source.d.ts +35 -0
- package/store/collection-store.d.ts +49 -0
- package/store/index.d.ts +2 -0
- package/store/memory-store.d.ts +16 -0
package/esm2022/index.mjs
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
|
|
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==
|