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