@dereekb/dbx-firebase 2.1.0 → 3.0.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/_index.scss +18 -0
- package/esm2020/lib/auth/auth.mjs +10 -0
- package/esm2020/lib/auth/error.mjs +28 -0
- package/esm2020/lib/auth/firebase.auth.module.mjs +34 -0
- package/esm2020/lib/auth/index.mjs +6 -0
- package/esm2020/lib/auth/login/firebase.login.module.mjs +274 -0
- package/esm2020/lib/auth/login/index.mjs +26 -0
- package/esm2020/lib/auth/login/login.anonymous.component.mjs +22 -0
- package/esm2020/lib/auth/login/login.apple.component.mjs +22 -0
- package/esm2020/lib/auth/login/login.button.component.mjs +139 -0
- package/esm2020/lib/auth/login/login.component.mjs +43 -0
- package/esm2020/lib/auth/login/login.context.back.component.mjs +27 -0
- package/esm2020/lib/auth/login/login.context.directive.mjs +25 -0
- package/esm2020/lib/auth/login/login.context.mjs +7 -0
- package/esm2020/lib/auth/login/login.email.component.mjs +23 -0
- package/esm2020/lib/auth/login/login.email.content.component.mjs +105 -0
- package/esm2020/lib/auth/login/login.email.form.component.mjs +35 -0
- package/esm2020/lib/auth/login/login.email.recovery.form.component.mjs +21 -0
- package/esm2020/lib/auth/login/login.facebook.component.mjs +22 -0
- package/esm2020/lib/auth/login/login.github.component.mjs +22 -0
- package/esm2020/lib/auth/login/login.google.component.mjs +22 -0
- package/esm2020/lib/auth/login/login.list.component.mjs +87 -0
- package/esm2020/lib/auth/login/login.microsoft.component.mjs +22 -0
- package/esm2020/lib/auth/login/login.mjs +3 -0
- package/esm2020/lib/auth/login/login.password.mjs +4 -0
- package/esm2020/lib/auth/login/login.service.mjs +134 -0
- package/esm2020/lib/auth/login/login.terms.component.mjs +26 -0
- package/esm2020/lib/auth/login/login.terms.mjs +3 -0
- package/esm2020/lib/auth/login/login.terms.simple.component.mjs +39 -0
- package/esm2020/lib/auth/login/login.twitter.component.mjs +22 -0
- package/esm2020/lib/auth/login/register.component.mjs +24 -0
- package/esm2020/lib/auth/login/register.email.component.mjs +21 -0
- package/esm2020/lib/auth/service/firebase.auth.rxjs.mjs +39 -0
- package/esm2020/lib/auth/service/firebase.auth.service.mjs +99 -0
- package/esm2020/lib/auth/service/index.mjs +3 -0
- package/esm2020/lib/firebase/emulators.mjs +3 -0
- package/esm2020/lib/firebase/firebase.emulator.module.mjs +36 -0
- package/esm2020/lib/firebase/firebase.module.mjs +188 -0
- package/esm2020/lib/firebase/index.mjs +5 -0
- package/esm2020/lib/firebase/options.mjs +2 -0
- package/esm2020/lib/firestore/firebase.firestore.context.service.mjs +23 -0
- package/esm2020/lib/firestore/firebase.firestore.mjs +6 -0
- package/esm2020/lib/firestore/firebase.firestore.module.mjs +31 -0
- package/esm2020/lib/firestore/index.mjs +4 -0
- package/esm2020/lib/function/firebase.function.module.mjs +47 -0
- package/esm2020/lib/function/index.mjs +2 -0
- package/esm2020/lib/index.mjs +7 -2
- package/esm2020/lib/model/error.mjs +6 -0
- package/esm2020/lib/model/index.mjs +5 -0
- package/esm2020/lib/model/loader/collection.loader.instance.mjs +101 -0
- package/esm2020/lib/model/loader/collection.loader.mjs +2 -0
- package/esm2020/lib/model/loader/index.mjs +3 -0
- package/esm2020/lib/model/model.module.mjs +17 -0
- package/esm2020/lib/model/store/index.mjs +14 -0
- package/esm2020/lib/model/store/model.store.module.mjs +41 -0
- package/esm2020/lib/model/store/store.collection.change.directive.mjs +54 -0
- package/esm2020/lib/model/store/store.collection.change.if.directive.mjs +57 -0
- package/esm2020/lib/model/store/store.collection.directive.mjs +52 -0
- package/esm2020/lib/model/store/store.collection.list.directive.mjs +27 -0
- package/esm2020/lib/model/store/store.collection.mjs +50 -0
- package/esm2020/lib/model/store/store.document.auth.directive.mjs +33 -0
- package/esm2020/lib/model/store/store.document.directive.mjs +46 -0
- package/esm2020/lib/model/store/store.document.mjs +81 -0
- package/esm2020/lib/model/store/store.document.router.directive.mjs +53 -0
- package/esm2020/lib/model/store/store.subcollection.document.mjs +37 -0
- package/esm2020/lib/model/store/store.subcollection.mjs +37 -0
- package/esm2020/lib/model/store/store.subcollection.rxjs.mjs +42 -0
- package/esm2020/lib/module.mjs +17 -0
- package/fesm2015/dereekb-dbx-firebase.mjs +2266 -2
- package/fesm2015/dereekb-dbx-firebase.mjs.map +1 -1
- package/fesm2020/dereekb-dbx-firebase.mjs +2247 -2
- package/fesm2020/dereekb-dbx-firebase.mjs.map +1 -1
- package/lib/auth/auth.d.ts +4 -0
- package/lib/auth/error.d.ts +9 -0
- package/lib/auth/firebase.auth.module.d.ts +12 -0
- package/lib/auth/index.d.ts +5 -0
- package/lib/auth/login/_login.scss +72 -0
- package/lib/auth/login/firebase.login.module.d.ts +48 -0
- package/lib/auth/login/index.d.ts +25 -0
- package/lib/auth/login/login.anonymous.component.d.ts +8 -0
- package/lib/auth/login/login.apple.component.d.ts +8 -0
- package/lib/auth/login/login.button.component.d.ts +51 -0
- package/lib/auth/login/login.component.d.ts +14 -0
- package/lib/auth/login/login.context.back.component.d.ts +9 -0
- package/lib/auth/login/login.context.d.ts +6 -0
- package/lib/auth/login/login.context.directive.d.ts +10 -0
- package/lib/auth/login/login.d.ts +7 -0
- package/lib/auth/login/login.email.component.d.ts +8 -0
- package/lib/auth/login/login.email.content.component.d.ts +39 -0
- package/lib/auth/login/login.email.form.component.d.ts +21 -0
- package/lib/auth/login/login.email.recovery.form.component.d.ts +11 -0
- package/lib/auth/login/login.facebook.component.d.ts +8 -0
- package/lib/auth/login/login.github.component.d.ts +8 -0
- package/lib/auth/login/login.google.component.d.ts +8 -0
- package/lib/auth/login/login.list.component.d.ts +28 -0
- package/lib/auth/login/login.microsoft.component.d.ts +8 -0
- package/lib/auth/login/login.password.d.ts +4 -0
- package/lib/auth/login/login.service.d.ts +115 -0
- package/lib/auth/login/login.terms.component.d.ts +10 -0
- package/lib/auth/login/login.terms.d.ts +4 -0
- package/lib/auth/login/login.terms.simple.component.d.ts +11 -0
- package/lib/auth/login/login.twitter.component.d.ts +8 -0
- package/lib/auth/login/register.component.d.ts +13 -0
- package/lib/auth/login/register.email.component.d.ts +8 -0
- package/lib/auth/service/firebase.auth.rxjs.d.ts +21 -0
- package/lib/auth/service/firebase.auth.service.d.ts +49 -0
- package/lib/auth/service/index.d.ts +2 -0
- package/lib/firebase/emulators.d.ts +52 -0
- package/lib/firebase/firebase.emulator.module.d.ts +12 -0
- package/lib/firebase/firebase.module.d.ts +50 -0
- package/lib/firebase/index.d.ts +4 -0
- package/lib/firebase/options.d.ts +6 -0
- package/lib/firestore/firebase.firestore.context.service.d.ts +11 -0
- package/lib/firestore/firebase.firestore.d.ts +5 -0
- package/lib/firestore/firebase.firestore.module.d.ts +17 -0
- package/lib/firestore/index.d.ts +3 -0
- package/lib/function/firebase.function.module.d.ts +24 -0
- package/lib/function/index.d.ts +1 -0
- package/lib/index.d.ts +6 -1
- package/lib/model/error.d.ts +5 -0
- package/lib/model/index.d.ts +4 -0
- package/lib/model/loader/collection.loader.d.ts +38 -0
- package/lib/model/loader/collection.loader.instance.d.ts +52 -0
- package/lib/model/loader/index.d.ts +2 -0
- package/lib/model/model.module.d.ts +7 -0
- package/lib/model/store/index.d.ts +13 -0
- package/lib/model/store/model.store.module.d.ts +11 -0
- package/lib/model/store/store.collection.change.directive.d.ts +30 -0
- package/lib/model/store/store.collection.change.if.directive.d.ts +24 -0
- package/lib/model/store/store.collection.d.ts +47 -0
- package/lib/model/store/store.collection.directive.d.ts +30 -0
- package/lib/model/store/store.collection.list.directive.d.ts +13 -0
- package/lib/model/store/store.document.auth.directive.d.ts +19 -0
- package/lib/model/store/store.document.d.ts +69 -0
- package/lib/model/store/store.document.directive.d.ts +34 -0
- package/lib/model/store/store.document.router.directive.d.ts +25 -0
- package/lib/model/store/store.subcollection.d.ts +31 -0
- package/lib/model/store/store.subcollection.document.d.ts +31 -0
- package/lib/model/store/store.subcollection.rxjs.d.ts +23 -0
- package/lib/module.d.ts +7 -0
- package/lib/style/_all-core.scss +6 -0
- package/lib/style/_all-theme.scss +6 -0
- package/lib/style/_all-typography.scss +6 -0
- package/lib/style/_config.scss +20 -0
- package/lib/style/_core.scss +9 -0
- package/lib/style/_mixin.scss +3 -0
- package/lib/style/_theming.scss +19 -0
- package/lib/style/_variables.scss +1 -0
- package/package.json +21 -12
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Directive, forwardRef, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* Abstract directive that contains a DbxFirebaseDocumentStore and provides an interface for communicating with other directives.
|
|
5
|
+
*/
|
|
6
|
+
export class DbxFirebaseDocumentStoreDirective {
|
|
7
|
+
constructor(store) {
|
|
8
|
+
this.store = store;
|
|
9
|
+
this.exists$ = this.store.exists$;
|
|
10
|
+
this.document$ = this.store.document$;
|
|
11
|
+
this.documentLoadingState$ = this.store.documentLoadingState$;
|
|
12
|
+
this.id$ = this.store.id$;
|
|
13
|
+
this.ref$ = this.store.ref$;
|
|
14
|
+
this.snapshot$ = this.store.snapshot$;
|
|
15
|
+
this.snapshotLoadingState$ = this.store.snapshotLoadingState$;
|
|
16
|
+
this.data$ = this.store.data$;
|
|
17
|
+
this.loadingState$ = this.store.dataLoadingState$;
|
|
18
|
+
}
|
|
19
|
+
// MARK: Inputs
|
|
20
|
+
set id(id) {
|
|
21
|
+
this.store.setId(id);
|
|
22
|
+
}
|
|
23
|
+
set ref(ref) {
|
|
24
|
+
this.store.setRef(ref);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
DbxFirebaseDocumentStoreDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFirebaseDocumentStoreDirective, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
|
|
28
|
+
DbxFirebaseDocumentStoreDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: DbxFirebaseDocumentStoreDirective, inputs: { id: "id", ref: "ref" }, ngImport: i0 });
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFirebaseDocumentStoreDirective, decorators: [{
|
|
30
|
+
type: Directive
|
|
31
|
+
}], ctorParameters: function () { return [{ type: undefined }]; }, propDecorators: { id: [{
|
|
32
|
+
type: Input
|
|
33
|
+
}], ref: [{
|
|
34
|
+
type: Input
|
|
35
|
+
}] } });
|
|
36
|
+
export function provideDbxFirebaseDocumentStoreDirective(sourceType, storeType) {
|
|
37
|
+
const providers = [{
|
|
38
|
+
provide: DbxFirebaseDocumentStoreDirective,
|
|
39
|
+
useExisting: forwardRef(() => sourceType)
|
|
40
|
+
}];
|
|
41
|
+
if (storeType) {
|
|
42
|
+
providers.push(storeType);
|
|
43
|
+
}
|
|
44
|
+
return providers;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuZG9jdW1lbnQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kZWwvc3RvcmUvc3RvcmUuZG9jdW1lbnQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBa0IsTUFBTSxlQUFlLENBQUM7O0FBSzdFOztHQUVHO0FBRUgsTUFBTSxPQUFnQixpQ0FBaUM7SUFFckQsWUFBcUIsS0FBUTtRQUFSLFVBQUssR0FBTCxLQUFLLENBQUc7UUFFcEIsWUFBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBRTdCLGNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQztRQUNqQywwQkFBcUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDO1FBRXpELFFBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztRQUNyQixTQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFFdkIsY0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1FBQ2pDLDBCQUFxQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUM7UUFFekQsVUFBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3pCLGtCQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztJQWRyQixDQUFDO0lBZ0JsQyxlQUFlO0lBQ2YsSUFDSSxFQUFFLENBQUMsRUFBWTtRQUNqQixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFDSSxHQUFHLENBQUMsR0FBeUI7UUFDL0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekIsQ0FBQzs7OEhBM0JtQixpQ0FBaUM7a0hBQWpDLGlDQUFpQzsyRkFBakMsaUNBQWlDO2tCQUR0RCxTQUFTOzZGQXFCSixFQUFFO3NCQURMLEtBQUs7Z0JBTUYsR0FBRztzQkFETixLQUFLOztBQWdCUixNQUFNLFVBQVUsd0NBQXdDLENBQTBKLFVBQW1CLEVBQUUsU0FBbUI7SUFDeFAsTUFBTSxTQUFTLEdBQWUsQ0FBQztZQUM3QixPQUFPLEVBQUUsaUNBQWlDO1lBQzFDLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDO1NBQzFDLENBQUMsQ0FBQztJQUVILElBQUksU0FBUyxFQUFFO1FBQ2IsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztLQUMzQjtJQUVELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGZvcndhcmRSZWYsIElucHV0LCBQcm92aWRlciwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9jdW1lbnRSZWZlcmVuY2UsIEZpcmVzdG9yZURvY3VtZW50IH0gZnJvbSBcIkBkZXJlZWtiL2ZpcmViYXNlXCI7XG5pbXBvcnQgeyBNb2RlbEtleSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlIH0gZnJvbSBcIi4vc3RvcmUuZG9jdW1lbnRcIjtcblxuLyoqXG4gKiBBYnN0cmFjdCBkaXJlY3RpdmUgdGhhdCBjb250YWlucyBhIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZSBhbmQgcHJvdmlkZXMgYW4gaW50ZXJmYWNlIGZvciBjb21tdW5pY2F0aW5nIHdpdGggb3RoZXIgZGlyZWN0aXZlcy5cbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRGlyZWN0aXZlPFQsIEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxUPiA9IEZpcmVzdG9yZURvY3VtZW50PFQ+LCBTIGV4dGVuZHMgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlPFQsIEQ+ID0gRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlPFQsIEQ+PiB7XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgc3RvcmU6IFMpIHsgfVxuXG4gIHJlYWRvbmx5IGV4aXN0cyQgPSB0aGlzLnN0b3JlLmV4aXN0cyQ7XG5cbiAgcmVhZG9ubHkgZG9jdW1lbnQkID0gdGhpcy5zdG9yZS5kb2N1bWVudCQ7XG4gIHJlYWRvbmx5IGRvY3VtZW50TG9hZGluZ1N0YXRlJCA9IHRoaXMuc3RvcmUuZG9jdW1lbnRMb2FkaW5nU3RhdGUkO1xuXG4gIHJlYWRvbmx5IGlkJCA9IHRoaXMuc3RvcmUuaWQkO1xuICByZWFkb25seSByZWYkID0gdGhpcy5zdG9yZS5yZWYkO1xuXG4gIHJlYWRvbmx5IHNuYXBzaG90JCA9IHRoaXMuc3RvcmUuc25hcHNob3QkO1xuICByZWFkb25seSBzbmFwc2hvdExvYWRpbmdTdGF0ZSQgPSB0aGlzLnN0b3JlLnNuYXBzaG90TG9hZGluZ1N0YXRlJDtcblxuICByZWFkb25seSBkYXRhJCA9IHRoaXMuc3RvcmUuZGF0YSQ7XG4gIHJlYWRvbmx5IGxvYWRpbmdTdGF0ZSQgPSB0aGlzLnN0b3JlLmRhdGFMb2FkaW5nU3RhdGUkO1xuXG4gIC8vIE1BUks6IElucHV0c1xuICBASW5wdXQoKVxuICBzZXQgaWQoaWQ6IE1vZGVsS2V5KSB7XG4gICAgdGhpcy5zdG9yZS5zZXRJZChpZCk7XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgcmVmKHJlZjogRG9jdW1lbnRSZWZlcmVuY2U8VD4pIHtcbiAgICB0aGlzLnN0b3JlLnNldFJlZihyZWYpO1xuICB9XG5cbn1cblxuLyoqXG4gKiBDb25maWd1cmVzIHByb3ZpZGVycyBmb3IgYSBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVEaXJlY3RpdmUuIFxuICogXG4gKiBDYW4gb3B0aW9uYWxseSBhbHNvIHByb3ZpZGUgdGhlIGFjdHVhbCBzdG9yZSB0eXBlIHRvIGluY2x1ZGUgaW4gdGhlIHByb3ZpZGVycyBhcnJheSBzbyBpdCBpcyBpbnN0YW50aWF0ZWQgYnkgQW5ndWxhci5cbiAqIFxuICogQHBhcmFtIHNvdXJjZVR5cGUgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRGlyZWN0aXZlPFMgZXh0ZW5kcyBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVEaXJlY3RpdmU8YW55LCBhbnksIGFueT4+KHNvdXJjZVR5cGU6IFR5cGU8Uz4pOiBQcm92aWRlcltdO1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVEaXJlY3RpdmU8UyBleHRlbmRzIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZTxhbnksIGFueT4sIEMgZXh0ZW5kcyBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVEaXJlY3RpdmU8YW55LCBhbnksIFM+ID0gRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRGlyZWN0aXZlPGFueSwgYW55LCBTPj4oc291cmNlVHlwZTogVHlwZTxDPiwgc3RvcmVUeXBlOiBUeXBlPFM+KTogUHJvdmlkZXJbXTtcbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRGlyZWN0aXZlPFMgZXh0ZW5kcyBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmU8YW55LCBhbnk+LCBDIGV4dGVuZHMgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRGlyZWN0aXZlPGFueSwgYW55LCBTPiA9IERieEZpcmViYXNlRG9jdW1lbnRTdG9yZURpcmVjdGl2ZTxhbnksIGFueSwgUz4+KHNvdXJjZVR5cGU6IFR5cGU8Qz4sIHN0b3JlVHlwZT86IFR5cGU8Uz4pOiBQcm92aWRlcltdIHtcbiAgY29uc3QgcHJvdmlkZXJzOiBQcm92aWRlcltdID0gW3tcbiAgICBwcm92aWRlOiBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVEaXJlY3RpdmUsXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gc291cmNlVHlwZSlcbiAgfV07XG5cbiAgaWYgKHN0b3JlVHlwZSkge1xuICAgIHByb3ZpZGVycy5wdXNoKHN0b3JlVHlwZSk7XG4gIH1cblxuICByZXR1cm4gcHJvdmlkZXJzO1xufVxuIl19
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { shareReplay, distinctUntilChanged, map, switchMap, combineLatest } from 'rxjs';
|
|
3
|
+
import { documentDataWithId } from '@dereekb/firebase';
|
|
4
|
+
import { filterMaybe, beginLoading, successResult, loadingStateFromObs, errorResult } from '@dereekb/rxjs';
|
|
5
|
+
import { isMaybeSo } from '@dereekb/util';
|
|
6
|
+
import { LockSetComponentStore } from '@dereekb/dbx-core';
|
|
7
|
+
import { modelDoesNotExistError } from '../error';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
/**
|
|
10
|
+
* Used for storing the state of a Person and related email threads.
|
|
11
|
+
*/
|
|
12
|
+
export class AbstractDbxFirebaseDocumentStore extends LockSetComponentStore {
|
|
13
|
+
constructor() {
|
|
14
|
+
super(...arguments);
|
|
15
|
+
// MARK: Effects
|
|
16
|
+
// MARK: Accessors
|
|
17
|
+
this.currentFirestoreCollection$ = this.state$.pipe(map((x) => x.firestoreCollection), distinctUntilChanged(), shareReplay(1));
|
|
18
|
+
this.firestoreCollection$ = this.currentFirestoreCollection$.pipe(filterMaybe());
|
|
19
|
+
this.currentInputId$ = this.state$.pipe(map(x => x.id), distinctUntilChanged(), shareReplay(1));
|
|
20
|
+
this.inputId$ = this.currentInputId$.pipe(filterMaybe(), distinctUntilChanged(), shareReplay(1));
|
|
21
|
+
this.currentInputRef$ = this.state$.pipe(map(x => x.ref), distinctUntilChanged(), shareReplay(1));
|
|
22
|
+
this.inputRef$ = this.currentInputRef$.pipe(filterMaybe(), distinctUntilChanged(), shareReplay(1));
|
|
23
|
+
this.currentDocument$ = combineLatest([this.currentFirestoreCollection$, this.currentInputId$, this.currentInputRef$]).pipe(map(([collection, id, ref]) => {
|
|
24
|
+
let document;
|
|
25
|
+
if (collection) {
|
|
26
|
+
if (ref) {
|
|
27
|
+
document = collection.documentAccessor().loadDocument(ref);
|
|
28
|
+
}
|
|
29
|
+
else if (id) {
|
|
30
|
+
document = collection.documentAccessor().loadDocumentForPath(id);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return document;
|
|
34
|
+
}), distinctUntilChanged(), shareReplay(1));
|
|
35
|
+
this.document$ = this.currentDocument$.pipe(filterMaybe(), distinctUntilChanged(), shareReplay(1));
|
|
36
|
+
this.documentLoadingState$ = this.currentDocument$.pipe(map(x => (x) ? successResult(x) : beginLoading()), shareReplay(1));
|
|
37
|
+
this.id$ = this.document$.pipe(map(x => x.id), shareReplay());
|
|
38
|
+
this.ref$ = this.document$.pipe(map(x => x.documentRef), shareReplay());
|
|
39
|
+
this.snapshot$ = this.document$.pipe(switchMap(x => x.accessor.stream()), shareReplay(1));
|
|
40
|
+
this.snapshotLoadingState$ = this.currentDocument$.pipe(switchMap(_ => loadingStateFromObs(this.snapshot$)), shareReplay(1));
|
|
41
|
+
this.currentData$ = this.document$.pipe(switchMap(x => x.accessor.stream().pipe(map(y => documentDataWithId(y)))), shareReplay(1));
|
|
42
|
+
this.data$ = this.currentDocument$.pipe(switchMap(() => this.currentData$.pipe(filterMaybe())), shareReplay(1));
|
|
43
|
+
this.dataLoadingState$ = this.snapshotLoadingState$.pipe(map((x) => {
|
|
44
|
+
let result;
|
|
45
|
+
if (x.value) {
|
|
46
|
+
const data = documentDataWithId(x.value);
|
|
47
|
+
if (data) {
|
|
48
|
+
result = successResult(data);
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
result = errorResult(modelDoesNotExistError());
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
result = {
|
|
56
|
+
...x,
|
|
57
|
+
value: undefined
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
return result;
|
|
61
|
+
}), shareReplay(1));
|
|
62
|
+
this.exists$ = this.currentData$.pipe(map(x => isMaybeSo(x)), shareReplay(1));
|
|
63
|
+
this.doesNotExist$ = this.exists$.pipe(map(x => !x), shareReplay(1));
|
|
64
|
+
// MARK: State Changes
|
|
65
|
+
/**
|
|
66
|
+
* Sets the id of the document to load.
|
|
67
|
+
*/
|
|
68
|
+
this.setId = this.updater((state, id) => (id) ? ({ ...state, id, ref: undefined }) : ({ ...state, id }));
|
|
69
|
+
/**
|
|
70
|
+
* Sets the ref of the document to load.
|
|
71
|
+
*/
|
|
72
|
+
this.setRef = this.updater((state, ref) => (ref) ? ({ ...state, id: undefined, ref }) : ({ ...state, ref }));
|
|
73
|
+
this.setFirestoreCollection = this.updater((state, firestoreCollection) => ({ ...state, firestoreCollection }));
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
AbstractDbxFirebaseDocumentStore.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AbstractDbxFirebaseDocumentStore, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
77
|
+
AbstractDbxFirebaseDocumentStore.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AbstractDbxFirebaseDocumentStore });
|
|
78
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AbstractDbxFirebaseDocumentStore, decorators: [{
|
|
79
|
+
type: Injectable
|
|
80
|
+
}] });
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuZG9jdW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9zdG9yZS9zdG9yZS5kb2N1bWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxXQUFXLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ2xILE9BQU8sRUFBK0Usa0JBQWtCLEVBQXNCLE1BQU0sbUJBQW1CLENBQUM7QUFDeEosT0FBTyxFQUFFLFdBQVcsRUFBZ0IsWUFBWSxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQzVJLE9BQU8sRUFBbUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBb0IscUJBQXFCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBcUNsRDs7R0FFRztBQUVILE1BQU0sT0FBTyxnQ0FBOEwsU0FBUSxxQkFBd0I7SUFEM087O1FBR0UsZ0JBQWdCO1FBR2hCLGtCQUFrQjtRQUNULGdDQUEyQixHQUFpRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDbkcsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsRUFDakMsb0JBQW9CLEVBQUUsRUFDdEIsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7UUFFTyx5QkFBb0IsR0FBMEMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FDMUcsV0FBVyxFQUFFLENBQ2QsQ0FBQztRQUVPLG9CQUFlLEdBQWdDLElBQUksQ0FBQyxN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QztLQUV2Sjs7NkhBcEpZLGdDQUFnQztpSUFBaEMsZ0NBQWdDOzJGQUFoQyxnQ0FBZ0M7a0JBRDVDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBzaGFyZVJlcGxheSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc3dpdGNoTWFwLCBjb21iaW5lTGF0ZXN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERvY3VtZW50U25hcHNob3QsIERvY3VtZW50UmVmZXJlbmNlLCBGaXJlc3RvcmVDb2xsZWN0aW9uLCBGaXJlc3RvcmVEb2N1bWVudCwgZG9jdW1lbnREYXRhV2l0aElkLCBEb2N1bWVudERhdGFXaXRoSWQgfSBmcm9tICdAZGVyZWVrYi9maXJlYmFzZSc7XG5pbXBvcnQgeyBmaWx0ZXJNYXliZSwgTG9hZGluZ1N0YXRlLCBiZWdpbkxvYWRpbmcsIHN1Y2Nlc3NSZXN1bHQsIGxvYWRpbmdTdGF0ZUZyb21PYnMsIGVycm9yUmVzdWx0LCBPYnNlcnZhYmxlT3JWYWx1ZSB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgTWF5YmUsIE1vZGVsS2V5LCBpc01heWJlU28gfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IExvY2tTZXRDb21wb25lbnQsIExvY2tTZXRDb21wb25lbnRTdG9yZSB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcbmltcG9ydCB7IG1vZGVsRG9lc05vdEV4aXN0RXJyb3IgfSBmcm9tICcuLi9lcnJvcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlPFQsIEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxUPiA9IEZpcmVzdG9yZURvY3VtZW50PFQ+PiBleHRlbmRzIExvY2tTZXRDb21wb25lbnQge1xuICByZWFkb25seSBmaXJlc3RvcmVDb2xsZWN0aW9uJDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVDb2xsZWN0aW9uPFQsIEQ+PjtcblxuICByZWFkb25seSBjdXJyZW50SW5wdXRJZCQ6IE9ic2VydmFibGU8TWF5YmU8TW9kZWxLZXk+PjtcbiAgcmVhZG9ubHkgaW5wdXRJZCQ6IE9ic2VydmFibGU8TW9kZWxLZXk+O1xuICByZWFkb25seSBjdXJyZW50SW5wdXRSZWYkOiBPYnNlcnZhYmxlPE1heWJlPERvY3VtZW50UmVmZXJlbmNlPFQ+Pj47XG4gIHJlYWRvbmx5IGlucHV0UmVmJDogT2JzZXJ2YWJsZTxEb2N1bWVudFJlZmVyZW5jZTxUPj47XG5cbiAgcmVhZG9ubHkgY3VycmVudERvY3VtZW50JDogT2JzZXJ2YWJsZTxNYXliZTxEPj47XG4gIHJlYWRvbmx5IGRvY3VtZW50JDogT2JzZXJ2YWJsZTxEPjtcbiAgcmVhZG9ubHkgaWQkOiBPYnNlcnZhYmxlPE1vZGVsS2V5PjtcbiAgcmVhZG9ubHkgcmVmJDogT2JzZXJ2YWJsZTxEb2N1bWVudFJlZmVyZW5jZTxUPj47XG4gIHJlYWRvbmx5IGRvY3VtZW50TG9hZGluZ1N0YXRlJDogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8RD4+O1xuICByZWFkb25seSBzbmFwc2hvdCQ6IE9ic2VydmFibGU8RG9jdW1lbnRTbmFwc2hvdDxUPj47XG4gIHJlYWRvbmx5IHNuYXBzaG90TG9hZGluZ1N0YXRlJDogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8RG9jdW1lbnRTbmFwc2hvdDxUPj4+O1xuICByZWFkb25seSBjdXJyZW50RGF0YSQ6IE9ic2VydmFibGU8TWF5YmU8RG9jdW1lbnREYXRhV2l0aElkPFQ+Pj47XG4gIHJlYWRvbmx5IGRhdGEkOiBPYnNlcnZhYmxlPERvY3VtZW50RGF0YVdpdGhJZDxUPj47XG4gIHJlYWRvbmx5IGRhdGFMb2FkaW5nU3RhdGUkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxEb2N1bWVudERhdGFXaXRoSWQ8VD4+PjtcbiAgcmVhZG9ubHkgZXhpc3RzJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICBzZXRJZDogKG9ic2VydmFibGVPclZhbHVlOiBPYnNlcnZhYmxlT3JWYWx1ZTxzdHJpbmc+KSA9PiBTdWJzY3JpcHRpb247XG4gIHNldFJlZjogKG9ic2VydmFibGVPclZhbHVlOiBPYnNlcnZhYmxlT3JWYWx1ZTxEb2N1bWVudFJlZmVyZW5jZTxUPj4pID0+IFN1YnNjcmlwdGlvbjtcblxuICAvKipcbiAgICogU2V0cyB0aGUgZmlyZXN0b3JlIGNvbGxlY3Rpb24gdG8gcmV0cmlldmUgZG9jdW1lbnQgZnJvbS5cbiAgICovXG4gIHJlYWRvbmx5IHNldEZpcmVzdG9yZUNvbGxlY3Rpb246ICgoKSA9PiB2b2lkKSB8ICgob2JzZXJ2YWJsZU9yVmFsdWU6IE9ic2VydmFibGVPclZhbHVlPE1heWJlPEZpcmVzdG9yZUNvbGxlY3Rpb248VCwgRD4+PikgPT4gU3Vic2NyaXB0aW9uKTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVDb250ZXh0U3RhdGU8VCwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4+IHtcbiAgcmVhZG9ubHkgZmlyZXN0b3JlQ29sbGVjdGlvbj86IE1heWJlPEZpcmVzdG9yZUNvbGxlY3Rpb248VCwgRD4+O1xuICByZWFkb25seSBpZD86IE1heWJlPE1vZGVsS2V5PjtcbiAgcmVhZG9ubHkgcmVmPzogTWF5YmU8RG9jdW1lbnRSZWZlcmVuY2U8VD4+O1xufVxuXG4vKipcbiAqIFVzZWQgZm9yIHN0b3JpbmcgdGhlIHN0YXRlIG9mIGEgUGVyc29uIGFuZCByZWxhdGVkIGVtYWlsIHRocmVhZHMuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBYnN0cmFjdERieEZpcmViYXNlRG9jdW1lbnRTdG9yZTxULCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPiwgQyBleHRlbmRzIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZUNvbnRleHRTdGF0ZTxULCBEPiA9IERieEZpcmViYXNlRG9jdW1lbnRTdG9yZUNvbnRleHRTdGF0ZTxULCBEPj4gZXh0ZW5kcyBMb2NrU2V0Q29tcG9uZW50U3RvcmU8Qz4gaW1wbGVtZW50cyBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmU8VCwgRD4ge1xuXG4gIC8vIE1BUks6IEVmZmVjdHNcblxuXG4gIC8vIE1BUks6IEFjY2Vzc29yc1xuICByZWFkb25seSBjdXJyZW50RmlyZXN0b3JlQ29sbGVjdGlvbiQ6IE9ic2VydmFibGU8TWF5YmU8RmlyZXN0b3JlQ29sbGVjdGlvbjxULCBEPj4+ID0gdGhpcy5zdGF0ZSQucGlwZShcbiAgICBtYXAoKHgpID0+IHguZmlyZXN0b3JlQ29sbGVjdGlvbiksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGZpcmVzdG9yZUNvbGxlY3Rpb24kOiBPYnNlcnZhYmxlPEZpcmVzdG9yZUNvbGxlY3Rpb248VCwgRD4+ID0gdGhpcy5jdXJyZW50RmlyZXN0b3JlQ29sbGVjdGlvbiQucGlwZShcbiAgICBmaWx0ZXJNYXliZSgpXG4gICk7XG5cbiAgcmVhZG9ubHkgY3VycmVudElucHV0SWQkOiBPYnNlcnZhYmxlPE1heWJlPE1vZGVsS2V5Pj4gPSB0aGlzLnN0YXRlJC5waXBlKFxuICAgIG1hcCh4ID0+IHguaWQpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBpbnB1dElkJDogT2JzZXJ2YWJsZTxNb2RlbEtleT4gPSB0aGlzLmN1cnJlbnRJbnB1dElkJC5waXBlKFxuICAgIGZpbHRlck1heWJlKCksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGN1cnJlbnRJbnB1dFJlZiQ6IE9ic2VydmFibGU8TWF5YmU8RG9jdW1lbnRSZWZlcmVuY2U8VD4+PiA9IHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgbWFwKHggPT4geC5yZWYpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBpbnB1dFJlZiQ6IE9ic2VydmFibGU8RG9jdW1lbnRSZWZlcmVuY2U8VD4+ID0gdGhpcy5jdXJyZW50SW5wdXRSZWYkLnBpcGUoXG4gICAgZmlsdGVyTWF5YmUoKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgY3VycmVudERvY3VtZW50JDogT2JzZXJ2YWJsZTxNYXliZTxEPj4gPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmN1cnJlbnRGaXJlc3RvcmVDb2xsZWN0aW9uJCwgdGhpcy5jdXJyZW50SW5wdXRJZCQsIHRoaXMuY3VycmVudElucHV0UmVmJF0pLnBpcGUoXG4gICAgbWFwKChbY29sbGVjdGlvbiwgaWQsIHJlZl0pID0+IHtcbiAgICAgIGxldCBkb2N1bWVudDogTWF5YmU8RD47XG5cbiAgICAgIGlmIChjb2xsZWN0aW9uKSB7XG4gICAgICAgIGlmIChyZWYpIHtcbiAgICAgICAgICBkb2N1bWVudCA9IGNvbGxlY3Rpb24uZG9jdW1lbnRBY2Nlc3NvcigpLmxvYWREb2N1bWVudChyZWYpO1xuICAgICAgICB9IGVsc2UgaWYgKGlkKSB7XG4gICAgICAgICAgZG9jdW1lbnQgPSBjb2xsZWN0aW9uLmRvY3VtZW50QWNjZXNzb3IoKS5sb2FkRG9jdW1lbnRGb3JQYXRoKGlkKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZG9jdW1lbnQ7XG4gICAgfSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGRvY3VtZW50JDogT2JzZXJ2YWJsZTxEPiA9IHRoaXMuY3VycmVudERvY3VtZW50JC5waXBlKFxuICAgIGZpbHRlck1heWJlKCksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGRvY3VtZW50TG9hZGluZ1N0YXRlJDogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8RD4+ID0gdGhpcy5jdXJyZW50RG9jdW1lbnQkLnBpcGUoXG4gICAgbWFwKHggPT4gKHgpID8gc3VjY2Vzc1Jlc3VsdCh4KSA6IGJlZ2luTG9hZGluZygpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGlkJDogT2JzZXJ2YWJsZTxNb2RlbEtleT4gPSB0aGlzLmRvY3VtZW50JC5waXBlKFxuICAgIG1hcCh4ID0+IHguaWQpLFxuICAgIHNoYXJlUmVwbGF5KClcbiAgKTtcblxuICByZWFkb25seSByZWYkOiBPYnNlcnZhYmxlPERvY3VtZW50UmVmZXJlbmNlPFQ+PiA9IHRoaXMuZG9jdW1lbnQkLnBpcGUoXG4gICAgbWFwKHggPT4geC5kb2N1bWVudFJlZiksXG4gICAgc2hhcmVSZXBsYXkoKVxuICApO1xuXG4gIHJlYWRvbmx5IHNuYXBzaG90JDogT2JzZXJ2YWJsZTxEb2N1bWVudFNuYXBzaG90PFQ+PiA9IHRoaXMuZG9jdW1lbnQkLnBpcGUoXG4gICAgc3dpdGNoTWFwKHggPT4geC5hY2Nlc3Nvci5zdHJlYW0oKSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBzbmFwc2hvdExvYWRpbmdTdGF0ZSQ6IE9ic2VydmFibGU8TG9hZGluZ1N0YXRlPERvY3VtZW50U25hcHNob3Q8VD4+PiA9IHRoaXMuY3VycmVudERvY3VtZW50JC5waXBlKFxuICAgIHN3aXRjaE1hcChfID0+IGxvYWRpbmdTdGF0ZUZyb21PYnModGhpcy5zbmFwc2hvdCQpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGN1cnJlbnREYXRhJDogT2JzZXJ2YWJsZTxNYXliZTxEb2N1bWVudERhdGFXaXRoSWQ8VD4+PiA9IHRoaXMuZG9jdW1lbnQkLnBpcGUoXG4gICAgc3dpdGNoTWFwKHggPT4geC5hY2Nlc3Nvci5zdHJlYW0oKS5waXBlKG1hcCh5ID0+IGRvY3VtZW50RGF0YVdpdGhJZCh5KSkpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGRhdGEkOiBPYnNlcnZhYmxlPERvY3VtZW50RGF0YVdpdGhJZDxUPj4gPSB0aGlzLmN1cnJlbnREb2N1bWVudCQucGlwZShcbiAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5jdXJyZW50RGF0YSQucGlwZShcbiAgICAgIGZpbHRlck1heWJlKClcbiAgICApKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGRhdGFMb2FkaW5nU3RhdGUkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxEb2N1bWVudERhdGFXaXRoSWQ8VD4+PiA9IHRoaXMuc25hcHNob3RMb2FkaW5nU3RhdGUkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB7XG4gICAgICBsZXQgcmVzdWx0OiBMb2FkaW5nU3RhdGU8RG9jdW1lbnREYXRhV2l0aElkPFQ+PjtcblxuICAgICAgaWYgKHgudmFsdWUpIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IGRvY3VtZW50RGF0YVdpdGhJZCh4LnZhbHVlKTtcblxuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgIHJlc3VsdCA9IHN1Y2Nlc3NSZXN1bHQoZGF0YSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzdWx0ID0gZXJyb3JSZXN1bHQobW9kZWxEb2VzTm90RXhpc3RFcnJvcigpKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0ID0ge1xuICAgICAgICAgIC4uLngsXG4gICAgICAgICAgdmFsdWU6IHVuZGVmaW5lZFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgZXhpc3RzJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuY3VycmVudERhdGEkLnBpcGUoXG4gICAgbWFwKHggPT4gaXNNYXliZVNvKHgpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGRvZXNOb3RFeGlzdCQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLmV4aXN0cyQucGlwZShcbiAgICBtYXAoeCA9PiAheCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICAvLyBNQVJLOiBTdGF0ZSBDaGFuZ2VzXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBpZCBvZiB0aGUgZG9jdW1lbnQgdG8gbG9hZC5cbiAgICovXG4gIHJlYWRvbmx5IHNldElkID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgaWQ6IE1vZGVsS2V5KSA9PiAoaWQpID8gKHsgLi4uc3RhdGUsIGlkLCByZWY6IHVuZGVmaW5lZCB9KSA6ICh7IC4uLnN0YXRlLCBpZCB9KSk7XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHJlZiBvZiB0aGUgZG9jdW1lbnQgdG8gbG9hZC5cbiAgICovXG4gIHJlYWRvbmx5IHNldFJlZiA9IHRoaXMudXBkYXRlcigoc3RhdGUsIHJlZjogRG9jdW1lbnRSZWZlcmVuY2U8VD4pID0+IChyZWYpID8gKHsgLi4uc3RhdGUsIGlkOiB1bmRlZmluZWQsIHJlZiB9KSA6ICh7IC4uLnN0YXRlLCByZWYgfSkpO1xuXG4gIHJlYWRvbmx5IHNldEZpcmVzdG9yZUNvbGxlY3Rpb24gPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBmaXJlc3RvcmVDb2xsZWN0aW9uOiBNYXliZTxGaXJlc3RvcmVDb2xsZWN0aW9uPFQsIEQ+PikgPT4gKHsgLi4uc3RhdGUsIGZpcmVzdG9yZUNvbGxlY3Rpb24gfSkpO1xuXG59XG4iXX0=
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { shareReplay } from 'rxjs/operators';
|
|
2
|
+
import { distinctUntilChanged } from 'rxjs';
|
|
3
|
+
import { BehaviorSubject, combineLatest, map } from 'rxjs';
|
|
4
|
+
import { Directive, Host, Input } from '@angular/core';
|
|
5
|
+
import { DbxRouterService, AbstractSubscriptionDirective } from '@dereekb/dbx-core';
|
|
6
|
+
import { DbxFirebaseDocumentStoreDirective } from './store.document.directive';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "./store.document.directive";
|
|
9
|
+
import * as i2 from "@dereekb/dbx-core";
|
|
10
|
+
export const DBX_FIREBASE_ROUTER_SYNC_DEFAULT_ID_PARAM_KEY = 'id';
|
|
11
|
+
/**
|
|
12
|
+
* Used for synchronizing the document store id to the param of the route.
|
|
13
|
+
*/
|
|
14
|
+
export class DbxFirebaseDocumentStoreRouteIdDirective extends AbstractSubscriptionDirective {
|
|
15
|
+
constructor(dbxFirebaseDocumentStoreDirective, dbxRouterService) {
|
|
16
|
+
super();
|
|
17
|
+
this.dbxFirebaseDocumentStoreDirective = dbxFirebaseDocumentStoreDirective;
|
|
18
|
+
this.dbxRouterService = dbxRouterService;
|
|
19
|
+
this._idParamKey = new BehaviorSubject(DBX_FIREBASE_ROUTER_SYNC_DEFAULT_ID_PARAM_KEY);
|
|
20
|
+
this.idParamKey$ = this._idParamKey.asObservable();
|
|
21
|
+
this.idFromParams$ = combineLatest([this.idParamKey$, this.dbxRouterService.params$]).pipe(map(([key, params]) => {
|
|
22
|
+
return params[key] ?? undefined;
|
|
23
|
+
}), distinctUntilChanged(), shareReplay(1));
|
|
24
|
+
}
|
|
25
|
+
ngOnInit() {
|
|
26
|
+
this.sub = this.dbxFirebaseDocumentStoreDirective.store.setId(this.idFromParams$);
|
|
27
|
+
}
|
|
28
|
+
ngOnDestroy() {
|
|
29
|
+
super.ngOnDestroy();
|
|
30
|
+
this._idParamKey.complete();
|
|
31
|
+
}
|
|
32
|
+
// MARK: Input
|
|
33
|
+
get idParam() {
|
|
34
|
+
return this._idParamKey.value;
|
|
35
|
+
}
|
|
36
|
+
set idParam(idParam) {
|
|
37
|
+
this._idParamKey.next(idParam || DBX_FIREBASE_ROUTER_SYNC_DEFAULT_ID_PARAM_KEY);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
DbxFirebaseDocumentStoreRouteIdDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFirebaseDocumentStoreRouteIdDirective, deps: [{ token: i1.DbxFirebaseDocumentStoreDirective, host: true }, { token: i2.DbxRouterService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
41
|
+
DbxFirebaseDocumentStoreRouteIdDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: DbxFirebaseDocumentStoreRouteIdDirective, selector: "[dbxFirebaseDocumentStoreRouteId]", inputs: { idParam: ["dbxFirebaseDocumentStoreRouteId", "idParam"] }, usesInheritance: true, ngImport: i0 });
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFirebaseDocumentStoreRouteIdDirective, decorators: [{
|
|
43
|
+
type: Directive,
|
|
44
|
+
args: [{
|
|
45
|
+
selector: '[dbxFirebaseDocumentStoreRouteId]'
|
|
46
|
+
}]
|
|
47
|
+
}], ctorParameters: function () { return [{ type: i1.DbxFirebaseDocumentStoreDirective, decorators: [{
|
|
48
|
+
type: Host
|
|
49
|
+
}] }, { type: i2.DbxRouterService }]; }, propDecorators: { idParam: [{
|
|
50
|
+
type: Input,
|
|
51
|
+
args: ['dbxFirebaseDocumentStoreRouteId']
|
|
52
|
+
}] } });
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuZG9jdW1lbnQucm91dGVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL21vZGVsL3N0b3JlL3N0b3JlLmRvY3VtZW50LnJvdXRlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBYyxvQkFBb0IsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV4RCxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQy9ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSw2QkFBNkIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7O0FBRy9FLE1BQU0sQ0FBQyxNQUFNLDZDQUE2QyxHQUFHLElBQUksQ0FBQztBQUVsRTs7R0FFRztBQUlILE1BQU0sT0FBTyx3Q0FBeUMsU0FBUSw2QkFBNkI7SUFhekYsWUFDbUIsaUNBQXlFLEVBQ2pGLGdCQUFrQztRQUMzQyxLQUFLLEVBQUUsQ0FBQztRQUZTLHNDQUFpQyxHQUFqQyxpQ0FBaUMsQ0FBd0M7UUFDakYscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQWJyQyxnQkFBVyxHQUFHLElBQUksZUFBZSxDQUFTLDZDQUE2QyxDQUFDLENBQUM7UUFDeEYsZ0JBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRTlDLGtCQUFhLEdBQXlCLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNsSCxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFO1lBQ3BCLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLFNBQVMsQ0FBQztRQUNsQyxDQUFDLENBQUMsRUFDRixvQkFBb0IsRUFBRSxFQUN0QixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztJQU1GLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsaUNBQWlDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUVRLFdBQVc7UUFDbEIsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELGNBQWM7SUFDZCxJQUNJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxPQUFlO1FBQ3pCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSw2Q0FBNkMsQ0FBQyxDQUFBO0lBQ2pGLENBQUM7O3FJQXBDVSx3Q0FBd0M7eUhBQXhDLHdDQUF3QzsyRkFBeEMsd0NBQXdDO2tCQUhwRCxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQ0FBbUM7aUJBQzlDOzswQkFlSSxJQUFJOzJFQWdCSCxPQUFPO3NCQURWLEtBQUs7dUJBQUMsaUNBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdGFwTG9nIH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBzaGFyZVJlcGxheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3QsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERieFJvdXRlclNlcnZpY2UsIEFic3RyYWN0U3Vic2NyaXB0aW9uRGlyZWN0aXZlIH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRGlyZWN0aXZlIH0gZnJvbSAnLi9zdG9yZS5kb2N1bWVudC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTW9kZWxLZXkgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcblxuZXhwb3J0IGNvbnN0IERCWF9GSVJFQkFTRV9ST1VURVJfU1lOQ19ERUZBVUxUX0lEX1BBUkFNX0tFWSA9ICdpZCc7XG5cbi8qKlxuICogVXNlZCBmb3Igc3luY2hyb25pemluZyB0aGUgZG9jdW1lbnQgc3RvcmUgaWQgdG8gdGhlIHBhcmFtIG9mIHRoZSByb3V0ZS5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2RieEZpcmViYXNlRG9jdW1lbnRTdG9yZVJvdXRlSWRdJ1xufSlcbmV4cG9ydCBjbGFzcyBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVSb3V0ZUlkRGlyZWN0aXZlIGV4dGVuZHMgQWJzdHJhY3RTdWJzY3JpcHRpb25EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgcHJpdmF0ZSBfaWRQYXJhbUtleSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPihEQlhfRklSRUJBU0VfUk9VVEVSX1NZTkNfREVGQVVMVF9JRF9QQVJBTV9LRVkpO1xuICByZWFkb25seSBpZFBhcmFtS2V5JCA9IHRoaXMuX2lkUGFyYW1LZXkuYXNPYnNlcnZhYmxlKCk7XG5cbiAgcmVhZG9ubHkgaWRGcm9tUGFyYW1zJDogT2JzZXJ2YWJsZTxNb2RlbEtleT4gPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmlkUGFyYW1LZXkkLCB0aGlzLmRieFJvdXRlclNlcnZpY2UucGFyYW1zJF0pLnBpcGUoXG4gICAgbWFwKChba2V5LCBwYXJhbXNdKSA9PiB7XG4gICAgICByZXR1cm4gcGFyYW1zW2tleV0gPz8gdW5kZWZpbmVkO1xuICAgIH0pLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASG9zdCgpIHJlYWRvbmx5IGRieEZpcmViYXNlRG9jdW1lbnRTdG9yZURpcmVjdGl2ZTogRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRGlyZWN0aXZlPGFueT4sXG4gICAgcmVhZG9ubHkgZGJ4Um91dGVyU2VydmljZTogRGJ4Um91dGVyU2VydmljZSkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YiA9IHRoaXMuZGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRGlyZWN0aXZlLnN0b3JlLnNldElkKHRoaXMuaWRGcm9tUGFyYW1zJCk7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIHRoaXMuX2lkUGFyYW1LZXkuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8vIE1BUks6IElucHV0XG4gIEBJbnB1dCgnZGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlUm91dGVJZCcpXG4gIGdldCBpZFBhcmFtKCkge1xuICAgIHJldHVybiB0aGlzLl9pZFBhcmFtS2V5LnZhbHVlO1xuICB9XG5cbiAgc2V0IGlkUGFyYW0oaWRQYXJhbTogc3RyaW5nKSB7XG4gICAgdGhpcy5faWRQYXJhbUtleS5uZXh0KGlkUGFyYW0gfHwgREJYX0ZJUkVCQVNFX1JPVVRFUl9TWU5DX0RFRkFVTFRfSURfUEFSQU1fS0VZKVxuICB9XG5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { filterMaybe } from '@dereekb/rxjs';
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import { shareReplay, distinctUntilChanged, map } from 'rxjs';
|
|
4
|
+
import { AbstractDbxFirebaseDocumentStore } from './store.document';
|
|
5
|
+
import { setParentEffect, 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.setParent = setParentEffect(this);
|
|
15
|
+
this.setParentStore = setParentStoreEffect(this);
|
|
16
|
+
// MARK: Accessors
|
|
17
|
+
this.currentParent$ = this.state$.pipe(map(x => x.parent), distinctUntilChanged(), shareReplay(1));
|
|
18
|
+
this.parent$ = this.currentParent$.pipe(filterMaybe());
|
|
19
|
+
this.currentCollectionFactory$ = this.state$.pipe(map(x => x.collectionFactory), distinctUntilChanged(), shareReplay(1));
|
|
20
|
+
this.collectionFactory$ = this.currentCollectionFactory$.pipe(filterMaybe());
|
|
21
|
+
// MARK: State Changes
|
|
22
|
+
/**
|
|
23
|
+
* Sets the collection factory function to use.
|
|
24
|
+
*/
|
|
25
|
+
this.setCollectionFactory = this.updater((state, collectionFactory) => ({ ...state, collectionFactory }));
|
|
26
|
+
/**
|
|
27
|
+
* Sets the parent on the current state.
|
|
28
|
+
*/
|
|
29
|
+
this._setParentDocument = this.updater((state, parent) => ({ ...state, parent }));
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
AbstractDbxFirebaseDocumentWithParentStore.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AbstractDbxFirebaseDocumentWithParentStore, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
33
|
+
AbstractDbxFirebaseDocumentWithParentStore.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AbstractDbxFirebaseDocumentWithParentStore });
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AbstractDbxFirebaseDocumentWithParentStore, decorators: [{
|
|
35
|
+
type: Injectable
|
|
36
|
+
}] });
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuc3ViY29sbGVjdGlvbi5kb2N1bWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL21vZGVsL3N0b3JlL3N0b3JlLnN1YmNvbGxlY3Rpb24uZG9jdW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxXQUFXLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRzFFLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBa0UsTUFBTSxrQkFBa0IsQ0FBQztBQUNwSSxPQUFPLEVBQThELGVBQWUsRUFBbUUsb0JBQW9CLEVBQXdGLE1BQU0sNEJBQTRCLENBQUM7O0FBUXRTOztHQUVHO0FBRUgsTUFBTSxPQUFPLDBDQUNYLFNBQVEsZ0NBQXlDO0lBRm5EOztRQUlFLGdCQUFnQjtRQUNQLGNBQVMsR0FBbUUsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xHLG1CQUFjLEdBQTRFLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTlILGtCQUFrQjtRQUNULG1CQUFjLEdBQTBCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUMvRCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQ2xCLG9CQUFvQixFQUFFLEVBQ3RCLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO1FBRU8sWUFBTyxHQUFtQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FDekQsV0FBVyxFQUFFLENBQ2QsQ0FBQztRQUVPLDhCQUF5QixHQUEwRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDMUgsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEVBQzdCLG9CQUFvQixFQUFFLEVBQ3RCLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO1FBRU8sdUJBQWtCLEdBQW1FLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQy9ILFdBQVcsRUFBRSxDQUNkLENBQUM7UUFFRixzQkFBc0I7UUFDdEI7O1dBRUc7UUFDTSx5QkFBb0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLGlCQUFxRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFbEs7O1dBRUc7UUFDTSx1QkFBa0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLE1BQWlCLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7S0FFbEc7O3VJQXZDWSwwQ0FBMEM7MklBQTFDLDBDQUEwQzsyRkFBMUMsMENBQTBDO2tCQUR0RCxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmlsdGVyTWF5YmUgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIHNoYXJlUmVwbGF5LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGaXJlc3RvcmVEb2N1bWVudCwgRmlyZXN0b3JlQ29sbGVjdGlvbldpdGhQYXJlbnRGYWN0b3J5IH0gZnJvbSAnQGRlcmVla2IvZmlyZWJhc2UnO1xuaW1wb3J0IHsgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IEFic3RyYWN0RGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlLCBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmUsIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZUNvbnRleHRTdGF0ZSB9IGZyb20gJy4vc3RvcmUuZG9jdW1lbnQnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VDb21wb25lbnRTdG9yZVdpdGhQYXJlbnRTZXRQYXJlbnRFZmZlY3RGdW5jdGlvbiwgc2V0UGFyZW50RWZmZWN0LCBEYnhGaXJlYmFzZUNvbXBvbmVudFN0b3JlV2l0aFBhcmVudFNldFBhcmVudFN0b3JlRWZmZWN0RnVuY3Rpb24sIHNldFBhcmVudFN0b3JlRWZmZWN0LCBEYnhGaXJlYmFzZUNvbXBvbmVudFN0b3JlV2l0aFBhcmVudCwgRGJ4RmlyZWJhc2VDb21wb25lbnRTdG9yZVdpdGhQYXJlbnRDb250ZXh0U3RhdGUgfSBmcm9tICcuL3N0b3JlLnN1YmNvbGxlY3Rpb24ucnhqcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4RmlyZWJhc2VEb2N1bWVudFdpdGhQYXJlbnRTdG9yZTxULCBQVCwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4sIFBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8UFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8UFQ+PlxuICBleHRlbmRzIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZTxULCBEPiwgRGJ4RmlyZWJhc2VDb21wb25lbnRTdG9yZVdpdGhQYXJlbnQ8VCwgUFQsIEQsIFBEPiB7IH1cblxuZXhwb3J0IGludGVyZmFjZSBEYnhGaXJlYmFzZURvY3VtZW50V2l0aFBhcmVudFN0b3JlQ29udGV4dFN0YXRlPFQsIFBULCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPiwgUEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxQVD4gPSBGaXJlc3RvcmVEb2N1bWVudDxQVD4+XG4gIGV4dGVuZHMgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlQ29udGV4dFN0YXRlPFQsIEQ+LCBEYnhGaXJlYmFzZUNvbXBvbmVudFN0b3JlV2l0aFBhcmVudENvbnRleHRTdGF0ZTxULCBQVCwgRCwgUEQ+IHsgfVxuXG4vKipcbiAqIEFic3RyYWN0IERieEZpcmViYXNlRG9jdW1lbnRTdG9yZSB0aGF0IGhhcyBhIHBhcmVudCBkb2N1bWVudCBmcm9tIHdoaWNoIGlzIGRlcml2ZXMgaXQncyBGaXJlc2Jhc2VDb2xsZWN0aW9uIGZyb20uXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBYnN0cmFjdERieEZpcmViYXNlRG9jdW1lbnRXaXRoUGFyZW50U3RvcmU8VCwgUFQsIEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxUPiA9IEZpcmVzdG9yZURvY3VtZW50PFQ+LCBQRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFBUPiA9IEZpcmVzdG9yZURvY3VtZW50PFBUPiwgQyBleHRlbmRzIERieEZpcmViYXNlRG9jdW1lbnRXaXRoUGFyZW50U3RvcmVDb250ZXh0U3RhdGU8VCwgUFQsIEQsIFBEPiA9IERieEZpcmViYXNlRG9jdW1lbnRXaXRoUGFyZW50U3RvcmVDb250ZXh0U3RhdGU8VCwgUFQsIEQsIFBEPj5cbiAgZXh0ZW5kcyBBYnN0cmFjdERieEZpcmViYXNlRG9jdW1lbnRTdG9yZTxULCBELCBDPiBpbXBsZW1lbnRzIERieEZpcmViYXNlRG9jdW1lbnRXaXRoUGFyZW50U3RvcmU8VCwgUFQsIEQsIFBEPiB7XG5cbiAgLy8gTUFSSzogRWZmZWN0c1xuICByZWFkb25seSBzZXRQYXJlbnQ6IERieEZpcmViYXNlQ29tcG9uZW50U3RvcmVXaXRoUGFyZW50U2V0UGFyZW50RWZmZWN0RnVuY3Rpb248UEQ+ID0gc2V0UGFyZW50RWZmZWN0KHRoaXMpO1xuICByZWFkb25seSBzZXRQYXJlbnRTdG9yZTogRGJ4RmlyZWJhc2VDb21wb25lbnRTdG9yZVdpdGhQYXJlbnRTZXRQYXJlbnRTdG9yZUVmZmVjdEZ1bmN0aW9uPFBULCBQRD4gPSBzZXRQYXJlbnRTdG9yZUVmZmVjdCh0aGlzKTtcblxuICAvLyBNQVJLOiBBY2Nlc3NvcnNcbiAgcmVhZG9ubHkgY3VycmVudFBhcmVudCQ6IE9ic2VydmFibGU8TWF5YmU8UEQ+PiA9IHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgbWFwKHggPT4geC5wYXJlbnQpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBwYXJlbnQkOiBPYnNlcnZhYmxlPFBEPiA9IHRoaXMuY3VycmVudFBhcmVudCQucGlwZShcbiAgICBmaWx0ZXJNYXliZSgpXG4gICk7XG5cbiAgcmVhZG9ubHkgY3VycmVudENvbGxlY3Rpb25GYWN0b3J5JDogT2JzZXJ2YWJsZTxNYXliZTxGaXJlc3RvcmVDb2xsZWN0aW9uV2l0aFBhcmVudEZhY3Rvcnk8VCwgUFQsIEQsIFBEPj4+ID0gdGhpcy5zdGF0ZSQucGlwZShcbiAgICBtYXAoeCA9PiB4LmNvbGxlY3Rpb25GYWN0b3J5KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgY29sbGVjdGlvbkZhY3RvcnkkOiBPYnNlcnZhYmxlPEZpcmVzdG9yZUNvbGxlY3Rpb25XaXRoUGFyZW50RmFjdG9yeTxULCBQVCwgRCwgUEQ+PiA9IHRoaXMuY3VycmVudENvbGxlY3Rpb25GYWN0b3J5JC5waXBlKFxuICAgIGZpbHRlck1heWJlKClcbiAgKTtcblxuICAvLyBNQVJLOiBTdGF0ZSBDaGFuZ2VzXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBjb2xsZWN0aW9uIGZhY3RvcnkgZnVuY3Rpb24gdG8gdXNlLlxuICAgKi9cbiAgcmVhZG9ubHkgc2V0Q29sbGVjdGlvbkZhY3RvcnkgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBjb2xsZWN0aW9uRmFjdG9yeTogRmlyZXN0b3JlQ29sbGVjdGlvbldpdGhQYXJlbnRGYWN0b3J5PFQsIFBULCBELCBQRD4pID0+ICh7IC4uLnN0YXRlLCBjb2xsZWN0aW9uRmFjdG9yeSB9KSk7XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHBhcmVudCBvbiB0aGUgY3VycmVudCBzdGF0ZS5cbiAgICovXG4gIHJlYWRvbmx5IF9zZXRQYXJlbnREb2N1bWVudCA9IHRoaXMudXBkYXRlcigoc3RhdGUsIHBhcmVudDogTWF5YmU8UEQ+KSA9PiAoeyAuLi5zdGF0ZSwgcGFyZW50IH0pKTtcblxufVxuIl19
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { filterMaybe } from '@dereekb/rxjs';
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import { shareReplay, distinctUntilChanged, map } from 'rxjs';
|
|
4
|
+
import { AbstractDbxFirebaseCollectionStore } from './store.collection';
|
|
5
|
+
import { setParentEffect, 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() {
|
|
12
|
+
super(...arguments);
|
|
13
|
+
// MARK: Effects
|
|
14
|
+
this.setParent = setParentEffect(this);
|
|
15
|
+
this.setParentStore = setParentStoreEffect(this);
|
|
16
|
+
// MARK: Accessors
|
|
17
|
+
this.currentParent$ = this.state$.pipe(map(x => x.parent), distinctUntilChanged(), shareReplay(1));
|
|
18
|
+
this.parent$ = this.currentParent$.pipe(filterMaybe());
|
|
19
|
+
this.currentCollectionFactory$ = this.state$.pipe(map(x => x.collectionFactory), distinctUntilChanged(), shareReplay(1));
|
|
20
|
+
this.collectionFactory$ = this.currentCollectionFactory$.pipe(filterMaybe());
|
|
21
|
+
// MARK: State Changes
|
|
22
|
+
/**
|
|
23
|
+
* Sets the collection factory function to use.
|
|
24
|
+
*/
|
|
25
|
+
this.setCollectionFactory = this.updater((state, collectionFactory) => ({ ...state, collectionFactory }));
|
|
26
|
+
/**
|
|
27
|
+
* Sets the parent on the current state.
|
|
28
|
+
*/
|
|
29
|
+
this._setParentDocument = this.updater((state, parent) => ({ ...state, parent }));
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
AbstractDbxFirebaseCollectionWithParentStore.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AbstractDbxFirebaseCollectionWithParentStore, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
33
|
+
AbstractDbxFirebaseCollectionWithParentStore.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AbstractDbxFirebaseCollectionWithParentStore });
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: AbstractDbxFirebaseCollectionWithParentStore, decorators: [{
|
|
35
|
+
type: Injectable
|
|
36
|
+
}] });
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuc3ViY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL21vZGVsL3N0b3JlL3N0b3JlLnN1YmNvbGxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxXQUFXLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRzFFLE9BQU8sRUFBRSxrQ0FBa0MsRUFBc0UsTUFBTSxvQkFBb0IsQ0FBQztBQUM1SSxPQUFPLEVBQXFOLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQVF0Uzs7R0FFRztBQUVILE1BQU0sT0FBTyw0Q0FDWCxTQUFRLGtDQUEyQztJQUZyRDs7UUFJRSxnQkFBZ0I7UUFDUCxjQUFTLEdBQW1FLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsRyxtQkFBYyxHQUE0RSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU5SCxrQkFBa0I7UUFDVCxtQkFBYyxHQUEwQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDL0QsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUNsQixvQkFBb0IsRUFBRSxFQUN0QixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztRQUVPLFlBQU8sR0FBbUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQ3pELFdBQVcsRUFBRSxDQUNkLENBQUM7UUFFTyw4QkFBeUIsR0FBMEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQzFILEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxFQUM3QixvQkFBb0IsRUFBRSxFQUN0QixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztRQUVPLHVCQUFrQixHQUFtRSxJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUMvSCxXQUFXLEVBQUUsQ0FDZCxDQUFDO1FBRUYsc0JBQXNCO1FBQ3RCOztXQUVHO1FBQ00seUJBQW9CLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxpQkFBcUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRWxLOztXQUVHO1FBQ00sdUJBQWtCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxNQUFpQixFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO0tBRWxHOzt5SUF2Q1ksNENBQTRDOzZJQUE1Qyw0Q0FBNEM7MkZBQTVDLDRDQUE0QztrQkFEeEQsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpbHRlck1heWJlIH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBzaGFyZVJlcGxheSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmlyZXN0b3JlQ29sbGVjdGlvbldpdGhQYXJlbnRGYWN0b3J5LCBGaXJlc3RvcmVEb2N1bWVudCB9IGZyb20gJ0BkZXJlZWtiL2ZpcmViYXNlJztcbmltcG9ydCB7IE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBBYnN0cmFjdERieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlLCBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZSwgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uU3RvcmVDb250ZXh0U3RhdGUgfSBmcm9tICcuL3N0b3JlLmNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VDb21wb25lbnRTdG9yZVdpdGhQYXJlbnQsIERieEZpcmViYXNlQ29tcG9uZW50U3RvcmVXaXRoUGFyZW50Q29udGV4dFN0YXRlLCBEYnhGaXJlYmFzZUNvbXBvbmVudFN0b3JlV2l0aFBhcmVudFNldFBhcmVudEVmZmVjdEZ1bmN0aW9uLCBEYnhGaXJlYmFzZUNvbXBvbmVudFN0b3JlV2l0aFBhcmVudFNldFBhcmVudFN0b3JlRWZmZWN0RnVuY3Rpb24sIHNldFBhcmVudEVmZmVjdCwgc2V0UGFyZW50U3RvcmVFZmZlY3QgfSBmcm9tICcuL3N0b3JlLnN1YmNvbGxlY3Rpb24ucnhqcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uV2l0aFBhcmVudFN0b3JlPFQsIFBULCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPiwgUEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxQVD4gPSBGaXJlc3RvcmVEb2N1bWVudDxQVD4+XG4gIGV4dGVuZHMgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uU3RvcmU8VCwgRD4sIERieEZpcmViYXNlQ29tcG9uZW50U3RvcmVXaXRoUGFyZW50PFQsIFBULCBELCBQRD4geyB9XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uV2l0aFBhcmVudFN0b3JlQ29udGV4dFN0YXRlPFQsIFBULCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPiwgUEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxQVD4gPSBGaXJlc3RvcmVEb2N1bWVudDxQVD4+XG4gIGV4dGVuZHMgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uU3RvcmVDb250ZXh0U3RhdGU8VCwgRD4sIERieEZpcmViYXNlQ29tcG9uZW50U3RvcmVXaXRoUGFyZW50Q29udGV4dFN0YXRlPFQsIFBULCBELCBQRD4geyB9XG5cbi8qKlxuICogQWJzdHJhY3QgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uU3RvcmUgdGhhdCBoYXMgYSBwYXJlbnQgZG9jdW1lbnQgZnJvbSB3aGljaCBpcyBkZXJpdmVzIGl0J3MgRmlyZXNiYXNlQ29sbGVjdGlvbiBmcm9tLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQWJzdHJhY3REYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmU8VCwgUFQsIEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxUPiA9IEZpcmVzdG9yZURvY3VtZW50PFQ+LCBQRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFBUPiA9IEZpcmVzdG9yZURvY3VtZW50PFBUPiwgQyBleHRlbmRzIERieEZpcmViYXNlQ29sbGVjdGlvbldpdGhQYXJlbnRTdG9yZUNvbnRleHRTdGF0ZTxULCBQVCwgRCwgUEQ+ID0gRGJ4RmlyZWJhc2VDb2xsZWN0aW9uV2l0aFBhcmVudFN0b3JlQ29udGV4dFN0YXRlPFQsIFBULCBELCBQRD4+XG4gIGV4dGVuZHMgQWJzdHJhY3REYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZTxULCBELCBDPiBpbXBsZW1lbnRzIERieEZpcmViYXNlQ29sbGVjdGlvbldpdGhQYXJlbnRTdG9yZTxULCBQVCwgRCwgUEQ+IHtcblxuICAvLyBNQVJLOiBFZmZlY3RzXG4gIHJlYWRvbmx5IHNldFBhcmVudDogRGJ4RmlyZWJhc2VDb21wb25lbnRTdG9yZVdpdGhQYXJlbnRTZXRQYXJlbnRFZmZlY3RGdW5jdGlvbjxQRD4gPSBzZXRQYXJlbnRFZmZlY3QodGhpcyk7XG4gIHJlYWRvbmx5IHNldFBhcmVudFN0b3JlOiBEYnhGaXJlYmFzZUNvbXBvbmVudFN0b3JlV2l0aFBhcmVudFNldFBhcmVudFN0b3JlRWZmZWN0RnVuY3Rpb248UFQsIFBEPiA9IHNldFBhcmVudFN0b3JlRWZmZWN0KHRoaXMpO1xuXG4gIC8vIE1BUks6IEFjY2Vzc29yc1xuICByZWFkb25seSBjdXJyZW50UGFyZW50JDogT2JzZXJ2YWJsZTxNYXliZTxQRD4+ID0gdGhpcy5zdGF0ZSQucGlwZShcbiAgICBtYXAoeCA9PiB4LnBhcmVudCksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IHBhcmVudCQ6IE9ic2VydmFibGU8UEQ+ID0gdGhpcy5jdXJyZW50UGFyZW50JC5waXBlKFxuICAgIGZpbHRlck1heWJlKClcbiAgKTtcblxuICByZWFkb25seSBjdXJyZW50Q29sbGVjdGlvbkZhY3RvcnkkOiBPYnNlcnZhYmxlPE1heWJlPEZpcmVzdG9yZUNvbGxlY3Rpb25XaXRoUGFyZW50RmFjdG9yeTxULCBQVCwgRCwgUEQ+Pj4gPSB0aGlzLnN0YXRlJC5waXBlKFxuICAgIG1hcCh4ID0+IHguY29sbGVjdGlvbkZhY3RvcnkpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBjb2xsZWN0aW9uRmFjdG9yeSQ6IE9ic2VydmFibGU8RmlyZXN0b3JlQ29sbGVjdGlvbldpdGhQYXJlbnRGYWN0b3J5PFQsIFBULCBELCBQRD4+ID0gdGhpcy5jdXJyZW50Q29sbGVjdGlvbkZhY3RvcnkkLnBpcGUoXG4gICAgZmlsdGVyTWF5YmUoKVxuICApO1xuXG4gIC8vIE1BUks6IFN0YXRlIENoYW5nZXNcbiAgLyoqXG4gICAqIFNldHMgdGhlIGNvbGxlY3Rpb24gZmFjdG9yeSBmdW5jdGlvbiB0byB1c2UuXG4gICAqL1xuICByZWFkb25seSBzZXRDb2xsZWN0aW9uRmFjdG9yeSA9IHRoaXMudXBkYXRlcigoc3RhdGUsIGNvbGxlY3Rpb25GYWN0b3J5OiBGaXJlc3RvcmVDb2xsZWN0aW9uV2l0aFBhcmVudEZhY3Rvcnk8VCwgUFQsIEQsIFBEPikgPT4gKHsgLi4uc3RhdGUsIGNvbGxlY3Rpb25GYWN0b3J5IH0pKTtcblxuICAvKipcbiAgICogU2V0cyB0aGUgcGFyZW50IG9uIHRoZSBjdXJyZW50IHN0YXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgX3NldFBhcmVudERvY3VtZW50ID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgcGFyZW50OiBNYXliZTxQRD4pID0+ICh7IC4uLnN0YXRlLCBwYXJlbnQgfSkpO1xuXG59XG4iXX0=
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { cleanup } from "@dereekb/rxjs";
|
|
2
|
+
import { map, NEVER, switchMap, tap } 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
|
+
export function setParentEffect(store) {
|
|
24
|
+
return store.effect((input) => {
|
|
25
|
+
return input.pipe(switchMap((parent) => {
|
|
26
|
+
store._setParentDocument(parent);
|
|
27
|
+
if (parent) {
|
|
28
|
+
return store.collectionFactory$.pipe(tap((collectionFactory) => {
|
|
29
|
+
const collection = collectionFactory(parent);
|
|
30
|
+
store.setFirestoreCollection(collection);
|
|
31
|
+
}));
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
// clear the current collection
|
|
35
|
+
store.setFirestoreCollection(undefined);
|
|
36
|
+
// do nothing until a parent is returned.
|
|
37
|
+
return NEVER;
|
|
38
|
+
}
|
|
39
|
+
}));
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuc3ViY29sbGVjdGlvbi5yeGpzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kZWwvc3RvcmUvc3RvcmUuc3ViY29sbGVjdGlvbi5yeGpzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxPQUFPLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRzNELE9BQU8sRUFBRSxHQUFHLEVBQTRCLEtBQUssRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBb0I1RSxNQUFNLFVBQVUsb0JBQW9CLENBQ2pDLEtBQXdEO0lBQ3pELE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQTBELEVBQUUsRUFBRTtRQUNqRixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQ2YsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDbEIsSUFBSSxNQUEyQixDQUFDO1lBRWhDLElBQUksV0FBVyxFQUFFO2dCQUNmLE1BQU0sR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBaUIsQ0FBQzthQUN4RTtpQkFBTTtnQkFDTCxNQUFNLEdBQUcsU0FBUyxDQUFDO2FBQ3BCO1lBRUQsaUNBQWlDO1lBQ2pDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUVwQyxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUMsRUFDRixPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNkLElBQUksR0FBRyxFQUFFO2dCQUNQLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQzthQUNuQjtRQUNILENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUM1QixLQUF3RDtJQUN6RCxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUE0QixFQUFFLEVBQUU7UUFDbkQsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUNmLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ25CLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUVqQyxJQUFJLE1BQU0sRUFBRTtnQkFDVixPQUFPLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQ2xDLEdBQUcsQ0FBQyxDQUFDLGlCQUFpQixFQUFFLEVBQUU7b0JBQ3hCLE1BQU0sVUFBVSxHQUFHLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUM3QyxLQUFLLENBQUMsc0JBQXNCLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQzNDLENBQUMsQ0FBQyxDQUNILENBQUM7YUFDSDtpQkFBTTtnQkFDTCwrQkFBK0I7Z0JBQy9CLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFFeEMseUNBQXlDO2dCQUN6QyxPQUFPLEtBQUssQ0FBQzthQUNkO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvY2tTZXRDb21wb25lbnRTdG9yZSB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcbmltcG9ydCB7IEZpcmVzdG9yZUNvbGxlY3Rpb24sIEZpcmVzdG9yZUNvbGxlY3Rpb25XaXRoUGFyZW50RmFjdG9yeSwgRmlyZXN0b3JlRG9jdW1lbnQgfSBmcm9tIFwiQGRlcmVla2IvZmlyZWJhc2VcIjtcbmltcG9ydCB7IGNsZWFudXAsIE9ic2VydmFibGVPclZhbHVlIH0gZnJvbSBcIkBkZXJlZWtiL3J4anNcIjtcbmltcG9ydCB7IE1heWJlIH0gZnJvbSBcIkBkZXJlZWtiL3V0aWxcIjtcbmltcG9ydCB7IENvbXBvbmVudFN0b3JlIH0gZnJvbSBcIkBuZ3J4L2NvbXBvbmVudC1zdG9yZVwiO1xuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24sIE5FVkVSLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmUgfSBmcm9tIFwiLi9zdG9yZS5kb2N1bWVudFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIERieEZpcmViYXNlQ29tcG9uZW50U3RvcmVXaXRoUGFyZW50Q29udGV4dFN0YXRlPFQsIFBULCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPiwgUEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxQVD4gPSBGaXJlc3RvcmVEb2N1bWVudDxQVD4+IHtcbiAgcmVhZG9ubHkgcGFyZW50PzogTWF5YmU8UEQ+O1xuICByZWFkb25seSBjb2xsZWN0aW9uRmFjdG9yeT86IE1heWJlPEZpcmVzdG9yZUNvbGxlY3Rpb25XaXRoUGFyZW50RmFjdG9yeTxULCBQVCwgRCwgUEQ+Pjtcbn1cblxuZXhwb3J0IHR5cGUgRGJ4RmlyZWJhc2VDb21wb25lbnRTdG9yZVdpdGhQYXJlbnRTZXRQYXJlbnRFZmZlY3RGdW5jdGlvbjxQRD4gPSAob2JzZXJ2YWJsZU9yVmFsdWU6IE9ic2VydmFibGVPclZhbHVlPE1heWJlPFBEPj4pID0+IFN1YnNjcmlwdGlvbjtcbmV4cG9ydCB0eXBlIERieEZpcmViYXNlQ29tcG9uZW50U3RvcmVXaXRoUGFyZW50U2V0UGFyZW50U3RvcmVFZmZlY3RGdW5jdGlvbjxQVCwgUEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxQVD4gPSBGaXJlc3RvcmVEb2N1bWVudDxQVD4+ID0gKG9ic2VydmFibGVPclZhbHVlOiBPYnNlcnZhYmxlT3JWYWx1ZTxEYnhGaXJlYmFzZURvY3VtZW50U3RvcmU8UFQsIFBEPj4pID0+IFN1YnNjcmlwdGlvbjtcblxuZXhwb3J0IGludGVyZmFjZSBEYnhGaXJlYmFzZUNvbXBvbmVudFN0b3JlV2l0aFBhcmVudDxULCBQVCwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4sIFBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8UFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8UFQ+PiBleHRlbmRzIExvY2tTZXRDb21wb25lbnRTdG9yZTxhbnk+LCBQaWNrPENvbXBvbmVudFN0b3JlPERieEZpcmViYXNlQ29tcG9uZW50U3RvcmVXaXRoUGFyZW50Q29udGV4dFN0YXRlPFQsIFBULCBELCBQRD4+LCAnZWZmZWN0Jz4ge1xuICByZWFkb25seSBjdXJyZW50UGFyZW50JDogT2JzZXJ2YWJsZTxNYXliZTxQRD4+O1xuICByZWFkb25seSBwYXJlbnQkOiBPYnNlcnZhYmxlPFBEPjtcbiAgcmVhZG9ubHkgY29sbGVjdGlvbkZhY3RvcnkkOiBPYnNlcnZhYmxlPEZpcmVzdG9yZUNvbGxlY3Rpb25XaXRoUGFyZW50RmFjdG9yeTxULCBQVCwgRCwgUEQ+PjtcbiAgcmVhZG9ubHkgc2V0UGFyZW50OiBEYnhGaXJlYmFzZUNvbXBvbmVudFN0b3JlV2l0aFBhcmVudFNldFBhcmVudEVmZmVjdEZ1bmN0aW9uPFBEPjtcbiAgcmVhZG9ubHkgX3NldFBhcmVudERvY3VtZW50OiAoKCkgPT4gdm9pZCkgfCAoKG9ic2VydmFibGVPclZhbHVlOiBPYnNlcnZhYmxlT3JWYWx1ZTxNYXliZTxQRD4+KSA9PiBTdWJzY3JpcHRpb24pO1xuICByZWFkb25seSBzZXRGaXJlc3RvcmVDb2xsZWN0aW9uOiAoKCkgPT4gdm9pZCkgfCAoKG9ic2VydmFibGVPclZhbHVlOiBPYnNlcnZhYmxlT3JWYWx1ZTxNYXliZTxGaXJlc3RvcmVDb2xsZWN0aW9uPFQsIEQ+Pj4pID0+IFN1YnNjcmlwdGlvbik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRQYXJlbnRTdG9yZUVmZmVjdDxULCBQVCwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4sIFBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8UFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8UFQ+PlxuICAoc3RvcmU6IERieEZpcmViYXNlQ29tcG9uZW50U3RvcmVXaXRoUGFyZW50PFQsIFBULCBELCBQRD4pOiBEYnhGaXJlYmFzZUNvbXBvbmVudFN0b3JlV2l0aFBhcmVudFNldFBhcmVudFN0b3JlRWZmZWN0RnVuY3Rpb248UFQsIFBEPiB7XG4gIHJldHVybiBzdG9yZS5lZmZlY3QoKGlucHV0OiBPYnNlcnZhYmxlPE1heWJlPERieEZpcmViYXNlRG9jdW1lbnRTdG9yZTxQVCwgUEQ+Pj4pID0+IHtcbiAgICByZXR1cm4gaW5wdXQucGlwZShcbiAgICAgIG1hcCgocGFyZW50U3RvcmUpID0+IHtcbiAgICAgICAgbGV0IHJlc3VsdDogTWF5YmU8U3Vic2NyaXB0aW9uPjtcblxuICAgICAgICBpZiAocGFyZW50U3RvcmUpIHtcbiAgICAgICAgICByZXN1bHQgPSBzdG9yZS5zZXRQYXJlbnQocGFyZW50U3RvcmUuY3VycmVudERvY3VtZW50JCkgYXMgU3Vic2NyaXB0aW9uO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHNldCBhcyB0aGUgcGFyZW50IGxvY2sgc2V0IHRvb1xuICAgICAgICBzdG9yZS5zZXRQYXJlbnRMb2NrU2V0KHBhcmVudFN0b3JlKTtcblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfSksXG4gICAgICBjbGVhbnVwKChzdWIpID0+IHtcbiAgICAgICAgaWYgKHN1Yikge1xuICAgICAgICAgIHN1Yi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0UGFyZW50RWZmZWN0PFQsIFBULCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPiwgUEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxQVD4gPSBGaXJlc3RvcmVEb2N1bWVudDxQVD4+XG4gIChzdG9yZTogRGJ4RmlyZWJhc2VDb21wb25lbnRTdG9yZVdpdGhQYXJlbnQ8VCwgUFQsIEQsIFBEPik6IERieEZpcmViYXNlQ29tcG9uZW50U3RvcmVXaXRoUGFyZW50U2V0UGFyZW50RWZmZWN0RnVuY3Rpb248UEQ+IHtcbiAgcmV0dXJuIHN0b3JlLmVmZmVjdCgoaW5wdXQ6IE9ic2VydmFibGU8TWF5YmU8UEQ+PikgPT4ge1xuICAgIHJldHVybiBpbnB1dC5waXBlKFxuICAgICAgc3dpdGNoTWFwKChwYXJlbnQpID0+IHtcbiAgICAgICAgc3RvcmUuX3NldFBhcmVudERvY3VtZW50KHBhcmVudCk7XG5cbiAgICAgICAgaWYgKHBhcmVudCkge1xuICAgICAgICAgIHJldHVybiBzdG9yZS5jb2xsZWN0aW9uRmFjdG9yeSQucGlwZShcbiAgICAgICAgICAgIHRhcCgoY29sbGVjdGlvbkZhY3RvcnkpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgY29sbGVjdGlvbiA9IGNvbGxlY3Rpb25GYWN0b3J5KHBhcmVudCk7XG4gICAgICAgICAgICAgIHN0b3JlLnNldEZpcmVzdG9yZUNvbGxlY3Rpb24oY29sbGVjdGlvbik7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gY2xlYXIgdGhlIGN1cnJlbnQgY29sbGVjdGlvblxuICAgICAgICAgIHN0b3JlLnNldEZpcmVzdG9yZUNvbGxlY3Rpb24odW5kZWZpbmVkKTtcblxuICAgICAgICAgIC8vIGRvIG5vdGhpbmcgdW50aWwgYSBwYXJlbnQgaXMgcmV0dXJuZWQuXG4gICAgICAgICAgcmV0dXJuIE5FVkVSO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH0pO1xufVxuIl19
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { NgModule } from "@angular/core";
|
|
2
|
+
import { DbxFirebaseModelModule } from "./model/model.module";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class DbxFirebaseModule {
|
|
5
|
+
}
|
|
6
|
+
DbxFirebaseModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFirebaseModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
7
|
+
DbxFirebaseModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFirebaseModule, exports: [DbxFirebaseModelModule] });
|
|
8
|
+
DbxFirebaseModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFirebaseModule, imports: [DbxFirebaseModelModule] });
|
|
9
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFirebaseModule, decorators: [{
|
|
10
|
+
type: NgModule,
|
|
11
|
+
args: [{
|
|
12
|
+
exports: [
|
|
13
|
+
DbxFirebaseModelModule
|
|
14
|
+
]
|
|
15
|
+
}]
|
|
16
|
+
}] });
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBTzlELE1BQU0sT0FBTyxpQkFBaUI7OzhHQUFqQixpQkFBaUI7K0dBQWpCLGlCQUFpQixZQUgxQixzQkFBc0I7K0dBR2IsaUJBQWlCLFlBSDFCLHNCQUFzQjsyRkFHYixpQkFBaUI7a0JBTDdCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLHNCQUFzQjtxQkFDdkI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZU1vZGVsTW9kdWxlIH0gZnJvbSBcIi4vbW9kZWwvbW9kZWwubW9kdWxlXCI7XG5cbkBOZ01vZHVsZSh7XG4gIGV4cG9ydHM6IFtcbiAgICBEYnhGaXJlYmFzZU1vZGVsTW9kdWxlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRGJ4RmlyZWJhc2VNb2R1bGUgeyB9XG4iXX0=
|