@dereekb/dbx-firebase 12.6.16 → 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.
- package/esm2022/lib/model/modules/model/entities/model.entities.component.mjs +62 -19
- package/esm2022/lib/model/modules/model/entities/model.entities.entity.component.mjs +5 -3
- package/esm2022/lib/model/modules/model/entities/model.entities.popover.component.mjs +11 -7
- package/esm2022/lib/model/modules/model/entities/model.entities.widget.entity.debug.component.mjs +3 -3
- package/fesm2022/dereekb-dbx-firebase.mjs +73 -24
- package/fesm2022/dereekb-dbx-firebase.mjs.map +1 -1
- package/lib/model/modules/model/_model.scss +6 -0
- package/lib/model/modules/model/entities/model.entities.component.d.ts +28 -5
- package/lib/model/modules/model/entities/model.entities.entity.component.d.ts +4 -0
- package/lib/model/modules/model/entities/model.entities.popover.component.d.ts +12 -2
- package/package.json +1 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, computed, inject, 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';
|
|
7
|
-
import { filterUniqueValues, reverseCompareFn, sortByNumberFunction } from '@dereekb/util';
|
|
6
|
+
import { combineLatest, combineLatestWith, defaultIfEmpty, distinctUntilChanged, map, shareReplay, switchMap } from 'rxjs';
|
|
7
|
+
import { filterUniqueValues, reverseCompareFn, separateValues, sortByNumberFunction } from '@dereekb/util';
|
|
8
8
|
import { beginLoading, filterMaybeArray, loadingStateContext, mapLoadingStateValueWithOperator, switchMapMaybe, valueFromFinishedLoadingState } from '@dereekb/rxjs';
|
|
9
9
|
import { DbxFirebaseModelEntitiesWidgetService } from './model.entities.widget.service';
|
|
10
10
|
import * as i0 from "@angular/core";
|
|
@@ -14,33 +14,66 @@ export class DbxFirebaseModelEntitiesComponent {
|
|
|
14
14
|
* Whether the accordion should allow multiple expanded panels.
|
|
15
15
|
*/
|
|
16
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));
|
|
17
33
|
entities = input();
|
|
18
34
|
entities$ = toObservable(this.entities).pipe(switchMapMaybe(), map((x) => x ?? beginLoading()), shareReplay(1));
|
|
19
|
-
|
|
35
|
+
allEntitiesState$ = this.entities$.pipe(mapLoadingStateValueWithOperator(switchMap((entities) => {
|
|
20
36
|
const sortPriorityMap = this.entitiesWidgetService.getSortPriorityMap();
|
|
21
37
|
const entitiesWithStore = (entities ?? []).filter((x) => Boolean(x.store));
|
|
22
38
|
const entitiesWithKeys = combineLatest(entitiesWithStore.map((x) => {
|
|
23
39
|
const sortPriorityMapEntry = sortPriorityMap.get(x.modelIdentity);
|
|
24
|
-
const
|
|
40
|
+
const isRegisteredType = sortPriorityMapEntry != null;
|
|
25
41
|
const sortPriority = sortPriorityMapEntry ?? -2;
|
|
26
|
-
const obs = x.store.currentKey$.pipe(map((key) => (key ? { key, ...x, sortPriority,
|
|
42
|
+
const obs = x.store.currentKey$.pipe(map((key) => (key ? { key, ...x, sortPriority, isRegisteredType } : null)));
|
|
27
43
|
return obs;
|
|
28
44
|
}));
|
|
29
|
-
return entitiesWithKeys.pipe(filterMaybeArray(), map((entities) => {
|
|
30
|
-
|
|
31
|
-
|
|
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
|
+
}));
|
|
32
56
|
})), shareReplay(1));
|
|
33
|
-
|
|
34
|
-
|
|
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
|
+
});
|
|
35
65
|
hasNoEntitiesSignal = computed(() => !this.entitiesWithKeysSignal()?.length);
|
|
36
|
-
context = loadingStateContext({ obs: this.
|
|
66
|
+
context = loadingStateContext({ obs: this.allEntitiesState$ });
|
|
37
67
|
ngOnDestroy() {
|
|
38
68
|
this.context.destroy();
|
|
39
69
|
}
|
|
70
|
+
clickShowUnregisteredEntities() {
|
|
71
|
+
this.showUnregisteredTypesSignal.set(true);
|
|
72
|
+
}
|
|
40
73
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseModelEntitiesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
41
|
-
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: `
|
|
42
75
|
<dbx-loading [linear]="true" [context]="context">
|
|
43
|
-
<mat-accordion [multi]="multi()">
|
|
76
|
+
<mat-accordion class="dbx-firebase-model-entities-accordion" [multi]="multi()">
|
|
44
77
|
@for (entity of entitiesWithKeysSignal(); track entity.key) {
|
|
45
78
|
<dbx-firebase-model-entities-entity [entity]="entity"></dbx-firebase-model-entities-entity>
|
|
46
79
|
}
|
|
@@ -50,8 +83,13 @@ export class DbxFirebaseModelEntitiesComponent {
|
|
|
50
83
|
<ng-content select="[empty]"></ng-content>
|
|
51
84
|
</dbx-list-empty-content>
|
|
52
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
|
+
}
|
|
53
91
|
</dbx-loading>
|
|
54
|
-
`, 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 });
|
|
55
93
|
}
|
|
56
94
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseModelEntitiesComponent, decorators: [{
|
|
57
95
|
type: Component,
|
|
@@ -59,7 +97,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
59
97
|
selector: 'dbx-firebase-model-entities',
|
|
60
98
|
template: `
|
|
61
99
|
<dbx-loading [linear]="true" [context]="context">
|
|
62
|
-
<mat-accordion [multi]="multi()">
|
|
100
|
+
<mat-accordion class="dbx-firebase-model-entities-accordion" [multi]="multi()">
|
|
63
101
|
@for (entity of entitiesWithKeysSignal(); track entity.key) {
|
|
64
102
|
<dbx-firebase-model-entities-entity [entity]="entity"></dbx-firebase-model-entities-entity>
|
|
65
103
|
}
|
|
@@ -69,11 +107,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
69
107
|
<ng-content select="[empty]"></ng-content>
|
|
70
108
|
</dbx-list-empty-content>
|
|
71
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
|
+
}
|
|
72
115
|
</dbx-loading>
|
|
73
116
|
`,
|
|
74
|
-
imports: [MatAccordion, DbxLoadingComponent, DbxFirebaseModelEntitiesEntityComponent, DbxListEmptyContentComponent],
|
|
117
|
+
imports: [MatAccordion, DbxLoadingComponent, DbxFirebaseModelEntitiesEntityComponent, DbxListEmptyContentComponent, DbxIconButtonComponent],
|
|
75
118
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
76
119
|
standalone: true
|
|
77
120
|
}]
|
|
78
121
|
}] });
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuZW50aXRpZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kZWwvbW9kdWxlcy9tb2RlbC9lbnRpdGllcy9tb2RlbC5lbnRpdGllcy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUV2RyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFFLDRCQUE0QixFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckYsT0FBTyxFQUFFLHVDQUF1QyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDNUYsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxHQUFHLEVBQWMsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5RixPQUFPLEVBQUUsa0JBQWtCLEVBQVMsZ0JBQWdCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBZ0IsbUJBQW1CLEVBQUUsZ0NBQWdDLEVBQUUsY0FBYyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25MLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOztBQXNCeEYsTUFBTSxPQUFPLGlDQUFpQztJQUNuQyxxQkFBcUIsR0FBRyxNQUFNLENBQUMscUNBQXFDLENBQUMsQ0FBQztJQUUvRTs7T0FFRztJQUNNLEtBQUssR0FBRyxLQUFLLENBQVUsSUFB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bEM7Ozs7Ozs7Ozs7Ozs7R0FhVCw0REFDUyxZQUFZLCtJQUFFLG1CQUFtQixtS0FBRSx1Q0FBdUMsbUdBQUUsNEJBQTRCOzs0RkFJdkcsaUNBQWlDO2tCQXBCN0MsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsNkJBQTZCO29CQUN2QyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7R0FhVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsdUNBQXVDLEVBQUUsNEJBQTRCLENBQUM7b0JBQ25ILGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBpbnB1dCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZU1vZGVsRW50aXR5LCBEYnhGaXJlYmFzZU1vZGVsRW50aXR5V2l0aEtleUFuZFN0b3JlLCBEYnhGaXJlYmFzZU1vZGVsRW50aXR5V2l0aFN0b3JlIH0gZnJvbSAnLi9tb2RlbC5lbnRpdGllcyc7XG5pbXBvcnQgeyBNYXRBY2NvcmRpb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9leHBhbnNpb24nO1xuaW1wb3J0IHsgRGJ4TGlzdEVtcHR5Q29udGVudENvbXBvbmVudCwgRGJ4TG9hZGluZ0NvbXBvbmVudCB9IGZyb20gJ0BkZXJlZWtiL2RieC13ZWInO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzRW50aXR5Q29tcG9uZW50IH0gZnJvbSAnLi9tb2RlbC5lbnRpdGllcy5lbnRpdHkuY29tcG9uZW50JztcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSwgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBkZWZhdWx0SWZFbXB0eSwgbWFwLCBPYnNlcnZhYmxlLCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXJVbmlxdWVWYWx1ZXMsIE1heWJlLCByZXZlcnNlQ29tcGFyZUZuLCBzb3J0QnlOdW1iZXJGdW5jdGlvbiB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgYmVnaW5Mb2FkaW5nLCBmaWx0ZXJNYXliZUFycmF5LCBMb2FkaW5nU3RhdGUsIGxvYWRpbmdTdGF0ZUNvbnRleHQsIG1hcExvYWRpbmdTdGF0ZVZhbHVlV2l0aE9wZXJhdG9yLCBzd2l0Y2hNYXBNYXliZSwgdmFsdWVGcm9tRmluaXNoZWRMb2FkaW5nU3RhdGUgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IERieEZpcmViYXNlTW9kZWxFbnRpdGllc1dpZGdldFNlcnZpY2UgfSBmcm9tICcuL21vZGVsLmVudGl0aWVzLndpZGdldC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGJ4LWZpcmViYXNlLW1vZGVsLWVudGl0aWVzJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGJ4LWxvYWRpbmcgW2xpbmVhcl09XCJ0cnVlXCIgW2NvbnRleHRdPVwiY29udGV4dFwiPlxuICAgICAgPG1hdC1hY2NvcmRpb24gW211bHRpXT1cIm11bHRpKClcIj5cbiAgICAgICAgQGZvciAoZW50aXR5IG9mIGVudGl0aWVzV2l0aEtleXNTaWduYWwoKTsgdHJhY2sgZW50aXR5LmtleSkge1xuICAgICAgICAgIDxkYngtZmlyZWJhc2UtbW9kZWwtZW50aXRpZXMtZW50aXR5IFtlbnRpdHldPVwiZW50aXR5XCI+PC9kYngtZmlyZWJhc2UtbW9kZWwtZW50aXRpZXMtZW50aXR5PlxuICAgICAgICB9XG4gICAgICA8L21hdC1hY2NvcmRpb24+XG4gICAgICBAaWYgKGhhc05vRW50aXRpZXNTaWduYWwoKSkge1xuICAgICAgICA8ZGJ4LWxpc3QtZW1wdHktY29udGVudD5cbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZW1wdHldXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2RieC1saXN0LWVtcHR5LWNvbnRlbnQ+XG4gICAgICB9XG4gICAgPC9kYngtbG9hZGluZz5cbiAgYCxcbiAgaW1wb3J0czogW01hdEFjY29yZGlvbiwgRGJ4TG9hZGluZ0NvbXBvbmVudCwgRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzRW50aXR5Q29tcG9uZW50LCBEYnhMaXN0RW1wdHlDb250ZW50Q29tcG9uZW50XSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcmVhZG9ubHkgZW50aXRpZXNXaWRnZXRTZXJ2aWNlID0gaW5qZWN0KERieEZpcmViYXNlTW9kZWxFbnRpdGllc1dpZGdldFNlcnZpY2UpO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBhY2NvcmRpb24gc2hvdWxkIGFsbG93IG11bHRpcGxlIGV4cGFuZGVkIHBhbmVscy5cbiAgICovXG4gIHJlYWRvbmx5IG11bHRpID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG5cbiAgcmVhZG9ubHkgZW50aXRpZXMgPSBpbnB1dDxPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxEYnhGaXJlYmFzZU1vZGVsRW50aXR5W10+Pj4oKTtcbiAgcmVhZG9ubHkgZW50aXRpZXMkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxEYnhGaXJlYmFzZU1vZGVsRW50aXR5W10+PiA9IHRvT2JzZXJ2YWJsZSh0aGlzLmVudGl0aWVzKS5waXBlKFxuICAgIHN3aXRjaE1hcE1heWJlKCksXG4gICAgbWFwKCh4KSA9PiB4ID8/IGJlZ2luTG9hZGluZzxEYnhGaXJlYmFzZU1vZGVsRW50aXR5W10+KCkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgYWxsRW50aXRpZXNXaXRoS2V5c1N0YXRlJDogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8RGJ4RmlyZWJhc2VNb2RlbEVudGl0eVdpdGhLZXlBbmRTdG9yZVtdPj4gPSB0aGlzLmVudGl0aWVzJC5waXBlKFxuICAgIG1hcExvYWRpbmdTdGF0ZVZhbHVlV2l0aE9wZXJhdG9yKFxuICAgICAgc3dpdGNoTWFwKChlbnRpdGllcykgPT4ge1xuICAgICAgICBjb25zdCBzb3J0UHJpb3JpdHlNYXAgPSB0aGlzLmVudGl0aWVzV2lkZ2V0U2VydmljZS5nZXRTb3J0UHJpb3JpdHlNYXAoKTtcbiAgICAgICAgY29uc3QgZW50aXRpZXNXaXRoU3RvcmUgPSAoZW50aXRpZXMgPz8gW10pLmZpbHRlcigoeCkgPT4gQm9vbGVhbih4LnN0b3JlKSkgYXMgRGJ4RmlyZWJhc2VNb2RlbEVudGl0eVdpdGhTdG9yZVtdO1xuXG4gICAgICAgIGludGVyZmFjZSBEYnhGaXJlYmFzZU1vZGVsRW50aXR5V2l0aEtleUFuZFN0b3JlQW5kU29ydFByaW9yaXR5IGV4dGVuZHMgRGJ4RmlyZWJhc2VNb2RlbEVudGl0eVdpdGhLZXlBbmRTdG9yZSB7XG4gICAgICAgICAgcmVhZG9ubHkgc29ydFByaW9yaXR5OiBudW1iZXI7XG4gICAgICAgICAgcmVhZG9ubHkgaXNLbm93blR5cGU6IGJvb2xlYW47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBlbnRpdGllc1dpdGhLZXlzOiBPYnNlcnZhYmxlPE1heWJlPERieEZpcmViYXNlTW9kZWxFbnRpdHlXaXRoS2V5QW5kU3RvcmVBbmRTb3J0UHJpb3JpdHk+W10+ID0gY29tYmluZUxhdGVzdChcbiAgICAgICAgICBlbnRpdGllc1dpdGhTdG9yZS5tYXAoKHgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNvcnRQcmlvcml0eU1hcEVudHJ5ID0gc29ydFByaW9yaXR5TWFwLmdldCh4Lm1vZGVsSWRlbnRpdHkpO1xuICAgICAgICAgICAgY29uc3QgaXNLbm93blR5cGUgPSBzb3J0UHJpb3JpdHlNYXBFbnRyeSAhPSBudWxsO1xuICAgICAgICAgICAgY29uc3Qgc29ydFByaW9yaXR5ID0gc29ydFByaW9yaXR5TWFwRW50cnkgPz8gLTI7XG5cbiAgICAgICAgICAgIGNvbnN0IG9iczogT2JzZXJ2YWJsZTxNYXliZTxEYnhGaXJlYmFzZU1vZGVsRW50aXR5V2l0aEtleUFuZFN0b3JlQW5kU29ydFByaW9yaXR5Pj4gPSB4LnN0b3JlLmN1cnJlbnRLZXkkLnBpcGUobWFwKChrZXkpID0+IChrZXkgPyB7IGtleSwgLi4ueCwgc29ydFByaW9yaXR5LCBpc0tub3duVHlwZSB9IDogbnVsbCkpKTtcbiAgICAgICAgICAgIHJldHVybiBvYnM7XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gZW50aXRpZXNXaXRoS2V5cy5waXBlKFxuICAgICAgICAgIGZpbHRlck1heWJlQXJyYXkoKSxcbiAgICAgICAgICBtYXAoKGVudGl0aWVzKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZmlsdGVyVW5pcXVlVmFsdWVzKGVudGl0aWVzLCAoeCkgPT4geC5rZXkpLnNvcnQocmV2ZXJzZUNvbXBhcmVGbihzb3J0QnlOdW1iZXJGdW5jdGlvbigoeCkgPT4geC5zb3J0UHJpb3JpdHkpKSk7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgZGVmYXVsdElmRW1wdHkoW10pXG4gICAgICAgICk7XG4gICAgICB9KVxuICAgICksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBlbnRpdGllc1dpdGhLZXlzJCA9IHRoaXMuYWxsRW50aXRpZXNXaXRoS2V5c1N0YXRlJC5waXBlKHZhbHVlRnJvbUZpbmlzaGVkTG9hZGluZ1N0YXRlKCksIHNoYXJlUmVwbGF5KDEpKTtcblxuICByZWFkb25seSBlbnRpdGllc1dpdGhLZXlzU2lnbmFsID0gdG9TaWduYWwodGhpcy5lbnRpdGllc1dpdGhLZXlzJCwgeyBpbml0aWFsVmFsdWU6IFtdIH0pO1xuXG4gIHJlYWRvbmx5IGhhc05vRW50aXRpZXNTaWduYWwgPSBjb21wdXRlZCgoKSA9PiAhdGhpcy5lbnRpdGllc1dpdGhLZXlzU2lnbmFsKCk/Lmxlbmd0aCk7XG5cbiAgcmVhZG9ubHkgY29udGV4dCA9IGxvYWRpbmdTdGF0ZUNvbnRleHQoeyBvYnM6IHRoaXMuYWxsRW50aXRpZXNXaXRoS2V5c1N0YXRlJCB9KTtcblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRleHQuZGVzdHJveSgpO1xuICB9XG59XG4iXX0=
|
|
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
|
|
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
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuZW50aXRpZXMuZW50aXR5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL21vZGVsL21vZHVsZXMvbW9kZWwvZW50aXRpZXMvbW9kZWwuZW50aXRpZXMuZW50aXR5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL21vZGVsL21vZHVsZXMvbW9kZWwvZW50aXRpZXMvbW9kZWwuZW50aXRpZXMuZW50aXR5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDdkcsT0FBTyxFQUEyRCxpQ0FBaUMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzlILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxzQkFBc0IsRUFBRSw0QkFBNEIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3pLLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFjLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RixPQUFPLEVBQUUsNEJBQTRCLEVBQW1FLE1BQU0sd0JBQXdCLENBQUM7QUFFdkksT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrREFBa0QsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQVM3RixNQUFNLE9BQU8sdUNBQXVDO0lBQ3pDLDRCQUE0QixHQUFHLGtEQUFrRCxFQUFFLENBQUM7SUFFcEYscUJBQXFCLEdBQUcsTUFBTSxDQUFDLHFDQUFxQyxDQUFDLENBQUM7SUFDdEUsNEJBQTRCLEdBQUcsTUFBTSxDQUFDLDRCQUE0QixDQUFDLENBQUM7SUFFcEUsTUFBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQTBCLENBQUM7SUFFbEQsT0FBTyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ2xELEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1FBQ1IsSUFBSSxNQUE4QyxDQUFDO1FBRW5ELElBQUksaUNBQWlDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN6QyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2IsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDLENBQUMsRUFDRixvQkFBb0IsRUFBRSxFQUN0QixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztJQUVPLGNBQWMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDekMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEVBQzNCLG9CQUFvQixFQUFFLEVBQ3RCLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO0lBRU8sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNqQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFDbkIsV0FBVyxFQUFFLEVBQ2Isb0JBQW9CLEVBQUUsRUFDdEIsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7SUFFTyxhQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDdEMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQ2hDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO0lBRU8sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQ3JELEdBQUcsQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUNoRixvQkFBb0IsRUFBRSxFQUN0QixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztJQUVPLGdCQUFnQixHQUFnRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FDL0YsU0FBUyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQzNHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO0lBRU8sWUFBWSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQ2hELEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUNmLG9CQUFvQixFQUFFLEVBQ3RCLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO0lBRU8sWUFBWSxHQUE0QyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ2xKLEdBQUcsQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFLFFBQVEsRUFBRSxXQUFXLENBQUMsRUFBRSxFQUFFO1FBQzdDLElBQUksTUFBbUMsQ0FBQztRQUV4QyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ2IsSUFBSSxXQUFXLEVBQUUsQ0FBQztnQkFDaEIsTUFBTSxHQUFHLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFFbEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDbEIsTUFBTSxHQUFHLEVBQUUsR0FBRyxNQUFNLEVBQUUsS0FBSyxFQUFFLGNBQWMsYUFBYSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7Z0JBQzFFLENBQUM7WUFDSCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxHQUFHLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLGNBQWMsYUFBYSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7WUFDcEYsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxHQUFHLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsbUJBQW1CLGFBQWEsQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3JGLENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDLENBQUMsRUFDRixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztJQUVPLHNCQUFzQixHQUFHLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDNUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUM1RixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztJQUVPLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDaEQsaUJBQWlCLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUVoRCwyQkFBMkIsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFFcEUsd0JBQXdCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQywyQkFBMkIsRUFBRSxFQUFFLHFCQUFxQixDQUFDLENBQUM7SUFDckcsd0JBQXdCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQywyQkFBMkIsRUFBRSxFQUFFLHFCQUFxQixDQUFDLENBQUM7SUFDckcsdUJBQXVCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQywyQkFBMkIsRUFBRSxFQUFFLG9CQUFvQixDQUFDLENBQUM7SUFFbkcsY0FBYyxHQUFHLG1CQUFtQixDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBRTNFLFdBQVc7UUFDVCxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2hDLENBQUM7d0dBdEdVLHVDQUF1Qzs0RkFBdkMsdUNBQXVDLG9PQ3RCcEQsd3dDQWlDQSw0Q0RmWSxxQkFBcUIsMkhBQUUsbUJBQW1CLG1LQUFFLGlCQUFpQixzTEFBRSx1QkFBdUIsa0lBQUUsc0JBQXNCLDREQUFnQyx3QkFBd0Isa0ZBQUUsT0FBTzs7NEZBSTlLLHVDQUF1QztrQkFQbkQsU0FBUzsrQkFDRSxvQ0FBb0MsV0FFckMsQ0FBQyxxQkFBcUIsRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxzQkFBc0IsRUFBRSw0QkFBNEIsRUFBRSx3QkFBd0IsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLG1CQUNwTCx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBpbnB1dCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZU1vZGVsRW50aXR5LCBEYnhGaXJlYmFzZU1vZGVsRW50aXR5V2l0aFN0b3JlLCBpc0RieEZpcmViYXNlTW9kZWxFbnRpdHlXaXRoU3RvcmUgfSBmcm9tICcuL21vZGVsLmVudGl0aWVzJztcbmltcG9ydCB7IERieEluamVjdGlvbkNvbXBvbmVudCB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcbmltcG9ydCB7IE1hdEV4cGFuc2lvblBhbmVsLCBNYXRFeHBhbnNpb25QYW5lbEhlYWRlciwgTWF0RXhwYW5zaW9uUGFuZWxUaXRsZSwgTWF0RXhwYW5zaW9uUGFuZWxEZXNjcmlwdGlvbiwgTWF0RXhwYW5zaW9uUGFuZWxDb250ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZXhwYW5zaW9uJztcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSwgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBPYnNlcnZhYmxlLCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXJNYXliZSwgbG9hZGluZ1N0YXRlQ29udGV4dCB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzV2lkZ2V0U2VydmljZSB9IGZyb20gJy4vbW9kZWwuZW50aXRpZXMud2lkZ2V0LnNlcnZpY2UnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VNb2RlbFR5cGVzU2VydmljZSwgdHlwZSBEYnhGaXJlYmFzZU1vZGVsRGlzcGxheUluZm8sIHR5cGUgRGJ4RmlyZWJhc2VNb2RlbFR5cGVJbmZvIH0gZnJvbSAnLi4vbW9kZWwudHlwZXMuc2VydmljZSc7XG5pbXBvcnQgeyB0eXBlIE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRGJ4TG9hZGluZ0NvbXBvbmVudCB9IGZyb20gJ0BkZXJlZWtiL2RieC13ZWInO1xuaW1wb3J0IHsgZGJ4RmlyZWJhc2VNb2RlbEVudGl0eVdpZGdldEluamVjdGlvbkNvbmZpZ0ZhY3RvcnkgfSBmcm9tICcuL21vZGVsLmVudGl0aWVzLndpZGdldCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RieC1maXJlYmFzZS1tb2RlbC1lbnRpdGllcy1lbnRpdHknLFxuICB0ZW1wbGF0ZVVybDogJy4vbW9kZWwuZW50aXRpZXMuZW50aXR5LmNvbXBvbmVudC5odG1sJyxcbiAgaW1wb3J0czogW0RieEluamVjdGlvbkNvbXBvbmVudCwgRGJ4TG9hZGluZ0NvbXBvbmVudCwgTWF0RXhwYW5zaW9uUGFuZWwsIE1hdEV4cGFuc2lvblBhbmVsSGVhZGVyLCBNYXRFeHBhbnNpb25QYW5lbFRpdGxlLCBNYXRFeHBhbnNpb25QYW5lbERlc2NyaXB0aW9uLCBNYXRFeHBhbnNpb25QYW5lbENvbnRlbnQsIE1hdEljb24sIEFzeW5jUGlwZV0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlTW9kZWxFbnRpdGllc0VudGl0eUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHJlYWRvbmx5IHdpZGdldEluamVjdGlvbkNvbmZpZ0ZhY3RvcnkgPSBkYnhGaXJlYmFzZU1vZGVsRW50aXR5V2lkZ2V0SW5qZWN0aW9uQ29uZmlnRmFjdG9yeSgpO1xuXG4gIHJlYWRvbmx5IGVudGl0aWVzV2lkZ2V0U2VydmljZSA9IGluamVjdChEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNXaWRnZXRTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgZGJ4RmlyZWJhc2VNb2RlbFR5cGVzU2VydmljZSA9IGluamVjdChEYnhGaXJlYmFzZU1vZGVsVHlwZXNTZXJ2aWNlKTtcblxuICByZWFkb25seSBlbnRpdHkgPSBpbnB1dC5yZXF1aXJlZDxEYnhGaXJlYmFzZU1vZGVsRW50aXR5PigpO1xuXG4gIHJlYWRvbmx5IGVudGl0eSQgPSB0b09ic2VydmFibGUodGhpcy5lbnRpdHkpO1xuICByZWFkb25seSBjdXJyZW50RW50aXR5V2l0aFN0b3JlJCA9IHRoaXMuZW50aXR5JC5waXBlKFxuICAgIG1hcCgoeCkgPT4ge1xuICAgICAgbGV0IHJlc3VsdDogTWF5YmU8RGJ4RmlyZWJhc2VNb2RlbEVudGl0eVdpdGhTdG9yZT47XG5cbiAgICAgIGlmIChpc0RieEZpcmViYXNlTW9kZWxFbnRpdHlXaXRoU3RvcmUoeCkpIHtcbiAgICAgICAgcmVzdWx0ID0geDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdCA9IG51bGw7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IG1vZGVsSWRlbnRpdHkkID0gdGhpcy5lbnRpdHkkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4Lm1vZGVsSWRlbnRpdHkpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBzdG9yZSQgPSB0aGlzLmVudGl0eSQucGlwZShcbiAgICBtYXAoKHgpID0+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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuZW50aXRpZXMuZW50aXR5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL21vZGVsL21vZHVsZXMvbW9kZWwvZW50aXRpZXMvbW9kZWwuZW50aXRpZXMuZW50aXR5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL21vZGVsL21vZHVsZXMvbW9kZWwvZW50aXRpZXMvbW9kZWwuZW50aXRpZXMuZW50aXR5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDdkcsT0FBTyxFQUEyRCxpQ0FBaUMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzlILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxzQkFBc0IsRUFBRSw0QkFBNEIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3pLLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFjLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztB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Q0EsNENEdEJZLHFCQUFxQiwySEFBRSxtQkFBbUIsbUtBQUUsaUJBQWlCLHNMQUFFLHVCQUF1QixrSUFBRSxzQkFBc0IsNERBQWdDLHdCQUF3QixrRkFBRSxPQUFPOzs0RkFJOUssdUNBQXVDO2tCQVBuRCxTQUFTOytCQUNFLG9DQUFvQyxXQUVyQyxDQUFDLHFCQUFxQixFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLHVCQUF1QixFQUFFLHNCQUFzQixFQUFFLDRCQUE0QixFQUFFLHdCQUF3QixFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUMsbUJBQ3BMLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIGlucHV0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERieEZpcmViYXNlTW9kZWxFbnRpdHksIERieEZpcmViYXNlTW9kZWxFbnRpdHlXaXRoU3RvcmUsIGlzRGJ4RmlyZWJhc2VNb2RlbEVudGl0eVdpdGhTdG9yZSB9IGZyb20gJy4vbW9kZWwuZW50aXRpZXMnO1xuaW1wb3J0IHsgRGJ4SW5qZWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuaW1wb3J0IHsgTWF0RXhwYW5zaW9uUGFuZWwsIE1hdEV4cGFuc2lvblBhbmVsSGVhZGVyLCBNYXRFeHBhbnNpb25QYW5lbFRpdGxlLCBNYXRFeHBhbnNpb25QYW5lbERlc2NyaXB0aW9uLCBNYXRFeHBhbnNpb25QYW5lbENvbnRlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9leHBhbnNpb24nO1xuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgdG9PYnNlcnZhYmxlLCB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIE9ic2VydmFibGUsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlck1heWJlLCBsb2FkaW5nU3RhdGVDb250ZXh0IH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNXaWRnZXRTZXJ2aWNlIH0gZnJvbSAnLi9tb2RlbC5lbnRpdGllcy53aWRnZXQuc2VydmljZSc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZU1vZGVsVHlwZXNTZXJ2aWNlLCB0eXBlIERieEZpcmViYXNlTW9kZWxEaXNwbGF5SW5mbywgdHlwZSBEYnhGaXJlYmFzZU1vZGVsVHlwZUluZm8gfSBmcm9tICcuLi9tb2RlbC50eXBlcy5zZXJ2aWNlJztcbmltcG9ydCB7IHR5cGUgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEYnhMb2FkaW5nQ29tcG9uZW50IH0gZnJvbSAnQGRlcmVla2IvZGJ4LXdlYic7XG5pbXBvcnQgeyBkYnhGaXJlYmFzZU1vZGVsRW50aXR5V2lkZ2V0SW5qZWN0aW9uQ29uZmlnRmFjdG9yeSB9IGZyb20gJy4vbW9kZWwuZW50aXRpZXMud2lkZ2V0JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGJ4LWZpcmViYXNlLW1vZGVsLWVudGl0aWVzLWVudGl0eScsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RlbC5lbnRpdGllcy5lbnRpdHkuY29tcG9uZW50Lmh0bWwnLFxuICBpbXBvcnRzOiBbRGJ4SW5qZWN0aW9uQ29tcG9uZW50LCBEYnhMb2FkaW5nQ29tcG9uZW50LCBNYXRFeHBhbnNpb25QYW5lbCwgTWF0RXhwYW5zaW9uUGFuZWxIZWFkZXIsIE1hdEV4cGFuc2lvblBhbmVsVGl0bGUsIE1hdEV4cGFuc2lvblBhbmVsRGVzY3JpcHRpb24sIE1hdEV4cGFuc2lvblBhbmVsQ29udGVudCwgTWF0SWNvbiwgQXN5bmNQaXBlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzRW50aXR5Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcmVhZG9ubHkgd2lkZ2V0SW5qZWN0aW9uQ29uZmlnRmFjdG9yeSA9IGRieEZpcmViYXNlTW9kZWxFbnRpdHlXaWRnZXRJbmplY3Rpb25Db25maWdGYWN0b3J5KCk7XG5cbiAgcmVhZG9ubHkgZW50aXRpZXNXaWRnZXRTZXJ2aWNlID0gaW5qZWN0KERieEZpcmViYXNlTW9kZWxFbnRpdGllc1dpZGdldFNlcnZpY2UpO1xuICByZWFkb25seSBkYnhGaXJlYmFzZU1vZGVsVHlwZXNTZXJ2aWNlID0gaW5qZWN0KERieEZpcmViYXNlTW9kZWxUeXBlc1NlcnZpY2UpO1xuXG4gIHJlYWRvbmx5IGVudGl0eSA9IGlucHV0LnJlcXVpcmVkPERieEZpcmViYXNlTW9kZWxFbnRpdHk+KCk7XG5cbiAgcmVhZG9ubHkgZW50aXR5JCA9IHRvT2JzZXJ2YWJsZSh0aGlzLmVudGl0eSk7XG4gIHJlYWRvbmx5IGN1cnJlbnRFbnRpdHlXaXRoU3RvcmUkID0gdGhpcy5lbnRpdHkkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB7XG4gICAgICBsZXQgcmVzdWx0OiBNYXliZTxEYnhGaXJlYmFzZU1vZGVsRW50aXR5V2l0aFN0b3JlPjtcblxuICAgICAgaWYgKGlzRGJ4RmlyZWJhc2VNb2RlbEVudGl0eVdpdGhTdG9yZSh4KSkge1xuICAgICAgICByZXN1bHQgPSB4O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0ID0gbnVsbDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgbW9kZWxJZGVudGl0eSQgPSB0aGlzLmVudGl0eSQucGlwZShcbiAgICBtYXAoKHgpID0+IHgubW9kZWxJZGVudGl0eSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IHN0b3JlJCA9IHRoaXMuZW50aXR5JC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5zdG9yZSksXG4gICAgZmlsdGVyTWF5YmUoKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgbG9hZGluZ1N0YXRlJCA9IHRoaXMuc3RvcmUkLnBpcGUoc3dpdGNoTWFwKCh4KSA9PiB4LmRhdGFMb2FkaW5nU3RhdGUkKSk7XG4gIHJlYWRvbmx5IGN1cnJlbnREYXRhJCA9IHRoaXMuc3RvcmUkLnBpcGUoXG4gICAgc3dpdGNoTWFwKCh4KSA9PiB4LmN1cnJlbnREYXRhJCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBjdXJyZW50V2lkZ2V0RW50cnkkID0gdGhpcy5tb2RlbElkZW50aXR5JC5waXBlKFxuICAgIG1hcCgobW9kZWxJZGVudGl0eSkgPT4gdGhpcy5lbnRpdGllc1dpZGdldFNlcnZpY2UuZ2V0V2lkZ2V0RW50cnkobW9kZWxJZGVudGl0eSkpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBjdXJyZW50VHlwZUluZm8kOiBPYnNlcnZhYmxlPE1heWJlPERieEZpcmViYXNlTW9kZWxUeXBlSW5mbz4+ID0gdGhpcy5tb2RlbElkZW50aXR5JC5waXBlKFxuICAgIHN3aXRjaE1hcCgobW9kZWxJZGVudGl0eSkgPT4gdGhpcy5kYnhGaXJlYmFzZU1vZGVsVHlwZXNTZXJ2aWNlLmN1cnJlbnRJbmZvRm9yVHlwZShtb2RlbElkZW50aXR5Lm1vZGVsVHlwZSkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgaGFzVHlwZUluZm8kID0gdGhpcy5jdXJyZW50VHlwZUluZm8kLnBpcGUoXG4gICAgbWFwKCh4KSA9PiAhIXgpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBkaXNwbGF5SW5mbyQ6IE9ic2VydmFibGU8RGJ4RmlyZWJhc2VNb2RlbERpc3BsYXlJbmZvPiA9IGNvbWJpbmVMYXRlc3QoW3RoaXMubW9kZWxJZGVudGl0eSQsIHRoaXMuY3VycmVudFR5cGVJbmZvJCwgdGhpcy5jdXJyZW50RGF0YSRdKS5waXBlKFxuICAgIG1hcCgoW21vZGVsSWRlbnRpdHksIHR5cGVJbmZvLCBjdXJyZW50RGF0YV0pID0+IHtcbiAgICAgIGxldCByZXN1bHQ6IERieEZpcmViYXNlTW9kZWxEaXNwbGF5SW5mbztcblxuICAgICAgaWYgKHR5cGVJbmZvKSB7XG4gICAgICAgIGlmIChjdXJyZW50RGF0YSkge1xuICAgICAgICAgIHJlc3VsdCA9IHR5cGVJbmZvLmRpc3BsYXlJbmZvRmFjdG9yeShjdXJyZW50RGF0YSk7XG5cbiAgICAgICAgICBpZiAoIXJlc3VsdC50aXRsZSkge1xuICAgICAgICAgICAgcmVzdWx0ID0geyAuLi5yZXN1bHQsIHRpdGxlOiBgTm8gTmFtZSAtIDwke21vZGVsSWRlbnRpdHkubW9kZWxUeXBlfT5gIH07XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdCA9IHsgaWNvbjogdHlwZUluZm8uaWNvbiwgdGl0bGU6IGBObyBEYXRhIC0gPCR7bW9kZWxJZGVudGl0eS5tb2RlbFR5cGV9PmAgfTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0ID0geyBpY29uOiAnd2FybmluZycsIHRpdGxlOiBgTm8gVHlwZSBJbmZvIC0gPCR7bW9kZWxJZGVudGl0eS5tb2RlbFR5cGV9PmAgfTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IHdpZGdldEluamVjdGlvbkNvbmZpZyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmN1cnJlbnRXaWRnZXRFbnRyeSQsIHRoaXMuY3VycmVudEVudGl0eVdpdGhTdG9yZSRdKS5waXBlKFxuICAgIG1hcCgoW2VudHJ5LCBlbnRpdHldKSA9PiAoZW50aXR5ID8gdGhpcy53aWRnZXRJbmplY3Rpb25Db25maWdGYWN0b3J5KGVudHJ5LCBlbnRpdHkpIDogbnVsbCkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgaGFzVHlwZUluZm9TaWduYWwgPSB0b1NpZ25hbCh0aGlzLmhhc1R5cGVJbmZvJCk7XG4gIHJlYWRvbmx5IGRpc3BsYXlJbmZvU2lnbmFsID0gdG9TaWduYWwodGhpcy5kaXNwbGF5SW5mbyQpO1xuICByZWFkb25seSBtb2RlbElkZW50aXR5U2lnbmFsID0gdG9TaWduYWwodGhpcy5tb2RlbElkZW50aXR5JCk7XG4gIHJlYWRvbmx5IG1vZGVsVHlwZVNpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHRoaXMubW9kZWxJZGVudGl0eVNpZ25hbCgpPy5tb2RlbFR5cGUpO1xuXG4gIHJlYWRvbmx5IHdpZGdldEluamVjdGlvbkNvbmZpZ1NpZ25hbCA9IHRvU2lnbmFsKHRoaXMud2lkZ2V0SW5qZWN0aW9uQ29uZmlnJCk7XG5cbiAgcmVhZG9ubHkgZW50aXR5V2lkZ2V0Q29uZmlnU2lnbmFsID0gY29tcHV0ZWQoKCkgPT4gdGhpcy53aWRnZXRJbmplY3Rpb25Db25maWdTaWduYWwoKT8uZW50aXR5Q29tcG9uZW50Q29uZmlnKTtcbiAgcmVhZG9ubHkgY29tbW9uV2lkZ2V0Q29uZmlnU2lnbmFsID0gY29tcHV0ZWQoKCkgPT4gdGhpcy53aWRnZXRJbmplY3Rpb25Db25maWdTaWduYWwoKT8uY29tbW9uQ29tcG9uZW50Q29uZmlnKTtcbiAgcmVhZG9ubHkgZGVidWdXaWRnZXRDb25maWdTaWduYWwgPSBjb21wdXRlZCgoKSA9PiB0aGlzLndpZGdldEluamVjdGlvbkNvbmZpZ1NpZ25hbCgpPy5kZWJ1Z0NvbXBvbmVudENvbmZpZyk7XG5cbiAgcmVhZG9ubHkgbG9hZGluZ0NvbnRleHQgPSBsb2FkaW5nU3RhdGVDb250ZXh0KHsgb2JzOiB0aGlzLmxvYWRpbmdTdGF0ZSQgfSk7XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkaW5nQ29udGV4dC5kZXN0cm95KCk7XG4gIH1cbn1cbiIsIjxtYXQtZXhwYW5zaW9uLXBhbmVsPlxuICA8bWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XG4gICAgPG1hdC1wYW5lbC10aXRsZT5cbiAgICAgIEBpZiAoZGlzcGxheUluZm9TaWduYWwoKTsgYXMgZGlzcGxheUluZm8pIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImRieC1saXN0LXR3by1saW5lLWl0ZW1cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1sZWZ0XCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRieC1wYjIgZGJ4LWZsZXgtYmFyXCI+XG4gICAgICAgICAgICAgIEBpZiAoZGlzcGxheUluZm8uaWNvbikge1xuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImRieC1idXR0b24tc3BhY2VyXCI+e3sgZGlzcGxheUluZm8uaWNvbiB9fTwvbWF0LWljb24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPHNwYW4+e3sgZGlzcGxheUluZm8udGl0bGUgfX08L3NwYW4+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRieC1oaW50IGRieC1zbWFsbFwiPnt7IG1vZGVsVHlwZVNpZ25hbCgpIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L21hdC1wYW5lbC10aXRsZT5cbiAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cbiAgPG5nLXRlbXBsYXRlIG1hdEV4cGFuc2lvblBhbmVsQ29udGVudD5cbiAgICA8ZGl2IGNsYXNzPVwiZGJ4LWZpcmViYXNlLW1vZGVsLWVudGl0aWVzLWVudGl0eS1wYW5lbC1jb250ZW50XCI+XG4gICAgICA8ZGJ4LWxvYWRpbmcgW2NvbnRleHRdPVwibG9hZGluZ0NvbnRleHRcIj5cbiAgICAgICAgQGlmIChlbnRpdHlXaWRnZXRDb25maWdTaWduYWwoKTsgYXMgY29uZmlnKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRieC1wYjMgZGJ4LWZpcmViYXNlLW1vZGVsLWVudGl0aWVzLWVudGl0eS1jb250ZW50XCI+XG4gICAgICAgICAgICA8ZGJ4LWluamVjdGlvbiBbY29uZmlnXT1cImNvbmZpZ1wiPjwvZGJ4LWluamVjdGlvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKGNvbW1vbldpZGdldENvbmZpZ1NpZ25hbCgpOyBhcyBjb25maWcpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGJ4LXBiMyBkYngtZmlyZWJhc2UtbW9kZWwtZW50aXRpZXMtY29tbW9uLWNvbnRlbnRcIj5cbiAgICAgICAgICAgIDxkYngtaW5qZWN0aW9uIFtjb25maWddPVwiY29uZmlnXCI+PC9kYngtaW5qZWN0aW9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoZGVidWdXaWRnZXRDb25maWdTaWduYWwoKTsgYXMgY29uZmlnKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRieC1wYjMgZGJ4LWZpcmViYXNlLW1vZGVsLWVudGl0aWVzLWRlYnVnLWNvbnRlbnRcIj5cbiAgICAgICAgICAgIDxkYngtaW5qZWN0aW9uIFtjb25maWddPVwiY29uZmlnXCI+PC9kYngtaW5qZWN0aW9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2RieC1sb2FkaW5nPlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9tYXQtZXhwYW5zaW9uLXBhbmVsPlxuIl19
|
|
@@ -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,
|
|
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
|
-
|
|
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,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuZW50aXRpZXMucG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9tb2R1bGVzL21vZGVsL2VudGl0aWVzL21vZGVsLmVudGl0aWVzLnBvcG92ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kZWwvbW9kdWxlcy9tb2RlbC9lbnRpdGllcy9tb2RlbC5lbnRpdGllcy5wb3BvdmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUFFLHdCQUF3QixFQUFFLDRCQUE0QixFQUEwQiwwQkFBMEIsRUFBRSx5QkFBeUIsRUFBaUIsZ0NBQWdDLEVBQXFCLE1BQU0sa0JBQWtCLENBQUM7QUFDN08sT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBaUQvRSxNQUFNLENBQUMsTUFBTSx5REFBeUQsR0FBRyxVQUFVLENBQUM7QUFRcEYsTUFBTSxPQUFPLHdDQUF5QyxTQUFRLHdCQUF3RTtJQUMzSCxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDO0lBRWxELE1BQU0sQ0FBQyxXQUFXLENBQUMsWUFBK0IsRUFBRSxNQUE2QyxFQUFFLFVBQTBCO1FBQzNILE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLG1CQUFtQixFQUFFLEdBQUcsTUFBTSxDQUFDO1FBQzVHLE9BQU8sWUFBWSxDQUFDLElBQUksQ0FBQztZQUN2QixNQUFNLEVBQUUsT0FBTztZQUNmLEtBQUssRUFBRSxPQUFPO1lBQ2QsV0FBVyxFQUFFLElBQUk7WUFDakIsR0FBRyxtQkFBbUI7WUFDdEIsR0FBRyxFQUFFLFVBQVUsSUFBSSx5REFBeUQ7WUFDNUUsTUFBTTtZQUNOLGNBQWMsRUFBRSx3Q0FBd0M7WUFDeEQsSUFBSSxFQUFFO2dCQUNKLE1BQU07Z0JBQ04sSUFBSTtnQkFDSixTQUFTO2dCQUNULFNBQVM7Z0JBQ1QsdUJBQXVCO2FBQ3hCO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUE2QyxDQUFDO0lBQ3BFLENBQUM7SUFFUSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksYUFBYSxDQUFDO0lBQ3pDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxVQUFVLENBQUM7SUFDMUMsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxJQUFJLHVDQUF1QyxDQUFDO0lBQzdFLHVCQUF1QixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsdUJBQXVCLENBQUM7d0dBOUI1RCx3Q0FBd0M7NEZBQXhDLHdDQUF3QywrRkM1RHJELG9hQVVBLDRDRDhDWSwwQkFBMEIsZ0VBQUUseUJBQXlCLDJGQUFFLGdDQUFnQyw2SEFBRSxpQ0FBaUM7OzRGQUl6SCx3Q0FBd0M7a0JBTnBELFNBQVM7OEJBRUMsQ0FBQywwQkFBMEIsRUFBRSx5QkFBeUIsRUFBRSxnQ0FBZ0MsRUFBRSxpQ0FBaUMsRUFBRSw0QkFBNEIsQ0FBQyxtQkFDbEosdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdQb3BvdmVyUmVmIH0gZnJvbSAnbmctb3ZlcmxheS1jb250YWluZXInO1xuaW1wb3J0IHsgQWJzdHJhY3RQb3BvdmVyRGlyZWN0aXZlLCBEYnhMaXN0RW1wdHlDb250ZW50Q29tcG9uZW50LCBEYnhQb3BvdmVyQ29uZmlnU2l6aW5nLCBEYnhQb3BvdmVyQ29udGVudENvbXBvbmVudCwgRGJ4UG9wb3ZlckhlYWRlckNvbXBvbmVudCwgRGJ4UG9wb3ZlcktleSwgRGJ4UG9wb3ZlclNjcm9sbENvbnRlbnREaXJlY3RpdmUsIERieFBvcG92ZXJTZXJ2aWNlIH0gZnJvbSAnQGRlcmVla2IvZGJ4LXdlYic7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNDb21wb25lbnQgfSBmcm9tICcuL21vZGVsLmVudGl0aWVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMb2FkaW5nU3RhdGUgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IERieEZpcmViYXNlTW9kZWxFbnRpdHkgfSBmcm9tICcuL21vZGVsLmVudGl0aWVzJztcbmltcG9ydCB7IE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzUG9wb3ZlckNvbmZpZyB7XG4gIC8qKlxuICAgKiBDdXN0b20gaWNvblxuICAgKlxuICAgKiBEZWZhdWx0cyB0byBcImhpc3RvcnlcIlxuICAgKi9cbiAgcmVhZG9ubHkgaWNvbj86IHN0cmluZztcblxuICAvKipcbiAgICogQ3VzdG9tIGhlYWRlciB0ZXh0XG4gICAqXG4gICAqIERlZmF1bHRzIHRvIFwiRW50aXRpZXNcIlxuICAgKi9cbiAgcmVhZG9ubHkgaGVhZGVyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gZW1wdHkgdGV4dCB3aGVuIG5vIGVudGl0aWVzIGV4aXN0LlxuICAgKi9cbiAgcmVhZG9ubHkgZW1wdHlUZXh0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcmlnaW4gdG8gYWRkIHRoZSBwb3BvdmVyIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgb3JpZ2luOiBFbGVtZW50UmVmO1xuXG4gIC8qKlxuICAgKiBPYnNlcnZhYmxlIG9mIGVudGl0aWVzIHRvIGRpc3BsYXkuXG4gICAqL1xuICByZWFkb25seSBlbnRpdGllcyQ6IE9ic2VydmFibGU8TG9hZGluZ1N0YXRlPERieEZpcmViYXNlTW9kZWxFbnRpdHlbXT4+O1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBvbmx5IHNob3cgZW50aXRpZXMgdGhhdCBoYXZlIGEgcmVnaXN0ZXJlZCB3aWRnZXQgZW50cnkuXG4gICAqL1xuICByZWFkb25seSBvbmx5U2hvd1JlZ2lzdGVyZWRUeXBlcz86IE1heWJlPGJvb2xlYW4+O1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIHBvcG92ZXIgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IHBvcG92ZXJTaXppbmdDb25maWc/OiBNYXliZTxEYnhQb3BvdmVyQ29uZmlnU2l6aW5nPjtcbn1cblxuZXhwb3J0IHR5cGUgRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzUG9wb3ZlckNvbmZpZ1dpdGhvdXRPcmlnaW4gPSBPbWl0PERieEZpcmViYXNlTW9kZWxFbnRpdGllc1BvcG92ZXJDb25maWcsICdvcmlnaW4nIHwgJ2VudGl0aWVzJCc+O1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9EQlhfRklSRUJBU0VfTU9ERUxfRU5USVRJRVNfQ09NUE9ORU5UX1BPUE9WRVJfS0VZID0gJ2VudGl0aWVzJztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RlbC5lbnRpdGllcy5wb3BvdmVyLmNvbXBvbmVudC5odG1sJyxcbiAgaW1wb3J0czogW0RieFBvcG92ZXJDb250ZW50Q29tcG9uZW50LCBEYnhQb3BvdmVySGVhZGVyQ29tcG9uZW50LCBEYnhQb3BvdmVyU2Nyb2xsQ29udGVudERpcmVjdGl2ZSwgRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzQ29tcG9uZW50LCBEYnhMaXN0RW1wdHlDb250ZW50Q29tcG9uZW50XSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzUG9wb3ZlckNvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0UG9wb3ZlckRpcmVjdGl2ZTx1bmtub3duLCBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNQb3BvdmVyQ29uZmlnPiB7XG4gIHJlYWRvbmx5IGVudGl0aWVzJCA9IHRoaXMucG9wb3Zlci5kYXRhPy5lbnRpdGllcyQ7XG5cbiAgc3RhdGljIG9wZW5Qb3BvdmVyKHBvcHVwU2VydmljZTogRGJ4UG9wb3ZlclNlcnZpY2UsIGNvbmZpZzogRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzUG9wb3ZlckNvbmZpZywgcG9wb3ZlcktleT86IERieFBvcG92ZXJLZXkpOiBOZ1BvcG92ZXJSZWYge1xuICAgIGNvbnN0IHsgb3JpZ2luLCBoZWFkZXIsIGljb24sIGVtcHR5VGV4dCwgZW50aXRpZXMkLCBvbmx5U2hvd1JlZ2lzdGVyZWRUeXBlcywgcG9wb3ZlclNpemluZ0NvbmZpZyB9ID0gY29uZmlnO1xuICAgIHJldHVybiBwb3B1cFNlcnZpY2Uub3Blbih7XG4gICAgICBoZWlnaHQ6ICc2MDBweCcsXG4gICAgICB3aWR0aDogJzgwMHB4JyxcbiAgICAgIGlzUmVzaXphYmxlOiB0cnVlLFxuICAgICAgLi4ucG9wb3ZlclNpemluZ0NvbmZpZyxcbiAgICAgIGtleTogcG9wb3ZlcktleSA/PyBERUZBVUxUX0RCWF9GSVJFQkFTRV9NT0RFTF9FTlRJVElFU19DT01QT05FTlRfUE9QT1ZFUl9LRVksXG4gICAgICBvcmlnaW4sXG4gICAgICBjb21wb25lbnRDbGFzczogRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzUG9wb3ZlckNvbXBvbmVudCxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgaGVhZGVyLFxuICAgICAgICBpY29uLFxuICAgICAgICBlbXB0eVRleHQsXG4gICAgICAgIGVudGl0aWVzJCxcbiAgICAgICAgb25seVNob3dSZWdpc3RlcmVkVHlwZXNcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGdldCBjb25maWcoKTogRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzUG9wb3ZlckNvbmZpZyB7XG4gICAgcmV0dXJuIHRoaXMucG9wb3Zlci5kYXRhIGFzIERieEZpcmViYXNlTW9kZWxFbnRpdGllc1BvcG92ZXJDb25maWc7XG4gIH1cblxuICByZWFkb25seSBpY29uID0gdGhpcy5jb25maWcuaWNvbiA/PyAnZGF0YV9vYmplY3QnO1xuICByZWFkb25seSBoZWFkZXIgPSB0aGlzLmNvbmZpZy5oZWFkZXIgPz8gJ0VudGl0aWVzJztcbiAgcmVhZG9ubHkgZW1wdHlUZXh0ID0gdGhpcy5jb25maWcuZW1wdHlUZXh0ID8/ICdObyBlbnRpdGllcyBmb3VuZCBpbiBjdXJyZW50IGNvbnRleHQuJztcbiAgcmVhZG9ubHkgb25seVNob3dSZWdpc3RlcmVkVHlwZXMgPSB0aGlzLmNvbmZpZy5vbmx5U2hvd1JlZ2lzdGVyZWRUeXBlcztcbn1cbiIsIjxkYngtcG9wb3Zlci1jb250ZW50PlxuICA8IS0tIEhlYWRlciAtLT5cbiAgPGRieC1wb3BvdmVyLWhlYWRlciBbaWNvbl09XCJpY29uXCIgW2hlYWRlcl09XCJoZWFkZXJcIj48L2RieC1wb3BvdmVyLWhlYWRlcj5cbiAgPCEtLSBDb250ZW50IC0tPlxuICA8ZGJ4LXBvcG92ZXItc2Nyb2xsLWNvbnRlbnQ+XG4gICAgPGRieC1maXJlYmFzZS1tb2RlbC1lbnRpdGllcyBbZW50aXRpZXNdPVwiZW50aXRpZXMkXCIgW29ubHlTaG93UmVnaXN0ZXJlZFR5cGVzXT1cIm9ubHlTaG93UmVnaXN0ZXJlZFR5cGVzXCI+XG4gICAgICA8cCBlbXB0eT57eyBlbXB0eVRleHQgfX08L3A+XG4gICAgPC9kYngtZmlyZWJhc2UtbW9kZWwtZW50aXRpZXM+XG4gIDwvZGJ4LXBvcG92ZXItc2Nyb2xsLWNvbnRlbnQ+XG48L2RieC1wb3BvdmVyLWNvbnRlbnQ+XG4iXX0=
|
package/esm2022/lib/model/modules/model/entities/model.entities.widget.entity.debug.component.mjs
CHANGED
|
@@ -32,10 +32,10 @@ export class DbxFirebaseModelEntitiesDebugWidgetComponent extends AbstractDbxFir
|
|
|
32
32
|
this.context.destroy();
|
|
33
33
|
}
|
|
34
34
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseModelEntitiesDebugWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
35
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxFirebaseModelEntitiesDebugWidgetComponent, isStandalone: true, selector: "dbx-firebase-model-entities-debug-widget", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-firebase-model-entities-debug-widget\">\n <!-- Model Key Section -->\n <div class=\"dbx-debug-section\">\n <h4>Model Key Information</h4>\n @if (currentKey(); as key) {\n <dbx-firebase-model-key [modelKey]=\"key\"></dbx-firebase-model-key>\n }\n </div>\n\n <!-- Document Data Section -->\n <div class=\"dbx-debug-section\">\n <h4>Document Data</h4>\n <dbx-loading [context]=\"context\">\n @if (currentData(); as data) {\n <dbx-download-text-view [content]=\"contentSignal()\"></dbx-download-text-view>\n } @else {\n <p class=\"dbx-empty\">No data available</p>\n }\n </dbx-loading>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: DbxFirebaseModelKeyComponent, selector: "dbx-firebase-model-key", inputs: ["modelKey"] }, { kind: "component", type: DbxDownloadTextViewComponent, selector: "dbx-download-text-view", inputs: ["showDownloadButton", "loadingText", "linear", "showTitle", "showPreview", "showExpandPreviewButton", "expandPreview", "content", "contentState"], outputs: ["expandPreviewChange"] }, { kind: "component", type: DbxLoadingComponent, selector: "dbx-loading", inputs: ["padding", "show", "text", "mode", "color", "diameter", "linear", "loading", "error", "context"] }] });
|
|
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"] }] });
|
|
36
36
|
}
|
|
37
37
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseModelEntitiesDebugWidgetComponent, decorators: [{
|
|
38
38
|
type: Component,
|
|
39
|
-
args: [{ selector: 'dbx-firebase-model-entities-debug-widget', standalone: true, imports: [DbxFirebaseModelKeyComponent, DbxClickToCopyTextComponent, DbxContentPitDirective, DbxDownloadTextViewComponent, DbxLoadingComponent, JsonPipe], template: "<div class=\"dbx-firebase-model-entities-debug-widget\">\n <!-- Model Key Section -->\n <div class=\"dbx-debug-section\">\n <h4>Model Key Information</h4>\n @if (currentKey(); as key) {\n <dbx-firebase-model-key [modelKey]=\"key\"></dbx-firebase-model-key>\n }\n </div>\n\n <!-- Document Data Section -->\n <div class=\"dbx-debug-section\">\n <h4>Document Data</h4>\n <dbx-loading [context]=\"context\">\n @if (currentData(); as data) {\n <dbx-download-text-view [content]=\"contentSignal()\"></dbx-download-text-view>\n } @else {\n <p class=\"dbx-empty\">No data available</p>\n }\n </dbx-loading>\n </div>\n</div>\n" }]
|
|
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" }]
|
|
40
40
|
}] });
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuZW50aXRpZXMud2lkZ2V0LmVudGl0eS5kZWJ1Zy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9tb2R1bGVzL21vZGVsL2VudGl0aWVzL21vZGVsLmVudGl0aWVzLndpZGdldC5lbnRpdHkuZGVidWcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kZWwvbW9kdWxlcy9tb2RlbC9lbnRpdGllcy9tb2RlbC5lbnRpdGllcy53aWRnZXQuZW50aXR5LmRlYnVnLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsK0NBQStDLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUNwSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxzQkFBc0IsRUFBRSw0QkFBNEIsRUFBRSxtQkFBbUIsRUFBdUIsTUFBTSxrQkFBa0IsQ0FBQztBQUMvSixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBRWhFOztHQUVHO0FBT0gsTUFBTSxPQUFPLDRDQUE2QyxTQUFRLCtDQUErQztJQUMvRywwREFBMEQ7SUFDakQsVUFBVSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzlDLFdBQVcsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRW5DLGFBQWEsR0FBdUMsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUN6RSxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDOUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRWhDLElBQUksT0FBbUMsQ0FBQztRQUV4QyxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNoQixNQUFNLFVBQVUsR0FBRywyQkFBMkIsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUVwRCxPQUFPLEdBQUc7Z0JBQ1IsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQ3RDLElBQUksRUFBRSxHQUFHLFVBQVUsT0FBTzthQUMzQixDQUFDO1FBQ0osQ0FBQztRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUMsQ0FBQyxDQUFDO0lBRU0sT0FBTyxHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUVyRSxXQUFXO1FBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN6QixDQUFDO3dHQTNCVSw0Q0FBNEM7NEZBQTVDLDRDQUE0QywySENuQnpELDJyQkFxQkEsNENESlksNEJBQTRCLHlGQUF1RCw0QkFBNEIsaVFBQUUsbUJBQW1COzs0RkFFbkksNENBQTRDO2tCQU54RCxTQUFTOytCQUNFLDBDQUEwQyxjQUV4QyxJQUFJLFdBQ1AsQ0FBQyw0QkFBNEIsRUFBRSwyQkFBMkIsRUFBRSxzQkFBc0IsRUFBRSw0QkFBNEIsRUFBRSxtQkFBbUIsRUFBRSxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBPbkRlc3Ryb3ksIFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3REYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNXaWRnZXREaXJlY3RpdmUgfSBmcm9tICcuL21vZGVsLmVudGl0aWVzLndpZGdldC5lbnRpdHkuYWJzdHJhY3QuZGlyZWN0aXZlJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgSnNvblBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VNb2RlbEtleUNvbXBvbmVudCB9IGZyb20gJy4uL21vZGVsLmtleS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGJ4Q2xpY2tUb0NvcHlUZXh0Q29tcG9uZW50LCBEYnhDb250ZW50UGl0RGlyZWN0aXZlLCBEYnhEb3dubG9hZFRleHRWaWV3Q29tcG9uZW50LCBEYnhMb2FkaW5nQ29tcG9uZW50LCBEb3dubG9hZFRleHRDb250ZW50IH0gZnJvbSAnQGRlcmVla2IvZGJ4LXdlYic7XG5pbXBvcnQgeyBsb2FkaW5nU3RhdGVDb250ZXh0IH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgdHdvV2F5RmxhdEZpcmVzdG9yZU1vZGVsS2V5IH0gZnJvbSAnQGRlcmVla2IvZmlyZWJhc2UnO1xuXG4vKipcbiAqIEEgZGVidWcgd2lkZ2V0IGNvbXBvbmVudCB0aGF0IGRpc3BsYXlzIGVudGl0eSBkYXRhIGFuZCBtZXRhZGF0YS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGJ4LWZpcmViYXNlLW1vZGVsLWVudGl0aWVzLWRlYnVnLXdpZGdldCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RlbC5lbnRpdGllcy53aWRnZXQuZW50aXR5LmRlYnVnLmNvbXBvbmVudC5odG1sJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0RieEZpcmViYXNlTW9kZWxLZXlDb21wb25lbnQsIERieENsaWNrVG9Db3B5VGV4dENvbXBvbmVudCwgRGJ4Q29udGVudFBpdERpcmVjdGl2ZSwgRGJ4RG93bmxvYWRUZXh0Vmlld0NvbXBvbmVudCwgRGJ4TG9hZGluZ0NvbXBvbmVudCwgSnNvblBpcGVdXG59KVxuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlTW9kZWxFbnRpdGllc0RlYnVnV2lkZ2V0Q29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3REYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNXaWRnZXREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAvLyBDb252ZXJ0IHN0b3JlIG9ic2VydmFibGVzIHRvIHNpZ25hbHMgZm9yIHRlbXBsYXRlIHVzYWdlXG4gIHJlYWRvbmx5IGN1cnJlbnRLZXkgPSB0b1NpZ25hbCh0aGlzLnN0b3JlLmN1cnJlbnRLZXkkKTtcbiAgcmVhZG9ubHkgY3VycmVudERhdGEgPSB0b1NpZ25hbCh0aGlzLmRhdGEkKTtcblxuICByZWFkb25seSBjb250ZW50U2lnbmFsOiBTaWduYWw8TWF5YmU8RG93bmxvYWRUZXh0Q29udGVudD4+ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGtleSA9IHRoaXMuY3VycmVudEtleSgpO1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLmN1cnJlbnREYXRhKCk7XG5cbiAgICBsZXQgY29udGVudDogTWF5YmU8RG93bmxvYWRUZXh0Q29udGVudD47XG5cbiAgICBpZiAoa2V5ICYmIGRhdGEpIHtcbiAgICAgIGNvbnN0IGZsYXR0ZW5LZXkgPSB0d29XYXlGbGF0RmlyZXN0b3JlTW9kZWxLZXkoa2V5KTtcblxuICAgICAgY29udGVudCA9IHtcbiAgICAgICAgY29udGVudDogSlNPTi5zdHJpbmdpZnkoZGF0YSwgbnVsbCwgMiksXG4gICAgICAgIG5hbWU6IGAke2ZsYXR0ZW5LZXl9Lmpzb25gXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBjb250ZW50O1xuICB9KTtcblxuICByZWFkb25seSBjb250ZXh0ID0gbG9hZGluZ1N0YXRlQ29udGV4dCh0aGlzLnN0b3JlLmRhdGFMb2FkaW5nU3RhdGUkKTtcblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRleHQuZGVzdHJveSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZGJ4LWZpcmViYXNlLW1vZGVsLWVudGl0aWVzLWRlYnVnLXdpZGdldFwiPlxuICA8IS0tIE1vZGVsIEtleSBTZWN0aW9uIC0tPlxuICA8ZGl2IGNsYXNzPVwiZGJ4LWRlYnVnLXNlY3Rpb25cIj5cbiAgICA8aDQ+TW9kZWwgS2V5IEluZm9ybWF0aW9uPC9oND5cbiAgICBAaWYgKGN1cnJlbnRLZXkoKTsgYXMga2V5KSB7XG4gICAgICA8ZGJ4LWZpcmViYXNlLW1vZGVsLWtleSBbbW9kZWxLZXldPVwia2V5XCI+PC9kYngtZmlyZWJhc2UtbW9kZWwta2V5PlxuICAgIH1cbiAgPC9kaXY+XG5cbiAgPCEtLSBEb2N1bWVudCBEYXRhIFNlY3Rpb24gLS0+XG4gIDxkaXYgY2xhc3M9XCJkYngtZGVidWctc2VjdGlvblwiPlxuICAgIDxoND5Eb2N1bWVudCBEYXRhPC9oND5cbiAgICA8ZGJ4LWxvYWRpbmcgW2NvbnRleHRdPVwiY29udGV4dFwiPlxuICAgICAgQGlmIChjdXJyZW50RGF0YSgpOyBhcyBkYXRhKSB7XG4gICAgICAgIDxkYngtZG93bmxvYWQtdGV4dC12aWV3IFtzaG93VGl0bGVdPVwiZmFsc2VcIiBbY29udGVudF09XCJjb250ZW50U2lnbmFsKClcIj48L2RieC1kb3dubG9hZC10ZXh0LXZpZXc+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPHAgY2xhc3M9XCJkYngtZW1wdHlcIj5ObyBkYXRhIGF2YWlsYWJsZTwvcD5cbiAgICAgIH1cbiAgICA8L2RieC1sb2FkaW5nPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|