@dereekb/dbx-web 13.11.14 → 13.11.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.
@@ -135,14 +135,14 @@ var CompactMode;
135
135
  * Converts a boolean or `CompactMode` value into a normalized `CompactMode`.
136
136
  * `true` maps to `CompactMode.COMPACT`, `false` maps to `CompactMode.FULL`.
137
137
  *
138
+ * @param input - Boolean or CompactMode value to normalize.
139
+ * @returns The normalized CompactMode enum value.
140
+ *
138
141
  * @example
139
142
  * ```ts
140
143
  * compactModeFromInput(true); // CompactMode.COMPACT
141
144
  * compactModeFromInput(CompactMode.FULL); // CompactMode.FULL
142
145
  * ```
143
- *
144
- * @param input - a boolean or CompactMode value to normalize
145
- * @returns the normalized CompactMode enum value
146
146
  */
147
147
  function compactModeFromInput(input) {
148
148
  if (typeof input === 'boolean') {
@@ -154,6 +154,10 @@ function compactModeFromInput(input) {
154
154
  * Maps an observable compact mode stream to the corresponding value from the config.
155
155
  * Falls back to the config's `defaultMode` (or `FULL`) when the observable is nullish.
156
156
  *
157
+ * @param mode$ - An observable of the current compact mode, or nullish to use the default.
158
+ * @param config - The mapping configuration containing values for each mode and an optional default.
159
+ * @returns An observable emitting the mapped value corresponding to the current compact mode.
160
+ *
157
161
  * @example
158
162
  * ```ts
159
163
  * const value$ = mapCompactModeObs(mode$, {
@@ -162,10 +166,6 @@ function compactModeFromInput(input) {
162
166
  * defaultMode: CompactMode.FULL
163
167
  * });
164
168
  * ```
165
- *
166
- * @param mode$ - an observable of the current compact mode, or nullish to use the default
167
- * @param config - the mapping configuration containing values for each mode and an optional default
168
- * @returns an observable emitting the mapped value corresponding to the current compact mode
169
169
  */
170
170
  function mapCompactModeObs(mode$, config) {
171
171
  const modeObs = mode$ ?? of(config.defaultMode ?? CompactMode.FULL);
@@ -503,16 +503,16 @@ class DbxPopoverComponent extends AbstractTransitionWatcherDirective {
503
503
  this.popoverRef.close(value);
504
504
  }
505
505
  _useClosingValue(closeType, useValue) {
506
- if (this.getClosingValueFn != null) {
506
+ if (this.getClosingValueFn == null) {
507
+ useValue();
508
+ }
509
+ else {
507
510
  asPromise(this.getClosingValueFn(this.data, closeType)).then((x) => {
508
511
  useValue(x);
509
512
  }, () => {
510
513
  useValue();
511
514
  });
512
515
  }
513
- else {
514
- useValue();
515
- }
516
516
  }
517
517
  // Keypresses
518
518
  handleKeydown() {
@@ -580,7 +580,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
580
580
  /**
581
581
  * Default key used when no key is specified.
582
582
  */
583
- const DBX_DETACH_DEFAULT_KEY = 'default';
583
+ const DEFAULT_DBX_DETACH_KEY = 'default';
584
584
  /**
585
585
  * Possible display states for a detach instance.
586
586
  */
@@ -608,15 +608,16 @@ class DbxDetachController {
608
608
  * Creates Angular providers that register a {@link DbxDetachController} implementation for DI.
609
609
  *
610
610
  * @param sourceType - The concrete class to provide as the controller.
611
- * @returns An array of Angular providers that bind the source type to {@link DbxDetachController}.
611
+ * @returns Array of Angular providers that bind the source type to {@link DbxDetachController}.
612
612
  *
613
- * @example
614
- * ```typescript
615
- * @Component({
613
+ * @Component ({
616
614
  * providers: provideDbxDetachController(MyDetachController),
617
615
  * })
618
616
  * export class MyComponent {}
619
617
  * ```
618
+ *
619
+ * @example
620
+ * ```typescript
620
621
  */
621
622
  function provideDbxDetachController(sourceType) {
622
623
  return [
@@ -690,6 +691,9 @@ const DBX_THEME_COLORS = [...DBX_THEME_COLORS_MAIN, ...DBX_THEME_COLORS_EXTRA, .
690
691
  * Any non-null object is treated as a config so template-only configs (i.e. `{ template: 'foo' }`)
691
692
  * are detected before the service expands them.
692
693
  *
694
+ * @param value - The value to test.
695
+ * @returns `true` when the value is a {@link DbxColorConfig}
696
+ *
693
697
  * @example
694
698
  * ```ts
695
699
  * isDbxColorConfig('primary'); // false
@@ -697,9 +701,6 @@ const DBX_THEME_COLORS = [...DBX_THEME_COLORS_MAIN, ...DBX_THEME_COLORS_EXTRA, .
697
701
  * isDbxColorConfig({ template: 'brand-positive' }); // true
698
702
  * isDbxColorConfig(undefined); // false
699
703
  * ```
700
- *
701
- * @param value - the value to test
702
- * @returns `true` when the value is a {@link DbxColorConfig}
703
704
  */
704
705
  function isDbxColorConfig(value) {
705
706
  return typeof value === 'object' && value !== null;
@@ -719,15 +720,15 @@ const DBX_COLOR_CUSTOM_TEXT_CSS_CLASS = 'dbx-color-text';
719
720
  /**
720
721
  * Returns the CSS class name for a themed background color.
721
722
  *
723
+ * @param color - The theme color, color config, or nullish/empty for the default class.
724
+ * @returns The CSS class name for the themed background (e.g., `'dbx-primary-bg'`, `'dbx-color-bg'`, or `'dbx-default'`)
725
+ *
722
726
  * @example
723
727
  * ```ts
724
728
  * dbxColorBackground('primary'); // 'dbx-primary-bg'
725
729
  * dbxColorBackground({ color: '#ff0066' }); // 'dbx-color-bg'
726
730
  * dbxColorBackground(undefined); // 'dbx-default'
727
731
  * ```
728
- *
729
- * @param color - the theme color, color config, or nullish/empty for the default class
730
- * @returns the CSS class name for the themed background (e.g., `'dbx-primary-bg'`, `'dbx-color-bg'`, or `'dbx-default'`)
731
732
  */
732
733
  function dbxColorBackground(color) {
733
734
  let cssClass = 'dbx-default'; // default text color class (not -bg) to avoid setting --dbx-bg-color-current which interferes with button label color tokens
@@ -790,6 +791,7 @@ function dbxThemeColorCssTokenVar(color, returnDefault) {
790
791
  return result;
791
792
  }
792
793
  // MARK: Compat
794
+ // COMPAT: Deprecated aliases
793
795
  /**
794
796
  * @deprecated Use {@link dbxThemeColorCssToken} instead.
795
797
  */
@@ -898,16 +900,14 @@ class AbstractProgressButtonDirective {
898
900
  const workingValue = this.workingValueSignal();
899
901
  const mode = config?.mode;
900
902
  let result;
901
- if (!mode) {
902
- if (workingValue != null) {
903
- result = 'determinate';
904
- }
905
- else {
906
- result = 'indeterminate';
907
- }
903
+ if (mode) {
904
+ result = mode;
905
+ }
906
+ else if (workingValue == null) {
907
+ result = 'indeterminate';
908
908
  }
909
909
  else {
910
- result = mode;
910
+ result = 'determinate';
911
911
  }
912
912
  return result;
913
913
  }, ...(ngDevMode ? [{ debugName: "modeSignal" }] : /* istanbul ignore next */ []));
@@ -940,7 +940,8 @@ class AbstractProgressButtonDirective {
940
940
  * Whether button content should be hidden via opacity (working spinner or echo overlay active).
941
941
  */
942
942
  hideContentSignal = computed(() => {
943
- return this.showProgressSignal() || this.echoActiveSignal();
943
+ const echoActive = this.echoActiveSignal();
944
+ return this.showProgressSignal() || echoActive;
944
945
  }, ...(ngDevMode ? [{ debugName: "hideContentSignal" }] : /* istanbul ignore next */ []));
945
946
  /**
946
947
  * When true, the click handler will not call `stopImmediatePropagation()`,
@@ -977,9 +978,22 @@ class DbxColorServiceConfig {
977
978
  * Service that registers named {@link DbxColorConfigTemplate} entries and expands
978
979
  * {@link DbxColorConfig} values that reference a template by key.
979
980
  *
980
- * The pattern mirrors {@link DbxHelpWidgetService} and {@link DbxFirebaseModelEntitiesWidgetService}:
981
- * an internal Map keyed by template key, optional seeding from {@link DbxColorServiceConfig},
982
- * and a `register` method for adding entries at runtime.
981
+ * Seeded via `provideDbxStyleService({ dbxColorServiceConfig: { templates: [...] } })`,
982
+ * then injected by {@link DbxColorDirective} and {@link DbxTextColorDirective} to resolve
983
+ * template references at render time.
984
+ *
985
+ * @dbxWebComponent
986
+ * @dbxWebSlug color-service
987
+ * @dbxWebCategory layout
988
+ * @dbxWebRelated color, text-color, style-service
989
+ *
990
+ * @example
991
+ * ```ts
992
+ * const colorService = inject(DbxColorService);
993
+ * colorService.register({ key: 'brand-positive', config: { color: '#1f9b59', contrast: 'white', tone: 18 } });
994
+ * colorService.expandColorConfig({ template: 'brand-positive' });
995
+ * // -> { template: 'brand-positive', color: '#1f9b59', contrast: 'white', tone: 18 }
996
+ * ```
983
997
  */
984
998
  class DbxColorService {
985
999
  _templates = new Map();
@@ -992,8 +1006,8 @@ class DbxColorService {
992
1006
  /**
993
1007
  * Registers one or more {@link DbxColorConfigTemplate} entries.
994
1008
  *
995
- * @param templates - the template(s) to register
996
- * @param override - whether existing entries with the same key should be replaced (default true)
1009
+ * @param templates - The template(s) to register.
1010
+ * @param override - Whether existing entries with the same key should be replaced (default true)
997
1011
  */
998
1012
  register(templates, override = true) {
999
1013
  useIterableOrValue(templates, (template) => {
@@ -1005,8 +1019,8 @@ class DbxColorService {
1005
1019
  /**
1006
1020
  * Returns whether a template with the given key has been registered.
1007
1021
  *
1008
- * @param key - the template key to check
1009
- * @returns true when a template is registered under the given key
1022
+ * @param key - The template key to check.
1023
+ * @returns True when a template is registered under the given key.
1010
1024
  */
1011
1025
  hasTemplate(key) {
1012
1026
  return this._templates.has(key);
@@ -1014,8 +1028,8 @@ class DbxColorService {
1014
1028
  /**
1015
1029
  * Returns the {@link DbxColorConfigTemplate} registered under the given key, or undefined if none.
1016
1030
  *
1017
- * @param key - the template key to look up
1018
- * @returns the registered template, or undefined when no template matches
1031
+ * @param key - The template key to look up.
1032
+ * @returns The registered template, or undefined when no template matches.
1019
1033
  */
1020
1034
  getTemplate(key) {
1021
1035
  return this._templates.get(key);
@@ -1023,7 +1037,7 @@ class DbxColorService {
1023
1037
  /**
1024
1038
  * Returns all currently registered template keys.
1025
1039
  *
1026
- * @returns array of all registered template keys
1040
+ * @returns Array of all registered template keys.
1027
1041
  */
1028
1042
  getAllRegisteredTemplateKeys() {
1029
1043
  return [...this._templates.keys()];
@@ -1034,6 +1048,9 @@ class DbxColorService {
1034
1048
  *
1035
1049
  * Returns the input unchanged when no template is set or when the template key is unknown.
1036
1050
  *
1051
+ * @param config - The input config to expand.
1052
+ * @returns An expanded config, or the input unchanged when no expansion applies.
1053
+ *
1037
1054
  * @example
1038
1055
  * ```ts
1039
1056
  * service.register({ key: 'brand-positive', config: { color: '#1f9b59', contrast: 'white', tone: 18 } });
@@ -1042,9 +1059,6 @@ class DbxColorService {
1042
1059
  * service.expandColorConfig({ template: 'brand-positive', tone: 60 });
1043
1060
  * // -> { template: 'brand-positive', color: '#1f9b59', contrast: 'white', tone: 60 }
1044
1061
  * ```
1045
- *
1046
- * @param config - the input config to expand
1047
- * @returns an expanded config, or the input unchanged when no expansion applies
1048
1062
  */
1049
1063
  expandColorConfig(config) {
1050
1064
  let result = config;
@@ -1076,6 +1090,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
1076
1090
  * The standalone `[dbxColorTone]` input wins over `config.tone` when both are set; the same precedence
1077
1091
  * applies to tonal mode.
1078
1092
  *
1093
+ * @dbxWebComponent
1094
+ * @dbxWebSlug color
1095
+ * @dbxWebCategory layout
1096
+ * @dbxWebRelated text-color, color-service
1097
+ * @dbxWebMinimalExample ```html
1098
+ * <div [dbxColor]="'primary'"></div>
1099
+ * ```
1100
+ *
1079
1101
  * @example
1080
1102
  * ```html
1081
1103
  * <div [dbxColor]="'primary'">Themed background</div>
@@ -1109,8 +1131,9 @@ class DbxColorDirective {
1109
1131
  * Effective tone used for opacity. The standalone `[dbxColorTone]` input wins when set; otherwise `config.tone` applies.
1110
1132
  */
1111
1133
  effectiveToneSignal = computed(() => {
1134
+ const _config = this._configSignal();
1112
1135
  const inputTone = this.dbxColorTone();
1113
- return inputTone ?? this._configSignal()?.tone;
1136
+ return inputTone ?? _config?.tone;
1114
1137
  }, ...(ngDevMode ? [{ debugName: "effectiveToneSignal" }] : /* istanbul ignore next */ []));
1115
1138
  /**
1116
1139
  * Whether tonal mode is active. Adds the `dbx-color-tonal` CSS class which
@@ -1122,10 +1145,11 @@ class DbxColorDirective {
1122
1145
  * from `config.tone`.
1123
1146
  */
1124
1147
  isTonalSignal = computed(() => {
1148
+ const _config = this._configSignal();
1125
1149
  const inputTone = this.dbxColorTone();
1126
1150
  let tonal = false;
1127
1151
  if (inputTone == null) {
1128
- const config = this._configSignal();
1152
+ const config = _config;
1129
1153
  if (config?.tonal != null) {
1130
1154
  tonal = config.tonal;
1131
1155
  }
@@ -1264,8 +1288,9 @@ class DbxProgressSpinnerButtonComponent extends AbstractProgressButtonDirective
1264
1288
  return showText && config?.buttonIcon; // shows the button icon with showing the text.
1265
1289
  }, ...(ngDevMode ? [{ debugName: "showTextButtonIconSignal" }] : /* istanbul ignore next */ []));
1266
1290
  showIconSignal = computed(() => {
1291
+ const showTextContent = this.showTextContentSignal();
1267
1292
  const config = this.configSignal();
1268
- return (config?.buttonIcon && !this.showTextContentSignal() // button icon must be defined
1293
+ return (config?.buttonIcon && !showTextContent // button icon must be defined
1269
1294
  ); // show icon if either fab or iconOnly is true
1270
1295
  }, ...(ngDevMode ? [{ debugName: "showIconSignal" }] : /* istanbul ignore next */ []));
1271
1296
  customSpinnerStyleSignal = computed(() => {
@@ -1395,22 +1420,27 @@ class DbxButtonComponent extends AbstractDbxButtonDirective {
1395
1420
  allowClickPropagation = input(false, { ...(ngDevMode ? { debugName: "allowClickPropagation" } : /* istanbul ignore next */ {}), transform: isDefinedAndNotFalse });
1396
1421
  mode = input(...(ngDevMode ? [undefined, { debugName: "mode" }] : /* istanbul ignore next */ []));
1397
1422
  styleTypeSignal = computed(() => {
1423
+ const iconOnly = this.iconOnly();
1424
+ const raised = this.raised();
1425
+ const stroked = this.stroked();
1426
+ const flat = this.flat();
1427
+ const tonal = this.tonal();
1398
1428
  const style = this.buttonStyle();
1399
1429
  let type = this.type() ?? style?.type;
1400
1430
  if (!type) {
1401
- if (this.iconOnly()) {
1431
+ if (iconOnly) {
1402
1432
  type = 'icon';
1403
1433
  }
1404
- else if (this.raised()) {
1434
+ else if (raised) {
1405
1435
  type = 'raised';
1406
1436
  }
1407
- else if (this.stroked()) {
1437
+ else if (stroked) {
1408
1438
  type = 'stroked';
1409
1439
  }
1410
- else if (this.flat()) {
1440
+ else if (flat) {
1411
1441
  type = 'flat';
1412
1442
  }
1413
- else if (this.tonal()) {
1443
+ else if (tonal) {
1414
1444
  type = 'tonal';
1415
1445
  }
1416
1446
  }
@@ -1418,8 +1448,10 @@ class DbxButtonComponent extends AbstractDbxButtonDirective {
1418
1448
  }, ...(ngDevMode ? [{ debugName: "styleTypeSignal" }] : /* istanbul ignore next */ []));
1419
1449
  configSignal = computed(() => {
1420
1450
  // configure custom style
1451
+ const customContent = this.customContent();
1421
1452
  const customStyle = {};
1422
1453
  const buttonStyle = this.buttonStyle();
1454
+ // eslint-disable-next-line @typescript-eslint/no-deprecated -- reads the deprecated customButtonColor input/style for backward compatibility until removed
1423
1455
  const customButtonColorValue = this.customButtonColor() ?? buttonStyle?.customButtonColor;
1424
1456
  if (customButtonColorValue) {
1425
1457
  customStyle['background'] = customButtonColorValue;
@@ -1439,7 +1471,7 @@ class DbxButtonComponent extends AbstractDbxButtonDirective {
1439
1471
  const iconValue = this.iconSignal();
1440
1472
  const buttonIcon = iconValue ? { fontIcon: iconValue } : undefined;
1441
1473
  const textValue = this.textSignal();
1442
- const hasTextContent = !!textValue || this._hasProjectedContent || this.customContent();
1474
+ const hasTextContent = !!textValue || this._hasProjectedContent || customContent;
1443
1475
  const isIconOnlyButton = buttonIcon && !hasTextContent;
1444
1476
  const fab = this.fab() || buttonStyle?.fab;
1445
1477
  const mode = this.mode() ?? buttonStyle?.mode;
@@ -2038,58 +2070,62 @@ class DbxDetachService {
2038
2070
  * @returns The new or existing {@link DbxDetachInstance} for the given key.
2039
2071
  */
2040
2072
  init(config) {
2041
- const key = config.key ?? DBX_DETACH_DEFAULT_KEY;
2073
+ const key = config.key ?? DEFAULT_DBX_DETACH_KEY;
2042
2074
  const existing = this._entries.get(key);
2075
+ let instance;
2043
2076
  if (existing) {
2044
- return new DbxDetachInstanceImpl(existing);
2077
+ instance = new DbxDetachInstanceImpl(existing);
2045
2078
  }
2046
- const controller = new DbxDetachEntryController(key, config.data, this);
2047
- // Build injector using shared utility, adding DbxDetachController provider
2048
- const elementInjector = createInjectorForInjectionComponentConfig({
2049
- config: {
2050
- ...config,
2051
- providers: [{ provide: DbxDetachController, useValue: controller }, ...(config.providers ?? [])]
2052
- },
2053
- parentInjector: this._injector
2054
- });
2055
- // Create component imperatively (not in any VCR)
2056
- const componentRef = createComponent(config.componentClass, {
2057
- environmentInjector: this._envInjector,
2058
- elementInjector
2059
- });
2060
- // Run init callback
2061
- initInjectionComponent(componentRef, config);
2062
- // Attach view to ApplicationRef for change detection
2063
- this._appRef.attachView(componentRef.hostView);
2064
- const overlayConfig = config.overlay ?? {};
2065
- const entry = {
2066
- key,
2067
- componentRef,
2068
- controller,
2069
- overlayConfig
2070
- };
2071
- this._entries.set(key, entry);
2072
- this._entries$.next(this._entries);
2073
- return new DbxDetachInstanceImpl(entry);
2079
+ else {
2080
+ const controller = new DbxDetachEntryController(key, config.data, this);
2081
+ // Build injector using shared utility, adding DbxDetachController provider
2082
+ const elementInjector = createInjectorForInjectionComponentConfig({
2083
+ config: {
2084
+ ...config,
2085
+ providers: [{ provide: DbxDetachController, useValue: controller }, ...(config.providers ?? [])]
2086
+ },
2087
+ parentInjector: this._injector
2088
+ });
2089
+ // Create component imperatively (not in any VCR)
2090
+ const componentRef = createComponent(config.componentClass, {
2091
+ environmentInjector: this._envInjector,
2092
+ elementInjector
2093
+ });
2094
+ // Run init callback
2095
+ initInjectionComponent(componentRef, config);
2096
+ // Attach view to ApplicationRef for change detection
2097
+ this._appRef.attachView(componentRef.hostView);
2098
+ const overlayConfig = config.overlay ?? {};
2099
+ const entry = {
2100
+ key,
2101
+ componentRef,
2102
+ controller,
2103
+ overlayConfig
2104
+ };
2105
+ this._entries.set(key, entry);
2106
+ this._entries$.next(this._entries);
2107
+ instance = new DbxDetachInstanceImpl(entry);
2108
+ }
2109
+ return instance;
2074
2110
  }
2075
2111
  /**
2076
2112
  * Gets the instance for the given key, if it exists.
2077
2113
  *
2078
- * @param key - The detach key to look up. Defaults to {@link DBX_DETACH_DEFAULT_KEY}.
2114
+ * @param key - The detach key to look up. Defaults to {@link DEFAULT_DBX_DETACH_KEY}.
2079
2115
  * @returns The instance if found, otherwise `undefined`.
2080
2116
  */
2081
2117
  get(key) {
2082
- const entry = this._entries.get(key ?? DBX_DETACH_DEFAULT_KEY);
2118
+ const entry = this._entries.get(key ?? DEFAULT_DBX_DETACH_KEY);
2083
2119
  return entry ? new DbxDetachInstanceImpl(entry) : undefined;
2084
2120
  }
2085
2121
  /**
2086
2122
  * Observable of whether an entry exists for the given key.
2087
2123
  *
2088
- * @param key - The detach key to observe. Defaults to {@link DBX_DETACH_DEFAULT_KEY}.
2124
+ * @param key - The detach key to observe. Defaults to {@link DEFAULT_DBX_DETACH_KEY}.
2089
2125
  * @returns An observable that emits `true` when an entry exists for the key.
2090
2126
  */
2091
2127
  has$(key) {
2092
- const k = key ?? DBX_DETACH_DEFAULT_KEY;
2128
+ const k = key ?? DEFAULT_DBX_DETACH_KEY;
2093
2129
  return this._entries$.pipe(map((entries) => entries.has(k)), distinctUntilChanged());
2094
2130
  }
2095
2131
  /**
@@ -2103,19 +2139,17 @@ class DbxDetachService {
2103
2139
  */
2104
2140
  attachToOutlet(key, outletElement) {
2105
2141
  const entry = this._entries.get(key);
2106
- if (!entry) {
2107
- return;
2108
- }
2109
- const target = outletElement ?? entry.lastOutlet;
2110
- if (!target?.isConnected) {
2111
- // No outlet available or it's been removed from the DOM
2112
- return;
2142
+ if (entry) {
2143
+ const target = outletElement ?? entry.lastOutlet;
2144
+ // No outlet available or it's been removed from the DOM → skip
2145
+ if (target?.isConnected) {
2146
+ this._closeOverlay(entry);
2147
+ this._moveDomTo(entry, target);
2148
+ entry.currentOutlet = target;
2149
+ entry.lastOutlet = target;
2150
+ entry.controller.setWindowState(DbxDetachWindowState.ATTACHED);
2151
+ }
2113
2152
  }
2114
- this._closeOverlay(entry);
2115
- this._moveDomTo(entry, target);
2116
- entry.currentOutlet = target;
2117
- entry.lastOutlet = target;
2118
- entry.controller.setWindowState(DbxDetachWindowState.ATTACHED);
2119
2153
  }
2120
2154
  /**
2121
2155
  * Moves the component to the floating overlay.
@@ -2295,7 +2329,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
2295
2329
  class DbxDetachInitDirective {
2296
2330
  _detachService = inject(DbxDetachService);
2297
2331
  config = input.required({ ...(ngDevMode ? { debugName: "config" } : /* istanbul ignore next */ {}), alias: 'dbxDetachInit' });
2298
- key = input(DBX_DETACH_DEFAULT_KEY, { ...(ngDevMode ? { debugName: "key" } : /* istanbul ignore next */ {}), alias: 'dbxDetachInitKey' });
2332
+ key = input(DEFAULT_DBX_DETACH_KEY, { ...(ngDevMode ? { debugName: "key" } : /* istanbul ignore next */ {}), alias: 'dbxDetachInitKey' });
2299
2333
  ngOnInit() {
2300
2334
  this._detachService.init({
2301
2335
  ...this.config(),
@@ -2335,7 +2369,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
2335
2369
  class DbxDetachOutletComponent {
2336
2370
  _detachService = inject(DbxDetachService);
2337
2371
  _elementRef = inject(ElementRef);
2338
- key = input(DBX_DETACH_DEFAULT_KEY, ...(ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []));
2372
+ key = input(DEFAULT_DBX_DETACH_KEY, ...(ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []));
2339
2373
  /**
2340
2374
  * When true, the component automatically moves to the floating overlay
2341
2375
  * when this outlet is destroyed (e.g. page navigation). Defaults to false.
@@ -2483,8 +2517,14 @@ class DbxDialogContentFooterComponent {
2483
2517
  config = input(...(ngDevMode ? [undefined, { debugName: "config" }] : /* istanbul ignore next */ []));
2484
2518
  closeText = input(...(ngDevMode ? [undefined, { debugName: "closeText" }] : /* istanbul ignore next */ []));
2485
2519
  buttonColor = input(...(ngDevMode ? [undefined, { debugName: "buttonColor" }] : /* istanbul ignore next */ []));
2486
- closeTextSignal = computed(() => this.closeText() ?? this.config()?.closeText ?? 'Close', ...(ngDevMode ? [{ debugName: "closeTextSignal" }] : /* istanbul ignore next */ []));
2487
- buttonColorSignal = computed(() => this.buttonColor() ?? this.config()?.buttonColor ?? undefined, ...(ngDevMode ? [{ debugName: "buttonColorSignal" }] : /* istanbul ignore next */ []));
2520
+ closeTextSignal = computed(() => {
2521
+ const config = this.config();
2522
+ return this.closeText() ?? config?.closeText ?? 'Close';
2523
+ }, ...(ngDevMode ? [{ debugName: "closeTextSignal" }] : /* istanbul ignore next */ []));
2524
+ buttonColorSignal = computed(() => {
2525
+ const config = this.config();
2526
+ return this.buttonColor() ?? config?.buttonColor ?? undefined;
2527
+ }, ...(ngDevMode ? [{ debugName: "buttonColorSignal" }] : /* istanbul ignore next */ []));
2488
2528
  // eslint-disable-next-line @angular-eslint/no-output-native
2489
2529
  close = output();
2490
2530
  closeClicked() {
@@ -2535,9 +2575,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
2535
2575
  */
2536
2576
  class DbxDialogContentDirective {
2537
2577
  width = input('normal', { ...(ngDevMode ? { debugName: "width" } : /* istanbul ignore next */ {}), transform: (x) => x ?? 'normal' });
2538
- classConfig = computed(() => `${this.width()}-dialog-content`, ...(ngDevMode ? [{ debugName: "classConfig" }] : /* istanbul ignore next */ []));
2578
+ classConfigSignal = computed(() => `${this.width()}-dialog-content`, ...(ngDevMode ? [{ debugName: "classConfigSignal" }] : /* istanbul ignore next */ []));
2539
2579
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxDialogContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
2540
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.11", type: DbxDialogContentDirective, isStandalone: true, selector: "dbx-dialog-content,[dbxDialogContent],.dbx-dialog-content", inputs: { width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classConfig()" }, classAttribute: "dbx-dialog-content" }, ngImport: i0 });
2580
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.11", type: DbxDialogContentDirective, isStandalone: true, selector: "dbx-dialog-content,[dbxDialogContent],.dbx-dialog-content", inputs: { width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classConfigSignal()" }, classAttribute: "dbx-dialog-content" }, ngImport: i0 });
2541
2581
  }
2542
2582
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxDialogContentDirective, decorators: [{
2543
2583
  type: Directive,
@@ -2545,7 +2585,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
2545
2585
  selector: 'dbx-dialog-content,[dbxDialogContent],.dbx-dialog-content',
2546
2586
  host: {
2547
2587
  class: 'dbx-dialog-content',
2548
- '[class]': `classConfig()`
2588
+ '[class]': `classConfigSignal()`
2549
2589
  },
2550
2590
  standalone: true
2551
2591
  }]
@@ -2654,8 +2694,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
2654
2694
  /**
2655
2695
  * Sanitizes a {@link DbxDialogContentConfig} by normalizing the panelClass into an array.
2656
2696
  *
2657
- * @param input - The dialog content config to sanitize, or null/undefined
2658
- * @returns A new config with panelClass normalized to an array of CSS class strings
2697
+ * @param input - The dialog content config to sanitize, or null/undefined.
2698
+ * @returns A new config with panelClass normalized to an array of CSS class strings.
2659
2699
  *
2660
2700
  * @example
2661
2701
  * ```ts
@@ -2884,8 +2924,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
2884
2924
  *
2885
2925
  * Must be called in an Angular injection context. Automatically disconnects the ResizeObserver on destroy.
2886
2926
  *
2887
- * @param inputElement - the element to observe; if omitted, the host element is injected via `ElementRef`
2888
- * @returns a read-only signal of resize events
2927
+ * @param inputElement - The element to observe; if omitted, the host element is injected via `ElementRef`
2928
+ * @returns A read-only signal of resize events.
2889
2929
  *
2890
2930
  * @example
2891
2931
  * ```ts
@@ -3349,11 +3389,9 @@ class DbxFilterPopoverButtonComponent extends AbstractFilterPopoverButtonDirecti
3349
3389
  buttonDisplayStyle = input(...(ngDevMode ? [undefined, { debugName: "buttonDisplayStyle" }] : /* istanbul ignore next */ []));
3350
3390
  buttonDisplaySignal = computed(() => {
3351
3391
  const pairDisplay = this.buttonDisplayStyle()?.display;
3392
+ // eslint-disable-next-line @typescript-eslint/no-deprecated -- reads the deprecated buttonDisplay input for backward compatibility until removed
3352
3393
  const directDisplay = this.buttonDisplay();
3353
- if (!pairDisplay && !directDisplay) {
3354
- return undefined;
3355
- }
3356
- return { ...pairDisplay, ...directDisplay };
3394
+ return !pairDisplay && !directDisplay ? undefined : { ...pairDisplay, ...directDisplay };
3357
3395
  }, ...(ngDevMode ? [{ debugName: "buttonDisplaySignal" }] : /* istanbul ignore next */ []));
3358
3396
  buttonStyleSignal = computed(() => this.buttonDisplayStyle()?.style, ...(ngDevMode ? [{ debugName: "buttonStyleSignal" }] : /* istanbul ignore next */ []));
3359
3397
  showFilterPopover() {
@@ -3476,7 +3514,7 @@ class AbstractDbxPresetFilterMenuDirective {
3476
3514
  this.presetSelected.emit(preset);
3477
3515
  if (presetValue == null || (typeof presetValue !== 'function' && objectHasNoKeys(presetValue))) {
3478
3516
  // set and then reset if the value is null or empty
3479
- this.filterSourceDirective.setFilter((presetValue ?? {}));
3517
+ this.filterSourceDirective.setFilter(presetValue ?? {});
3480
3518
  this.filterSourceDirective.resetFilter();
3481
3519
  }
3482
3520
  else {
@@ -3518,6 +3556,9 @@ class DbxRouterWebProviderConfig {
3518
3556
  *
3519
3557
  * Must be called in an Angular injection context.
3520
3558
  *
3559
+ * @param config - Configuration specifying the click target, child element to intercept, and optional disabled signal.
3560
+ * @returns The created Angular effect reference.
3561
+ *
3521
3562
  * @example
3522
3563
  * ```ts
3523
3564
  * overrideClickElementEffect({
@@ -3525,9 +3566,6 @@ class DbxRouterWebProviderConfig {
3525
3566
  * childClickTarget: this.buttonElementRef
3526
3567
  * });
3527
3568
  * ```
3528
- *
3529
- * @param config - configuration specifying the click target, child element to intercept, and optional disabled signal
3530
- * @returns the created Angular effect reference
3531
3569
  */
3532
3570
  function overrideClickElementEffect(config) {
3533
3571
  const { clickTarget, childClickTarget, disabledSignal } = config;
@@ -3721,19 +3759,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
3721
3759
  */
3722
3760
  class DbxAnchorListComponent {
3723
3761
  anchors = input.required({ ...(ngDevMode ? { debugName: "anchors" } : /* istanbul ignore next */ {}), transform: (x) => x ?? [] });
3724
- expandedAnchors = computed(() => {
3762
+ expandedAnchorsSignal = computed(() => {
3725
3763
  const anchors = this.anchors();
3726
3764
  return expandClickableAnchorLinkTrees(anchors).map((y) => {
3727
3765
  y.classes = `${y.depth > 0 ? 'dbx-anchor-list-child' : 'dbx-anchor-list-root'} dbx-anchor-list-depth-${y.depth}`;
3728
3766
  return y;
3729
3767
  });
3730
- }, ...(ngDevMode ? [{ debugName: "expandedAnchors" }] : /* istanbul ignore next */ []));
3768
+ }, ...(ngDevMode ? [{ debugName: "expandedAnchorsSignal" }] : /* istanbul ignore next */ []));
3731
3769
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxAnchorListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3732
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.11", type: DbxAnchorListComponent, isStandalone: true, selector: "dbx-anchor-list", inputs: { anchors: { classPropertyName: "anchors", publicName: "anchors", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<mat-nav-list class=\"dbx-anchor-list\">\n @for (expanded of expandedAnchors(); track $index; let last = $last) {\n <dbx-anchor [anchor]=\"expanded.value\" [ngClass]=\"expanded.classes\">\n <a mat-list-item [disabled]=\"expanded.value.disabled\">\n @if (expanded.value.icon) {\n <mat-icon matListItemIcon>{{ expanded.value.icon }}</mat-icon>\n }\n <!-- TODO: Add an icon from a letter if anchor.icon is unavailable. -->\n <div matListItemTitle>{{ expanded.value.title }}</div>\n @if (expanded.value.hint) {\n <div matListItemLine class=\"dbx-small\">{{ expanded.value.hint }}</div>\n }\n @if (expanded.value.content) {\n <dbx-injection [config]=\"expanded.value.content\"></dbx-injection>\n }\n </a>\n @if (!last) {\n <mat-divider></mat-divider>\n }\n </dbx-anchor>\n }\n</mat-nav-list>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: MatListItemLine, selector: "[matListItemLine]" }, { kind: "directive", type: MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: DbxAnchorComponent, selector: "dbx-anchor, [dbx-anchor]", inputs: ["block"] }, { kind: "component", type: DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3770
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.11", type: DbxAnchorListComponent, isStandalone: true, selector: "dbx-anchor-list", inputs: { anchors: { classPropertyName: "anchors", publicName: "anchors", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<mat-nav-list class=\"dbx-anchor-list\">\n @for (expanded of expandedAnchorsSignal(); track $index; let last = $last) {\n <dbx-anchor [anchor]=\"expanded.value\" [ngClass]=\"expanded.classes\">\n <a mat-list-item [disabled]=\"expanded.value.disabled\">\n @if (expanded.value.icon) {\n <mat-icon matListItemIcon>{{ expanded.value.icon }}</mat-icon>\n }\n <!-- TODO: Add an icon from a letter if anchor.icon is unavailable. -->\n <div matListItemTitle>{{ expanded.value.title }}</div>\n @if (expanded.value.hint) {\n <div matListItemLine class=\"dbx-small\">{{ expanded.value.hint }}</div>\n }\n @if (expanded.value.content) {\n <dbx-injection [config]=\"expanded.value.content\"></dbx-injection>\n }\n </a>\n @if (!last) {\n <mat-divider></mat-divider>\n }\n </dbx-anchor>\n }\n</mat-nav-list>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: MatListItemLine, selector: "[matListItemLine]" }, { kind: "directive", type: MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: DbxAnchorComponent, selector: "dbx-anchor, [dbx-anchor]", inputs: ["block"] }, { kind: "component", type: DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3733
3771
  }
3734
3772
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxAnchorListComponent, decorators: [{
3735
3773
  type: Component,
3736
- args: [{ selector: 'dbx-anchor-list', imports: [NgClass, MatNavList, MatListItem, MatListItemIcon, MatListItemLine, MatListItemTitle, MatIconModule, MatDivider, DbxAnchorComponent, DbxInjectionComponent], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<mat-nav-list class=\"dbx-anchor-list\">\n @for (expanded of expandedAnchors(); track $index; let last = $last) {\n <dbx-anchor [anchor]=\"expanded.value\" [ngClass]=\"expanded.classes\">\n <a mat-list-item [disabled]=\"expanded.value.disabled\">\n @if (expanded.value.icon) {\n <mat-icon matListItemIcon>{{ expanded.value.icon }}</mat-icon>\n }\n <!-- TODO: Add an icon from a letter if anchor.icon is unavailable. -->\n <div matListItemTitle>{{ expanded.value.title }}</div>\n @if (expanded.value.hint) {\n <div matListItemLine class=\"dbx-small\">{{ expanded.value.hint }}</div>\n }\n @if (expanded.value.content) {\n <dbx-injection [config]=\"expanded.value.content\"></dbx-injection>\n }\n </a>\n @if (!last) {\n <mat-divider></mat-divider>\n }\n </dbx-anchor>\n }\n</mat-nav-list>\n" }]
3774
+ args: [{ selector: 'dbx-anchor-list', imports: [NgClass, MatNavList, MatListItem, MatListItemIcon, MatListItemLine, MatListItemTitle, MatIconModule, MatDivider, DbxAnchorComponent, DbxInjectionComponent], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<mat-nav-list class=\"dbx-anchor-list\">\n @for (expanded of expandedAnchorsSignal(); track $index; let last = $last) {\n <dbx-anchor [anchor]=\"expanded.value\" [ngClass]=\"expanded.classes\">\n <a mat-list-item [disabled]=\"expanded.value.disabled\">\n @if (expanded.value.icon) {\n <mat-icon matListItemIcon>{{ expanded.value.icon }}</mat-icon>\n }\n <!-- TODO: Add an icon from a letter if anchor.icon is unavailable. -->\n <div matListItemTitle>{{ expanded.value.title }}</div>\n @if (expanded.value.hint) {\n <div matListItemLine class=\"dbx-small\">{{ expanded.value.hint }}</div>\n }\n @if (expanded.value.content) {\n <dbx-injection [config]=\"expanded.value.content\"></dbx-injection>\n }\n </a>\n @if (!last) {\n <mat-divider></mat-divider>\n }\n </dbx-anchor>\n }\n</mat-nav-list>\n" }]
3737
3775
  }], propDecorators: { anchors: [{ type: i0.Input, args: [{ isSignal: true, alias: "anchors", required: true }] }] } });
3738
3776
 
3739
3777
  /**
@@ -3766,10 +3804,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
3766
3804
  /**
3767
3805
  * Creates an observable that emits the button text for a preset filter menu based on the current selection.
3768
3806
  *
3769
- * @param config$ - Observable of the preset filter menu configuration
3770
- * @param selection$ - Observable of the currently selected preset, used to derive the display title
3807
+ * @param config$ - Observable of the preset filter menu configuration.
3808
+ * @param selection$ - Observable of the currently selected preset, used to derive the display title.
3771
3809
  * @param defaultText - Fallback text when no selection or unknownSelectionText is configured. Defaults to 'Filter'.
3772
- * @returns An observable emitting the resolved button text string
3810
+ * @returns An observable emitting the resolved button text string.
3773
3811
  *
3774
3812
  * @example
3775
3813
  * ```ts
@@ -3782,10 +3820,10 @@ function dbxPresetFilterMenuButtonTextObservable(config$, selection$, defaultTex
3782
3820
  /**
3783
3821
  * Creates an observable that emits the button icon for a preset filter menu based on the current selection and config.
3784
3822
  *
3785
- * @param config$ - Observable of the preset filter menu configuration controlling icon behavior
3786
- * @param selection$ - Observable of the currently selected preset, used to derive the display icon
3823
+ * @param config$ - Observable of the preset filter menu configuration controlling icon behavior.
3824
+ * @param selection$ - Observable of the currently selected preset, used to derive the display icon.
3787
3825
  * @param defaultIcon - Fallback icon when no filterIcon is configured. Defaults to 'arrow_drop_down'.
3788
- * @returns An observable emitting the resolved icon string, or undefined when no icon should be shown
3826
+ * @returns An observable emitting the resolved icon string, or undefined when no icon should be shown.
3789
3827
  *
3790
3828
  * @example
3791
3829
  * ```ts
@@ -3864,7 +3902,7 @@ class AbstractDbxPartialPresetFilterMenuDirective {
3864
3902
  const presetValue = preset.partialPresetValue;
3865
3903
  if (presetValue == null || (typeof presetValue !== 'function' && objectHasNoKeys(presetValue))) {
3866
3904
  // set and then reset if the value is null or empty
3867
- this.filterSourceDirective.setFilter((presetValue ?? {}));
3905
+ this.filterSourceDirective.setFilter(presetValue ?? {});
3868
3906
  this.filterSourceDirective.resetFilter();
3869
3907
  }
3870
3908
  else {
@@ -4014,9 +4052,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
4014
4052
  /**
4015
4053
  * Opens a dialog containing a {@link DbxIframeComponent} to display a URL in an iframe.
4016
4054
  *
4017
- * @param matDialog - The Angular Material dialog service used to open the dialog
4018
- * @param config - Configuration specifying the content URL and dialog options
4019
- * @returns A reference to the opened dialog for controlling or subscribing to its lifecycle
4055
+ * @param matDialog - The Angular Material dialog service used to open the dialog.
4056
+ * @param config - Configuration specifying the content URL and dialog options.
4057
+ * @returns A reference to the opened dialog for controlling or subscribing to its lifecycle.
4020
4058
  *
4021
4059
  * @example
4022
4060
  * ```ts
@@ -4163,9 +4201,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
4163
4201
  /**
4164
4202
  * Opens a dialog containing a {@link DbxEmbedComponent} to display embedded content from a URL or Blob.
4165
4203
  *
4166
- * @param matDialog - The Angular Material dialog service used to open the dialog
4167
- * @param config - Configuration specifying the content source (URL or Blob), MIME type, and dialog options
4168
- * @returns A reference to the opened dialog for controlling or subscribing to its lifecycle
4204
+ * @param matDialog - The Angular Material dialog service used to open the dialog.
4205
+ * @param config - Configuration specifying the content source (URL or Blob), MIME type, and dialog options.
4206
+ * @returns A reference to the opened dialog for controlling or subscribing to its lifecycle.
4169
4207
  *
4170
4208
  * @example
4171
4209
  * ```ts
@@ -4700,12 +4738,13 @@ class DbxPromptConfirm {
4700
4738
  * Provides a {@link DbxPromptConfirm} implementation for dependency injection.
4701
4739
  *
4702
4740
  * @param sourceType - The concrete class that implements {@link DbxPromptConfirm}
4703
- * @returns An array of providers that register the given type as the {@link DbxPromptConfirm} implementation
4741
+ * @returns The providers that register the given type as the {@link DbxPromptConfirm} implementation.
4742
+ *
4743
+ * @Directive ({ providers: provideDbxPromptConfirm(MyConfirmDirective) })
4744
+ * ```
4704
4745
  *
4705
4746
  * @example
4706
4747
  * ```ts
4707
- * @Directive({ providers: provideDbxPromptConfirm(MyConfirmDirective) })
4708
- * ```
4709
4748
  */
4710
4749
  function provideDbxPromptConfirm(sourceType) {
4711
4750
  return [
@@ -4776,6 +4815,7 @@ class DbxSectionHeaderComponent {
4776
4815
  hintInline = input(...(ngDevMode ? [undefined, { debugName: "hintInline" }] : /* istanbul ignore next */ []));
4777
4816
  hintInlineDefault = signal(undefined, ...(ngDevMode ? [{ debugName: "hintInlineDefault" }] : /* istanbul ignore next */ []));
4778
4817
  headerConfigSignal = computed(() => {
4818
+ const hintInlineDefault = this.hintInlineDefault();
4779
4819
  const headerConfig = this.headerConfig();
4780
4820
  const config = {
4781
4821
  h: this.h() ?? headerConfig?.h,
@@ -4784,7 +4824,7 @@ class DbxSectionHeaderComponent {
4784
4824
  onlyHeader: this.onlyHeader() ?? headerConfig?.onlyHeader,
4785
4825
  icon: this.icon() ?? headerConfig?.icon,
4786
4826
  hint: this.hint() ?? headerConfig?.hint,
4787
- hintInline: this.hintInline() ?? headerConfig?.hintInline ?? this.hintInlineDefault()
4827
+ hintInline: this.hintInline() ?? headerConfig?.hintInline ?? hintInlineDefault
4788
4828
  };
4789
4829
  return config;
4790
4830
  }, ...(ngDevMode ? [{ debugName: "headerConfigSignal" }] : /* istanbul ignore next */ []));
@@ -4940,11 +4980,11 @@ class DbxSectionComponent extends DbxSectionHeaderComponent {
4940
4980
  * Apply elevated card styling.
4941
4981
  */
4942
4982
  elevate = input(false, ...(ngDevMode ? [{ debugName: "elevate" }] : /* istanbul ignore next */ []));
4943
- classConfig = computed(() => {
4983
+ classConfigSignal = computed(() => {
4944
4984
  return this.elevate() ? 'dbx-section-elevate dbx-content-elevate' : '';
4945
- }, ...(ngDevMode ? [{ debugName: "classConfig" }] : /* istanbul ignore next */ []));
4985
+ }, ...(ngDevMode ? [{ debugName: "classConfigSignal" }] : /* istanbul ignore next */ []));
4946
4986
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxSectionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
4947
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.11", type: DbxSectionComponent, isStandalone: true, selector: "dbx-section", inputs: { elevate: { classPropertyName: "elevate", publicName: "elevate", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "region" }, properties: { "class": "classConfig()", "attr.aria-label": "headerConfigSignal().header" }, classAttribute: "d-block dbx-section" }, usesInheritance: true, ngImport: i0, template: `
4987
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.11", type: DbxSectionComponent, isStandalone: true, selector: "dbx-section", inputs: { elevate: { classPropertyName: "elevate", publicName: "elevate", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "region" }, properties: { "class": "classConfigSignal()", "attr.aria-label": "headerConfigSignal().header" }, classAttribute: "d-block dbx-section" }, usesInheritance: true, ngImport: i0, template: `
4948
4988
  <div class="dbx-section-header" [h]="headerConfigSignal().h ?? 3" [header]="headerConfigSignal().header" [onlyHeader]="headerConfigSignal().onlyHeader" [icon]="headerConfigSignal().icon" [hint]="headerConfigSignal().hint" [hintInline]="headerConfigSignal().hintInline">
4949
4989
  <ng-content select="[sectionHeader]"></ng-content>
4950
4990
  </div>
@@ -4968,7 +5008,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
4968
5008
  host: {
4969
5009
  class: 'd-block dbx-section',
4970
5010
  role: 'region',
4971
- '[class]': 'classConfig()',
5011
+ '[class]': 'classConfigSignal()',
4972
5012
  '[attr.aria-label]': 'headerConfigSignal().header'
4973
5013
  },
4974
5014
  imports: [DbxSectionHeaderComponent],
@@ -5292,11 +5332,11 @@ class DbxContentContainerDirective {
5292
5332
  grow = input('wide', ...(ngDevMode ? [{ debugName: "grow" }] : /* istanbul ignore next */ []));
5293
5333
  padding = input('normal', ...(ngDevMode ? [{ debugName: "padding" }] : /* istanbul ignore next */ []));
5294
5334
  topPadding = input('none', ...(ngDevMode ? [{ debugName: "topPadding" }] : /* istanbul ignore next */ []));
5295
- classConfig = computed(() => {
5335
+ classConfigSignal = computed(() => {
5296
5336
  return 'container-' + this.grow() + ' container-padding-' + this.padding() + ' container-top-padding-' + this.topPadding();
5297
- }, ...(ngDevMode ? [{ debugName: "classConfig" }] : /* istanbul ignore next */ []));
5337
+ }, ...(ngDevMode ? [{ debugName: "classConfigSignal" }] : /* istanbul ignore next */ []));
5298
5338
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxContentContainerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
5299
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.11", type: DbxContentContainerDirective, isStandalone: true, selector: "dbx-content-container,[dbxContentContainer],.dbx-content-container", inputs: { grow: { classPropertyName: "grow", publicName: "grow", isSignal: true, isRequired: false, transformFunction: null }, padding: { classPropertyName: "padding", publicName: "padding", isSignal: true, isRequired: false, transformFunction: null }, topPadding: { classPropertyName: "topPadding", publicName: "topPadding", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classConfig()" }, classAttribute: "d-block dbx-content-container" }, ngImport: i0 });
5339
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.11", type: DbxContentContainerDirective, isStandalone: true, selector: "dbx-content-container,[dbxContentContainer],.dbx-content-container", inputs: { grow: { classPropertyName: "grow", publicName: "grow", isSignal: true, isRequired: false, transformFunction: null }, padding: { classPropertyName: "padding", publicName: "padding", isSignal: true, isRequired: false, transformFunction: null }, topPadding: { classPropertyName: "topPadding", publicName: "topPadding", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classConfigSignal()" }, classAttribute: "d-block dbx-content-container" }, ngImport: i0 });
5300
5340
  }
5301
5341
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxContentContainerDirective, decorators: [{
5302
5342
  type: Directive,
@@ -5304,7 +5344,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
5304
5344
  selector: 'dbx-content-container,[dbxContentContainer],.dbx-content-container',
5305
5345
  host: {
5306
5346
  class: 'd-block dbx-content-container',
5307
- '[class]': `classConfig()`
5347
+ '[class]': `classConfigSignal()`
5308
5348
  },
5309
5349
  standalone: true
5310
5350
  }]
@@ -5478,8 +5518,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
5478
5518
  /**
5479
5519
  * Returns a string that can be used as the "accept" attribute of a file input element.
5480
5520
  *
5481
- * @param accept - A file accept string or array of filter type strings to convert
5482
- * @returns A comma-separated string suitable for the HTML accept attribute
5521
+ * @param accept - A file accept string or array of filter type strings to convert.
5522
+ * @returns A comma-separated string suitable for the HTML accept attribute.
5483
5523
  */
5484
5524
  function fileAcceptString(accept) {
5485
5525
  return typeof accept === 'string' ? accept : accept.join(',');
@@ -5487,8 +5527,8 @@ function fileAcceptString(accept) {
5487
5527
  /**
5488
5528
  * Converts a comma-separated accept string or array into a {@link FileAcceptFilterTypeStringArray}.
5489
5529
  *
5490
- * @param accept - A file accept string or array of filter type strings to normalize
5491
- * @returns An array of individual filter type strings
5530
+ * @param accept - A file accept string or array of filter type strings to normalize.
5531
+ * @returns The individual filter type strings.
5492
5532
  *
5493
5533
  * @example
5494
5534
  * ```ts
@@ -5502,8 +5542,8 @@ function fileAcceptFilterTypeStringArray(accept) {
5502
5542
  /**
5503
5543
  * Creates a {@link FileArrayAcceptMatchFunction} that filters and separates files based on accept criteria and multiple file support.
5504
5544
  *
5505
- * @param config - Configuration specifying the accept criteria and whether multiple files are allowed
5506
- * @returns A function that accepts an array of files and returns the categorized match result
5545
+ * @param config - Configuration specifying the accept criteria and whether multiple files are allowed.
5546
+ * @returns Accepts an array of files and returns the categorized match result.
5507
5547
  *
5508
5548
  * @example
5509
5549
  * ```ts
@@ -5511,6 +5551,7 @@ function fileAcceptFilterTypeStringArray(accept) {
5511
5551
  * const result = matchFn(fileList);
5512
5552
  * console.log(result.accepted, result.rejected);
5513
5553
  * ```
5554
+ *
5514
5555
  * @__NO_SIDE_EFFECTS__
5515
5556
  */
5516
5557
  function fileArrayAcceptMatchFunction(config) {
@@ -5531,8 +5572,8 @@ function fileArrayAcceptMatchFunction(config) {
5531
5572
  /**
5532
5573
  * Creates a {@link FileAcceptFunction} that checks individual files against accept criteria (MIME types, wildcards, or file extensions).
5533
5574
  *
5534
- * @param accept - A file accept string or array specifying which MIME types, wildcards, or file extensions to allow
5535
- * @returns A decision function that returns true if a file matches any of the accept criteria
5575
+ * @param accept - A file accept string or array specifying which MIME types, wildcards, or file extensions to allow.
5576
+ * @returns A decision function that returns true if a file matches any of the accept criteria.
5536
5577
  *
5537
5578
  * @example
5538
5579
  * ```ts
@@ -5540,6 +5581,7 @@ function fileArrayAcceptMatchFunction(config) {
5540
5581
  * isAccepted({ name: 'photo.png', type: 'image/png' }); // true
5541
5582
  * isAccepted({ name: 'doc.txt', type: 'text/plain' }); // false
5542
5583
  * ```
5584
+ *
5543
5585
  * @__NO_SIDE_EFFECTS__
5544
5586
  */
5545
5587
  function fileAcceptFunction(accept) {
@@ -5588,12 +5630,13 @@ class DbxFileUploadActionCompatable {
5588
5630
  * Provides a {@link DbxFileUploadActionCompatable} for dependency injection from the given component type.
5589
5631
  *
5590
5632
  * @param sourceType - The concrete component class that implements {@link DbxFileUploadActionCompatable}
5591
- * @returns An array of providers that register the given type as the {@link DbxFileUploadActionCompatable} implementation
5633
+ * @returns The providers that register the given type as the {@link DbxFileUploadActionCompatable} implementation.
5634
+ *
5635
+ * @Component ({ providers: provideDbxFileUploadActionCompatable(MyUploadComponent) })
5636
+ * ```
5592
5637
  *
5593
5638
  * @example
5594
5639
  * ```ts
5595
- * @Component({ providers: provideDbxFileUploadActionCompatable(MyUploadComponent) })
5596
- * ```
5597
5640
  */
5598
5641
  function provideDbxFileUploadActionCompatable(sourceType) {
5599
5642
  return [
@@ -6141,15 +6184,16 @@ class DbxErrorWidgetService {
6141
6184
  });
6142
6185
  }
6143
6186
  register(entry, override = true) {
6187
+ let registered = false;
6144
6188
  if (override || !this._entries.has(entry.code)) {
6145
6189
  this._entries.set(entry.code, {
6146
6190
  ...entry,
6147
6191
  // eslint-disable-next-line @typescript-eslint/no-deprecated
6148
6192
  widgetComponentClass: entry.widgetComponentClass ?? entry.componentClass
6149
6193
  });
6150
- return true;
6194
+ registered = true;
6151
6195
  }
6152
- return false;
6196
+ return registered;
6153
6197
  }
6154
6198
  // MARK: Get
6155
6199
  getErrorWidgetIdentifiers() {
@@ -6197,21 +6241,21 @@ class DbxErrorWidgetViewComponent {
6197
6241
  let config;
6198
6242
  if (error != null) {
6199
6243
  const entry = this.dbxErrorWidgetService.getErrorWidgetEntry(error.code);
6200
- if (entry != null) {
6201
- const defaultEntry = this.dbxErrorWidgetService.getDefaultErrorWidgetEntry();
6202
- const componentClass = entry.widgetComponentClass ?? defaultEntry?.widgetComponentClass;
6203
- if (componentClass != null) {
6244
+ if (entry == null) {
6245
+ const unknownEntry = this.dbxErrorWidgetService.getUnknownErrorWidgetEntry();
6246
+ if (unknownEntry?.widgetComponentClass != null) {
6204
6247
  config = {
6205
- componentClass,
6248
+ componentClass: unknownEntry?.widgetComponentClass,
6206
6249
  data: error
6207
6250
  };
6208
6251
  }
6209
6252
  }
6210
6253
  else {
6211
- const unknownEntry = this.dbxErrorWidgetService.getUnknownErrorWidgetEntry();
6212
- if (unknownEntry?.widgetComponentClass != null) {
6254
+ const defaultEntry = this.dbxErrorWidgetService.getDefaultErrorWidgetEntry();
6255
+ const componentClass = entry.widgetComponentClass ?? defaultEntry?.widgetComponentClass;
6256
+ if (componentClass != null) {
6213
6257
  config = {
6214
- componentClass: unknownEntry?.widgetComponentClass,
6258
+ componentClass,
6215
6259
  data: error
6216
6260
  };
6217
6261
  }
@@ -6338,6 +6382,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
6338
6382
  * object carrying an arbitrary CSS color value. Unlike {@link DbxColorDirective} which sets the background,
6339
6383
  * this directive only sets the foreground text color.
6340
6384
  *
6385
+ * @dbxWebComponent
6386
+ * @dbxWebSlug text-color
6387
+ * @dbxWebCategory layout
6388
+ * @dbxWebRelated color, color-service
6389
+ * @dbxWebMinimalExample ```html
6390
+ * <span [dbxTextColor]="'primary'"></span>
6391
+ * ```
6392
+ *
6341
6393
  * @example
6342
6394
  * ```html
6343
6395
  * <mat-icon [dbxTextColor]="'warn'">error</mat-icon>
@@ -6479,11 +6531,18 @@ class DbxErrorComponent {
6479
6531
  error = input(...(ngDevMode ? [undefined, { debugName: "error" }] : /* istanbul ignore next */ []));
6480
6532
  iconOnly = input(false, ...(ngDevMode ? [{ debugName: "iconOnly" }] : /* istanbul ignore next */ []));
6481
6533
  _errorOverrideSignal = signal(undefined, ...(ngDevMode ? [{ debugName: "_errorOverrideSignal" }] : /* istanbul ignore next */ []));
6482
- errorSignal = computed(() => this._errorOverrideSignal() ?? this.error(), ...(ngDevMode ? [{ debugName: "errorSignal" }] : /* istanbul ignore next */ []));
6483
- state = computed(() => {
6534
+ errorSignal = computed(() => {
6535
+ const error = this.error();
6536
+ return this._errorOverrideSignal() ?? error;
6537
+ }, ...(ngDevMode ? [{ debugName: "errorSignal" }] : /* istanbul ignore next */ []));
6538
+ stateSignal = computed(() => {
6484
6539
  const rawError = this.errorSignal();
6485
6540
  const iconOnly = this.iconOnly();
6486
- if (rawError != null) {
6541
+ let result;
6542
+ if (rawError == null) {
6543
+ result = { viewType: 'none' };
6544
+ }
6545
+ else {
6487
6546
  const error = toReadableError(rawError);
6488
6547
  const isDefaultError = iconOnly ? false : isDefaultReadableError(error);
6489
6548
  let state = {
@@ -6510,19 +6569,19 @@ class DbxErrorComponent {
6510
6569
  };
6511
6570
  }
6512
6571
  }
6513
- return state;
6514
- }
6515
- return { viewType: 'none' };
6516
- }, ...(ngDevMode ? [{ debugName: "state" }] : /* istanbul ignore next */ []));
6517
- viewTypeSignal = computed(() => this.state().viewType, ...(ngDevMode ? [{ debugName: "viewTypeSignal" }] : /* istanbul ignore next */ []));
6518
- isDefaultErrorSignal = computed(() => this.state().isDefaultError, ...(ngDevMode ? [{ debugName: "isDefaultErrorSignal" }] : /* istanbul ignore next */ []));
6519
- messageSignal = computed(() => this.state().message, ...(ngDevMode ? [{ debugName: "messageSignal" }] : /* istanbul ignore next */ []));
6520
- customViewSignal = computed(() => this.state().customView, ...(ngDevMode ? [{ debugName: "customViewSignal" }] : /* istanbul ignore next */ []));
6572
+ result = state;
6573
+ }
6574
+ return result;
6575
+ }, ...(ngDevMode ? [{ debugName: "stateSignal" }] : /* istanbul ignore next */ []));
6576
+ viewTypeSignal = computed(() => this.stateSignal().viewType, ...(ngDevMode ? [{ debugName: "viewTypeSignal" }] : /* istanbul ignore next */ []));
6577
+ isDefaultErrorSignal = computed(() => this.stateSignal().isDefaultError, ...(ngDevMode ? [{ debugName: "isDefaultErrorSignal" }] : /* istanbul ignore next */ []));
6578
+ messageSignal = computed(() => this.stateSignal().message, ...(ngDevMode ? [{ debugName: "messageSignal" }] : /* istanbul ignore next */ []));
6579
+ customViewSignal = computed(() => this.stateSignal().customView, ...(ngDevMode ? [{ debugName: "customViewSignal" }] : /* istanbul ignore next */ []));
6521
6580
  setError(error) {
6522
6581
  this._errorOverrideSignal.set(error);
6523
6582
  }
6524
6583
  openErrorPopover(event) {
6525
- const error = this.state().error;
6584
+ const error = this.stateSignal().error;
6526
6585
  if (error != null) {
6527
6586
  const popoverRef = DbxErrorPopoverComponent.openPopover(this.popoverService, {
6528
6587
  origin: event.origin,
@@ -6596,8 +6655,8 @@ class DbxLoadingProgressComponent {
6596
6655
  color = input('primary', ...(ngDevMode ? [{ debugName: "color" }] : /* istanbul ignore next */ []));
6597
6656
  value = input(...(ngDevMode ? [undefined, { debugName: "value" }] : /* istanbul ignore next */ []));
6598
6657
  bufferValue = input(...(ngDevMode ? [undefined, { debugName: "bufferValue" }] : /* istanbul ignore next */ []));
6599
- bmode = computed(() => this.mode(), ...(ngDevMode ? [{ debugName: "bmode" }] : /* istanbul ignore next */ []));
6600
- smode = computed(() => this.mode(), ...(ngDevMode ? [{ debugName: "smode" }] : /* istanbul ignore next */ []));
6658
+ bmodeSignal = computed(() => this.mode(), ...(ngDevMode ? [{ debugName: "bmodeSignal" }] : /* istanbul ignore next */ []));
6659
+ smodeSignal = computed(() => this.mode(), ...(ngDevMode ? [{ debugName: "smodeSignal" }] : /* istanbul ignore next */ []));
6601
6660
  diameterSignal = computed(() => this.diameter() || this.defaultDiameter, ...(ngDevMode ? [{ debugName: "diameterSignal" }] : /* istanbul ignore next */ []));
6602
6661
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxLoadingProgressComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6603
6662
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.11", 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: `
@@ -6605,10 +6664,10 @@ class DbxLoadingProgressComponent {
6605
6664
  <span class="loading-progress-view-indicator" [dbxColor]="color()">
6606
6665
  @switch (linear()) {
6607
6666
  @case (true) {
6608
- <mat-progress-bar [mode]="bmode()" [bufferValue]="bufferValue()" [value]="value()" style="margin: auto;"></mat-progress-bar>
6667
+ <mat-progress-bar [mode]="bmodeSignal()" [bufferValue]="bufferValue()" [value]="value()" style="margin: auto;"></mat-progress-bar>
6609
6668
  }
6610
6669
  @default {
6611
- <mat-progress-spinner [diameter]="diameterSignal()" [mode]="smode()" [value]="value()" style="margin: auto;"></mat-progress-spinner>
6670
+ <mat-progress-spinner [diameter]="diameterSignal()" [mode]="smodeSignal()" [value]="value()" style="margin: auto;"></mat-progress-spinner>
6612
6671
  }
6613
6672
  }
6614
6673
  </span>
@@ -6627,10 +6686,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
6627
6686
  <span class="loading-progress-view-indicator" [dbxColor]="color()">
6628
6687
  @switch (linear()) {
6629
6688
  @case (true) {
6630
- <mat-progress-bar [mode]="bmode()" [bufferValue]="bufferValue()" [value]="value()" style="margin: auto;"></mat-progress-bar>
6689
+ <mat-progress-bar [mode]="bmodeSignal()" [bufferValue]="bufferValue()" [value]="value()" style="margin: auto;"></mat-progress-bar>
6631
6690
  }
6632
6691
  @default {
6633
- <mat-progress-spinner [diameter]="diameterSignal()" [mode]="smode()" [value]="value()" style="margin: auto;"></mat-progress-spinner>
6692
+ <mat-progress-spinner [diameter]="diameterSignal()" [mode]="smodeSignal()" [value]="value()" style="margin: auto;"></mat-progress-spinner>
6634
6693
  }
6635
6694
  }
6636
6695
  </span>
@@ -6690,16 +6749,14 @@ class DbxBasicLoadingComponent {
6690
6749
  const mode = this.mode();
6691
6750
  const loadingProgress = this.loadingProgressSignal();
6692
6751
  let result;
6693
- if (!mode) {
6694
- if (loadingProgress != null) {
6695
- result = 'determinate';
6696
- }
6697
- else {
6698
- result = 'indeterminate';
6699
- }
6752
+ if (mode) {
6753
+ result = mode;
6754
+ }
6755
+ else if (loadingProgress == null) {
6756
+ result = 'indeterminate';
6700
6757
  }
6701
6758
  else {
6702
- result = mode;
6759
+ result = 'determinate';
6703
6760
  }
6704
6761
  return result;
6705
6762
  }, ...(ngDevMode ? [{ debugName: "modeSignal" }] : /* istanbul ignore next */ []));
@@ -6773,7 +6830,10 @@ class DbxLoadingComponent {
6773
6830
  loading = input(...(ngDevMode ? [undefined, { debugName: "loading" }] : /* istanbul ignore next */ []));
6774
6831
  error = input(...(ngDevMode ? [undefined, { debugName: "error" }] : /* istanbul ignore next */ []));
6775
6832
  context = input(...(ngDevMode ? [undefined, { debugName: "context" }] : /* istanbul ignore next */ []));
6776
- contextSignal = computed(() => this._contextOverrideSignal() ?? this.context(), ...(ngDevMode ? [{ debugName: "contextSignal" }] : /* istanbul ignore next */ []));
6833
+ contextSignal = computed(() => {
6834
+ const context = this.context();
6835
+ return this._contextOverrideSignal() ?? context;
6836
+ }, ...(ngDevMode ? [{ debugName: "contextSignal" }] : /* istanbul ignore next */ []));
6777
6837
  contextStream$ = toObservable(this.contextSignal).pipe(maybeValueFromObservableOrValue(), switchMapMaybeLoadingContextStream(), shareReplay(1));
6778
6838
  contextStreamSignal = toSignal(this.contextStream$);
6779
6839
  stateSignal = computed(() => {
@@ -6804,7 +6864,7 @@ class DbxLoadingComponent {
6804
6864
  /**
6805
6865
  * Sets/overrides the context directly.
6806
6866
  *
6807
- * @param context Context source to use as an override.
6867
+ * @param context - Context source to use as an override.
6808
6868
  */
6809
6869
  setContext(context) {
6810
6870
  this._contextOverrideSignal.set(context);
@@ -7126,7 +7186,7 @@ const DBX_ACTION_SNACKBAR_DEFAULTS = {
7126
7186
  * is included in the generated config.
7127
7187
  *
7128
7188
  * @param config - Per-state message configurations (idle, loading, success, error).
7129
- * @returns A function that maps generator input to a snackbar display configuration.
7189
+ * @returns Maps generator input to a snackbar display configuration.
7130
7190
  *
7131
7191
  * @example
7132
7192
  * ```typescript
@@ -7160,15 +7220,15 @@ function makeDbxActionSnackbarDisplayConfigGeneratorFunction(config) {
7160
7220
  else {
7161
7221
  reference = getValueFromGetter(undoInput);
7162
7222
  }
7163
- if (!reference) {
7164
- console.error('Expected action source reference was not provided to undo...');
7165
- }
7166
- else {
7223
+ if (reference) {
7167
7224
  building.action = {
7168
7225
  button: undoButtonText ?? 'Undo',
7169
7226
  reference
7170
7227
  };
7171
7228
  }
7229
+ else {
7230
+ console.error('Expected action source reference was not provided to undo...');
7231
+ }
7172
7232
  }
7173
7233
  result = building;
7174
7234
  }
@@ -7470,8 +7530,8 @@ class DbxActionTransitionSafetyDirective {
7470
7530
  }
7471
7531
  _handleOnBeforeTransition(transition) {
7472
7532
  return firstValueFrom(combineLatest([this.source.isModified$, this.safetyType$]).pipe(first(), mergeMap(([isModified, safetyType]) => {
7473
- if (isModified) {
7474
- return race([
7533
+ return isModified
7534
+ ? race([
7475
7535
  // Watch for success to occur. At that point, close everything.
7476
7536
  this.source.success$.pipe(first(), map(() => [true, undefined])),
7477
7537
  this._handleIsModifiedState(transition, safetyType).pipe(first(), map((x) => [undefined, x]))
@@ -7479,9 +7539,8 @@ class DbxActionTransitionSafetyDirective {
7479
7539
  return saveSuccess ? true : handleResult;
7480
7540
  }), tap(() => this._closeDialog()), // Close dialog if it is still open.
7481
7541
  delay(10) // Delay to allow dialog to close before transition.
7482
- );
7483
- }
7484
- return of(true);
7542
+ )
7543
+ : of(true);
7485
7544
  }))).then((x) => x); // Resolve/Flatten potential promise result.
7486
7545
  }
7487
7546
  _handleIsModifiedState(transition, safetyType) {
@@ -7514,25 +7573,33 @@ class DbxActionTransitionSafetyDirective {
7514
7573
  })));
7515
7574
  }
7516
7575
  _showDialog(_transition) {
7576
+ let result;
7517
7577
  if (this.checkIsDestroyed()) {
7518
- return of(true);
7578
+ result = of(true);
7519
7579
  }
7520
- if (!this._currentDialogRef) {
7521
- this._currentDialogRef = this.dialog.open(DbxActionUIRouterTransitionSafetyDialogComponent, {
7522
- viewContainerRef: this.viewContainerRef
7523
- });
7524
- }
7525
- return this._currentDialogRef.afterClosed().pipe(first(), map((result = 'stay') => {
7526
- // Default to Stay if the user clicks outside.
7527
- switch (result) {
7528
- case 'discard':
7529
- case 'success':
7530
- case 'none':
7531
- return true;
7532
- case 'stay':
7533
- return false;
7580
+ else {
7581
+ if (!this._currentDialogRef) {
7582
+ this._currentDialogRef = this.dialog.open(DbxActionUIRouterTransitionSafetyDialogComponent, {
7583
+ viewContainerRef: this.viewContainerRef
7584
+ });
7534
7585
  }
7535
- }));
7586
+ result = this._currentDialogRef.afterClosed().pipe(first(), map((dialogResult = 'stay') => {
7587
+ // Default to Stay if the user clicks outside.
7588
+ let outcome;
7589
+ switch (dialogResult) {
7590
+ case 'discard':
7591
+ case 'success':
7592
+ case 'none':
7593
+ outcome = true;
7594
+ break;
7595
+ case 'stay':
7596
+ outcome = false;
7597
+ break;
7598
+ }
7599
+ return outcome;
7600
+ }));
7601
+ }
7602
+ return result;
7536
7603
  }
7537
7604
  _closeDialog() {
7538
7605
  if (this._currentDialogRef) {
@@ -7682,14 +7749,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
7682
7749
  * Ensures that the error data is safe for serialization by running it through `JSON.stringify`/`JSON.parse`.
7683
7750
  * Non-serializable data is stripped with a console warning.
7684
7751
  *
7752
+ * @param httpError - The HTTP error response or generic error object to convert.
7753
+ * @returns A plain JSON-serializable {@link ServerError} object.
7754
+ *
7685
7755
  * @example
7686
7756
  * ```typescript
7687
7757
  * const pojoError = convertToPOJOServerErrorResponse(httpErrorResponse);
7688
7758
  * console.log(pojoError.message);
7689
7759
  * ```
7690
- *
7691
- * @param httpError - The HTTP error response or generic error object to convert.
7692
- * @returns A plain JSON-serializable {@link ServerError} object.
7693
7760
  */
7694
7761
  function convertToPOJOServerErrorResponse(httpError) {
7695
7762
  const result = convertToServerErrorResponse(httpError);
@@ -7716,6 +7783,9 @@ function convertToPOJOServerErrorResponse(httpError) {
7716
7783
  * Handles HTTP 401 responses specially by returning an {@link UnauthorizedServerErrorResponse}.
7717
7784
  * Returns `undefined` if the input is falsy.
7718
7785
  *
7786
+ * @param error - The HTTP error response or generic error object to convert.
7787
+ * @returns A {@link ServerErrorResponse} derived from the error, or `undefined` if the input is falsy.
7788
+ *
7719
7789
  * @example
7720
7790
  * ```typescript
7721
7791
  * const serverError = convertToServerErrorResponse(httpErrorResponse);
@@ -7723,9 +7793,6 @@ function convertToPOJOServerErrorResponse(httpError) {
7723
7793
  * console.log(serverError.status, serverError.message);
7724
7794
  * }
7725
7795
  * ```
7726
- *
7727
- * @param error - The HTTP error response or generic error object to convert.
7728
- * @returns A {@link ServerErrorResponse} derived from the error, or `undefined` if the input is falsy.
7729
7796
  */
7730
7797
  function convertToServerErrorResponse(error) {
7731
7798
  let result;
@@ -8039,14 +8106,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
8039
8106
  /**
8040
8107
  * Converts an HTTP error response into {@link ServerErrorParams} suitable for dispatching as an NgRx action prop.
8041
8108
  *
8109
+ * @param httpError - The HTTP error response or generic error object to convert.
8110
+ * @returns A {@link ServerErrorParams} object wrapping the converted server error.
8111
+ *
8042
8112
  * @example
8043
8113
  * ```typescript
8044
8114
  * const params = convertServerErrorParams(httpErrorResponse);
8045
8115
  * store.dispatch(myErrorAction(params));
8046
8116
  * ```
8047
- *
8048
- * @param httpError - The HTTP error response or generic error object to convert.
8049
- * @returns A {@link ServerErrorParams} object wrapping the converted server error.
8050
8117
  */
8051
8118
  function convertServerErrorParams(httpError) {
8052
8119
  const error = convertToPOJOServerErrorResponse(httpError);
@@ -8055,6 +8122,10 @@ function convertServerErrorParams(httpError) {
8055
8122
  /**
8056
8123
  * RxJS operator that catches HTTP errors, converts them to {@link ServerErrorParams}, and dispatches the given NgRx action.
8057
8124
  *
8125
+ * @param action - The NgRx action creator to dispatch with the converted error params.
8126
+ * @param mapError - Optional function to transform the {@link ServerErrorParams} before dispatching. Defaults to identity.
8127
+ * @returns An RxJS operator that catches errors and emits the corresponding error action.
8128
+ *
8058
8129
  * @example
8059
8130
  * ```typescript
8060
8131
  * return this.actions$.pipe(
@@ -8064,10 +8135,6 @@ function convertServerErrorParams(httpError) {
8064
8135
  * ))
8065
8136
  * );
8066
8137
  * ```
8067
- *
8068
- * @param action - The NgRx action creator to dispatch with the converted error params.
8069
- * @param mapError - Optional function to transform the {@link ServerErrorParams} before dispatching. Defaults to identity.
8070
- * @returns An RxJS operator that catches errors and emits the corresponding error action.
8071
8138
  */
8072
8139
  function catchErrorServerParams(action, mapError = (error) => error) {
8073
8140
  return catchError((error) => {
@@ -8133,9 +8200,9 @@ const FEATURE_KEY = 'app.model';
8133
8200
  /**
8134
8201
  * Combined reducer for the DbxModel NgRx feature state, delegating to sub-reducers for each state slice.
8135
8202
  *
8136
- * @param state The current DbxModel feature state, or undefined for initial state
8137
- * @param action The NgRx action to process
8138
- * @returns The new DbxModelState produced by the combined sub-reducers
8203
+ * @param state - The current DbxModel feature state, or undefined for initial state.
8204
+ * @param action - The NgRx action to process.
8205
+ * @returns The new DbxModelState produced by the combined sub-reducers.
8139
8206
  */
8140
8207
  function reducers(state, action) {
8141
8208
  return combineReducers({
@@ -8185,8 +8252,8 @@ class DbxModelViewTrackerStorage {
8185
8252
  /**
8186
8253
  * Persists a view tracker event to storage. Deduplicates by model key, sorts by date, and trims to the max event limit.
8187
8254
  *
8188
- * @param event - The event to record
8189
- * @returns Observable that completes when the event has been persisted
8255
+ * @param event - The event to record.
8256
+ * @returns Observable that completes when the event has been persisted.
8190
8257
  */
8191
8258
  addTrackerEvent(event) {
8192
8259
  const storageKey = this.getStorageKeyForFolder(event.folder);
@@ -8211,7 +8278,7 @@ class DbxModelViewTrackerStorage {
8211
8278
  * Returns all stored view events for the given folder.
8212
8279
  *
8213
8280
  * @param folder - Optional folder name; defaults to `'default'`
8214
- * @returns Observable of all view tracker events in the folder
8281
+ * @returns Observable of all view tracker events in the folder.
8215
8282
  */
8216
8283
  getAllEvents(folder) {
8217
8284
  return this.getEventSet(folder).pipe(map((x) => x.e));
@@ -8220,7 +8287,7 @@ class DbxModelViewTrackerStorage {
8220
8287
  * Returns the complete event set for the given folder.
8221
8288
  *
8222
8289
  * @param folder - Optional folder name; defaults to `'default'`
8223
- * @returns Observable of the event set containing events and the last-update timestamp
8290
+ * @returns Observable of the event set containing events and the last-update timestamp.
8224
8291
  */
8225
8292
  getEventSet(folder) {
8226
8293
  const storageKey = this.getStorageKeyForFolder(folder);
@@ -8235,7 +8302,7 @@ class DbxModelViewTrackerStorage {
8235
8302
  * Computes the storage key for a given folder name.
8236
8303
  *
8237
8304
  * @param folder - Optional folder name; defaults to `'default'`
8238
- * @returns The computed storage key string combining the base key and folder name
8305
+ * @returns The computed storage key string combining the base key and folder name.
8239
8306
  */
8240
8307
  getStorageKeyForFolder(folder) {
8241
8308
  return `${this.storageKey}_${folder ?? 'default'}`;
@@ -8260,7 +8327,7 @@ class DbxModelTrackerService {
8260
8327
  /**
8261
8328
  * The default storage folder used when no folder is specified in tracking calls.
8262
8329
  *
8263
- * @returns The current default folder name, or undefined if not set
8330
+ * @returns The current default folder name, or undefined if not set.
8264
8331
  */
8265
8332
  get defaultFolder() {
8266
8333
  return this._defaultFolder;
@@ -8272,8 +8339,8 @@ class DbxModelTrackerService {
8272
8339
  /**
8273
8340
  * Records a view event for the given model, optionally in a specific context and folder.
8274
8341
  *
8275
- * @param modelKeyTypeNamePair - The model identity to track
8276
- * @param context - Optional view context metadata
8342
+ * @param modelKeyTypeNamePair - The model identity to track.
8343
+ * @param context - Optional view context metadata.
8277
8344
  * @param folder - Storage folder; defaults to {@link defaultFolder}
8278
8345
  */
8279
8346
  trackViewedObject(modelKeyTypeNamePair, context, folder = this._defaultFolder) {
@@ -8290,7 +8357,7 @@ class DbxModelTrackerService {
8290
8357
  * Returns all recorded view events for the given folder, sorted by most recent first.
8291
8358
  *
8292
8359
  * @param folder - Storage folder; defaults to {@link defaultFolder}
8293
- * @returns Observable of view events sorted by most recent first
8360
+ * @returns Observable of view events sorted by most recent first.
8294
8361
  */
8295
8362
  getAllViewEvents(folder = this._defaultFolder) {
8296
8363
  return this._viewTrackerStorage.getAllEvents(folder);
@@ -8299,7 +8366,7 @@ class DbxModelTrackerService {
8299
8366
  * Returns the complete event set (events and last-update timestamp) for the given folder.
8300
8367
  *
8301
8368
  * @param folder - Storage folder; defaults to {@link defaultFolder}
8302
- * @returns Observable of the complete event set including events and last-update timestamp
8369
+ * @returns Observable of the complete event set including events and last-update timestamp.
8303
8370
  */
8304
8371
  getViewEventSet(folder = this._defaultFolder) {
8305
8372
  return this._viewTrackerStorage.getEventSet(folder);
@@ -8338,9 +8405,9 @@ class DbxModelObjectStateService {
8338
8405
  /**
8339
8406
  * Emit a model viewed event.
8340
8407
  *
8341
- * @param params - The model viewed event parameters
8342
- * @param params.modelKeyTypeNamePair - Identifies the model that was viewed
8343
- * @param params.context - Optional context describing how the model was viewed
8408
+ * @param params - The model viewed event parameters.
8409
+ * @param params.modelKeyTypeNamePair - Identifies the model that was viewed.
8410
+ * @param params.context - Optional context describing how the model was viewed.
8344
8411
  */
8345
8412
  emitModelViewEvent({ modelKeyTypeNamePair, context }) {
8346
8413
  this.store.dispatch(emitObjectViewEvent({ modelKeyTypeNamePair, context }));
@@ -8355,13 +8422,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
8355
8422
  /**
8356
8423
  * Creates a {@link StorageAccessor} for persisting model view tracker events using the `mtvs` storage prefix.
8357
8424
  *
8425
+ * @param storageAccessorFactory - The factory used to create typed storage accessors.
8426
+ * @returns A storage accessor configured with the `mtvs` prefix for model view tracker events.
8427
+ *
8358
8428
  * @example
8359
8429
  * ```typescript
8360
8430
  * const accessor = defaultDbxModelViewTrackerStorageAccessorFactory(storageAccessorFactory);
8361
8431
  * ```
8362
8432
  *
8363
- * @param storageAccessorFactory - The factory used to create typed storage accessors
8364
- * @returns A storage accessor configured with the `mtvs` prefix for model view tracker events
8365
8433
  * @__NO_SIDE_EFFECTS__
8366
8434
  */
8367
8435
  function defaultDbxModelViewTrackerStorageAccessorFactory(storageAccessorFactory) {
@@ -8372,7 +8440,8 @@ function defaultDbxModelViewTrackerStorageAccessorFactory(storageAccessorFactory
8372
8440
  /**
8373
8441
  * Creates EnvironmentProviders for providing DbxModelTrackerService, DbxModelObjectStateService and sets up the NgRx store for DbxModelTrackerEffects.
8374
8442
  *
8375
- * @returns EnvironmentProviders
8443
+ * @returns EnvironmentProviders.
8444
+ *
8376
8445
  * @__NO_SIDE_EFFECTS__
8377
8446
  */
8378
8447
  function provideDbxModelService() {
@@ -8397,13 +8466,13 @@ function provideDbxModelService() {
8397
8466
  /**
8398
8467
  * Extracts all model keys from a {@link DbxModelViewTrackerEventSet}.
8399
8468
  *
8469
+ * @param eventSet - The event set from which to extract model keys.
8470
+ * @returns Array of model keys from all events in the set.
8471
+ *
8400
8472
  * @example
8401
8473
  * ```typescript
8402
8474
  * const keys = allDbxModelViewTrackerEventSetModelKeys(eventSet);
8403
8475
  * ```
8404
- *
8405
- * @param eventSet - The event set from which to extract model keys
8406
- * @returns Array of model keys from all events in the set
8407
8476
  */
8408
8477
  function allDbxModelViewTrackerEventSetModelKeys(eventSet) {
8409
8478
  return allDbxModelViewTrackerEventModelKeys(eventSet.e);
@@ -8411,13 +8480,13 @@ function allDbxModelViewTrackerEventSetModelKeys(eventSet) {
8411
8480
  /**
8412
8481
  * Extracts all model keys from an array of {@link DbxModelViewTrackerEvent}.
8413
8482
  *
8483
+ * @param events - Array of view tracker events from which to extract model keys.
8484
+ * @returns Array of model keys, one per event.
8485
+ *
8414
8486
  * @example
8415
8487
  * ```typescript
8416
8488
  * const keys = allDbxModelViewTrackerEventModelKeys(events);
8417
8489
  * ```
8418
- *
8419
- * @param events - Array of view tracker events from which to extract model keys
8420
- * @returns Array of model keys, one per event
8421
8490
  */
8422
8491
  function allDbxModelViewTrackerEventModelKeys(events) {
8423
8492
  return events.map((y) => y.m.key);
@@ -8439,7 +8508,7 @@ class DbxModelTypesService {
8439
8508
  /**
8440
8509
  * Registers one or more model type configurations. Merges with any previously registered configs.
8441
8510
  *
8442
- * @param configs - Single or array of model type configurations to register
8511
+ * @param configs - Single or array of model type configurations to register.
8443
8512
  */
8444
8513
  addTypeConfigs(configs) {
8445
8514
  const types = {
@@ -8453,7 +8522,7 @@ class DbxModelTypesService {
8453
8522
  /**
8454
8523
  * Registers model type configurations from a map, merging with existing configs.
8455
8524
  *
8456
- * @param configs - Map of model type strings to their configurations
8525
+ * @param configs - Map of model type strings to their configurations.
8457
8526
  */
8458
8527
  addTypeConfigsMap(configs) {
8459
8528
  const newConfig = {
@@ -8497,8 +8566,8 @@ class DbxModelTypesService {
8497
8566
  /**
8498
8567
  * Returns an observable of the Material icon name for the given model type.
8499
8568
  *
8500
- * @param type - The model type string to look up
8501
- * @returns Observable emitting the icon name for the given model type
8569
+ * @param type - The model type string to look up.
8570
+ * @returns Observable emitting the icon name for the given model type.
8502
8571
  */
8503
8572
  iconForType(type) {
8504
8573
  return this.iconMap$.pipe(map((x) => x[type]));
@@ -8594,15 +8663,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
8594
8663
  /**
8595
8664
  * Creates a {@link CopyToClipboardFunction} that retries the copy operation until success or timeout.
8596
8665
  *
8597
- * @param clipboard - the Angular CDK Clipboard instance
8598
- * @param config - optional timeout and retry settings
8599
- * @returns a function that copies text to the clipboard
8666
+ * @param clipboard - The Angular CDK Clipboard instance.
8667
+ * @param config - Optional timeout and retry settings.
8668
+ * @returns Copies text to the clipboard.
8600
8669
  *
8601
8670
  * @example
8602
8671
  * ```ts
8603
8672
  * const copy = copyToClipboardFunction(clipboard, { copyTimeoutSeconds: 10 });
8604
8673
  * const success = await copy('some text');
8605
8674
  * ```
8675
+ *
8606
8676
  * @__NO_SIDE_EFFECTS__
8607
8677
  */
8608
8678
  function copyToClipboardFunction(clipboard, config) {
@@ -8642,14 +8712,15 @@ function copyToClipboardFunction(clipboard, config) {
8642
8712
  *
8643
8713
  * Must be called in an Angular injection context.
8644
8714
  *
8645
- * @param config - optional timeout and retry settings
8646
- * @returns the clipboard copy function
8715
+ * @param config - Optional timeout and retry settings.
8716
+ * @returns The clipboard copy function.
8647
8717
  *
8648
8718
  * @example
8649
8719
  * ```ts
8650
8720
  * const copy = injectCopyToClipboardFunction();
8651
8721
  * await copy('copied text');
8652
8722
  * ```
8723
+ *
8653
8724
  * @__NO_SIDE_EFFECTS__
8654
8725
  */
8655
8726
  function injectCopyToClipboardFunction(config) {
@@ -8661,8 +8732,8 @@ function injectCopyToClipboardFunction(config) {
8661
8732
  *
8662
8733
  * Must be called in an Angular injection context.
8663
8734
  *
8664
- * @param config - optional configuration for copy behavior and snackbar messages
8665
- * @returns clipboard copy function with snackbar notification support
8735
+ * @param config - Optional configuration for copy behavior and snackbar messages.
8736
+ * @returns Clipboard copy function with snackbar notification support.
8666
8737
  *
8667
8738
  * @example
8668
8739
  * ```ts
@@ -8686,9 +8757,9 @@ function injectCopyToClipboardFunctionWithSnackbarMessage(config) {
8686
8757
  const _setSnackbarMessagesConfig = (config) => {
8687
8758
  if (config != null) {
8688
8759
  const { successMessage: inputSuccessMessage, failureMessage: inputFailureMessage, snackbarDuration: inputSnackbarDuration } = config;
8689
- successMessage = (inputSuccessMessage !== undefined ? inputSuccessMessage : successMessage) ?? DEFAULT_SUCCESS_MESSAGE;
8690
- failureMessage = (inputFailureMessage !== undefined ? inputFailureMessage : failureMessage) ?? DEFAULT_FAILURE_MESSAGE;
8691
- snackbarDuration = (inputSnackbarDuration !== undefined ? inputSnackbarDuration : snackbarDuration) ?? DEFAULT_SNACKBAR_DURATION;
8760
+ successMessage = (inputSuccessMessage === undefined ? successMessage : inputSuccessMessage) ?? DEFAULT_SUCCESS_MESSAGE;
8761
+ failureMessage = (inputFailureMessage === undefined ? failureMessage : inputFailureMessage) ?? DEFAULT_FAILURE_MESSAGE;
8762
+ snackbarDuration = (inputSnackbarDuration === undefined ? snackbarDuration : inputSnackbarDuration) ?? DEFAULT_SNACKBAR_DURATION;
8692
8763
  }
8693
8764
  };
8694
8765
  if (config) {
@@ -8834,10 +8905,7 @@ class DbxDownloadTextViewComponent extends AbstractDbxClipboardDirective {
8834
8905
  }, ...(ngDevMode ? [{ debugName: "contentLoadingStateSignal" }] : /* istanbul ignore next */ []));
8835
8906
  contentLoadingState$ = toObservable(this.contentLoadingStateSignal);
8836
8907
  content$ = this.contentLoadingState$.pipe(switchMap((x) => {
8837
- if (x) {
8838
- return of(x).pipe(valueFromFinishedLoadingState());
8839
- }
8840
- return of(undefined);
8908
+ return x ? of(x).pipe(valueFromFinishedLoadingState()) : of(undefined);
8841
8909
  }));
8842
8910
  contentSignal = toSignal(this.content$);
8843
8911
  contentDataSignal = computed(() => this.contentSignal()?.content, ...(ngDevMode ? [{ debugName: "contentDataSignal" }] : /* istanbul ignore next */ []));
@@ -8857,10 +8925,7 @@ class DbxDownloadTextViewComponent extends AbstractDbxClipboardDirective {
8857
8925
  context = loadingStateContext({ obs: this.contentLoadingState$ });
8858
8926
  handleCopyToClipboard = () => {
8859
8927
  return this.content$.pipe(first(), switchMap((downloadTextContent) => {
8860
- if (downloadTextContent) {
8861
- return this._copyToClipboard(downloadTextContent.content);
8862
- }
8863
- return of(false);
8928
+ return downloadTextContent ? this._copyToClipboard(downloadTextContent.content) : of(false);
8864
8929
  }));
8865
8930
  };
8866
8931
  toggleExpandPreview() {
@@ -8881,8 +8946,8 @@ const DBX_WEB_FILE_PREVIEW_SERVICE_ENTRIES_TOKEN = new InjectionToken('DefaultDb
8881
8946
  /**
8882
8947
  * Creates a provider that registers the given entries with the {@link DbxWebFilePreviewService} via the {@link DBX_WEB_FILE_PREVIEW_SERVICE_ENTRIES_TOKEN}.
8883
8948
  *
8884
- * @param entries - Array of preview service entries to register, each mapping a MIME type to its preview component
8885
- * @returns A provider configuration that supplies the entries via the injection token
8949
+ * @param entries - Array of preview service entries to register, each mapping a MIME type to its preview component.
8950
+ * @returns A provider configuration that supplies the entries via the injection token.
8886
8951
  *
8887
8952
  * @example
8888
8953
  * ```typescript
@@ -8899,10 +8964,10 @@ function provideDbxWebFilePreviewServiceEntries(entries) {
8899
8964
  /**
8900
8965
  * Default preview component function that embeds files using {@link DbxEmbedComponent}. Images are rendered with an `img` element; all other types use `embed`.
8901
8966
  *
8902
- * @param input - The preview input containing blob data, source URL, and MIME type information
8903
- * @returns An injection component config that initializes a {@link DbxEmbedComponent} with the appropriate embed element and content
8967
+ * @param input - The preview input containing blob data, source URL, and MIME type information.
8968
+ * @returns An injection component config that initializes a {@link DbxEmbedComponent} with the appropriate embed element and content.
8904
8969
  */
8905
- const DBX_WEB_FILE_PREVIEW_SERVICE_DEFAULT_PREVIEW_COMPONENT_FUNCTION = (input) => {
8970
+ const DEFAULT_DBX_WEB_FILE_PREVIEW_SERVICE_PREVIEW_COMPONENT_FUNCTION = (input) => {
8906
8971
  const { blob, srcUrl, embedMimeType, sanitizeSrcUrl } = input;
8907
8972
  let embedElement = 'embed';
8908
8973
  if (embedMimeType) {
@@ -8929,10 +8994,10 @@ const DBX_WEB_FILE_PREVIEW_SERVICE_DEFAULT_PREVIEW_COMPONENT_FUNCTION = (input)
8929
8994
  /**
8930
8995
  * Default dialog-with-component function that opens the preview component inside a {@link DbxInjectionDialogComponent} with a close button.
8931
8996
  *
8932
- * @param input - The dialog input containing the MatDialog instance and the component config to display
8933
- * @returns A MatDialogRef for the opened injection dialog
8997
+ * @param input - The dialog input containing the MatDialog instance and the component config to display.
8998
+ * @returns A MatDialogRef for the opened injection dialog.
8934
8999
  */
8935
- const DBX_WEB_FILE_PREVIEW_SERVICE_DEFAULT_DIALOG_WITH_COMPONENT_FUNCTION = (input) => {
9000
+ const DEFAULT_DBX_WEB_FILE_PREVIEW_SERVICE_DIALOG_WITH_COMPONENT_FUNCTION = (input) => {
8936
9001
  const { matDialog, componentConfig } = input;
8937
9002
  return DbxInjectionDialogComponent.openDialog(matDialog, {
8938
9003
  componentConfig,
@@ -8952,13 +9017,13 @@ class DbxWebFilePreviewService {
8952
9017
  entries.forEach((x) => this.registerPreviewEntry(x));
8953
9018
  }
8954
9019
  }
8955
- _defaultPreviewComponentFunction = DBX_WEB_FILE_PREVIEW_SERVICE_DEFAULT_PREVIEW_COMPONENT_FUNCTION;
8956
- _defaultPreviewDialogWithComponentFunction = DBX_WEB_FILE_PREVIEW_SERVICE_DEFAULT_DIALOG_WITH_COMPONENT_FUNCTION;
9020
+ _defaultPreviewComponentFunction = DEFAULT_DBX_WEB_FILE_PREVIEW_SERVICE_PREVIEW_COMPONENT_FUNCTION;
9021
+ _defaultPreviewDialogWithComponentFunction = DEFAULT_DBX_WEB_FILE_PREVIEW_SERVICE_DIALOG_WITH_COMPONENT_FUNCTION;
8957
9022
  // Configuration
8958
9023
  /**
8959
9024
  * Registers one or more file preview entries, mapping MIME types to their preview components.
8960
9025
  *
8961
- * @param entries - Single or array of preview entries to register
9026
+ * @param entries - Single or array of preview entries to register.
8962
9027
  */
8963
9028
  registerPreviewEntries(entries) {
8964
9029
  asArray(entries).forEach((entry) => this.registerPreviewEntry(entry));
@@ -8966,7 +9031,7 @@ class DbxWebFilePreviewService {
8966
9031
  /**
8967
9032
  * Registers a single file preview entry for its MIME type(s).
8968
9033
  *
8969
- * @param entry - The preview entry to register
9034
+ * @param entry - The preview entry to register.
8970
9035
  */
8971
9036
  registerPreviewEntry(entry) {
8972
9037
  asArray(entry.mimeType).forEach((mimeType) => this._entries.set(mimeType, entry));
@@ -8974,7 +9039,7 @@ class DbxWebFilePreviewService {
8974
9039
  /**
8975
9040
  * Overrides the default preview component function used when no MIME-specific entry is registered.
8976
9041
  *
8977
- * @param previewFunction - The preview component function to use as the new default
9042
+ * @param previewFunction - The preview component function to use as the new default.
8978
9043
  */
8979
9044
  setDefaultPreviewComponentFunction(previewFunction) {
8980
9045
  this._defaultPreviewComponentFunction = previewFunction;
@@ -8982,7 +9047,7 @@ class DbxWebFilePreviewService {
8982
9047
  /**
8983
9048
  * Overrides the default dialog-with-component function used when no MIME-specific dialog handler is registered.
8984
9049
  *
8985
- * @param previewDialogWithComponentFunction - The dialog-with-component function to use as the new default
9050
+ * @param previewDialogWithComponentFunction - The dialog-with-component function to use as the new default.
8986
9051
  */
8987
9052
  setDefaultPreviewDialogWithComponentFunction(previewDialogWithComponentFunction) {
8988
9053
  this._defaultPreviewDialogWithComponentFunction = previewDialogWithComponentFunction;
@@ -8991,8 +9056,8 @@ class DbxWebFilePreviewService {
8991
9056
  /**
8992
9057
  * Creates an injection component config for previewing a file. Uses a MIME-specific preview function if registered, otherwise falls back to the default.
8993
9058
  *
8994
- * @param input - The preview input containing blob, URL, and MIME type information
8995
- * @returns An injection component config suitable for rendering the file preview
9059
+ * @param input - The preview input containing blob, URL, and MIME type information.
9060
+ * @returns An injection component config suitable for rendering the file preview.
8996
9061
  */
8997
9062
  createPreviewConfig(input) {
8998
9063
  const { embedMimeType } = input;
@@ -9002,8 +9067,8 @@ class DbxWebFilePreviewService {
9002
9067
  /**
9003
9068
  * 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.
9004
9069
  *
9005
- * @param input - The dialog input containing file data and MIME type
9006
- * @returns Reference to the opened dialog
9070
+ * @param input - The dialog input containing file data and MIME type.
9071
+ * @returns Reference to the opened dialog.
9007
9072
  */
9008
9073
  openPreviewDialog(input) {
9009
9074
  const { embedMimeType } = input;
@@ -9075,8 +9140,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
9075
9140
  /**
9076
9141
  * Builds a directory tree from an array of zip archive entries, enriching each node with MIME type detection and blob retrieval capability.
9077
9142
  *
9078
- * @param entries - Array of zip archive entries to build the tree from, or null/undefined for an empty tree
9079
- * @returns The root node of the constructed directory tree with MIME types and blob getters attached
9143
+ * @param entries - Array of zip archive entries to build the tree from, or null/undefined for an empty tree.
9144
+ * @returns The root node of the constructed directory tree with MIME types and blob getters attached.
9080
9145
  *
9081
9146
  * @example
9082
9147
  * ```typescript
@@ -9111,16 +9176,15 @@ const SCREEN_MEDIA_WIDTH_TYPE_SIZE_MAP = {
9111
9176
  /**
9112
9177
  * Returns `true` if the current screen width type is at least as wide as the given breakpoint.
9113
9178
  *
9114
- * @param current - the current screen width type
9115
- * @param breakpoint - the minimum width type to check against
9179
+ * @param current - The current screen width type.
9180
+ * @param breakpoint - The minimum width type to check against.
9181
+ * @returns `true` if the current width type meets or exceeds the breakpoint.
9116
9182
  *
9117
9183
  * @example
9118
9184
  * ```ts
9119
9185
  * screenMediaWidthTypeIsActive('tablet', 'small'); // true
9120
9186
  * screenMediaWidthTypeIsActive('micro', 'tablet'); // false
9121
9187
  * ```
9122
- *
9123
- * @returns `true` if the current width type meets or exceeds the breakpoint
9124
9188
  */
9125
9189
  function screenMediaWidthTypeIsActive(current, breakpoint) {
9126
9190
  return compareScreenMediaWidthTypes(current, breakpoint, (a, b) => a >= b);
@@ -9128,10 +9192,10 @@ function screenMediaWidthTypeIsActive(current, breakpoint) {
9128
9192
  /**
9129
9193
  * Compares two {@link ScreenMediaWidthType} values using a custom comparator on their numeric sizes.
9130
9194
  *
9131
- * @param a - the first screen width type
9132
- * @param b - the second screen width type
9133
- * @param compare - a comparator function applied to the numeric size values of `a` and `b`
9134
- * @returns the result of applying the comparator to the mapped numeric sizes
9195
+ * @param a - The first screen width type.
9196
+ * @param b - The second screen width type.
9197
+ * @param compare - A comparator function applied to the numeric size values of `a` and `b`
9198
+ * @returns The result of applying the comparator to the mapped numeric sizes.
9135
9199
  */
9136
9200
  function compareScreenMediaWidthTypes(a, b, compare) {
9137
9201
  return compare(SCREEN_MEDIA_WIDTH_TYPE_SIZE_MAP[a], SCREEN_MEDIA_WIDTH_TYPE_SIZE_MAP[b]);
@@ -9204,8 +9268,8 @@ class DbxScreenMediaService {
9204
9268
  /**
9205
9269
  * Returns an observable that emits `true` when the current screen width is at least as wide as the given breakpoint.
9206
9270
  *
9207
- * @param inputBreakpoint - the minimum width type or an observable of it
9208
- * @returns observable of whether the breakpoint is currently active
9271
+ * @param inputBreakpoint - The minimum width type or an observable of it.
9272
+ * @returns Observable of whether the breakpoint is currently active.
9209
9273
  */
9210
9274
  isBreakpointActive(inputBreakpoint) {
9211
9275
  return combineLatest([this.widthType$, asObservable(inputBreakpoint)]).pipe(map(([current, breakpoint]) => screenMediaWidthTypeIsActive(current, breakpoint)), distinctUntilChanged(), shareReplay(1));
@@ -9296,6 +9360,7 @@ class DbxAccordionHeaderHeightDirective {
9296
9360
  heightTextSmallScreenMultiplier = input(1.6, ...(ngDevMode ? [{ debugName: "heightTextSmallScreenMultiplier" }] : /* istanbul ignore next */ []));
9297
9361
  widthTypeSignal = toSignal(this._screenMediaService.widthType$);
9298
9362
  expansionPanelHeightSignal = computed(() => {
9363
+ const heightTextSmallScreenMultiplier = this.heightTextSmallScreenMultiplier();
9299
9364
  const baseHeight = this.dbxAccordionHeaderHeight();
9300
9365
  const text = this.heightText();
9301
9366
  const textLines = this.heightTextLines();
@@ -9315,7 +9380,7 @@ class DbxAccordionHeaderHeightDirective {
9315
9380
  const lineHeight = textLineHeight;
9316
9381
  // on small screens text wraps more, so scale up estimated lines
9317
9382
  if (isSmallScreen) {
9318
- const multiplier = this.heightTextSmallScreenMultiplier() ?? 1.6;
9383
+ const multiplier = heightTextSmallScreenMultiplier ?? 1.6;
9319
9384
  lines = Math.ceil(lines * multiplier);
9320
9385
  }
9321
9386
  height = (baseHeight ?? 60) + lines * lineHeight;
@@ -9413,8 +9478,9 @@ class DbxAvatarViewComponent {
9413
9478
  return hideOnError && hasError;
9414
9479
  }, ...(ngDevMode ? [{ debugName: "hideAvatarSignal" }] : /* istanbul ignore next */ []));
9415
9480
  avatarIconSignal = computed(() => {
9481
+ const hasAvatarError = this.hasAvatarErrorSignal();
9416
9482
  let icon = this.avatarIcon() ?? this.defaultContext?.icon;
9417
- if (!icon && this.hasAvatarErrorSignal()) {
9483
+ if (!icon && hasAvatarError) {
9418
9484
  icon = this.avatarService.defaultAvatarErrorIcon;
9419
9485
  }
9420
9486
  else {
@@ -9518,8 +9584,8 @@ class DbxAvatarViewService {
9518
9584
  *
9519
9585
  * Falls back to the default component config if no custom resolver is configured or if it returns null.
9520
9586
  *
9521
- * @param context - the avatar context used to resolve the appropriate component configuration
9522
- * @returns the resolved injection component config, or the default if no custom resolver matches
9587
+ * @param context - The avatar context used to resolve the appropriate component configuration.
9588
+ * @returns The resolved injection component config, or the default if no custom resolver matches.
9523
9589
  */
9524
9590
  avatarComponentForContext(context) {
9525
9591
  let config = this._defaultAvatarComponentConfig;
@@ -9540,7 +9606,7 @@ class DbxAvatarViewService {
9540
9606
  /**
9541
9607
  * Sets the default avatar image URL used when no context-specific URL is provided.
9542
9608
  *
9543
- * @param url - the URL to use as the default avatar image, or nullish to clear
9609
+ * @param url - The URL to use as the default avatar image, or nullish to clear.
9544
9610
  */
9545
9611
  setDefaultAvatarUrl(url) {
9546
9612
  this._defaultAvatarUrl = url;
@@ -9548,7 +9614,7 @@ class DbxAvatarViewService {
9548
9614
  /**
9549
9615
  * Sets the default Material icon name used as a fallback when no avatar image is available.
9550
9616
  *
9551
- * @param icon - the Material icon name to use, or nullish to clear
9617
+ * @param icon - The Material icon name to use, or nullish to clear.
9552
9618
  */
9553
9619
  setDefaultAvatarIcon(icon) {
9554
9620
  this._defaultAvatarIcon = icon;
@@ -9556,7 +9622,7 @@ class DbxAvatarViewService {
9556
9622
  /**
9557
9623
  * Sets the Material icon name displayed when the avatar image fails to load.
9558
9624
  *
9559
- * @param icon - the Material icon name to display on image load error, or nullish to clear
9625
+ * @param icon - The Material icon name to display on image load error, or nullish to clear.
9560
9626
  */
9561
9627
  setDefaultAvatarErrorIcon(icon) {
9562
9628
  this._defaultAvatarErrorIcon = icon;
@@ -9564,7 +9630,7 @@ class DbxAvatarViewService {
9564
9630
  /**
9565
9631
  * Overrides the default component used to render avatars when no context-specific component is resolved.
9566
9632
  *
9567
- * @param config - the injection component config to use as the new default
9633
+ * @param config - The injection component config to use as the new default.
9568
9634
  */
9569
9635
  setDefaultAvatarComponentConfig(config) {
9570
9636
  this._defaultAvatarComponentConfig = config;
@@ -10167,15 +10233,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
10167
10233
  /**
10168
10234
  * Creates Angular providers for a new {@link TwoColumnsContextStore} instance.
10169
10235
  *
10170
- * @example
10171
- * ```typescript
10172
- * @Component({
10236
+ * @returns Array of Angular providers that supply a new {@link TwoColumnsContextStore}
10237
+ *
10238
+ * @Component ({
10173
10239
  * providers: provideTwoColumnsContext(),
10174
10240
  * })
10175
10241
  * export class MyColumnLayoutComponent { }
10176
10242
  * ```
10177
10243
  *
10178
- * @returns an array of Angular providers that supply a new {@link TwoColumnsContextStore}
10244
+ * @example
10245
+ * ```typescript
10179
10246
  */
10180
10247
  function provideTwoColumnsContext() {
10181
10248
  return [
@@ -10759,16 +10826,17 @@ class DbxValueListItemModifier {
10759
10826
  /**
10760
10827
  * Registers a directive as a {@link DbxValueListItemModifier} provider for dependency injection.
10761
10828
  *
10762
- * @example
10763
- * ```ts
10764
- * @Directive({
10829
+ * @param sourceType - The directive class to register as the DbxValueListItemModifier provider.
10830
+ * @returns Array of Angular providers that wire up the directive as a DbxValueListItemModifier.
10831
+ *
10832
+ * @Directive ({
10765
10833
  * providers: provideDbxValueListViewModifier(MyModifierDirective)
10766
10834
  * })
10767
10835
  * export class MyModifierDirective extends DbxValueListItemModifier<MyItem> { ... }
10768
10836
  * ```
10769
10837
  *
10770
- * @param sourceType - the directive class to register as the DbxValueListItemModifier provider
10771
- * @returns an array of Angular providers that wire up the directive as a DbxValueListItemModifier
10838
+ * @example
10839
+ * ```ts
10772
10840
  */
10773
10841
  function provideDbxValueListViewModifier(sourceType) {
10774
10842
  return [
@@ -10781,16 +10849,16 @@ function provideDbxValueListViewModifier(sourceType) {
10781
10849
  /**
10782
10850
  * Creates a {@link ListItemModifier} with the given key and modification function.
10783
10851
  *
10852
+ * @param key - A unique string identifier for this modifier in the modifier map.
10853
+ * @param modify - The function that mutates list item properties during rendering.
10854
+ * @returns A new ListItemModifier with the given key and modification function.
10855
+ *
10784
10856
  * @example
10785
10857
  * ```ts
10786
10858
  * const highlightModifier = listItemModifier<MyItem>('highlight', (item) => {
10787
10859
  * item.selected = item.itemValue.isImportant;
10788
10860
  * });
10789
10861
  * ```
10790
- *
10791
- * @param key - a unique string identifier for this modifier in the modifier map
10792
- * @param modify - the function that mutates list item properties during rendering
10793
- * @returns a new ListItemModifier with the given key and modification function
10794
10862
  */
10795
10863
  function listItemModifier(key, modify) {
10796
10864
  return modifier(key, modify);
@@ -11031,16 +11099,16 @@ const SIDE_NAV_DISPLAY_MODE_ORDER = [SideNavDisplayMode.NONE, SideNavDisplayMode
11031
11099
  * Falls back to the lowest allowed mode if no lower mode is available, or {@link SideNavDisplayMode.NONE}
11032
11100
  * if the allowed set is empty or undefined.
11033
11101
  *
11102
+ * @param mode - The requested display mode to resolve.
11103
+ * @param allowedModes - Set of modes that are permitted; if null/undefined, all modes are allowed.
11104
+ * @returns The resolved display mode, falling back to the nearest lower allowed mode or NONE.
11105
+ *
11034
11106
  * @example
11035
11107
  * ```ts
11036
11108
  * // ICON not allowed, rounds down to MOBILE
11037
11109
  * resolveSideNavDisplayMode(SideNavDisplayMode.ICON, new Set([SideNavDisplayMode.MOBILE, SideNavDisplayMode.FULL]));
11038
11110
  * // => SideNavDisplayMode.MOBILE
11039
11111
  * ```
11040
- *
11041
- * @param mode - The requested display mode to resolve.
11042
- * @param allowedModes - Set of modes that are permitted; if null/undefined, all modes are allowed.
11043
- * @returns The resolved display mode, falling back to the nearest lower allowed mode or NONE.
11044
11112
  */
11045
11113
  function resolveSideNavDisplayMode(mode, allowedModes) {
11046
11114
  let result;
@@ -11192,7 +11260,10 @@ class DbxSidenavComponent extends AbstractTransitionWatcherDirective {
11192
11260
  toggleOpen = toggleOpen ?? !this.sidenav().opened;
11193
11261
  const mode = this.stateSignal()?.mode;
11194
11262
  let open;
11195
- if (!forced) {
11263
+ if (forced) {
11264
+ open = toggleOpen;
11265
+ }
11266
+ else {
11196
11267
  switch (mode) {
11197
11268
  case SideNavDisplayMode.MOBILE:
11198
11269
  open = toggleOpen;
@@ -11205,9 +11276,6 @@ class DbxSidenavComponent extends AbstractTransitionWatcherDirective {
11205
11276
  break;
11206
11277
  }
11207
11278
  }
11208
- else {
11209
- open = toggleOpen;
11210
- }
11211
11279
  if (open != null) {
11212
11280
  if (open) {
11213
11281
  void this.sidenav().open();
@@ -11512,14 +11580,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
11512
11580
  /**
11513
11581
  * Provides a {@link DbxRouterWebProviderConfig} that configures the application to use Angular Router for rendering segue-ref anchor links.
11514
11582
  *
11583
+ * @returns Environment providers that configure the Angular Router-based segue anchor component.
11584
+ *
11515
11585
  * @example
11516
11586
  * ```typescript
11517
11587
  * bootstrapApplication(AppComponent, {
11518
11588
  * providers: [provideDbxRouterWebAngularRouterProviderConfig()]
11519
11589
  * });
11520
11590
  * ```
11521
- *
11522
- * @returns environment providers that configure the Angular Router-based segue anchor component
11523
11591
  */
11524
11592
  function provideDbxRouterWebAngularRouterProviderConfig() {
11525
11593
  const config = {
@@ -11565,14 +11633,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
11565
11633
  /**
11566
11634
  * Provides a {@link DbxRouterWebProviderConfig} that configures the application to use UIRouter for rendering segue-ref anchor links.
11567
11635
  *
11636
+ * @returns Environment providers that configure the UIRouter-based segue anchor component.
11637
+ *
11568
11638
  * @example
11569
11639
  * ```typescript
11570
11640
  * bootstrapApplication(AppComponent, {
11571
11641
  * providers: [provideDbxRouterWebUiRouterProviderConfig()]
11572
11642
  * });
11573
11643
  * ```
11574
- *
11575
- * @returns environment providers that configure the UIRouter-based segue anchor component
11576
11644
  */
11577
11645
  function provideDbxRouterWebUiRouterProviderConfig() {
11578
11646
  const config = {
@@ -11814,8 +11882,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
11814
11882
  class DbxContentBorderDirective {
11815
11883
  color = input('default', ...(ngDevMode ? [{ debugName: "color" }] : /* istanbul ignore next */ []));
11816
11884
  borderOpacity = input('lite', ...(ngDevMode ? [{ debugName: "borderOpacity" }] : /* istanbul ignore next */ []));
11817
- borderColorVar = computed(() => dbxThemeColorCssTokenVar(this.color(), true), ...(ngDevMode ? [{ debugName: "borderColorVar" }] : /* istanbul ignore next */ []));
11818
- borderOpacityValue = computed(() => {
11885
+ borderColorVarSignal = computed(() => dbxThemeColorCssTokenVar(this.color(), true), ...(ngDevMode ? [{ debugName: "borderColorVarSignal" }] : /* istanbul ignore next */ []));
11886
+ borderOpacityValueSignal = computed(() => {
11819
11887
  const color = this.color();
11820
11888
  const opacity = this.borderOpacity();
11821
11889
  let result;
@@ -11833,9 +11901,9 @@ class DbxContentBorderDirective {
11833
11901
  break;
11834
11902
  }
11835
11903
  return result;
11836
- }, ...(ngDevMode ? [{ debugName: "borderOpacityValue" }] : /* istanbul ignore next */ []));
11904
+ }, ...(ngDevMode ? [{ debugName: "borderOpacityValueSignal" }] : /* istanbul ignore next */ []));
11837
11905
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxContentBorderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
11838
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.11", type: DbxContentBorderDirective, isStandalone: true, selector: "dbx-content-border,[dbxContentBorder]", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, borderOpacity: { classPropertyName: "borderOpacity", publicName: "borderOpacity", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.--dbx-border-color": "borderColorVar()", "style.--dbx-border-opacity": "borderOpacityValue()" }, classAttribute: "d-block dbx-content-border" }, ngImport: i0 });
11906
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.11", type: DbxContentBorderDirective, isStandalone: true, selector: "dbx-content-border,[dbxContentBorder]", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, borderOpacity: { classPropertyName: "borderOpacity", publicName: "borderOpacity", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.--dbx-border-color": "borderColorVarSignal()", "style.--dbx-border-opacity": "borderOpacityValueSignal()" }, classAttribute: "d-block dbx-content-border" }, ngImport: i0 });
11839
11907
  }
11840
11908
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxContentBorderDirective, decorators: [{
11841
11909
  type: Directive,
@@ -11843,8 +11911,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
11843
11911
  selector: 'dbx-content-border,[dbxContentBorder]',
11844
11912
  host: {
11845
11913
  class: 'd-block dbx-content-border',
11846
- '[style.--dbx-border-color]': 'borderColorVar()',
11847
- '[style.--dbx-border-opacity]': 'borderOpacityValue()'
11914
+ '[style.--dbx-border-color]': 'borderColorVarSignal()',
11915
+ '[style.--dbx-border-opacity]': 'borderOpacityValueSignal()'
11848
11916
  },
11849
11917
  standalone: true
11850
11918
  }]
@@ -12322,16 +12390,17 @@ class DbxListView {
12322
12390
  /**
12323
12391
  * Registers a component as a {@link DbxListView} provider so it can be injected by parent list components.
12324
12392
  *
12325
- * @example
12326
- * ```ts
12327
- * @Component({
12393
+ * @param sourceType - The component class to register as the DbxListView provider.
12394
+ * @returns Array of Angular providers that wire up the component as a DbxListView.
12395
+ *
12396
+ * @Component ({
12328
12397
  * providers: provideDbxListView(MyCustomListViewComponent)
12329
12398
  * })
12330
12399
  * export class MyCustomListViewComponent extends DbxListView<MyItem> { ... }
12331
12400
  * ```
12332
12401
  *
12333
- * @param sourceType - the component class to register as the DbxListView provider
12334
- * @returns an array of Angular providers that wire up the component as a DbxListView
12402
+ * @example
12403
+ * ```ts
12335
12404
  */
12336
12405
  function provideDbxListView(sourceType) {
12337
12406
  // use of any here is allowed as typings are not relevant for providers
@@ -12361,9 +12430,9 @@ function dbxValueListItemDecisionFunction(decisionFunction) {
12361
12430
  * Extracts a stable tracking key from an item value by checking for `key` ({@link ModelKeyRef}),
12362
12431
  * `id` ({@link UniqueModel}), or falling back to a prefixed index string.
12363
12432
  *
12364
- * @param itemValue - The raw value to extract a key from
12365
- * @param index - The item's position index, used as fallback
12366
- * @returns A string key for tracking the item
12433
+ * @param itemValue - The raw value to extract a key from.
12434
+ * @param index - The item's position index, used as fallback.
12435
+ * @returns Key for tracking the item. (string)
12367
12436
  *
12368
12437
  * @example
12369
12438
  * ```ts
@@ -12378,9 +12447,9 @@ function dbxValueListItemKeyForItemValue(itemValue, index) {
12378
12447
  /**
12379
12448
  * Maps raw values into an observable of {@link DbxValueListItemConfig} items, applying the list view config's mapping function and attaching injection configuration.
12380
12449
  *
12381
- * @param listViewConfig The list view configuration containing the component and optional mapping function
12382
- * @param itemValues The raw values to map into configured list items
12383
- * @returns An observable emitting the mapped and configured list item configs
12450
+ * @param listViewConfig - The list view configuration containing the component and optional mapping function.
12451
+ * @param itemValues - The raw values to map into configured list items.
12452
+ * @returns An observable emitting the mapped and configured list item configs.
12384
12453
  *
12385
12454
  * @example
12386
12455
  * ```ts
@@ -12396,9 +12465,9 @@ function mapValuesToValuesListItemConfigObs(listViewConfig, itemValues) {
12396
12465
  /**
12397
12466
  * Adds injection component configuration and meta configuration to each list item, producing fully configured {@link DbxValueListItemConfig} entries ready for rendering.
12398
12467
  *
12399
- * @param listViewConfig The list view configuration providing injection component config and optional meta config
12400
- * @param listItems The list items to augment with configuration
12401
- * @returns The list items extended with injection component configuration attached
12468
+ * @param listViewConfig - The list view configuration providing injection component config and optional meta config.
12469
+ * @param listItems - The list items to augment with configuration.
12470
+ * @returns The list items extended with injection component configuration attached.
12402
12471
  */
12403
12472
  function addConfigToValueListItems(listViewConfig, listItems) {
12404
12473
  const itemConfigs = listItems.map((listItem) => {
@@ -12439,16 +12508,17 @@ class DbxValueListView {
12439
12508
  /**
12440
12509
  * Registers a component as a {@link DbxValueListView} provider for dependency injection.
12441
12510
  *
12442
- * @param sourceType The component class type to register as the list view provider
12443
- * @returns An array of Angular providers that bind the given component to {@link DbxValueListView}
12511
+ * @param sourceType - The component class type to register as the list view provider.
12512
+ * @returns Array of Angular providers that bind the given component to {@link DbxValueListView}
12444
12513
  *
12445
- * @example
12446
- * ```ts
12447
- * @Component({
12514
+ * @Component ({
12448
12515
  * providers: provideDbxValueListView(MyValueListViewComponent)
12449
12516
  * })
12450
12517
  * export class MyValueListViewComponent extends DbxValueListView<MyItem> { ... }
12451
12518
  * ```
12519
+ *
12520
+ * @example
12521
+ * ```ts
12452
12522
  */
12453
12523
  function provideDbxValueListView(sourceType) {
12454
12524
  return [
@@ -12484,8 +12554,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
12484
12554
  /**
12485
12555
  * Default grouping function that places all items into a single unnamed group.
12486
12556
  *
12487
- * @param items The flat list of configured list items to group
12488
- * @returns An array containing a single group with all input items
12557
+ * @param items - The flat list of configured list items to group.
12558
+ * @returns An array containing a single group with all input items.
12489
12559
  */
12490
12560
  const defaultDbxValueListViewGroupValuesFunction = (items) => {
12491
12561
  const data = {};
@@ -12505,7 +12575,7 @@ class DbxValueListViewGroupDelegate {
12505
12575
  /**
12506
12576
  * Creates a default {@link DbxValueListViewGroupDelegate} that places all items into a single ungrouped list.
12507
12577
  *
12508
- * @returns A group delegate that places all items into one unnamed group
12578
+ * @returns A group delegate that places all items into one unnamed group.
12509
12579
  *
12510
12580
  * @example
12511
12581
  * ```ts
@@ -12520,16 +12590,17 @@ function defaultDbxValueListViewGroupDelegate() {
12520
12590
  /**
12521
12591
  * Registers a class as a {@link DbxValueListViewGroupDelegate} provider for dependency injection.
12522
12592
  *
12523
- * @param sourceType The class type to register as the group delegate provider
12524
- * @returns An array of Angular providers that bind the given class to {@link DbxValueListViewGroupDelegate}
12593
+ * @param sourceType - The class type to register as the group delegate provider.
12594
+ * @returns Array of Angular providers that bind the given class to {@link DbxValueListViewGroupDelegate}
12525
12595
  *
12526
- * @example
12527
- * ```ts
12528
- * @Directive({
12596
+ * @Directive ({
12529
12597
  * providers: provideDbxValueListViewGroupDelegate(MyGroupDelegate)
12530
12598
  * })
12531
12599
  * export class MyGroupDelegate extends DbxValueListViewGroupDelegate<MyGroup, MyItem> { ... }
12532
12600
  * ```
12601
+ *
12602
+ * @example
12603
+ * ```ts
12533
12604
  */
12534
12605
  function provideDbxValueListViewGroupDelegate(sourceType) {
12535
12606
  // use of any here is allowed as typings are not relevant for providers
@@ -12647,9 +12718,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
12647
12718
  * Uses the item's {@link DbxValueListItem.key} when available for stable identity across
12648
12719
  * data updates, falling back to a prefixed index string to avoid collisions with key values.
12649
12720
  *
12650
- * @param index - the item's position index in the list
12651
- * @param item - the list item whose identity key is resolved
12652
- * @returns the item's key, itemValue key/id, or a prefixed index string as a fallback
12721
+ * @param index - The item's position index in the list.
12722
+ * @param item - The list item whose identity key is resolved.
12723
+ * @returns The item's key, itemValue key/id, or a prefixed index string as a fallback.
12653
12724
  */
12654
12725
  const DEFAULT_VALUE_LIST_VIEW_CONTENT_COMPONENT_TRACK_BY_FUNCTION = (index, item) => item.key;
12655
12726
  /**
@@ -12756,14 +12827,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
12756
12827
  /**
12757
12828
  * Flattens grouped accordion items into a single array of render entries with stable track IDs.
12758
12829
  *
12830
+ * @param groups - The grouped items to flatten.
12831
+ * @param trackByFn - The track-by function used to derive stable item identity.
12832
+ * @returns A flat array of render entries for use in a single `@for` loop.
12833
+ *
12759
12834
  * @example
12760
12835
  * ```ts
12761
12836
  * const entries = flattenAccordionGroups(groups, trackByFn);
12762
12837
  * ```
12763
- *
12764
- * @param groups - the grouped items to flatten
12765
- * @param trackByFn - the track-by function used to derive stable item identity
12766
- * @returns a flat array of render entries for use in a single `@for` loop
12767
12838
  */
12768
12839
  function flattenAccordionGroups(groups, trackByFn) {
12769
12840
  const entries = [];
@@ -13023,7 +13094,7 @@ class AbstractDbxListViewDirective {
13023
13094
  valuesObs = asObservable(x);
13024
13095
  }
13025
13096
  else {
13026
- valuesObs = combineLatest([this._inputValues$, this._inputValuesArray$]).pipe(switchMap(([x, y]) => (y != null ? of(y) : asObservable(x))));
13097
+ valuesObs = combineLatest([this._inputValues$, this._inputValuesArray$]).pipe(switchMap(([x, y]) => (y == null ? asObservable(x) : of(y))));
13027
13098
  }
13028
13099
  return valuesObs;
13029
13100
  }));
@@ -13322,10 +13393,10 @@ const dbxListGridViewComponentImportsAndExports = DBX_LIST_GRID_VIEW_COMPONENT_I
13322
13393
  /**
13323
13394
  * Injection token for providing a default meta icon string to {@link DbxListViewMetaIconComponent} instances.
13324
13395
  */
13325
- const DBX_LIST_VIEW_DEFAULT_META_ICON = new InjectionToken('DBX_LIST_VIEW_DEFAULT_META_ICON');
13396
+ const DEFAULT_DBX_LIST_VIEW_META_ICON = new InjectionToken('DEFAULT_DBX_LIST_VIEW_META_ICON');
13326
13397
  /**
13327
13398
  * Displays a Material icon in the meta (trailing) area of a list item. Reads its icon from the item's meta
13328
- * configuration or falls back to a default provided via {@link DBX_LIST_VIEW_DEFAULT_META_ICON}.
13399
+ * configuration or falls back to a default provided via {@link DEFAULT_DBX_LIST_VIEW_META_ICON}.
13329
13400
  *
13330
13401
  * Use the static `metaConfig()` method to create the injection component config for use in list view configurations.
13331
13402
  *
@@ -13336,14 +13407,14 @@ const DBX_LIST_VIEW_DEFAULT_META_ICON = new InjectionToken('DBX_LIST_VIEW_DEFAUL
13336
13407
  */
13337
13408
  class DbxListViewMetaIconComponent {
13338
13409
  item = inject(DBX_VALUE_LIST_VIEW_ITEM, { optional: true });
13339
- defaultIcon = inject(DBX_LIST_VIEW_DEFAULT_META_ICON, { optional: true });
13410
+ defaultIcon = inject(DEFAULT_DBX_LIST_VIEW_META_ICON, { optional: true });
13340
13411
  icon = this.item?.meta?.icon ?? this.defaultIcon;
13341
13412
  static metaConfig(defaultIcon) {
13342
13413
  return {
13343
13414
  componentClass: DbxListViewMetaIconComponent,
13344
13415
  providers: [
13345
13416
  {
13346
- provide: DBX_LIST_VIEW_DEFAULT_META_ICON,
13417
+ provide: DEFAULT_DBX_LIST_VIEW_META_ICON,
13347
13418
  useValue: defaultIcon
13348
13419
  }
13349
13420
  ]
@@ -13456,7 +13527,16 @@ class DbxListTitleGroupDirective {
13456
13527
  groupValues = (items) => {
13457
13528
  return this._delegate$.pipe(map((delegate) => {
13458
13529
  let groups;
13459
- if (delegate != null) {
13530
+ if (delegate == null) {
13531
+ groups = [
13532
+ {
13533
+ id: '_',
13534
+ data: { value: null, title: '' },
13535
+ items
13536
+ }
13537
+ ];
13538
+ }
13539
+ else {
13460
13540
  const groupsValuesMap = makeValuesGroupMap(items, delegate.groupValueForItem);
13461
13541
  const { sortGroupsByData, cssClasses: inputCssClasses } = delegate;
13462
13542
  const cssClassesForAllGroups = inputCssClasses ?? [];
@@ -13486,15 +13566,6 @@ class DbxListTitleGroupDirective {
13486
13566
  groups.sort(compareWithMappedValuesFunction((x) => x.data, sortGroupsByData));
13487
13567
  }
13488
13568
  }
13489
- else {
13490
- groups = [
13491
- {
13492
- id: '_',
13493
- data: { value: null, title: '' },
13494
- items
13495
- }
13496
- ];
13497
- }
13498
13569
  return groups;
13499
13570
  }));
13500
13571
  };
@@ -13518,10 +13589,10 @@ const DBX_LIST_ITEM_DISABLE_RIPPLE_LIST_ITEM_MODIFIER_KEY = 'disable_ripple_anch
13518
13589
  * Default decision function that disables ripple on items that already have ripple disabled,
13519
13590
  * lack an anchor, or have an anchor with no navigation target.
13520
13591
  *
13521
- * @param item - the list item to evaluate for ripple disabling
13522
- * @returns `true` if the ripple should be disabled for this item
13592
+ * @param item - The list item to evaluate for ripple disabling.
13593
+ * @returns `true` if the ripple should be disabled for this item.
13523
13594
  */
13524
- const DBX_LIST_ITEM_DEFAULT_DISABLE_FUNCTION = (item) => {
13595
+ const DEFAULT_DBX_LIST_ITEM_DISABLE_FUNCTION = (item) => {
13525
13596
  return item.rippleDisabled || !item.anchor || (!item.anchor.ref && !item.anchor.url && !item.anchor.onClick);
13526
13597
  };
13527
13598
  /**
@@ -13535,7 +13606,7 @@ const DBX_LIST_ITEM_DEFAULT_DISABLE_FUNCTION = (item) => {
13535
13606
  */
13536
13607
  class DbxListItemDisableRippleModifierDirective extends AbstractDbxValueListItemModifierDirective {
13537
13608
  disableRippleForItem = input(undefined, { ...(ngDevMode ? { debugName: "disableRippleForItem" } : /* istanbul ignore next */ {}), alias: 'dbxListItemDisableRippleModifier', transform: transformEmptyStringInputToUndefined });
13538
- disableRippleForItemModifiers$ = toObservable(this.disableRippleForItem).pipe(map((x) => x ?? DBX_LIST_ITEM_DEFAULT_DISABLE_FUNCTION), map((disableRippleForItem) => {
13609
+ disableRippleForItemModifiers$ = toObservable(this.disableRippleForItem).pipe(map((x) => x ?? DEFAULT_DBX_LIST_ITEM_DISABLE_FUNCTION), map((disableRippleForItem) => {
13539
13610
  const modifiers = {
13540
13611
  key: DBX_LIST_ITEM_DISABLE_RIPPLE_LIST_ITEM_MODIFIER_KEY,
13541
13612
  modify: (x) => {
@@ -13568,8 +13639,8 @@ const DBX_LIST_ITEM_IS_SELECTED_ITEM_MODIFIER_KEY = 'is_selected_item_modifier';
13568
13639
  /**
13569
13640
  * Default decision function that returns the item's current `selected` state (defaulting to false).
13570
13641
  *
13571
- * @param item - the list item to check for selection
13572
- * @returns `true` if the item is currently selected, `false` otherwise
13642
+ * @param item - The list item to check for selection.
13643
+ * @returns `true` if the item is currently selected, `false` otherwise.
13573
13644
  */
13574
13645
  const DEFAULT_DBX_LIST_ITEM_IS_SELECTED_FUNCTION = (item) => {
13575
13646
  return item.selected ?? false;
@@ -13709,11 +13780,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
13709
13780
  /**
13710
13781
  * Default infinite scroll distance multiplier for triggering load-more events.
13711
13782
  */
13712
- const DBX_LIST_DEFAULT_SCROLL_DISTANCE = 1.5;
13783
+ const DEFAULT_DBX_LIST_SCROLL_DISTANCE = 1.5;
13713
13784
  /**
13714
13785
  * Default throttle duration in milliseconds for scroll events.
13715
13786
  */
13716
- const DBX_LIST_DEFAULT_THROTTLE_SCROLL = 50;
13787
+ const DEFAULT_DBX_LIST_THROTTLE_SCROLL = 50;
13717
13788
  /**
13718
13789
  * Displays a potentially infinitely scrollable list of content. Supports load-more triggers, selection modes, and empty/loading states.
13719
13790
  *
@@ -13769,8 +13840,8 @@ class DbxListComponent {
13769
13840
  selectionMode$ = toObservable(this.selectionMode).pipe(distinctUntilChanged(), shareReplay(1));
13770
13841
  hideOnEmpty$ = this.config$.pipe(filterMaybe(), map((x) => Boolean(x.hideOnEmpty)), distinctUntilChanged(), shareReplay(1));
13771
13842
  invertedList$ = this.config$.pipe(filterMaybe(), map((x) => Boolean(x?.throttle)), distinctUntilChanged(), shareReplay(1));
13772
- throttleScroll$ = this.config$.pipe(map((x) => x?.throttle ?? DBX_LIST_DEFAULT_THROTTLE_SCROLL), distinctUntilChanged(), shareReplay(1));
13773
- scrollDistance$ = this.config$.pipe(map((x) => x?.scrollDistance ?? DBX_LIST_DEFAULT_SCROLL_DISTANCE), distinctUntilChanged(), shareReplay(1));
13843
+ throttleScroll$ = this.config$.pipe(map((x) => x?.throttle ?? DEFAULT_DBX_LIST_THROTTLE_SCROLL), distinctUntilChanged(), shareReplay(1));
13844
+ scrollDistance$ = this.config$.pipe(map((x) => x?.scrollDistance ?? DEFAULT_DBX_LIST_SCROLL_DISTANCE), distinctUntilChanged(), shareReplay(1));
13774
13845
  scrollLoadMoreTrigger$ = this.config$.pipe(switchMap((config) => {
13775
13846
  const loadNextDirection = config?.invertedList ? 'up' : 'down';
13776
13847
  return this._scrollTrigger.pipe(filter((x) => x === loadNextDirection));
@@ -13835,8 +13906,8 @@ class DbxListComponent {
13835
13906
  }
13836
13907
  return this.hideOnEmpty$.pipe(switchMap((hide) => (hide === false ? of(false) : this.isEmpty$)), distinctUntilChanged(), shareReplay(1));
13837
13908
  }), distinctUntilChanged(), shareReplay(1));
13838
- infiniteScrollDistanceSignal = toSignal(this.scrollDistance$, { initialValue: DBX_LIST_DEFAULT_SCROLL_DISTANCE });
13839
- infiniteScrollThrottleSignal = toSignal(this.throttleScroll$, { initialValue: DBX_LIST_DEFAULT_THROTTLE_SCROLL });
13909
+ infiniteScrollDistanceSignal = toSignal(this.scrollDistance$, { initialValue: DEFAULT_DBX_LIST_SCROLL_DISTANCE });
13910
+ infiniteScrollThrottleSignal = toSignal(this.throttleScroll$, { initialValue: DEFAULT_DBX_LIST_THROTTLE_SCROLL });
13840
13911
  hideContentSignal = toSignal(this.hideContent$);
13841
13912
  injectedComponentConfigSignal = toSignal(this.injectedComponentConfig$);
13842
13913
  isEmptyAndNotLoadingSignal = toSignal(this.isEmptyAndNotLoading$);
@@ -13847,17 +13918,18 @@ class DbxListComponent {
13847
13918
  }
13848
13919
  getScrollPositionRelativeToBottom() {
13849
13920
  const element = this.nativeElementSignal();
13921
+ let result = 0;
13850
13922
  if (element) {
13851
13923
  try {
13852
13924
  // At max scroll, scrollHeight = scrollTop + clientHeight;
13853
13925
  const { scrollTop, scrollHeight, clientHeight } = element;
13854
- return scrollHeight - (scrollTop + clientHeight);
13926
+ result = scrollHeight - (scrollTop + clientHeight);
13855
13927
  }
13856
13928
  catch {
13857
13929
  /* ignored */
13858
13930
  }
13859
13931
  }
13860
- return 0;
13932
+ return result;
13861
13933
  }
13862
13934
  jumpToBottom() {
13863
13935
  const element = this.nativeElementSignal();
@@ -13958,10 +14030,12 @@ class AbstractDbxListWrapperDirective {
13958
14030
  selectionMode = input(...(ngDevMode ? [undefined, { debugName: "selectionMode" }] : /* istanbul ignore next */ []));
13959
14031
  state = input(...(ngDevMode ? [undefined, { debugName: "state" }] : /* istanbul ignore next */ []));
13960
14032
  selectionModeSignal = computed(() => {
13961
- return this._selectionModeOverrideSignal() ?? this.selectionMode();
14033
+ const selectionMode = this.selectionMode();
14034
+ return this._selectionModeOverrideSignal() ?? selectionMode;
13962
14035
  }, ...(ngDevMode ? [{ debugName: "selectionModeSignal" }] : /* istanbul ignore next */ []));
13963
14036
  disabledSignal = computed(() => {
13964
- return this._disabledOverrideSignal() ?? this.disabled();
14037
+ const disabled = this.disabled();
14038
+ return this._disabledOverrideSignal() ?? disabled;
13965
14039
  }, ...(ngDevMode ? [{ debugName: "disabledSignal" }] : /* istanbul ignore next */ []));
13966
14040
  currentState$ = combineLatest([this._stateOverride, toObservable(this.state)]).pipe(map(([stateOverride, state]) => stateOverride ?? state), maybeValueFromObservableOrValue(), shareReplay(1));
13967
14041
  config$ = this._config.pipe(maybeValueFromObservableOrValue(), map((x) => (x ? this._buildListConfig(x) : undefined)), shareReplay(1));
@@ -14047,20 +14121,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
14047
14121
  /**
14048
14122
  * Angular {@link TrackByFunction} that tracks {@link UniqueModel} items by their `id` property.
14049
14123
  *
14050
- * @param index - the item's index in the iterable
14051
- * @param model - the model whose `id` is used as the tracking identity
14052
- * @returns the model's unique `id` value
14124
+ * @param index - The item's index in the iterable.
14125
+ * @param model - The model whose `id` is used as the tracking identity.
14126
+ * @returns The model's unique `id` value.
14053
14127
  */
14054
14128
  const TRACK_BY_MODEL_ID = (index, model) => model.id;
14055
14129
  /**
14056
14130
  * Returns a {@link TrackByFunction} that tracks items by their unique `id` property.
14057
14131
  *
14132
+ * @returns A TrackByFunction that uses the item's `id` for identity tracking.
14133
+ *
14058
14134
  * @example
14059
14135
  * ```ts
14060
14136
  * readonly trackBy = trackByUniqueIdentifier<MyModel>();
14061
14137
  * ```
14062
- *
14063
- * @returns a TrackByFunction that uses the item's `id` for identity tracking
14064
14138
  */
14065
14139
  function trackByUniqueIdentifier() {
14066
14140
  return TRACK_BY_MODEL_ID;
@@ -14068,20 +14142,20 @@ function trackByUniqueIdentifier() {
14068
14142
  /**
14069
14143
  * Angular {@link TrackByFunction} that tracks {@link ModelKeyRef} items by their `key` property.
14070
14144
  *
14071
- * @param index - the item's index in the iterable
14072
- * @param model - the model whose `key` is used as the tracking identity
14073
- * @returns the model's `key` value
14145
+ * @param index - The item's index in the iterable.
14146
+ * @param model - The model whose `key` is used as the tracking identity.
14147
+ * @returns The model's `key` value.
14074
14148
  */
14075
14149
  const TRACK_BY_MODEL_KEY = (index, model) => model.key;
14076
14150
  /**
14077
14151
  * Returns a {@link TrackByFunction} that tracks items by their model `key` property.
14078
14152
  *
14153
+ * @returns A TrackByFunction that uses the item's `key` for identity tracking.
14154
+ *
14079
14155
  * @example
14080
14156
  * ```ts
14081
14157
  * readonly trackBy = trackByModelKeyRef<MyModelRef>();
14082
14158
  * ```
14083
- *
14084
- * @returns a TrackByFunction that uses the item's `key` for identity tracking
14085
14159
  */
14086
14160
  function trackByModelKeyRef() {
14087
14161
  return TRACK_BY_MODEL_KEY;
@@ -14295,16 +14369,17 @@ class DbxListViewWrapper {
14295
14369
  /**
14296
14370
  * Registers a component as a {@link DbxListViewWrapper} provider for dependency injection.
14297
14371
  *
14298
- * @example
14299
- * ```ts
14300
- * @Component({
14372
+ * @param sourceType - The component class to register as the DbxListViewWrapper provider.
14373
+ * @returns Array of Angular providers that wire up the component as a DbxListViewWrapper.
14374
+ *
14375
+ * @Component ({
14301
14376
  * providers: provideDbxListViewWrapper(MyListWrapperComponent)
14302
14377
  * })
14303
14378
  * export class MyListWrapperComponent extends DbxListViewWrapper<MyItem> { ... }
14304
14379
  * ```
14305
14380
  *
14306
- * @param sourceType - the component class to register as the DbxListViewWrapper provider
14307
- * @returns an array of Angular providers that wire up the component as a DbxListViewWrapper
14381
+ * @example
14382
+ * ```ts
14308
14383
  */
14309
14384
  function provideDbxListViewWrapper(sourceType) {
14310
14385
  return [
@@ -14422,15 +14497,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
14422
14497
  */
14423
14498
  class DbxSectionPageComponent extends DbxSectionHeaderComponent {
14424
14499
  scroll = input('all', ...(ngDevMode ? [{ debugName: "scroll" }] : /* istanbul ignore next */ []));
14425
- classConfig = computed(() => {
14500
+ classConfigSignal = computed(() => {
14426
14501
  return `dbx-section-page-scroll-${this.scroll()}`;
14427
- }, ...(ngDevMode ? [{ debugName: "classConfig" }] : /* istanbul ignore next */ []));
14502
+ }, ...(ngDevMode ? [{ debugName: "classConfigSignal" }] : /* istanbul ignore next */ []));
14428
14503
  constructor() {
14429
14504
  super();
14430
14505
  this.hintInlineDefault.set(true);
14431
14506
  }
14432
14507
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxSectionPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
14433
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.11", type: DbxSectionPageComponent, isStandalone: true, selector: "dbx-section-page", inputs: { scroll: { classPropertyName: "scroll", publicName: "scroll", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classConfig()" }, classAttribute: "d-block dbx-content-page dbx-section-page" }, usesInheritance: true, ngImport: i0, template: `
14508
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.11", type: DbxSectionPageComponent, isStandalone: true, selector: "dbx-section-page", inputs: { scroll: { classPropertyName: "scroll", publicName: "scroll", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classConfigSignal()" }, classAttribute: "d-block dbx-content-page dbx-section-page" }, usesInheritance: true, ngImport: i0, template: `
14434
14509
  <div class="dbx-section-header" [h]="headerConfigSignal().h ?? 2" [header]="headerConfigSignal().header" [onlyHeader]="headerConfigSignal().onlyHeader" [icon]="headerConfigSignal().icon" [hint]="headerConfigSignal().hint" [hintInline]="headerConfigSignal().hintInline">
14435
14510
  <ng-content select="[sectionHeader]"></ng-content>
14436
14511
  </div>
@@ -14453,7 +14528,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
14453
14528
  `,
14454
14529
  host: {
14455
14530
  class: 'd-block dbx-content-page dbx-section-page',
14456
- '[class]': 'classConfig()'
14531
+ '[class]': 'classConfigSignal()'
14457
14532
  },
14458
14533
  standalone: true,
14459
14534
  imports: [DbxSectionHeaderComponent],
@@ -14482,15 +14557,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
14482
14557
  /**
14483
14558
  * Injection token for providing the default {@link DbxStyleConfig} to {@link DbxStyleService}.
14484
14559
  */
14485
- const DBX_STYLE_DEFAULT_CONFIG_TOKEN = new InjectionToken('DbxStyleServiceDefaultConfig');
14560
+ const DEFAULT_DBX_STYLE_CONFIG_TOKEN = new InjectionToken('DbxStyleServiceDefaultConfig');
14486
14561
  /**
14487
14562
  * Manages application-wide style classes and suffix modes (e.g., dark mode).
14488
14563
  *
14489
14564
  * Consumers can set a default style config, override it with an observable config,
14490
14565
  * and toggle style suffixes to switch between style variants at runtime.
14566
+ *
14567
+ * Provided via `provideDbxStyleService()` from `style.providers`.
14568
+ *
14569
+ * @dbxWebComponent
14570
+ * @dbxWebSlug style-service
14571
+ * @dbxWebCategory layout
14572
+ * @dbxWebRelated style, set-style, style-body, color-service
14573
+ *
14574
+ * @example
14575
+ * ```ts
14576
+ * const styleService = inject(DbxStyleService);
14577
+ * styleService.toggleDarkSuffix(); // toggle dark mode on/off
14578
+ * styleService.setStyleClassSuffix('dark'); // force dark mode
14579
+ * ```
14491
14580
  */
14492
14581
  class DbxStyleService {
14493
- _defaultConfig = new BehaviorSubject(inject(DBX_STYLE_DEFAULT_CONFIG_TOKEN));
14582
+ _defaultConfig = new BehaviorSubject(inject(DEFAULT_DBX_STYLE_CONFIG_TOKEN));
14494
14583
  _config = new BehaviorSubject(undefined);
14495
14584
  _styleClassSuffix = new BehaviorSubject(undefined);
14496
14585
  config$ = this._config.pipe(switchMap((x) => x ?? this._defaultConfig), filterMaybe(), distinctUntilChanged(), shareReplay(1));
@@ -14499,8 +14588,8 @@ class DbxStyleService {
14499
14588
  /**
14500
14589
  * Returns the style class given the input configuration.
14501
14590
  *
14502
- * @param configObs Observable containing the configuration to use.
14503
- * @returns DbxStyleClass
14591
+ * @param configObs - Observable containing the configuration to use.
14592
+ * @returns DbxStyleClass.
14504
14593
  */
14505
14594
  getStyleClassWithConfig(configObs) {
14506
14595
  return combineLatest([configObs, this.styleClassSuffix$]).pipe(map(([config, suffix]) => {
@@ -14514,7 +14603,7 @@ class DbxStyleService {
14514
14603
  /**
14515
14604
  * Toggles the dark suffix on/off for the service.
14516
14605
  *
14517
- * @param toggle Whether to toggle the suffix on or off
14606
+ * @param toggle - Whether to toggle the suffix on or off.
14518
14607
  */
14519
14608
  toggleDarkSuffix(toggle) {
14520
14609
  this.toggleSuffix(DBX_DARK_STYLE_CLASS_SUFFIX, toggle);
@@ -14522,13 +14611,13 @@ class DbxStyleService {
14522
14611
  /**
14523
14612
  * Toggles the arbitrary suffix on/off for the service.
14524
14613
  *
14525
- * @param suffix The suffix to toggle
14526
- * @param toggle Whether to toggle the suffix on or off
14614
+ * @param suffix - The suffix to toggle.
14615
+ * @param toggle - Whether to toggle the suffix on or off.
14527
14616
  */
14528
14617
  toggleSuffix(suffix, toggle) {
14529
14618
  // clean the suffix
14530
14619
  suffix = dbxStyleClassCleanSuffix(suffix);
14531
- const toggleValue = toggle != null ? toggle : this.currentStyleClassSuffix !== suffix;
14620
+ const toggleValue = toggle == null ? this.currentStyleClassSuffix !== suffix : toggle;
14532
14621
  let suffixValue = undefined;
14533
14622
  if (toggleValue) {
14534
14623
  suffixValue = suffix;
@@ -14541,7 +14630,7 @@ class DbxStyleService {
14541
14630
  /**
14542
14631
  * Returns the current style class suffix, if one is set.
14543
14632
  *
14544
- * @returns the currently active style class suffix, or undefined if none is set
14633
+ * @returns The currently active style class suffix, or undefined if none is set.
14545
14634
  */
14546
14635
  get currentStyleClassSuffix() {
14547
14636
  return this._styleClassSuffix.value;
@@ -14549,7 +14638,7 @@ class DbxStyleService {
14549
14638
  /**
14550
14639
  * Directly sets the active style class suffix, or clears it if null/undefined.
14551
14640
  *
14552
- * @param suffix - the suffix to activate, or nullish to clear the current suffix
14641
+ * @param suffix - The suffix to activate, or nullish to clear the current suffix.
14553
14642
  */
14554
14643
  setStyleClassSuffix(suffix) {
14555
14644
  this._styleClassSuffix.next(suffix ? dbxStyleClassCleanSuffix(suffix) : undefined);
@@ -14557,7 +14646,7 @@ class DbxStyleService {
14557
14646
  /**
14558
14647
  * Updates the default style configuration used when no override config is set.
14559
14648
  *
14560
- * @param defaultConfig - the style configuration to use as the new default
14649
+ * @param defaultConfig - The style configuration to use as the new default.
14561
14650
  */
14562
14651
  setDefaultConfig(defaultConfig) {
14563
14652
  this._defaultConfig.next(defaultConfig);
@@ -14565,7 +14654,7 @@ class DbxStyleService {
14565
14654
  /**
14566
14655
  * Overrides the active style configuration with the given value or observable.
14567
14656
  *
14568
- * @param config - a style configuration value or observable to set as the active override
14657
+ * @param config - A style configuration value or observable to set as the active override.
14569
14658
  */
14570
14659
  setConfig(config) {
14571
14660
  this._config.next(asObservable(config));
@@ -14573,7 +14662,7 @@ class DbxStyleService {
14573
14662
  /**
14574
14663
  * Clears the active config override if it matches the given reference, reverting to the default config.
14575
14664
  *
14576
- * @param config - the config reference to compare against the current override
14665
+ * @param config - The config reference to compare against the current override.
14577
14666
  */
14578
14667
  unsetConfig(config) {
14579
14668
  if (this._config.value === config) {
@@ -14598,6 +14687,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
14598
14687
  * Accepts a {@link DbxStyleName} and optional suffixes, then applies the computed style class
14599
14688
  * depending on the configured {@link DbxSetStyleMode}.
14600
14689
  *
14690
+ * @dbxWebComponent
14691
+ * @dbxWebSlug set-style
14692
+ * @dbxWebCategory layout
14693
+ * @dbxWebRelated style, style-service, style-body
14694
+ * @dbxWebMinimalExample ```html
14695
+ * <div [dbxSetStyle]="'my-app'"></div>
14696
+ * ```
14697
+ *
14601
14698
  * @example
14602
14699
  * ```html
14603
14700
  * <div [dbxSetStyle]="'my-app'" [setStyleMode]="'both'" [suffixes]="'dark'">
@@ -14671,6 +14768,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
14671
14768
  *
14672
14769
  * Use this directive to propagate the active style class onto any element or component.
14673
14770
  *
14771
+ * @dbxWebComponent
14772
+ * @dbxWebSlug style
14773
+ * @dbxWebCategory layout
14774
+ * @dbxWebRelated style-service, style-body, set-style
14775
+ * @dbxWebMinimalExample ```html
14776
+ * <div dbxStyle></div>
14777
+ * ```
14778
+ *
14674
14779
  * @example
14675
14780
  * ```html
14676
14781
  * <div dbxStyle>Styled content</div>
@@ -14703,6 +14808,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
14703
14808
  *
14704
14809
  * Place this directive on a root-level element so that the body tag receives the active style class.
14705
14810
  *
14811
+ * @dbxWebComponent
14812
+ * @dbxWebSlug style-body
14813
+ * @dbxWebCategory layout
14814
+ * @dbxWebRelated style, style-service, set-style
14815
+ * @dbxWebMinimalExample ```html
14816
+ * <div dbxStyleBody></div>
14817
+ * ```
14818
+ *
14706
14819
  * @example
14707
14820
  * ```html
14708
14821
  * <div dbxStyleBody></div>
@@ -14756,6 +14869,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
14756
14869
  /**
14757
14870
  * Provides environment-level providers for {@link DbxStyleService}, {@link DbxColorService}, and their default configurations.
14758
14871
  *
14872
+ * @param config - Configuration specifying the default style and optional color templates.
14873
+ * @returns Environment providers for the style and color services and their default config tokens.
14874
+ *
14759
14875
  * @example
14760
14876
  * ```ts
14761
14877
  * provideDbxStyleService({
@@ -14766,8 +14882,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
14766
14882
  * });
14767
14883
  * ```
14768
14884
  *
14769
- * @param config - configuration specifying the default style and optional color templates
14770
- * @returns environment providers for the style and color services and their default config tokens
14771
14885
  * @__NO_SIDE_EFFECTS__
14772
14886
  */
14773
14887
  function provideDbxStyleService(config) {
@@ -14775,7 +14889,7 @@ function provideDbxStyleService(config) {
14775
14889
  const providers = [
14776
14890
  // config
14777
14891
  {
14778
- provide: DBX_STYLE_DEFAULT_CONFIG_TOKEN,
14892
+ provide: DEFAULT_DBX_STYLE_CONFIG_TOKEN,
14779
14893
  useValue: dbxStyleConfig
14780
14894
  },
14781
14895
  // services
@@ -15170,12 +15284,30 @@ class DbxStepBlockComponent {
15170
15284
  hint = input(...(ngDevMode ? [undefined, { debugName: "hint" }] : /* istanbul ignore next */ []));
15171
15285
  color = input(...(ngDevMode ? [undefined, { debugName: "color" }] : /* istanbul ignore next */ []));
15172
15286
  center = input(...(ngDevMode ? [undefined, { debugName: "center" }] : /* istanbul ignore next */ []));
15173
- stepSignal = computed(() => this.step() ?? this.config()?.step ?? 1, ...(ngDevMode ? [{ debugName: "stepSignal" }] : /* istanbul ignore next */ []));
15174
- iconSignal = computed(() => this.icon() ?? this.config()?.icon, ...(ngDevMode ? [{ debugName: "iconSignal" }] : /* istanbul ignore next */ []));
15175
- headerSignal = computed(() => this.header() ?? this.config()?.header, ...(ngDevMode ? [{ debugName: "headerSignal" }] : /* istanbul ignore next */ []));
15176
- hintSignal = computed(() => this.hint() ?? this.config()?.hint, ...(ngDevMode ? [{ debugName: "hintSignal" }] : /* istanbul ignore next */ []));
15177
- colorSignal = computed(() => this.color() ?? this.config()?.color ?? 'primary', ...(ngDevMode ? [{ debugName: "colorSignal" }] : /* istanbul ignore next */ []));
15178
- centerSignal = computed(() => this.center() ?? this.config()?.center ?? false, ...(ngDevMode ? [{ debugName: "centerSignal" }] : /* istanbul ignore next */ []));
15287
+ stepSignal = computed(() => {
15288
+ const config = this.config();
15289
+ return this.step() ?? config?.step ?? 1;
15290
+ }, ...(ngDevMode ? [{ debugName: "stepSignal" }] : /* istanbul ignore next */ []));
15291
+ iconSignal = computed(() => {
15292
+ const config = this.config();
15293
+ return this.icon() ?? config?.icon;
15294
+ }, ...(ngDevMode ? [{ debugName: "iconSignal" }] : /* istanbul ignore next */ []));
15295
+ headerSignal = computed(() => {
15296
+ const config = this.config();
15297
+ return this.header() ?? config?.header;
15298
+ }, ...(ngDevMode ? [{ debugName: "headerSignal" }] : /* istanbul ignore next */ []));
15299
+ hintSignal = computed(() => {
15300
+ const config = this.config();
15301
+ return this.hint() ?? config?.hint;
15302
+ }, ...(ngDevMode ? [{ debugName: "hintSignal" }] : /* istanbul ignore next */ []));
15303
+ colorSignal = computed(() => {
15304
+ const config = this.config();
15305
+ return this.color() ?? config?.color ?? 'primary';
15306
+ }, ...(ngDevMode ? [{ debugName: "colorSignal" }] : /* istanbul ignore next */ []));
15307
+ centerSignal = computed(() => {
15308
+ const config = this.config();
15309
+ return this.center() ?? config?.center ?? false;
15310
+ }, ...(ngDevMode ? [{ debugName: "centerSignal" }] : /* istanbul ignore next */ []));
15179
15311
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxStepBlockComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
15180
15312
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.11", type: DbxStepBlockComponent, isStandalone: true, selector: "dbx-step-block", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, step: { classPropertyName: "step", publicName: "step", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, header: { classPropertyName: "header", publicName: "header", isSignal: true, isRequired: false, transformFunction: null }, hint: { classPropertyName: "hint", publicName: "hint", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, center: { classPropertyName: "center", publicName: "center", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.dbx-step-block-center": "centerSignal()" }, classAttribute: "dbx-step-block d-block" }, ngImport: i0, template: `
15181
15313
  <dbx-icon-tile class="dbx-step-block-badge" [icon]="iconSignal()" [dbxColor]="colorSignal()">
@@ -15291,7 +15423,7 @@ class DbxLinkifyService {
15291
15423
  /**
15292
15424
  * Registers the default entry.
15293
15425
  *
15294
- * @param entry Entry without the type field
15426
+ * @param entry - Entry without the type field.
15295
15427
  */
15296
15428
  registerDefaultEntry(entry) {
15297
15429
  this._entries.set(DEFAULT_DBX_LINKIFY_STRING_TYPE, {
@@ -15302,8 +15434,8 @@ class DbxLinkifyService {
15302
15434
  /**
15303
15435
  * Registers one or more entries by type.
15304
15436
  *
15305
- * @param entries One or more entries to register
15306
- * @param override Whether to override existing entries (default: true)
15437
+ * @param entries - One or more entries to register.
15438
+ * @param override - Whether to override existing entries (default: true)
15307
15439
  */
15308
15440
  register(entries, override = true) {
15309
15441
  useIterableOrValue(entries, (entry) => {
@@ -15316,7 +15448,7 @@ class DbxLinkifyService {
15316
15448
  /**
15317
15449
  * Returns the default entry.
15318
15450
  *
15319
- * @returns the default linkify service entry, or undefined if none is registered
15451
+ * @returns The default linkify service entry, or undefined if none is registered.
15320
15452
  */
15321
15453
  getDefaultEntry() {
15322
15454
  return this._entries.get(DEFAULT_DBX_LINKIFY_STRING_TYPE);
@@ -15324,8 +15456,8 @@ class DbxLinkifyService {
15324
15456
  /**
15325
15457
  * Returns the entry for the given type.
15326
15458
  *
15327
- * @param type - the linkify string type to look up
15328
- * @returns the registered entry for the given type, or undefined if not found
15459
+ * @param type - The linkify string type to look up.
15460
+ * @returns The registered entry for the given type, or undefined if not found.
15329
15461
  */
15330
15462
  getEntryRegisteredForType(type) {
15331
15463
  return this._entries.get(type);
@@ -15333,8 +15465,8 @@ class DbxLinkifyService {
15333
15465
  /**
15334
15466
  * Returns the entry for the given type, or the default type if there is no entry registered or the input type is null/undefined.
15335
15467
  *
15336
- * @param type - the linkify string type to look up, or nullish to retrieve the default entry
15337
- * @returns the matching entry, or the default entry if the type is not provided
15468
+ * @param type - The linkify string type to look up, or nullish to retrieve the default entry.
15469
+ * @returns The matching entry, or the default entry if the type is not provided.
15338
15470
  */
15339
15471
  getEntry(type) {
15340
15472
  return type ? this._entries.get(type) : this.getDefaultEntry();
@@ -15405,6 +15537,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
15405
15537
  /**
15406
15538
  * Creates environment-level providers for configuring {@link DbxLinkifyService} with a custom factory.
15407
15539
  *
15540
+ * @param config - Configuration containing the factory function for creating the linkify service config.
15541
+ * @returns Environment providers that register the DbxLinkifyServiceConfig.
15542
+ *
15408
15543
  * @example
15409
15544
  * ```ts
15410
15545
  * provideDbxLinkify({
@@ -15414,9 +15549,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
15414
15549
  * })
15415
15550
  * });
15416
15551
  * ```
15417
- *
15418
- * @param config - configuration containing the factory function for creating the linkify service config
15419
- * @returns environment providers that register the DbxLinkifyServiceConfig
15420
15552
  */
15421
15553
  function provideDbxLinkify(config) {
15422
15554
  const { dbxLinkifyServiceConfigFactory } = config;
@@ -15432,7 +15564,7 @@ function provideDbxLinkify(config) {
15432
15564
  /**
15433
15565
  * Default background tone percentage for tonal chip coloring.
15434
15566
  */
15435
- const DBX_CHIP_DEFAULT_TONE = 18;
15567
+ const DEFAULT_DBX_CHIP_TONE = 18;
15436
15568
  /**
15437
15569
  * Renders a styled chip element with optional small, block, and color modes.
15438
15570
  *
@@ -15467,12 +15599,15 @@ class DbxChipDirective {
15467
15599
  */
15468
15600
  display = input(...(ngDevMode ? [undefined, { debugName: "display" }] : /* istanbul ignore next */ []));
15469
15601
  /**
15470
- * Background tone level for tonal appearance. Defaults to {@link DBX_CHIP_DEFAULT_TONE}.
15602
+ * Background tone level for tonal appearance. Defaults to {@link DEFAULT_DBX_CHIP_TONE}.
15471
15603
  *
15472
15604
  * Set to `100` for fully opaque background.
15473
15605
  */
15474
15606
  tone = input(...(ngDevMode ? [undefined, { debugName: "tone" }] : /* istanbul ignore next */ []));
15475
- colorSignal = computed(() => this.color() ?? this.display()?.color, ...(ngDevMode ? [{ debugName: "colorSignal" }] : /* istanbul ignore next */ []));
15607
+ colorSignal = computed(() => {
15608
+ const display = this.display();
15609
+ return this.color() ?? display?.color;
15610
+ }, ...(ngDevMode ? [{ debugName: "colorSignal" }] : /* istanbul ignore next */ []));
15476
15611
  _configSignal = computed(() => {
15477
15612
  const value = this.colorSignal();
15478
15613
  return isDbxColorConfig(value) ? (this._colorService?.expandColorConfig(value) ?? value) : undefined;
@@ -15485,7 +15620,11 @@ class DbxChipDirective {
15485
15620
  * Inline `--dbx-color-current` value applied when a {@link DbxColorConfig} is bound. Resolves to `null` for named-color strings.
15486
15621
  */
15487
15622
  colorStyleSignal = computed(() => this._configSignal()?.contrast ?? null, ...(ngDevMode ? [{ debugName: "colorStyleSignal" }] : /* istanbul ignore next */ []));
15488
- toneSignal = computed(() => this.tone() ?? this.display()?.tone ?? this._configSignal()?.tone ?? DBX_CHIP_DEFAULT_TONE, ...(ngDevMode ? [{ debugName: "toneSignal" }] : /* istanbul ignore next */ []));
15623
+ toneSignal = computed(() => {
15624
+ const display = this.display();
15625
+ const _config = this._configSignal();
15626
+ return this.tone() ?? display?.tone ?? _config?.tone ?? DEFAULT_DBX_CHIP_TONE;
15627
+ }, ...(ngDevMode ? [{ debugName: "toneSignal" }] : /* istanbul ignore next */ []));
15489
15628
  styleSignal = computed(() => {
15490
15629
  const display = this.display();
15491
15630
  const small = this.small() ?? display?.small;
@@ -15505,9 +15644,10 @@ class DbxChipDirective {
15505
15644
  * Only applied when a color is set.
15506
15645
  */
15507
15646
  bgToneStyleSignal = computed(() => {
15647
+ const tone = this.toneSignal();
15508
15648
  const color = this.colorSignal();
15509
15649
  if (color) {
15510
- return `${this.toneSignal()}%`;
15650
+ return `${tone}%`;
15511
15651
  }
15512
15652
  return null;
15513
15653
  }, ...(ngDevMode ? [{ debugName: "bgToneStyleSignal" }] : /* istanbul ignore next */ []));
@@ -15517,8 +15657,9 @@ class DbxChipDirective {
15517
15657
  * an inline style binding (which would conflict with `[ngStyle]`).
15518
15658
  */
15519
15659
  isTonalSignal = computed(() => {
15660
+ const tone = this.toneSignal();
15520
15661
  const color = this.colorSignal();
15521
- return Boolean(color) && this.toneSignal() < 100;
15662
+ return Boolean(color) && tone < 100;
15522
15663
  }, ...(ngDevMode ? [{ debugName: "isTonalSignal" }] : /* istanbul ignore next */ []));
15523
15664
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxChipDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
15524
15665
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.11", type: DbxChipDirective, isStandalone: true, selector: "dbx-chip", inputs: { small: { classPropertyName: "small", publicName: "small", isSignal: true, isRequired: false, transformFunction: null }, block: { classPropertyName: "block", publicName: "block", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, display: { classPropertyName: "display", publicName: "display", isSignal: true, isRequired: false, transformFunction: null }, tone: { classPropertyName: "tone", publicName: "tone", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "styleSignal()", "class.dbx-color-tonal": "isTonalSignal()", "style.--dbx-color-bg-tone": "bgToneStyleSignal()", "style.--dbx-bg-color-current": "bgColorStyleSignal()", "style.--dbx-color-current": "colorStyleSignal()" }, classAttribute: "dbx-chip mat-standard-chip" }, ngImport: i0 });
@@ -15606,8 +15747,8 @@ class DbxTextChipsComponent {
15606
15747
  /**
15607
15748
  * Returns the themed background CSS class for a chip's color.
15608
15749
  *
15609
- * @param chip - the chip to get the color class for
15610
- * @returns the CSS class name for the chip's background color, or empty string if no color
15750
+ * @param chip - The chip to get the color class for.
15751
+ * @returns The CSS class name for the chip's background color, or empty string if no color.
15611
15752
  */
15612
15753
  chipColorClass(chip) {
15613
15754
  return chip.color ? dbxColorBackground(chip.color) : '';
@@ -15615,8 +15756,8 @@ class DbxTextChipsComponent {
15615
15756
  /**
15616
15757
  * Returns the inline `--dbx-bg-color-current` value for a chip when its color is a {@link DbxColorConfig}; otherwise null.
15617
15758
  *
15618
- * @param chip - the chip
15619
- * @returns the background color CSS value, or null for named-color strings
15759
+ * @param chip - The chip.
15760
+ * @returns The background color CSS value, or null for named-color strings.
15620
15761
  */
15621
15762
  chipBgColorStyle(chip) {
15622
15763
  return this._expandedChipConfig(chip)?.color ?? null;
@@ -15624,8 +15765,8 @@ class DbxTextChipsComponent {
15624
15765
  /**
15625
15766
  * Returns the inline `--dbx-color-current` value for a chip when its color is a {@link DbxColorConfig}; otherwise null.
15626
15767
  *
15627
- * @param chip - the chip
15628
- * @returns the contrast color CSS value, or null for named-color strings
15768
+ * @param chip - The chip.
15769
+ * @returns The contrast color CSS value, or null for named-color strings.
15629
15770
  */
15630
15771
  chipColorStyle(chip) {
15631
15772
  return this._expandedChipConfig(chip)?.contrast ?? null;
@@ -15687,7 +15828,7 @@ class DbxNumberWithLimitComponent {
15687
15828
  }, ...(ngDevMode ? [{ debugName: "valueSignal" }] : /* istanbul ignore next */ []));
15688
15829
  limitSignal = computed(() => {
15689
15830
  const number = this.number();
15690
- return number?.limit != null ? (number?.formatNumber ? number.formatNumber(number.limit) : number?.limit) : undefined;
15831
+ return number?.limit == null ? undefined : number?.formatNumber ? number.formatNumber(number.limit) : number?.limit;
15691
15832
  }, ...(ngDevMode ? [{ debugName: "limitSignal" }] : /* istanbul ignore next */ []));
15692
15833
  hasLimitSignal = computed(() => {
15693
15834
  return this.number()?.limit != null;
@@ -15916,8 +16057,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
15916
16057
  /**
15917
16058
  * Returns the appropriate Material icon name for a zip entry tree node: "folder" for directories, "note" for files with a known MIME type, or "question_mark" for unknown files.
15918
16059
  *
15919
- * @param entry - The zip entry tree node to determine the icon for
15920
- * @returns The Material icon name: "folder", "note", or "question_mark"
16060
+ * @param entry - The zip entry tree node to determine the icon for.
16061
+ * @returns The Material icon name: "folder", "note", or "question_mark".
15921
16062
  *
15922
16063
  * @example
15923
16064
  * ```typescript
@@ -16068,11 +16209,11 @@ class DbxZipBlobPreviewComponent {
16068
16209
  * If not defined, then the file cannot be downloaded directly.
16069
16210
  */
16070
16211
  downloadFileName = input(...(ngDevMode ? [undefined, { debugName: "downloadFileName" }] : /* istanbul ignore next */ []));
16071
- hasBlob = computed(() => !!this.blob(), ...(ngDevMode ? [{ debugName: "hasBlob" }] : /* istanbul ignore next */ []));
16072
- zipReader = computed(() => {
16212
+ hasBlobSignal = computed(() => !!this.blob(), ...(ngDevMode ? [{ debugName: "hasBlobSignal" }] : /* istanbul ignore next */ []));
16213
+ zipReaderSignal = computed(() => {
16073
16214
  const blob = this.blob();
16074
16215
  return blob ? new ZipReader(new BlobReader(blob)) : undefined;
16075
- }, ...(ngDevMode ? [{ debugName: "zipReader" }] : /* istanbul ignore next */ []));
16216
+ }, ...(ngDevMode ? [{ debugName: "zipReaderSignal" }] : /* istanbul ignore next */ []));
16076
16217
  downloadZipFileBlobButtonConfigSignal = computed(() => {
16077
16218
  const blob = this.blob();
16078
16219
  const fileName = this.downloadFileName();
@@ -16094,7 +16235,7 @@ class DbxZipBlobPreviewComponent {
16094
16235
  }
16095
16236
  return result;
16096
16237
  }, ...(ngDevMode ? [{ debugName: "downloadZipFileBlobButtonConfigSignal" }] : /* istanbul ignore next */ []));
16097
- zipReader$ = toObservable(this.zipReader);
16238
+ zipReader$ = toObservable(this.zipReaderSignal);
16098
16239
  allEntriesLoadingState$ = loadingStateFromObs(this.zipReader$.pipe(switchMap((x) => (x ? x.getEntries() : of([])))));
16099
16240
  allEntries$ = this.allEntriesLoadingState$.pipe(valueFromFinishedLoadingState(), distinctUntilChanged(), shareReplay(1));
16100
16241
  allEntriesRoot$ = this.allEntries$.pipe(map((x) => dbxZipBlobPreviewEntryTreeFromEntries(x)), shareReplay(1));
@@ -16118,15 +16259,15 @@ class DbxZipBlobPreviewComponent {
16118
16259
  return a.sort - b.sort;
16119
16260
  }
16120
16261
  };
16121
- mode = computed(() => {
16262
+ modeSignal = computed(() => {
16122
16263
  const selectedNode = this.selectedNodeSignal();
16123
16264
  let mode = 'view_directory';
16124
16265
  if (selectedNode && !selectedNode.value.value.directory) {
16125
16266
  mode = 'view_entry';
16126
16267
  }
16127
16268
  return mode;
16128
- }, ...(ngDevMode ? [{ debugName: "mode" }] : /* istanbul ignore next */ []));
16129
- listEntries = computed(() => {
16269
+ }, ...(ngDevMode ? [{ debugName: "modeSignal" }] : /* istanbul ignore next */ []));
16270
+ listEntriesSignal = computed(() => {
16130
16271
  const allEntries = this.allEntriesRootSignal();
16131
16272
  const selectedNode = this.selectedNodeSignal();
16132
16273
  let entries;
@@ -16142,8 +16283,8 @@ class DbxZipBlobPreviewComponent {
16142
16283
  entries = allEntries?.children;
16143
16284
  }
16144
16285
  return entries ?? [];
16145
- }, ...(ngDevMode ? [{ debugName: "listEntries" }] : /* istanbul ignore next */ []));
16146
- listEntries$ = toObservable(this.listEntries);
16286
+ }, ...(ngDevMode ? [{ debugName: "listEntriesSignal" }] : /* istanbul ignore next */ []));
16287
+ listEntries$ = toObservable(this.listEntriesSignal);
16147
16288
  listEntriesState$ = loadingStateFromObs(this.listEntries$);
16148
16289
  selectedNodeIconSignal = computed(() => {
16149
16290
  const selectedNode = this.selectedNodeSignal();
@@ -16188,11 +16329,11 @@ class DbxZipBlobPreviewComponent {
16188
16329
  this.selectedNodeSignal.set(selectedNode?.parent);
16189
16330
  };
16190
16331
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxZipBlobPreviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
16191
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.11", type: DbxZipBlobPreviewComponent, isStandalone: true, selector: "dbx-zip-blob-preview", inputs: { blob: { classPropertyName: "blob", publicName: "blob", isSignal: true, isRequired: false, transformFunction: null }, downloadFileName: { classPropertyName: "downloadFileName", publicName: "downloadFileName", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<dbx-loading [context]=\"context\">\n <div class=\"dbx-flex-bar dbx-zip-blob-preview-toolbar\">\n <dbx-button [disabled]=\"!selectedNodeSignal()\" icon=\"arrow_upward\" text=\"Back\" (buttonClick)=\"backClicked()\"></dbx-button>\n <dbx-button-spacer></dbx-button-spacer>\n <dbx-button [disabled]=\"!selectedNodeSignal()\" icon=\"home\" text=\"Home\" (buttonClick)=\"homeClicked()\"></dbx-button>\n <dbx-spacer></dbx-spacer>\n @if (downloadZipFileBlobButtonConfigSignal()) {\n <dbx-download-blob-button [config]=\"downloadZipFileBlobButtonConfigSignal()\"></dbx-download-blob-button>\n }\n </div>\n <dbx-bar-header class=\"dbx-zip-blob-preview-header\" [icon]=\"selectedNodeIconSignal()\" [text]=\"selectedNodePathSignal()\"></dbx-bar-header>\n <div class=\"dbx-zip-blob-preview-content\">\n @switch (mode()) {\n @case ('view_directory') {\n <dbx-zip-preview-file-entry-list [state]=\"listEntriesState$\" [dbxListTitleGroup]=\"listTitleGroupDelegate\" [dbxListItemModifier] [dbxListItemAnchorModifier]=\"makeEntryAnchor\"></dbx-zip-preview-file-entry-list>\n }\n @case ('view_entry') {\n <dbx-embed class=\"dbx-zip-blob-preview-content-embed\" [blob]=\"selectedFileEntryBlobSignal()\"></dbx-embed>\n }\n }\n </div>\n</dbx-loading>\n", dependencies: [{ kind: "ngmodule", type: MatToolbarModule }, { kind: "directive", type: DbxButtonSpacerDirective, selector: "dbx-button-spacer,[dbxButtonSpacer]" }, { kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "tonal", "raised", "stroked", "flat", "iconOnly", "fab", "customContent", "allowClickPropagation", "mode"] }, { kind: "component", type: DbxBarHeaderComponent, selector: "dbx-bar-header", inputs: ["text", "icon", "color"] }, { kind: "directive", type: DbxListTitleGroupDirective, selector: "[dbxListTitleGroup]", inputs: ["dbxListTitleGroup"] }, { kind: "component", type: DbxZipPreviewEntryListComponent, selector: "dbx-zip-preview-file-entry-list" }, { kind: "component", type: DbxEmbedComponent, selector: "dbx-embed", inputs: ["embedElement", "sanitizeUrl", "srcUrl", "type", "blob"], outputs: ["embedElementChange", "sanitizeUrlChange", "srcUrlChange", "typeChange", "blobChange"] }, { kind: "component", type: DbxLoadingComponent, selector: "dbx-loading", inputs: ["padding", "show", "text", "mode", "color", "diameter", "linear", "loading", "error", "context"] }, { kind: "directive", type: DbxValueListItemModifierDirective, selector: "dbxListItemModifier,[dbxListItemModifier]", inputs: ["dbxListItemModifier"] }, { kind: "directive", type: DbxListItemAnchorModifierDirective, selector: "[dbxListItemAnchorModifier]", inputs: ["dbxListItemAnchorModifier"] }, { kind: "component", type: DbxDownloadBlobButtonComponent, selector: "dbx-download-blob-button", inputs: ["config"] }, { kind: "directive", type: DbxSpacerDirective, selector: "dbx-spacer, [dbxSpacer]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
16332
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.11", type: DbxZipBlobPreviewComponent, isStandalone: true, selector: "dbx-zip-blob-preview", inputs: { blob: { classPropertyName: "blob", publicName: "blob", isSignal: true, isRequired: false, transformFunction: null }, downloadFileName: { classPropertyName: "downloadFileName", publicName: "downloadFileName", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<dbx-loading [context]=\"context\">\n <div class=\"dbx-flex-bar dbx-zip-blob-preview-toolbar\">\n <dbx-button [disabled]=\"!selectedNodeSignal()\" icon=\"arrow_upward\" text=\"Back\" (buttonClick)=\"backClicked()\"></dbx-button>\n <dbx-button-spacer></dbx-button-spacer>\n <dbx-button [disabled]=\"!selectedNodeSignal()\" icon=\"home\" text=\"Home\" (buttonClick)=\"homeClicked()\"></dbx-button>\n <dbx-spacer></dbx-spacer>\n @if (downloadZipFileBlobButtonConfigSignal()) {\n <dbx-download-blob-button [config]=\"downloadZipFileBlobButtonConfigSignal()\"></dbx-download-blob-button>\n }\n </div>\n <dbx-bar-header class=\"dbx-zip-blob-preview-header\" [icon]=\"selectedNodeIconSignal()\" [text]=\"selectedNodePathSignal()\"></dbx-bar-header>\n <div class=\"dbx-zip-blob-preview-content\">\n @switch (modeSignal()) {\n @case ('view_directory') {\n <dbx-zip-preview-file-entry-list [state]=\"listEntriesState$\" [dbxListTitleGroup]=\"listTitleGroupDelegate\" [dbxListItemModifier] [dbxListItemAnchorModifier]=\"makeEntryAnchor\"></dbx-zip-preview-file-entry-list>\n }\n @case ('view_entry') {\n <dbx-embed class=\"dbx-zip-blob-preview-content-embed\" [blob]=\"selectedFileEntryBlobSignal()\"></dbx-embed>\n }\n }\n </div>\n</dbx-loading>\n", dependencies: [{ kind: "ngmodule", type: MatToolbarModule }, { kind: "directive", type: DbxButtonSpacerDirective, selector: "dbx-button-spacer,[dbxButtonSpacer]" }, { kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "tonal", "raised", "stroked", "flat", "iconOnly", "fab", "customContent", "allowClickPropagation", "mode"] }, { kind: "component", type: DbxBarHeaderComponent, selector: "dbx-bar-header", inputs: ["text", "icon", "color"] }, { kind: "directive", type: DbxListTitleGroupDirective, selector: "[dbxListTitleGroup]", inputs: ["dbxListTitleGroup"] }, { kind: "component", type: DbxZipPreviewEntryListComponent, selector: "dbx-zip-preview-file-entry-list" }, { kind: "component", type: DbxEmbedComponent, selector: "dbx-embed", inputs: ["embedElement", "sanitizeUrl", "srcUrl", "type", "blob"], outputs: ["embedElementChange", "sanitizeUrlChange", "srcUrlChange", "typeChange", "blobChange"] }, { kind: "component", type: DbxLoadingComponent, selector: "dbx-loading", inputs: ["padding", "show", "text", "mode", "color", "diameter", "linear", "loading", "error", "context"] }, { kind: "directive", type: DbxValueListItemModifierDirective, selector: "dbxListItemModifier,[dbxListItemModifier]", inputs: ["dbxListItemModifier"] }, { kind: "directive", type: DbxListItemAnchorModifierDirective, selector: "[dbxListItemAnchorModifier]", inputs: ["dbxListItemAnchorModifier"] }, { kind: "component", type: DbxDownloadBlobButtonComponent, selector: "dbx-download-blob-button", inputs: ["config"] }, { kind: "directive", type: DbxSpacerDirective, selector: "dbx-spacer, [dbxSpacer]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
16192
16333
  }
16193
16334
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxZipBlobPreviewComponent, decorators: [{
16194
16335
  type: Component,
16195
- args: [{ selector: 'dbx-zip-blob-preview', standalone: true, imports: [MatToolbarModule, DbxButtonSpacerDirective, DbxButtonComponent, DbxBarHeaderComponent, DbxListTitleGroupDirective, DbxZipPreviewEntryListComponent, DbxEmbedComponent, DbxLoadingComponent, DbxValueListItemModifierDirective, DbxListItemAnchorModifierDirective, DbxListTitleGroupDirective, DbxDownloadBlobButtonComponent, DbxSpacerDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<dbx-loading [context]=\"context\">\n <div class=\"dbx-flex-bar dbx-zip-blob-preview-toolbar\">\n <dbx-button [disabled]=\"!selectedNodeSignal()\" icon=\"arrow_upward\" text=\"Back\" (buttonClick)=\"backClicked()\"></dbx-button>\n <dbx-button-spacer></dbx-button-spacer>\n <dbx-button [disabled]=\"!selectedNodeSignal()\" icon=\"home\" text=\"Home\" (buttonClick)=\"homeClicked()\"></dbx-button>\n <dbx-spacer></dbx-spacer>\n @if (downloadZipFileBlobButtonConfigSignal()) {\n <dbx-download-blob-button [config]=\"downloadZipFileBlobButtonConfigSignal()\"></dbx-download-blob-button>\n }\n </div>\n <dbx-bar-header class=\"dbx-zip-blob-preview-header\" [icon]=\"selectedNodeIconSignal()\" [text]=\"selectedNodePathSignal()\"></dbx-bar-header>\n <div class=\"dbx-zip-blob-preview-content\">\n @switch (mode()) {\n @case ('view_directory') {\n <dbx-zip-preview-file-entry-list [state]=\"listEntriesState$\" [dbxListTitleGroup]=\"listTitleGroupDelegate\" [dbxListItemModifier] [dbxListItemAnchorModifier]=\"makeEntryAnchor\"></dbx-zip-preview-file-entry-list>\n }\n @case ('view_entry') {\n <dbx-embed class=\"dbx-zip-blob-preview-content-embed\" [blob]=\"selectedFileEntryBlobSignal()\"></dbx-embed>\n }\n }\n </div>\n</dbx-loading>\n" }]
16336
+ args: [{ selector: 'dbx-zip-blob-preview', standalone: true, imports: [MatToolbarModule, DbxButtonSpacerDirective, DbxButtonComponent, DbxBarHeaderComponent, DbxListTitleGroupDirective, DbxZipPreviewEntryListComponent, DbxEmbedComponent, DbxLoadingComponent, DbxValueListItemModifierDirective, DbxListItemAnchorModifierDirective, DbxListTitleGroupDirective, DbxDownloadBlobButtonComponent, DbxSpacerDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<dbx-loading [context]=\"context\">\n <div class=\"dbx-flex-bar dbx-zip-blob-preview-toolbar\">\n <dbx-button [disabled]=\"!selectedNodeSignal()\" icon=\"arrow_upward\" text=\"Back\" (buttonClick)=\"backClicked()\"></dbx-button>\n <dbx-button-spacer></dbx-button-spacer>\n <dbx-button [disabled]=\"!selectedNodeSignal()\" icon=\"home\" text=\"Home\" (buttonClick)=\"homeClicked()\"></dbx-button>\n <dbx-spacer></dbx-spacer>\n @if (downloadZipFileBlobButtonConfigSignal()) {\n <dbx-download-blob-button [config]=\"downloadZipFileBlobButtonConfigSignal()\"></dbx-download-blob-button>\n }\n </div>\n <dbx-bar-header class=\"dbx-zip-blob-preview-header\" [icon]=\"selectedNodeIconSignal()\" [text]=\"selectedNodePathSignal()\"></dbx-bar-header>\n <div class=\"dbx-zip-blob-preview-content\">\n @switch (modeSignal()) {\n @case ('view_directory') {\n <dbx-zip-preview-file-entry-list [state]=\"listEntriesState$\" [dbxListTitleGroup]=\"listTitleGroupDelegate\" [dbxListItemModifier] [dbxListItemAnchorModifier]=\"makeEntryAnchor\"></dbx-zip-preview-file-entry-list>\n }\n @case ('view_entry') {\n <dbx-embed class=\"dbx-zip-blob-preview-content-embed\" [blob]=\"selectedFileEntryBlobSignal()\"></dbx-embed>\n }\n }\n </div>\n</dbx-loading>\n" }]
16196
16337
  }], propDecorators: { blob: [{ type: i0.Input, args: [{ isSignal: true, alias: "blob", required: false }] }], downloadFileName: [{ type: i0.Input, args: [{ isSignal: true, alias: "downloadFileName", required: false }] }] } });
16197
16338
 
16198
16339
  /**
@@ -16262,8 +16403,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
16262
16403
  /**
16263
16404
  * Opens a dialog with DbxZipPreviewComponent.
16264
16405
  *
16265
- * @param matDialog The MatDialog instance to use.
16266
- * @param config The configuration for the dialog.
16406
+ * @param matDialog - The MatDialog instance to use.
16407
+ * @param config - The configuration for the dialog.
16267
16408
  * @returns The MatDialogRef for the dialog.
16268
16409
  */
16269
16410
  function openZipPreviewDialog(matDialog, config) {
@@ -16292,8 +16433,8 @@ function openZipPreviewDialog(matDialog, config) {
16292
16433
  /**
16293
16434
  * Preview component function preset that renders zip files using {@link DbxZipPreviewComponent}.
16294
16435
  *
16295
- * @param input - The preview input containing the source URL and MIME type of the zip file
16296
- * @returns An injection component config that initializes a {@link DbxZipPreviewComponent} with the given source URL
16436
+ * @param input - The preview input containing the source URL and MIME type of the zip file.
16437
+ * @returns An injection component config that initializes a {@link DbxZipPreviewComponent} with the given source URL.
16297
16438
  */
16298
16439
  const DBX_WEB_FILE_PREVIEW_SERVICE_ZIP_COMPONENT_PRESET = (input) => {
16299
16440
  const { srcUrl } = input;
@@ -16470,12 +16611,13 @@ class DbxWebPageTitleService {
16470
16611
  */
16471
16612
  leafReference$ = this._references.pipe(switchMap((set) => {
16472
16613
  const refs = [...set];
16473
- if (refs.length === 0)
16474
- return of(undefined);
16475
- return combineLatest(refs.map((ref) => ref.isLeaf$.pipe(map((isLeaf) => ({ ref, isLeaf }))))).pipe(map((items) => items
16476
- .filter((x) => x.isLeaf)
16477
- .map((x) => x.ref)
16478
- .at(-1)));
16614
+ const obs = refs.length === 0
16615
+ ? of(undefined)
16616
+ : combineLatest(refs.map((ref) => ref.isLeaf$.pipe(map((isLeaf) => ({ ref, isLeaf }))))).pipe(map((items) => items
16617
+ .filter((x) => x.isLeaf)
16618
+ .map((x) => x.ref)
16619
+ .at(-1)));
16620
+ return obs;
16479
16621
  }), distinctUntilChanged(), shareReplay(1));
16480
16622
  /**
16481
16623
  * The directive-supplied chain (root → leaf) for the active leaf. Empty when there is no active leaf. Excludes the service-level rootConfig (delivered separately to the delegate).
@@ -16590,9 +16732,9 @@ class DbxWebPageTitleInfoDirective {
16590
16732
  });
16591
16733
  }
16592
16734
  /**
16593
- * @internal Maintained by descendant directives to keep `isLeaf$` accurate.
16594
- *
16595
16735
  * @param child - The descendant directive to register as a child.
16736
+ *
16737
+ * @internal Maintained by descendant directives to keep `isLeaf$` accurate.
16596
16738
  */
16597
16739
  _addChild(child) {
16598
16740
  const next = new Set(this._children.value);
@@ -16600,9 +16742,9 @@ class DbxWebPageTitleInfoDirective {
16600
16742
  this._children.next(next);
16601
16743
  }
16602
16744
  /**
16603
- * @internal
16604
- *
16605
16745
  * @param child - The descendant directive to unregister.
16746
+ *
16747
+ * @internal
16606
16748
  */
16607
16749
  _removeChild(child) {
16608
16750
  const next = new Set(this._children.value);
@@ -16655,16 +16797,17 @@ class DbxWidgetService {
16655
16797
  /**
16656
16798
  * Used to register an entry. If an entry with the same type is already registered, this will override it by default.
16657
16799
  *
16658
- * @param entry - The widget entry mapping a type identifier to its component class
16800
+ * @param entry - The widget entry mapping a type identifier to its component class.
16659
16801
  * @param override - Whether to replace an existing entry with the same type. Defaults to true.
16660
- * @returns True if the entry was registered, false if an entry with the same type already exists and override is false
16802
+ * @returns True if the entry was registered, false if an entry with the same type already exists and override is false.
16661
16803
  */
16662
16804
  register(entry, override = true) {
16805
+ let registered = false;
16663
16806
  if (override || !this._entries.has(entry.type)) {
16664
16807
  this._entries.set(entry.type, entry);
16665
- return true;
16808
+ registered = true;
16666
16809
  }
16667
- return false;
16810
+ return registered;
16668
16811
  }
16669
16812
  // MARK: Get
16670
16813
  getWidgetIdentifiers() {
@@ -16879,7 +17022,7 @@ class DbxHelpContextService {
16879
17022
  /**
16880
17023
  * Registers a help context reference, adding its keys to the active set.
16881
17024
  *
16882
- * @param reference - The help context reference to register
17025
+ * @param reference - The help context reference to register.
16883
17026
  */
16884
17027
  register(reference) {
16885
17028
  const referenceSet = this._contextReferences.value;
@@ -16889,7 +17032,7 @@ class DbxHelpContextService {
16889
17032
  /**
16890
17033
  * Unregisters a help context reference, removing its keys from the active set.
16891
17034
  *
16892
- * @param reference - The help context reference to unregister
17035
+ * @param reference - The help context reference to unregister.
16893
17036
  */
16894
17037
  unregister(reference) {
16895
17038
  const referenceSet = this._contextReferences.value;
@@ -16907,14 +17050,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
16907
17050
  * Registers the given help context keys observable with the {@link DbxHelpContextService}. Must be called within an Angular injection context.
16908
17051
  * Automatically unregisters on destroy, but also returns a destroy function for manual cleanup.
16909
17052
  *
17053
+ * @param helpContextKeys - Observable or static array of help context keys to register with the service.
17054
+ * @returns A destroy function that unregisters the help context keys when called.
17055
+ *
16910
17056
  * @example
16911
17057
  * ```typescript
16912
17058
  * // In a component or directive constructor
16913
17059
  * const destroy = registerHelpContextKeysWithDbxHelpContextService(of(['feature-help', 'general-help']));
16914
17060
  * ```
16915
17061
  *
16916
- * @param helpContextKeys - Observable or static array of help context keys to register with the service
16917
- * @returns A destroy function that unregisters the help context keys when called
16918
17062
  * @__NO_SIDE_EFFECTS__
16919
17063
  */
16920
17064
  function registerHelpContextKeysWithDbxHelpContextService(helpContextKeys) {
@@ -17000,7 +17144,7 @@ class DbxHelpWidgetService {
17000
17144
  /**
17001
17145
  * Returns the component class used for unrecognized help context keys.
17002
17146
  *
17003
- * @returns The default widget component class, or undefined if not set
17147
+ * @returns The default widget component class, or undefined if not set.
17004
17148
  */
17005
17149
  getDefaultWidgetComponentClass() {
17006
17150
  return this._defaultWidgetComponentClass;
@@ -17011,7 +17155,7 @@ class DbxHelpWidgetService {
17011
17155
  /**
17012
17156
  * Returns the default icon used for help entries without a specific icon.
17013
17157
  *
17014
- * @returns The default icon string, or undefined if not set
17158
+ * @returns The default icon string, or undefined if not set.
17015
17159
  */
17016
17160
  getDefaultIcon() {
17017
17161
  return this._defaultIcon;
@@ -17022,7 +17166,7 @@ class DbxHelpWidgetService {
17022
17166
  /**
17023
17167
  * Returns the component config displayed in the popover header, if set.
17024
17168
  *
17025
- * @returns The popover header component config, or undefined if not set
17169
+ * @returns The popover header component config, or undefined if not set.
17026
17170
  */
17027
17171
  getPopoverHeaderComponentConfig() {
17028
17172
  return this._popoverHeaderComponentConfig;
@@ -17033,7 +17177,7 @@ class DbxHelpWidgetService {
17033
17177
  /**
17034
17178
  * Returns the component config displayed at the top of the help list view, if set.
17035
17179
  *
17036
- * @returns The help list header component config, or undefined if not set
17180
+ * @returns The help list header component config, or undefined if not set.
17037
17181
  */
17038
17182
  getHelpListHeaderComponentConfig() {
17039
17183
  return this._helpListHeaderComponentConfig;
@@ -17044,7 +17188,7 @@ class DbxHelpWidgetService {
17044
17188
  /**
17045
17189
  * Returns the component config displayed at the bottom of the help list view, if set.
17046
17190
  *
17047
- * @returns The help list footer component config, or undefined if not set
17191
+ * @returns The help list footer component config, or undefined if not set.
17048
17192
  */
17049
17193
  getHelpListFooterComponentConfig() {
17050
17194
  return this._helpListFooterComponentConfig;
@@ -17057,9 +17201,9 @@ class DbxHelpWidgetService {
17057
17201
  *
17058
17202
  * If an entry with the same identity is already registered, this will override it by default.
17059
17203
  *
17060
- * @param entries The entries to register
17061
- * @param override Whether to override existing entries (default: true)
17062
- * @returns Always returns true after registration completes
17204
+ * @param entries - The entries to register.
17205
+ * @param override - Whether to override existing entries (default: true)
17206
+ * @returns Always returns true after registration completes.
17063
17207
  */
17064
17208
  register(entries, override = true) {
17065
17209
  const entriesArray = asArray(entries);
@@ -17074,7 +17218,7 @@ class DbxHelpWidgetService {
17074
17218
  /**
17075
17219
  * Returns all currently registered help context keys.
17076
17220
  *
17077
- * @returns Array of all registered help context keys
17221
+ * @returns Array of all registered help context keys.
17078
17222
  */
17079
17223
  getAllRegisteredHelpContextKeys() {
17080
17224
  return [...this._entries.keys()];
@@ -17082,8 +17226,8 @@ class DbxHelpWidgetService {
17082
17226
  /**
17083
17227
  * Retrieves the widget entry for a given help context key. Falls back to a default entry if a default widget component class is configured.
17084
17228
  *
17085
- * @param helpContextKey - The help context key to look up
17086
- * @returns The matching widget entry, a default entry if a default component class is configured, or undefined
17229
+ * @param helpContextKey - The help context key to look up.
17230
+ * @returns The matching widget entry, a default entry if a default component class is configured, or undefined.
17087
17231
  */
17088
17232
  getHelpWidgetEntry(helpContextKey) {
17089
17233
  return this._entries.get(helpContextKey) ?? (this._defaultWidgetComponentClass ? { helpContextKey, title: '<Missing Help Topic>', widgetComponentClass: this._defaultWidgetComponentClass } : undefined);
@@ -17091,8 +17235,8 @@ class DbxHelpWidgetService {
17091
17235
  /**
17092
17236
  * Retrieves widget entries for multiple help context keys, filtering out any unresolvable keys.
17093
17237
  *
17094
- * @param helpContextKeys - Array of help context keys to look up
17095
- * @returns Array of resolved widget entries, excluding any keys that could not be resolved
17238
+ * @param helpContextKeys - Array of help context keys to look up.
17239
+ * @returns Array of resolved widget entries, excluding any keys that could not be resolved.
17096
17240
  */
17097
17241
  getHelpWidgetEntriesForHelpContextKeys(helpContextKeys) {
17098
17242
  return helpContextKeys.map((context) => this.getHelpWidgetEntry(context)).filter((entry) => !!entry);
@@ -17100,8 +17244,8 @@ class DbxHelpWidgetService {
17100
17244
  /**
17101
17245
  * Checks whether a widget entry is registered for the given help context key.
17102
17246
  *
17103
- * @param context - The help context key to check
17104
- * @returns True if a widget entry exists for the given key
17247
+ * @param context - The help context key to check.
17248
+ * @returns True if a widget entry exists for the given key.
17105
17249
  */
17106
17250
  hasHelpWidgetEntry(context) {
17107
17251
  return this._entries.has(context);
@@ -17109,7 +17253,7 @@ class DbxHelpWidgetService {
17109
17253
  /**
17110
17254
  * Returns a cached map of help context keys to their sort priority values.
17111
17255
  *
17112
- * @returns Map of help context keys to their numeric sort priorities
17256
+ * @returns Map of help context keys to their numeric sort priorities.
17113
17257
  */
17114
17258
  getSortPriorityMap() {
17115
17259
  return this._sortPriorityMap();
@@ -17124,8 +17268,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
17124
17268
  /**
17125
17269
  * Creates EnvironmentProviders for the help context system.
17126
17270
  *
17127
- * @param config Optional configuration
17128
- * @returns EnvironmentProviders
17271
+ * @param config - Optional configuration.
17272
+ * @returns EnvironmentProviders.
17273
+ *
17129
17274
  * @__NO_SIDE_EFFECTS__
17130
17275
  */
17131
17276
  function provideDbxHelpServices(config) {
@@ -17437,7 +17582,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
17437
17582
  /**
17438
17583
  * MIME types accepted by the PDF merge editor by default: PDF documents and PNG/JPEG images.
17439
17584
  */
17440
- const PDF_MERGE_DEFAULT_ACCEPT = [PDF_MIME_TYPE, PNG_MIME_TYPE, JPEG_MIME_TYPE];
17585
+ const DEFAULT_PDF_MERGE_ACCEPT = [PDF_MIME_TYPE, PNG_MIME_TYPE, JPEG_MIME_TYPE];
17441
17586
  /**
17442
17587
  * MIME type emitted by the merged result blob.
17443
17588
  */
@@ -17696,12 +17841,16 @@ class DbxPdfMergeEditorStore extends ComponentStore {
17696
17841
  */
17697
17842
  removeEntriesBySlotId = this.updater((state, slotId) => ({ ...state, rawEntries: state.rawEntries.filter((entry) => entry.slotId !== slotId) }));
17698
17843
  moveEntry = this.updater((state, move) => {
17844
+ let nextState;
17699
17845
  if (move.previousIndex === move.currentIndex) {
17700
- return state;
17846
+ nextState = state;
17701
17847
  }
17702
- const next = [...state.rawEntries];
17703
- moveItemInArray(next, move.previousIndex, move.currentIndex);
17704
- return { ...state, rawEntries: next };
17848
+ else {
17849
+ const next = [...state.rawEntries];
17850
+ moveItemInArray(next, move.previousIndex, move.currentIndex);
17851
+ nextState = { ...state, rawEntries: next };
17852
+ }
17853
+ return nextState;
17705
17854
  });
17706
17855
  /**
17707
17856
  * Reorders entries inside a single slot. The `previousIndex`/`currentIndex` are slot-local — the indices a {@link DbxPdfMergeEditorFileUploadComponent} sees in its filtered view of {@link entries$}. The updater translates them to global `rawEntries` positions and applies an in-place {@link moveItemInArray}, leaving entries from other slots untouched.
@@ -17952,8 +18101,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
17952
18101
  /**
17953
18102
  * Opens a dialog containing a {@link DbxPdfPreviewComponent} for previewing a PDF blob or URL.
17954
18103
  *
17955
- * @param matDialog The {@link MatDialog} instance to use.
17956
- * @param config Source (blob or URL) and Material dialog options.
18104
+ * @param matDialog - The {@link MatDialog} instance to use.
18105
+ * @param config - Source (blob or URL) and Material dialog options.
17957
18106
  * @returns The {@link MatDialogRef} for the opened dialog.
17958
18107
  */
17959
18108
  function openPdfPreviewDialog(matDialog, config) {
@@ -18000,7 +18149,7 @@ class DbxPdfMergeEditorComponent {
18000
18149
  * Single-slot subscription tracker for the deferred Preview path. Replacing the slot cancels any earlier in-flight wait so rapid clicks (or repeated programmatic calls) cannot stack pending dialogs.
18001
18150
  */
18002
18151
  _pendingPreview = cleanSubscription();
18003
- accept = input(PDF_MERGE_DEFAULT_ACCEPT, ...(ngDevMode ? [{ debugName: "accept" }] : /* istanbul ignore next */ []));
18152
+ accept = input(DEFAULT_PDF_MERGE_ACCEPT, ...(ngDevMode ? [{ debugName: "accept" }] : /* istanbul ignore next */ []));
18004
18153
  multiple = input(true, ...(ngDevMode ? [{ debugName: "multiple" }] : /* istanbul ignore next */ []));
18005
18154
  fileName = input(DEFAULT_MERGED_FILE_NAME, ...(ngDevMode ? [{ debugName: "fileName" }] : /* istanbul ignore next */ []));
18006
18155
  showDownloadButton = input(false, ...(ngDevMode ? [{ debugName: "showDownloadButton" }] : /* istanbul ignore next */ []));
@@ -18024,7 +18173,10 @@ class DbxPdfMergeEditorComponent {
18024
18173
  /**
18025
18174
  * Computed gate for the Preview and Download affordances. Disabled while no entry is `ready` or while the registered validator delegate reports invalid.
18026
18175
  */
18027
- canMergeSignal = computed(() => this.hasReadyEntriesSignal() && this.isValidSignal(), ...(ngDevMode ? [{ debugName: "canMergeSignal" }] : /* istanbul ignore next */ []));
18176
+ canMergeSignal = computed(() => {
18177
+ const isValid = this.isValidSignal();
18178
+ return this.hasReadyEntriesSignal() && isValid;
18179
+ }, ...(ngDevMode ? [{ debugName: "canMergeSignal" }] : /* istanbul ignore next */ []));
18028
18180
  /**
18029
18181
  * Latest merged blob (or `undefined` while validation/merge is in flight or no entries are ready). Sourced from {@link DbxPdfMergeEditorStore.currentMergeOutput$} so the download button always reflects the current merge without needing the user to click Preview first.
18030
18182
  */
@@ -18168,7 +18320,7 @@ class DbxPdfMergeEditorFileUploadComponent {
18168
18320
  _validator = inject(DbxPdfMergeEditorFileUploadValidatorDirective, { optional: true });
18169
18321
  slotId = input.required(...(ngDevMode ? [{ debugName: "slotId" }] : /* istanbul ignore next */ []));
18170
18322
  config = input(...(ngDevMode ? [undefined, { debugName: "config" }] : /* istanbul ignore next */ []));
18171
- acceptSignal = computed(() => this.config()?.accept ?? PDF_MERGE_DEFAULT_ACCEPT, ...(ngDevMode ? [{ debugName: "acceptSignal" }] : /* istanbul ignore next */ []));
18323
+ acceptSignal = computed(() => this.config()?.accept ?? DEFAULT_PDF_MERGE_ACCEPT, ...(ngDevMode ? [{ debugName: "acceptSignal" }] : /* istanbul ignore next */ []));
18172
18324
  multipleSignal = computed(() => this.config()?.multiple ?? false, ...(ngDevMode ? [{ debugName: "multipleSignal" }] : /* istanbul ignore next */ []));
18173
18325
  modeSignal = computed(() => this.config()?.mode ?? 'default', ...(ngDevMode ? [{ debugName: "modeSignal" }] : /* istanbul ignore next */ []));
18174
18326
  labelSignal = computed(() => this.config()?.label, ...(ngDevMode ? [{ debugName: "labelSignal" }] : /* istanbul ignore next */ []));
@@ -18381,8 +18533,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
18381
18533
  /**
18382
18534
  * Creates Angular environment providers for {@link DbxScreenMediaService} and its configuration.
18383
18535
  *
18384
- * @param config - optional service configuration; uses default breakpoints if omitted
18385
- * @returns environment providers to register in the application bootstrap
18536
+ * @param config - Optional service configuration; uses default breakpoints if omitted.
18537
+ * @returns Environment providers to register in the application bootstrap.
18386
18538
  *
18387
18539
  * @example
18388
18540
  * ```ts
@@ -18390,6 +18542,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
18390
18542
  * providers: [provideDbxScreenMediaService()]
18391
18543
  * });
18392
18544
  * ```
18545
+ *
18393
18546
  * @__NO_SIDE_EFFECTS__
18394
18547
  */
18395
18548
  function provideDbxScreenMediaService(config = {}) {
@@ -18412,8 +18565,8 @@ function provideDbxScreenMediaService(config = {}) {
18412
18565
  * Useful for preventing the default context menu from appearing over dialogs or popups.
18413
18566
  *
18414
18567
  * @param classes - CSS class name of the overlay container element to target. Defaults to `'cdk-overlay-container'`.
18415
- * @param onEvent - optional callback invoked on each suppressed right-click event
18416
- * @returns a cleanup function that removes the event listener
18568
+ * @param onEvent - Optional callback invoked on each suppressed right-click event.
18569
+ * @returns A cleanup function that removes the event listener.
18417
18570
  *
18418
18571
  * @example
18419
18572
  * ```ts
@@ -18453,5 +18606,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
18453
18606
  * Generated bundle index. Do not edit.
18454
18607
  */
18455
18608
 
18456
- export { APP_POPUP_MINIMIZED_WIDTH, APP_POPUP_NORMAL_HEIGHT, APP_POPUP_NORMAL_WIDTH, AbstractDbxClipboardDirective, AbstractDbxErrorWidgetComponent, AbstractDbxFileUploadComponent, AbstractDbxHelpWidgetDirective, AbstractDbxListAccordionViewDirective, AbstractDbxListGridViewDirective, AbstractDbxListViewDirective, AbstractDbxListWrapperDirective, AbstractDbxPartialPresetFilterMenuDirective, AbstractDbxSegueAnchorDirective, AbstractDbxSelectionListViewDirective, AbstractDbxSelectionListWrapperDirective, AbstractDbxValueListItemModifierDirective, AbstractDbxValueListViewDirective, AbstractDbxValueListViewItemComponent, AbstractDbxWidgetComponent, AbstractDialogDirective, AbstractFilterPopoverButtonDirective, AbstractPopoverDirective, AbstractPopoverRefDirective, AbstractPopoverRefWithEventsDirective, AbstractPopupDirective, AbstractPromptConfirmDirective, CompactContextStore, CompactMode, DBX_ACTION_SNACKBAR_DEFAULTS, DBX_ACTION_SNACKBAR_SERVICE_CONFIG, DBX_AVATAR_CONTEXT_DATA_TOKEN, DBX_CHIP_DEFAULT_TONE, DBX_COLOR_CUSTOM_BG_CSS_CLASS, DBX_COLOR_CUSTOM_TEXT_CSS_CLASS, DBX_DARK_STYLE_CLASS_SUFFIX, DBX_DETACH_DEFAULT_KEY, DBX_HELP_WIDGET_ENTRY_DATA_TOKEN, DBX_LIST_ACCORDION_VIEW_COMPONENT_IMPORTS_AND_EXPORTS, DBX_LIST_DEFAULT_SCROLL_DISTANCE, DBX_LIST_DEFAULT_THROTTLE_SCROLL, DBX_LIST_GRID_VIEW_COMPONENT_IMPORTS_AND_EXPORTS, DBX_LIST_ITEM_DEFAULT_DISABLE_FUNCTION, DBX_LIST_ITEM_DISABLE_RIPPLE_LIST_ITEM_MODIFIER_KEY, DBX_LIST_ITEM_IS_SELECTED_ITEM_MODIFIER_KEY, DBX_LIST_VIEW_DEFAULT_META_ICON, DBX_MODEL_VIEW_TRACKER_STORAGE_ACCESSOR_TOKEN, DBX_PDF_MERGE_EDITOR_INITIAL_STATE, DBX_PROGRESS_BUTTON_GLOBAL_CONFIG, DBX_ROUTER_ANCHOR_COMPONENTS, DBX_ROUTER_VALUE_LIST_ITEM_MODIFIER_KEY, DBX_STYLE_DEFAULT_CONFIG_TOKEN, DBX_THEME_COLORS, DBX_THEME_COLORS_EXTRA, DBX_THEME_COLORS_EXTRA_SECONDARY, DBX_THEME_COLORS_MAIN, DBX_VALUE_LIST_VIEW_ITEM, DBX_WEB_FILE_PREVIEW_SERVICE_DEFAULT_DIALOG_WITH_COMPONENT_FUNCTION, DBX_WEB_FILE_PREVIEW_SERVICE_DEFAULT_PREVIEW_COMPONENT_FUNCTION, DBX_WEB_FILE_PREVIEW_SERVICE_ENTRIES_TOKEN, DBX_WEB_FILE_PREVIEW_SERVICE_ZIP_COMPONENT_PRESET, DBX_WEB_FILE_PREVIEW_SERVICE_ZIP_PRESET_ENTRY, DBX_WEB_PAGE_TITLE_SERVICE_CONFIG, DEFAULT_DBX_ERROR_SNACKBAR_CONFIG, DEFAULT_DBX_HELP_VIEW_POPOVER_KEY, DEFAULT_DBX_LINKIFY_STRING_TYPE, DEFAULT_DBX_LIST_ACCORDION_VIEW_COMPONENT_CONFIGURATION_TEMPLATE, DEFAULT_DBX_LIST_GRID_VIEW_COMPONENT_CONFIGURATION_TEMPLATE, DEFAULT_DBX_LIST_ITEM_IS_SELECTED_FUNCTION, DEFAULT_DBX_PROMPT_CONFIRM_DIALOG_CONFIG, DEFAULT_DBX_SELECTION_VALUE_LIST_COMPONENT_CONFIGURATION_TEMPLATE, DEFAULT_DBX_SIDENAV_MENU_ICON, DEFAULT_DBX_VALUE_LIST_COMPONENT_CONFIGURATION_TEMPLATE, DEFAULT_ERROR_POPOVER_KEY, DEFAULT_ERROR_WIDGET_CODE, DEFAULT_FILTER_POPOVER_KEY, DEFAULT_LIST_GRID_SIZE_CONFIG, DEFAULT_LIST_WRAPPER_COMPONENT_CONFIGURATION_TEMPLATE, DEFAULT_LOADING_PROGRESS_DIAMETER, DEFAULT_SCREEN_MEDIA_SERVICE_CONFIG, DEFAULT_SNACKBAR_DIRECTIVE_DURATION, DEFAULT_TWO_COLUMNS_MIN_RIGHT_WIDTH, DEFAULT_VALUE_LIST_VIEW_CONTENT_COMPONENT_TRACK_BY_FUNCTION, DbxAccordionHeaderHeightDirective, DbxActionConfirmDirective, DbxActionDialogDirective, DbxActionErrorDirective, DbxActionKeyTriggerDirective, DbxActionLoadingContextDirective, DbxActionModule, DbxActionPopoverDirective, DbxActionSnackbarComponent, DbxActionSnackbarDirective, DbxActionSnackbarErrorDirective, DbxActionSnackbarModule, DbxActionSnackbarService, DbxActionTransitionSafetyDirective, DbxActionUIRouterTransitionSafetyDialogComponent, DbxAnchorComponent, DbxAnchorContentComponent, DbxAnchorIconComponent, DbxAnchorListComponent, DbxAngularRouterSegueAnchorComponent, DbxAvatarComponent, DbxAvatarViewService, DbxAvatarViewServiceConfig, DbxBarDirective, DbxBarHeaderComponent, DbxBarLayoutModule, DbxBasicLoadingComponent, DbxBodyDirective, DbxButtonComponent, DbxButtonModule, DbxButtonSpacerDirective, DbxCardBoxComponent, DbxCardBoxContainerDirective, DbxCardBoxLayoutModule, DbxChipDirective, DbxChipListComponent, DbxClickToCopyTextComponent, DbxClickToCopyTextDirective, DbxColorDirective, DbxColorService, DbxColorServiceConfig, DbxColumnLayoutModule, DbxCompactDirective, DbxCompactLayoutModule, DbxContentBorderDirective, DbxContentBoxDirective, DbxContentContainerDirective, DbxContentDirective, DbxContentElevateDirective, DbxContentLayoutModule, DbxContentPageDirective, DbxContentPitDirective, DbxDetachContentComponent, DbxDetachControlButtonsComponent, DbxDetachController, DbxDetachControlsComponent, DbxDetachInitDirective, DbxDetachInteractionModule, DbxDetachOutletComponent, DbxDetachOverlayComponent, DbxDetachService, DbxDetachWindowState, DbxDetailBlockComponent, DbxDetailBlockHeaderComponent, DbxDialogContentCloseComponent, DbxDialogContentDirective, DbxDialogContentFooterComponent, DbxDialogInteractionModule, DbxDialogModule, DbxDownloadBlobButtonComponent, DbxDownloadTextViewComponent, DbxEmbedComponent, DbxErrorComponent, DbxErrorDefaultErrorWidgetComponent, DbxErrorDetailsComponent, DbxErrorPopoverComponent, DbxErrorSnackbarComponent, DbxErrorSnackbarService, DbxErrorViewComponent, DbxErrorWidgetService, DbxErrorWidgetViewComponent, DbxFileUploadActionCompatable, DbxFileUploadActionSyncDirective, DbxFileUploadAreaComponent, DbxFileUploadButtonComponent, DbxFileUploadComponent, DbxFilterInteractionModule, DbxFilterPopoverButtonComponent, DbxFilterPopoverComponent, DbxFilterWrapperComponent, DbxFlagComponent, DbxFlagLayoutModule, DbxFlagPromptComponent, DbxFlexGroupDirective, DbxFlexLayoutModule, DbxFlexSizeDirective, DbxHelpContextDirective, DbxHelpContextService, DbxHelpViewListComponent, DbxHelpViewListEntryComponent, DbxHelpViewPopoverButtonComponent, DbxHelpViewPopoverComponent, DbxHelpWidgetService, DbxHelpWidgetServiceConfig, DbxIconButtonComponent, DbxIconButtonModule, DbxIconItemComponent, DbxIconSpacerDirective, DbxIconTileComponent, DbxIconTileDirective, DbxIfSidenavDisplayModeDirective, DbxIframeComponent, DbxInjectionDialogComponent, DbxInteractionModule, DbxIntroActionSectionComponent, DbxLabelBlockComponent, DbxLayoutModule, DbxLinkComponent, DbxLinkifyComponent, DbxLinkifyService, DbxLinkifyServiceConfig, DbxListAccordionViewComponentImportsModule, DbxListComponent, DbxListEmptyContentComponent, DbxListGridViewComponentImportsModule, DbxListInternalContentDirective, DbxListItemAnchorModifierDirective, DbxListItemDisableRippleModifierDirective, DbxListItemIsSelectedModifierDirective, DbxListModifierModule, DbxListModule, DbxListTitleGroupDirective, DbxListView, DbxListViewMetaIconComponent, DbxListViewWrapper, DbxListWrapperComponentImportsModule, DbxLoadingComponent, DbxLoadingErrorDirective, DbxLoadingModule, DbxLoadingProgressComponent, DbxModelObjectStateService, actions as DbxModelStateActions, model_actions as DbxModelStateModelActions, DbxModelTrackerService, DbxModelTypesService, DbxModelViewTrackerStorage, DbxNavbarComponent, DbxNumberWithLimitComponent, DbxOneColumnComponent, DbxOneColumnLayoutModule, DbxPagebarComponent, DbxPartialPresetFilterListComponent, DbxPartialPresetFilterMenuComponent, DbxPdfMergeEditorComponent, DbxPdfMergeEditorFileUploadComponent, DbxPdfMergeEditorFileUploadHasStateDirective, DbxPdfMergeEditorFileUploadValidatorDirective, DbxPdfMergeEditorStore, DbxPdfMergeEntryComponent, DbxPdfMergeListComponent, DbxPdfPreviewComponent, DbxPopoverCloseButtonComponent, DbxPopoverComponent, DbxPopoverComponentController, DbxPopoverContentComponent, DbxPopoverController, DbxPopoverControlsDirective, DbxPopoverCoordinatorComponent, DbxPopoverCoordinatorService, DbxPopoverHeaderComponent, DbxPopoverInteractionContentModule, DbxPopoverInteractionModule, DbxPopoverScrollContentDirective, DbxPopoverService, DbxPopupComponent, DbxPopupComponentController, DbxPopupContentComponent, DbxPopupControlButtonsComponent, DbxPopupController, DbxPopupControlsComponent, DbxPopupCoordinatorComponent, DbxPopupCoordinatorService, DbxPopupInteractionModule, DbxPopupService, DbxPopupWindowState, DbxPresetFilterListComponent, DbxPresetFilterMenuComponent, DbxProgressBarButtonComponent, DbxProgressButtonsModule, DbxProgressSpinnerButtonComponent, DbxPromptBoxDirective, DbxPromptComponent, DbxPromptConfirm, DbxPromptConfirmButtonDirective, DbxPromptConfirmComponent, DbxPromptConfirmDialogComponent, DbxPromptConfirmDirective, DbxPromptModule, DbxPromptPageComponent, DbxReadableErrorModule, DbxResizedDirective, DbxRouterAnchorModule, DbxRouterLayoutModule, DbxRouterSidenavModule, DbxRouterWebProviderConfig, DbxScreenMediaService, DbxScreenMediaServiceConfig, DbxSectionComponent, DbxSectionHeaderComponent, DbxSectionLayoutModule, DbxSectionPageComponent, DbxSelectionValueListViewComponent, DbxSelectionValueListViewComponentImportsModule, DbxSelectionValueListViewContentComponent, DbxSetStyleDirective, DbxSidenavButtonComponent, DbxSidenavComponent, DbxSidenavPageComponent, DbxSidenavPagebarComponent, DbxSpacerDirective, DbxStepBlockComponent, DbxStructureDirective, DbxStructureModule, DbxStyleBodyDirective, DbxStyleDirective, DbxStyleLayoutModule, DbxStyleService, DbxSubSectionComponent, DbxTextChipsComponent, DbxTextColorDirective, DbxTextModule, DbxTwoBlockComponent, DbxTwoColumnBackDirective, DbxTwoColumnColumnHeadDirective, DbxTwoColumnComponent, DbxTwoColumnContextDirective, DbxTwoColumnFullLeftDirective, DbxTwoColumnLayoutModule, DbxTwoColumnRightComponent, DbxTwoColumnSrefDirective, DbxTwoColumnSrefShowRightDirective, DbxUIRouterSegueAnchorComponent, DbxUnitedStatesAddressComponent, DbxValueListAccordionViewComponent, DbxValueListAccordionViewContentComponent, DbxValueListAccordionViewContentGroupComponent, DbxValueListGridSizeDirective, DbxValueListGridViewComponent, DbxValueListGridViewContentComponent, DbxValueListGridViewContentGroupComponent, DbxValueListItemModifier, DbxValueListItemModifierDirective, DbxValueListView, DbxValueListViewComponent, DbxValueListViewComponentImportsModule, DbxValueListViewContentComponent, DbxValueListViewContentGroupComponent, DbxValueListViewGroupDelegate, DbxWebFilePreviewComponent, DbxWebFilePreviewService, DbxWebModule, DbxWebPageTitleInfoDirective, DbxWebPageTitleService, DbxWidgetListGridComponent, DbxWidgetListGridViewComponent, DbxWidgetListGridViewItemComponent, DbxWidgetService, DbxWidgetViewComponent, DbxWindowKeyDownListenerDirective, DbxZipBlobPreviewComponent, DbxZipPreviewComponent, PDF_MERGE_DEFAULT_ACCEPT, PDF_MERGE_RESULT_MIME_TYPE, PopoverPositionStrategy, PopupGlobalPositionStrategy, SCREEN_MEDIA_WIDTH_TYPE_SIZE_MAP, SIDE_NAV_DISPLAY_MODE_ORDER, SideNavDisplayMode, TRACK_BY_MODEL_ID, TRACK_BY_MODEL_KEY, TwoColumnsContextStore, UNKNOWN_ERROR_WIDGET_CODE, addConfigToValueListItems, allDbxModelViewTrackerEventModelKeys, allDbxModelViewTrackerEventSetModelKeys, buildPdfMergeEntry, catchErrorServerParams, classifyPdfMergeFile, compactModeFromInput, compareScreenMediaWidthTypes, convertServerErrorParams, convertToPOJOServerErrorResponse, convertToServerErrorResponse, copyToClipboardFunction, dbxColorBackground, dbxListAccordionViewComponentImportsAndExports, dbxListGridViewComponentImportsAndExports, dbxPresetFilterMenuButtonIconObservable, dbxPresetFilterMenuButtonTextObservable, dbxStyleClassCleanSuffix, dbxThemeColorCssToken, dbxThemeColorCssTokenVar, dbxThemeColorCssVariable, dbxThemeColorCssVariableVar, dbxValueListItemDecisionFunction, dbxValueListItemKeyForItemValue, dbxWebDefaultPageTitleDelegate, dbxZipBlobPreviewEntryTreeFromEntries, defaultDbxModelViewTrackerStorageAccessorFactory, defaultDbxValueListViewGroupDelegate, defaultDbxValueListViewGroupValuesFunction, disableRightClickInCdkBackdrop, fileAcceptFilterTypeStringArray, fileAcceptFunction, fileAcceptString, fileArrayAcceptMatchFunction, flattenAccordionGroups, index as fromDbxModel, injectCopyToClipboardFunction, injectCopyToClipboardFunctionWithSnackbarMessage, isDbxColorConfig, listItemModifier, makeDbxActionSnackbarDisplayConfigGeneratorFunction, mapCompactModeObs, mapValuesToValuesListItemConfigObs, mergePdfMergeEntries, index$1 as onDbxModel, openEmbedDialog, openIframeDialog, openPdfPreviewDialog, openZipPreviewDialog, overrideClickElementEffect, provideDbxDetachController, provideDbxFileUploadActionCompatable, provideDbxHelpServices, provideDbxLinkify, provideDbxListView, provideDbxListViewWrapper, provideDbxModelService, provideDbxProgressButtonGlobalConfig, provideDbxPromptConfirm, provideDbxRouterWebAngularRouterProviderConfig, provideDbxRouterWebUiRouterProviderConfig, provideDbxScreenMediaService, provideDbxStyleService, provideDbxValueListView, provideDbxValueListViewGroupDelegate, provideDbxValueListViewModifier, provideDbxWebFilePreviewServiceEntries, provideDbxWebPageTitleService, provideTwoColumnsContext, registerHelpContextKeysWithDbxHelpContextService, resizeSignal, resolveSideNavDisplayMode, sanitizeDbxDialogContentConfig, screenMediaWidthTypeIsActive, trackByModelKeyRef, trackByUniqueIdentifier, validatePdfMergeEntry };
18609
+ export { APP_POPUP_MINIMIZED_WIDTH, APP_POPUP_NORMAL_HEIGHT, APP_POPUP_NORMAL_WIDTH, AbstractDbxClipboardDirective, AbstractDbxErrorWidgetComponent, AbstractDbxFileUploadComponent, AbstractDbxHelpWidgetDirective, AbstractDbxListAccordionViewDirective, AbstractDbxListGridViewDirective, AbstractDbxListViewDirective, AbstractDbxListWrapperDirective, AbstractDbxPartialPresetFilterMenuDirective, AbstractDbxSegueAnchorDirective, AbstractDbxSelectionListViewDirective, AbstractDbxSelectionListWrapperDirective, AbstractDbxValueListItemModifierDirective, AbstractDbxValueListViewDirective, AbstractDbxValueListViewItemComponent, AbstractDbxWidgetComponent, AbstractDialogDirective, AbstractFilterPopoverButtonDirective, AbstractPopoverDirective, AbstractPopoverRefDirective, AbstractPopoverRefWithEventsDirective, AbstractPopupDirective, AbstractPromptConfirmDirective, CompactContextStore, CompactMode, DBX_ACTION_SNACKBAR_DEFAULTS, DBX_ACTION_SNACKBAR_SERVICE_CONFIG, DBX_AVATAR_CONTEXT_DATA_TOKEN, DBX_COLOR_CUSTOM_BG_CSS_CLASS, DBX_COLOR_CUSTOM_TEXT_CSS_CLASS, DBX_DARK_STYLE_CLASS_SUFFIX, DBX_HELP_WIDGET_ENTRY_DATA_TOKEN, DBX_LIST_ACCORDION_VIEW_COMPONENT_IMPORTS_AND_EXPORTS, DBX_LIST_GRID_VIEW_COMPONENT_IMPORTS_AND_EXPORTS, DBX_LIST_ITEM_DISABLE_RIPPLE_LIST_ITEM_MODIFIER_KEY, DBX_LIST_ITEM_IS_SELECTED_ITEM_MODIFIER_KEY, DBX_MODEL_VIEW_TRACKER_STORAGE_ACCESSOR_TOKEN, DBX_PDF_MERGE_EDITOR_INITIAL_STATE, DBX_PROGRESS_BUTTON_GLOBAL_CONFIG, DBX_ROUTER_ANCHOR_COMPONENTS, DBX_ROUTER_VALUE_LIST_ITEM_MODIFIER_KEY, DBX_THEME_COLORS, DBX_THEME_COLORS_EXTRA, DBX_THEME_COLORS_EXTRA_SECONDARY, DBX_THEME_COLORS_MAIN, DBX_VALUE_LIST_VIEW_ITEM, DBX_WEB_FILE_PREVIEW_SERVICE_ENTRIES_TOKEN, DBX_WEB_FILE_PREVIEW_SERVICE_ZIP_COMPONENT_PRESET, DBX_WEB_FILE_PREVIEW_SERVICE_ZIP_PRESET_ENTRY, DBX_WEB_PAGE_TITLE_SERVICE_CONFIG, DEFAULT_DBX_CHIP_TONE, DEFAULT_DBX_DETACH_KEY, DEFAULT_DBX_ERROR_SNACKBAR_CONFIG, DEFAULT_DBX_HELP_VIEW_POPOVER_KEY, DEFAULT_DBX_LINKIFY_STRING_TYPE, DEFAULT_DBX_LIST_ACCORDION_VIEW_COMPONENT_CONFIGURATION_TEMPLATE, DEFAULT_DBX_LIST_GRID_VIEW_COMPONENT_CONFIGURATION_TEMPLATE, DEFAULT_DBX_LIST_ITEM_DISABLE_FUNCTION, DEFAULT_DBX_LIST_ITEM_IS_SELECTED_FUNCTION, DEFAULT_DBX_LIST_SCROLL_DISTANCE, DEFAULT_DBX_LIST_THROTTLE_SCROLL, DEFAULT_DBX_LIST_VIEW_META_ICON, DEFAULT_DBX_PROMPT_CONFIRM_DIALOG_CONFIG, DEFAULT_DBX_SELECTION_VALUE_LIST_COMPONENT_CONFIGURATION_TEMPLATE, DEFAULT_DBX_SIDENAV_MENU_ICON, DEFAULT_DBX_STYLE_CONFIG_TOKEN, DEFAULT_DBX_VALUE_LIST_COMPONENT_CONFIGURATION_TEMPLATE, DEFAULT_DBX_WEB_FILE_PREVIEW_SERVICE_DIALOG_WITH_COMPONENT_FUNCTION, DEFAULT_DBX_WEB_FILE_PREVIEW_SERVICE_PREVIEW_COMPONENT_FUNCTION, DEFAULT_ERROR_POPOVER_KEY, DEFAULT_ERROR_WIDGET_CODE, DEFAULT_FILTER_POPOVER_KEY, DEFAULT_LIST_GRID_SIZE_CONFIG, DEFAULT_LIST_WRAPPER_COMPONENT_CONFIGURATION_TEMPLATE, DEFAULT_LOADING_PROGRESS_DIAMETER, DEFAULT_PDF_MERGE_ACCEPT, DEFAULT_SCREEN_MEDIA_SERVICE_CONFIG, DEFAULT_SNACKBAR_DIRECTIVE_DURATION, DEFAULT_TWO_COLUMNS_MIN_RIGHT_WIDTH, DEFAULT_VALUE_LIST_VIEW_CONTENT_COMPONENT_TRACK_BY_FUNCTION, DbxAccordionHeaderHeightDirective, DbxActionConfirmDirective, DbxActionDialogDirective, DbxActionErrorDirective, DbxActionKeyTriggerDirective, DbxActionLoadingContextDirective, DbxActionModule, DbxActionPopoverDirective, DbxActionSnackbarComponent, DbxActionSnackbarDirective, DbxActionSnackbarErrorDirective, DbxActionSnackbarModule, DbxActionSnackbarService, DbxActionTransitionSafetyDirective, DbxActionUIRouterTransitionSafetyDialogComponent, DbxAnchorComponent, DbxAnchorContentComponent, DbxAnchorIconComponent, DbxAnchorListComponent, DbxAngularRouterSegueAnchorComponent, DbxAvatarComponent, DbxAvatarViewService, DbxAvatarViewServiceConfig, DbxBarDirective, DbxBarHeaderComponent, DbxBarLayoutModule, DbxBasicLoadingComponent, DbxBodyDirective, DbxButtonComponent, DbxButtonModule, DbxButtonSpacerDirective, DbxCardBoxComponent, DbxCardBoxContainerDirective, DbxCardBoxLayoutModule, DbxChipDirective, DbxChipListComponent, DbxClickToCopyTextComponent, DbxClickToCopyTextDirective, DbxColorDirective, DbxColorService, DbxColorServiceConfig, DbxColumnLayoutModule, DbxCompactDirective, DbxCompactLayoutModule, DbxContentBorderDirective, DbxContentBoxDirective, DbxContentContainerDirective, DbxContentDirective, DbxContentElevateDirective, DbxContentLayoutModule, DbxContentPageDirective, DbxContentPitDirective, DbxDetachContentComponent, DbxDetachControlButtonsComponent, DbxDetachController, DbxDetachControlsComponent, DbxDetachInitDirective, DbxDetachInteractionModule, DbxDetachOutletComponent, DbxDetachOverlayComponent, DbxDetachService, DbxDetachWindowState, DbxDetailBlockComponent, DbxDetailBlockHeaderComponent, DbxDialogContentCloseComponent, DbxDialogContentDirective, DbxDialogContentFooterComponent, DbxDialogInteractionModule, DbxDialogModule, DbxDownloadBlobButtonComponent, DbxDownloadTextViewComponent, DbxEmbedComponent, DbxErrorComponent, DbxErrorDefaultErrorWidgetComponent, DbxErrorDetailsComponent, DbxErrorPopoverComponent, DbxErrorSnackbarComponent, DbxErrorSnackbarService, DbxErrorViewComponent, DbxErrorWidgetService, DbxErrorWidgetViewComponent, DbxFileUploadActionCompatable, DbxFileUploadActionSyncDirective, DbxFileUploadAreaComponent, DbxFileUploadButtonComponent, DbxFileUploadComponent, DbxFilterInteractionModule, DbxFilterPopoverButtonComponent, DbxFilterPopoverComponent, DbxFilterWrapperComponent, DbxFlagComponent, DbxFlagLayoutModule, DbxFlagPromptComponent, DbxFlexGroupDirective, DbxFlexLayoutModule, DbxFlexSizeDirective, DbxHelpContextDirective, DbxHelpContextService, DbxHelpViewListComponent, DbxHelpViewListEntryComponent, DbxHelpViewPopoverButtonComponent, DbxHelpViewPopoverComponent, DbxHelpWidgetService, DbxHelpWidgetServiceConfig, DbxIconButtonComponent, DbxIconButtonModule, DbxIconItemComponent, DbxIconSpacerDirective, DbxIconTileComponent, DbxIconTileDirective, DbxIfSidenavDisplayModeDirective, DbxIframeComponent, DbxInjectionDialogComponent, DbxInteractionModule, DbxIntroActionSectionComponent, DbxLabelBlockComponent, DbxLayoutModule, DbxLinkComponent, DbxLinkifyComponent, DbxLinkifyService, DbxLinkifyServiceConfig, DbxListAccordionViewComponentImportsModule, DbxListComponent, DbxListEmptyContentComponent, DbxListGridViewComponentImportsModule, DbxListInternalContentDirective, DbxListItemAnchorModifierDirective, DbxListItemDisableRippleModifierDirective, DbxListItemIsSelectedModifierDirective, DbxListModifierModule, DbxListModule, DbxListTitleGroupDirective, DbxListView, DbxListViewMetaIconComponent, DbxListViewWrapper, DbxListWrapperComponentImportsModule, DbxLoadingComponent, DbxLoadingErrorDirective, DbxLoadingModule, DbxLoadingProgressComponent, DbxModelObjectStateService, actions as DbxModelStateActions, model_actions as DbxModelStateModelActions, DbxModelTrackerService, DbxModelTypesService, DbxModelViewTrackerStorage, DbxNavbarComponent, DbxNumberWithLimitComponent, DbxOneColumnComponent, DbxOneColumnLayoutModule, DbxPagebarComponent, DbxPartialPresetFilterListComponent, DbxPartialPresetFilterMenuComponent, DbxPdfMergeEditorComponent, DbxPdfMergeEditorFileUploadComponent, DbxPdfMergeEditorFileUploadHasStateDirective, DbxPdfMergeEditorFileUploadValidatorDirective, DbxPdfMergeEditorStore, DbxPdfMergeEntryComponent, DbxPdfMergeListComponent, DbxPdfPreviewComponent, DbxPopoverCloseButtonComponent, DbxPopoverComponent, DbxPopoverComponentController, DbxPopoverContentComponent, DbxPopoverController, DbxPopoverControlsDirective, DbxPopoverCoordinatorComponent, DbxPopoverCoordinatorService, DbxPopoverHeaderComponent, DbxPopoverInteractionContentModule, DbxPopoverInteractionModule, DbxPopoverScrollContentDirective, DbxPopoverService, DbxPopupComponent, DbxPopupComponentController, DbxPopupContentComponent, DbxPopupControlButtonsComponent, DbxPopupController, DbxPopupControlsComponent, DbxPopupCoordinatorComponent, DbxPopupCoordinatorService, DbxPopupInteractionModule, DbxPopupService, DbxPopupWindowState, DbxPresetFilterListComponent, DbxPresetFilterMenuComponent, DbxProgressBarButtonComponent, DbxProgressButtonsModule, DbxProgressSpinnerButtonComponent, DbxPromptBoxDirective, DbxPromptComponent, DbxPromptConfirm, DbxPromptConfirmButtonDirective, DbxPromptConfirmComponent, DbxPromptConfirmDialogComponent, DbxPromptConfirmDirective, DbxPromptModule, DbxPromptPageComponent, DbxReadableErrorModule, DbxResizedDirective, DbxRouterAnchorModule, DbxRouterLayoutModule, DbxRouterSidenavModule, DbxRouterWebProviderConfig, DbxScreenMediaService, DbxScreenMediaServiceConfig, DbxSectionComponent, DbxSectionHeaderComponent, DbxSectionLayoutModule, DbxSectionPageComponent, DbxSelectionValueListViewComponent, DbxSelectionValueListViewComponentImportsModule, DbxSelectionValueListViewContentComponent, DbxSetStyleDirective, DbxSidenavButtonComponent, DbxSidenavComponent, DbxSidenavPageComponent, DbxSidenavPagebarComponent, DbxSpacerDirective, DbxStepBlockComponent, DbxStructureDirective, DbxStructureModule, DbxStyleBodyDirective, DbxStyleDirective, DbxStyleLayoutModule, DbxStyleService, DbxSubSectionComponent, DbxTextChipsComponent, DbxTextColorDirective, DbxTextModule, DbxTwoBlockComponent, DbxTwoColumnBackDirective, DbxTwoColumnColumnHeadDirective, DbxTwoColumnComponent, DbxTwoColumnContextDirective, DbxTwoColumnFullLeftDirective, DbxTwoColumnLayoutModule, DbxTwoColumnRightComponent, DbxTwoColumnSrefDirective, DbxTwoColumnSrefShowRightDirective, DbxUIRouterSegueAnchorComponent, DbxUnitedStatesAddressComponent, DbxValueListAccordionViewComponent, DbxValueListAccordionViewContentComponent, DbxValueListAccordionViewContentGroupComponent, DbxValueListGridSizeDirective, DbxValueListGridViewComponent, DbxValueListGridViewContentComponent, DbxValueListGridViewContentGroupComponent, DbxValueListItemModifier, DbxValueListItemModifierDirective, DbxValueListView, DbxValueListViewComponent, DbxValueListViewComponentImportsModule, DbxValueListViewContentComponent, DbxValueListViewContentGroupComponent, DbxValueListViewGroupDelegate, DbxWebFilePreviewComponent, DbxWebFilePreviewService, DbxWebModule, DbxWebPageTitleInfoDirective, DbxWebPageTitleService, DbxWidgetListGridComponent, DbxWidgetListGridViewComponent, DbxWidgetListGridViewItemComponent, DbxWidgetService, DbxWidgetViewComponent, DbxWindowKeyDownListenerDirective, DbxZipBlobPreviewComponent, DbxZipPreviewComponent, PDF_MERGE_RESULT_MIME_TYPE, PopoverPositionStrategy, PopupGlobalPositionStrategy, SCREEN_MEDIA_WIDTH_TYPE_SIZE_MAP, SIDE_NAV_DISPLAY_MODE_ORDER, SideNavDisplayMode, TRACK_BY_MODEL_ID, TRACK_BY_MODEL_KEY, TwoColumnsContextStore, UNKNOWN_ERROR_WIDGET_CODE, addConfigToValueListItems, allDbxModelViewTrackerEventModelKeys, allDbxModelViewTrackerEventSetModelKeys, buildPdfMergeEntry, catchErrorServerParams, classifyPdfMergeFile, compactModeFromInput, compareScreenMediaWidthTypes, convertServerErrorParams, convertToPOJOServerErrorResponse, convertToServerErrorResponse, copyToClipboardFunction, dbxColorBackground, dbxListAccordionViewComponentImportsAndExports, dbxListGridViewComponentImportsAndExports, dbxPresetFilterMenuButtonIconObservable, dbxPresetFilterMenuButtonTextObservable, dbxStyleClassCleanSuffix, dbxThemeColorCssToken, dbxThemeColorCssTokenVar, dbxThemeColorCssVariable, dbxThemeColorCssVariableVar, dbxValueListItemDecisionFunction, dbxValueListItemKeyForItemValue, dbxWebDefaultPageTitleDelegate, dbxZipBlobPreviewEntryTreeFromEntries, defaultDbxModelViewTrackerStorageAccessorFactory, defaultDbxValueListViewGroupDelegate, defaultDbxValueListViewGroupValuesFunction, disableRightClickInCdkBackdrop, fileAcceptFilterTypeStringArray, fileAcceptFunction, fileAcceptString, fileArrayAcceptMatchFunction, flattenAccordionGroups, index as fromDbxModel, injectCopyToClipboardFunction, injectCopyToClipboardFunctionWithSnackbarMessage, isDbxColorConfig, listItemModifier, makeDbxActionSnackbarDisplayConfigGeneratorFunction, mapCompactModeObs, mapValuesToValuesListItemConfigObs, mergePdfMergeEntries, index$1 as onDbxModel, openEmbedDialog, openIframeDialog, openPdfPreviewDialog, openZipPreviewDialog, overrideClickElementEffect, provideDbxDetachController, provideDbxFileUploadActionCompatable, provideDbxHelpServices, provideDbxLinkify, provideDbxListView, provideDbxListViewWrapper, provideDbxModelService, provideDbxProgressButtonGlobalConfig, provideDbxPromptConfirm, provideDbxRouterWebAngularRouterProviderConfig, provideDbxRouterWebUiRouterProviderConfig, provideDbxScreenMediaService, provideDbxStyleService, provideDbxValueListView, provideDbxValueListViewGroupDelegate, provideDbxValueListViewModifier, provideDbxWebFilePreviewServiceEntries, provideDbxWebPageTitleService, provideTwoColumnsContext, registerHelpContextKeysWithDbxHelpContextService, resizeSignal, resolveSideNavDisplayMode, sanitizeDbxDialogContentConfig, screenMediaWidthTypeIsActive, trackByModelKeyRef, trackByUniqueIdentifier, validatePdfMergeEntry };
18457
18610
  //# sourceMappingURL=dereekb-dbx-web.mjs.map