@dereekb/dbx-web 13.2.2 → 13.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -4016,9 +4016,11 @@ class DbxPromptConfirmComponent {
|
|
|
4016
4016
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.0", type: DbxPromptConfirmComponent, isStandalone: true, selector: "dbx-prompt-confirm", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { confirm: "confirm", cancel: "cancel" }, ngImport: i0, template: `
|
|
4017
4017
|
<dbx-prompt [header]="config()?.title" [prompt]="config()?.prompt">
|
|
4018
4018
|
<ng-content></ng-content>
|
|
4019
|
-
<
|
|
4020
|
-
|
|
4021
|
-
|
|
4019
|
+
<div class="dbx-pt3">
|
|
4020
|
+
<button mat-stroked-button (click)="onConfirm()">{{ confirmTextSignal() }}</button>
|
|
4021
|
+
<dbx-button-spacer></dbx-button-spacer>
|
|
4022
|
+
<button mat-stroked-button color="warn" (click)="onCancel()">{{ cancelTextSignal() }}</button>
|
|
4023
|
+
</div>
|
|
4022
4024
|
</dbx-prompt>
|
|
4023
4025
|
`, isInline: true, dependencies: [{ kind: "component", type: DbxPromptComponent, selector: "dbx-prompt", inputs: ["header", "prompt"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$1.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: DbxButtonSpacerDirective, selector: "dbx-button-spacer,[dbxButtonSpacer]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4024
4026
|
}
|
|
@@ -4029,9 +4031,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
4029
4031
|
template: `
|
|
4030
4032
|
<dbx-prompt [header]="config()?.title" [prompt]="config()?.prompt">
|
|
4031
4033
|
<ng-content></ng-content>
|
|
4032
|
-
<
|
|
4033
|
-
|
|
4034
|
-
|
|
4034
|
+
<div class="dbx-pt3">
|
|
4035
|
+
<button mat-stroked-button (click)="onConfirm()">{{ confirmTextSignal() }}</button>
|
|
4036
|
+
<dbx-button-spacer></dbx-button-spacer>
|
|
4037
|
+
<button mat-stroked-button color="warn" (click)="onCancel()">{{ cancelTextSignal() }}</button>
|
|
4038
|
+
</div>
|
|
4035
4039
|
</dbx-prompt>
|
|
4036
4040
|
`,
|
|
4037
4041
|
standalone: true,
|
|
@@ -5394,15 +5398,17 @@ class DbxLoadingProgressComponent {
|
|
|
5394
5398
|
diameterSignal = computed(() => this.diameter() || this.defaultDiameter, ...(ngDevMode ? [{ debugName: "diameterSignal" }] : []));
|
|
5395
5399
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DbxLoadingProgressComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5396
5400
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: DbxLoadingProgressComponent, isStandalone: true, selector: "dbx-loading-progress", inputs: { diameter: { classPropertyName: "diameter", publicName: "diameter", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, linear: { classPropertyName: "linear", publicName: "linear", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, bufferValue: { classPropertyName: "bufferValue", publicName: "bufferValue", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
5397
|
-
<div
|
|
5398
|
-
|
|
5399
|
-
@
|
|
5400
|
-
|
|
5401
|
-
|
|
5402
|
-
|
|
5403
|
-
|
|
5401
|
+
<div class="loading-progress-view">
|
|
5402
|
+
<span class="loading-progress-view-indicator" [dbxColor]="color()">
|
|
5403
|
+
@switch (linear()) {
|
|
5404
|
+
@case (true) {
|
|
5405
|
+
<mat-progress-bar [mode]="bmode()" [bufferValue]="bufferValue()" [value]="value()" style="margin: auto;"></mat-progress-bar>
|
|
5406
|
+
}
|
|
5407
|
+
@default {
|
|
5408
|
+
<mat-progress-spinner [diameter]="diameterSignal()" [mode]="smode()" [value]="value()" style="margin: auto;"></mat-progress-spinner>
|
|
5409
|
+
}
|
|
5404
5410
|
}
|
|
5405
|
-
|
|
5411
|
+
</span>
|
|
5406
5412
|
@if (text()) {
|
|
5407
5413
|
<div class="dbx-loading-progress-hint dbx-hint dbx-small" [ngClass]="{ 'text-center': !linear() }">{{ text() }}</div>
|
|
5408
5414
|
}
|
|
@@ -5414,15 +5420,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
5414
5420
|
args: [{
|
|
5415
5421
|
selector: 'dbx-loading-progress',
|
|
5416
5422
|
template: `
|
|
5417
|
-
<div
|
|
5418
|
-
|
|
5419
|
-
@
|
|
5420
|
-
|
|
5421
|
-
|
|
5422
|
-
|
|
5423
|
-
|
|
5423
|
+
<div class="loading-progress-view">
|
|
5424
|
+
<span class="loading-progress-view-indicator" [dbxColor]="color()">
|
|
5425
|
+
@switch (linear()) {
|
|
5426
|
+
@case (true) {
|
|
5427
|
+
<mat-progress-bar [mode]="bmode()" [bufferValue]="bufferValue()" [value]="value()" style="margin: auto;"></mat-progress-bar>
|
|
5428
|
+
}
|
|
5429
|
+
@default {
|
|
5430
|
+
<mat-progress-spinner [diameter]="diameterSignal()" [mode]="smode()" [value]="value()" style="margin: auto;"></mat-progress-spinner>
|
|
5431
|
+
}
|
|
5424
5432
|
}
|
|
5425
|
-
|
|
5433
|
+
</span>
|
|
5426
5434
|
@if (text()) {
|
|
5427
5435
|
<div class="dbx-loading-progress-hint dbx-hint dbx-small" [ngClass]="{ 'text-center': !linear() }">{{ text() }}</div>
|
|
5428
5436
|
}
|
|
@@ -6822,10 +6830,19 @@ var index$1 = /*#__PURE__*/Object.freeze({
|
|
|
6822
6830
|
DbxModelStateModelActions: model_actions
|
|
6823
6831
|
});
|
|
6824
6832
|
|
|
6833
|
+
/**
|
|
6834
|
+
* NgRx feature key for the model module configuration state slice.
|
|
6835
|
+
*/
|
|
6825
6836
|
const stateFeatureKey = 'model.module.config';
|
|
6837
|
+
/**
|
|
6838
|
+
* Initial state for the model module configuration reducer.
|
|
6839
|
+
*/
|
|
6826
6840
|
const initialState = {
|
|
6827
6841
|
types: {}
|
|
6828
6842
|
};
|
|
6843
|
+
/**
|
|
6844
|
+
* NgRx reducer for model module configuration. Resets to initial state on {@link DbxModelStateActions.dbxModelResetState}.
|
|
6845
|
+
*/
|
|
6829
6846
|
const reducer = createReducer(initialState, on(dbxModelResetState, () => initialState));
|
|
6830
6847
|
|
|
6831
6848
|
const featureKey = 'app.model';
|
|
@@ -6866,6 +6883,12 @@ class DbxModelViewTrackerStorage {
|
|
|
6866
6883
|
get maxEventsToKeep() {
|
|
6867
6884
|
return DbxModelViewTrackerStorage.DEFAULT_MAX_EVENTS;
|
|
6868
6885
|
}
|
|
6886
|
+
/**
|
|
6887
|
+
* Persists a view tracker event to storage. Deduplicates by model key, sorts by date, and trims to the max event limit.
|
|
6888
|
+
*
|
|
6889
|
+
* @param event - The event to record
|
|
6890
|
+
* @returns Observable that completes when the event has been persisted
|
|
6891
|
+
*/
|
|
6869
6892
|
addTrackerEvent(event) {
|
|
6870
6893
|
const storageKey = this.getStorageKeyForFolder(event.folder);
|
|
6871
6894
|
return this._getEventSetForStorageKey(storageKey).pipe(mergeMap((set) => {
|
|
@@ -6885,9 +6908,19 @@ class DbxModelViewTrackerStorage {
|
|
|
6885
6908
|
.pipe(tap(() => this._newEvent.next(nextEvent)));
|
|
6886
6909
|
}));
|
|
6887
6910
|
}
|
|
6911
|
+
/**
|
|
6912
|
+
* Returns all stored view events for the given folder.
|
|
6913
|
+
*
|
|
6914
|
+
* @param folder - Optional folder name; defaults to `'default'`
|
|
6915
|
+
*/
|
|
6888
6916
|
getAllEvents(folder) {
|
|
6889
6917
|
return this.getEventSet(folder).pipe(map((x) => x.e));
|
|
6890
6918
|
}
|
|
6919
|
+
/**
|
|
6920
|
+
* Returns the complete event set for the given folder.
|
|
6921
|
+
*
|
|
6922
|
+
* @param folder - Optional folder name; defaults to `'default'`
|
|
6923
|
+
*/
|
|
6891
6924
|
getEventSet(folder) {
|
|
6892
6925
|
const storageKey = this.getStorageKeyForFolder(folder);
|
|
6893
6926
|
return this._getEventSetForStorageKey(storageKey);
|
|
@@ -6897,6 +6930,11 @@ class DbxModelViewTrackerStorage {
|
|
|
6897
6930
|
return of(undefined);
|
|
6898
6931
|
}), map((result) => result ?? { e: [], l: 0 }));
|
|
6899
6932
|
}
|
|
6933
|
+
/**
|
|
6934
|
+
* Computes the storage key for a given folder name.
|
|
6935
|
+
*
|
|
6936
|
+
* @param folder - Optional folder name; defaults to `'default'`
|
|
6937
|
+
*/
|
|
6900
6938
|
getStorageKeyForFolder(folder) {
|
|
6901
6939
|
const storageKey = `${this.storageKey}_${folder ?? 'default'}`;
|
|
6902
6940
|
return storageKey;
|
|
@@ -6914,7 +6952,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
6914
6952
|
class DbxModelTrackerService {
|
|
6915
6953
|
_viewTrackerStorage = inject(DbxModelViewTrackerStorage);
|
|
6916
6954
|
_defaultFolder;
|
|
6955
|
+
/**
|
|
6956
|
+
* Emits whenever a new view tracker event is recorded.
|
|
6957
|
+
*/
|
|
6917
6958
|
newEvent$ = this._viewTrackerStorage.newEvent$;
|
|
6959
|
+
/**
|
|
6960
|
+
* The default storage folder used when no folder is specified in tracking calls.
|
|
6961
|
+
*/
|
|
6918
6962
|
get defaultFolder() {
|
|
6919
6963
|
return this._defaultFolder;
|
|
6920
6964
|
}
|
|
@@ -6922,6 +6966,13 @@ class DbxModelTrackerService {
|
|
|
6922
6966
|
this._defaultFolder = folder ?? undefined;
|
|
6923
6967
|
}
|
|
6924
6968
|
// MARK: View
|
|
6969
|
+
/**
|
|
6970
|
+
* Records a view event for the given model, optionally in a specific context and folder.
|
|
6971
|
+
*
|
|
6972
|
+
* @param modelKeyTypeNamePair - The model identity to track
|
|
6973
|
+
* @param context - Optional view context metadata
|
|
6974
|
+
* @param folder - Storage folder; defaults to {@link defaultFolder}
|
|
6975
|
+
*/
|
|
6925
6976
|
trackViewedObject(modelKeyTypeNamePair, context, folder = this._defaultFolder) {
|
|
6926
6977
|
this._viewTrackerStorage
|
|
6927
6978
|
.addTrackerEvent({
|
|
@@ -6932,9 +6983,19 @@ class DbxModelTrackerService {
|
|
|
6932
6983
|
.pipe(first())
|
|
6933
6984
|
.subscribe();
|
|
6934
6985
|
}
|
|
6986
|
+
/**
|
|
6987
|
+
* Returns all recorded view events for the given folder, sorted by most recent first.
|
|
6988
|
+
*
|
|
6989
|
+
* @param folder - Storage folder; defaults to {@link defaultFolder}
|
|
6990
|
+
*/
|
|
6935
6991
|
getAllViewEvents(folder = this._defaultFolder) {
|
|
6936
6992
|
return this._viewTrackerStorage.getAllEvents(folder);
|
|
6937
6993
|
}
|
|
6994
|
+
/**
|
|
6995
|
+
* Returns the complete event set (events and last-update timestamp) for the given folder.
|
|
6996
|
+
*
|
|
6997
|
+
* @param folder - Storage folder; defaults to {@link defaultFolder}
|
|
6998
|
+
*/
|
|
6938
6999
|
getViewEventSet(folder = this._defaultFolder) {
|
|
6939
7000
|
return this._viewTrackerStorage.getEventSet(folder);
|
|
6940
7001
|
}
|
|
@@ -7056,6 +7117,11 @@ class DbxModelTypesService {
|
|
|
7056
7117
|
injector = inject(Injector);
|
|
7057
7118
|
_configs = new BehaviorSubject({});
|
|
7058
7119
|
// MARK: Configuration
|
|
7120
|
+
/**
|
|
7121
|
+
* Registers one or more model type configurations. Merges with any previously registered configs.
|
|
7122
|
+
*
|
|
7123
|
+
* @param configs - Single or array of model type configurations to register
|
|
7124
|
+
*/
|
|
7059
7125
|
addTypeConfigs(configs) {
|
|
7060
7126
|
const types = {
|
|
7061
7127
|
...this._configs.value
|
|
@@ -7065,6 +7131,11 @@ class DbxModelTypesService {
|
|
|
7065
7131
|
});
|
|
7066
7132
|
this._configs.next(types);
|
|
7067
7133
|
}
|
|
7134
|
+
/**
|
|
7135
|
+
* Registers model type configurations from a map, merging with existing configs.
|
|
7136
|
+
*
|
|
7137
|
+
* @param configs - Map of model type strings to their configurations
|
|
7138
|
+
*/
|
|
7068
7139
|
addTypeConfigsMap(configs) {
|
|
7069
7140
|
const newConfig = {
|
|
7070
7141
|
...this._configs.value,
|
|
@@ -7073,6 +7144,9 @@ class DbxModelTypesService {
|
|
|
7073
7144
|
this._configs.next(newConfig);
|
|
7074
7145
|
}
|
|
7075
7146
|
// MARK: Accessors
|
|
7147
|
+
/**
|
|
7148
|
+
* Observable map of all registered model types to their resolved {@link DbxModelTypeInfo} entries.
|
|
7149
|
+
*/
|
|
7076
7150
|
typesMap$ = this._configs.pipe(map((types) => {
|
|
7077
7151
|
const typesMap = {};
|
|
7078
7152
|
Object.keys(types).forEach((type) => {
|
|
@@ -7091,6 +7165,9 @@ class DbxModelTypesService {
|
|
|
7091
7165
|
});
|
|
7092
7166
|
return typesMap;
|
|
7093
7167
|
}), shareReplay(1));
|
|
7168
|
+
/**
|
|
7169
|
+
* Observable map of model type strings to their Material icon names.
|
|
7170
|
+
*/
|
|
7094
7171
|
iconMap$ = this.typesMap$.pipe(map((types) => {
|
|
7095
7172
|
const iconsMap = {};
|
|
7096
7173
|
Object.keys(types).forEach((type) => {
|
|
@@ -7098,6 +7175,11 @@ class DbxModelTypesService {
|
|
|
7098
7175
|
});
|
|
7099
7176
|
return iconsMap;
|
|
7100
7177
|
}), shareReplay(1));
|
|
7178
|
+
/**
|
|
7179
|
+
* Returns an observable of the Material icon name for the given model type.
|
|
7180
|
+
*
|
|
7181
|
+
* @param type - The model type string to look up
|
|
7182
|
+
*/
|
|
7101
7183
|
iconForType(type) {
|
|
7102
7184
|
return this.iconMap$.pipe(map((x) => x[type]));
|
|
7103
7185
|
}
|
|
@@ -7542,24 +7624,51 @@ class DbxWebFilePreviewService {
|
|
|
7542
7624
|
_defaultPreviewComponentFunction = DBX_WEB_FILE_PREVIEW_SERVICE_DEFAULT_PREVIEW_COMPONENT_FUNCTION;
|
|
7543
7625
|
_defaultPreviewDialogWithComponentFunction = DBX_WEB_FILE_PREVIEW_SERVICE_DEFAULT_DIALOG_WITH_COMPONENT_FUNCTION;
|
|
7544
7626
|
// Configuration
|
|
7627
|
+
/**
|
|
7628
|
+
* Registers one or more file preview entries, mapping MIME types to their preview components.
|
|
7629
|
+
*
|
|
7630
|
+
* @param entries - Single or array of preview entries to register
|
|
7631
|
+
*/
|
|
7545
7632
|
registerPreviewEntries(entries) {
|
|
7546
7633
|
asArray(entries).forEach((entry) => this.registerPreviewEntry(entry));
|
|
7547
7634
|
}
|
|
7635
|
+
/**
|
|
7636
|
+
* Registers a single file preview entry for its MIME type(s).
|
|
7637
|
+
*
|
|
7638
|
+
* @param entry - The preview entry to register
|
|
7639
|
+
*/
|
|
7548
7640
|
registerPreviewEntry(entry) {
|
|
7549
7641
|
asArray(entry.mimeType).forEach((mimeType) => this._entries.set(mimeType, entry));
|
|
7550
7642
|
}
|
|
7643
|
+
/**
|
|
7644
|
+
* Overrides the default preview component function used when no MIME-specific entry is registered.
|
|
7645
|
+
*/
|
|
7551
7646
|
setDefaultPreviewComponentFunction(previewFunction) {
|
|
7552
7647
|
this._defaultPreviewComponentFunction = previewFunction;
|
|
7553
7648
|
}
|
|
7649
|
+
/**
|
|
7650
|
+
* Overrides the default dialog-with-component function used when no MIME-specific dialog handler is registered.
|
|
7651
|
+
*/
|
|
7554
7652
|
setDefaultPreviewDialogWithComponentFunction(previewDialogWithComponentFunction) {
|
|
7555
7653
|
this._defaultPreviewDialogWithComponentFunction = previewDialogWithComponentFunction;
|
|
7556
7654
|
}
|
|
7557
7655
|
// Service
|
|
7656
|
+
/**
|
|
7657
|
+
* Creates an injection component config for previewing a file. Uses a MIME-specific preview function if registered, otherwise falls back to the default.
|
|
7658
|
+
*
|
|
7659
|
+
* @param input - The preview input containing blob, URL, and MIME type information
|
|
7660
|
+
*/
|
|
7558
7661
|
createPreviewConfig(input) {
|
|
7559
7662
|
const { embedMimeType } = input;
|
|
7560
7663
|
const previewFunction = (embedMimeType ? this._entries.get(embedMimeType)?.previewComponentFunction : undefined) ?? this._defaultPreviewComponentFunction;
|
|
7561
7664
|
return previewFunction(input);
|
|
7562
7665
|
}
|
|
7666
|
+
/**
|
|
7667
|
+
* Opens a Material dialog to preview a file. Uses a MIME-specific dialog function if registered, otherwise creates a preview component and wraps it in the default dialog.
|
|
7668
|
+
*
|
|
7669
|
+
* @param input - The dialog input containing file data and MIME type
|
|
7670
|
+
* @returns Reference to the opened dialog
|
|
7671
|
+
*/
|
|
7563
7672
|
openPreviewDialog(input) {
|
|
7564
7673
|
const { embedMimeType } = input;
|
|
7565
7674
|
const previewDialogFunction = embedMimeType ? this._entries.get(embedMimeType)?.previewDialogFunction : undefined;
|
|
@@ -13406,17 +13515,20 @@ class DbxClickToCopyTextComponent {
|
|
|
13406
13515
|
contentElementRef = viewChild('content', ...(ngDevMode ? [{ debugName: "contentElementRef" }] : []));
|
|
13407
13516
|
dbxClickToCopyText = viewChild(DbxClickToCopyTextDirective, ...(ngDevMode ? [{ debugName: "dbxClickToCopyText" }] : []));
|
|
13408
13517
|
copyText = input(undefined, ...(ngDevMode ? [{ debugName: "copyText" }] : []));
|
|
13518
|
+
showIcon = input(true, ...(ngDevMode ? [{ debugName: "showIcon" }] : []));
|
|
13409
13519
|
highlighted = input(false, ...(ngDevMode ? [{ debugName: "highlighted" }] : []));
|
|
13410
13520
|
clipboardSnackbarMessagesConfig = input(undefined, ...(ngDevMode ? [{ debugName: "clipboardSnackbarMessagesConfig" }] : []));
|
|
13411
13521
|
clipboardSnackbarMessagesEnabled = input(true, ...(ngDevMode ? [{ debugName: "clipboardSnackbarMessagesEnabled" }] : []));
|
|
13412
13522
|
clickToCopyIcon = input('content_copy', ...(ngDevMode ? [{ debugName: "clickToCopyIcon" }] : []));
|
|
13413
13523
|
clickIconToCopyOnly = input(false, ...(ngDevMode ? [{ debugName: "clickIconToCopyOnly" }] : []));
|
|
13414
13524
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DbxClickToCopyTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
13415
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.
|
|
13525
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: DbxClickToCopyTextComponent, isStandalone: true, selector: "dbx-click-to-copy-text", inputs: { copyText: { classPropertyName: "copyText", publicName: "copyText", isSignal: true, isRequired: false, transformFunction: null }, showIcon: { classPropertyName: "showIcon", publicName: "showIcon", isSignal: true, isRequired: false, transformFunction: null }, highlighted: { classPropertyName: "highlighted", publicName: "highlighted", isSignal: true, isRequired: false, transformFunction: null }, clipboardSnackbarMessagesConfig: { classPropertyName: "clipboardSnackbarMessagesConfig", publicName: "clipboardSnackbarMessagesConfig", isSignal: true, isRequired: false, transformFunction: null }, clipboardSnackbarMessagesEnabled: { classPropertyName: "clipboardSnackbarMessagesEnabled", publicName: "clipboardSnackbarMessagesEnabled", isSignal: true, isRequired: false, transformFunction: null }, clickToCopyIcon: { classPropertyName: "clickToCopyIcon", publicName: "clickToCopyIcon", isSignal: true, isRequired: false, transformFunction: null }, clickIconToCopyOnly: { classPropertyName: "clickIconToCopyOnly", publicName: "clickIconToCopyOnly", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "dbx-click-to-copy-text-component" }, viewQueries: [{ propertyName: "contentElementRef", first: true, predicate: ["content"], descendants: true, isSignal: true }, { propertyName: "dbxClickToCopyText", first: true, predicate: DbxClickToCopyTextDirective, descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
13416
13526
|
<span #content [dbxClickToCopyText]="copyText()" [disableCopy]="clickIconToCopyOnly()" [highlighted]="highlighted()" [clipboardSnackbarMessagesEnabled]="clipboardSnackbarMessagesEnabled()" [clipboardSnackbarMessagesConfig]="clipboardSnackbarMessagesConfig()" [copyTextFromElement]="contentElementRef()">
|
|
13417
13527
|
<ng-content></ng-content>
|
|
13418
13528
|
</span>
|
|
13419
|
-
|
|
13529
|
+
@if (showIcon()) {
|
|
13530
|
+
<mat-icon class="dbx-click-to-copy-text-icon" (click)="dbxClickToCopyText()?._copyText()">{{ clickToCopyIcon() }}</mat-icon>
|
|
13531
|
+
}
|
|
13420
13532
|
`, isInline: true, dependencies: [{ kind: "directive", type: DbxClickToCopyTextDirective, selector: "[dbxClickToCopyText]", inputs: ["copyTextFromElement", "dbxClickToCopyText", "disableCopy", "highlighted"], outputs: ["copyTextFromElementChange"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
|
|
13421
13533
|
}
|
|
13422
13534
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DbxClickToCopyTextComponent, decorators: [{
|
|
@@ -13427,7 +13539,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
13427
13539
|
<span #content [dbxClickToCopyText]="copyText()" [disableCopy]="clickIconToCopyOnly()" [highlighted]="highlighted()" [clipboardSnackbarMessagesEnabled]="clipboardSnackbarMessagesEnabled()" [clipboardSnackbarMessagesConfig]="clipboardSnackbarMessagesConfig()" [copyTextFromElement]="contentElementRef()">
|
|
13428
13540
|
<ng-content></ng-content>
|
|
13429
13541
|
</span>
|
|
13430
|
-
|
|
13542
|
+
@if (showIcon()) {
|
|
13543
|
+
<mat-icon class="dbx-click-to-copy-text-icon" (click)="dbxClickToCopyText()?._copyText()">{{ clickToCopyIcon() }}</mat-icon>
|
|
13544
|
+
}
|
|
13431
13545
|
`,
|
|
13432
13546
|
host: {
|
|
13433
13547
|
class: 'dbx-click-to-copy-text-component'
|
|
@@ -13435,7 +13549,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
13435
13549
|
imports: [DbxClickToCopyTextDirective, MatIcon],
|
|
13436
13550
|
standalone: true
|
|
13437
13551
|
}]
|
|
13438
|
-
}], propDecorators: { contentElementRef: [{ type: i0.ViewChild, args: ['content', { isSignal: true }] }], dbxClickToCopyText: [{ type: i0.ViewChild, args: [i0.forwardRef(() => DbxClickToCopyTextDirective), { isSignal: true }] }], copyText: [{ type: i0.Input, args: [{ isSignal: true, alias: "copyText", required: false }] }], highlighted: [{ type: i0.Input, args: [{ isSignal: true, alias: "highlighted", required: false }] }], clipboardSnackbarMessagesConfig: [{ type: i0.Input, args: [{ isSignal: true, alias: "clipboardSnackbarMessagesConfig", required: false }] }], clipboardSnackbarMessagesEnabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "clipboardSnackbarMessagesEnabled", required: false }] }], clickToCopyIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "clickToCopyIcon", required: false }] }], clickIconToCopyOnly: [{ type: i0.Input, args: [{ isSignal: true, alias: "clickIconToCopyOnly", required: false }] }] } });
|
|
13552
|
+
}], propDecorators: { contentElementRef: [{ type: i0.ViewChild, args: ['content', { isSignal: true }] }], dbxClickToCopyText: [{ type: i0.ViewChild, args: [i0.forwardRef(() => DbxClickToCopyTextDirective), { isSignal: true }] }], copyText: [{ type: i0.Input, args: [{ isSignal: true, alias: "copyText", required: false }] }], showIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "showIcon", required: false }] }], highlighted: [{ type: i0.Input, args: [{ isSignal: true, alias: "highlighted", required: false }] }], clipboardSnackbarMessagesConfig: [{ type: i0.Input, args: [{ isSignal: true, alias: "clipboardSnackbarMessagesConfig", required: false }] }], clipboardSnackbarMessagesEnabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "clipboardSnackbarMessagesEnabled", required: false }] }], clickToCopyIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "clickToCopyIcon", required: false }] }], clickIconToCopyOnly: [{ type: i0.Input, args: [{ isSignal: true, alias: "clickIconToCopyOnly", required: false }] }] } });
|
|
13439
13553
|
|
|
13440
13554
|
const importsAndExports$1 = [DbxUnitedStatesAddressComponent, DbxNumberWithLimitComponent, DbxClickToCopyTextDirective, DbxClickToCopyTextComponent, DbxChipDirective, DbxDetailBlockComponent, DbxDetailBlockHeaderComponent, DbxLabelBlockComponent, DbxLinkifyComponent, DbxTextChipsComponent, DbxIconSpacerDirective];
|
|
13441
13555
|
/**
|
|
@@ -14162,12 +14276,25 @@ class DbxHelpContextService {
|
|
|
14162
14276
|
* Observable of all currently active help context strings.
|
|
14163
14277
|
*/
|
|
14164
14278
|
activeHelpContextKeys$ = this._contextReferences.pipe(switchMap((allReferences) => combineLatest(Array.from(allReferences).map((ref) => ref.helpContextKeys$)).pipe(map((x) => x.flat()), defaultIfEmpty([]), map((x) => new Set(x)))), distinctUntilHasDifferentValues(), shareReplay(1));
|
|
14279
|
+
/**
|
|
14280
|
+
* Observable array of all currently active help context key strings.
|
|
14281
|
+
*/
|
|
14165
14282
|
activeHelpContextKeysArray$ = this.activeHelpContextKeys$.pipe(map((x) => Array.from(x)), shareReplay(1));
|
|
14283
|
+
/**
|
|
14284
|
+
* Registers a help context reference, adding its keys to the active set.
|
|
14285
|
+
*
|
|
14286
|
+
* @param reference - The help context reference to register
|
|
14287
|
+
*/
|
|
14166
14288
|
register(reference) {
|
|
14167
14289
|
const referenceSet = this._contextReferences.value;
|
|
14168
14290
|
referenceSet.add(reference);
|
|
14169
14291
|
this._contextReferences.next(referenceSet);
|
|
14170
14292
|
}
|
|
14293
|
+
/**
|
|
14294
|
+
* Unregisters a help context reference, removing its keys from the active set.
|
|
14295
|
+
*
|
|
14296
|
+
* @param reference - The help context reference to unregister
|
|
14297
|
+
*/
|
|
14171
14298
|
unregister(reference) {
|
|
14172
14299
|
const referenceSet = this._contextReferences.value;
|
|
14173
14300
|
referenceSet.delete(reference);
|
|
@@ -14269,30 +14396,45 @@ class DbxHelpWidgetService {
|
|
|
14269
14396
|
this.register(initialConfig.entries);
|
|
14270
14397
|
}
|
|
14271
14398
|
}
|
|
14399
|
+
/**
|
|
14400
|
+
* Returns the component class used for unrecognized help context keys.
|
|
14401
|
+
*/
|
|
14272
14402
|
getDefaultWidgetComponentClass() {
|
|
14273
14403
|
return this._defaultWidgetComponentClass;
|
|
14274
14404
|
}
|
|
14275
14405
|
setDefaultWidgetComponentClass(componentClass) {
|
|
14276
14406
|
this._defaultWidgetComponentClass = componentClass;
|
|
14277
14407
|
}
|
|
14408
|
+
/**
|
|
14409
|
+
* Returns the default icon used for help entries without a specific icon.
|
|
14410
|
+
*/
|
|
14278
14411
|
getDefaultIcon() {
|
|
14279
14412
|
return this._defaultIcon;
|
|
14280
14413
|
}
|
|
14281
14414
|
setDefaultIcon(icon) {
|
|
14282
14415
|
this._defaultIcon = icon;
|
|
14283
14416
|
}
|
|
14417
|
+
/**
|
|
14418
|
+
* Returns the component config displayed in the popover header, if set.
|
|
14419
|
+
*/
|
|
14284
14420
|
getPopoverHeaderComponentConfig() {
|
|
14285
14421
|
return this._popoverHeaderComponentConfig;
|
|
14286
14422
|
}
|
|
14287
14423
|
setPopoverHeaderComponentConfig(componentConfig) {
|
|
14288
14424
|
this._popoverHeaderComponentConfig = componentConfig;
|
|
14289
14425
|
}
|
|
14426
|
+
/**
|
|
14427
|
+
* Returns the component config displayed at the top of the help list view, if set.
|
|
14428
|
+
*/
|
|
14290
14429
|
getHelpListHeaderComponentConfig() {
|
|
14291
14430
|
return this._helpListHeaderComponentConfig;
|
|
14292
14431
|
}
|
|
14293
14432
|
setHelpListHeaderComponentConfig(componentConfig) {
|
|
14294
14433
|
this._helpListHeaderComponentConfig = componentConfig;
|
|
14295
14434
|
}
|
|
14435
|
+
/**
|
|
14436
|
+
* Returns the component config displayed at the bottom of the help list view, if set.
|
|
14437
|
+
*/
|
|
14296
14438
|
getHelpListFooterComponentConfig() {
|
|
14297
14439
|
return this._helpListFooterComponentConfig;
|
|
14298
14440
|
}
|
|
@@ -14317,18 +14459,37 @@ class DbxHelpWidgetService {
|
|
|
14317
14459
|
return true;
|
|
14318
14460
|
}
|
|
14319
14461
|
// MARK: Get
|
|
14462
|
+
/**
|
|
14463
|
+
* Returns all currently registered help context keys.
|
|
14464
|
+
*/
|
|
14320
14465
|
getAllRegisteredHelpContextKeys() {
|
|
14321
14466
|
return Array.from(this._entries.keys());
|
|
14322
14467
|
}
|
|
14468
|
+
/**
|
|
14469
|
+
* Retrieves the widget entry for a given help context key. Falls back to a default entry if a default widget component class is configured.
|
|
14470
|
+
*
|
|
14471
|
+
* @param helpContextKey - The help context key to look up
|
|
14472
|
+
*/
|
|
14323
14473
|
getHelpWidgetEntry(helpContextKey) {
|
|
14324
14474
|
return this._entries.get(helpContextKey) ?? (this._defaultWidgetComponentClass ? { helpContextKey, title: '<Missing Help Topic>', widgetComponentClass: this._defaultWidgetComponentClass } : undefined);
|
|
14325
14475
|
}
|
|
14476
|
+
/**
|
|
14477
|
+
* Retrieves widget entries for multiple help context keys, filtering out any unresolvable keys.
|
|
14478
|
+
*
|
|
14479
|
+
* @param helpContextKeys - Array of help context keys to look up
|
|
14480
|
+
*/
|
|
14326
14481
|
getHelpWidgetEntriesForHelpContextKeys(helpContextKeys) {
|
|
14327
14482
|
return helpContextKeys.map((context) => this.getHelpWidgetEntry(context)).filter((entry) => !!entry);
|
|
14328
14483
|
}
|
|
14484
|
+
/**
|
|
14485
|
+
* Checks whether a widget entry is registered for the given help context key.
|
|
14486
|
+
*/
|
|
14329
14487
|
hasHelpWidgetEntry(context) {
|
|
14330
14488
|
return this._entries.has(context);
|
|
14331
14489
|
}
|
|
14490
|
+
/**
|
|
14491
|
+
* Returns a cached map of help context keys to their sort priority values.
|
|
14492
|
+
*/
|
|
14332
14493
|
getSortPriorityMap() {
|
|
14333
14494
|
return this._sortPriorityMap();
|
|
14334
14495
|
}
|