@dereekb/dbx-firebase 9.19.4 → 9.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/model/index.mjs +2 -2
- package/esm2020/lib/model/model.module.mjs +6 -5
- package/esm2020/lib/model/modules/index.mjs +3 -0
- package/esm2020/lib/model/modules/model/index.mjs +6 -0
- package/esm2020/lib/model/modules/model/model.tracker.service.mjs +30 -0
- package/esm2020/lib/model/modules/model/model.types.list.component.mjs +67 -0
- package/esm2020/lib/model/modules/model/model.types.module.mjs +21 -0
- package/esm2020/lib/model/modules/model/model.types.service.mjs +114 -0
- package/esm2020/lib/model/modules/model/model.types.view.directive.mjs +48 -0
- package/esm2020/lib/model/modules/store/index.mjs +17 -0
- package/esm2020/lib/model/modules/store/model.store.module.mjs +23 -0
- package/esm2020/lib/model/modules/store/store.collection.change.directive.mjs +52 -0
- package/esm2020/lib/model/modules/store/store.collection.change.if.directive.mjs +57 -0
- package/esm2020/lib/model/modules/store/store.collection.directive.mjs +54 -0
- package/esm2020/lib/model/{store → modules/store}/store.collection.list.directive.mjs +1 -1
- package/esm2020/lib/model/modules/store/store.collection.mjs +55 -0
- package/esm2020/lib/model/modules/store/store.document.auth.directive.mjs +33 -0
- package/esm2020/lib/model/modules/store/store.document.crud.mjs +80 -0
- package/esm2020/lib/model/modules/store/store.document.directive.mjs +61 -0
- package/esm2020/lib/model/modules/store/store.document.mjs +109 -0
- package/esm2020/lib/model/modules/store/store.document.router.directive.mjs +67 -0
- package/esm2020/lib/model/modules/store/store.document.router.key.directive.mjs +67 -0
- package/esm2020/lib/model/modules/store/store.subcollection.directive.mjs +30 -0
- package/esm2020/lib/model/modules/store/store.subcollection.document.mjs +98 -0
- package/esm2020/lib/model/modules/store/store.subcollection.mjs +79 -0
- package/esm2020/lib/model/modules/store/store.subcollection.rxjs.mjs +23 -0
- package/esm2020/lib/model/service/index.mjs +3 -1
- package/esm2020/lib/model/service/model.context.instance.mjs +54 -0
- package/esm2020/lib/model/service/model.context.mjs +2 -35
- package/esm2020/lib/model/service/model.context.service.mjs +38 -0
- package/esm2020/lib/model/system/systemstate.collection.store.directive.mjs +2 -2
- package/esm2020/lib/model/system/systemstate.collection.store.mjs +2 -2
- package/esm2020/lib/model/system/systemstate.document.store.directive.mjs +2 -2
- package/esm2020/lib/model/system/systemstate.document.store.mjs +2 -2
- package/esm2020/lib/router/id.param.redirect.mjs +11 -6
- package/fesm2015/dereekb-dbx-firebase.mjs +439 -74
- package/fesm2015/dereekb-dbx-firebase.mjs.map +1 -1
- package/fesm2020/dereekb-dbx-firebase.mjs +438 -74
- package/fesm2020/dereekb-dbx-firebase.mjs.map +1 -1
- package/lib/model/index.d.ts +1 -1
- package/lib/model/model.module.d.ts +3 -2
- package/lib/model/modules/index.d.ts +2 -0
- package/lib/model/modules/model/index.d.ts +5 -0
- package/lib/model/modules/model/model.tracker.service.d.ts +13 -0
- package/lib/model/modules/model/model.types.list.component.d.ts +22 -0
- package/lib/model/modules/model/model.types.module.d.ts +10 -0
- package/lib/model/modules/model/model.types.service.d.ts +88 -0
- package/lib/model/modules/model/model.types.view.directive.d.ts +18 -0
- package/lib/model/{store → modules/store}/index.d.ts +1 -0
- package/lib/model/modules/store/model.store.module.d.ts +12 -0
- package/lib/model/{store → modules/store}/store.collection.change.directive.d.ts +1 -1
- package/lib/model/{store → modules/store}/store.collection.change.if.directive.d.ts +0 -0
- package/lib/model/{store → modules/store}/store.collection.d.ts +2 -2
- package/lib/model/{store → modules/store}/store.collection.directive.d.ts +1 -1
- package/lib/model/{store → modules/store}/store.collection.list.directive.d.ts +0 -0
- package/lib/model/{store → modules/store}/store.document.auth.directive.d.ts +1 -1
- package/lib/model/{store → modules/store}/store.document.crud.d.ts +0 -0
- package/lib/model/{store → modules/store}/store.document.d.ts +6 -1
- package/lib/model/{store → modules/store}/store.document.directive.d.ts +5 -3
- package/lib/model/{store → modules/store}/store.document.router.directive.d.ts +0 -0
- package/lib/model/modules/store/store.document.router.key.directive.d.ts +31 -0
- package/lib/model/{store → modules/store}/store.subcollection.d.ts +0 -0
- package/lib/model/{store → modules/store}/store.subcollection.directive.d.ts +0 -0
- package/lib/model/{store → modules/store}/store.subcollection.document.d.ts +0 -0
- package/lib/model/{store → modules/store}/store.subcollection.rxjs.d.ts +0 -0
- package/lib/model/service/index.d.ts +2 -0
- package/lib/model/service/model.context.d.ts +16 -16
- package/lib/model/service/model.context.instance.d.ts +31 -0
- package/lib/model/service/model.context.service.d.ts +31 -0
- package/lib/model/system/systemstate.collection.store.d.ts +1 -1
- package/lib/model/system/systemstate.collection.store.directive.d.ts +1 -1
- package/lib/model/system/systemstate.document.store.d.ts +1 -1
- package/lib/model/system/systemstate.document.store.directive.d.ts +1 -1
- package/lib/router/id.param.redirect.d.ts +11 -2
- package/package.json +5 -5
- package/esm2020/lib/model/store/index.mjs +0 -16
- package/esm2020/lib/model/store/model.store.module.mjs +0 -21
- package/esm2020/lib/model/store/store.collection.change.directive.mjs +0 -52
- package/esm2020/lib/model/store/store.collection.change.if.directive.mjs +0 -57
- package/esm2020/lib/model/store/store.collection.directive.mjs +0 -54
- package/esm2020/lib/model/store/store.collection.mjs +0 -55
- package/esm2020/lib/model/store/store.document.auth.directive.mjs +0 -33
- package/esm2020/lib/model/store/store.document.crud.mjs +0 -80
- package/esm2020/lib/model/store/store.document.directive.mjs +0 -59
- package/esm2020/lib/model/store/store.document.mjs +0 -108
- package/esm2020/lib/model/store/store.document.router.directive.mjs +0 -67
- package/esm2020/lib/model/store/store.subcollection.directive.mjs +0 -30
- package/esm2020/lib/model/store/store.subcollection.document.mjs +0 -98
- package/esm2020/lib/model/store/store.subcollection.mjs +0 -79
- package/esm2020/lib/model/store/store.subcollection.rxjs.mjs +0 -23
- package/lib/model/store/model.store.module.d.ts +0 -11
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { Directive, Host, Input } from '@angular/core';
|
|
2
|
+
import { DbxRouterService, AbstractSubscriptionDirective } from '@dereekb/dbx-core';
|
|
3
|
+
import { DbxFirebaseDocumentStoreDirective } from './store.document.directive';
|
|
4
|
+
import { dbxFirebaseKeyRouteParamRedirect } from '../../../router';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "./store.document.directive";
|
|
7
|
+
import * as i2 from "@dereekb/dbx-core";
|
|
8
|
+
/**
|
|
9
|
+
* Used for synchronizing the document store key to the param of the route. The param is interpreted as a TwoWayFlatFirestoreModelKey.
|
|
10
|
+
*/
|
|
11
|
+
export class DbxFirebaseDocumentStoreRouteKeyDirective extends AbstractSubscriptionDirective {
|
|
12
|
+
constructor(dbxFirebaseDocumentStoreDirective, dbxRouterService) {
|
|
13
|
+
super();
|
|
14
|
+
this.dbxFirebaseDocumentStoreDirective = dbxFirebaseDocumentStoreDirective;
|
|
15
|
+
this.dbxRouterService = dbxRouterService;
|
|
16
|
+
this._redirectInstance = dbxFirebaseKeyRouteParamRedirect(this.dbxRouterService);
|
|
17
|
+
this.keyFromParams$ = this._redirectInstance.paramValue$;
|
|
18
|
+
this.key$ = this._redirectInstance.value$;
|
|
19
|
+
}
|
|
20
|
+
ngOnInit() {
|
|
21
|
+
this.sub = this.dbxFirebaseDocumentStoreDirective.store.setFlatKey(this.keyFromParams$); // use from the params, as the params should get updated eventually to the key$ value
|
|
22
|
+
this._redirectInstance.init();
|
|
23
|
+
}
|
|
24
|
+
ngOnDestroy() {
|
|
25
|
+
super.ngOnDestroy();
|
|
26
|
+
this._redirectInstance.destroy();
|
|
27
|
+
}
|
|
28
|
+
// MARK: Input
|
|
29
|
+
get keyParam() {
|
|
30
|
+
return this._redirectInstance.paramKey;
|
|
31
|
+
}
|
|
32
|
+
set keyParam(keyParam) {
|
|
33
|
+
this._redirectInstance.paramKey = keyParam;
|
|
34
|
+
}
|
|
35
|
+
set dbxFirebaseDocumentStoreRouteKeyDefault(defaultValue) {
|
|
36
|
+
this._redirectInstance.setDefaultValue(defaultValue);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Whether or not to enable the redirection. Is enabled by default.
|
|
40
|
+
*/
|
|
41
|
+
set dbxFirebaseDocumentStoreRouteKeyDefaultRedirect(redirect) {
|
|
42
|
+
this._redirectInstance.setRedirectEnabled(redirect !== false); // true by default
|
|
43
|
+
}
|
|
44
|
+
set dbxFirebaseDocumentStoreRouteKeyDefaultDecision(decider) {
|
|
45
|
+
this._redirectInstance.setDecider(decider);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
DbxFirebaseDocumentStoreRouteKeyDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseDocumentStoreRouteKeyDirective, deps: [{ token: i1.DbxFirebaseDocumentStoreDirective, host: true }, { token: i2.DbxRouterService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
49
|
+
DbxFirebaseDocumentStoreRouteKeyDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: DbxFirebaseDocumentStoreRouteKeyDirective, selector: "[dbxFirebaseDocumentStoreRouteKey]", inputs: { keyParam: ["dbxFirebaseDocumentStoreRouteKey", "keyParam"], dbxFirebaseDocumentStoreRouteKeyDefault: "dbxFirebaseDocumentStoreRouteKeyDefault", dbxFirebaseDocumentStoreRouteKeyDefaultRedirect: "dbxFirebaseDocumentStoreRouteKeyDefaultRedirect", dbxFirebaseDocumentStoreRouteKeyDefaultDecision: "dbxFirebaseDocumentStoreRouteKeyDefaultDecision" }, usesInheritance: true, ngImport: i0 });
|
|
50
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseDocumentStoreRouteKeyDirective, decorators: [{
|
|
51
|
+
type: Directive,
|
|
52
|
+
args: [{
|
|
53
|
+
selector: '[dbxFirebaseDocumentStoreRouteKey]'
|
|
54
|
+
}]
|
|
55
|
+
}], ctorParameters: function () { return [{ type: i1.DbxFirebaseDocumentStoreDirective, decorators: [{
|
|
56
|
+
type: Host
|
|
57
|
+
}] }, { type: i2.DbxRouterService }]; }, propDecorators: { keyParam: [{
|
|
58
|
+
type: Input,
|
|
59
|
+
args: ['dbxFirebaseDocumentStoreRouteKey']
|
|
60
|
+
}], dbxFirebaseDocumentStoreRouteKeyDefault: [{
|
|
61
|
+
type: Input
|
|
62
|
+
}], dbxFirebaseDocumentStoreRouteKeyDefaultRedirect: [{
|
|
63
|
+
type: Input
|
|
64
|
+
}], dbxFirebaseDocumentStoreRouteKeyDefaultDecision: [{
|
|
65
|
+
type: Input
|
|
66
|
+
}] } });
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuZG9jdW1lbnQucm91dGVyLmtleS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9tb2R1bGVzL3N0b3JlL3N0b3JlLmRvY3VtZW50LnJvdXRlci5rZXkuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBYSxTQUFTLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRixPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUcvRSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQUduRTs7R0FFRztBQUlILE1BQU0sT0FBTyx5Q0FBdUQsU0FBUSw2QkFBNkI7SUFLdkcsWUFBNkIsaUNBQXVFLEVBQVcsZ0JBQWtDO1FBQy9JLEtBQUssRUFBRSxDQUFDO1FBRG1CLHNDQUFpQyxHQUFqQyxpQ0FBaUMsQ0FBc0M7UUFBVyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBSnpJLHNCQUFpQixHQUFHLGdDQUFnQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzNFLG1CQUFjLEdBQWdDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUM7UUFDakYsU0FBSSxHQUFtRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDO0lBSTlGLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsaUNBQWlDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxxRkFBcUY7UUFDOUssSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFUSxXQUFXO1FBQ2xCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELGNBQWM7SUFDZCxJQUNJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUM7SUFDekMsQ0FBQztJQUVELElBQUksUUFBUSxDQUFDLFFBQWdCO1FBQzNCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzdDLENBQUM7SUFFRCxJQUNJLHVDQUF1QyxDQUFDLFlBQW9EO1FBQzlGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFDSSwrQ0FBK0MsQ0FBQyxRQUE2QjtRQUMvRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLENBQUMsUUFBUSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsa0JBQWtCO0lBQ25GLENBQUM7SUFFRCxJQUNJLCtDQUErQyxDQUFDLE9BQTREO1FBQzlHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0MsQ0FBQzs7dUlBN0NVLHlDQUF5QzsySEFBekMseUNBQXlDOzRGQUF6Qyx5Q0FBeUM7a0JBSHJELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9DQUFvQztpQkFDL0M7OzBCQU1jLElBQUk7MkVBZ0JiLFFBQVE7c0JBRFgsS0FBSzt1QkFBQyxrQ0FBa0M7Z0JBVXJDLHVDQUF1QztzQkFEMUMsS0FBSztnQkFTRiwrQ0FBK0M7c0JBRGxELEtBQUs7Z0JBTUYsK0NBQStDO3NCQURsRCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgT25EZXN0cm95LCBEaXJlY3RpdmUsIEhvc3QsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERieFJvdXRlclNlcnZpY2UsIEFic3RyYWN0U3Vic2NyaXB0aW9uRGlyZWN0aXZlIH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRGlyZWN0aXZlIH0gZnJvbSAnLi9zdG9yZS5kb2N1bWVudC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTWF5YmUsIE1vZGVsS2V5IH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBNYXliZU9ic2VydmFibGVPclZhbHVlR2V0dGVyLCBTd2l0Y2hNYXBUb0RlZmF1bHRGaWx0ZXJGdW5jdGlvbiB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgZGJ4RmlyZWJhc2VLZXlSb3V0ZVBhcmFtUmVkaXJlY3QgfSBmcm9tICcuLi8uLi8uLi9yb3V0ZXInO1xuaW1wb3J0IHsgVHdvV2F5RmxhdEZpcmVzdG9yZU1vZGVsS2V5IH0gZnJvbSAnQGRlcmVla2IvZmlyZWJhc2UnO1xuXG4vKipcbiAqIFVzZWQgZm9yIHN5bmNocm9uaXppbmcgdGhlIGRvY3VtZW50IHN0b3JlIGtleSB0byB0aGUgcGFyYW0gb2YgdGhlIHJvdXRlLiBUaGUgcGFyYW0gaXMgaW50ZXJwcmV0ZWQgYXMgYSBUd29XYXlGbGF0RmlyZXN0b3JlTW9kZWxLZXkuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tkYnhGaXJlYmFzZURvY3VtZW50U3RvcmVSb3V0ZUtleV0nXG59KVxuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZVJvdXRlS2V5RGlyZWN0aXZlPFQgPSB1bmtub3duPiBleHRlbmRzIEFic3RyYWN0U3Vic2NyaXB0aW9uRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIF9yZWRpcmVjdEluc3RhbmNlID0gZGJ4RmlyZWJhc2VLZXlSb3V0ZVBhcmFtUmVkaXJlY3QodGhpcy5kYnhSb3V0ZXJTZXJ2aWNlKTtcbiAgcmVhZG9ubHkga2V5RnJvbVBhcmFtcyQ6IE9ic2VydmFibGU8TWF5YmU8TW9kZWxLZXk+PiA9IHRoaXMuX3JlZGlyZWN0SW5zdGFuY2UucGFyYW1WYWx1ZSQ7XG4gIHJlYWRvbmx5IGtleSQ6IE9ic2VydmFibGU8TWF5YmU8VHdvV2F5RmxhdEZpcmVzdG9yZU1vZGVsS2V5Pj4gPSB0aGlzLl9yZWRpcmVjdEluc3RhbmNlLnZhbHVlJDtcblxuICBjb25zdHJ1Y3RvcihASG9zdCgpIHJlYWRvbmx5IGRieEZpcmViYXNlRG9jdW1lbnRTdG9yZURpcmVjdGl2ZTogRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRGlyZWN0aXZlPFQ+LCByZWFkb25seSBkYnhSb3V0ZXJTZXJ2aWNlOiBEYnhSb3V0ZXJTZXJ2aWNlKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3ViID0gdGhpcy5kYnhGaXJlYmFzZURvY3VtZW50U3RvcmVEaXJlY3RpdmUuc3RvcmUuc2V0RmxhdEtleSh0aGlzLmtleUZyb21QYXJhbXMkKTsgLy8gdXNlIGZyb20gdGhlIHBhcmFtcywgYXMgdGhlIHBhcmFtcyBzaG91bGQgZ2V0IHVwZGF0ZWQgZXZlbnR1YWxseSB0byB0aGUga2V5JCB2YWx1ZVxuICAgIHRoaXMuX3JlZGlyZWN0SW5zdGFuY2UuaW5pdCgpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB0aGlzLl9yZWRpcmVjdEluc3RhbmNlLmRlc3Ryb3koKTtcbiAgfVxuXG4gIC8vIE1BUks6IElucHV0XG4gIEBJbnB1dCgnZGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlUm91dGVLZXknKVxuICBnZXQga2V5UGFyYW0oKSB7XG4gICAgcmV0dXJuIHRoaXMuX3JlZGlyZWN0SW5zdGFuY2UucGFyYW1LZXk7XG4gIH1cblxuICBzZXQga2V5UGFyYW0oa2V5UGFyYW06IHN0cmluZykge1xuICAgIHRoaXMuX3JlZGlyZWN0SW5zdGFuY2UucGFyYW1LZXkgPSBrZXlQYXJhbTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBkYnhGaXJlYmFzZURvY3VtZW50U3RvcmVSb3V0ZUtleURlZmF1bHQoZGVmYXVsdFZhbHVlOiBNYXliZU9ic2VydmFibGVPclZhbHVlR2V0dGVyPE1vZGVsS2V5Pikge1xuICAgIHRoaXMuX3JlZGlyZWN0SW5zdGFuY2Uuc2V0RGVmYXVsdFZhbHVlKGRlZmF1bHRWYWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gZW5hYmxlIHRoZSByZWRpcmVjdGlvbi4gSXMgZW5hYmxlZCBieSBkZWZhdWx0LlxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IGRieEZpcmViYXNlRG9jdW1lbnRTdG9yZVJvdXRlS2V5RGVmYXVsdFJlZGlyZWN0KHJlZGlyZWN0OiBNYXliZTxib29sZWFuPiB8ICcnKSB7XG4gICAgdGhpcy5fcmVkaXJlY3RJbnN0YW5jZS5zZXRSZWRpcmVjdEVuYWJsZWQocmVkaXJlY3QgIT09IGZhbHNlKTsgLy8gdHJ1ZSBieSBkZWZhdWx0XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgZGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlUm91dGVLZXlEZWZhdWx0RGVjaXNpb24oZGVjaWRlcjogc3RyaW5nIHwgU3dpdGNoTWFwVG9EZWZhdWx0RmlsdGVyRnVuY3Rpb248TW9kZWxLZXk+KSB7XG4gICAgdGhpcy5fcmVkaXJlY3RJbnN0YW5jZS5zZXREZWNpZGVyKGRlY2lkZXIpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Directive, forwardRef, Input } from '@angular/core';
|
|
2
|
+
import { DbxFirebaseCollectionStoreDirective, provideDbxFirebaseCollectionStoreDirective } from './store.collection.directive';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* Abstract directive that contains a DbxFirebaseCollectionWithParentStore and provides an interface for communicating with other directives.
|
|
6
|
+
*/
|
|
7
|
+
export class DbxFirebaseCollectionWithParentStoreDirective extends DbxFirebaseCollectionStoreDirective {
|
|
8
|
+
// MARK: Inputs
|
|
9
|
+
set sourceMode(sourceMode) {
|
|
10
|
+
this.store.setSourceMode(sourceMode);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
DbxFirebaseCollectionWithParentStoreDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseCollectionWithParentStoreDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
14
|
+
DbxFirebaseCollectionWithParentStoreDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: DbxFirebaseCollectionWithParentStoreDirective, inputs: { sourceMode: "sourceMode" }, usesInheritance: true, ngImport: i0 });
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseCollectionWithParentStoreDirective, decorators: [{
|
|
16
|
+
type: Directive
|
|
17
|
+
}], propDecorators: { sourceMode: [{
|
|
18
|
+
type: Input
|
|
19
|
+
}] } });
|
|
20
|
+
export function provideDbxFirebaseCollectionWithParentStoreDirective(sourceType, storeType) {
|
|
21
|
+
const providers = [
|
|
22
|
+
...provideDbxFirebaseCollectionStoreDirective(sourceType, storeType),
|
|
23
|
+
{
|
|
24
|
+
provide: DbxFirebaseCollectionWithParentStoreDirective,
|
|
25
|
+
useExisting: forwardRef(() => sourceType)
|
|
26
|
+
}
|
|
27
|
+
];
|
|
28
|
+
return providers;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuc3ViY29sbGVjdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9tb2R1bGVzL3N0b3JlL3N0b3JlLnN1YmNvbGxlY3Rpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBa0IsTUFBTSxlQUFlLENBQUM7QUFHN0UsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLDBDQUEwQyxFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBRy9IOztHQUVHO0FBRUgsTUFBTSxPQUFnQiw2Q0FBeVIsU0FBUSxtQ0FBNEM7SUFDalcsZUFBZTtJQUNmLElBQ0ksVUFBVSxDQUFDLFVBQWdFO1FBQzdFLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7OzJJQUxtQiw2Q0FBNkM7K0hBQTdDLDZDQUE2Qzs0RkFBN0MsNkNBQTZDO2tCQURsRSxTQUFTOzhCQUlKLFVBQVU7c0JBRGIsS0FBSzs7QUFrQlIsTUFBTSxVQUFVLG9EQUFvRCxDQUE0TixVQUFtQixFQUFFLFNBQW1CO0lBQ3RVLE1BQU0sU0FBUyxHQUFlO1FBQzVCLEdBQUcsMENBQTBDLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQztRQUNwRTtZQUNFLE9BQU8sRUFBRSw2Q0FBNkM7WUFDdEQsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUM7U0FDMUM7S0FDRixDQUFDO0lBRUYsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgZm9yd2FyZFJlZiwgSW5wdXQsIFByb3ZpZGVyLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGaXJlc3RvcmVEb2N1bWVudCB9IGZyb20gJ0BkZXJlZWtiL2ZpcmViYXNlJztcbmltcG9ydCB7IE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZURpcmVjdGl2ZSwgcHJvdmlkZURieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlRGlyZWN0aXZlIH0gZnJvbSAnLi9zdG9yZS5jb2xsZWN0aW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmUsIERieEZpcmViYXNlQ29tcG9uZW50U3RvcmVXaXRoUGFyZW50U291cmNlTW9kZSB9IGZyb20gJy4vc3RvcmUuc3ViY29sbGVjdGlvbic7XG5cbi8qKlxuICogQWJzdHJhY3QgZGlyZWN0aXZlIHRoYXQgY29udGFpbnMgYSBEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmUgYW5kIHByb3ZpZGVzIGFuIGludGVyZmFjZSBmb3IgY29tbXVuaWNhdGluZyB3aXRoIG90aGVyIGRpcmVjdGl2ZXMuXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIERieEZpcmViYXNlQ29sbGVjdGlvbldpdGhQYXJlbnRTdG9yZURpcmVjdGl2ZTxULCBQVCwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4sIFBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8UFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8UFQ+LCBTIGV4dGVuZHMgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uV2l0aFBhcmVudFN0b3JlPFQsIFBULCBELCBQRD4gPSBEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmU8VCwgUFQsIEQsIFBEPj4gZXh0ZW5kcyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZURpcmVjdGl2ZTxULCBELCBTPiB7XG4gIC8vIE1BUks6IElucHV0c1xuICBASW5wdXQoKVxuICBzZXQgc291cmNlTW9kZShzb3VyY2VNb2RlOiBNYXliZTxEYnhGaXJlYmFzZUNvbXBvbmVudFN0b3JlV2l0aFBhcmVudFNvdXJjZU1vZGU+KSB7XG4gICAgdGhpcy5zdG9yZS5zZXRTb3VyY2VNb2RlKHNvdXJjZU1vZGUpO1xuICB9XG59XG5cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbi8vIFRoZSB1c2Ugb2YgYW55IGhlcmUgZG9lcyBub3QgZGVncmFkZSB0aGUgdHlwZS1zYWZldHk7IHdlIHdhbnQgdG8gc2ltcGx5IG1hdGNoIHRoYXQgdGhlIFN0b3JlIHR5cGUgUyBpcyB1c2VkIGluIHRoZSBEaXJlY3RpdmUgdHlwZSBDIHRvIHByb3ZpZGUgaXQuXG5cbi8qKlxuICogQ29uZmlndXJlcyBwcm92aWRlcnMgZm9yIGEgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uV2l0aFBhcmVudFN0b3JlRGlyZWN0aXZlLlxuICpcbiAqIENhbiBvcHRpb25hbGx5IGFsc28gcHJvdmlkZSB0aGUgYWN0dWFsIHN0b3JlIHR5cGUgdG8gaW5jbHVkZSBpbiB0aGUgcHJvdmlkZXJzIGFycmF5IHNvIGl0IGlzIGluc3RhbnRpYXRlZCBieSBBbmd1bGFyLlxuICpcbiAqIEBwYXJhbSBzb3VyY2VUeXBlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlRGJ4RmlyZWJhc2VDb2xsZWN0aW9uV2l0aFBhcmVudFN0b3JlRGlyZWN0aXZlPFMgZXh0ZW5kcyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmVEaXJlY3RpdmU8YW55LCBhbnksIGFueSwgYW55LCBhbnk+Pihzb3VyY2VUeXBlOiBUeXBlPFM+KTogUHJvdmlkZXJbXTtcbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlRGJ4RmlyZWJhc2VDb2xsZWN0aW9uV2l0aFBhcmVudFN0b3JlRGlyZWN0aXZlPFMgZXh0ZW5kcyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmU8YW55LCBhbnksIGFueSwgYW55PiwgQyBleHRlbmRzIERieEZpcmViYXNlQ29sbGVjdGlvbldpdGhQYXJlbnRTdG9yZURpcmVjdGl2ZTxhbnksIGFueSwgYW55LCBhbnksIFM+ID0gRGJ4RmlyZWJhc2VDb2xsZWN0aW9uV2l0aFBhcmVudFN0b3JlRGlyZWN0aXZlPGFueSwgYW55LCBhbnksIGFueSwgUz4+KHNvdXJjZVR5cGU6IFR5cGU8Qz4sIHN0b3JlVHlwZT86IFR5cGU8Uz4pOiBQcm92aWRlcltdO1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmVEaXJlY3RpdmU8UyBleHRlbmRzIERieEZpcmViYXNlQ29sbGVjdGlvbldpdGhQYXJlbnRTdG9yZTxhbnksIGFueSwgYW55LCBhbnk+LCBDIGV4dGVuZHMgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uV2l0aFBhcmVudFN0b3JlRGlyZWN0aXZlPGFueSwgYW55LCBhbnksIGFueSwgUz4gPSBEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmVEaXJlY3RpdmU8YW55LCBhbnksIGFueSwgYW55LCBTPj4oc291cmNlVHlwZTogVHlwZTxDPiwgc3RvcmVUeXBlPzogVHlwZTxTPik6IFByb3ZpZGVyW10ge1xuICBjb25zdCBwcm92aWRlcnM6IFByb3ZpZGVyW10gPSBbXG4gICAgLi4ucHJvdmlkZURieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlRGlyZWN0aXZlKHNvdXJjZVR5cGUsIHN0b3JlVHlwZSksXG4gICAge1xuICAgICAgcHJvdmlkZTogRGJ4RmlyZWJhc2VDb2xsZWN0aW9uV2l0aFBhcmVudFN0b3JlRGlyZWN0aXZlLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gc291cmNlVHlwZSlcbiAgICB9XG4gIF07XG5cbiAgcmV0dXJuIHByb3ZpZGVycztcbn1cbiJdfQ==
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { filterMaybe } from '@dereekb/rxjs';
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import { shareReplay, distinctUntilChanged, map, NEVER, switchMap, tap } from 'rxjs';
|
|
4
|
+
import { AbstractDbxFirebaseDocumentStore } from './store.document';
|
|
5
|
+
import { setParentStoreEffect } from './store.subcollection.rxjs';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
/**
|
|
8
|
+
* Abstract DbxFirebaseDocumentStore that has a parent document from which is derives it's FiresbaseCollection from.
|
|
9
|
+
*/
|
|
10
|
+
export class AbstractDbxFirebaseDocumentWithParentStore extends AbstractDbxFirebaseDocumentStore {
|
|
11
|
+
constructor() {
|
|
12
|
+
super(...arguments);
|
|
13
|
+
// MARK: Effects
|
|
14
|
+
this.setParentStore = setParentStoreEffect(this);
|
|
15
|
+
this.setParent = this.effect((input) => {
|
|
16
|
+
return input.pipe(switchMap((parent) => {
|
|
17
|
+
this._setParentDocument(parent);
|
|
18
|
+
if (parent) {
|
|
19
|
+
return this.collectionFactory$.pipe(tap((collectionFactory) => {
|
|
20
|
+
const collection = collectionFactory(parent);
|
|
21
|
+
this.setFirestoreCollection(collection);
|
|
22
|
+
}));
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
// clear the current collection
|
|
26
|
+
this.setFirestoreCollection(undefined);
|
|
27
|
+
// do nothing until a parent is returned.
|
|
28
|
+
return NEVER;
|
|
29
|
+
}
|
|
30
|
+
}));
|
|
31
|
+
});
|
|
32
|
+
this._setParent = this.setParent;
|
|
33
|
+
// MARK: Accessors
|
|
34
|
+
this.currentParent$ = this.state$.pipe(map((x) => x.parent), distinctUntilChanged(), shareReplay(1));
|
|
35
|
+
this.parent$ = this.currentParent$.pipe(filterMaybe());
|
|
36
|
+
this.currentCollectionFactory$ = this.state$.pipe(map((x) => x.collectionFactory), distinctUntilChanged(), shareReplay(1));
|
|
37
|
+
this.collectionFactory$ = this.currentCollectionFactory$.pipe(filterMaybe());
|
|
38
|
+
// MARK: State Changes
|
|
39
|
+
/**
|
|
40
|
+
* Sets the collection factory function to use.
|
|
41
|
+
*/
|
|
42
|
+
this.setCollectionFactory = this.updater((state, collectionFactory) => ({ ...state, collectionFactory }));
|
|
43
|
+
/**
|
|
44
|
+
* Sets the parent on the current state.
|
|
45
|
+
*/
|
|
46
|
+
this._setParentDocument = this.updater((state, parent) => ({ ...state, parent }));
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
AbstractDbxFirebaseDocumentWithParentStore.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AbstractDbxFirebaseDocumentWithParentStore, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
50
|
+
AbstractDbxFirebaseDocumentWithParentStore.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AbstractDbxFirebaseDocumentWithParentStore });
|
|
51
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AbstractDbxFirebaseDocumentWithParentStore, decorators: [{
|
|
52
|
+
type: Injectable
|
|
53
|
+
}] });
|
|
54
|
+
/**
|
|
55
|
+
* AbstractDbxFirebaseDocumentWithParentStore extension for use with SingleItemFirestoreCollection.
|
|
56
|
+
*/
|
|
57
|
+
export class AbstractSingleItemDbxFirebaseDocument extends AbstractDbxFirebaseDocumentWithParentStore {
|
|
58
|
+
constructor() {
|
|
59
|
+
super(...arguments);
|
|
60
|
+
/**
|
|
61
|
+
* Sets the SingleItemFirestoreCollection to use.
|
|
62
|
+
*/
|
|
63
|
+
this.setFirestoreCollection = this.updater((state, firestoreCollection) => {
|
|
64
|
+
if (firestoreCollection != null) {
|
|
65
|
+
const id = firestoreCollection.singleItemIdentifier;
|
|
66
|
+
if (id != null) {
|
|
67
|
+
return { ...state, firestoreCollection, id };
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
throw new Error('AbstractSingleItemDbxFirebaseDocument only accepts SingleItemFirestoreCollection values with a singleItemIdentifier set for setFirestoreCollection.');
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
return { ...state, firestoreCollection: null };
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
/**
|
|
78
|
+
* Does nothing on a AbstractSingleItemDbxFirebaseDocument.
|
|
79
|
+
*
|
|
80
|
+
* Ref is set with the FirestoreCollection
|
|
81
|
+
*/
|
|
82
|
+
this.setId = this.updater((state, id) => state);
|
|
83
|
+
/**
|
|
84
|
+
* Does nothing on a AbstractSingleItemDbxFirebaseDocument.
|
|
85
|
+
*
|
|
86
|
+
* Ref is set with the FirestoreCollection
|
|
87
|
+
*/
|
|
88
|
+
this.setKey = this.updater((state, key) => state);
|
|
89
|
+
/**
|
|
90
|
+
* Does nothing on a AbstractSingleItemDbxFirebaseDocument.
|
|
91
|
+
*
|
|
92
|
+
* Ref is set with the FirestoreCollection
|
|
93
|
+
*/
|
|
94
|
+
this.setRef = this.updater((state, ref) => state);
|
|
95
|
+
this.clearRefs = this.updater((state) => state);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuc3ViY29sbGVjdGlvbi5kb2N1bWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL21vZGVsL21vZHVsZXMvc3RvcmUvc3RvcmUuc3ViY29sbGVjdGlvbi5kb2N1bWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBRy9HLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBa0UsTUFBTSxrQkFBa0IsQ0FBQztBQUNwSSxPQUFPLEVBQW1FLG9CQUFvQixFQUFvSixNQUFNLDRCQUE0QixDQUFDOztBQU1yUjs7R0FFRztBQUVILE1BQU0sT0FBTywwQ0FBMFMsU0FBUSxnQ0FBeUM7SUFEeFc7O1FBRUUsZ0JBQWdCO1FBQ1AsbUJBQWMsR0FBNEUsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckgsY0FBUyxHQUFtRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBNEIsRUFBRSxFQUFFO1lBQ2hJLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FDZixTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDbkIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUVoQyxJQUFJLE1BQU0sRUFBRTtvQkFDVixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQ2pDLEdBQUcsQ0FBQyxDQUFDLGlCQUFpQixFQUFFLEVBQUU7d0JBQ3hCLE1BQU0sVUFBVSxHQUFHLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFD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QUUsR0FBZ0MsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUErRyxDQUFDO1FBRXhMLGNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvRCxDQUFDO0NBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmaWx0ZXJNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgc2hhcmVSZXBsYXksIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIE5FVkVSLCBzd2l0Y2hNYXAsIHRhcCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGaXJlc3RvcmVEb2N1bWVudCwgRmlyZXN0b3JlQ29sbGVjdGlvbldpdGhQYXJlbnRGYWN0b3J5LCBGaXJlc3RvcmVDb2xsZWN0aW9uLCBEb2N1bWVudFJlZmVyZW5jZSwgRmlyZXN0b3JlTW9kZWxJZCwgRmlyZXN0b3JlTW9kZWxLZXksIFNpbmdsZUl0ZW1GaXJlc3RvcmVDb2xsZWN0aW9uIH0gZnJvbSAnQGRlcmVla2IvZmlyZWJhc2UnO1xuaW1wb3J0IHsgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IEFic3RyYWN0RGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlLCBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmUsIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZUNvbnRleHRTdGF0ZSB9IGZyb20gJy4vc3RvcmUuZG9jdW1lbnQnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VDb21wb25lbnRTdG9yZVdpdGhQYXJlbnRTZXRQYXJlbnRTdG9yZUVmZmVjdEZ1bmN0aW9uLCBzZXRQYXJlbnRTdG9yZUVmZmVjdCwgRGJ4RmlyZWJhc2VDb21wb25lbnRTdG9yZVdpdGhQYXJlbnQsIERieEZpcmViYXNlQ29tcG9uZW50U3RvcmVXaXRoUGFyZW50Q29udGV4dFN0YXRlLCBEYnhGaXJlYmFzZUNvbXBvbmVudFN0b3JlV2l0aFBhcmVudFNldFBhcmVudEVmZmVjdEZ1bmN0aW9uIH0gZnJvbSAnLi9zdG9yZS5zdWJjb2xsZWN0aW9uLnJ4anMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERieEZpcmViYXNlRG9jdW1lbnRXaXRoUGFyZW50U3RvcmVDb250ZXh0U3RhdGU8VCwgUFQsIEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxUPiA9IEZpcmVzdG9yZURvY3VtZW50PFQ+LCBQRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFBUPiA9IEZpcmVzdG9yZURvY3VtZW50PFBUPj4gZXh0ZW5kcyBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVDb250ZXh0U3RhdGU8VCwgRD4sIERieEZpcmViYXNlQ29tcG9uZW50U3RvcmVXaXRoUGFyZW50Q29udGV4dFN0YXRlPFQsIFBULCBELCBQRD4ge31cblxuZXhwb3J0IGludGVyZmFjZSBEYnhGaXJlYmFzZURvY3VtZW50V2l0aFBhcmVudFN0b3JlPFQsIFBULCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPiwgUEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxQVD4gPSBGaXJlc3RvcmVEb2N1bWVudDxQVD4+IGV4dGVuZHMgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlPFQsIEQ+LCBEYnhGaXJlYmFzZUNvbXBvbmVudFN0b3JlV2l0aFBhcmVudDxULCBQVCwgRCwgUEQsIEZpcmVzdG9yZUNvbGxlY3Rpb248VCwgRD4+IHt9XG5cbi8qKlxuICogQWJzdHJhY3QgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlIHRoYXQgaGFzIGEgcGFyZW50IGRvY3VtZW50IGZyb20gd2hpY2ggaXMgZGVyaXZlcyBpdCdzIEZpcmVzYmFzZUNvbGxlY3Rpb24gZnJvbS5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFic3RyYWN0RGJ4RmlyZWJhc2VEb2N1bWVudFdpdGhQYXJlbnRTdG9yZTxULCBQVCwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4sIFBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8UFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8UFQ+LCBDIGV4dGVuZHMgRGJ4RmlyZWJhc2VEb2N1bWVudFdpdGhQYXJlbnRTdG9yZUNvbnRleHRTdGF0ZTxULCBQVCwgRCwgUEQ+ID0gRGJ4RmlyZWJhc2VEb2N1bWVudFdpdGhQYXJlbnRTdG9yZUNvbnRleHRTdGF0ZTxULCBQVCwgRCwgUEQ+PiBleHRlbmRzIEFic3RyYWN0RGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlPFQsIEQsIEM+IGltcGxlbWVudHMgRGJ4RmlyZWJhc2VEb2N1bWVudFdpdGhQYXJlbnRTdG9yZTxULCBQVCwgRCwgUEQ+IHtcbiAgLy8gTUFSSzogRWZmZWN0c1xuICByZWFkb25seSBzZXRQYXJlbnRTdG9yZTogRGJ4RmlyZWJhc2VDb21wb25lbnRTdG9yZVdpdGhQYXJlbnRTZXRQYXJlbnRTdG9yZUVmZmVjdEZ1bmN0aW9uPFBULCBQRD4gPSBzZXRQYXJlbnRTdG9yZUVmZmVjdCh0aGlzKTtcbiAgcmVhZG9ubHkgc2V0UGFyZW50OiBEYnhGaXJlYmFzZUNvbXBvbmVudFN0b3JlV2l0aFBhcmVudFNldFBhcmVudEVmZmVjdEZ1bmN0aW9uPFBEPiA9IHRoaXMuZWZmZWN0KChpbnB1dDogT2JzZXJ2YWJsZTxNYXliZTxQRD4+KSA9PiB7XG4gICAgcmV0dXJuIGlucHV0LnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKHBhcmVudCkgPT4ge1xuICAgICAgICB0aGlzLl9zZXRQYXJlbnREb2N1bWVudChwYXJlbnQpO1xuXG4gICAgICAgIGlmIChwYXJlbnQpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jb2xsZWN0aW9uRmFjdG9yeSQucGlwZShcbiAgICAgICAgICAgIHRhcCgoY29sbGVjdGlvbkZhY3RvcnkpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgY29sbGVjdGlvbiA9IGNvbGxlY3Rpb25GYWN0b3J5KHBhcmVudCk7XG4gICAgICAgICAgICAgIHRoaXMuc2V0RmlyZXN0b3JlQ29sbGVjdGlvbihjb2xsZWN0aW9uKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBjbGVhciB0aGUgY3VycmVudCBjb2xsZWN0aW9uXG4gICAgICAgICAgdGhpcy5zZXRGaXJlc3RvcmVDb2xsZWN0aW9uKHVuZGVmaW5lZCk7XG5cbiAgICAgICAgICAvLyBkbyBub3RoaW5nIHVudGlsIGEgcGFyZW50IGlzIHJldHVybmVkLlxuICAgICAgICAgIHJldHVybiBORVZFUjtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9KTtcblxuICByZWFkb25seSBfc2V0UGFyZW50ID0gdGhpcy5zZXRQYXJlbnQ7XG5cbiAgLy8gTUFSSzogQWNjZXNzb3JzXG4gIHJlYWRvbmx5IGN1cnJlbnRQYXJlbnQkOiBPYnNlcnZhYmxlPE1heWJlPFBEPj4gPSB0aGlzLnN0YXRlJC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5wYXJlbnQpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBwYXJlbnQkOiBPYnNlcnZhYmxlPFBEPiA9IHRoaXMuY3VycmVudFBhcmVudCQucGlwZShmaWx0ZXJNYXliZSgpKTtcblxuICByZWFkb25seSBjdXJyZW50Q29sbGVjdGlvbkZhY3RvcnkkOiBPYnNlcnZhYmxlPE1heWJlPEZpcmVzdG9yZUNvbGxlY3Rpb25XaXRoUGFyZW50RmFjdG9yeTxULCBQVCwgRCwgUEQ+Pj4gPSB0aGlzLnN0YXRlJC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5jb2xsZWN0aW9uRmFjdG9yeSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGNvbGxlY3Rpb25GYWN0b3J5JDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVDb2xsZWN0aW9uV2l0aFBhcmVudEZhY3Rvcnk8VCwgUFQsIEQsIFBEPj4gPSB0aGlzLmN1cnJlbnRDb2xsZWN0aW9uRmFjdG9yeSQucGlwZShmaWx0ZXJNYXliZSgpKTtcblxuICAvLyBNQVJLOiBTdGF0ZSBDaGFuZ2VzXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBjb2xsZWN0aW9uIGZhY3RvcnkgZnVuY3Rpb24gdG8gdXNlLlxuICAgKi9cbiAgcmVhZG9ubHkgc2V0Q29sbGVjdGlvbkZhY3RvcnkgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBjb2xsZWN0aW9uRmFjdG9yeTogRmlyZXN0b3JlQ29sbGVjdGlvbldpdGhQYXJlbnRGYWN0b3J5PFQsIFBULCBELCBQRD4pID0+ICh7IC4uLnN0YXRlLCBjb2xsZWN0aW9uRmFjdG9yeSB9KSk7XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHBhcmVudCBvbiB0aGUgY3VycmVudCBzdGF0ZS5cbiAgICovXG4gIHJlYWRvbmx5IF9zZXRQYXJlbnREb2N1bWVudCA9IHRoaXMudXBkYXRlcigoc3RhdGUsIHBhcmVudDogTWF5YmU8UEQ+KSA9PiAoeyAuLi5zdGF0ZSwgcGFyZW50IH0pKTtcbn1cblxuLyoqXG4gKiBBYnN0cmFjdERieEZpcmViYXNlRG9jdW1lbnRXaXRoUGFyZW50U3RvcmUgZXh0ZW5zaW9uIGZvciB1c2Ugd2l0aCBTaW5nbGVJdGVtRmlyZXN0b3JlQ29sbGVjdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIEFic3RyYWN0U2luZ2xlSXRlbURieEZpcmViYXNlRG9jdW1lbnQ8VCwgUFQsIEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxUPiA9IEZpcmVzdG9yZURvY3VtZW50PFQ+LCBQRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFBUPiA9IEZpcmVzdG9yZURvY3VtZW50PFBUPiwgQyBleHRlbmRzIERieEZpcmViYXNlRG9jdW1lbnRXaXRoUGFyZW50U3RvcmVDb250ZXh0U3RhdGU8VCwgUFQsIEQsIFBEPiA9IERieEZpcmViYXNlRG9jdW1lbnRXaXRoUGFyZW50U3RvcmVDb250ZXh0U3RhdGU8VCwgUFQsIEQsIFBEPj4gZXh0ZW5kcyBBYnN0cmFjdERieEZpcmViYXNlRG9jdW1lbnRXaXRoUGFyZW50U3RvcmU8VCwgUFQsIEQsIFBELCBDPiB7XG4gIC8qKlxuICAgKiBTZXRzIHRoZSBTaW5nbGVJdGVtRmlyZXN0b3JlQ29sbGVjdGlvbiB0byB1c2UuXG4gICAqL1xuICBvdmVycmlkZSByZWFkb25seSBzZXRGaXJlc3RvcmVDb2xsZWN0aW9uID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgZmlyZXN0b3JlQ29sbGVjdGlvbjogTWF5YmU8RmlyZXN0b3JlQ29sbGVjdGlvbjxULCBEPj4pID0+IHtcbiAgICBpZiAoZmlyZXN0b3JlQ29sbGVjdGlvbiAhPSBudWxsKSB7XG4gICAgICBjb25zdCBpZCA9IChmaXJlc3RvcmVDb2xsZWN0aW9uIGFzIFNpbmdsZUl0ZW1GaXJlc3RvcmVDb2xsZWN0aW9uPFQsIFBULCBELCBQRD4pLnNpbmdsZUl0ZW1JZGVudGlmaWVyO1xuXG4gICAgICBpZiAoaWQgIT0gbnVsbCkge1xuICAgICAgICByZXR1cm4geyAuLi5zdGF0ZSwgZmlyZXN0b3JlQ29sbGVjdGlvbiwgaWQgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQWJzdHJhY3RTaW5nbGVJdGVtRGJ4RmlyZWJhc2VEb2N1bWVudCBvbmx5IGFjY2VwdHMgU2luZ2xlSXRlbUZpcmVzdG9yZUNvbGxlY3Rpb24gdmFsdWVzIHdpdGggYSBzaW5nbGVJdGVtSWRlbnRpZmllciBzZXQgZm9yIHNldEZpcmVzdG9yZUNvbGxlY3Rpb24uJyk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7IC4uLnN0YXRlLCBmaXJlc3RvcmVDb2xsZWN0aW9uOiBudWxsIH07XG4gICAgfVxuICB9KTtcblxuICAvKipcbiAgICogRG9lcyBub3RoaW5nIG9uIGEgQWJzdHJhY3RTaW5nbGVJdGVtRGJ4RmlyZWJhc2VEb2N1bWVudC5cbiAgICpcbiAgICogUmVmIGlzIHNldCB3aXRoIHRoZSBGaXJlc3RvcmVDb2xsZWN0aW9uXG4gICAqL1xuICBvdmVycmlkZSByZWFkb25seSBzZXRJZCA9IHRoaXMudXBkYXRlcigoc3RhdGUsIGlkOiBNYXliZTxGaXJlc3RvcmVNb2RlbElkPikgPT4gc3RhdGUpIGFzIChvYnNlcnZhYmxlT3JWYWx1ZTogTWF5YmU8c3RyaW5nPiB8IE9ic2VydmFibGU8TWF5YmU8c3RyaW5nPj4pID0+IFN1YnNjcmlwdGlvbjtcblxuICAvKipcbiAgICogRG9lcyBub3RoaW5nIG9uIGEgQWJzdHJhY3RTaW5nbGVJdGVtRGJ4RmlyZWJhc2VEb2N1bWVudC5cbiAgICpcbiAgICogUmVmIGlzIHNldCB3aXRoIHRoZSBGaXJlc3RvcmVDb2xsZWN0aW9uXG4gICAqL1xuICBvdmVycmlkZSByZWFkb25seSBzZXRLZXkgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBrZXk6IE1heWJlPEZpcmVzdG9yZU1vZGVsS2V5PikgPT4gc3RhdGUpIGFzIChvYnNlcnZhYmxlT3JWYWx1ZTogTWF5YmU8c3RyaW5nPiB8IE9ic2VydmFibGU8TWF5YmU8c3RyaW5nPj4pID0+IFN1YnNjcmlwdGlvbjtcblxuICAvKipcbiAgICogRG9lcyBub3RoaW5nIG9uIGEgQWJzdHJhY3RTaW5nbGVJdGVtRGJ4RmlyZWJhc2VEb2N1bWVudC5cbiAgICpcbiAgICogUmVmIGlzIHNldCB3aXRoIHRoZSBGaXJlc3RvcmVDb2xsZWN0aW9uXG4gICAqL1xuICBvdmVycmlkZSByZWFkb25seSBzZXRSZWYgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCByZWY6IE1heWJlPERvY3VtZW50UmVmZXJlbmNlPFQ+PikgPT4gc3RhdGUpIGFzIChvYnNlcnZhYmxlT3JWYWx1ZTogTWF5YmU8RG9jdW1lbnRSZWZlcmVuY2U8VD4+IHwgT2JzZXJ2YWJsZTxNYXliZTxEb2N1bWVudFJlZmVyZW5jZTxUPj4+KSA9PiBTdWJzY3JpcHRpb247XG5cbiAgb3ZlcnJpZGUgcmVhZG9ubHkgY2xlYXJSZWZzID0gdGhpcy51cGRhdGVyKChzdGF0ZSkgPT4gc3RhdGUpO1xufVxuIl19
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { Inject, Injectable, Optional } from '@angular/core';
|
|
2
|
+
import { filterMaybe } from '@dereekb/rxjs';
|
|
3
|
+
import { shareReplay, distinctUntilChanged, map, NEVER, switchMap, tap } from 'rxjs';
|
|
4
|
+
import { AbstractDbxFirebaseCollectionStore } from './store.collection';
|
|
5
|
+
import { setParentStoreEffect } from './store.subcollection.rxjs';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
/**
|
|
8
|
+
* Abstract DbxFirebaseCollectionStore that has a parent document from which is derives it's FiresbaseCollection from.
|
|
9
|
+
*/
|
|
10
|
+
export class AbstractDbxFirebaseCollectionWithParentStore extends AbstractDbxFirebaseCollectionStore {
|
|
11
|
+
constructor(state, defaultSourceMode) {
|
|
12
|
+
super(state);
|
|
13
|
+
// MARK: Effects
|
|
14
|
+
this.setParentStore = setParentStoreEffect(this);
|
|
15
|
+
this.setSourceMode = this.effect((input) => {
|
|
16
|
+
return input.pipe(distinctUntilChanged(), switchMap((inputMode) => {
|
|
17
|
+
const mode = inputMode?.toLowerCase() ?? 'parent'; // default to parent mode
|
|
18
|
+
if (mode === 'group') {
|
|
19
|
+
return this.currentCollectionGroup$.pipe(tap((collectionGroup) => {
|
|
20
|
+
this.setFirestoreCollection(collectionGroup);
|
|
21
|
+
}));
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
// parent document collection
|
|
25
|
+
return this.currentParent$.pipe(switchMap((parent) => {
|
|
26
|
+
if (parent) {
|
|
27
|
+
return this.collectionFactory$.pipe(tap((collectionFactory) => {
|
|
28
|
+
const collection = collectionFactory(parent);
|
|
29
|
+
this.setFirestoreCollection(collection);
|
|
30
|
+
}));
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
this.setFirestoreCollection(undefined);
|
|
34
|
+
return NEVER;
|
|
35
|
+
}
|
|
36
|
+
}));
|
|
37
|
+
}
|
|
38
|
+
}));
|
|
39
|
+
});
|
|
40
|
+
// MARK: Accessors
|
|
41
|
+
this.currentParent$ = this.state$.pipe(map((x) => x.parent), distinctUntilChanged(), shareReplay(1));
|
|
42
|
+
this.parent$ = this.currentParent$.pipe(filterMaybe());
|
|
43
|
+
this.currentCollectionFactory$ = this.state$.pipe(map((x) => x.collectionFactory), distinctUntilChanged(), shareReplay(1));
|
|
44
|
+
this.collectionFactory$ = this.currentCollectionFactory$.pipe(filterMaybe());
|
|
45
|
+
this.currentCollectionGroup$ = this.state$.pipe(map((x) => x.collectionGroup), distinctUntilChanged(), shareReplay(1));
|
|
46
|
+
this.collectionGroup$ = this.currentCollectionGroup$.pipe(filterMaybe());
|
|
47
|
+
// MARK: State Changes
|
|
48
|
+
/**
|
|
49
|
+
* Sets the collection factory function to use.
|
|
50
|
+
*/
|
|
51
|
+
this.setCollectionFactory = this.updater((state, collectionFactory) => ({ ...state, collectionFactory }));
|
|
52
|
+
/**
|
|
53
|
+
* Sets the collection group to use.
|
|
54
|
+
*/
|
|
55
|
+
this.setCollectionGroup = this.updater((state, collectionGroup) => ({ ...state, collectionGroup }));
|
|
56
|
+
/**
|
|
57
|
+
* Sets the parent on the current state.
|
|
58
|
+
*/
|
|
59
|
+
this._setParentDocument = this.updater((state, parent) => ({ ...state, parent }));
|
|
60
|
+
this._setParent = this._setParentDocument;
|
|
61
|
+
this.setSourceMode(defaultSourceMode || 'parent');
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
AbstractDbxFirebaseCollectionWithParentStore.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AbstractDbxFirebaseCollectionWithParentStore, deps: [{ token: null, optional: true }, { token: null, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
65
|
+
AbstractDbxFirebaseCollectionWithParentStore.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AbstractDbxFirebaseCollectionWithParentStore });
|
|
66
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AbstractDbxFirebaseCollectionWithParentStore, decorators: [{
|
|
67
|
+
type: Injectable
|
|
68
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
69
|
+
type: Inject,
|
|
70
|
+
args: [null]
|
|
71
|
+
}, {
|
|
72
|
+
type: Optional
|
|
73
|
+
}] }, { type: undefined, decorators: [{
|
|
74
|
+
type: Inject,
|
|
75
|
+
args: [null]
|
|
76
|
+
}, {
|
|
77
|
+
type: Optional
|
|
78
|
+
}] }]; } });
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuc3ViY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL21vZGVsL21vZHVsZXMvc3RvcmUvc3RvcmUuc3ViY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFjLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQWdCLEtBQUssRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9HLE9BQU8sRUFBRSxrQ0FBa0MsRUFBc0UsTUFBTSxvQkFBb0IsQ0FBQztBQUM1SSxPQUFPLEVBQTJNLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBcUIzUTs7R0FFRztBQUVILE1BQU0sT0FBTyw0Q0FBZ1QsU0FBUSxrQ0FBMkM7SUFDOVcsWUFBc0MsS0FBUSxFQUE0QixpQkFBaUU7UUFDekksS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBSWYsZ0JBQWdCO1FBQ1AsbUJBQWMsR0FBNEUsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckgsa0JBQWEsR0FBbUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQXVFLEVBQUUsRUFBRTtZQUMvSyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQ2Ysb0JBQW9CLEVBQUUsRUFDdEIsU0FBUyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7Z0JBQ3RCLE1BQU0sSUFBSSxHQUFHLFNBQVMsRUFBRSxXQUFXLEVBQUUsSUFBSSxRQUFRLENBQUMsQ0FBQyx5QkFBeUI7Z0JBRTVFLElBQUksSUFBSSxLQUFLLE9BQU8sRUFBRTtvQkFDcEIsT0FBTyxJ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QUksUUFBUSxDQUFDLENBQUM7SUFDcEQsQ0FBQzs7MElBSlUsNENBQTRDLGtCQUNuQyxJQUFJLDZCQUFnQyxJQUFJOzhJQURqRCw0Q0FBNEM7NEZBQTVDLDRDQUE0QztrQkFEeEQsVUFBVTs7MEJBRUksTUFBTTsyQkFBQyxJQUFJOzswQkFBRyxRQUFROzswQkFBYyxNQUFNOzJCQUFDLElBQUk7OzBCQUFHLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZmlsdGVyTWF5YmUsIE9ic2VydmFibGVPclZhbHVlIH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBzaGFyZVJlcGxheSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgU3Vic2NyaXB0aW9uLCBORVZFUiwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZpcmVzdG9yZUNvbGxlY3Rpb25Hcm91cCwgRmlyZXN0b3JlQ29sbGVjdGlvbldpdGhQYXJlbnRGYWN0b3J5LCBGaXJlc3RvcmVEb2N1bWVudCB9IGZyb20gJ0BkZXJlZWtiL2ZpcmViYXNlJztcbmltcG9ydCB7IEFic3RyYWN0RGJ4RmlyZWJhc2VDb2xsZWN0aW9uU3RvcmUsIERieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlLCBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZUNvbnRleHRTdGF0ZSB9IGZyb20gJy4vc3RvcmUuY29sbGVjdGlvbic7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZUNvbXBvbmVudFN0b3JlU2V0UGFyZW50RWZmZWN0RnVuY3Rpb24sIERieEZpcmViYXNlQ29tcG9uZW50U3RvcmVXaXRoUGFyZW50LCBEYnhGaXJlYmFzZUNvbXBvbmVudFN0b3JlV2l0aFBhcmVudENvbnRleHRTdGF0ZSwgRGJ4RmlyZWJhc2VDb21wb25lbnRTdG9yZVdpdGhQYXJlbnRTZXRQYXJlbnRTdG9yZUVmZmVjdEZ1bmN0aW9uLCBzZXRQYXJlbnRTdG9yZUVmZmVjdCB9IGZyb20gJy4vc3RvcmUuc3ViY29sbGVjdGlvbi5yeGpzJztcblxuLyoqXG4gKiBXaGV0aGVyIG9yIG5vdCB0byBsb2FkIHZhbHVlcyBmcm9tIGEgcGFyZW50IG9yIGEgZ3JvdXAuXG4gKi9cbmV4cG9ydCB0eXBlIERieEZpcmViYXNlQ29tcG9uZW50U3RvcmVXaXRoUGFyZW50U291cmNlTW9kZSA9ICdwYXJlbnQnIHwgJ2dyb3VwJztcblxuZXhwb3J0IGludGVyZmFjZSBEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmVDb250ZXh0U3RhdGU8VCwgUFQsIEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxUPiA9IEZpcmVzdG9yZURvY3VtZW50PFQ+LCBQRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFBUPiA9IEZpcmVzdG9yZURvY3VtZW50PFBUPj4gZXh0ZW5kcyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZUNvbnRleHRTdGF0ZTxULCBEPiwgRGJ4RmlyZWJhc2VDb21wb25lbnRTdG9yZVdpdGhQYXJlbnRDb250ZXh0U3RhdGU8VCwgUFQsIEQsIFBEPiB7XG4gIHJlYWRvbmx5IG1vZGU/OiBNYXliZTxEYnhGaXJlYmFzZUNvbXBvbmVudFN0b3JlV2l0aFBhcmVudFNvdXJjZU1vZGU+O1xuICByZWFkb25seSBjb2xsZWN0aW9uR3JvdXA/OiBNYXliZTxGaXJlc3RvcmVDb2xsZWN0aW9uR3JvdXA8VCwgRD4+O1xufVxuXG5leHBvcnQgdHlwZSBEYnhGaXJlYmFzZUNvbXBvbmVudFN0b3JlV2l0aFBhcmVudFNldFBhcmVudFNvdXJjZU1vZGVGdW5jdGlvbiA9IChvYnNlcnZhYmxlT3JWYWx1ZTogT2JzZXJ2YWJsZU9yVmFsdWU8TWF5YmU8RGJ4RmlyZWJhc2VDb21wb25lbnRTdG9yZVdpdGhQYXJlbnRTb3VyY2VNb2RlPj4pID0+IFN1YnNjcmlwdGlvbjtcblxuZXhwb3J0IGludGVyZmFjZSBEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmU8VCwgUFQsIEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxUPiA9IEZpcmVzdG9yZURvY3VtZW50PFQ+LCBQRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFBUPiA9IEZpcmVzdG9yZURvY3VtZW50PFBUPj4gZXh0ZW5kcyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZTxULCBEPiwgRGJ4RmlyZWJhc2VDb21wb25lbnRTdG9yZVdpdGhQYXJlbnQ8VCwgUFQsIEQsIFBEPiB7XG4gIHJlYWRvbmx5IHNldFNvdXJjZU1vZGU6IERieEZpcmViYXNlQ29tcG9uZW50U3RvcmVXaXRoUGFyZW50U2V0UGFyZW50U291cmNlTW9kZUZ1bmN0aW9uO1xuICByZWFkb25seSBzZXRDb2xsZWN0aW9uR3JvdXA6IChvYnNlcnZhYmxlT3JWYWx1ZTogRmlyZXN0b3JlQ29sbGVjdGlvbkdyb3VwPFQsIEQ+IHwgT2JzZXJ2YWJsZTxGaXJlc3RvcmVDb2xsZWN0aW9uR3JvdXA8VCwgRD4+KSA9PiBTdWJzY3JpcHRpb247XG4gIHJlYWRvbmx5IGN1cnJlbnRDb2xsZWN0aW9uR3JvdXAkOiBPYnNlcnZhYmxlPE1heWJlPEZpcmVzdG9yZUNvbGxlY3Rpb25Hcm91cDxULCBEPj4+O1xuICByZWFkb25seSBjb2xsZWN0aW9uR3JvdXAkOiBPYnNlcnZhYmxlPEZpcmVzdG9yZUNvbGxlY3Rpb25Hcm91cDxULCBEPj47XG59XG5cbi8qKlxuICogQWJzdHJhY3QgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uU3RvcmUgdGhhdCBoYXMgYSBwYXJlbnQgZG9jdW1lbnQgZnJvbSB3aGljaCBpcyBkZXJpdmVzIGl0J3MgRmlyZXNiYXNlQ29sbGVjdGlvbiBmcm9tLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQWJzdHJhY3REYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmU8VCwgUFQsIEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxUPiA9IEZpcmVzdG9yZURvY3VtZW50PFQ+LCBQRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFBUPiA9IEZpcmVzdG9yZURvY3VtZW50PFBUPiwgQyBleHRlbmRzIERieEZpcmViYXNlQ29sbGVjdGlvbldpdGhQYXJlbnRTdG9yZUNvbnRleHRTdGF0ZTxULCBQVCwgRCwgUEQ+ID0gRGJ4RmlyZWJhc2VDb2xsZWN0aW9uV2l0aFBhcmVudFN0b3JlQ29udGV4dFN0YXRlPFQsIFBULCBELCBQRD4+IGV4dGVuZHMgQWJzdHJhY3REYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZTxULCBELCBDPiBpbXBsZW1lbnRzIERieEZpcmViYXNlQ29sbGVjdGlvbldpdGhQYXJlbnRTdG9yZTxULCBQVCwgRCwgUEQ+IHtcbiAgY29uc3RydWN0b3IoQEluamVjdChudWxsKSBAT3B0aW9uYWwoKSBzdGF0ZTogQywgQEluamVjdChudWxsKSBAT3B0aW9uYWwoKSBkZWZhdWx0U291cmNlTW9kZT86IERieEZpcmViYXNlQ29tcG9uZW50U3RvcmVXaXRoUGFyZW50U291cmNlTW9kZSkge1xuICAgIHN1cGVyKHN0YXRlKTtcbiAgICB0aGlzLnNldFNvdXJjZU1vZGUoZGVmYXVsdFNvdXJjZU1vZGUgfHwgJ3BhcmVudCcpO1xuICB9XG5cbiAgLy8gTUFSSzogRWZmZWN0c1xuICByZWFkb25seSBzZXRQYXJlbnRTdG9yZTogRGJ4RmlyZWJhc2VDb21wb25lbnRTdG9yZVdpdGhQYXJlbnRTZXRQYXJlbnRTdG9yZUVmZmVjdEZ1bmN0aW9uPFBULCBQRD4gPSBzZXRQYXJlbnRTdG9yZUVmZmVjdCh0aGlzKTtcbiAgcmVhZG9ubHkgc2V0U291cmNlTW9kZTogRGJ4RmlyZWJhc2VDb21wb25lbnRTdG9yZVdpdGhQYXJlbnRTZXRQYXJlbnRTb3VyY2VNb2RlRnVuY3Rpb24gPSB0aGlzLmVmZmVjdCgoaW5wdXQ6IE9ic2VydmFibGU8TWF5YmU8RGJ4RmlyZWJhc2VDb21wb25lbnRTdG9yZVdpdGhQYXJlbnRTb3VyY2VNb2RlPj4pID0+IHtcbiAgICByZXR1cm4gaW5wdXQucGlwZShcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICBzd2l0Y2hNYXAoKGlucHV0TW9kZSkgPT4ge1xuICAgICAgICBjb25zdCBtb2RlID0gaW5wdXRNb2RlPy50b0xvd2VyQ2FzZSgpID8/ICdwYXJlbnQnOyAvLyBkZWZhdWx0IHRvIHBhcmVudCBtb2RlXG5cbiAgICAgICAgaWYgKG1vZGUgPT09ICdncm91cCcpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50Q29sbGVjdGlvbkdyb3VwJC5waXBlKFxuICAgICAgICAgICAgdGFwKChjb2xsZWN0aW9uR3JvdXApID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5zZXRGaXJlc3RvcmVDb2xsZWN0aW9uKGNvbGxlY3Rpb25Hcm91cCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gcGFyZW50IGRvY3VtZW50IGNvbGxlY3Rpb25cbiAgICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50UGFyZW50JC5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKChwYXJlbnQpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHBhcmVudCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbGxlY3Rpb25GYWN0b3J5JC5waXBlKFxuICAgICAgICAgICAgICAgICAgdGFwKChjb2xsZWN0aW9uRmFjdG9yeSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb2xsZWN0aW9uID0gY29sbGVjdGlvbkZhY3RvcnkocGFyZW50KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRGaXJlc3RvcmVDb2xsZWN0aW9uKGNvbGxlY3Rpb24pO1xuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0RmlyZXN0b3JlQ29sbGVjdGlvbih1bmRlZmluZWQpO1xuICAgICAgICAgICAgICAgIHJldHVybiBORVZFUjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH0pO1xuXG4gIC8vIE1BUks6IEFjY2Vzc29yc1xuICByZWFkb25seSBjdXJyZW50UGFyZW50JDogT2JzZXJ2YWJsZTxNYXliZTxQRD4+ID0gdGhpcy5zdGF0ZSQucGlwZShcbiAgICBtYXAoKHgpID0+IHgucGFyZW50KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgcGFyZW50JDogT2JzZXJ2YWJsZTxQRD4gPSB0aGlzLmN1cnJlbnRQYXJlbnQkLnBpcGUoZmlsdGVyTWF5YmUoKSk7XG5cbiAgcmVhZG9ubHkgY3VycmVudENvbGxlY3Rpb25GYWN0b3J5JDogT2JzZXJ2YWJsZTxNYXliZTxGaXJlc3RvcmVDb2xsZWN0aW9uV2l0aFBhcmVudEZhY3Rvcnk8VCwgUFQsIEQsIFBEPj4+ID0gdGhpcy5zdGF0ZSQucGlwZShcbiAgICBtYXAoKHgpID0+IHguY29sbGVjdGlvbkZhY3RvcnkpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBjb2xsZWN0aW9uRmFjdG9yeSQ6IE9ic2VydmFibGU8RmlyZXN0b3JlQ29sbGVjdGlvbldpdGhQYXJlbnRGYWN0b3J5PFQsIFBULCBELCBQRD4+ID0gdGhpcy5jdXJyZW50Q29sbGVjdGlvbkZhY3RvcnkkLnBpcGUoZmlsdGVyTWF5YmUoKSk7XG5cbiAgcmVhZG9ubHkgY3VycmVudENvbGxlY3Rpb25Hcm91cCQ6IE9ic2VydmFibGU8TWF5YmU8RmlyZXN0b3JlQ29sbGVjdGlvbkdyb3VwPFQsIEQ+Pj4gPSB0aGlzLnN0YXRlJC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5jb2xsZWN0aW9uR3JvdXApLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBjb2xsZWN0aW9uR3JvdXAkOiBPYnNlcnZhYmxlPEZpcmVzdG9yZUNvbGxlY3Rpb25Hcm91cDxULCBEPj4gPSB0aGlzLmN1cnJlbnRDb2xsZWN0aW9uR3JvdXAkLnBpcGUoZmlsdGVyTWF5YmUoKSk7XG5cbiAgLy8gTUFSSzogU3RhdGUgQ2hhbmdlc1xuICAvKipcbiAgICogU2V0cyB0aGUgY29sbGVjdGlvbiBmYWN0b3J5IGZ1bmN0aW9uIHRvIHVzZS5cbiAgICovXG4gIHJlYWRvbmx5IHNldENvbGxlY3Rpb25GYWN0b3J5ID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgY29sbGVjdGlvbkZhY3Rvcnk6IEZpcmVzdG9yZUNvbGxlY3Rpb25XaXRoUGFyZW50RmFjdG9yeTxULCBQVCwgRCwgUEQ+KSA9PiAoeyAuLi5zdGF0ZSwgY29sbGVjdGlvbkZhY3RvcnkgfSkpO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBjb2xsZWN0aW9uIGdyb3VwIHRvIHVzZS5cbiAgICovXG4gIHJlYWRvbmx5IHNldENvbGxlY3Rpb25Hcm91cCA9IHRoaXMudXBkYXRlcigoc3RhdGUsIGNvbGxlY3Rpb25Hcm91cDogTWF5YmU8RmlyZXN0b3JlQ29sbGVjdGlvbkdyb3VwPFQsIEQ+PikgPT4gKHsgLi4uc3RhdGUsIGNvbGxlY3Rpb25Hcm91cCB9KSkgYXMgKG9ic2VydmFibGVPclZhbHVlOiBNYXliZTxGaXJlc3RvcmVDb2xsZWN0aW9uR3JvdXA8VCwgRD4+IHwgT2JzZXJ2YWJsZTxNYXliZTxGaXJlc3RvcmVDb2xsZWN0aW9uR3JvdXA8VCwgRD4+PikgPT4gU3Vic2NyaXB0aW9uO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBwYXJlbnQgb24gdGhlIGN1cnJlbnQgc3RhdGUuXG4gICAqL1xuICByZWFkb25seSBfc2V0UGFyZW50RG9jdW1lbnQgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBwYXJlbnQ6IE1heWJlPFBEPikgPT4gKHsgLi4uc3RhdGUsIHBhcmVudCB9KSk7XG4gIHJlYWRvbmx5IF9zZXRQYXJlbnQgPSB0aGlzLl9zZXRQYXJlbnREb2N1bWVudCBhcyBEYnhGaXJlYmFzZUNvbXBvbmVudFN0b3JlU2V0UGFyZW50RWZmZWN0RnVuY3Rpb248UEQ+O1xufVxuIl19
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { cleanup } from '@dereekb/rxjs';
|
|
2
|
+
import { map } from 'rxjs';
|
|
3
|
+
export function setParentStoreEffect(store) {
|
|
4
|
+
return store.effect((input) => {
|
|
5
|
+
return input.pipe(map((parentStore) => {
|
|
6
|
+
let result;
|
|
7
|
+
if (parentStore) {
|
|
8
|
+
result = store._setParent(parentStore.currentDocument$);
|
|
9
|
+
}
|
|
10
|
+
else {
|
|
11
|
+
result = undefined;
|
|
12
|
+
}
|
|
13
|
+
// set as the parent lock set too
|
|
14
|
+
store.setParentLockSet(parentStore);
|
|
15
|
+
return result;
|
|
16
|
+
}), cleanup((sub) => {
|
|
17
|
+
if (sub) {
|
|
18
|
+
sub.unsubscribe();
|
|
19
|
+
}
|
|
20
|
+
}));
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuc3ViY29sbGVjdGlvbi5yeGpzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kZWwvbW9kdWxlcy9zdG9yZS9zdG9yZS5zdWJjb2xsZWN0aW9uLnJ4anMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLE9BQU8sRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFHM0QsT0FBTyxFQUFFLEdBQUcsRUFBNEIsTUFBTSxNQUFNLENBQUM7QUFzQnJELE1BQU0sVUFBVSxvQkFBb0IsQ0FBa00sS0FBMkQ7SUFDL1IsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBMEQsRUFBRSxFQUFFO1FBQ2pGLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FDZixHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUNsQixJQUFJLE1BQTJCLENBQUM7WUFFaEMsSUFBSSxXQUFXLEVBQUU7Z0JBQ2YsTUFBTSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFpQixDQUFDO2FBQ3pFO2lCQUFNO2dCQUNMLE1BQU0sR0FBRyxTQUFTLENBQUM7YUFDcEI7WUFFRCxpQ0FBaUM7WUFDakMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBRXBDLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxFQUNGLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2QsSUFBSSxHQUFHLEVBQUU7Z0JBQ1AsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO2FBQ25CO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvY2tTZXRDb21wb25lbnRTdG9yZSB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcbmltcG9ydCB7IEZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlLCBGaXJlc3RvcmVDb2xsZWN0aW9uV2l0aFBhcmVudEZhY3RvcnksIEZpcmVzdG9yZURvY3VtZW50IH0gZnJvbSAnQGRlcmVla2IvZmlyZWJhc2UnO1xuaW1wb3J0IHsgY2xlYW51cCwgT2JzZXJ2YWJsZU9yVmFsdWUgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBDb21wb25lbnRTdG9yZSB9IGZyb20gJ0BuZ3J4L2NvbXBvbmVudC1zdG9yZSc7XG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlIH0gZnJvbSAnLi9zdG9yZS5kb2N1bWVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4RmlyZWJhc2VDb21wb25lbnRTdG9yZVdpdGhQYXJlbnRDb250ZXh0U3RhdGU8VCwgUFQsIEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxUPiA9IEZpcmVzdG9yZURvY3VtZW50PFQ+LCBQRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFBUPiA9IEZpcmVzdG9yZURvY3VtZW50PFBUPj4ge1xuICByZWFkb25seSBwYXJlbnQ/OiBNYXliZTxQRD47XG4gIHJlYWRvbmx5IGNvbGxlY3Rpb25GYWN0b3J5PzogTWF5YmU8RmlyZXN0b3JlQ29sbGVjdGlvbldpdGhQYXJlbnRGYWN0b3J5PFQsIFBULCBELCBQRD4+O1xufVxuXG5leHBvcnQgdHlwZSBEYnhGaXJlYmFzZUNvbXBvbmVudFN0b3JlU2V0UGFyZW50RWZmZWN0RnVuY3Rpb248UEQ+ID0gKHBhcmVudDogT2JzZXJ2YWJsZTxNYXliZTxQRD4+KSA9PiBTdWJzY3JpcHRpb247XG5leHBvcnQgdHlwZSBEYnhGaXJlYmFzZUNvbXBvbmVudFN0b3JlV2l0aFBhcmVudFNldFBhcmVudEVmZmVjdEZ1bmN0aW9uPFBEPiA9IChvYnNlcnZhYmxlT3JWYWx1ZTogT2JzZXJ2YWJsZU9yVmFsdWU8TWF5YmU8UEQ+PikgPT4gU3Vic2NyaXB0aW9uO1xuZXhwb3J0IHR5cGUgRGJ4RmlyZWJhc2VDb21wb25lbnRTdG9yZVdpdGhQYXJlbnRTZXRQYXJlbnRTdG9yZUVmZmVjdEZ1bmN0aW9uPFBULCBQRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFBUPiA9IEZpcmVzdG9yZURvY3VtZW50PFBUPj4gPSAob2JzZXJ2YWJsZU9yVmFsdWU6IE9ic2VydmFibGVPclZhbHVlPERieEZpcmViYXNlRG9jdW1lbnRTdG9yZTxQVCwgUEQ+PikgPT4gU3Vic2NyaXB0aW9uO1xuXG5leHBvcnQgaW50ZXJmYWNlIERieEZpcmViYXNlQ29tcG9uZW50U3RvcmVXaXRoUGFyZW50PFQsIFBULCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPiwgUEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxQVD4gPSBGaXJlc3RvcmVEb2N1bWVudDxQVD4sIEEgZXh0ZW5kcyBGaXJlc3RvcmVDb2xsZWN0aW9uTGlrZTxULCBEPiA9IEZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlPFQsIEQ+PiBleHRlbmRzIExvY2tTZXRDb21wb25lbnRTdG9yZTxvYmplY3Q+LCBQaWNrPENvbXBvbmVudFN0b3JlPERieEZpcmViYXNlQ29tcG9uZW50U3RvcmVXaXRoUGFyZW50Q29udGV4dFN0YXRlPFQsIFBULCBELCBQRD4+LCAnZWZmZWN0Jz4ge1xuICByZWFkb25seSBjdXJyZW50UGFyZW50JDogT2JzZXJ2YWJsZTxNYXliZTxQRD4+O1xuICByZWFkb25seSBwYXJlbnQkOiBPYnNlcnZhYmxlPFBEPjtcbiAgcmVhZG9ubHkgY3VycmVudENvbGxlY3Rpb25GYWN0b3J5JDogT2JzZXJ2YWJsZTxNYXliZTxGaXJlc3RvcmVDb2xsZWN0aW9uV2l0aFBhcmVudEZhY3Rvcnk8VCwgUFQsIEQsIFBEPj4+O1xuICByZWFkb25seSBjb2xsZWN0aW9uRmFjdG9yeSQ6IE9ic2VydmFibGU8RmlyZXN0b3JlQ29sbGVjdGlvbldpdGhQYXJlbnRGYWN0b3J5PFQsIFBULCBELCBQRD4+O1xuICByZWFkb25seSBfc2V0UGFyZW50OiBEYnhGaXJlYmFzZUNvbXBvbmVudFN0b3JlU2V0UGFyZW50RWZmZWN0RnVuY3Rpb248UEQ+O1xuICByZWFkb25seSBfc2V0UGFyZW50RG9jdW1lbnQ6ICgoKSA9PiB2b2lkKSB8ICgob2JzZXJ2YWJsZU9yVmFsdWU6IE9ic2VydmFibGVPclZhbHVlPE1heWJlPFBEPj4pID0+IFN1YnNjcmlwdGlvbik7XG4gIHJlYWRvbmx5IHNldEZpcmVzdG9yZUNvbGxlY3Rpb246ICgoKSA9PiB2b2lkKSB8ICgob2JzZXJ2YWJsZU9yVmFsdWU6IE9ic2VydmFibGVPclZhbHVlPE1heWJlPEE+PikgPT4gU3Vic2NyaXB0aW9uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldFBhcmVudFN0b3JlRWZmZWN0PFQsIFBULCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPiwgUEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxQVD4gPSBGaXJlc3RvcmVEb2N1bWVudDxQVD4sIEEgZXh0ZW5kcyBGaXJlc3RvcmVDb2xsZWN0aW9uTGlrZTxULCBEPiA9IEZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlPFQsIEQ+PihzdG9yZTogRGJ4RmlyZWJhc2VDb21wb25lbnRTdG9yZVdpdGhQYXJlbnQ8VCwgUFQsIEQsIFBELCBBPik6IERieEZpcmViYXNlQ29tcG9uZW50U3RvcmVXaXRoUGFyZW50U2V0UGFyZW50U3RvcmVFZmZlY3RGdW5jdGlvbjxQVCwgUEQ+IHtcbiAgcmV0dXJuIHN0b3JlLmVmZmVjdCgoaW5wdXQ6IE9ic2VydmFibGU8TWF5YmU8RGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlPFBULCBQRD4+PikgPT4ge1xuICAgIHJldHVybiBpbnB1dC5waXBlKFxuICAgICAgbWFwKChwYXJlbnRTdG9yZSkgPT4ge1xuICAgICAgICBsZXQgcmVzdWx0OiBNYXliZTxTdWJzY3JpcHRpb24+O1xuXG4gICAgICAgIGlmIChwYXJlbnRTdG9yZSkge1xuICAgICAgICAgIHJlc3VsdCA9IHN0b3JlLl9zZXRQYXJlbnQocGFyZW50U3RvcmUuY3VycmVudERvY3VtZW50JCkgYXMgU3Vic2NyaXB0aW9uO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHNldCBhcyB0aGUgcGFyZW50IGxvY2sgc2V0IHRvb1xuICAgICAgICBzdG9yZS5zZXRQYXJlbnRMb2NrU2V0KHBhcmVudFN0b3JlKTtcblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfSksXG4gICAgICBjbGVhbnVwKChzdWIpID0+IHtcbiAgICAgICAgaWYgKHN1Yikge1xuICAgICAgICAgIHN1Yi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH0pO1xufVxuIl19
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
+
export * from './model.context.instance';
|
|
2
|
+
export * from './model.context.service';
|
|
1
3
|
export * from './model.context';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9zZXJ2aWNlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9tb2RlbC5jb250ZXh0Lmluc3RhbmNlJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWwuY29udGV4dC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWwuY29udGV4dCc7XG4iXX0=
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { asObservable } from '@dereekb/rxjs';
|
|
2
|
+
import { map, switchMap, shareReplay, distinctUntilChanged } from 'rxjs';
|
|
3
|
+
export function dbxFirebaseInContextFirebaseModelServiceInstanceFactory(context$) {
|
|
4
|
+
return (type, keyObs) => {
|
|
5
|
+
const key$ = asObservable(keyObs);
|
|
6
|
+
const modelServiceObs = context$.pipe(map((x) => x(type)), switchMap((service) => key$.pipe(map((key) => service(key)))));
|
|
7
|
+
return new DbxFirebaseInContextFirebaseModelServiceInstance(modelServiceObs);
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Wraps an InModelContextFirebaseModelService observable and provides different piped observables.
|
|
12
|
+
*/
|
|
13
|
+
export class DbxFirebaseInContextFirebaseModelServiceInstance {
|
|
14
|
+
constructor(modelService$) {
|
|
15
|
+
this.modelService$ = modelService$;
|
|
16
|
+
this.key$ = this.modelService$.pipe(map((x) => x.model.key));
|
|
17
|
+
// MARK: Model
|
|
18
|
+
this.modelType$ = this.modelService$.pipe(map((x) => x.model.modelType), distinctUntilChanged());
|
|
19
|
+
this.model$ = this.modelService$.pipe(map((x) => x.model), distinctUntilChanged((a, b) => a.key === b.key), shareReplay(1));
|
|
20
|
+
this.snapshotData$ = this.model$.pipe(switchMap((x) => x.snapshotData()), shareReplay(1));
|
|
21
|
+
// MARK: Roles
|
|
22
|
+
this.roleReader$ = this.modelService$.pipe(switchMap((x) => x.roleReader()), shareReplay(1));
|
|
23
|
+
this.roleMap$ = this.roleReader$.pipe(map((x) => x.roleMap), shareReplay(1));
|
|
24
|
+
this.hasNoAccess$ = this.roleReader$.pipe(map((x) => x.hasNoAccess()), shareReplay(1));
|
|
25
|
+
}
|
|
26
|
+
snapshotStream(mode) {
|
|
27
|
+
return this.model$.pipe(switchMap((x) => x.snapshotStream(mode)), shareReplay(1));
|
|
28
|
+
}
|
|
29
|
+
snapshotDataStream(mode, options) {
|
|
30
|
+
return this.model$.pipe(switchMap((x) => x.snapshotDataStream(mode)), shareReplay(1));
|
|
31
|
+
}
|
|
32
|
+
truthMap(input) {
|
|
33
|
+
return this.roleReader$.pipe(map((x) => x.truthMap(input)), shareReplay(1));
|
|
34
|
+
}
|
|
35
|
+
hasAnyRoles(roles) {
|
|
36
|
+
return this.hasRoles('any', roles);
|
|
37
|
+
}
|
|
38
|
+
hasAllRoles(roles) {
|
|
39
|
+
return this.hasRoles('all', roles);
|
|
40
|
+
}
|
|
41
|
+
hasRoles(setIncludes, roles) {
|
|
42
|
+
return this.roleReader$.pipe(map((x) => x.hasRoles(setIncludes, roles)), distinctUntilChanged(), shareReplay(1));
|
|
43
|
+
}
|
|
44
|
+
containsAnyRoles(roles) {
|
|
45
|
+
return this.containsRoles('any', roles);
|
|
46
|
+
}
|
|
47
|
+
containsAllRoles(roles) {
|
|
48
|
+
return this.containsRoles('all', roles);
|
|
49
|
+
}
|
|
50
|
+
containsRoles(setIncludes, roles) {
|
|
51
|
+
return this.roleReader$.pipe(map((x) => x.containsRoles(setIncludes, roles)), distinctUntilChanged(), shareReplay(1));
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuY29udGV4dC5pbnN0YW5jZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL21vZGVsL3NlcnZpY2UvbW9kZWwuY29udGV4dC5pbnN0YW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsWUFBWSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUVoRSxPQUFPLEVBQUUsR0FBRyxFQUFjLFNBQVMsRUFBRSxXQUFXLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFLckYsTUFBTSxVQUFVLHVEQUF1RCxDQUEySCxRQUF1QjtJQUN2TixPQUFPLENBQXdFLElBQXVJLEVBQUUsTUFBbUMsRUFBRSxFQUFFO1FBQzdQLE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsQyxNQUFNLGVBQWUsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUNuQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUNuQixTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ2tDLENBQUM7UUFFbEcsT0FBTyxJQUFJLGdEQUFnRCxDQUFVLGVBQWUsQ0FBQyxDQUFDO0lBQ3hGLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sT0FBTyxnREFBZ0Q7SUFDM0QsWUFBcUIsYUFBZ0c7UUFBaEcsa0JBQWEsR0FBYixhQUFhLENBQW1GO1FBRTVHLFNBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxD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QVcsQ0FBQyxJQUFJLENBQzFCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFDMUMsb0JBQW9CLEVBQUUsRUFDdEIsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7SUFDSixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBeUI7UUFDeEMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBeUI7UUFDeEMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsYUFBYSxDQUFDLFdBQTRCLEVBQUUsS0FBeUI7UUFDbkUsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FDMUIsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUMvQyxvQkFBb0IsRUFBRSxFQUN0QixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpcmVzdG9yZURvY3VtZW50LCBGaXJlYmFzZVBlcm1pc3Npb25FcnJvckNvbnRleHQsIEluTW9kZWxDb250ZXh0RmlyZWJhc2VNb2RlbFNlcnZpY2UsIEZpcmVzdG9yZURvY3VtZW50RGF0YSwgRG9jdW1lbnRTbmFwc2hvdCwgRmlyZXN0b3JlQWNjZXNzb3JTdHJlYW1Nb2RlLCBTbmFwc2hvdE9wdGlvbnMsIGZpcmVzdG9yZU1vZGVsS2V5Q29sbGVjdGlvblR5cGUsIEZpcmVzdG9yZUNvbGxlY3Rpb25UeXBlLCBGaXJlYmFzZU1vZGVsU2VydmljZUNvbnRleHQsIEZpcmViYXNlTW9kZWxzU2VydmljZUZhY3RvcnksIEZpcmVzdG9yZU1vZGVsSWRlbnRpdHksIEluQ29udGV4dEZpcmViYXNlTW9kZWxzU2VydmljZSwgRmlyZXN0b3JlTW9kZWxJZGVudGl0eU1vZGVsVHlwZSwgRmlyZWJhc2VNb2RlbHNTZXJ2aWNlIH0gZnJvbSAnQGRlcmVla2IvZmlyZWJhc2UnO1xuaW1wb3J0IHsgR3JhbnRlZFJvbGUsIEdyYW50ZWRSb2xlVHJ1dGhNYXAsIEdyYW50ZWRSb2xlVHJ1dGhNYXBPYmplY3QgfSBmcm9tICdAZGVyZWVrYi9tb2RlbCc7XG5pbXBvcnQgeyBhc09ic2VydmFibGUsIE9ic2VydmFibGVPclZhbHVlIH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBTZXRJbmNsdWRlc01vZGUsIEl0ZXJhYmxlT3JWYWx1ZSwgTW9kZWxLZXkgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSwgc3dpdGNoTWFwLCBzaGFyZVJlcGxheSwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERieEZpcmViYXNlSW5Db250ZXh0RmlyZWJhc2VNb2RlbEluZm9TZXJ2aWNlSW5zdGFuY2UgfSBmcm9tICcuL21vZGVsLmNvbnRleHQnO1xuXG5leHBvcnQgdHlwZSBEYnhGaXJlYmFzZUluQ29udGV4dEZpcmViYXNlTW9kZWxTZXJ2aWNlSW5zdGFuY2VGYWN0b3J5PFMgZXh0ZW5kcyBJbkNvbnRleHRGaXJlYmFzZU1vZGVsc1NlcnZpY2U8YW55PiwgQyBleHRlbmRzIEZpcmViYXNlUGVybWlzc2lvbkVycm9yQ29udGV4dCA9IEZpcmViYXNlUGVybWlzc2lvbkVycm9yQ29udGV4dD4gPSA8RCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PGFueT4sIFIgZXh0ZW5kcyBHcmFudGVkUm9sZSA9IEdyYW50ZWRSb2xlPih0eXBlOiBTIGV4dGVuZHMgSW5Db250ZXh0RmlyZWJhc2VNb2RlbHNTZXJ2aWNlPGluZmVyIFk+ID8gKFkgZXh0ZW5kcyBGaXJlYmFzZU1vZGVsc1NlcnZpY2U8aW5mZXIgWCwgaW5mZXIgQz4gPyBrZXlvZiBYIDogbmV2ZXIpIDogbmV2ZXIsIGtleU9iczogT2JzZXJ2YWJsZU9yVmFsdWU8TW9kZWxLZXk+KSA9PiBEYnhGaXJlYmFzZUluQ29udGV4dEZpcmViYXNlTW9kZWxTZXJ2aWNlSW5zdGFuY2U8RCwgUiwgQz47XG5cbmV4cG9ydCBmdW5jdGlvbiBkYnhGaXJlYmFzZUluQ29udGV4dEZpcmViYXNlTW9kZWxTZXJ2aWNlSW5zdGFuY2VGYWN0b3J5PFMgZXh0ZW5kcyBJbkNvbnRleHRGaXJlYmFzZU1vZGVsc1NlcnZpY2U8YW55PiwgQyBleHRlbmRzIEZpcmViYXNlUGVybWlzc2lvbkVycm9yQ29udGV4dCA9IEZpcmViYXNlUGVybWlzc2lvbkVycm9yQ29udGV4dD4oY29udGV4dCQ6IE9ic2VydmFibGU8Uz4pOiBEYnhGaXJlYmFzZUluQ29udGV4dEZpcmViYXNlTW9kZWxTZXJ2aWNlSW5zdGFuY2VGYWN0b3J5PFMsIEM+IHtcbiAgcmV0dXJuIDxEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8YW55PiwgUiBleHRlbmRzIEdyYW50ZWRSb2xlID0gR3JhbnRlZFJvbGU+KHR5cGU6IFMgZXh0ZW5kcyBJbkNvbnRleHRGaXJlYmFzZU1vZGVsc1NlcnZpY2U8aW5mZXIgWT4gPyAoWSBleHRlbmRzIEZpcmViYXNlTW9kZWxzU2VydmljZTxpbmZlciBYLCBpbmZlciBDPiA/IGtleW9mIFggOiBuZXZlcikgOiBuZXZlciwga2V5T2JzOiBPYnNlcnZhYmxlT3JWYWx1ZTxNb2RlbEtleT4pID0+IHtcbiAgICBjb25zdCBrZXkkID0gYXNPYnNlcnZhYmxlKGtleU9icyk7XG4gICAgY29uc3QgbW9kZWxTZXJ2aWNlT2JzID0gY29udGV4dCQucGlwZShcbiAgICAgIG1hcCgoeCkgPT4geCh0eXBlKSksXG4gICAgICBzd2l0Y2hNYXAoKHNlcnZpY2UpID0+IGtleSQucGlwZShtYXAoKGtleSkgPT4gc2VydmljZShrZXkpKSkpXG4gICAgKSBhcyB1bmtub3duIGFzIE9ic2VydmFibGU8SW5Nb2RlbENvbnRleHRGaXJlYmFzZU1vZGVsU2VydmljZTxDLCBGaXJlc3RvcmVEb2N1bWVudERhdGE8RD4sIEQsIFI+PjtcblxuICAgIHJldHVybiBuZXcgRGJ4RmlyZWJhc2VJbkNvbnRleHRGaXJlYmFzZU1vZGVsU2VydmljZUluc3RhbmNlPEQsIFIsIEM+KG1vZGVsU2VydmljZU9icyk7XG4gIH07XG59XG5cbi8qKlxuICogV3JhcHMgYW4gSW5Nb2RlbENvbnRleHRGaXJlYmFzZU1vZGVsU2VydmljZSBvYnNlcnZhYmxlIGFuZCBwcm92aWRlcyBkaWZmZXJlbnQgcGlwZWQgb2JzZXJ2YWJsZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBEYnhGaXJlYmFzZUluQ29udGV4dEZpcmViYXNlTW9kZWxTZXJ2aWNlSW5zdGFuY2U8RCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PGFueT4sIFIgZXh0ZW5kcyBHcmFudGVkUm9sZSA9IEdyYW50ZWRSb2xlLCBDIGV4dGVuZHMgRmlyZWJhc2VQZXJtaXNzaW9uRXJyb3JDb250ZXh0ID0gRmlyZWJhc2VQZXJtaXNzaW9uRXJyb3JDb250ZXh0PiBpbXBsZW1lbnRzIERieEZpcmViYXNlSW5Db250ZXh0RmlyZWJhc2VNb2RlbEluZm9TZXJ2aWNlSW5zdGFuY2U8RCwgUj4ge1xuICBjb25zdHJ1Y3RvcihyZWFkb25seSBtb2RlbFNlcnZpY2UkOiBPYnNlcnZhYmxlPEluTW9kZWxDb250ZXh0RmlyZWJhc2VNb2RlbFNlcnZpY2U8QywgRmlyZXN0b3JlRG9jdW1lbnREYXRhPEQ+LCBELCBSPj4pIHt9XG5cbiAgcmVhZG9ubHkga2V5JCA9IHRoaXMubW9kZWxTZXJ2aWNlJC5waXBlKG1hcCgoeCkgPT4geC5tb2RlbC5rZXkpKTtcblxuICAvLyBNQVJLOiBNb2RlbFxuICByZWFkb25seSBtb2RlbFR5cGUkID0gdGhpcy5tb2RlbFNlcnZpY2UkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4Lm1vZGVsLm1vZGVsVHlwZSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICApO1xuXG4gIHJlYWRvbmx5IG1vZGVsJCA9IHRoaXMubW9kZWxTZXJ2aWNlJC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5tb2RlbCksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKGEsIGIpID0+IGEua2V5ID09PSBiLmtleSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBzbmFwc2hvdERhdGEkID0gdGhpcy5tb2RlbCQucGlwZShcbiAgICBzd2l0Y2hNYXAoKHgpID0+IHguc25hcHNob3REYXRhKCkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgc25hcHNob3RTdHJlYW0obW9kZTogRmlyZXN0b3JlQWNjZXNzb3JTdHJlYW1Nb2RlKTogT2JzZXJ2YWJsZTxEb2N1bWVudFNuYXBzaG90PEZpcmVzdG9yZURvY3VtZW50RGF0YTxEPj4+IHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbCQucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoeCkgPT4geC5zbmFwc2hvdFN0cmVhbShtb2RlKSksXG4gICAgICBzaGFyZVJlcGxheSgxKVxuICAgICk7XG4gIH1cblxuICBzbmFwc2hvdERhdGFTdHJlYW0obW9kZTogRmlyZXN0b3JlQWNjZXNzb3JTdHJlYW1Nb2RlLCBvcHRpb25zPzogU25hcHNob3RPcHRpb25zKTogT2JzZXJ2YWJsZTxGaXJlc3RvcmVEb2N1bWVudERhdGE8RD4+IHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbCQucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoeCkgPT4geC5zbmFwc2hvdERhdGFTdHJlYW0obW9kZSkpLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuICB9XG5cbiAgLy8gTUFSSzogUm9sZXNcbiAgcmVhZG9ubHkgcm9sZVJlYWRlciQgPSB0aGlzLm1vZGVsU2VydmljZSQucGlwZShcbiAgICBzd2l0Y2hNYXAoKHgpID0+IHgucm9sZVJlYWRlcigpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IHJvbGVNYXAkID0gdGhpcy5yb2xlUmVhZGVyJC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5yb2xlTWFwKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGhhc05vQWNjZXNzJCA9IHRoaXMucm9sZVJlYWRlciQucGlwZShcbiAgICBtYXAoKHgpID0+IHguaGFzTm9BY2Nlc3MoKSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICB0cnV0aE1hcDxNIGV4dGVuZHMgR3JhbnRlZFJvbGVUcnV0aE1hcE9iamVjdDxhbnksIFI+PihpbnB1dDogTSk6IE9ic2VydmFibGU8R3JhbnRlZFJvbGVUcnV0aE1hcDxNPj4ge1xuICAgIHJldHVybiB0aGlzLnJvbGVSZWFkZXIkLnBpcGUoXG4gICAgICBtYXAoKHgpID0+IHgudHJ1dGhNYXAoaW5wdXQpKSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKTtcbiAgfVxuXG4gIGhhc0FueVJvbGVzKHJvbGVzOiBJdGVyYWJsZU9yVmFsdWU8Uj4pOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5oYXNSb2xlcygnYW55Jywgcm9sZXMpO1xuICB9XG5cbiAgaGFzQWxsUm9sZXMocm9sZXM6IEl0ZXJhYmxlT3JWYWx1ZTxSPik6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmhhc1JvbGVzKCdhbGwnLCByb2xlcyk7XG4gIH1cblxuICBoYXNSb2xlcyhzZXRJbmNsdWRlczogU2V0SW5jbHVkZXNNb2RlLCByb2xlczogSXRlcmFibGVPclZhbHVlPFI+KTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMucm9sZVJlYWRlciQucGlwZShcbiAgICAgIG1hcCgoeCkgPT4geC5oYXNSb2xlcyhzZXRJbmNsdWRlcywgcm9sZXMpKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICBzaGFyZVJlcGxheSgxKVxuICAgICk7XG4gIH1cblxuICBjb250YWluc0FueVJvbGVzKHJvbGVzOiBJdGVyYWJsZU9yVmFsdWU8Uj4pOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5jb250YWluc1JvbGVzKCdhbnknLCByb2xlcyk7XG4gIH1cblxuICBjb250YWluc0FsbFJvbGVzKHJvbGVzOiBJdGVyYWJsZU9yVmFsdWU8Uj4pOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5jb250YWluc1JvbGVzKCdhbGwnLCByb2xlcyk7XG4gIH1cblxuICBjb250YWluc1JvbGVzKHNldEluY2x1ZGVzOiBTZXRJbmNsdWRlc01vZGUsIHJvbGVzOiBJdGVyYWJsZU9yVmFsdWU8Uj4pOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5yb2xlUmVhZGVyJC5waXBlKFxuICAgICAgbWFwKCh4KSA9PiB4LmNvbnRhaW5zUm9sZXMoc2V0SW5jbHVkZXMsIHJvbGVzKSksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -1,35 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
* Wraps an InModelContextFirebaseModelService observable and provides different piped observables.
|
|
4
|
-
*/
|
|
5
|
-
export class DbxFirebaseInContextFirebaseModelServiceInstance {
|
|
6
|
-
constructor(modelService$) {
|
|
7
|
-
this.modelService$ = modelService$;
|
|
8
|
-
// MARK: Roles
|
|
9
|
-
this.roleReader$ = this.modelService$.pipe(switchMap((x) => x.roleReader()), shareReplay(1));
|
|
10
|
-
this.roleMap$ = this.roleReader$.pipe(map((x) => x.roleMap), shareReplay(1));
|
|
11
|
-
this.hasNoAccess$ = this.roleReader$.pipe(map((x) => x.hasNoAccess()), shareReplay(1));
|
|
12
|
-
}
|
|
13
|
-
truthMap(input) {
|
|
14
|
-
return this.roleReader$.pipe(map((x) => x.truthMap(input)), shareReplay(1));
|
|
15
|
-
}
|
|
16
|
-
hasAnyRoles(roles) {
|
|
17
|
-
return this.hasRoles('any', roles);
|
|
18
|
-
}
|
|
19
|
-
hasAllRoles(roles) {
|
|
20
|
-
return this.hasRoles('all', roles);
|
|
21
|
-
}
|
|
22
|
-
hasRoles(setIncludes, roles) {
|
|
23
|
-
return this.roleReader$.pipe(map((x) => x.hasRoles(setIncludes, roles)), distinctUntilChanged(), shareReplay(1));
|
|
24
|
-
}
|
|
25
|
-
containsAnyRoles(roles) {
|
|
26
|
-
return this.containsRoles('any', roles);
|
|
27
|
-
}
|
|
28
|
-
containsAllRoles(roles) {
|
|
29
|
-
return this.containsRoles('all', roles);
|
|
30
|
-
}
|
|
31
|
-
containsRoles(setIncludes, roles) {
|
|
32
|
-
return this.roleReader$.pipe(map((x) => x.containsRoles(setIncludes, roles)), distinctUntilChanged(), shareReplay(1));
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL21vZGVsL3NlcnZpY2UvbW9kZWwuY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsR0FBRyxFQUFjLFNBQVMsRUFBRSxXQUFXLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFlckY7O0dBRUc7QUFDSCxNQUFNLE9BQU8sZ0RBQWdEO0lBQzNELFlBQXFCLGFBQWdHO1FBQWhHLGtCQUFhLEdBQWIsYUFBYSxDQUFtRjtRQUVySCxjQUFjO1FBQ0wsZ0JBQVcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDNUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsRUFDaEMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7UUFFTyxhQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQ3ZDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUNyQixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztRQUVPLGlCQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQzNDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQzNCLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO0lBaEJzSCxDQUFDO0lBa0J6SCxRQUFRLENBQThDLEtBQVE7UUFDNUQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FDMUIsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQzdCLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO0lBQ0osQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUF5QjtRQUNuQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBeUI7UUFDbkMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsUUFBUSxDQUFDLFdBQTRCLEVBQUUsS0FBeUI7UUFDOUQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FDMUIsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUMxQyxvQkFBb0IsRUFBRSxFQUN0QixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztJQUNKLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUF5QjtRQUN4QyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUF5QjtRQUN4QyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxhQUFhLENBQUMsV0FBNEIsRUFBRSxLQUF5QjtRQUNuRSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUMxQixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQy9DLG9CQUFvQixFQUFFLEVBQ3RCLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmlyZXN0b3JlRG9jdW1lbnQsIEZpcmViYXNlUGVybWlzc2lvbkVycm9yQ29udGV4dCwgSW5Nb2RlbENvbnRleHRGaXJlYmFzZU1vZGVsU2VydmljZSwgRmlyZXN0b3JlRG9jdW1lbnREYXRhIH0gZnJvbSAnQGRlcmVla2IvZmlyZWJhc2UnO1xuaW1wb3J0IHsgR3JhbnRlZFJvbGUsIEdyYW50ZWRSb2xlTWFwLCBHcmFudGVkUm9sZU1hcFJlYWRlciwgR3JhbnRlZFJvbGVUcnV0aE1hcCwgR3JhbnRlZFJvbGVUcnV0aE1hcE9iamVjdCB9IGZyb20gJ0BkZXJlZWtiL21vZGVsJztcbmltcG9ydCB7IFNldEluY2x1ZGVzTW9kZSwgSXRlcmFibGVPclZhbHVlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUsIHN3aXRjaE1hcCwgc2hhcmVSZXBsYXksIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4RmlyZWJhc2VJbkNvbnRleHRGaXJlYmFzZU1vZGVsUm9sZXNTZXJ2aWNlPFIgZXh0ZW5kcyBHcmFudGVkUm9sZSA9IEdyYW50ZWRSb2xlPiB7XG4gIHJlYWRvbmx5IHJvbGVSZWFkZXIkOiBPYnNlcnZhYmxlPEdyYW50ZWRSb2xlTWFwUmVhZGVyPFI+PjtcbiAgcmVhZG9ubHkgcm9sZU1hcCQ6IE9ic2VydmFibGU8R3JhbnRlZFJvbGVNYXA8Uj4+O1xuICByZWFkb25seSBoYXNOb0FjY2VzcyQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIHRydXRoTWFwPE0gZXh0ZW5kcyBHcmFudGVkUm9sZVRydXRoTWFwT2JqZWN0PGFueSwgUj4+KGlucHV0OiBNKTogT2JzZXJ2YWJsZTxHcmFudGVkUm9sZVRydXRoTWFwPE0+PjtcbiAgaGFzQW55Um9sZXMocm9sZXM6IEl0ZXJhYmxlT3JWYWx1ZTxSPik6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIGhhc0FsbFJvbGVzKHJvbGVzOiBJdGVyYWJsZU9yVmFsdWU8Uj4pOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBoYXNSb2xlcyhzZXRJbmNsdWRlczogU2V0SW5jbHVkZXNNb2RlLCByb2xlczogSXRlcmFibGVPclZhbHVlPFI+KTogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgY29udGFpbnNBbnlSb2xlcyhyb2xlczogSXRlcmFibGVPclZhbHVlPFI+KTogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgY29udGFpbnNBbGxSb2xlcyhyb2xlczogSXRlcmFibGVPclZhbHVlPFI+KTogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgY29udGFpbnNSb2xlcyhzZXRJbmNsdWRlczogU2V0SW5jbHVkZXNNb2RlLCByb2xlczogSXRlcmFibGVPclZhbHVlPFI+KTogT2JzZXJ2YWJsZTxib29sZWFuPjtcbn1cblxuLyoqXG4gKiBXcmFwcyBhbiBJbk1vZGVsQ29udGV4dEZpcmViYXNlTW9kZWxTZXJ2aWNlIG9ic2VydmFibGUgYW5kIHByb3ZpZGVzIGRpZmZlcmVudCBwaXBlZCBvYnNlcnZhYmxlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlSW5Db250ZXh0RmlyZWJhc2VNb2RlbFNlcnZpY2VJbnN0YW5jZTxEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8YW55PiwgUiBleHRlbmRzIEdyYW50ZWRSb2xlID0gR3JhbnRlZFJvbGUsIEMgZXh0ZW5kcyBGaXJlYmFzZVBlcm1pc3Npb25FcnJvckNvbnRleHQgPSBGaXJlYmFzZVBlcm1pc3Npb25FcnJvckNvbnRleHQ+IGltcGxlbWVudHMgRGJ4RmlyZWJhc2VJbkNvbnRleHRGaXJlYmFzZU1vZGVsUm9sZXNTZXJ2aWNlPFI+IHtcbiAgY29uc3RydWN0b3IocmVhZG9ubHkgbW9kZWxTZXJ2aWNlJDogT2JzZXJ2YWJsZTxJbk1vZGVsQ29udGV4dEZpcmViYXNlTW9kZWxTZXJ2aWNlPEMsIEZpcmVzdG9yZURvY3VtZW50RGF0YTxEPiwgRCwgUj4+KSB7fVxuXG4gIC8vIE1BUks6IFJvbGVzXG4gIHJlYWRvbmx5IHJvbGVSZWFkZXIkID0gdGhpcy5tb2RlbFNlcnZpY2UkLnBpcGUoXG4gICAgc3dpdGNoTWFwKCh4KSA9PiB4LnJvbGVSZWFkZXIoKSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSByb2xlTWFwJCA9IHRoaXMucm9sZVJlYWRlciQucGlwZShcbiAgICBtYXAoKHgpID0+IHgucm9sZU1hcCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBoYXNOb0FjY2VzcyQgPSB0aGlzLnJvbGVSZWFkZXIkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4Lmhhc05vQWNjZXNzKCkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgdHJ1dGhNYXA8TSBleHRlbmRzIEdyYW50ZWRSb2xlVHJ1dGhNYXBPYmplY3Q8YW55LCBSPj4oaW5wdXQ6IE0pOiBPYnNlcnZhYmxlPEdyYW50ZWRSb2xlVHJ1dGhNYXA8TT4+IHtcbiAgICByZXR1cm4gdGhpcy5yb2xlUmVhZGVyJC5waXBlKFxuICAgICAgbWFwKCh4KSA9PiB4LnRydXRoTWFwKGlucHV0KSksXG4gICAgICBzaGFyZVJlcGxheSgxKVxuICAgICk7XG4gIH1cblxuICBoYXNBbnlSb2xlcyhyb2xlczogSXRlcmFibGVPclZhbHVlPFI+KTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzUm9sZXMoJ2FueScsIHJvbGVzKTtcbiAgfVxuXG4gIGhhc0FsbFJvbGVzKHJvbGVzOiBJdGVyYWJsZU9yVmFsdWU8Uj4pOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5oYXNSb2xlcygnYWxsJywgcm9sZXMpO1xuICB9XG5cbiAgaGFzUm9sZXMoc2V0SW5jbHVkZXM6IFNldEluY2x1ZGVzTW9kZSwgcm9sZXM6IEl0ZXJhYmxlT3JWYWx1ZTxSPik6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLnJvbGVSZWFkZXIkLnBpcGUoXG4gICAgICBtYXAoKHgpID0+IHguaGFzUm9sZXMoc2V0SW5jbHVkZXMsIHJvbGVzKSksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuICB9XG5cbiAgY29udGFpbnNBbnlSb2xlcyhyb2xlczogSXRlcmFibGVPclZhbHVlPFI+KTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuY29udGFpbnNSb2xlcygnYW55Jywgcm9sZXMpO1xuICB9XG5cbiAgY29udGFpbnNBbGxSb2xlcyhyb2xlczogSXRlcmFibGVPclZhbHVlPFI+KTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuY29udGFpbnNSb2xlcygnYWxsJywgcm9sZXMpO1xuICB9XG5cbiAgY29udGFpbnNSb2xlcyhzZXRJbmNsdWRlczogU2V0SW5jbHVkZXNNb2RlLCByb2xlczogSXRlcmFibGVPclZhbHVlPFI+KTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMucm9sZVJlYWRlciQucGlwZShcbiAgICAgIG1hcCgoeCkgPT4geC5jb250YWluc1JvbGVzKHNldEluY2x1ZGVzLCByb2xlcykpLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL21vZGVsL3NlcnZpY2UvbW9kZWwuY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmlyZXN0b3JlRG9jdW1lbnQsIEZpcmVzdG9yZURvY3VtZW50RGF0YSwgRG9jdW1lbnRTbmFwc2hvdCwgRmlyZXN0b3JlQWNjZXNzb3JTdHJlYW1Nb2RlLCBTbmFwc2hvdE9wdGlvbnMsIEZpcmVzdG9yZU1vZGVsS2V5LCBGaXJlc3RvcmVDb2xsZWN0aW9uVHlwZSwgRmlyZXN0b3JlTW9kZWxUeXBlIH0gZnJvbSAnQGRlcmVla2IvZmlyZWJhc2UnO1xuaW1wb3J0IHsgR3JhbnRlZFJvbGUsIEdyYW50ZWRSb2xlTWFwLCBHcmFudGVkUm9sZU1hcFJlYWRlciwgR3JhbnRlZFJvbGVUcnV0aE1hcCwgR3JhbnRlZFJvbGVUcnV0aE1hcE9iamVjdCB9IGZyb20gJ0BkZXJlZWtiL21vZGVsJztcbmltcG9ydCB7IFNldEluY2x1ZGVzTW9kZSwgSXRlcmFibGVPclZhbHVlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogU2VydmljZSBpbnN0YW5jZSB0aGF0IGV4cG9zZXMgcm9sZXMgZm9yIGEgc3BlY2lmaWMgbW9kZWwuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4RmlyZWJhc2VJbkNvbnRleHRGaXJlYmFzZU1vZGVsUm9sZXNTZXJ2aWNlSW5zdGFuY2U8UiBleHRlbmRzIEdyYW50ZWRSb2xlID0gR3JhbnRlZFJvbGU+IHtcbiAgcmVhZG9ubHkga2V5JDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVNb2RlbEtleT47XG4gIHJlYWRvbmx5IHJvbGVSZWFkZXIkOiBPYnNlcnZhYmxlPEdyYW50ZWRSb2xlTWFwUmVhZGVyPFI+PjtcbiAgcmVhZG9ubHkgcm9sZU1hcCQ6IE9ic2VydmFibGU8R3JhbnRlZFJvbGVNYXA8Uj4+O1xuICByZWFkb25seSBoYXNOb0FjY2VzcyQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIHRydXRoTWFwPE0gZXh0ZW5kcyBHcmFudGVkUm9sZVRydXRoTWFwT2JqZWN0PGFueSwgUj4+KGlucHV0OiBNKTogT2JzZXJ2YWJsZTxHcmFudGVkUm9sZVRydXRoTWFwPE0+PjtcbiAgaGFzQW55Um9sZXMocm9sZXM6IEl0ZXJhYmxlT3JWYWx1ZTxSPik6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIGhhc0FsbFJvbGVzKHJvbGVzOiBJdGVyYWJsZU9yVmFsdWU8Uj4pOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBoYXNSb2xlcyhzZXRJbmNsdWRlczogU2V0SW5jbHVkZXNNb2RlLCByb2xlczogSXRlcmFibGVPclZhbHVlPFI+KTogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgY29udGFpbnNBbnlSb2xlcyhyb2xlczogSXRlcmFibGVPclZhbHVlPFI+KTogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgY29udGFpbnNBbGxSb2xlcyhyb2xlczogSXRlcmFibGVPclZhbHVlPFI+KTogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgY29udGFpbnNSb2xlcyhzZXRJbmNsdWRlczogU2V0SW5jbHVkZXNNb2RlLCByb2xlczogSXRlcmFibGVPclZhbHVlPFI+KTogT2JzZXJ2YWJsZTxib29sZWFuPjtcbn1cblxuLyoqXG4gKiBEYnhGaXJlYmFzZUluQ29udGV4dEZpcmViYXNlTW9kZWxSb2xlc1NlcnZpY2VJbnN0YW5jZSBleHRlbnNpb24gdGhhdCBwcm92aWRlcyBhY2Nlc3MgdG8gdGhlIHVuZGVybHlpbmcgbW9kZWwuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4RmlyZWJhc2VJbkNvbnRleHRGaXJlYmFzZU1vZGVsSW5mb1NlcnZpY2VJbnN0YW5jZTxEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8YW55PiwgUiBleHRlbmRzIEdyYW50ZWRSb2xlID0gR3JhbnRlZFJvbGU+IGV4dGVuZHMgRGJ4RmlyZWJhc2VJbkNvbnRleHRGaXJlYmFzZU1vZGVsUm9sZXNTZXJ2aWNlSW5zdGFuY2U8Uj4ge1xuICByZWFkb25seSBtb2RlbFR5cGUkOiBPYnNlcnZhYmxlPEZpcmVzdG9yZU1vZGVsVHlwZT47XG4gIHJlYWRvbmx5IG1vZGVsJDogT2JzZXJ2YWJsZTxEPjtcbiAgLyoqXG4gICAqIFJlYWRzIHRoZSBkYXRhIGZyb20gdGhlIG1vZGVsIG9uY2UgYW5kIHJldHVybnMgdGhlIGN1cnJlbnQgc3RhdGUgd2l0aG91dCBzdHJlYW1pbmcuXG4gICAqL1xuICByZWFkb25seSBzbmFwc2hvdERhdGEkOiBPYnNlcnZhYmxlPEZpcmVzdG9yZURvY3VtZW50RGF0YTxEPj47XG4gIHNuYXBzaG90U3RyZWFtKG1vZGU6IEZpcmVzdG9yZUFjY2Vzc29yU3RyZWFtTW9kZSk6IE9ic2VydmFibGU8RG9jdW1lbnRTbmFwc2hvdDxGaXJlc3RvcmVEb2N1bWVudERhdGE8RD4+PjtcbiAgc25hcHNob3REYXRhU3RyZWFtKG1vZGU6IEZpcmVzdG9yZUFjY2Vzc29yU3RyZWFtTW9kZSwgb3B0aW9ucz86IFNuYXBzaG90T3B0aW9ucyk6IE9ic2VydmFibGU8RmlyZXN0b3JlRG9jdW1lbnREYXRhPEQ+Pjtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { asFirestoreModelKeyCollectionType, buildFirebaseCollectionTypeModelTypeMap } from '@dereekb/firebase';
|
|
2
|
+
import { asObservable } from '@dereekb/rxjs';
|
|
3
|
+
import { shareReplay, map, first, switchMap } from 'rxjs';
|
|
4
|
+
/**
|
|
5
|
+
* Used for retrieving contexts for a specific model type/identity.
|
|
6
|
+
*/
|
|
7
|
+
export class DbxFirebaseModelContextService {
|
|
8
|
+
}
|
|
9
|
+
export function dbxFirebaseModelContextServiceInfoInstanceFactory(config) {
|
|
10
|
+
const { modelService, entityMap$ } = config;
|
|
11
|
+
return (keyObs) => {
|
|
12
|
+
const key$ = asObservable(keyObs);
|
|
13
|
+
return key$.pipe(asFirestoreModelKeyCollectionType(), switchMap((pair) => {
|
|
14
|
+
return entityMap$.pipe(map((entityMap) => {
|
|
15
|
+
const modelType = entityMap.get(pair.collectionType);
|
|
16
|
+
if (!modelType) {
|
|
17
|
+
const message = `dbxFirebaseModelContextServiceInfoInstanceFactory Error: Failed to retrieve model type for collection type "${pair.collectionType}"`;
|
|
18
|
+
console.error(message);
|
|
19
|
+
throw new Error(message);
|
|
20
|
+
}
|
|
21
|
+
return modelService(modelType, pair.key);
|
|
22
|
+
}));
|
|
23
|
+
}));
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Operator function that builds a FirestoreModelIdentityTypeMap from the input context and shares the replay.
|
|
28
|
+
*
|
|
29
|
+
* Since the output won't change with different contexts, the map is built once and then shared.
|
|
30
|
+
*
|
|
31
|
+
* @returns
|
|
32
|
+
*/
|
|
33
|
+
export function firebaseContextServiceEntityMap() {
|
|
34
|
+
return (obs) => {
|
|
35
|
+
return obs.pipe(map((x) => buildFirebaseCollectionTypeModelTypeMap(x)), first(), shareReplay(1));
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuY29udGV4dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kZWwvc2VydmljZS9tb2RlbC5jb250ZXh0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFzQixpQ0FBaUMsRUFBRSx1Q0FBdUMsRUFBZ0ssTUFBTSxtQkFBbUIsQ0FBQztBQUNqUyxPQUFPLEVBQUUsWUFBWSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUVoRSxPQUFPLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBZ0MsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUl4Rjs7R0FFRztBQUNILE1BQU0sT0FBZ0IsOEJBQThCO0NBT25EO0FBU0QsTUFBTSxVQUFVLGlEQUFpRCxDQUEySCxNQUFxRTtJQUMvUCxNQUFNLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUM1QyxPQUFPLENBQXdFLE1BQWlDLEVBQUUsRUFBRTtRQUNsSCxNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFbEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUNkLGlDQUFpQyxFQUFFLEVBQ25DLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2pCLE9BQU8sVUFBVSxDQUFDLElBQUksQ0FDcEIsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7Z0JBQ2hCLE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBdUIsQ0FBQztnQkFFM0UsSUFBSSxDQUFDLFNBQVMsRUFBRTtvQkFDZCxNQUFNLE9BQU8sR0FBRywrR0FBK0csSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDO29CQUN0SixPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUN2QixNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2lCQUMxQjtnQkFFRCxPQUFPLFlBQVksQ0FBQyxTQUFnQixFQUFFLElBQUksQ0FBQyxHQUFHLENBQStELENBQUM7WUFDaEgsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLCtCQUErQjtJQUM3QyxPQUFPLENBQUMsR0FBa0IsRUFBRSxFQUFFO1FBQzVCLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FDYixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLHVDQUF1QyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ3RELEtBQUssRUFBRSxFQUNQLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO0lBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpcmVzdG9yZU1vZGVsVHlwZSwgYXNGaXJlc3RvcmVNb2RlbEtleUNvbGxlY3Rpb25UeXBlLCBidWlsZEZpcmViYXNlQ29sbGVjdGlvblR5cGVNb2RlbFR5cGVNYXAsIEZpcmViYXNlUGVybWlzc2lvbkVycm9yQ29udGV4dCwgRmlyZXN0b3JlQ29sbGVjdGlvblR5cGUsIEZpcmVzdG9yZURvY3VtZW50LCBGaXJlc3RvcmVNb2RlbElkZW50aXR5VHlwZU1hcCwgRmlyZXN0b3JlTW9kZWxLZXksIEluQ29udGV4dEZpcmViYXNlTW9kZWxzU2VydmljZSB9IGZyb20gJ0BkZXJlZWtiL2ZpcmViYXNlJztcbmltcG9ydCB7IGFzT2JzZXJ2YWJsZSwgT2JzZXJ2YWJsZU9yVmFsdWUgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IEdyYW50ZWRSb2xlIH0gZnJvbSAnQGRlcmVla2IvbW9kZWwnO1xuaW1wb3J0IHsgc2hhcmVSZXBsYXksIG1hcCwgT2JzZXJ2YWJsZSwgT3BlcmF0b3JGdW5jdGlvbiwgZmlyc3QsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VJbkNvbnRleHRGaXJlYmFzZU1vZGVsSW5mb1NlcnZpY2VJbnN0YW5jZSB9IGZyb20gJy4vbW9kZWwuY29udGV4dCc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZUluQ29udGV4dEZpcmViYXNlTW9kZWxTZXJ2aWNlSW5zdGFuY2VGYWN0b3J5IH0gZnJvbSAnLi9tb2RlbC5jb250ZXh0Lmluc3RhbmNlJztcblxuLyoqXG4gKiBVc2VkIGZvciByZXRyaWV2aW5nIGNvbnRleHRzIGZvciBhIHNwZWNpZmljIG1vZGVsIHR5cGUvaWRlbnRpdHkuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEYnhGaXJlYmFzZU1vZGVsQ29udGV4dFNlcnZpY2Uge1xuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBEYnhGaXJlYmFzZUluQ29udGV4dEZpcmViYXNlTW9kZWxJbmZvU2VydmljZUluc3RhbmNlIGZvciB0aGUgaW5wdXQgbW9kZWwga2V5LlxuICAgKlxuICAgKiBAcGFyYW0ga2V5JFxuICAgKi9cbiAgYWJzdHJhY3QgbW9kZWxJbmZvSW5zdGFuY2U8RCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PGFueT4gPSBhbnksIFIgZXh0ZW5kcyBHcmFudGVkUm9sZSA9IEdyYW50ZWRSb2xlPihrZXlPYnM6IE9ic2VydmFibGVPclZhbHVlPEZpcmVzdG9yZU1vZGVsS2V5Pik6IE9ic2VydmFibGU8RGJ4RmlyZWJhc2VJbkNvbnRleHRGaXJlYmFzZU1vZGVsSW5mb1NlcnZpY2VJbnN0YW5jZTxELCBSPj47XG59XG5cbmV4cG9ydCB0eXBlIERieEZpcmViYXNlTW9kZWxDb250ZXh0U2VydmljZUluZm9JbnN0YW5jZUZhY3RvcnkgPSA8RCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PGFueT4sIFIgZXh0ZW5kcyBHcmFudGVkUm9sZSA9IEdyYW50ZWRSb2xlPihrZXlPYnM6IE9ic2VydmFibGVPclZhbHVlPEZpcmVzdG9yZU1vZGVsS2V5PikgPT4gT2JzZXJ2YWJsZTxEYnhGaXJlYmFzZUluQ29udGV4dEZpcmViYXNlTW9kZWxJbmZvU2VydmljZUluc3RhbmNlPEQsIFI+PjtcblxuZXhwb3J0IGludGVyZmFjZSBEYnhGaXJlYmFzZU1vZGVsQ29udGV4dFNlcnZpY2VJbmZvSW5zdGFuY2VGYWN0b3J5Q29uZmlnPFMgZXh0ZW5kcyBJbkNvbnRleHRGaXJlYmFzZU1vZGVsc1NlcnZpY2U8YW55PiwgQyBleHRlbmRzIEZpcmViYXNlUGVybWlzc2lvbkVycm9yQ29udGV4dCA9IEZpcmViYXNlUGVybWlzc2lvbkVycm9yQ29udGV4dD4ge1xuICByZWFkb25seSBtb2RlbFNlcnZpY2U6IERieEZpcmViYXNlSW5Db250ZXh0RmlyZWJhc2VNb2RlbFNlcnZpY2VJbnN0YW5jZUZhY3Rvcnk8UywgQz47XG4gIHJlYWRvbmx5IGVudGl0eU1hcCQ6IE9ic2VydmFibGU8RmlyZXN0b3JlTW9kZWxJZGVudGl0eVR5cGVNYXA+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGJ4RmlyZWJhc2VNb2RlbENvbnRleHRTZXJ2aWNlSW5mb0luc3RhbmNlRmFjdG9yeTxTIGV4dGVuZHMgSW5Db250ZXh0RmlyZWJhc2VNb2RlbHNTZXJ2aWNlPGFueT4sIEMgZXh0ZW5kcyBGaXJlYmFzZVBlcm1pc3Npb25FcnJvckNvbnRleHQgPSBGaXJlYmFzZVBlcm1pc3Npb25FcnJvckNvbnRleHQ+KGNvbmZpZzogRGJ4RmlyZWJhc2VNb2RlbENvbnRleHRTZXJ2aWNlSW5mb0luc3RhbmNlRmFjdG9yeUNvbmZpZzxTLCBDPik6IERieEZpcmViYXNlTW9kZWxDb250ZXh0U2VydmljZUluZm9JbnN0YW5jZUZhY3Rvcnkge1xuICBjb25zdCB7IG1vZGVsU2VydmljZSwgZW50aXR5TWFwJCB9ID0gY29uZmlnO1xuICByZXR1cm4gPEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxhbnk+LCBSIGV4dGVuZHMgR3JhbnRlZFJvbGUgPSBHcmFudGVkUm9sZT4oa2V5T2JzOiBPYnNlcnZhYmxlT3JWYWx1ZTxzdHJpbmc+KSA9PiB7XG4gICAgY29uc3Qga2V5JCA9IGFzT2JzZXJ2YWJsZShrZXlPYnMpO1xuXG4gICAgcmV0dXJuIGtleSQucGlwZShcbiAgICAgIGFzRmlyZXN0b3JlTW9kZWxLZXlDb2xsZWN0aW9uVHlwZSgpLFxuICAgICAgc3dpdGNoTWFwKChwYWlyKSA9PiB7XG4gICAgICAgIHJldHVybiBlbnRpdHlNYXAkLnBpcGUoXG4gICAgICAgICAgbWFwKChlbnRpdHlNYXApID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG1vZGVsVHlwZSA9IGVudGl0eU1hcC5nZXQocGFpci5jb2xsZWN0aW9uVHlwZSkgYXMgRmlyZXN0b3JlTW9kZWxUeXBlO1xuXG4gICAgICAgICAgICBpZiAoIW1vZGVsVHlwZSkge1xuICAgICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gYGRieEZpcmViYXNlTW9kZWxDb250ZXh0U2VydmljZUluZm9JbnN0YW5jZUZhY3RvcnkgRXJyb3I6IEZhaWxlZCB0byByZXRyaWV2ZSBtb2RlbCB0eXBlIGZvciBjb2xsZWN0aW9uIHR5cGUgXCIke3BhaXIuY29sbGVjdGlvblR5cGV9XCJgO1xuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKG1lc3NhZ2UpO1xuICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBtb2RlbFNlcnZpY2UobW9kZWxUeXBlIGFzIGFueSwgcGFpci5rZXkpIGFzIERieEZpcmViYXNlSW5Db250ZXh0RmlyZWJhc2VNb2RlbEluZm9TZXJ2aWNlSW5zdGFuY2U8RCwgUj47XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfTtcbn1cblxuLyoqXG4gKiBPcGVyYXRvciBmdW5jdGlvbiB0aGF0IGJ1aWxkcyBhIEZpcmVzdG9yZU1vZGVsSWRlbnRpdHlUeXBlTWFwIGZyb20gdGhlIGlucHV0IGNvbnRleHQgYW5kIHNoYXJlcyB0aGUgcmVwbGF5LlxuICpcbiAqIFNpbmNlIHRoZSBvdXRwdXQgd29uJ3QgY2hhbmdlIHdpdGggZGlmZmVyZW50IGNvbnRleHRzLCB0aGUgbWFwIGlzIGJ1aWx0IG9uY2UgYW5kIHRoZW4gc2hhcmVkLlxuICpcbiAqIEByZXR1cm5zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaXJlYmFzZUNvbnRleHRTZXJ2aWNlRW50aXR5TWFwPFQgZXh0ZW5kcyBJbkNvbnRleHRGaXJlYmFzZU1vZGVsc1NlcnZpY2U8YW55Pj4oKTogT3BlcmF0b3JGdW5jdGlvbjxULCBGaXJlc3RvcmVNb2RlbElkZW50aXR5VHlwZU1hcD4ge1xuICByZXR1cm4gKG9iczogT2JzZXJ2YWJsZTxUPikgPT4ge1xuICAgIHJldHVybiBvYnMucGlwZShcbiAgICAgIG1hcCgoeCkgPT4gYnVpbGRGaXJlYmFzZUNvbGxlY3Rpb25UeXBlTW9kZWxUeXBlTWFwKHgpKSxcbiAgICAgIGZpcnN0KCksXG4gICAgICBzaGFyZVJlcGxheSgxKVxuICAgICk7XG4gIH07XG59XG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Directive } from '@angular/core';
|
|
2
|
-
import { DbxFirebaseCollectionStoreDirective, provideDbxFirebaseCollectionStoreDirective } from '../store/store.collection.directive';
|
|
2
|
+
import { DbxFirebaseCollectionStoreDirective, provideDbxFirebaseCollectionStoreDirective } from '../modules/store/store.collection.directive';
|
|
3
3
|
import { SystemStateCollectionStore } from './systemstate.collection.store';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "./systemstate.collection.store";
|
|
@@ -17,4 +17,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
17
17
|
providers: provideDbxFirebaseCollectionStoreDirective(DbxFirebaseSystemStateCollectionStoreDirective, SystemStateCollectionStore)
|
|
18
18
|
}]
|
|
19
19
|
}], ctorParameters: function () { return [{ type: i1.SystemStateCollectionStore }]; } });
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3lzdGVtc3RhdGUuY29sbGVjdGlvbi5zdG9yZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9zeXN0ZW0vc3lzdGVtc3RhdGUuY29sbGVjdGlvbi5zdG9yZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxQyxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsMENBQTBDLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUM5SSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7O0FBTTVFLE1BQU0sT0FBTyw4Q0FBK0MsU0FBUSxtQ0FBaUc7SUFDbkssWUFBWSxLQUFpQztRQUMzQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDZixDQUFDOzs0SUFIVSw4Q0FBOEM7Z0lBQTlDLDhDQUE4Qyw2REFGOUMsMENBQTBDLENBQUMsOENBQThDLEVBQUUsMEJBQTBCLENBQUM7NEZBRXRILDhDQUE4QztrQkFKMUQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0NBQW9DO29CQUM5QyxTQUFTLEVBQUUsMENBQTBDLGlEQUFpRCwwQkFBMEIsQ0FBQztpQkFDbEkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN5c3RlbVN0YXRlLCBTeXN0ZW1TdGF0ZURvY3VtZW50IH0gZnJvbSAnQGRlcmVla2IvZmlyZWJhc2UnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uU3RvcmVEaXJlY3RpdmUsIHByb3ZpZGVEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZURpcmVjdGl2ZSB9IGZyb20gJy4uL21vZHVsZXMvc3RvcmUvc3RvcmUuY29sbGVjdGlvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU3lzdGVtU3RhdGVDb2xsZWN0aW9uU3RvcmUgfSBmcm9tICcuL3N5c3RlbXN0YXRlLmNvbGxlY3Rpb24uc3RvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZGJ4RmlyZWJhc2VTeXN0ZW1TdGF0ZUNvbGxlY3Rpb25dJyxcbiAgcHJvdmlkZXJzOiBwcm92aWRlRGJ4RmlyZWJhc2VDb2xsZWN0aW9uU3RvcmVEaXJlY3RpdmUoRGJ4RmlyZWJhc2VTeXN0ZW1TdGF0ZUNvbGxlY3Rpb25TdG9yZURpcmVjdGl2ZSwgU3lzdGVtU3RhdGVDb2xsZWN0aW9uU3RvcmUpXG59KVxuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlU3lzdGVtU3RhdGVDb2xsZWN0aW9uU3RvcmVEaXJlY3RpdmUgZXh0ZW5kcyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZURpcmVjdGl2ZTxTeXN0ZW1TdGF0ZSwgU3lzdGVtU3RhdGVEb2N1bWVudCwgU3lzdGVtU3RhdGVDb2xsZWN0aW9uU3RvcmU+IHtcbiAgY29uc3RydWN0b3Ioc3RvcmU6IFN5c3RlbVN0YXRlQ29sbGVjdGlvblN0b3JlKSB7XG4gICAgc3VwZXIoc3RvcmUpO1xuICB9XG59XG4iXX0=
|