@dereekb/dbx-web 13.2.2 → 13.3.1

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
- <button mat-stroked-button (click)="onConfirm()">{{ confirmTextSignal() }}</button>
4020
- <dbx-button-spacer></dbx-button-spacer>
4021
- <button mat-stroked-button color="warn" (click)="onCancel()">{{ cancelTextSignal() }}</button>
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
- <button mat-stroked-button (click)="onConfirm()">{{ confirmTextSignal() }}</button>
4033
- <dbx-button-spacer></dbx-button-spacer>
4034
- <button mat-stroked-button color="warn" (click)="onCancel()">{{ cancelTextSignal() }}</button>
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 [dbxColor]="color()" class="loading-progress-view">
5398
- @switch (linear()) {
5399
- @case (true) {
5400
- <mat-progress-bar [mode]="bmode()" [bufferValue]="bufferValue()" [value]="value()" style="margin: auto;"></mat-progress-bar>
5401
- }
5402
- @default {
5403
- <mat-progress-spinner [diameter]="diameterSignal()" [mode]="smode()" [value]="value()" style="margin: auto;"></mat-progress-spinner>
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 [dbxColor]="color()" class="loading-progress-view">
5418
- @switch (linear()) {
5419
- @case (true) {
5420
- <mat-progress-bar [mode]="bmode()" [bufferValue]="bufferValue()" [value]="value()" style="margin: auto;"></mat-progress-bar>
5421
- }
5422
- @default {
5423
- <mat-progress-spinner [diameter]="diameterSignal()" [mode]="smode()" [value]="value()" style="margin: auto;"></mat-progress-spinner>
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.2.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 }, 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: `
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
- <mat-icon class="dbx-click-to-copy-text-icon" (click)="dbxClickToCopyText()?._copyText()">{{ clickToCopyIcon() }}</mat-icon>
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
- <mat-icon class="dbx-click-to-copy-text-icon" (click)="dbxClickToCopyText()?._copyText()">{{ clickToCopyIcon() }}</mat-icon>
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
  }