@dereekb/dbx-firebase 12.6.14 → 12.6.16

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.
@@ -1,30 +1,39 @@
1
- import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';
2
2
  import { MatAccordion } from '@angular/material/expansion';
3
3
  import { DbxListEmptyContentComponent, DbxLoadingComponent } from '@dereekb/dbx-web';
4
4
  import { DbxFirebaseModelEntitiesEntityComponent } from './model.entities.entity.component';
5
5
  import { toObservable, toSignal } from '@angular/core/rxjs-interop';
6
6
  import { combineLatest, defaultIfEmpty, map, shareReplay, switchMap } from 'rxjs';
7
+ import { filterUniqueValues, reverseCompareFn, sortByNumberFunction } from '@dereekb/util';
7
8
  import { beginLoading, filterMaybeArray, loadingStateContext, mapLoadingStateValueWithOperator, switchMapMaybe, valueFromFinishedLoadingState } from '@dereekb/rxjs';
9
+ import { DbxFirebaseModelEntitiesWidgetService } from './model.entities.widget.service';
8
10
  import * as i0 from "@angular/core";
9
11
  export class DbxFirebaseModelEntitiesComponent {
12
+ entitiesWidgetService = inject(DbxFirebaseModelEntitiesWidgetService);
10
13
  /**
11
14
  * Whether the accordion should allow multiple expanded panels.
12
15
  */
13
16
  multi = input(true);
14
17
  entities = input();
15
18
  entities$ = toObservable(this.entities).pipe(switchMapMaybe(), map((x) => x ?? beginLoading()), shareReplay(1));
16
- entitiesWithKeysState$ = this.entities$.pipe(mapLoadingStateValueWithOperator(switchMap((entities) => {
19
+ allEntitiesWithKeysState$ = this.entities$.pipe(mapLoadingStateValueWithOperator(switchMap((entities) => {
20
+ const sortPriorityMap = this.entitiesWidgetService.getSortPriorityMap();
17
21
  const entitiesWithStore = (entities ?? []).filter((x) => Boolean(x.store));
18
22
  const entitiesWithKeys = combineLatest(entitiesWithStore.map((x) => {
19
- const obs = x.store.currentKey$.pipe(map((key) => (key ? { key, ...x } : null)));
23
+ const sortPriorityMapEntry = sortPriorityMap.get(x.modelIdentity);
24
+ const isKnownType = sortPriorityMapEntry != null;
25
+ const sortPriority = sortPriorityMapEntry ?? -2;
26
+ const obs = x.store.currentKey$.pipe(map((key) => (key ? { key, ...x, sortPriority, isKnownType } : null)));
20
27
  return obs;
21
28
  }));
22
- return entitiesWithKeys.pipe(filterMaybeArray(), defaultIfEmpty([]));
29
+ return entitiesWithKeys.pipe(filterMaybeArray(), map((entities) => {
30
+ return filterUniqueValues(entities, (x) => x.key).sort(reverseCompareFn(sortByNumberFunction((x) => x.sortPriority)));
31
+ }), defaultIfEmpty([]));
23
32
  })), shareReplay(1));
24
- entitiesWithKeys$ = this.entitiesWithKeysState$.pipe(valueFromFinishedLoadingState(), shareReplay(1));
33
+ entitiesWithKeys$ = this.allEntitiesWithKeysState$.pipe(valueFromFinishedLoadingState(), shareReplay(1));
25
34
  entitiesWithKeysSignal = toSignal(this.entitiesWithKeys$, { initialValue: [] });
26
35
  hasNoEntitiesSignal = computed(() => !this.entitiesWithKeysSignal()?.length);
27
- context = loadingStateContext({ obs: this.entitiesWithKeysState$ });
36
+ context = loadingStateContext({ obs: this.allEntitiesWithKeysState$ });
28
37
  ngOnDestroy() {
29
38
  this.context.destroy();
30
39
  }
@@ -67,4 +76,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
67
76
  standalone: true
68
77
  }]
69
78
  }] });
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuZW50aXRpZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kZWwvbW9kdWxlcy9tb2RlbC9lbnRpdGllcy9tb2RlbC5lbnRpdGllcy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRS9GLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyRixPQUFPLEVBQUUsdUNBQXVDLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM1RixPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLEdBQUcsRUFBYyxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTlGLE9BQU8sRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQWdCLG1CQUFtQixFQUFFLGdDQUFnQyxFQUFFLGNBQWMsRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFzQm5MLE1BQU0sT0FBTyxpQ0FBaUM7SUFDNUM7O09BRUc7SUFDTSxLQUFLLEdBQUcsS0FBSyxDQUFVLElBQUksQ0FBQyxDQUFDO0lBRTdCLFFBQVEsR0FBRyxLQUFLLEVBQXNELENBQUM7SUFDdkUsU0FBUyxHQUF1RCxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FDdkcsY0FBYyxFQUFFLEVBQ2hCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLFlBQVksRUFBNEIsQ0FBQyxFQUN6RCxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztJQUVPLHNCQUFzQixHQUFzRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FDdEgsZ0NBQWdDLENBQzlCLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1FBQ3JCLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFzQyxDQUFDO1FBQ2hILE1BQU0sZ0JBQWdCLEdBQStELGFBQWEsQ0FDaEcsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDMUIsTUFBTSxHQUFHLEdBQTZELENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0ksT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLENBQUMsQ0FDSCxDQUFDO1FBRUYsT0FBTyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN2RSxDQUFDLENBQUMsQ0FDSCxFQUNELFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO0lBRU8saUJBQWlCLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyw2QkFBNkIsRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXRHLHNCQUFzQixHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUVoRixtQkFBbUIsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUU3RSxPQUFPLEdBQUcsbUJBQW1CLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUMsQ0FBQztJQUU3RSxXQUFXO1FBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN6QixDQUFDO3dHQXhDVSxpQ0FBaUM7NEZBQWpDLGlDQUFpQyw0VkFsQmxDOzs7Ozs7Ozs7Ozs7O0dBYVQsNERBQ1MsWUFBWSwrSUFBRSxtQkFBbUIsbUtBQUUsdUNBQXVDLG1HQUFFLDRCQUE0Qjs7NEZBSXZHLGlDQUFpQztrQkFwQjdDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDZCQUE2QjtvQkFDdkMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7O0dBYVQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLG1CQUFtQixFQUFFLHVDQUF1QyxFQUFFLDRCQUE0QixDQUFDO29CQUNuSCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGlucHV0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERieEZpcmViYXNlTW9kZWxFbnRpdHksIERieEZpcmViYXNlTW9kZWxFbnRpdHlXaXRoS2V5QW5kU3RvcmUsIERieEZpcmViYXNlTW9kZWxFbnRpdHlXaXRoU3RvcmUgfSBmcm9tICcuL21vZGVsLmVudGl0aWVzJztcbmltcG9ydCB7IE1hdEFjY29yZGlvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2V4cGFuc2lvbic7XG5pbXBvcnQgeyBEYnhMaXN0RW1wdHlDb250ZW50Q29tcG9uZW50LCBEYnhMb2FkaW5nQ29tcG9uZW50IH0gZnJvbSAnQGRlcmVla2IvZGJ4LXdlYic7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNFbnRpdHlDb21wb25lbnQgfSBmcm9tICcuL21vZGVsLmVudGl0aWVzLmVudGl0eS5jb21wb25lbnQnO1xuaW1wb3J0IHsgdG9PYnNlcnZhYmxlLCB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIGRlZmF1bHRJZkVtcHR5LCBtYXAsIE9ic2VydmFibGUsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBiZWdpbkxvYWRpbmcsIGZpbHRlck1heWJlQXJyYXksIExvYWRpbmdTdGF0ZSwgbG9hZGluZ1N0YXRlQ29udGV4dCwgbWFwTG9hZGluZ1N0YXRlVmFsdWVXaXRoT3BlcmF0b3IsIHN3aXRjaE1hcE1heWJlLCB2YWx1ZUZyb21GaW5pc2hlZExvYWRpbmdTdGF0ZSB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkYngtZmlyZWJhc2UtbW9kZWwtZW50aXRpZXMnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkYngtbG9hZGluZyBbbGluZWFyXT1cInRydWVcIiBbY29udGV4dF09XCJjb250ZXh0XCI+XG4gICAgICA8bWF0LWFjY29yZGlvbiBbbXVsdGldPVwibXVsdGkoKVwiPlxuICAgICAgICBAZm9yIChlbnRpdHkgb2YgZW50aXRpZXNXaXRoS2V5c1NpZ25hbCgpOyB0cmFjayBlbnRpdHkua2V5KSB7XG4gICAgICAgICAgPGRieC1maXJlYmFzZS1tb2RlbC1lbnRpdGllcy1lbnRpdHkgW2VudGl0eV09XCJlbnRpdHlcIj48L2RieC1maXJlYmFzZS1tb2RlbC1lbnRpdGllcy1lbnRpdHk+XG4gICAgICAgIH1cbiAgICAgIDwvbWF0LWFjY29yZGlvbj5cbiAgICAgIEBpZiAoaGFzTm9FbnRpdGllc1NpZ25hbCgpKSB7XG4gICAgICAgIDxkYngtbGlzdC1lbXB0eS1jb250ZW50PlxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltlbXB0eV1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGJ4LWxpc3QtZW1wdHktY29udGVudD5cbiAgICAgIH1cbiAgICA8L2RieC1sb2FkaW5nPlxuICBgLFxuICBpbXBvcnRzOiBbTWF0QWNjb3JkaW9uLCBEYnhMb2FkaW5nQ29tcG9uZW50LCBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNFbnRpdHlDb21wb25lbnQsIERieExpc3RFbXB0eUNvbnRlbnRDb21wb25lbnRdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogV2hldGhlciB0aGUgYWNjb3JkaW9uIHNob3VsZCBhbGxvdyBtdWx0aXBsZSBleHBhbmRlZCBwYW5lbHMuXG4gICAqL1xuICByZWFkb25seSBtdWx0aSA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuXG4gIHJlYWRvbmx5IGVudGl0aWVzID0gaW5wdXQ8T2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8RGJ4RmlyZWJhc2VNb2RlbEVudGl0eVtdPj4+KCk7XG4gIHJlYWRvbmx5IGVudGl0aWVzJDogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8RGJ4RmlyZWJhc2VNb2RlbEVudGl0eVtdPj4gPSB0b09ic2VydmFibGUodGhpcy5lbnRpdGllcykucGlwZShcbiAgICBzd2l0Y2hNYXBNYXliZSgpLFxuICAgIG1hcCgoeCkgPT4geCA/PyBiZWdpbkxvYWRpbmc8RGJ4RmlyZWJhc2VNb2RlbEVudGl0eVtdPigpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGVudGl0aWVzV2l0aEtleXNTdGF0ZSQ6IE9ic2VydmFibGU8TG9hZGluZ1N0YXRlPERieEZpcmViYXNlTW9kZWxFbnRpdHlXaXRoS2V5QW5kU3RvcmVbXT4+ID0gdGhpcy5lbnRpdGllcyQucGlwZShcbiAgICBtYXBMb2FkaW5nU3RhdGVWYWx1ZVdpdGhPcGVyYXRvcihcbiAgICAgIHN3aXRjaE1hcCgoZW50aXRpZXMpID0+IHtcbiAgICAgICAgY29uc3QgZW50aXRpZXNXaXRoU3RvcmUgPSAoZW50aXRpZXMgPz8gW10pLmZpbHRlcigoeCkgPT4gQm9vbGVhbih4LnN0b3JlKSkgYXMgRGJ4RmlyZWJhc2VNb2RlbEVudGl0eVdpdGhTdG9yZVtdO1xuICAgICAgICBjb25zdCBlbnRpdGllc1dpdGhLZXlzOiBPYnNlcnZhYmxlPE1heWJlPERieEZpcmViYXNlTW9kZWxFbnRpdHlXaXRoS2V5QW5kU3RvcmU+W10+ID0gY29tYmluZUxhdGVzdChcbiAgICAgICAgICBlbnRpdGllc1dpdGhTdG9yZS5tYXAoKHgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG9iczogT2JzZXJ2YWJsZTxNYXliZTxEYnhGaXJlYmFzZU1vZGVsRW50aXR5V2l0aEtleUFuZFN0b3JlPj4gPSB4LnN0b3JlLmN1cnJlbnRLZXkkLnBpcGUobWFwKChrZXkpID0+IChrZXkgPyB7IGtleSwgLi4ueCB9IDogbnVsbCkpKTtcbiAgICAgICAgICAgIHJldHVybiBvYnM7XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gZW50aXRpZXNXaXRoS2V5cy5waXBlKGZpbHRlck1heWJlQXJyYXkoKSwgZGVmYXVsdElmRW1wdHkoW10pKTtcbiAgICAgIH0pXG4gICAgKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGVudGl0aWVzV2l0aEtleXMkID0gdGhpcy5lbnRpdGllc1dpdGhLZXlzU3RhdGUkLnBpcGUodmFsdWVGcm9tRmluaXNoZWRMb2FkaW5nU3RhdGUoKSwgc2hhcmVSZXBsYXkoMSkpO1xuXG4gIHJlYWRvbmx5IGVudGl0aWVzV2l0aEtleXNTaWduYWwgPSB0b1NpZ25hbCh0aGlzLmVudGl0aWVzV2l0aEtleXMkLCB7IGluaXRpYWxWYWx1ZTogW10gfSk7XG5cbiAgcmVhZG9ubHkgaGFzTm9FbnRpdGllc1NpZ25hbCA9IGNvbXB1dGVkKCgpID0+ICF0aGlzLmVudGl0aWVzV2l0aEtleXNTaWduYWwoKT8ubGVuZ3RoKTtcblxuICByZWFkb25seSBjb250ZXh0ID0gbG9hZGluZ1N0YXRlQ29udGV4dCh7IG9iczogdGhpcy5lbnRpdGllc1dpdGhLZXlzU3RhdGUkIH0pO1xuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY29udGV4dC5kZXN0cm95KCk7XG4gIH1cbn1cbiJdfQ==
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuZW50aXRpZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kZWwvbW9kdWxlcy9tb2RlbC9lbnRpdGllcy9tb2RlbC5lbnRpdGllcy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUV2RyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFFLDRCQUE0QixFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckYsT0FBTyxFQUFFLHVDQUF1QyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDNUYsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxHQUFHLEVBQWMsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5RixPQUFPLEVBQUUsa0JBQWtCLEVBQVMsZ0JBQWdCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBZ0IsbUJBQW1CLEVBQUUsZ0NBQWdDLEVBQUUsY0FBYyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25MLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOztBQXNCeEYsTUFBTSxPQUFPLGlDQUFpQztJQUNuQyxxQkFBcUIsR0FBRyxNQUFNLENBQUMscUNBQXFDLENBQUMsQ0FBQztJQUUvRTs7T0FFRztJQUNNLEtBQUssR0FBRyxLQUFLLENBQVUsSUFBSSxDQUFDLENBQUM7SUFFN0IsUUFBUSxHQUFHLEtBQUssRUFBc0QsQ0FBQztJQUN2RSxTQUFTLEdBQXVELFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUN2RyxjQUFjLEVBQUUsRUFDaEIsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksWUFBWSxFQUE0QixDQUFDLEVBQ3pELFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO0lBRU8seUJBQXlCLEdBQXNFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUN6SCxnQ0FBZ0MsQ0FDOUIsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7UUFDckIsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDeEUsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQXNDLENBQUM7UUFPaEgsTUFBTSxnQkFBZ0IsR0FBOEUsYUFBYSxDQUMvRyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUMxQixNQUFNLG9CQUFvQixHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ2xFLE1BQU0sV0FBVyxHQUFHLG9CQUFvQixJQUFJLElBQUksQ0FBQztZQUNqRCxNQUFNLFlBQVksR0FBRyxvQkFBb0IsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUVoRCxNQUFNLEdBQUcsR0FBNEUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JMLE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUVGLE9BQU8sZ0JBQWdCLENBQUMsSUFBSSxDQUMxQixnQkFBZ0IsRUFBRSxFQUNsQixHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNmLE9BQU8sa0JBQWtCLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hILENBQUMsQ0FBQyxFQUNGLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FDbkIsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUNILEVBQ0QsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7SUFFTyxpQkFBaUIsR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLDZCQUE2QixFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFekcsc0JBQXNCLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRWhGLG1CQUFtQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBRTdFLE9BQU8sR0FBRyxtQkFBbUIsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQyxDQUFDO0lBRWhGLFdBQVc7UUFDVCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3pCLENBQUM7d0dBM0RVLGlDQUFpQzs0RkFBakMsaUNBQWlDLDRWQWxCbEM7Ozs7Ozs7Ozs7Ozs7R0FhVCw0REFDUyxZQUFZLCtJQUFFLG1CQUFtQixtS0FBRSx1Q0FBdUMsbUdBQUUsNEJBQTRCOzs0RkFJdkcsaUNBQWlDO2tCQXBCN0MsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsNkJBQTZCO29CQUN2QyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7R0FhVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsdUNBQXVDLEVBQUUsNEJBQTRCLENBQUM7b0JBQ25ILGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBpbnB1dCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZU1vZGVsRW50aXR5LCBEYnhGaXJlYmFzZU1vZGVsRW50aXR5V2l0aEtleUFuZFN0b3JlLCBEYnhGaXJlYmFzZU1vZGVsRW50aXR5V2l0aFN0b3JlIH0gZnJvbSAnLi9tb2RlbC5lbnRpdGllcyc7XG5pbXBvcnQgeyBNYXRBY2NvcmRpb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9leHBhbnNpb24nO1xuaW1wb3J0IHsgRGJ4TGlzdEVtcHR5Q29udGVudENvbXBvbmVudCwgRGJ4TG9hZGluZ0NvbXBvbmVudCB9IGZyb20gJ0BkZXJlZWtiL2RieC13ZWInO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzRW50aXR5Q29tcG9uZW50IH0gZnJvbSAnLi9tb2RlbC5lbnRpdGllcy5lbnRpdHkuY29tcG9uZW50JztcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSwgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBkZWZhdWx0SWZFbXB0eSwgbWFwLCBPYnNlcnZhYmxlLCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXJVbmlxdWVWYWx1ZXMsIE1heWJlLCByZXZlcnNlQ29tcGFyZUZuLCBzb3J0QnlOdW1iZXJGdW5jdGlvbiB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgYmVnaW5Mb2FkaW5nLCBmaWx0ZXJNYXliZUFycmF5LCBMb2FkaW5nU3RhdGUsIGxvYWRpbmdTdGF0ZUNvbnRleHQsIG1hcExvYWRpbmdTdGF0ZVZhbHVlV2l0aE9wZXJhdG9yLCBzd2l0Y2hNYXBNYXliZSwgdmFsdWVGcm9tRmluaXNoZWRMb2FkaW5nU3RhdGUgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IERieEZpcmViYXNlTW9kZWxFbnRpdGllc1dpZGdldFNlcnZpY2UgfSBmcm9tICcuL21vZGVsLmVudGl0aWVzLndpZGdldC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGJ4LWZpcmViYXNlLW1vZGVsLWVudGl0aWVzJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGJ4LWxvYWRpbmcgW2xpbmVhcl09XCJ0cnVlXCIgW2NvbnRleHRdPVwiY29udGV4dFwiPlxuICAgICAgPG1hdC1hY2NvcmRpb24gW211bHRpXT1cIm11bHRpKClcIj5cbiAgICAgICAgQGZvciAoZW50aXR5IG9mIGVudGl0aWVzV2l0aEtleXNTaWduYWwoKTsgdHJhY2sgZW50aXR5LmtleSkge1xuICAgICAgICAgIDxkYngtZmlyZWJhc2UtbW9kZWwtZW50aXRpZXMtZW50aXR5IFtlbnRpdHldPVwiZW50aXR5XCI+PC9kYngtZmlyZWJhc2UtbW9kZWwtZW50aXRpZXMtZW50aXR5PlxuICAgICAgICB9XG4gICAgICA8L21hdC1hY2NvcmRpb24+XG4gICAgICBAaWYgKGhhc05vRW50aXRpZXNTaWduYWwoKSkge1xuICAgICAgICA8ZGJ4LWxpc3QtZW1wdHktY29udGVudD5cbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZW1wdHldXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2RieC1saXN0LWVtcHR5LWNvbnRlbnQ+XG4gICAgICB9XG4gICAgPC9kYngtbG9hZGluZz5cbiAgYCxcbiAgaW1wb3J0czogW01hdEFjY29yZGlvbiwgRGJ4TG9hZGluZ0NvbXBvbmVudCwgRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzRW50aXR5Q29tcG9uZW50LCBEYnhMaXN0RW1wdHlDb250ZW50Q29tcG9uZW50XSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcmVhZG9ubHkgZW50aXRpZXNXaWRnZXRTZXJ2aWNlID0gaW5qZWN0KERieEZpcmViYXNlTW9kZWxFbnRpdGllc1dpZGdldFNlcnZpY2UpO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBhY2NvcmRpb24gc2hvdWxkIGFsbG93IG11bHRpcGxlIGV4cGFuZGVkIHBhbmVscy5cbiAgICovXG4gIHJlYWRvbmx5IG11bHRpID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG5cbiAgcmVhZG9ubHkgZW50aXRpZXMgPSBpbnB1dDxPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxEYnhGaXJlYmFzZU1vZGVsRW50aXR5W10+Pj4oKTtcbiAgcmVhZG9ubHkgZW50aXRpZXMkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxEYnhGaXJlYmFzZU1vZGVsRW50aXR5W10+PiA9IHRvT2JzZXJ2YWJsZSh0aGlzLmVudGl0aWVzKS5waXBlKFxuICAgIHN3aXRjaE1hcE1heWJlKCksXG4gICAgbWFwKCh4KSA9PiB4ID8/IGJlZ2luTG9hZGluZzxEYnhGaXJlYmFzZU1vZGVsRW50aXR5W10+KCkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgYWxsRW50aXRpZXNXaXRoS2V5c1N0YXRlJDogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8RGJ4RmlyZWJhc2VNb2RlbEVudGl0eVdpdGhLZXlBbmRTdG9yZVtdPj4gPSB0aGlzLmVudGl0aWVzJC5waXBlKFxuICAgIG1hcExvYWRpbmdTdGF0ZVZhbHVlV2l0aE9wZXJhdG9yKFxuICAgICAgc3dpdGNoTWFwKChlbnRpdGllcykgPT4ge1xuICAgICAgICBjb25zdCBzb3J0UHJpb3JpdHlNYXAgPSB0aGlzLmVudGl0aWVzV2lkZ2V0U2VydmljZS5nZXRTb3J0UHJpb3JpdHlNYXAoKTtcbiAgICAgICAgY29uc3QgZW50aXRpZXNXaXRoU3RvcmUgPSAoZW50aXRpZXMgPz8gW10pLmZpbHRlcigoeCkgPT4gQm9vbGVhbih4LnN0b3JlKSkgYXMgRGJ4RmlyZWJhc2VNb2RlbEVudGl0eVdpdGhTdG9yZVtdO1xuXG4gICAgICAgIGludGVyZmFjZSBEYnhGaXJlYmFzZU1vZGVsRW50aXR5V2l0aEtleUFuZFN0b3JlQW5kU29ydFByaW9yaXR5IGV4dGVuZHMgRGJ4RmlyZWJhc2VNb2RlbEVudGl0eVdpdGhLZXlBbmRTdG9yZSB7XG4gICAgICAgICAgcmVhZG9ubHkgc29ydFByaW9yaXR5OiBudW1iZXI7XG4gICAgICAgICAgcmVhZG9ubHkgaXNLbm93blR5cGU6IGJvb2xlYW47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBlbnRpdGllc1dpdGhLZXlzOiBPYnNlcnZhYmxlPE1heWJlPERieEZpcmViYXNlTW9kZWxFbnRpdHlXaXRoS2V5QW5kU3RvcmVBbmRTb3J0UHJpb3JpdHk+W10+ID0gY29tYmluZUxhdGVzdChcbiAgICAgICAgICBlbnRpdGllc1dpdGhTdG9yZS5tYXAoKHgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNvcnRQcmlvcml0eU1hcEVudHJ5ID0gc29ydFByaW9yaXR5TWFwLmdldCh4Lm1vZGVsSWRlbnRpdHkpO1xuICAgICAgICAgICAgY29uc3QgaXNLbm93blR5cGUgPSBzb3J0UHJpb3JpdHlNYXBFbnRyeSAhPSBudWxsO1xuICAgICAgICAgICAgY29uc3Qgc29ydFByaW9yaXR5ID0gc29ydFByaW9yaXR5TWFwRW50cnkgPz8gLTI7XG5cbiAgICAgICAgICAgIGNvbnN0IG9iczogT2JzZXJ2YWJsZTxNYXliZTxEYnhGaXJlYmFzZU1vZGVsRW50aXR5V2l0aEtleUFuZFN0b3JlQW5kU29ydFByaW9yaXR5Pj4gPSB4LnN0b3JlLmN1cnJlbnRLZXkkLnBpcGUobWFwKChrZXkpID0+IChrZXkgPyB7IGtleSwgLi4ueCwgc29ydFByaW9yaXR5LCBpc0tub3duVHlwZSB9IDogbnVsbCkpKTtcbiAgICAgICAgICAgIHJldHVybiBvYnM7XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gZW50aXRpZXNXaXRoS2V5cy5waXBlKFxuICAgICAgICAgIGZpbHRlck1heWJlQXJyYXkoKSxcbiAgICAgICAgICBtYXAoKGVudGl0aWVzKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZmlsdGVyVW5pcXVlVmFsdWVzKGVudGl0aWVzLCAoeCkgPT4geC5rZXkpLnNvcnQocmV2ZXJzZUNvbXBhcmVGbihzb3J0QnlOdW1iZXJGdW5jdGlvbigoeCkgPT4geC5zb3J0UHJpb3JpdHkpKSk7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgZGVmYXVsdElmRW1wdHkoW10pXG4gICAgICAgICk7XG4gICAgICB9KVxuICAgICksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBlbnRpdGllc1dpdGhLZXlzJCA9IHRoaXMuYWxsRW50aXRpZXNXaXRoS2V5c1N0YXRlJC5waXBlKHZhbHVlRnJvbUZpbmlzaGVkTG9hZGluZ1N0YXRlKCksIHNoYXJlUmVwbGF5KDEpKTtcblxuICByZWFkb25seSBlbnRpdGllc1dpdGhLZXlzU2lnbmFsID0gdG9TaWduYWwodGhpcy5lbnRpdGllc1dpdGhLZXlzJCwgeyBpbml0aWFsVmFsdWU6IFtdIH0pO1xuXG4gIHJlYWRvbmx5IGhhc05vRW50aXRpZXNTaWduYWwgPSBjb21wdXRlZCgoKSA9PiAhdGhpcy5lbnRpdGllc1dpdGhLZXlzU2lnbmFsKCk/Lmxlbmd0aCk7XG5cbiAgcmVhZG9ubHkgY29udGV4dCA9IGxvYWRpbmdTdGF0ZUNvbnRleHQoeyBvYnM6IHRoaXMuYWxsRW50aXRpZXNXaXRoS2V5c1N0YXRlJCB9KTtcblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRleHQuZGVzdHJveSgpO1xuICB9XG59XG4iXX0=
@@ -1,5 +1,5 @@
1
- import { ChangeDetectionStrategy, Component, ElementRef, inject, input, viewChild } from '@angular/core';
2
- import { AbstractPopoverRefDirective, DbxIconButtonComponent, DbxPopoverService } from '@dereekb/dbx-web';
1
+ import { ChangeDetectionStrategy, Component, computed, ElementRef, inject, input, viewChild } from '@angular/core';
2
+ import { AbstractPopoverRefDirective, DbxButtonComponent, DbxPopoverService } from '@dereekb/dbx-web';
3
3
  import { DbxFirebaseModelEntitiesPopoverComponent } from './model.entities.popover.component';
4
4
  import { DbxFirebaseModelEntitiesSource } from './model.entities';
5
5
  import * as i0 from "@angular/core";
@@ -8,6 +8,11 @@ export class DbxFirebaseModelEntitiesPopoverButtonComponent extends AbstractPopo
8
8
  entitiesSource = inject(DbxFirebaseModelEntitiesSource);
9
9
  buttonElement = viewChild.required('button', { read: ElementRef });
10
10
  config = input();
11
+ buttonDisplaySignal = computed(() => {
12
+ const config = this.config();
13
+ return config?.buttonDisplay ?? { icon: config?.icon ?? 'data_object' };
14
+ });
15
+ buttonStyleSignal = computed(() => this.config()?.buttonStyle);
11
16
  _makePopoverRef(origin) {
12
17
  if (!origin) {
13
18
  throw new Error('Missing origin.');
@@ -26,19 +31,19 @@ export class DbxFirebaseModelEntitiesPopoverButtonComponent extends AbstractPopo
26
31
  }
27
32
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseModelEntitiesPopoverButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
28
33
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.13", type: DbxFirebaseModelEntitiesPopoverButtonComponent, isStandalone: true, selector: "dbx-firebase-model-entities-popover-button", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "buttonElement", first: true, predicate: ["button"], descendants: true, read: ElementRef, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
29
- <dbx-icon-button #button (buttonClick)="showEntitiesPopover()" icon="data_object"></dbx-icon-button>
30
- `, isInline: true, dependencies: [{ kind: "component", type: DbxIconButtonComponent, selector: "dbx-icon-button" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
34
+ <dbx-button #button (buttonClick)="showEntitiesPopover()" [buttonStyle]="buttonStyleSignal()" [buttonDisplay]="buttonDisplaySignal()"></dbx-button>
35
+ `, isInline: true, dependencies: [{ kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "raised", "stroked", "flat", "iconOnly", "fab", "mode"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
31
36
  }
32
37
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseModelEntitiesPopoverButtonComponent, decorators: [{
33
38
  type: Component,
34
39
  args: [{
35
40
  selector: 'dbx-firebase-model-entities-popover-button',
36
41
  template: `
37
- <dbx-icon-button #button (buttonClick)="showEntitiesPopover()" icon="data_object"></dbx-icon-button>
42
+ <dbx-button #button (buttonClick)="showEntitiesPopover()" [buttonStyle]="buttonStyleSignal()" [buttonDisplay]="buttonDisplaySignal()"></dbx-button>
38
43
  `,
39
44
  standalone: true,
40
- imports: [DbxIconButtonComponent],
45
+ imports: [DbxButtonComponent],
41
46
  changeDetection: ChangeDetectionStrategy.OnPush
42
47
  }]
43
48
  }] });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuZW50aXRpZXMucG9wb3Zlci5idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kZWwvbW9kdWxlcy9tb2RlbC9lbnRpdGllcy9tb2RlbC5lbnRpdGllcy5wb3BvdmVyLmJ1dHRvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLHNCQUFzQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFMUcsT0FBTyxFQUFFLHdDQUF3QyxFQUFzRCxNQUFNLG9DQUFvQyxDQUFDO0FBRWxKLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQWFsRSxNQUFNLE9BQU8sOENBQStDLFNBQVEsMkJBQTZDO0lBQzlGLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRXZELGNBQWMsR0FBRyxNQUFNLENBQUMsOEJBQThCLENBQUMsQ0FBQztJQUV4RCxhQUFhLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBcUIsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDdkYsTUFBTSxHQUFHLEtBQUssRUFBK0MsQ0FBQztJQUVwRCxlQUFlLENBQUMsTUFBMEI7UUFDM0QsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDN0IsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUM7UUFFaEQsT0FBTyx3Q0FBd0MsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQ25GLE1BQU07WUFDTixHQUFHLE1BQU07WUFDVCxTQUFTO1NBQ1YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQixDQUFDO3dHQTFCVSw4Q0FBOEM7NEZBQTlDLDhDQUE4QyxpVUFLeUIsVUFBVSxvRUFabEY7O0dBRVQsNERBRVMsc0JBQXNCOzs0RkFHckIsOENBQThDO2tCQVQxRCxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw0Q0FBNEM7b0JBQ3RELFFBQVEsRUFBRTs7R0FFVDtvQkFDRCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIGluamVjdCwgaW5wdXQsIHZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RQb3BvdmVyUmVmRGlyZWN0aXZlLCBEYnhJY29uQnV0dG9uQ29tcG9uZW50LCBEYnhQb3BvdmVyU2VydmljZSB9IGZyb20gJ0BkZXJlZWtiL2RieC13ZWInO1xuaW1wb3J0IHsgTmdQb3BvdmVyUmVmIH0gZnJvbSAnbmctb3ZlcmxheS1jb250YWluZXInO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzUG9wb3ZlckNvbXBvbmVudCwgRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzUG9wb3ZlckNvbmZpZ1dpdGhvdXRPcmlnaW4gfSBmcm9tICcuL21vZGVsLmVudGl0aWVzLnBvcG92ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNTb3VyY2UgfSBmcm9tICcuL21vZGVsLmVudGl0aWVzJztcblxuZXhwb3J0IHR5cGUgRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzUG9wb3ZlckJ1dHRvbkNvbmZpZyA9IERieEZpcmViYXNlTW9kZWxFbnRpdGllc1BvcG92ZXJDb25maWdXaXRob3V0T3JpZ2luO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkYngtZmlyZWJhc2UtbW9kZWwtZW50aXRpZXMtcG9wb3Zlci1idXR0b24nLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkYngtaWNvbi1idXR0b24gI2J1dHRvbiAoYnV0dG9uQ2xpY2spPVwic2hvd0VudGl0aWVzUG9wb3ZlcigpXCIgaWNvbj1cImRhdGFfb2JqZWN0XCI+PC9kYngtaWNvbi1idXR0b24+XG4gIGAsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtEYnhJY29uQnV0dG9uQ29tcG9uZW50XSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzUG9wb3ZlckJ1dHRvbkNvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0UG9wb3ZlclJlZkRpcmVjdGl2ZTx1bmtub3duLCB1bmtub3duPiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2RieFBvcG92ZXJTZXJ2aWNlID0gaW5qZWN0KERieFBvcG92ZXJTZXJ2aWNlKTtcblxuICByZWFkb25seSBlbnRpdGllc1NvdXJjZSA9IGluamVjdChEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNTb3VyY2UpO1xuXG4gIHJlYWRvbmx5IGJ1dHRvbkVsZW1lbnQgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8c3RyaW5nLCBFbGVtZW50UmVmPignYnV0dG9uJywgeyByZWFkOiBFbGVtZW50UmVmIH0pO1xuICByZWFkb25seSBjb25maWcgPSBpbnB1dDxEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNQb3BvdmVyQnV0dG9uQ29uZmlnPigpO1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBfbWFrZVBvcG92ZXJSZWYob3JpZ2luPzogTWF5YmU8RWxlbWVudFJlZj4pOiBOZ1BvcG92ZXJSZWY8dW5rbm93biwgdW5rbm93bj4ge1xuICAgIGlmICghb3JpZ2luKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3Npbmcgb3JpZ2luLicpO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY29uZmlnKCk7XG4gICAgY29uc3QgZW50aXRpZXMkID0gdGhpcy5lbnRpdGllc1NvdXJjZS5lbnRpdGllcyQ7XG5cbiAgICByZXR1cm4gRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzUG9wb3ZlckNvbXBvbmVudC5vcGVuUG9wb3Zlcih0aGlzLl9kYnhQb3BvdmVyU2VydmljZSwge1xuICAgICAgb3JpZ2luLFxuICAgICAgLi4uY29uZmlnLFxuICAgICAgZW50aXRpZXMkXG4gICAgfSk7XG4gIH1cblxuICBzaG93RW50aXRpZXNQb3BvdmVyKCk6IHZvaWQge1xuICAgIGNvbnN0IG9yaWdpbiA9IHRoaXMuYnV0dG9uRWxlbWVudCgpO1xuICAgIHRoaXMuc2hvd1BvcG92ZXIob3JpZ2luKTtcbiAgfVxufVxuIl19
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuZW50aXRpZXMucG9wb3Zlci5idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kZWwvbW9kdWxlcy9tb2RlbC9lbnRpdGllcy9tb2RlbC5lbnRpdGllcy5wb3BvdmVyLmJ1dHRvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ILE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxrQkFBa0IsRUFBa0IsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUV0SCxPQUFPLEVBQUUsd0NBQXdDLEVBQXNELE1BQU0sb0NBQW9DLENBQUM7QUFFbEosT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBdUJsRSxNQUFNLE9BQU8sOENBQStDLFNBQVEsMkJBQTZDO0lBQzlGLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRXZELGNBQWMsR0FBRyxNQUFNLENBQUMsOEJBQThCLENBQUMsQ0FBQztJQUV4RCxhQUFhLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBcUIsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDdkYsTUFBTSxHQUFHLEtBQUssRUFBK0MsQ0FBQztJQUU5RCxtQkFBbUIsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1FBQzNDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM3QixPQUFPLE1BQU0sRUFBRSxhQUFhLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksSUFBSSxhQUFhLEVBQUUsQ0FBQztJQUMxRSxDQUFDLENBQUMsQ0FBQztJQUVNLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFFckQsZUFBZSxDQUFDLE1BQTBCO1FBQzNELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNyQyxDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzdCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO1FBRWhELE9BQU8sd0NBQXdDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUNuRixNQUFNO1lBQ04sR0FBRyxNQUFNO1lBQ1QsU0FBUztTQUNWLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxtQkFBbUI7UUFDakIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDM0IsQ0FBQzt3R0FqQ1UsOENBQThDOzRGQUE5Qyw4Q0FBOEMsaVVBS3lCLFVBQVUsb0VBWmxGOztHQUVULDREQUVTLGtCQUFrQjs7NEZBR2pCLDhDQUE4QztrQkFUMUQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsNENBQTRDO29CQUN0RCxRQUFRLEVBQUU7O0dBRVQ7b0JBQ0QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLGtCQUFrQixDQUFDO29CQUM3QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgRWxlbWVudFJlZiwgaW5qZWN0LCBpbnB1dCwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdFBvcG92ZXJSZWZEaXJlY3RpdmUsIERieEJ1dHRvbkNvbXBvbmVudCwgRGJ4QnV0dG9uU3R5bGUsIERieFBvcG92ZXJTZXJ2aWNlIH0gZnJvbSAnQGRlcmVla2IvZGJ4LXdlYic7XG5pbXBvcnQgeyBOZ1BvcG92ZXJSZWYgfSBmcm9tICduZy1vdmVybGF5LWNvbnRhaW5lcic7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNQb3BvdmVyQ29tcG9uZW50LCBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNQb3BvdmVyQ29uZmlnV2l0aG91dE9yaWdpbiB9IGZyb20gJy4vbW9kZWwuZW50aXRpZXMucG9wb3Zlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IERieEZpcmViYXNlTW9kZWxFbnRpdGllc1NvdXJjZSB9IGZyb20gJy4vbW9kZWwuZW50aXRpZXMnO1xuaW1wb3J0IHsgRGJ4QnV0dG9uRGlzcGxheSB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNQb3BvdmVyQnV0dG9uQ29uZmlnIGV4dGVuZHMgRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzUG9wb3ZlckNvbmZpZ1dpdGhvdXRPcmlnaW4ge1xuICAvKipcbiAgICogVGhlIGRpc3BsYXkgY29uZmlndXJhdGlvbiBmb3IgdGhlIGJ1dHRvbi5cbiAgICovXG4gIHJlYWRvbmx5IGJ1dHRvbkRpc3BsYXk/OiBNYXliZTxEYnhCdXR0b25EaXNwbGF5PjtcbiAgLyoqXG4gICAqIFRoZSBzdHlsZSBjb25maWd1cmF0aW9uIGZvciB0aGUgYnV0dG9uLlxuICAgKi9cbiAgcmVhZG9ubHkgYnV0dG9uU3R5bGU/OiBNYXliZTxEYnhCdXR0b25TdHlsZT47XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RieC1maXJlYmFzZS1tb2RlbC1lbnRpdGllcy1wb3BvdmVyLWJ1dHRvbicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRieC1idXR0b24gI2J1dHRvbiAoYnV0dG9uQ2xpY2spPVwic2hvd0VudGl0aWVzUG9wb3ZlcigpXCIgW2J1dHRvblN0eWxlXT1cImJ1dHRvblN0eWxlU2lnbmFsKClcIiBbYnV0dG9uRGlzcGxheV09XCJidXR0b25EaXNwbGF5U2lnbmFsKClcIj48L2RieC1idXR0b24+XG4gIGAsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtEYnhCdXR0b25Db21wb25lbnRdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNQb3BvdmVyQnV0dG9uQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RQb3BvdmVyUmVmRGlyZWN0aXZlPHVua25vd24sIHVua25vd24+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGJ4UG9wb3ZlclNlcnZpY2UgPSBpbmplY3QoRGJ4UG9wb3ZlclNlcnZpY2UpO1xuXG4gIHJlYWRvbmx5IGVudGl0aWVzU291cmNlID0gaW5qZWN0KERieEZpcmViYXNlTW9kZWxFbnRpdGllc1NvdXJjZSk7XG5cbiAgcmVhZG9ubHkgYnV0dG9uRWxlbWVudCA9IHZpZXdDaGlsZC5yZXF1aXJlZDxzdHJpbmcsIEVsZW1lbnRSZWY+KCdidXR0b24nLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSk7XG4gIHJlYWRvbmx5IGNvbmZpZyA9IGlucHV0PERieEZpcmViYXNlTW9kZWxFbnRpdGllc1BvcG92ZXJCdXR0b25Db25maWc+KCk7XG5cbiAgcmVhZG9ubHkgYnV0dG9uRGlzcGxheVNpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBjb25maWcgPSB0aGlzLmNvbmZpZygpO1xuICAgIHJldHVybiBjb25maWc/LmJ1dHRvbkRpc3BsYXkgPz8geyBpY29uOiBjb25maWc/Lmljb24gPz8gJ2RhdGFfb2JqZWN0JyB9O1xuICB9KTtcblxuICByZWFkb25seSBidXR0b25TdHlsZVNpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuY29uZmlnKCk/LmJ1dHRvblN0eWxlKTtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgX21ha2VQb3BvdmVyUmVmKG9yaWdpbj86IE1heWJlPEVsZW1lbnRSZWY+KTogTmdQb3BvdmVyUmVmPHVua25vd24sIHVua25vd24+IHtcbiAgICBpZiAoIW9yaWdpbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIG9yaWdpbi4nKTtcbiAgICB9XG5cbiAgICBjb25zdCBjb25maWcgPSB0aGlzLmNvbmZpZygpO1xuICAgIGNvbnN0IGVudGl0aWVzJCA9IHRoaXMuZW50aXRpZXNTb3VyY2UuZW50aXRpZXMkO1xuXG4gICAgcmV0dXJuIERieEZpcmViYXNlTW9kZWxFbnRpdGllc1BvcG92ZXJDb21wb25lbnQub3BlblBvcG92ZXIodGhpcy5fZGJ4UG9wb3ZlclNlcnZpY2UsIHtcbiAgICAgIG9yaWdpbixcbiAgICAgIC4uLmNvbmZpZyxcbiAgICAgIGVudGl0aWVzJFxuICAgIH0pO1xuICB9XG5cbiAgc2hvd0VudGl0aWVzUG9wb3ZlcigpOiB2b2lkIHtcbiAgICBjb25zdCBvcmlnaW4gPSB0aGlzLmJ1dHRvbkVsZW1lbnQoKTtcbiAgICB0aGlzLnNob3dQb3BvdmVyKG9yaWdpbik7XG4gIH1cbn1cbiJdfQ==
@@ -1,10 +1,11 @@
1
- import { Component } from '@angular/core';
1
+ import { Component, computed } from '@angular/core';
2
2
  import { AbstractDbxFirebaseModelEntitiesWidgetDirective } from './model.entities.widget.entity.abstract.directive';
3
3
  import { toSignal } from '@angular/core/rxjs-interop';
4
4
  import { JsonPipe } from '@angular/common';
5
5
  import { DbxFirebaseModelKeyComponent } from '../model.key.component';
6
- import { DbxClickToCopyTextComponent, DbxContentPitDirective, DbxLoadingComponent } from '@dereekb/dbx-web';
6
+ import { DbxClickToCopyTextComponent, DbxContentPitDirective, DbxDownloadTextViewComponent, DbxLoadingComponent } from '@dereekb/dbx-web';
7
7
  import { loadingStateContext } from '@dereekb/rxjs';
8
+ import { twoWayFlatFirestoreModelKey } from '@dereekb/firebase';
8
9
  import * as i0 from "@angular/core";
9
10
  /**
10
11
  * A debug widget component that displays entity data and metadata.
@@ -13,15 +14,28 @@ export class DbxFirebaseModelEntitiesDebugWidgetComponent extends AbstractDbxFir
13
14
  // Convert store observables to signals for template usage
14
15
  currentKey = toSignal(this.store.currentKey$);
15
16
  currentData = toSignal(this.data$);
17
+ contentSignal = computed(() => {
18
+ const key = this.currentKey();
19
+ const data = this.currentData();
20
+ let content;
21
+ if (key && data) {
22
+ const flattenKey = twoWayFlatFirestoreModelKey(key);
23
+ content = {
24
+ content: JSON.stringify(data, null, 2),
25
+ name: `${flattenKey}.json`
26
+ };
27
+ }
28
+ return content;
29
+ });
16
30
  context = loadingStateContext(this.store.dataLoadingState$);
17
31
  ngOnDestroy() {
18
32
  this.context.destroy();
19
33
  }
20
34
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseModelEntitiesDebugWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
21
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxFirebaseModelEntitiesDebugWidgetComponent, isStandalone: true, selector: "dbx-firebase-model-entities-debug-widget", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-firebase-model-entities-debug-widget\">\n <!-- Model Key Section -->\n <div class=\"dbx-debug-section\">\n <h4>Model Key Information</h4>\n @if (currentKey(); as key) {\n <dbx-firebase-model-key [modelKey]=\"key\"></dbx-firebase-model-key>\n }\n </div>\n\n <!-- Document Data Section -->\n <div class=\"dbx-debug-section\">\n <h4>Document Data</h4>\n <dbx-loading [context]=\"context\">\n @if (currentData(); as data) {\n <dbx-content-pit [rounded]=\"true\">\n <div class=\"dbx-json\">\n <dbx-click-to-copy-text>{{ data | json }}</dbx-click-to-copy-text>\n </div>\n </dbx-content-pit>\n } @else {\n <p class=\"dbx-empty\">No data available</p>\n }\n </dbx-loading>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: DbxFirebaseModelKeyComponent, selector: "dbx-firebase-model-key", inputs: ["modelKey"] }, { kind: "component", type: DbxClickToCopyTextComponent, selector: "dbx-click-to-copy-text", inputs: ["copyText", "highlighted", "clipboardSnackbarMessagesConfig", "clipboardSnackbarMessagesEnabled", "clickToCopyIcon", "clickIconToCopyOnly"] }, { kind: "directive", type: DbxContentPitDirective, selector: "dbx-content-pit, [dbxContentPit]", inputs: ["scrollable", "rounded"] }, { kind: "component", type: DbxLoadingComponent, selector: "dbx-loading", inputs: ["padding", "show", "text", "mode", "color", "diameter", "linear", "loading", "error", "context"] }, { kind: "pipe", type: JsonPipe, name: "json" }] });
35
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxFirebaseModelEntitiesDebugWidgetComponent, isStandalone: true, selector: "dbx-firebase-model-entities-debug-widget", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-firebase-model-entities-debug-widget\">\n <!-- Model Key Section -->\n <div class=\"dbx-debug-section\">\n <h4>Model Key Information</h4>\n @if (currentKey(); as key) {\n <dbx-firebase-model-key [modelKey]=\"key\"></dbx-firebase-model-key>\n }\n </div>\n\n <!-- Document Data Section -->\n <div class=\"dbx-debug-section\">\n <h4>Document Data</h4>\n <dbx-loading [context]=\"context\">\n @if (currentData(); as data) {\n <dbx-download-text-view [content]=\"contentSignal()\"></dbx-download-text-view>\n } @else {\n <p class=\"dbx-empty\">No data available</p>\n }\n </dbx-loading>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: DbxFirebaseModelKeyComponent, selector: "dbx-firebase-model-key", inputs: ["modelKey"] }, { kind: "component", type: DbxDownloadTextViewComponent, selector: "dbx-download-text-view", inputs: ["showDownloadButton", "loadingText", "linear", "showTitle", "showPreview", "showExpandPreviewButton", "expandPreview", "content", "contentState"], outputs: ["expandPreviewChange"] }, { kind: "component", type: DbxLoadingComponent, selector: "dbx-loading", inputs: ["padding", "show", "text", "mode", "color", "diameter", "linear", "loading", "error", "context"] }] });
22
36
  }
23
37
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseModelEntitiesDebugWidgetComponent, decorators: [{
24
38
  type: Component,
25
- args: [{ selector: 'dbx-firebase-model-entities-debug-widget', standalone: true, imports: [DbxFirebaseModelKeyComponent, DbxClickToCopyTextComponent, DbxContentPitDirective, DbxLoadingComponent, JsonPipe], template: "<div class=\"dbx-firebase-model-entities-debug-widget\">\n <!-- Model Key Section -->\n <div class=\"dbx-debug-section\">\n <h4>Model Key Information</h4>\n @if (currentKey(); as key) {\n <dbx-firebase-model-key [modelKey]=\"key\"></dbx-firebase-model-key>\n }\n </div>\n\n <!-- Document Data Section -->\n <div class=\"dbx-debug-section\">\n <h4>Document Data</h4>\n <dbx-loading [context]=\"context\">\n @if (currentData(); as data) {\n <dbx-content-pit [rounded]=\"true\">\n <div class=\"dbx-json\">\n <dbx-click-to-copy-text>{{ data | json }}</dbx-click-to-copy-text>\n </div>\n </dbx-content-pit>\n } @else {\n <p class=\"dbx-empty\">No data available</p>\n }\n </dbx-loading>\n </div>\n</div>\n" }]
39
+ args: [{ selector: 'dbx-firebase-model-entities-debug-widget', standalone: true, imports: [DbxFirebaseModelKeyComponent, DbxClickToCopyTextComponent, DbxContentPitDirective, DbxDownloadTextViewComponent, DbxLoadingComponent, JsonPipe], template: "<div class=\"dbx-firebase-model-entities-debug-widget\">\n <!-- Model Key Section -->\n <div class=\"dbx-debug-section\">\n <h4>Model Key Information</h4>\n @if (currentKey(); as key) {\n <dbx-firebase-model-key [modelKey]=\"key\"></dbx-firebase-model-key>\n }\n </div>\n\n <!-- Document Data Section -->\n <div class=\"dbx-debug-section\">\n <h4>Document Data</h4>\n <dbx-loading [context]=\"context\">\n @if (currentData(); as data) {\n <dbx-download-text-view [content]=\"contentSignal()\"></dbx-download-text-view>\n } @else {\n <p class=\"dbx-empty\">No data available</p>\n }\n </dbx-loading>\n </div>\n</div>\n" }]
26
40
  }] });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuZW50aXRpZXMud2lkZ2V0LmVudGl0eS5kZWJ1Zy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9tb2R1bGVzL21vZGVsL2VudGl0aWVzL21vZGVsLmVudGl0aWVzLndpZGdldC5lbnRpdHkuZGVidWcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kZWwvbW9kdWxlcy9tb2RlbC9lbnRpdGllcy9tb2RlbC5lbnRpdGllcy53aWRnZXQuZW50aXR5LmRlYnVnLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLCtDQUErQyxFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDcEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsc0JBQXNCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRXBEOztHQUVHO0FBT0gsTUFBTSxPQUFPLDRDQUE2QyxTQUFRLCtDQUErQztJQUMvRywwREFBMEQ7SUFDakQsVUFBVSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzlDLFdBQVcsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRW5DLE9BQU8sR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFFckUsV0FBVztRQUNULElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDekIsQ0FBQzt3R0FUVSw0Q0FBNEM7NEZBQTVDLDRDQUE0QywySENqQnpELDR4QkF5QkEsNENEVlksNEJBQTRCLHlGQUFFLDJCQUEyQix5TkFBRSxzQkFBc0IsZ0hBQUUsbUJBQW1CLDhKQUFFLFFBQVE7OzRGQUUvRyw0Q0FBNEM7a0JBTnhELFNBQVM7K0JBQ0UsMENBQTBDLGNBRXhDLElBQUksV0FDUCxDQUFDLDRCQUE0QixFQUFFLDJCQUEyQixFQUFFLHNCQUFzQixFQUFFLG1CQUFtQixFQUFFLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdERieEZpcmViYXNlTW9kZWxFbnRpdGllc1dpZGdldERpcmVjdGl2ZSB9IGZyb20gJy4vbW9kZWwuZW50aXRpZXMud2lkZ2V0LmVudGl0eS5hYnN0cmFjdC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBKc29uUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZU1vZGVsS2V5Q29tcG9uZW50IH0gZnJvbSAnLi4vbW9kZWwua2V5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYnhDbGlja1RvQ29weVRleHRDb21wb25lbnQsIERieENvbnRlbnRQaXREaXJlY3RpdmUsIERieExvYWRpbmdDb21wb25lbnQgfSBmcm9tICdAZGVyZWVrYi9kYngtd2ViJztcbmltcG9ydCB7IGxvYWRpbmdTdGF0ZUNvbnRleHQgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcblxuLyoqXG4gKiBBIGRlYnVnIHdpZGdldCBjb21wb25lbnQgdGhhdCBkaXNwbGF5cyBlbnRpdHkgZGF0YSBhbmQgbWV0YWRhdGEuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RieC1maXJlYmFzZS1tb2RlbC1lbnRpdGllcy1kZWJ1Zy13aWRnZXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vbW9kZWwuZW50aXRpZXMud2lkZ2V0LmVudGl0eS5kZWJ1Zy5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtEYnhGaXJlYmFzZU1vZGVsS2V5Q29tcG9uZW50LCBEYnhDbGlja1RvQ29weVRleHRDb21wb25lbnQsIERieENvbnRlbnRQaXREaXJlY3RpdmUsIERieExvYWRpbmdDb21wb25lbnQsIEpzb25QaXBlXVxufSlcbmV4cG9ydCBjbGFzcyBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNEZWJ1Z1dpZGdldENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0RGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzV2lkZ2V0RGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgLy8gQ29udmVydCBzdG9yZSBvYnNlcnZhYmxlcyB0byBzaWduYWxzIGZvciB0ZW1wbGF0ZSB1c2FnZVxuICByZWFkb25seSBjdXJyZW50S2V5ID0gdG9TaWduYWwodGhpcy5zdG9yZS5jdXJyZW50S2V5JCk7XG4gIHJlYWRvbmx5IGN1cnJlbnREYXRhID0gdG9TaWduYWwodGhpcy5kYXRhJCk7XG5cbiAgcmVhZG9ubHkgY29udGV4dCA9IGxvYWRpbmdTdGF0ZUNvbnRleHQodGhpcy5zdG9yZS5kYXRhTG9hZGluZ1N0YXRlJCk7XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5jb250ZXh0LmRlc3Ryb3koKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImRieC1maXJlYmFzZS1tb2RlbC1lbnRpdGllcy1kZWJ1Zy13aWRnZXRcIj5cbiAgPCEtLSBNb2RlbCBLZXkgU2VjdGlvbiAtLT5cbiAgPGRpdiBjbGFzcz1cImRieC1kZWJ1Zy1zZWN0aW9uXCI+XG4gICAgPGg0Pk1vZGVsIEtleSBJbmZvcm1hdGlvbjwvaDQ+XG4gICAgQGlmIChjdXJyZW50S2V5KCk7IGFzIGtleSkge1xuICAgICAgPGRieC1maXJlYmFzZS1tb2RlbC1rZXkgW21vZGVsS2V5XT1cImtleVwiPjwvZGJ4LWZpcmViYXNlLW1vZGVsLWtleT5cbiAgICB9XG4gIDwvZGl2PlxuXG4gIDwhLS0gRG9jdW1lbnQgRGF0YSBTZWN0aW9uIC0tPlxuICA8ZGl2IGNsYXNzPVwiZGJ4LWRlYnVnLXNlY3Rpb25cIj5cbiAgICA8aDQ+RG9jdW1lbnQgRGF0YTwvaDQ+XG4gICAgPGRieC1sb2FkaW5nIFtjb250ZXh0XT1cImNvbnRleHRcIj5cbiAgICAgIEBpZiAoY3VycmVudERhdGEoKTsgYXMgZGF0YSkge1xuICAgICAgICA8ZGJ4LWNvbnRlbnQtcGl0IFtyb3VuZGVkXT1cInRydWVcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGJ4LWpzb25cIj5cbiAgICAgICAgICAgIDxkYngtY2xpY2stdG8tY29weS10ZXh0Pnt7IGRhdGEgfCBqc29uIH19PC9kYngtY2xpY2stdG8tY29weS10ZXh0PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2RieC1jb250ZW50LXBpdD5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8cCBjbGFzcz1cImRieC1lbXB0eVwiPk5vIGRhdGEgYXZhaWxhYmxlPC9wPlxuICAgICAgfVxuICAgIDwvZGJ4LWxvYWRpbmc+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuZW50aXRpZXMud2lkZ2V0LmVudGl0eS5kZWJ1Zy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9tb2R1bGVzL21vZGVsL2VudGl0aWVzL21vZGVsLmVudGl0aWVzLndpZGdldC5lbnRpdHkuZGVidWcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kZWwvbW9kdWxlcy9tb2RlbC9lbnRpdGllcy9tb2RlbC5lbnRpdGllcy53aWRnZXQuZW50aXR5LmRlYnVnLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsK0NBQStDLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUNwSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxzQkFBc0IsRUFBRSw0QkFBNEIsRUFBRSxtQkFBbUIsRUFBdUIsTUFBTSxrQkFBa0IsQ0FBQztBQUMvSixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBRWhFOztHQUVHO0FBT0gsTUFBTSxPQUFPLDRDQUE2QyxTQUFRLCtDQUErQztJQUMvRywwREFBMEQ7SUFDakQsVUFBVSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzlDLFdBQVcsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRW5DLGFBQWEsR0FBdUMsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUN6RSxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDOUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRWhDLElBQUksT0FBbUMsQ0FBQztRQUV4QyxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNoQixNQUFNLFVBQVUsR0FBRywyQkFBMkIsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUVwRCxPQUFPLEdBQUc7Z0JBQ1IsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQ3RDLElBQUksRUFBRSxHQUFHLFVBQVUsT0FBTzthQUMzQixDQUFDO1FBQ0osQ0FBQztRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUMsQ0FBQyxDQUFDO0lBRU0sT0FBTyxHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUVyRSxXQUFXO1FBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN6QixDQUFDO3dHQTNCVSw0Q0FBNEM7NEZBQTVDLDRDQUE0QywySENuQnpELHFxQkFxQkEsNENESlksNEJBQTRCLHlGQUF1RCw0QkFBNEIsaVFBQUUsbUJBQW1COzs0RkFFbkksNENBQTRDO2tCQU54RCxTQUFTOytCQUNFLDBDQUEwQyxjQUV4QyxJQUFJLFdBQ1AsQ0FBQyw0QkFBNEIsRUFBRSwyQkFBMkIsRUFBRSxzQkFBc0IsRUFBRSw0QkFBNEIsRUFBRSxtQkFBbUIsRUFBRSxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBPbkRlc3Ryb3ksIFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3REYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNXaWRnZXREaXJlY3RpdmUgfSBmcm9tICcuL21vZGVsLmVudGl0aWVzLndpZGdldC5lbnRpdHkuYWJzdHJhY3QuZGlyZWN0aXZlJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgSnNvblBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VNb2RlbEtleUNvbXBvbmVudCB9IGZyb20gJy4uL21vZGVsLmtleS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGJ4Q2xpY2tUb0NvcHlUZXh0Q29tcG9uZW50LCBEYnhDb250ZW50UGl0RGlyZWN0aXZlLCBEYnhEb3dubG9hZFRleHRWaWV3Q29tcG9uZW50LCBEYnhMb2FkaW5nQ29tcG9uZW50LCBEb3dubG9hZFRleHRDb250ZW50IH0gZnJvbSAnQGRlcmVla2IvZGJ4LXdlYic7XG5pbXBvcnQgeyBsb2FkaW5nU3RhdGVDb250ZXh0IH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgdHdvV2F5RmxhdEZpcmVzdG9yZU1vZGVsS2V5IH0gZnJvbSAnQGRlcmVla2IvZmlyZWJhc2UnO1xuXG4vKipcbiAqIEEgZGVidWcgd2lkZ2V0IGNvbXBvbmVudCB0aGF0IGRpc3BsYXlzIGVudGl0eSBkYXRhIGFuZCBtZXRhZGF0YS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGJ4LWZpcmViYXNlLW1vZGVsLWVudGl0aWVzLWRlYnVnLXdpZGdldCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RlbC5lbnRpdGllcy53aWRnZXQuZW50aXR5LmRlYnVnLmNvbXBvbmVudC5odG1sJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0RieEZpcmViYXNlTW9kZWxLZXlDb21wb25lbnQsIERieENsaWNrVG9Db3B5VGV4dENvbXBvbmVudCwgRGJ4Q29udGVudFBpdERpcmVjdGl2ZSwgRGJ4RG93bmxvYWRUZXh0Vmlld0NvbXBvbmVudCwgRGJ4TG9hZGluZ0NvbXBvbmVudCwgSnNvblBpcGVdXG59KVxuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlTW9kZWxFbnRpdGllc0RlYnVnV2lkZ2V0Q29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3REYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNXaWRnZXREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAvLyBDb252ZXJ0IHN0b3JlIG9ic2VydmFibGVzIHRvIHNpZ25hbHMgZm9yIHRlbXBsYXRlIHVzYWdlXG4gIHJlYWRvbmx5IGN1cnJlbnRLZXkgPSB0b1NpZ25hbCh0aGlzLnN0b3JlLmN1cnJlbnRLZXkkKTtcbiAgcmVhZG9ubHkgY3VycmVudERhdGEgPSB0b1NpZ25hbCh0aGlzLmRhdGEkKTtcblxuICByZWFkb25seSBjb250ZW50U2lnbmFsOiBTaWduYWw8TWF5YmU8RG93bmxvYWRUZXh0Q29udGVudD4+ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGtleSA9IHRoaXMuY3VycmVudEtleSgpO1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLmN1cnJlbnREYXRhKCk7XG5cbiAgICBsZXQgY29udGVudDogTWF5YmU8RG93bmxvYWRUZXh0Q29udGVudD47XG5cbiAgICBpZiAoa2V5ICYmIGRhdGEpIHtcbiAgICAgIGNvbnN0IGZsYXR0ZW5LZXkgPSB0d29XYXlGbGF0RmlyZXN0b3JlTW9kZWxLZXkoa2V5KTtcblxuICAgICAgY29udGVudCA9IHtcbiAgICAgICAgY29udGVudDogSlNPTi5zdHJpbmdpZnkoZGF0YSwgbnVsbCwgMiksXG4gICAgICAgIG5hbWU6IGAke2ZsYXR0ZW5LZXl9Lmpzb25gXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBjb250ZW50O1xuICB9KTtcblxuICByZWFkb25seSBjb250ZXh0ID0gbG9hZGluZ1N0YXRlQ29udGV4dCh0aGlzLnN0b3JlLmRhdGFMb2FkaW5nU3RhdGUkKTtcblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRleHQuZGVzdHJveSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZGJ4LWZpcmViYXNlLW1vZGVsLWVudGl0aWVzLWRlYnVnLXdpZGdldFwiPlxuICA8IS0tIE1vZGVsIEtleSBTZWN0aW9uIC0tPlxuICA8ZGl2IGNsYXNzPVwiZGJ4LWRlYnVnLXNlY3Rpb25cIj5cbiAgICA8aDQ+TW9kZWwgS2V5IEluZm9ybWF0aW9uPC9oND5cbiAgICBAaWYgKGN1cnJlbnRLZXkoKTsgYXMga2V5KSB7XG4gICAgICA8ZGJ4LWZpcmViYXNlLW1vZGVsLWtleSBbbW9kZWxLZXldPVwia2V5XCI+PC9kYngtZmlyZWJhc2UtbW9kZWwta2V5PlxuICAgIH1cbiAgPC9kaXY+XG5cbiAgPCEtLSBEb2N1bWVudCBEYXRhIFNlY3Rpb24gLS0+XG4gIDxkaXYgY2xhc3M9XCJkYngtZGVidWctc2VjdGlvblwiPlxuICAgIDxoND5Eb2N1bWVudCBEYXRhPC9oND5cbiAgICA8ZGJ4LWxvYWRpbmcgW2NvbnRleHRdPVwiY29udGV4dFwiPlxuICAgICAgQGlmIChjdXJyZW50RGF0YSgpOyBhcyBkYXRhKSB7XG4gICAgICAgIDxkYngtZG93bmxvYWQtdGV4dC12aWV3IFtjb250ZW50XT1cImNvbnRlbnRTaWduYWwoKVwiPjwvZGJ4LWRvd25sb2FkLXRleHQtdmlldz5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8cCBjbGFzcz1cImRieC1lbXB0eVwiPk5vIGRhdGEgYXZhaWxhYmxlPC9wPlxuICAgICAgfVxuICAgIDwvZGJ4LWxvYWRpbmc+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import { Inject, Injectable, Optional } from '@angular/core';
2
- import { asArray, filterMaybeArrayValues, mapIterable } from '@dereekb/util';
2
+ import { asArray, cachedGetter, filterMaybeArrayValues, mapIterable } from '@dereekb/util';
3
3
  import * as i0 from "@angular/core";
4
4
  /**
5
5
  * Configuration provided in the root module for configuring entries.
@@ -13,6 +13,9 @@ export class DbxFirebaseModelEntitiesWidgetService {
13
13
  _commonComponentClass;
14
14
  _debugComponentClass;
15
15
  _entries = new Map();
16
+ _sortPriorityMap = cachedGetter(() => {
17
+ return new Map(mapIterable(this._entries.values(), (entry) => [entry.identity, entry.sortPriority ?? -1]));
18
+ });
16
19
  constructor(initialConfig) {
17
20
  this._commonComponentClass = initialConfig?.commonComponentClass;
18
21
  this._debugComponentClass = initialConfig?.debugComponentClass;
@@ -47,6 +50,8 @@ export class DbxFirebaseModelEntitiesWidgetService {
47
50
  this._entries.set(entry.identity, entry);
48
51
  }
49
52
  });
53
+ // Invalidate the cache
54
+ this._sortPriorityMap.reset();
50
55
  }
51
56
  // MARK: Get
52
57
  getAllRegisteredWidgetIdentities() {
@@ -69,6 +74,9 @@ export class DbxFirebaseModelEntitiesWidgetService {
69
74
  getWidgetEntries(identities) {
70
75
  return filterMaybeArrayValues(mapIterable(identities ?? [], (x) => this.getWidgetEntry(x)));
71
76
  }
77
+ getSortPriorityMap() {
78
+ return this._sortPriorityMap();
79
+ }
72
80
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseModelEntitiesWidgetService, deps: [{ token: DbxFirebaseModelEntitiesWidgetServiceConfig, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
73
81
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseModelEntitiesWidgetService });
74
82
  }
@@ -80,4 +88,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
80
88
  type: Inject,
81
89
  args: [DbxFirebaseModelEntitiesWidgetServiceConfig]
82
90
  }] }] });
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuZW50aXRpZXMud2lkZ2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9tb2R1bGVzL21vZGVsL2VudGl0aWVzL21vZGVsLmVudGl0aWVzLndpZGdldC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQXVCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBc0JsRzs7R0FFRztBQUNILE1BQU0sT0FBZ0IsMkNBQTJDO0NBYWhFO0FBRUQ7O0dBRUc7QUFFSCxNQUFNLE9BQU8scUNBQXFDO0lBQ3hDLHFCQUFxQixDQUF1QjtJQUM1QyxvQkFBb0IsQ0FBdUI7SUFFbEMsUUFBUSxHQUFHLElBQUksR0FBRyxFQUErRCxDQUFDO0lBRW5HLFlBQTZFLGFBQTJEO1FBQ3RJLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxhQUFhLEVBQUUsb0JBQW9CLENBQUM7UUFDakUsSUFBSSxDQUFDLG9CQUFvQixHQUFHLGFBQWEsRUFBRSxtQkFBbUIsQ0FBQztRQUUvRCxJQUFJLGFBQWEsRUFBRSxPQUFPLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2QyxDQUFDO0lBQ0gsQ0FBQztJQUVELHVCQUF1QjtRQUNyQixPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztJQUNwQyxDQUFDO0lBRUQsdUJBQXVCLENBQUMsY0FBb0M7UUFDMUQsSUFBSSxDQUFDLHFCQUFxQixHQUFHLGNBQWMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsc0JBQXNCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDO0lBQ25DLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxjQUFvQztRQUN6RCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsY0FBYyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsUUFBUSxDQUFDLE9BQTBELEVBQUUsV0FBb0IsSUFBSTtRQUMzRixNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFdEMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQzdCLElBQUksUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7Z0JBQ25ELElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDM0MsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVk7SUFDWixnQ0FBZ0M7UUFDOUIsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsY0FBYyxDQUFDLFFBQWdDO1FBQzdDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTFDLE9BQU8sS0FBSztZQUNWLENBQUMsQ0FBQztnQkFDRSxHQUFHLEtBQUs7Z0JBQ1Isb0JBQW9CLEVBQUUsS0FBSyxDQUFDLG9CQUFvQixJQUFJLElBQUksQ0FBQyxxQkFBcUI7Z0JBQzlFLG1CQUFtQixFQUFFLEtBQUssQ0FBQyxtQkFBbUIsSUFBSSxJQUFJLENBQUMsb0JBQW9CO2FBQzVFO1lBQ0gsQ0FBQyxDQUFDO2dCQUNFLFFBQVE7Z0JBQ1Isb0JBQW9CLEVBQUUsSUFBSSxDQUFDLHFCQUFxQjtnQkFDaEQsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLG9CQUFvQjthQUMvQyxDQUFDO0lBQ1IsQ0FBQztJQUVELGdCQUFnQixDQUFDLFVBQTRDO1FBQzNELE9BQU8sc0JBQXNCLENBQUMsV0FBVyxDQUFDLFVBQVUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlGLENBQUM7d0dBeEVVLHFDQUFxQyxrQkFNaEIsMkNBQTJDOzRHQU5oRSxxQ0FBcUM7OzRGQUFyQyxxQ0FBcUM7a0JBRGpELFVBQVU7OzBCQU9JLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsMkNBQTJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXJyYXlPclZhbHVlLCBNYXliZSwgYXNBcnJheSwgZmlsdGVyTWF5YmVBcnJheVZhbHVlcywgbWFwSXRlcmFibGUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IEZpcmVzdG9yZU1vZGVsSWRlbnRpdHkgfSBmcm9tICdAZGVyZWVrYi9maXJlYmFzZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzV2lkZ2V0RW50cnkge1xuICAvKipcbiAgICogV2lkZ2V0IHR5cGUgdG8gcmVzcG9uZCB0by5cbiAgICovXG4gIHJlYWRvbmx5IGlkZW50aXR5OiBGaXJlc3RvcmVNb2RlbElkZW50aXR5O1xuICAvKipcbiAgICogV2lkZ2V0IGNvbXBvbmVudCB0aGF0IGlzIHNwZWNpZmljIHRvIHRoaXMgZW50aXR5LlxuICAgKi9cbiAgcmVhZG9ubHkgZW50aXR5Q29tcG9uZW50Q2xhc3M/OiBNYXliZTxUeXBlPHVua25vd24+PjtcbiAgLyoqXG4gICAqIE92ZXJyaWRlcyB0aGUgXCJjb21tb25cIiB3aWRnZXQgY29tcG9uZW50IHVzZWQgZm9yIGFsbCBlbnRpdGllcy5cbiAgICovXG4gIHJlYWRvbmx5IGNvbW1vbkNvbXBvbmVudENsYXNzPzogTWF5YmU8VHlwZTx1bmtub3duPj47XG4gIC8qKlxuICAgKiBPcHRpb25hbCB3aWRnZXQgY29tcG9uZW50IHRoYXQgaXMgc3BlY2lmaWMgdG8gdGhpcyBlbnRpdHkgdGhhdCBwcm92aWRlcyBhZGRpdGlvbmFsIGRlYnVnIGluZm9ybWF0aW9uLCBhbmQgaXMgZGlzcGxheWVkIGFmdGVyIHRoZSBjb21tb24gd2lkZ2V0LlxuICAgKi9cbiAgcmVhZG9ubHkgZGVidWdDb21wb25lbnRDbGFzcz86IE1heWJlPFR5cGU8dW5rbm93bj4+O1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gcHJvdmlkZWQgaW4gdGhlIHJvb3QgbW9kdWxlIGZvciBjb25maWd1cmluZyBlbnRyaWVzLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzV2lkZ2V0U2VydmljZUNvbmZpZyB7XG4gIC8qKlxuICAgKiBFbnRyaWVzIHRvIHJlZ2lzdGVyLlxuICAgKi9cbiAgYWJzdHJhY3QgZW50cmllczogRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzV2lkZ2V0RW50cnlbXTtcbiAgLyoqXG4gICAqIFRoZSBkZWZhdWx0IFwiY29tbW9uXCIgd2lkZ2V0IGNvbXBvbmVudCB1c2VkIGZvciBhbGwgZW50aXRpZXMuXG4gICAqL1xuICBhYnN0cmFjdCBjb21tb25Db21wb25lbnRDbGFzcz86IE1heWJlPFR5cGU8dW5rbm93bj4+O1xuICAvKipcbiAgICogVGhlIGRlZmF1bHQgXCJkZWJ1Z1wiIHdpZGdldCBjb21wb25lbnQgdXNlZCBmb3IgYWxsIGVudGl0aWVzLlxuICAgKi9cbiAgYWJzdHJhY3QgZGVidWdDb21wb25lbnRDbGFzcz86IE1heWJlPFR5cGU8dW5rbm93bj4+O1xufVxuXG4vKipcbiAqIFNlcnZpY2UgdXNlZCB0byByZWdpc3RlciB3aWRnZXRzIHVzZWQgZm9yIG1vZGVsIGVudGl0aWVzLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzV2lkZ2V0U2VydmljZSB7XG4gIHByaXZhdGUgX2NvbW1vbkNvbXBvbmVudENsYXNzOiBNYXliZTxUeXBlPHVua25vd24+PjtcbiAgcHJpdmF0ZSBfZGVidWdDb21wb25lbnRDbGFzczogTWF5YmU8VHlwZTx1bmtub3duPj47XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZW50cmllcyA9IG5ldyBNYXA8RmlyZXN0b3JlTW9kZWxJZGVudGl0eSwgRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzV2lkZ2V0RW50cnk+KCk7XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdChEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNXaWRnZXRTZXJ2aWNlQ29uZmlnKSBpbml0aWFsQ29uZmlnPzogRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzV2lkZ2V0U2VydmljZUNvbmZpZykge1xuICAgIHRoaXMuX2NvbW1vbkNvbXBvbmVudENsYXNzID0gaW5pdGlhbENvbmZpZz8uY29tbW9uQ29tcG9uZW50Q2xhc3M7XG4gICAgdGhpcy5fZGVidWdDb21wb25lbnRDbGFzcyA9IGluaXRpYWxDb25maWc/LmRlYnVnQ29tcG9uZW50Q2xhc3M7XG5cbiAgICBpZiAoaW5pdGlhbENvbmZpZz8uZW50cmllcykge1xuICAgICAgdGhpcy5yZWdpc3Rlcihpbml0aWFsQ29uZmlnLmVudHJpZXMpO1xuICAgIH1cbiAgfVxuXG4gIGdldENvbW1vbkNvbXBvbmVudENsYXNzKCk6IE1heWJlPFR5cGU8dW5rbm93bj4+IHtcbiAgICByZXR1cm4gdGhpcy5fY29tbW9uQ29tcG9uZW50Q2xhc3M7XG4gIH1cblxuICBzZXRDb21tb25Db21wb25lbnRDbGFzcyhjb21wb25lbnRDbGFzczogTWF5YmU8VHlwZTx1bmtub3duPj4pOiB2b2lkIHtcbiAgICB0aGlzLl9jb21tb25Db21wb25lbnRDbGFzcyA9IGNvbXBvbmVudENsYXNzO1xuICB9XG5cbiAgZ2V0RGVidWdDb21wb25lbnRDbGFzcygpOiBNYXliZTxUeXBlPHVua25vd24+PiB7XG4gICAgcmV0dXJuIHRoaXMuX2RlYnVnQ29tcG9uZW50Q2xhc3M7XG4gIH1cblxuICBzZXREZWJ1Z0NvbXBvbmVudENsYXNzKGNvbXBvbmVudENsYXNzOiBNYXliZTxUeXBlPHVua25vd24+Pik6IHZvaWQge1xuICAgIHRoaXMuX2RlYnVnQ29tcG9uZW50Q2xhc3MgPSBjb21wb25lbnRDbGFzcztcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2VkIHRvIHJlZ2lzdGVyIG9uZSBvciBtb3JlIGVudHJpZXMuXG4gICAqXG4gICAqIElmIGFuIGVudHJ5IHdpdGggdGhlIHNhbWUgaWRlbnRpdHkgaXMgYWxyZWFkeSByZWdpc3RlcmVkLCB0aGlzIHdpbGwgb3ZlcnJpZGUgaXQgYnkgZGVmYXVsdC5cbiAgICpcbiAgICogQHBhcmFtIGVudHJpZXMgVGhlIGVudHJpZXMgdG8gcmVnaXN0ZXJcbiAgICogQHBhcmFtIG92ZXJyaWRlIFdoZXRoZXIgdG8gb3ZlcnJpZGUgZXhpc3RpbmcgZW50cmllcyAoZGVmYXVsdDogdHJ1ZSlcbiAgICovXG4gIHJlZ2lzdGVyKGVudHJpZXM6IEFycmF5T3JWYWx1ZTxEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNXaWRnZXRFbnRyeT4sIG92ZXJyaWRlOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xuICAgIGNvbnN0IGVudHJpZXNBcnJheSA9IGFzQXJyYXkoZW50cmllcyk7XG5cbiAgICBlbnRyaWVzQXJyYXkuZm9yRWFjaCgoZW50cnkpID0+IHtcbiAgICAgIGlmIChvdmVycmlkZSB8fCAhdGhpcy5fZW50cmllcy5oYXMoZW50cnkuaWRlbnRpdHkpKSB7XG4gICAgICAgIHRoaXMuX2VudHJpZXMuc2V0KGVudHJ5LmlkZW50aXR5LCBlbnRyeSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvLyBNQVJLOiBHZXRcbiAgZ2V0QWxsUmVnaXN0ZXJlZFdpZGdldElkZW50aXRpZXMoKTogRmlyZXN0b3JlTW9kZWxJZGVudGl0eVtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLl9lbnRyaWVzLmtleXMoKSk7XG4gIH1cblxuICBnZXRXaWRnZXRFbnRyeShpZGVudGl0eTogRmlyZXN0b3JlTW9kZWxJZGVudGl0eSk6IERieEZpcmViYXNlTW9kZWxFbnRpdGllc1dpZGdldEVudHJ5IHtcbiAgICBjb25zdCBlbnRyeSA9IHRoaXMuX2VudHJpZXMuZ2V0KGlkZW50aXR5KTtcblxuICAgIHJldHVybiBlbnRyeVxuICAgICAgPyB7XG4gICAgICAgICAgLi4uZW50cnksXG4gICAgICAgICAgY29tbW9uQ29tcG9uZW50Q2xhc3M6IGVudHJ5LmNvbW1vbkNvbXBvbmVudENsYXNzID8/IHRoaXMuX2NvbW1vbkNvbXBvbmVudENsYXNzLFxuICAgICAgICAgIGRlYnVnQ29tcG9uZW50Q2xhc3M6IGVudHJ5LmRlYnVnQ29tcG9uZW50Q2xhc3MgPz8gdGhpcy5fZGVidWdDb21wb25lbnRDbGFzc1xuICAgICAgICB9XG4gICAgICA6IHtcbiAgICAgICAgICBpZGVudGl0eSxcbiAgICAgICAgICBjb21tb25Db21wb25lbnRDbGFzczogdGhpcy5fY29tbW9uQ29tcG9uZW50Q2xhc3MsXG4gICAgICAgICAgZGVidWdDb21wb25lbnRDbGFzczogdGhpcy5fZGVidWdDb21wb25lbnRDbGFzc1xuICAgICAgICB9O1xuICB9XG5cbiAgZ2V0V2lkZ2V0RW50cmllcyhpZGVudGl0aWVzOiBJdGVyYWJsZTxGaXJlc3RvcmVNb2RlbElkZW50aXR5Pik6IERieEZpcmViYXNlTW9kZWxFbnRpdGllc1dpZGdldEVudHJ5W10ge1xuICAgIHJldHVybiBmaWx0ZXJNYXliZUFycmF5VmFsdWVzKG1hcEl0ZXJhYmxlKGlkZW50aXRpZXMgPz8gW10sICh4KSA9PiB0aGlzLmdldFdpZGdldEVudHJ5KHgpKSk7XG4gIH1cbn1cbiJdfQ==
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuZW50aXRpZXMud2lkZ2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9tb2R1bGVzL21vZGVsL2VudGl0aWVzL21vZGVsLmVudGl0aWVzLndpZGdldC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQXVCLE9BQU8sRUFBRSxZQUFZLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQTRCaEg7O0dBRUc7QUFDSCxNQUFNLE9BQWdCLDJDQUEyQztDQWFoRTtBQUVEOztHQUVHO0FBRUgsTUFBTSxPQUFPLHFDQUFxQztJQUN4QyxxQkFBcUIsQ0FBdUI7SUFDNUMsb0JBQW9CLENBQXVCO0lBRWxDLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBK0QsQ0FBQztJQUVsRixnQkFBZ0IsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFO1FBQ3BELE9BQU8sSUFBSSxHQUFHLENBQWlDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3SSxDQUFDLENBQUMsQ0FBQztJQUVILFlBQTZFLGFBQTJEO1FBQ3RJLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxhQUFhLEVBQUUsb0JBQW9CLENBQUM7UUFDakUsSUFBSSxDQUFDLG9CQUFvQixHQUFHLGFBQWEsRUFBRSxtQkFBbUIsQ0FBQztRQUUvRCxJQUFJLGFBQWEsRUFBRSxPQUFPLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2QyxDQUFDO0lBQ0gsQ0FBQztJQUVELHVCQUF1QjtRQUNyQixPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztJQUNwQyxDQUFDO0lBRUQsdUJBQXVCLENBQUMsY0FBb0M7UUFDMUQsSUFBSSxDQUFDLHFCQUFxQixHQUFHLGNBQWMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsc0JBQXNCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDO0lBQ25DLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxjQUFvQztRQUN6RCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsY0FBYyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsUUFBUSxDQUFDLE9BQTBELEVBQUUsV0FBb0IsSUFBSTtRQUMzRixNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFdEMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQzdCLElBQUksUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7Z0JBQ25ELElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDM0MsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsdUJBQXVCO1FBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsWUFBWTtJQUNaLGdDQUFnQztRQUM5QixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxjQUFjLENBQUMsUUFBZ0M7UUFDN0MsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFMUMsT0FBTyxLQUFLO1lBQ1YsQ0FBQyxDQUFDO2dCQUNFLEdBQUcsS0FBSztnQkFDUixvQkFBb0IsRUFBRSxLQUFLLENBQUMsb0JBQW9CLElBQUksSUFBSSxDQUFDLHFCQUFxQjtnQkFDOUUsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLG1CQUFtQixJQUFJLElBQUksQ0FBQyxvQkFBb0I7YUFDNUU7WUFDSCxDQUFDLENBQUM7Z0JBQ0UsUUFBUTtnQkFDUixvQkFBb0IsRUFBRSxJQUFJLENBQUMscUJBQXFCO2dCQUNoRCxtQkFBbUIsRUFBRSxJQUFJLENBQUMsb0JBQW9CO2FBQy9DLENBQUM7SUFDUixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBNEM7UUFDM0QsT0FBTyxzQkFBc0IsQ0FBQyxXQUFXLENBQUMsVUFBVSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUYsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQ2pDLENBQUM7d0dBbkZVLHFDQUFxQyxrQkFVaEIsMkNBQTJDOzRHQVZoRSxxQ0FBcUM7OzRGQUFyQyxxQ0FBcUM7a0JBRGpELFVBQVU7OzBCQVdJLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsMkNBQTJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXJyYXlPclZhbHVlLCBNYXliZSwgYXNBcnJheSwgY2FjaGVkR2V0dGVyLCBmaWx0ZXJNYXliZUFycmF5VmFsdWVzLCBtYXBJdGVyYWJsZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgRmlyZXN0b3JlTW9kZWxJZGVudGl0eSB9IGZyb20gJ0BkZXJlZWtiL2ZpcmViYXNlJztcblxuZXhwb3J0IGludGVyZmFjZSBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNXaWRnZXRFbnRyeSB7XG4gIC8qKlxuICAgKiBXaWRnZXQgdHlwZSB0byByZXNwb25kIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgaWRlbnRpdHk6IEZpcmVzdG9yZU1vZGVsSWRlbnRpdHk7XG4gIC8qKlxuICAgKiBUaGUgcHJpb3JpdHkgdG8gdXNlIHdoZW4gc29ydGluZyB0aGUgZW50aXRpZXMuXG4gICAqXG4gICAqIEhpZ2hlciB2YWx1ZXMgYXJlIGRpc3BsYXllZCBmaXJzdCBpbiB0aGUgbGlzdC5cbiAgICovXG4gIHJlYWRvbmx5IHNvcnRQcmlvcml0eT86IE1heWJlPG51bWJlcj47XG4gIC8qKlxuICAgKiBXaWRnZXQgY29tcG9uZW50IHRoYXQgaXMgc3BlY2lmaWMgdG8gdGhpcyBlbnRpdHkuXG4gICAqL1xuICByZWFkb25seSBlbnRpdHlDb21wb25lbnRDbGFzcz86IE1heWJlPFR5cGU8dW5rbm93bj4+O1xuICAvKipcbiAgICogT3ZlcnJpZGVzIHRoZSBcImNvbW1vblwiIHdpZGdldCBjb21wb25lbnQgdXNlZCBmb3IgYWxsIGVudGl0aWVzLlxuICAgKi9cbiAgcmVhZG9ubHkgY29tbW9uQ29tcG9uZW50Q2xhc3M/OiBNYXliZTxUeXBlPHVua25vd24+PjtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIHdpZGdldCBjb21wb25lbnQgdGhhdCBpcyBzcGVjaWZpYyB0byB0aGlzIGVudGl0eSB0aGF0IHByb3ZpZGVzIGFkZGl0aW9uYWwgZGVidWcgaW5mb3JtYXRpb24sIGFuZCBpcyBkaXNwbGF5ZWQgYWZ0ZXIgdGhlIGNvbW1vbiB3aWRnZXQuXG4gICAqL1xuICByZWFkb25seSBkZWJ1Z0NvbXBvbmVudENsYXNzPzogTWF5YmU8VHlwZTx1bmtub3duPj47XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBwcm92aWRlZCBpbiB0aGUgcm9vdCBtb2R1bGUgZm9yIGNvbmZpZ3VyaW5nIGVudHJpZXMuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNXaWRnZXRTZXJ2aWNlQ29uZmlnIHtcbiAgLyoqXG4gICAqIEVudHJpZXMgdG8gcmVnaXN0ZXIuXG4gICAqL1xuICBhYnN0cmFjdCBlbnRyaWVzOiBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNXaWRnZXRFbnRyeVtdO1xuICAvKipcbiAgICogVGhlIGRlZmF1bHQgXCJjb21tb25cIiB3aWRnZXQgY29tcG9uZW50IHVzZWQgZm9yIGFsbCBlbnRpdGllcy5cbiAgICovXG4gIGFic3RyYWN0IGNvbW1vbkNvbXBvbmVudENsYXNzPzogTWF5YmU8VHlwZTx1bmtub3duPj47XG4gIC8qKlxuICAgKiBUaGUgZGVmYXVsdCBcImRlYnVnXCIgd2lkZ2V0IGNvbXBvbmVudCB1c2VkIGZvciBhbGwgZW50aXRpZXMuXG4gICAqL1xuICBhYnN0cmFjdCBkZWJ1Z0NvbXBvbmVudENsYXNzPzogTWF5YmU8VHlwZTx1bmtub3duPj47XG59XG5cbi8qKlxuICogU2VydmljZSB1c2VkIHRvIHJlZ2lzdGVyIHdpZGdldHMgdXNlZCBmb3IgbW9kZWwgZW50aXRpZXMuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNXaWRnZXRTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBfY29tbW9uQ29tcG9uZW50Q2xhc3M6IE1heWJlPFR5cGU8dW5rbm93bj4+O1xuICBwcml2YXRlIF9kZWJ1Z0NvbXBvbmVudENsYXNzOiBNYXliZTxUeXBlPHVua25vd24+PjtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9lbnRyaWVzID0gbmV3IE1hcDxGaXJlc3RvcmVNb2RlbElkZW50aXR5LCBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNXaWRnZXRFbnRyeT4oKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9zb3J0UHJpb3JpdHlNYXAgPSBjYWNoZWRHZXR0ZXIoKCkgPT4ge1xuICAgIHJldHVybiBuZXcgTWFwPEZpcmVzdG9yZU1vZGVsSWRlbnRpdHksIG51bWJlcj4obWFwSXRlcmFibGUodGhpcy5fZW50cmllcy52YWx1ZXMoKSwgKGVudHJ5KSA9PiBbZW50cnkuaWRlbnRpdHksIGVudHJ5LnNvcnRQcmlvcml0eSA/PyAtMV0pKTtcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdChEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNXaWRnZXRTZXJ2aWNlQ29uZmlnKSBpbml0aWFsQ29uZmlnPzogRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzV2lkZ2V0U2VydmljZUNvbmZpZykge1xuICAgIHRoaXMuX2NvbW1vbkNvbXBvbmVudENsYXNzID0gaW5pdGlhbENvbmZpZz8uY29tbW9uQ29tcG9uZW50Q2xhc3M7XG4gICAgdGhpcy5fZGVidWdDb21wb25lbnRDbGFzcyA9IGluaXRpYWxDb25maWc/LmRlYnVnQ29tcG9uZW50Q2xhc3M7XG5cbiAgICBpZiAoaW5pdGlhbENvbmZpZz8uZW50cmllcykge1xuICAgICAgdGhpcy5yZWdpc3Rlcihpbml0aWFsQ29uZmlnLmVudHJpZXMpO1xuICAgIH1cbiAgfVxuXG4gIGdldENvbW1vbkNvbXBvbmVudENsYXNzKCk6IE1heWJlPFR5cGU8dW5rbm93bj4+IHtcbiAgICByZXR1cm4gdGhpcy5fY29tbW9uQ29tcG9uZW50Q2xhc3M7XG4gIH1cblxuICBzZXRDb21tb25Db21wb25lbnRDbGFzcyhjb21wb25lbnRDbGFzczogTWF5YmU8VHlwZTx1bmtub3duPj4pOiB2b2lkIHtcbiAgICB0aGlzLl9jb21tb25Db21wb25lbnRDbGFzcyA9IGNvbXBvbmVudENsYXNzO1xuICB9XG5cbiAgZ2V0RGVidWdDb21wb25lbnRDbGFzcygpOiBNYXliZTxUeXBlPHVua25vd24+PiB7XG4gICAgcmV0dXJuIHRoaXMuX2RlYnVnQ29tcG9uZW50Q2xhc3M7XG4gIH1cblxuICBzZXREZWJ1Z0NvbXBvbmVudENsYXNzKGNvbXBvbmVudENsYXNzOiBNYXliZTxUeXBlPHVua25vd24+Pik6IHZvaWQge1xuICAgIHRoaXMuX2RlYnVnQ29tcG9uZW50Q2xhc3MgPSBjb21wb25lbnRDbGFzcztcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2VkIHRvIHJlZ2lzdGVyIG9uZSBvciBtb3JlIGVudHJpZXMuXG4gICAqXG4gICAqIElmIGFuIGVudHJ5IHdpdGggdGhlIHNhbWUgaWRlbnRpdHkgaXMgYWxyZWFkeSByZWdpc3RlcmVkLCB0aGlzIHdpbGwgb3ZlcnJpZGUgaXQgYnkgZGVmYXVsdC5cbiAgICpcbiAgICogQHBhcmFtIGVudHJpZXMgVGhlIGVudHJpZXMgdG8gcmVnaXN0ZXJcbiAgICogQHBhcmFtIG92ZXJyaWRlIFdoZXRoZXIgdG8gb3ZlcnJpZGUgZXhpc3RpbmcgZW50cmllcyAoZGVmYXVsdDogdHJ1ZSlcbiAgICovXG4gIHJlZ2lzdGVyKGVudHJpZXM6IEFycmF5T3JWYWx1ZTxEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNXaWRnZXRFbnRyeT4sIG92ZXJyaWRlOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xuICAgIGNvbnN0IGVudHJpZXNBcnJheSA9IGFzQXJyYXkoZW50cmllcyk7XG5cbiAgICBlbnRyaWVzQXJyYXkuZm9yRWFjaCgoZW50cnkpID0+IHtcbiAgICAgIGlmIChvdmVycmlkZSB8fCAhdGhpcy5fZW50cmllcy5oYXMoZW50cnkuaWRlbnRpdHkpKSB7XG4gICAgICAgIHRoaXMuX2VudHJpZXMuc2V0KGVudHJ5LmlkZW50aXR5LCBlbnRyeSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBJbnZhbGlkYXRlIHRoZSBjYWNoZVxuICAgIHRoaXMuX3NvcnRQcmlvcml0eU1hcC5yZXNldCgpO1xuICB9XG5cbiAgLy8gTUFSSzogR2V0XG4gIGdldEFsbFJlZ2lzdGVyZWRXaWRnZXRJZGVudGl0aWVzKCk6IEZpcmVzdG9yZU1vZGVsSWRlbnRpdHlbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5fZW50cmllcy5rZXlzKCkpO1xuICB9XG5cbiAgZ2V0V2lkZ2V0RW50cnkoaWRlbnRpdHk6IEZpcmVzdG9yZU1vZGVsSWRlbnRpdHkpOiBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNXaWRnZXRFbnRyeSB7XG4gICAgY29uc3QgZW50cnkgPSB0aGlzLl9lbnRyaWVzLmdldChpZGVudGl0eSk7XG5cbiAgICByZXR1cm4gZW50cnlcbiAgICAgID8ge1xuICAgICAgICAgIC4uLmVudHJ5LFxuICAgICAgICAgIGNvbW1vbkNvbXBvbmVudENsYXNzOiBlbnRyeS5jb21tb25Db21wb25lbnRDbGFzcyA/PyB0aGlzLl9jb21tb25Db21wb25lbnRDbGFzcyxcbiAgICAgICAgICBkZWJ1Z0NvbXBvbmVudENsYXNzOiBlbnRyeS5kZWJ1Z0NvbXBvbmVudENsYXNzID8/IHRoaXMuX2RlYnVnQ29tcG9uZW50Q2xhc3NcbiAgICAgICAgfVxuICAgICAgOiB7XG4gICAgICAgICAgaWRlbnRpdHksXG4gICAgICAgICAgY29tbW9uQ29tcG9uZW50Q2xhc3M6IHRoaXMuX2NvbW1vbkNvbXBvbmVudENsYXNzLFxuICAgICAgICAgIGRlYnVnQ29tcG9uZW50Q2xhc3M6IHRoaXMuX2RlYnVnQ29tcG9uZW50Q2xhc3NcbiAgICAgICAgfTtcbiAgfVxuXG4gIGdldFdpZGdldEVudHJpZXMoaWRlbnRpdGllczogSXRlcmFibGU8RmlyZXN0b3JlTW9kZWxJZGVudGl0eT4pOiBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNXaWRnZXRFbnRyeVtdIHtcbiAgICByZXR1cm4gZmlsdGVyTWF5YmVBcnJheVZhbHVlcyhtYXBJdGVyYWJsZShpZGVudGl0aWVzID8/IFtdLCAoeCkgPT4gdGhpcy5nZXRXaWRnZXRFbnRyeSh4KSkpO1xuICB9XG5cbiAgZ2V0U29ydFByaW9yaXR5TWFwKCkge1xuICAgIHJldHVybiB0aGlzLl9zb3J0UHJpb3JpdHlNYXAoKTtcbiAgfVxufVxuIl19
@@ -38,10 +38,10 @@ export class DbxFirebaseModelKeyComponent {
38
38
  sref$ = this.modelTypeInstance$.pipe(switchMap((x) => x?.segueRef$ ?? of(undefined)));
39
39
  srefSignal = toSignal(this.sref$);
40
40
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseModelKeyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
41
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxFirebaseModelKeyComponent, isStandalone: true, selector: "dbx-firebase-model-key", inputs: { modelKey: { classPropertyName: "modelKey", publicName: "modelKey", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"dbx-firebase-model-key\">\n @if (modelKey(); as key) {\n <!-- Key Data -->\n <dbx-detail-block icon=\"key\" header=\"Model Key\">\n <dbx-click-to-copy-text [highlighted]=\"true\" class=\"dbx-block\">{{ key }}</dbx-click-to-copy-text>\n <dbx-click-to-copy-text [highlighted]=\"true\" class=\"dbx-block\" [copyText]=\"oneWayFlatModelKey()\">(Flat) {{ oneWayFlatModelKey() }}</dbx-click-to-copy-text>\n <dbx-click-to-copy-text [highlighted]=\"true\" class=\"dbx-block\" [copyText]=\"twoWayFlatModelKey()\">(Encoded Flat) {{ twoWayFlatModelKey() }}</dbx-click-to-copy-text>\n </dbx-detail-block>\n\n <!-- Type Info -->\n @if (typeInfoSignal(); as typeInfo) {\n <!-- Model Meta Data -->\n <div>\n <dbx-detail-block [icon]=\"typeInfo.icon\" header=\"Model Type\">\n <dbx-click-to-copy-text class=\"dbx-block\">{{ typeInfo.modelType }}</dbx-click-to-copy-text>\n @if (typeInfo.icon) {\n <dbx-click-to-copy-text [copyText]=\"typeInfo.icon\" class=\"dbx-block\">\n Icon:\n <span class=\"dbx-u\">{{ typeInfo.icon }}</span>\n </dbx-click-to-copy-text>\n } @else {\n <span class=\"dbx-notice\">No Icon For Type</span>\n }\n </dbx-detail-block>\n <dbx-detail-block icon=\"dataset\" header=\"Collection Name\">\n <dbx-click-to-copy-text class=\"dbx-block\">{{ typeInfo.identity.collectionName }}</dbx-click-to-copy-text>\n </dbx-detail-block>\n </div>\n\n <!-- Segue Info -->\n @if (typeCanSegueToView()) {\n <dbx-detail-block icon=\"arrow_forward\" header=\"Segue To View\">\n <div class=\"dbx-hint dbx-small\">This model has a unique view within the app.</div>\n <dbx-anchor [anchor]=\"srefSignal()\"><dbx-button>Go To View</dbx-button></dbx-anchor>\n </dbx-detail-block>\n } @else {\n <dbx-detail-block class=\"dbx-warn\" icon=\"warning\" header=\"No Segue View\">\n <span>This type provides no information for segue directly.</span>\n </dbx-detail-block>\n }\n } @else {\n <dbx-detail-block class=\"dbx-warn\" icon=\"warning\" header=\"No Type Info\">\n <span>There is no type info registered for this model type.</span>\n </dbx-detail-block>\n }\n } @else {\n <div class=\"dbx-firebase-model-key-empty\">No model key provided</div>\n }\n</div>\n", dependencies: [{ kind: "component", type: DbxDetailBlockComponent, selector: "dbx-detail-block", inputs: ["icon", "header", "alignHeader", "bigHeader"] }, { kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "raised", "stroked", "flat", "iconOnly", "fab", "mode"] }, { kind: "component", type: DbxClickToCopyTextComponent, selector: "dbx-click-to-copy-text", inputs: ["copyText", "highlighted", "clipboardSnackbarMessagesConfig", "clipboardSnackbarMessagesEnabled", "clickToCopyIcon", "clickIconToCopyOnly"] }, { kind: "component", type: DbxAnchorComponent, selector: "dbx-anchor, [dbx-anchor]", inputs: ["block"] }] });
41
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxFirebaseModelKeyComponent, isStandalone: true, selector: "dbx-firebase-model-key", inputs: { modelKey: { classPropertyName: "modelKey", publicName: "modelKey", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"dbx-firebase-model-key\">\n @if (modelKey(); as key) {\n <!-- Key Data -->\n <dbx-detail-block icon=\"key\" header=\"Model Key\">\n <dbx-click-to-copy-text [highlighted]=\"true\" class=\"dbx-block\">{{ key }}</dbx-click-to-copy-text>\n <dbx-click-to-copy-text [highlighted]=\"true\" class=\"dbx-block\" [copyText]=\"oneWayFlatModelKey()\">(Flat) {{ oneWayFlatModelKey() }}</dbx-click-to-copy-text>\n <dbx-click-to-copy-text [highlighted]=\"true\" class=\"dbx-block\" [copyText]=\"twoWayFlatModelKey()\">(Encoded Flat) {{ twoWayFlatModelKey() }}</dbx-click-to-copy-text>\n </dbx-detail-block>\n\n <!-- Type Info -->\n @if (typeInfoSignal(); as typeInfo) {\n <!-- Model Meta Data -->\n <div>\n <dbx-detail-block [icon]=\"typeInfo.icon\" header=\"Model Type\">\n <dbx-click-to-copy-text class=\"dbx-block\">{{ typeInfo.modelType }}</dbx-click-to-copy-text>\n @if (typeInfo.icon) {\n <dbx-click-to-copy-text [copyText]=\"typeInfo.icon\" class=\"dbx-block\">\n Icon:\n <span class=\"dbx-u\">{{ typeInfo.icon }}</span>\n </dbx-click-to-copy-text>\n } @else {\n <span class=\"dbx-notice\">No Icon For Type</span>\n }\n </dbx-detail-block>\n <dbx-detail-block icon=\"dataset\" header=\"Collection Name\">\n <dbx-click-to-copy-text class=\"dbx-block\">{{ typeInfo.identity.collectionName }}</dbx-click-to-copy-text>\n </dbx-detail-block>\n </div>\n\n <!-- Segue Info -->\n @if (typeCanSegueToView()) {\n <dbx-detail-block icon=\"arrow_forward\" header=\"Segue To View\">\n <div class=\"dbx-hint dbx-small\">This model has a unique view within the app.</div>\n <dbx-anchor [anchor]=\"srefSignal()\"><dbx-button text=\"Go To View\"></dbx-button></dbx-anchor>\n </dbx-detail-block>\n } @else {\n <dbx-detail-block class=\"dbx-warn\" icon=\"warning\" header=\"No Segue View\">\n <span>This type provides no information for segue directly.</span>\n </dbx-detail-block>\n }\n } @else {\n <dbx-detail-block class=\"dbx-warn\" icon=\"warning\" header=\"No Type Info\">\n <span>There is no type info registered for this model type.</span>\n </dbx-detail-block>\n }\n } @else {\n <div class=\"dbx-firebase-model-key-empty\">No model key provided</div>\n }\n</div>\n", dependencies: [{ kind: "component", type: DbxDetailBlockComponent, selector: "dbx-detail-block", inputs: ["icon", "header", "alignHeader", "bigHeader"] }, { kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "raised", "stroked", "flat", "iconOnly", "fab", "mode"] }, { kind: "component", type: DbxClickToCopyTextComponent, selector: "dbx-click-to-copy-text", inputs: ["copyText", "highlighted", "clipboardSnackbarMessagesConfig", "clipboardSnackbarMessagesEnabled", "clickToCopyIcon", "clickIconToCopyOnly"] }, { kind: "component", type: DbxAnchorComponent, selector: "dbx-anchor, [dbx-anchor]", inputs: ["block"] }] });
42
42
  }
43
43
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseModelKeyComponent, decorators: [{
44
44
  type: Component,
45
- args: [{ selector: 'dbx-firebase-model-key', standalone: true, imports: [MatIcon, DbxDetailBlockComponent, DbxButtonComponent, DbxClickToCopyTextComponent, DbxAnchorComponent], template: "<div class=\"dbx-firebase-model-key\">\n @if (modelKey(); as key) {\n <!-- Key Data -->\n <dbx-detail-block icon=\"key\" header=\"Model Key\">\n <dbx-click-to-copy-text [highlighted]=\"true\" class=\"dbx-block\">{{ key }}</dbx-click-to-copy-text>\n <dbx-click-to-copy-text [highlighted]=\"true\" class=\"dbx-block\" [copyText]=\"oneWayFlatModelKey()\">(Flat) {{ oneWayFlatModelKey() }}</dbx-click-to-copy-text>\n <dbx-click-to-copy-text [highlighted]=\"true\" class=\"dbx-block\" [copyText]=\"twoWayFlatModelKey()\">(Encoded Flat) {{ twoWayFlatModelKey() }}</dbx-click-to-copy-text>\n </dbx-detail-block>\n\n <!-- Type Info -->\n @if (typeInfoSignal(); as typeInfo) {\n <!-- Model Meta Data -->\n <div>\n <dbx-detail-block [icon]=\"typeInfo.icon\" header=\"Model Type\">\n <dbx-click-to-copy-text class=\"dbx-block\">{{ typeInfo.modelType }}</dbx-click-to-copy-text>\n @if (typeInfo.icon) {\n <dbx-click-to-copy-text [copyText]=\"typeInfo.icon\" class=\"dbx-block\">\n Icon:\n <span class=\"dbx-u\">{{ typeInfo.icon }}</span>\n </dbx-click-to-copy-text>\n } @else {\n <span class=\"dbx-notice\">No Icon For Type</span>\n }\n </dbx-detail-block>\n <dbx-detail-block icon=\"dataset\" header=\"Collection Name\">\n <dbx-click-to-copy-text class=\"dbx-block\">{{ typeInfo.identity.collectionName }}</dbx-click-to-copy-text>\n </dbx-detail-block>\n </div>\n\n <!-- Segue Info -->\n @if (typeCanSegueToView()) {\n <dbx-detail-block icon=\"arrow_forward\" header=\"Segue To View\">\n <div class=\"dbx-hint dbx-small\">This model has a unique view within the app.</div>\n <dbx-anchor [anchor]=\"srefSignal()\"><dbx-button>Go To View</dbx-button></dbx-anchor>\n </dbx-detail-block>\n } @else {\n <dbx-detail-block class=\"dbx-warn\" icon=\"warning\" header=\"No Segue View\">\n <span>This type provides no information for segue directly.</span>\n </dbx-detail-block>\n }\n } @else {\n <dbx-detail-block class=\"dbx-warn\" icon=\"warning\" header=\"No Type Info\">\n <span>There is no type info registered for this model type.</span>\n </dbx-detail-block>\n }\n } @else {\n <div class=\"dbx-firebase-model-key-empty\">No model key provided</div>\n }\n</div>\n" }]
45
+ args: [{ selector: 'dbx-firebase-model-key', standalone: true, imports: [MatIcon, DbxDetailBlockComponent, DbxButtonComponent, DbxClickToCopyTextComponent, DbxAnchorComponent], template: "<div class=\"dbx-firebase-model-key\">\n @if (modelKey(); as key) {\n <!-- Key Data -->\n <dbx-detail-block icon=\"key\" header=\"Model Key\">\n <dbx-click-to-copy-text [highlighted]=\"true\" class=\"dbx-block\">{{ key }}</dbx-click-to-copy-text>\n <dbx-click-to-copy-text [highlighted]=\"true\" class=\"dbx-block\" [copyText]=\"oneWayFlatModelKey()\">(Flat) {{ oneWayFlatModelKey() }}</dbx-click-to-copy-text>\n <dbx-click-to-copy-text [highlighted]=\"true\" class=\"dbx-block\" [copyText]=\"twoWayFlatModelKey()\">(Encoded Flat) {{ twoWayFlatModelKey() }}</dbx-click-to-copy-text>\n </dbx-detail-block>\n\n <!-- Type Info -->\n @if (typeInfoSignal(); as typeInfo) {\n <!-- Model Meta Data -->\n <div>\n <dbx-detail-block [icon]=\"typeInfo.icon\" header=\"Model Type\">\n <dbx-click-to-copy-text class=\"dbx-block\">{{ typeInfo.modelType }}</dbx-click-to-copy-text>\n @if (typeInfo.icon) {\n <dbx-click-to-copy-text [copyText]=\"typeInfo.icon\" class=\"dbx-block\">\n Icon:\n <span class=\"dbx-u\">{{ typeInfo.icon }}</span>\n </dbx-click-to-copy-text>\n } @else {\n <span class=\"dbx-notice\">No Icon For Type</span>\n }\n </dbx-detail-block>\n <dbx-detail-block icon=\"dataset\" header=\"Collection Name\">\n <dbx-click-to-copy-text class=\"dbx-block\">{{ typeInfo.identity.collectionName }}</dbx-click-to-copy-text>\n </dbx-detail-block>\n </div>\n\n <!-- Segue Info -->\n @if (typeCanSegueToView()) {\n <dbx-detail-block icon=\"arrow_forward\" header=\"Segue To View\">\n <div class=\"dbx-hint dbx-small\">This model has a unique view within the app.</div>\n <dbx-anchor [anchor]=\"srefSignal()\"><dbx-button text=\"Go To View\"></dbx-button></dbx-anchor>\n </dbx-detail-block>\n } @else {\n <dbx-detail-block class=\"dbx-warn\" icon=\"warning\" header=\"No Segue View\">\n <span>This type provides no information for segue directly.</span>\n </dbx-detail-block>\n }\n } @else {\n <dbx-detail-block class=\"dbx-warn\" icon=\"warning\" header=\"No Type Info\">\n <span>There is no type info registered for this model type.</span>\n </dbx-detail-block>\n }\n } @else {\n <div class=\"dbx-firebase-model-key-empty\">No model key provided</div>\n }\n</div>\n" }]
46
46
  }] });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwua2V5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL21vZGVsL21vZHVsZXMvbW9kZWwvbW9kZWwua2V5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL21vZGVsL21vZHVsZXMvbW9kZWwvbW9kZWwua2V5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFxQiwyQkFBMkIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFHLE9BQU8sRUFBRSw0QkFBNEIsRUFBd0MsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRyxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsMkJBQTJCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFHaEk7O0dBRUc7QUFPSCxNQUFNLE9BQU8sNEJBQTRCO0lBQzlCLDRCQUE0QixHQUFHLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0lBRXBFLFFBQVEsR0FBRyxLQUFLLEVBQXFCLENBQUM7SUFDdEMsa0JBQWtCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUMxQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakMsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDaEUsQ0FBQyxDQUFDLENBQUM7SUFFTSxrQkFBa0IsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1FBQzFDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQyxPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsMkJBQTJCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUN0RSxDQUFDLENBQUMsQ0FBQztJQUVILGlEQUFpRDtJQUN4QyxTQUFTLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUV4QyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FDL0MsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7UUFDaEIsSUFBSSxNQUFNLEdBQWdELFNBQVMsQ0FBQztRQUVwRSxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ1IsTUFBTSxHQUFHLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakUsQ0FBQztRQUVELE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFFTyxjQUFjLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxTQUFTLElBQUksRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvRixTQUFTLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxhQUFhLElBQUksRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUU5Rix1QkFBdUIsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDNUQsbUJBQW1CLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNwRCxjQUFjLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUUxQyxrQkFBa0IsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLGNBQWMsSUFBSSxLQUFLLENBQUMsQ0FBQztJQUVwRixLQUFLLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxTQUFTLElBQUksRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0RixVQUFVLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzt3R0F2Q2hDLDRCQUE0Qjs0RkFBNUIsNEJBQTRCLCtOQ2xCekMsZzRFQWlEQSw0Q0RqQ3FCLHVCQUF1QixxSEFBRSxrQkFBa0IsdVBBQUUsMkJBQTJCLHlOQUFFLGtCQUFrQjs7NEZBRXBHLDRCQUE0QjtrQkFOeEMsU0FBUzsrQkFDRSx3QkFBd0IsY0FFdEIsSUFBSSxXQUNQLENBQUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGtCQUFrQixFQUFFLDJCQUEyQixFQUFFLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIGlucHV0LCBjb21wdXRlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmlyZXN0b3JlTW9kZWxLZXksIHR3b1dheUZsYXRGaXJlc3RvcmVNb2RlbEtleSwgZmxhdEZpcmVzdG9yZU1vZGVsS2V5IH0gZnJvbSAnQGRlcmVla2IvZmlyZWJhc2UnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VNb2RlbFR5cGVzU2VydmljZSwgRGJ4RmlyZWJhc2VNb2RlbFR5cGVzU2VydmljZUluc3RhbmNlIH0gZnJvbSAnLi9tb2RlbC50eXBlcy5zZXJ2aWNlJztcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSwgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBzd2l0Y2hNYXAsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBEYnhEZXRhaWxCbG9ja0NvbXBvbmVudCwgRGJ4Q2xpY2tUb0NvcHlUZXh0Q29tcG9uZW50LCBEYnhBbmNob3JDb21wb25lbnQsIERieEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BkZXJlZWtiL2RieC13ZWInO1xuaW1wb3J0IHsgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcblxuLyoqXG4gKiBBbiBpbnRlcmFjdGl2ZSBkaXNwbGF5IGZvciBhIEZpcmVzdG9yZU1vZGVsS2V5LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkYngtZmlyZWJhc2UtbW9kZWwta2V5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL21vZGVsLmtleS5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtNYXRJY29uLCBEYnhEZXRhaWxCbG9ja0NvbXBvbmVudCwgRGJ4QnV0dG9uQ29tcG9uZW50LCBEYnhDbGlja1RvQ29weVRleHRDb21wb25lbnQsIERieEFuY2hvckNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgRGJ4RmlyZWJhc2VNb2RlbEtleUNvbXBvbmVudCB7XG4gIHJlYWRvbmx5IGRieEZpcmViYXNlTW9kZWxUeXBlc1NlcnZpY2UgPSBpbmplY3QoRGJ4RmlyZWJhc2VNb2RlbFR5cGVzU2VydmljZSk7XG5cbiAgcmVhZG9ubHkgbW9kZWxLZXkgPSBpbnB1dDxGaXJlc3RvcmVNb2RlbEtleT4oKTtcbiAgcmVhZG9ubHkgb25lV2F5RmxhdE1vZGVsS2V5ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IG1vZGVsS2V5ID0gdGhpcy5tb2RlbEtleSgpO1xuICAgIHJldHVybiBtb2RlbEtleSA/IGZsYXRGaXJlc3RvcmVNb2RlbEtleShtb2RlbEtleSkgOiB1bmRlZmluZWQ7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHR3b1dheUZsYXRNb2RlbEtleSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBtb2RlbEtleSA9IHRoaXMubW9kZWxLZXkoKTtcbiAgICByZXR1cm4gbW9kZWxLZXkgPyB0d29XYXlGbGF0RmlyZXN0b3JlTW9kZWxLZXkobW9kZWxLZXkpIDogdW5kZWZpbmVkO1xuICB9KTtcblxuICAvLyBDb252ZXJ0IHNpZ25hbCB0byBvYnNlcnZhYmxlIGZvciB0eXBlcyBzZXJ2aWNlXG4gIHJlYWRvbmx5IG1vZGVsS2V5JCA9IHRvT2JzZXJ2YWJsZSh0aGlzLm1vZGVsS2V5KTtcblxuICByZWFkb25seSBtb2RlbFR5cGVJbnN0YW5jZSQgPSB0aGlzLm1vZGVsS2V5JC5waXBlKFxuICAgIHN3aXRjaE1hcCgoa2V5KSA9PiB7XG4gICAgICBsZXQgcmVzdWx0OiBNYXliZTxEYnhGaXJlYmFzZU1vZGVsVHlwZXNTZXJ2aWNlSW5zdGFuY2U+ID0gdW5kZWZpbmVkO1xuXG4gICAgICBpZiAoa2V5KSB7XG4gICAgICAgIHJlc3VsdCA9IHRoaXMuZGJ4RmlyZWJhc2VNb2RlbFR5cGVzU2VydmljZS5pbnN0YW5jZUZvcktleShrZXkpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gb2YocmVzdWx0KTtcbiAgICB9KVxuICApO1xuXG4gIHJlYWRvbmx5IG1vZGVsSWRlbnRpdHkkID0gdGhpcy5tb2RlbFR5cGVJbnN0YW5jZSQucGlwZShzd2l0Y2hNYXAoKHgpID0+IHg/LmlkZW50aXR5JCA/PyBvZih1bmRlZmluZWQpKSk7XG4gIHJlYWRvbmx5IHR5cGVJbmZvJCA9IHRoaXMubW9kZWxUeXBlSW5zdGFuY2UkLnBpcGUoc3dpdGNoTWFwKCh4KSA9PiB4Py5zYWZlVHlwZUluZm8kID8/IG9mKHVuZGVmaW5lZCkpKTtcblxuICByZWFkb25seSBtb2RlbFR5cGVJbnN0YW5jZVNpZ25hbCA9IHRvU2lnbmFsKHRoaXMubW9kZWxUeXBlSW5zdGFuY2UkKTtcbiAgcmVhZG9ubHkgbW9kZWxJZGVudGl0eVNpZ25hbCA9IHRvU2lnbmFsKHRoaXMubW9kZWxJZGVudGl0eSQpO1xuICByZWFkb25seSB0eXBlSW5mb1NpZ25hbCA9IHRvU2lnbmFsKHRoaXMudHlwZUluZm8kKTtcblxuICByZWFkb25seSB0eXBlQ2FuU2VndWVUb1ZpZXcgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnR5cGVJbmZvU2lnbmFsKCk/LmNhblNlZ3VlVG9WaWV3ID8/IGZhbHNlKTtcblxuICByZWFkb25seSBzcmVmJCA9IHRoaXMubW9kZWxUeXBlSW5zdGFuY2UkLnBpcGUoc3dpdGNoTWFwKCh4KSA9PiB4Py5zZWd1ZVJlZiQgPz8gb2YodW5kZWZpbmVkKSkpO1xuICByZWFkb25seSBzcmVmU2lnbmFsID0gdG9TaWduYWwodGhpcy5zcmVmJCk7XG59XG4iLCI8ZGl2IGNsYXNzPVwiZGJ4LWZpcmViYXNlLW1vZGVsLWtleVwiPlxuICBAaWYgKG1vZGVsS2V5KCk7IGFzIGtleSkge1xuICAgIDwhLS0gS2V5IERhdGEgLS0+XG4gICAgPGRieC1kZXRhaWwtYmxvY2sgaWNvbj1cImtleVwiIGhlYWRlcj1cIk1vZGVsIEtleVwiPlxuICAgICAgPGRieC1jbGljay10by1jb3B5LXRleHQgW2hpZ2hsaWdodGVkXT1cInRydWVcIiBjbGFzcz1cImRieC1ibG9ja1wiPnt7IGtleSB9fTwvZGJ4LWNsaWNrLXRvLWNvcHktdGV4dD5cbiAgICAgIDxkYngtY2xpY2stdG8tY29weS10ZXh0IFtoaWdobGlnaHRlZF09XCJ0cnVlXCIgY2xhc3M9XCJkYngtYmxvY2tcIiBbY29weVRleHRdPVwib25lV2F5RmxhdE1vZGVsS2V5KClcIj4oRmxhdCkge3sgb25lV2F5RmxhdE1vZGVsS2V5KCkgfX08L2RieC1jbGljay10by1jb3B5LXRleHQ+XG4gICAgICA8ZGJ4LWNsaWNrLXRvLWNvcHktdGV4dCBbaGlnaGxpZ2h0ZWRdPVwidHJ1ZVwiIGNsYXNzPVwiZGJ4LWJsb2NrXCIgW2NvcHlUZXh0XT1cInR3b1dheUZsYXRNb2RlbEtleSgpXCI+KEVuY29kZWQgRmxhdCkge3sgdHdvV2F5RmxhdE1vZGVsS2V5KCkgfX08L2RieC1jbGljay10by1jb3B5LXRleHQ+XG4gICAgPC9kYngtZGV0YWlsLWJsb2NrPlxuXG4gICAgPCEtLSBUeXBlIEluZm8gLS0+XG4gICAgQGlmICh0eXBlSW5mb1NpZ25hbCgpOyBhcyB0eXBlSW5mbykge1xuICAgICAgPCEtLSBNb2RlbCBNZXRhIERhdGEgLS0+XG4gICAgICA8ZGl2PlxuICAgICAgICA8ZGJ4LWRldGFpbC1ibG9jayBbaWNvbl09XCJ0eXBlSW5mby5pY29uXCIgaGVhZGVyPVwiTW9kZWwgVHlwZVwiPlxuICAgICAgICAgIDxkYngtY2xpY2stdG8tY29weS10ZXh0IGNsYXNzPVwiZGJ4LWJsb2NrXCI+e3sgdHlwZUluZm8ubW9kZWxUeXBlIH19PC9kYngtY2xpY2stdG8tY29weS10ZXh0PlxuICAgICAgICAgIEBpZiAodHlwZUluZm8uaWNvbikge1xuICAgICAgICAgICAgPGRieC1jbGljay10by1jb3B5LXRleHQgW2NvcHlUZXh0XT1cInR5cGVJbmZvLmljb25cIiBjbGFzcz1cImRieC1ibG9ja1wiPlxuICAgICAgICAgICAgICBJY29uOlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRieC11XCI+e3sgdHlwZUluZm8uaWNvbiB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGJ4LWNsaWNrLXRvLWNvcHktdGV4dD5cbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGJ4LW5vdGljZVwiPk5vIEljb24gRm9yIFR5cGU8L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICA8L2RieC1kZXRhaWwtYmxvY2s+XG4gICAgICAgIDxkYngtZGV0YWlsLWJsb2NrIGljb249XCJkYXRhc2V0XCIgaGVhZGVyPVwiQ29sbGVjdGlvbiBOYW1lXCI+XG4gICAgICAgICAgPGRieC1jbGljay10by1jb3B5LXRleHQgY2xhc3M9XCJkYngtYmxvY2tcIj57eyB0eXBlSW5mby5pZGVudGl0eS5jb2xsZWN0aW9uTmFtZSB9fTwvZGJ4LWNsaWNrLXRvLWNvcHktdGV4dD5cbiAgICAgICAgPC9kYngtZGV0YWlsLWJsb2NrPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gU2VndWUgSW5mbyAtLT5cbiAgICAgIEBpZiAodHlwZUNhblNlZ3VlVG9WaWV3KCkpIHtcbiAgICAgICAgPGRieC1kZXRhaWwtYmxvY2sgaWNvbj1cImFycm93X2ZvcndhcmRcIiBoZWFkZXI9XCJTZWd1ZSBUbyBWaWV3XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRieC1oaW50IGRieC1zbWFsbFwiPlRoaXMgbW9kZWwgaGFzIGEgdW5pcXVlIHZpZXcgd2l0aGluIHRoZSBhcHAuPC9kaXY+XG4gICAgICAgICAgPGRieC1hbmNob3IgW2FuY2hvcl09XCJzcmVmU2lnbmFsKClcIj48ZGJ4LWJ1dHRvbj5HbyBUbyBWaWV3PC9kYngtYnV0dG9uPjwvZGJ4LWFuY2hvcj5cbiAgICAgICAgPC9kYngtZGV0YWlsLWJsb2NrPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDxkYngtZGV0YWlsLWJsb2NrIGNsYXNzPVwiZGJ4LXdhcm5cIiBpY29uPVwid2FybmluZ1wiIGhlYWRlcj1cIk5vIFNlZ3VlIFZpZXdcIj5cbiAgICAgICAgICA8c3Bhbj5UaGlzIHR5cGUgcHJvdmlkZXMgbm8gaW5mb3JtYXRpb24gZm9yIHNlZ3VlIGRpcmVjdGx5Ljwvc3Bhbj5cbiAgICAgICAgPC9kYngtZGV0YWlsLWJsb2NrPlxuICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgPGRieC1kZXRhaWwtYmxvY2sgY2xhc3M9XCJkYngtd2FyblwiIGljb249XCJ3YXJuaW5nXCIgaGVhZGVyPVwiTm8gVHlwZSBJbmZvXCI+XG4gICAgICAgIDxzcGFuPlRoZXJlIGlzIG5vIHR5cGUgaW5mbyByZWdpc3RlcmVkIGZvciB0aGlzIG1vZGVsIHR5cGUuPC9zcGFuPlxuICAgICAgPC9kYngtZGV0YWlsLWJsb2NrPlxuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgPGRpdiBjbGFzcz1cImRieC1maXJlYmFzZS1tb2RlbC1rZXktZW1wdHlcIj5ObyBtb2RlbCBrZXkgcHJvdmlkZWQ8L2Rpdj5cbiAgfVxuPC9kaXY+XG4iXX0=
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwua2V5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL21vZGVsL21vZHVsZXMvbW9kZWwvbW9kZWwua2V5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL21vZGVsL21vZHVsZXMvbW9kZWwvbW9kZWwua2V5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFxQiwyQkFBMkIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFHLE9BQU8sRUFBRSw0QkFBNEIsRUFBd0MsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRyxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsMkJBQTJCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFHaEk7O0dBRUc7QUFPSCxNQUFNLE9BQU8sNEJBQTRCO0lBQzlCLDRCQUE0QixHQUFHLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0lBRXBFLFFBQVEsR0FBRyxLQUFLLEVBQXFCLENBQUM7SUFDdEMsa0JBQWtCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUMxQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakMsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDaEUsQ0FBQyxDQUFDLENBQUM7SUFFTSxrQkFBa0IsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1FBQzFDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQyxPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsMkJBQTJCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUN0RSxDQUFDLENBQUMsQ0FBQztJQUVILGlEQUFpRDtJQUN4QyxTQUFTLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUV4QyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FDL0MsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7UUFDaEIsSUFBSSxNQUFNLEdBQWdELFNBQVMsQ0FBQztRQUVwRSxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ1IsTUFBTSxHQUFHLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakUsQ0FBQztRQUVELE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFFTyxjQUFjLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxTQUFTLElBQUksRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvRixTQUFTLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxhQUFhLElBQUksRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUU5Rix1QkFBdUIsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDNUQsbUJBQW1CLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNwRCxjQUFjLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUUxQyxrQkFBa0IsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLGNBQWMsSUFBSSxLQUFLLENBQUMsQ0FBQztJQUVwRixLQUFLLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxTQUFTLElBQUksRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0RixVQUFVLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzt3R0F2Q2hDLDRCQUE0Qjs0RkFBNUIsNEJBQTRCLCtOQ2xCekMsMDRFQWlEQSw0Q0RqQ3FCLHVCQUF1QixxSEFBRSxrQkFBa0IsdVBBQUUsMkJBQTJCLHlOQUFFLGtCQUFrQjs7NEZBRXBHLDRCQUE0QjtrQkFOeEMsU0FBUzsrQkFDRSx3QkFBd0IsY0FFdEIsSUFBSSxXQUNQLENBQUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGtCQUFrQixFQUFFLDJCQUEyQixFQUFFLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIGlucHV0LCBjb21wdXRlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmlyZXN0b3JlTW9kZWxLZXksIHR3b1dheUZsYXRGaXJlc3RvcmVNb2RlbEtleSwgZmxhdEZpcmVzdG9yZU1vZGVsS2V5IH0gZnJvbSAnQGRlcmVla2IvZmlyZWJhc2UnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VNb2RlbFR5cGVzU2VydmljZSwgRGJ4RmlyZWJhc2VNb2RlbFR5cGVzU2VydmljZUluc3RhbmNlIH0gZnJvbSAnLi9tb2RlbC50eXBlcy5zZXJ2aWNlJztcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSwgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBzd2l0Y2hNYXAsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBEYnhEZXRhaWxCbG9ja0NvbXBvbmVudCwgRGJ4Q2xpY2tUb0NvcHlUZXh0Q29tcG9uZW50LCBEYnhBbmNob3JDb21wb25lbnQsIERieEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BkZXJlZWtiL2RieC13ZWInO1xuaW1wb3J0IHsgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcblxuLyoqXG4gKiBBbiBpbnRlcmFjdGl2ZSBkaXNwbGF5IGZvciBhIEZpcmVzdG9yZU1vZGVsS2V5LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkYngtZmlyZWJhc2UtbW9kZWwta2V5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL21vZGVsLmtleS5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtNYXRJY29uLCBEYnhEZXRhaWxCbG9ja0NvbXBvbmVudCwgRGJ4QnV0dG9uQ29tcG9uZW50LCBEYnhDbGlja1RvQ29weVRleHRDb21wb25lbnQsIERieEFuY2hvckNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgRGJ4RmlyZWJhc2VNb2RlbEtleUNvbXBvbmVudCB7XG4gIHJlYWRvbmx5IGRieEZpcmViYXNlTW9kZWxUeXBlc1NlcnZpY2UgPSBpbmplY3QoRGJ4RmlyZWJhc2VNb2RlbFR5cGVzU2VydmljZSk7XG5cbiAgcmVhZG9ubHkgbW9kZWxLZXkgPSBpbnB1dDxGaXJlc3RvcmVNb2RlbEtleT4oKTtcbiAgcmVhZG9ubHkgb25lV2F5RmxhdE1vZGVsS2V5ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IG1vZGVsS2V5ID0gdGhpcy5tb2RlbEtleSgpO1xuICAgIHJldHVybiBtb2RlbEtleSA/IGZsYXRGaXJlc3RvcmVNb2RlbEtleShtb2RlbEtleSkgOiB1bmRlZmluZWQ7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHR3b1dheUZsYXRNb2RlbEtleSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBtb2RlbEtleSA9IHRoaXMubW9kZWxLZXkoKTtcbiAgICByZXR1cm4gbW9kZWxLZXkgPyB0d29XYXlGbGF0RmlyZXN0b3JlTW9kZWxLZXkobW9kZWxLZXkpIDogdW5kZWZpbmVkO1xuICB9KTtcblxuICAvLyBDb252ZXJ0IHNpZ25hbCB0byBvYnNlcnZhYmxlIGZvciB0eXBlcyBzZXJ2aWNlXG4gIHJlYWRvbmx5IG1vZGVsS2V5JCA9IHRvT2JzZXJ2YWJsZSh0aGlzLm1vZGVsS2V5KTtcblxuICByZWFkb25seSBtb2RlbFR5cGVJbnN0YW5jZSQgPSB0aGlzLm1vZGVsS2V5JC5waXBlKFxuICAgIHN3aXRjaE1hcCgoa2V5KSA9PiB7XG4gICAgICBsZXQgcmVzdWx0OiBNYXliZTxEYnhGaXJlYmFzZU1vZGVsVHlwZXNTZXJ2aWNlSW5zdGFuY2U+ID0gdW5kZWZpbmVkO1xuXG4gICAgICBpZiAoa2V5KSB7XG4gICAgICAgIHJlc3VsdCA9IHRoaXMuZGJ4RmlyZWJhc2VNb2RlbFR5cGVzU2VydmljZS5pbnN0YW5jZUZvcktleShrZXkpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gb2YocmVzdWx0KTtcbiAgICB9KVxuICApO1xuXG4gIHJlYWRvbmx5IG1vZGVsSWRlbnRpdHkkID0gdGhpcy5tb2RlbFR5cGVJbnN0YW5jZSQucGlwZShzd2l0Y2hNYXAoKHgpID0+IHg/LmlkZW50aXR5JCA/PyBvZih1bmRlZmluZWQpKSk7XG4gIHJlYWRvbmx5IHR5cGVJbmZvJCA9IHRoaXMubW9kZWxUeXBlSW5zdGFuY2UkLnBpcGUoc3dpdGNoTWFwKCh4KSA9PiB4Py5zYWZlVHlwZUluZm8kID8/IG9mKHVuZGVmaW5lZCkpKTtcblxuICByZWFkb25seSBtb2RlbFR5cGVJbnN0YW5jZVNpZ25hbCA9IHRvU2lnbmFsKHRoaXMubW9kZWxUeXBlSW5zdGFuY2UkKTtcbiAgcmVhZG9ubHkgbW9kZWxJZGVudGl0eVNpZ25hbCA9IHRvU2lnbmFsKHRoaXMubW9kZWxJZGVudGl0eSQpO1xuICByZWFkb25seSB0eXBlSW5mb1NpZ25hbCA9IHRvU2lnbmFsKHRoaXMudHlwZUluZm8kKTtcblxuICByZWFkb25seSB0eXBlQ2FuU2VndWVUb1ZpZXcgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnR5cGVJbmZvU2lnbmFsKCk/LmNhblNlZ3VlVG9WaWV3ID8/IGZhbHNlKTtcblxuICByZWFkb25seSBzcmVmJCA9IHRoaXMubW9kZWxUeXBlSW5zdGFuY2UkLnBpcGUoc3dpdGNoTWFwKCh4KSA9PiB4Py5zZWd1ZVJlZiQgPz8gb2YodW5kZWZpbmVkKSkpO1xuICByZWFkb25seSBzcmVmU2lnbmFsID0gdG9TaWduYWwodGhpcy5zcmVmJCk7XG59XG4iLCI8ZGl2IGNsYXNzPVwiZGJ4LWZpcmViYXNlLW1vZGVsLWtleVwiPlxuICBAaWYgKG1vZGVsS2V5KCk7IGFzIGtleSkge1xuICAgIDwhLS0gS2V5IERhdGEgLS0+XG4gICAgPGRieC1kZXRhaWwtYmxvY2sgaWNvbj1cImtleVwiIGhlYWRlcj1cIk1vZGVsIEtleVwiPlxuICAgICAgPGRieC1jbGljay10by1jb3B5LXRleHQgW2hpZ2hsaWdodGVkXT1cInRydWVcIiBjbGFzcz1cImRieC1ibG9ja1wiPnt7IGtleSB9fTwvZGJ4LWNsaWNrLXRvLWNvcHktdGV4dD5cbiAgICAgIDxkYngtY2xpY2stdG8tY29weS10ZXh0IFtoaWdobGlnaHRlZF09XCJ0cnVlXCIgY2xhc3M9XCJkYngtYmxvY2tcIiBbY29weVRleHRdPVwib25lV2F5RmxhdE1vZGVsS2V5KClcIj4oRmxhdCkge3sgb25lV2F5RmxhdE1vZGVsS2V5KCkgfX08L2RieC1jbGljay10by1jb3B5LXRleHQ+XG4gICAgICA8ZGJ4LWNsaWNrLXRvLWNvcHktdGV4dCBbaGlnaGxpZ2h0ZWRdPVwidHJ1ZVwiIGNsYXNzPVwiZGJ4LWJsb2NrXCIgW2NvcHlUZXh0XT1cInR3b1dheUZsYXRNb2RlbEtleSgpXCI+KEVuY29kZWQgRmxhdCkge3sgdHdvV2F5RmxhdE1vZGVsS2V5KCkgfX08L2RieC1jbGljay10by1jb3B5LXRleHQ+XG4gICAgPC9kYngtZGV0YWlsLWJsb2NrPlxuXG4gICAgPCEtLSBUeXBlIEluZm8gLS0+XG4gICAgQGlmICh0eXBlSW5mb1NpZ25hbCgpOyBhcyB0eXBlSW5mbykge1xuICAgICAgPCEtLSBNb2RlbCBNZXRhIERhdGEgLS0+XG4gICAgICA8ZGl2PlxuICAgICAgICA8ZGJ4LWRldGFpbC1ibG9jayBbaWNvbl09XCJ0eXBlSW5mby5pY29uXCIgaGVhZGVyPVwiTW9kZWwgVHlwZVwiPlxuICAgICAgICAgIDxkYngtY2xpY2stdG8tY29weS10ZXh0IGNsYXNzPVwiZGJ4LWJsb2NrXCI+e3sgdHlwZUluZm8ubW9kZWxUeXBlIH19PC9kYngtY2xpY2stdG8tY29weS10ZXh0PlxuICAgICAgICAgIEBpZiAodHlwZUluZm8uaWNvbikge1xuICAgICAgICAgICAgPGRieC1jbGljay10by1jb3B5LXRleHQgW2NvcHlUZXh0XT1cInR5cGVJbmZvLmljb25cIiBjbGFzcz1cImRieC1ibG9ja1wiPlxuICAgICAgICAgICAgICBJY29uOlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRieC11XCI+e3sgdHlwZUluZm8uaWNvbiB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGJ4LWNsaWNrLXRvLWNvcHktdGV4dD5cbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGJ4LW5vdGljZVwiPk5vIEljb24gRm9yIFR5cGU8L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICA8L2RieC1kZXRhaWwtYmxvY2s+XG4gICAgICAgIDxkYngtZGV0YWlsLWJsb2NrIGljb249XCJkYXRhc2V0XCIgaGVhZGVyPVwiQ29sbGVjdGlvbiBOYW1lXCI+XG4gICAgICAgICAgPGRieC1jbGljay10by1jb3B5LXRleHQgY2xhc3M9XCJkYngtYmxvY2tcIj57eyB0eXBlSW5mby5pZGVudGl0eS5jb2xsZWN0aW9uTmFtZSB9fTwvZGJ4LWNsaWNrLXRvLWNvcHktdGV4dD5cbiAgICAgICAgPC9kYngtZGV0YWlsLWJsb2NrPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gU2VndWUgSW5mbyAtLT5cbiAgICAgIEBpZiAodHlwZUNhblNlZ3VlVG9WaWV3KCkpIHtcbiAgICAgICAgPGRieC1kZXRhaWwtYmxvY2sgaWNvbj1cImFycm93X2ZvcndhcmRcIiBoZWFkZXI9XCJTZWd1ZSBUbyBWaWV3XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRieC1oaW50IGRieC1zbWFsbFwiPlRoaXMgbW9kZWwgaGFzIGEgdW5pcXVlIHZpZXcgd2l0aGluIHRoZSBhcHAuPC9kaXY+XG4gICAgICAgICAgPGRieC1hbmNob3IgW2FuY2hvcl09XCJzcmVmU2lnbmFsKClcIj48ZGJ4LWJ1dHRvbiB0ZXh0PVwiR28gVG8gVmlld1wiPjwvZGJ4LWJ1dHRvbj48L2RieC1hbmNob3I+XG4gICAgICAgIDwvZGJ4LWRldGFpbC1ibG9jaz5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8ZGJ4LWRldGFpbC1ibG9jayBjbGFzcz1cImRieC13YXJuXCIgaWNvbj1cIndhcm5pbmdcIiBoZWFkZXI9XCJObyBTZWd1ZSBWaWV3XCI+XG4gICAgICAgICAgPHNwYW4+VGhpcyB0eXBlIHByb3ZpZGVzIG5vIGluZm9ybWF0aW9uIGZvciBzZWd1ZSBkaXJlY3RseS48L3NwYW4+XG4gICAgICAgIDwvZGJ4LWRldGFpbC1ibG9jaz5cbiAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxkYngtZGV0YWlsLWJsb2NrIGNsYXNzPVwiZGJ4LXdhcm5cIiBpY29uPVwid2FybmluZ1wiIGhlYWRlcj1cIk5vIFR5cGUgSW5mb1wiPlxuICAgICAgICA8c3Bhbj5UaGVyZSBpcyBubyB0eXBlIGluZm8gcmVnaXN0ZXJlZCBmb3IgdGhpcyBtb2RlbCB0eXBlLjwvc3Bhbj5cbiAgICAgIDwvZGJ4LWRldGFpbC1ibG9jaz5cbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIDxkaXYgY2xhc3M9XCJkYngtZmlyZWJhc2UtbW9kZWwta2V5LWVtcHR5XCI+Tm8gbW9kZWwga2V5IHByb3ZpZGVkPC9kaXY+XG4gIH1cbjwvZGl2PlxuIl19