@dereekb/dbx-firebase 9.19.5 → 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 (89) 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/fesm2015/dereekb-dbx-firebase.mjs +361 -65
  36. package/fesm2015/dereekb-dbx-firebase.mjs.map +1 -1
  37. package/fesm2020/dereekb-dbx-firebase.mjs +362 -65
  38. package/fesm2020/dereekb-dbx-firebase.mjs.map +1 -1
  39. package/lib/model/index.d.ts +1 -1
  40. package/lib/model/model.module.d.ts +3 -2
  41. package/lib/model/modules/index.d.ts +2 -0
  42. package/lib/model/modules/model/index.d.ts +5 -0
  43. package/lib/model/modules/model/model.tracker.service.d.ts +13 -0
  44. package/lib/model/modules/model/model.types.list.component.d.ts +22 -0
  45. package/lib/model/modules/model/model.types.module.d.ts +10 -0
  46. package/lib/model/modules/model/model.types.service.d.ts +88 -0
  47. package/lib/model/modules/model/model.types.view.directive.d.ts +18 -0
  48. package/lib/model/{store → modules/store}/index.d.ts +0 -0
  49. package/lib/model/{store → modules/store}/model.store.module.d.ts +0 -0
  50. package/lib/model/{store → modules/store}/store.collection.change.directive.d.ts +1 -1
  51. package/lib/model/{store → modules/store}/store.collection.change.if.directive.d.ts +0 -0
  52. package/lib/model/{store → modules/store}/store.collection.d.ts +2 -2
  53. package/lib/model/{store → modules/store}/store.collection.directive.d.ts +1 -1
  54. package/lib/model/{store → modules/store}/store.collection.list.directive.d.ts +0 -0
  55. package/lib/model/{store → modules/store}/store.document.auth.directive.d.ts +1 -1
  56. package/lib/model/{store → modules/store}/store.document.crud.d.ts +0 -0
  57. package/lib/model/{store → modules/store}/store.document.d.ts +0 -0
  58. package/lib/model/{store → modules/store}/store.document.directive.d.ts +5 -3
  59. package/lib/model/{store → modules/store}/store.document.router.directive.d.ts +0 -0
  60. package/lib/model/{store → modules/store}/store.document.router.key.directive.d.ts +0 -0
  61. package/lib/model/{store → modules/store}/store.subcollection.d.ts +0 -0
  62. package/lib/model/{store → modules/store}/store.subcollection.directive.d.ts +0 -0
  63. package/lib/model/{store → modules/store}/store.subcollection.document.d.ts +0 -0
  64. package/lib/model/{store → modules/store}/store.subcollection.rxjs.d.ts +0 -0
  65. package/lib/model/service/index.d.ts +2 -0
  66. package/lib/model/service/model.context.d.ts +16 -16
  67. package/lib/model/service/model.context.instance.d.ts +31 -0
  68. package/lib/model/service/model.context.service.d.ts +31 -0
  69. package/lib/model/system/systemstate.collection.store.d.ts +1 -1
  70. package/lib/model/system/systemstate.collection.store.directive.d.ts +1 -1
  71. package/lib/model/system/systemstate.document.store.d.ts +1 -1
  72. package/lib/model/system/systemstate.document.store.directive.d.ts +1 -1
  73. package/package.json +5 -5
  74. package/esm2020/lib/model/store/index.mjs +0 -17
  75. package/esm2020/lib/model/store/model.store.module.mjs +0 -23
  76. package/esm2020/lib/model/store/store.collection.change.directive.mjs +0 -52
  77. package/esm2020/lib/model/store/store.collection.change.if.directive.mjs +0 -57
  78. package/esm2020/lib/model/store/store.collection.directive.mjs +0 -54
  79. package/esm2020/lib/model/store/store.collection.mjs +0 -55
  80. package/esm2020/lib/model/store/store.document.auth.directive.mjs +0 -33
  81. package/esm2020/lib/model/store/store.document.crud.mjs +0 -80
  82. package/esm2020/lib/model/store/store.document.directive.mjs +0 -59
  83. package/esm2020/lib/model/store/store.document.mjs +0 -109
  84. package/esm2020/lib/model/store/store.document.router.directive.mjs +0 -67
  85. package/esm2020/lib/model/store/store.document.router.key.directive.mjs +0 -67
  86. package/esm2020/lib/model/store/store.subcollection.directive.mjs +0 -30
  87. package/esm2020/lib/model/store/store.subcollection.document.mjs +0 -98
  88. package/esm2020/lib/model/store/store.subcollection.mjs +0 -79
  89. package/esm2020/lib/model/store/store.subcollection.rxjs.mjs +0 -23
@@ -1,57 +0,0 @@
1
- import { TemplateRef, ViewContainerRef, Directive, Input } from '@angular/core';
2
- import { AbstractIfDirective } from '@dereekb/dbx-core';
3
- import { shareReplay, BehaviorSubject, combineLatest, map } from 'rxjs';
4
- import { DbxFirebaseCollectionChangeDirective } from './store.collection.change.directive';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "./store.collection.change.directive";
7
- /**
8
- * Structural directive that displays the content when the target change is detected.
9
- *
10
- * Can specify which changes to appear on.
11
- */
12
- export class DbxFirebaseCollectionHasChangeDirective extends AbstractIfDirective {
13
- constructor(templateRef, viewContainer, directive) {
14
- super(templateRef, viewContainer);
15
- this.directive = directive;
16
- this._mode = new BehaviorSubject('addedAndRemoved');
17
- this.show$ = combineLatest([this._mode, this.directive.event$]).pipe(map(([mode, event]) => {
18
- let show = false;
19
- if (event.type !== 'none') {
20
- switch (mode) {
21
- case 'all':
22
- show = true;
23
- break;
24
- case 'addedAndRemoved':
25
- show = event.type === 'addedAndRemoved' || event.type === 'added' || event.type === 'removed';
26
- break;
27
- default:
28
- show = event.type === mode;
29
- break;
30
- }
31
- }
32
- return show;
33
- }), shareReplay(1));
34
- }
35
- get mode() {
36
- return this._mode.value;
37
- }
38
- set mode(mode) {
39
- this._mode.next(mode || 'addedAndRemoved');
40
- }
41
- ngOnDestroy() {
42
- super.ngOnDestroy();
43
- this._mode.complete();
44
- }
45
- }
46
- DbxFirebaseCollectionHasChangeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseCollectionHasChangeDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: i1.DbxFirebaseCollectionChangeDirective }], target: i0.ɵɵFactoryTarget.Directive });
47
- DbxFirebaseCollectionHasChangeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: DbxFirebaseCollectionHasChangeDirective, selector: "[dbxFirebaseCollectionHasChange]", inputs: { mode: ["dbxFirebaseCollectionHasChange", "mode"] }, usesInheritance: true, ngImport: i0 });
48
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseCollectionHasChangeDirective, decorators: [{
49
- type: Directive,
50
- args: [{
51
- selector: '[dbxFirebaseCollectionHasChange]'
52
- }]
53
- }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: i1.DbxFirebaseCollectionChangeDirective }]; }, propDecorators: { mode: [{
54
- type: Input,
55
- args: ['dbxFirebaseCollectionHasChange']
56
- }] } });
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuY29sbGVjdGlvbi5jaGFuZ2UuaWYuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kZWwvc3RvcmUvc3RvcmUuY29sbGVjdGlvbi5jaGFuZ2UuaWYuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQWMsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7QUFNM0Y7Ozs7R0FJRztBQUlILE1BQU0sT0FBTyx1Q0FBd0MsU0FBUSxtQkFBbUI7SUEwQjlFLFlBQVksV0FBaUMsRUFBRSxhQUErQixFQUFrQixTQUF3RDtRQUN0SixLQUFLLENBQUMsV0FBVyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBRDRELGNBQVMsR0FBVCxTQUFTLENBQStDO1FBekJoSixVQUFLLEdBQUcsSUFBSSxlQUFlLENBQThDLGlCQUFpQixDQUFDLENBQUM7UUFFM0YsVUFBSyxHQUF3QixhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzNGLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7WUFDcEIsSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDO1lBRWpCLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUU7Z0JBQ3pCLFFBQVEsSUFBSSxFQUFFO29CQUNaLEtBQUssS0FBSzt3QkFDUixJQUFJLEdBQUcsSUFBSSxDQUFDO3dCQUNaLE1BQU07b0JBQ1IsS0FBSyxpQkFBaUI7d0JBQ3BCLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxLQUFLLGlCQUFpQixJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssT0FBTyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDO3dCQUM5RixNQUFNO29CQUNSO3dCQUNFLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQzt3QkFDM0IsTUFBTTtpQkFDVDthQUNGO1lBRUQsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUMsRUFDRixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztJQUlGLENBQUM7SUFFRCxJQUNJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLElBQUksQ0FBQyxJQUE2RDtRQUNwRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksaUJBQWlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRVEsV0FBVztRQUNsQixLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN4QixDQUFDOztxSUExQ1UsdUNBQXVDO3lIQUF2Qyx1Q0FBdUM7NEZBQXZDLHVDQUF1QztrQkFIbkQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0NBQWtDO2lCQUM3QztvTEFnQ0ssSUFBSTtzQkFEUCxLQUFLO3VCQUFDLGdDQUFnQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9uRGVzdHJveSwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWYsIERpcmVjdGl2ZSwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0SWZEaXJlY3RpdmUgfSBmcm9tICdAZGVyZWVrYi9kYngtY29yZSc7XG5pbXBvcnQgeyBzaGFyZVJlcGxheSwgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBtYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERieEZpcmViYXNlQ29sbGVjdGlvbkNoYW5nZURpcmVjdGl2ZSB9IGZyb20gJy4vc3RvcmUuY29sbGVjdGlvbi5jaGFuZ2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IEl0ZXJhdGlvblF1ZXJ5RG9jQ2hhbmdlV2F0Y2hlckNoYW5nZVR5cGUgfSBmcm9tICdAZGVyZWVrYi9maXJlYmFzZSc7XG5pbXBvcnQgeyBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuXG5leHBvcnQgdHlwZSBEYnhGaXJlYmFzZUNvbGxlY3Rpb25IYXNDaGFuZ2VEaXJlY3RpdmVNb2RlID0gJ2FsbCcgfCBJdGVyYXRpb25RdWVyeURvY0NoYW5nZVdhdGNoZXJDaGFuZ2VUeXBlO1xuXG4vKipcbiAqIFN0cnVjdHVyYWwgZGlyZWN0aXZlIHRoYXQgZGlzcGxheXMgdGhlIGNvbnRlbnQgd2hlbiB0aGUgdGFyZ2V0IGNoYW5nZSBpcyBkZXRlY3RlZC5cbiAqXG4gKiBDYW4gc3BlY2lmeSB3aGljaCBjaGFuZ2VzIHRvIGFwcGVhciBvbi5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2RieEZpcmViYXNlQ29sbGVjdGlvbkhhc0NoYW5nZV0nXG59KVxuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlQ29sbGVjdGlvbkhhc0NoYW5nZURpcmVjdGl2ZSBleHRlbmRzIEFic3RyYWN0SWZEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIF9tb2RlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEYnhGaXJlYmFzZUNvbGxlY3Rpb25IYXNDaGFuZ2VEaXJlY3RpdmVNb2RlPignYWRkZWRBbmRSZW1vdmVkJyk7XG5cbiAgcmVhZG9ubHkgc2hvdyQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSBjb21iaW5lTGF0ZXN0KFt0aGlzLl9tb2RlLCB0aGlzLmRpcmVjdGl2ZS5ldmVudCRdKS5waXBlKFxuICAgIG1hcCgoW21vZGUsIGV2ZW50XSkgPT4ge1xuICAgICAgbGV0IHNob3cgPSBmYWxzZTtcblxuICAgICAgaWYgKGV2ZW50LnR5cGUgIT09ICdub25lJykge1xuICAgICAgICBzd2l0Y2ggKG1vZGUpIHtcbiAgICAgICAgICBjYXNlICdhbGwnOlxuICAgICAgICAgICAgc2hvdyA9IHRydWU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdhZGRlZEFuZFJlbW92ZWQnOlxuICAgICAgICAgICAgc2hvdyA9IGV2ZW50LnR5cGUgPT09ICdhZGRlZEFuZFJlbW92ZWQnIHx8IGV2ZW50LnR5cGUgPT09ICdhZGRlZCcgfHwgZXZlbnQudHlwZSA9PT0gJ3JlbW92ZWQnO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHNob3cgPSBldmVudC50eXBlID09PSBtb2RlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHNob3c7XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICBjb25zdHJ1Y3Rvcih0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8dW5rbm93bj4sIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsIHB1YmxpYyByZWFkb25seSBkaXJlY3RpdmU6IERieEZpcmViYXNlQ29sbGVjdGlvbkNoYW5nZURpcmVjdGl2ZTx1bmtub3duPikge1xuICAgIHN1cGVyKHRlbXBsYXRlUmVmLCB2aWV3Q29udGFpbmVyKTtcbiAgfVxuXG4gIEBJbnB1dCgnZGJ4RmlyZWJhc2VDb2xsZWN0aW9uSGFzQ2hhbmdlJylcbiAgZ2V0IG1vZGUoKTogRGJ4RmlyZWJhc2VDb2xsZWN0aW9uSGFzQ2hhbmdlRGlyZWN0aXZlTW9kZSB7XG4gICAgcmV0dXJuIHRoaXMuX21vZGUudmFsdWU7XG4gIH1cblxuICBzZXQgbW9kZShtb2RlOiBNYXliZTxEYnhGaXJlYmFzZUNvbGxlY3Rpb25IYXNDaGFuZ2VEaXJlY3RpdmVNb2RlIHwgJyc+KSB7XG4gICAgdGhpcy5fbW9kZS5uZXh0KG1vZGUgfHwgJ2FkZGVkQW5kUmVtb3ZlZCcpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB0aGlzLl9tb2RlLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,54 +0,0 @@
1
- import { Directive, forwardRef, Input } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * Abstract directive that contains a DbxFirebaseCollectionStore and provides an interface for communicating with other directives.
5
- */
6
- export class DbxFirebaseCollectionStoreDirective {
7
- constructor(store) {
8
- this.store = store;
9
- this.pageLoadingState$ = this.store.pageLoadingState$;
10
- }
11
- // MARK: Inputs
12
- set maxPages(maxPages) {
13
- this.store.setMaxPages(maxPages);
14
- }
15
- set itemsPerPage(itemsPerPage) {
16
- this.store.setItemsPerPage(itemsPerPage);
17
- }
18
- set constraints(constraints) {
19
- this.store.setConstraints(constraints);
20
- }
21
- next() {
22
- this.store.next();
23
- }
24
- restart() {
25
- this.store.restart();
26
- }
27
- setConstraints(constraints) {
28
- this.store.setConstraints(constraints);
29
- }
30
- }
31
- DbxFirebaseCollectionStoreDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseCollectionStoreDirective, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
32
- DbxFirebaseCollectionStoreDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: DbxFirebaseCollectionStoreDirective, inputs: { maxPages: "maxPages", itemsPerPage: "itemsPerPage", constraints: "constraints" }, ngImport: i0 });
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseCollectionStoreDirective, decorators: [{
34
- type: Directive
35
- }], ctorParameters: function () { return [{ type: undefined }]; }, propDecorators: { maxPages: [{
36
- type: Input
37
- }], itemsPerPage: [{
38
- type: Input
39
- }], constraints: [{
40
- type: Input
41
- }] } });
42
- export function provideDbxFirebaseCollectionStoreDirective(sourceType, storeType) {
43
- const providers = [
44
- {
45
- provide: DbxFirebaseCollectionStoreDirective,
46
- useExisting: forwardRef(() => sourceType)
47
- }
48
- ];
49
- if (storeType) {
50
- providers.push(storeType);
51
- }
52
- return providers;
53
- }
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuY29sbGVjdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9zdG9yZS9zdG9yZS5jb2xsZWN0aW9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQWtCLE1BQU0sZUFBZSxDQUFDOztBQUs3RTs7R0FFRztBQUVILE1BQU0sT0FBZ0IsbUNBQW1DO0lBQ3ZELFlBQXFCLEtBQVE7UUFBUixVQUFLLEdBQUwsS0FBSyxDQUFHO1FBRXBCLHNCQUFpQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUM7SUFGMUIsQ0FBQztJQUlqQyxlQUFlO0lBQ2YsSUFDSSxRQUFRLENBQUMsUUFBdUI7UUFDbEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQ0ksWUFBWSxDQUFDLFlBQTJCO1FBQzFDLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUNJLFdBQVcsQ0FBQyxXQUEwRDtRQUN4RSxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBSTtRQUNGLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxjQUFjLENBQUMsV0FBMEQ7UUFDdkUsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDekMsQ0FBQzs7aUlBL0JtQixtQ0FBbUM7cUhBQW5DLG1DQUFtQzs0RkFBbkMsbUNBQW1DO2tCQUR4RCxTQUFTOzZGQVFKLFFBQVE7c0JBRFgsS0FBSztnQkFNRixZQUFZO3NCQURmLEtBQUs7Z0JBTUYsV0FBVztzQkFEZCxLQUFLOztBQThCUixNQUFNLFVBQVUsMENBQTBDLENBQWdLLFVBQW1CLEVBQUUsU0FBbUI7SUFDaFEsTUFBTSxTQUFTLEdBQWU7UUFDNUI7WUFDRSxPQUFPLEVBQUUsbUNBQW1DO1lBQzVDLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDO1NBQzFDO0tBQ0YsQ0FBQztJQUVGLElBQUksU0FBUyxFQUFFO1FBQ2IsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztLQUMzQjtJQUVELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGZvcndhcmRSZWYsIElucHV0LCBQcm92aWRlciwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmlyZXN0b3JlRG9jdW1lbnQsIEZpcmVzdG9yZVF1ZXJ5Q29uc3RyYWludCB9IGZyb20gJ0BkZXJlZWtiL2ZpcmViYXNlJztcbmltcG9ydCB7IE1heWJlLCBBcnJheU9yVmFsdWUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IERieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlIH0gZnJvbSAnLi9zdG9yZS5jb2xsZWN0aW9uJztcblxuLyoqXG4gKiBBYnN0cmFjdCBkaXJlY3RpdmUgdGhhdCBjb250YWlucyBhIERieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlIGFuZCBwcm92aWRlcyBhbiBpbnRlcmZhY2UgZm9yIGNvbW11bmljYXRpbmcgd2l0aCBvdGhlciBkaXJlY3RpdmVzLlxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZURpcmVjdGl2ZTxUID0gdW5rbm93biwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4sIFMgZXh0ZW5kcyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZTxULCBEPiA9IERieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlPFQsIEQ+PiB7XG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IHN0b3JlOiBTKSB7fVxuXG4gIHJlYWRvbmx5IHBhZ2VMb2FkaW5nU3RhdGUkID0gdGhpcy5zdG9yZS5wYWdlTG9hZGluZ1N0YXRlJDtcblxuICAvLyBNQVJLOiBJbnB1dHNcbiAgQElucHV0KClcbiAgc2V0IG1heFBhZ2VzKG1heFBhZ2VzOiBNYXliZTxudW1iZXI+KSB7XG4gICAgdGhpcy5zdG9yZS5zZXRNYXhQYWdlcyhtYXhQYWdlcyk7XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgaXRlbXNQZXJQYWdlKGl0ZW1zUGVyUGFnZTogTWF5YmU8bnVtYmVyPikge1xuICAgIHRoaXMuc3RvcmUuc2V0SXRlbXNQZXJQYWdlKGl0ZW1zUGVyUGFnZSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgY29uc3RyYWludHMoY29uc3RyYWludHM6IE1heWJlPEFycmF5T3JWYWx1ZTxGaXJlc3RvcmVRdWVyeUNvbnN0cmFpbnQ+Pikge1xuICAgIHRoaXMuc3RvcmUuc2V0Q29uc3RyYWludHMoY29uc3RyYWludHMpO1xuICB9XG5cbiAgbmV4dCgpIHtcbiAgICB0aGlzLnN0b3JlLm5leHQoKTtcbiAgfVxuXG4gIHJlc3RhcnQoKSB7XG4gICAgdGhpcy5zdG9yZS5yZXN0YXJ0KCk7XG4gIH1cblxuICBzZXRDb25zdHJhaW50cyhjb25zdHJhaW50czogTWF5YmU8QXJyYXlPclZhbHVlPEZpcmVzdG9yZVF1ZXJ5Q29uc3RyYWludD4+KSB7XG4gICAgdGhpcy5zdG9yZS5zZXRDb25zdHJhaW50cyhjb25zdHJhaW50cyk7XG4gIH1cbn1cblxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuLy8gVGhlIHVzZSBvZiBhbnkgaGVyZSBkb2VzIG5vdCBkZWdyYWRlIHRoZSB0eXBlLXNhZmV0eTsgd2Ugd2FudCB0byBzaW1wbHkgbWF0Y2ggdGhhdCB0aGUgU3RvcmUgdHlwZSBTIGlzIHVzZWQgaW4gdGhlIERpcmVjdGl2ZSB0eXBlIEMgdG8gcHJvdmlkZSBpdC5cblxuLyoqXG4gKiBDb25maWd1cmVzIHByb3ZpZGVycyBmb3IgYSBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZURpcmVjdGl2ZS5cbiAqXG4gKiBDYW4gb3B0aW9uYWxseSBhbHNvIHByb3ZpZGUgdGhlIGFjdHVhbCBzdG9yZSB0eXBlIHRvIGluY2x1ZGUgaW4gdGhlIHByb3ZpZGVycyBhcnJheSBzbyBpdCBpcyBpbnN0YW50aWF0ZWQgYnkgQW5ndWxhci5cbiAqXG4gKiBAcGFyYW0gc291cmNlVHlwZVxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZURieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlRGlyZWN0aXZlPFMgZXh0ZW5kcyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZURpcmVjdGl2ZTxhbnksIGFueSwgYW55Pj4oc291cmNlVHlwZTogVHlwZTxTPik6IFByb3ZpZGVyW107XG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZURieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlRGlyZWN0aXZlPFMgZXh0ZW5kcyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZTxhbnksIGFueT4sIEMgZXh0ZW5kcyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZURpcmVjdGl2ZTxhbnksIGFueSwgUz4gPSBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZURpcmVjdGl2ZTxhbnksIGFueSwgUz4+KHNvdXJjZVR5cGU6IFR5cGU8Qz4sIHN0b3JlVHlwZT86IFR5cGU8Uz4pOiBQcm92aWRlcltdO1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZURpcmVjdGl2ZTxTIGV4dGVuZHMgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uU3RvcmU8YW55LCBhbnk+LCBDIGV4dGVuZHMgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uU3RvcmVEaXJlY3RpdmU8YW55LCBhbnksIFM+ID0gRGJ4RmlyZWJhc2VDb2xsZWN0aW9uU3RvcmVEaXJlY3RpdmU8YW55LCBhbnksIFM+Pihzb3VyY2VUeXBlOiBUeXBlPEM+LCBzdG9yZVR5cGU/OiBUeXBlPFM+KTogUHJvdmlkZXJbXSB7XG4gIGNvbnN0IHByb3ZpZGVyczogUHJvdmlkZXJbXSA9IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZURpcmVjdGl2ZSxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IHNvdXJjZVR5cGUpXG4gICAgfVxuICBdO1xuXG4gIGlmIChzdG9yZVR5cGUpIHtcbiAgICBwcm92aWRlcnMucHVzaChzdG9yZVR5cGUpO1xuICB9XG5cbiAgcmV0dXJuIHByb3ZpZGVycztcbn1cbiJdfQ==
@@ -1,55 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { shareReplay, distinctUntilChanged, exhaustMap, first, map, switchMap, tap } from 'rxjs';
3
- import { cleanupDestroyable, filterMaybe } from '@dereekb/rxjs';
4
- import { LockSetComponentStore } from '@dereekb/dbx-core';
5
- import { dbxFirebaseCollectionLoaderInstance } from '../loader/collection.loader.instance';
6
- import * as i0 from "@angular/core";
7
- /**
8
- * Used for storing the state of a Person and related email threads.
9
- */
10
- export class AbstractDbxFirebaseCollectionStore extends LockSetComponentStore {
11
- constructor() {
12
- super(...arguments);
13
- // MARK: Effects
14
- this.setMaxPages = this.effect((input) => {
15
- return input.pipe(switchMap((maxPages) => this.loader$.pipe(tap((x) => (x.maxPages = maxPages)))));
16
- });
17
- this.setItemsPerPage = this.effect((input) => {
18
- return input.pipe(switchMap((itemsPerPage) => this.loader$.pipe(tap((x) => (x.itemsPerPage = itemsPerPage)))));
19
- });
20
- this.setConstraints = this.effect((input) => {
21
- return input.pipe(switchMap((constraints) => this.loader$.pipe(tap((x) => x.setConstraints(constraints)))));
22
- });
23
- this.next = this.effect((input) => {
24
- return input.pipe(exhaustMap(() => this.loader$.pipe(first(), tap((x) => x.next()))));
25
- });
26
- this.restart = this.effect((input) => {
27
- return input.pipe(exhaustMap(() => this.loader$.pipe(first(), tap((x) => x.restart()))));
28
- });
29
- // MARK: Accessors
30
- this.currentFirestoreCollection$ = this.state$.pipe(map((x) => x.firestoreCollection), distinctUntilChanged(), shareReplay(1));
31
- this.firestoreCollection$ = this.currentFirestoreCollection$.pipe(filterMaybe());
32
- this.loader$ = this.currentFirestoreCollection$.pipe(switchMap((collection) => this.state$.pipe(first(), map((x) => dbxFirebaseCollectionLoaderInstance({
33
- collection,
34
- maxPages: x.maxPages,
35
- itemsPerPage: x.itemsPerPage,
36
- constraints: x.constraints
37
- })))), cleanupDestroyable(), distinctUntilChanged(), shareReplay(1));
38
- this.constraints$ = this.loader$.pipe(switchMap((x) => x.constraints$));
39
- this.firestoreIteration$ = this.loader$.pipe(switchMap((x) => x.firestoreIteration$));
40
- this.queryChangeWatcher$ = this.loader$.pipe(switchMap((x) => x.queryChangeWatcher$));
41
- this.accumulator$ = this.loader$.pipe(switchMap((x) => x.accumulator$));
42
- this.pageLoadingState$ = this.loader$.pipe(switchMap((x) => x.pageLoadingState$));
43
- this.hasDocuments$ = this.loader$.pipe(switchMap((x) => x.hasDocuments$));
44
- this.allDocumentRefs$ = this.loader$.pipe(switchMap((x) => x.allDocumentRefs$));
45
- this.allDocuments$ = this.loader$.pipe(switchMap((x) => x.allDocuments$));
46
- this.allDocumentData$ = this.loader$.pipe(switchMap((x) => x.allDocumentData$));
47
- this.setFirestoreCollection = this.updater((state, firestoreCollection) => ({ ...state, firestoreCollection }));
48
- }
49
- }
50
- AbstractDbxFirebaseCollectionStore.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AbstractDbxFirebaseCollectionStore, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
51
- AbstractDbxFirebaseCollectionStore.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AbstractDbxFirebaseCollectionStore });
52
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AbstractDbxFirebaseCollectionStore, decorators: [{
53
- type: Injectable
54
- }] });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL21vZGVsL3N0b3JlL3N0b3JlLmNvbGxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsV0FBVyxFQUFFLG9CQUFvQixFQUFnQixVQUFVLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTNILE9BQU8sRUFBcUIsa0JBQWtCLEVBQXdCLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6RyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRCxPQUFPLEVBQXVDLG1DQUFtQyxFQUEyQyxNQUFNLHNDQUFzQyxDQUFDOztBQWlDeks7O0dBRUc7QUFFSCxNQUFNLE9BQU8sa0NBQW9NLFNBQVEscUJBQXdCO0lBRGpQOztRQUVFLGdCQUFnQjtRQUNQLGdCQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQWdDLEVBQUUsRUFBRTtZQUN0RSxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JHLENBQUMsQ0FBQyxDQUFDO1FBRU0sb0JBQWUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBZ0MsRUFBRSxFQUFFO1lBQzFFLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENB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RUFBRSxtQkFBbUIsRUFBRSxDQUFDLENBQUMsQ0FBQztLQUN2Szs7Z0lBNUVZLGtDQUFrQztvSUFBbEMsa0NBQWtDOzRGQUFsQyxrQ0FBa0M7a0JBRDlDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBzaGFyZVJlcGxheSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIFN1YnNjcmlwdGlvbiwgZXhoYXVzdE1hcCwgZmlyc3QsIG1hcCwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZpcmViYXNlUXVlcnlJdGVtQWNjdW11bGF0b3IsIEZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlLCBGaXJlc3RvcmVEb2N1bWVudCwgRmlyZXN0b3JlSXRlbVBhZ2VJdGVyYXRpb25JbnN0YW5jZSwgRmlyZXN0b3JlUXVlcnlDb25zdHJhaW50LCBJdGVyYXRpb25RdWVyeURvY0NoYW5nZVdhdGNoZXIsIERvY3VtZW50RGF0YVdpdGhJZEFuZEtleSwgRG9jdW1lbnRSZWZlcmVuY2UgfSBmcm9tICdAZGVyZWVrYi9maXJlYmFzZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlT3JWYWx1ZSwgY2xlYW51cERlc3Ryb3lhYmxlLCBQYWdlTGlzdExvYWRpbmdTdGF0ZSwgZmlsdGVyTWF5YmUgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IEFycmF5T3JWYWx1ZSwgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IExvY2tTZXRDb21wb25lbnRTdG9yZSB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcbmltcG9ydCB7IERieEZpcmViYXNlQ29sbGVjdGlvbkxvYWRlckluc3RhbmNlLCBkYnhGaXJlYmFzZUNvbGxlY3Rpb25Mb2FkZXJJbnN0YW5jZSwgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uTG9hZGVySW5zdGFuY2VEYXRhIH0gZnJvbSAnLi4vbG9hZGVyL2NvbGxlY3Rpb24ubG9hZGVyLmluc3RhbmNlJztcbmltcG9ydCB7IERieEZpcmViYXNlQ29sbGVjdGlvbkxvYWRlckFjY2Vzc29yIH0gZnJvbSAnLi4vbG9hZGVyL2NvbGxlY3Rpb24ubG9hZGVyJztcblxuZXhwb3J0IGludGVyZmFjZSBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZTxULCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPj4gZXh0ZW5kcyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25Mb2FkZXJBY2Nlc3NvcjxUPiwgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uTG9hZGVySW5zdGFuY2VEYXRhPFQsIEQ+IHtcbiAgcmVhZG9ubHkgZmlyZXN0b3JlQ29sbGVjdGlvbiQ6IE9ic2VydmFibGU8TWF5YmU8RmlyZXN0b3JlQ29sbGVjdGlvbkxpa2U8VCwgRD4+PjtcbiAgcmVhZG9ubHkgbG9hZGVyJDogT2JzZXJ2YWJsZTxEYnhGaXJlYmFzZUNvbGxlY3Rpb25Mb2FkZXJJbnN0YW5jZTxULCBEPj47XG5cbiAgcmVhZG9ubHkgZmlyZXN0b3JlSXRlcmF0aW9uJDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVJdGVtUGFnZUl0ZXJhdGlvbkluc3RhbmNlPFQ+PjtcbiAgcmVhZG9ubHkgcXVlcnlDaGFuZ2VXYXRjaGVyJDogT2JzZXJ2YWJsZTxJdGVyYXRpb25RdWVyeURvY0NoYW5nZVdhdGNoZXI8VD4+O1xuICByZWFkb25seSBhY2N1bXVsYXRvciQ6IE9ic2VydmFibGU8RmlyZWJhc2VRdWVyeUl0ZW1BY2N1bXVsYXRvcjxUPj47XG4gIHJlYWRvbmx5IHBhZ2VMb2FkaW5nU3RhdGUkOiBPYnNlcnZhYmxlPFBhZ2VMaXN0TG9hZGluZ1N0YXRlPERvY3VtZW50RGF0YVdpdGhJZEFuZEtleTxUPj4+O1xuXG4gIHJlYWRvbmx5IGhhc0RvY3VtZW50cyQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIHJlYWRvbmx5IGFsbERvY3VtZW50UmVmcyQ6IE9ic2VydmFibGU8RG9jdW1lbnRSZWZlcmVuY2U8VD5bXT47XG4gIHJlYWRvbmx5IGFsbERvY3VtZW50cyQ6IE9ic2VydmFibGU8RFtdPjtcbiAgcmVhZG9ubHkgYWxsRG9jdW1lbnREYXRhJDogT2JzZXJ2YWJsZTxEb2N1bWVudERhdGFXaXRoSWRBbmRLZXk8VD5bXT47XG5cbiAgc2V0TWF4UGFnZXMob2JzZXJ2YWJsZU9yVmFsdWU6IE9ic2VydmFibGVPclZhbHVlPE1heWJlPG51bWJlcj4+KTogU3Vic2NyaXB0aW9uO1xuICBzZXRJdGVtc1BlclBhZ2Uob2JzZXJ2YWJsZU9yVmFsdWU6IE9ic2VydmFibGVPclZhbHVlPE1heWJlPG51bWJlcj4+KTogU3Vic2NyaXB0aW9uO1xuICBzZXRDb25zdHJhaW50cyhvYnNlcnZhYmxlT3JWYWx1ZTogT2JzZXJ2YWJsZU9yVmFsdWU8TWF5YmU8QXJyYXlPclZhbHVlPEZpcmVzdG9yZVF1ZXJ5Q29uc3RyYWludD4+Pik6IFN1YnNjcmlwdGlvbjtcbiAgbmV4dChvYnNlcnZhYmxlT3JWYWx1ZTogT2JzZXJ2YWJsZU9yVmFsdWU8dm9pZD4pOiB2b2lkO1xuICByZXN0YXJ0KG9ic2VydmFibGVPclZhbHVlOiBPYnNlcnZhYmxlT3JWYWx1ZTx2b2lkPik6IHZvaWQ7XG5cbiAgcmVhZG9ubHkgc2V0RmlyZXN0b3JlQ29sbGVjdGlvbjogKCgpID0+IHZvaWQpIHwgKChvYnNlcnZhYmxlT3JWYWx1ZTogT2JzZXJ2YWJsZU9yVmFsdWU8TWF5YmU8RmlyZXN0b3JlQ29sbGVjdGlvbkxpa2U8VCwgRD4+PikgPT4gU3Vic2NyaXB0aW9uKTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZUNvbnRleHRTdGF0ZTxULCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPj4ge1xuICByZWFkb25seSBmaXJlc3RvcmVDb2xsZWN0aW9uPzogTWF5YmU8RmlyZXN0b3JlQ29sbGVjdGlvbkxpa2U8VCwgRD4+O1xuICByZWFkb25seSBtYXhQYWdlcz86IE1heWJlPG51bWJlcj47XG4gIHJlYWRvbmx5IGl0ZW1zUGVyUGFnZT86IE1heWJlPG51bWJlcj47XG4gIHJlYWRvbmx5IGNvbnN0cmFpbnRzPzogTWF5YmU8QXJyYXlPclZhbHVlPEZpcmVzdG9yZVF1ZXJ5Q29uc3RyYWludD4+O1xufVxuXG4vKipcbiAqIFVzZWQgZm9yIHN0b3JpbmcgdGhlIHN0YXRlIG9mIGEgUGVyc29uIGFuZCByZWxhdGVkIGVtYWlsIHRocmVhZHMuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBYnN0cmFjdERieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlPFQsIEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxUPiA9IEZpcmVzdG9yZURvY3VtZW50PFQ+LCBDIGV4dGVuZHMgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uU3RvcmVDb250ZXh0U3RhdGU8VCwgRD4gPSBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZUNvbnRleHRTdGF0ZTxULCBEPj4gZXh0ZW5kcyBMb2NrU2V0Q29tcG9uZW50U3RvcmU8Qz4gaW1wbGVtZW50cyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZTxULCBEPiB7XG4gIC8vIE1BUks6IEVmZmVjdHNcbiAgcmVhZG9ubHkgc2V0TWF4UGFnZXMgPSB0aGlzLmVmZmVjdCgoaW5wdXQ6IE9ic2VydmFibGU8TWF5YmU8bnVtYmVyPj4pID0+IHtcbiAgICByZXR1cm4gaW5wdXQucGlwZShzd2l0Y2hNYXAoKG1heFBhZ2VzKSA9PiB0aGlzLmxvYWRlciQucGlwZSh0YXAoKHgpID0+ICh4Lm1heFBhZ2VzID0gbWF4UGFnZXMpKSkpKTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgc2V0SXRlbXNQZXJQYWdlID0gdGhpcy5lZmZlY3QoKGlucHV0OiBPYnNlcnZhYmxlPE1heWJlPG51bWJlcj4+KSA9PiB7XG4gICAgcmV0dXJuIGlucHV0LnBpcGUoc3dpdGNoTWFwKChpdGVtc1BlclBhZ2UpID0+IHRoaXMubG9hZGVyJC5waXBlKHRhcCgoeCkgPT4gKHguaXRlbXNQZXJQYWdlID0gaXRlbXNQZXJQYWdlKSkpKSk7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHNldENvbnN0cmFpbnRzID0gdGhpcy5lZmZlY3QoKGlucHV0OiBPYnNlcnZhYmxlPE1heWJlPEFycmF5T3JWYWx1ZTxGaXJlc3RvcmVRdWVyeUNvbnN0cmFpbnQ+Pj4pID0+IHtcbiAgICByZXR1cm4gaW5wdXQucGlwZShzd2l0Y2hNYXAoKGNvbnN0cmFpbnRzKSA9PiB0aGlzLmxvYWRlciQucGlwZSh0YXAoKHgpID0+IHguc2V0Q29uc3RyYWludHMoY29uc3RyYWludHMpKSkpKTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgbmV4dCA9IHRoaXMuZWZmZWN0KChpbnB1dDogT2JzZXJ2YWJsZTx2b2lkPikgPT4ge1xuICAgIHJldHVybiBpbnB1dC5waXBlKFxuICAgICAgZXhoYXVzdE1hcCgoKSA9PlxuICAgICAgICB0aGlzLmxvYWRlciQucGlwZShcbiAgICAgICAgICBmaXJzdCgpLFxuICAgICAgICAgIHRhcCgoeCkgPT4geC5uZXh0KCkpXG4gICAgICAgIClcbiAgICAgIClcbiAgICApO1xuICB9KTtcblxuICByZWFkb25seSByZXN0YXJ0ID0gdGhpcy5lZmZlY3QoKGlucHV0OiBPYnNlcnZhYmxlPHZvaWQ+KSA9PiB7XG4gICAgcmV0dXJuIGlucHV0LnBpcGUoXG4gICAgICBleGhhdXN0TWFwKCgpID0+XG4gICAgICAgIHRoaXMubG9hZGVyJC5waXBlKFxuICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgdGFwKCh4KSA9PiB4LnJlc3RhcnQoKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgICk7XG4gIH0pO1xuXG4gIC8vIE1BUks6IEFjY2Vzc29yc1xuICByZWFkb25seSBjdXJyZW50RmlyZXN0b3JlQ29sbGVjdGlvbiQ6IE9ic2VydmFibGU8TWF5YmU8RmlyZXN0b3JlQ29sbGVjdGlvbkxpa2U8VCwgRD4+PiA9IHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LmZpcmVzdG9yZUNvbGxlY3Rpb24pLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBmaXJlc3RvcmVDb2xsZWN0aW9uJDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVDb2xsZWN0aW9uTGlrZTxULCBEPj4gPSB0aGlzLmN1cnJlbnRGaXJlc3RvcmVDb2xsZWN0aW9uJC5waXBlKGZpbHRlck1heWJlKCkpO1xuXG4gIHJlYWRvbmx5IGxvYWRlciQ6IE9ic2VydmFibGU8RGJ4RmlyZWJhc2VDb2xsZWN0aW9uTG9hZGVySW5zdGFuY2U8VCwgRD4+ID0gdGhpcy5jdXJyZW50RmlyZXN0b3JlQ29sbGVjdGlvbiQucGlwZShcbiAgICBzd2l0Y2hNYXAoKGNvbGxlY3Rpb24pID0+XG4gICAgICB0aGlzLnN0YXRlJC5waXBlKFxuICAgICAgICBmaXJzdCgpLFxuICAgICAgICBtYXAoKHgpID0+XG4gICAgICAgICAgZGJ4RmlyZWJhc2VDb2xsZWN0aW9uTG9hZGVySW5zdGFuY2Uoe1xuICAgICAgICAgICAgY29sbGVjdGlvbixcbiAgICAgICAgICAgIG1heFBhZ2VzOiB4Lm1heFBhZ2VzLFxuICAgICAgICAgICAgaXRlbXNQZXJQYWdlOiB4Lml0ZW1zUGVyUGFnZSxcbiAgICAgICAgICAgIGNvbnN0cmFpbnRzOiB4LmNvbnN0cmFpbnRzXG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgICksXG4gICAgY2xlYW51cERlc3Ryb3lhYmxlKCksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGNvbnN0cmFpbnRzJDogT2JzZXJ2YWJsZTxNYXliZTxBcnJheU9yVmFsdWU8RmlyZXN0b3JlUXVlcnlDb25zdHJhaW50Pj4+ID0gdGhpcy5sb2FkZXIkLnBpcGUoc3dpdGNoTWFwKCh4KSA9PiB4LmNvbnN0cmFpbnRzJCkpO1xuICByZWFkb25seSBmaXJlc3RvcmVJdGVyYXRpb24kOiBPYnNlcnZhYmxlPEZpcmVzdG9yZUl0ZW1QYWdlSXRlcmF0aW9uSW5zdGFuY2U8VD4+ID0gdGhpcy5sb2FkZXIkLnBpcGUoc3dpdGNoTWFwKCh4KSA9PiB4LmZpcmVzdG9yZUl0ZXJhdGlvbiQpKTtcbiAgcmVhZG9ubHkgcXVlcnlDaGFuZ2VXYXRjaGVyJDogT2JzZXJ2YWJsZTxJdGVyYXRpb25RdWVyeURvY0NoYW5nZVdhdGNoZXI8VD4+ID0gdGhpcy5sb2FkZXIkLnBpcGUoc3dpdGNoTWFwKCh4KSA9PiB4LnF1ZXJ5Q2hhbmdlV2F0Y2hlciQpKTtcbiAgcmVhZG9ubHkgYWNjdW11bGF0b3IkOiBPYnNlcnZhYmxlPEZpcmViYXNlUXVlcnlJdGVtQWNjdW11bGF0b3I8VD4+ID0gdGhpcy5sb2FkZXIkLnBpcGUoc3dpdGNoTWFwKCh4KSA9PiB4LmFjY3VtdWxhdG9yJCkpO1xuICByZWFkb25seSBwYWdlTG9hZGluZ1N0YXRlJDogT2JzZXJ2YWJsZTxQYWdlTGlzdExvYWRpbmdTdGF0ZTxEb2N1bWVudERhdGFXaXRoSWRBbmRLZXk8VD4+PiA9IHRoaXMubG9hZGVyJC5waXBlKHN3aXRjaE1hcCgoeCkgPT4geC5wYWdlTG9hZGluZ1N0YXRlJCkpO1xuXG4gIHJlYWRvbmx5IGhhc0RvY3VtZW50cyQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLmxvYWRlciQucGlwZShzd2l0Y2hNYXAoKHgpID0+IHguaGFzRG9jdW1lbnRzJCkpO1xuICByZWFkb25seSBhbGxEb2N1bWVudFJlZnMkOiBPYnNlcnZhYmxlPERvY3VtZW50UmVmZXJlbmNlPFQ+W10+ID0gdGhpcy5sb2FkZXIkLnBpcGUoc3dpdGNoTWFwKCh4KSA9PiB4LmFsbERvY3VtZW50UmVmcyQpKTtcbiAgcmVhZG9ubHkgYWxsRG9jdW1lbnRzJDogT2JzZXJ2YWJsZTxEW10+ID0gdGhpcy5sb2FkZXIkLnBpcGUoc3dpdGNoTWFwKCh4KSA9PiB4LmFsbERvY3VtZW50cyQpKTtcbiAgcmVhZG9ubHkgYWxsRG9jdW1lbnREYXRhJDogT2JzZXJ2YWJsZTxEb2N1bWVudERhdGFXaXRoSWRBbmRLZXk8VD5bXT4gPSB0aGlzLmxvYWRlciQucGlwZShzd2l0Y2hNYXAoKHgpID0+IHguYWxsRG9jdW1lbnREYXRhJCkpO1xuXG4gIHJlYWRvbmx5IHNldEZpcmVzdG9yZUNvbGxlY3Rpb24gPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBmaXJlc3RvcmVDb2xsZWN0aW9uOiBGaXJlc3RvcmVDb2xsZWN0aW9uTGlrZTxULCBEPiB8IG51bGwgfCB1bmRlZmluZWQpID0+ICh7IC4uLnN0YXRlLCBmaXJlc3RvcmVDb2xsZWN0aW9uIH0pKTtcbn1cbiJdfQ==
@@ -1,33 +0,0 @@
1
- import { Directive, Host } from '@angular/core';
2
- import { AbstractSubscriptionDirective } from '@dereekb/dbx-core';
3
- import { DbxFirebaseAuthService } from '../../auth/service/firebase.auth.service';
4
- import { DbxFirebaseDocumentStoreDirective } from './store.document.directive';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "../../auth/service/firebase.auth.service";
7
- import * as i2 from "./store.document.directive";
8
- /**
9
- * Utility directive for a host DbxFirebaseDocumentStoreDirective that sets the document's ID to match the ID of the current user.
10
- *
11
- * This is useful for cases where each document is keyed by the user (I.E. implements UserRelatedById).
12
- */
13
- export class DbxFirebaseDocumentAuthIdDirective extends AbstractSubscriptionDirective {
14
- constructor(dbxFirebaseAuthService, dbxFirebaseDocumentStoreDirective) {
15
- super();
16
- this.dbxFirebaseAuthService = dbxFirebaseAuthService;
17
- this.dbxFirebaseDocumentStoreDirective = dbxFirebaseDocumentStoreDirective;
18
- }
19
- ngOnInit() {
20
- this.sub = this.dbxFirebaseDocumentStoreDirective.store.setId(this.dbxFirebaseAuthService.userIdentifier$);
21
- }
22
- }
23
- DbxFirebaseDocumentAuthIdDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseDocumentAuthIdDirective, deps: [{ token: i1.DbxFirebaseAuthService }, { token: i2.DbxFirebaseDocumentStoreDirective, host: true }], target: i0.ɵɵFactoryTarget.Directive });
24
- DbxFirebaseDocumentAuthIdDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: DbxFirebaseDocumentAuthIdDirective, selector: "[dbxFirebaseDocumentAuthId]", usesInheritance: true, ngImport: i0 });
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseDocumentAuthIdDirective, decorators: [{
26
- type: Directive,
27
- args: [{
28
- selector: '[dbxFirebaseDocumentAuthId]'
29
- }]
30
- }], ctorParameters: function () { return [{ type: i1.DbxFirebaseAuthService }, { type: i2.DbxFirebaseDocumentStoreDirective, decorators: [{
31
- type: Host
32
- }] }]; } });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuZG9jdW1lbnQuYXV0aC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9zdG9yZS9zdG9yZS5kb2N1bWVudC5hdXRoLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUV4RCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNsRixPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7OztBQUUvRTs7OztHQUlHO0FBSUgsTUFBTSxPQUFPLGtDQUE2RixTQUFRLDZCQUE2QjtJQUM3SSxZQUFxQixzQkFBOEMsRUFBbUIsaUNBQTBFO1FBQzlKLEtBQUssRUFBRSxDQUFDO1FBRFcsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUFtQixzQ0FBaUMsR0FBakMsaUNBQWlDLENBQXlDO0lBRWhLLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsaUNBQWlDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDN0csQ0FBQzs7Z0lBUFUsa0NBQWtDO29IQUFsQyxrQ0FBa0M7NEZBQWxDLGtDQUFrQztrQkFIOUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsNkJBQTZCO2lCQUN4Qzs7MEJBRXVFLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmlyZXN0b3JlRG9jdW1lbnQgfSBmcm9tICdAZGVyZWVrYi9maXJlYmFzZSc7XG5pbXBvcnQgeyBBYnN0cmFjdFN1YnNjcmlwdGlvbkRpcmVjdGl2ZSB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcbmltcG9ydCB7IERieEZpcmViYXNlQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi9hdXRoL3NlcnZpY2UvZmlyZWJhc2UuYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IERieEZpcmViYXNlRG9jdW1lbnRTdG9yZURpcmVjdGl2ZSB9IGZyb20gJy4vc3RvcmUuZG9jdW1lbnQuZGlyZWN0aXZlJztcblxuLyoqXG4gKiBVdGlsaXR5IGRpcmVjdGl2ZSBmb3IgYSBob3N0IERieEZpcmViYXNlRG9jdW1lbnRTdG9yZURpcmVjdGl2ZSB0aGF0IHNldHMgdGhlIGRvY3VtZW50J3MgSUQgdG8gbWF0Y2ggdGhlIElEIG9mIHRoZSBjdXJyZW50IHVzZXIuXG4gKlxuICogVGhpcyBpcyB1c2VmdWwgZm9yIGNhc2VzIHdoZXJlIGVhY2ggZG9jdW1lbnQgaXMga2V5ZWQgYnkgdGhlIHVzZXIgKEkuRS4gaW1wbGVtZW50cyBVc2VyUmVsYXRlZEJ5SWQpLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZGJ4RmlyZWJhc2VEb2N1bWVudEF1dGhJZF0nXG59KVxuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlRG9jdW1lbnRBdXRoSWREaXJlY3RpdmU8VCwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4+IGV4dGVuZHMgQWJzdHJhY3RTdWJzY3JpcHRpb25EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICBjb25zdHJ1Y3RvcihyZWFkb25seSBkYnhGaXJlYmFzZUF1dGhTZXJ2aWNlOiBEYnhGaXJlYmFzZUF1dGhTZXJ2aWNlLCBASG9zdCgpIHJlYWRvbmx5IGRieEZpcmViYXNlRG9jdW1lbnRTdG9yZURpcmVjdGl2ZTogRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRGlyZWN0aXZlPFQsIEQ+KSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3ViID0gdGhpcy5kYnhGaXJlYmFzZURvY3VtZW50U3RvcmVEaXJlY3RpdmUuc3RvcmUuc2V0SWQodGhpcy5kYnhGaXJlYmFzZUF1dGhTZXJ2aWNlLnVzZXJJZGVudGlmaWVyJCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,80 +0,0 @@
1
- import { lazyFrom, loadingStateFromObs } from '@dereekb/rxjs';
2
- import { firstValue } from '@dereekb/util';
3
- import { shareReplay, exhaustMap, first, from } from 'rxjs';
4
- /**
5
- * Creates a function for a store that DbxFirebaseDocumentStore captures the ModelFirebaseCreateFunction result and sets the key of the created value.
6
- *
7
- * @param store
8
- * @param fn
9
- * @returns
10
- */
11
- export function firebaseDocumentStoreCreateFunction(store, fn) {
12
- return (params) => loadingStateFromObs(lazyFrom(() => fn(params).then((result) => {
13
- const modelKeys = result.modelKeys;
14
- const firstKey = firstValue(modelKeys);
15
- if (firstKey) {
16
- store.setKey(firstKey);
17
- }
18
- return result;
19
- })));
20
- }
21
- /**
22
- * Creates a DbxfirebaseDocumentStoreCrudFunction from the input ModelFirebaseCrudFunction.
23
- *
24
- * @param fn
25
- * @returns
26
- */
27
- export function firebaseDocumentStoreCrudFunction(fn) {
28
- return (params) => loadingStateFromObs(from(fn(params)).pipe(shareReplay(1)));
29
- }
30
- // MARK: Read
31
- /**
32
- * Creates a DbxfirebaseDocumentStoreCrudFunction for read.
33
- *
34
- * The store's current key is always injected into the params of the request.
35
- *
36
- * For functions that do not require the store's current key, use firebaseDocumentStoreCrudFunction() instead.
37
- *
38
- * @param store
39
- * @param fn
40
- * @returns
41
- */
42
- export function firebaseDocumentStoreReadFunction(store, fn) {
43
- return firebaseDocumentStoreUpdateFunction(store, fn);
44
- }
45
- // MARK: Update
46
- /**
47
- * Creates a DbxFirebaseDocumentStoreFunction for update.
48
- *
49
- * The store's current key is always injected into the params of the request.
50
- *
51
- * @param store
52
- * @param fn
53
- * @returns
54
- */
55
- export function firebaseDocumentStoreUpdateFunction(store, fn) {
56
- return (params) => loadingStateFromObs(store.key$.pipe(first(), exhaustMap((key) => fn({
57
- ...params,
58
- key // inject key into the parameters.
59
- })), shareReplay(1)));
60
- }
61
- // MARK: Delete
62
- /**
63
- * Creates a DbxFirebaseDocumentStoreFunction for delete.
64
- *
65
- * The store's current key is always injected into the params of the request.
66
- *
67
- * @param store
68
- * @param fn
69
- * @returns
70
- */
71
- export function firebaseDocumentStoreDeleteFunction(store, fn) {
72
- return (params) => loadingStateFromObs(store.key$.pipe(first(), exhaustMap((key) => fn({
73
- ...params,
74
- key // inject key into the parameters.
75
- }).then((result) => {
76
- store.clearRefs();
77
- return result;
78
- })), shareReplay(1)));
79
- }
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuZG9jdW1lbnQuY3J1ZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL21vZGVsL3N0b3JlL3N0b3JlLmRvY3VtZW50LmNydWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFFBQVEsRUFBZ0IsbUJBQW1CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUUsT0FBTyxFQUFFLFVBQVUsRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBYyxNQUFNLE1BQU0sQ0FBQztBQU14RTs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsbUNBQW1DLENBQWlFLEtBQXlDLEVBQUUsRUFBcUM7SUFDbE0sT0FBTyxDQUFDLE1BQVMsRUFBRSxFQUFFLENBQ25CLG1CQUFtQixDQUNqQixRQUFRLENBQUMsR0FBRyxFQUFFLENBQ1osRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1FBQ3pCLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUM7UUFDbkMsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXZDLElBQUksUUFBUSxFQUFFO1lBQ1osS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN4QjtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUMsQ0FBQyxDQUNILENBQ0YsQ0FBQztBQUNOLENBQUM7QUFJRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxpQ0FBaUMsQ0FBYyxFQUFtQztJQUNoRyxPQUFPLENBQUMsTUFBUyxFQUFFLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbkYsQ0FBQztBQWNELGFBQWE7QUFDYjs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxVQUFVLGlDQUFpQyxDQUFzRCxLQUF5QyxFQUFFLEVBQW1DO0lBQ25MLE9BQU8sbUNBQW1DLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3hELENBQUM7QUFFRCxlQUFlO0FBQ2Y7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsbUNBQW1DLENBQTZELEtBQXlDLEVBQUUsRUFBcUM7SUFDOUwsT0FBTyxDQUFDLE1BQXNELEVBQUUsRUFBRSxDQUNoRSxtQkFBbUIsQ0FDakIsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ2IsS0FBSyxFQUFFLEVBQ1AsVUFBVSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FDakIsRUFBRSxDQUFDO1FBQ0QsR0FBRyxNQUFNO1FBQ1QsR0FBRyxDQUFDLGtDQUFrQztLQUNsQyxDQUFDLENBQ1IsRUFDRCxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FDRixDQUFDO0FBQ04sQ0FBQztBQUVELGVBQWU7QUFDZjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSxtQ0FBbUMsQ0FBNkQsS0FBeUMsRUFBRSxFQUFxQztJQUM5TCxPQUFPLENBQUMsTUFBc0QsRUFBRSxFQUFFLENBQ2hFLG1CQUFtQixDQUNqQixLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDYixLQUFLLEVBQUUsRUFDUCxVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUNqQixFQUFFLENBQUM7UUFDRCxHQUFHLE1BQU07UUFDVCxHQUFHLENBQUMsa0NBQWtDO0tBQ2xDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtRQUN0QixLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbEIsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQyxDQUFDLENBQ0gsRUFDRCxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FDRixDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZGVsRmlyZWJhc2VDcmVhdGVGdW5jdGlvbiwgTW9kZWxGaXJlYmFzZURlbGV0ZUZ1bmN0aW9uLCBNb2RlbEZpcmViYXNlVXBkYXRlRnVuY3Rpb24sIE9uQ2FsbENyZWF0ZU1vZGVsUmVzdWx0LCBUYXJnZXRNb2RlbFBhcmFtcywgSW5mZXJyZWRUYXJnZXRNb2RlbFBhcmFtcywgTW9kZWxGaXJlYmFzZUNydWRGdW5jdGlvbiwgTW9kZWxGaXJlYmFzZVJlYWRGdW5jdGlvbiB9IGZyb20gJ0BkZXJlZWtiL2ZpcmViYXNlJztcbmltcG9ydCB7IGxhenlGcm9tLCBMb2FkaW5nU3RhdGUsIGxvYWRpbmdTdGF0ZUZyb21PYnMgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IGZpcnN0VmFsdWUsIFBhcnRpYWxPbktleXMgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IHNoYXJlUmVwbGF5LCBleGhhdXN0TWFwLCBmaXJzdCwgZnJvbSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlIH0gZnJvbSAnLi9zdG9yZS5kb2N1bWVudCc7XG5cbi8vIE1BUks6IENyZWF0ZVxuZXhwb3J0IHR5cGUgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlQ3JlYXRlRnVuY3Rpb248SSwgTyBleHRlbmRzIE9uQ2FsbENyZWF0ZU1vZGVsUmVzdWx0ID0gT25DYWxsQ3JlYXRlTW9kZWxSZXN1bHQ+ID0gKHBhcmFtczogSSkgPT4gT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8Tz4+O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBmdW5jdGlvbiBmb3IgYSBzdG9yZSB0aGF0IERieEZpcmViYXNlRG9jdW1lbnRTdG9yZSBjYXB0dXJlcyB0aGUgTW9kZWxGaXJlYmFzZUNyZWF0ZUZ1bmN0aW9uIHJlc3VsdCBhbmQgc2V0cyB0aGUga2V5IG9mIHRoZSBjcmVhdGVkIHZhbHVlLlxuICpcbiAqIEBwYXJhbSBzdG9yZVxuICogQHBhcmFtIGZuXG4gKiBAcmV0dXJuc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZmlyZWJhc2VEb2N1bWVudFN0b3JlQ3JlYXRlRnVuY3Rpb248SSwgTyBleHRlbmRzIE9uQ2FsbENyZWF0ZU1vZGVsUmVzdWx0ID0gT25DYWxsQ3JlYXRlTW9kZWxSZXN1bHQ+KHN0b3JlOiBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmU8YW55LCBhbnk+LCBmbjogTW9kZWxGaXJlYmFzZUNyZWF0ZUZ1bmN0aW9uPEksIE8+KTogRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlQ3JlYXRlRnVuY3Rpb248SSwgTz4ge1xuICByZXR1cm4gKHBhcmFtczogSSkgPT5cbiAgICBsb2FkaW5nU3RhdGVGcm9tT2JzKFxuICAgICAgbGF6eUZyb20oKCkgPT5cbiAgICAgICAgZm4ocGFyYW1zKS50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgICAgICBjb25zdCBtb2RlbEtleXMgPSByZXN1bHQubW9kZWxLZXlzO1xuICAgICAgICAgIGNvbnN0IGZpcnN0S2V5ID0gZmlyc3RWYWx1ZShtb2RlbEtleXMpO1xuXG4gICAgICAgICAgaWYgKGZpcnN0S2V5KSB7XG4gICAgICAgICAgICBzdG9yZS5zZXRLZXkoZmlyc3RLZXkpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgKTtcbn1cblxuZXhwb3J0IHR5cGUgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlQ3J1ZEZ1bmN0aW9uPEksIE8gPSB2b2lkPiA9IChpbnB1dDogSSkgPT4gT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8Tz4+O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBEYnhmaXJlYmFzZURvY3VtZW50U3RvcmVDcnVkRnVuY3Rpb24gZnJvbSB0aGUgaW5wdXQgTW9kZWxGaXJlYmFzZUNydWRGdW5jdGlvbi5cbiAqXG4gKiBAcGFyYW0gZm5cbiAqIEByZXR1cm5zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaXJlYmFzZURvY3VtZW50U3RvcmVDcnVkRnVuY3Rpb248SSwgTyA9IHZvaWQ+KGZuOiBNb2RlbEZpcmViYXNlQ3J1ZEZ1bmN0aW9uPEksIE8+KTogRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlQ3J1ZEZ1bmN0aW9uPEksIE8+IHtcbiAgcmV0dXJuIChwYXJhbXM6IEkpID0+IGxvYWRpbmdTdGF0ZUZyb21PYnMoZnJvbShmbihwYXJhbXMpKS5waXBlKHNoYXJlUmVwbGF5KDEpKSk7XG59XG5cbi8vIE1BUks6IFRhcmdldGVkIEZ1bmN0aW9uc1xuLyoqXG4gKiBBIHBhcmFtZXRlciB0aGF0IHJlZmVycyB0byBhIHNwZWNpZmljIGtleS5cbiAqL1xuZXhwb3J0IHR5cGUgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRnVuY3Rpb25QYXJhbXMgPSBUYXJnZXRNb2RlbFBhcmFtcyB8IEluZmVycmVkVGFyZ2V0TW9kZWxQYXJhbXM7XG5cbi8qKlxuICogVXNlZCBmb3IgdGhlIGlucHV0IHRvIHJlbGF0ZWQgZnVuY3Rpb25zXG4gKi9cbmV4cG9ydCB0eXBlIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZUZ1bmN0aW9uUGFyYW1zSW5wdXQ8SSBleHRlbmRzIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZUZ1bmN0aW9uUGFyYW1zPiA9IFBhcnRpYWxPbktleXM8SSwgJ2tleSc+O1xuZXhwb3J0IHR5cGUgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRnVuY3Rpb248SSBleHRlbmRzIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZUZ1bmN0aW9uUGFyYW1zLCBPID0gdm9pZD4gPSBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVDcnVkRnVuY3Rpb248RGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRnVuY3Rpb25QYXJhbXNJbnB1dDxJPiwgTz47XG5cbi8vIE1BUks6IFJlYWRcbi8qKlxuICogQ3JlYXRlcyBhIERieGZpcmViYXNlRG9jdW1lbnRTdG9yZUNydWRGdW5jdGlvbiBmb3IgcmVhZC5cbiAqXG4gKiBUaGUgc3RvcmUncyBjdXJyZW50IGtleSBpcyBhbHdheXMgaW5qZWN0ZWQgaW50byB0aGUgcGFyYW1zIG9mIHRoZSByZXF1ZXN0LlxuICpcbiAqIEZvciBmdW5jdGlvbnMgdGhhdCBkbyBub3QgcmVxdWlyZSB0aGUgc3RvcmUncyBjdXJyZW50IGtleSwgdXNlIGZpcmViYXNlRG9jdW1lbnRTdG9yZUNydWRGdW5jdGlvbigpIGluc3RlYWQuXG4gKlxuICogQHBhcmFtIHN0b3JlXG4gKiBAcGFyYW0gZm5cbiAqIEByZXR1cm5zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaXJlYmFzZURvY3VtZW50U3RvcmVSZWFkRnVuY3Rpb248SSBleHRlbmRzIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZUZ1bmN0aW9uUGFyYW1zLCBPPihzdG9yZTogRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlPGFueSwgYW55PiwgZm46IE1vZGVsRmlyZWJhc2VSZWFkRnVuY3Rpb248SSwgTz4pOiBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVGdW5jdGlvbjxJLCBPPiB7XG4gIHJldHVybiBmaXJlYmFzZURvY3VtZW50U3RvcmVVcGRhdGVGdW5jdGlvbihzdG9yZSwgZm4pO1xufVxuXG4vLyBNQVJLOiBVcGRhdGVcbi8qKlxuICogQ3JlYXRlcyBhIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZUZ1bmN0aW9uIGZvciB1cGRhdGUuXG4gKlxuICogVGhlIHN0b3JlJ3MgY3VycmVudCBrZXkgaXMgYWx3YXlzIGluamVjdGVkIGludG8gdGhlIHBhcmFtcyBvZiB0aGUgcmVxdWVzdC5cbiAqXG4gKiBAcGFyYW0gc3RvcmVcbiAqIEBwYXJhbSBmblxuICogQHJldHVybnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpcmViYXNlRG9jdW1lbnRTdG9yZVVwZGF0ZUZ1bmN0aW9uPEkgZXh0ZW5kcyBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVGdW5jdGlvblBhcmFtcywgTyA9IHZvaWQ+KHN0b3JlOiBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmU8YW55LCBhbnk+LCBmbjogTW9kZWxGaXJlYmFzZVVwZGF0ZUZ1bmN0aW9uPEksIE8+KTogRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRnVuY3Rpb248SSwgTz4ge1xuICByZXR1cm4gKHBhcmFtczogRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRnVuY3Rpb25QYXJhbXNJbnB1dDxJPikgPT5cbiAgICBsb2FkaW5nU3RhdGVGcm9tT2JzKFxuICAgICAgc3RvcmUua2V5JC5waXBlKFxuICAgICAgICBmaXJzdCgpLFxuICAgICAgICBleGhhdXN0TWFwKChrZXkpID0+XG4gICAgICAgICAgZm4oe1xuICAgICAgICAgICAgLi4ucGFyYW1zLFxuICAgICAgICAgICAga2V5IC8vIGluamVjdCBrZXkgaW50byB0aGUgcGFyYW1ldGVycy5cbiAgICAgICAgICB9IGFzIEkpXG4gICAgICAgICksXG4gICAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgICApXG4gICAgKTtcbn1cblxuLy8gTUFSSzogRGVsZXRlXG4vKipcbiAqIENyZWF0ZXMgYSBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVGdW5jdGlvbiBmb3IgZGVsZXRlLlxuICpcbiAqIFRoZSBzdG9yZSdzIGN1cnJlbnQga2V5IGlzIGFsd2F5cyBpbmplY3RlZCBpbnRvIHRoZSBwYXJhbXMgb2YgdGhlIHJlcXVlc3QuXG4gKlxuICogQHBhcmFtIHN0b3JlXG4gKiBAcGFyYW0gZm5cbiAqIEByZXR1cm5zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaXJlYmFzZURvY3VtZW50U3RvcmVEZWxldGVGdW5jdGlvbjxJIGV4dGVuZHMgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRnVuY3Rpb25QYXJhbXMsIE8gPSB2b2lkPihzdG9yZTogRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlPGFueSwgYW55PiwgZm46IE1vZGVsRmlyZWJhc2VEZWxldGVGdW5jdGlvbjxJLCBPPik6IERieEZpcmViYXNlRG9jdW1lbnRTdG9yZUZ1bmN0aW9uPEksIE8+IHtcbiAgcmV0dXJuIChwYXJhbXM6IERieEZpcmViYXNlRG9jdW1lbnRTdG9yZUZ1bmN0aW9uUGFyYW1zSW5wdXQ8ST4pID0+XG4gICAgbG9hZGluZ1N0YXRlRnJvbU9icyhcbiAgICAgIHN0b3JlLmtleSQucGlwZShcbiAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgZXhoYXVzdE1hcCgoa2V5KSA9PlxuICAgICAgICAgIGZuKHtcbiAgICAgICAgICAgIC4uLnBhcmFtcyxcbiAgICAgICAgICAgIGtleSAvLyBpbmplY3Qga2V5IGludG8gdGhlIHBhcmFtZXRlcnMuXG4gICAgICAgICAgfSBhcyBJKS50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgIHN0b3JlLmNsZWFyUmVmcygpO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICB9KVxuICAgICAgICApLFxuICAgICAgICBzaGFyZVJlcGxheSgxKVxuICAgICAgKVxuICAgICk7XG59XG5cbi8vIE1BUks6IENvbXBhdFxuLyoqXG4gKiBAZGVwcmVjYXRlZCBEYnhmaXJlYmFzZURvY3VtZW50U3RvcmVDcnVkRnVuY3Rpb24gaXMgdW5kZWZpbmVkLlxuICovXG5leHBvcnQgdHlwZSBEYnhmaXJlYmFzZURvY3VtZW50U3RvcmVDcnVkRnVuY3Rpb248SSwgTyA9IHZvaWQ+ID0gRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlQ3J1ZEZ1bmN0aW9uPEksIE8+O1xuIl19
@@ -1,59 +0,0 @@
1
- import { Directive, forwardRef, Input } from '@angular/core';
2
- import { FirestoreAccessorStreamMode } from '@dereekb/firebase';
3
- import * as i0 from "@angular/core";
4
- /**
5
- * Abstract directive that contains a DbxFirebaseDocumentStore and provides an interface for communicating with other directives.
6
- */
7
- export class DbxFirebaseDocumentStoreDirective {
8
- constructor(store) {
9
- this.store = store;
10
- this.exists$ = this.store.exists$;
11
- this.document$ = this.store.document$;
12
- this.documentLoadingState$ = this.store.documentLoadingState$;
13
- this.id$ = this.store.id$;
14
- this.ref$ = this.store.ref$;
15
- this.snapshot$ = this.store.snapshot$;
16
- this.snapshotLoadingState$ = this.store.snapshotLoadingState$;
17
- this.data$ = this.store.data$;
18
- this.loadingState$ = this.store.dataLoadingState$;
19
- }
20
- // MARK: Inputs
21
- set id(id) {
22
- this.store.setId(id);
23
- }
24
- set key(key) {
25
- this.store.setKey(key);
26
- }
27
- set ref(ref) {
28
- this.store.setRef(ref);
29
- }
30
- set streamMode(streamMode) {
31
- this.store.setStreamMode(streamMode);
32
- }
33
- }
34
- DbxFirebaseDocumentStoreDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseDocumentStoreDirective, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
35
- DbxFirebaseDocumentStoreDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: DbxFirebaseDocumentStoreDirective, inputs: { id: "id", key: "key", ref: "ref", streamMode: "streamMode" }, ngImport: i0 });
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseDocumentStoreDirective, decorators: [{
37
- type: Directive
38
- }], ctorParameters: function () { return [{ type: undefined }]; }, propDecorators: { id: [{
39
- type: Input
40
- }], key: [{
41
- type: Input
42
- }], ref: [{
43
- type: Input
44
- }], streamMode: [{
45
- type: Input
46
- }] } });
47
- export function provideDbxFirebaseDocumentStoreDirective(sourceType, storeType) {
48
- const providers = [
49
- {
50
- provide: DbxFirebaseDocumentStoreDirective,
51
- useExisting: forwardRef(() => sourceType)
52
- }
53
- ];
54
- if (storeType) {
55
- providers.push(storeType);
56
- }
57
- return providers;
58
- }
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuZG9jdW1lbnQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kZWwvc3RvcmUvc3RvcmUuZG9jdW1lbnQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBa0IsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFxQiwyQkFBMkIsRUFBMEQsTUFBTSxtQkFBbUIsQ0FBQzs7QUFJM0k7O0dBRUc7QUFFSCxNQUFNLE9BQWdCLGlDQUFpQztJQUNyRCxZQUFxQixLQUFRO1FBQVIsVUFBSyxHQUFMLEtBQUssQ0FBRztRQUVwQixZQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFFN0IsY0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1FBQ2pDLDBCQUFxQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUM7UUFFekQsUUFBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO1FBQ3JCLFNBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztRQUV2QixjQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDakMsMEJBQXFCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQztRQUV6RCxVQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDekIsa0JBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDO0lBZHRCLENBQUM7SUFnQmpDLGVBQWU7SUFDZixJQUNJLEVBQUUsQ0FBQyxFQUEyQjtRQUNoQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFDSSxHQUFHLENBQUMsR0FBNkI7UUFDbkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELElBQ0ksR0FBRyxDQUFDLEdBQWdDO1FBQ3RDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUNJLFVBQVUsQ0FBQyxVQUF1QztRQUNwRCxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN2QyxDQUFDOzsrSEFwQ21CLGlDQUFpQzttSEFBakMsaUNBQWlDOzRGQUFqQyxpQ0FBaUM7a0JBRHRELFNBQVM7NkZBb0JKLEVBQUU7c0JBREwsS0FBSztnQkFNRixHQUFHO3NCQUROLEtBQUs7Z0JBTUYsR0FBRztzQkFETixLQUFLO2dCQU1GLFVBQVU7c0JBRGIsS0FBSzs7QUFrQlIsTUFBTSxVQUFVLHdDQUF3QyxDQUEwSixVQUFtQixFQUFFLFNBQW1CO0lBQ3hQLE1BQU0sU0FBUyxHQUFlO1FBQzVCO1lBQ0UsT0FBTyxFQUFFLGlDQUFpQztZQUMxQyxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQztTQUMxQztLQUNGLENBQUM7SUFFRixJQUFJLFNBQVMsRUFBRTtRQUNiLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7S0FDM0I7SUFFRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBmb3J3YXJkUmVmLCBJbnB1dCwgUHJvdmlkZXIsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvY3VtZW50UmVmZXJlbmNlLCBGaXJlc3RvcmVBY2Nlc3NvclN0cmVhbU1vZGUsIEZpcmVzdG9yZURvY3VtZW50LCBGaXJlc3RvcmVNb2RlbEtleSwgRmlyZXN0b3JlTW9kZWxJZCB9IGZyb20gJ0BkZXJlZWtiL2ZpcmViYXNlJztcbmltcG9ydCB7IE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmUgfSBmcm9tICcuL3N0b3JlLmRvY3VtZW50JztcblxuLyoqXG4gKiBBYnN0cmFjdCBkaXJlY3RpdmUgdGhhdCBjb250YWlucyBhIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZSBhbmQgcHJvdmlkZXMgYW4gaW50ZXJmYWNlIGZvciBjb21tdW5pY2F0aW5nIHdpdGggb3RoZXIgZGlyZWN0aXZlcy5cbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRGlyZWN0aXZlPFQgPSB1bmtub3duLCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPiwgUyBleHRlbmRzIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZTxULCBEPiA9IERieEZpcmViYXNlRG9jdW1lbnRTdG9yZTxULCBEPj4ge1xuICBjb25zdHJ1Y3RvcihyZWFkb25seSBzdG9yZTogUykge31cblxuICByZWFkb25seSBleGlzdHMkID0gdGhpcy5zdG9yZS5leGlzdHMkO1xuXG4gIHJlYWRvbmx5IGRvY3VtZW50JCA9IHRoaXMuc3RvcmUuZG9jdW1lbnQkO1xuICByZWFkb25seSBkb2N1bWVudExvYWRpbmdTdGF0ZSQgPSB0aGlzLnN0b3JlLmRvY3VtZW50TG9hZGluZ1N0YXRlJDtcblxuICByZWFkb25seSBpZCQgPSB0aGlzLnN0b3JlLmlkJDtcbiAgcmVhZG9ubHkgcmVmJCA9IHRoaXMuc3RvcmUucmVmJDtcblxuICByZWFkb25seSBzbmFwc2hvdCQgPSB0aGlzLnN0b3JlLnNuYXBzaG90JDtcbiAgcmVhZG9ubHkgc25hcHNob3RMb2FkaW5nU3RhdGUkID0gdGhpcy5zdG9yZS5zbmFwc2hvdExvYWRpbmdTdGF0ZSQ7XG5cbiAgcmVhZG9ubHkgZGF0YSQgPSB0aGlzLnN0b3JlLmRhdGEkO1xuICByZWFkb25seSBsb2FkaW5nU3RhdGUkID0gdGhpcy5zdG9yZS5kYXRhTG9hZGluZ1N0YXRlJDtcblxuICAvLyBNQVJLOiBJbnB1dHNcbiAgQElucHV0KClcbiAgc2V0IGlkKGlkOiBNYXliZTxGaXJlc3RvcmVNb2RlbElkPikge1xuICAgIHRoaXMuc3RvcmUuc2V0SWQoaWQpO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IGtleShrZXk6IE1heWJlPEZpcmVzdG9yZU1vZGVsS2V5Pikge1xuICAgIHRoaXMuc3RvcmUuc2V0S2V5KGtleSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgcmVmKHJlZjogTWF5YmU8RG9jdW1lbnRSZWZlcmVuY2U8VD4+KSB7XG4gICAgdGhpcy5zdG9yZS5zZXRSZWYocmVmKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBzdHJlYW1Nb2RlKHN0cmVhbU1vZGU6IEZpcmVzdG9yZUFjY2Vzc29yU3RyZWFtTW9kZSkge1xuICAgIHRoaXMuc3RvcmUuc2V0U3RyZWFtTW9kZShzdHJlYW1Nb2RlKTtcbiAgfVxufVxuXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG4vLyBUaGUgdXNlIG9mIGFueSBoZXJlIGRvZXMgbm90IGRlZ3JhZGUgdGhlIHR5cGUtc2FmZXR5OyB3ZSB3YW50IHRvIHNpbXBseSBtYXRjaCB0aGF0IHRoZSBTdG9yZSB0eXBlIFMgaXMgdXNlZCBpbiB0aGUgRGlyZWN0aXZlIHR5cGUgQyB0byBwcm92aWRlIGl0LlxuXG4vKipcbiAqIENvbmZpZ3VyZXMgcHJvdmlkZXJzIGZvciBhIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZURpcmVjdGl2ZS5cbiAqXG4gKiBDYW4gb3B0aW9uYWxseSBhbHNvIHByb3ZpZGUgdGhlIGFjdHVhbCBzdG9yZSB0eXBlIHRvIGluY2x1ZGUgaW4gdGhlIHByb3ZpZGVycyBhcnJheSBzbyBpdCBpcyBpbnN0YW50aWF0ZWQgYnkgQW5ndWxhci5cbiAqXG4gKiBAcGFyYW0gc291cmNlVHlwZVxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZURieEZpcmViYXNlRG9jdW1lbnRTdG9yZURpcmVjdGl2ZTxTIGV4dGVuZHMgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRGlyZWN0aXZlPGFueSwgYW55LCBhbnk+Pihzb3VyY2VUeXBlOiBUeXBlPFM+KTogUHJvdmlkZXJbXTtcbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRGlyZWN0aXZlPFMgZXh0ZW5kcyBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmU8YW55LCBhbnk+LCBDIGV4dGVuZHMgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRGlyZWN0aXZlPGFueSwgYW55LCBTPiA9IERieEZpcmViYXNlRG9jdW1lbnRTdG9yZURpcmVjdGl2ZTxhbnksIGFueSwgUz4+KHNvdXJjZVR5cGU6IFR5cGU8Qz4sIHN0b3JlVHlwZTogVHlwZTxTPik6IFByb3ZpZGVyW107XG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZURieEZpcmViYXNlRG9jdW1lbnRTdG9yZURpcmVjdGl2ZTxTIGV4dGVuZHMgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlPGFueSwgYW55PiwgQyBleHRlbmRzIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZURpcmVjdGl2ZTxhbnksIGFueSwgUz4gPSBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVEaXJlY3RpdmU8YW55LCBhbnksIFM+Pihzb3VyY2VUeXBlOiBUeXBlPEM+LCBzdG9yZVR5cGU/OiBUeXBlPFM+KTogUHJvdmlkZXJbXSB7XG4gIGNvbnN0IHByb3ZpZGVyczogUHJvdmlkZXJbXSA9IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVEaXJlY3RpdmUsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBzb3VyY2VUeXBlKVxuICAgIH1cbiAgXTtcblxuICBpZiAoc3RvcmVUeXBlKSB7XG4gICAgcHJvdmlkZXJzLnB1c2goc3RvcmVUeXBlKTtcbiAgfVxuXG4gIHJldHVybiBwcm92aWRlcnM7XG59XG4iXX0=
@@ -1,109 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { shareReplay, distinctUntilChanged, map, switchMap, combineLatest, of } from 'rxjs';
3
- import { firestoreModelIdsFromKey, firestoreModelKeyPartPairs, firestoreModelKeyPairObject, documentDataWithIdAndKey, FirestoreAccessorStreamMode, inferKeyFromTwoWayFlatFirestoreModelKey } from '@dereekb/firebase';
4
- import { filterMaybe, beginLoading, successResult, loadingStateFromObs, errorResult } from '@dereekb/rxjs';
5
- import { isMaybeSo } from '@dereekb/util';
6
- import { LockSetComponentStore } from '@dereekb/dbx-core';
7
- import { modelDoesNotExistError } from '../error';
8
- import * as i0 from "@angular/core";
9
- /**
10
- * Used for storing the state of a Person and related email threads.
11
- */
12
- export class AbstractDbxFirebaseDocumentStore extends LockSetComponentStore {
13
- constructor() {
14
- super(...arguments);
15
- // MARK: Effects
16
- // MARK: Accessors
17
- this.currentFirestoreCollectionLike$ = this.state$.pipe(map((x) => x.firestoreCollection ?? x.firestoreCollectionLike), distinctUntilChanged(), shareReplay(1));
18
- this.currentFirestoreCollection$ = this.state$.pipe(map((x) => x.firestoreCollection), distinctUntilChanged(), shareReplay(1));
19
- this.firestoreCollectionLike$ = this.currentFirestoreCollectionLike$.pipe(filterMaybe());
20
- this.firestoreCollection$ = this.currentFirestoreCollection$.pipe(filterMaybe());
21
- this.currentInputId$ = this.state$.pipe(map((x) => x.id), distinctUntilChanged(), shareReplay(1));
22
- this.inputId$ = this.currentInputId$.pipe(filterMaybe(), distinctUntilChanged(), shareReplay(1));
23
- this.currentInputKey$ = this.state$.pipe(map((x) => x.key), distinctUntilChanged(), shareReplay(1));
24
- this.inputKey$ = this.currentInputKey$.pipe(filterMaybe(), distinctUntilChanged(), shareReplay(1));
25
- this.currentInputRef$ = this.state$.pipe(map((x) => x.ref), distinctUntilChanged(), shareReplay(1));
26
- this.inputRef$ = this.currentInputRef$.pipe(filterMaybe(), distinctUntilChanged(), shareReplay(1));
27
- this.streamMode$ = this.state$.pipe(map((x) => x.streamMode ?? FirestoreAccessorStreamMode.STREAM), distinctUntilChanged(), shareReplay(1));
28
- this.currentDocument$ = combineLatest([this.currentInputId$, this.currentInputKey$, this.currentInputRef$]).pipe(switchMap(([id, key, ref]) => {
29
- let document;
30
- if (ref) {
31
- document = this.firestoreCollectionLike$.pipe(map((x) => x.documentAccessor().loadDocument(ref)));
32
- }
33
- else if (key) {
34
- document = this.firestoreCollectionLike$.pipe(map((x) => x.documentAccessor().loadDocumentForKey(key)));
35
- }
36
- else if (id) {
37
- document = this.firestoreCollection$.pipe(map((x) => x.documentAccessor().loadDocumentForId(id)));
38
- }
39
- else {
40
- document = of(undefined);
41
- }
42
- return document;
43
- }), distinctUntilChanged(), shareReplay(1));
44
- /**
45
- * Whether or not an id/ref/key has been input and currentDocument is not null.
46
- */
47
- this.hasRef$ = this.currentDocument$.pipe(map((x) => x?.documentRef != null), distinctUntilChanged(), shareReplay(1));
48
- this.document$ = this.currentDocument$.pipe(filterMaybe(), distinctUntilChanged(), shareReplay(1));
49
- this.documentLoadingState$ = this.currentDocument$.pipe(map((x) => (x ? successResult(x) : beginLoading())), shareReplay(1));
50
- this.id$ = this.document$.pipe(map((x) => x.id), shareReplay(1));
51
- this.key$ = this.document$.pipe(map((x) => x.key), shareReplay(1));
52
- this.keyModelIds$ = this.key$.pipe(map(firestoreModelIdsFromKey), shareReplay(1));
53
- this.keyPairs$ = this.key$.pipe(map(firestoreModelKeyPartPairs), filterMaybe(), shareReplay(1));
54
- this.keyPairObject$ = this.key$.pipe(map(firestoreModelKeyPairObject), filterMaybe(), shareReplay(1));
55
- this.ref$ = this.document$.pipe(map((x) => x.documentRef), shareReplay(1));
56
- this.snapshot$ = combineLatest([this.document$, this.streamMode$]).pipe(switchMap(([x, mode]) => x.snapshotStream(mode)), shareReplay(1));
57
- this.snapshotLoadingState$ = this.currentDocument$.pipe(switchMap(() => loadingStateFromObs(this.snapshot$)), shareReplay(1));
58
- this.currentData$ = this.snapshot$.pipe(map((x) => documentDataWithIdAndKey(x)), shareReplay(1));
59
- this.data$ = this.currentDocument$.pipe(switchMap(() => this.currentData$.pipe(filterMaybe())), shareReplay(1));
60
- this.dataLoadingState$ = this.snapshotLoadingState$.pipe(map((x) => {
61
- let result;
62
- if (x.value) {
63
- const data = documentDataWithIdAndKey(x.value);
64
- if (data) {
65
- result = successResult(data);
66
- }
67
- else {
68
- result = errorResult(modelDoesNotExistError());
69
- }
70
- }
71
- else {
72
- result = {
73
- ...x,
74
- value: undefined
75
- };
76
- }
77
- return result;
78
- }), shareReplay(1));
79
- /**
80
- * Returns false while hasRef$ is false, and then returns exists$.
81
- */
82
- this.currentExists$ = this.hasRef$.pipe(switchMap((hasRef) => {
83
- if (hasRef) {
84
- return this.exists$;
85
- }
86
- else {
87
- return of(false);
88
- }
89
- }), shareReplay(1));
90
- this.exists$ = this.currentData$.pipe(map((x) => isMaybeSo(x)), shareReplay(1));
91
- this.doesNotExist$ = this.exists$.pipe(map((x) => !x), shareReplay(1));
92
- this.modelIdentity$ = this.document$.pipe(map((x) => x.modelIdentity), shareReplay(1));
93
- // MARK: State Changes
94
- this.setId = this.updater((state, id) => (id ? { ...state, id, key: undefined, ref: undefined } : { ...state, id }));
95
- this.setKey = this.updater((state, key) => (key ? { ...state, key, id: undefined, ref: undefined } : { ...state, key }));
96
- this.setFlatKey = this.updater((state, key) => (key ? { ...state, key: inferKeyFromTwoWayFlatFirestoreModelKey(key), id: undefined, ref: undefined } : { ...state, key }));
97
- this.setRef = this.updater((state, ref) => (ref ? { ...state, key: undefined, id: undefined, ref } : { ...state, ref }));
98
- this.setStreamMode = this.updater((state, streamMode) => ({ ...state, streamMode }));
99
- this.clearRefs = this.updater((state) => ({ ...state, id: undefined, key: undefined, ref: undefined }));
100
- this.setFirestoreCollection = this.updater((state, firestoreCollection) => ({ ...state, firestoreCollection }));
101
- this.setFirestoreCollectionLike = this.updater((state, firestoreCollectionLike) => ({ ...state, firestoreCollectionLike }));
102
- }
103
- }
104
- AbstractDbxFirebaseDocumentStore.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AbstractDbxFirebaseDocumentStore, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
105
- AbstractDbxFirebaseDocumentStore.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AbstractDbxFirebaseDocumentStore });
106
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AbstractDbxFirebaseDocumentStore, decorators: [{
107
- type: Injectable
108
- }] });
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuZG9jdW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9zdG9yZS9zdG9yZS5kb2N1bWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxXQUFXLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQWdCLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0SCxPQUFPLEVBVUwsd0JBQXdCLEVBQ3hCLDBCQUEwQixFQUUxQiwyQkFBMkIsRUFFM0Isd0JBQXdCLEVBQ3hCLDJCQUEyQixFQUczQix1Q0FBdUMsRUFDeEMsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQUUsV0FBVyxFQUFnQixZQUFZLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDNUksT0FBTyxFQUFTLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQW9CLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDNUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sVUFBVSxDQUFDOztBQXNGbEQ7O0dBRUc7QUFFSCxNQUFNLE9BQU8sZ0NBQThMLFNBQVEscUJBQXdCO0lBRDNPOztRQUVFLGdCQUFnQjtRQUVoQixrQkFBa0I7UUFDVCxvQ0FBK0IsR0FBcUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQzNHLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixJQUFJLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxFQUM5RCxvQkFBb0IsRUFBRSxFQUN0QixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztRQUVP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QUcsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQW1GLENBQUM7UUFDM04sV0FBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBNkIsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQW1GLENBQUM7UUFDaE8sZUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBdUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxFQUFFLHVDQUF1QyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQW1GLENBQUM7UUFDNVIsV0FBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBZ0MsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQStHLENBQUM7UUFFL1Asa0JBQWEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLFVBQXVDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFN0csY0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVuRywyQkFBc0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLG1CQUFxRCxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDN0ksK0JBQTBCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSx1QkFBNkQsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLHVCQUF1QixFQUFFLENBQUMsQ0FBQyxDQUFDO0tBQ3ZLOzs4SEE3TFksZ0NBQWdDO2tJQUFoQyxnQ0FBZ0M7NEZBQWhDLGdDQUFnQztrQkFENUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIHNoYXJlUmVwbGF5LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBzd2l0Y2hNYXAsIGNvbWJpbmVMYXRlc3QsIFN1YnNjcmlwdGlvbiwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIERvY3VtZW50U25hcHNob3QsXG4gIERvY3VtZW50UmVmZXJlbmNlLFxuICBGaXJlc3RvcmVDb2xsZWN0aW9uLFxuICBGaXJlc3RvcmVEb2N1bWVudCxcbiAgRG9jdW1lbnREYXRhV2l0aElkQW5kS2V5LFxuICBGaXJlc3RvcmVNb2RlbElkLFxuICBGaXJlc3RvcmVNb2RlbEtleSxcbiAgRmlyZXN0b3JlQ29sbGVjdGlvbkxpa2UsXG4gIEZpcmVzdG9yZU1vZGVsSWRlbnRpdHksXG4gIGZpcmVzdG9yZU1vZGVsSWRzRnJvbUtleSxcbiAgZmlyZXN0b3JlTW9kZWxLZXlQYXJ0UGFpcnMsXG4gIEZpcmVzdG9yZU1vZGVsQ29sbGVjdGlvbkFuZElkUGFpcixcbiAgZmlyZXN0b3JlTW9kZWxLZXlQYWlyT2JqZWN0LFxuICBGaXJlc3RvcmVNb2RlbENvbGxlY3Rpb25BbmRJZFBhaXJPYmplY3QsXG4gIGRvY3VtZW50RGF0YVdpdGhJZEFuZEtleSxcbiAgRmlyZXN0b3JlQWNjZXNzb3JTdHJlYW1Nb2RlLFxuICBGbGF0RmlyZXN0b3JlTW9kZWxLZXksXG4gIFR3b1dheUZsYXRGaXJlc3RvcmVNb2RlbEtleSxcbiAgaW5mZXJLZXlGcm9tVHdvV2F5RmxhdEZpcmVzdG9yZU1vZGVsS2V5XG59IGZyb20gJ0BkZXJlZWtiL2ZpcmViYXNlJztcbmltcG9ydCB7IGZpbHRlck1heWJlLCBMb2FkaW5nU3RhdGUsIGJlZ2luTG9hZGluZywgc3VjY2Vzc1Jlc3VsdCwgbG9hZGluZ1N0YXRlRnJvbU9icywgZXJyb3JSZXN1bHQsIE9ic2VydmFibGVPclZhbHVlIH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBNYXliZSwgaXNNYXliZVNvIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBMb2NrU2V0Q29tcG9uZW50LCBMb2NrU2V0Q29tcG9uZW50U3RvcmUgfSBmcm9tICdAZGVyZWVrYi9kYngtY29yZSc7XG5pbXBvcnQgeyBtb2RlbERvZXNOb3RFeGlzdEVycm9yIH0gZnJvbSAnLi4vZXJyb3InO1xuXG5leHBvcnQgaW50ZXJmYWNlIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZTxULCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPj4gZXh0ZW5kcyBMb2NrU2V0Q29tcG9uZW50IHtcbiAgcmVhZG9ubHkgZmlyZXN0b3JlQ29sbGVjdGlvbkxpa2UkOiBPYnNlcnZhYmxlPEZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlPFQsIEQ+PjtcbiAgcmVhZG9ubHkgZmlyZXN0b3JlQ29sbGVjdGlvbiQ6IE9ic2VydmFibGU8RmlyZXN0b3JlQ29sbGVjdGlvbjxULCBEPj47XG5cbiAgcmVhZG9ubHkgY3VycmVudElucHV0SWQkOiBPYnNlcnZhYmxlPE1heWJlPEZpcmVzdG9yZU1vZGVsSWQ+PjtcbiAgcmVhZG9ubHkgaW5wdXRJZCQ6IE9ic2VydmFibGU8RmlyZXN0b3JlTW9kZWxJZD47XG4gIHJlYWRvbmx5IGN1cnJlbnRJbnB1dEtleSQ6IE9ic2VydmFibGU8TWF5YmU8RmlyZXN0b3JlTW9kZWxLZXk+PjtcbiAgcmVhZG9ubHkgaW5wdXRLZXkkOiBPYnNlcnZhYmxlPEZpcmVzdG9yZU1vZGVsS2V5PjtcbiAgcmVhZG9ubHkgY3VycmVudElucHV0UmVmJDogT2JzZXJ2YWJsZTxNYXliZTxEb2N1bWVudFJlZmVyZW5jZTxUPj4+O1xuICByZWFkb25seSBpbnB1dFJlZiQ6IE9ic2VydmFibGU8RG9jdW1lbnRSZWZlcmVuY2U8VD4+O1xuXG4gIHJlYWRvbmx5IHN0cmVhbU1vZGUkOiBPYnNlcnZhYmxlPEZpcmVzdG9yZUFjY2Vzc29yU3RyZWFtTW9kZT47XG5cbiAgcmVhZG9ubHkgY3VycmVudERvY3VtZW50JDogT2JzZXJ2YWJsZTxNYXliZTxEPj47XG4gIHJlYWRvbmx5IGRvY3VtZW50JDogT2JzZXJ2YWJsZTxEPjtcbiAgcmVhZG9ubHkgaWQkOiBPYnNlcnZhYmxlPEZpcmVzdG9yZU1vZGVsSWQ+O1xuICByZWFkb25seSBrZXkkOiBPYnNlcnZhYmxlPEZpcmVzdG9yZU1vZGVsS2V5PjtcbiAgcmVhZG9ubHkgcmVmJDogT2JzZXJ2YWJsZTxEb2N1bWVudFJlZmVyZW5jZTxUPj47XG4gIHJlYWRvbmx5IGhhc1JlZiQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgcmVhZG9ubHkga2V5TW9kZWxJZHMkOiBPYnNlcnZhYmxlPEZpcmVzdG9yZU1vZGVsSWRbXT47XG4gIHJlYWRvbmx5IGtleVBhaXJzJDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVNb2RlbENvbGxlY3Rpb25BbmRJZFBhaXJbXT47XG4gIHJlYWRvbmx5IGtleVBhaXJPYmplY3QkOiBPYnNlcnZhYmxlPEZpcmVzdG9yZU1vZGVsQ29sbGVjdGlvbkFuZElkUGFpck9iamVjdD47XG5cbiAgcmVhZG9ubHkgZG9jdW1lbnRMb2FkaW5nU3RhdGUkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxEPj47XG4gIHJlYWRvbmx5IHNuYXBzaG90JDogT2JzZXJ2YWJsZTxEb2N1bWVudFNuYXBzaG90PFQ+PjtcbiAgcmVhZG9ubHkgc25hcHNob3RMb2FkaW5nU3RhdGUkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxEb2N1bWVudFNuYXBzaG90PFQ+Pj47XG4gIHJlYWRvbmx5IGN1cnJlbnREYXRhJDogT2JzZXJ2YWJsZTxNYXliZTxEb2N1bWVudERhdGFXaXRoSWRBbmRLZXk8VD4+PjtcbiAgcmVhZG9ubHkgZGF0YSQ6IE9ic2VydmFibGU8RG9jdW1lbnREYXRhV2l0aElkQW5kS2V5PFQ+PjtcbiAgcmVhZG9ubHkgZGF0YUxvYWRpbmdTdGF0ZSQ6IE9ic2VydmFibGU8TG9hZGluZ1N0YXRlPERvY3VtZW50RGF0YVdpdGhJZEFuZEtleTxUPj4+O1xuICByZWFkb25seSBjdXJyZW50RXhpc3RzJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgcmVhZG9ubHkgZXhpc3RzJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgcmVhZG9ubHkgbW9kZWxJZGVudGl0eSQ6IE9ic2VydmFibGU8RmlyZXN0b3JlTW9kZWxJZGVudGl0eT47XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGlkIG9mIHRoZSBkb2N1bWVudCB0byBsb2FkLlxuICAgKi9cbiAgcmVhZG9ubHkgc2V0SWQ6IChvYnNlcnZhYmxlT3JWYWx1ZTogT2JzZXJ2YWJsZU9yVmFsdWU8TWF5YmU8RmlyZXN0b3JlTW9kZWxJZD4+KSA9PiBTdWJzY3JpcHRpb247XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGtleSBvZiB0aGUgZG9jdW1lbnQgdG8gbG9hZC5cbiAgICovXG4gIHJlYWRvbmx5IHNldEtleTogKG9ic2VydmFibGVPclZhbHVlOiBPYnNlcnZhYmxlT3JWYWx1ZTxNYXliZTxGaXJlc3RvcmVNb2RlbEtleT4+KSA9PiBTdWJzY3JpcHRpb247XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGtleSBvZiB0aGUgZG9jdW1lbnQgdG8gbG9hZCB1c2luZyBhIFR3b1dheUZsYXRGaXJlc3RvcmVNb2RlbEtleS5cbiAgICovXG4gIHJlYWRvbmx5IHNldEZsYXRLZXk6IChvYnNlcnZhYmxlT3JWYWx1ZTogT2JzZXJ2YWJsZU9yVmFsdWU8TWF5YmU8VHdvV2F5RmxhdEZpcmVzdG9yZU1vZGVsS2V5Pj4pID0+IFN1YnNjcmlwdGlvbjtcblxuICAvKipcbiAgICogU2V0cyB0aGUgcmVmIG9mIHRoZSBkb2N1bWVudCB0byBsb2FkLlxuICAgKi9cbiAgcmVhZG9ubHkgc2V0UmVmOiAob2JzZXJ2YWJsZU9yVmFsdWU6IE9ic2VydmFibGVPclZhbHVlPE1heWJlPERvY3VtZW50UmVmZXJlbmNlPFQ+Pj4pID0+IFN1YnNjcmlwdGlvbjtcblxuICAvKipcbiAgICogQ2xlYXJzIHRoZSBrZXkvaWQvcmVmIGFuZCBjdXJyZW50IGRvY3VtZW50IGZyb20gdGhlIHN0b3JlLlxuICAgKi9cbiAgcmVhZG9ubHkgY2xlYXJSZWZzOiAoKSA9PiB2b2lkO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBzdHJlYW0gbW9kZS5cbiAgICovXG4gIHJlYWRvbmx5IHNldFN0cmVhbU1vZGU6IChvYnNlcnZhYmxlT3JWYWx1ZTogT2JzZXJ2YWJsZU9yVmFsdWU8RmlyZXN0b3JlQWNjZXNzb3JTdHJlYW1Nb2RlPikgPT4gU3Vic2NyaXB0aW9uO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBGaXJlc3RvcmVDb2xsZWN0aW9uIHRvIHJldHJpZXZlIGRvY3VtZW50cyBmcm9tLlxuICAgKi9cbiAgcmVhZG9ubHkgc2V0RmlyZXN0b3JlQ29sbGVjdGlvbjogKCgpID0+IHZvaWQpIHwgKChvYnNlcnZhYmxlT3JWYWx1ZTogT2JzZXJ2YWJsZU9yVmFsdWU8TWF5YmU8RmlyZXN0b3JlQ29sbGVjdGlvbjxULCBEPj4+KSA9PiBTdWJzY3JpcHRpb24pO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBGaXJlc3RvcmVDb2xsZWN0aW9uTGlrZSB0byByZXRyaWV2ZSBkb2N1bWVudHMgZnJvbS5cbiAgICovXG4gIHJlYWRvbmx5IHNldEZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlOiAoKCkgPT4gdm9pZCkgfCAoKG9ic2VydmFibGVPclZhbHVlOiBPYnNlcnZhYmxlT3JWYWx1ZTxNYXliZTxGaXJlc3RvcmVDb2xsZWN0aW9uTGlrZTxULCBEPj4+KSA9PiBTdWJzY3JpcHRpb24pO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZUNvbnRleHRTdGF0ZTxULCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPj4ge1xuICByZWFkb25seSBmaXJlc3RvcmVDb2xsZWN0aW9uTGlrZT86IE1heWJlPEZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlPFQsIEQ+PjtcbiAgcmVhZG9ubHkgZmlyZXN0b3JlQ29sbGVjdGlvbj86IE1heWJlPEZpcmVzdG9yZUNvbGxlY3Rpb248VCwgRD4+O1xuICByZWFkb25seSBzdHJlYW1Nb2RlPzogRmlyZXN0b3JlQWNjZXNzb3JTdHJlYW1Nb2RlO1xuICByZWFkb25seSBpZD86IE1heWJlPEZpcmVzdG9yZU1vZGVsSWQ+O1xuICByZWFkb25seSBrZXk/OiBNYXliZTxGaXJlc3RvcmVNb2RlbEtleT47XG4gIHJlYWRvbmx5IHJlZj86IE1heWJlPERvY3VtZW50UmVmZXJlbmNlPFQ+Pjtcbn1cblxuLyoqXG4gKiBVc2VkIGZvciBzdG9yaW5nIHRoZSBzdGF0ZSBvZiBhIFBlcnNvbiBhbmQgcmVsYXRlZCBlbWFpbCB0aHJlYWRzLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQWJzdHJhY3REYnhGaXJlYmFzZURvY3VtZW50U3RvcmU8VCwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4sIEMgZXh0ZW5kcyBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVDb250ZXh0U3RhdGU8VCwgRD4gPSBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVDb250ZXh0U3RhdGU8VCwgRD4+IGV4dGVuZHMgTG9ja1NldENvbXBvbmVudFN0b3JlPEM+IGltcGxlbWVudHMgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlPFQsIEQ+IHtcbiAgLy8gTUFSSzogRWZmZWN0c1xuXG4gIC8vIE1BUks6IEFjY2Vzc29yc1xuICByZWFkb25seSBjdXJyZW50RmlyZXN0b3JlQ29sbGVjdGlvbkxpa2UkOiBPYnNlcnZhYmxlPE1heWJlPEZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlPFQsIEQ+Pj4gPSB0aGlzLnN0YXRlJC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5maXJlc3RvcmVDb2xsZWN0aW9uID8/IHguZmlyZXN0b3JlQ29sbGVjdGlvbkxpa2UpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBjdXJyZW50RmlyZXN0b3JlQ29sbGVjdGlvbiQ6IE9ic2VydmFibGU8TWF5YmU8RmlyZXN0b3JlQ29sbGVjdGlvbjxULCBEPj4+ID0gdGhpcy5zdGF0ZSQucGlwZShcbiAgICBtYXAoKHgpID0+IHguZmlyZXN0b3JlQ29sbGVjdGlvbiksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlJDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVDb2xsZWN0aW9uTGlrZTxULCBEPj4gPSB0aGlzLmN1cnJlbnRGaXJlc3RvcmVDb2xsZWN0aW9uTGlrZSQucGlwZShmaWx0ZXJNYXliZSgpKTtcbiAgcmVhZG9ubHkgZmlyZXN0b3JlQ29sbGVjdGlvbiQ6IE9ic2VydmFibGU8RmlyZXN0b3JlQ29sbGVjdGlvbjxULCBEPj4gPSB0aGlzLmN1cnJlbnRGaXJlc3RvcmVDb2xsZWN0aW9uJC5waXBlKGZpbHRlck1heWJlKCkpO1xuXG4gIHJlYWRvbmx5IGN1cnJlbnRJbnB1dElkJDogT2JzZXJ2YWJsZTxNYXliZTxGaXJlc3RvcmVNb2RlbElkPj4gPSB0aGlzLnN0YXRlJC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5pZCksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGlucHV0SWQkOiBPYnNlcnZhYmxlPEZpcmVzdG9yZU1vZGVsSWQ+ID0gdGhpcy5jdXJyZW50SW5wdXRJZCQucGlwZShmaWx0ZXJNYXliZSgpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBzaGFyZVJlcGxheSgxKSk7XG5cbiAgcmVhZG9ubHkgY3VycmVudElucHV0S2V5JDogT2JzZXJ2YWJsZTxNYXliZTxGaXJlc3RvcmVNb2RlbEtleT4+ID0gdGhpcy5zdGF0ZSQucGlwZShcbiAgICBtYXAoKHgpID0+IHgua2V5KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgaW5wdXRLZXkkOiBPYnNlcnZhYmxlPEZpcmVzdG9yZU1vZGVsS2V5PiA9IHRoaXMuY3VycmVudElucHV0S2V5JC5waXBlKGZpbHRlck1heWJlKCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIHNoYXJlUmVwbGF5KDEpKTtcblxuICByZWFkb25seSBjdXJyZW50SW5wdXRSZWYkOiBPYnNlcnZhYmxlPE1heWJlPERvY3VtZW50UmVmZXJlbmNlPFQ+Pj4gPSB0aGlzLnN0YXRlJC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5yZWYpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBpbnB1dFJlZiQ6IE9ic2VydmFibGU8RG9jdW1lbnRSZWZlcmVuY2U8VD4+ID0gdGhpcy5jdXJyZW50SW5wdXRSZWYkLnBpcGUoZmlsdGVyTWF5YmUoKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgc2hhcmVSZXBsYXkoMSkpO1xuXG4gIHJlYWRvbmx5IHN0cmVhbU1vZGUkOiBPYnNlcnZhYmxlPEZpcmVzdG9yZUFjY2Vzc29yU3RyZWFtTW9kZT4gPSB0aGlzLnN0YXRlJC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5zdHJlYW1Nb2RlID8/IEZpcmVzdG9yZUFjY2Vzc29yU3RyZWFtTW9kZS5TVFJFQU0pLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBjdXJyZW50RG9jdW1lbnQkOiBPYnNlcnZhYmxlPE1heWJlPEQ+PiA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuY3VycmVudElucHV0SWQkLCB0aGlzLmN1cnJlbnRJbnB1dEtleSQsIHRoaXMuY3VycmVudElucHV0UmVmJF0pLnBpcGUoXG4gICAgc3dpdGNoTWFwKChbaWQsIGtleSwgcmVmXSkgPT4ge1xuICAgICAgbGV0IGRvY3VtZW50OiBPYnNlcnZhYmxlPE1heWJlPEQ+PjtcblxuICAgICAgaWYgKHJlZikge1xuICAgICAgICBkb2N1bWVudCA9IHRoaXMuZmlyZXN0b3JlQ29sbGVjdGlvbkxpa2UkLnBpcGUobWFwKCh4KSA9PiB4LmRvY3VtZW50QWNjZXNzb3IoKS5sb2FkRG9jdW1lbnQocmVmKSkpO1xuICAgICAgfSBlbHNlIGlmIChrZXkpIHtcbiAgICAgICAgZG9jdW1lbnQgPSB0aGlzLmZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlJC5waXBlKG1hcCgoeCkgPT4geC5kb2N1bWVudEFjY2Vzc29yKCkubG9hZERvY3VtZW50Rm9yS2V5KGtleSkpKTtcbiAgICAgIH0gZWxzZSBpZiAoaWQpIHtcbiAgICAgICAgZG9jdW1lbnQgPSB0aGlzLmZpcmVzdG9yZUNvbGxlY3Rpb24kLnBpcGUobWFwKCh4KSA9PiB4LmRvY3VtZW50QWNjZXNzb3IoKS5sb2FkRG9jdW1lbnRGb3JJZChpZCkpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRvY3VtZW50ID0gb2YodW5kZWZpbmVkKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGRvY3VtZW50O1xuICAgIH0pLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgYW4gaWQvcmVmL2tleSBoYXMgYmVlbiBpbnB1dCBhbmQgY3VycmVudERvY3VtZW50IGlzIG5vdCBudWxsLlxuICAgKi9cbiAgcmVhZG9ubHkgaGFzUmVmJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuY3VycmVudERvY3VtZW50JC5waXBlKFxuICAgIG1hcCgoeCkgPT4geD8uZG9jdW1lbnRSZWYgIT0gbnVsbCksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGRvY3VtZW50JDogT2JzZXJ2YWJsZTxEPiA9IHRoaXMuY3VycmVudERvY3VtZW50JC5waXBlKGZpbHRlck1heWJlKCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIHNoYXJlUmVwbGF5KDEpKTtcblxuICByZWFkb25seSBkb2N1bWVudExvYWRpbmdTdGF0ZSQ6IE9ic2VydmFibGU8TG9hZGluZ1N0YXRlPEQ+PiA9IHRoaXMuY3VycmVudERvY3VtZW50JC5waXBlKFxuICAgIG1hcCgoeCkgPT4gKHggPyBzdWNjZXNzUmVzdWx0KHgpIDogYmVnaW5Mb2FkaW5nPEQ+KCkpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGlkJDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVNb2RlbElkPiA9IHRoaXMuZG9jdW1lbnQkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LmlkKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGtleSQ6IE9ic2VydmFibGU8RmlyZXN0b3JlTW9kZWxLZXk+ID0gdGhpcy5kb2N1bWVudCQucGlwZShcbiAgICBtYXAoKHgpID0+IHgua2V5KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGtleU1vZGVsSWRzJDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVNb2RlbElkW10+ID0gdGhpcy5rZXkkLnBpcGUobWFwKGZpcmVzdG9yZU1vZGVsSWRzRnJvbUtleSksIHNoYXJlUmVwbGF5KDEpKTtcbiAgcmVhZG9ubHkga2V5UGFpcnMkOiBPYnNlcnZhYmxlPEZpcmVzdG9yZU1vZGVsQ29sbGVjdGlvbkFuZElkUGFpcltdPiA9IHRoaXMua2V5JC5waXBlKG1hcChmaXJlc3RvcmVNb2RlbEtleVBhcnRQYWlycyksIGZpbHRlck1heWJlKCksIHNoYXJlUmVwbGF5KDEpKTtcbiAgcmVhZG9ubHkga2V5UGFpck9iamVjdCQ6IE9ic2VydmFibGU8RmlyZXN0b3JlTW9kZWxDb2xsZWN0aW9uQW5kSWRQYWlyT2JqZWN0PiA9IHRoaXMua2V5JC5waXBlKG1hcChmaXJlc3RvcmVNb2RlbEtleVBhaXJPYmplY3QpLCBmaWx0ZXJNYXliZSgpLCBzaGFyZVJlcGxheSgxKSk7XG5cbiAgcmVhZG9ubHkgcmVmJDogT2JzZXJ2YWJsZTxEb2N1bWVudFJlZmVyZW5jZTxUPj4gPSB0aGlzLmRvY3VtZW50JC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5kb2N1bWVudFJlZiksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBzbmFwc2hvdCQ6IE9ic2VydmFibGU8RG9jdW1lbnRTbmFwc2hvdDxUPj4gPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmRvY3VtZW50JCwgdGhpcy5zdHJlYW1Nb2RlJF0pLnBpcGUoXG4gICAgc3dpdGNoTWFwKChbeCwgbW9kZV0pID0+IHguc25hcHNob3RTdHJlYW0obW9kZSkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgc25hcHNob3RMb2FkaW5nU3RhdGUkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxEb2N1bWVudFNuYXBzaG90PFQ+Pj4gPSB0aGlzLmN1cnJlbnREb2N1bWVudCQucGlwZShcbiAgICBzd2l0Y2hNYXAoKCkgPT4gbG9hZGluZ1N0YXRlRnJvbU9icyh0aGlzLnNuYXBzaG90JCkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgY3VycmVudERhdGEkOiBPYnNlcnZhYmxlPE1heWJlPERvY3VtZW50RGF0YVdpdGhJZEFuZEtleTxUPj4+ID0gdGhpcy5zbmFwc2hvdCQucGlwZShcbiAgICBtYXAoKHgpID0+IGRvY3VtZW50RGF0YVdpdGhJZEFuZEtleSh4KSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBkYXRhJDogT2JzZXJ2YWJsZTxEb2N1bWVudERhdGFXaXRoSWRBbmRLZXk8VD4+ID0gdGhpcy5jdXJyZW50RG9jdW1lbnQkLnBpcGUoXG4gICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuY3VycmVudERhdGEkLnBpcGUoZmlsdGVyTWF5YmUoKSkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgZGF0YUxvYWRpbmdTdGF0ZSQ6IE9ic2VydmFibGU8TG9hZGluZ1N0YXRlPERvY3VtZW50RGF0YVdpdGhJZEFuZEtleTxUPj4+ID0gdGhpcy5zbmFwc2hvdExvYWRpbmdTdGF0ZSQucGlwZShcbiAgICBtYXAoKHgpID0+IHtcbiAgICAgIGxldCByZXN1bHQ6IExvYWRpbmdTdGF0ZTxEb2N1bWVudERhdGFXaXRoSWRBbmRLZXk8VD4+O1xuXG4gICAgICBpZiAoeC52YWx1ZSkge1xuICAgICAgICBjb25zdCBkYXRhID0gZG9jdW1lbnREYXRhV2l0aElkQW5kS2V5KHgudmFsdWUpO1xuXG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgcmVzdWx0ID0gc3VjY2Vzc1Jlc3VsdChkYXRhKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXN1bHQgPSBlcnJvclJlc3VsdChtb2RlbERvZXNOb3RFeGlzdEVycm9yKCkpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQgPSB7XG4gICAgICAgICAgLi4ueCxcbiAgICAgICAgICB2YWx1ZTogdW5kZWZpbmVkXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICAvKipcbiAgICogUmV0dXJucyBmYWxzZSB3aGlsZSBoYXNSZWYkIGlzIGZhbHNlLCBhbmQgdGhlbiByZXR1cm5zIGV4aXN0cyQuXG4gICAqL1xuICByZWFkb25seSBjdXJyZW50RXhpc3RzJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuaGFzUmVmJC5waXBlKFxuICAgIHN3aXRjaE1hcCgoaGFzUmVmKSA9PiB7XG4gICAgICBpZiAoaGFzUmVmKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmV4aXN0cyQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gb2YoZmFsc2UpO1xuICAgICAgfVxuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgZXhpc3RzJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuY3VycmVudERhdGEkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiBpc01heWJlU28oeCkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgZG9lc05vdEV4aXN0JDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuZXhpc3RzJC5waXBlKFxuICAgIG1hcCgoeCkgPT4gIXgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgbW9kZWxJZGVudGl0eSQ6IE9ic2VydmFibGU8RmlyZXN0b3JlTW9kZWxJZGVudGl0eT4gPSB0aGlzLmRvY3VtZW50JC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5tb2RlbElkZW50aXR5KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIC8vIE1BUks6IFN0YXRlIENoYW5nZXNcbiAgcmVhZG9ubHkgc2V0SWQgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBpZDogTWF5YmU8RmlyZXN0b3JlTW9kZWxJZD4pID0+IChpZCA/IHsgLi4uc3RhdGUsIGlkLCBrZXk6IHVuZGVmaW5lZCwgcmVmOiB1bmRlZmluZWQgfSA6IHsgLi4uc3RhdGUsIGlkIH0pKSBhcyAob2JzZXJ2YWJsZU9yVmFsdWU6IE1heWJlPHN0cmluZz4gfCBPYnNlcnZhYmxlPE1heWJlPHN0cmluZz4+KSA9PiBTdWJzY3JpcHRpb247XG4gIHJlYWRvbmx5IHNldEtleSA9IHRoaXMudXBkYXRlcigoc3RhdGUsIGtleTogTWF5YmU8RmlyZXN0b3JlTW9kZWxLZXk+KSA9PiAoa2V5ID8geyAuLi5zdGF0ZSwga2V5LCBpZDogdW5kZWZpbmVkLCByZWY6IHVuZGVmaW5lZCB9IDogeyAuLi5zdGF0ZSwga2V5IH0pKSBhcyAob2JzZXJ2YWJsZU9yVmFsdWU6IE1heWJlPHN0cmluZz4gfCBPYnNlcnZhYmxlPE1heWJlPHN0cmluZz4+KSA9PiBTdWJzY3JpcHRpb247XG4gIHJlYWRvbmx5IHNldEZsYXRLZXkgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBrZXk6IE1heWJlPFR3b1dheUZsYXRGaXJlc3RvcmVNb2RlbEtleT4pID0+IChrZXkgPyB7IC4uLnN0YXRlLCBrZXk6IGluZmVyS2V5RnJvbVR3b1dheUZsYXRGaXJlc3RvcmVNb2RlbEtleShrZXkpLCBpZDogdW5kZWZpbmVkLCByZWY6IHVuZGVmaW5lZCB9IDogeyAuLi5zdGF0ZSwga2V5IH0pKSBhcyAob2JzZXJ2YWJsZU9yVmFsdWU6IE1heWJlPHN0cmluZz4gfCBPYnNlcnZhYmxlPE1heWJlPHN0cmluZz4+KSA9PiBTdWJzY3JpcHRpb247XG4gIHJlYWRvbmx5IHNldFJlZiA9IHRoaXMudXBkYXRlcigoc3RhdGUsIHJlZjogTWF5YmU8RG9jdW1lbnRSZWZlcmVuY2U8VD4+KSA9PiAocmVmID8geyAuLi5zdGF0ZSwga2V5OiB1bmRlZmluZWQsIGlkOiB1bmRlZmluZWQsIHJlZiB9IDogeyAuLi5zdGF0ZSwgcmVmIH0pKSBhcyAob2JzZXJ2YWJsZU9yVmFsdWU6IE1heWJlPERvY3VtZW50UmVmZXJlbmNlPFQ+PiB8IE9ic2VydmFibGU8TWF5YmU8RG9jdW1lbnRSZWZlcmVuY2U8VD4+PikgPT4gU3Vic2NyaXB0aW9uO1xuXG4gIHJlYWRvbmx5IHNldFN0cmVhbU1vZGUgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBzdHJlYW1Nb2RlOiBGaXJlc3RvcmVBY2Nlc3NvclN0cmVhbU1vZGUpID0+ICh7IC4uLnN0YXRlLCBzdHJlYW1Nb2RlIH0pKTtcblxuICByZWFkb25seSBjbGVhclJlZnMgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlKSA9PiAoeyAuLi5zdGF0ZSwgaWQ6IHVuZGVmaW5lZCwga2V5OiB1bmRlZmluZWQsIHJlZjogdW5kZWZpbmVkIH0pKTtcblxuICByZWFkb25seSBzZXRGaXJlc3RvcmVDb2xsZWN0aW9uID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgZmlyZXN0b3JlQ29sbGVjdGlvbjogTWF5YmU8RmlyZXN0b3JlQ29sbGVjdGlvbjxULCBEPj4pID0+ICh7IC4uLnN0YXRlLCBmaXJlc3RvcmVDb2xsZWN0aW9uIH0pKTtcbiAgcmVhZG9ubHkgc2V0RmlyZXN0b3JlQ29sbGVjdGlvbkxpa2UgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBmaXJlc3RvcmVDb2xsZWN0aW9uTGlrZTogTWF5YmU8RmlyZXN0b3JlQ29sbGVjdGlvbkxpa2U8VCwgRD4+KSA9PiAoeyAuLi5zdGF0ZSwgZmlyZXN0b3JlQ29sbGVjdGlvbkxpa2UgfSkpO1xufVxuIl19