@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.
Files changed (91) hide show
  1. package/esm2020/lib/model/index.mjs +2 -2
  2. package/esm2020/lib/model/model.module.mjs +6 -5
  3. package/esm2020/lib/model/modules/index.mjs +3 -0
  4. package/esm2020/lib/model/modules/model/index.mjs +6 -0
  5. package/esm2020/lib/model/modules/model/model.tracker.service.mjs +30 -0
  6. package/esm2020/lib/model/modules/model/model.types.list.component.mjs +67 -0
  7. package/esm2020/lib/model/modules/model/model.types.module.mjs +21 -0
  8. package/esm2020/lib/model/modules/model/model.types.service.mjs +114 -0
  9. package/esm2020/lib/model/modules/model/model.types.view.directive.mjs +48 -0
  10. package/esm2020/lib/model/modules/store/index.mjs +17 -0
  11. package/esm2020/lib/model/modules/store/model.store.module.mjs +23 -0
  12. package/esm2020/lib/model/modules/store/store.collection.change.directive.mjs +52 -0
  13. package/esm2020/lib/model/modules/store/store.collection.change.if.directive.mjs +57 -0
  14. package/esm2020/lib/model/modules/store/store.collection.directive.mjs +54 -0
  15. package/esm2020/lib/model/{store → modules/store}/store.collection.list.directive.mjs +1 -1
  16. package/esm2020/lib/model/modules/store/store.collection.mjs +55 -0
  17. package/esm2020/lib/model/modules/store/store.document.auth.directive.mjs +33 -0
  18. package/esm2020/lib/model/modules/store/store.document.crud.mjs +80 -0
  19. package/esm2020/lib/model/modules/store/store.document.directive.mjs +61 -0
  20. package/esm2020/lib/model/modules/store/store.document.mjs +109 -0
  21. package/esm2020/lib/model/modules/store/store.document.router.directive.mjs +67 -0
  22. package/esm2020/lib/model/modules/store/store.document.router.key.directive.mjs +67 -0
  23. package/esm2020/lib/model/modules/store/store.subcollection.directive.mjs +30 -0
  24. package/esm2020/lib/model/modules/store/store.subcollection.document.mjs +98 -0
  25. package/esm2020/lib/model/modules/store/store.subcollection.mjs +79 -0
  26. package/esm2020/lib/model/modules/store/store.subcollection.rxjs.mjs +23 -0
  27. package/esm2020/lib/model/service/index.mjs +3 -1
  28. package/esm2020/lib/model/service/model.context.instance.mjs +54 -0
  29. package/esm2020/lib/model/service/model.context.mjs +2 -35
  30. package/esm2020/lib/model/service/model.context.service.mjs +38 -0
  31. package/esm2020/lib/model/system/systemstate.collection.store.directive.mjs +2 -2
  32. package/esm2020/lib/model/system/systemstate.collection.store.mjs +2 -2
  33. package/esm2020/lib/model/system/systemstate.document.store.directive.mjs +2 -2
  34. package/esm2020/lib/model/system/systemstate.document.store.mjs +2 -2
  35. package/esm2020/lib/router/id.param.redirect.mjs +11 -6
  36. package/fesm2015/dereekb-dbx-firebase.mjs +439 -74
  37. package/fesm2015/dereekb-dbx-firebase.mjs.map +1 -1
  38. package/fesm2020/dereekb-dbx-firebase.mjs +438 -74
  39. package/fesm2020/dereekb-dbx-firebase.mjs.map +1 -1
  40. package/lib/model/index.d.ts +1 -1
  41. package/lib/model/model.module.d.ts +3 -2
  42. package/lib/model/modules/index.d.ts +2 -0
  43. package/lib/model/modules/model/index.d.ts +5 -0
  44. package/lib/model/modules/model/model.tracker.service.d.ts +13 -0
  45. package/lib/model/modules/model/model.types.list.component.d.ts +22 -0
  46. package/lib/model/modules/model/model.types.module.d.ts +10 -0
  47. package/lib/model/modules/model/model.types.service.d.ts +88 -0
  48. package/lib/model/modules/model/model.types.view.directive.d.ts +18 -0
  49. package/lib/model/{store → modules/store}/index.d.ts +1 -0
  50. package/lib/model/modules/store/model.store.module.d.ts +12 -0
  51. package/lib/model/{store → modules/store}/store.collection.change.directive.d.ts +1 -1
  52. package/lib/model/{store → modules/store}/store.collection.change.if.directive.d.ts +0 -0
  53. package/lib/model/{store → modules/store}/store.collection.d.ts +2 -2
  54. package/lib/model/{store → modules/store}/store.collection.directive.d.ts +1 -1
  55. package/lib/model/{store → modules/store}/store.collection.list.directive.d.ts +0 -0
  56. package/lib/model/{store → modules/store}/store.document.auth.directive.d.ts +1 -1
  57. package/lib/model/{store → modules/store}/store.document.crud.d.ts +0 -0
  58. package/lib/model/{store → modules/store}/store.document.d.ts +6 -1
  59. package/lib/model/{store → modules/store}/store.document.directive.d.ts +5 -3
  60. package/lib/model/{store → modules/store}/store.document.router.directive.d.ts +0 -0
  61. package/lib/model/modules/store/store.document.router.key.directive.d.ts +31 -0
  62. package/lib/model/{store → modules/store}/store.subcollection.d.ts +0 -0
  63. package/lib/model/{store → modules/store}/store.subcollection.directive.d.ts +0 -0
  64. package/lib/model/{store → modules/store}/store.subcollection.document.d.ts +0 -0
  65. package/lib/model/{store → modules/store}/store.subcollection.rxjs.d.ts +0 -0
  66. package/lib/model/service/index.d.ts +2 -0
  67. package/lib/model/service/model.context.d.ts +16 -16
  68. package/lib/model/service/model.context.instance.d.ts +31 -0
  69. package/lib/model/service/model.context.service.d.ts +31 -0
  70. package/lib/model/system/systemstate.collection.store.d.ts +1 -1
  71. package/lib/model/system/systemstate.collection.store.directive.d.ts +1 -1
  72. package/lib/model/system/systemstate.document.store.d.ts +1 -1
  73. package/lib/model/system/systemstate.document.store.directive.d.ts +1 -1
  74. package/lib/router/id.param.redirect.d.ts +11 -2
  75. package/package.json +5 -5
  76. package/esm2020/lib/model/store/index.mjs +0 -16
  77. package/esm2020/lib/model/store/model.store.module.mjs +0 -21
  78. package/esm2020/lib/model/store/store.collection.change.directive.mjs +0 -52
  79. package/esm2020/lib/model/store/store.collection.change.if.directive.mjs +0 -57
  80. package/esm2020/lib/model/store/store.collection.directive.mjs +0 -54
  81. package/esm2020/lib/model/store/store.collection.mjs +0 -55
  82. package/esm2020/lib/model/store/store.document.auth.directive.mjs +0 -33
  83. package/esm2020/lib/model/store/store.document.crud.mjs +0 -80
  84. package/esm2020/lib/model/store/store.document.directive.mjs +0 -59
  85. package/esm2020/lib/model/store/store.document.mjs +0 -108
  86. package/esm2020/lib/model/store/store.document.router.directive.mjs +0 -67
  87. package/esm2020/lib/model/store/store.subcollection.directive.mjs +0 -30
  88. package/esm2020/lib/model/store/store.subcollection.document.mjs +0 -98
  89. package/esm2020/lib/model/store/store.subcollection.mjs +0 -79
  90. package/esm2020/lib/model/store/store.subcollection.rxjs.mjs +0 -23
  91. 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuc3ViY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL21vZGVsL21vZHVsZXMvc3RvcmUvc3RvcmUuc3ViY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFjLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQWdCLEtBQUssRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9HLE9BQU8sRUFBRSxrQ0FBa0MsRUFBc0UsTUFBTSxvQkFBb0IsQ0FBQztBQUM1SSxPQUFPLEVBQTJNLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBcUIzUTs7R0FFRztBQUVILE1BQU0sT0FBTyw0Q0FBZ1QsU0FBUSxrQ0FBMkM7SUFDOVcsWUFBc0MsS0FBUSxFQUE0QixpQkFBaUU7UUFDekksS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBSWYsZ0JBQWdCO1FBQ1AsbUJBQWMsR0FBNEUsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckgsa0JBQWEsR0FBbUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQXVFLEVBQUUsRUFBRTtZQUMvSyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQ2Ysb0JBQW9CLEVBQUUsRUFDdEIsU0FBUyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7Z0JBQ3RCLE1BQU0sSUFBSSxHQUFHLFNBQVMsRUFBRSxXQUFXLEVBQUUsSUFBSSxRQUFRLENBQUMsQ0FBQyx5QkFBeUI7Z0JBRTVFLElBQUksSUFBSSxLQUFLLE9BQU8sRUFBRTtvQkFDcEIsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUN0QyxHQUFHLENBQUMsQ0FBQyxlQUFlLEVBQUUsRUFBRTt3QkFDdEIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGVBQWUsQ0FBQyxDQUFDO29CQUMvQyxDQUFDLENBQUMsQ0FDSCxDQUFDO2lCQUNIO3FCQUFNO29CQUNMLDZCQUE2QjtvQkFDN0IsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FDN0IsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7d0JBQ25CLElBQUksTUFBTSxFQUFFOzRCQUNWLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FDakMsR0FBRyxDQUFDLENBQUMsaUJBQWlCLEVBQUUsRUFBRTtnQ0FDeEIsTUFBTSxVQUFVLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7Z0NBQzdDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxVQUFVLENBQUMsQ0FBQzs0QkFDMUMsQ0FBQyxDQUFDLENBQ0gsQ0FBQzt5QkFDSDs2QkFBTTs0QkFDTCxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUM7NEJBQ3ZDLE9BQU8sS0FBSyxDQUFDO3lCQUNkO29CQUNILENBQUMsQ0FBQyxDQUNILENBQUM7aUJBQ0g7WUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFFSCxrQkFBa0I7UUFDVCxtQkFBYyxHQUEwQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDL0QsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQ3BCLG9CQUFvQixFQUFFLEVBQ3RCLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO1FBRU8sWUFBTyxHQUFtQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBRWxFLDhCQUF5QixHQUEwRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDMUgsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsRUFDL0Isb0JBQW9CLEVBQUUsRUFDdEIsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7UUFFTyx1QkFBa0IsR0FBbUUsSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBRXhJLDRCQUF1QixHQUFzRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDcEcsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLEVBQzdCLG9CQUFvQixFQUFFLEVBQ3RCLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO1FBRU8scUJBQWdCLEdBQStDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUV6SCxzQkFBc0I7UUFDdEI7O1dBRUc7UUFDTSx5QkFBb0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLGlCQUFxRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFbEs7O1dBRUc7UUFDTSx1QkFBa0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLGVBQXNELEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFtSSxDQUFDO1FBRWpSOztXQUVHO1FBQ00sdUJBQWtCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxNQUFpQixFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3hGLGVBQVUsR0FBRyxJQUFJLENBQUMsa0JBQTBFLENBQUM7UUEvRXBHLElBQUksQ0FBQyxhQUFhLENBQUMsaUJBQWlCLElBQUksUUFBUSxDQUFDLENBQUM7SUFDcEQsQ0FBQzs7MElBSlUsNENBQTRDLGtCQUNuQyxJQUFJLDZCQUFnQyxJQUFJOzhJQURqRCw0Q0FBNEM7NEZBQTVDLDRDQUE0QztrQkFEeEQsVUFBVTs7MEJBRUksTUFBTTsyQkFBQyxJQUFJOzswQkFBRyxRQUFROzswQkFBYyxNQUFNOzJCQUFDLElBQUk7OzBCQUFHLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZmlsdGVyTWF5YmUsIE9ic2VydmFibGVPclZhbHVlIH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBzaGFyZVJlcGxheSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgU3Vic2NyaXB0aW9uLCBORVZFUiwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZpcmVzdG9yZUNvbGxlY3Rpb25Hcm91cCwgRmlyZXN0b3JlQ29sbGVjdGlvbldpdGhQYXJlbnRGYWN0b3J5LCBGaXJlc3RvcmVEb2N1bWVudCB9IGZyb20gJ0BkZXJlZWtiL2ZpcmViYXNlJztcbmltcG9ydCB7IEFic3RyYWN0RGJ4RmlyZWJhc2VDb2xsZWN0aW9uU3RvcmUsIERieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlLCBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZUNvbnRleHRTdGF0ZSB9IGZyb20gJy4vc3RvcmUuY29sbGVjdGlvbic7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZUNvbXBvbmVudFN0b3JlU2V0UGFyZW50RWZmZWN0RnVuY3Rpb24sIERieEZpcmViYXNlQ29tcG9uZW50U3RvcmVXaXRoUGFyZW50LCBEYnhGaXJlYmFzZUNvbXBvbmVudFN0b3JlV2l0aFBhcmVudENvbnRleHRTdGF0ZSwgRGJ4RmlyZWJhc2VDb21wb25lbnRTdG9yZVdpdGhQYXJlbnRTZXRQYXJlbnRTdG9yZUVmZmVjdEZ1bmN0aW9uLCBzZXRQYXJlbnRTdG9yZUVmZmVjdCB9IGZyb20gJy4vc3RvcmUuc3ViY29sbGVjdGlvbi5yeGpzJztcblxuLyoqXG4gKiBXaGV0aGVyIG9yIG5vdCB0byBsb2FkIHZhbHVlcyBmcm9tIGEgcGFyZW50IG9yIGEgZ3JvdXAuXG4gKi9cbmV4cG9ydCB0eXBlIERieEZpcmViYXNlQ29tcG9uZW50U3RvcmVXaXRoUGFyZW50U291cmNlTW9kZSA9ICdwYXJlbnQnIHwgJ2dyb3VwJztcblxuZXhwb3J0IGludGVyZmFjZSBEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmVDb250ZXh0U3RhdGU8VCwgUFQsIEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxUPiA9IEZpcmVzdG9yZURvY3VtZW50PFQ+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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9zZXJ2aWNlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL21vZGVsLmNvbnRleHQnO1xuIl19
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuY29udGV4dC5pbnN0YW5jZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL21vZGVsL3NlcnZpY2UvbW9kZWwuY29udGV4dC5pbnN0YW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsWUFBWSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUVoRSxPQUFPLEVBQUUsR0FBRyxFQUFjLFNBQVMsRUFBRSxXQUFXLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFLckYsTUFBTSxVQUFVLHVEQUF1RCxDQUEySCxRQUF1QjtJQUN2TixPQUFPLENBQXdFLElBQXVJLEVBQUUsTUFBbUMsRUFBRSxFQUFFO1FBQzdQLE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsQyxNQUFNLGVBQWUsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUNuQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUNuQixTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ2tDLENBQUM7UUFFbEcsT0FBTyxJQUFJLGdEQUFnRCxDQUFVLGVBQWUsQ0FBQyxDQUFDO0lBQ3hGLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sT0FBTyxnREFBZ0Q7SUFDM0QsWUFBcUIsYUFBZ0c7UUFBaEcsa0JBQWEsR0FBYixhQUFhLENBQW1GO1FBRTVHLFNBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUVqRSxjQUFjO1FBQ0wsZUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUMzQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQzdCLG9CQUFvQixFQUFFLENBQ3ZCLENBQUM7UUFFTyxXQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ3ZDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUNuQixvQkFBb0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUMvQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztRQUVPLGtCQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ3ZDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDLEVBQ2xDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO1FBZ0JGLGNBQWM7UUFDTCxnQkFBVyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUM1QyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxFQUNoQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztRQUVPLGFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FDdkMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQ3JCLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO1FBRU8saUJBQVksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FDM0MsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsRUFDM0IsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7SUFqRHNILENBQUM7SUFxQnpILGNBQWMsQ0FBQyxJQUFpQztRQUM5QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNyQixTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsRUFDeEMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7SUFDSixDQUFDO0lBRUQsa0JBQWtCLENBQUMsSUFBaUMsRUFBRSxPQUF5QjtRQUM3RSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNyQixTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUM1QyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztJQUNKLENBQUM7SUFrQkQsUUFBUSxDQUE4QyxLQUFRO1FBQzVELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQzFCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUM3QixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztJQUNKLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBeUI7UUFDbkMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQXlCO1FBQ25DLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELFFBQVEsQ0FBQyxXQUE0QixFQUFFLEtBQXlCO1FBQzlELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQzFCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFDMUMsb0JBQW9CLEVBQUUsRUFDdEIsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7SUFDSixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBeUI7UUFDeEMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBeUI7UUFDeEMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsYUFBYSxDQUFDLFdBQTRCLEVBQUUsS0FBeUI7UUFDbkUsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FDMUIsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUMvQyxvQkFBb0IsRUFBRSxFQUN0QixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpcmVzdG9yZURvY3VtZW50LCBGaXJlYmFzZVBlcm1pc3Npb25FcnJvckNvbnRleHQsIEluTW9kZWxDb250ZXh0RmlyZWJhc2VNb2RlbFNlcnZpY2UsIEZpcmVzdG9yZURvY3VtZW50RGF0YSwgRG9jdW1lbnRTbmFwc2hvdCwgRmlyZXN0b3JlQWNjZXNzb3JTdHJlYW1Nb2RlLCBTbmFwc2hvdE9wdGlvbnMsIGZpcmVzdG9yZU1vZGVsS2V5Q29sbGVjdGlvblR5cGUsIEZpcmVzdG9yZUNvbGxlY3Rpb25UeXBlLCBGaXJlYmFzZU1vZGVsU2VydmljZUNvbnRleHQsIEZpcmViYXNlTW9kZWxzU2VydmljZUZhY3RvcnksIEZpcmVzdG9yZU1vZGVsSWRlbnRpdHksIEluQ29udGV4dEZpcmViYXNlTW9kZWxzU2VydmljZSwgRmlyZXN0b3JlTW9kZWxJZGVudGl0eU1vZGVsVHlwZSwgRmlyZWJhc2VNb2RlbHNTZXJ2aWNlIH0gZnJvbSAnQGRlcmVla2IvZmlyZWJhc2UnO1xuaW1wb3J0IHsgR3JhbnRlZFJvbGUsIEdyYW50ZWRSb2xlVHJ1dGhNYXAsIEdyYW50ZWRSb2xlVHJ1dGhNYXBPYmplY3QgfSBmcm9tICdAZGVyZWVrYi9tb2RlbCc7XG5pbXBvcnQgeyBhc09ic2VydmFibGUsIE9ic2VydmFibGVPclZhbHVlIH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBTZXRJbmNsdWRlc01vZGUsIEl0ZXJhYmxlT3JWYWx1ZSwgTW9kZWxLZXkgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSwgc3dpdGNoTWFwLCBzaGFyZVJlcGxheSwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERieEZpcmViYXNlSW5Db250ZXh0RmlyZWJhc2VNb2RlbEluZm9TZXJ2aWNlSW5zdGFuY2UgfSBmcm9tICcuL21vZGVsLmNvbnRleHQnO1xuXG5leHBvcnQgdHlwZSBEYnhGaXJlYmFzZUluQ29udGV4dEZpcmViYXNlTW9kZWxTZXJ2aWNlSW5zdGFuY2VGYWN0b3J5PFMgZXh0ZW5kcyBJbkNvbnRleHRGaXJlYmFzZU1vZGVsc1NlcnZpY2U8YW55PiwgQyBleHRlbmRzIEZpcmViYXNlUGVybWlzc2lvbkVycm9yQ29udGV4dCA9IEZpcmViYXNlUGVybWlzc2lvbkVycm9yQ29udGV4dD4gPSA8RCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PGFueT4sIFIgZXh0ZW5kcyBHcmFudGVkUm9sZSA9IEdyYW50ZWRSb2xlPih0eXBlOiBTIGV4dGVuZHMgSW5Db250ZXh0RmlyZWJhc2VNb2RlbHNTZXJ2aWNlPGluZmVyIFk+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
- import { map, switchMap, shareReplay, distinctUntilChanged } from 'rxjs';
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3lzdGVtc3RhdGUuY29sbGVjdGlvbi5zdG9yZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9zeXN0ZW0vc3lzdGVtc3RhdGUuY29sbGVjdGlvbi5zdG9yZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxQyxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsMENBQTBDLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0SSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7O0FBTTVFLE1BQU0sT0FBTyw4Q0FBK0MsU0FBUSxtQ0FBaUc7SUFDbkssWUFBWSxLQUFpQztRQUMzQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDZixDQUFDOzs0SUFIVSw4Q0FBOEM7Z0lBQTlDLDhDQUE4Qyw2REFGOUMsMENBQTBDLENBQUMsOENBQThDLEVBQUUsMEJBQTBCLENBQUM7NEZBRXRILDhDQUE4QztrQkFKMUQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0NBQW9DO29CQUM5QyxTQUFTLEVBQUUsMENBQTBDLGlEQUFpRCwwQkFBMEIsQ0FBQztpQkFDbEkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN5c3RlbVN0YXRlLCBTeXN0ZW1TdGF0ZURvY3VtZW50IH0gZnJvbSAnQGRlcmVla2IvZmlyZWJhc2UnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uU3RvcmVEaXJlY3RpdmUsIHByb3ZpZGVEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZURpcmVjdGl2ZSB9IGZyb20gJy4uL3N0b3JlL3N0b3JlLmNvbGxlY3Rpb24uZGlyZWN0aXZlJztcbmltcG9ydCB7IFN5c3RlbVN0YXRlQ29sbGVjdGlvblN0b3JlIH0gZnJvbSAnLi9zeXN0ZW1zdGF0ZS5jb2xsZWN0aW9uLnN0b3JlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2RieEZpcmViYXNlU3lzdGVtU3RhdGVDb2xsZWN0aW9uXScsXG4gIHByb3ZpZGVyczogcHJvdmlkZURieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlRGlyZWN0aXZlKERieEZpcmViYXNlU3lzdGVtU3RhdGVDb2xsZWN0aW9uU3RvcmVEaXJlY3RpdmUsIFN5c3RlbVN0YXRlQ29sbGVjdGlvblN0b3JlKVxufSlcbmV4cG9ydCBjbGFzcyBEYnhGaXJlYmFzZVN5c3RlbVN0YXRlQ29sbGVjdGlvblN0b3JlRGlyZWN0aXZlIGV4dGVuZHMgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uU3RvcmVEaXJlY3RpdmU8U3lzdGVtU3RhdGUsIFN5c3RlbVN0YXRlRG9jdW1lbnQsIFN5c3RlbVN0YXRlQ29sbGVjdGlvblN0b3JlPiB7XG4gIGNvbnN0cnVjdG9yKHN0b3JlOiBTeXN0ZW1TdGF0ZUNvbGxlY3Rpb25TdG9yZSkge1xuICAgIHN1cGVyKHN0b3JlKTtcbiAgfVxufVxuIl19
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3lzdGVtc3RhdGUuY29sbGVjdGlvbi5zdG9yZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9zeXN0ZW0vc3lzdGVtc3RhdGUuY29sbGVjdGlvbi5zdG9yZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxQyxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsMENBQTBDLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUM5SSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7O0FBTTVFLE1BQU0sT0FBTyw4Q0FBK0MsU0FBUSxtQ0FBaUc7SUFDbkssWUFBWSxLQUFpQztRQUMzQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDZixDQUFDOzs0SUFIVSw4Q0FBOEM7Z0lBQTlDLDhDQUE4Qyw2REFGOUMsMENBQTBDLENBQUMsOENBQThDLEVBQUUsMEJBQTBCLENBQUM7NEZBRXRILDhDQUE4QztrQkFKMUQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0NBQW9DO29CQUM5QyxTQUFTLEVBQUUsMENBQTBDLGlEQUFpRCwwQkFBMEIsQ0FBQztpQkFDbEkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN5c3RlbVN0YXRlLCBTeXN0ZW1TdGF0ZURvY3VtZW50IH0gZnJvbSAnQGRlcmVla2IvZmlyZWJhc2UnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uU3RvcmVEaXJlY3RpdmUsIHByb3ZpZGVEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZURpcmVjdGl2ZSB9IGZyb20gJy4uL21vZHVsZXMvc3RvcmUvc3RvcmUuY29sbGVjdGlvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU3lzdGVtU3RhdGVDb2xsZWN0aW9uU3RvcmUgfSBmcm9tICcuL3N5c3RlbXN0YXRlLmNvbGxlY3Rpb24uc3RvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZGJ4RmlyZWJhc2VTeXN0ZW1TdGF0ZUNvbGxlY3Rpb25dJyxcbiAgcHJvdmlkZXJzOiBwcm92aWRlRGJ4RmlyZWJhc2VDb2xsZWN0aW9uU3RvcmVEaXJlY3RpdmUoRGJ4RmlyZWJhc2VTeXN0ZW1TdGF0ZUNvbGxlY3Rpb25TdG9yZURpcmVjdGl2ZSwgU3lzdGVtU3RhdGVDb2xsZWN0aW9uU3RvcmUpXG59KVxuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlU3lzdGVtU3RhdGVDb2xsZWN0aW9uU3RvcmVEaXJlY3RpdmUgZXh0ZW5kcyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZURpcmVjdGl2ZTxTeXN0ZW1TdGF0ZSwgU3lzdGVtU3RhdGVEb2N1bWVudCwgU3lzdGVtU3RhdGVDb2xsZWN0aW9uU3RvcmU+IHtcbiAgY29uc3RydWN0b3Ioc3RvcmU6IFN5c3RlbVN0YXRlQ29sbGVjdGlvblN0b3JlKSB7XG4gICAgc3VwZXIoc3RvcmUpO1xuICB9XG59XG4iXX0=