@dereekb/dbx-firebase 10.1.30 → 11.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/esm2022/lib/analytics/analytics.user.events.mjs +10 -15
  2. package/esm2022/lib/analytics/analytics.user.source.mjs +20 -23
  3. package/esm2022/lib/auth/appcheck/appcheck.interceptor.mjs +13 -17
  4. package/esm2022/lib/auth/firebase.auth.module.mjs +4 -4
  5. package/esm2022/lib/auth/login/firebase.login.module.mjs +14 -11
  6. package/esm2022/lib/auth/login/login.anonymous.component.mjs +4 -7
  7. package/esm2022/lib/auth/login/login.apple.component.mjs +4 -7
  8. package/esm2022/lib/auth/login/login.button.component.mjs +23 -28
  9. package/esm2022/lib/auth/login/login.component.mjs +8 -7
  10. package/esm2022/lib/auth/login/login.context.back.component.mjs +8 -10
  11. package/esm2022/lib/auth/login/login.context.directive.mjs +4 -4
  12. package/esm2022/lib/auth/login/login.email.component.mjs +4 -7
  13. package/esm2022/lib/auth/login/login.email.content.component.mjs +53 -57
  14. package/esm2022/lib/auth/login/login.email.form.component.mjs +9 -12
  15. package/esm2022/lib/auth/login/login.email.recovery.form.component.mjs +5 -8
  16. package/esm2022/lib/auth/login/login.facebook.component.mjs +4 -7
  17. package/esm2022/lib/auth/login/login.github.component.mjs +4 -7
  18. package/esm2022/lib/auth/login/login.google.component.mjs +4 -7
  19. package/esm2022/lib/auth/login/login.list.component.mjs +31 -34
  20. package/esm2022/lib/auth/login/login.microsoft.component.mjs +4 -7
  21. package/esm2022/lib/auth/login/login.service.mjs +11 -15
  22. package/esm2022/lib/auth/login/login.terms.component.mjs +11 -14
  23. package/esm2022/lib/auth/login/login.terms.simple.component.mjs +16 -19
  24. package/esm2022/lib/auth/login/login.twitter.component.mjs +4 -7
  25. package/esm2022/lib/auth/login/register.component.mjs +7 -4
  26. package/esm2022/lib/auth/login/register.email.component.mjs +4 -7
  27. package/esm2022/lib/auth/service/firebase.auth.service.mjs +52 -52
  28. package/esm2022/lib/development/development.module.mjs +10 -11
  29. package/esm2022/lib/development/development.popup.component.mjs +13 -15
  30. package/esm2022/lib/development/development.popup.content.component.mjs +41 -46
  31. package/esm2022/lib/development/development.popup.content.form.component.mjs +17 -20
  32. package/esm2022/lib/development/development.popup.directive.mjs +9 -13
  33. package/esm2022/lib/development/development.scheduler.list.component.mjs +22 -32
  34. package/esm2022/lib/development/development.scheduler.service.mjs +26 -36
  35. package/esm2022/lib/development/development.scheduler.widget.component.mjs +10 -13
  36. package/esm2022/lib/development/development.service.mjs +4 -3
  37. package/esm2022/lib/development/development.widget.service.mjs +8 -9
  38. package/esm2022/lib/firebase/emulators.mjs +12 -1
  39. package/esm2022/lib/firebase/firebase.emulator.module.mjs +4 -4
  40. package/esm2022/lib/firebase/firebase.emulator.service.mjs +6 -9
  41. package/esm2022/lib/firebase/firebase.module.mjs +25 -25
  42. package/esm2022/lib/firestore/firebase.firestore.context.service.mjs +6 -11
  43. package/esm2022/lib/firestore/firebase.firestore.module.mjs +4 -4
  44. package/esm2022/lib/function/firebase.function.module.mjs +4 -4
  45. package/esm2022/lib/model/loader/collection.change.trigger.mjs +5 -3
  46. package/esm2022/lib/model/loader/collection.change.watcher.mjs +30 -32
  47. package/esm2022/lib/model/loader/collection.loader.instance.mjs +48 -43
  48. package/esm2022/lib/model/loader/document.loader.instance.mjs +22 -20
  49. package/esm2022/lib/model/model.module.mjs +4 -4
  50. package/esm2022/lib/model/modules/model/model.history.component.mjs +14 -16
  51. package/esm2022/lib/model/modules/model/model.history.module.mjs +4 -4
  52. package/esm2022/lib/model/modules/model/model.history.popover.button.component.mjs +10 -11
  53. package/esm2022/lib/model/modules/model/model.history.popover.component.mjs +5 -8
  54. package/esm2022/lib/model/modules/model/model.tracker.service.mjs +11 -15
  55. package/esm2022/lib/model/modules/model/model.types.list.component.mjs +12 -15
  56. package/esm2022/lib/model/modules/model/model.types.module.mjs +4 -4
  57. package/esm2022/lib/model/modules/model/model.types.service.mjs +48 -40
  58. package/esm2022/lib/model/modules/model/model.types.view.directive.mjs +10 -15
  59. package/esm2022/lib/model/modules/store/model.store.module.mjs +4 -4
  60. package/esm2022/lib/model/modules/store/store.collection.change.directive.mjs +14 -20
  61. package/esm2022/lib/model/modules/store/store.collection.change.if.directive.mjs +23 -27
  62. package/esm2022/lib/model/modules/store/store.collection.directive.mjs +5 -4
  63. package/esm2022/lib/model/modules/store/store.collection.list.directive.mjs +8 -12
  64. package/esm2022/lib/model/modules/store/store.collection.mjs +39 -42
  65. package/esm2022/lib/model/modules/store/store.document.auth.directive.mjs +7 -14
  66. package/esm2022/lib/model/modules/store/store.document.directive.mjs +15 -14
  67. package/esm2022/lib/model/modules/store/store.document.mjs +125 -128
  68. package/esm2022/lib/model/modules/store/store.document.router.directive.mjs +12 -19
  69. package/esm2022/lib/model/modules/store/store.document.router.key.directive.mjs +13 -20
  70. package/esm2022/lib/model/modules/store/store.subcollection.directive.mjs +3 -3
  71. package/esm2022/lib/model/modules/store/store.subcollection.document.mjs +76 -82
  72. package/esm2022/lib/model/modules/store/store.subcollection.mjs +51 -51
  73. package/esm2022/lib/model/service/model.context.instance.mjs +11 -10
  74. package/esm2022/lib/model/system/systemstate.collection.store.directive.mjs +3 -3
  75. package/esm2022/lib/model/system/systemstate.collection.store.mjs +4 -3
  76. package/esm2022/lib/model/system/systemstate.document.store.accessor.mjs +18 -9
  77. package/esm2022/lib/model/system/systemstate.document.store.directive.mjs +3 -3
  78. package/esm2022/lib/model/system/systemstate.document.store.mjs +4 -3
  79. package/esm2022/lib/module.mjs +4 -4
  80. package/esm2022/lib/pipe/key.pipe.mjs +5 -5
  81. package/esm2022/lib/pipe/pipe.module.mjs +4 -4
  82. package/esm2022/lib/router/id.param.redirect.mjs +58 -62
  83. package/esm2022/lib/storage/firebase.storage.module.mjs +4 -4
  84. package/esm2022/lib/storage/firebase.storage.service.mjs +6 -11
  85. package/fesm2022/dereekb-dbx-firebase.mjs +1189 -1289
  86. package/fesm2022/dereekb-dbx-firebase.mjs.map +1 -1
  87. package/lib/analytics/analytics.user.events.d.ts +0 -1
  88. package/lib/analytics/analytics.user.source.d.ts +0 -1
  89. package/lib/auth/appcheck/appcheck.interceptor.d.ts +1 -5
  90. package/lib/auth/login/firebase.login.module.d.ts +2 -1
  91. package/lib/auth/login/login.button.component.d.ts +0 -1
  92. package/lib/auth/login/login.email.content.component.d.ts +0 -1
  93. package/lib/auth/login/login.list.component.d.ts +0 -1
  94. package/lib/auth/login/login.service.d.ts +2 -2
  95. package/lib/auth/login/login.terms.component.d.ts +0 -1
  96. package/lib/auth/login/login.terms.simple.component.d.ts +0 -1
  97. package/lib/auth/service/firebase.auth.service.d.ts +2 -2
  98. package/lib/development/development.module.d.ts +1 -1
  99. package/lib/development/development.popup.component.d.ts +1 -2
  100. package/lib/development/development.popup.content.component.d.ts +0 -1
  101. package/lib/development/development.popup.directive.d.ts +0 -1
  102. package/lib/development/development.scheduler.list.component.d.ts +1 -2
  103. package/lib/development/development.scheduler.service.d.ts +1 -3
  104. package/lib/development/development.scheduler.widget.component.d.ts +0 -1
  105. package/lib/development/development.widget.service.d.ts +2 -2
  106. package/lib/firebase/firebase.emulator.service.d.ts +0 -1
  107. package/lib/firestore/firebase.firestore.context.service.d.ts +1 -2
  108. package/lib/model/loader/collection.change.trigger.d.ts +1 -1
  109. package/lib/model/loader/collection.change.watcher.d.ts +8 -18
  110. package/lib/model/modules/model/model.history.component.d.ts +0 -1
  111. package/lib/model/modules/model/model.history.popover.button.component.d.ts +2 -3
  112. package/lib/model/modules/model/model.history.popover.component.d.ts +1 -2
  113. package/lib/model/modules/model/model.tracker.service.d.ts +0 -1
  114. package/lib/model/modules/model/model.types.service.d.ts +8 -10
  115. package/lib/model/modules/model/model.types.view.directive.d.ts +1 -2
  116. package/lib/model/modules/store/store.collection.change.directive.d.ts +2 -4
  117. package/lib/model/modules/store/store.collection.change.if.directive.d.ts +2 -3
  118. package/lib/model/modules/store/store.collection.list.directive.d.ts +4 -4
  119. package/lib/model/modules/store/store.document.auth.directive.d.ts +2 -3
  120. package/lib/model/modules/store/store.document.router.directive.d.ts +3 -4
  121. package/lib/model/modules/store/store.document.router.key.directive.d.ts +4 -5
  122. package/lib/model/system/systemstate.document.store.accessor.d.ts +5 -2
  123. package/lib/router/id.param.redirect.d.ts +3 -13
  124. package/lib/storage/firebase.storage.service.d.ts +1 -2
  125. package/package.json +1 -1
@@ -1,22 +1,17 @@
1
- import { Directive, Host, Input } from '@angular/core';
1
+ import { Directive, Input, inject } from '@angular/core';
2
2
  import { DbxRouterService, AbstractSubscriptionDirective } from '@dereekb/dbx-core';
3
3
  import { DbxFirebaseDocumentStoreDirective } from './store.document.directive';
4
4
  import { dbxFirebaseKeyRouteParamRedirect } from '../../../router';
5
5
  import * as i0 from "@angular/core";
6
- import * as i1 from "./store.document.directive";
7
- import * as i2 from "@dereekb/dbx-core";
8
6
  /**
9
7
  * Used for synchronizing the document store key to the param of the route. The param is interpreted as a TwoWayFlatFirestoreModelKey.
10
8
  */
11
9
  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
- }
10
+ dbxFirebaseDocumentStoreDirective = inject((DbxFirebaseDocumentStoreDirective), { host: true });
11
+ dbxRouterService = inject(DbxRouterService);
12
+ _redirectInstance = dbxFirebaseKeyRouteParamRedirect(this.dbxRouterService);
13
+ keyFromParams$ = this._redirectInstance.paramValue$;
14
+ key$ = this._redirectInstance.value$;
20
15
  ngOnInit() {
21
16
  this.sub = this.dbxFirebaseDocumentStoreDirective.store.setFlatKey(this.keyFromParams$); // use from the params, as the params should get updated eventually to the key$ value
22
17
  this._redirectInstance.init();
@@ -27,10 +22,10 @@ export class DbxFirebaseDocumentStoreRouteKeyDirective extends AbstractSubscript
27
22
  }
28
23
  // MARK: Input
29
24
  get keyParam() {
30
- return this._redirectInstance.paramKey;
25
+ return this._redirectInstance.getParamKey();
31
26
  }
32
- set keyParam(keyParam) {
33
- this._redirectInstance.paramKey = keyParam;
27
+ set keyParam(idParam) {
28
+ this._redirectInstance.setParamKey(idParam);
34
29
  }
35
30
  set dbxFirebaseDocumentStoreRouteKeyDefault(defaultValue) {
36
31
  this._redirectInstance.setDefaultValue(defaultValue);
@@ -44,17 +39,15 @@ export class DbxFirebaseDocumentStoreRouteKeyDirective extends AbstractSubscript
44
39
  set dbxFirebaseDocumentStoreRouteKeyDefaultDecision(decider) {
45
40
  this._redirectInstance.setDecider(decider);
46
41
  }
47
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDocumentStoreRouteKeyDirective, deps: [{ token: i1.DbxFirebaseDocumentStoreDirective, host: true }, { token: i2.DbxRouterService }], target: i0.ɵɵFactoryTarget.Directive }); }
48
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: DbxFirebaseDocumentStoreRouteKeyDirective, selector: "[dbxFirebaseDocumentStoreRouteKey]", inputs: { keyParam: ["dbxFirebaseDocumentStoreRouteKey", "keyParam"], dbxFirebaseDocumentStoreRouteKeyDefault: "dbxFirebaseDocumentStoreRouteKeyDefault", dbxFirebaseDocumentStoreRouteKeyDefaultRedirect: "dbxFirebaseDocumentStoreRouteKeyDefaultRedirect", dbxFirebaseDocumentStoreRouteKeyDefaultDecision: "dbxFirebaseDocumentStoreRouteKeyDefaultDecision" }, usesInheritance: true, ngImport: i0 }); }
42
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDocumentStoreRouteKeyDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
43
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: DbxFirebaseDocumentStoreRouteKeyDirective, selector: "[dbxFirebaseDocumentStoreRouteKey]", inputs: { keyParam: ["dbxFirebaseDocumentStoreRouteKey", "keyParam"], dbxFirebaseDocumentStoreRouteKeyDefault: "dbxFirebaseDocumentStoreRouteKeyDefault", dbxFirebaseDocumentStoreRouteKeyDefaultRedirect: "dbxFirebaseDocumentStoreRouteKeyDefaultRedirect", dbxFirebaseDocumentStoreRouteKeyDefaultDecision: "dbxFirebaseDocumentStoreRouteKeyDefaultDecision" }, usesInheritance: true, ngImport: i0 });
49
44
  }
50
45
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDocumentStoreRouteKeyDirective, decorators: [{
51
46
  type: Directive,
52
47
  args: [{
53
48
  selector: '[dbxFirebaseDocumentStoreRouteKey]'
54
49
  }]
55
- }], ctorParameters: function () { return [{ type: i1.DbxFirebaseDocumentStoreDirective, decorators: [{
56
- type: Host
57
- }] }, { type: i2.DbxRouterService }]; }, propDecorators: { keyParam: [{
50
+ }], propDecorators: { keyParam: [{
58
51
  type: Input,
59
52
  args: ['dbxFirebaseDocumentStoreRouteKey']
60
53
  }], dbxFirebaseDocumentStoreRouteKeyDefault: [{
@@ -64,4 +57,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
64
57
  }], dbxFirebaseDocumentStoreRouteKeyDefaultDecision: [{
65
58
  type: Input
66
59
  }] } });
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuZG9jdW1lbnQucm91dGVyLmtleS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9tb2R1bGVzL3N0b3JlL3N0b3JlLmRvY3VtZW50LnJvdXRlci5rZXkuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBYSxTQUFTLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRixPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUcvRSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQUduRTs7R0FFRztBQUlILE1BQU0sT0FBTyx5Q0FBdUQsU0FBUSw2QkFBNkI7SUFLdkcsWUFBNkIsaUNBQXVFLEVBQVcsZ0JBQWtDO1FBQy9JLEtBQUssRUFBRSxDQUFDO1FBRG1CLHNDQUFpQyxHQUFqQyxpQ0FBaUMsQ0FBc0M7UUFBVyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBSnpJLHNCQUFpQixHQUFHLGdDQUFnQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzNFLG1CQUFjLEdBQWdDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUM7UUFDakYsU0FBSSxHQUFtRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDO0lBSTlGLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsaUNBQWlDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxxRkFBcUY7UUFDOUssSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFUSxXQUFXO1FBQ2xCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELGNBQWM7SUFDZCxJQUNJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUM7SUFDekMsQ0FBQztJQUVELElBQUksUUFBUSxDQUFDLFFBQWdCO1FBQzNCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzdDLENBQUM7SUFFRCxJQUNJLHVDQUF1QyxDQUFDLFlBQW9EO1FBQzlGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFDSSwrQ0FBK0MsQ0FBQyxRQUE2QjtRQUMvRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLENBQUMsUUFBUSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsa0JBQWtCO0lBQ25GLENBQUM7SUFFRCxJQUNJLCtDQUErQyxDQUFDLE9BQTREO1FBQzlHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0MsQ0FBQzsrR0E3Q1UseUNBQXlDO21HQUF6Qyx5Q0FBeUM7OzRGQUF6Qyx5Q0FBeUM7a0JBSHJELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9DQUFvQztpQkFDL0M7OzBCQU1jLElBQUk7MkVBZ0JiLFFBQVE7c0JBRFgsS0FBSzt1QkFBQyxrQ0FBa0M7Z0JBVXJDLHVDQUF1QztzQkFEMUMsS0FBSztnQkFTRiwrQ0FBK0M7c0JBRGxELEtBQUs7Z0JBTUYsK0NBQStDO3NCQURsRCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgT25EZXN0cm95LCBEaXJlY3RpdmUsIEhvc3QsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERieFJvdXRlclNlcnZpY2UsIEFic3RyYWN0U3Vic2NyaXB0aW9uRGlyZWN0aXZlIH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRGlyZWN0aXZlIH0gZnJvbSAnLi9zdG9yZS5kb2N1bWVudC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTWF5YmUsIE1vZGVsS2V5IH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBNYXliZU9ic2VydmFibGVPclZhbHVlR2V0dGVyLCBTd2l0Y2hNYXBUb0RlZmF1bHRGaWx0ZXJGdW5jdGlvbiB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgZGJ4RmlyZWJhc2VLZXlSb3V0ZVBhcmFtUmVkaXJlY3QgfSBmcm9tICcuLi8uLi8uLi9yb3V0ZXInO1xuaW1wb3J0IHsgVHdvV2F5RmxhdEZpcmVzdG9yZU1vZGVsS2V5IH0gZnJvbSAnQGRlcmVla2IvZmlyZWJhc2UnO1xuXG4vKipcbiAqIFVzZWQgZm9yIHN5bmNocm9uaXppbmcgdGhlIGRvY3VtZW50IHN0b3JlIGtleSB0byB0aGUgcGFyYW0gb2YgdGhlIHJvdXRlLiBUaGUgcGFyYW0gaXMgaW50ZXJwcmV0ZWQgYXMgYSBUd29XYXlGbGF0RmlyZXN0b3JlTW9kZWxLZXkuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tkYnhGaXJlYmFzZURvY3VtZW50U3RvcmVSb3V0ZUtleV0nXG59KVxuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZVJvdXRlS2V5RGlyZWN0aXZlPFQgPSB1bmtub3duPiBleHRlbmRzIEFic3RyYWN0U3Vic2NyaXB0aW9uRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIF9yZWRpcmVjdEluc3RhbmNlID0gZGJ4RmlyZWJhc2VLZXlSb3V0ZVBhcmFtUmVkaXJlY3QodGhpcy5kYnhSb3V0ZXJTZXJ2aWNlKTtcbiAgcmVhZG9ubHkga2V5RnJvbVBhcmFtcyQ6IE9ic2VydmFibGU8TWF5YmU8TW9kZWxLZXk+PiA9IHRoaXMuX3JlZGlyZWN0SW5zdGFuY2UucGFyYW1WYWx1ZSQ7XG4gIHJlYWRvbmx5IGtleSQ6IE9ic2VydmFibGU8TWF5YmU8VHdvV2F5RmxhdEZpcmVzdG9yZU1vZGVsS2V5Pj4gPSB0aGlzLl9yZWRpcmVjdEluc3RhbmNlLnZhbHVlJDtcblxuICBjb25zdHJ1Y3RvcihASG9zdCgpIHJlYWRvbmx5IGRieEZpcmViYXNlRG9jdW1lbnRTdG9yZURpcmVjdGl2ZTogRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRGlyZWN0aXZlPFQ+LCByZWFkb25seSBkYnhSb3V0ZXJTZXJ2aWNlOiBEYnhSb3V0ZXJTZXJ2aWNlKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3ViID0gdGhpcy5kYnhGaXJlYmFzZURvY3VtZW50U3RvcmVEaXJlY3RpdmUuc3RvcmUuc2V0RmxhdEtleSh0aGlzLmtleUZyb21QYXJhbXMkKTsgLy8gdXNlIGZyb20gdGhlIHBhcmFtcywgYXMgdGhlIHBhcmFtcyBzaG91bGQgZ2V0IHVwZGF0ZWQgZXZlbnR1YWxseSB0byB0aGUga2V5JCB2YWx1ZVxuICAgIHRoaXMuX3JlZGlyZWN0SW5zdGFuY2UuaW5pdCgpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB0aGlzLl9yZWRpcmVjdEluc3RhbmNlLmRlc3Ryb3koKTtcbiAgfVxuXG4gIC8vIE1BUks6IElucHV0XG4gIEBJbnB1dCgnZGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlUm91dGVLZXknKVxuICBnZXQga2V5UGFyYW0oKSB7XG4gICAgcmV0dXJuIHRoaXMuX3JlZGlyZWN0SW5zdGFuY2UucGFyYW1LZXk7XG4gIH1cblxuICBzZXQga2V5UGFyYW0oa2V5UGFyYW06IHN0cmluZykge1xuICAgIHRoaXMuX3JlZGlyZWN0SW5zdGFuY2UucGFyYW1LZXkgPSBrZXlQYXJhbTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBkYnhGaXJlYmFzZURvY3VtZW50U3RvcmVSb3V0ZUtleURlZmF1bHQoZGVmYXVsdFZhbHVlOiBNYXliZU9ic2VydmFibGVPclZhbHVlR2V0dGVyPE1vZGVsS2V5Pikge1xuICAgIHRoaXMuX3JlZGlyZWN0SW5zdGFuY2Uuc2V0RGVmYXVsdFZhbHVlKGRlZmF1bHRWYWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gZW5hYmxlIHRoZSByZWRpcmVjdGlvbi4gSXMgZW5hYmxlZCBieSBkZWZhdWx0LlxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IGRieEZpcmViYXNlRG9jdW1lbnRTdG9yZVJvdXRlS2V5RGVmYXVsdFJlZGlyZWN0KHJlZGlyZWN0OiBNYXliZTxib29sZWFuPiB8ICcnKSB7XG4gICAgdGhpcy5fcmVkaXJlY3RJbnN0YW5jZS5zZXRSZWRpcmVjdEVuYWJsZWQocmVkaXJlY3QgIT09IGZhbHNlKTsgLy8gdHJ1ZSBieSBkZWZhdWx0XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgZGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlUm91dGVLZXlEZWZhdWx0RGVjaXNpb24oZGVjaWRlcjogc3RyaW5nIHwgU3dpdGNoTWFwVG9EZWZhdWx0RmlsdGVyRnVuY3Rpb248TW9kZWxLZXk+KSB7XG4gICAgdGhpcy5fcmVkaXJlY3RJbnN0YW5jZS5zZXREZWNpZGVyKGRlY2lkZXIpO1xuICB9XG59XG4iXX0=
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuZG9jdW1lbnQucm91dGVyLmtleS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9tb2R1bGVzL3N0b3JlL3N0b3JlLmRvY3VtZW50LnJvdXRlci5rZXkuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBYSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRixPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUcvRSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFHbkU7O0dBRUc7QUFJSCxNQUFNLE9BQU8seUNBQXVELFNBQVEsNkJBQTZCO0lBQzlGLGlDQUFpQyxHQUFHLE1BQU0sQ0FBQyxDQUFBLGlDQUFvQyxDQUFBLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNqRyxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUVwQyxpQkFBaUIsR0FBRyxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUVwRixjQUFjLEdBQWdDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUM7SUFDakYsSUFBSSxHQUFtRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDO0lBRTlGLFFBQVE7UUFDTixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLHFGQUFxRjtRQUM5SyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVRLFdBQVc7UUFDbEIsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsY0FBYztJQUNkLElBQ0ksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzlDLENBQUM7SUFFRCxJQUFJLFFBQVEsQ0FBQyxPQUFlO1FBQzFCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELElBQ0ksdUNBQXVDLENBQUMsWUFBb0Q7UUFDOUYsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUNJLCtDQUErQyxDQUFDLFFBQTZCO1FBQy9FLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxrQkFBa0I7SUFDbkYsQ0FBQztJQUVELElBQ0ksK0NBQStDLENBQUMsT0FBNEQ7UUFDOUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3QyxDQUFDO3dHQTdDVSx5Q0FBeUM7NEZBQXpDLHlDQUF5Qzs7NEZBQXpDLHlDQUF5QztrQkFIckQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0NBQW9DO2lCQUMvQzs4QkFzQkssUUFBUTtzQkFEWCxLQUFLO3VCQUFDLGtDQUFrQztnQkFVckMsdUNBQXVDO3NCQUQxQyxLQUFLO2dCQVNGLCtDQUErQztzQkFEbEQsS0FBSztnQkFNRiwrQ0FBK0M7c0JBRGxELEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBPbkRlc3Ryb3ksIERpcmVjdGl2ZSwgSW5wdXQsIE9uSW5pdCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYnhSb3V0ZXJTZXJ2aWNlLCBBYnN0cmFjdFN1YnNjcmlwdGlvbkRpcmVjdGl2ZSB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcbmltcG9ydCB7IERieEZpcmViYXNlRG9jdW1lbnRTdG9yZURpcmVjdGl2ZSB9IGZyb20gJy4vc3RvcmUuZG9jdW1lbnQuZGlyZWN0aXZlJztcbmltcG9ydCB7IE1heWJlLCBNb2RlbEtleSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgTWF5YmVPYnNlcnZhYmxlT3JWYWx1ZUdldHRlciwgU3dpdGNoTWFwVG9EZWZhdWx0RmlsdGVyRnVuY3Rpb24gfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IGRieEZpcmViYXNlS2V5Um91dGVQYXJhbVJlZGlyZWN0IH0gZnJvbSAnLi4vLi4vLi4vcm91dGVyJztcbmltcG9ydCB7IFR3b1dheUZsYXRGaXJlc3RvcmVNb2RlbEtleSB9IGZyb20gJ0BkZXJlZWtiL2ZpcmViYXNlJztcblxuLyoqXG4gKiBVc2VkIGZvciBzeW5jaHJvbml6aW5nIHRoZSBkb2N1bWVudCBzdG9yZSBrZXkgdG8gdGhlIHBhcmFtIG9mIHRoZSByb3V0ZS4gVGhlIHBhcmFtIGlzIGludGVycHJldGVkIGFzIGEgVHdvV2F5RmxhdEZpcmVzdG9yZU1vZGVsS2V5LlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlUm91dGVLZXldJ1xufSlcbmV4cG9ydCBjbGFzcyBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVSb3V0ZUtleURpcmVjdGl2ZTxUID0gdW5rbm93bj4gZXh0ZW5kcyBBYnN0cmFjdFN1YnNjcmlwdGlvbkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcmVhZG9ubHkgZGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRGlyZWN0aXZlID0gaW5qZWN0KERieEZpcmViYXNlRG9jdW1lbnRTdG9yZURpcmVjdGl2ZTxUPiwgeyBob3N0OiB0cnVlIH0pO1xuICByZWFkb25seSBkYnhSb3V0ZXJTZXJ2aWNlID0gaW5qZWN0KERieFJvdXRlclNlcnZpY2UpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3JlZGlyZWN0SW5zdGFuY2UgPSBkYnhGaXJlYmFzZUtleVJvdXRlUGFyYW1SZWRpcmVjdCh0aGlzLmRieFJvdXRlclNlcnZpY2UpO1xuXG4gIHJlYWRvbmx5IGtleUZyb21QYXJhbXMkOiBPYnNlcnZhYmxlPE1heWJlPE1vZGVsS2V5Pj4gPSB0aGlzLl9yZWRpcmVjdEluc3RhbmNlLnBhcmFtVmFsdWUkO1xuICByZWFkb25seSBrZXkkOiBPYnNlcnZhYmxlPE1heWJlPFR3b1dheUZsYXRGaXJlc3RvcmVNb2RlbEtleT4+ID0gdGhpcy5fcmVkaXJlY3RJbnN0YW5jZS52YWx1ZSQ7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWIgPSB0aGlzLmRieEZpcmViYXNlRG9jdW1lbnRTdG9yZURpcmVjdGl2ZS5zdG9yZS5zZXRGbGF0S2V5KHRoaXMua2V5RnJvbVBhcmFtcyQpOyAvLyB1c2UgZnJvbSB0aGUgcGFyYW1zLCBhcyB0aGUgcGFyYW1zIHNob3VsZCBnZXQgdXBkYXRlZCBldmVudHVhbGx5IHRvIHRoZSBrZXkkIHZhbHVlXG4gICAgdGhpcy5fcmVkaXJlY3RJbnN0YW5jZS5pbml0KCk7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIHRoaXMuX3JlZGlyZWN0SW5zdGFuY2UuZGVzdHJveSgpO1xuICB9XG5cbiAgLy8gTUFSSzogSW5wdXRcbiAgQElucHV0KCdkYnhGaXJlYmFzZURvY3VtZW50U3RvcmVSb3V0ZUtleScpXG4gIGdldCBrZXlQYXJhbSgpIHtcbiAgICByZXR1cm4gdGhpcy5fcmVkaXJlY3RJbnN0YW5jZS5nZXRQYXJhbUtleSgpO1xuICB9XG5cbiAgc2V0IGtleVBhcmFtKGlkUGFyYW06IHN0cmluZykge1xuICAgIHRoaXMuX3JlZGlyZWN0SW5zdGFuY2Uuc2V0UGFyYW1LZXkoaWRQYXJhbSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgZGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlUm91dGVLZXlEZWZhdWx0KGRlZmF1bHRWYWx1ZTogTWF5YmVPYnNlcnZhYmxlT3JWYWx1ZUdldHRlcjxNb2RlbEtleT4pIHtcbiAgICB0aGlzLl9yZWRpcmVjdEluc3RhbmNlLnNldERlZmF1bHRWYWx1ZShkZWZhdWx0VmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIGVuYWJsZSB0aGUgcmVkaXJlY3Rpb24uIElzIGVuYWJsZWQgYnkgZGVmYXVsdC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBkYnhGaXJlYmFzZURvY3VtZW50U3RvcmVSb3V0ZUtleURlZmF1bHRSZWRpcmVjdChyZWRpcmVjdDogTWF5YmU8Ym9vbGVhbj4gfCAnJykge1xuICAgIHRoaXMuX3JlZGlyZWN0SW5zdGFuY2Uuc2V0UmVkaXJlY3RFbmFibGVkKHJlZGlyZWN0ICE9PSBmYWxzZSk7IC8vIHRydWUgYnkgZGVmYXVsdFxuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IGRieEZpcmViYXNlRG9jdW1lbnRTdG9yZVJvdXRlS2V5RGVmYXVsdERlY2lzaW9uKGRlY2lkZXI6IHN0cmluZyB8IFN3aXRjaE1hcFRvRGVmYXVsdEZpbHRlckZ1bmN0aW9uPE1vZGVsS2V5Pikge1xuICAgIHRoaXMuX3JlZGlyZWN0SW5zdGFuY2Uuc2V0RGVjaWRlcihkZWNpZGVyKTtcbiAgfVxufVxuIl19
@@ -9,8 +9,8 @@ export class DbxFirebaseCollectionWithParentStoreDirective extends DbxFirebaseCo
9
9
  set sourceMode(sourceMode) {
10
10
  this.store.setSourceMode(sourceMode);
11
11
  }
12
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseCollectionWithParentStoreDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
13
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: DbxFirebaseCollectionWithParentStoreDirective, inputs: { sourceMode: "sourceMode" }, usesInheritance: true, ngImport: i0 }); }
12
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseCollectionWithParentStoreDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
13
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: DbxFirebaseCollectionWithParentStoreDirective, inputs: { sourceMode: "sourceMode" }, usesInheritance: true, ngImport: i0 });
14
14
  }
15
15
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseCollectionWithParentStoreDirective, decorators: [{
16
16
  type: Directive
@@ -27,4 +27,4 @@ export function provideDbxFirebaseCollectionWithParentStoreDirective(sourceType,
27
27
  ];
28
28
  return providers;
29
29
  }
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuc3ViY29sbGVjdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9tb2R1bGVzL3N0b3JlL3N0b3JlLnN1YmNvbGxlY3Rpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBa0IsTUFBTSxlQUFlLENBQUM7QUFHN0UsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLDBDQUEwQyxFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBRy9IOztHQUVHO0FBRUgsTUFBTSxPQUFnQiw2Q0FBeVIsU0FBUSxtQ0FBNEM7SUFDalcsZUFBZTtJQUNmLElBQ0ksVUFBVSxDQUFDLFVBQWdFO1FBQzdFLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7K0dBTG1CLDZDQUE2QzttR0FBN0MsNkNBQTZDOzs0RkFBN0MsNkNBQTZDO2tCQURsRSxTQUFTOzhCQUlKLFVBQVU7c0JBRGIsS0FBSzs7QUFrQlIsTUFBTSxVQUFVLG9EQUFvRCxDQUE0TixVQUFtQixFQUFFLFNBQW1CO0lBQ3RVLE1BQU0sU0FBUyxHQUFlO1FBQzVCLEdBQUcsMENBQTBDLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQztRQUNwRTtZQUNFLE9BQU8sRUFBRSw2Q0FBNkM7WUFDdEQsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUM7U0FDMUM7S0FDRixDQUFDO0lBRUYsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgZm9yd2FyZFJlZiwgSW5wdXQsIFByb3ZpZGVyLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGaXJlc3RvcmVEb2N1bWVudCB9IGZyb20gJ0BkZXJlZWtiL2ZpcmViYXNlJztcbmltcG9ydCB7IE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZURpcmVjdGl2ZSwgcHJvdmlkZURieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlRGlyZWN0aXZlIH0gZnJvbSAnLi9zdG9yZS5jb2xsZWN0aW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmUsIERieEZpcmViYXNlQ29tcG9uZW50U3RvcmVXaXRoUGFyZW50U291cmNlTW9kZSB9IGZyb20gJy4vc3RvcmUuc3ViY29sbGVjdGlvbic7XG5cbi8qKlxuICogQWJzdHJhY3QgZGlyZWN0aXZlIHRoYXQgY29udGFpbnMgYSBEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmUgYW5kIHByb3ZpZGVzIGFuIGludGVyZmFjZSBmb3IgY29tbXVuaWNhdGluZyB3aXRoIG90aGVyIGRpcmVjdGl2ZXMuXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIERieEZpcmViYXNlQ29sbGVjdGlvbldpdGhQYXJlbnRTdG9yZURpcmVjdGl2ZTxULCBQVCwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4sIFBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8UFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8UFQ+LCBTIGV4dGVuZHMgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uV2l0aFBhcmVudFN0b3JlPFQsIFBULCBELCBQRD4gPSBEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmU8VCwgUFQsIEQsIFBEPj4gZXh0ZW5kcyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZURpcmVjdGl2ZTxULCBELCBTPiB7XG4gIC8vIE1BUks6IElucHV0c1xuICBASW5wdXQoKVxuICBzZXQgc291cmNlTW9kZShzb3VyY2VNb2RlOiBNYXliZTxEYnhGaXJlYmFzZUNvbXBvbmVudFN0b3JlV2l0aFBhcmVudFNvdXJjZU1vZGU+KSB7XG4gICAgdGhpcy5zdG9yZS5zZXRTb3VyY2VNb2RlKHNvdXJjZU1vZGUpO1xuICB9XG59XG5cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbi8vIFRoZSB1c2Ugb2YgYW55IGhlcmUgZG9lcyBub3QgZGVncmFkZSB0aGUgdHlwZS1zYWZldHk7IHdlIHdhbnQgdG8gc2ltcGx5IG1hdGNoIHRoYXQgdGhlIFN0b3JlIHR5cGUgUyBpcyB1c2VkIGluIHRoZSBEaXJlY3RpdmUgdHlwZSBDIHRvIHByb3ZpZGUgaXQuXG5cbi8qKlxuICogQ29uZmlndXJlcyBwcm92aWRlcnMgZm9yIGEgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uV2l0aFBhcmVudFN0b3JlRGlyZWN0aXZlLlxuICpcbiAqIENhbiBvcHRpb25hbGx5IGFsc28gcHJvdmlkZSB0aGUgYWN0dWFsIHN0b3JlIHR5cGUgdG8gaW5jbHVkZSBpbiB0aGUgcHJvdmlkZXJzIGFycmF5IHNvIGl0IGlzIGluc3RhbnRpYXRlZCBieSBBbmd1bGFyLlxuICpcbiAqIEBwYXJhbSBzb3VyY2VUeXBlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlRGJ4RmlyZWJhc2VDb2xsZWN0aW9uV2l0aFBhcmVudFN0b3JlRGlyZWN0aXZlPFMgZXh0ZW5kcyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmVEaXJlY3RpdmU8YW55LCBhbnksIGFueSwgYW55LCBhbnk+Pihzb3VyY2VUeXBlOiBUeXBlPFM+KTogUHJvdmlkZXJbXTtcbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlRGJ4RmlyZWJhc2VDb2xsZWN0aW9uV2l0aFBhcmVudFN0b3JlRGlyZWN0aXZlPFMgZXh0ZW5kcyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmU8YW55LCBhbnksIGFueSwgYW55PiwgQyBleHRlbmRzIERieEZpcmViYXNlQ29sbGVjdGlvbldpdGhQYXJlbnRTdG9yZURpcmVjdGl2ZTxhbnksIGFueSwgYW55LCBhbnksIFM+ID0gRGJ4RmlyZWJhc2VDb2xsZWN0aW9uV2l0aFBhcmVudFN0b3JlRGlyZWN0aXZlPGFueSwgYW55LCBhbnksIGFueSwgUz4+KHNvdXJjZVR5cGU6IFR5cGU8Qz4sIHN0b3JlVHlwZT86IFR5cGU8Uz4pOiBQcm92aWRlcltdO1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmVEaXJlY3RpdmU8UyBleHRlbmRzIERieEZpcmViYXNlQ29sbGVjdGlvbldpdGhQYXJlbnRTdG9yZTxhbnksIGFueSwgYW55LCBhbnk+LCBDIGV4dGVuZHMgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uV2l0aFBhcmVudFN0b3JlRGlyZWN0aXZlPGFueSwgYW55LCBhbnksIGFueSwgUz4gPSBEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmVEaXJlY3RpdmU8YW55LCBhbnksIGFueSwgYW55LCBTPj4oc291cmNlVHlwZTogVHlwZTxDPiwgc3RvcmVUeXBlPzogVHlwZTxTPik6IFByb3ZpZGVyW10ge1xuICBjb25zdCBwcm92aWRlcnM6IFByb3ZpZGVyW10gPSBbXG4gICAgLi4ucHJvdmlkZURieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlRGlyZWN0aXZlKHNvdXJjZVR5cGUsIHN0b3JlVHlwZSksXG4gICAge1xuICAgICAgcHJvdmlkZTogRGJ4RmlyZWJhc2VDb2xsZWN0aW9uV2l0aFBhcmVudFN0b3JlRGlyZWN0aXZlLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gc291cmNlVHlwZSlcbiAgICB9XG4gIF07XG5cbiAgcmV0dXJuIHByb3ZpZGVycztcbn1cbiJdfQ==
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuc3ViY29sbGVjdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9tb2R1bGVzL3N0b3JlL3N0b3JlLnN1YmNvbGxlY3Rpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBa0IsTUFBTSxlQUFlLENBQUM7QUFHN0UsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLDBDQUEwQyxFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBRy9IOztHQUVHO0FBRUgsTUFBTSxPQUFnQiw2Q0FBeVIsU0FBUSxtQ0FBNEM7SUFDalcsZUFBZTtJQUNmLElBQ0ksVUFBVSxDQUFDLFVBQWdFO1FBQzdFLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7d0dBTG1CLDZDQUE2Qzs0RkFBN0MsNkNBQTZDOzs0RkFBN0MsNkNBQTZDO2tCQURsRSxTQUFTOzhCQUlKLFVBQVU7c0JBRGIsS0FBSzs7QUFrQlIsTUFBTSxVQUFVLG9EQUFvRCxDQUE0TixVQUFtQixFQUFFLFNBQW1CO0lBQ3RVLE1BQU0sU0FBUyxHQUFlO1FBQzVCLEdBQUcsMENBQTBDLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQztRQUNwRTtZQUNFLE9BQU8sRUFBRSw2Q0FBNkM7WUFDdEQsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUM7U0FDMUM7S0FDRixDQUFDO0lBRUYsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgZm9yd2FyZFJlZiwgSW5wdXQsIFByb3ZpZGVyLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGaXJlc3RvcmVEb2N1bWVudCB9IGZyb20gJ0BkZXJlZWtiL2ZpcmViYXNlJztcbmltcG9ydCB7IE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZURpcmVjdGl2ZSwgcHJvdmlkZURieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlRGlyZWN0aXZlIH0gZnJvbSAnLi9zdG9yZS5jb2xsZWN0aW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmUsIERieEZpcmViYXNlQ29tcG9uZW50U3RvcmVXaXRoUGFyZW50U291cmNlTW9kZSB9IGZyb20gJy4vc3RvcmUuc3ViY29sbGVjdGlvbic7XG5cbi8qKlxuICogQWJzdHJhY3QgZGlyZWN0aXZlIHRoYXQgY29udGFpbnMgYSBEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmUgYW5kIHByb3ZpZGVzIGFuIGludGVyZmFjZSBmb3IgY29tbXVuaWNhdGluZyB3aXRoIG90aGVyIGRpcmVjdGl2ZXMuXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIERieEZpcmViYXNlQ29sbGVjdGlvbldpdGhQYXJlbnRTdG9yZURpcmVjdGl2ZTxULCBQVCwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4sIFBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8UFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8UFQ+LCBTIGV4dGVuZHMgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uV2l0aFBhcmVudFN0b3JlPFQsIFBULCBELCBQRD4gPSBEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmU8VCwgUFQsIEQsIFBEPj4gZXh0ZW5kcyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZURpcmVjdGl2ZTxULCBELCBTPiB7XG4gIC8vIE1BUks6IElucHV0c1xuICBASW5wdXQoKVxuICBzZXQgc291cmNlTW9kZShzb3VyY2VNb2RlOiBNYXliZTxEYnhGaXJlYmFzZUNvbXBvbmVudFN0b3JlV2l0aFBhcmVudFNvdXJjZU1vZGU+KSB7XG4gICAgdGhpcy5zdG9yZS5zZXRTb3VyY2VNb2RlKHNvdXJjZU1vZGUpO1xuICB9XG59XG5cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbi8vIFRoZSB1c2Ugb2YgYW55IGhlcmUgZG9lcyBub3QgZGVncmFkZSB0aGUgdHlwZS1zYWZldHk7IHdlIHdhbnQgdG8gc2ltcGx5IG1hdGNoIHRoYXQgdGhlIFN0b3JlIHR5cGUgUyBpcyB1c2VkIGluIHRoZSBEaXJlY3RpdmUgdHlwZSBDIHRvIHByb3ZpZGUgaXQuXG5cbi8qKlxuICogQ29uZmlndXJlcyBwcm92aWRlcnMgZm9yIGEgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uV2l0aFBhcmVudFN0b3JlRGlyZWN0aXZlLlxuICpcbiAqIENhbiBvcHRpb25hbGx5IGFsc28gcHJvdmlkZSB0aGUgYWN0dWFsIHN0b3JlIHR5cGUgdG8gaW5jbHVkZSBpbiB0aGUgcHJvdmlkZXJzIGFycmF5IHNvIGl0IGlzIGluc3RhbnRpYXRlZCBieSBBbmd1bGFyLlxuICpcbiAqIEBwYXJhbSBzb3VyY2VUeXBlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlRGJ4RmlyZWJhc2VDb2xsZWN0aW9uV2l0aFBhcmVudFN0b3JlRGlyZWN0aXZlPFMgZXh0ZW5kcyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmVEaXJlY3RpdmU8YW55LCBhbnksIGFueSwgYW55LCBhbnk+Pihzb3VyY2VUeXBlOiBUeXBlPFM+KTogUHJvdmlkZXJbXTtcbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlRGJ4RmlyZWJhc2VDb2xsZWN0aW9uV2l0aFBhcmVudFN0b3JlRGlyZWN0aXZlPFMgZXh0ZW5kcyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmU8YW55LCBhbnksIGFueSwgYW55PiwgQyBleHRlbmRzIERieEZpcmViYXNlQ29sbGVjdGlvbldpdGhQYXJlbnRTdG9yZURpcmVjdGl2ZTxhbnksIGFueSwgYW55LCBhbnksIFM+ID0gRGJ4RmlyZWJhc2VDb2xsZWN0aW9uV2l0aFBhcmVudFN0b3JlRGlyZWN0aXZlPGFueSwgYW55LCBhbnksIGFueSwgUz4+KHNvdXJjZVR5cGU6IFR5cGU8Qz4sIHN0b3JlVHlwZT86IFR5cGU8Uz4pOiBQcm92aWRlcltdO1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmVEaXJlY3RpdmU8UyBleHRlbmRzIERieEZpcmViYXNlQ29sbGVjdGlvbldpdGhQYXJlbnRTdG9yZTxhbnksIGFueSwgYW55LCBhbnk+LCBDIGV4dGVuZHMgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uV2l0aFBhcmVudFN0b3JlRGlyZWN0aXZlPGFueSwgYW55LCBhbnksIGFueSwgUz4gPSBEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmVEaXJlY3RpdmU8YW55LCBhbnksIGFueSwgYW55LCBTPj4oc291cmNlVHlwZTogVHlwZTxDPiwgc3RvcmVUeXBlPzogVHlwZTxTPik6IFByb3ZpZGVyW10ge1xuICBjb25zdCBwcm92aWRlcnM6IFByb3ZpZGVyW10gPSBbXG4gICAgLi4ucHJvdmlkZURieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlRGlyZWN0aXZlKHNvdXJjZVR5cGUsIHN0b3JlVHlwZSksXG4gICAge1xuICAgICAgcHJvdmlkZTogRGJ4RmlyZWJhc2VDb2xsZWN0aW9uV2l0aFBhcmVudFN0b3JlRGlyZWN0aXZlLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gc291cmNlVHlwZSlcbiAgICB9XG4gIF07XG5cbiAgcmV0dXJuIHByb3ZpZGVycztcbn1cbiJdfQ==
@@ -9,51 +9,48 @@ import * as i0 from "@angular/core";
9
9
  * Abstract DbxFirebaseDocumentStore that has a parent document from which is derives it's FiresbaseCollection from.
10
10
  */
11
11
  export class AbstractDbxFirebaseDocumentWithParentStore extends AbstractDbxFirebaseDocumentStore {
12
- constructor() {
13
- super(...arguments);
14
- // MARK: Effects
15
- this.setParentStore = setParentStoreEffect(this);
16
- this.setParent = this.effect((input) => {
17
- return input.pipe(switchMap((parent) => {
18
- this._setParentDocument(parent);
19
- if (parent) {
20
- return this.collectionFactory$.pipe(tap((collectionFactory) => {
21
- const collection = collectionFactory(parent);
22
- this.setFirestoreCollection(collection);
23
- }));
24
- }
25
- else {
26
- // clear the current collection
27
- this.setFirestoreCollection(undefined);
28
- // do nothing until a parent is returned.
29
- return NEVER;
30
- }
31
- }));
32
- });
33
- this._setParent = this.setParent;
34
- // MARK: Accessors
35
- /**
36
- * Returns the parent model key given the current key value.
37
- */
38
- this.keyParentKey$ = this.key$.pipe(map((x) => firestoreModelKeyParentKey(x, 1)), distinctUntilChanged(), shareReplay(1));
39
- this.currentParent$ = this.state$.pipe(map((x) => x.parent), distinctUntilChanged(), shareReplay(1));
40
- this.currentParentKey$ = this.state$.pipe(map((x) => x.parent?.key), distinctUntilChanged(), shareReplay(1));
41
- this.parent$ = this.currentParent$.pipe(filterMaybe());
42
- this.parentKey$ = this.currentParentKey$.pipe(filterMaybe());
43
- this.currentCollectionFactory$ = this.state$.pipe(map((x) => x.collectionFactory), distinctUntilChanged(), shareReplay(1));
44
- this.collectionFactory$ = this.currentCollectionFactory$.pipe(filterMaybe());
45
- // MARK: State Changes
46
- /**
47
- * Sets the collection factory function to use.
48
- */
49
- this.setCollectionFactory = this.updater((state, collectionFactory) => ({ ...state, collectionFactory }));
50
- /**
51
- * Sets the parent on the current state.
52
- */
53
- this._setParentDocument = this.updater((state, parent) => ({ ...state, parent }));
54
- }
55
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbstractDbxFirebaseDocumentWithParentStore, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
56
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbstractDbxFirebaseDocumentWithParentStore }); }
12
+ // MARK: Effects
13
+ setParentStore = setParentStoreEffect(this);
14
+ setParent = this.effect((input) => {
15
+ return input.pipe(switchMap((parent) => {
16
+ this._setParentDocument(parent);
17
+ if (parent) {
18
+ return this.collectionFactory$.pipe(tap((collectionFactory) => {
19
+ const collection = collectionFactory(parent);
20
+ this.setFirestoreCollection(collection);
21
+ }));
22
+ }
23
+ else {
24
+ // clear the current collection
25
+ this.setFirestoreCollection(undefined);
26
+ // do nothing until a parent is returned.
27
+ return NEVER;
28
+ }
29
+ }));
30
+ });
31
+ _setParent = this.setParent;
32
+ // MARK: Accessors
33
+ /**
34
+ * Returns the parent model key given the current key value.
35
+ */
36
+ keyParentKey$ = this.key$.pipe(map((x) => firestoreModelKeyParentKey(x, 1)), distinctUntilChanged(), shareReplay(1));
37
+ currentParent$ = this.state$.pipe(map((x) => x.parent), distinctUntilChanged(), shareReplay(1));
38
+ currentParentKey$ = this.state$.pipe(map((x) => x.parent?.key), distinctUntilChanged(), shareReplay(1));
39
+ parent$ = this.currentParent$.pipe(filterMaybe());
40
+ parentKey$ = this.currentParentKey$.pipe(filterMaybe());
41
+ currentCollectionFactory$ = this.state$.pipe(map((x) => x.collectionFactory), distinctUntilChanged(), shareReplay(1));
42
+ collectionFactory$ = this.currentCollectionFactory$.pipe(filterMaybe());
43
+ // MARK: State Changes
44
+ /**
45
+ * Sets the collection factory function to use.
46
+ */
47
+ setCollectionFactory = this.updater((state, collectionFactory) => ({ ...state, collectionFactory }));
48
+ /**
49
+ * Sets the parent on the current state.
50
+ */
51
+ _setParentDocument = this.updater((state, parent) => ({ ...state, parent }));
52
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbstractDbxFirebaseDocumentWithParentStore, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
53
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbstractDbxFirebaseDocumentWithParentStore });
57
54
  }
58
55
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbstractDbxFirebaseDocumentWithParentStore, decorators: [{
59
56
  type: Injectable
@@ -62,44 +59,41 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
62
59
  * AbstractDbxFirebaseDocumentWithParentStore extension for use with SingleItemFirestoreCollection.
63
60
  */
64
61
  export class AbstractSingleItemDbxFirebaseDocument extends AbstractDbxFirebaseDocumentWithParentStore {
65
- constructor() {
66
- super(...arguments);
67
- /**
68
- * Sets the SingleItemFirestoreCollection to use.
69
- */
70
- this.setFirestoreCollection = this.updater((state, firestoreCollection) => {
71
- if (firestoreCollection != null) {
72
- const id = firestoreCollection.singleItemIdentifier;
73
- if (id != null) {
74
- return { ...state, firestoreCollection, id };
75
- }
76
- else {
77
- throw new Error('AbstractSingleItemDbxFirebaseDocument only accepts SingleItemFirestoreCollection values with a singleItemIdentifier set for setFirestoreCollection.');
78
- }
62
+ /**
63
+ * Sets the SingleItemFirestoreCollection to use.
64
+ */
65
+ setFirestoreCollection = this.updater((state, firestoreCollection) => {
66
+ if (firestoreCollection != null) {
67
+ const id = firestoreCollection.singleItemIdentifier;
68
+ if (id != null) {
69
+ return { ...state, firestoreCollection, id };
79
70
  }
80
71
  else {
81
- return { ...state, firestoreCollection: null };
72
+ throw new Error('AbstractSingleItemDbxFirebaseDocument only accepts SingleItemFirestoreCollection values with a singleItemIdentifier set for setFirestoreCollection.');
82
73
  }
83
- });
84
- /**
85
- * Does nothing on a AbstractSingleItemDbxFirebaseDocument.
86
- *
87
- * Ref is set with the FirestoreCollection
88
- */
89
- this.setId = this.updater((state, id) => state);
90
- /**
91
- * Does nothing on a AbstractSingleItemDbxFirebaseDocument.
92
- *
93
- * Ref is set with the FirestoreCollection
94
- */
95
- this.setKey = this.updater((state, key) => state);
96
- /**
97
- * Does nothing on a AbstractSingleItemDbxFirebaseDocument.
98
- *
99
- * Ref is set with the FirestoreCollection
100
- */
101
- this.setRef = this.updater((state, ref) => state);
102
- this.clearRefs = this.updater((state) => state);
103
- }
74
+ }
75
+ else {
76
+ return { ...state, firestoreCollection: null };
77
+ }
78
+ });
79
+ /**
80
+ * Does nothing on a AbstractSingleItemDbxFirebaseDocument.
81
+ *
82
+ * Ref is set with the FirestoreCollection
83
+ */
84
+ setId = this.updater((state, id) => state);
85
+ /**
86
+ * Does nothing on a AbstractSingleItemDbxFirebaseDocument.
87
+ *
88
+ * Ref is set with the FirestoreCollection
89
+ */
90
+ setKey = this.updater((state, key) => state);
91
+ /**
92
+ * Does nothing on a AbstractSingleItemDbxFirebaseDocument.
93
+ *
94
+ * Ref is set with the FirestoreCollection
95
+ */
96
+ setRef = this.updater((state, ref) => state);
97
+ clearRefs = this.updater((state) => state);
104
98
  }
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuc3ViY29sbGVjdGlvbi5kb2N1bWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL21vZGVsL21vZHVsZXMvc3RvcmUvc3RvcmUuc3ViY29sbGVjdGlvbi5kb2N1bWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQy9HLE9BQU8sRUFBdUssMEJBQTBCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVwTyxPQUFPLEVBQUUsZ0NBQWdDLEVBQWtFLE1BQU0sa0JBQWtCLENBQUM7QUFDcEksT0FBTyxFQUFtRSxvQkFBb0IsRUFBb0osTUFBTSw0QkFBNEIsQ0FBQzs7QUFNclI7O0dBRUc7QUFFSCxNQUFNLE9BQU8sMENBQTBTLFNBQVEsZ0NBQXlDO0lBRHhXOztRQUVFLGdCQUFnQjtRQUNQLG1CQUFjLEdBQTRFLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JILGNBQVMsR0FBbUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQTRCLEVBQUUsRUFBRTtZQUNoSSxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQ2YsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFFaEMsSUFBSSxNQUFNLEVBQUU7b0JBQ1YsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUNqQyxHQUFHLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxFQUFFO3dC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LEVBQUUsR0FBRyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsRUFBRSxFQUFFLENBQUM7aUJBQzlDO3FCQUFNO29CQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMscUpBQXFKLENBQUMsQ0FBQztpQkFDeEs7YUFDRjtpQkFBTTtnQkFDTCxPQUFPLEVBQUUsR0FBRyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsSUFBSSxFQUFFLENBQUM7YUFDaEQ7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVIOzs7O1dBSUc7UUFDZSxVQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUEyQixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQW1GLENBQUM7UUFFeEs7Ozs7V0FJRztRQUNlLFdBQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEdBQTZCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBbUYsQ0FBQztRQUUzSzs7OztXQUlHO1FBQ2UsV0FBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBZ0MsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUErRyxDQUFDO1FBRXhMLGNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvRCxDQUFDO0NBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmaWx0ZXJNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgc2hhcmVSZXBsYXksIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIE5FVkVSLCBzd2l0Y2hNYXAsIHRhcCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGaXJlc3RvcmVEb2N1bWVudCwgRmlyZXN0b3JlQ29sbGVjdGlvbldpdGhQYXJlbnRGYWN0b3J5LCBGaXJlc3RvcmVDb2xsZWN0aW9uLCBEb2N1bWVudFJlZmVyZW5jZSwgRmlyZXN0b3JlTW9kZWxJZCwgRmlyZXN0b3JlTW9kZWxLZXksIFNpbmdsZUl0ZW1GaXJlc3RvcmVDb2xsZWN0aW9uLCBmaXJlc3RvcmVNb2RlbEtleVBhcmVudEtleSB9IGZyb20gJ0BkZXJlZWtiL2ZpcmViYXNlJztcbmltcG9ydCB7IE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBBYnN0cmFjdERieEZpcmViYXNlRG9jdW1lbnRTdG9yZSwgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlLCBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVDb250ZXh0U3RhdGUgfSBmcm9tICcuL3N0b3JlLmRvY3VtZW50JztcbmltcG9ydCB7IERieEZpcmViYXNlQ29tcG9uZW50U3RvcmVXaXRoUGFyZW50U2V0UGFyZW50U3RvcmVFZmZlY3RGdW5jdGlvbiwgc2V0UGFyZW50U3RvcmVFZmZlY3QsIERieEZpcmViYXNlQ29tcG9uZW50U3RvcmVXaXRoUGFyZW50LCBEYnhGaXJlYmFzZUNvbXBvbmVudFN0b3JlV2l0aFBhcmVudENvbnRleHRTdGF0ZSwgRGJ4RmlyZWJhc2VDb21wb25lbnRTdG9yZVdpdGhQYXJlbnRTZXRQYXJlbnRFZmZlY3RGdW5jdGlvbiB9IGZyb20gJy4vc3RvcmUuc3ViY29sbGVjdGlvbi5yeGpzJztcblxuZXhwb3J0IGludGVyZmFjZSBEYnhGaXJlYmFzZURvY3VtZW50V2l0aFBhcmVudFN0b3JlQ29udGV4dFN0YXRlPFQsIFBULCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPiwgUEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxQVD4gPSBGaXJlc3RvcmVEb2N1bWVudDxQVD4+IGV4dGVuZHMgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlQ29udGV4dFN0YXRlPFQsIEQ+LCBEYnhGaXJlYmFzZUNvbXBvbmVudFN0b3JlV2l0aFBhcmVudENvbnRleHRTdGF0ZTxULCBQVCwgRCwgUEQ+IHt9XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4RmlyZWJhc2VEb2N1bWVudFdpdGhQYXJlbnRTdG9yZTxULCBQVCwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4sIFBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8UFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8UFQ+PiBleHRlbmRzIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZTxULCBEPiwgRGJ4RmlyZWJhc2VDb21wb25lbnRTdG9yZVdpdGhQYXJlbnQ8VCwgUFQsIEQsIFBELCBGaXJlc3RvcmVDb2xsZWN0aW9uPFQsIEQ+PiB7fVxuXG4vKipcbiAqIEFic3RyYWN0IERieEZpcmViYXNlRG9jdW1lbnRTdG9yZSB0aGF0IGhhcyBhIHBhcmVudCBkb2N1bWVudCBmcm9tIHdoaWNoIGlzIGRlcml2ZXMgaXQncyBGaXJlc2Jhc2VDb2xsZWN0aW9uIGZyb20uXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBYnN0cmFjdERieEZpcmViYXNlRG9jdW1lbnRXaXRoUGFyZW50U3RvcmU8VCwgUFQsIEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxUPiA9IEZpcmVzdG9yZURvY3VtZW50PFQ+LCBQRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFBUPiA9IEZpcmVzdG9yZURvY3VtZW50PFBUPiwgQyBleHRlbmRzIERieEZpcmViYXNlRG9jdW1lbnRXaXRoUGFyZW50U3RvcmVDb250ZXh0U3RhdGU8VCwgUFQsIEQsIFBEPiA9IERieEZpcmViYXNlRG9jdW1lbnRXaXRoUGFyZW50U3RvcmVDb250ZXh0U3RhdGU8VCwgUFQsIEQsIFBEPj4gZXh0ZW5kcyBBYnN0cmFjdERieEZpcmViYXNlRG9jdW1lbnRTdG9yZTxULCBELCBDPiBpbXBsZW1lbnRzIERieEZpcmViYXNlRG9jdW1lbnRXaXRoUGFyZW50U3RvcmU8VCwgUFQsIEQsIFBEPiB7XG4gIC8vIE1BUks6IEVmZmVjdHNcbiAgcmVhZG9ubHkgc2V0UGFyZW50U3RvcmU6IERieEZpcmViYXNlQ29tcG9uZW50U3RvcmVXaXRoUGFyZW50U2V0UGFyZW50U3RvcmVFZmZlY3RGdW5jdGlvbjxQVCwgUEQ+ID0gc2V0UGFyZW50U3RvcmVFZmZlY3QodGhpcyk7XG4gIHJlYWRvbmx5IHNldFBhcmVudDogRGJ4RmlyZWJhc2VDb21wb25lbnRTdG9yZVdpdGhQYXJlbnRTZXRQYXJlbnRFZmZlY3RGdW5jdGlvbjxQRD4gPSB0aGlzLmVmZmVjdCgoaW5wdXQ6IE9ic2VydmFibGU8TWF5YmU8UEQ+PikgPT4ge1xuICAgIHJldHVybiBpbnB1dC5waXBlKFxuICAgICAgc3dpdGNoTWFwKChwYXJlbnQpID0+IHtcbiAgICAgICAgdGhpcy5fc2V0UGFyZW50RG9jdW1lbnQocGFyZW50KTtcblxuICAgICAgICBpZiAocGFyZW50KSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY29sbGVjdGlvbkZhY3RvcnkkLnBpcGUoXG4gICAgICAgICAgICB0YXAoKGNvbGxlY3Rpb25GYWN0b3J5KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGNvbGxlY3Rpb24gPSBjb2xsZWN0aW9uRmFjdG9yeShwYXJlbnQpO1xuICAgICAgICAgICAgICB0aGlzLnNldEZpcmVzdG9yZUNvbGxlY3Rpb24oY29sbGVjdGlvbik7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gY2xlYXIgdGhlIGN1cnJlbnQgY29sbGVjdGlvblxuICAgICAgICAgIHRoaXMuc2V0RmlyZXN0b3JlQ29sbGVjdGlvbih1bmRlZmluZWQpO1xuXG4gICAgICAgICAgLy8gZG8gbm90aGluZyB1bnRpbCBhIHBhcmVudCBpcyByZXR1cm5lZC5cbiAgICAgICAgICByZXR1cm4gTkVWRVI7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgX3NldFBhcmVudCA9IHRoaXMuc2V0UGFyZW50O1xuXG4gIC8vIE1BUks6IEFjY2Vzc29yc1xuICAvKipcbiAgICogUmV0dXJucyB0aGUgcGFyZW50IG1vZGVsIGtleSBnaXZlbiB0aGUgY3VycmVudCBrZXkgdmFsdWUuXG4gICAqL1xuICByZWFkb25seSBrZXlQYXJlbnRLZXkkID0gdGhpcy5rZXkkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiBmaXJlc3RvcmVNb2RlbEtleVBhcmVudEtleSh4LCAxKSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGN1cnJlbnRQYXJlbnQkOiBPYnNlcnZhYmxlPE1heWJlPFBEPj4gPSB0aGlzLnN0YXRlJC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5wYXJlbnQpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBjdXJyZW50UGFyZW50S2V5JDogT2JzZXJ2YWJsZTxNYXliZTxGaXJlc3RvcmVNb2RlbEtleT4+ID0gdGhpcy5zdGF0ZSQucGlwZShcbiAgICBtYXAoKHgpID0+IHgucGFyZW50Py5rZXkpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBwYXJlbnQkOiBPYnNlcnZhYmxlPFBEPiA9IHRoaXMuY3VycmVudFBhcmVudCQucGlwZShmaWx0ZXJNYXliZSgpKTtcbiAgcmVhZG9ubHkgcGFyZW50S2V5JDogT2JzZXJ2YWJsZTxNYXliZTxGaXJlc3RvcmVNb2RlbEtleT4+ID0gdGhpcy5jdXJyZW50UGFyZW50S2V5JC5waXBlKGZpbHRlck1heWJlKCkpO1xuXG4gIHJlYWRvbmx5IGN1cnJlbnRDb2xsZWN0aW9uRmFjdG9yeSQ6IE9ic2VydmFibGU8TWF5YmU8RmlyZXN0b3JlQ29sbGVjdGlvbldpdGhQYXJlbnRGYWN0b3J5PFQsIFBULCBELCBQRD4+PiA9IHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LmNvbGxlY3Rpb25GYWN0b3J5KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgY29sbGVjdGlvbkZhY3RvcnkkOiBPYnNlcnZhYmxlPEZpcmVzdG9yZUNvbGxlY3Rpb25XaXRoUGFyZW50RmFjdG9yeTxULCBQVCwgRCwgUEQ+PiA9IHRoaXMuY3VycmVudENvbGxlY3Rpb25GYWN0b3J5JC5waXBlKGZpbHRlck1heWJlKCkpO1xuXG4gIC8vIE1BUks6IFN0YXRlIENoYW5nZXNcbiAgLyoqXG4gICAqIFNldHMgdGhlIGNvbGxlY3Rpb24gZmFjdG9yeSBmdW5jdGlvbiB0byB1c2UuXG4gICAqL1xuICByZWFkb25seSBzZXRDb2xsZWN0aW9uRmFjdG9yeSA9IHRoaXMudXBkYXRlcigoc3RhdGUsIGNvbGxlY3Rpb25GYWN0b3J5OiBGaXJlc3RvcmVDb2xsZWN0aW9uV2l0aFBhcmVudEZhY3Rvcnk8VCwgUFQsIEQsIFBEPikgPT4gKHsgLi4uc3RhdGUsIGNvbGxlY3Rpb25GYWN0b3J5IH0pKTtcblxuICAvKipcbiAgICogU2V0cyB0aGUgcGFyZW50IG9uIHRoZSBjdXJyZW50IHN0YXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgX3NldFBhcmVudERvY3VtZW50ID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgcGFyZW50OiBNYXliZTxQRD4pID0+ICh7IC4uLnN0YXRlLCBwYXJlbnQgfSkpO1xufVxuXG4vKipcbiAqIEFic3RyYWN0RGJ4RmlyZWJhc2VEb2N1bWVudFdpdGhQYXJlbnRTdG9yZSBleHRlbnNpb24gZm9yIHVzZSB3aXRoIFNpbmdsZUl0ZW1GaXJlc3RvcmVDb2xsZWN0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgQWJzdHJhY3RTaW5nbGVJdGVtRGJ4RmlyZWJhc2VEb2N1bWVudDxULCBQVCwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4sIFBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8UFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8UFQ+LCBDIGV4dGVuZHMgRGJ4RmlyZWJhc2VEb2N1bWVudFdpdGhQYXJlbnRTdG9yZUNvbnRleHRTdGF0ZTxULCBQVCwgRCwgUEQ+ID0gRGJ4RmlyZWJhc2VEb2N1bWVudFdpdGhQYXJlbnRTdG9yZUNvbnRleHRTdGF0ZTxULCBQVCwgRCwgUEQ+PiBleHRlbmRzIEFic3RyYWN0RGJ4RmlyZWJhc2VEb2N1bWVudFdpdGhQYXJlbnRTdG9yZTxULCBQVCwgRCwgUEQsIEM+IHtcbiAgLyoqXG4gICAqIFNldHMgdGhlIFNpbmdsZUl0ZW1GaXJlc3RvcmVDb2xsZWN0aW9uIHRvIHVzZS5cbiAgICovXG4gIG92ZXJyaWRlIHJlYWRvbmx5IHNldEZpcmVzdG9yZUNvbGxlY3Rpb24gPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBmaXJlc3RvcmVDb2xsZWN0aW9uOiBNYXliZTxGaXJlc3RvcmVDb2xsZWN0aW9uPFQsIEQ+PikgPT4ge1xuICAgIGlmIChmaXJlc3RvcmVDb2xsZWN0aW9uICE9IG51bGwpIHtcbiAgICAgIGNvbnN0IGlkID0gKGZpcmVzdG9yZUNvbGxlY3Rpb24gYXMgU2luZ2xlSXRlbUZpcmVzdG9yZUNvbGxlY3Rpb248VCwgUFQsIEQsIFBEPikuc2luZ2xlSXRlbUlkZW50aWZpZXI7XG5cbiAgICAgIGlmIChpZCAhPSBudWxsKSB7XG4gICAgICAgIHJldHVybiB7IC4uLnN0YXRlLCBmaXJlc3RvcmVDb2xsZWN0aW9uLCBpZCB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBYnN0cmFjdFNpbmdsZUl0ZW1EYnhGaXJlYmFzZURvY3VtZW50IG9ubHkgYWNjZXB0cyBTaW5nbGVJdGVtRmlyZXN0b3JlQ29sbGVjdGlvbiB2YWx1ZXMgd2l0aCBhIHNpbmdsZUl0ZW1JZGVudGlmaWVyIHNldCBmb3Igc2V0RmlyZXN0b3JlQ29sbGVjdGlvbi4nKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHsgLi4uc3RhdGUsIGZpcmVzdG9yZUNvbGxlY3Rpb246IG51bGwgfTtcbiAgICB9XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBEb2VzIG5vdGhpbmcgb24gYSBBYnN0cmFjdFNpbmdsZUl0ZW1EYnhGaXJlYmFzZURvY3VtZW50LlxuICAgKlxuICAgKiBSZWYgaXMgc2V0IHdpdGggdGhlIEZpcmVzdG9yZUNvbGxlY3Rpb25cbiAgICovXG4gIG92ZXJyaWRlIHJlYWRvbmx5IHNldElkID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgaWQ6IE1heWJlPEZpcmVzdG9yZU1vZGVsSWQ+KSA9PiBzdGF0ZSkgYXMgKG9ic2VydmFibGVPclZhbHVlOiBNYXliZTxzdHJpbmc+IHwgT2JzZXJ2YWJsZTxNYXliZTxzdHJpbmc+PikgPT4gU3Vic2NyaXB0aW9uO1xuXG4gIC8qKlxuICAgKiBEb2VzIG5vdGhpbmcgb24gYSBBYnN0cmFjdFNpbmdsZUl0ZW1EYnhGaXJlYmFzZURvY3VtZW50LlxuICAgKlxuICAgKiBSZWYgaXMgc2V0IHdpdGggdGhlIEZpcmVzdG9yZUNvbGxlY3Rpb25cbiAgICovXG4gIG92ZXJyaWRlIHJlYWRvbmx5IHNldEtleSA9IHRoaXMudXBkYXRlcigoc3RhdGUsIGtleTogTWF5YmU8RmlyZXN0b3JlTW9kZWxLZXk+KSA9PiBzdGF0ZSkgYXMgKG9ic2VydmFibGVPclZhbHVlOiBNYXliZTxzdHJpbmc+IHwgT2JzZXJ2YWJsZTxNYXliZTxzdHJpbmc+PikgPT4gU3Vic2NyaXB0aW9uO1xuXG4gIC8qKlxuICAgKiBEb2VzIG5vdGhpbmcgb24gYSBBYnN0cmFjdFNpbmdsZUl0ZW1EYnhGaXJlYmFzZURvY3VtZW50LlxuICAgKlxuICAgKiBSZWYgaXMgc2V0IHdpdGggdGhlIEZpcmVzdG9yZUNvbGxlY3Rpb25cbiAgICovXG4gIG92ZXJyaWRlIHJlYWRvbmx5IHNldFJlZiA9IHRoaXMudXBkYXRlcigoc3RhdGUsIHJlZjogTWF5YmU8RG9jdW1lbnRSZWZlcmVuY2U8VD4+KSA9PiBzdGF0ZSkgYXMgKG9ic2VydmFibGVPclZhbHVlOiBNYXliZTxEb2N1bWVudFJlZmVyZW5jZTxUPj4gfCBPYnNlcnZhYmxlPE1heWJlPERvY3VtZW50UmVmZXJlbmNlPFQ+Pj4pID0+IFN1YnNjcmlwdGlvbjtcblxuICBvdmVycmlkZSByZWFkb25seSBjbGVhclJlZnMgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlKSA9PiBzdGF0ZSk7XG59XG4iXX0=
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuc3ViY29sbGVjdGlvbi5kb2N1bWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL21vZGVsL21vZHVsZXMvc3RvcmUvc3RvcmUuc3ViY29sbGVjdGlvbi5kb2N1bWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQy9HLE9BQU8sRUFBdUssMEJBQTBCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVwTyxPQUFPLEVBQUUsZ0NBQWdDLEVBQWtFLE1BQU0sa0JBQWtCLENBQUM7QUFDcEksT0FBTyxFQUFtRSxvQkFBb0IsRUFBb0osTUFBTSw0QkFBNEIsQ0FBQzs7QUFNclI7O0dBRUc7QUFFSCxNQUFNLE9BQU8sMENBQTBTLFNBQVEsZ0NBQXlDO0lBQ3RXLGdCQUFnQjtJQUNQLGNBQWMsR0FBNEUsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckgsU0FBUyxHQUFtRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBNEIsRUFBRSxFQUFFO1FBQ2hJLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FDZixTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNuQixJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFaEMsSUFBSSxNQUFNLEVBQUU7Z0JBQ1YsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUNqQyxHQUFHLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxFQUFFO29CQUN4QixNQUFN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QixFQUFFLEVBQUUsRUFBRSxDQUFDO2FBQzlDO2lCQUFNO2dCQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMscUpBQXFKLENBQUMsQ0FBQzthQUN4SztTQUNGO2FBQU07WUFDTCxPQUFPLEVBQUUsR0FBRyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsSUFBSSxFQUFFLENBQUM7U0FDaEQ7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUVIOzs7O09BSUc7SUFDZSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUEyQixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQW1GLENBQUM7SUFFeEs7Ozs7T0FJRztJQUNlLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEdBQTZCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBbUYsQ0FBQztJQUUzSzs7OztPQUlHO0lBQ2UsTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBZ0MsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUErRyxDQUFDO0lBQ3hMLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztDQUM5RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpbHRlck1heWJlIH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBzaGFyZVJlcGxheSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgTkVWRVIsIHN3aXRjaE1hcCwgdGFwLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZpcmVzdG9yZURvY3VtZW50LCBGaXJlc3RvcmVDb2xsZWN0aW9uV2l0aFBhcmVudEZhY3RvcnksIEZpcmVzdG9yZUNvbGxlY3Rpb24sIERvY3VtZW50UmVmZXJlbmNlLCBGaXJlc3RvcmVNb2RlbElkLCBGaXJlc3RvcmVNb2RlbEtleSwgU2luZ2xlSXRlbUZpcmVzdG9yZUNvbGxlY3Rpb24sIGZpcmVzdG9yZU1vZGVsS2V5UGFyZW50S2V5IH0gZnJvbSAnQGRlcmVla2IvZmlyZWJhc2UnO1xuaW1wb3J0IHsgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IEFic3RyYWN0RGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlLCBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmUsIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZUNvbnRleHRTdGF0ZSB9IGZyb20gJy4vc3RvcmUuZG9jdW1lbnQnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VDb21wb25lbnRTdG9yZVdpdGhQYXJlbnRTZXRQYXJlbnRTdG9yZUVmZmVjdEZ1bmN0aW9uLCBzZXRQYXJlbnRTdG9yZUVmZmVjdCwgRGJ4RmlyZWJhc2VDb21wb25lbnRTdG9yZVdpdGhQYXJlbnQsIERieEZpcmViYXNlQ29tcG9uZW50U3RvcmVXaXRoUGFyZW50Q29udGV4dFN0YXRlLCBEYnhGaXJlYmFzZUNvbXBvbmVudFN0b3JlV2l0aFBhcmVudFNldFBhcmVudEVmZmVjdEZ1bmN0aW9uIH0gZnJvbSAnLi9zdG9yZS5zdWJjb2xsZWN0aW9uLnJ4anMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERieEZpcmViYXNlRG9jdW1lbnRXaXRoUGFyZW50U3RvcmVDb250ZXh0U3RhdGU8VCwgUFQsIEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxUPiA9IEZpcmVzdG9yZURvY3VtZW50PFQ+LCBQRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFBUPiA9IEZpcmVzdG9yZURvY3VtZW50PFBUPj4gZXh0ZW5kcyBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVDb250ZXh0U3RhdGU8VCwgRD4sIERieEZpcmViYXNlQ29tcG9uZW50U3RvcmVXaXRoUGFyZW50Q29udGV4dFN0YXRlPFQsIFBULCBELCBQRD4ge31cblxuZXhwb3J0IGludGVyZmFjZSBEYnhGaXJlYmFzZURvY3VtZW50V2l0aFBhcmVudFN0b3JlPFQsIFBULCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPiwgUEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxQVD4gPSBGaXJlc3RvcmVEb2N1bWVudDxQVD4+IGV4dGVuZHMgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlPFQsIEQ+LCBEYnhGaXJlYmFzZUNvbXBvbmVudFN0b3JlV2l0aFBhcmVudDxULCBQVCwgRCwgUEQsIEZpcmVzdG9yZUNvbGxlY3Rpb248VCwgRD4+IHt9XG5cbi8qKlxuICogQWJzdHJhY3QgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlIHRoYXQgaGFzIGEgcGFyZW50IGRvY3VtZW50IGZyb20gd2hpY2ggaXMgZGVyaXZlcyBpdCdzIEZpcmVzYmFzZUNvbGxlY3Rpb24gZnJvbS5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFic3RyYWN0RGJ4RmlyZWJhc2VEb2N1bWVudFdpdGhQYXJlbnRTdG9yZTxULCBQVCwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4sIFBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8UFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8UFQ+LCBDIGV4dGVuZHMgRGJ4RmlyZWJhc2VEb2N1bWVudFdpdGhQYXJlbnRTdG9yZUNvbnRleHRTdGF0ZTxULCBQVCwgRCwgUEQ+ID0gRGJ4RmlyZWJhc2VEb2N1bWVudFdpdGhQYXJlbnRTdG9yZUNvbnRleHRTdGF0ZTxULCBQVCwgRCwgUEQ+PiBleHRlbmRzIEFic3RyYWN0RGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlPFQsIEQsIEM+IGltcGxlbWVudHMgRGJ4RmlyZWJhc2VEb2N1bWVudFdpdGhQYXJlbnRTdG9yZTxULCBQVCwgRCwgUEQ+IHtcbiAgLy8gTUFSSzogRWZmZWN0c1xuICByZWFkb25seSBzZXRQYXJlbnRTdG9yZTogRGJ4RmlyZWJhc2VDb21wb25lbnRTdG9yZVdpdGhQYXJlbnRTZXRQYXJlbnRTdG9yZUVmZmVjdEZ1bmN0aW9uPFBULCBQRD4gPSBzZXRQYXJlbnRTdG9yZUVmZmVjdCh0aGlzKTtcbiAgcmVhZG9ubHkgc2V0UGFyZW50OiBEYnhGaXJlYmFzZUNvbXBvbmVudFN0b3JlV2l0aFBhcmVudFNldFBhcmVudEVmZmVjdEZ1bmN0aW9uPFBEPiA9IHRoaXMuZWZmZWN0KChpbnB1dDogT2JzZXJ2YWJsZTxNYXliZTxQRD4+KSA9PiB7XG4gICAgcmV0dXJuIGlucHV0LnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKHBhcmVudCkgPT4ge1xuICAgICAgICB0aGlzLl9zZXRQYXJlbnREb2N1bWVudChwYXJlbnQpO1xuXG4gICAgICAgIGlmIChwYXJlbnQpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jb2xsZWN0aW9uRmFjdG9yeSQucGlwZShcbiAgICAgICAgICAgIHRhcCgoY29sbGVjdGlvbkZhY3RvcnkpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgY29sbGVjdGlvbiA9IGNvbGxlY3Rpb25GYWN0b3J5KHBhcmVudCk7XG4gICAgICAgICAgICAgIHRoaXMuc2V0RmlyZXN0b3JlQ29sbGVjdGlvbihjb2xsZWN0aW9uKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBjbGVhciB0aGUgY3VycmVudCBjb2xsZWN0aW9uXG4gICAgICAgICAgdGhpcy5zZXRGaXJlc3RvcmVDb2xsZWN0aW9uKHVuZGVmaW5lZCk7XG5cbiAgICAgICAgICAvLyBkbyBub3RoaW5nIHVudGlsIGEgcGFyZW50IGlzIHJldHVybmVkLlxuICAgICAgICAgIHJldHVybiBORVZFUjtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9KTtcblxuICByZWFkb25seSBfc2V0UGFyZW50ID0gdGhpcy5zZXRQYXJlbnQ7XG5cbiAgLy8gTUFSSzogQWNjZXNzb3JzXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBwYXJlbnQgbW9kZWwga2V5IGdpdmVuIHRoZSBjdXJyZW50IGtleSB2YWx1ZS5cbiAgICovXG4gIHJlYWRvbmx5IGtleVBhcmVudEtleSQgPSB0aGlzLmtleSQucGlwZShcbiAgICBtYXAoKHgpID0+IGZpcmVzdG9yZU1vZGVsS2V5UGFyZW50S2V5KHgsIDEpKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgY3VycmVudFBhcmVudCQ6IE9ic2VydmFibGU8TWF5YmU8UEQ+PiA9IHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LnBhcmVudCksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGN1cnJlbnRQYXJlbnRLZXkkOiBPYnNlcnZhYmxlPE1heWJlPEZpcmVzdG9yZU1vZGVsS2V5Pj4gPSB0aGlzLnN0YXRlJC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5wYXJlbnQ/LmtleSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IHBhcmVudCQ6IE9ic2VydmFibGU8UEQ+ID0gdGhpcy5jdXJyZW50UGFyZW50JC5waXBlKGZpbHRlck1heWJlKCkpO1xuICByZWFkb25seSBwYXJlbnRLZXkkOiBPYnNlcnZhYmxlPE1heWJlPEZpcmVzdG9yZU1vZGVsS2V5Pj4gPSB0aGlzLmN1cnJlbnRQYXJlbnRLZXkkLnBpcGUoZmlsdGVyTWF5YmUoKSk7XG5cbiAgcmVhZG9ubHkgY3VycmVudENvbGxlY3Rpb25GYWN0b3J5JDogT2JzZXJ2YWJsZTxNYXliZTxGaXJlc3RvcmVDb2xsZWN0aW9uV2l0aFBhcmVudEZhY3Rvcnk8VCwgUFQsIEQsIFBEPj4+ID0gdGhpcy5zdGF0ZSQucGlwZShcbiAgICBtYXAoKHgpID0+IHguY29sbGVjdGlvbkZhY3RvcnkpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBjb2xsZWN0aW9uRmFjdG9yeSQ6IE9ic2VydmFibGU8RmlyZXN0b3JlQ29sbGVjdGlvbldpdGhQYXJlbnRGYWN0b3J5PFQsIFBULCBELCBQRD4+ID0gdGhpcy5jdXJyZW50Q29sbGVjdGlvbkZhY3RvcnkkLnBpcGUoZmlsdGVyTWF5YmUoKSk7XG5cbiAgLy8gTUFSSzogU3RhdGUgQ2hhbmdlc1xuICAvKipcbiAgICogU2V0cyB0aGUgY29sbGVjdGlvbiBmYWN0b3J5IGZ1bmN0aW9uIHRvIHVzZS5cbiAgICovXG4gIHJlYWRvbmx5IHNldENvbGxlY3Rpb25GYWN0b3J5ID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgY29sbGVjdGlvbkZhY3Rvcnk6IEZpcmVzdG9yZUNvbGxlY3Rpb25XaXRoUGFyZW50RmFjdG9yeTxULCBQVCwgRCwgUEQ+KSA9PiAoeyAuLi5zdGF0ZSwgY29sbGVjdGlvbkZhY3RvcnkgfSkpO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBwYXJlbnQgb24gdGhlIGN1cnJlbnQgc3RhdGUuXG4gICAqL1xuICByZWFkb25seSBfc2V0UGFyZW50RG9jdW1lbnQgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBwYXJlbnQ6IE1heWJlPFBEPikgPT4gKHsgLi4uc3RhdGUsIHBhcmVudCB9KSk7XG59XG5cbi8qKlxuICogQWJzdHJhY3REYnhGaXJlYmFzZURvY3VtZW50V2l0aFBhcmVudFN0b3JlIGV4dGVuc2lvbiBmb3IgdXNlIHdpdGggU2luZ2xlSXRlbUZpcmVzdG9yZUNvbGxlY3Rpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBBYnN0cmFjdFNpbmdsZUl0ZW1EYnhGaXJlYmFzZURvY3VtZW50PFQsIFBULCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPiwgUEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxQVD4gPSBGaXJlc3RvcmVEb2N1bWVudDxQVD4sIEMgZXh0ZW5kcyBEYnhGaXJlYmFzZURvY3VtZW50V2l0aFBhcmVudFN0b3JlQ29udGV4dFN0YXRlPFQsIFBULCBELCBQRD4gPSBEYnhGaXJlYmFzZURvY3VtZW50V2l0aFBhcmVudFN0b3JlQ29udGV4dFN0YXRlPFQsIFBULCBELCBQRD4+IGV4dGVuZHMgQWJzdHJhY3REYnhGaXJlYmFzZURvY3VtZW50V2l0aFBhcmVudFN0b3JlPFQsIFBULCBELCBQRCwgQz4ge1xuICAvKipcbiAgICogU2V0cyB0aGUgU2luZ2xlSXRlbUZpcmVzdG9yZUNvbGxlY3Rpb24gdG8gdXNlLlxuICAgKi9cbiAgb3ZlcnJpZGUgcmVhZG9ubHkgc2V0RmlyZXN0b3JlQ29sbGVjdGlvbiA9IHRoaXMudXBkYXRlcigoc3RhdGUsIGZpcmVzdG9yZUNvbGxlY3Rpb246IE1heWJlPEZpcmVzdG9yZUNvbGxlY3Rpb248VCwgRD4+KSA9PiB7XG4gICAgaWYgKGZpcmVzdG9yZUNvbGxlY3Rpb24gIT0gbnVsbCkge1xuICAgICAgY29uc3QgaWQgPSAoZmlyZXN0b3JlQ29sbGVjdGlvbiBhcyBTaW5nbGVJdGVtRmlyZXN0b3JlQ29sbGVjdGlvbjxULCBQVCwgRCwgUEQ+KS5zaW5nbGVJdGVtSWRlbnRpZmllcjtcblxuICAgICAgaWYgKGlkICE9IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHsgLi4uc3RhdGUsIGZpcmVzdG9yZUNvbGxlY3Rpb24sIGlkIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Fic3RyYWN0U2luZ2xlSXRlbURieEZpcmViYXNlRG9jdW1lbnQgb25seSBhY2NlcHRzIFNpbmdsZUl0ZW1GaXJlc3RvcmVDb2xsZWN0aW9uIHZhbHVlcyB3aXRoIGEgc2luZ2xlSXRlbUlkZW50aWZpZXIgc2V0IGZvciBzZXRGaXJlc3RvcmVDb2xsZWN0aW9uLicpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4geyAuLi5zdGF0ZSwgZmlyZXN0b3JlQ29sbGVjdGlvbjogbnVsbCB9O1xuICAgIH1cbiAgfSk7XG5cbiAgLyoqXG4gICAqIERvZXMgbm90aGluZyBvbiBhIEFic3RyYWN0U2luZ2xlSXRlbURieEZpcmViYXNlRG9jdW1lbnQuXG4gICAqXG4gICAqIFJlZiBpcyBzZXQgd2l0aCB0aGUgRmlyZXN0b3JlQ29sbGVjdGlvblxuICAgKi9cbiAgb3ZlcnJpZGUgcmVhZG9ubHkgc2V0SWQgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBpZDogTWF5YmU8RmlyZXN0b3JlTW9kZWxJZD4pID0+IHN0YXRlKSBhcyAob2JzZXJ2YWJsZU9yVmFsdWU6IE1heWJlPHN0cmluZz4gfCBPYnNlcnZhYmxlPE1heWJlPHN0cmluZz4+KSA9PiBTdWJzY3JpcHRpb247XG5cbiAgLyoqXG4gICAqIERvZXMgbm90aGluZyBvbiBhIEFic3RyYWN0U2luZ2xlSXRlbURieEZpcmViYXNlRG9jdW1lbnQuXG4gICAqXG4gICAqIFJlZiBpcyBzZXQgd2l0aCB0aGUgRmlyZXN0b3JlQ29sbGVjdGlvblxuICAgKi9cbiAgb3ZlcnJpZGUgcmVhZG9ubHkgc2V0S2V5ID0gdGhpcy51cGRhdGVyKChzdGF0ZSwga2V5OiBNYXliZTxGaXJlc3RvcmVNb2RlbEtleT4pID0+IHN0YXRlKSBhcyAob2JzZXJ2YWJsZU9yVmFsdWU6IE1heWJlPHN0cmluZz4gfCBPYnNlcnZhYmxlPE1heWJlPHN0cmluZz4+KSA9PiBTdWJzY3JpcHRpb247XG5cbiAgLyoqXG4gICAqIERvZXMgbm90aGluZyBvbiBhIEFic3RyYWN0U2luZ2xlSXRlbURieEZpcmViYXNlRG9jdW1lbnQuXG4gICAqXG4gICAqIFJlZiBpcyBzZXQgd2l0aCB0aGUgRmlyZXN0b3JlQ29sbGVjdGlvblxuICAgKi9cbiAgb3ZlcnJpZGUgcmVhZG9ubHkgc2V0UmVmID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgcmVmOiBNYXliZTxEb2N1bWVudFJlZmVyZW5jZTxUPj4pID0+IHN0YXRlKSBhcyAob2JzZXJ2YWJsZU9yVmFsdWU6IE1heWJlPERvY3VtZW50UmVmZXJlbmNlPFQ+PiB8IE9ic2VydmFibGU8TWF5YmU8RG9jdW1lbnRSZWZlcmVuY2U8VD4+PikgPT4gU3Vic2NyaXB0aW9uO1xuICBvdmVycmlkZSByZWFkb25seSBjbGVhclJlZnMgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlKSA9PiBzdGF0ZSk7XG59XG4iXX0=
@@ -10,58 +10,58 @@ import * as i0 from "@angular/core";
10
10
  export class AbstractDbxFirebaseCollectionWithParentStore extends AbstractDbxFirebaseCollectionStore {
11
11
  constructor(state, defaultSourceMode) {
12
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
13
  this.setSourceMode(defaultSourceMode || 'parent');
62
14
  }
63
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbstractDbxFirebaseCollectionWithParentStore, deps: [{ token: null, optional: true }, { token: null, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
64
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbstractDbxFirebaseCollectionWithParentStore }); }
15
+ // MARK: Effects
16
+ setParentStore = setParentStoreEffect(this);
17
+ setSourceMode = this.effect((input) => {
18
+ return input.pipe(distinctUntilChanged(), switchMap((inputMode) => {
19
+ const mode = inputMode?.toLowerCase() ?? 'parent'; // default to parent mode
20
+ if (mode === 'group') {
21
+ return this.currentCollectionGroup$.pipe(tap((collectionGroup) => {
22
+ this.setFirestoreCollection(collectionGroup);
23
+ }));
24
+ }
25
+ else {
26
+ // parent document collection
27
+ return this.currentParent$.pipe(switchMap((parent) => {
28
+ if (parent) {
29
+ return this.collectionFactory$.pipe(tap((collectionFactory) => {
30
+ const collection = collectionFactory(parent);
31
+ this.setFirestoreCollection(collection);
32
+ }));
33
+ }
34
+ else {
35
+ this.setFirestoreCollection(undefined);
36
+ return NEVER;
37
+ }
38
+ }));
39
+ }
40
+ }));
41
+ });
42
+ // MARK: Accessors
43
+ currentParent$ = this.state$.pipe(map((x) => x.parent), distinctUntilChanged(), shareReplay(1));
44
+ parent$ = this.currentParent$.pipe(filterMaybe());
45
+ currentCollectionFactory$ = this.state$.pipe(map((x) => x.collectionFactory), distinctUntilChanged(), shareReplay(1));
46
+ collectionFactory$ = this.currentCollectionFactory$.pipe(filterMaybe());
47
+ currentCollectionGroup$ = this.state$.pipe(map((x) => x.collectionGroup), distinctUntilChanged(), shareReplay(1));
48
+ collectionGroup$ = this.currentCollectionGroup$.pipe(filterMaybe());
49
+ // MARK: State Changes
50
+ /**
51
+ * Sets the collection factory function to use.
52
+ */
53
+ setCollectionFactory = this.updater((state, collectionFactory) => ({ ...state, collectionFactory }));
54
+ /**
55
+ * Sets the collection group to use.
56
+ */
57
+ setCollectionGroup = this.updater((state, collectionGroup) => ({ ...state, collectionGroup }));
58
+ /**
59
+ * Sets the parent on the current state.
60
+ */
61
+ _setParentDocument = this.updater((state, parent) => ({ ...state, parent }));
62
+ _setParent = this._setParentDocument;
63
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbstractDbxFirebaseCollectionWithParentStore, deps: [{ token: null, optional: true }, { token: null, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
64
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbstractDbxFirebaseCollectionWithParentStore });
65
65
  }
66
66
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbstractDbxFirebaseCollectionWithParentStore, decorators: [{
67
67
  type: Injectable
@@ -76,4 +76,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
76
76
  }, {
77
77
  type: Optional
78
78
  }] }]; } });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuc3ViY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL21vZGVsL21vZHVsZXMvc3RvcmUvc3RvcmUuc3ViY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFjLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQWdCLEtBQUssRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9HLE9BQU8sRUFBRSxrQ0FBa0MsRUFBc0UsTUFBTSxvQkFBb0IsQ0FBQztBQUM1SSxPQUFPLEVBQTJNLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBcUIzUTs7R0FFRztBQUVILE1BQU0sT0FBTyw0Q0FBZ1QsU0FBUSxrQ0FBMkM7SUFDOVcsWUFBc0MsS0FBUSxFQUE0QixpQkFBaUU7UUFDekksS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBSWYsZ0JBQWdCO1FBQ1AsbUJBQWMsR0FBNEUsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckgsa0JBQWEsR0FBbUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQXVFLEVBQUUsRUFBRTtZQUMvSyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQ2Ysb0JBQW9CLEVBQUUsRUFDdEIsU0FBUyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7Z0JBQ3RCLE1BQU0sSUFBSSxHQUFHLFNBQVMsRUFBRSxXQUFXLEVBQUUsSUFBSSxRQUFRLENBQUMsQ0FBQyx5QkFBeUI7Z0JBRTVFLElBQUksSUFBSSxLQUFLLE9BQU8sRUFBRTtvQkFDcEIsT0FBTyxJ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QUksUUFBUSxDQUFDLENBQUM7SUFDcEQsQ0FBQzsrR0FKVSw0Q0FBNEMsa0JBQ25DLElBQUksNkJBQWdDLElBQUk7bUhBRGpELDRDQUE0Qzs7NEZBQTVDLDRDQUE0QztrQkFEeEQsVUFBVTs7MEJBRUksTUFBTTsyQkFBQyxJQUFJOzswQkFBRyxRQUFROzswQkFBYyxNQUFNOzJCQUFDLElBQUk7OzBCQUFHLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZmlsdGVyTWF5YmUsIE9ic2VydmFibGVPclZhbHVlIH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBzaGFyZVJlcGxheSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgU3Vic2NyaXB0aW9uLCBORVZFUiwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZpcmVzdG9yZUNvbGxlY3Rpb25Hcm91cCwgRmlyZXN0b3JlQ29sbGVjdGlvbldpdGhQYXJlbnRGYWN0b3J5LCBGaXJlc3RvcmVEb2N1bWVudCB9IGZyb20gJ0BkZXJlZWtiL2ZpcmViYXNlJztcbmltcG9ydCB7IEFic3RyYWN0RGJ4RmlyZWJhc2VDb2xsZWN0aW9uU3RvcmUsIERieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlLCBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZUNvbnRleHRTdGF0ZSB9IGZyb20gJy4vc3RvcmUuY29sbGVjdGlvbic7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZUNvbXBvbmVudFN0b3JlU2V0UGFyZW50RWZmZWN0RnVuY3Rpb24sIERieEZpcmViYXNlQ29tcG9uZW50U3RvcmVXaXRoUGFyZW50LCBEYnhGaXJlYmFzZUNvbXBvbmVudFN0b3JlV2l0aFBhcmVudENvbnRleHRTdGF0ZSwgRGJ4RmlyZWJhc2VDb21wb25lbnRTdG9yZVdpdGhQYXJlbnRTZXRQYXJlbnRTdG9yZUVmZmVjdEZ1bmN0aW9uLCBzZXRQYXJlbnRTdG9yZUVmZmVjdCB9IGZyb20gJy4vc3RvcmUuc3ViY29sbGVjdGlvbi5yeGpzJztcblxuLyoqXG4gKiBXaGV0aGVyIG9yIG5vdCB0byBsb2FkIHZhbHVlcyBmcm9tIGEgcGFyZW50IG9yIGEgZ3JvdXAuXG4gKi9cbmV4cG9ydCB0eXBlIERieEZpcmViYXNlQ29tcG9uZW50U3RvcmVXaXRoUGFyZW50U291cmNlTW9kZSA9ICdwYXJlbnQnIHwgJ2dyb3VwJztcblxuZXhwb3J0IGludGVyZmFjZSBEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmVDb250ZXh0U3RhdGU8VCwgUFQsIEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxUPiA9IEZpcmVzdG9yZURvY3VtZW50PFQ+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
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuc3ViY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL21vZGVsL21vZHVsZXMvc3RvcmUvc3RvcmUuc3ViY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFjLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQWdCLEtBQUssRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9HLE9BQU8sRUFBRSxrQ0FBa0MsRUFBc0UsTUFBTSxvQkFBb0IsQ0FBQztBQUM1SSxPQUFPLEVBQTJNLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBcUIzUTs7R0FFRztBQUVILE1BQU0sT0FBTyw0Q0FBZ1QsU0FBUSxrQ0FBMkM7SUFDOVcsWUFBc0MsS0FBUSxFQUE0QixpQkFBaUU7UUFDekksS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsSUFBSSxRQUFRLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsZ0JBQWdCO0lBQ1AsY0FBYyxHQUE0RSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNySCxhQUFhLEdBQW1FLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUF1RSxFQUFFLEVBQUU7UUFDL0ssT0FBTyxLQUFLLENBQUMsSUFBSSxDQUNmLG9CQUFvQixFQUFFLEVBQ3RCLFNBQVMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3RCLE1BQU0sSUFBSSxHQUFHLFNBQVMsRUFBRSxXQUFXLEVBQUUsSUFBSSxRQUFRLENB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QUksQ0FBQyxrQkFBMEUsQ0FBQzt3R0FsRjNGLDRDQUE0QyxrQkFDbkMsSUFBSSw2QkFBZ0MsSUFBSTs0R0FEakQsNENBQTRDOzs0RkFBNUMsNENBQTRDO2tCQUR4RCxVQUFVOzswQkFFSSxNQUFNOzJCQUFDLElBQUk7OzBCQUFHLFFBQVE7OzBCQUFjLE1BQU07MkJBQUMsSUFBSTs7MEJBQUcsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmaWx0ZXJNYXliZSwgT2JzZXJ2YWJsZU9yVmFsdWUgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIHNoYXJlUmVwbGF5LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBTdWJzY3JpcHRpb24sIE5FVkVSLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmlyZXN0b3JlQ29sbGVjdGlvbkdyb3VwLCBGaXJlc3RvcmVDb2xsZWN0aW9uV2l0aFBhcmVudEZhY3RvcnksIEZpcmVzdG9yZURvY3VtZW50IH0gZnJvbSAnQGRlcmVla2IvZmlyZWJhc2UnO1xuaW1wb3J0IHsgQWJzdHJhY3REYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZSwgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uU3RvcmUsIERieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlQ29udGV4dFN0YXRlIH0gZnJvbSAnLi9zdG9yZS5jb2xsZWN0aW9uJztcbmltcG9ydCB7IERieEZpcmViYXNlQ29tcG9uZW50U3RvcmVTZXRQYXJlbnRFZmZlY3RGdW5jdGlvbiwgRGJ4RmlyZWJhc2VDb21wb25lbnRTdG9yZVdpdGhQYXJlbnQsIERieEZpcmViYXNlQ29tcG9uZW50U3RvcmVXaXRoUGFyZW50Q29udGV4dFN0YXRlLCBEYnhGaXJlYmFzZUNvbXBvbmVudFN0b3JlV2l0aFBhcmVudFNldFBhcmVudFN0b3JlRWZmZWN0RnVuY3Rpb24sIHNldFBhcmVudFN0b3JlRWZmZWN0IH0gZnJvbSAnLi9zdG9yZS5zdWJjb2xsZWN0aW9uLnJ4anMnO1xuXG4vKipcbiAqIFdoZXRoZXIgb3Igbm90IHRvIGxvYWQgdmFsdWVzIGZyb20gYSBwYXJlbnQgb3IgYSBncm91cC5cbiAqL1xuZXhwb3J0IHR5cGUgRGJ4RmlyZWJhc2VDb21wb25lbnRTdG9yZVdpdGhQYXJlbnRTb3VyY2VNb2RlID0gJ3BhcmVudCcgfCAnZ3JvdXAnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERieEZpcmViYXNlQ29sbGVjdGlvbldpdGhQYXJlbnRTdG9yZUNvbnRleHRTdGF0ZTxULCBQVCwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4sIFBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8UFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8UFQ+PiBleHRlbmRzIERieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlQ29udGV4dFN0YXRlPFQsIEQ+LCBEYnhGaXJlYmFzZUNvbXBvbmVudFN0b3JlV2l0aFBhcmVudENvbnRleHRTdGF0ZTxULCBQVCwgRCwgUEQ+IHtcbiAgcmVhZG9ubHkgbW9kZT86IE1heWJlPERieEZpcmViYXNlQ29tcG9uZW50U3RvcmVXaXRoUGFyZW50U291cmNlTW9kZT47XG4gIHJlYWRvbmx5IGNvbGxlY3Rpb25Hcm91cD86IE1heWJlPEZpcmVzdG9yZUNvbGxlY3Rpb25Hcm91cDxULCBEPj47XG59XG5cbmV4cG9ydCB0eXBlIERieEZpcmViYXNlQ29tcG9uZW50U3RvcmVXaXRoUGFyZW50U2V0UGFyZW50U291cmNlTW9kZUZ1bmN0aW9uID0gKG9ic2VydmFibGVPclZhbHVlOiBPYnNlcnZhYmxlT3JWYWx1ZTxNYXliZTxEYnhGaXJlYmFzZUNvbXBvbmVudFN0b3JlV2l0aFBhcmVudFNvdXJjZU1vZGU+PikgPT4gU3Vic2NyaXB0aW9uO1xuXG5leHBvcnQgaW50ZXJmYWNlIERieEZpcmViYXNlQ29sbGVjdGlvbldpdGhQYXJlbnRTdG9yZTxULCBQVCwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4sIFBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8UFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8UFQ+PiBleHRlbmRzIERieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlPFQsIEQ+LCBEYnhGaXJlYmFzZUNvbXBvbmVudFN0b3JlV2l0aFBhcmVudDxULCBQVCwgRCwgUEQ+IHtcbiAgcmVhZG9ubHkgc2V0U291cmNlTW9kZTogRGJ4RmlyZWJhc2VDb21wb25lbnRTdG9yZVdpdGhQYXJlbnRTZXRQYXJlbnRTb3VyY2VNb2RlRnVuY3Rpb247XG4gIHJlYWRvbmx5IHNldENvbGxlY3Rpb25Hcm91cDogKG9ic2VydmFibGVPclZhbHVlOiBGaXJlc3RvcmVDb2xsZWN0aW9uR3JvdXA8VCwgRD4gfCBPYnNlcnZhYmxlPEZpcmVzdG9yZUNvbGxlY3Rpb25Hcm91cDxULCBEPj4pID0+IFN1YnNjcmlwdGlvbjtcbiAgcmVhZG9ubHkgY3VycmVudENvbGxlY3Rpb25Hcm91cCQ6IE9ic2VydmFibGU8TWF5YmU8RmlyZXN0b3JlQ29sbGVjdGlvbkdyb3VwPFQsIEQ+Pj47XG4gIHJlYWRvbmx5IGNvbGxlY3Rpb25Hcm91cCQ6IE9ic2VydmFibGU8RmlyZXN0b3JlQ29sbGVjdGlvbkdyb3VwPFQsIEQ+Pjtcbn1cblxuLyoqXG4gKiBBYnN0cmFjdCBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZSB0aGF0IGhhcyBhIHBhcmVudCBkb2N1bWVudCBmcm9tIHdoaWNoIGlzIGRlcml2ZXMgaXQncyBGaXJlc2Jhc2VDb2xsZWN0aW9uIGZyb20uXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBYnN0cmFjdERieEZpcmViYXNlQ29sbGVjdGlvbldpdGhQYXJlbnRTdG9yZTxULCBQVCwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4sIFBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8UFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8UFQ+LCBDIGV4dGVuZHMgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uV2l0aFBhcmVudFN0b3JlQ29udGV4dFN0YXRlPFQsIFBULCBELCBQRD4gPSBEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmVDb250ZXh0U3RhdGU8VCwgUFQsIEQsIFBEPj4gZXh0ZW5kcyBBYnN0cmFjdERieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlPFQsIEQsIEM+IGltcGxlbWVudHMgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uV2l0aFBhcmVudFN0b3JlPFQsIFBULCBELCBQRD4ge1xuICBjb25zdHJ1Y3RvcihASW5qZWN0KG51bGwpIEBPcHRpb25hbCgpIHN0YXRlOiBDLCBASW5qZWN0KG51bGwpIEBPcHRpb25hbCgpIGRlZmF1bHRTb3VyY2VNb2RlPzogRGJ4RmlyZWJhc2VDb21wb25lbnRTdG9yZVdpdGhQYXJlbnRTb3VyY2VNb2RlKSB7XG4gICAgc3VwZXIoc3RhdGUpO1xuICAgIHRoaXMuc2V0U291cmNlTW9kZShkZWZhdWx0U291cmNlTW9kZSB8fCAncGFyZW50Jyk7XG4gIH1cblxuICAvLyBNQVJLOiBFZmZlY3RzXG4gIHJlYWRvbmx5IHNldFBhcmVudFN0b3JlOiBEYnhGaXJlYmFzZUNvbXBvbmVudFN0b3JlV2l0aFBhcmVudFNldFBhcmVudFN0b3JlRWZmZWN0RnVuY3Rpb248UFQsIFBEPiA9IHNldFBhcmVudFN0b3JlRWZmZWN0KHRoaXMpO1xuICByZWFkb25seSBzZXRTb3VyY2VNb2RlOiBEYnhGaXJlYmFzZUNvbXBvbmVudFN0b3JlV2l0aFBhcmVudFNldFBhcmVudFNvdXJjZU1vZGVGdW5jdGlvbiA9IHRoaXMuZWZmZWN0KChpbnB1dDogT2JzZXJ2YWJsZTxNYXliZTxEYnhGaXJlYmFzZUNvbXBvbmVudFN0b3JlV2l0aFBhcmVudFNvdXJjZU1vZGU+PikgPT4ge1xuICAgIHJldHVybiBpbnB1dC5waXBlKFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIHN3aXRjaE1hcCgoaW5wdXRNb2RlKSA9PiB7XG4gICAgICAgIGNvbnN0IG1vZGUgPSBpbnB1dE1vZGU/LnRvTG93ZXJDYXNlKCkgPz8gJ3BhcmVudCc7IC8vIGRlZmF1bHQgdG8gcGFyZW50IG1vZGVcblxuICAgICAgICBpZiAobW9kZSA9PT0gJ2dyb3VwJykge1xuICAgICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRDb2xsZWN0aW9uR3JvdXAkLnBpcGUoXG4gICAgICAgICAgICB0YXAoKGNvbGxlY3Rpb25Hcm91cCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnNldEZpcmVzdG9yZUNvbGxlY3Rpb24oY29sbGVjdGlvbkdyb3VwKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBwYXJlbnQgZG9jdW1lbnQgY29sbGVjdGlvblxuICAgICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRQYXJlbnQkLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKHBhcmVudCkgPT4ge1xuICAgICAgICAgICAgICBpZiAocGFyZW50KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29sbGVjdGlvbkZhY3RvcnkkLnBpcGUoXG4gICAgICAgICAgICAgICAgICB0YXAoKGNvbGxlY3Rpb25GYWN0b3J5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbGxlY3Rpb24gPSBjb2xsZWN0aW9uRmFjdG9yeShwYXJlbnQpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldEZpcmVzdG9yZUNvbGxlY3Rpb24oY29sbGVjdGlvbik7XG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRGaXJlc3RvcmVDb2xsZWN0aW9uKHVuZGVmaW5lZCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIE5FVkVSO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfSk7XG5cbiAgLy8gTUFSSzogQWNjZXNzb3JzXG4gIHJlYWRvbmx5IGN1cnJlbnRQYXJlbnQkOiBPYnNlcnZhYmxlPE1heWJlPFBEPj4gPSB0aGlzLnN0YXRlJC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5wYXJlbnQpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBwYXJlbnQkOiBPYnNlcnZhYmxlPFBEPiA9IHRoaXMuY3VycmVudFBhcmVudCQucGlwZShmaWx0ZXJNYXliZSgpKTtcblxuICByZWFkb25seSBjdXJyZW50Q29sbGVjdGlvbkZhY3RvcnkkOiBPYnNlcnZhYmxlPE1heWJlPEZpcmVzdG9yZUNvbGxlY3Rpb25XaXRoUGFyZW50RmFjdG9yeTxULCBQVCwgRCwgUEQ+Pj4gPSB0aGlzLnN0YXRlJC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5jb2xsZWN0aW9uRmFjdG9yeSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGNvbGxlY3Rpb25GYWN0b3J5JDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVDb2xsZWN0aW9uV2l0aFBhcmVudEZhY3Rvcnk8VCwgUFQsIEQsIFBEPj4gPSB0aGlzLmN1cnJlbnRDb2xsZWN0aW9uRmFjdG9yeSQucGlwZShmaWx0ZXJNYXliZSgpKTtcblxuICByZWFkb25seSBjdXJyZW50Q29sbGVjdGlvbkdyb3VwJDogT2JzZXJ2YWJsZTxNYXliZTxGaXJlc3RvcmVDb2xsZWN0aW9uR3JvdXA8VCwgRD4+PiA9IHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LmNvbGxlY3Rpb25Hcm91cCksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGNvbGxlY3Rpb25Hcm91cCQ6IE9ic2VydmFibGU8RmlyZXN0b3JlQ29sbGVjdGlvbkdyb3VwPFQsIEQ+PiA9IHRoaXMuY3VycmVudENvbGxlY3Rpb25Hcm91cCQucGlwZShmaWx0ZXJNYXliZSgpKTtcblxuICAvLyBNQVJLOiBTdGF0ZSBDaGFuZ2VzXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBjb2xsZWN0aW9uIGZhY3RvcnkgZnVuY3Rpb24gdG8gdXNlLlxuICAgKi9cbiAgcmVhZG9ubHkgc2V0Q29sbGVjdGlvbkZhY3RvcnkgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBjb2xsZWN0aW9uRmFjdG9yeTogRmlyZXN0b3JlQ29sbGVjdGlvbldpdGhQYXJlbnRGYWN0b3J5PFQsIFBULCBELCBQRD4pID0+ICh7IC4uLnN0YXRlLCBjb2xsZWN0aW9uRmFjdG9yeSB9KSk7XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGNvbGxlY3Rpb24gZ3JvdXAgdG8gdXNlLlxuICAgKi9cbiAgcmVhZG9ubHkgc2V0Q29sbGVjdGlvbkdyb3VwID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgY29sbGVjdGlvbkdyb3VwOiBNYXliZTxGaXJlc3RvcmVDb2xsZWN0aW9uR3JvdXA8VCwgRD4+KSA9PiAoeyAuLi5zdGF0ZSwgY29sbGVjdGlvbkdyb3VwIH0pKSBhcyAob2JzZXJ2YWJsZU9yVmFsdWU6IE1heWJlPEZpcmVzdG9yZUNvbGxlY3Rpb25Hcm91cDxULCBEPj4gfCBPYnNlcnZhYmxlPE1heWJlPEZpcmVzdG9yZUNvbGxlY3Rpb25Hcm91cDxULCBEPj4+KSA9PiBTdWJzY3JpcHRpb247XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHBhcmVudCBvbiB0aGUgY3VycmVudCBzdGF0ZS5cbiAgICovXG4gIHJlYWRvbmx5IF9zZXRQYXJlbnREb2N1bWVudCA9IHRoaXMudXBkYXRlcigoc3RhdGUsIHBhcmVudDogTWF5YmU8UEQ+KSA9PiAoeyAuLi5zdGF0ZSwgcGFyZW50IH0pKTtcbiAgcmVhZG9ubHkgX3NldFBhcmVudCA9IHRoaXMuX3NldFBhcmVudERvY3VtZW50IGFzIERieEZpcmViYXNlQ29tcG9uZW50U3RvcmVTZXRQYXJlbnRFZmZlY3RGdW5jdGlvbjxQRD47XG59XG4iXX0=