@dereekb/dbx-firebase 12.6.15 → 12.6.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (22) hide show
  1. package/esm2022/lib/model/modules/model/entities/model.entities.component.mjs +67 -15
  2. package/esm2022/lib/model/modules/model/entities/model.entities.entity.component.mjs +5 -3
  3. package/esm2022/lib/model/modules/model/entities/model.entities.popover.button.component.mjs +12 -7
  4. package/esm2022/lib/model/modules/model/entities/model.entities.popover.component.mjs +11 -7
  5. package/esm2022/lib/model/modules/model/entities/model.entities.widget.entity.debug.component.mjs +19 -5
  6. package/esm2022/lib/model/modules/model/entities/model.entities.widget.service.mjs +10 -2
  7. package/esm2022/lib/model/modules/model/model.key.component.mjs +3 -3
  8. package/fesm2022/dereekb-dbx-firebase.mjs +111 -29
  9. package/fesm2022/dereekb-dbx-firebase.mjs.map +1 -1
  10. package/lib/model/_model.scss +15 -0
  11. package/lib/model/modules/model/_model.scss +33 -0
  12. package/lib/model/modules/model/entities/model.entities.component.d.ts +30 -5
  13. package/lib/model/modules/model/entities/model.entities.entity.component.d.ts +4 -0
  14. package/lib/model/modules/model/entities/model.entities.popover.button.component.d.ts +15 -3
  15. package/lib/model/modules/model/entities/model.entities.popover.component.d.ts +12 -2
  16. package/lib/model/modules/model/entities/model.entities.widget.entity.debug.component.d.ts +6 -3
  17. package/lib/model/modules/model/entities/model.entities.widget.service.d.ts +8 -0
  18. package/lib/style/_all-core.scss +3 -1
  19. package/lib/style/_all-theme.scss +2 -0
  20. package/lib/style/_all-typography.scss +2 -0
  21. package/lib/style/_core.scss +1 -1
  22. package/package.json +1 -1
@@ -1,37 +1,79 @@
1
- import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, computed, inject, input, signal } from '@angular/core';
2
2
  import { MatAccordion } from '@angular/material/expansion';
3
- import { DbxListEmptyContentComponent, DbxLoadingComponent } from '@dereekb/dbx-web';
3
+ import { DbxIconButtonComponent, 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
- import { combineLatest, defaultIfEmpty, map, shareReplay, switchMap } from 'rxjs';
6
+ import { combineLatest, combineLatestWith, defaultIfEmpty, distinctUntilChanged, map, shareReplay, switchMap } from 'rxjs';
7
+ import { filterUniqueValues, reverseCompareFn, separateValues, 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);
17
+ /**
18
+ * If true, will only show entities that have a registered widget entry.
19
+ *
20
+ * Defaults to true.
21
+ */
22
+ onlyShowRegisteredTypes = input(true);
23
+ /**
24
+ * If true, will show unregistered entities, even if onlyShowRegisteredTypes is true.
25
+ */
26
+ showUnregisteredTypesSignal = signal(undefined);
27
+ onlyShowRegisteredTypesSignal = computed(() => {
28
+ const onlyShowRegisteredTypes = this.onlyShowRegisteredTypes();
29
+ const showUnregisteredTypes = this.showUnregisteredTypesSignal();
30
+ return !showUnregisteredTypes && onlyShowRegisteredTypes;
31
+ });
32
+ onlyShowRegisteredTypes$ = toObservable(this.onlyShowRegisteredTypesSignal).pipe(distinctUntilChanged(), shareReplay(1));
14
33
  entities = input();
15
34
  entities$ = toObservable(this.entities).pipe(switchMapMaybe(), map((x) => x ?? beginLoading()), shareReplay(1));
16
- entitiesWithKeysState$ = this.entities$.pipe(mapLoadingStateValueWithOperator(switchMap((entities) => {
35
+ allEntitiesState$ = this.entities$.pipe(mapLoadingStateValueWithOperator(switchMap((entities) => {
36
+ const sortPriorityMap = this.entitiesWidgetService.getSortPriorityMap();
17
37
  const entitiesWithStore = (entities ?? []).filter((x) => Boolean(x.store));
18
38
  const entitiesWithKeys = combineLatest(entitiesWithStore.map((x) => {
19
- const obs = x.store.currentKey$.pipe(map((key) => (key ? { key, ...x } : null)));
39
+ const sortPriorityMapEntry = sortPriorityMap.get(x.modelIdentity);
40
+ const isRegisteredType = sortPriorityMapEntry != null;
41
+ const sortPriority = sortPriorityMapEntry ?? -2;
42
+ const obs = x.store.currentKey$.pipe(map((key) => (key ? { key, ...x, sortPriority, isRegisteredType } : null)));
20
43
  return obs;
21
44
  }));
22
- return entitiesWithKeys.pipe(filterMaybeArray(), defaultIfEmpty([]));
45
+ return entitiesWithKeys.pipe(filterMaybeArray(), defaultIfEmpty([]), combineLatestWith(this.onlyShowRegisteredTypes$), map(([entities, onlyShowRegisteredTypes]) => {
46
+ const filteredEntities = filterUniqueValues(entities, (x) => x.key).sort(reverseCompareFn(sortByNumberFunction((x) => x.sortPriority)));
47
+ const { included: registeredEntities, excluded: unregisteredEntities } = separateValues(filteredEntities, (x) => x.isRegisteredType);
48
+ const result = {
49
+ entities: onlyShowRegisteredTypes ? registeredEntities : filteredEntities,
50
+ onlyShowRegisteredTypes,
51
+ registeredEntities,
52
+ unregisteredEntities
53
+ };
54
+ return result;
55
+ }));
23
56
  })), shareReplay(1));
24
- entitiesWithKeys$ = this.entitiesWithKeysState$.pipe(valueFromFinishedLoadingState(), shareReplay(1));
25
- entitiesWithKeysSignal = toSignal(this.entitiesWithKeys$, { initialValue: [] });
57
+ allEntities$ = this.allEntitiesState$.pipe(valueFromFinishedLoadingState(), shareReplay(1));
58
+ allEntitiesSignal = toSignal(this.allEntities$, { initialValue: { entities: [], registeredEntities: [], unregisteredEntities: [], onlyShowRegisteredTypes: false } });
59
+ entitiesWithKeysSignal = computed(() => this.allEntitiesSignal()?.entities);
60
+ unregisteredEntitiesCountSignal = computed(() => this.allEntitiesSignal()?.unregisteredEntities?.length ?? 0);
61
+ showViewUnregisteredEntitiesButtonSignal = computed(() => {
62
+ const { onlyShowRegisteredTypes, unregisteredEntities } = this.allEntitiesSignal() ?? {};
63
+ return onlyShowRegisteredTypes && Boolean(unregisteredEntities?.length);
64
+ });
26
65
  hasNoEntitiesSignal = computed(() => !this.entitiesWithKeysSignal()?.length);
27
- context = loadingStateContext({ obs: this.entitiesWithKeysState$ });
66
+ context = loadingStateContext({ obs: this.allEntitiesState$ });
28
67
  ngOnDestroy() {
29
68
  this.context.destroy();
30
69
  }
70
+ clickShowUnregisteredEntities() {
71
+ this.showUnregisteredTypesSignal.set(true);
72
+ }
31
73
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseModelEntitiesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
32
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxFirebaseModelEntitiesComponent, isStandalone: true, selector: "dbx-firebase-model-entities", inputs: { multi: { classPropertyName: "multi", publicName: "multi", isSignal: true, isRequired: false, transformFunction: null }, entities: { classPropertyName: "entities", publicName: "entities", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
74
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxFirebaseModelEntitiesComponent, isStandalone: true, selector: "dbx-firebase-model-entities", inputs: { multi: { classPropertyName: "multi", publicName: "multi", isSignal: true, isRequired: false, transformFunction: null }, onlyShowRegisteredTypes: { classPropertyName: "onlyShowRegisteredTypes", publicName: "onlyShowRegisteredTypes", isSignal: true, isRequired: false, transformFunction: null }, entities: { classPropertyName: "entities", publicName: "entities", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
33
75
  <dbx-loading [linear]="true" [context]="context">
34
- <mat-accordion [multi]="multi()">
76
+ <mat-accordion class="dbx-firebase-model-entities-accordion" [multi]="multi()">
35
77
  @for (entity of entitiesWithKeysSignal(); track entity.key) {
36
78
  <dbx-firebase-model-entities-entity [entity]="entity"></dbx-firebase-model-entities-entity>
37
79
  }
@@ -41,8 +83,13 @@ export class DbxFirebaseModelEntitiesComponent {
41
83
  <ng-content select="[empty]"></ng-content>
42
84
  </dbx-list-empty-content>
43
85
  }
86
+ @if (showViewUnregisteredEntitiesButtonSignal()) {
87
+ <div class="dbx-pt3 text-center">
88
+ <dbx-icon-button icon="visibility" [text]="'View ' + unregisteredEntitiesCountSignal() + ' Hidden Entities'" (buttonClick)="clickShowUnregisteredEntities()"></dbx-icon-button>
89
+ </div>
90
+ }
44
91
  </dbx-loading>
45
- `, isInline: true, dependencies: [{ kind: "directive", type: MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: DbxLoadingComponent, selector: "dbx-loading", inputs: ["padding", "show", "text", "mode", "color", "diameter", "linear", "loading", "error", "context"] }, { kind: "component", type: DbxFirebaseModelEntitiesEntityComponent, selector: "dbx-firebase-model-entities-entity", inputs: ["entity"] }, { kind: "component", type: DbxListEmptyContentComponent, selector: "dbx-list-empty-content" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
92
+ `, isInline: true, dependencies: [{ kind: "directive", type: MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: DbxLoadingComponent, selector: "dbx-loading", inputs: ["padding", "show", "text", "mode", "color", "diameter", "linear", "loading", "error", "context"] }, { kind: "component", type: DbxFirebaseModelEntitiesEntityComponent, selector: "dbx-firebase-model-entities-entity", inputs: ["entity"] }, { kind: "component", type: DbxListEmptyContentComponent, selector: "dbx-list-empty-content" }, { kind: "component", type: DbxIconButtonComponent, selector: "dbx-icon-button" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
46
93
  }
47
94
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseModelEntitiesComponent, decorators: [{
48
95
  type: Component,
@@ -50,7 +97,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
50
97
  selector: 'dbx-firebase-model-entities',
51
98
  template: `
52
99
  <dbx-loading [linear]="true" [context]="context">
53
- <mat-accordion [multi]="multi()">
100
+ <mat-accordion class="dbx-firebase-model-entities-accordion" [multi]="multi()">
54
101
  @for (entity of entitiesWithKeysSignal(); track entity.key) {
55
102
  <dbx-firebase-model-entities-entity [entity]="entity"></dbx-firebase-model-entities-entity>
56
103
  }
@@ -60,11 +107,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
60
107
  <ng-content select="[empty]"></ng-content>
61
108
  </dbx-list-empty-content>
62
109
  }
110
+ @if (showViewUnregisteredEntitiesButtonSignal()) {
111
+ <div class="dbx-pt3 text-center">
112
+ <dbx-icon-button icon="visibility" [text]="'View ' + unregisteredEntitiesCountSignal() + ' Hidden Entities'" (buttonClick)="clickShowUnregisteredEntities()"></dbx-icon-button>
113
+ </div>
114
+ }
63
115
  </dbx-loading>
64
116
  `,
65
- imports: [MatAccordion, DbxLoadingComponent, DbxFirebaseModelEntitiesEntityComponent, DbxListEmptyContentComponent],
117
+ imports: [MatAccordion, DbxLoadingComponent, DbxFirebaseModelEntitiesEntityComponent, DbxListEmptyContentComponent, DbxIconButtonComponent],
66
118
  changeDetection: ChangeDetectionStrategy.OnPush,
67
119
  standalone: true
68
120
  }]
69
121
  }] });
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuZW50aXRpZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kZWwvbW9kdWxlcy9tb2RlbC9lbnRpdGllcy9tb2RlbC5lbnRpdGllcy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRS9GLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyRixPQUFPLEVBQUUsdUNBQXVDLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM1RixPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLEdBQUcsRUFBYyxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTlGLE9BQU8sRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQWdCLG1CQUFtQixFQUFFLGdDQUFnQyxFQUFFLGNBQWMsRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFzQm5MLE1BQU0sT0FBTyxpQ0FBaUM7SUFDNUM7O09BRUc7SUFDTSxLQUFLLEdBQUcsS0FBSyxDQUFVLElBQUksQ0FBQyxDQUFDO0lBRTdCLFFBQVEsR0FBRyxLQUFLLEVBQXNELENBQUM7SUFDdkUsU0FBUyxHQUF1RCxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FDdkcsY0FBYyxFQUFFLEVBQ2hCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLFlBQVksRUFBNEIsQ0FBQyxFQUN6RCxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztJQUVPLHNCQUFzQixHQUFzRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FDdEgsZ0NBQWdDLENBQzlCLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1FBQ3JCLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFzQyxDQUFDO1FBQ2hILE1BQU0sZ0JBQWdCLEdBQStELGFBQWEsQ0FDaEcsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDMUIsTUFBTSxHQUFHLEdBQTZELENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0ksT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLENBQUMsQ0FDSCxDQUFDO1FBRUYsT0FBTyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN2RSxDQUFDLENBQUMsQ0FDSCxFQUNELFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO0lBRU8saUJBQWlCLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyw2QkFBNkIsRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXRHLHNCQUFzQixHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUVoRixtQkFBbUIsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUU3RSxPQUFPLEdBQUcsbUJBQW1CLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUMsQ0FBQztJQUU3RSxXQUFXO1FBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN6QixDQUFDO3dHQXhDVSxpQ0FBaUM7NEZBQWpDLGlDQUFpQyw0VkFsQmxDOzs7Ozs7Ozs7Ozs7O0dBYVQsNERBQ1MsWUFBWSwrSUFBRSxtQkFBbUIsbUtBQUUsdUNBQXVDLG1HQUFFLDRCQUE0Qjs7NEZBSXZHLGlDQUFpQztrQkFwQjdDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDZCQUE2QjtvQkFDdkMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7O0dBYVQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLG1CQUFtQixFQUFFLHVDQUF1QyxFQUFFLDRCQUE0QixDQUFDO29CQUNuSCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGlucHV0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERieEZpcmViYXNlTW9kZWxFbnRpdHksIERieEZpcmViYXNlTW9kZWxFbnRpdHlXaXRoS2V5QW5kU3RvcmUsIERieEZpcmViYXNlTW9kZWxFbnRpdHlXaXRoU3RvcmUgfSBmcm9tICcuL21vZGVsLmVudGl0aWVzJztcbmltcG9ydCB7IE1hdEFjY29yZGlvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2V4cGFuc2lvbic7XG5pbXBvcnQgeyBEYnhMaXN0RW1wdHlDb250ZW50Q29tcG9uZW50LCBEYnhMb2FkaW5nQ29tcG9uZW50IH0gZnJvbSAnQGRlcmVla2IvZGJ4LXdlYic7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNFbnRpdHlDb21wb25lbnQgfSBmcm9tICcuL21vZGVsLmVudGl0aWVzLmVudGl0eS5jb21wb25lbnQnO1xuaW1wb3J0IHsgdG9PYnNlcnZhYmxlLCB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIGRlZmF1bHRJZkVtcHR5LCBtYXAsIE9ic2VydmFibGUsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBiZWdpbkxvYWRpbmcsIGZpbHRlck1heWJlQXJyYXksIExvYWRpbmdTdGF0ZSwgbG9hZGluZ1N0YXRlQ29udGV4dCwgbWFwTG9hZGluZ1N0YXRlVmFsdWVXaXRoT3BlcmF0b3IsIHN3aXRjaE1hcE1heWJlLCB2YWx1ZUZyb21GaW5pc2hlZExvYWRpbmdTdGF0ZSB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkYngtZmlyZWJhc2UtbW9kZWwtZW50aXRpZXMnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkYngtbG9hZGluZyBbbGluZWFyXT1cInRydWVcIiBbY29udGV4dF09XCJjb250ZXh0XCI+XG4gICAgICA8bWF0LWFjY29yZGlvbiBbbXVsdGldPVwibXVsdGkoKVwiPlxuICAgICAgICBAZm9yIChlbnRpdHkgb2YgZW50aXRpZXNXaXRoS2V5c1NpZ25hbCgpOyB0cmFjayBlbnRpdHkua2V5KSB7XG4gICAgICAgICAgPGRieC1maXJlYmFzZS1tb2RlbC1lbnRpdGllcy1lbnRpdHkgW2VudGl0eV09XCJlbnRpdHlcIj48L2RieC1maXJlYmFzZS1tb2RlbC1lbnRpdGllcy1lbnRpdHk+XG4gICAgICAgIH1cbiAgICAgIDwvbWF0LWFjY29yZGlvbj5cbiAgICAgIEBpZiAoaGFzTm9FbnRpdGllc1NpZ25hbCgpKSB7XG4gICAgICAgIDxkYngtbGlzdC1lbXB0eS1jb250ZW50PlxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltlbXB0eV1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGJ4LWxpc3QtZW1wdHktY29udGVudD5cbiAgICAgIH1cbiAgICA8L2RieC1sb2FkaW5nPlxuICBgLFxuICBpbXBvcnRzOiBbTWF0QWNjb3JkaW9uLCBEYnhMb2FkaW5nQ29tcG9uZW50LCBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNFbnRpdHlDb21wb25lbnQsIERieExpc3RFbXB0eUNvbnRlbnRDb21wb25lbnRdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogV2hldGhlciB0aGUgYWNjb3JkaW9uIHNob3VsZCBhbGxvdyBtdWx0aXBsZSBleHBhbmRlZCBwYW5lbHMuXG4gICAqL1xuICByZWFkb25seSBtdWx0aSA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuXG4gIHJlYWRvbmx5IGVudGl0aWVzID0gaW5wdXQ8T2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8RGJ4RmlyZWJhc2VNb2RlbEVudGl0eVtdPj4+KCk7XG4gIHJlYWRvbmx5IGVudGl0aWVzJDogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8RGJ4RmlyZWJhc2VNb2RlbEVudGl0eVtdPj4gPSB0b09ic2VydmFibGUodGhpcy5lbnRpdGllcykucGlwZShcbiAgICBzd2l0Y2hNYXBNYXliZSgpLFxuICAgIG1hcCgoeCkgPT4geCA/PyBiZWdpbkxvYWRpbmc8RGJ4RmlyZWJhc2VNb2RlbEVudGl0eVtdPigpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGVudGl0aWVzV2l0aEtleXNTdGF0ZSQ6IE9ic2VydmFibGU8TG9hZGluZ1N0YXRlPERieEZpcmViYXNlTW9kZWxFbnRpdHlXaXRoS2V5QW5kU3RvcmVbXT4+ID0gdGhpcy5lbnRpdGllcyQucGlwZShcbiAgICBtYXBMb2FkaW5nU3RhdGVWYWx1ZVdpdGhPcGVyYXRvcihcbiAgICAgIHN3aXRjaE1hcCgoZW50aXRpZXMpID0+IHtcbiAgICAgICAgY29uc3QgZW50aXRpZXNXaXRoU3RvcmUgPSAoZW50aXRpZXMgPz8gW10pLmZpbHRlcigoeCkgPT4gQm9vbGVhbih4LnN0b3JlKSkgYXMgRGJ4RmlyZWJhc2VNb2RlbEVudGl0eVdpdGhTdG9yZVtdO1xuICAgICAgICBjb25zdCBlbnRpdGllc1dpdGhLZXlzOiBPYnNlcnZhYmxlPE1heWJlPERieEZpcmViYXNlTW9kZWxFbnRpdHlXaXRoS2V5QW5kU3RvcmU+W10+ID0gY29tYmluZUxhdGVzdChcbiAgICAgICAgICBlbnRpdGllc1dpdGhTdG9yZS5tYXAoKHgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG9iczogT2JzZXJ2YWJsZTxNYXliZTxEYnhGaXJlYmFzZU1vZGVsRW50aXR5V2l0aEtleUFuZFN0b3JlPj4gPSB4LnN0b3JlLmN1cnJlbnRLZXkkLnBpcGUobWFwKChrZXkpID0+IChrZXkgPyB7IGtleSwgLi4ueCB9IDogbnVsbCkpKTtcbiAgICAgICAgICAgIHJldHVybiBvYnM7XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gZW50aXRpZXNXaXRoS2V5cy5waXBlKGZpbHRlck1heWJlQXJyYXkoKSwgZGVmYXVsdElmRW1wdHkoW10pKTtcbiAgICAgIH0pXG4gICAgKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGVudGl0aWVzV2l0aEtleXMkID0gdGhpcy5lbnRpdGllc1dpdGhLZXlzU3RhdGUkLnBpcGUodmFsdWVGcm9tRmluaXNoZWRMb2FkaW5nU3RhdGUoKSwgc2hhcmVSZXBsYXkoMSkpO1xuXG4gIHJlYWRvbmx5IGVudGl0aWVzV2l0aEtleXNTaWduYWwgPSB0b1NpZ25hbCh0aGlzLmVudGl0aWVzV2l0aEtleXMkLCB7IGluaXRpYWxWYWx1ZTogW10gfSk7XG5cbiAgcmVhZG9ubHkgaGFzTm9FbnRpdGllc1NpZ25hbCA9IGNvbXB1dGVkKCgpID0+ICF0aGlzLmVudGl0aWVzV2l0aEtleXNTaWduYWwoKT8ubGVuZ3RoKTtcblxuICByZWFkb25seSBjb250ZXh0ID0gbG9hZGluZ1N0YXRlQ29udGV4dCh7IG9iczogdGhpcy5lbnRpdGllc1dpdGhLZXlzU3RhdGUkIH0pO1xuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY29udGV4dC5kZXN0cm95KCk7XG4gIH1cbn1cbiJdfQ==
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuZW50aXRpZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kZWwvbW9kdWxlcy9tb2RlbC9lbnRpdGllcy9tb2RlbC5lbnRpdGllcy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0csT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSw0QkFBNEIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzdHLE9BQU8sRUFBRSx1Q0FBdUMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzVGLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxjQUFjLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFjLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkksT0FBTyxFQUFFLGtCQUFrQixFQUFTLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsSCxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFnQixtQkFBbUIsRUFBRSxnQ0FBZ0MsRUFBRSxjQUFjLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkwsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0saUNBQWlDLENBQUM7O0FBa0N4RixNQUFNLE9BQU8saUNBQWlDO0lBQ25DLHFCQUFxQixHQUFHLE1BQU0sQ0FBQyxx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dCwgY29tcHV0ZWQsIGluamVjdCwgaW5wdXQsIE9uRGVzdHJveSwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZU1vZGVsRW50aXR5LCBEYnhGaXJlYmFzZU1vZGVsRW50aXR5V2l0aEtleUFuZFN0b3JlLCBEYnhGaXJlYmFzZU1vZGVsRW50aXR5V2l0aFN0b3JlIH0gZnJvbSAnLi9tb2RlbC5lbnRpdGllcyc7XG5pbXBvcnQgeyBNYXRBY2NvcmRpb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9leHBhbnNpb24nO1xuaW1wb3J0IHsgRGJ4SWNvbkJ1dHRvbkNvbXBvbmVudCwgRGJ4TGlzdEVtcHR5Q29udGVudENvbXBvbmVudCwgRGJ4TG9hZGluZ0NvbXBvbmVudCB9IGZyb20gJ0BkZXJlZWtiL2RieC13ZWInO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzRW50aXR5Q29tcG9uZW50IH0gZnJvbSAnLi9tb2RlbC5lbnRpdGllcy5lbnRpdHkuY29tcG9uZW50JztcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSwgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBjb21iaW5lTGF0ZXN0V2l0aCwgZGVmYXVsdElmRW1wdHksIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIE9ic2VydmFibGUsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlclVuaXF1ZVZhbHVlcywgTWF5YmUsIHJldmVyc2VDb21wYXJlRm4sIHNlcGFyYXRlVmFsdWVzLCBzb3J0QnlOdW1iZXJGdW5jdGlvbiB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgYmVnaW5Mb2FkaW5nLCBmaWx0ZXJNYXliZUFycmF5LCBMb2FkaW5nU3RhdGUsIGxvYWRpbmdTdGF0ZUNvbnRleHQsIG1hcExvYWRpbmdTdGF0ZVZhbHVlV2l0aE9wZXJhdG9yLCBzd2l0Y2hNYXBNYXliZSwgdmFsdWVGcm9tRmluaXNoZWRMb2FkaW5nU3RhdGUgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IERieEZpcmViYXNlTW9kZWxFbnRpdGllc1dpZGdldFNlcnZpY2UgfSBmcm9tICcuL21vZGVsLmVudGl0aWVzLndpZGdldC5zZXJ2aWNlJztcblxuaW50ZXJmYWNlIERieEZpcmViYXNlTW9kZWxFbnRpdGllc0NvbXBvbmVudEFsbEVudGl0aWVzIHtcbiAgcmVhZG9ubHkgZW50aXRpZXM6IERieEZpcmViYXNlTW9kZWxFbnRpdHlXaXRoS2V5QW5kU3RvcmVbXTtcbiAgcmVhZG9ubHkgcmVnaXN0ZXJlZEVudGl0aWVzOiBEYnhGaXJlYmFzZU1vZGVsRW50aXR5V2l0aEtleUFuZFN0b3JlW107XG4gIHJlYWRvbmx5IHVucmVnaXN0ZXJlZEVudGl0aWVzOiBEYnhGaXJlYmFzZU1vZGVsRW50aXR5V2l0aEtleUFuZFN0b3JlW107XG4gIHJlYWRvbmx5IG9ubHlTaG93UmVnaXN0ZXJlZFR5cGVzPzogTWF5YmU8Ym9vbGVhbj47XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RieC1maXJlYmFzZS1tb2RlbC1lbnRpdGllcycsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRieC1sb2FkaW5nIFtsaW5lYXJdPVwidHJ1ZVwiIFtjb250ZXh0XT1cImNvbnRleHRcIj5cbiAgICAgIDxtYXQtYWNjb3JkaW9uIGNsYXNzPVwiZGJ4LWZpcmViYXNlLW1vZGVsLWVudGl0aWVzLWFjY29yZGlvblwiIFttdWx0aV09XCJtdWx0aSgpXCI+XG4gICAgICAgIEBmb3IgKGVudGl0eSBvZiBlbnRpdGllc1dpdGhLZXlzU2lnbmFsKCk7IHRyYWNrIGVudGl0eS5rZXkpIHtcbiAgICAgICAgICA8ZGJ4LWZpcmViYXNlLW1vZGVsLWVudGl0aWVzLWVudGl0eSBbZW50aXR5XT1cImVudGl0eVwiPjwvZGJ4LWZpcmViYXNlLW1vZGVsLWVudGl0aWVzLWVudGl0eT5cbiAgICAgICAgfVxuICAgICAgPC9tYXQtYWNjb3JkaW9uPlxuICAgICAgQGlmIChoYXNOb0VudGl0aWVzU2lnbmFsKCkpIHtcbiAgICAgICAgPGRieC1saXN0LWVtcHR5LWNvbnRlbnQ+XG4gICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2VtcHR5XVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPC9kYngtbGlzdC1lbXB0eS1jb250ZW50PlxuICAgICAgfVxuICAgICAgQGlmIChzaG93Vmlld1VucmVnaXN0ZXJlZEVudGl0aWVzQnV0dG9uU2lnbmFsKCkpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImRieC1wdDMgdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICA8ZGJ4LWljb24tYnV0dG9uIGljb249XCJ2aXNpYmlsaXR5XCIgW3RleHRdPVwiJ1ZpZXcgJyArIHVucmVnaXN0ZXJlZEVudGl0aWVzQ291bnRTaWduYWwoKSArICcgSGlkZGVuIEVudGl0aWVzJ1wiIChidXR0b25DbGljayk9XCJjbGlja1Nob3dVbnJlZ2lzdGVyZWRFbnRpdGllcygpXCI+PC9kYngtaWNvbi1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGJ4LWxvYWRpbmc+XG4gIGAsXG4gIGltcG9ydHM6IFtNYXRBY2NvcmRpb24sIERieExvYWRpbmdDb21wb25lbnQsIERieEZpcmViYXNlTW9kZWxFbnRpdGllc0VudGl0eUNvbXBvbmVudCwgRGJ4TGlzdEVtcHR5Q29udGVudENvbXBvbmVudCwgRGJ4SWNvbkJ1dHRvbkNvbXBvbmVudF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlTW9kZWxFbnRpdGllc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHJlYWRvbmx5IGVudGl0aWVzV2lkZ2V0U2VydmljZSA9IGluamVjdChEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNXaWRnZXRTZXJ2aWNlKTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgYWNjb3JkaW9uIHNob3VsZCBhbGxvdyBtdWx0aXBsZSBleHBhbmRlZCBwYW5lbHMuXG4gICAqL1xuICByZWFkb25seSBtdWx0aSA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuXG4gIC8qKlxuICAgKiBJZiB0cnVlLCB3aWxsIG9ubHkgc2hvdyBlbnRpdGllcyB0aGF0IGhhdmUgYSByZWdpc3RlcmVkIHdpZGdldCBlbnRyeS5cbiAgICpcbiAgICogRGVmYXVsdHMgdG8gdHJ1ZS5cbiAgICovXG4gIHJlYWRvbmx5IG9ubHlTaG93UmVnaXN0ZXJlZFR5cGVzID0gaW5wdXQ8TWF5YmU8Ym9vbGVhbj4+KHRydWUpO1xuXG4gIC8qKlxuICAgKiBJZiB0cnVlLCB3aWxsIHNob3cgdW5yZWdpc3RlcmVkIGVudGl0aWVzLCBldmVuIGlmIG9ubHlTaG93UmVnaXN0ZXJlZFR5cGVzIGlzIHRydWUuXG4gICAqL1xuICByZWFkb25seSBzaG93VW5yZWdpc3RlcmVkVHlwZXNTaWduYWwgPSBzaWduYWw8TWF5YmU8Ym9vbGVhbj4+KHVuZGVmaW5lZCk7XG5cbiAgcmVhZG9ubHkgb25seVNob3dSZWdpc3RlcmVkVHlwZXNTaWduYWwgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgb25seVNob3dSZWdpc3RlcmVkVHlwZXMgPSB0aGlzLm9ubHlTaG93UmVnaXN0ZXJlZFR5cGVzKCk7XG4gICAgY29uc3Qgc2hvd1VucmVnaXN0ZXJlZFR5cGVzID0gdGhpcy5zaG93VW5yZWdpc3RlcmVkVHlwZXNTaWduYWwoKTtcblxuICAgIHJldHVybiAhc2hvd1VucmVnaXN0ZXJlZFR5cGVzICYmIG9ubHlTaG93UmVnaXN0ZXJlZFR5cGVzO1xuICB9KTtcblxuICByZWFkb25seSBvbmx5U2hvd1JlZ2lzdGVyZWRUeXBlcyQgPSB0b09ic2VydmFibGUodGhpcy5vbmx5U2hvd1JlZ2lzdGVyZWRUeXBlc1NpZ25hbCkucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBzaGFyZVJlcGxheSgxKSk7XG5cbiAgcmVhZG9ubHkgZW50aXRpZXMgPSBpbnB1dDxPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxEYnhGaXJlYmFzZU1vZGVsRW50aXR5W10+Pj4oKTtcbiAgcmVhZG9ubHkgZW50aXRpZXMkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxEYnhGaXJlYmFzZU1vZGVsRW50aXR5W10+PiA9IHRvT2JzZXJ2YWJsZSh0aGlzLmVudGl0aWVzKS5waXBlKFxuICAgIHN3aXRjaE1hcE1heWJlKCksXG4gICAgbWFwKCh4KSA9PiB4ID8/IGJlZ2luTG9hZGluZzxEYnhGaXJlYmFzZU1vZGVsRW50aXR5W10+KCkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgYWxsRW50aXRpZXNTdGF0ZSQ6IE9ic2VydmFibGU8TG9hZGluZ1N0YXRlPERieEZpcmViYXNlTW9kZWxFbnRpdGllc0NvbXBvbmVudEFsbEVudGl0aWVzPj4gPSB0aGlzLmVudGl0aWVzJC5waXBlKFxuICAgIG1hcExvYWRpbmdTdGF0ZVZhbHVlV2l0aE9wZXJhdG9yKFxuICAgICAgc3dpdGNoTWFwKChlbnRpdGllcykgPT4ge1xuICAgICAgICBjb25zdCBzb3J0UHJpb3JpdHlNYXAgPSB0aGlzLmVudGl0aWVzV2lkZ2V0U2VydmljZS5nZXRTb3J0UHJpb3JpdHlNYXAoKTtcbiAgICAgICAgY29uc3QgZW50aXRpZXNXaXRoU3RvcmUgPSAoZW50aXRpZXMgPz8gW10pLmZpbHRlcigoeCkgPT4gQm9vbGVhbih4LnN0b3JlKSkgYXMgRGJ4RmlyZWJhc2VNb2RlbEVudGl0eVdpdGhTdG9yZVtdO1xuXG4gICAgICAgIGludGVyZmFjZSBEYnhGaXJlYmFzZU1vZGVsRW50aXR5V2l0aEtleUFuZFN0b3JlQW5kU29ydFByaW9yaXR5IGV4dGVuZHMgRGJ4RmlyZWJhc2VNb2RlbEVudGl0eVdpdGhLZXlBbmRTdG9yZSB7XG4gICAgICAgICAgcmVhZG9ubHkgc29ydFByaW9yaXR5OiBudW1iZXI7XG4gICAgICAgICAgcmVhZG9ubHkgaXNSZWdpc3RlcmVkVHlwZTogYm9vbGVhbjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGVudGl0aWVzV2l0aEtleXM6IE9ic2VydmFibGU8TWF5YmU8RGJ4RmlyZWJhc2VNb2RlbEVudGl0eVdpdGhLZXlBbmRTdG9yZUFuZFNvcnRQcmlvcml0eT5bXT4gPSBjb21iaW5lTGF0ZXN0KFxuICAgICAgICAgIGVudGl0aWVzV2l0aFN0b3JlLm1hcCgoeCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc29ydFByaW9yaXR5TWFwRW50cnkgPSBzb3J0UHJpb3JpdHlNYXAuZ2V0KHgubW9kZWxJZGVudGl0eSk7XG4gICAgICAgICAgICBjb25zdCBpc1JlZ2lzdGVyZWRUeXBlID0gc29ydFByaW9yaXR5TWFwRW50cnkgIT0gbnVsbDtcbiAgICAgICAgICAgIGNvbnN0IHNvcnRQcmlvcml0eSA9IHNvcnRQcmlvcml0eU1hcEVudHJ5ID8/IC0yO1xuXG4gICAgICAgICAgICBjb25zdCBvYnM6IE9ic2VydmFibGU8TWF5YmU8RGJ4RmlyZWJhc2VNb2RlbEVudGl0eVdpdGhLZXlBbmRTdG9yZUFuZFNvcnRQcmlvcml0eT4+ID0geC5zdG9yZS5jdXJyZW50S2V5JC5waXBlKG1hcCgoa2V5KSA9PiAoa2V5ID8geyBrZXksIC4uLngsIHNvcnRQcmlvcml0eSwgaXNSZWdpc3RlcmVkVHlwZSB9IDogbnVsbCkpKTtcbiAgICAgICAgICAgIHJldHVybiBvYnM7XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gZW50aXRpZXNXaXRoS2V5cy5waXBlKFxuICAgICAgICAgIGZpbHRlck1heWJlQXJyYXkoKSxcbiAgICAgICAgICBkZWZhdWx0SWZFbXB0eShbXSksXG4gICAgICAgICAgY29tYmluZUxhdGVzdFdpdGgodGhpcy5vbmx5U2hvd1JlZ2lzdGVyZWRUeXBlcyQpLFxuICAgICAgICAgIG1hcCgoW2VudGl0aWVzLCBvbmx5U2hvd1JlZ2lzdGVyZWRUeXBlc10pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlcmVkRW50aXRpZXMgPSBmaWx0ZXJVbmlxdWVWYWx1ZXMoZW50aXRpZXMsICh4KSA9PiB4LmtleSkuc29ydChyZXZlcnNlQ29tcGFyZUZuKHNvcnRCeU51bWJlckZ1bmN0aW9uKCh4KSA9PiB4LnNvcnRQcmlvcml0eSkpKTtcblxuICAgICAgICAgICAgY29uc3QgeyBpbmNsdWRlZDogcmVnaXN0ZXJlZEVudGl0aWVzLCBleGNsdWRlZDogdW5yZWdpc3RlcmVkRW50aXRpZXMgfSA9IHNlcGFyYXRlVmFsdWVzKGZpbHRlcmVkRW50aXRpZXMsICh4KSA9PiB4LmlzUmVnaXN0ZXJlZFR5cGUpO1xuXG4gICAgICAgICAgICBjb25zdCByZXN1bHQ6IERieEZpcmViYXNlTW9kZWxFbnRpdGllc0NvbXBvbmVudEFsbEVudGl0aWVzID0ge1xuICAgICAgICAgICAgICBlbnRpdGllczogb25seVNob3dSZWdpc3RlcmVkVHlwZXMgPyByZWdpc3RlcmVkRW50aXRpZXMgOiBmaWx0ZXJlZEVudGl0aWVzLFxuICAgICAgICAgICAgICBvbmx5U2hvd1JlZ2lzdGVyZWRUeXBlcyxcbiAgICAgICAgICAgICAgcmVnaXN0ZXJlZEVudGl0aWVzLFxuICAgICAgICAgICAgICB1bnJlZ2lzdGVyZWRFbnRpdGllc1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfSlcbiAgICApLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgYWxsRW50aXRpZXMkID0gdGhpcy5hbGxFbnRpdGllc1N0YXRlJC5waXBlKHZhbHVlRnJvbUZpbmlzaGVkTG9hZGluZ1N0YXRlKCksIHNoYXJlUmVwbGF5KDEpKTtcbiAgcmVhZG9ubHkgYWxsRW50aXRpZXNTaWduYWwgPSB0b1NpZ25hbCh0aGlzLmFsbEVudGl0aWVzJCwgeyBpbml0aWFsVmFsdWU6IHsgZW50aXRpZXM6IFtdLCByZWdpc3RlcmVkRW50aXRpZXM6IFtdLCB1bnJlZ2lzdGVyZWRFbnRpdGllczogW10sIG9ubHlTaG93UmVnaXN0ZXJlZFR5cGVzOiBmYWxzZSB9IH0pO1xuXG4gIHJlYWRvbmx5IGVudGl0aWVzV2l0aEtleXNTaWduYWwgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmFsbEVudGl0aWVzU2lnbmFsKCk/LmVudGl0aWVzKTtcbiAgcmVhZG9ubHkgdW5yZWdpc3RlcmVkRW50aXRpZXNDb3VudFNpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuYWxsRW50aXRpZXNTaWduYWwoKT8udW5yZWdpc3RlcmVkRW50aXRpZXM/Lmxlbmd0aCA/PyAwKTtcblxuICByZWFkb25seSBzaG93Vmlld1VucmVnaXN0ZXJlZEVudGl0aWVzQnV0dG9uU2lnbmFsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHsgb25seVNob3dSZWdpc3RlcmVkVHlwZXMsIHVucmVnaXN0ZXJlZEVudGl0aWVzIH0gPSB0aGlzLmFsbEVudGl0aWVzU2lnbmFsKCkgPz8ge307XG4gICAgcmV0dXJuIG9ubHlTaG93UmVnaXN0ZXJlZFR5cGVzICYmIEJvb2xlYW4odW5yZWdpc3RlcmVkRW50aXRpZXM/Lmxlbmd0aCk7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGhhc05vRW50aXRpZXNTaWduYWwgPSBjb21wdXRlZCgoKSA9PiAhdGhpcy5lbnRpdGllc1dpdGhLZXlzU2lnbmFsKCk/Lmxlbmd0aCk7XG5cbiAgcmVhZG9ubHkgY29udGV4dCA9IGxvYWRpbmdTdGF0ZUNvbnRleHQoeyBvYnM6IHRoaXMuYWxsRW50aXRpZXNTdGF0ZSQgfSk7XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5jb250ZXh0LmRlc3Ryb3koKTtcbiAgfVxuXG4gIGNsaWNrU2hvd1VucmVnaXN0ZXJlZEVudGl0aWVzKCkge1xuICAgIHRoaXMuc2hvd1VucmVnaXN0ZXJlZFR5cGVzU2lnbmFsLnNldCh0cnVlKTtcbiAgfVxufVxuIl19
@@ -56,6 +56,8 @@ export class DbxFirebaseModelEntitiesEntityComponent {
56
56
  widgetInjectionConfig$ = combineLatest([this.currentWidgetEntry$, this.currentEntityWithStore$]).pipe(map(([entry, entity]) => (entity ? this.widgetInjectionConfigFactory(entry, entity) : null)), shareReplay(1));
57
57
  hasTypeInfoSignal = toSignal(this.hasTypeInfo$);
58
58
  displayInfoSignal = toSignal(this.displayInfo$);
59
+ modelIdentitySignal = toSignal(this.modelIdentity$);
60
+ modelTypeSignal = computed(() => this.modelIdentitySignal()?.modelType);
59
61
  widgetInjectionConfigSignal = toSignal(this.widgetInjectionConfig$);
60
62
  entityWidgetConfigSignal = computed(() => this.widgetInjectionConfigSignal()?.entityComponentConfig);
61
63
  commonWidgetConfigSignal = computed(() => this.widgetInjectionConfigSignal()?.commonComponentConfig);
@@ -65,10 +67,10 @@ export class DbxFirebaseModelEntitiesEntityComponent {
65
67
  this.loadingContext.destroy();
66
68
  }
67
69
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseModelEntitiesEntityComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
68
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxFirebaseModelEntitiesEntityComponent, isStandalone: true, selector: "dbx-firebase-model-entities-entity", inputs: { entity: { classPropertyName: "entity", publicName: "entity", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<mat-expansion-panel>\n <mat-expansion-panel-header>\n <mat-panel-title>\n @if (displayInfoSignal(); as displayInfo) {\n @if (displayInfo.icon) {\n <mat-icon class=\"dbx-button-spacer\">{{ displayInfo.icon }}</mat-icon>\n }\n <span>{{ displayInfo.title }}</span>\n }\n </mat-panel-title>\n </mat-expansion-panel-header>\n <ng-template matExpansionPanelContent>\n <div class=\"dbx-firebase-model-entities-entity-panel-content\">\n <dbx-loading [context]=\"loadingContext\">\n @if (entityWidgetConfigSignal(); as config) {\n <div class=\"dbx-pb3 dbx-firebase-model-entities-entity-content\">\n <dbx-injection [config]=\"config\"></dbx-injection>\n </div>\n }\n @if (commonWidgetConfigSignal(); as config) {\n <div class=\"dbx-pb3 dbx-firebase-model-entities-common-content\">\n <dbx-injection [config]=\"config\"></dbx-injection>\n </div>\n }\n @if (debugWidgetConfigSignal(); as config) {\n <div class=\"dbx-pb3 dbx-firebase-model-entities-debug-content\">\n <dbx-injection [config]=\"config\"></dbx-injection>\n </div>\n }\n </dbx-loading>\n </div>\n </ng-template>\n</mat-expansion-panel>\n", dependencies: [{ kind: "component", type: DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }, { kind: "component", type: DbxLoadingComponent, selector: "dbx-loading", inputs: ["padding", "show", "text", "mode", "color", "diameter", "linear", "loading", "error", "context"] }, { kind: "component", type: MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: MatExpansionPanelContent, selector: "ng-template[matExpansionPanelContent]" }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
70
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxFirebaseModelEntitiesEntityComponent, isStandalone: true, selector: "dbx-firebase-model-entities-entity", inputs: { entity: { classPropertyName: "entity", publicName: "entity", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<mat-expansion-panel>\n <mat-expansion-panel-header>\n <mat-panel-title>\n @if (displayInfoSignal(); as displayInfo) {\n <div class=\"dbx-list-two-line-item\">\n <div class=\"item-left\">\n <span class=\"dbx-pb2 dbx-flex-bar\">\n @if (displayInfo.icon) {\n <mat-icon class=\"dbx-button-spacer\">{{ displayInfo.icon }}</mat-icon>\n }\n <span>{{ displayInfo.title }}</span>\n </span>\n <span class=\"dbx-hint dbx-small\">{{ modelTypeSignal() }}</span>\n </div>\n </div>\n }\n </mat-panel-title>\n </mat-expansion-panel-header>\n <ng-template matExpansionPanelContent>\n <div class=\"dbx-firebase-model-entities-entity-panel-content\">\n <dbx-loading [context]=\"loadingContext\">\n @if (entityWidgetConfigSignal(); as config) {\n <div class=\"dbx-pb3 dbx-firebase-model-entities-entity-content\">\n <dbx-injection [config]=\"config\"></dbx-injection>\n </div>\n }\n @if (commonWidgetConfigSignal(); as config) {\n <div class=\"dbx-pb3 dbx-firebase-model-entities-common-content\">\n <dbx-injection [config]=\"config\"></dbx-injection>\n </div>\n }\n @if (debugWidgetConfigSignal(); as config) {\n <div class=\"dbx-pb3 dbx-firebase-model-entities-debug-content\">\n <dbx-injection [config]=\"config\"></dbx-injection>\n </div>\n }\n </dbx-loading>\n </div>\n </ng-template>\n</mat-expansion-panel>\n", dependencies: [{ kind: "component", type: DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }, { kind: "component", type: DbxLoadingComponent, selector: "dbx-loading", inputs: ["padding", "show", "text", "mode", "color", "diameter", "linear", "loading", "error", "context"] }, { kind: "component", type: MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: MatExpansionPanelContent, selector: "ng-template[matExpansionPanelContent]" }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
69
71
  }
70
72
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseModelEntitiesEntityComponent, decorators: [{
71
73
  type: Component,
72
- args: [{ selector: 'dbx-firebase-model-entities-entity', imports: [DbxInjectionComponent, DbxLoadingComponent, MatExpansionPanel, MatExpansionPanelHeader, MatExpansionPanelTitle, MatExpansionPanelDescription, MatExpansionPanelContent, MatIcon, AsyncPipe], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<mat-expansion-panel>\n <mat-expansion-panel-header>\n <mat-panel-title>\n @if (displayInfoSignal(); as displayInfo) {\n @if (displayInfo.icon) {\n <mat-icon class=\"dbx-button-spacer\">{{ displayInfo.icon }}</mat-icon>\n }\n <span>{{ displayInfo.title }}</span>\n }\n </mat-panel-title>\n </mat-expansion-panel-header>\n <ng-template matExpansionPanelContent>\n <div class=\"dbx-firebase-model-entities-entity-panel-content\">\n <dbx-loading [context]=\"loadingContext\">\n @if (entityWidgetConfigSignal(); as config) {\n <div class=\"dbx-pb3 dbx-firebase-model-entities-entity-content\">\n <dbx-injection [config]=\"config\"></dbx-injection>\n </div>\n }\n @if (commonWidgetConfigSignal(); as config) {\n <div class=\"dbx-pb3 dbx-firebase-model-entities-common-content\">\n <dbx-injection [config]=\"config\"></dbx-injection>\n </div>\n }\n @if (debugWidgetConfigSignal(); as config) {\n <div class=\"dbx-pb3 dbx-firebase-model-entities-debug-content\">\n <dbx-injection [config]=\"config\"></dbx-injection>\n </div>\n }\n </dbx-loading>\n </div>\n </ng-template>\n</mat-expansion-panel>\n" }]
74
+ args: [{ selector: 'dbx-firebase-model-entities-entity', imports: [DbxInjectionComponent, DbxLoadingComponent, MatExpansionPanel, MatExpansionPanelHeader, MatExpansionPanelTitle, MatExpansionPanelDescription, MatExpansionPanelContent, MatIcon, AsyncPipe], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<mat-expansion-panel>\n <mat-expansion-panel-header>\n <mat-panel-title>\n @if (displayInfoSignal(); as displayInfo) {\n <div class=\"dbx-list-two-line-item\">\n <div class=\"item-left\">\n <span class=\"dbx-pb2 dbx-flex-bar\">\n @if (displayInfo.icon) {\n <mat-icon class=\"dbx-button-spacer\">{{ displayInfo.icon }}</mat-icon>\n }\n <span>{{ displayInfo.title }}</span>\n </span>\n <span class=\"dbx-hint dbx-small\">{{ modelTypeSignal() }}</span>\n </div>\n </div>\n }\n </mat-panel-title>\n </mat-expansion-panel-header>\n <ng-template matExpansionPanelContent>\n <div class=\"dbx-firebase-model-entities-entity-panel-content\">\n <dbx-loading [context]=\"loadingContext\">\n @if (entityWidgetConfigSignal(); as config) {\n <div class=\"dbx-pb3 dbx-firebase-model-entities-entity-content\">\n <dbx-injection [config]=\"config\"></dbx-injection>\n </div>\n }\n @if (commonWidgetConfigSignal(); as config) {\n <div class=\"dbx-pb3 dbx-firebase-model-entities-common-content\">\n <dbx-injection [config]=\"config\"></dbx-injection>\n </div>\n }\n @if (debugWidgetConfigSignal(); as config) {\n <div class=\"dbx-pb3 dbx-firebase-model-entities-debug-content\">\n <dbx-injection [config]=\"config\"></dbx-injection>\n </div>\n }\n </dbx-loading>\n </div>\n </ng-template>\n</mat-expansion-panel>\n" }]
73
75
  }] });
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuZW50aXRpZXMuZW50aXR5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL21vZGVsL21vZHVsZXMvbW9kZWwvZW50aXRpZXMvbW9kZWwuZW50aXRpZXMuZW50aXR5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL21vZGVsL21vZHVsZXMvbW9kZWwvZW50aXRpZXMvbW9kZWwuZW50aXRpZXMuZW50aXR5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDdkcsT0FBTyxFQUEyRCxpQ0FBaUMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzlILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxzQkFBc0IsRUFBRSw0QkFBNEIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3pLLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFjLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztB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ckMsQ0FBQyxxQkFBcUIsRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxzQkFBc0IsRUFBRSw0QkFBNEIsRUFBRSx3QkFBd0IsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLG1CQUNwTCx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBpbnB1dCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZU1vZGVsRW50aXR5LCBEYnhGaXJlYmFzZU1vZGVsRW50aXR5V2l0aFN0b3JlLCBpc0RieEZpcmViYXNlTW9kZWxFbnRpdHlXaXRoU3RvcmUgfSBmcm9tICcuL21vZGVsLmVudGl0aWVzJztcbmltcG9ydCB7IERieEluamVjdGlvbkNvbXBvbmVudCB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcbmltcG9ydCB7IE1hdEV4cGFuc2lvblBhbmVsLCBNYXRFeHBhbnNpb25QYW5lbEhlYWRlciwgTWF0RXhwYW5zaW9uUGFuZWxUaXRsZSwgTWF0RXhwYW5zaW9uUGFuZWxEZXNjcmlwdGlvbiwgTWF0RXhwYW5zaW9uUGFuZWxDb250ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZXhwYW5zaW9uJztcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSwgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBPYnNlcnZhYmxlLCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXJNYXliZSwgbG9hZGluZ1N0YXRlQ29udGV4dCB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzV2lkZ2V0U2VydmljZSB9IGZyb20gJy4vbW9kZWwuZW50aXRpZXMud2lkZ2V0LnNlcnZpY2UnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VNb2RlbFR5cGVzU2VydmljZSwgdHlwZSBEYnhGaXJlYmFzZU1vZGVsRGlzcGxheUluZm8sIHR5cGUgRGJ4RmlyZWJhc2VNb2RlbFR5cGVJbmZvIH0gZnJvbSAnLi4vbW9kZWwudHlwZXMuc2VydmljZSc7XG5pbXBvcnQgeyB0eXBlIE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRGJ4TG9hZGluZ0NvbXBvbmVudCB9IGZyb20gJ0BkZXJlZWtiL2RieC13ZWInO1xuaW1wb3J0IHsgZGJ4RmlyZWJhc2VNb2RlbEVudGl0eVdpZGdldEluamVjdGlvbkNvbmZpZ0ZhY3RvcnkgfSBmcm9tICcuL21vZGVsLmVudGl0aWVzLndpZGdldCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RieC1maXJlYmFzZS1tb2RlbC1lbnRpdGllcy1lbnRpdHknLFxuICB0ZW1wbGF0ZVVybDogJy4vbW9kZWwuZW50aXRpZXMuZW50aXR5LmNvbXBvbmVudC5odG1sJyxcbiAgaW1wb3J0czogW0RieEluamVjdGlvbkNvbXBvbmVudCwgRGJ4TG9hZGluZ0NvbXBvbmVudCwgTWF0RXhwYW5zaW9uUGFuZWwsIE1hdEV4cGFuc2lvblBhbmVsSGVhZGVyLCBNYXRFeHBhbnNpb25QYW5lbFRpdGxlLCBNYXRFeHBhbnNpb25QYW5lbERlc2NyaXB0aW9uLCBNYXRFeHBhbnNpb25QYW5lbENvbnRlbnQsIE1hdEljb24sIEFzeW5jUGlwZV0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlTW9kZWxFbnRpdGllc0VudGl0eUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHJlYWRvbmx5IHdpZGdldEluamVjdGlvbkNvbmZpZ0ZhY3RvcnkgPSBkYnhGaXJlYmFzZU1vZGVsRW50aXR5V2lkZ2V0SW5qZWN0aW9uQ29uZmlnRmFjdG9yeSgpO1xuXG4gIHJlYWRvbmx5IGVudGl0aWVzV2lkZ2V0U2VydmljZSA9IGluamVjdChEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNXaWRnZXRTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgZGJ4RmlyZWJhc2VNb2RlbFR5cGVzU2VydmljZSA9IGluamVjdChEYnhGaXJlYmFzZU1vZGVsVHlwZXNTZXJ2aWNlKTtcblxuICByZWFkb25seSBlbnRpdHkgPSBpbnB1dC5yZXF1aXJlZDxEYnhGaXJlYmFzZU1vZGVsRW50aXR5PigpO1xuXG4gIHJlYWRvbmx5IGVudGl0eSQgPSB0b09ic2VydmFibGUodGhpcy5lbnRpdHkpO1xuICByZWFkb25seSBjdXJyZW50RW50aXR5V2l0aFN0b3JlJCA9IHRoaXMuZW50aXR5JC5waXBlKFxuICAgIG1hcCgoeCkgPT4ge1xuICAgICAgbGV0IHJlc3VsdDogTWF5YmU8RGJ4RmlyZWJhc2VNb2RlbEVudGl0eVdpdGhTdG9yZT47XG5cbiAgICAgIGlmIChpc0RieEZpcmViYXNlTW9kZWxFbnRpdHlXaXRoU3RvcmUoeCkpIHtcbiAgICAgICAgcmVzdWx0ID0geDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdCA9IG51bGw7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IG1vZGVsSWRlbnRpdHkkID0gdGhpcy5lbnRpdHkkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4Lm1vZGVsSWRlbnRpdHkpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBzdG9yZSQgPSB0aGlzLmVudGl0eSQucGlwZShcbiAgICBtYXAoKHgpID0+IHguc3RvcmUpLFxuICAgIGZpbHRlck1heWJlKCksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGxvYWRpbmdTdGF0ZSQgPSB0aGlzLnN0b3JlJC5waXBlKHN3aXRjaE1hcCgoeCkgPT4geC5kYXRhTG9hZGluZ1N0YXRlJCkpO1xuICByZWFkb25seSBjdXJyZW50RGF0YSQgPSB0aGlzLnN0b3JlJC5waXBlKFxuICAgIHN3aXRjaE1hcCgoeCkgPT4geC5jdXJyZW50RGF0YSQpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgY3VycmVudFdpZGdldEVudHJ5JCA9IHRoaXMubW9kZWxJZGVudGl0eSQucGlwZShcbiAgICBtYXAoKG1vZGVsSWRlbnRpdHkpID0+IHRoaXMuZW50aXRpZXNXaWRnZXRTZXJ2aWNlLmdldFdpZGdldEVudHJ5KG1vZGVsSWRlbnRpdHkpKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgY3VycmVudFR5cGVJbmZvJDogT2JzZXJ2YWJsZTxNYXliZTxEYnhGaXJlYmFzZU1vZGVsVHlwZUluZm8+PiA9IHRoaXMubW9kZWxJZGVudGl0eSQucGlwZShcbiAgICBzd2l0Y2hNYXAoKG1vZGVsSWRlbnRpdHkpID0+IHRoaXMuZGJ4RmlyZWJhc2VNb2RlbFR5cGVzU2VydmljZS5jdXJyZW50SW5mb0ZvclR5cGUobW9kZWxJZGVudGl0eS5tb2RlbFR5cGUpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGhhc1R5cGVJbmZvJCA9IHRoaXMuY3VycmVudFR5cGVJbmZvJC5waXBlKFxuICAgIG1hcCgoeCkgPT4gISF4KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgZGlzcGxheUluZm8kOiBPYnNlcnZhYmxlPERieEZpcmViYXNlTW9kZWxEaXNwbGF5SW5mbz4gPSBjb21iaW5lTGF0ZXN0KFt0aGlzLm1vZGVsSWRlbnRpdHkkLCB0aGlzLmN1cnJlbnRUeXBlSW5mbyQsIHRoaXMuY3VycmVudERhdGEkXSkucGlwZShcbiAgICBtYXAoKFttb2RlbElkZW50aXR5LCB0eXBlSW5mbywgY3VycmVudERhdGFdKSA9PiB7XG4gICAgICBsZXQgcmVzdWx0OiBEYnhGaXJlYmFzZU1vZGVsRGlzcGxheUluZm87XG5cbiAgICAgIGlmICh0eXBlSW5mbykge1xuICAgICAgICBpZiAoY3VycmVudERhdGEpIHtcbiAgICAgICAgICByZXN1bHQgPSB0eXBlSW5mby5kaXNwbGF5SW5mb0ZhY3RvcnkoY3VycmVudERhdGEpO1xuXG4gICAgICAgICAgaWYgKCFyZXN1bHQudGl0bGUpIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IHsgLi4ucmVzdWx0LCB0aXRsZTogYE5vIE5hbWUgLSA8JHttb2RlbElkZW50aXR5Lm1vZGVsVHlwZX0+YCB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXN1bHQgPSB7IGljb246IHR5cGVJbmZvLmljb24sIHRpdGxlOiBgTm8gRGF0YSAtIDwke21vZGVsSWRlbnRpdHkubW9kZWxUeXBlfT5gIH07XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdCA9IHsgaWNvbjogJ3dhcm5pbmcnLCB0aXRsZTogYE5vIFR5cGUgSW5mbyAtIDwke21vZGVsSWRlbnRpdHkubW9kZWxUeXBlfT5gIH07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSB3aWRnZXRJbmplY3Rpb25Db25maWckID0gY29tYmluZUxhdGVzdChbdGhpcy5jdXJyZW50V2lkZ2V0RW50cnkkLCB0aGlzLmN1cnJlbnRFbnRpdHlXaXRoU3RvcmUkXSkucGlwZShcbiAgICBtYXAoKFtlbnRyeSwgZW50aXR5XSkgPT4gKGVudGl0eSA/IHRoaXMud2lkZ2V0SW5qZWN0aW9uQ29uZmlnRmFjdG9yeShlbnRyeSwgZW50aXR5KSA6IG51bGwpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGhhc1R5cGVJbmZvU2lnbmFsID0gdG9TaWduYWwodGhpcy5oYXNUeXBlSW5mbyQpO1xuICByZWFkb25seSBkaXNwbGF5SW5mb1NpZ25hbCA9IHRvU2lnbmFsKHRoaXMuZGlzcGxheUluZm8kKTtcblxuICByZWFkb25seSB3aWRnZXRJbmplY3Rpb25Db25maWdTaWduYWwgPSB0b1NpZ25hbCh0aGlzLndpZGdldEluamVjdGlvbkNvbmZpZyQpO1xuXG4gIHJlYWRvbmx5IGVudGl0eVdpZGdldENvbmZpZ1NpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHRoaXMud2lkZ2V0SW5qZWN0aW9uQ29uZmlnU2lnbmFsKCk/LmVudGl0eUNvbXBvbmVudENvbmZpZyk7XG4gIHJlYWRvbmx5IGNvbW1vbldpZGdldENvbmZpZ1NpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHRoaXMud2lkZ2V0SW5qZWN0aW9uQ29uZmlnU2lnbmFsKCk/LmNvbW1vbkNvbXBvbmVudENvbmZpZyk7XG4gIHJlYWRvbmx5IGRlYnVnV2lkZ2V0Q29uZmlnU2lnbmFsID0gY29tcHV0ZWQoKCkgPT4gdGhpcy53aWRnZXRJbmplY3Rpb25Db25maWdTaWduYWwoKT8uZGVidWdDb21wb25lbnRDb25maWcpO1xuXG4gIHJlYWRvbmx5IGxvYWRpbmdDb250ZXh0ID0gbG9hZGluZ1N0YXRlQ29udGV4dCh7IG9iczogdGhpcy5sb2FkaW5nU3RhdGUkIH0pO1xuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMubG9hZGluZ0NvbnRleHQuZGVzdHJveSgpO1xuICB9XG59XG4iLCI8bWF0LWV4cGFuc2lvbi1wYW5lbD5cbiAgPG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxuICAgIDxtYXQtcGFuZWwtdGl0bGU+XG4gICAgICBAaWYgKGRpc3BsYXlJbmZvU2lnbmFsKCk7IGFzIGRpc3BsYXlJbmZvKSB7XG4gICAgICAgIEBpZiAoZGlzcGxheUluZm8uaWNvbikge1xuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImRieC1idXR0b24tc3BhY2VyXCI+e3sgZGlzcGxheUluZm8uaWNvbiB9fTwvbWF0LWljb24+XG4gICAgICAgIH1cbiAgICAgICAgPHNwYW4+e3sgZGlzcGxheUluZm8udGl0bGUgfX08L3NwYW4+XG4gICAgICB9XG4gICAgPC9tYXQtcGFuZWwtdGl0bGU+XG4gIDwvbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XG4gIDxuZy10ZW1wbGF0ZSBtYXRFeHBhbnNpb25QYW5lbENvbnRlbnQ+XG4gICAgPGRpdiBjbGFzcz1cImRieC1maXJlYmFzZS1tb2RlbC1lbnRpdGllcy1lbnRpdHktcGFuZWwtY29udGVudFwiPlxuICAgICAgPGRieC1sb2FkaW5nIFtjb250ZXh0XT1cImxvYWRpbmdDb250ZXh0XCI+XG4gICAgICAgIEBpZiAoZW50aXR5V2lkZ2V0Q29uZmlnU2lnbmFsKCk7IGFzIGNvbmZpZykge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYngtcGIzIGRieC1maXJlYmFzZS1tb2RlbC1lbnRpdGllcy1lbnRpdHktY29udGVudFwiPlxuICAgICAgICAgICAgPGRieC1pbmplY3Rpb24gW2NvbmZpZ109XCJjb25maWdcIj48L2RieC1pbmplY3Rpb24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChjb21tb25XaWRnZXRDb25maWdTaWduYWwoKTsgYXMgY29uZmlnKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRieC1wYjMgZGJ4LWZpcmViYXNlLW1vZGVsLWVudGl0aWVzLWNvbW1vbi1jb250ZW50XCI+XG4gICAgICAgICAgICA8ZGJ4LWluamVjdGlvbiBbY29uZmlnXT1cImNvbmZpZ1wiPjwvZGJ4LWluamVjdGlvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKGRlYnVnV2lkZ2V0Q29uZmlnU2lnbmFsKCk7IGFzIGNvbmZpZykge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYngtcGIzIGRieC1maXJlYmFzZS1tb2RlbC1lbnRpdGllcy1kZWJ1Zy1jb250ZW50XCI+XG4gICAgICAgICAgICA8ZGJ4LWluamVjdGlvbiBbY29uZmlnXT1cImNvbmZpZ1wiPjwvZGJ4LWluamVjdGlvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kYngtbG9hZGluZz5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbWF0LWV4cGFuc2lvbi1wYW5lbD5cbiJdfQ==
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuZW50aXRpZXMuZW50aXR5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL21vZGVsL21vZHVsZXMvbW9kZWwvZW50aXRpZXMvbW9kZWwuZW50aXRpZXMuZW50aXR5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL21vZGVsL21vZHVsZXMvbW9kZWwvZW50aXRpZXMvbW9kZWwuZW50aXRpZXMuZW50aXR5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDdkcsT0FBTyxFQUEyRCxpQ0FBaUMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzlILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxzQkFBc0IsRUFBRSw0QkFBNEIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3pLLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFjLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RixPQUFPLEVBQUUsNEJBQTRCLEVBQW1FLE1BQU0sd0JBQXdCLENBQUM7QUFFdkksT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrREFBa0QsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQVM3RixNQUFNLE9BQU8sdUNBQXVDO0lBQ3pDLDRCQUE0QixHQUFHLGtEQUFrRCxFQUFFLENBQUM7SUFFcEYscUJBQXFCLEdBQUcsTUFBTSxDQUFDLHFDQUFxQyxDQUFDLENBQUM7SUFDdEUsNEJBQTRCLEdBQUcsTUFBTSxDQUFDLDRCQUE0QixDQUFDLENBQUM7SUFFcEUsTUFBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQTBCLENBQUM7SUFFbEQsT0FBTyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ2xELEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1FBQ1IsSUFBSSxNQUE4QyxDQUFDO1FBRW5ELElBQUksaUNBQWlDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN6QyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2IsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDLENBQUMsRUFDRixvQkFBb0IsRUFBRSxFQUN0QixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztJQUVPLGNBQWMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDekMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEVBQzNCLG9CQUFvQixFQUFFLEVBQ3RCLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO0lBRU8sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNqQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFDbkIsV0FBVyxFQUFFLEVBQ2Isb0JBQW9CLEVBQUUsRUFDdEIsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7SUFFTyxhQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDdEMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQ2hDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO0lBRU8sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQ3JELEdBQUcsQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUNoRixvQkFBb0IsRUFBRSxFQUN0QixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztJQUVPLGdCQUFnQixHQUFnRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FDL0YsU0FBUyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQzNHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO0lBRU8sWUFBWSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQ2hELEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUNmLG9CQUFvQixFQUFFLEVBQ3RCLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO0lBRU8sWUFBWSxHQUE0QyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ2xKLEdBQUcsQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFLFFBQVEsRUFBRSxXQUFXLENBQUMsRUFBRSxFQUFFO1FBQzdDLElBQUksTUFBbUMsQ0FBQztRQUV4QyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ2IsSUFBSSxXQUFXLEVBQUUsQ0FBQztnQkFDaEIsTUFBTSxHQUFHLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFFbEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDbEIsTUFBTSxHQUFHLEVBQUUsR0FBRyxNQUFNLEVBQUUsS0FBSyxFQUFFLGNBQWMsYUFBYSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7Z0JBQzFFLENBQUM7WUFDSCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxHQUFHLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLGNBQWMsYUFBYSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7WUFDcEYsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxHQUFHLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsbUJBQW1CLGFBQWEsQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3JGLENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDLENBQUMsRUFDRixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztJQUVPLHNCQUFzQixHQUFHLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDNUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUM1RixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztJQUVPLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDaEQsaUJBQWlCLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNoRCxtQkFBbUIsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3BELGVBQWUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFFeEUsMkJBQTJCLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBRXBFLHdCQUF3QixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3JHLHdCQUF3QixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3JHLHVCQUF1QixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO0lBRW5HLGNBQWMsR0FBRyxtQkFBbUIsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUUzRSxXQUFXO1FBQ1QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNoQyxDQUFDO3dHQXhHVSx1Q0FBdUM7NEZBQXZDLHVDQUF1QyxvT0N0QnBELDhpREF3Q0EsNENEdEJZLHFCQUFxQiwySEFBRSxtQkFBbUIsbUtBQUUsaUJBQWlCLHNMQUFFLHVCQUF1QixrSUFBRSxzQkFBc0IsNERBQWdDLHdCQUF3QixrRkFBRSxPQUFPOzs0RkFJOUssdUNBQXVDO2tCQVBuRCxTQUFTOytCQUNFLG9DQUFvQyxXQUVyQyxDQUFDLHFCQUFxQixFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLHVCQUF1QixFQUFFLHNCQUFzQixFQUFFLDRCQUE0QixFQUFFLHdCQUF3QixFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUMsbUJBQ3BMLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIGlucHV0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERieEZpcmViYXNlTW9kZWxFbnRpdHksIERieEZpcmViYXNlTW9kZWxFbnRpdHlXaXRoU3RvcmUsIGlzRGJ4RmlyZWJhc2VNb2RlbEVudGl0eVdpdGhTdG9yZSB9IGZyb20gJy4vbW9kZWwuZW50aXRpZXMnO1xuaW1wb3J0IHsgRGJ4SW5qZWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuaW1wb3J0IHsgTWF0RXhwYW5zaW9uUGFuZWwsIE1hdEV4cGFuc2lvblBhbmVsSGVhZGVyLCBNYXRFeHBhbnNpb25QYW5lbFRpdGxlLCBNYXRFeHBhbnNpb25QYW5lbERlc2NyaXB0aW9uLCBNYXRFeHBhbnNpb25QYW5lbENvbnRlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9leHBhbnNpb24nO1xuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgdG9PYnNlcnZhYmxlLCB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIE9ic2VydmFibGUsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlck1heWJlLCBsb2FkaW5nU3RhdGVDb250ZXh0IH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNXaWRnZXRTZXJ2aWNlIH0gZnJvbSAnLi9tb2RlbC5lbnRpdGllcy53aWRnZXQuc2VydmljZSc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZU1vZGVsVHlwZXNTZXJ2aWNlLCB0eXBlIERieEZpcmViYXNlTW9kZWxEaXNwbGF5SW5mbywgdHlwZSBEYnhGaXJlYmFzZU1vZGVsVHlwZUluZm8gfSBmcm9tICcuLi9tb2RlbC50eXBlcy5zZXJ2aWNlJztcbmltcG9ydCB7IHR5cGUgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEYnhMb2FkaW5nQ29tcG9uZW50IH0gZnJvbSAnQGRlcmVla2IvZGJ4LXdlYic7XG5pbXBvcnQgeyBkYnhGaXJlYmFzZU1vZGVsRW50aXR5V2lkZ2V0SW5qZWN0aW9uQ29uZmlnRmFjdG9yeSB9IGZyb20gJy4vbW9kZWwuZW50aXRpZXMud2lkZ2V0JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGJ4LWZpcmViYXNlLW1vZGVsLWVudGl0aWVzLWVudGl0eScsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RlbC5lbnRpdGllcy5lbnRpdHkuY29tcG9uZW50Lmh0bWwnLFxuICBpbXBvcnRzOiBbRGJ4SW5qZWN0aW9uQ29tcG9uZW50LCBEYnhMb2FkaW5nQ29tcG9uZW50LCBNYXRFeHBhbnNpb25QYW5lbCwgTWF0RXhwYW5zaW9uUGFuZWxIZWFkZXIsIE1hdEV4cGFuc2lvblBhbmVsVGl0bGUsIE1hdEV4cGFuc2lvblBhbmVsRGVzY3JpcHRpb24sIE1hdEV4cGFuc2lvblBhbmVsQ29udGVudCwgTWF0SWNvbiwgQXN5bmNQaXBlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzRW50aXR5Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcmVhZG9ubHkgd2lkZ2V0SW5qZWN0aW9uQ29uZmlnRmFjdG9yeSA9IGRieEZpcmViYXNlTW9kZWxFbnRpdHlXaWRnZXRJbmplY3Rpb25Db25maWdGYWN0b3J5KCk7XG5cbiAgcmVhZG9ubHkgZW50aXRpZXNXaWRnZXRTZXJ2aWNlID0gaW5qZWN0KERieEZpcmViYXNlTW9kZWxFbnRpdGllc1dpZGdldFNlcnZpY2UpO1xuICByZWFkb25seSBkYnhGaXJlYmFzZU1vZGVsVHlwZXNTZXJ2aWNlID0gaW5qZWN0KERieEZpcmViYXNlTW9kZWxUeXBlc1NlcnZpY2UpO1xuXG4gIHJlYWRvbmx5IGVudGl0eSA9IGlucHV0LnJlcXVpcmVkPERieEZpcmViYXNlTW9kZWxFbnRpdHk+KCk7XG5cbiAgcmVhZG9ubHkgZW50aXR5JCA9IHRvT2JzZXJ2YWJsZSh0aGlzLmVudGl0eSk7XG4gIHJlYWRvbmx5IGN1cnJlbnRFbnRpdHlXaXRoU3RvcmUkID0gdGhpcy5lbnRpdHkkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB7XG4gICAgICBsZXQgcmVzdWx0OiBNYXliZTxEYnhGaXJlYmFzZU1vZGVsRW50aXR5V2l0aFN0b3JlPjtcblxuICAgICAgaWYgKGlzRGJ4RmlyZWJhc2VNb2RlbEVudGl0eVdpdGhTdG9yZSh4KSkge1xuICAgICAgICByZXN1bHQgPSB4O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0ID0gbnVsbDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgbW9kZWxJZGVudGl0eSQgPSB0aGlzLmVudGl0eSQucGlwZShcbiAgICBtYXAoKHgpID0+IHgubW9kZWxJZGVudGl0eSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IHN0b3JlJCA9IHRoaXMuZW50aXR5JC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5zdG9yZSksXG4gICAgZmlsdGVyTWF5YmUoKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgbG9hZGluZ1N0YXRlJCA9IHRoaXMuc3RvcmUkLnBpcGUoc3dpdGNoTWFwKCh4KSA9PiB4LmRhdGFMb2FkaW5nU3RhdGUkKSk7XG4gIHJlYWRvbmx5IGN1cnJlbnREYXRhJCA9IHRoaXMuc3RvcmUkLnBpcGUoXG4gICAgc3dpdGNoTWFwKCh4KSA9PiB4LmN1cnJlbnREYXRhJCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBjdXJyZW50V2lkZ2V0RW50cnkkID0gdGhpcy5tb2RlbElkZW50aXR5JC5waXBlKFxuICAgIG1hcCgobW9kZWxJZGVudGl0eSkgPT4gdGhpcy5lbnRpdGllc1dpZGdldFNlcnZpY2UuZ2V0V2lkZ2V0RW50cnkobW9kZWxJZGVudGl0eSkpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBjdXJyZW50VHlwZUluZm8kOiBPYnNlcnZhYmxlPE1heWJlPERieEZpcmViYXNlTW9kZWxUeXBlSW5mbz4+ID0gdGhpcy5tb2RlbElkZW50aXR5JC5waXBlKFxuICAgIHN3aXRjaE1hcCgobW9kZWxJZGVudGl0eSkgPT4gdGhpcy5kYnhGaXJlYmFzZU1vZGVsVHlwZXNTZXJ2aWNlLmN1cnJlbnRJbmZvRm9yVHlwZShtb2RlbElkZW50aXR5Lm1vZGVsVHlwZSkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgaGFzVHlwZUluZm8kID0gdGhpcy5jdXJyZW50VHlwZUluZm8kLnBpcGUoXG4gICAgbWFwKCh4KSA9PiAhIXgpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBkaXNwbGF5SW5mbyQ6IE9ic2VydmFibGU8RGJ4RmlyZWJhc2VNb2RlbERpc3BsYXlJbmZvPiA9IGNvbWJpbmVMYXRlc3QoW3RoaXMubW9kZWxJZGVudGl0eSQsIHRoaXMuY3VycmVudFR5cGVJbmZvJCwgdGhpcy5jdXJyZW50RGF0YSRdKS5waXBlKFxuICAgIG1hcCgoW21vZGVsSWRlbnRpdHksIHR5cGVJbmZvLCBjdXJyZW50RGF0YV0pID0+IHtcbiAgICAgIGxldCByZXN1bHQ6IERieEZpcmViYXNlTW9kZWxEaXNwbGF5SW5mbztcblxuICAgICAgaWYgKHR5cGVJbmZvKSB7XG4gICAgICAgIGlmIChjdXJyZW50RGF0YSkge1xuICAgICAgICAgIHJlc3VsdCA9IHR5cGVJbmZvLmRpc3BsYXlJbmZvRmFjdG9yeShjdXJyZW50RGF0YSk7XG5cbiAgICAgICAgICBpZiAoIXJlc3VsdC50aXRsZSkge1xuICAgICAgICAgICAgcmVzdWx0ID0geyAuLi5yZXN1bHQsIHRpdGxlOiBgTm8gTmFtZSAtIDwke21vZGVsSWRlbnRpdHkubW9kZWxUeXBlfT5gIH07XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdCA9IHsgaWNvbjogdHlwZUluZm8uaWNvbiwgdGl0bGU6IGBObyBEYXRhIC0gPCR7bW9kZWxJZGVudGl0eS5tb2RlbFR5cGV9PmAgfTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0ID0geyBpY29uOiAnd2FybmluZycsIHRpdGxlOiBgTm8gVHlwZSBJbmZvIC0gPCR7bW9kZWxJZGVudGl0eS5tb2RlbFR5cGV9PmAgfTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IHdpZGdldEluamVjdGlvbkNvbmZpZyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmN1cnJlbnRXaWRnZXRFbnRyeSQsIHRoaXMuY3VycmVudEVudGl0eVdpdGhTdG9yZSRdKS5waXBlKFxuICAgIG1hcCgoW2VudHJ5LCBlbnRpdHldKSA9PiAoZW50aXR5ID8gdGhpcy53aWRnZXRJbmplY3Rpb25Db25maWdGYWN0b3J5KGVudHJ5LCBlbnRpdHkpIDogbnVsbCkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgaGFzVHlwZUluZm9TaWduYWwgPSB0b1NpZ25hbCh0aGlzLmhhc1R5cGVJbmZvJCk7XG4gIHJlYWRvbmx5IGRpc3BsYXlJbmZvU2lnbmFsID0gdG9TaWduYWwodGhpcy5kaXNwbGF5SW5mbyQpO1xuICByZWFkb25seSBtb2RlbElkZW50aXR5U2lnbmFsID0gdG9TaWduYWwodGhpcy5tb2RlbElkZW50aXR5JCk7XG4gIHJlYWRvbmx5IG1vZGVsVHlwZVNpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHRoaXMubW9kZWxJZGVudGl0eVNpZ25hbCgpPy5tb2RlbFR5cGUpO1xuXG4gIHJlYWRvbmx5IHdpZGdldEluamVjdGlvbkNvbmZpZ1NpZ25hbCA9IHRvU2lnbmFsKHRoaXMud2lkZ2V0SW5qZWN0aW9uQ29uZmlnJCk7XG5cbiAgcmVhZG9ubHkgZW50aXR5V2lkZ2V0Q29uZmlnU2lnbmFsID0gY29tcHV0ZWQoKCkgPT4gdGhpcy53aWRnZXRJbmplY3Rpb25Db25maWdTaWduYWwoKT8uZW50aXR5Q29tcG9uZW50Q29uZmlnKTtcbiAgcmVhZG9ubHkgY29tbW9uV2lkZ2V0Q29uZmlnU2lnbmFsID0gY29tcHV0ZWQoKCkgPT4gdGhpcy53aWRnZXRJbmplY3Rpb25Db25maWdTaWduYWwoKT8uY29tbW9uQ29tcG9uZW50Q29uZmlnKTtcbiAgcmVhZG9ubHkgZGVidWdXaWRnZXRDb25maWdTaWduYWwgPSBjb21wdXRlZCgoKSA9PiB0aGlzLndpZGdldEluamVjdGlvbkNvbmZpZ1NpZ25hbCgpPy5kZWJ1Z0NvbXBvbmVudENvbmZpZyk7XG5cbiAgcmVhZG9ubHkgbG9hZGluZ0NvbnRleHQgPSBsb2FkaW5nU3RhdGVDb250ZXh0KHsgb2JzOiB0aGlzLmxvYWRpbmdTdGF0ZSQgfSk7XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkaW5nQ29udGV4dC5kZXN0cm95KCk7XG4gIH1cbn1cbiIsIjxtYXQtZXhwYW5zaW9uLXBhbmVsPlxuICA8bWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XG4gICAgPG1hdC1wYW5lbC10aXRsZT5cbiAgICAgIEBpZiAoZGlzcGxheUluZm9TaWduYWwoKTsgYXMgZGlzcGxheUluZm8pIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImRieC1saXN0LXR3by1saW5lLWl0ZW1cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1sZWZ0XCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRieC1wYjIgZGJ4LWZsZXgtYmFyXCI+XG4gICAgICAgICAgICAgIEBpZiAoZGlzcGxheUluZm8uaWNvbikge1xuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImRieC1idXR0b24tc3BhY2VyXCI+e3sgZGlzcGxheUluZm8uaWNvbiB9fTwvbWF0LWljb24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPHNwYW4+e3sgZGlzcGxheUluZm8udGl0bGUgfX08L3NwYW4+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRieC1oaW50IGRieC1zbWFsbFwiPnt7IG1vZGVsVHlwZVNpZ25hbCgpIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L21hdC1wYW5lbC10aXRsZT5cbiAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cbiAgPG5nLXRlbXBsYXRlIG1hdEV4cGFuc2lvblBhbmVsQ29udGVudD5cbiAgICA8ZGl2IGNsYXNzPVwiZGJ4LWZpcmViYXNlLW1vZGVsLWVudGl0aWVzLWVudGl0eS1wYW5lbC1jb250ZW50XCI+XG4gICAgICA8ZGJ4LWxvYWRpbmcgW2NvbnRleHRdPVwibG9hZGluZ0NvbnRleHRcIj5cbiAgICAgICAgQGlmIChlbnRpdHlXaWRnZXRDb25maWdTaWduYWwoKTsgYXMgY29uZmlnKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRieC1wYjMgZGJ4LWZpcmViYXNlLW1vZGVsLWVudGl0aWVzLWVudGl0eS1jb250ZW50XCI+XG4gICAgICAgICAgICA8ZGJ4LWluamVjdGlvbiBbY29uZmlnXT1cImNvbmZpZ1wiPjwvZGJ4LWluamVjdGlvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKGNvbW1vbldpZGdldENvbmZpZ1NpZ25hbCgpOyBhcyBjb25maWcpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGJ4LXBiMyBkYngtZmlyZWJhc2UtbW9kZWwtZW50aXRpZXMtY29tbW9uLWNvbnRlbnRcIj5cbiAgICAgICAgICAgIDxkYngtaW5qZWN0aW9uIFtjb25maWddPVwiY29uZmlnXCI+PC9kYngtaW5qZWN0aW9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoZGVidWdXaWRnZXRDb25maWdTaWduYWwoKTsgYXMgY29uZmlnKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRieC1wYjMgZGJ4LWZpcmViYXNlLW1vZGVsLWVudGl0aWVzLWRlYnVnLWNvbnRlbnRcIj5cbiAgICAgICAgICAgIDxkYngtaW5qZWN0aW9uIFtjb25maWddPVwiY29uZmlnXCI+PC9kYngtaW5qZWN0aW9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2RieC1sb2FkaW5nPlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9tYXQtZXhwYW5zaW9uLXBhbmVsPlxuIl19
@@ -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==
@@ -5,10 +5,13 @@ import * as i0 from "@angular/core";
5
5
  export const DEFAULT_DBX_FIREBASE_MODEL_ENTITIES_COMPONENT_POPOVER_KEY = 'entities';
6
6
  export class DbxFirebaseModelEntitiesPopoverComponent extends AbstractPopoverDirective {
7
7
  entities$ = this.popover.data?.entities$;
8
- static openPopover(popupService, { origin, header, icon, emptyText, entities$ }, popoverKey) {
8
+ static openPopover(popupService, config, popoverKey) {
9
+ const { origin, header, icon, emptyText, entities$, onlyShowRegisteredTypes, popoverSizingConfig } = config;
9
10
  return popupService.open({
10
11
  height: '600px',
11
12
  width: '800px',
13
+ isResizable: true,
14
+ ...popoverSizingConfig,
12
15
  key: popoverKey ?? DEFAULT_DBX_FIREBASE_MODEL_ENTITIES_COMPONENT_POPOVER_KEY,
13
16
  origin,
14
17
  componentClass: DbxFirebaseModelEntitiesPopoverComponent,
@@ -16,9 +19,9 @@ export class DbxFirebaseModelEntitiesPopoverComponent extends AbstractPopoverDir
16
19
  header,
17
20
  icon,
18
21
  emptyText,
19
- entities$
20
- },
21
- isResizable: true
22
+ entities$,
23
+ onlyShowRegisteredTypes
24
+ }
22
25
  });
23
26
  }
24
27
  get config() {
@@ -27,11 +30,12 @@ export class DbxFirebaseModelEntitiesPopoverComponent extends AbstractPopoverDir
27
30
  icon = this.config.icon ?? 'data_object';
28
31
  header = this.config.header ?? 'Entities';
29
32
  emptyText = this.config.emptyText ?? 'No entities found in current context.';
33
+ onlyShowRegisteredTypes = this.config.onlyShowRegisteredTypes;
30
34
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseModelEntitiesPopoverComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
31
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DbxFirebaseModelEntitiesPopoverComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<dbx-popover-content>\n <!-- Header -->\n <dbx-popover-header [icon]=\"icon\" [header]=\"header\"></dbx-popover-header>\n <!-- Content -->\n <dbx-popover-scroll-content>\n <dbx-firebase-model-entities [entities]=\"entities$\">\n <p empty>{{ emptyText }}</p>\n </dbx-firebase-model-entities>\n </dbx-popover-scroll-content>\n</dbx-popover-content>\n", dependencies: [{ kind: "component", type: DbxPopoverContentComponent, selector: "dbx-popover-content" }, { kind: "component", type: DbxPopoverHeaderComponent, selector: "dbx-popover-header", inputs: ["header", "icon"] }, { kind: "directive", type: DbxPopoverScrollContentDirective, selector: "dbx-popover-scroll-content,[dbxPopoverScrollContent],.dbx-popover-scroll-content" }, { kind: "component", type: DbxFirebaseModelEntitiesComponent, selector: "dbx-firebase-model-entities", inputs: ["multi", "entities"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
35
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DbxFirebaseModelEntitiesPopoverComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<dbx-popover-content>\n <!-- Header -->\n <dbx-popover-header [icon]=\"icon\" [header]=\"header\"></dbx-popover-header>\n <!-- Content -->\n <dbx-popover-scroll-content>\n <dbx-firebase-model-entities [entities]=\"entities$\" [onlyShowRegisteredTypes]=\"onlyShowRegisteredTypes\">\n <p empty>{{ emptyText }}</p>\n </dbx-firebase-model-entities>\n </dbx-popover-scroll-content>\n</dbx-popover-content>\n", dependencies: [{ kind: "component", type: DbxPopoverContentComponent, selector: "dbx-popover-content" }, { kind: "component", type: DbxPopoverHeaderComponent, selector: "dbx-popover-header", inputs: ["header", "icon"] }, { kind: "directive", type: DbxPopoverScrollContentDirective, selector: "dbx-popover-scroll-content,[dbxPopoverScrollContent],.dbx-popover-scroll-content" }, { kind: "component", type: DbxFirebaseModelEntitiesComponent, selector: "dbx-firebase-model-entities", inputs: ["multi", "onlyShowRegisteredTypes", "entities"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
32
36
  }
33
37
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseModelEntitiesPopoverComponent, decorators: [{
34
38
  type: Component,
35
- args: [{ imports: [DbxPopoverContentComponent, DbxPopoverHeaderComponent, DbxPopoverScrollContentDirective, DbxFirebaseModelEntitiesComponent, DbxListEmptyContentComponent], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<dbx-popover-content>\n <!-- Header -->\n <dbx-popover-header [icon]=\"icon\" [header]=\"header\"></dbx-popover-header>\n <!-- Content -->\n <dbx-popover-scroll-content>\n <dbx-firebase-model-entities [entities]=\"entities$\">\n <p empty>{{ emptyText }}</p>\n </dbx-firebase-model-entities>\n </dbx-popover-scroll-content>\n</dbx-popover-content>\n" }]
39
+ args: [{ imports: [DbxPopoverContentComponent, DbxPopoverHeaderComponent, DbxPopoverScrollContentDirective, DbxFirebaseModelEntitiesComponent, DbxListEmptyContentComponent], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<dbx-popover-content>\n <!-- Header -->\n <dbx-popover-header [icon]=\"icon\" [header]=\"header\"></dbx-popover-header>\n <!-- Content -->\n <dbx-popover-scroll-content>\n <dbx-firebase-model-entities [entities]=\"entities$\" [onlyShowRegisteredTypes]=\"onlyShowRegisteredTypes\">\n <p empty>{{ emptyText }}</p>\n </dbx-firebase-model-entities>\n </dbx-popover-scroll-content>\n</dbx-popover-content>\n" }]
36
40
  }] });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuZW50aXRpZXMucG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9tb2R1bGVzL21vZGVsL2VudGl0aWVzL21vZGVsLmVudGl0aWVzLnBvcG92ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kZWwvbW9kdWxlcy9tb2RlbC9lbnRpdGllcy9tb2RlbC5lbnRpdGllcy5wb3BvdmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUFFLHdCQUF3QixFQUFFLDRCQUE0QixFQUFFLDBCQUEwQixFQUFFLHlCQUF5QixFQUFpQixnQ0FBZ0MsRUFBcUIsTUFBTSxrQkFBa0IsQ0FBQztBQUNyTixPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFrQy9FLE1BQU0sQ0FBQyxNQUFNLHlEQUF5RCxHQUFHLFVBQVUsQ0FBQztBQVFwRixNQUFNLE9BQU8sd0NBQXlDLFNBQVEsd0JBQXdFO0lBQzNILFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUM7SUFFbEQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxZQUErQixFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBeUMsRUFBRSxVQUEwQjtRQUNuSyxPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUM7WUFDdkIsTUFBTSxFQUFFLE9BQU87WUFDZixLQUFLLEVBQUUsT0FBTztZQUNkLEdBQUcsRUFBRSxVQUFVLElBQUkseURBQXlEO1lBQzVFLE1BQU07WUFDTixjQUFjLEVBQUUsd0NBQXdDO1lBQ3hELElBQUksRUFBRTtnQkFDSixNQUFNO2dCQUNOLElBQUk7Z0JBQ0osU0FBUztnQkFDVCxTQUFTO2FBQ1Y7WUFDRCxXQUFXLEVBQUUsSUFBSTtTQUNsQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQTZDLENBQUM7SUFDcEUsQ0FBQztJQUVRLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxhQUFhLENBQUM7SUFDekMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxJQUFJLFVBQVUsQ0FBQztJQUMxQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLElBQUksdUNBQXVDLENBQUM7d0dBMUIzRSx3Q0FBd0M7NEZBQXhDLHdDQUF3QywrRkM3Q3JELDhXQVVBLDRDRCtCWSwwQkFBMEIsZ0VBQUUseUJBQXlCLDJGQUFFLGdDQUFnQyw2SEFBRSxpQ0FBaUM7OzRGQUl6SCx3Q0FBd0M7a0JBTnBELFNBQVM7OEJBRUMsQ0FBQywwQkFBMEIsRUFBRSx5QkFBeUIsRUFBRSxnQ0FBZ0MsRUFBRSxpQ0FBaUMsRUFBRSw0QkFBNEIsQ0FBQyxtQkFDbEosdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdQb3BvdmVyUmVmIH0gZnJvbSAnbmctb3ZlcmxheS1jb250YWluZXInO1xuaW1wb3J0IHsgQWJzdHJhY3RQb3BvdmVyRGlyZWN0aXZlLCBEYnhMaXN0RW1wdHlDb250ZW50Q29tcG9uZW50LCBEYnhQb3BvdmVyQ29udGVudENvbXBvbmVudCwgRGJ4UG9wb3ZlckhlYWRlckNvbXBvbmVudCwgRGJ4UG9wb3ZlcktleSwgRGJ4UG9wb3ZlclNjcm9sbENvbnRlbnREaXJlY3RpdmUsIERieFBvcG92ZXJTZXJ2aWNlIH0gZnJvbSAnQGRlcmVla2IvZGJ4LXdlYic7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNDb21wb25lbnQgfSBmcm9tICcuL21vZGVsLmVudGl0aWVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMb2FkaW5nU3RhdGUgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IERieEZpcmViYXNlTW9kZWxFbnRpdHkgfSBmcm9tICcuL21vZGVsLmVudGl0aWVzJztcblxuZXhwb3J0IGludGVyZmFjZSBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNQb3BvdmVyQ29uZmlnIHtcbiAgLyoqXG4gICAqIEN1c3RvbSBpY29uXG4gICAqXG4gICAqIERlZmF1bHRzIHRvIFwiaGlzdG9yeVwiXG4gICAqL1xuICByZWFkb25seSBpY29uPzogc3RyaW5nO1xuICAvKipcbiAgICogQ3VzdG9tIGhlYWRlciB0ZXh0XG4gICAqXG4gICAqIERlZmF1bHRzIHRvIFwiRW50aXRpZXNcIlxuICAgKi9cbiAgcmVhZG9ubHkgaGVhZGVyPzogc3RyaW5nO1xuICAvKipcbiAgICogQ3VzdG9tIGVtcHR5IHRleHQgd2hlbiBubyBlbnRpdGllcyBleGlzdC5cbiAgICovXG4gIHJlYWRvbmx5IGVtcHR5VGV4dD86IHN0cmluZztcbiAgLyoqXG4gICAqIE9yaWdpbiB0byBhZGQgdGhlIHBvcG92ZXIgdG8uXG4gICAqL1xuICByZWFkb25seSBvcmlnaW46IEVsZW1lbnRSZWY7XG4gIC8qKlxuICAgKiBPYnNlcnZhYmxlIG9mIGVudGl0aWVzIHRvIGRpc3BsYXkuXG4gICAqL1xuICByZWFkb25seSBlbnRpdGllcyQ6IE9ic2VydmFibGU8TG9hZGluZ1N0YXRlPERieEZpcmViYXNlTW9kZWxFbnRpdHlbXT4+O1xufVxuXG5leHBvcnQgdHlwZSBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNQb3BvdmVyQ29uZmlnV2l0aG91dE9yaWdpbiA9IE9taXQ8RGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzUG9wb3ZlckNvbmZpZywgJ29yaWdpbicgfCAnZW50aXRpZXMkJz47XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0RCWF9GSVJFQkFTRV9NT0RFTF9FTlRJVElFU19DT01QT05FTlRfUE9QT1ZFUl9LRVkgPSAnZW50aXRpZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICcuL21vZGVsLmVudGl0aWVzLnBvcG92ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBpbXBvcnRzOiBbRGJ4UG9wb3ZlckNvbnRlbnRDb21wb25lbnQsIERieFBvcG92ZXJIZWFkZXJDb21wb25lbnQsIERieFBvcG92ZXJTY3JvbGxDb250ZW50RGlyZWN0aXZlLCBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNDb21wb25lbnQsIERieExpc3RFbXB0eUNvbnRlbnRDb21wb25lbnRdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNQb3BvdmVyQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RQb3BvdmVyRGlyZWN0aXZlPHVua25vd24sIERieEZpcmViYXNlTW9kZWxFbnRpdGllc1BvcG92ZXJDb25maWc+IHtcbiAgcmVhZG9ubHkgZW50aXRpZXMkID0gdGhpcy5wb3BvdmVyLmRhdGE/LmVudGl0aWVzJDtcblxuICBzdGF0aWMgb3BlblBvcG92ZXIocG9wdXBTZXJ2aWNlOiBEYnhQb3BvdmVyU2VydmljZSwgeyBvcmlnaW4sIGhlYWRlciwgaWNvbiwgZW1wdHlUZXh0LCBlbnRpdGllcyQgfTogRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzUG9wb3ZlckNvbmZpZywgcG9wb3ZlcktleT86IERieFBvcG92ZXJLZXkpOiBOZ1BvcG92ZXJSZWYge1xuICAgIHJldHVybiBwb3B1cFNlcnZpY2Uub3Blbih7XG4gICAgICBoZWlnaHQ6ICc2MDBweCcsXG4gICAgICB3aWR0aDogJzgwMHB4JyxcbiAgICAgIGtleTogcG9wb3ZlcktleSA/PyBERUZBVUxUX0RCWF9GSVJFQkFTRV9NT0RFTF9FTlRJVElFU19DT01QT05FTlRfUE9QT1ZFUl9LRVksXG4gICAgICBvcmlnaW4sXG4gICAgICBjb21wb25lbnRDbGFzczogRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzUG9wb3ZlckNvbXBvbmVudCxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgaGVhZGVyLFxuICAgICAgICBpY29uLFxuICAgICAgICBlbXB0eVRleHQsXG4gICAgICAgIGVudGl0aWVzJFxuICAgICAgfSxcbiAgICAgIGlzUmVzaXphYmxlOiB0cnVlXG4gICAgfSk7XG4gIH1cblxuICBnZXQgY29uZmlnKCk6IERieEZpcmViYXNlTW9kZWxFbnRpdGllc1BvcG92ZXJDb25maWcge1xuICAgIHJldHVybiB0aGlzLnBvcG92ZXIuZGF0YSBhcyBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNQb3BvdmVyQ29uZmlnO1xuICB9XG5cbiAgcmVhZG9ubHkgaWNvbiA9IHRoaXMuY29uZmlnLmljb24gPz8gJ2RhdGFfb2JqZWN0JztcbiAgcmVhZG9ubHkgaGVhZGVyID0gdGhpcy5jb25maWcuaGVhZGVyID8/ICdFbnRpdGllcyc7XG4gIHJlYWRvbmx5IGVtcHR5VGV4dCA9IHRoaXMuY29uZmlnLmVtcHR5VGV4dCA/PyAnTm8gZW50aXRpZXMgZm91bmQgaW4gY3VycmVudCBjb250ZXh0Lic7XG59XG4iLCI8ZGJ4LXBvcG92ZXItY29udGVudD5cbiAgPCEtLSBIZWFkZXIgLS0+XG4gIDxkYngtcG9wb3Zlci1oZWFkZXIgW2ljb25dPVwiaWNvblwiIFtoZWFkZXJdPVwiaGVhZGVyXCI+PC9kYngtcG9wb3Zlci1oZWFkZXI+XG4gIDwhLS0gQ29udGVudCAtLT5cbiAgPGRieC1wb3BvdmVyLXNjcm9sbC1jb250ZW50PlxuICAgIDxkYngtZmlyZWJhc2UtbW9kZWwtZW50aXRpZXMgW2VudGl0aWVzXT1cImVudGl0aWVzJFwiPlxuICAgICAgPHAgZW1wdHk+e3sgZW1wdHlUZXh0IH19PC9wPlxuICAgIDwvZGJ4LWZpcmViYXNlLW1vZGVsLWVudGl0aWVzPlxuICA8L2RieC1wb3BvdmVyLXNjcm9sbC1jb250ZW50PlxuPC9kYngtcG9wb3Zlci1jb250ZW50PlxuIl19
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuZW50aXRpZXMucG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9tb2R1bGVzL21vZGVsL2VudGl0aWVzL21vZGVsLmVudGl0aWVzLnBvcG92ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kZWwvbW9kdWxlcy9tb2RlbC9lbnRpdGllcy9tb2RlbC5lbnRpdGllcy5wb3BvdmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUFFLHdCQUF3QixFQUFFLDRCQUE0QixFQUEwQiwwQkFBMEIsRUFBRSx5QkFBeUIsRUFBaUIsZ0NBQWdDLEVBQXFCLE1BQU0sa0JBQWtCLENBQUM7QUFDN08sT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBaUQvRSxNQUFNLENBQUMsTUFBTSx5REFBeUQsR0FBRyxVQUFVLENBQUM7QUFRcEYsTUFBTSxPQUFPLHdDQUF5QyxTQUFRLHdCQUF3RTtJQUMzSCxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDO0lBRWxELE1BQU0sQ0FBQyxXQUFXLENBQUMsWUFBK0IsRUFBRSxNQUE2QyxFQUFFLFVBQTBCO1FBQzNILE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLG1CQUFtQixFQUFFLEdBQUcsTUFBTSxDQUFDO1FBQzVHLE9BQU8sWUFBWSxDQUFDLElBQUksQ0FBQztZQUN2QixNQUFNLEVBQUUsT0FBTztZQUNmLEtBQUssRUFBRSxPQUFPO1lBQ2QsV0FBVyxFQUFFLElBQUk7WUFDakIsR0FBRyxtQkFBbUI7WUFDdEIsR0FBRyxFQUFFLFVBQVUsSUFBSSx5REFBeUQ7WUFDNUUsTUFBTTtZQUNOLGNBQWMsRUFBRSx3Q0FBd0M7WUFDeEQsSUFBSSxFQUFFO2dCQUNKLE1BQU07Z0JBQ04sSUFBSTtnQkFDSixTQUFTO2dCQUNULFNBQVM7Z0JBQ1QsdUJBQXVCO2FBQ3hCO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUE2QyxDQUFDO0lBQ3BFLENBQUM7SUFFUSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksYUFBYSxDQUFDO0lBQ3pDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxVQUFVLENBQUM7SUFDMUMsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxJQUFJLHVDQUF1QyxDQUFDO0lBQzdFLHVCQUF1QixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsdUJBQXVCLENBQUM7d0dBOUI1RCx3Q0FBd0M7NEZBQXhDLHdDQUF3QywrRkM1RHJELG9hQVVBLDRDRDhDWSwwQkFBMEIsZ0VBQUUseUJBQXlCLDJGQUFFLGdDQUFnQyw2SEFBRSxpQ0FBaUM7OzRGQUl6SCx3Q0FBd0M7a0JBTnBELFNBQVM7OEJBRUMsQ0FBQywwQkFBMEIsRUFBRSx5QkFBeUIsRUFBRSxnQ0FBZ0MsRUFBRSxpQ0FBaUMsRUFBRSw0QkFBNEIsQ0FBQyxtQkFDbEosdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdQb3BvdmVyUmVmIH0gZnJvbSAnbmctb3ZlcmxheS1jb250YWluZXInO1xuaW1wb3J0IHsgQWJzdHJhY3RQb3BvdmVyRGlyZWN0aXZlLCBEYnhMaXN0RW1wdHlDb250ZW50Q29tcG9uZW50LCBEYnhQb3BvdmVyQ29uZmlnU2l6aW5nLCBEYnhQb3BvdmVyQ29udGVudENvbXBvbmVudCwgRGJ4UG9wb3ZlckhlYWRlckNvbXBvbmVudCwgRGJ4UG9wb3ZlcktleSwgRGJ4UG9wb3ZlclNjcm9sbENvbnRlbnREaXJlY3RpdmUsIERieFBvcG92ZXJTZXJ2aWNlIH0gZnJvbSAnQGRlcmVla2IvZGJ4LXdlYic7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNDb21wb25lbnQgfSBmcm9tICcuL21vZGVsLmVudGl0aWVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMb2FkaW5nU3RhdGUgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IERieEZpcmViYXNlTW9kZWxFbnRpdHkgfSBmcm9tICcuL21vZGVsLmVudGl0aWVzJztcbmltcG9ydCB7IE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzUG9wb3ZlckNvbmZpZyB7XG4gIC8qKlxuICAgKiBDdXN0b20gaWNvblxuICAgKlxuICAgKiBEZWZhdWx0cyB0byBcImhpc3RvcnlcIlxuICAgKi9cbiAgcmVhZG9ubHkgaWNvbj86IHN0cmluZztcblxuICAvKipcbiAgICogQ3VzdG9tIGhlYWRlciB0ZXh0XG4gICAqXG4gICAqIERlZmF1bHRzIHRvIFwiRW50aXRpZXNcIlxuICAgKi9cbiAgcmVhZG9ubHkgaGVhZGVyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gZW1wdHkgdGV4dCB3aGVuIG5vIGVudGl0aWVzIGV4aXN0LlxuICAgKi9cbiAgcmVhZG9ubHkgZW1wdHlUZXh0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcmlnaW4gdG8gYWRkIHRoZSBwb3BvdmVyIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgb3JpZ2luOiBFbGVtZW50UmVmO1xuXG4gIC8qKlxuICAgKiBPYnNlcnZhYmxlIG9mIGVudGl0aWVzIHRvIGRpc3BsYXkuXG4gICAqL1xuICByZWFkb25seSBlbnRpdGllcyQ6IE9ic2VydmFibGU8TG9hZGluZ1N0YXRlPERieEZpcmViYXNlTW9kZWxFbnRpdHlbXT4+O1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBvbmx5IHNob3cgZW50aXRpZXMgdGhhdCBoYXZlIGEgcmVnaXN0ZXJlZCB3aWRnZXQgZW50cnkuXG4gICAqL1xuICByZWFkb25seSBvbmx5U2hvd1JlZ2lzdGVyZWRUeXBlcz86IE1heWJlPGJvb2xlYW4+O1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIHBvcG92ZXIgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IHBvcG92ZXJTaXppbmdDb25maWc/OiBNYXliZTxEYnhQb3BvdmVyQ29uZmlnU2l6aW5nPjtcbn1cblxuZXhwb3J0IHR5cGUgRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzUG9wb3ZlckNvbmZpZ1dpdGhvdXRPcmlnaW4gPSBPbWl0PERieEZpcmViYXNlTW9kZWxFbnRpdGllc1BvcG92ZXJDb25maWcsICdvcmlnaW4nIHwgJ2VudGl0aWVzJCc+O1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9EQlhfRklSRUJBU0VfTU9ERUxfRU5USVRJRVNfQ09NUE9ORU5UX1BPUE9WRVJfS0VZID0gJ2VudGl0aWVzJztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RlbC5lbnRpdGllcy5wb3BvdmVyLmNvbXBvbmVudC5odG1sJyxcbiAgaW1wb3J0czogW0RieFBvcG92ZXJDb250ZW50Q29tcG9uZW50LCBEYnhQb3BvdmVySGVhZGVyQ29tcG9uZW50LCBEYnhQb3BvdmVyU2Nyb2xsQ29udGVudERpcmVjdGl2ZSwgRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzQ29tcG9uZW50LCBEYnhMaXN0RW1wdHlDb250ZW50Q29tcG9uZW50XSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzUG9wb3ZlckNvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0UG9wb3ZlckRpcmVjdGl2ZTx1bmtub3duLCBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNQb3BvdmVyQ29uZmlnPiB7XG4gIHJlYWRvbmx5IGVudGl0aWVzJCA9IHRoaXMucG9wb3Zlci5kYXRhPy5lbnRpdGllcyQ7XG5cbiAgc3RhdGljIG9wZW5Qb3BvdmVyKHBvcHVwU2VydmljZTogRGJ4UG9wb3ZlclNlcnZpY2UsIGNvbmZpZzogRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzUG9wb3ZlckNvbmZpZywgcG9wb3ZlcktleT86IERieFBvcG92ZXJLZXkpOiBOZ1BvcG92ZXJSZWYge1xuICAgIGNvbnN0IHsgb3JpZ2luLCBoZWFkZXIsIGljb24sIGVtcHR5VGV4dCwgZW50aXRpZXMkLCBvbmx5U2hvd1JlZ2lzdGVyZWRUeXBlcywgcG9wb3ZlclNpemluZ0NvbmZpZyB9ID0gY29uZmlnO1xuICAgIHJldHVybiBwb3B1cFNlcnZpY2Uub3Blbih7XG4gICAgICBoZWlnaHQ6ICc2MDBweCcsXG4gICAgICB3aWR0aDogJzgwMHB4JyxcbiAgICAgIGlzUmVzaXphYmxlOiB0cnVlLFxuICAgICAgLi4ucG9wb3ZlclNpemluZ0NvbmZpZyxcbiAgICAgIGtleTogcG9wb3ZlcktleSA/PyBERUZBVUxUX0RCWF9GSVJFQkFTRV9NT0RFTF9FTlRJVElFU19DT01QT05FTlRfUE9QT1ZFUl9LRVksXG4gICAgICBvcmlnaW4sXG4gICAgICBjb21wb25lbnRDbGFzczogRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzUG9wb3ZlckNvbXBvbmVudCxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgaGVhZGVyLFxuICAgICAgICBpY29uLFxuICAgICAgICBlbXB0eVRleHQsXG4gICAgICAgIGVudGl0aWVzJCxcbiAgICAgICAgb25seVNob3dSZWdpc3RlcmVkVHlwZXNcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGdldCBjb25maWcoKTogRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzUG9wb3ZlckNvbmZpZyB7XG4gICAgcmV0dXJuIHRoaXMucG9wb3Zlci5kYXRhIGFzIERieEZpcmViYXNlTW9kZWxFbnRpdGllc1BvcG92ZXJDb25maWc7XG4gIH1cblxuICByZWFkb25seSBpY29uID0gdGhpcy5jb25maWcuaWNvbiA/PyAnZGF0YV9vYmplY3QnO1xuICByZWFkb25seSBoZWFkZXIgPSB0aGlzLmNvbmZpZy5oZWFkZXIgPz8gJ0VudGl0aWVzJztcbiAgcmVhZG9ubHkgZW1wdHlUZXh0ID0gdGhpcy5jb25maWcuZW1wdHlUZXh0ID8/ICdObyBlbnRpdGllcyBmb3VuZCBpbiBjdXJyZW50IGNvbnRleHQuJztcbiAgcmVhZG9ubHkgb25seVNob3dSZWdpc3RlcmVkVHlwZXMgPSB0aGlzLmNvbmZpZy5vbmx5U2hvd1JlZ2lzdGVyZWRUeXBlcztcbn1cbiIsIjxkYngtcG9wb3Zlci1jb250ZW50PlxuICA8IS0tIEhlYWRlciAtLT5cbiAgPGRieC1wb3BvdmVyLWhlYWRlciBbaWNvbl09XCJpY29uXCIgW2hlYWRlcl09XCJoZWFkZXJcIj48L2RieC1wb3BvdmVyLWhlYWRlcj5cbiAgPCEtLSBDb250ZW50IC0tPlxuICA8ZGJ4LXBvcG92ZXItc2Nyb2xsLWNvbnRlbnQ+XG4gICAgPGRieC1maXJlYmFzZS1tb2RlbC1lbnRpdGllcyBbZW50aXRpZXNdPVwiZW50aXRpZXMkXCIgW29ubHlTaG93UmVnaXN0ZXJlZFR5cGVzXT1cIm9ubHlTaG93UmVnaXN0ZXJlZFR5cGVzXCI+XG4gICAgICA8cCBlbXB0eT57eyBlbXB0eVRleHQgfX08L3A+XG4gICAgPC9kYngtZmlyZWJhc2UtbW9kZWwtZW50aXRpZXM+XG4gIDwvZGJ4LXBvcG92ZXItc2Nyb2xsLWNvbnRlbnQ+XG48L2RieC1wb3BvdmVyLWNvbnRlbnQ+XG4iXX0=
@@ -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 [showTitle]=\"false\" [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 [showTitle]=\"false\" [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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuZW50aXRpZXMud2lkZ2V0LmVudGl0eS5kZWJ1Zy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9tb2R1bGVzL21vZGVsL2VudGl0aWVzL21vZGVsLmVudGl0aWVzLndpZGdldC5lbnRpdHkuZGVidWcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kZWwvbW9kdWxlcy9tb2RlbC9lbnRpdGllcy9tb2RlbC5lbnRpdGllcy53aWRnZXQuZW50aXR5LmRlYnVnLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsK0NBQStDLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUNwSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxzQkFBc0IsRUFBRSw0QkFBNEIsRUFBRSxtQkFBbUIsRUFBdUIsTUFBTSxrQkFBa0IsQ0FBQztBQUMvSixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBRWhFOztHQUVHO0FBT0gsTUFBTSxPQUFPLDRDQUE2QyxTQUFRLCtDQUErQztJQUMvRywwREFBMEQ7SUFDakQsVUFBVSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzlDLFdBQVcsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRW5DLGFBQWEsR0FBdUMsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUN6RSxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDOUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRWhDLElBQUksT0FBbUMsQ0FBQztRQUV4QyxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNoQixNQUFNLFVBQVUsR0FBRywyQkFBMkIsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUVwRCxPQUFPLEdBQUc7Z0JBQ1IsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQ3RDLElBQUksRUFBRSxHQUFHLFVBQVUsT0FBTzthQUMzQixDQUFDO1FBQ0osQ0FBQztRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUMsQ0FBQyxDQUFDO0lBRU0sT0FBTyxHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUVyRSxXQUFXO1FBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN6QixDQUFDO3dHQTNCVSw0Q0FBNEM7NEZBQTVDLDRDQUE0QywySENuQnpELDJyQkFxQkEsNENESlksNEJBQTRCLHlGQUF1RCw0QkFBNEIsaVFBQUUsbUJBQW1COzs0RkFFbkksNENBQTRDO2tCQU54RCxTQUFTOytCQUNFLDBDQUEwQyxjQUV4QyxJQUFJLFdBQ1AsQ0FBQyw0QkFBNEIsRUFBRSwyQkFBMkIsRUFBRSxzQkFBc0IsRUFBRSw0QkFBNEIsRUFBRSxtQkFBbUIsRUFBRSxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBPbkRlc3Ryb3ksIFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3REYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNXaWRnZXREaXJlY3RpdmUgfSBmcm9tICcuL21vZGVsLmVudGl0aWVzLndpZGdldC5lbnRpdHkuYWJzdHJhY3QuZGlyZWN0aXZlJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgSnNvblBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VNb2RlbEtleUNvbXBvbmVudCB9IGZyb20gJy4uL21vZGVsLmtleS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGJ4Q2xpY2tUb0NvcHlUZXh0Q29tcG9uZW50LCBEYnhDb250ZW50UGl0RGlyZWN0aXZlLCBEYnhEb3dubG9hZFRleHRWaWV3Q29tcG9uZW50LCBEYnhMb2FkaW5nQ29tcG9uZW50LCBEb3dubG9hZFRleHRDb250ZW50IH0gZnJvbSAnQGRlcmVla2IvZGJ4LXdlYic7XG5pbXBvcnQgeyBsb2FkaW5nU3RhdGVDb250ZXh0IH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgdHdvV2F5RmxhdEZpcmVzdG9yZU1vZGVsS2V5IH0gZnJvbSAnQGRlcmVla2IvZmlyZWJhc2UnO1xuXG4vKipcbiAqIEEgZGVidWcgd2lkZ2V0IGNvbXBvbmVudCB0aGF0IGRpc3BsYXlzIGVudGl0eSBkYXRhIGFuZCBtZXRhZGF0YS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGJ4LWZpcmViYXNlLW1vZGVsLWVudGl0aWVzLWRlYnVnLXdpZGdldCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RlbC5lbnRpdGllcy53aWRnZXQuZW50aXR5LmRlYnVnLmNvbXBvbmVudC5odG1sJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0RieEZpcmViYXNlTW9kZWxLZXlDb21wb25lbnQsIERieENsaWNrVG9Db3B5VGV4dENvbXBvbmVudCwgRGJ4Q29udGVudFBpdERpcmVjdGl2ZSwgRGJ4RG93bmxvYWRUZXh0Vmlld0NvbXBvbmVudCwgRGJ4TG9hZGluZ0NvbXBvbmVudCwgSnNvblBpcGVdXG59KVxuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlTW9kZWxFbnRpdGllc0RlYnVnV2lkZ2V0Q29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3REYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNXaWRnZXREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAvLyBDb252ZXJ0IHN0b3JlIG9ic2VydmFibGVzIHRvIHNpZ25hbHMgZm9yIHRlbXBsYXRlIHVzYWdlXG4gIHJlYWRvbmx5IGN1cnJlbnRLZXkgPSB0b1NpZ25hbCh0aGlzLnN0b3JlLmN1cnJlbnRLZXkkKTtcbiAgcmVhZG9ubHkgY3VycmVudERhdGEgPSB0b1NpZ25hbCh0aGlzLmRhdGEkKTtcblxuICByZWFkb25seSBjb250ZW50U2lnbmFsOiBTaWduYWw8TWF5YmU8RG93bmxvYWRUZXh0Q29udGVudD4+ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGtleSA9IHRoaXMuY3VycmVudEtleSgpO1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLmN1cnJlbnREYXRhKCk7XG5cbiAgICBsZXQgY29udGVudDogTWF5YmU8RG93bmxvYWRUZXh0Q29udGVudD47XG5cbiAgICBpZiAoa2V5ICYmIGRhdGEpIHtcbiAgICAgIGNvbnN0IGZsYXR0ZW5LZXkgPSB0d29XYXlGbGF0RmlyZXN0b3JlTW9kZWxLZXkoa2V5KTtcblxuICAgICAgY29udGVudCA9IHtcbiAgICAgICAgY29udGVudDogSlNPTi5zdHJpbmdpZnkoZGF0YSwgbnVsbCwgMiksXG4gICAgICAgIG5hbWU6IGAke2ZsYXR0ZW5LZXl9Lmpzb25gXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBjb250ZW50O1xuICB9KTtcblxuICByZWFkb25seSBjb250ZXh0ID0gbG9hZGluZ1N0YXRlQ29udGV4dCh0aGlzLnN0b3JlLmRhdGFMb2FkaW5nU3RhdGUkKTtcblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRleHQuZGVzdHJveSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZGJ4LWZpcmViYXNlLW1vZGVsLWVudGl0aWVzLWRlYnVnLXdpZGdldFwiPlxuICA8IS0tIE1vZGVsIEtleSBTZWN0aW9uIC0tPlxuICA8ZGl2IGNsYXNzPVwiZGJ4LWRlYnVnLXNlY3Rpb25cIj5cbiAgICA8aDQ+TW9kZWwgS2V5IEluZm9ybWF0aW9uPC9oND5cbiAgICBAaWYgKGN1cnJlbnRLZXkoKTsgYXMga2V5KSB7XG4gICAgICA8ZGJ4LWZpcmViYXNlLW1vZGVsLWtleSBbbW9kZWxLZXldPVwia2V5XCI+PC9kYngtZmlyZWJhc2UtbW9kZWwta2V5PlxuICAgIH1cbiAgPC9kaXY+XG5cbiAgPCEtLSBEb2N1bWVudCBEYXRhIFNlY3Rpb24gLS0+XG4gIDxkaXYgY2xhc3M9XCJkYngtZGVidWctc2VjdGlvblwiPlxuICAgIDxoND5Eb2N1bWVudCBEYXRhPC9oND5cbiAgICA8ZGJ4LWxvYWRpbmcgW2NvbnRleHRdPVwiY29udGV4dFwiPlxuICAgICAgQGlmIChjdXJyZW50RGF0YSgpOyBhcyBkYXRhKSB7XG4gICAgICAgIDxkYngtZG93bmxvYWQtdGV4dC12aWV3IFtzaG93VGl0bGVdPVwiZmFsc2VcIiBbY29udGVudF09XCJjb250ZW50U2lnbmFsKClcIj48L2RieC1kb3dubG9hZC10ZXh0LXZpZXc+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPHAgY2xhc3M9XCJkYngtZW1wdHlcIj5ObyBkYXRhIGF2YWlsYWJsZTwvcD5cbiAgICAgIH1cbiAgICA8L2RieC1sb2FkaW5nPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19