@dereekb/dbx-form 13.43.0 → 14.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/fesm2022/dereekb-dbx-form-calendar.mjs +159 -199
  2. package/fesm2022/dereekb-dbx-form-calendar.mjs.map +1 -1
  3. package/fesm2022/dereekb-dbx-form-expand.field.component-BO_8nxHg.mjs +70 -0
  4. package/fesm2022/dereekb-dbx-form-expand.field.component-BO_8nxHg.mjs.map +1 -0
  5. package/fesm2022/dereekb-dbx-form-flex.wrapper.component-C54ACtzt.mjs +40 -0
  6. package/fesm2022/dereekb-dbx-form-flex.wrapper.component-C54ACtzt.mjs.map +1 -0
  7. package/fesm2022/dereekb-dbx-form-info.field.component-CImBKYE7.mjs +61 -0
  8. package/fesm2022/dereekb-dbx-form-info.field.component-CImBKYE7.mjs.map +1 -0
  9. package/fesm2022/{dereekb-dbx-form-info.wrapper.component-ChSBMxgm.mjs → dereekb-dbx-form-info.wrapper.component-DdDCQ47C.mjs} +14 -13
  10. package/fesm2022/dereekb-dbx-form-info.wrapper.component-DdDCQ47C.mjs.map +1 -0
  11. package/fesm2022/dereekb-dbx-form-mapbox.mjs +100 -60
  12. package/fesm2022/dereekb-dbx-form-mapbox.mjs.map +1 -1
  13. package/fesm2022/dereekb-dbx-form-quiz.mjs +106 -73
  14. package/fesm2022/dereekb-dbx-form-quiz.mjs.map +1 -1
  15. package/fesm2022/{dereekb-dbx-form-section.wrapper.component-BoR5-a8A.mjs → dereekb-dbx-form-section.wrapper.component-CpXSvC5e.mjs} +14 -13
  16. package/fesm2022/dereekb-dbx-form-section.wrapper.component-CpXSvC5e.mjs.map +1 -0
  17. package/fesm2022/dereekb-dbx-form-style-demo.mjs +30 -39
  18. package/fesm2022/dereekb-dbx-form-style-demo.mjs.map +1 -1
  19. package/fesm2022/{dereekb-dbx-form-style.wrapper.component-C4dVNND_.mjs → dereekb-dbx-form-style.wrapper.component-CPzzgQXk.mjs} +12 -12
  20. package/fesm2022/dereekb-dbx-form-style.wrapper.component-CPzzgQXk.mjs.map +1 -0
  21. package/fesm2022/dereekb-dbx-form.mjs +958 -642
  22. package/fesm2022/dereekb-dbx-form.mjs.map +1 -1
  23. package/package.json +24 -24
  24. package/types/dereekb-dbx-form-calendar.d.ts +55 -64
  25. package/types/dereekb-dbx-form.d.ts +51 -293
  26. package/fesm2022/dereekb-dbx-form-expand.field.component-uqVNtX2s.mjs +0 -56
  27. package/fesm2022/dereekb-dbx-form-expand.field.component-uqVNtX2s.mjs.map +0 -1
  28. package/fesm2022/dereekb-dbx-form-flex.wrapper.component-C2nN1Oi1.mjs +0 -39
  29. package/fesm2022/dereekb-dbx-form-flex.wrapper.component-C2nN1Oi1.mjs.map +0 -1
  30. package/fesm2022/dereekb-dbx-form-info.field.component-CBAXCDdO.mjs +0 -50
  31. package/fesm2022/dereekb-dbx-form-info.field.component-CBAXCDdO.mjs.map +0 -1
  32. package/fesm2022/dereekb-dbx-form-info.wrapper.component-ChSBMxgm.mjs.map +0 -1
  33. package/fesm2022/dereekb-dbx-form-section.wrapper.component-BoR5-a8A.mjs.map +0 -1
  34. package/fesm2022/dereekb-dbx-form-style.wrapper.component-C4dVNND_.mjs.map +0 -1
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
- import { forwardRef, inject, input, Directive, effect, Injectable, signal, computed, untracked, viewChild, ChangeDetectionStrategy, Component, output, InjectionToken, DestroyRef, ElementRef, ViewContainerRef, NgModule, model, makeEnvironmentProviders } from '@angular/core';
2
+ import { forwardRef, inject, input, Directive, effect, Service, signal, computed, Injectable, untracked, viewChild, Component, output, InjectionToken, DestroyRef, ElementRef, ViewContainerRef, NgModule, model, makeEnvironmentProviders } from '@angular/core';
3
3
  import * as i1$1 from '@dereekb/dbx-web';
4
- import { DbxActionTransitionSafetyDirective, AbstractDialogDirective, DbxDialogContentDirective, DbxActionModule, DbxButtonModule, DbxDialogContentCloseComponent, AbstractPopoverDirective, DbxPopoverService, DbxAnchorComponent, DbxLoadingModule, DbxButtonComponent, DbxLoadingComponent, dbxValueListItemDecisionFunction, DbxListModifierModule, CompactContextStore, mapCompactModeObs, DbxChipDirective, DbxButtonSpacerDirective } from '@dereekb/dbx-web';
4
+ import { DbxActionTransitionSafetyDirective, AbstractDialogDirective, DbxActionSnackbarErrorDirective, DbxDialogContentDirective, DbxActionModule, DbxButtonModule, DbxDialogContentCloseComponent, AbstractPopoverDirective, DbxPopoverService, DbxAnchorComponent, DbxLoadingModule, DbxButtonComponent, DbxLoadingComponent, dbxValueListItemDecisionFunction, DbxListModifierModule, CompactContextStore, mapCompactModeObs, DbxChipDirective, DbxButtonSpacerDirective } from '@dereekb/dbx-web';
5
5
  import { isPast, addSeconds, startOfDay, addMinutes, addDays, isBefore } from 'date-fns';
6
6
  import { map, of, shareReplay, switchMap, first, exhaustMap, catchError, delay, filter, combineLatest, distinctUntilChanged, BehaviorSubject, scan, skip, EMPTY, throttleTime, startWith, Subject, interval, combineLatestWith as combineLatestWith$1, timer, withLatestFrom, debounceTime as debounceTime$1, mergeMap, tap as tap$1 } from 'rxjs';
7
7
  import * as i1 from '@dereekb/dbx-core';
@@ -167,26 +167,31 @@ class DbxActionFormDirective {
167
167
  *
168
168
  * Defaults to true.
169
169
  */
170
- dbxActionFormDisabledOnWorking = input(true, ...(ngDevMode ? [{ debugName: "dbxActionFormDisabledOnWorking" }] : /* istanbul ignore next */ []));
170
+ dbxActionFormDisabledOnWorking = input(true, /* @ts-ignore */
171
+ ...(ngDevMode ? [{ debugName: "dbxActionFormDisabledOnWorking" }] : /* istanbul ignore next */ []));
171
172
  /**
172
173
  * Optional validator that checks whether or not the value is
173
174
  * ready to send before the context store is marked enabled.
174
175
  */
175
- dbxActionFormIsValid = input(...(ngDevMode ? [undefined, { debugName: "dbxActionFormIsValid" }] : /* istanbul ignore next */ []));
176
+ dbxActionFormIsValid = input(/* @ts-ignore */
177
+ ...(ngDevMode ? [undefined, { debugName: "dbxActionFormIsValid" }] : /* istanbul ignore next */ []));
176
178
  /**
177
179
  * Optional function that checks whether or not the value is still the same/equal.
178
180
  */
179
- dbxActionFormIsEqual = input(...(ngDevMode ? [undefined, { debugName: "dbxActionFormIsEqual" }] : /* istanbul ignore next */ []));
181
+ dbxActionFormIsEqual = input(/* @ts-ignore */
182
+ ...(ngDevMode ? [undefined, { debugName: "dbxActionFormIsEqual" }] : /* istanbul ignore next */ []));
180
183
  /**
181
184
  * Optional function that checks whether or not the value has been modified.
182
185
  *
183
186
  * If dbxActionFormIsEqual is provided, this will be ignored.
184
187
  */
185
- dbxActionFormIsModified = input(...(ngDevMode ? [undefined, { debugName: "dbxActionFormIsModified" }] : /* istanbul ignore next */ []));
188
+ dbxActionFormIsModified = input(/* @ts-ignore */
189
+ ...(ngDevMode ? [undefined, { debugName: "dbxActionFormIsModified" }] : /* istanbul ignore next */ []));
186
190
  /**
187
191
  * Optional function that maps the form's value to the source's value.
188
192
  */
189
- dbxActionFormMapValue = input(...(ngDevMode ? [undefined, { debugName: "dbxActionFormMapValue" }] : /* istanbul ignore next */ []));
193
+ dbxActionFormMapValue = input(/* @ts-ignore */
194
+ ...(ngDevMode ? [undefined, { debugName: "dbxActionFormMapValue" }] : /* istanbul ignore next */ []));
190
195
  dbxActionFormDisabledOnWorking$ = toObservable(this.dbxActionFormDisabledOnWorking);
191
196
  isValidFunction$ = toObservable(this.dbxActionFormIsValid).pipe(map((x) => x ?? (() => of(true))), shareReplay(1));
192
197
  isModifiedFunction$ = makeIsModifiedFunctionObservable({
@@ -302,14 +307,13 @@ class DbxActionFormDirective {
302
307
  return of({ value: value });
303
308
  }));
304
309
  }
305
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxActionFormDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
306
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.11", type: DbxActionFormDirective, isStandalone: true, selector: "[dbxActionForm]", inputs: { dbxActionFormDisabledOnWorking: { classPropertyName: "dbxActionFormDisabledOnWorking", publicName: "dbxActionFormDisabledOnWorking", isSignal: true, isRequired: false, transformFunction: null }, dbxActionFormIsValid: { classPropertyName: "dbxActionFormIsValid", publicName: "dbxActionFormIsValid", isSignal: true, isRequired: false, transformFunction: null }, dbxActionFormIsEqual: { classPropertyName: "dbxActionFormIsEqual", publicName: "dbxActionFormIsEqual", isSignal: true, isRequired: false, transformFunction: null }, dbxActionFormIsModified: { classPropertyName: "dbxActionFormIsModified", publicName: "dbxActionFormIsModified", isSignal: true, isRequired: false, transformFunction: null }, dbxActionFormMapValue: { classPropertyName: "dbxActionFormMapValue", publicName: "dbxActionFormMapValue", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
310
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxActionFormDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
311
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.4", type: DbxActionFormDirective, isStandalone: true, selector: "[dbxActionForm]", inputs: { dbxActionFormDisabledOnWorking: { classPropertyName: "dbxActionFormDisabledOnWorking", publicName: "dbxActionFormDisabledOnWorking", isSignal: true, isRequired: false, transformFunction: null }, dbxActionFormIsValid: { classPropertyName: "dbxActionFormIsValid", publicName: "dbxActionFormIsValid", isSignal: true, isRequired: false, transformFunction: null }, dbxActionFormIsEqual: { classPropertyName: "dbxActionFormIsEqual", publicName: "dbxActionFormIsEqual", isSignal: true, isRequired: false, transformFunction: null }, dbxActionFormIsModified: { classPropertyName: "dbxActionFormIsModified", publicName: "dbxActionFormIsModified", isSignal: true, isRequired: false, transformFunction: null }, dbxActionFormMapValue: { classPropertyName: "dbxActionFormMapValue", publicName: "dbxActionFormMapValue", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
307
312
  }
308
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxActionFormDirective, decorators: [{
313
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxActionFormDirective, decorators: [{
309
314
  type: Directive,
310
315
  args: [{
311
- selector: '[dbxActionForm]',
312
- standalone: true
316
+ selector: '[dbxActionForm]'
313
317
  }]
314
318
  }], ctorParameters: () => [], propDecorators: { dbxActionFormDisabledOnWorking: [{ type: i0.Input, args: [{ isSignal: true, alias: "dbxActionFormDisabledOnWorking", required: false }] }], dbxActionFormIsValid: [{ type: i0.Input, args: [{ isSignal: true, alias: "dbxActionFormIsValid", required: false }] }], dbxActionFormIsEqual: [{ type: i0.Input, args: [{ isSignal: true, alias: "dbxActionFormIsEqual", required: false }] }], dbxActionFormIsModified: [{ type: i0.Input, args: [{ isSignal: true, alias: "dbxActionFormIsModified", required: false }] }], dbxActionFormMapValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "dbxActionFormMapValue", required: false }] }] } });
315
319
 
@@ -332,20 +336,21 @@ class DbxActionFormSafetyDirective extends DbxActionTransitionSafetyDirective {
332
336
  *
333
337
  * Defaults to `'auto'`, which blocks transitions when the form has unsaved changes.
334
338
  */
335
- dbxActionFormSafety = input('auto', ...(ngDevMode ? [{ debugName: "dbxActionFormSafety" }] : /* istanbul ignore next */ []));
336
- _dbxActionFormSafetyUpdateEffect = effect(() => this._safetyType.next(this.dbxActionFormSafety()), ...(ngDevMode ? [{ debugName: "_dbxActionFormSafetyUpdateEffect" }] : /* istanbul ignore next */ []));
339
+ dbxActionFormSafety = input('auto', /* @ts-ignore */
340
+ ...(ngDevMode ? [{ debugName: "dbxActionFormSafety" }] : /* istanbul ignore next */ []));
341
+ _dbxActionFormSafetyUpdateEffect = effect(() => this._safetyType.next(this.dbxActionFormSafety()), /* @ts-ignore */
342
+ ...(ngDevMode ? [{ debugName: "_dbxActionFormSafetyUpdateEffect" }] : /* istanbul ignore next */ []));
337
343
  _handleOnBeforeTransition(transition) {
338
344
  this.dbxActionForm.form.forceFormUpdate();
339
345
  return super._handleOnBeforeTransition(transition);
340
346
  }
341
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxActionFormSafetyDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
342
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.11", type: DbxActionFormSafetyDirective, isStandalone: true, selector: "[dbxActionFormSafety]", inputs: { dbxActionFormSafety: { classPropertyName: "dbxActionFormSafety", publicName: "dbxActionFormSafety", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 });
347
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxActionFormSafetyDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
348
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.4", type: DbxActionFormSafetyDirective, isStandalone: true, selector: "[dbxActionFormSafety]", inputs: { dbxActionFormSafety: { classPropertyName: "dbxActionFormSafety", publicName: "dbxActionFormSafety", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 });
343
349
  }
344
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxActionFormSafetyDirective, decorators: [{
350
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxActionFormSafetyDirective, decorators: [{
345
351
  type: Directive,
346
352
  args: [{
347
- selector: '[dbxActionFormSafety]',
348
- standalone: true
353
+ selector: '[dbxActionFormSafety]'
349
354
  }]
350
355
  }], propDecorators: { dbxActionFormSafety: [{ type: i0.Input, args: [{ isSignal: true, alias: "dbxActionFormSafety", required: false }] }] } });
351
356
 
@@ -602,14 +607,11 @@ class DbxForgeGlobalDefaultConfigService {
602
607
  setDefaultValidationMessages(messages) {
603
608
  this._defaults = { ...this._defaults, defaultValidationMessages: messages ?? undefined };
604
609
  }
605
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeGlobalDefaultConfigService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
606
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeGlobalDefaultConfigService, providedIn: 'root' });
610
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeGlobalDefaultConfigService, deps: [], target: i0.ɵɵFactoryTarget.Service });
611
+ static ɵprov = i0.ɵɵngDeclareService({ minVersion: "22.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeGlobalDefaultConfigService });
607
612
  }
608
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeGlobalDefaultConfigService, decorators: [{
609
- type: Injectable,
610
- args: [{
611
- providedIn: 'root'
612
- }]
613
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeGlobalDefaultConfigService, decorators: [{
614
+ type: Service
613
615
  }] });
614
616
 
615
617
  /**
@@ -787,7 +789,8 @@ class DbxForgeFormContext {
787
789
  * and the combined result is exposed as {@link allWrappersValid}.
788
790
  */
789
791
  _wrapperValidSignals = new Set();
790
- _wrapperValidSignalsVersion = signal(0, ...(ngDevMode ? [{ debugName: "_wrapperValidSignalsVersion" }] : /* istanbul ignore next */ []));
792
+ _wrapperValidSignalsVersion = signal(0, /* @ts-ignore */
793
+ ...(ngDevMode ? [{ debugName: "_wrapperValidSignalsVersion" }] : /* istanbul ignore next */ []));
791
794
  /**
792
795
  * Computed signal that is `true` when all registered wrapper nested forms are valid.
793
796
  * Returns `true` when no wrappers are registered.
@@ -802,7 +805,8 @@ class DbxForgeFormContext {
802
805
  }
803
806
  }
804
807
  return result;
805
- }, ...(ngDevMode ? [{ debugName: "allWrappersValid" }] : /* istanbul ignore next */ []));
808
+ }, /* @ts-ignore */
809
+ ...(ngDevMode ? [{ debugName: "allWrappersValid" }] : /* istanbul ignore next */ []));
806
810
  /**
807
811
  * Registers a wrapper's nested form validity signal for tracking.
808
812
  *
@@ -826,7 +830,8 @@ class DbxForgeFormContext {
826
830
  * Allows wrapper field components to write values to sibling hidden fields
827
831
  * in the parent form (e.g., for the form-field wrapper's hidden field sync).
828
832
  */
829
- _parentFormTree = signal(undefined, ...(ngDevMode ? [{ debugName: "_parentFormTree" }] : /* istanbul ignore next */ []));
833
+ _parentFormTree = signal(undefined, /* @ts-ignore */
834
+ ...(ngDevMode ? [{ debugName: "_parentFormTree" }] : /* istanbul ignore next */ []));
830
835
  parentFormTree = this._parentFormTree.asReadonly();
831
836
  setParentFormTree(tree) {
832
837
  this._parentFormTree.set(tree);
@@ -928,10 +933,10 @@ class DbxForgeFormContext {
928
933
  this._reset.complete();
929
934
  });
930
935
  }
931
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeFormContext, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
932
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeFormContext });
936
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeFormContext, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
937
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeFormContext });
933
938
  }
934
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeFormContext, decorators: [{
939
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeFormContext, decorators: [{
935
940
  type: Injectable
936
941
  }] });
937
942
  /**
@@ -985,14 +990,16 @@ class DbxForgeFormContextService {
985
990
  formValue = computed(() => {
986
991
  const form = this._signalRef.dynamicForm();
987
992
  return (form?.formValue() ?? {});
988
- }, ...(ngDevMode ? [{ debugName: "formValue" }] : /* istanbul ignore next */ []));
993
+ }, /* @ts-ignore */
994
+ ...(ngDevMode ? [{ debugName: "formValue" }] : /* istanbul ignore next */ []));
989
995
  /**
990
996
  * The active Signal Form tree, or undefined until the DynamicForm mounts.
991
997
  */
992
998
  rootForm = computed(() => {
993
999
  const form = this._signalRef.dynamicForm();
994
1000
  return form?.form();
995
- }, ...(ngDevMode ? [{ debugName: "rootForm" }] : /* istanbul ignore next */ []));
1001
+ }, /* @ts-ignore */
1002
+ ...(ngDevMode ? [{ debugName: "rootForm" }] : /* istanbul ignore next */ []));
996
1003
  /**
997
1004
  * Builds an {@link EvaluationContext} scoped to the current array item.
998
1005
  *
@@ -1048,10 +1055,10 @@ class DbxForgeFormContextService {
1048
1055
  }
1049
1056
  return result;
1050
1057
  }
1051
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeFormContextService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1052
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeFormContextService });
1058
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeFormContextService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1059
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeFormContextService });
1053
1060
  }
1054
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeFormContextService, decorators: [{
1061
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeFormContextService, decorators: [{
1055
1062
  type: Injectable
1056
1063
  }] });
1057
1064
  /**
@@ -1090,13 +1097,18 @@ class DbxForgeFormComponent {
1090
1097
  _setValueSub = cleanSubscription();
1091
1098
  _resetSub = cleanSubscription();
1092
1099
  _disabledSub = cleanSubscription();
1093
- dynamicForm = viewChild(DynamicForm, ...(ngDevMode ? [{ debugName: "dynamicForm" }] : /* istanbul ignore next */ []));
1100
+ dynamicForm = viewChild(DynamicForm, /* @ts-ignore */
1101
+ ...(ngDevMode ? [{ debugName: "dynamicForm" }] : /* istanbul ignore next */ []));
1094
1102
  formValue = signal({}, { ...(ngDevMode ? { debugName: "formValue" } : /* istanbul ignore next */ {}), equal: (a, b) => _forgeFormValueEqual(a, b, this._context) });
1095
1103
  configSignal = toSignal(this._context.config$, { initialValue: undefined });
1096
- _changesCount = signal(0, ...(ngDevMode ? [{ debugName: "_changesCount" }] : /* istanbul ignore next */ []));
1097
- _lastResetAt = signal(new Date(), ...(ngDevMode ? [{ debugName: "_lastResetAt" }] : /* istanbul ignore next */ []));
1098
- _isReset = signal(true, ...(ngDevMode ? [{ debugName: "_isReset" }] : /* istanbul ignore next */ []));
1099
- _disabled = signal(undefined, ...(ngDevMode ? [{ debugName: "_disabled" }] : /* istanbul ignore next */ []));
1104
+ _changesCount = signal(0, /* @ts-ignore */
1105
+ ...(ngDevMode ? [{ debugName: "_changesCount" }] : /* istanbul ignore next */ []));
1106
+ _lastResetAt = signal(new Date(), /* @ts-ignore */
1107
+ ...(ngDevMode ? [{ debugName: "_lastResetAt" }] : /* istanbul ignore next */ []));
1108
+ _isReset = signal(true, /* @ts-ignore */
1109
+ ...(ngDevMode ? [{ debugName: "_isReset" }] : /* istanbul ignore next */ []));
1110
+ _disabled = signal(undefined, /* @ts-ignore */
1111
+ ...(ngDevMode ? [{ debugName: "_disabled" }] : /* istanbul ignore next */ []));
1100
1112
  /**
1101
1113
  * True once ng-forge has finished its synchronous initialization: the config
1102
1114
  * has arrived, the DynamicForm view child is populated, and ng-forge has
@@ -1108,7 +1120,8 @@ class DbxForgeFormComponent {
1108
1120
  * {@link DbxFormSourceDirective} 'reset' mode still forwards an
1109
1121
  * asynchronously-resolving value once it arrives.
1110
1122
  */
1111
- _formReady = signal(false, ...(ngDevMode ? [{ debugName: "_formReady" }] : /* istanbul ignore next */ []));
1123
+ _formReady = signal(false, /* @ts-ignore */
1124
+ ...(ngDevMode ? [{ debugName: "_formReady" }] : /* istanbul ignore next */ []));
1112
1125
  /**
1113
1126
  * A setValue payload received while {@link _formReady} was false. Applied
1114
1127
  * once ready; only the most recent pending value is retained.
@@ -1118,10 +1131,12 @@ class DbxForgeFormComponent {
1118
1131
  * with a null/undefined inner value).
1119
1132
  */
1120
1133
  _pendingValue = undefined;
1121
- isDisabledSignal = computed(() => BooleanStringKeyArrayUtility.isTrue(this._disabled()), ...(ngDevMode ? [{ debugName: "isDisabledSignal" }] : /* istanbul ignore next */ []));
1134
+ isDisabledSignal = computed(() => BooleanStringKeyArrayUtility.isTrue(this._disabled()), /* @ts-ignore */
1135
+ ...(ngDevMode ? [{ debugName: "isDisabledSignal" }] : /* istanbul ignore next */ []));
1122
1136
  formOptionsSignal = computed(() => {
1123
1137
  return this.isDisabledSignal() ? { disabled: true } : undefined;
1124
- }, ...(ngDevMode ? [{ debugName: "formOptionsSignal" }] : /* istanbul ignore next */ []));
1138
+ }, /* @ts-ignore */
1139
+ ...(ngDevMode ? [{ debugName: "formOptionsSignal" }] : /* istanbul ignore next */ []));
1125
1140
  /**
1126
1141
  * Computed validity combining the ng-forge DynamicForm's valid signal with
1127
1142
  * validity from all registered wrapper nested forms.
@@ -1131,7 +1146,8 @@ class DbxForgeFormComponent {
1131
1146
  * DynamicForm.valid(). They register their nested validity via
1132
1147
  * {@link DbxForgeFormContext.registerWrapperValidity}, and this computed combines both sources.
1133
1148
  */
1134
- formValidSignal = computed(() => (this.dynamicForm()?.valid() ?? false) && this._context.allWrappersValid(), ...(ngDevMode ? [{ debugName: "formValidSignal" }] : /* istanbul ignore next */ []));
1149
+ formValidSignal = computed(() => (this.dynamicForm()?.valid() ?? false) && this._context.allWrappersValid(), /* @ts-ignore */
1150
+ ...(ngDevMode ? [{ debugName: "formValidSignal" }] : /* istanbul ignore next */ []));
1135
1151
  /**
1136
1152
  * Track form value changes and update the context value + changes count.
1137
1153
  *
@@ -1162,7 +1178,8 @@ class DbxForgeFormComponent {
1162
1178
  this._emitFormState();
1163
1179
  }
1164
1180
  });
1165
- }, ...(ngDevMode ? [{ debugName: "_formValueEffect" }] : /* istanbul ignore next */ []));
1181
+ }, /* @ts-ignore */
1182
+ ...(ngDevMode ? [{ debugName: "_formValueEffect" }] : /* istanbul ignore next */ []));
1166
1183
  /**
1167
1184
  * Marks the form as ready once the ng-forge DynamicForm view child is
1168
1185
  * populated. The viewChild signal updates after ng-forge has completed its
@@ -1185,7 +1202,8 @@ class DbxForgeFormComponent {
1185
1202
  }
1186
1203
  });
1187
1204
  }
1188
- }, ...(ngDevMode ? [{ debugName: "_formReadyEffect" }] : /* istanbul ignore next */ []));
1205
+ }, /* @ts-ignore */
1206
+ ...(ngDevMode ? [{ debugName: "_formReadyEffect" }] : /* istanbul ignore next */ []));
1189
1207
  /**
1190
1208
  * Expose the parent DynamicForm's field tree to the context so wrapper components
1191
1209
  * can write to sibling hidden fields in the parent form.
@@ -1195,7 +1213,8 @@ class DbxForgeFormComponent {
1195
1213
  untracked(() => {
1196
1214
  this._context.setParentFormTree(formTree);
1197
1215
  });
1198
- }, ...(ngDevMode ? [{ debugName: "_parentFormTreeEffect" }] : /* istanbul ignore next */ []));
1216
+ }, /* @ts-ignore */
1217
+ ...(ngDevMode ? [{ debugName: "_parentFormTreeEffect" }] : /* istanbul ignore next */ []));
1199
1218
  /**
1200
1219
  * Track validity changes from the DynamicForm and update the context.
1201
1220
  *
@@ -1208,7 +1227,8 @@ class DbxForgeFormComponent {
1208
1227
  this._context.updateIsValid(isValid);
1209
1228
  this._emitFormState();
1210
1229
  });
1211
- }, ...(ngDevMode ? [{ debugName: "_validityEffect" }] : /* istanbul ignore next */ []));
1230
+ }, /* @ts-ignore */
1231
+ ...(ngDevMode ? [{ debugName: "_validityEffect" }] : /* istanbul ignore next */ []));
1212
1232
  _emitFormState() {
1213
1233
  const isValid = this.formValidSignal();
1214
1234
  const isReset = this._isReset();
@@ -1308,14 +1328,14 @@ class DbxForgeFormComponent {
1308
1328
  this.formValue.set(sanitized);
1309
1329
  this._emitFormState();
1310
1330
  }
1311
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1312
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.11", type: DbxForgeFormComponent, isStandalone: true, selector: "dbx-forge", host: { properties: { "class.dbx-forge-form-disabled": "isDisabledSignal()" }, classAttribute: "dbx-forge" }, providers: [EventDispatcher, { provide: DbxForgeDynamicFormSignalRef, useExisting: DbxForgeFormComponent }, DbxForgeFormContextService, { provide: DbxForm, useExisting: DbxForgeFormContext }, { provide: DbxMutableForm, useExisting: DbxForgeFormContext }], viewQueries: [{ propertyName: "dynamicForm", first: true, predicate: DynamicForm, descendants: true, isSignal: true }], ngImport: i0, template: `
1331
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1332
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: DbxForgeFormComponent, isStandalone: true, selector: "dbx-forge", host: { properties: { "class.dbx-forge-form-disabled": "isDisabledSignal()" }, classAttribute: "dbx-forge" }, providers: [EventDispatcher, { provide: DbxForgeDynamicFormSignalRef, useExisting: DbxForgeFormComponent }, DbxForgeFormContextService, { provide: DbxForm, useExisting: DbxForgeFormContext }, { provide: DbxMutableForm, useExisting: DbxForgeFormContext }], viewQueries: [{ propertyName: "dynamicForm", first: true, predicate: DynamicForm, descendants: true, isSignal: true }], ngImport: i0, template: `
1313
1333
  @if (configSignal()) {
1314
1334
  <form [dynamic-form]="configSignal()!" [(value)]="formValue" [formOptions]="formOptionsSignal()"></form>
1315
1335
  }
1316
- `, isInline: true, dependencies: [{ kind: "component", type: DynamicForm, selector: "form[dynamic-form]", inputs: ["dynamic-form", "formOptions", "value", "source"], outputs: ["valueChange", "validityChange", "dirtyChange", "submitted", "reset", "cleared", "events", "initialized", "onPageChange", "onPageNavigationStateChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1336
+ `, isInline: true, dependencies: [{ kind: "component", type: DynamicForm, selector: "form[dynamic-form]", inputs: ["dynamic-form", "formOptions", "value", "source"], outputs: ["valueChange", "validityChange", "dirtyChange", "submitted", "reset", "cleared", "events", "initialized", "activePageInitialized", "onPageChange", "onPageNavigationStateChange"] }] });
1317
1337
  }
1318
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeFormComponent, decorators: [{
1338
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeFormComponent, decorators: [{
1319
1339
  type: Component,
1320
1340
  args: [{
1321
1341
  selector: 'dbx-forge',
@@ -1329,9 +1349,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
1329
1349
  '[class.dbx-forge-form-disabled]': 'isDisabledSignal()'
1330
1350
  },
1331
1351
  providers: [EventDispatcher, { provide: DbxForgeDynamicFormSignalRef, useExisting: DbxForgeFormComponent }, DbxForgeFormContextService, { provide: DbxForm, useExisting: DbxForgeFormContext }, { provide: DbxMutableForm, useExisting: DbxForgeFormContext }],
1332
- imports: [DynamicForm],
1333
- changeDetection: ChangeDetectionStrategy.OnPush,
1334
- standalone: true
1352
+ imports: [DynamicForm]
1335
1353
  }]
1336
1354
  }], propDecorators: { dynamicForm: [{ type: i0.ViewChild, args: [i0.forwardRef(() => DynamicForm), { isSignal: true }] }] } });
1337
1355
  /**
@@ -1495,11 +1513,13 @@ class DbxFormSourceDirective {
1495
1513
  /**
1496
1514
  * The mode controlling when the source value is forwarded to the form.
1497
1515
  */
1498
- dbxFormSourceMode = input(...(ngDevMode ? [undefined, { debugName: "dbxFormSourceMode" }] : /* istanbul ignore next */ []));
1516
+ dbxFormSourceMode = input(/* @ts-ignore */
1517
+ ...(ngDevMode ? [undefined, { debugName: "dbxFormSourceMode" }] : /* istanbul ignore next */ []));
1499
1518
  /**
1500
1519
  * The source value or observable to pipe into the form.
1501
1520
  */
1502
- dbxFormSource = input(...(ngDevMode ? [undefined, { debugName: "dbxFormSource" }] : /* istanbul ignore next */ []));
1521
+ dbxFormSource = input(/* @ts-ignore */
1522
+ ...(ngDevMode ? [undefined, { debugName: "dbxFormSource" }] : /* istanbul ignore next */ []));
1503
1523
  _effectSub = cleanSubscription();
1504
1524
  _setFormSourceObservableEffect = effect(() => {
1505
1525
  const formSource = this.dbxFormSource();
@@ -1519,15 +1539,15 @@ class DbxFormSourceDirective {
1519
1539
  });
1520
1540
  }
1521
1541
  this._effectSub.setSub(subscription);
1522
- }, ...(ngDevMode ? [{ debugName: "_setFormSourceObservableEffect" }] : /* istanbul ignore next */ []));
1523
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxFormSourceDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1524
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.11", type: DbxFormSourceDirective, isStandalone: true, selector: "[dbxFormSource]", inputs: { dbxFormSourceMode: { classPropertyName: "dbxFormSourceMode", publicName: "dbxFormSourceMode", isSignal: true, isRequired: false, transformFunction: null }, dbxFormSource: { classPropertyName: "dbxFormSource", publicName: "dbxFormSource", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
1542
+ }, /* @ts-ignore */
1543
+ ...(ngDevMode ? [{ debugName: "_setFormSourceObservableEffect" }] : /* istanbul ignore next */ []));
1544
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxFormSourceDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1545
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.4", type: DbxFormSourceDirective, isStandalone: true, selector: "[dbxFormSource]", inputs: { dbxFormSourceMode: { classPropertyName: "dbxFormSourceMode", publicName: "dbxFormSourceMode", isSignal: true, isRequired: false, transformFunction: null }, dbxFormSource: { classPropertyName: "dbxFormSource", publicName: "dbxFormSource", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
1525
1546
  }
1526
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxFormSourceDirective, decorators: [{
1547
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxFormSourceDirective, decorators: [{
1527
1548
  type: Directive,
1528
1549
  args: [{
1529
- selector: '[dbxFormSource]',
1530
- standalone: true
1550
+ selector: '[dbxFormSource]'
1531
1551
  }]
1532
1552
  }], propDecorators: { dbxFormSourceMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "dbxFormSourceMode", required: false }] }], dbxFormSource: [{ type: i0.Input, args: [{ isSignal: true, alias: "dbxFormSource", required: false }] }] } });
1533
1553
 
@@ -1582,9 +1602,9 @@ class DbxForgeActionDialogComponent extends AbstractDialogDirective {
1582
1602
  data: config
1583
1603
  });
1584
1604
  }
1585
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeActionDialogComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1586
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.11", type: DbxForgeActionDialogComponent, isStandalone: true, selector: "ng-component", providers: [provideDbxForgeFormContext()], usesInheritance: true, ngImport: i0, template: `
1587
- <dbx-dialog-content dbxAction [dbxActionHandler]="handleSubmitValue" class="dbx-dialog-content-with-header">
1605
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeActionDialogComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1606
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.4", type: DbxForgeActionDialogComponent, isStandalone: true, selector: "ng-component", providers: [provideDbxForgeFormContext()], usesInheritance: true, ngImport: i0, template: `
1607
+ <dbx-dialog-content dbxAction [dbxActionHandler]="handleSubmitValue" class="dbx-dialog-content-with-header" dbxActionSnackbarError>
1588
1608
  <h3 class="dbx-dialog-content-header">{{ header }}</h3>
1589
1609
  <dbx-dialog-content-close (close)="close()"></dbx-dialog-content-close>
1590
1610
  <div>
@@ -1592,13 +1612,13 @@ class DbxForgeActionDialogComponent extends AbstractDialogDirective {
1592
1612
  <dbx-button dbxActionButton [buttonDisplay]="submitButtonConfig" [buttonStyle]="submitButtonConfig" [raised]="true"></dbx-button>
1593
1613
  </div>
1594
1614
  </dbx-dialog-content>
1595
- `, isInline: true, dependencies: [{ kind: "directive", type: DbxDialogContentDirective, selector: "dbx-dialog-content,[dbxDialogContent],.dbx-dialog-content", inputs: ["width"] }, { kind: "ngmodule", type: DbxActionModule }, { kind: "directive", type: i1.DbxActionDirective, selector: "dbx-action,[dbxAction]", exportAs: ["action", "dbxAction"] }, { kind: "directive", type: i1.DbxActionHandlerDirective, selector: "[dbxActionHandler]", inputs: ["dbxActionHandler"] }, { kind: "directive", type: i1.DbxActionButtonDirective, selector: "[dbxActionButton]", inputs: ["dbxActionButtonEcho"] }, { kind: "ngmodule", type: DbxButtonModule }, { kind: "component", type: i1$1.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: DbxDialogContentCloseComponent, selector: "dbx-dialog-content-close", inputs: ["padded"], outputs: ["close"] }, { kind: "component", type: DbxForgeFormComponent, selector: "dbx-forge" }, { kind: "directive", type: DbxFormSourceDirective, selector: "[dbxFormSource]", inputs: ["dbxFormSourceMode", "dbxFormSource"] }, { kind: "directive", type: DbxActionFormDirective, selector: "[dbxActionForm]", inputs: ["dbxActionFormDisabledOnWorking", "dbxActionFormIsValid", "dbxActionFormIsEqual", "dbxActionFormIsModified", "dbxActionFormMapValue"] }] });
1615
+ `, isInline: true, dependencies: [{ kind: "directive", type: DbxActionSnackbarErrorDirective, selector: "[dbxActionSnackbarError]", inputs: ["dbxActionSnackbarError"] }, { kind: "directive", type: DbxDialogContentDirective, selector: "dbx-dialog-content,[dbxDialogContent],.dbx-dialog-content", inputs: ["width"] }, { kind: "ngmodule", type: DbxActionModule }, { kind: "directive", type: i1.DbxActionDirective, selector: "dbx-action,[dbxAction]", exportAs: ["action", "dbxAction"] }, { kind: "directive", type: i1.DbxActionHandlerDirective, selector: "[dbxActionHandler]", inputs: ["dbxActionHandler"] }, { kind: "directive", type: i1.DbxActionButtonDirective, selector: "[dbxActionButton]", inputs: ["dbxActionButtonEcho"] }, { kind: "ngmodule", type: DbxButtonModule }, { kind: "component", type: i1$1.DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customTextColor", "customSpinnerColor", "basic", "tonal", "raised", "stroked", "flat", "iconOnly", "fab", "customContent", "allowClickPropagation", "mode"] }, { kind: "component", type: DbxDialogContentCloseComponent, selector: "dbx-dialog-content-close", inputs: ["padded"], outputs: ["close"] }, { kind: "component", type: DbxForgeFormComponent, selector: "dbx-forge" }, { kind: "directive", type: DbxFormSourceDirective, selector: "[dbxFormSource]", inputs: ["dbxFormSourceMode", "dbxFormSource"] }, { kind: "directive", type: DbxActionFormDirective, selector: "[dbxActionForm]", inputs: ["dbxActionFormDisabledOnWorking", "dbxActionFormIsValid", "dbxActionFormIsEqual", "dbxActionFormIsModified", "dbxActionFormMapValue"] }] });
1596
1616
  }
1597
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeActionDialogComponent, decorators: [{
1617
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeActionDialogComponent, decorators: [{
1598
1618
  type: Component,
1599
1619
  args: [{
1600
1620
  template: `
1601
- <dbx-dialog-content dbxAction [dbxActionHandler]="handleSubmitValue" class="dbx-dialog-content-with-header">
1621
+ <dbx-dialog-content dbxAction [dbxActionHandler]="handleSubmitValue" class="dbx-dialog-content-with-header" dbxActionSnackbarError>
1602
1622
  <h3 class="dbx-dialog-content-header">{{ header }}</h3>
1603
1623
  <dbx-dialog-content-close (close)="close()"></dbx-dialog-content-close>
1604
1624
  <div>
@@ -1607,9 +1627,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
1607
1627
  </div>
1608
1628
  </dbx-dialog-content>
1609
1629
  `,
1610
- standalone: true,
1611
1630
  providers: [provideDbxForgeFormContext()],
1612
- imports: [DbxDialogContentDirective, DbxActionModule, DbxButtonModule, DbxDialogContentCloseComponent, DbxForgeFormComponent, DbxFormSourceDirective, DbxActionFormDirective]
1631
+ imports: [DbxActionSnackbarErrorDirective, DbxDialogContentDirective, DbxActionModule, DbxButtonModule, DbxDialogContentCloseComponent, DbxForgeFormComponent, DbxFormSourceDirective, DbxActionFormDirective]
1613
1632
  }]
1614
1633
  }] });
1615
1634
 
@@ -1636,14 +1655,13 @@ class DbxFormLoggerDirective {
1636
1655
  console.log('dbxFormLogger - stream: ', { currentValue, event });
1637
1656
  }));
1638
1657
  }
1639
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxFormLoggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1640
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.11", type: DbxFormLoggerDirective, isStandalone: true, selector: "[dbxFormLogger],[dbxFormStreamLogger]", ngImport: i0 });
1658
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxFormLoggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1659
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.4", type: DbxFormLoggerDirective, isStandalone: true, selector: "[dbxFormLogger],[dbxFormStreamLogger]", ngImport: i0 });
1641
1660
  }
1642
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxFormLoggerDirective, decorators: [{
1661
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxFormLoggerDirective, decorators: [{
1643
1662
  type: Directive,
1644
1663
  args: [{
1645
- selector: '[dbxFormLogger],[dbxFormStreamLogger]',
1646
- standalone: true
1664
+ selector: '[dbxFormLogger],[dbxFormStreamLogger]'
1647
1665
  }]
1648
1666
  }], ctorParameters: () => [] });
1649
1667
 
@@ -1672,7 +1690,8 @@ class DbxFormLoadingSourceDirective {
1672
1690
  /**
1673
1691
  * The loading state source to observe. The form value is set once loading finishes with a non-null value.
1674
1692
  */
1675
- dbxFormLoadingSource = input(...(ngDevMode ? [undefined, { debugName: "dbxFormLoadingSource" }] : /* istanbul ignore next */ []));
1693
+ dbxFormLoadingSource = input(/* @ts-ignore */
1694
+ ...(ngDevMode ? [undefined, { debugName: "dbxFormLoadingSource" }] : /* istanbul ignore next */ []));
1676
1695
  mode$ = toObservable(this.dbxFormLoadingSourceMode);
1677
1696
  source$ = toObservable(this.dbxFormLoadingSource).pipe(maybeValueFromObservableOrValue(), filterMaybe(), valueFromFinishedLoadingState());
1678
1697
  constructor() {
@@ -1680,14 +1699,13 @@ class DbxFormLoadingSourceDirective {
1680
1699
  this.form.setValue(x);
1681
1700
  }));
1682
1701
  }
1683
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxFormLoadingSourceDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1684
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.11", type: DbxFormLoadingSourceDirective, isStandalone: true, selector: "[dbxFormLoadingSource]", inputs: { dbxFormLoadingSourceMode: { classPropertyName: "dbxFormLoadingSourceMode", publicName: "dbxFormLoadingSourceMode", isSignal: true, isRequired: false, transformFunction: null }, dbxFormLoadingSource: { classPropertyName: "dbxFormLoadingSource", publicName: "dbxFormLoadingSource", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
1702
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxFormLoadingSourceDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1703
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.4", type: DbxFormLoadingSourceDirective, isStandalone: true, selector: "[dbxFormLoadingSource]", inputs: { dbxFormLoadingSourceMode: { classPropertyName: "dbxFormLoadingSourceMode", publicName: "dbxFormLoadingSourceMode", isSignal: true, isRequired: false, transformFunction: null }, dbxFormLoadingSource: { classPropertyName: "dbxFormLoadingSource", publicName: "dbxFormLoadingSource", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
1685
1704
  }
1686
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxFormLoadingSourceDirective, decorators: [{
1705
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxFormLoadingSourceDirective, decorators: [{
1687
1706
  type: Directive,
1688
1707
  args: [{
1689
- selector: '[dbxFormLoadingSource]',
1690
- standalone: true
1708
+ selector: '[dbxFormLoadingSource]'
1691
1709
  }]
1692
1710
  }], ctorParameters: () => [], propDecorators: { dbxFormLoadingSourceMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "dbxFormLoadingSourceMode", required: false }] }], dbxFormLoadingSource: [{ type: i0.Input, args: [{ isSignal: true, alias: "dbxFormLoadingSource", required: false }] }] } });
1693
1711
 
@@ -1726,14 +1744,13 @@ class DbxFormValueChangeDirective {
1726
1744
  }
1727
1745
  }));
1728
1746
  }
1729
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxFormValueChangeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1730
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.11", type: DbxFormValueChangeDirective, isStandalone: true, selector: "[dbxFormValueChange]", outputs: { dbxFormValueChange: "dbxFormValueChange" }, ngImport: i0 });
1747
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxFormValueChangeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1748
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.4", type: DbxFormValueChangeDirective, isStandalone: true, selector: "[dbxFormValueChange]", outputs: { dbxFormValueChange: "dbxFormValueChange" }, ngImport: i0 });
1731
1749
  }
1732
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxFormValueChangeDirective, decorators: [{
1750
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxFormValueChangeDirective, decorators: [{
1733
1751
  type: Directive,
1734
1752
  args: [{
1735
- selector: '[dbxFormValueChange]',
1736
- standalone: true
1753
+ selector: '[dbxFormValueChange]'
1737
1754
  }]
1738
1755
  }], propDecorators: { dbxFormValueChange: [{ type: i0.Output, args: ["dbxFormValueChange"] }] } });
1739
1756
 
@@ -2315,10 +2332,10 @@ function dbxForgeFieldFunctionConfigure(...fns) {
2315
2332
  return fn;
2316
2333
  }
2317
2334
  /**
2318
- * Creates a {@link DbxForgeFieldFunctionConfigPropsBuilder} that automatically copies `hint` (or the deprecated `description`)
2335
+ * Creates a {@link DbxForgeFieldFunctionConfigPropsBuilder} that automatically copies `hint`
2319
2336
  * from the top-level field config into `props.hint`.
2320
2337
  *
2321
- * Historically hint/description lived at the base config level. In `@ng-forge/dynamic-forms` hints are
2338
+ * Historically the hint lived at the base config level. In `@ng-forge/dynamic-forms` hints are
2322
2339
  * expected under `props`, so this builder bridges that gap.
2323
2340
  *
2324
2341
  * @param makeProps - Optional delegate that produces additional props; its result is merged before the hint is applied.
@@ -2338,10 +2355,6 @@ function dbxForgeFieldFunctionConfigPropsWithHintBuilder(makeProps) {
2338
2355
  if ('hint' in input) {
2339
2356
  props.hint = input.hint;
2340
2357
  }
2341
- else if ('description' in input) {
2342
- // eslint-disable-next-line @typescript-eslint/no-deprecated -- intentionally accepts the deprecated `description` input as a fallback for `hint`
2343
- props.hint = input.description;
2344
- }
2345
2358
  return props;
2346
2359
  };
2347
2360
  }
@@ -2803,14 +2816,14 @@ function dbxForgeNameField(config = {}) {
2803
2816
  * ```
2804
2817
  */
2805
2818
  function dbxForgeEmailField(config = {}) {
2806
- const { key = 'email', label = 'Email Address', placeholder = 'you@example.com', required, readonly: isReadonly, description, autocomplete } = config;
2819
+ const { key = 'email', label = 'Email Address', placeholder = 'you@example.com', required, readonly: isReadonly, hint, autocomplete } = config;
2807
2820
  return dbxForgeTextField({
2808
2821
  key,
2809
2822
  label,
2810
2823
  placeholder,
2811
2824
  required,
2812
2825
  readonly: isReadonly,
2813
- description,
2826
+ hint,
2814
2827
  autocomplete,
2815
2828
  inputType: 'email'
2816
2829
  });
@@ -3037,8 +3050,7 @@ function isFlexFieldConfig(input) {
3037
3050
  * dbxForgeFlexLayout({ breakpoint: 'large', breakToColumn: true, relative: true, size: 1, fields: [...] })
3038
3051
  * ```
3039
3052
  */
3040
- function dbxForgeFlexLayout(input, legacyConfig) {
3041
- const config = Array.isArray(input) ? { ...legacyConfig, fields: input } : input;
3053
+ function dbxForgeFlexLayout(config) {
3042
3054
  const { breakpoint, relative, breakToColumn, size: defaultSize = 2, fields = [] } = config;
3043
3055
  const mappedFields = fields.map((entry) => {
3044
3056
  const { field, size = defaultSize } = isFlexFieldConfig(entry) ? entry : { field: entry };
@@ -3825,15 +3837,6 @@ const dbxForgeCheckboxField = dbxForgeFieldFunction({
3825
3837
  }
3826
3838
  })
3827
3839
  });
3828
- // COMPAT: Deprecated aliases
3829
- /**
3830
- * CSS class applied to forge fields when `styledBox` is enabled.
3831
- *
3832
- * @deprecated Boolean fields now use the Material-style form-field wrapper to render the
3833
- * outlined chrome and standard label/hint/error subscript. Retained as an export for any
3834
- * consumers still referencing the class name directly.
3835
- */
3836
- const FORGE_STYLED_BOX_CLASS = 'dbx-forge-styled-box';
3837
3840
 
3838
3841
  var DbxDateTimeFieldTimeMode;
3839
3842
  (function (DbxDateTimeFieldTimeMode) {
@@ -4598,14 +4601,11 @@ class DbxDateTimeFieldMenuPresetsService {
4598
4601
  set configurations(configurations) {
4599
4602
  this._configurations.next(configurations);
4600
4603
  }
4601
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxDateTimeFieldMenuPresetsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4602
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxDateTimeFieldMenuPresetsService, providedIn: 'root' });
4604
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxDateTimeFieldMenuPresetsService, deps: [], target: i0.ɵɵFactoryTarget.Service });
4605
+ static ɵprov = i0.ɵɵngDeclareService({ minVersion: "22.0.0", version: "22.1.4", ngImport: i0, type: DbxDateTimeFieldMenuPresetsService });
4603
4606
  }
4604
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxDateTimeFieldMenuPresetsService, decorators: [{
4605
- type: Injectable,
4606
- args: [{
4607
- providedIn: 'root'
4608
- }]
4607
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxDateTimeFieldMenuPresetsService, decorators: [{
4608
+ type: Service
4609
4609
  }] });
4610
4610
 
4611
4611
  // MARK: Time Output Constants
@@ -4626,29 +4626,46 @@ class DbxForgeDateTimeFieldComponent {
4626
4626
  presetsService = inject(DbxDateTimeFieldMenuPresetsService, { optional: true });
4627
4627
  fieldSignalContext = inject(FIELD_SIGNAL_CONTEXT);
4628
4628
  // MARK: ng-forge ValueFieldComponent inputs
4629
- field = input.required(...(ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []));
4630
- key = input.required(...(ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []));
4631
- label = input(...(ngDevMode ? [undefined, { debugName: "label" }] : /* istanbul ignore next */ []));
4632
- placeholder = input(...(ngDevMode ? [undefined, { debugName: "placeholder" }] : /* istanbul ignore next */ []));
4633
- className = input('', ...(ngDevMode ? [{ debugName: "className" }] : /* istanbul ignore next */ []));
4634
- tabIndex = input(...(ngDevMode ? [undefined, { debugName: "tabIndex" }] : /* istanbul ignore next */ []));
4635
- props = input(...(ngDevMode ? [undefined, { debugName: "props" }] : /* istanbul ignore next */ []));
4636
- meta = input(...(ngDevMode ? [undefined, { debugName: "meta" }] : /* istanbul ignore next */ []));
4637
- validationMessages = input(...(ngDevMode ? [undefined, { debugName: "validationMessages" }] : /* istanbul ignore next */ []));
4638
- defaultValidationMessages = input(...(ngDevMode ? [undefined, { debugName: "defaultValidationMessages" }] : /* istanbul ignore next */ []));
4629
+ field = input.required(/* @ts-ignore */
4630
+ ...(ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []));
4631
+ key = input.required(/* @ts-ignore */
4632
+ ...(ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []));
4633
+ label = input(/* @ts-ignore */
4634
+ ...(ngDevMode ? [undefined, { debugName: "label" }] : /* istanbul ignore next */ []));
4635
+ placeholder = input(/* @ts-ignore */
4636
+ ...(ngDevMode ? [undefined, { debugName: "placeholder" }] : /* istanbul ignore next */ []));
4637
+ className = input('', /* @ts-ignore */
4638
+ ...(ngDevMode ? [{ debugName: "className" }] : /* istanbul ignore next */ []));
4639
+ tabIndex = input(/* @ts-ignore */
4640
+ ...(ngDevMode ? [undefined, { debugName: "tabIndex" }] : /* istanbul ignore next */ []));
4641
+ props = input(/* @ts-ignore */
4642
+ ...(ngDevMode ? [undefined, { debugName: "props" }] : /* istanbul ignore next */ []));
4643
+ meta = input(/* @ts-ignore */
4644
+ ...(ngDevMode ? [undefined, { debugName: "meta" }] : /* istanbul ignore next */ []));
4645
+ validationMessages = input(/* @ts-ignore */
4646
+ ...(ngDevMode ? [undefined, { debugName: "validationMessages" }] : /* istanbul ignore next */ []));
4647
+ defaultValidationMessages = input(/* @ts-ignore */
4648
+ ...(ngDevMode ? [undefined, { debugName: "defaultValidationMessages" }] : /* istanbul ignore next */ []));
4639
4649
  // MARK: Form controls
4640
4650
  dateCtrl = new FormControl(null);
4641
4651
  timeCtrl = new FormControl(null, {
4642
4652
  validators: [Validators.pattern(/^(now)$|^(\d|(0\d)|(1\d)|(2[0-3]))(:)?([0-5]\d)?(\s)?([apAP][Mm])?(\\s)*$/)]
4643
4653
  });
4644
4654
  // MARK: Internal signals
4645
- _fullDay = signal(false, ...(ngDevMode ? [{ debugName: "_fullDay" }] : /* istanbul ignore next */ []));
4646
- _timezone = signal(undefined, ...(ngDevMode ? [{ debugName: "_timezone" }] : /* istanbul ignore next */ []));
4647
- _pickerConfig = signal(undefined, ...(ngDevMode ? [{ debugName: "_pickerConfig" }] : /* istanbul ignore next */ []));
4648
- _timeDate = signal(undefined, ...(ngDevMode ? [{ debugName: "_timeDate" }] : /* istanbul ignore next */ []));
4649
- _presetConfigs = signal([], ...(ngDevMode ? [{ debugName: "_presetConfigs" }] : /* istanbul ignore next */ []));
4650
- _isCleared = signal(false, ...(ngDevMode ? [{ debugName: "_isCleared" }] : /* istanbul ignore next */ []));
4651
- _isTimeInputFocused = signal(false, ...(ngDevMode ? [{ debugName: "_isTimeInputFocused" }] : /* istanbul ignore next */ []));
4655
+ _fullDay = signal(false, /* @ts-ignore */
4656
+ ...(ngDevMode ? [{ debugName: "_fullDay" }] : /* istanbul ignore next */ []));
4657
+ _timezone = signal(undefined, /* @ts-ignore */
4658
+ ...(ngDevMode ? [{ debugName: "_timezone" }] : /* istanbul ignore next */ []));
4659
+ _pickerConfig = signal(undefined, /* @ts-ignore */
4660
+ ...(ngDevMode ? [{ debugName: "_pickerConfig" }] : /* istanbul ignore next */ []));
4661
+ _timeDate = signal(undefined, /* @ts-ignore */
4662
+ ...(ngDevMode ? [{ debugName: "_timeDate" }] : /* istanbul ignore next */ []));
4663
+ _presetConfigs = signal([], /* @ts-ignore */
4664
+ ...(ngDevMode ? [{ debugName: "_presetConfigs" }] : /* istanbul ignore next */ []));
4665
+ _isCleared = signal(false, /* @ts-ignore */
4666
+ ...(ngDevMode ? [{ debugName: "_isCleared" }] : /* istanbul ignore next */ []));
4667
+ _isTimeInputFocused = signal(false, /* @ts-ignore */
4668
+ ...(ngDevMode ? [{ debugName: "_isTimeInputFocused" }] : /* istanbul ignore next */ []));
4652
4669
  // MARK: Subscription management
4653
4670
  _sub = cleanSubscription();
4654
4671
  _valueSub = cleanSubscription();
@@ -4676,7 +4693,8 @@ class DbxForgeDateTimeFieldComponent {
4676
4693
  fieldLabelSignal = computed(() => {
4677
4694
  const l = this.label();
4678
4695
  return typeof l === 'string' && l ? l : undefined;
4679
- }, ...(ngDevMode ? [{ debugName: "fieldLabelSignal" }] : /* istanbul ignore next */ []));
4696
+ }, /* @ts-ignore */
4697
+ ...(ngDevMode ? [{ debugName: "fieldLabelSignal" }] : /* istanbul ignore next */ []));
4680
4698
  isRequiredSignal = computed(() => {
4681
4699
  let required = false;
4682
4700
  try {
@@ -4687,18 +4705,24 @@ class DbxForgeDateTimeFieldComponent {
4687
4705
  required = false;
4688
4706
  }
4689
4707
  return required;
4690
- }, ...(ngDevMode ? [{ debugName: "isRequiredSignal" }] : /* istanbul ignore next */ []));
4691
- isDateRequiredSignal = computed(() => this.isRequiredSignal(), ...(ngDevMode ? [{ debugName: "isDateRequiredSignal" }] : /* istanbul ignore next */ []));
4708
+ }, /* @ts-ignore */
4709
+ ...(ngDevMode ? [{ debugName: "isRequiredSignal" }] : /* istanbul ignore next */ []));
4710
+ isDateRequiredSignal = computed(() => this.isRequiredSignal(), /* @ts-ignore */
4711
+ ...(ngDevMode ? [{ debugName: "isDateRequiredSignal" }] : /* istanbul ignore next */ []));
4692
4712
  isTimeRequiredSignal = computed(() => {
4693
4713
  const timeMode = this.timeModeSignal();
4694
4714
  return this.isRequiredSignal() && timeMode === DbxDateTimeFieldTimeMode.REQUIRED;
4695
- }, ...(ngDevMode ? [{ debugName: "isTimeRequiredSignal" }] : /* istanbul ignore next */ []));
4715
+ }, /* @ts-ignore */
4716
+ ...(ngDevMode ? [{ debugName: "isTimeRequiredSignal" }] : /* istanbul ignore next */ []));
4696
4717
  descriptionSignal = computed(() => {
4697
4718
  const h = this.props()?.hint;
4698
4719
  return typeof h === 'string' ? h : undefined;
4699
- }, ...(ngDevMode ? [{ debugName: "descriptionSignal" }] : /* istanbul ignore next */ []));
4700
- appearanceSignal = computed(() => this.props()?.appearance ?? this.materialConfig?.appearance ?? 'outline', ...(ngDevMode ? [{ debugName: "appearanceSignal" }] : /* istanbul ignore next */ []));
4701
- valueModeSignal = computed(() => this.props()?.valueMode ?? DbxDateTimeValueMode.DATE, ...(ngDevMode ? [{ debugName: "valueModeSignal" }] : /* istanbul ignore next */ []));
4720
+ }, /* @ts-ignore */
4721
+ ...(ngDevMode ? [{ debugName: "descriptionSignal" }] : /* istanbul ignore next */ []));
4722
+ appearanceSignal = computed(() => this.props()?.appearance ?? this.materialConfig?.appearance ?? 'outline', /* @ts-ignore */
4723
+ ...(ngDevMode ? [{ debugName: "appearanceSignal" }] : /* istanbul ignore next */ []));
4724
+ valueModeSignal = computed(() => this.props()?.valueMode ?? DbxDateTimeValueMode.DATE, /* @ts-ignore */
4725
+ ...(ngDevMode ? [{ debugName: "valueModeSignal" }] : /* istanbul ignore next */ []));
4702
4726
  timeModeSignal = computed(() => {
4703
4727
  const p = this.props();
4704
4728
  if (this.valueModeSignal() === DbxDateTimeValueMode.DAY_STRING)
@@ -4708,43 +4732,64 @@ class DbxForgeDateTimeFieldComponent {
4708
4732
  if (p?.timeMode)
4709
4733
  return p.timeMode;
4710
4734
  return DbxDateTimeFieldTimeMode.REQUIRED;
4711
- }, ...(ngDevMode ? [{ debugName: "timeModeSignal" }] : /* istanbul ignore next */ []));
4735
+ }, /* @ts-ignore */
4736
+ ...(ngDevMode ? [{ debugName: "timeModeSignal" }] : /* istanbul ignore next */ []));
4712
4737
  isTimeOnlySignal = computed(() => {
4713
4738
  const props = this.props();
4714
4739
  return this.valueModeSignal() === DbxDateTimeValueMode.MINUTE_OF_DAY || props?.timeOnly === true;
4715
- }, ...(ngDevMode ? [{ debugName: "isTimeOnlySignal" }] : /* istanbul ignore next */ []));
4716
- isDateOnlySignal = computed(() => this.timeModeSignal() === DbxDateTimeFieldTimeMode.NONE, ...(ngDevMode ? [{ debugName: "isDateOnlySignal" }] : /* istanbul ignore next */ []));
4717
- isFullDaySignal = computed(() => this._fullDay(), ...(ngDevMode ? [{ debugName: "isFullDaySignal" }] : /* istanbul ignore next */ []));
4718
- showDateInputSignal = computed(() => !this.isTimeOnlySignal(), ...(ngDevMode ? [{ debugName: "showDateInputSignal" }] : /* istanbul ignore next */ []));
4740
+ }, /* @ts-ignore */
4741
+ ...(ngDevMode ? [{ debugName: "isTimeOnlySignal" }] : /* istanbul ignore next */ []));
4742
+ isDateOnlySignal = computed(() => this.timeModeSignal() === DbxDateTimeFieldTimeMode.NONE, /* @ts-ignore */
4743
+ ...(ngDevMode ? [{ debugName: "isDateOnlySignal" }] : /* istanbul ignore next */ []));
4744
+ isFullDaySignal = computed(() => this._fullDay(), /* @ts-ignore */
4745
+ ...(ngDevMode ? [{ debugName: "isFullDaySignal" }] : /* istanbul ignore next */ []));
4746
+ showDateInputSignal = computed(() => !this.isTimeOnlySignal(), /* @ts-ignore */
4747
+ ...(ngDevMode ? [{ debugName: "showDateInputSignal" }] : /* istanbul ignore next */ []));
4719
4748
  showTimeInputSignal = computed(() => {
4720
4749
  const timeMode = this.timeModeSignal();
4721
4750
  return !this._fullDay() && timeMode !== DbxDateTimeFieldTimeMode.NONE;
4722
- }, ...(ngDevMode ? [{ debugName: "showTimeInputSignal" }] : /* istanbul ignore next */ []));
4751
+ }, /* @ts-ignore */
4752
+ ...(ngDevMode ? [{ debugName: "showTimeInputSignal" }] : /* istanbul ignore next */ []));
4723
4753
  showAddTimeButtonSignal = computed(() => {
4724
4754
  const timeMode = this.timeModeSignal();
4725
4755
  return !this.showTimeInputSignal() && timeMode === DbxDateTimeFieldTimeMode.OPTIONAL;
4726
- }, ...(ngDevMode ? [{ debugName: "showAddTimeButtonSignal" }] : /* istanbul ignore next */ []));
4727
- dateLabelSignal = computed(() => this.props()?.dateLabel ?? 'Date', ...(ngDevMode ? [{ debugName: "dateLabelSignal" }] : /* istanbul ignore next */ []));
4728
- timeLabelSignal = computed(() => this.props()?.timeLabel ?? 'Time', ...(ngDevMode ? [{ debugName: "timeLabelSignal" }] : /* istanbul ignore next */ []));
4729
- allDayLabelSignal = computed(() => this.props()?.allDayLabel ?? 'All Day', ...(ngDevMode ? [{ debugName: "allDayLabelSignal" }] : /* istanbul ignore next */ []));
4730
- atTimeLabelSignal = computed(() => this.props()?.atTimeLabel ?? 'At', ...(ngDevMode ? [{ debugName: "atTimeLabelSignal" }] : /* istanbul ignore next */ []));
4731
- hideDateHintSignal = computed(() => this.props()?.hideDateHint ?? false, ...(ngDevMode ? [{ debugName: "hideDateHintSignal" }] : /* istanbul ignore next */ []));
4732
- hideDatePickerSignal = computed(() => this.props()?.hideDatePicker ?? false, ...(ngDevMode ? [{ debugName: "hideDatePickerSignal" }] : /* istanbul ignore next */ []));
4733
- showTimezoneSignal = computed(() => this.props()?.showTimezone ?? true, ...(ngDevMode ? [{ debugName: "showTimezoneSignal" }] : /* istanbul ignore next */ []));
4734
- showClearButtonSignal = computed(() => this.props()?.showClearButton !== false, ...(ngDevMode ? [{ debugName: "showClearButtonSignal" }] : /* istanbul ignore next */ []));
4735
- minuteStepSignal = computed(() => this.props()?.minuteStep ?? 5, ...(ngDevMode ? [{ debugName: "minuteStepSignal" }] : /* istanbul ignore next */ []));
4736
- alwaysShowDateInputSignal = computed(() => this.props()?.alwaysShowDateInput ?? true, ...(ngDevMode ? [{ debugName: "alwaysShowDateInputSignal" }] : /* istanbul ignore next */ []));
4756
+ }, /* @ts-ignore */
4757
+ ...(ngDevMode ? [{ debugName: "showAddTimeButtonSignal" }] : /* istanbul ignore next */ []));
4758
+ dateLabelSignal = computed(() => this.props()?.dateLabel ?? 'Date', /* @ts-ignore */
4759
+ ...(ngDevMode ? [{ debugName: "dateLabelSignal" }] : /* istanbul ignore next */ []));
4760
+ timeLabelSignal = computed(() => this.props()?.timeLabel ?? 'Time', /* @ts-ignore */
4761
+ ...(ngDevMode ? [{ debugName: "timeLabelSignal" }] : /* istanbul ignore next */ []));
4762
+ allDayLabelSignal = computed(() => this.props()?.allDayLabel ?? 'All Day', /* @ts-ignore */
4763
+ ...(ngDevMode ? [{ debugName: "allDayLabelSignal" }] : /* istanbul ignore next */ []));
4764
+ atTimeLabelSignal = computed(() => this.props()?.atTimeLabel ?? 'At', /* @ts-ignore */
4765
+ ...(ngDevMode ? [{ debugName: "atTimeLabelSignal" }] : /* istanbul ignore next */ []));
4766
+ hideDateHintSignal = computed(() => this.props()?.hideDateHint ?? false, /* @ts-ignore */
4767
+ ...(ngDevMode ? [{ debugName: "hideDateHintSignal" }] : /* istanbul ignore next */ []));
4768
+ hideDatePickerSignal = computed(() => this.props()?.hideDatePicker ?? false, /* @ts-ignore */
4769
+ ...(ngDevMode ? [{ debugName: "hideDatePickerSignal" }] : /* istanbul ignore next */ []));
4770
+ showTimezoneSignal = computed(() => this.props()?.showTimezone ?? true, /* @ts-ignore */
4771
+ ...(ngDevMode ? [{ debugName: "showTimezoneSignal" }] : /* istanbul ignore next */ []));
4772
+ showClearButtonSignal = computed(() => this.props()?.showClearButton !== false, /* @ts-ignore */
4773
+ ...(ngDevMode ? [{ debugName: "showClearButtonSignal" }] : /* istanbul ignore next */ []));
4774
+ minuteStepSignal = computed(() => this.props()?.minuteStep ?? 5, /* @ts-ignore */
4775
+ ...(ngDevMode ? [{ debugName: "minuteStepSignal" }] : /* istanbul ignore next */ []));
4776
+ alwaysShowDateInputSignal = computed(() => this.props()?.alwaysShowDateInput ?? true, /* @ts-ignore */
4777
+ ...(ngDevMode ? [{ debugName: "alwaysShowDateInputSignal" }] : /* istanbul ignore next */ []));
4737
4778
  autofillDateWhenTimeIsPickedSignal = computed(() => {
4738
4779
  const alwaysShowDateInput = this.alwaysShowDateInputSignal();
4739
4780
  return this.props()?.autofillDateWhenTimeIsPicked ?? alwaysShowDateInput === false;
4740
- }, ...(ngDevMode ? [{ debugName: "autofillDateWhenTimeIsPickedSignal" }] : /* istanbul ignore next */ []));
4741
- openOnInputClickSignal = computed(() => this.props()?.openOnInputClick ?? 'picker', ...(ngDevMode ? [{ debugName: "openOnInputClickSignal" }] : /* istanbul ignore next */ []));
4781
+ }, /* @ts-ignore */
4782
+ ...(ngDevMode ? [{ debugName: "autofillDateWhenTimeIsPickedSignal" }] : /* istanbul ignore next */ []));
4783
+ openOnInputClickSignal = computed(() => this.props()?.openOnInputClick ?? 'picker', /* @ts-ignore */
4784
+ ...(ngDevMode ? [{ debugName: "openOnInputClickSignal" }] : /* istanbul ignore next */ []));
4742
4785
  // MARK: Timezone signals
4743
- resolvedTimezoneSignal = computed(() => this._timezone() ?? guessCurrentTimezone(), ...(ngDevMode ? [{ debugName: "resolvedTimezoneSignal" }] : /* istanbul ignore next */ []));
4786
+ resolvedTimezoneSignal = computed(() => this._timezone() ?? guessCurrentTimezone(), /* @ts-ignore */
4787
+ ...(ngDevMode ? [{ debugName: "resolvedTimezoneSignal" }] : /* istanbul ignore next */ []));
4744
4788
  timezoneInstanceSignal = computed(() => {
4745
4789
  const tz = this.resolvedTimezoneSignal();
4746
4790
  return tz ? dateTimezoneUtcNormal({ timezone: tz }) : undefined;
4747
- }, ...(ngDevMode ? [{ debugName: "timezoneInstanceSignal" }] : /* istanbul ignore next */ []));
4791
+ }, /* @ts-ignore */
4792
+ ...(ngDevMode ? [{ debugName: "timezoneInstanceSignal" }] : /* istanbul ignore next */ []));
4748
4793
  // MARK: Field value reading
4749
4794
  // FieldTree<unknown> is callable — calling it returns FieldState which has .value, .disabled, etc.
4750
4795
  // We call field()() to first unwrap the InputSignal (→ FieldTree), then call the FieldTree (→ FieldState).
@@ -4758,7 +4803,8 @@ class DbxForgeDateTimeFieldComponent {
4758
4803
  // Field tree not yet initialized — fall through to undefined
4759
4804
  }
4760
4805
  return result;
4761
- }, ...(ngDevMode ? [{ debugName: "fieldValueSignal" }] : /* istanbul ignore next */ []));
4806
+ }, /* @ts-ignore */
4807
+ ...(ngDevMode ? [{ debugName: "fieldValueSignal" }] : /* istanbul ignore next */ []));
4762
4808
  isDisabled = dbxForgeFieldDisabled();
4763
4809
  // MARK: Observable pipelines
4764
4810
  // Parse field value to system timezone Date
@@ -4925,7 +4971,8 @@ class DbxForgeDateTimeFieldComponent {
4925
4971
  }
4926
4972
  }
4927
4973
  return result;
4928
- }, ...(ngDevMode ? [{ debugName: "dateValueSignal" }] : /* istanbul ignore next */ []));
4974
+ }, /* @ts-ignore */
4975
+ ...(ngDevMode ? [{ debugName: "dateValueSignal" }] : /* istanbul ignore next */ []));
4929
4976
  displayValueSignal = toSignal(this.displayValue$);
4930
4977
  pickerFilterSignal = toSignal(this.pickerFilter$, { initialValue: () => true });
4931
4978
  dateInputMinSignal = toSignal(this.dateInputMin$, { initialValue: null });
@@ -4944,12 +4991,17 @@ class DbxForgeDateTimeFieldComponent {
4944
4991
  const isOptional = this.timeModeSignal() === DbxDateTimeFieldTimeMode.OPTIONAL;
4945
4992
  const hasPresets = Boolean(this.presetsSignal()?.length);
4946
4993
  return disabled || (!isOptional && !hasPresets);
4947
- }, ...(ngDevMode ? [{ debugName: "isTimeMenuDisabledSignal" }] : /* istanbul ignore next */ []));
4994
+ }, /* @ts-ignore */
4995
+ ...(ngDevMode ? [{ debugName: "isTimeMenuDisabledSignal" }] : /* istanbul ignore next */ []));
4948
4996
  // ARIA
4949
- hintIdSignal = computed(() => `${this.key()}-hint`, ...(ngDevMode ? [{ debugName: "hintIdSignal" }] : /* istanbul ignore next */ []));
4950
- errorIdSignal = computed(() => `${this.key()}-error`, ...(ngDevMode ? [{ debugName: "errorIdSignal" }] : /* istanbul ignore next */ []));
4951
- ariaInvalidSignal = computed(() => (this.hasErrorSignal() ? 'true' : null), ...(ngDevMode ? [{ debugName: "ariaInvalidSignal" }] : /* istanbul ignore next */ []));
4952
- ariaRequiredSignal = computed(() => (this.field()().required() ? 'true' : null), ...(ngDevMode ? [{ debugName: "ariaRequiredSignal" }] : /* istanbul ignore next */ []));
4997
+ hintIdSignal = computed(() => `${this.key()}-hint`, /* @ts-ignore */
4998
+ ...(ngDevMode ? [{ debugName: "hintIdSignal" }] : /* istanbul ignore next */ []));
4999
+ errorIdSignal = computed(() => `${this.key()}-error`, /* @ts-ignore */
5000
+ ...(ngDevMode ? [{ debugName: "errorIdSignal" }] : /* istanbul ignore next */ []));
5001
+ ariaInvalidSignal = computed(() => (this.hasErrorSignal() ? 'true' : null), /* @ts-ignore */
5002
+ ...(ngDevMode ? [{ debugName: "ariaInvalidSignal" }] : /* istanbul ignore next */ []));
5003
+ ariaRequiredSignal = computed(() => (this.field()().required() ? 'true' : null), /* @ts-ignore */
5004
+ ...(ngDevMode ? [{ debugName: "ariaRequiredSignal" }] : /* istanbul ignore next */ []));
4953
5005
  ariaDescribedBySignal = computed(() => {
4954
5006
  const errorId = this.errorIdSignal();
4955
5007
  const props = this.props();
@@ -4962,7 +5014,8 @@ class DbxForgeDateTimeFieldComponent {
4962
5014
  result = hintId;
4963
5015
  }
4964
5016
  return result;
4965
- }, ...(ngDevMode ? [{ debugName: "ariaDescribedBySignal" }] : /* istanbul ignore next */ []));
5017
+ }, /* @ts-ignore */
5018
+ ...(ngDevMode ? [{ debugName: "ariaDescribedBySignal" }] : /* istanbul ignore next */ []));
4966
5019
  constructor() {
4967
5020
  setupMetaTracking(this.elementRef, this.meta, { selector: 'input' });
4968
5021
  // Initialize fullDay from timeMode
@@ -5279,14 +5332,14 @@ class DbxForgeDateTimeFieldComponent {
5279
5332
  // Silently handle if sibling field is not writable
5280
5333
  }
5281
5334
  }
5282
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeDateTimeFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5283
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.11", type: DbxForgeDateTimeFieldComponent, isStandalone: true, selector: "dbx-forge-datetime-field", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, key: { classPropertyName: "key", publicName: "key", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: true, isRequired: false, transformFunction: null }, props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null }, meta: { classPropertyName: "meta", publicName: "meta", isSignal: true, isRequired: false, transformFunction: null }, validationMessages: { classPropertyName: "validationMessages", publicName: "validationMessages", isSignal: true, isRequired: false, transformFunction: null }, defaultValidationMessages: { classPropertyName: "defaultValidationMessages", publicName: "defaultValidationMessages", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "className()" } }, ngImport: i0, template: "<div class=\"dbx-forge-datetime-field-wrapper\">\n <!-- Field Label -->\n @if (fieldLabelSignal()) {\n <span class=\"dbx-forge-field-label\">\n {{ fieldLabelSignal() }}\n @if (isRequiredSignal()) {\n <span class=\"dbx-forge-required-marker\">*</span>\n }\n </span>\n }\n\n <!-- Date + Time row -->\n <div class=\"dbx-forge-datetime-field dbx-forge-datetime-inputs\">\n <!-- Date Input -->\n @if (resolvedShowDateInputSignal()) {\n <div class=\"dbx-forge-datetime-col\" [class.dbx-forge-datetime-col-full]=\"isDateOnlySignal()\">\n <mat-form-field [appearance]=\"appearanceSignal()\" subscriptSizing=\"dynamic\" class=\"dbx-forge-datetime-col-field\">\n <mat-label>{{ dateLabelSignal() }}</mat-label>\n <input matInput [disabled]=\"isDisabledSignal()\" [required]=\"isDateRequiredSignal()\" [min]=\"dateInputMinSignal()\" [max]=\"dateInputMaxSignal()\" [matDatepicker]=\"picker\" [matDatepickerFilter]=\"pickerFilterSignal()\" (dateChange)=\"onDatePicked($event)\" [value]=\"dateValueSignal()\" (click)=\"onDateInputClick(picker)\" (keydown)=\"onDateKeydown($event)\" [attr.aria-invalid]=\"ariaInvalidSignal()\" [attr.aria-required]=\"ariaRequiredSignal()\" [attr.aria-describedby]=\"ariaDescribedBySignal()\" />\n @if (!hideDatePickerSignal()) {\n <button matPrefix mat-icon-button (click)=\"picker.open()\" [disabled]=\"isDisabledSignal()\" aria-label=\"Open date picker\">\n <mat-icon aria-hidden=\"true\">calendar_today</mat-icon>\n </button>\n }\n <mat-datepicker #picker></mat-datepicker>\n @if (resolvedShowClearButtonSignal()) {\n <button matSuffix mat-icon-button aria-label=\"Clear date and time\" [disabled]=\"isDisabledSignal()\" (click)=\"clearValue()\">\n <mat-icon aria-hidden=\"true\">clear</mat-icon>\n </button>\n }\n @if (!showTimeInputSignal()) {\n <span matTextSuffix>\n <ng-container [ngTemplateOutlet]=\"tzSuffix\"></ng-container>\n </span>\n }\n </mat-form-field>\n </div>\n }\n\n <!-- Time Input / Add Time Button -->\n @if (showTimeInputSignal() || showAddTimeButtonSignal()) {\n <div class=\"dbx-forge-datetime-col\">\n @if (showTimeInputSignal()) {\n <mat-menu #timemenu=\"matMenu\">\n @if (timeModeSignal() === 'optional') {\n <button mat-menu-item (click)=\"removeTime()\">\n <span>Remove Time</span>\n </button>\n <mat-divider></mat-divider>\n }\n @for (preset of presetsSignal(); track $index) {\n <button mat-menu-item (click)=\"selectPreset(preset)\">{{ preset.label | getValue }}</button>\n }\n </mat-menu>\n <mat-form-field [appearance]=\"appearanceSignal()\" subscriptSizing=\"dynamic\" class=\"dbx-forge-datetime-col-field\">\n <mat-label>{{ timeLabelSignal() }}</mat-label>\n <input matInput [errorStateMatcher]=\"timeErrorStateMatcher\" [required]=\"isTimeRequiredSignal()\" [formControl]=\"timeCtrl\" (focus)=\"onTimeFocus()\" (focusout)=\"onTimeBlur()\" (keydown)=\"onTimeKeydown($event)\" />\n <button matPrefix mat-icon-button [matMenuTriggerFor]=\"timemenu\" aria-label=\"Open time presets\" [disabled]=\"isTimeMenuDisabledSignal()\">\n <mat-icon aria-hidden=\"true\">timer</mat-icon>\n </button>\n <span matTextSuffix>\n <ng-container [ngTemplateOutlet]=\"tzSuffix\"></ng-container>\n </span>\n @if (timeCtrl.hasError('pattern')) {\n <mat-error>The input time is not recognizable.</mat-error>\n }\n </mat-form-field>\n }\n @if (showAddTimeButtonSignal()) {\n <div class=\"dbx-forge-add-time-wrapper\">\n <button mat-button (click)=\"addTime()\">\n <mat-icon>timer</mat-icon>\n Add Time\n </button>\n </div>\n }\n </div>\n }\n </div>\n\n <!-- Date Hint / Error -->\n @if (hasErrorSignal()) {\n @if (currentErrorMessageSignal()) {\n <mat-error class=\"dbx-forge-datetime-error\" [id]=\"errorIdSignal()\">{{ currentErrorMessageSignal() }}</mat-error>\n }\n } @else if (!hideDateHintSignal()) {\n <div class=\"dbx-forge-datetime-hint\" [id]=\"hintIdSignal()\">\n @if (!hasValueSignal()) {\n <span class=\"dbx-small dbx-hint\">No date/time set</span>\n } @else if (displayValueSignal(); as dv) {\n @if (fullDaySignal()) {\n <small>\n <b class=\"dbx-ok\">{{ allDayLabelSignal() }}</b>\n {{ dv | date: 'fullDate' }} {{ tzAbbreviationSignal() }} ({{ dv | dateDistance }})\n </small>\n } @else {\n <small>\n <b class=\"dbx-ok\">{{ atTimeLabelSignal() }}</b>\n {{ dv | date: 'medium' }} {{ tzAbbreviationSignal() }} ({{ dv | timeDistance }})\n </small>\n }\n }\n </div>\n }\n\n <!-- Description -->\n @if (descriptionSignal()) {\n <p class=\"dbx-hint dbx-forge-datetime-desc\">{{ descriptionSignal() }}</p>\n }\n</div>\n\n<!-- Timezone Suffix Template -->\n<ng-template #tzSuffix>\n @if (showTimezoneSignal()) {\n <span class=\"dbx-forge-datetime-timezone dbx-faint\">{{ tzAbbreviationSignal() }}</span>\n }\n</ng-template>\n", styles: [".dbx-forge-datetime-field-wrapper{width:100%}.dbx-forge-datetime-inputs{display:flex;flex-wrap:wrap;gap:6px;align-items:flex-start;width:100%}.dbx-forge-datetime-col{flex:1 1 0%;min-width:180px}.dbx-forge-datetime-col-full{flex:1 1 100%}.dbx-forge-datetime-col-field{width:100%}.dbx-forge-field-label{font-weight:500}.dbx-forge-required-marker{color:var(--mat-sys-error, red)}.dbx-forge-datetime-desc{font-size:12px;margin-top:0}.dbx-forge-add-time-wrapper{display:flex;align-items:center;min-height:56px}.dbx-forge-datetime-timezone{padding:0 6px;pointer-events:none}.dbx-forge-datetime-hint,.dbx-forge-datetime-error{padding:0 2px}@media(max-width:599px){.dbx-forge-datetime-inputs{flex-direction:column;align-items:stretch}.dbx-forge-datetime-col{flex:1 1 auto;width:100%}}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i1$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i1$2.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i1$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i3.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i3.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i6.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i6.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i7.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: DatePipe, name: "date" }, { kind: "pipe", type: DateDistancePipe, name: "dateDistance" }, { kind: "pipe", type: TimeDistancePipe, name: "timeDistance" }, { kind: "pipe", type: GetValuePipe, name: "getValue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
5335
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeDateTimeFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5336
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: DbxForgeDateTimeFieldComponent, isStandalone: true, selector: "dbx-forge-datetime-field", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, key: { classPropertyName: "key", publicName: "key", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: true, isRequired: false, transformFunction: null }, props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null }, meta: { classPropertyName: "meta", publicName: "meta", isSignal: true, isRequired: false, transformFunction: null }, validationMessages: { classPropertyName: "validationMessages", publicName: "validationMessages", isSignal: true, isRequired: false, transformFunction: null }, defaultValidationMessages: { classPropertyName: "defaultValidationMessages", publicName: "defaultValidationMessages", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "className()" } }, ngImport: i0, template: "<div class=\"dbx-forge-datetime-field-wrapper\">\n <!-- Field Label -->\n @if (fieldLabelSignal()) {\n <span class=\"dbx-forge-field-label\">\n {{ fieldLabelSignal() }}\n @if (isRequiredSignal()) {\n <span class=\"dbx-forge-required-marker\">*</span>\n }\n </span>\n }\n\n <!-- Date + Time row -->\n <div class=\"dbx-forge-datetime-field dbx-forge-datetime-inputs\">\n <!-- Date Input -->\n @if (resolvedShowDateInputSignal()) {\n <div class=\"dbx-forge-datetime-col\" [class.dbx-forge-datetime-col-full]=\"isDateOnlySignal()\">\n <mat-form-field [appearance]=\"appearanceSignal()\" subscriptSizing=\"dynamic\" class=\"dbx-forge-datetime-col-field\">\n <mat-label>{{ dateLabelSignal() }}</mat-label>\n <input\n matInput\n [disabled]=\"isDisabledSignal()\"\n [required]=\"isDateRequiredSignal()\"\n [min]=\"dateInputMinSignal()\"\n [max]=\"dateInputMaxSignal()\"\n [matDatepicker]=\"picker\"\n [matDatepickerFilter]=\"pickerFilterSignal()\"\n (dateChange)=\"onDatePicked($event)\"\n [value]=\"dateValueSignal()\"\n (click)=\"onDateInputClick(picker)\"\n (keydown)=\"onDateKeydown($event)\"\n [attr.aria-invalid]=\"ariaInvalidSignal()\"\n [attr.aria-required]=\"ariaRequiredSignal()\"\n [attr.aria-describedby]=\"ariaDescribedBySignal()\" />\n @if (!hideDatePickerSignal()) {\n <button matPrefix mat-icon-button (click)=\"picker.open()\" [disabled]=\"isDisabledSignal()\" aria-label=\"Open date picker\">\n <mat-icon aria-hidden=\"true\">calendar_today</mat-icon>\n </button>\n }\n <mat-datepicker #picker></mat-datepicker>\n @if (resolvedShowClearButtonSignal()) {\n <button matSuffix mat-icon-button aria-label=\"Clear date and time\" [disabled]=\"isDisabledSignal()\" (click)=\"clearValue()\">\n <mat-icon aria-hidden=\"true\">clear</mat-icon>\n </button>\n }\n @if (!showTimeInputSignal()) {\n <span matTextSuffix>\n <ng-container [ngTemplateOutlet]=\"tzSuffix\"></ng-container>\n </span>\n }\n </mat-form-field>\n </div>\n }\n\n <!-- Time Input / Add Time Button -->\n @if (showTimeInputSignal() || showAddTimeButtonSignal()) {\n <div class=\"dbx-forge-datetime-col\">\n @if (showTimeInputSignal()) {\n <mat-menu #timemenu=\"matMenu\">\n @if (timeModeSignal() === 'optional') {\n <button mat-menu-item (click)=\"removeTime()\">\n <span>Remove Time</span>\n </button>\n <mat-divider></mat-divider>\n }\n @for (preset of presetsSignal(); track $index) {\n <button mat-menu-item (click)=\"selectPreset(preset)\">{{ preset.label | getValue }}</button>\n }\n </mat-menu>\n <mat-form-field [appearance]=\"appearanceSignal()\" subscriptSizing=\"dynamic\" class=\"dbx-forge-datetime-col-field\">\n <mat-label>{{ timeLabelSignal() }}</mat-label>\n <input matInput [errorStateMatcher]=\"timeErrorStateMatcher\" [required]=\"isTimeRequiredSignal()\" [formControl]=\"timeCtrl\" (focus)=\"onTimeFocus()\" (focusout)=\"onTimeBlur()\" (keydown)=\"onTimeKeydown($event)\" />\n <button matPrefix mat-icon-button [matMenuTriggerFor]=\"timemenu\" aria-label=\"Open time presets\" [disabled]=\"isTimeMenuDisabledSignal()\">\n <mat-icon aria-hidden=\"true\">timer</mat-icon>\n </button>\n <span matTextSuffix>\n <ng-container [ngTemplateOutlet]=\"tzSuffix\"></ng-container>\n </span>\n @if (timeCtrl.hasError('pattern')) {\n <mat-error>The input time is not recognizable.</mat-error>\n }\n </mat-form-field>\n }\n @if (showAddTimeButtonSignal()) {\n <div class=\"dbx-forge-add-time-wrapper\">\n <button mat-button (click)=\"addTime()\">\n <mat-icon>timer</mat-icon>\n Add Time\n </button>\n </div>\n }\n </div>\n }\n </div>\n\n <!-- Date Hint / Error -->\n @if (hasErrorSignal()) {\n @if (currentErrorMessageSignal()) {\n <mat-error class=\"dbx-forge-datetime-error\" [id]=\"errorIdSignal()\">{{ currentErrorMessageSignal() }}</mat-error>\n }\n } @else if (!hideDateHintSignal()) {\n <div class=\"dbx-forge-datetime-hint\" [id]=\"hintIdSignal()\">\n @if (!hasValueSignal()) {\n <span class=\"dbx-small dbx-hint\">No date/time set</span>\n } @else if (displayValueSignal(); as dv) {\n @if (fullDaySignal()) {\n <small>\n <b class=\"dbx-ok\">{{ allDayLabelSignal() }}</b>\n {{ dv | date: 'fullDate' }} {{ tzAbbreviationSignal() }} ({{ dv | dateDistance }})\n </small>\n } @else {\n <small>\n <b class=\"dbx-ok\">{{ atTimeLabelSignal() }}</b>\n {{ dv | date: 'medium' }} {{ tzAbbreviationSignal() }} ({{ dv | timeDistance }})\n </small>\n }\n }\n </div>\n }\n\n <!-- Description -->\n @if (descriptionSignal()) {\n <p class=\"dbx-hint dbx-forge-datetime-desc\">{{ descriptionSignal() }}</p>\n }\n</div>\n\n<!-- Timezone Suffix Template -->\n<ng-template #tzSuffix>\n @if (showTimezoneSignal()) {\n <span class=\"dbx-forge-datetime-timezone dbx-faint\">{{ tzAbbreviationSignal() }}</span>\n }\n</ng-template>\n", styles: [".dbx-forge-datetime-field-wrapper{width:100%}.dbx-forge-datetime-inputs{display:flex;flex-wrap:wrap;gap:6px;align-items:flex-start;width:100%}.dbx-forge-datetime-col{flex:1 1 0%;min-width:180px}.dbx-forge-datetime-col-full{flex:1 1 100%}.dbx-forge-datetime-col-field{width:100%}.dbx-forge-field-label{font-weight:500}.dbx-forge-required-marker{color:var(--mat-sys-error, red)}.dbx-forge-datetime-desc{font-size:12px;margin-top:0}.dbx-forge-add-time-wrapper{display:flex;align-items:center;min-height:56px}.dbx-forge-datetime-timezone{padding:0 6px;pointer-events:none}.dbx-forge-datetime-hint,.dbx-forge-datetime-error{padding:0 2px}@media(max-width:599px){.dbx-forge-datetime-inputs{flex-direction:column;align-items:stretch}.dbx-forge-datetime-col{flex:1 1 auto;width:100%}}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i1$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i1$2.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i1$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i3.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i3.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i6.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i6.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i7.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$4.DefaultValueAccessor, selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: DatePipe, name: "date" }, { kind: "pipe", type: DateDistancePipe, name: "dateDistance" }, { kind: "pipe", type: TimeDistancePipe, name: "timeDistance" }, { kind: "pipe", type: GetValuePipe, name: "getValue" }] });
5284
5337
  }
5285
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeDateTimeFieldComponent, decorators: [{
5338
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeDateTimeFieldComponent, decorators: [{
5286
5339
  type: Component,
5287
- args: [{ selector: 'dbx-forge-datetime-field', standalone: true, imports: [MatFormFieldModule, MatInputModule, MatDatepickerModule, MatButtonModule, MatIconModule, MatMenuModule, MatDividerModule, ReactiveFormsModule, FormsModule, NgTemplateOutlet, DatePipe, DateDistancePipe, TimeDistancePipe, GetValuePipe], changeDetection: ChangeDetectionStrategy.OnPush, host: {
5340
+ args: [{ selector: 'dbx-forge-datetime-field', imports: [MatFormFieldModule, MatInputModule, MatDatepickerModule, MatButtonModule, MatIconModule, MatMenuModule, MatDividerModule, ReactiveFormsModule, FormsModule, NgTemplateOutlet, DatePipe, DateDistancePipe, TimeDistancePipe, GetValuePipe], host: {
5288
5341
  '[class]': 'className()'
5289
- }, template: "<div class=\"dbx-forge-datetime-field-wrapper\">\n <!-- Field Label -->\n @if (fieldLabelSignal()) {\n <span class=\"dbx-forge-field-label\">\n {{ fieldLabelSignal() }}\n @if (isRequiredSignal()) {\n <span class=\"dbx-forge-required-marker\">*</span>\n }\n </span>\n }\n\n <!-- Date + Time row -->\n <div class=\"dbx-forge-datetime-field dbx-forge-datetime-inputs\">\n <!-- Date Input -->\n @if (resolvedShowDateInputSignal()) {\n <div class=\"dbx-forge-datetime-col\" [class.dbx-forge-datetime-col-full]=\"isDateOnlySignal()\">\n <mat-form-field [appearance]=\"appearanceSignal()\" subscriptSizing=\"dynamic\" class=\"dbx-forge-datetime-col-field\">\n <mat-label>{{ dateLabelSignal() }}</mat-label>\n <input matInput [disabled]=\"isDisabledSignal()\" [required]=\"isDateRequiredSignal()\" [min]=\"dateInputMinSignal()\" [max]=\"dateInputMaxSignal()\" [matDatepicker]=\"picker\" [matDatepickerFilter]=\"pickerFilterSignal()\" (dateChange)=\"onDatePicked($event)\" [value]=\"dateValueSignal()\" (click)=\"onDateInputClick(picker)\" (keydown)=\"onDateKeydown($event)\" [attr.aria-invalid]=\"ariaInvalidSignal()\" [attr.aria-required]=\"ariaRequiredSignal()\" [attr.aria-describedby]=\"ariaDescribedBySignal()\" />\n @if (!hideDatePickerSignal()) {\n <button matPrefix mat-icon-button (click)=\"picker.open()\" [disabled]=\"isDisabledSignal()\" aria-label=\"Open date picker\">\n <mat-icon aria-hidden=\"true\">calendar_today</mat-icon>\n </button>\n }\n <mat-datepicker #picker></mat-datepicker>\n @if (resolvedShowClearButtonSignal()) {\n <button matSuffix mat-icon-button aria-label=\"Clear date and time\" [disabled]=\"isDisabledSignal()\" (click)=\"clearValue()\">\n <mat-icon aria-hidden=\"true\">clear</mat-icon>\n </button>\n }\n @if (!showTimeInputSignal()) {\n <span matTextSuffix>\n <ng-container [ngTemplateOutlet]=\"tzSuffix\"></ng-container>\n </span>\n }\n </mat-form-field>\n </div>\n }\n\n <!-- Time Input / Add Time Button -->\n @if (showTimeInputSignal() || showAddTimeButtonSignal()) {\n <div class=\"dbx-forge-datetime-col\">\n @if (showTimeInputSignal()) {\n <mat-menu #timemenu=\"matMenu\">\n @if (timeModeSignal() === 'optional') {\n <button mat-menu-item (click)=\"removeTime()\">\n <span>Remove Time</span>\n </button>\n <mat-divider></mat-divider>\n }\n @for (preset of presetsSignal(); track $index) {\n <button mat-menu-item (click)=\"selectPreset(preset)\">{{ preset.label | getValue }}</button>\n }\n </mat-menu>\n <mat-form-field [appearance]=\"appearanceSignal()\" subscriptSizing=\"dynamic\" class=\"dbx-forge-datetime-col-field\">\n <mat-label>{{ timeLabelSignal() }}</mat-label>\n <input matInput [errorStateMatcher]=\"timeErrorStateMatcher\" [required]=\"isTimeRequiredSignal()\" [formControl]=\"timeCtrl\" (focus)=\"onTimeFocus()\" (focusout)=\"onTimeBlur()\" (keydown)=\"onTimeKeydown($event)\" />\n <button matPrefix mat-icon-button [matMenuTriggerFor]=\"timemenu\" aria-label=\"Open time presets\" [disabled]=\"isTimeMenuDisabledSignal()\">\n <mat-icon aria-hidden=\"true\">timer</mat-icon>\n </button>\n <span matTextSuffix>\n <ng-container [ngTemplateOutlet]=\"tzSuffix\"></ng-container>\n </span>\n @if (timeCtrl.hasError('pattern')) {\n <mat-error>The input time is not recognizable.</mat-error>\n }\n </mat-form-field>\n }\n @if (showAddTimeButtonSignal()) {\n <div class=\"dbx-forge-add-time-wrapper\">\n <button mat-button (click)=\"addTime()\">\n <mat-icon>timer</mat-icon>\n Add Time\n </button>\n </div>\n }\n </div>\n }\n </div>\n\n <!-- Date Hint / Error -->\n @if (hasErrorSignal()) {\n @if (currentErrorMessageSignal()) {\n <mat-error class=\"dbx-forge-datetime-error\" [id]=\"errorIdSignal()\">{{ currentErrorMessageSignal() }}</mat-error>\n }\n } @else if (!hideDateHintSignal()) {\n <div class=\"dbx-forge-datetime-hint\" [id]=\"hintIdSignal()\">\n @if (!hasValueSignal()) {\n <span class=\"dbx-small dbx-hint\">No date/time set</span>\n } @else if (displayValueSignal(); as dv) {\n @if (fullDaySignal()) {\n <small>\n <b class=\"dbx-ok\">{{ allDayLabelSignal() }}</b>\n {{ dv | date: 'fullDate' }} {{ tzAbbreviationSignal() }} ({{ dv | dateDistance }})\n </small>\n } @else {\n <small>\n <b class=\"dbx-ok\">{{ atTimeLabelSignal() }}</b>\n {{ dv | date: 'medium' }} {{ tzAbbreviationSignal() }} ({{ dv | timeDistance }})\n </small>\n }\n }\n </div>\n }\n\n <!-- Description -->\n @if (descriptionSignal()) {\n <p class=\"dbx-hint dbx-forge-datetime-desc\">{{ descriptionSignal() }}</p>\n }\n</div>\n\n<!-- Timezone Suffix Template -->\n<ng-template #tzSuffix>\n @if (showTimezoneSignal()) {\n <span class=\"dbx-forge-datetime-timezone dbx-faint\">{{ tzAbbreviationSignal() }}</span>\n }\n</ng-template>\n", styles: [".dbx-forge-datetime-field-wrapper{width:100%}.dbx-forge-datetime-inputs{display:flex;flex-wrap:wrap;gap:6px;align-items:flex-start;width:100%}.dbx-forge-datetime-col{flex:1 1 0%;min-width:180px}.dbx-forge-datetime-col-full{flex:1 1 100%}.dbx-forge-datetime-col-field{width:100%}.dbx-forge-field-label{font-weight:500}.dbx-forge-required-marker{color:var(--mat-sys-error, red)}.dbx-forge-datetime-desc{font-size:12px;margin-top:0}.dbx-forge-add-time-wrapper{display:flex;align-items:center;min-height:56px}.dbx-forge-datetime-timezone{padding:0 6px;pointer-events:none}.dbx-forge-datetime-hint,.dbx-forge-datetime-error{padding:0 2px}@media(max-width:599px){.dbx-forge-datetime-inputs{flex-direction:column;align-items:stretch}.dbx-forge-datetime-col{flex:1 1 auto;width:100%}}\n"] }]
5342
+ }, template: "<div class=\"dbx-forge-datetime-field-wrapper\">\n <!-- Field Label -->\n @if (fieldLabelSignal()) {\n <span class=\"dbx-forge-field-label\">\n {{ fieldLabelSignal() }}\n @if (isRequiredSignal()) {\n <span class=\"dbx-forge-required-marker\">*</span>\n }\n </span>\n }\n\n <!-- Date + Time row -->\n <div class=\"dbx-forge-datetime-field dbx-forge-datetime-inputs\">\n <!-- Date Input -->\n @if (resolvedShowDateInputSignal()) {\n <div class=\"dbx-forge-datetime-col\" [class.dbx-forge-datetime-col-full]=\"isDateOnlySignal()\">\n <mat-form-field [appearance]=\"appearanceSignal()\" subscriptSizing=\"dynamic\" class=\"dbx-forge-datetime-col-field\">\n <mat-label>{{ dateLabelSignal() }}</mat-label>\n <input\n matInput\n [disabled]=\"isDisabledSignal()\"\n [required]=\"isDateRequiredSignal()\"\n [min]=\"dateInputMinSignal()\"\n [max]=\"dateInputMaxSignal()\"\n [matDatepicker]=\"picker\"\n [matDatepickerFilter]=\"pickerFilterSignal()\"\n (dateChange)=\"onDatePicked($event)\"\n [value]=\"dateValueSignal()\"\n (click)=\"onDateInputClick(picker)\"\n (keydown)=\"onDateKeydown($event)\"\n [attr.aria-invalid]=\"ariaInvalidSignal()\"\n [attr.aria-required]=\"ariaRequiredSignal()\"\n [attr.aria-describedby]=\"ariaDescribedBySignal()\" />\n @if (!hideDatePickerSignal()) {\n <button matPrefix mat-icon-button (click)=\"picker.open()\" [disabled]=\"isDisabledSignal()\" aria-label=\"Open date picker\">\n <mat-icon aria-hidden=\"true\">calendar_today</mat-icon>\n </button>\n }\n <mat-datepicker #picker></mat-datepicker>\n @if (resolvedShowClearButtonSignal()) {\n <button matSuffix mat-icon-button aria-label=\"Clear date and time\" [disabled]=\"isDisabledSignal()\" (click)=\"clearValue()\">\n <mat-icon aria-hidden=\"true\">clear</mat-icon>\n </button>\n }\n @if (!showTimeInputSignal()) {\n <span matTextSuffix>\n <ng-container [ngTemplateOutlet]=\"tzSuffix\"></ng-container>\n </span>\n }\n </mat-form-field>\n </div>\n }\n\n <!-- Time Input / Add Time Button -->\n @if (showTimeInputSignal() || showAddTimeButtonSignal()) {\n <div class=\"dbx-forge-datetime-col\">\n @if (showTimeInputSignal()) {\n <mat-menu #timemenu=\"matMenu\">\n @if (timeModeSignal() === 'optional') {\n <button mat-menu-item (click)=\"removeTime()\">\n <span>Remove Time</span>\n </button>\n <mat-divider></mat-divider>\n }\n @for (preset of presetsSignal(); track $index) {\n <button mat-menu-item (click)=\"selectPreset(preset)\">{{ preset.label | getValue }}</button>\n }\n </mat-menu>\n <mat-form-field [appearance]=\"appearanceSignal()\" subscriptSizing=\"dynamic\" class=\"dbx-forge-datetime-col-field\">\n <mat-label>{{ timeLabelSignal() }}</mat-label>\n <input matInput [errorStateMatcher]=\"timeErrorStateMatcher\" [required]=\"isTimeRequiredSignal()\" [formControl]=\"timeCtrl\" (focus)=\"onTimeFocus()\" (focusout)=\"onTimeBlur()\" (keydown)=\"onTimeKeydown($event)\" />\n <button matPrefix mat-icon-button [matMenuTriggerFor]=\"timemenu\" aria-label=\"Open time presets\" [disabled]=\"isTimeMenuDisabledSignal()\">\n <mat-icon aria-hidden=\"true\">timer</mat-icon>\n </button>\n <span matTextSuffix>\n <ng-container [ngTemplateOutlet]=\"tzSuffix\"></ng-container>\n </span>\n @if (timeCtrl.hasError('pattern')) {\n <mat-error>The input time is not recognizable.</mat-error>\n }\n </mat-form-field>\n }\n @if (showAddTimeButtonSignal()) {\n <div class=\"dbx-forge-add-time-wrapper\">\n <button mat-button (click)=\"addTime()\">\n <mat-icon>timer</mat-icon>\n Add Time\n </button>\n </div>\n }\n </div>\n }\n </div>\n\n <!-- Date Hint / Error -->\n @if (hasErrorSignal()) {\n @if (currentErrorMessageSignal()) {\n <mat-error class=\"dbx-forge-datetime-error\" [id]=\"errorIdSignal()\">{{ currentErrorMessageSignal() }}</mat-error>\n }\n } @else if (!hideDateHintSignal()) {\n <div class=\"dbx-forge-datetime-hint\" [id]=\"hintIdSignal()\">\n @if (!hasValueSignal()) {\n <span class=\"dbx-small dbx-hint\">No date/time set</span>\n } @else if (displayValueSignal(); as dv) {\n @if (fullDaySignal()) {\n <small>\n <b class=\"dbx-ok\">{{ allDayLabelSignal() }}</b>\n {{ dv | date: 'fullDate' }} {{ tzAbbreviationSignal() }} ({{ dv | dateDistance }})\n </small>\n } @else {\n <small>\n <b class=\"dbx-ok\">{{ atTimeLabelSignal() }}</b>\n {{ dv | date: 'medium' }} {{ tzAbbreviationSignal() }} ({{ dv | timeDistance }})\n </small>\n }\n }\n </div>\n }\n\n <!-- Description -->\n @if (descriptionSignal()) {\n <p class=\"dbx-hint dbx-forge-datetime-desc\">{{ descriptionSignal() }}</p>\n }\n</div>\n\n<!-- Timezone Suffix Template -->\n<ng-template #tzSuffix>\n @if (showTimezoneSignal()) {\n <span class=\"dbx-forge-datetime-timezone dbx-faint\">{{ tzAbbreviationSignal() }}</span>\n }\n</ng-template>\n", styles: [".dbx-forge-datetime-field-wrapper{width:100%}.dbx-forge-datetime-inputs{display:flex;flex-wrap:wrap;gap:6px;align-items:flex-start;width:100%}.dbx-forge-datetime-col{flex:1 1 0%;min-width:180px}.dbx-forge-datetime-col-full{flex:1 1 100%}.dbx-forge-datetime-col-field{width:100%}.dbx-forge-field-label{font-weight:500}.dbx-forge-required-marker{color:var(--mat-sys-error, red)}.dbx-forge-datetime-desc{font-size:12px;margin-top:0}.dbx-forge-add-time-wrapper{display:flex;align-items:center;min-height:56px}.dbx-forge-datetime-timezone{padding:0 6px;pointer-events:none}.dbx-forge-datetime-hint,.dbx-forge-datetime-error{padding:0 2px}@media(max-width:599px){.dbx-forge-datetime-inputs{flex-direction:column;align-items:stretch}.dbx-forge-datetime-col{flex:1 1 auto;width:100%}}\n"] }]
5290
5343
  }], ctorParameters: () => [], propDecorators: { field: [{ type: i0.Input, args: [{ isSignal: true, alias: "field", required: true }] }], key: [{ type: i0.Input, args: [{ isSignal: true, alias: "key", required: true }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], tabIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "tabIndex", required: false }] }], props: [{ type: i0.Input, args: [{ isSignal: true, alias: "props", required: false }] }], meta: [{ type: i0.Input, args: [{ isSignal: true, alias: "meta", required: false }] }], validationMessages: [{ type: i0.Input, args: [{ isSignal: true, alias: "validationMessages", required: false }] }], defaultValidationMessages: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultValidationMessages", required: false }] }] } });
5291
5344
  // MARK: Mapper
5292
5345
  /**
@@ -5334,16 +5387,26 @@ class DbxForgeDateRangeFieldComponent {
5334
5387
  destroyRef = inject(DestroyRef);
5335
5388
  elementRef = inject((ElementRef));
5336
5389
  // Standard ng-forge value field inputs
5337
- field = input.required(...(ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []));
5338
- key = input.required(...(ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []));
5339
- label = input(...(ngDevMode ? [undefined, { debugName: "label" }] : /* istanbul ignore next */ []));
5340
- placeholder = input(...(ngDevMode ? [undefined, { debugName: "placeholder" }] : /* istanbul ignore next */ []));
5341
- className = input('', ...(ngDevMode ? [{ debugName: "className" }] : /* istanbul ignore next */ []));
5342
- tabIndex = input(...(ngDevMode ? [undefined, { debugName: "tabIndex" }] : /* istanbul ignore next */ []));
5343
- props = input(...(ngDevMode ? [undefined, { debugName: "props" }] : /* istanbul ignore next */ []));
5344
- meta = input(...(ngDevMode ? [undefined, { debugName: "meta" }] : /* istanbul ignore next */ []));
5345
- validationMessages = input(...(ngDevMode ? [undefined, { debugName: "validationMessages" }] : /* istanbul ignore next */ []));
5346
- defaultValidationMessages = input(...(ngDevMode ? [undefined, { debugName: "defaultValidationMessages" }] : /* istanbul ignore next */ []));
5390
+ field = input.required(/* @ts-ignore */
5391
+ ...(ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []));
5392
+ key = input.required(/* @ts-ignore */
5393
+ ...(ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []));
5394
+ label = input(/* @ts-ignore */
5395
+ ...(ngDevMode ? [undefined, { debugName: "label" }] : /* istanbul ignore next */ []));
5396
+ placeholder = input(/* @ts-ignore */
5397
+ ...(ngDevMode ? [undefined, { debugName: "placeholder" }] : /* istanbul ignore next */ []));
5398
+ className = input('', /* @ts-ignore */
5399
+ ...(ngDevMode ? [{ debugName: "className" }] : /* istanbul ignore next */ []));
5400
+ tabIndex = input(/* @ts-ignore */
5401
+ ...(ngDevMode ? [undefined, { debugName: "tabIndex" }] : /* istanbul ignore next */ []));
5402
+ props = input(/* @ts-ignore */
5403
+ ...(ngDevMode ? [undefined, { debugName: "props" }] : /* istanbul ignore next */ []));
5404
+ meta = input(/* @ts-ignore */
5405
+ ...(ngDevMode ? [undefined, { debugName: "meta" }] : /* istanbul ignore next */ []));
5406
+ validationMessages = input(/* @ts-ignore */
5407
+ ...(ngDevMode ? [undefined, { debugName: "validationMessages" }] : /* istanbul ignore next */ []));
5408
+ defaultValidationMessages = input(/* @ts-ignore */
5409
+ ...(ngDevMode ? [undefined, { debugName: "defaultValidationMessages" }] : /* istanbul ignore next */ []));
5347
5410
  /**
5348
5411
  * Internal FormControls for start and end dates and times.
5349
5412
  */
@@ -5352,27 +5415,38 @@ class DbxForgeDateRangeFieldComponent {
5352
5415
  endDateCtrl = new FormControl(null);
5353
5416
  endTimeCtrl = new FormControl('');
5354
5417
  // Computed props
5355
- startLabelSignal = computed(() => this.props()?.startLabel ?? 'Start', ...(ngDevMode ? [{ debugName: "startLabelSignal" }] : /* istanbul ignore next */ []));
5356
- endLabelSignal = computed(() => this.props()?.endLabel ?? 'End', ...(ngDevMode ? [{ debugName: "endLabelSignal" }] : /* istanbul ignore next */ []));
5357
- showTimeSignal = computed(() => this.props()?.showTime ?? false, ...(ngDevMode ? [{ debugName: "showTimeSignal" }] : /* istanbul ignore next */ []));
5358
- effectiveAppearanceSignal = computed(() => this.props()?.appearance ?? this.materialConfig?.appearance ?? 'outline', ...(ngDevMode ? [{ debugName: "effectiveAppearanceSignal" }] : /* istanbul ignore next */ []));
5418
+ startLabelSignal = computed(() => this.props()?.startLabel ?? 'Start', /* @ts-ignore */
5419
+ ...(ngDevMode ? [{ debugName: "startLabelSignal" }] : /* istanbul ignore next */ []));
5420
+ endLabelSignal = computed(() => this.props()?.endLabel ?? 'End', /* @ts-ignore */
5421
+ ...(ngDevMode ? [{ debugName: "endLabelSignal" }] : /* istanbul ignore next */ []));
5422
+ showTimeSignal = computed(() => this.props()?.showTime ?? false, /* @ts-ignore */
5423
+ ...(ngDevMode ? [{ debugName: "showTimeSignal" }] : /* istanbul ignore next */ []));
5424
+ effectiveAppearanceSignal = computed(() => this.props()?.appearance ?? this.materialConfig?.appearance ?? 'outline', /* @ts-ignore */
5425
+ ...(ngDevMode ? [{ debugName: "effectiveAppearanceSignal" }] : /* istanbul ignore next */ []));
5359
5426
  minDateSignal = computed(() => {
5360
5427
  const minDate = this.props()?.minDate;
5361
5428
  return minDate ? safeToJsDate(minDate) : null;
5362
- }, ...(ngDevMode ? [{ debugName: "minDateSignal" }] : /* istanbul ignore next */ []));
5429
+ }, /* @ts-ignore */
5430
+ ...(ngDevMode ? [{ debugName: "minDateSignal" }] : /* istanbul ignore next */ []));
5363
5431
  maxDateSignal = computed(() => {
5364
5432
  const maxDate = this.props()?.maxDate;
5365
5433
  return maxDate ? safeToJsDate(maxDate) : null;
5366
- }, ...(ngDevMode ? [{ debugName: "maxDateSignal" }] : /* istanbul ignore next */ []));
5434
+ }, /* @ts-ignore */
5435
+ ...(ngDevMode ? [{ debugName: "maxDateSignal" }] : /* istanbul ignore next */ []));
5367
5436
  // Error handling
5368
5437
  resolvedErrors = createResolvedErrorsSignal(this.field, this.validationMessages, this.defaultValidationMessages);
5369
5438
  showErrors = shouldShowErrors(this.field);
5370
- errorsToDisplaySignal = computed(() => (this.showErrors() ? this.resolvedErrors() : []), ...(ngDevMode ? [{ debugName: "errorsToDisplaySignal" }] : /* istanbul ignore next */ []));
5439
+ errorsToDisplaySignal = computed(() => (this.showErrors() ? this.resolvedErrors() : []), /* @ts-ignore */
5440
+ ...(ngDevMode ? [{ debugName: "errorsToDisplaySignal" }] : /* istanbul ignore next */ []));
5371
5441
  // ARIA
5372
- hintIdSignal = computed(() => `${this.key()}-hint`, ...(ngDevMode ? [{ debugName: "hintIdSignal" }] : /* istanbul ignore next */ []));
5373
- errorIdSignal = computed(() => `${this.key()}-error`, ...(ngDevMode ? [{ debugName: "errorIdSignal" }] : /* istanbul ignore next */ []));
5374
- ariaInvalidSignal = computed(() => (this.showErrors() ? 'true' : null), ...(ngDevMode ? [{ debugName: "ariaInvalidSignal" }] : /* istanbul ignore next */ []));
5375
- ariaRequiredSignal = computed(() => (this.field()().required() ? 'true' : null), ...(ngDevMode ? [{ debugName: "ariaRequiredSignal" }] : /* istanbul ignore next */ []));
5442
+ hintIdSignal = computed(() => `${this.key()}-hint`, /* @ts-ignore */
5443
+ ...(ngDevMode ? [{ debugName: "hintIdSignal" }] : /* istanbul ignore next */ []));
5444
+ errorIdSignal = computed(() => `${this.key()}-error`, /* @ts-ignore */
5445
+ ...(ngDevMode ? [{ debugName: "errorIdSignal" }] : /* istanbul ignore next */ []));
5446
+ ariaInvalidSignal = computed(() => (this.showErrors() ? 'true' : null), /* @ts-ignore */
5447
+ ...(ngDevMode ? [{ debugName: "ariaInvalidSignal" }] : /* istanbul ignore next */ []));
5448
+ ariaRequiredSignal = computed(() => (this.field()().required() ? 'true' : null), /* @ts-ignore */
5449
+ ...(ngDevMode ? [{ debugName: "ariaRequiredSignal" }] : /* istanbul ignore next */ []));
5376
5450
  ariaDescribedBySignal = computed(() => {
5377
5451
  const errorId = this.errorIdSignal();
5378
5452
  const hintId = this.hintIdSignal();
@@ -5381,7 +5455,8 @@ class DbxForgeDateRangeFieldComponent {
5381
5455
  if (this.props()?.hint)
5382
5456
  return hintId;
5383
5457
  return null;
5384
- }, ...(ngDevMode ? [{ debugName: "ariaDescribedBySignal" }] : /* istanbul ignore next */ []));
5458
+ }, /* @ts-ignore */
5459
+ ...(ngDevMode ? [{ debugName: "ariaDescribedBySignal" }] : /* istanbul ignore next */ []));
5385
5460
  /**
5386
5461
  * Flag to prevent feedback loops during sync.
5387
5462
  */
@@ -5483,12 +5558,12 @@ class DbxForgeDateRangeFieldComponent {
5483
5558
  }
5484
5559
  return result;
5485
5560
  }
5486
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeDateRangeFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5487
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.11", type: DbxForgeDateRangeFieldComponent, isStandalone: true, selector: "dbx-forge-daterange-field", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, key: { classPropertyName: "key", publicName: "key", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: true, isRequired: false, transformFunction: null }, props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null }, meta: { classPropertyName: "meta", publicName: "meta", isSignal: true, isRequired: false, transformFunction: null }, validationMessages: { classPropertyName: "validationMessages", publicName: "validationMessages", isSignal: true, isRequired: false, transformFunction: null }, defaultValidationMessages: { classPropertyName: "defaultValidationMessages", publicName: "defaultValidationMessages", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"dbx-forge-daterange-field\">\n <mat-form-field [appearance]=\"effectiveAppearanceSignal()\" subscriptSizing=\"dynamic\" class=\"dbx-forge-daterange-start\">\n <mat-label>{{ startLabelSignal() }}</mat-label>\n <input matInput [matDatepicker]=\"startPicker\" [formControl]=\"startDateCtrl\" [min]=\"minDateSignal()\" [max]=\"maxDateSignal()\" [attr.aria-invalid]=\"ariaInvalidSignal()\" [attr.aria-required]=\"ariaRequiredSignal()\" [attr.aria-describedby]=\"ariaDescribedBySignal()\" />\n <mat-datepicker-toggle matIconSuffix [for]=\"startPicker\"></mat-datepicker-toggle>\n <mat-datepicker #startPicker></mat-datepicker>\n </mat-form-field>\n @if (showTimeSignal()) {\n <mat-form-field [appearance]=\"effectiveAppearanceSignal()\" subscriptSizing=\"dynamic\" class=\"dbx-forge-daterange-start-time\">\n <mat-label>Start Time</mat-label>\n <input matInput type=\"time\" [formControl]=\"startTimeCtrl\" />\n </mat-form-field>\n }\n <mat-form-field [appearance]=\"effectiveAppearanceSignal()\" subscriptSizing=\"dynamic\" class=\"dbx-forge-daterange-end\">\n <mat-label>{{ endLabelSignal() }}</mat-label>\n <input matInput [matDatepicker]=\"endPicker\" [formControl]=\"endDateCtrl\" [min]=\"minDateSignal()\" [max]=\"maxDateSignal()\" />\n <mat-datepicker-toggle matIconSuffix [for]=\"endPicker\"></mat-datepicker-toggle>\n <mat-datepicker #endPicker></mat-datepicker>\n </mat-form-field>\n @if (showTimeSignal()) {\n <mat-form-field [appearance]=\"effectiveAppearanceSignal()\" subscriptSizing=\"dynamic\" class=\"dbx-forge-daterange-end-time\">\n <mat-label>End Time</mat-label>\n <input matInput type=\"time\" [formControl]=\"endTimeCtrl\" />\n </mat-form-field>\n }\n @if (errorsToDisplaySignal()[0]; as error) {\n <mat-error [id]=\"errorIdSignal()\">{{ error.message }}</mat-error>\n } @else if (props()?.hint; as hint) {\n <mat-hint [id]=\"hintIdSignal()\">{{ hint | dynamicText | async }}</mat-hint>\n }\n</div>\n", styles: [".dbx-forge-daterange-field{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-start}.dbx-forge-daterange-start,.dbx-forge-daterange-end{flex:1 1 auto;min-width:140px}.dbx-forge-daterange-start-time,.dbx-forge-daterange-end-time{flex:0 1 auto;min-width:100px}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i1$2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i1$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i1$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i3.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i3.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i3.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: DynamicTextPipe, name: "dynamicText" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
5561
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeDateRangeFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5562
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: DbxForgeDateRangeFieldComponent, isStandalone: true, selector: "dbx-forge-daterange-field", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, key: { classPropertyName: "key", publicName: "key", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: true, isRequired: false, transformFunction: null }, props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null }, meta: { classPropertyName: "meta", publicName: "meta", isSignal: true, isRequired: false, transformFunction: null }, validationMessages: { classPropertyName: "validationMessages", publicName: "validationMessages", isSignal: true, isRequired: false, transformFunction: null }, defaultValidationMessages: { classPropertyName: "defaultValidationMessages", publicName: "defaultValidationMessages", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"dbx-forge-daterange-field\">\n <mat-form-field [appearance]=\"effectiveAppearanceSignal()\" subscriptSizing=\"dynamic\" class=\"dbx-forge-daterange-start\">\n <mat-label>{{ startLabelSignal() }}</mat-label>\n <input matInput [matDatepicker]=\"startPicker\" [formControl]=\"startDateCtrl\" [min]=\"minDateSignal()\" [max]=\"maxDateSignal()\" [attr.aria-invalid]=\"ariaInvalidSignal()\" [attr.aria-required]=\"ariaRequiredSignal()\" [attr.aria-describedby]=\"ariaDescribedBySignal()\" />\n <mat-datepicker-toggle matIconSuffix [for]=\"startPicker\"></mat-datepicker-toggle>\n <mat-datepicker #startPicker></mat-datepicker>\n </mat-form-field>\n @if (showTimeSignal()) {\n <mat-form-field [appearance]=\"effectiveAppearanceSignal()\" subscriptSizing=\"dynamic\" class=\"dbx-forge-daterange-start-time\">\n <mat-label>Start Time</mat-label>\n <input matInput type=\"time\" [formControl]=\"startTimeCtrl\" />\n </mat-form-field>\n }\n <mat-form-field [appearance]=\"effectiveAppearanceSignal()\" subscriptSizing=\"dynamic\" class=\"dbx-forge-daterange-end\">\n <mat-label>{{ endLabelSignal() }}</mat-label>\n <input matInput [matDatepicker]=\"endPicker\" [formControl]=\"endDateCtrl\" [min]=\"minDateSignal()\" [max]=\"maxDateSignal()\" />\n <mat-datepicker-toggle matIconSuffix [for]=\"endPicker\"></mat-datepicker-toggle>\n <mat-datepicker #endPicker></mat-datepicker>\n </mat-form-field>\n @if (showTimeSignal()) {\n <mat-form-field [appearance]=\"effectiveAppearanceSignal()\" subscriptSizing=\"dynamic\" class=\"dbx-forge-daterange-end-time\">\n <mat-label>End Time</mat-label>\n <input matInput type=\"time\" [formControl]=\"endTimeCtrl\" />\n </mat-form-field>\n }\n @if (errorsToDisplaySignal()[0]; as error) {\n <mat-error [id]=\"errorIdSignal()\">{{ error.message }}</mat-error>\n } @else if (props()?.hint; as hint) {\n <mat-hint [id]=\"hintIdSignal()\">{{ hint | dynamicText | async }}</mat-hint>\n }\n</div>\n", styles: [".dbx-forge-daterange-field{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-start}.dbx-forge-daterange-start,.dbx-forge-daterange-end{flex:1 1 auto;min-width:140px}.dbx-forge-daterange-start-time,.dbx-forge-daterange-end-time{flex:0 1 auto;min-width:100px}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i1$2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i1$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i1$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i3.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i3.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i3.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$4.DefaultValueAccessor, selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: DynamicTextPipe, name: "dynamicText" }, { kind: "pipe", type: AsyncPipe, name: "async" }] });
5488
5563
  }
5489
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeDateRangeFieldComponent, decorators: [{
5564
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeDateRangeFieldComponent, decorators: [{
5490
5565
  type: Component,
5491
- args: [{ selector: 'dbx-forge-daterange-field', standalone: true, imports: [MatFormFieldModule, MatInputModule, MatDatepickerModule, MatButtonModule, MatIconModule, ReactiveFormsModule, DynamicTextPipe, AsyncPipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"dbx-forge-daterange-field\">\n <mat-form-field [appearance]=\"effectiveAppearanceSignal()\" subscriptSizing=\"dynamic\" class=\"dbx-forge-daterange-start\">\n <mat-label>{{ startLabelSignal() }}</mat-label>\n <input matInput [matDatepicker]=\"startPicker\" [formControl]=\"startDateCtrl\" [min]=\"minDateSignal()\" [max]=\"maxDateSignal()\" [attr.aria-invalid]=\"ariaInvalidSignal()\" [attr.aria-required]=\"ariaRequiredSignal()\" [attr.aria-describedby]=\"ariaDescribedBySignal()\" />\n <mat-datepicker-toggle matIconSuffix [for]=\"startPicker\"></mat-datepicker-toggle>\n <mat-datepicker #startPicker></mat-datepicker>\n </mat-form-field>\n @if (showTimeSignal()) {\n <mat-form-field [appearance]=\"effectiveAppearanceSignal()\" subscriptSizing=\"dynamic\" class=\"dbx-forge-daterange-start-time\">\n <mat-label>Start Time</mat-label>\n <input matInput type=\"time\" [formControl]=\"startTimeCtrl\" />\n </mat-form-field>\n }\n <mat-form-field [appearance]=\"effectiveAppearanceSignal()\" subscriptSizing=\"dynamic\" class=\"dbx-forge-daterange-end\">\n <mat-label>{{ endLabelSignal() }}</mat-label>\n <input matInput [matDatepicker]=\"endPicker\" [formControl]=\"endDateCtrl\" [min]=\"minDateSignal()\" [max]=\"maxDateSignal()\" />\n <mat-datepicker-toggle matIconSuffix [for]=\"endPicker\"></mat-datepicker-toggle>\n <mat-datepicker #endPicker></mat-datepicker>\n </mat-form-field>\n @if (showTimeSignal()) {\n <mat-form-field [appearance]=\"effectiveAppearanceSignal()\" subscriptSizing=\"dynamic\" class=\"dbx-forge-daterange-end-time\">\n <mat-label>End Time</mat-label>\n <input matInput type=\"time\" [formControl]=\"endTimeCtrl\" />\n </mat-form-field>\n }\n @if (errorsToDisplaySignal()[0]; as error) {\n <mat-error [id]=\"errorIdSignal()\">{{ error.message }}</mat-error>\n } @else if (props()?.hint; as hint) {\n <mat-hint [id]=\"hintIdSignal()\">{{ hint | dynamicText | async }}</mat-hint>\n }\n</div>\n", styles: [".dbx-forge-daterange-field{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-start}.dbx-forge-daterange-start,.dbx-forge-daterange-end{flex:1 1 auto;min-width:140px}.dbx-forge-daterange-start-time,.dbx-forge-daterange-end-time{flex:0 1 auto;min-width:100px}\n"] }]
5566
+ args: [{ selector: 'dbx-forge-daterange-field', imports: [MatFormFieldModule, MatInputModule, MatDatepickerModule, MatButtonModule, MatIconModule, ReactiveFormsModule, DynamicTextPipe, AsyncPipe], template: "<div class=\"dbx-forge-daterange-field\">\n <mat-form-field [appearance]=\"effectiveAppearanceSignal()\" subscriptSizing=\"dynamic\" class=\"dbx-forge-daterange-start\">\n <mat-label>{{ startLabelSignal() }}</mat-label>\n <input matInput [matDatepicker]=\"startPicker\" [formControl]=\"startDateCtrl\" [min]=\"minDateSignal()\" [max]=\"maxDateSignal()\" [attr.aria-invalid]=\"ariaInvalidSignal()\" [attr.aria-required]=\"ariaRequiredSignal()\" [attr.aria-describedby]=\"ariaDescribedBySignal()\" />\n <mat-datepicker-toggle matIconSuffix [for]=\"startPicker\"></mat-datepicker-toggle>\n <mat-datepicker #startPicker></mat-datepicker>\n </mat-form-field>\n @if (showTimeSignal()) {\n <mat-form-field [appearance]=\"effectiveAppearanceSignal()\" subscriptSizing=\"dynamic\" class=\"dbx-forge-daterange-start-time\">\n <mat-label>Start Time</mat-label>\n <input matInput type=\"time\" [formControl]=\"startTimeCtrl\" />\n </mat-form-field>\n }\n <mat-form-field [appearance]=\"effectiveAppearanceSignal()\" subscriptSizing=\"dynamic\" class=\"dbx-forge-daterange-end\">\n <mat-label>{{ endLabelSignal() }}</mat-label>\n <input matInput [matDatepicker]=\"endPicker\" [formControl]=\"endDateCtrl\" [min]=\"minDateSignal()\" [max]=\"maxDateSignal()\" />\n <mat-datepicker-toggle matIconSuffix [for]=\"endPicker\"></mat-datepicker-toggle>\n <mat-datepicker #endPicker></mat-datepicker>\n </mat-form-field>\n @if (showTimeSignal()) {\n <mat-form-field [appearance]=\"effectiveAppearanceSignal()\" subscriptSizing=\"dynamic\" class=\"dbx-forge-daterange-end-time\">\n <mat-label>End Time</mat-label>\n <input matInput type=\"time\" [formControl]=\"endTimeCtrl\" />\n </mat-form-field>\n }\n @if (errorsToDisplaySignal()[0]; as error) {\n <mat-error [id]=\"errorIdSignal()\">{{ error.message }}</mat-error>\n } @else if (props()?.hint; as hint) {\n <mat-hint [id]=\"hintIdSignal()\">{{ hint | dynamicText | async }}</mat-hint>\n }\n</div>\n", styles: [".dbx-forge-daterange-field{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-start}.dbx-forge-daterange-start,.dbx-forge-daterange-end{flex:1 1 auto;min-width:140px}.dbx-forge-daterange-start-time,.dbx-forge-daterange-end-time{flex:0 1 auto;min-width:100px}\n"] }]
5492
5567
  }], ctorParameters: () => [], propDecorators: { field: [{ type: i0.Input, args: [{ isSignal: true, alias: "field", required: true }] }], key: [{ type: i0.Input, args: [{ isSignal: true, alias: "key", required: true }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], tabIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "tabIndex", required: false }] }], props: [{ type: i0.Input, args: [{ isSignal: true, alias: "props", required: false }] }], meta: [{ type: i0.Input, args: [{ isSignal: true, alias: "meta", required: false }] }], validationMessages: [{ type: i0.Input, args: [{ isSignal: true, alias: "validationMessages", required: false }] }], defaultValidationMessages: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultValidationMessages", required: false }] }] } });
5493
5568
  // MARK: Mapper
5494
5569
  /**
@@ -5566,23 +5641,36 @@ class DbxForgeFixedDateRangeFieldComponent {
5566
5641
  destroyRef = inject(DestroyRef);
5567
5642
  elementRef = inject((ElementRef));
5568
5643
  // MARK: ng-forge ValueFieldComponent inputs
5569
- field = input.required(...(ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []));
5570
- key = input.required(...(ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []));
5571
- label = input(...(ngDevMode ? [undefined, { debugName: "label" }] : /* istanbul ignore next */ []));
5572
- placeholder = input(...(ngDevMode ? [undefined, { debugName: "placeholder" }] : /* istanbul ignore next */ []));
5573
- className = input('', ...(ngDevMode ? [{ debugName: "className" }] : /* istanbul ignore next */ []));
5574
- tabIndex = input(...(ngDevMode ? [undefined, { debugName: "tabIndex" }] : /* istanbul ignore next */ []));
5575
- props = input(...(ngDevMode ? [undefined, { debugName: "props" }] : /* istanbul ignore next */ []));
5576
- meta = input(...(ngDevMode ? [undefined, { debugName: "meta" }] : /* istanbul ignore next */ []));
5577
- validationMessages = input(...(ngDevMode ? [undefined, { debugName: "validationMessages" }] : /* istanbul ignore next */ []));
5578
- defaultValidationMessages = input(...(ngDevMode ? [undefined, { debugName: "defaultValidationMessages" }] : /* istanbul ignore next */ []));
5644
+ field = input.required(/* @ts-ignore */
5645
+ ...(ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []));
5646
+ key = input.required(/* @ts-ignore */
5647
+ ...(ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []));
5648
+ label = input(/* @ts-ignore */
5649
+ ...(ngDevMode ? [undefined, { debugName: "label" }] : /* istanbul ignore next */ []));
5650
+ placeholder = input(/* @ts-ignore */
5651
+ ...(ngDevMode ? [undefined, { debugName: "placeholder" }] : /* istanbul ignore next */ []));
5652
+ className = input('', /* @ts-ignore */
5653
+ ...(ngDevMode ? [{ debugName: "className" }] : /* istanbul ignore next */ []));
5654
+ tabIndex = input(/* @ts-ignore */
5655
+ ...(ngDevMode ? [undefined, { debugName: "tabIndex" }] : /* istanbul ignore next */ []));
5656
+ props = input(/* @ts-ignore */
5657
+ ...(ngDevMode ? [undefined, { debugName: "props" }] : /* istanbul ignore next */ []));
5658
+ meta = input(/* @ts-ignore */
5659
+ ...(ngDevMode ? [undefined, { debugName: "meta" }] : /* istanbul ignore next */ []));
5660
+ validationMessages = input(/* @ts-ignore */
5661
+ ...(ngDevMode ? [undefined, { debugName: "validationMessages" }] : /* istanbul ignore next */ []));
5662
+ defaultValidationMessages = input(/* @ts-ignore */
5663
+ ...(ngDevMode ? [undefined, { debugName: "defaultValidationMessages" }] : /* istanbul ignore next */ []));
5579
5664
  // MARK: View children
5580
- calendar = viewChild.required(MatCalendar);
5665
+ calendar = viewChild.required(MatCalendar, /* @ts-ignore */
5666
+ ...(ngDevMode ? [{ debugName: "calendar" }] : /* istanbul ignore next */ []));
5581
5667
  startDateInputElement = viewChild('startDateInput', { ...(ngDevMode ? { debugName: "startDateInputElement" } : /* istanbul ignore next */ {}), read: ElementRef });
5582
5668
  endDateInputElement = viewChild('endDateInput', { ...(ngDevMode ? { debugName: "endDateInputElement" } : /* istanbul ignore next */ {}), read: ElementRef });
5583
5669
  // MARK: Internal signals
5584
- currentDateRangeInputSignal = signal(undefined, ...(ngDevMode ? [{ debugName: "currentDateRangeInputSignal" }] : /* istanbul ignore next */ []));
5585
- currentSelectionModeSignal = signal('single', ...(ngDevMode ? [{ debugName: "currentSelectionModeSignal" }] : /* istanbul ignore next */ []));
5670
+ currentDateRangeInputSignal = signal(undefined, /* @ts-ignore */
5671
+ ...(ngDevMode ? [{ debugName: "currentDateRangeInputSignal" }] : /* istanbul ignore next */ []));
5672
+ currentSelectionModeSignal = signal('single', /* @ts-ignore */
5673
+ ...(ngDevMode ? [{ debugName: "currentSelectionModeSignal" }] : /* istanbul ignore next */ []));
5586
5674
  // MARK: Subscription management
5587
5675
  _sub = cleanSubscription();
5588
5676
  _inputRangeFormSub = cleanSubscription();
@@ -5615,20 +5703,29 @@ class DbxForgeFixedDateRangeFieldComponent {
5615
5703
  // Field tree not yet initialized — fall through to false
5616
5704
  }
5617
5705
  return result;
5618
- }, ...(ngDevMode ? [{ debugName: "isRequiredSignal" }] : /* istanbul ignore next */ []));
5706
+ }, /* @ts-ignore */
5707
+ ...(ngDevMode ? [{ debugName: "isRequiredSignal" }] : /* istanbul ignore next */ []));
5619
5708
  isDisabled = dbxForgeFieldDisabled();
5620
- valueModeSignal = computed(() => this.props()?.valueMode ?? DbxDateTimeValueMode.DATE, ...(ngDevMode ? [{ debugName: "valueModeSignal" }] : /* istanbul ignore next */ []));
5621
- showRangeInputSignal = computed(() => this.props()?.showRangeInput ?? true, ...(ngDevMode ? [{ debugName: "showRangeInputSignal" }] : /* istanbul ignore next */ []));
5622
- showTimezoneSignal = computed(() => this.props()?.showTimezone ?? true, ...(ngDevMode ? [{ debugName: "showTimezoneSignal" }] : /* istanbul ignore next */ []));
5709
+ valueModeSignal = computed(() => this.props()?.valueMode ?? DbxDateTimeValueMode.DATE, /* @ts-ignore */
5710
+ ...(ngDevMode ? [{ debugName: "valueModeSignal" }] : /* istanbul ignore next */ []));
5711
+ showRangeInputSignal = computed(() => this.props()?.showRangeInput ?? true, /* @ts-ignore */
5712
+ ...(ngDevMode ? [{ debugName: "showRangeInputSignal" }] : /* istanbul ignore next */ []));
5713
+ showTimezoneSignal = computed(() => this.props()?.showTimezone ?? true, /* @ts-ignore */
5714
+ ...(ngDevMode ? [{ debugName: "showTimezoneSignal" }] : /* istanbul ignore next */ []));
5623
5715
  // Error handling
5624
5716
  resolvedErrors = createResolvedErrorsSignal(this.field, this.validationMessages, this.defaultValidationMessages);
5625
5717
  showErrors = shouldShowErrors(this.field);
5626
- errorsToDisplaySignal = computed(() => (this.showErrors() ? this.resolvedErrors() : []), ...(ngDevMode ? [{ debugName: "errorsToDisplaySignal" }] : /* istanbul ignore next */ []));
5718
+ errorsToDisplaySignal = computed(() => (this.showErrors() ? this.resolvedErrors() : []), /* @ts-ignore */
5719
+ ...(ngDevMode ? [{ debugName: "errorsToDisplaySignal" }] : /* istanbul ignore next */ []));
5627
5720
  // ARIA
5628
- hintIdSignal = computed(() => `${this.key()}-hint`, ...(ngDevMode ? [{ debugName: "hintIdSignal" }] : /* istanbul ignore next */ []));
5629
- errorIdSignal = computed(() => `${this.key()}-error`, ...(ngDevMode ? [{ debugName: "errorIdSignal" }] : /* istanbul ignore next */ []));
5630
- ariaInvalidSignal = computed(() => (this.showErrors() ? 'true' : null), ...(ngDevMode ? [{ debugName: "ariaInvalidSignal" }] : /* istanbul ignore next */ []));
5631
- ariaRequiredSignal = computed(() => (this.field()().required() ? 'true' : null), ...(ngDevMode ? [{ debugName: "ariaRequiredSignal" }] : /* istanbul ignore next */ []));
5721
+ hintIdSignal = computed(() => `${this.key()}-hint`, /* @ts-ignore */
5722
+ ...(ngDevMode ? [{ debugName: "hintIdSignal" }] : /* istanbul ignore next */ []));
5723
+ errorIdSignal = computed(() => `${this.key()}-error`, /* @ts-ignore */
5724
+ ...(ngDevMode ? [{ debugName: "errorIdSignal" }] : /* istanbul ignore next */ []));
5725
+ ariaInvalidSignal = computed(() => (this.showErrors() ? 'true' : null), /* @ts-ignore */
5726
+ ...(ngDevMode ? [{ debugName: "ariaInvalidSignal" }] : /* istanbul ignore next */ []));
5727
+ ariaRequiredSignal = computed(() => (this.field()().required() ? 'true' : null), /* @ts-ignore */
5728
+ ...(ngDevMode ? [{ debugName: "ariaRequiredSignal" }] : /* istanbul ignore next */ []));
5632
5729
  ariaDescribedBySignal = computed(() => {
5633
5730
  const errorId = this.errorIdSignal();
5634
5731
  const props = this.props();
@@ -5641,7 +5738,8 @@ class DbxForgeFixedDateRangeFieldComponent {
5641
5738
  result = hintId;
5642
5739
  }
5643
5740
  return result;
5644
- }, ...(ngDevMode ? [{ debugName: "ariaDescribedBySignal" }] : /* istanbul ignore next */ []));
5741
+ }, /* @ts-ignore */
5742
+ ...(ngDevMode ? [{ debugName: "ariaDescribedBySignal" }] : /* istanbul ignore next */ []));
5645
5743
  hasRequiredErrorSignal = computed(() => {
5646
5744
  let result = false;
5647
5745
  try {
@@ -5659,7 +5757,8 @@ class DbxForgeFixedDateRangeFieldComponent {
5659
5757
  // Field tree not yet initialized — fall through to false
5660
5758
  }
5661
5759
  return result;
5662
- }, ...(ngDevMode ? [{ debugName: "hasRequiredErrorSignal" }] : /* istanbul ignore next */ []));
5760
+ }, /* @ts-ignore */
5761
+ ...(ngDevMode ? [{ debugName: "hasRequiredErrorSignal" }] : /* istanbul ignore next */ []));
5663
5762
  // MARK: Field value reading
5664
5763
  fieldValueSignal = computed(() => {
5665
5764
  let result = undefined;
@@ -5671,7 +5770,8 @@ class DbxForgeFixedDateRangeFieldComponent {
5671
5770
  // Field tree not yet initialized — fall through to undefined
5672
5771
  }
5673
5772
  return result;
5674
- }, ...(ngDevMode ? [{ debugName: "fieldValueSignal" }] : /* istanbul ignore next */ []));
5773
+ }, /* @ts-ignore */
5774
+ ...(ngDevMode ? [{ debugName: "fieldValueSignal" }] : /* istanbul ignore next */ []));
5675
5775
  fieldValue$ = toObservable(this.fieldValueSignal);
5676
5776
  // MARK: Observable pipelines
5677
5777
  config$ = this._config.pipe(map((x) => x ?? of({})), switchMap((x) => x), distinctUntilChanged(), shareReplay(1));
@@ -5885,7 +5985,9 @@ class DbxForgeFixedDateRangeFieldComponent {
5885
5985
  // The old switchMap pattern re-subscribed to dateRangeSelection (which has shareReplay(1))
5886
5986
  // whenever the field value changed externally, causing the cached user selection to replay
5887
5987
  // and overwrite the external value.
5888
- this._sub.subscription = dateRangeSelection.pipe(skipAllInitialMaybe(), withLatestFrom(this.valueInSystemTimezone$, this.timezoneInstance$.pipe(map((timezoneInstance) => fixedDateRangeOutputValueFactory(this.valueModeSignal(), timezoneInstance)))), throttleTime(TIME_OUTPUT_THROTTLE_TIME, undefined, { leading: false, trailing: true })).subscribe(([rawValue, currentValue, valueFactory]) => {
5988
+ this._sub.subscription = dateRangeSelection
5989
+ .pipe(skipAllInitialMaybe(), withLatestFrom(this.valueInSystemTimezone$, this.timezoneInstance$.pipe(map((timezoneInstance) => fixedDateRangeOutputValueFactory(this.valueModeSignal(), timezoneInstance)))), throttleTime(TIME_OUTPUT_THROTTLE_TIME, undefined, { leading: false, trailing: true }))
5990
+ .subscribe(([rawValue, currentValue, valueFactory]) => {
5889
5991
  const value = rawValue ? valueFactory(rawValue) : null;
5890
5992
  const isSameRange = dbxDateRangeIsSameDateRangeFieldValue(value, currentValue);
5891
5993
  if (!isSameRange) {
@@ -6019,17 +6121,17 @@ class DbxForgeFixedDateRangeFieldComponent {
6019
6121
  // Field may not be ready
6020
6122
  }
6021
6123
  }
6022
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeFixedDateRangeFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6023
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.11", type: DbxForgeFixedDateRangeFieldComponent, isStandalone: true, selector: "dbx-forge-fixeddaterange-field", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, key: { classPropertyName: "key", publicName: "key", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: true, isRequired: false, transformFunction: null }, props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null }, meta: { classPropertyName: "meta", publicName: "meta", isSignal: true, isRequired: false, transformFunction: null }, validationMessages: { classPropertyName: "validationMessages", publicName: "validationMessages", isSignal: true, isRequired: false, transformFunction: null }, defaultValidationMessages: { classPropertyName: "defaultValidationMessages", publicName: "defaultValidationMessages", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
6124
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeFixedDateRangeFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6125
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: DbxForgeFixedDateRangeFieldComponent, isStandalone: true, selector: "dbx-forge-fixeddaterange-field", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, key: { classPropertyName: "key", publicName: "key", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: true, isRequired: false, transformFunction: null }, props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null }, meta: { classPropertyName: "meta", publicName: "meta", isSignal: true, isRequired: false, transformFunction: null }, validationMessages: { classPropertyName: "validationMessages", publicName: "validationMessages", isSignal: true, isRequired: false, transformFunction: null }, defaultValidationMessages: { classPropertyName: "defaultValidationMessages", publicName: "defaultValidationMessages", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
6024
6126
  {
6025
6127
  provide: MAT_DATE_RANGE_SELECTION_STRATEGY,
6026
6128
  useClass: forwardRef(() => DbxForgeFixedDateRangeFieldSelectionStrategy)
6027
6129
  }
6028
- ], viewQueries: [{ propertyName: "calendar", first: true, predicate: MatCalendar, descendants: true, isSignal: true }, { propertyName: "startDateInputElement", first: true, predicate: ["startDateInput"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "endDateInputElement", first: true, predicate: ["endDateInput"], descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: "<div class=\"dbx-fixeddaterange-field\">\n <mat-calendar #calendarView [selected]=\"calendarSelectionSignal()\" [dateFilter]=\"pickerFilterSignal()\" [minDate]=\"minDateSignal()\" [maxDate]=\"maxDateSignal()\" (selectedChange)=\"selectedChange($event)\" [attr.aria-invalid]=\"ariaInvalidSignal()\" [attr.aria-describedby]=\"ariaDescribedBySignal()\"></mat-calendar>\n <mat-form-field class=\"dbx-fixeddaterange-field-input\" appearance=\"fill\">\n @if (showRangeInputSignal()) {\n <mat-date-range-input [formGroup]=\"inputRangeForm\">\n <input #startDateInput matStartDate formControlName=\"start\" placeholder=\"Start date\" />\n <input #endDateInput [ngClass]=\"endDisabledSignal() ? 'dbx-fixeddaterange-field-input-end' : ''\" [attr.tabindex]=\"endDisabledSignal() ? -1 : 0\" matEndDate formControlName=\"end\" placeholder=\"End date\" />\n </mat-date-range-input>\n }\n </mat-form-field>\n @if (errorsToDisplaySignal()[0]; as error) {\n <mat-error [id]=\"errorIdSignal()\">{{ error.message }}</mat-error>\n } @else if (props()?.hint; as hint) {\n <mat-hint [id]=\"hintIdSignal()\">{{ hint }}</mat-hint>\n }\n</div>\n", dependencies: [{ kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i3.MatCalendar, selector: "mat-calendar", inputs: ["headerComponent", "startAt", "startView", "selected", "minDate", "maxDate", "dateFilter", "dateClass", "comparisonStart", "comparisonEnd", "startDateAccessibleName", "endDateAccessibleName"], outputs: ["selectedChange", "yearSelected", "monthSelected", "viewChanged", "_userSelection", "_userDragDrop"], exportAs: ["matCalendar"] }, { kind: "component", type: i3.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i3.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i3.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1$2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i1$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6130
+ ], viewQueries: [{ propertyName: "calendar", first: true, predicate: MatCalendar, descendants: true, isSignal: true }, { propertyName: "startDateInputElement", first: true, predicate: ["startDateInput"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "endDateInputElement", first: true, predicate: ["endDateInput"], descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: "<div class=\"dbx-fixeddaterange-field\">\n <mat-calendar #calendarView [selected]=\"calendarSelectionSignal()\" [dateFilter]=\"pickerFilterSignal()\" [minDate]=\"minDateSignal()\" [maxDate]=\"maxDateSignal()\" (selectedChange)=\"selectedChange($event)\" [attr.aria-invalid]=\"ariaInvalidSignal()\" [attr.aria-describedby]=\"ariaDescribedBySignal()\"></mat-calendar>\n <mat-form-field class=\"dbx-fixeddaterange-field-input\" appearance=\"fill\">\n @if (showRangeInputSignal()) {\n <mat-date-range-input [formGroup]=\"inputRangeForm\">\n <input #startDateInput matStartDate formControlName=\"start\" placeholder=\"Start date\" />\n <input #endDateInput [ngClass]=\"endDisabledSignal() ? 'dbx-fixeddaterange-field-input-end' : ''\" [attr.tabindex]=\"endDisabledSignal() ? -1 : 0\" matEndDate formControlName=\"end\" placeholder=\"End date\" />\n </mat-date-range-input>\n }\n </mat-form-field>\n @if (errorsToDisplaySignal()[0]; as error) {\n <mat-error [id]=\"errorIdSignal()\">{{ error.message }}</mat-error>\n } @else if (props()?.hint; as hint) {\n <mat-hint [id]=\"hintIdSignal()\">{{ hint }}</mat-hint>\n }\n</div>\n", dependencies: [{ kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i3.MatCalendar, selector: "mat-calendar", inputs: ["headerComponent", "startAt", "startView", "selected", "minDate", "maxDate", "dateFilter", "dateClass", "comparisonStart", "comparisonEnd", "startDateAccessibleName", "endDateAccessibleName"], outputs: ["selectedChange", "yearSelected", "monthSelected", "viewChanged", "_userSelection", "_userDragDrop"], exportAs: ["matCalendar"] }, { kind: "component", type: i3.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i3.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i3.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1$2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i1$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$4.DefaultValueAccessor, selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
6029
6131
  }
6030
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeFixedDateRangeFieldComponent, decorators: [{
6132
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeFixedDateRangeFieldComponent, decorators: [{
6031
6133
  type: Component,
6032
- args: [{ selector: 'dbx-forge-fixeddaterange-field', standalone: true, imports: [MatDatepickerModule, MatFormFieldModule, ReactiveFormsModule, MatInputModule, MatError, NgClass], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
6134
+ args: [{ selector: 'dbx-forge-fixeddaterange-field', imports: [MatDatepickerModule, MatFormFieldModule, ReactiveFormsModule, MatInputModule, MatError, NgClass], providers: [
6033
6135
  {
6034
6136
  provide: MAT_DATE_RANGE_SELECTION_STRATEGY,
6035
6137
  useClass: forwardRef(() => DbxForgeFixedDateRangeFieldSelectionStrategy)
@@ -6085,10 +6187,10 @@ class DbxForgeFixedDateRangeFieldSelectionStrategy {
6085
6187
  const year = date.getFullYear();
6086
6188
  return this._dateAdapter.createDate(year, monthIndex, day);
6087
6189
  }
6088
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeFixedDateRangeFieldSelectionStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
6089
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeFixedDateRangeFieldSelectionStrategy });
6190
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeFixedDateRangeFieldSelectionStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
6191
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeFixedDateRangeFieldSelectionStrategy });
6090
6192
  }
6091
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeFixedDateRangeFieldSelectionStrategy, decorators: [{
6193
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeFixedDateRangeFieldSelectionStrategy, decorators: [{
6092
6194
  type: Injectable
6093
6195
  }] });
6094
6196
  // MARK: Mapper
@@ -6182,7 +6284,8 @@ const DEFAULT_DURATION_PICKER_POPOVER_KEY = 'durationpicker';
6182
6284
  * ```
6183
6285
  */
6184
6286
  class DbxDurationPickerPopoverComponent extends AbstractPopoverDirective {
6185
- durationData = signal(this.popover.data?.current ?? {}, ...(ngDevMode ? [{ debugName: "durationData" }] : /* istanbul ignore next */ []));
6287
+ durationData = signal(this.popover.data?.current ?? {}, /* @ts-ignore */
6288
+ ...(ngDevMode ? [{ debugName: "durationData" }] : /* istanbul ignore next */ []));
6186
6289
  units = [...(this.popover.data?.units ?? ['d', 'h', 'min', 's'])].reverse();
6187
6290
  _onChange = this.popover.data?.onChange;
6188
6291
  _minMs = this.popover.data?.minMs;
@@ -6410,12 +6513,12 @@ class DbxDurationPickerPopoverComponent extends AbstractPopoverDirective {
6410
6513
  }
6411
6514
  return false;
6412
6515
  }
6413
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxDurationPickerPopoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6414
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.11", type: DbxDurationPickerPopoverComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-duration-picker\">\n @for (unit of units; track unit) {\n <div class=\"dbx-duration-picker-column\">\n <span class=\"dbx-duration-picker-label\">{{ unitLabel(unit) }}</span>\n <button mat-icon-button type=\"button\" (mousedown)=\"onHoldStart('increment', unit, $event)\" (mouseup)=\"stopHold()\" (mouseleave)=\"stopHold()\" (keydown.arrowup)=\"onHoldStart('increment', unit, $event)\" (keydown.arrowdown)=\"onHoldStart('decrement', unit, $event)\" (keyup)=\"onKeyUp($event)\" [disabled]=\"!canIncrement(unit)\" aria-label=\"Increase\">\n <mat-icon>add</mat-icon>\n </button>\n <span class=\"dbx-duration-picker-value\">{{ getValue(unit) }}</span>\n <button mat-icon-button type=\"button\" (mousedown)=\"onHoldStart('decrement', unit, $event)\" (mouseup)=\"stopHold()\" (mouseleave)=\"stopHold()\" (keydown.arrowup)=\"onHoldStart('increment', unit, $event)\" (keydown.arrowdown)=\"onHoldStart('decrement', unit, $event)\" (keyup)=\"onKeyUp($event)\" [disabled]=\"!canDecrement(unit)\" aria-label=\"Decrease\">\n <mat-icon>remove</mat-icon>\n </button>\n </div>\n }\n</div>\n", dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6516
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxDurationPickerPopoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6517
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: DbxDurationPickerPopoverComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-duration-picker\">\n @for (unit of units; track unit) {\n <div class=\"dbx-duration-picker-column\">\n <span class=\"dbx-duration-picker-label\">{{ unitLabel(unit) }}</span>\n <button\n mat-icon-button\n type=\"button\"\n (mousedown)=\"onHoldStart('increment', unit, $event)\"\n (mouseup)=\"stopHold()\"\n (mouseleave)=\"stopHold()\"\n (keydown.arrowup)=\"onHoldStart('increment', unit, $event)\"\n (keydown.arrowdown)=\"onHoldStart('decrement', unit, $event)\"\n (keyup)=\"onKeyUp($event)\"\n [disabled]=\"!canIncrement(unit)\"\n aria-label=\"Increase\">\n <mat-icon>add</mat-icon>\n </button>\n <span class=\"dbx-duration-picker-value\">{{ getValue(unit) }}</span>\n <button\n mat-icon-button\n type=\"button\"\n (mousedown)=\"onHoldStart('decrement', unit, $event)\"\n (mouseup)=\"stopHold()\"\n (mouseleave)=\"stopHold()\"\n (keydown.arrowup)=\"onHoldStart('increment', unit, $event)\"\n (keydown.arrowdown)=\"onHoldStart('decrement', unit, $event)\"\n (keyup)=\"onKeyUp($event)\"\n [disabled]=\"!canDecrement(unit)\"\n aria-label=\"Decrease\">\n <mat-icon>remove</mat-icon>\n </button>\n </div>\n }\n</div>\n", dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }] });
6415
6518
  }
6416
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxDurationPickerPopoverComponent, decorators: [{
6519
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxDurationPickerPopoverComponent, decorators: [{
6417
6520
  type: Component,
6418
- args: [{ imports: [MatIconModule, MatButtonModule], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<div class=\"dbx-duration-picker\">\n @for (unit of units; track unit) {\n <div class=\"dbx-duration-picker-column\">\n <span class=\"dbx-duration-picker-label\">{{ unitLabel(unit) }}</span>\n <button mat-icon-button type=\"button\" (mousedown)=\"onHoldStart('increment', unit, $event)\" (mouseup)=\"stopHold()\" (mouseleave)=\"stopHold()\" (keydown.arrowup)=\"onHoldStart('increment', unit, $event)\" (keydown.arrowdown)=\"onHoldStart('decrement', unit, $event)\" (keyup)=\"onKeyUp($event)\" [disabled]=\"!canIncrement(unit)\" aria-label=\"Increase\">\n <mat-icon>add</mat-icon>\n </button>\n <span class=\"dbx-duration-picker-value\">{{ getValue(unit) }}</span>\n <button mat-icon-button type=\"button\" (mousedown)=\"onHoldStart('decrement', unit, $event)\" (mouseup)=\"stopHold()\" (mouseleave)=\"stopHold()\" (keydown.arrowup)=\"onHoldStart('increment', unit, $event)\" (keydown.arrowdown)=\"onHoldStart('decrement', unit, $event)\" (keyup)=\"onKeyUp($event)\" [disabled]=\"!canDecrement(unit)\" aria-label=\"Decrease\">\n <mat-icon>remove</mat-icon>\n </button>\n </div>\n }\n</div>\n" }]
6521
+ args: [{ imports: [MatIconModule, MatButtonModule], template: "<div class=\"dbx-duration-picker\">\n @for (unit of units; track unit) {\n <div class=\"dbx-duration-picker-column\">\n <span class=\"dbx-duration-picker-label\">{{ unitLabel(unit) }}</span>\n <button\n mat-icon-button\n type=\"button\"\n (mousedown)=\"onHoldStart('increment', unit, $event)\"\n (mouseup)=\"stopHold()\"\n (mouseleave)=\"stopHold()\"\n (keydown.arrowup)=\"onHoldStart('increment', unit, $event)\"\n (keydown.arrowdown)=\"onHoldStart('decrement', unit, $event)\"\n (keyup)=\"onKeyUp($event)\"\n [disabled]=\"!canIncrement(unit)\"\n aria-label=\"Increase\">\n <mat-icon>add</mat-icon>\n </button>\n <span class=\"dbx-duration-picker-value\">{{ getValue(unit) }}</span>\n <button\n mat-icon-button\n type=\"button\"\n (mousedown)=\"onHoldStart('decrement', unit, $event)\"\n (mouseup)=\"stopHold()\"\n (mouseleave)=\"stopHold()\"\n (keydown.arrowup)=\"onHoldStart('increment', unit, $event)\"\n (keydown.arrowdown)=\"onHoldStart('decrement', unit, $event)\"\n (keyup)=\"onKeyUp($event)\"\n [disabled]=\"!canDecrement(unit)\"\n aria-label=\"Decrease\">\n <mat-icon>remove</mat-icon>\n </button>\n </div>\n }\n</div>\n" }]
6419
6522
  }], ctorParameters: () => [] });
6420
6523
 
6421
6524
  /**
@@ -6433,16 +6536,26 @@ class DbxForgeTimeDurationFieldComponent {
6433
6536
  popoverService = inject(DbxPopoverService);
6434
6537
  elementRef = inject((ElementRef));
6435
6538
  // Standard ng-forge value field inputs
6436
- field = input.required(...(ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []));
6437
- key = input.required(...(ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []));
6438
- label = input(...(ngDevMode ? [undefined, { debugName: "label" }] : /* istanbul ignore next */ []));
6439
- placeholder = input(...(ngDevMode ? [undefined, { debugName: "placeholder" }] : /* istanbul ignore next */ []));
6440
- className = input('', ...(ngDevMode ? [{ debugName: "className" }] : /* istanbul ignore next */ []));
6441
- tabIndex = input(...(ngDevMode ? [undefined, { debugName: "tabIndex" }] : /* istanbul ignore next */ []));
6442
- props = input(...(ngDevMode ? [undefined, { debugName: "props" }] : /* istanbul ignore next */ []));
6443
- meta = input(...(ngDevMode ? [undefined, { debugName: "meta" }] : /* istanbul ignore next */ []));
6444
- validationMessages = input(...(ngDevMode ? [undefined, { debugName: "validationMessages" }] : /* istanbul ignore next */ []));
6445
- defaultValidationMessages = input(...(ngDevMode ? [undefined, { debugName: "defaultValidationMessages" }] : /* istanbul ignore next */ []));
6539
+ field = input.required(/* @ts-ignore */
6540
+ ...(ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []));
6541
+ key = input.required(/* @ts-ignore */
6542
+ ...(ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []));
6543
+ label = input(/* @ts-ignore */
6544
+ ...(ngDevMode ? [undefined, { debugName: "label" }] : /* istanbul ignore next */ []));
6545
+ placeholder = input(/* @ts-ignore */
6546
+ ...(ngDevMode ? [undefined, { debugName: "placeholder" }] : /* istanbul ignore next */ []));
6547
+ className = input('', /* @ts-ignore */
6548
+ ...(ngDevMode ? [{ debugName: "className" }] : /* istanbul ignore next */ []));
6549
+ tabIndex = input(/* @ts-ignore */
6550
+ ...(ngDevMode ? [undefined, { debugName: "tabIndex" }] : /* istanbul ignore next */ []));
6551
+ props = input(/* @ts-ignore */
6552
+ ...(ngDevMode ? [undefined, { debugName: "props" }] : /* istanbul ignore next */ []));
6553
+ meta = input(/* @ts-ignore */
6554
+ ...(ngDevMode ? [undefined, { debugName: "meta" }] : /* istanbul ignore next */ []));
6555
+ validationMessages = input(/* @ts-ignore */
6556
+ ...(ngDevMode ? [undefined, { debugName: "validationMessages" }] : /* istanbul ignore next */ []));
6557
+ defaultValidationMessages = input(/* @ts-ignore */
6558
+ ...(ngDevMode ? [undefined, { debugName: "defaultValidationMessages" }] : /* istanbul ignore next */ []));
6446
6559
  /**
6447
6560
  * Internal FormControl for the text input.
6448
6561
  */
@@ -6453,14 +6566,19 @@ class DbxForgeTimeDurationFieldComponent {
6453
6566
  */
6454
6567
  _currentDurationData = {};
6455
6568
  // Computed props
6456
- effectiveAppearanceSignal = computed(() => this.props()?.appearance ?? this.materialConfig?.appearance ?? 'outline', ...(ngDevMode ? [{ debugName: "effectiveAppearanceSignal" }] : /* istanbul ignore next */ []));
6457
- outputUnitSignal = computed(() => this.props()?.outputUnit ?? 'ms', ...(ngDevMode ? [{ debugName: "outputUnitSignal" }] : /* istanbul ignore next */ []));
6458
- valueModeSignal = computed(() => this.props()?.valueMode ?? 'number', ...(ngDevMode ? [{ debugName: "valueModeSignal" }] : /* istanbul ignore next */ []));
6459
- allowedUnitsSignal = computed(() => this.props()?.allowedUnits ?? ALL_TIME_UNITS, ...(ngDevMode ? [{ debugName: "allowedUnitsSignal" }] : /* istanbul ignore next */ []));
6569
+ effectiveAppearanceSignal = computed(() => this.props()?.appearance ?? this.materialConfig?.appearance ?? 'outline', /* @ts-ignore */
6570
+ ...(ngDevMode ? [{ debugName: "effectiveAppearanceSignal" }] : /* istanbul ignore next */ []));
6571
+ outputUnitSignal = computed(() => this.props()?.outputUnit ?? 'ms', /* @ts-ignore */
6572
+ ...(ngDevMode ? [{ debugName: "outputUnitSignal" }] : /* istanbul ignore next */ []));
6573
+ valueModeSignal = computed(() => this.props()?.valueMode ?? 'number', /* @ts-ignore */
6574
+ ...(ngDevMode ? [{ debugName: "valueModeSignal" }] : /* istanbul ignore next */ []));
6575
+ allowedUnitsSignal = computed(() => this.props()?.allowedUnits ?? ALL_TIME_UNITS, /* @ts-ignore */
6576
+ ...(ngDevMode ? [{ debugName: "allowedUnitsSignal" }] : /* istanbul ignore next */ []));
6460
6577
  pickerUnitsSignal = computed(() => {
6461
6578
  const allowedUnits = this.allowedUnitsSignal();
6462
6579
  return this.props()?.pickerUnits ?? allowedUnits.filter((u) => u !== 'ms');
6463
- }, ...(ngDevMode ? [{ debugName: "pickerUnitsSignal" }] : /* istanbul ignore next */ []));
6580
+ }, /* @ts-ignore */
6581
+ ...(ngDevMode ? [{ debugName: "pickerUnitsSignal" }] : /* istanbul ignore next */ []));
6464
6582
  /**
6465
6583
  * Units used for decomposing/displaying duration text.
6466
6584
  */
@@ -6470,18 +6588,24 @@ class DbxForgeTimeDurationFieldComponent {
6470
6588
  units.push('ms');
6471
6589
  }
6472
6590
  return units;
6473
- }, ...(ngDevMode ? [{ debugName: "displayUnitsSignal" }] : /* istanbul ignore next */ []));
6591
+ }, /* @ts-ignore */
6592
+ ...(ngDevMode ? [{ debugName: "displayUnitsSignal" }] : /* istanbul ignore next */ []));
6474
6593
  // Disabled state
6475
6594
  isDisabled = dbxForgeFieldDisabled();
6476
6595
  // Error handling
6477
6596
  resolvedErrors = createResolvedErrorsSignal(this.field, this.validationMessages, this.defaultValidationMessages);
6478
6597
  showErrors = shouldShowErrors(this.field);
6479
- errorsToDisplaySignal = computed(() => (this.showErrors() ? this.resolvedErrors() : []), ...(ngDevMode ? [{ debugName: "errorsToDisplaySignal" }] : /* istanbul ignore next */ []));
6598
+ errorsToDisplaySignal = computed(() => (this.showErrors() ? this.resolvedErrors() : []), /* @ts-ignore */
6599
+ ...(ngDevMode ? [{ debugName: "errorsToDisplaySignal" }] : /* istanbul ignore next */ []));
6480
6600
  // ARIA
6481
- hintIdSignal = computed(() => `${this.key()}-hint`, ...(ngDevMode ? [{ debugName: "hintIdSignal" }] : /* istanbul ignore next */ []));
6482
- errorIdSignal = computed(() => `${this.key()}-error`, ...(ngDevMode ? [{ debugName: "errorIdSignal" }] : /* istanbul ignore next */ []));
6483
- ariaInvalidSignal = computed(() => (this.showErrors() ? 'true' : null), ...(ngDevMode ? [{ debugName: "ariaInvalidSignal" }] : /* istanbul ignore next */ []));
6484
- ariaRequiredSignal = computed(() => (this.field()().required() ? 'true' : null), ...(ngDevMode ? [{ debugName: "ariaRequiredSignal" }] : /* istanbul ignore next */ []));
6601
+ hintIdSignal = computed(() => `${this.key()}-hint`, /* @ts-ignore */
6602
+ ...(ngDevMode ? [{ debugName: "hintIdSignal" }] : /* istanbul ignore next */ []));
6603
+ errorIdSignal = computed(() => `${this.key()}-error`, /* @ts-ignore */
6604
+ ...(ngDevMode ? [{ debugName: "errorIdSignal" }] : /* istanbul ignore next */ []));
6605
+ ariaInvalidSignal = computed(() => (this.showErrors() ? 'true' : null), /* @ts-ignore */
6606
+ ...(ngDevMode ? [{ debugName: "ariaInvalidSignal" }] : /* istanbul ignore next */ []));
6607
+ ariaRequiredSignal = computed(() => (this.field()().required() ? 'true' : null), /* @ts-ignore */
6608
+ ...(ngDevMode ? [{ debugName: "ariaRequiredSignal" }] : /* istanbul ignore next */ []));
6485
6609
  ariaDescribedBySignal = computed(() => {
6486
6610
  const errorId = this.errorIdSignal();
6487
6611
  const hintId = this.hintIdSignal();
@@ -6490,7 +6614,8 @@ class DbxForgeTimeDurationFieldComponent {
6490
6614
  if (this.props()?.hint)
6491
6615
  return hintId;
6492
6616
  return null;
6493
- }, ...(ngDevMode ? [{ debugName: "ariaDescribedBySignal" }] : /* istanbul ignore next */ []));
6617
+ }, /* @ts-ignore */
6618
+ ...(ngDevMode ? [{ debugName: "ariaDescribedBySignal" }] : /* istanbul ignore next */ []));
6494
6619
  /**
6495
6620
  * Flag to prevent feedback loops during sync.
6496
6621
  */
@@ -6651,12 +6776,12 @@ class DbxForgeTimeDurationFieldComponent {
6651
6776
  }
6652
6777
  return result;
6653
6778
  }
6654
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeTimeDurationFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6655
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.11", type: DbxForgeTimeDurationFieldComponent, isStandalone: true, selector: "dbx-forge-timeduration-field", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, key: { classPropertyName: "key", publicName: "key", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: true, isRequired: false, transformFunction: null }, props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null }, meta: { classPropertyName: "meta", publicName: "meta", isSignal: true, isRequired: false, transformFunction: null }, validationMessages: { classPropertyName: "validationMessages", publicName: "validationMessages", isSignal: true, isRequired: false, transformFunction: null }, defaultValidationMessages: { classPropertyName: "defaultValidationMessages", publicName: "defaultValidationMessages", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "pickerButtonElement", first: true, predicate: ["pickerButton"], descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: "<mat-form-field [appearance]=\"effectiveAppearanceSignal()\" subscriptSizing=\"dynamic\" class=\"dbx-forge-timeduration-field\">\n @if (label()) {\n <mat-label>{{ label() | dynamicText | async }}</mat-label>\n }\n <input matInput type=\"text\" [formControl]=\"textCtrl\" (blur)=\"onTextBlur()\" (keydown.enter)=\"onTextEnter($event)\" placeholder=\"e.g. 2h30m\" [attr.aria-invalid]=\"ariaInvalidSignal()\" [attr.aria-required]=\"ariaRequiredSignal()\" [attr.aria-describedby]=\"ariaDescribedBySignal()\" />\n <button mat-icon-button matSuffix type=\"button\" #pickerButton (click)=\"openPicker()\" [disabled]=\"isDisabled()\" aria-label=\"Open duration picker\">\n <mat-icon>schedule</mat-icon>\n </button>\n @if (errorsToDisplaySignal()[0]; as error) {\n <mat-error [id]=\"errorIdSignal()\">{{ error.message }}</mat-error>\n } @else if (props()?.hint; as hint) {\n <mat-hint [id]=\"hintIdSignal()\">{{ hint | dynamicText | async }}</mat-hint>\n }\n</mat-form-field>\n", dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i1$2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i1$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i1$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: DynamicTextPipe, name: "dynamicText" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6779
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeTimeDurationFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6780
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: DbxForgeTimeDurationFieldComponent, isStandalone: true, selector: "dbx-forge-timeduration-field", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, key: { classPropertyName: "key", publicName: "key", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: true, isRequired: false, transformFunction: null }, props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null }, meta: { classPropertyName: "meta", publicName: "meta", isSignal: true, isRequired: false, transformFunction: null }, validationMessages: { classPropertyName: "validationMessages", publicName: "validationMessages", isSignal: true, isRequired: false, transformFunction: null }, defaultValidationMessages: { classPropertyName: "defaultValidationMessages", publicName: "defaultValidationMessages", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "pickerButtonElement", first: true, predicate: ["pickerButton"], descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: "<mat-form-field [appearance]=\"effectiveAppearanceSignal()\" subscriptSizing=\"dynamic\" class=\"dbx-forge-timeduration-field\">\n @if (label()) {\n <mat-label>{{ label() | dynamicText | async }}</mat-label>\n }\n <input matInput type=\"text\" [formControl]=\"textCtrl\" (blur)=\"onTextBlur()\" (keydown.enter)=\"onTextEnter($event)\" placeholder=\"e.g. 2h30m\" [attr.aria-invalid]=\"ariaInvalidSignal()\" [attr.aria-required]=\"ariaRequiredSignal()\" [attr.aria-describedby]=\"ariaDescribedBySignal()\" />\n <button mat-icon-button matSuffix type=\"button\" #pickerButton (click)=\"openPicker()\" [disabled]=\"isDisabled()\" aria-label=\"Open duration picker\">\n <mat-icon>schedule</mat-icon>\n </button>\n @if (errorsToDisplaySignal()[0]; as error) {\n <mat-error [id]=\"errorIdSignal()\">{{ error.message }}</mat-error>\n } @else if (props()?.hint; as hint) {\n <mat-hint [id]=\"hintIdSignal()\">{{ hint | dynamicText | async }}</mat-hint>\n }\n</mat-form-field>\n", dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i1$2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i1$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i1$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$4.DefaultValueAccessor, selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: DynamicTextPipe, name: "dynamicText" }, { kind: "pipe", type: AsyncPipe, name: "async" }] });
6656
6781
  }
6657
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeTimeDurationFieldComponent, decorators: [{
6782
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeTimeDurationFieldComponent, decorators: [{
6658
6783
  type: Component,
6659
- args: [{ selector: 'dbx-forge-timeduration-field', standalone: true, imports: [MatFormFieldModule, MatInputModule, MatButtonModule, MatIconModule, FormsModule, ReactiveFormsModule, DynamicTextPipe, AsyncPipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-form-field [appearance]=\"effectiveAppearanceSignal()\" subscriptSizing=\"dynamic\" class=\"dbx-forge-timeduration-field\">\n @if (label()) {\n <mat-label>{{ label() | dynamicText | async }}</mat-label>\n }\n <input matInput type=\"text\" [formControl]=\"textCtrl\" (blur)=\"onTextBlur()\" (keydown.enter)=\"onTextEnter($event)\" placeholder=\"e.g. 2h30m\" [attr.aria-invalid]=\"ariaInvalidSignal()\" [attr.aria-required]=\"ariaRequiredSignal()\" [attr.aria-describedby]=\"ariaDescribedBySignal()\" />\n <button mat-icon-button matSuffix type=\"button\" #pickerButton (click)=\"openPicker()\" [disabled]=\"isDisabled()\" aria-label=\"Open duration picker\">\n <mat-icon>schedule</mat-icon>\n </button>\n @if (errorsToDisplaySignal()[0]; as error) {\n <mat-error [id]=\"errorIdSignal()\">{{ error.message }}</mat-error>\n } @else if (props()?.hint; as hint) {\n <mat-hint [id]=\"hintIdSignal()\">{{ hint | dynamicText | async }}</mat-hint>\n }\n</mat-form-field>\n" }]
6784
+ args: [{ selector: 'dbx-forge-timeduration-field', imports: [MatFormFieldModule, MatInputModule, MatButtonModule, MatIconModule, FormsModule, ReactiveFormsModule, DynamicTextPipe, AsyncPipe], template: "<mat-form-field [appearance]=\"effectiveAppearanceSignal()\" subscriptSizing=\"dynamic\" class=\"dbx-forge-timeduration-field\">\n @if (label()) {\n <mat-label>{{ label() | dynamicText | async }}</mat-label>\n }\n <input matInput type=\"text\" [formControl]=\"textCtrl\" (blur)=\"onTextBlur()\" (keydown.enter)=\"onTextEnter($event)\" placeholder=\"e.g. 2h30m\" [attr.aria-invalid]=\"ariaInvalidSignal()\" [attr.aria-required]=\"ariaRequiredSignal()\" [attr.aria-describedby]=\"ariaDescribedBySignal()\" />\n <button mat-icon-button matSuffix type=\"button\" #pickerButton (click)=\"openPicker()\" [disabled]=\"isDisabled()\" aria-label=\"Open duration picker\">\n <mat-icon>schedule</mat-icon>\n </button>\n @if (errorsToDisplaySignal()[0]; as error) {\n <mat-error [id]=\"errorIdSignal()\">{{ error.message }}</mat-error>\n } @else if (props()?.hint; as hint) {\n <mat-hint [id]=\"hintIdSignal()\">{{ hint | dynamicText | async }}</mat-hint>\n }\n</mat-form-field>\n" }]
6660
6785
  }], ctorParameters: () => [], propDecorators: { field: [{ type: i0.Input, args: [{ isSignal: true, alias: "field", required: true }] }], key: [{ type: i0.Input, args: [{ isSignal: true, alias: "key", required: true }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], tabIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "tabIndex", required: false }] }], props: [{ type: i0.Input, args: [{ isSignal: true, alias: "props", required: false }] }], meta: [{ type: i0.Input, args: [{ isSignal: true, alias: "meta", required: false }] }], validationMessages: [{ type: i0.Input, args: [{ isSignal: true, alias: "validationMessages", required: false }] }], defaultValidationMessages: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultValidationMessages", required: false }] }], pickerButtonElement: [{ type: i0.ViewChild, args: ['pickerButton', { ...{ read: ElementRef }, isSignal: true }] }] } });
6661
6786
  // MARK: Mapper
6662
6787
  /**
@@ -6818,16 +6943,26 @@ class DbxForgePhoneFieldComponent {
6818
6943
  destroyRef = inject(DestroyRef);
6819
6944
  elementRef = inject((ElementRef));
6820
6945
  // Standard ng-forge value field inputs
6821
- field = input.required(...(ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []));
6822
- key = input.required(...(ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []));
6823
- label = input(...(ngDevMode ? [undefined, { debugName: "label" }] : /* istanbul ignore next */ []));
6824
- placeholder = input(...(ngDevMode ? [undefined, { debugName: "placeholder" }] : /* istanbul ignore next */ []));
6825
- className = input('', ...(ngDevMode ? [{ debugName: "className" }] : /* istanbul ignore next */ []));
6826
- tabIndex = input(...(ngDevMode ? [undefined, { debugName: "tabIndex" }] : /* istanbul ignore next */ []));
6827
- props = input(...(ngDevMode ? [undefined, { debugName: "props" }] : /* istanbul ignore next */ []));
6828
- meta = input(...(ngDevMode ? [undefined, { debugName: "meta" }] : /* istanbul ignore next */ []));
6829
- validationMessages = input(...(ngDevMode ? [undefined, { debugName: "validationMessages" }] : /* istanbul ignore next */ []));
6830
- defaultValidationMessages = input(...(ngDevMode ? [undefined, { debugName: "defaultValidationMessages" }] : /* istanbul ignore next */ []));
6946
+ field = input.required(/* @ts-ignore */
6947
+ ...(ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []));
6948
+ key = input.required(/* @ts-ignore */
6949
+ ...(ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []));
6950
+ label = input(/* @ts-ignore */
6951
+ ...(ngDevMode ? [undefined, { debugName: "label" }] : /* istanbul ignore next */ []));
6952
+ placeholder = input(/* @ts-ignore */
6953
+ ...(ngDevMode ? [undefined, { debugName: "placeholder" }] : /* istanbul ignore next */ []));
6954
+ className = input('', /* @ts-ignore */
6955
+ ...(ngDevMode ? [{ debugName: "className" }] : /* istanbul ignore next */ []));
6956
+ tabIndex = input(/* @ts-ignore */
6957
+ ...(ngDevMode ? [undefined, { debugName: "tabIndex" }] : /* istanbul ignore next */ []));
6958
+ props = input(/* @ts-ignore */
6959
+ ...(ngDevMode ? [undefined, { debugName: "props" }] : /* istanbul ignore next */ []));
6960
+ meta = input(/* @ts-ignore */
6961
+ ...(ngDevMode ? [undefined, { debugName: "meta" }] : /* istanbul ignore next */ []));
6962
+ validationMessages = input(/* @ts-ignore */
6963
+ ...(ngDevMode ? [undefined, { debugName: "validationMessages" }] : /* istanbul ignore next */ []));
6964
+ defaultValidationMessages = input(/* @ts-ignore */
6965
+ ...(ngDevMode ? [undefined, { debugName: "defaultValidationMessages" }] : /* istanbul ignore next */ []));
6831
6966
  /**
6832
6967
  * Internal FormControl used to bridge ngx-mat-input-tel (reactive forms)
6833
6968
  * with the ng-forge Signal Forms field tree.
@@ -6835,23 +6970,34 @@ class DbxForgePhoneFieldComponent {
6835
6970
  phoneCtrl = new FormControl('');
6836
6971
  extensionCtrl = new FormControl('', { validators: [isPhoneExtension()] });
6837
6972
  // Computed props
6838
- preferredCountriesSignal = computed(() => this.props()?.preferredCountries ?? DEFAULT_FORGE_PREFERRED_COUNTRIES, ...(ngDevMode ? [{ debugName: "preferredCountriesSignal" }] : /* istanbul ignore next */ []));
6839
- onlyCountriesSignal = computed(() => this.props()?.onlyCountries ?? [], ...(ngDevMode ? [{ debugName: "onlyCountriesSignal" }] : /* istanbul ignore next */ []));
6840
- enableSearchSignal = computed(() => this.props()?.enableSearch ?? true, ...(ngDevMode ? [{ debugName: "enableSearchSignal" }] : /* istanbul ignore next */ []));
6841
- allowExtensionSignal = computed(() => this.props()?.allowExtension ?? false, ...(ngDevMode ? [{ debugName: "allowExtensionSignal" }] : /* istanbul ignore next */ []));
6842
- effectiveAppearanceSignal = computed(() => this.props()?.appearance ?? this.materialConfig?.appearance ?? 'outline', ...(ngDevMode ? [{ debugName: "effectiveAppearanceSignal" }] : /* istanbul ignore next */ []));
6843
- effectiveAutocompleteSignal = computed(() => this.props()?.autocomplete ?? 'off', ...(ngDevMode ? [{ debugName: "effectiveAutocompleteSignal" }] : /* istanbul ignore next */ []));
6973
+ preferredCountriesSignal = computed(() => this.props()?.preferredCountries ?? DEFAULT_FORGE_PREFERRED_COUNTRIES, /* @ts-ignore */
6974
+ ...(ngDevMode ? [{ debugName: "preferredCountriesSignal" }] : /* istanbul ignore next */ []));
6975
+ onlyCountriesSignal = computed(() => this.props()?.onlyCountries ?? [], /* @ts-ignore */
6976
+ ...(ngDevMode ? [{ debugName: "onlyCountriesSignal" }] : /* istanbul ignore next */ []));
6977
+ enableSearchSignal = computed(() => this.props()?.enableSearch ?? true, /* @ts-ignore */
6978
+ ...(ngDevMode ? [{ debugName: "enableSearchSignal" }] : /* istanbul ignore next */ []));
6979
+ allowExtensionSignal = computed(() => this.props()?.allowExtension ?? false, /* @ts-ignore */
6980
+ ...(ngDevMode ? [{ debugName: "allowExtensionSignal" }] : /* istanbul ignore next */ []));
6981
+ effectiveAppearanceSignal = computed(() => this.props()?.appearance ?? this.materialConfig?.appearance ?? 'outline', /* @ts-ignore */
6982
+ ...(ngDevMode ? [{ debugName: "effectiveAppearanceSignal" }] : /* istanbul ignore next */ []));
6983
+ effectiveAutocompleteSignal = computed(() => this.props()?.autocomplete ?? 'off', /* @ts-ignore */
6984
+ ...(ngDevMode ? [{ debugName: "effectiveAutocompleteSignal" }] : /* istanbul ignore next */ []));
6844
6985
  // Disabled state
6845
6986
  isDisabled = dbxForgeFieldDisabled();
6846
6987
  // Error handling
6847
6988
  resolvedErrors = createResolvedErrorsSignal(this.field, this.validationMessages, this.defaultValidationMessages);
6848
6989
  showErrors = shouldShowErrors(this.field);
6849
- errorsToDisplaySignal = computed(() => (this.showErrors() ? this.resolvedErrors() : []), ...(ngDevMode ? [{ debugName: "errorsToDisplaySignal" }] : /* istanbul ignore next */ []));
6990
+ errorsToDisplaySignal = computed(() => (this.showErrors() ? this.resolvedErrors() : []), /* @ts-ignore */
6991
+ ...(ngDevMode ? [{ debugName: "errorsToDisplaySignal" }] : /* istanbul ignore next */ []));
6850
6992
  // ARIA
6851
- hintIdSignal = computed(() => `${this.key()}-hint`, ...(ngDevMode ? [{ debugName: "hintIdSignal" }] : /* istanbul ignore next */ []));
6852
- errorIdSignal = computed(() => `${this.key()}-error`, ...(ngDevMode ? [{ debugName: "errorIdSignal" }] : /* istanbul ignore next */ []));
6853
- ariaInvalidSignal = computed(() => (this.showErrors() ? 'true' : null), ...(ngDevMode ? [{ debugName: "ariaInvalidSignal" }] : /* istanbul ignore next */ []));
6854
- ariaRequiredSignal = computed(() => (this.field()().required() ? 'true' : null), ...(ngDevMode ? [{ debugName: "ariaRequiredSignal" }] : /* istanbul ignore next */ []));
6993
+ hintIdSignal = computed(() => `${this.key()}-hint`, /* @ts-ignore */
6994
+ ...(ngDevMode ? [{ debugName: "hintIdSignal" }] : /* istanbul ignore next */ []));
6995
+ errorIdSignal = computed(() => `${this.key()}-error`, /* @ts-ignore */
6996
+ ...(ngDevMode ? [{ debugName: "errorIdSignal" }] : /* istanbul ignore next */ []));
6997
+ ariaInvalidSignal = computed(() => (this.showErrors() ? 'true' : null), /* @ts-ignore */
6998
+ ...(ngDevMode ? [{ debugName: "ariaInvalidSignal" }] : /* istanbul ignore next */ []));
6999
+ ariaRequiredSignal = computed(() => (this.field()().required() ? 'true' : null), /* @ts-ignore */
7000
+ ...(ngDevMode ? [{ debugName: "ariaRequiredSignal" }] : /* istanbul ignore next */ []));
6855
7001
  ariaDescribedBySignal = computed(() => {
6856
7002
  const errorId = this.errorIdSignal();
6857
7003
  const hintId = this.hintIdSignal();
@@ -6860,7 +7006,8 @@ class DbxForgePhoneFieldComponent {
6860
7006
  if (this.props()?.hint)
6861
7007
  return hintId;
6862
7008
  return null;
6863
- }, ...(ngDevMode ? [{ debugName: "ariaDescribedBySignal" }] : /* istanbul ignore next */ []));
7009
+ }, /* @ts-ignore */
7010
+ ...(ngDevMode ? [{ debugName: "ariaDescribedBySignal" }] : /* istanbul ignore next */ []));
6864
7011
  /**
6865
7012
  * Flag to prevent feedback loops during sync.
6866
7013
  */
@@ -6935,12 +7082,12 @@ class DbxForgePhoneFieldComponent {
6935
7082
  }
6936
7083
  this._syncing = false;
6937
7084
  }
6938
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgePhoneFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6939
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.11", type: DbxForgePhoneFieldComponent, isStandalone: true, selector: "dbx-forge-phone-field", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, key: { classPropertyName: "key", publicName: "key", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: true, isRequired: false, transformFunction: null }, props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null }, meta: { classPropertyName: "meta", publicName: "meta", isSignal: true, isRequired: false, transformFunction: null }, validationMessages: { classPropertyName: "validationMessages", publicName: "validationMessages", isSignal: true, isRequired: false, transformFunction: null }, defaultValidationMessages: { classPropertyName: "defaultValidationMessages", publicName: "defaultValidationMessages", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<mat-form-field [appearance]=\"effectiveAppearanceSignal()\" subscriptSizing=\"dynamic\">\n @if (label()) {\n <mat-label>{{ label() | dynamicText | async }}</mat-label>\n }\n <div class=\"dbx-form-phone-field\">\n <ngx-mat-input-tel\n name=\"phone\"\n class=\"dbx-form-phone-field-phone-content\"\n [formControl]=\"phoneCtrl\"\n [autocomplete]=\"effectiveAutocompleteSignal()\"\n [enableSearch]=\"enableSearchSignal()\"\n [preferredCountries]=\"preferredCountriesSignal()\"\n [onlyCountries]=\"onlyCountriesSignal()\"\n [enablePlaceholder]=\"false\"\n [placeholder]=\"(placeholder() | dynamicText | async) ?? ''\"\n [attr.aria-invalid]=\"ariaInvalidSignal()\"\n [attr.aria-required]=\"ariaRequiredSignal()\"\n [attr.aria-describedby]=\"ariaDescribedBySignal()\"></ngx-mat-input-tel>\n @if (allowExtensionSignal()) {\n <div class=\"dbx-form-phone-field-extension-content\">\n <span class=\"dbx-hint dbx-button-spacer\">Ext.</span>\n <input name=\"phone-extension\" class=\"dbx-form-phone-field-extension-input\" placeholder=\"123\" minlength=\"0\" maxlength=\"6\" [formControl]=\"extensionCtrl\" aria-label=\"Phone extension\" />\n </div>\n }\n </div>\n @if (errorsToDisplaySignal()[0]; as error) {\n <mat-error [id]=\"errorIdSignal()\">{{ error.message }}</mat-error>\n } @else if (props()?.hint; as hint) {\n <mat-hint [id]=\"hintIdSignal()\">{{ hint | dynamicText | async }}</mat-hint>\n }\n</mat-form-field>\n", styles: [":host{display:block;width:100%}:host mat-form-field{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i1$2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i1$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i1$4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: NgxMatInputTelComponent, selector: "ngx-mat-input-tel", inputs: ["autocomplete", "ariaLabel", "cssClass", "defaultCountry", "errorStateMatcher", "maxLength", "name", "placeholder", "countriesName", "preferredCountries", "onlyCountries", "searchPlaceholder", "validation", "enablePlaceholder", "enableSearch", "resetOnChange", "separateDialCode", "hideAreaCodes", "format", "required", "disabled"], outputs: ["countryChanged"] }, { kind: "pipe", type: DynamicTextPipe, name: "dynamicText" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
7085
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgePhoneFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7086
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: DbxForgePhoneFieldComponent, isStandalone: true, selector: "dbx-forge-phone-field", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, key: { classPropertyName: "key", publicName: "key", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: true, isRequired: false, transformFunction: null }, props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null }, meta: { classPropertyName: "meta", publicName: "meta", isSignal: true, isRequired: false, transformFunction: null }, validationMessages: { classPropertyName: "validationMessages", publicName: "validationMessages", isSignal: true, isRequired: false, transformFunction: null }, defaultValidationMessages: { classPropertyName: "defaultValidationMessages", publicName: "defaultValidationMessages", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<mat-form-field [appearance]=\"effectiveAppearanceSignal()\" subscriptSizing=\"dynamic\">\n @if (label()) {\n <mat-label>{{ label() | dynamicText | async }}</mat-label>\n }\n <div class=\"dbx-form-phone-field\">\n <ngx-mat-input-tel\n name=\"phone\"\n class=\"dbx-form-phone-field-phone-content\"\n [formControl]=\"phoneCtrl\"\n [autocomplete]=\"effectiveAutocompleteSignal()\"\n [enableSearch]=\"enableSearchSignal()\"\n [preferredCountries]=\"preferredCountriesSignal()\"\n [onlyCountries]=\"onlyCountriesSignal()\"\n [enablePlaceholder]=\"false\"\n [placeholder]=\"(placeholder() | dynamicText | async) ?? ''\"\n [attr.aria-invalid]=\"ariaInvalidSignal()\"\n [attr.aria-required]=\"ariaRequiredSignal()\"\n [attr.aria-describedby]=\"ariaDescribedBySignal()\"></ngx-mat-input-tel>\n @if (allowExtensionSignal()) {\n <div class=\"dbx-form-phone-field-extension-content\">\n <span class=\"dbx-hint dbx-button-spacer\">Ext.</span>\n <input name=\"phone-extension\" class=\"dbx-form-phone-field-extension-input\" placeholder=\"123\" minlength=\"0\" maxlength=\"6\" [formControl]=\"extensionCtrl\" aria-label=\"Phone extension\" />\n </div>\n }\n </div>\n @if (errorsToDisplaySignal()[0]; as error) {\n <mat-error [id]=\"errorIdSignal()\">{{ error.message }}</mat-error>\n } @else if (props()?.hint; as hint) {\n <mat-hint [id]=\"hintIdSignal()\">{{ hint | dynamicText | async }}</mat-hint>\n }\n</mat-form-field>\n", styles: [":host{display:block;width:100%}:host mat-form-field{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i1$2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i1$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$4.DefaultValueAccessor, selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i1$4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: NgxMatInputTelComponent, selector: "ngx-mat-input-tel", inputs: ["autocomplete", "ariaLabel", "cssClass", "defaultCountry", "errorStateMatcher", "maxLength", "name", "placeholder", "countriesName", "preferredCountries", "onlyCountries", "searchPlaceholder", "validation", "enablePlaceholder", "enableSearch", "resetOnChange", "separateDialCode", "hideAreaCodes", "format", "required", "disabled"], outputs: ["countryChanged"] }, { kind: "pipe", type: DynamicTextPipe, name: "dynamicText" }, { kind: "pipe", type: AsyncPipe, name: "async" }] });
6940
7087
  }
6941
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgePhoneFieldComponent, decorators: [{
7088
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgePhoneFieldComponent, decorators: [{
6942
7089
  type: Component,
6943
- args: [{ selector: 'dbx-forge-phone-field', standalone: true, imports: [MatFormFieldModule, MatInputModule, ReactiveFormsModule, NgxMatInputTelComponent, DynamicTextPipe, AsyncPipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-form-field [appearance]=\"effectiveAppearanceSignal()\" subscriptSizing=\"dynamic\">\n @if (label()) {\n <mat-label>{{ label() | dynamicText | async }}</mat-label>\n }\n <div class=\"dbx-form-phone-field\">\n <ngx-mat-input-tel\n name=\"phone\"\n class=\"dbx-form-phone-field-phone-content\"\n [formControl]=\"phoneCtrl\"\n [autocomplete]=\"effectiveAutocompleteSignal()\"\n [enableSearch]=\"enableSearchSignal()\"\n [preferredCountries]=\"preferredCountriesSignal()\"\n [onlyCountries]=\"onlyCountriesSignal()\"\n [enablePlaceholder]=\"false\"\n [placeholder]=\"(placeholder() | dynamicText | async) ?? ''\"\n [attr.aria-invalid]=\"ariaInvalidSignal()\"\n [attr.aria-required]=\"ariaRequiredSignal()\"\n [attr.aria-describedby]=\"ariaDescribedBySignal()\"></ngx-mat-input-tel>\n @if (allowExtensionSignal()) {\n <div class=\"dbx-form-phone-field-extension-content\">\n <span class=\"dbx-hint dbx-button-spacer\">Ext.</span>\n <input name=\"phone-extension\" class=\"dbx-form-phone-field-extension-input\" placeholder=\"123\" minlength=\"0\" maxlength=\"6\" [formControl]=\"extensionCtrl\" aria-label=\"Phone extension\" />\n </div>\n }\n </div>\n @if (errorsToDisplaySignal()[0]; as error) {\n <mat-error [id]=\"errorIdSignal()\">{{ error.message }}</mat-error>\n } @else if (props()?.hint; as hint) {\n <mat-hint [id]=\"hintIdSignal()\">{{ hint | dynamicText | async }}</mat-hint>\n }\n</mat-form-field>\n", styles: [":host{display:block;width:100%}:host mat-form-field{width:100%}\n"] }]
7090
+ args: [{ selector: 'dbx-forge-phone-field', imports: [MatFormFieldModule, MatInputModule, ReactiveFormsModule, NgxMatInputTelComponent, DynamicTextPipe, AsyncPipe], template: "<mat-form-field [appearance]=\"effectiveAppearanceSignal()\" subscriptSizing=\"dynamic\">\n @if (label()) {\n <mat-label>{{ label() | dynamicText | async }}</mat-label>\n }\n <div class=\"dbx-form-phone-field\">\n <ngx-mat-input-tel\n name=\"phone\"\n class=\"dbx-form-phone-field-phone-content\"\n [formControl]=\"phoneCtrl\"\n [autocomplete]=\"effectiveAutocompleteSignal()\"\n [enableSearch]=\"enableSearchSignal()\"\n [preferredCountries]=\"preferredCountriesSignal()\"\n [onlyCountries]=\"onlyCountriesSignal()\"\n [enablePlaceholder]=\"false\"\n [placeholder]=\"(placeholder() | dynamicText | async) ?? ''\"\n [attr.aria-invalid]=\"ariaInvalidSignal()\"\n [attr.aria-required]=\"ariaRequiredSignal()\"\n [attr.aria-describedby]=\"ariaDescribedBySignal()\"></ngx-mat-input-tel>\n @if (allowExtensionSignal()) {\n <div class=\"dbx-form-phone-field-extension-content\">\n <span class=\"dbx-hint dbx-button-spacer\">Ext.</span>\n <input name=\"phone-extension\" class=\"dbx-form-phone-field-extension-input\" placeholder=\"123\" minlength=\"0\" maxlength=\"6\" [formControl]=\"extensionCtrl\" aria-label=\"Phone extension\" />\n </div>\n }\n </div>\n @if (errorsToDisplaySignal()[0]; as error) {\n <mat-error [id]=\"errorIdSignal()\">{{ error.message }}</mat-error>\n } @else if (props()?.hint; as hint) {\n <mat-hint [id]=\"hintIdSignal()\">{{ hint | dynamicText | async }}</mat-hint>\n }\n</mat-form-field>\n", styles: [":host{display:block;width:100%}:host mat-form-field{width:100%}\n"] }]
6944
7091
  }], ctorParameters: () => [], propDecorators: { field: [{ type: i0.Input, args: [{ isSignal: true, alias: "field", required: true }] }], key: [{ type: i0.Input, args: [{ isSignal: true, alias: "key", required: true }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], tabIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "tabIndex", required: false }] }], props: [{ type: i0.Input, args: [{ isSignal: true, alias: "props", required: false }] }], meta: [{ type: i0.Input, args: [{ isSignal: true, alias: "meta", required: false }] }], validationMessages: [{ type: i0.Input, args: [{ isSignal: true, alias: "validationMessages", required: false }] }], defaultValidationMessages: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultValidationMessages", required: false }] }] } });
6945
7092
  // MARK: Mapper
6946
7093
  /**
@@ -7022,42 +7169,63 @@ class DbxForgeValueSelectionFieldComponent {
7022
7169
  materialConfig = inject(MATERIAL_CONFIG, { optional: true });
7023
7170
  elementRef = inject((ElementRef));
7024
7171
  // ng-forge ValueFieldComponent inputs
7025
- field = input.required(...(ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []));
7026
- key = input.required(...(ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []));
7027
- label = input(...(ngDevMode ? [undefined, { debugName: "label" }] : /* istanbul ignore next */ []));
7028
- placeholder = input(...(ngDevMode ? [undefined, { debugName: "placeholder" }] : /* istanbul ignore next */ []));
7029
- className = input('', ...(ngDevMode ? [{ debugName: "className" }] : /* istanbul ignore next */ []));
7030
- tabIndex = input(...(ngDevMode ? [undefined, { debugName: "tabIndex" }] : /* istanbul ignore next */ []));
7031
- props = input(...(ngDevMode ? [undefined, { debugName: "props" }] : /* istanbul ignore next */ []));
7032
- meta = input(...(ngDevMode ? [undefined, { debugName: "meta" }] : /* istanbul ignore next */ []));
7033
- validationMessages = input(...(ngDevMode ? [undefined, { debugName: "validationMessages" }] : /* istanbul ignore next */ []));
7034
- defaultValidationMessages = input(...(ngDevMode ? [undefined, { debugName: "defaultValidationMessages" }] : /* istanbul ignore next */ []));
7172
+ field = input.required(/* @ts-ignore */
7173
+ ...(ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []));
7174
+ key = input.required(/* @ts-ignore */
7175
+ ...(ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []));
7176
+ label = input(/* @ts-ignore */
7177
+ ...(ngDevMode ? [undefined, { debugName: "label" }] : /* istanbul ignore next */ []));
7178
+ placeholder = input(/* @ts-ignore */
7179
+ ...(ngDevMode ? [undefined, { debugName: "placeholder" }] : /* istanbul ignore next */ []));
7180
+ className = input('', /* @ts-ignore */
7181
+ ...(ngDevMode ? [{ debugName: "className" }] : /* istanbul ignore next */ []));
7182
+ tabIndex = input(/* @ts-ignore */
7183
+ ...(ngDevMode ? [undefined, { debugName: "tabIndex" }] : /* istanbul ignore next */ []));
7184
+ props = input(/* @ts-ignore */
7185
+ ...(ngDevMode ? [undefined, { debugName: "props" }] : /* istanbul ignore next */ []));
7186
+ meta = input(/* @ts-ignore */
7187
+ ...(ngDevMode ? [undefined, { debugName: "meta" }] : /* istanbul ignore next */ []));
7188
+ validationMessages = input(/* @ts-ignore */
7189
+ ...(ngDevMode ? [undefined, { debugName: "validationMessages" }] : /* istanbul ignore next */ []));
7190
+ defaultValidationMessages = input(/* @ts-ignore */
7191
+ ...(ngDevMode ? [undefined, { debugName: "defaultValidationMessages" }] : /* istanbul ignore next */ []));
7035
7192
  // Derived signals
7036
- addClearOptionSignal = computed(() => this.props()?.addClearOption, ...(ngDevMode ? [{ debugName: "addClearOptionSignal" }] : /* istanbul ignore next */ []));
7193
+ addClearOptionSignal = computed(() => this.props()?.addClearOption, /* @ts-ignore */
7194
+ ...(ngDevMode ? [{ debugName: "addClearOptionSignal" }] : /* istanbul ignore next */ []));
7037
7195
  addClearOption$ = toObservable(this.addClearOptionSignal).pipe(distinctUntilChanged());
7038
- inputOptionsSignal = computed(() => this.props()?.options, ...(ngDevMode ? [{ debugName: "inputOptionsSignal" }] : /* istanbul ignore next */ []));
7196
+ inputOptionsSignal = computed(() => this.props()?.options, /* @ts-ignore */
7197
+ ...(ngDevMode ? [{ debugName: "inputOptionsSignal" }] : /* istanbul ignore next */ []));
7039
7198
  inputOptions$ = toObservable(this.inputOptionsSignal).pipe(maybeValueFromObservableOrValue());
7040
7199
  resolvedOptions$ = combineLatest([this.inputOptions$, this.addClearOption$]).pipe(map(([options, addClearOption]) => resolveForgeSelectionOptions(options ?? [], addClearOption ?? false)));
7041
7200
  resolvedOptionsSignal = toSignal(this.resolvedOptions$);
7042
- multipleSignal = computed(() => this.props()?.multiple ?? false, ...(ngDevMode ? [{ debugName: "multipleSignal" }] : /* istanbul ignore next */ []));
7043
- effectiveAppearanceSignal = computed(() => this.props()?.appearance ?? this.materialConfig?.appearance ?? 'outline', ...(ngDevMode ? [{ debugName: "effectiveAppearanceSignal" }] : /* istanbul ignore next */ []));
7044
- effectiveSubscriptSizingSignal = computed(() => this.props()?.subscriptSizing ?? this.materialConfig?.subscriptSizing ?? 'dynamic', ...(ngDevMode ? [{ debugName: "effectiveSubscriptSizingSignal" }] : /* istanbul ignore next */ []));
7045
- compareWithSignal = computed(() => this.props()?.compareWith ?? Object.is, ...(ngDevMode ? [{ debugName: "compareWithSignal" }] : /* istanbul ignore next */ []));
7201
+ multipleSignal = computed(() => this.props()?.multiple ?? false, /* @ts-ignore */
7202
+ ...(ngDevMode ? [{ debugName: "multipleSignal" }] : /* istanbul ignore next */ []));
7203
+ effectiveAppearanceSignal = computed(() => this.props()?.appearance ?? this.materialConfig?.appearance ?? 'outline', /* @ts-ignore */
7204
+ ...(ngDevMode ? [{ debugName: "effectiveAppearanceSignal" }] : /* istanbul ignore next */ []));
7205
+ effectiveSubscriptSizingSignal = computed(() => this.props()?.subscriptSizing ?? this.materialConfig?.subscriptSizing ?? 'dynamic', /* @ts-ignore */
7206
+ ...(ngDevMode ? [{ debugName: "effectiveSubscriptSizingSignal" }] : /* istanbul ignore next */ []));
7207
+ compareWithSignal = computed(() => this.props()?.compareWith ?? Object.is, /* @ts-ignore */
7208
+ ...(ngDevMode ? [{ debugName: "compareWithSignal" }] : /* istanbul ignore next */ []));
7046
7209
  // Error display
7047
7210
  resolvedErrors = createResolvedErrorsSignal(this.field, this.validationMessages, this.defaultValidationMessages);
7048
7211
  showErrors = shouldShowErrors(this.field);
7049
- errorsToDisplaySignal = computed(() => (this.showErrors() ? this.resolvedErrors() : []), ...(ngDevMode ? [{ debugName: "errorsToDisplaySignal" }] : /* istanbul ignore next */ []));
7212
+ errorsToDisplaySignal = computed(() => (this.showErrors() ? this.resolvedErrors() : []), /* @ts-ignore */
7213
+ ...(ngDevMode ? [{ debugName: "errorsToDisplaySignal" }] : /* istanbul ignore next */ []));
7050
7214
  /**
7051
7215
  * Unique ID for the hint element
7052
7216
  */
7053
- hintIdSignal = computed(() => `${this.key()}-hint`, ...(ngDevMode ? [{ debugName: "hintIdSignal" }] : /* istanbul ignore next */ []));
7217
+ hintIdSignal = computed(() => `${this.key()}-hint`, /* @ts-ignore */
7218
+ ...(ngDevMode ? [{ debugName: "hintIdSignal" }] : /* istanbul ignore next */ []));
7054
7219
  /**
7055
7220
  * Base ID for error elements
7056
7221
  */
7057
- errorIdSignal = computed(() => `${this.key()}-error`, ...(ngDevMode ? [{ debugName: "errorIdSignal" }] : /* istanbul ignore next */ []));
7222
+ errorIdSignal = computed(() => `${this.key()}-error`, /* @ts-ignore */
7223
+ ...(ngDevMode ? [{ debugName: "errorIdSignal" }] : /* istanbul ignore next */ []));
7058
7224
  // Accessibility
7059
- ariaInvalidSignal = computed(() => (this.showErrors() ? 'true' : null), ...(ngDevMode ? [{ debugName: "ariaInvalidSignal" }] : /* istanbul ignore next */ []));
7060
- ariaRequiredSignal = computed(() => (this.field()().required() ? 'true' : null), ...(ngDevMode ? [{ debugName: "ariaRequiredSignal" }] : /* istanbul ignore next */ []));
7225
+ ariaInvalidSignal = computed(() => (this.showErrors() ? 'true' : null), /* @ts-ignore */
7226
+ ...(ngDevMode ? [{ debugName: "ariaInvalidSignal" }] : /* istanbul ignore next */ []));
7227
+ ariaRequiredSignal = computed(() => (this.field()().required() ? 'true' : null), /* @ts-ignore */
7228
+ ...(ngDevMode ? [{ debugName: "ariaRequiredSignal" }] : /* istanbul ignore next */ []));
7061
7229
  ariaDescribedBySignal = computed(() => {
7062
7230
  const errorId = this.errorIdSignal();
7063
7231
  const hintId = this.hintIdSignal();
@@ -7066,16 +7234,17 @@ class DbxForgeValueSelectionFieldComponent {
7066
7234
  if (this.props()?.hint)
7067
7235
  return hintId;
7068
7236
  return null;
7069
- }, ...(ngDevMode ? [{ debugName: "ariaDescribedBySignal" }] : /* istanbul ignore next */ []));
7237
+ }, /* @ts-ignore */
7238
+ ...(ngDevMode ? [{ debugName: "ariaDescribedBySignal" }] : /* istanbul ignore next */ []));
7070
7239
  constructor() {
7071
7240
  setupMetaTracking(this.elementRef, this.meta, { selector: 'mat-select' });
7072
7241
  }
7073
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeValueSelectionFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7074
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.11", type: DbxForgeValueSelectionFieldComponent, isStandalone: true, selector: "dbx-forge-value-selection-field", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, key: { classPropertyName: "key", publicName: "key", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: true, isRequired: false, transformFunction: null }, props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null }, meta: { classPropertyName: "meta", publicName: "meta", isSignal: true, isRequired: false, transformFunction: null }, validationMessages: { classPropertyName: "validationMessages", publicName: "validationMessages", isSignal: true, isRequired: false, transformFunction: null }, defaultValidationMessages: { classPropertyName: "defaultValidationMessages", publicName: "defaultValidationMessages", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "id": "`${key()}`", "attr.data-testid": "key()", "class": "className()", "attr.hidden": "field()().hidden() || null" } }, ngImport: i0, template: "@let f = field();\n@let selectId = key() + '-select';\n\n<mat-form-field class=\"dbx-w100\" [appearance]=\"effectiveAppearanceSignal()\" [subscriptSizing]=\"effectiveSubscriptSizingSignal()\">\n @if (label(); as label) {\n <mat-label>{{ label | dynamicText | async }}</mat-label>\n }\n\n <mat-select [id]=\"selectId\" [formField]=\"f\" [placeholder]=\"(placeholder() | dynamicText | async) ?? ''\" [multiple]=\"multipleSignal()\" [compareWith]=\"compareWithSignal()\" [attr.aria-invalid]=\"ariaInvalidSignal()\" [attr.aria-required]=\"ariaRequiredSignal()\" [attr.aria-describedby]=\"ariaDescribedBySignal()\">\n @for (option of resolvedOptionsSignal(); track $index) {\n <mat-option [value]=\"option.value\" [disabled]=\"option.disabled ?? false\">{{ option.label }}</mat-option>\n }\n </mat-select>\n\n @if (errorsToDisplaySignal()[0]; as error) {\n <mat-error [id]=\"errorIdSignal()\">{{ error.message }}</mat-error>\n } @else if (props()?.hint; as hint) {\n <mat-hint [id]=\"hintIdSignal()\">{{ hint | dynamicText | async }}</mat-hint>\n }\n</mat-form-field>\n", dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "component", type: MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: FormField, selector: "[formField]", inputs: ["formField"], exportAs: ["formField"] }, { kind: "directive", type: MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "pipe", type: DynamicTextPipe, name: "dynamicText" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
7242
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeValueSelectionFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7243
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: DbxForgeValueSelectionFieldComponent, isStandalone: true, selector: "dbx-forge-value-selection-field", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, key: { classPropertyName: "key", publicName: "key", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: true, isRequired: false, transformFunction: null }, props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null }, meta: { classPropertyName: "meta", publicName: "meta", isSignal: true, isRequired: false, transformFunction: null }, validationMessages: { classPropertyName: "validationMessages", publicName: "validationMessages", isSignal: true, isRequired: false, transformFunction: null }, defaultValidationMessages: { classPropertyName: "defaultValidationMessages", publicName: "defaultValidationMessages", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "id": "`${key()}`", "attr.data-testid": "key()", "class": "className()", "attr.hidden": "field()().hidden() || null" } }, ngImport: i0, template: "@let f = field();\n@let selectId = key() + '-select';\n\n<mat-form-field class=\"dbx-w100\" [appearance]=\"effectiveAppearanceSignal()\" [subscriptSizing]=\"effectiveSubscriptSizingSignal()\">\n @if (label(); as label) {\n <mat-label>{{ label | dynamicText | async }}</mat-label>\n }\n\n <mat-select [id]=\"selectId\" [formField]=\"f\" [placeholder]=\"(placeholder() | dynamicText | async) ?? ''\" [multiple]=\"multipleSignal()\" [compareWith]=\"compareWithSignal()\" [attr.aria-invalid]=\"ariaInvalidSignal()\" [attr.aria-required]=\"ariaRequiredSignal()\" [attr.aria-describedby]=\"ariaDescribedBySignal()\">\n @for (option of resolvedOptionsSignal(); track $index) {\n <mat-option [value]=\"option.value\" [disabled]=\"option.disabled ?? false\">{{ option.label }}</mat-option>\n }\n </mat-select>\n\n @if (errorsToDisplaySignal()[0]; as error) {\n <mat-error [id]=\"errorIdSignal()\">{{ error.message }}</mat-error>\n } @else if (props()?.hint; as hint) {\n <mat-hint [id]=\"hintIdSignal()\">{{ hint | dynamicText | async }}</mat-hint>\n }\n</mat-form-field>\n", dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "component", type: MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: FormField, selector: "[formField]", inputs: ["formField"], exportAs: ["formField"] }, { kind: "directive", type: MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "pipe", type: DynamicTextPipe, name: "dynamicText" }, { kind: "pipe", type: AsyncPipe, name: "async" }] });
7075
7244
  }
7076
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeValueSelectionFieldComponent, decorators: [{
7245
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeValueSelectionFieldComponent, decorators: [{
7077
7246
  type: Component,
7078
- args: [{ selector: 'dbx-forge-value-selection-field', imports: [MatFormField, MatLabel, MatSelect, MatOption, MatHint, FormField, MatError, DynamicTextPipe, AsyncPipe], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, host: {
7247
+ args: [{ selector: 'dbx-forge-value-selection-field', imports: [MatFormField, MatLabel, MatSelect, MatOption, MatHint, FormField, MatError, DynamicTextPipe, AsyncPipe], host: {
7079
7248
  '[id]': '`${key()}`',
7080
7249
  '[attr.data-testid]': 'key()',
7081
7250
  '[class]': 'className()',
@@ -7133,7 +7302,8 @@ const DBX_SEARCHABLE_FIELD_COMPONENT_DATA_TOKEN = new InjectionToken('DbxSearcha
7133
7302
  * value data via {@link DBX_SEARCHABLE_FIELD_COMPONENT_DATA_TOKEN}.
7134
7303
  */
7135
7304
  class DbxSearchableFieldAutocompleteItemComponent {
7136
- displayValue = input.required(...(ngDevMode ? [{ debugName: "displayValue" }] : /* istanbul ignore next */ []));
7305
+ displayValue = input.required(/* @ts-ignore */
7306
+ ...(ngDevMode ? [{ debugName: "displayValue" }] : /* istanbul ignore next */ []));
7137
7307
  configSignal = computed(() => {
7138
7308
  const displayValue = this.displayValue();
7139
7309
  const config = {
@@ -7149,16 +7319,18 @@ class DbxSearchableFieldAutocompleteItemComponent {
7149
7319
  ], displayValue.display.providers)
7150
7320
  };
7151
7321
  return config;
7152
- }, ...(ngDevMode ? [{ debugName: "configSignal" }] : /* istanbul ignore next */ []));
7153
- anchorSignal = computed(() => this.displayValue().anchor, ...(ngDevMode ? [{ debugName: "anchorSignal" }] : /* istanbul ignore next */ []));
7154
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxSearchableFieldAutocompleteItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7155
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.11", type: DbxSearchableFieldAutocompleteItemComponent, isStandalone: true, selector: "dbx-searchable-field-autocomplete-item", inputs: { displayValue: { classPropertyName: "displayValue", publicName: "displayValue", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
7322
+ }, /* @ts-ignore */
7323
+ ...(ngDevMode ? [{ debugName: "configSignal" }] : /* istanbul ignore next */ []));
7324
+ anchorSignal = computed(() => this.displayValue().anchor, /* @ts-ignore */
7325
+ ...(ngDevMode ? [{ debugName: "anchorSignal" }] : /* istanbul ignore next */ []));
7326
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxSearchableFieldAutocompleteItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7327
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: DbxSearchableFieldAutocompleteItemComponent, isStandalone: true, selector: "dbx-searchable-field-autocomplete-item", inputs: { displayValue: { classPropertyName: "displayValue", publicName: "displayValue", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
7156
7328
  <dbx-anchor [block]="true" [anchor]="anchorSignal()">
7157
7329
  <dbx-injection [config]="configSignal()"></dbx-injection>
7158
7330
  </dbx-anchor>
7159
- `, isInline: true, dependencies: [{ 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 });
7331
+ `, isInline: true, dependencies: [{ kind: "component", type: DbxAnchorComponent, selector: "dbx-anchor, [dbx-anchor]", inputs: ["block"] }, { kind: "component", type: DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }] });
7160
7332
  }
7161
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxSearchableFieldAutocompleteItemComponent, decorators: [{
7333
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxSearchableFieldAutocompleteItemComponent, decorators: [{
7162
7334
  type: Component,
7163
7335
  args: [{
7164
7336
  selector: 'dbx-searchable-field-autocomplete-item',
@@ -7167,9 +7339,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
7167
7339
  <dbx-injection [config]="configSignal()"></dbx-injection>
7168
7340
  </dbx-anchor>
7169
7341
  `,
7170
- imports: [DbxAnchorComponent, DbxInjectionComponent],
7171
- changeDetection: ChangeDetectionStrategy.OnPush,
7172
- standalone: true
7342
+ imports: [DbxAnchorComponent, DbxInjectionComponent]
7173
7343
  }]
7174
7344
  }], propDecorators: { displayValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "displayValue", required: true }] }] } });
7175
7345
  // MARK: Default
@@ -7181,10 +7351,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
7181
7351
  */
7182
7352
  class AbstractDbxSearchableFieldDisplayDirective {
7183
7353
  displayValue = inject(DBX_SEARCHABLE_FIELD_COMPONENT_DATA_TOKEN);
7184
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: AbstractDbxSearchableFieldDisplayDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
7185
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.11", type: AbstractDbxSearchableFieldDisplayDirective, isStandalone: true, ngImport: i0 });
7354
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: AbstractDbxSearchableFieldDisplayDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
7355
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.4", type: AbstractDbxSearchableFieldDisplayDirective, isStandalone: true, ngImport: i0 });
7186
7356
  }
7187
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: AbstractDbxSearchableFieldDisplayDirective, decorators: [{
7357
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: AbstractDbxSearchableFieldDisplayDirective, decorators: [{
7188
7358
  type: Directive
7189
7359
  }] });
7190
7360
  /**
@@ -7194,8 +7364,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
7194
7364
  */
7195
7365
  class DbxDefaultSearchableFieldDisplayComponent extends AbstractDbxSearchableFieldDisplayDirective {
7196
7366
  icon = this.displayValue.icon;
7197
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxDefaultSearchableFieldDisplayComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
7198
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.11", type: DbxDefaultSearchableFieldDisplayComponent, isStandalone: true, selector: "dbx-default-searchable-field-display", usesInheritance: true, ngImport: i0, template: `
7367
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxDefaultSearchableFieldDisplayComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
7368
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: DbxDefaultSearchableFieldDisplayComponent, isStandalone: true, selector: "dbx-default-searchable-field-display", usesInheritance: true, ngImport: i0, template: `
7199
7369
  <div class="dbx-default-searchable-field-display dbx-flex-bar">
7200
7370
  @if (icon) {
7201
7371
  <mat-icon class="dbx-icon-spacer">{{ icon }}</mat-icon>
@@ -7205,9 +7375,9 @@ class DbxDefaultSearchableFieldDisplayComponent extends AbstractDbxSearchableFie
7205
7375
  <span class="dbx-chip-sublabel">({{ displayValue.sublabel }})</span>
7206
7376
  }
7207
7377
  </div>
7208
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
7378
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
7209
7379
  }
7210
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxDefaultSearchableFieldDisplayComponent, decorators: [{
7380
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxDefaultSearchableFieldDisplayComponent, decorators: [{
7211
7381
  type: Component,
7212
7382
  args: [{
7213
7383
  selector: 'dbx-default-searchable-field-display',
@@ -7222,9 +7392,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
7222
7392
  }
7223
7393
  </div>
7224
7394
  `,
7225
- imports: [MatIconModule],
7226
- changeDetection: ChangeDetectionStrategy.OnPush,
7227
- standalone: true
7395
+ imports: [MatIconModule]
7228
7396
  }]
7229
7397
  }] });
7230
7398
 
@@ -7241,15 +7409,24 @@ const DEFAULT_SEARCHABLE_FIELD_DISPLAY = {
7241
7409
  */
7242
7410
  class AbstractForgeSearchableFieldDirective {
7243
7411
  // MARK: ng-forge ValueFieldComponent Inputs
7244
- key = input.required(...(ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []));
7245
- label = input(...(ngDevMode ? [undefined, { debugName: "label" }] : /* istanbul ignore next */ []));
7246
- placeholder = input(...(ngDevMode ? [undefined, { debugName: "placeholder" }] : /* istanbul ignore next */ []));
7247
- className = input('', ...(ngDevMode ? [{ debugName: "className" }] : /* istanbul ignore next */ []));
7248
- tabIndex = input(...(ngDevMode ? [undefined, { debugName: "tabIndex" }] : /* istanbul ignore next */ []));
7249
- props = input(...(ngDevMode ? [undefined, { debugName: "props" }] : /* istanbul ignore next */ []));
7250
- meta = input(...(ngDevMode ? [undefined, { debugName: "meta" }] : /* istanbul ignore next */ []));
7251
- validationMessages = input(...(ngDevMode ? [undefined, { debugName: "validationMessages" }] : /* istanbul ignore next */ []));
7252
- defaultValidationMessages = input(...(ngDevMode ? [undefined, { debugName: "defaultValidationMessages" }] : /* istanbul ignore next */ []));
7412
+ key = input.required(/* @ts-ignore */
7413
+ ...(ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []));
7414
+ label = input(/* @ts-ignore */
7415
+ ...(ngDevMode ? [undefined, { debugName: "label" }] : /* istanbul ignore next */ []));
7416
+ placeholder = input(/* @ts-ignore */
7417
+ ...(ngDevMode ? [undefined, { debugName: "placeholder" }] : /* istanbul ignore next */ []));
7418
+ className = input('', /* @ts-ignore */
7419
+ ...(ngDevMode ? [{ debugName: "className" }] : /* istanbul ignore next */ []));
7420
+ tabIndex = input(/* @ts-ignore */
7421
+ ...(ngDevMode ? [undefined, { debugName: "tabIndex" }] : /* istanbul ignore next */ []));
7422
+ props = input(/* @ts-ignore */
7423
+ ...(ngDevMode ? [undefined, { debugName: "props" }] : /* istanbul ignore next */ []));
7424
+ meta = input(/* @ts-ignore */
7425
+ ...(ngDevMode ? [undefined, { debugName: "meta" }] : /* istanbul ignore next */ []));
7426
+ validationMessages = input(/* @ts-ignore */
7427
+ ...(ngDevMode ? [undefined, { debugName: "validationMessages" }] : /* istanbul ignore next */ []));
7428
+ defaultValidationMessages = input(/* @ts-ignore */
7429
+ ...(ngDevMode ? [undefined, { debugName: "defaultValidationMessages" }] : /* istanbul ignore next */ []));
7253
7430
  inputCtrl = new FormControl('');
7254
7431
  _clearDisplayHashMapSub = cleanSubscription();
7255
7432
  _displayHashMap = completeOnDestroy(new BehaviorSubject(new Map()));
@@ -7260,18 +7437,23 @@ class AbstractForgeSearchableFieldDirective {
7260
7437
  labelSignal = computed(() => {
7261
7438
  const l = this.label();
7262
7439
  return typeof l === 'string' ? l : undefined;
7263
- }, ...(ngDevMode ? [{ debugName: "labelSignal" }] : /* istanbul ignore next */ []));
7264
- hintSignal = computed(() => this.props()?.hint, ...(ngDevMode ? [{ debugName: "hintSignal" }] : /* istanbul ignore next */ []));
7440
+ }, /* @ts-ignore */
7441
+ ...(ngDevMode ? [{ debugName: "labelSignal" }] : /* istanbul ignore next */ []));
7442
+ hintSignal = computed(() => this.props()?.hint, /* @ts-ignore */
7443
+ ...(ngDevMode ? [{ debugName: "hintSignal" }] : /* istanbul ignore next */ []));
7265
7444
  // ARIA IDs
7266
- hintIdSignal = computed(() => `${this.key()}-hint`, ...(ngDevMode ? [{ debugName: "hintIdSignal" }] : /* istanbul ignore next */ []));
7267
- errorIdSignal = computed(() => `${this.key()}-error`, ...(ngDevMode ? [{ debugName: "errorIdSignal" }] : /* istanbul ignore next */ []));
7445
+ hintIdSignal = computed(() => `${this.key()}-hint`, /* @ts-ignore */
7446
+ ...(ngDevMode ? [{ debugName: "hintIdSignal" }] : /* istanbul ignore next */ []));
7447
+ errorIdSignal = computed(() => `${this.key()}-error`, /* @ts-ignore */
7448
+ ...(ngDevMode ? [{ debugName: "errorIdSignal" }] : /* istanbul ignore next */ []));
7268
7449
  searchInputPlaceholderSignal = computed(() => {
7269
7450
  const p = this.props();
7270
7451
  const placeholderValue = this.placeholder();
7271
7452
  const searchOnEmpty = p?.searchOnEmptyText ?? false;
7272
7453
  const placeholder = typeof placeholderValue === 'string' ? placeholderValue : undefined;
7273
7454
  return placeholder || (searchOnEmpty ? '' : DEFAULT_SEARCH_INPUT_PLACEHOLDER);
7274
- }, ...(ngDevMode ? [{ debugName: "searchInputPlaceholderSignal" }] : /* istanbul ignore next */ []));
7455
+ }, /* @ts-ignore */
7456
+ ...(ngDevMode ? [{ debugName: "searchInputPlaceholderSignal" }] : /* istanbul ignore next */ []));
7275
7457
  // MARK: Search Results
7276
7458
  searchResultsState$ = this.inputValueString$.pipe(switchMap((text) => {
7277
7459
  const p = this.props();
@@ -7351,10 +7533,10 @@ class AbstractForgeSearchableFieldDirective {
7351
7533
  return obs;
7352
7534
  }));
7353
7535
  }
7354
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: AbstractForgeSearchableFieldDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
7355
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.11", type: AbstractForgeSearchableFieldDirective, isStandalone: true, inputs: { key: { classPropertyName: "key", publicName: "key", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: true, isRequired: false, transformFunction: null }, props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null }, meta: { classPropertyName: "meta", publicName: "meta", isSignal: true, isRequired: false, transformFunction: null }, validationMessages: { classPropertyName: "validationMessages", publicName: "validationMessages", isSignal: true, isRequired: false, transformFunction: null }, defaultValidationMessages: { classPropertyName: "defaultValidationMessages", publicName: "defaultValidationMessages", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
7536
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: AbstractForgeSearchableFieldDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
7537
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.4", type: AbstractForgeSearchableFieldDirective, isStandalone: true, inputs: { key: { classPropertyName: "key", publicName: "key", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: true, isRequired: false, transformFunction: null }, props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null }, meta: { classPropertyName: "meta", publicName: "meta", isSignal: true, isRequired: false, transformFunction: null }, validationMessages: { classPropertyName: "validationMessages", publicName: "validationMessages", isSignal: true, isRequired: false, transformFunction: null }, defaultValidationMessages: { classPropertyName: "defaultValidationMessages", publicName: "defaultValidationMessages", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
7356
7538
  }
7357
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: AbstractForgeSearchableFieldDirective, decorators: [{
7539
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: AbstractForgeSearchableFieldDirective, decorators: [{
7358
7540
  type: Directive
7359
7541
  }], propDecorators: { key: [{ type: i0.Input, args: [{ isSignal: true, alias: "key", required: true }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], tabIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "tabIndex", required: false }] }], props: [{ type: i0.Input, args: [{ isSignal: true, alias: "props", required: false }] }], meta: [{ type: i0.Input, args: [{ isSignal: true, alias: "meta", required: false }] }], validationMessages: [{ type: i0.Input, args: [{ isSignal: true, alias: "validationMessages", required: false }] }], defaultValidationMessages: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultValidationMessages", required: false }] }] } });
7360
7542
 
@@ -7468,8 +7650,10 @@ function dbxForgeSearchableStringChipField(config) {
7468
7650
  */
7469
7651
  class DbxForgeSearchableTextFieldComponent extends AbstractForgeSearchableFieldDirective {
7470
7652
  elementRef = inject((ElementRef));
7471
- field = input.required(...(ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []));
7472
- textInputRef = viewChild('textInput', ...(ngDevMode ? [{ debugName: "textInputRef" }] : /* istanbul ignore next */ []));
7653
+ field = input.required(/* @ts-ignore */
7654
+ ...(ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []));
7655
+ textInputRef = viewChild('textInput', /* @ts-ignore */
7656
+ ...(ngDevMode ? [{ debugName: "textInputRef" }] : /* istanbul ignore next */ []));
7473
7657
  _singleValueSyncSub = cleanSubscription();
7474
7658
  _valuesSubject = completeOnDestroy(new BehaviorSubject([]));
7475
7659
  // Disabled state
@@ -7477,42 +7661,52 @@ class DbxForgeSearchableTextFieldComponent extends AbstractForgeSearchableFieldD
7477
7661
  // Error handling
7478
7662
  resolvedErrors = createResolvedErrorsSignal(this.field, this.validationMessages, this.defaultValidationMessages);
7479
7663
  showErrors = shouldShowErrors(this.field);
7480
- errorsToDisplaySignal = computed(() => (this.showErrors() ? this.resolvedErrors() : []), ...(ngDevMode ? [{ debugName: "errorsToDisplaySignal" }] : /* istanbul ignore next */ []));
7664
+ errorsToDisplaySignal = computed(() => (this.showErrors() ? this.resolvedErrors() : []), /* @ts-ignore */
7665
+ ...(ngDevMode ? [{ debugName: "errorsToDisplaySignal" }] : /* istanbul ignore next */ []));
7481
7666
  // ARIA
7482
- ariaInvalidSignal = computed(() => (this.showErrors() ? 'true' : null), ...(ngDevMode ? [{ debugName: "ariaInvalidSignal" }] : /* istanbul ignore next */ []));
7667
+ ariaInvalidSignal = computed(() => (this.showErrors() ? 'true' : null), /* @ts-ignore */
7668
+ ...(ngDevMode ? [{ debugName: "ariaInvalidSignal" }] : /* istanbul ignore next */ []));
7483
7669
  ariaDescribedBySignal = computed(() => {
7484
7670
  if (this.errorsToDisplaySignal().length > 0)
7485
7671
  return this.errorIdSignal();
7486
7672
  if (this.props()?.hint)
7487
7673
  return this.hintIdSignal();
7488
7674
  return null;
7489
- }, ...(ngDevMode ? [{ debugName: "ariaDescribedBySignal" }] : /* istanbul ignore next */ []));
7490
- showClearValueSignal = computed(() => this.props()?.showClearValue ?? true, ...(ngDevMode ? [{ debugName: "showClearValueSignal" }] : /* istanbul ignore next */ []));
7491
- searchLabelSignal = computed(() => this.props()?.searchLabel ?? 'Search', ...(ngDevMode ? [{ debugName: "searchLabelSignal" }] : /* istanbul ignore next */ []));
7675
+ }, /* @ts-ignore */
7676
+ ...(ngDevMode ? [{ debugName: "ariaDescribedBySignal" }] : /* istanbul ignore next */ []));
7677
+ showClearValueSignal = computed(() => this.props()?.showClearValue ?? true, /* @ts-ignore */
7678
+ ...(ngDevMode ? [{ debugName: "showClearValueSignal" }] : /* istanbul ignore next */ []));
7679
+ searchLabelSignal = computed(() => this.props()?.searchLabel ?? 'Search', /* @ts-ignore */
7680
+ ...(ngDevMode ? [{ debugName: "searchLabelSignal" }] : /* istanbul ignore next */ []));
7492
7681
  fieldValueSignal = computed(() => {
7493
7682
  const fieldGetter = this.field();
7494
7683
  const fieldState = typeof fieldGetter === 'function' ? fieldGetter() : undefined;
7495
7684
  return fieldState?.value?.();
7496
- }, ...(ngDevMode ? [{ debugName: "fieldValueSignal" }] : /* istanbul ignore next */ []));
7685
+ }, /* @ts-ignore */
7686
+ ...(ngDevMode ? [{ debugName: "fieldValueSignal" }] : /* istanbul ignore next */ []));
7497
7687
  displayValues$ = this._valuesSubject.pipe(switchMap((values) => this._loadDisplayValuesForValues(values)), map((x) => x?.value ?? []), shareReplay(1));
7498
7688
  selectedDisplayValue$ = this.displayValues$.pipe(map((x) => x[0]), shareReplay(1));
7499
7689
  selectedDisplayValueSignal = toSignal(this.selectedDisplayValue$);
7500
- hasValueSignal = computed(() => Boolean(this.selectedDisplayValueSignal()), ...(ngDevMode ? [{ debugName: "hasValueSignal" }] : /* istanbul ignore next */ []));
7690
+ hasValueSignal = computed(() => Boolean(this.selectedDisplayValueSignal()), /* @ts-ignore */
7691
+ ...(ngDevMode ? [{ debugName: "hasValueSignal" }] : /* istanbul ignore next */ []));
7501
7692
  showSelectedDisplayValueSignal = computed(() => {
7502
7693
  const hasValue = this.hasValueSignal();
7503
7694
  const p = this.props();
7504
7695
  const showSelected = p?.showSelectedValue ?? !(p?.allowStringValues ?? false);
7505
7696
  return showSelected && hasValue;
7506
- }, ...(ngDevMode ? [{ debugName: "showSelectedDisplayValueSignal" }] : /* istanbul ignore next */ []));
7697
+ }, /* @ts-ignore */
7698
+ ...(ngDevMode ? [{ debugName: "showSelectedDisplayValueSignal" }] : /* istanbul ignore next */ []));
7507
7699
  // Disabled state propagation
7508
7700
  _disabledEffect = effect(() => {
7509
7701
  toggleDisableFormControl(this.inputCtrl, this.isDisabled());
7510
- }, ...(ngDevMode ? [{ debugName: "_disabledEffect" }] : /* istanbul ignore next */ []));
7702
+ }, /* @ts-ignore */
7703
+ ...(ngDevMode ? [{ debugName: "_disabledEffect" }] : /* istanbul ignore next */ []));
7511
7704
  _syncFieldValueEffect = effect(() => {
7512
7705
  const fieldValue = this.fieldValueSignal();
7513
7706
  const values = fieldValue != null && fieldValue !== '' ? [fieldValue] : [];
7514
7707
  this._valuesSubject.next(values);
7515
- }, ...(ngDevMode ? [{ debugName: "_syncFieldValueEffect" }] : /* istanbul ignore next */ []));
7708
+ }, /* @ts-ignore */
7709
+ ...(ngDevMode ? [{ debugName: "_syncFieldValueEffect" }] : /* istanbul ignore next */ []));
7516
7710
  constructor() {
7517
7711
  super();
7518
7712
  setupMetaTracking(this.elementRef, this.meta, { selector: 'input' });
@@ -7557,12 +7751,12 @@ class DbxForgeSearchableTextFieldComponent extends AbstractForgeSearchableFieldD
7557
7751
  fieldState.value.set(value ?? null);
7558
7752
  }
7559
7753
  }
7560
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeSearchableTextFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7561
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.11", type: DbxForgeSearchableTextFieldComponent, isStandalone: true, selector: "dbx-forge-searchable-text-field", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null } }, viewQueries: [{ propertyName: "textInputRef", first: true, predicate: ["textInput"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-searchable-text-field\" tabindex=\"0\" (click)=\"focusInput()\" (keydown.enter)=\"focusInput()\" [class.dbx-searchable-text-field-has-value]=\"hasValueSignal()\" [class.dbx-searchable-text-field-show-value]=\"showSelectedDisplayValueSignal()\">\n @if (showSelectedDisplayValueSignal()) {\n @let sv = selectedDisplayValueSignal();\n @if (sv) {\n <div class=\"dbx-searchable-text-field-value\">\n <dbx-searchable-field-autocomplete-item [displayValue]=\"sv\"></dbx-searchable-field-autocomplete-item>\n </div>\n }\n }\n <div class=\"dbx-searchable-text-field-input\">\n @if (searchLabelSignal()) {\n <div class=\"dbx-label\">{{ searchLabelSignal() }}</div>\n }\n <input #textInput class=\"dbx-forge-bare-input\" [formControl]=\"inputCtrl\" [matAutocomplete]=\"auto\" [placeholder]=\"searchInputPlaceholderSignal()\" [attr.aria-invalid]=\"ariaInvalidSignal()\" [attr.aria-describedby]=\"ariaDescribedBySignal()\" />\n </div>\n</div>\n<mat-autocomplete class=\"dbx-searchable-text-field-autocomplete\" #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\">\n @if (showClearValueSignal() && hasValueSignal()) {\n <mat-option [value]=\"{ _clear: true }\">Clear</mat-option>\n }\n @for (result of searchResultsSignal(); track $index) {\n <mat-option [value]=\"result\" [class.dbx-searchable-field-anchor-option]=\"!!result.anchor\">\n <dbx-searchable-field-autocomplete-item [displayValue]=\"result\"></dbx-searchable-field-autocomplete-item>\n </mat-option>\n }\n</mat-autocomplete>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i2$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i2$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i2$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: DbxSearchableFieldAutocompleteItemComponent, selector: "dbx-searchable-field-autocomplete-item", inputs: ["displayValue"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
7754
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeSearchableTextFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7755
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: DbxForgeSearchableTextFieldComponent, isStandalone: true, selector: "dbx-forge-searchable-text-field", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null } }, viewQueries: [{ propertyName: "textInputRef", first: true, predicate: ["textInput"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-searchable-text-field\" tabindex=\"0\" (click)=\"focusInput()\" (keydown.enter)=\"focusInput()\" [class.dbx-searchable-text-field-has-value]=\"hasValueSignal()\" [class.dbx-searchable-text-field-show-value]=\"showSelectedDisplayValueSignal()\">\n @if (showSelectedDisplayValueSignal()) {\n @let sv = selectedDisplayValueSignal();\n @if (sv) {\n <div class=\"dbx-searchable-text-field-value\">\n <dbx-searchable-field-autocomplete-item [displayValue]=\"sv\"></dbx-searchable-field-autocomplete-item>\n </div>\n }\n }\n <div class=\"dbx-searchable-text-field-input\">\n @if (searchLabelSignal()) {\n <div class=\"dbx-label\">{{ searchLabelSignal() }}</div>\n }\n <input #textInput class=\"dbx-forge-bare-input\" [formControl]=\"inputCtrl\" [matAutocomplete]=\"auto\" [placeholder]=\"searchInputPlaceholderSignal()\" [attr.aria-invalid]=\"ariaInvalidSignal()\" [attr.aria-describedby]=\"ariaDescribedBySignal()\" />\n </div>\n</div>\n<mat-autocomplete class=\"dbx-searchable-text-field-autocomplete\" #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\">\n @if (showClearValueSignal() && hasValueSignal()) {\n <mat-option [value]=\"{ _clear: true }\">Clear</mat-option>\n }\n @for (result of searchResultsSignal(); track $index) {\n <mat-option [value]=\"result\" [class.dbx-searchable-field-anchor-option]=\"!!result.anchor\">\n <dbx-searchable-field-autocomplete-item [displayValue]=\"result\"></dbx-searchable-field-autocomplete-item>\n </mat-option>\n }\n</mat-autocomplete>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$4.DefaultValueAccessor, selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i2$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i2$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i2$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: DbxSearchableFieldAutocompleteItemComponent, selector: "dbx-searchable-field-autocomplete-item", inputs: ["displayValue"] }] });
7562
7756
  }
7563
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeSearchableTextFieldComponent, decorators: [{
7757
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeSearchableTextFieldComponent, decorators: [{
7564
7758
  type: Component,
7565
- args: [{ selector: 'dbx-forge-searchable-text-field', imports: [FormsModule, ReactiveFormsModule, MatAutocompleteModule, MatOptionModule, MatIconModule, DbxSearchableFieldAutocompleteItemComponent], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<div class=\"dbx-searchable-text-field\" tabindex=\"0\" (click)=\"focusInput()\" (keydown.enter)=\"focusInput()\" [class.dbx-searchable-text-field-has-value]=\"hasValueSignal()\" [class.dbx-searchable-text-field-show-value]=\"showSelectedDisplayValueSignal()\">\n @if (showSelectedDisplayValueSignal()) {\n @let sv = selectedDisplayValueSignal();\n @if (sv) {\n <div class=\"dbx-searchable-text-field-value\">\n <dbx-searchable-field-autocomplete-item [displayValue]=\"sv\"></dbx-searchable-field-autocomplete-item>\n </div>\n }\n }\n <div class=\"dbx-searchable-text-field-input\">\n @if (searchLabelSignal()) {\n <div class=\"dbx-label\">{{ searchLabelSignal() }}</div>\n }\n <input #textInput class=\"dbx-forge-bare-input\" [formControl]=\"inputCtrl\" [matAutocomplete]=\"auto\" [placeholder]=\"searchInputPlaceholderSignal()\" [attr.aria-invalid]=\"ariaInvalidSignal()\" [attr.aria-describedby]=\"ariaDescribedBySignal()\" />\n </div>\n</div>\n<mat-autocomplete class=\"dbx-searchable-text-field-autocomplete\" #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\">\n @if (showClearValueSignal() && hasValueSignal()) {\n <mat-option [value]=\"{ _clear: true }\">Clear</mat-option>\n }\n @for (result of searchResultsSignal(); track $index) {\n <mat-option [value]=\"result\" [class.dbx-searchable-field-anchor-option]=\"!!result.anchor\">\n <dbx-searchable-field-autocomplete-item [displayValue]=\"result\"></dbx-searchable-field-autocomplete-item>\n </mat-option>\n }\n</mat-autocomplete>\n" }]
7759
+ args: [{ selector: 'dbx-forge-searchable-text-field', imports: [FormsModule, ReactiveFormsModule, MatAutocompleteModule, MatOptionModule, MatIconModule, DbxSearchableFieldAutocompleteItemComponent], template: "<div class=\"dbx-searchable-text-field\" tabindex=\"0\" (click)=\"focusInput()\" (keydown.enter)=\"focusInput()\" [class.dbx-searchable-text-field-has-value]=\"hasValueSignal()\" [class.dbx-searchable-text-field-show-value]=\"showSelectedDisplayValueSignal()\">\n @if (showSelectedDisplayValueSignal()) {\n @let sv = selectedDisplayValueSignal();\n @if (sv) {\n <div class=\"dbx-searchable-text-field-value\">\n <dbx-searchable-field-autocomplete-item [displayValue]=\"sv\"></dbx-searchable-field-autocomplete-item>\n </div>\n }\n }\n <div class=\"dbx-searchable-text-field-input\">\n @if (searchLabelSignal()) {\n <div class=\"dbx-label\">{{ searchLabelSignal() }}</div>\n }\n <input #textInput class=\"dbx-forge-bare-input\" [formControl]=\"inputCtrl\" [matAutocomplete]=\"auto\" [placeholder]=\"searchInputPlaceholderSignal()\" [attr.aria-invalid]=\"ariaInvalidSignal()\" [attr.aria-describedby]=\"ariaDescribedBySignal()\" />\n </div>\n</div>\n<mat-autocomplete class=\"dbx-searchable-text-field-autocomplete\" #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\">\n @if (showClearValueSignal() && hasValueSignal()) {\n <mat-option [value]=\"{ _clear: true }\">Clear</mat-option>\n }\n @for (result of searchResultsSignal(); track $index) {\n <mat-option [value]=\"result\" [class.dbx-searchable-field-anchor-option]=\"!!result.anchor\">\n <dbx-searchable-field-autocomplete-item [displayValue]=\"result\"></dbx-searchable-field-autocomplete-item>\n </mat-option>\n }\n</mat-autocomplete>\n" }]
7566
7760
  }], ctorParameters: () => [], propDecorators: { field: [{ type: i0.Input, args: [{ isSignal: true, alias: "field", required: true }] }], textInputRef: [{ type: i0.ViewChild, args: ['textInput', { isSignal: true }] }] } });
7567
7761
 
7568
7762
  var searchableText_field_component = /*#__PURE__*/Object.freeze({
@@ -7578,23 +7772,27 @@ var searchableText_field_component = /*#__PURE__*/Object.freeze({
7578
7772
  */
7579
7773
  class DbxForgeSearchableChipFieldComponent extends AbstractForgeSearchableFieldDirective {
7580
7774
  elementRef = inject((ElementRef));
7581
- field = input.required(...(ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []));
7775
+ field = input.required(/* @ts-ignore */
7776
+ ...(ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []));
7582
7777
  separatorKeysCodes = [ENTER, COMMA];
7583
7778
  // Disabled state
7584
7779
  isDisabled = dbxForgeFieldDisabled();
7585
7780
  // Error handling
7586
7781
  resolvedErrors = createResolvedErrorsSignal(this.field, this.validationMessages, this.defaultValidationMessages);
7587
7782
  showErrors = shouldShowErrors(this.field);
7588
- errorsToDisplaySignal = computed(() => (this.showErrors() ? this.resolvedErrors() : []), ...(ngDevMode ? [{ debugName: "errorsToDisplaySignal" }] : /* istanbul ignore next */ []));
7783
+ errorsToDisplaySignal = computed(() => (this.showErrors() ? this.resolvedErrors() : []), /* @ts-ignore */
7784
+ ...(ngDevMode ? [{ debugName: "errorsToDisplaySignal" }] : /* istanbul ignore next */ []));
7589
7785
  // ARIA
7590
- ariaInvalidSignal = computed(() => (this.showErrors() ? 'true' : null), ...(ngDevMode ? [{ debugName: "ariaInvalidSignal" }] : /* istanbul ignore next */ []));
7786
+ ariaInvalidSignal = computed(() => (this.showErrors() ? 'true' : null), /* @ts-ignore */
7787
+ ...(ngDevMode ? [{ debugName: "ariaInvalidSignal" }] : /* istanbul ignore next */ []));
7591
7788
  ariaDescribedBySignal = computed(() => {
7592
7789
  if (this.errorsToDisplaySignal().length > 0)
7593
7790
  return this.errorIdSignal();
7594
7791
  if (this.props()?.hint)
7595
7792
  return this.hintIdSignal();
7596
7793
  return null;
7597
- }, ...(ngDevMode ? [{ debugName: "ariaDescribedBySignal" }] : /* istanbul ignore next */ []));
7794
+ }, /* @ts-ignore */
7795
+ ...(ngDevMode ? [{ debugName: "ariaDescribedBySignal" }] : /* istanbul ignore next */ []));
7598
7796
  _blur = completeOnDestroy(new Subject());
7599
7797
  _blurSub = cleanSubscription();
7600
7798
  _valuesSubject = completeOnDestroy(new BehaviorSubject([]));
@@ -7604,14 +7802,16 @@ class DbxForgeSearchableChipFieldComponent extends AbstractForgeSearchableFieldD
7604
7802
  // Disabled state propagation
7605
7803
  _disabledEffect = effect(() => {
7606
7804
  toggleDisableFormControl(this.inputCtrl, this.isDisabled());
7607
- }, ...(ngDevMode ? [{ debugName: "_disabledEffect" }] : /* istanbul ignore next */ []));
7805
+ }, /* @ts-ignore */
7806
+ ...(ngDevMode ? [{ debugName: "_disabledEffect" }] : /* istanbul ignore next */ []));
7608
7807
  _syncFieldValueEffect = effect(() => {
7609
7808
  const fieldGetter = this.field();
7610
7809
  const fieldState = typeof fieldGetter === 'function' ? fieldGetter() : undefined;
7611
7810
  const fieldValue = fieldState?.value?.();
7612
7811
  const values = fieldValue == null ? [] : convertMaybeToArray(fieldValue).filter((v) => v != null && v !== '');
7613
7812
  this._valuesSubject.next(values);
7614
- }, ...(ngDevMode ? [{ debugName: "_syncFieldValueEffect" }] : /* istanbul ignore next */ []));
7813
+ }, /* @ts-ignore */
7814
+ ...(ngDevMode ? [{ debugName: "_syncFieldValueEffect" }] : /* istanbul ignore next */ []));
7615
7815
  constructor() {
7616
7816
  super();
7617
7817
  setupMetaTracking(this.elementRef, this.meta, { selector: 'input' });
@@ -7746,12 +7946,12 @@ class DbxForgeSearchableChipFieldComponent extends AbstractForgeSearchableFieldD
7746
7946
  fieldState.value.set(newValue ?? null);
7747
7947
  }
7748
7948
  }
7749
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeSearchableChipFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7750
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.11", type: DbxForgeSearchableChipFieldComponent, isStandalone: true, selector: "dbx-forge-searchable-chip-field", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-searchable-field dbx-searchable-chip-field\">\n <mat-chip-grid #chipGrid>\n @for (dv of displayValuesSignal(); track $index) {\n <mat-chip-row (removed)=\"removeWithDisplayValue(dv)\">\n <dbx-searchable-field-autocomplete-item [displayValue]=\"dv\"></dbx-searchable-field-autocomplete-item>\n <button matChipRemove>\n <mat-icon>cancel</mat-icon>\n </button>\n </mat-chip-row>\n }\n <input #textInput class=\"dbx-forge-bare-input\" [class.dbx-warn]=\"inputErrorMessage\" [formControl]=\"inputCtrl\" [matAutocomplete]=\"auto\" [matChipInputFor]=\"chipGrid\" [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\" (matChipInputTokenEnd)=\"addChip($event)\" [placeholder]=\"searchInputPlaceholderSignal()\" (blur)=\"onBlur()\" (keydown)=\"tabPressedOnInput($event)\" [attr.aria-invalid]=\"ariaInvalidSignal()\" [attr.aria-describedby]=\"ariaDescribedBySignal()\" />\n </mat-chip-grid>\n @if (inputCtrl.value && inputCtrl.touched && inputErrorMessage) {\n <div class=\"dbx-small mat-mdc-form-field-error mat-mdc-form-field-bottom-align\">{{ inputErrorMessage }}</div>\n }\n</div>\n<mat-autocomplete class=\"dbx-searchable-text-field-autocomplete\" #auto=\"matAutocomplete\" (optionSelected)=\"selectedChip($event)\">\n @for (result of searchResultsSignal(); track $index) {\n <mat-option [value]=\"result\">\n <dbx-searchable-field-autocomplete-item [displayValue]=\"result\"></dbx-searchable-field-autocomplete-item>\n </mat-option>\n }\n</mat-autocomplete>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i2$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i2$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i2$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i3$1.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i3$1.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled", "readonly", "matChipInputDisabledInteractive"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i3$1.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i3$1.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: DbxLoadingModule }, { kind: "component", type: DbxSearchableFieldAutocompleteItemComponent, selector: "dbx-searchable-field-autocomplete-item", inputs: ["displayValue"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
7949
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeSearchableChipFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7950
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: DbxForgeSearchableChipFieldComponent, isStandalone: true, selector: "dbx-forge-searchable-chip-field", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-searchable-field dbx-searchable-chip-field\">\n <mat-chip-grid #chipGrid>\n @for (dv of displayValuesSignal(); track $index) {\n <mat-chip-row (removed)=\"removeWithDisplayValue(dv)\">\n <dbx-searchable-field-autocomplete-item [displayValue]=\"dv\"></dbx-searchable-field-autocomplete-item>\n <button matChipRemove>\n <mat-icon>cancel</mat-icon>\n </button>\n </mat-chip-row>\n }\n <input\n #textInput\n class=\"dbx-forge-bare-input\"\n [class.dbx-warn]=\"inputErrorMessage\"\n [formControl]=\"inputCtrl\"\n [matAutocomplete]=\"auto\"\n [matChipInputFor]=\"chipGrid\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\n (matChipInputTokenEnd)=\"addChip($event)\"\n [placeholder]=\"searchInputPlaceholderSignal()\"\n (blur)=\"onBlur()\"\n (keydown)=\"tabPressedOnInput($event)\"\n [attr.aria-invalid]=\"ariaInvalidSignal()\"\n [attr.aria-describedby]=\"ariaDescribedBySignal()\" />\n </mat-chip-grid>\n @if (inputCtrl.value && inputCtrl.touched && inputErrorMessage) {\n <div class=\"dbx-small mat-mdc-form-field-error mat-mdc-form-field-bottom-align\">{{ inputErrorMessage }}</div>\n }\n</div>\n<mat-autocomplete class=\"dbx-searchable-text-field-autocomplete\" #auto=\"matAutocomplete\" (optionSelected)=\"selectedChip($event)\">\n @for (result of searchResultsSignal(); track $index) {\n <mat-option [value]=\"result\">\n <dbx-searchable-field-autocomplete-item [displayValue]=\"result\"></dbx-searchable-field-autocomplete-item>\n </mat-option>\n }\n</mat-autocomplete>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$4.DefaultValueAccessor, selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i2$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i2$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i2$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i3$1.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i3$1.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled", "readonly", "matChipInputDisabledInteractive"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i3$1.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i3$1.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: DbxLoadingModule }, { kind: "component", type: DbxSearchableFieldAutocompleteItemComponent, selector: "dbx-searchable-field-autocomplete-item", inputs: ["displayValue"] }] });
7751
7951
  }
7752
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeSearchableChipFieldComponent, decorators: [{
7952
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeSearchableChipFieldComponent, decorators: [{
7753
7953
  type: Component,
7754
- args: [{ selector: 'dbx-forge-searchable-chip-field', imports: [FormsModule, ReactiveFormsModule, MatAutocompleteModule, MatChipsModule, MatOptionModule, MatIconModule, DbxLoadingModule, DbxSearchableFieldAutocompleteItemComponent], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<div class=\"dbx-searchable-field dbx-searchable-chip-field\">\n <mat-chip-grid #chipGrid>\n @for (dv of displayValuesSignal(); track $index) {\n <mat-chip-row (removed)=\"removeWithDisplayValue(dv)\">\n <dbx-searchable-field-autocomplete-item [displayValue]=\"dv\"></dbx-searchable-field-autocomplete-item>\n <button matChipRemove>\n <mat-icon>cancel</mat-icon>\n </button>\n </mat-chip-row>\n }\n <input #textInput class=\"dbx-forge-bare-input\" [class.dbx-warn]=\"inputErrorMessage\" [formControl]=\"inputCtrl\" [matAutocomplete]=\"auto\" [matChipInputFor]=\"chipGrid\" [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\" (matChipInputTokenEnd)=\"addChip($event)\" [placeholder]=\"searchInputPlaceholderSignal()\" (blur)=\"onBlur()\" (keydown)=\"tabPressedOnInput($event)\" [attr.aria-invalid]=\"ariaInvalidSignal()\" [attr.aria-describedby]=\"ariaDescribedBySignal()\" />\n </mat-chip-grid>\n @if (inputCtrl.value && inputCtrl.touched && inputErrorMessage) {\n <div class=\"dbx-small mat-mdc-form-field-error mat-mdc-form-field-bottom-align\">{{ inputErrorMessage }}</div>\n }\n</div>\n<mat-autocomplete class=\"dbx-searchable-text-field-autocomplete\" #auto=\"matAutocomplete\" (optionSelected)=\"selectedChip($event)\">\n @for (result of searchResultsSignal(); track $index) {\n <mat-option [value]=\"result\">\n <dbx-searchable-field-autocomplete-item [displayValue]=\"result\"></dbx-searchable-field-autocomplete-item>\n </mat-option>\n }\n</mat-autocomplete>\n" }]
7954
+ args: [{ selector: 'dbx-forge-searchable-chip-field', imports: [FormsModule, ReactiveFormsModule, MatAutocompleteModule, MatChipsModule, MatOptionModule, MatIconModule, DbxLoadingModule, DbxSearchableFieldAutocompleteItemComponent], template: "<div class=\"dbx-searchable-field dbx-searchable-chip-field\">\n <mat-chip-grid #chipGrid>\n @for (dv of displayValuesSignal(); track $index) {\n <mat-chip-row (removed)=\"removeWithDisplayValue(dv)\">\n <dbx-searchable-field-autocomplete-item [displayValue]=\"dv\"></dbx-searchable-field-autocomplete-item>\n <button matChipRemove>\n <mat-icon>cancel</mat-icon>\n </button>\n </mat-chip-row>\n }\n <input\n #textInput\n class=\"dbx-forge-bare-input\"\n [class.dbx-warn]=\"inputErrorMessage\"\n [formControl]=\"inputCtrl\"\n [matAutocomplete]=\"auto\"\n [matChipInputFor]=\"chipGrid\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\n (matChipInputTokenEnd)=\"addChip($event)\"\n [placeholder]=\"searchInputPlaceholderSignal()\"\n (blur)=\"onBlur()\"\n (keydown)=\"tabPressedOnInput($event)\"\n [attr.aria-invalid]=\"ariaInvalidSignal()\"\n [attr.aria-describedby]=\"ariaDescribedBySignal()\" />\n </mat-chip-grid>\n @if (inputCtrl.value && inputCtrl.touched && inputErrorMessage) {\n <div class=\"dbx-small mat-mdc-form-field-error mat-mdc-form-field-bottom-align\">{{ inputErrorMessage }}</div>\n }\n</div>\n<mat-autocomplete class=\"dbx-searchable-text-field-autocomplete\" #auto=\"matAutocomplete\" (optionSelected)=\"selectedChip($event)\">\n @for (result of searchResultsSignal(); track $index) {\n <mat-option [value]=\"result\">\n <dbx-searchable-field-autocomplete-item [displayValue]=\"result\"></dbx-searchable-field-autocomplete-item>\n </mat-option>\n }\n</mat-autocomplete>\n" }]
7755
7955
  }], ctorParameters: () => [], propDecorators: { field: [{ type: i0.Input, args: [{ isSignal: true, alias: "field", required: true }] }] } });
7756
7956
 
7757
7957
  var searchableChip_field_component = /*#__PURE__*/Object.freeze({
@@ -7779,16 +7979,26 @@ const FORGE_PICKABLE_LIST_FIELD_TYPE = 'dbx-pickable-list';
7779
7979
  */
7780
7980
  class AbstractForgePickableItemFieldDirective {
7781
7981
  // MARK: ng-forge ValueFieldComponent Inputs
7782
- field = input.required(...(ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []));
7783
- key = input.required(...(ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []));
7784
- label = input(...(ngDevMode ? [undefined, { debugName: "label" }] : /* istanbul ignore next */ []));
7785
- placeholder = input(...(ngDevMode ? [undefined, { debugName: "placeholder" }] : /* istanbul ignore next */ []));
7786
- className = input('', ...(ngDevMode ? [{ debugName: "className" }] : /* istanbul ignore next */ []));
7787
- tabIndex = input(...(ngDevMode ? [undefined, { debugName: "tabIndex" }] : /* istanbul ignore next */ []));
7788
- props = input(...(ngDevMode ? [undefined, { debugName: "props" }] : /* istanbul ignore next */ []));
7789
- meta = input(...(ngDevMode ? [undefined, { debugName: "meta" }] : /* istanbul ignore next */ []));
7790
- validationMessages = input(...(ngDevMode ? [undefined, { debugName: "validationMessages" }] : /* istanbul ignore next */ []));
7791
- defaultValidationMessages = input(...(ngDevMode ? [undefined, { debugName: "defaultValidationMessages" }] : /* istanbul ignore next */ []));
7982
+ field = input.required(/* @ts-ignore */
7983
+ ...(ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []));
7984
+ key = input.required(/* @ts-ignore */
7985
+ ...(ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []));
7986
+ label = input(/* @ts-ignore */
7987
+ ...(ngDevMode ? [undefined, { debugName: "label" }] : /* istanbul ignore next */ []));
7988
+ placeholder = input(/* @ts-ignore */
7989
+ ...(ngDevMode ? [undefined, { debugName: "placeholder" }] : /* istanbul ignore next */ []));
7990
+ className = input('', /* @ts-ignore */
7991
+ ...(ngDevMode ? [{ debugName: "className" }] : /* istanbul ignore next */ []));
7992
+ tabIndex = input(/* @ts-ignore */
7993
+ ...(ngDevMode ? [undefined, { debugName: "tabIndex" }] : /* istanbul ignore next */ []));
7994
+ props = input(/* @ts-ignore */
7995
+ ...(ngDevMode ? [undefined, { debugName: "props" }] : /* istanbul ignore next */ []));
7996
+ meta = input(/* @ts-ignore */
7997
+ ...(ngDevMode ? [undefined, { debugName: "meta" }] : /* istanbul ignore next */ []));
7998
+ validationMessages = input(/* @ts-ignore */
7999
+ ...(ngDevMode ? [undefined, { debugName: "validationMessages" }] : /* istanbul ignore next */ []));
8000
+ defaultValidationMessages = input(/* @ts-ignore */
8001
+ ...(ngDevMode ? [undefined, { debugName: "defaultValidationMessages" }] : /* istanbul ignore next */ []));
7792
8002
  inputCtrl = new FormControl('');
7793
8003
  _clearDisplayHashMapSub = cleanSubscription();
7794
8004
  _displayHashMap = completeOnDestroy(new BehaviorSubject(new Map()));
@@ -7797,35 +8007,49 @@ class AbstractForgePickableItemFieldDirective {
7797
8007
  labelSignal = computed(() => {
7798
8008
  const l = this.label();
7799
8009
  return typeof l === 'string' ? l : undefined;
7800
- }, ...(ngDevMode ? [{ debugName: "labelSignal" }] : /* istanbul ignore next */ []));
7801
- hintSignal = computed(() => this.props()?.hint, ...(ngDevMode ? [{ debugName: "hintSignal" }] : /* istanbul ignore next */ []));
7802
- multiSelectSignal = computed(() => this.props()?.multiSelect ?? true, ...(ngDevMode ? [{ debugName: "multiSelectSignal" }] : /* istanbul ignore next */ []));
8010
+ }, /* @ts-ignore */
8011
+ ...(ngDevMode ? [{ debugName: "labelSignal" }] : /* istanbul ignore next */ []));
8012
+ hintSignal = computed(() => this.props()?.hint, /* @ts-ignore */
8013
+ ...(ngDevMode ? [{ debugName: "hintSignal" }] : /* istanbul ignore next */ []));
8014
+ multiSelectSignal = computed(() => this.props()?.multiSelect ?? true, /* @ts-ignore */
8015
+ ...(ngDevMode ? [{ debugName: "multiSelectSignal" }] : /* istanbul ignore next */ []));
7803
8016
  isDisabled = dbxForgeFieldDisabled();
7804
8017
  readonlySignal = computed(() => {
7805
8018
  const fieldGetter = this.field();
7806
8019
  const fieldState = typeof fieldGetter === 'function' ? fieldGetter() : undefined;
7807
8020
  return fieldState?.readonly?.() ?? false;
7808
- }, ...(ngDevMode ? [{ debugName: "readonlySignal" }] : /* istanbul ignore next */ []));
8021
+ }, /* @ts-ignore */
8022
+ ...(ngDevMode ? [{ debugName: "readonlySignal" }] : /* istanbul ignore next */ []));
7809
8023
  isDisabledOrReadonlySignal = computed(() => {
7810
8024
  const readonly = this.readonlySignal();
7811
8025
  return this.isDisabled() || readonly;
7812
- }, ...(ngDevMode ? [{ debugName: "isDisabledOrReadonlySignal" }] : /* istanbul ignore next */ []));
7813
- showSelectAllButtonSignal = computed(() => this.props()?.showSelectAllButton ?? false, ...(ngDevMode ? [{ debugName: "showSelectAllButtonSignal" }] : /* istanbul ignore next */ []));
8026
+ }, /* @ts-ignore */
8027
+ ...(ngDevMode ? [{ debugName: "isDisabledOrReadonlySignal" }] : /* istanbul ignore next */ []));
8028
+ showSelectAllButtonSignal = computed(() => this.props()?.showSelectAllButton ?? false, /* @ts-ignore */
8029
+ ...(ngDevMode ? [{ debugName: "showSelectAllButtonSignal" }] : /* istanbul ignore next */ []));
7814
8030
  showTextFilterSignal = computed(() => {
7815
8031
  const props = this.props();
7816
8032
  return this.props()?.showTextFilter ?? Boolean(props?.filterValues);
7817
- }, ...(ngDevMode ? [{ debugName: "showTextFilterSignal" }] : /* istanbul ignore next */ []));
7818
- filterLabelSignal = computed(() => this.props()?.filterLabel, ...(ngDevMode ? [{ debugName: "filterLabelSignal" }] : /* istanbul ignore next */ []));
7819
- footerConfigSignal = computed(() => this.props()?.footerConfig, ...(ngDevMode ? [{ debugName: "footerConfigSignal" }] : /* istanbul ignore next */ []));
8033
+ }, /* @ts-ignore */
8034
+ ...(ngDevMode ? [{ debugName: "showTextFilterSignal" }] : /* istanbul ignore next */ []));
8035
+ filterLabelSignal = computed(() => this.props()?.filterLabel, /* @ts-ignore */
8036
+ ...(ngDevMode ? [{ debugName: "filterLabelSignal" }] : /* istanbul ignore next */ []));
8037
+ footerConfigSignal = computed(() => this.props()?.footerConfig, /* @ts-ignore */
8038
+ ...(ngDevMode ? [{ debugName: "footerConfigSignal" }] : /* istanbul ignore next */ []));
7820
8039
  // Error handling
7821
8040
  resolvedErrors = createResolvedErrorsSignal(this.field, this.validationMessages, this.defaultValidationMessages);
7822
8041
  showErrors = shouldShowErrors(this.field);
7823
- errorsToDisplaySignal = computed(() => (this.showErrors() ? this.resolvedErrors() : []), ...(ngDevMode ? [{ debugName: "errorsToDisplaySignal" }] : /* istanbul ignore next */ []));
8042
+ errorsToDisplaySignal = computed(() => (this.showErrors() ? this.resolvedErrors() : []), /* @ts-ignore */
8043
+ ...(ngDevMode ? [{ debugName: "errorsToDisplaySignal" }] : /* istanbul ignore next */ []));
7824
8044
  // ARIA
7825
- hintIdSignal = computed(() => `${this.key()}-hint`, ...(ngDevMode ? [{ debugName: "hintIdSignal" }] : /* istanbul ignore next */ []));
7826
- errorIdSignal = computed(() => `${this.key()}-error`, ...(ngDevMode ? [{ debugName: "errorIdSignal" }] : /* istanbul ignore next */ []));
7827
- ariaInvalidSignal = computed(() => (this.showErrors() ? 'true' : null), ...(ngDevMode ? [{ debugName: "ariaInvalidSignal" }] : /* istanbul ignore next */ []));
7828
- ariaRequiredSignal = computed(() => (this.field()().required() ? 'true' : null), ...(ngDevMode ? [{ debugName: "ariaRequiredSignal" }] : /* istanbul ignore next */ []));
8045
+ hintIdSignal = computed(() => `${this.key()}-hint`, /* @ts-ignore */
8046
+ ...(ngDevMode ? [{ debugName: "hintIdSignal" }] : /* istanbul ignore next */ []));
8047
+ errorIdSignal = computed(() => `${this.key()}-error`, /* @ts-ignore */
8048
+ ...(ngDevMode ? [{ debugName: "errorIdSignal" }] : /* istanbul ignore next */ []));
8049
+ ariaInvalidSignal = computed(() => (this.showErrors() ? 'true' : null), /* @ts-ignore */
8050
+ ...(ngDevMode ? [{ debugName: "ariaInvalidSignal" }] : /* istanbul ignore next */ []));
8051
+ ariaRequiredSignal = computed(() => (this.field()().required() ? 'true' : null), /* @ts-ignore */
8052
+ ...(ngDevMode ? [{ debugName: "ariaRequiredSignal" }] : /* istanbul ignore next */ []));
7829
8053
  ariaDescribedBySignal = computed(() => {
7830
8054
  const errorId = this.errorIdSignal();
7831
8055
  const props = this.props();
@@ -7838,7 +8062,8 @@ class AbstractForgePickableItemFieldDirective {
7838
8062
  result = hintId;
7839
8063
  }
7840
8064
  return result;
7841
- }, ...(ngDevMode ? [{ debugName: "ariaDescribedBySignal" }] : /* istanbul ignore next */ []));
8065
+ }, /* @ts-ignore */
8066
+ ...(ngDevMode ? [{ debugName: "ariaDescribedBySignal" }] : /* istanbul ignore next */ []));
7842
8067
  get _pickOnlyOne() {
7843
8068
  const p = this.props();
7844
8069
  const asArrayValue = p?.asArrayValue ?? true;
@@ -7899,7 +8124,8 @@ class AbstractForgePickableItemFieldDirective {
7899
8124
  allSelectedSignal = computed(() => {
7900
8125
  const items = this.itemsSignal();
7901
8126
  return items.length > 0 && items.every((x) => x.selected);
7902
- }, ...(ngDevMode ? [{ debugName: "allSelectedSignal" }] : /* istanbul ignore next */ []));
8127
+ }, /* @ts-ignore */
8128
+ ...(ngDevMode ? [{ debugName: "allSelectedSignal" }] : /* istanbul ignore next */ []));
7903
8129
  // Sync field value to _valuesSubject
7904
8130
  _syncFieldValueEffect = effect(() => {
7905
8131
  const fieldGetter = this.field();
@@ -7910,7 +8136,8 @@ class AbstractForgePickableItemFieldDirective {
7910
8136
  // otherwise show up as a phantom selection when the user picks an item.
7911
8137
  const values = filterEmptyArrayValues(convertMaybeToArray(fieldValue));
7912
8138
  this._valuesSubject.next(values);
7913
- }, ...(ngDevMode ? [{ debugName: "_syncFieldValueEffect" }] : /* istanbul ignore next */ []));
8139
+ }, /* @ts-ignore */
8140
+ ...(ngDevMode ? [{ debugName: "_syncFieldValueEffect" }] : /* istanbul ignore next */ []));
7914
8141
  // MARK: Lifecycle
7915
8142
  ngOnInit() {
7916
8143
  const p = this.props();
@@ -8010,10 +8237,10 @@ class AbstractForgePickableItemFieldDirective {
8010
8237
  return of(hasDisplay.map((x) => x[3]));
8011
8238
  }));
8012
8239
  }
8013
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: AbstractForgePickableItemFieldDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
8014
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.11", type: AbstractForgePickableItemFieldDirective, isStandalone: true, inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, key: { classPropertyName: "key", publicName: "key", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: true, isRequired: false, transformFunction: null }, props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null }, meta: { classPropertyName: "meta", publicName: "meta", isSignal: true, isRequired: false, transformFunction: null }, validationMessages: { classPropertyName: "validationMessages", publicName: "validationMessages", isSignal: true, isRequired: false, transformFunction: null }, defaultValidationMessages: { classPropertyName: "defaultValidationMessages", publicName: "defaultValidationMessages", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
8240
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: AbstractForgePickableItemFieldDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
8241
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.4", type: AbstractForgePickableItemFieldDirective, isStandalone: true, inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, key: { classPropertyName: "key", publicName: "key", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: true, isRequired: false, transformFunction: null }, props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null }, meta: { classPropertyName: "meta", publicName: "meta", isSignal: true, isRequired: false, transformFunction: null }, validationMessages: { classPropertyName: "validationMessages", publicName: "validationMessages", isSignal: true, isRequired: false, transformFunction: null }, defaultValidationMessages: { classPropertyName: "defaultValidationMessages", publicName: "defaultValidationMessages", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
8015
8242
  }
8016
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: AbstractForgePickableItemFieldDirective, decorators: [{
8243
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: AbstractForgePickableItemFieldDirective, decorators: [{
8017
8244
  type: Directive
8018
8245
  }], propDecorators: { field: [{ type: i0.Input, args: [{ isSignal: true, alias: "field", required: true }] }], key: [{ type: i0.Input, args: [{ isSignal: true, alias: "key", required: true }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], tabIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "tabIndex", required: false }] }], props: [{ type: i0.Input, args: [{ isSignal: true, alias: "props", required: false }] }], meta: [{ type: i0.Input, args: [{ isSignal: true, alias: "meta", required: false }] }], validationMessages: [{ type: i0.Input, args: [{ isSignal: true, alias: "validationMessages", required: false }] }], defaultValidationMessages: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultValidationMessages", required: false }] }] } });
8019
8246
 
@@ -8102,12 +8329,12 @@ class DbxForgePickableChipFieldComponent extends AbstractForgePickableItemFieldD
8102
8329
  this._setValues(allValues);
8103
8330
  }
8104
8331
  }
8105
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgePickableChipFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8106
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.11", type: DbxForgePickableChipFieldComponent, isStandalone: true, selector: "dbx-forge-pickable-chip-field", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-pickable-item-field\">\n @if (showTextFilterSignal()) {\n <div class=\"dbx-pickable-item-field-filter\">\n @if (filterLabelSignal()) {\n <div class=\"dbx-label\">{{ filterLabelSignal() }}</div>\n }\n <input class=\"dbx-forge-bare-input\" [placeholder]=\"'Filter'\" [formControl]=\"inputCtrl\" />\n <mat-divider></mat-divider>\n </div>\n }\n <div class=\"dbx-pickable-item-field-chips\">\n <mat-chip-listbox [multiple]=\"multiSelectSignal()\" [selectable]=\"!isDisabledOrReadonlySignal()\" [disabled]=\"isDisabledOrReadonlySignal()\" [attr.aria-invalid]=\"ariaInvalidSignal()\" [attr.aria-describedby]=\"ariaDescribedBySignal()\">\n @if (showSelectAllButtonSignal() && multiSelectSignal() && !isDisabledOrReadonlySignal()) {\n <mat-chip-option (click)=\"toggleAll()\" [selected]=\"allSelectedSignal()\">\n <span class=\"dbx-chip-label\">All</span>\n </mat-chip-option>\n }\n @for (item of itemsSignal(); track item.key) {\n <mat-chip-option (click)=\"itemClicked(item)\" [selected]=\"item.selected\" [disabled]=\"readonlySignal() || item.disabled\">\n @if (item.itemValue.icon) {\n <mat-icon matChipAvatar>{{ item.itemValue.icon }}</mat-icon>\n }\n <span class=\"dbx-chip-label\">{{ item.itemValue.label }}</span>\n @if (item.itemValue.sublabel) {\n <span class=\"dbx-chip-sublabel\">{{ item.itemValue.sublabel }}</span>\n }\n </mat-chip-option>\n }\n </mat-chip-listbox>\n <dbx-injection [config]=\"footerConfigSignal()\"></dbx-injection>\n </div>\n @if (noItemsAvailableSignal()) {\n <output class=\"dbx-label\">No items match this filter.</output>\n }\n</div>\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "directive", type: i3$1.MatChipAvatar, selector: "mat-chip-avatar, [matChipAvatar]" }, { kind: "component", type: i3$1.MatChipListbox, selector: "mat-chip-listbox", inputs: ["multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "component", type: i3$1.MatChipOption, selector: "mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]", inputs: ["selectable", "selected"], outputs: ["selectionChange"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$3.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: DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
8332
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgePickableChipFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8333
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: DbxForgePickableChipFieldComponent, isStandalone: true, selector: "dbx-forge-pickable-chip-field", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-pickable-item-field\">\n @if (showTextFilterSignal()) {\n <div class=\"dbx-pickable-item-field-filter\">\n @if (filterLabelSignal()) {\n <div class=\"dbx-label\">{{ filterLabelSignal() }}</div>\n }\n <input class=\"dbx-forge-bare-input\" [placeholder]=\"'Filter'\" [formControl]=\"inputCtrl\" />\n <mat-divider></mat-divider>\n </div>\n }\n <div class=\"dbx-pickable-item-field-chips\">\n <mat-chip-listbox [multiple]=\"multiSelectSignal()\" [selectable]=\"!isDisabledOrReadonlySignal()\" [disabled]=\"isDisabledOrReadonlySignal()\" [attr.aria-invalid]=\"ariaInvalidSignal()\" [attr.aria-describedby]=\"ariaDescribedBySignal()\">\n @if (showSelectAllButtonSignal() && multiSelectSignal() && !isDisabledOrReadonlySignal()) {\n <mat-chip-option (click)=\"toggleAll()\" [selected]=\"allSelectedSignal()\">\n <span class=\"dbx-chip-label\">All</span>\n </mat-chip-option>\n }\n @for (item of itemsSignal(); track item.key) {\n <mat-chip-option (click)=\"itemClicked(item)\" [selected]=\"item.selected\" [disabled]=\"readonlySignal() || item.disabled\">\n @if (item.itemValue.icon) {\n <mat-icon matChipAvatar>{{ item.itemValue.icon }}</mat-icon>\n }\n <span class=\"dbx-chip-label\">{{ item.itemValue.label }}</span>\n @if (item.itemValue.sublabel) {\n <span class=\"dbx-chip-sublabel\">{{ item.itemValue.sublabel }}</span>\n }\n </mat-chip-option>\n }\n </mat-chip-listbox>\n <dbx-injection [config]=\"footerConfigSignal()\"></dbx-injection>\n </div>\n @if (noItemsAvailableSignal()) {\n <output class=\"dbx-label\">No items match this filter.</output>\n }\n</div>\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$4.DefaultValueAccessor, selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "directive", type: i3$1.MatChipAvatar, selector: "mat-chip-avatar, [matChipAvatar]" }, { kind: "component", type: i3$1.MatChipListbox, selector: "mat-chip-listbox", inputs: ["multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "component", type: i3$1.MatChipOption, selector: "mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]", inputs: ["selectable", "selected"], outputs: ["selectionChange"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$3.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: DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }] });
8107
8334
  }
8108
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgePickableChipFieldComponent, decorators: [{
8335
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgePickableChipFieldComponent, decorators: [{
8109
8336
  type: Component,
8110
- args: [{ selector: 'dbx-forge-pickable-chip-field', imports: [ReactiveFormsModule, MatChipsModule, MatIconModule, MatDivider, DbxInjectionComponent], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<div class=\"dbx-pickable-item-field\">\n @if (showTextFilterSignal()) {\n <div class=\"dbx-pickable-item-field-filter\">\n @if (filterLabelSignal()) {\n <div class=\"dbx-label\">{{ filterLabelSignal() }}</div>\n }\n <input class=\"dbx-forge-bare-input\" [placeholder]=\"'Filter'\" [formControl]=\"inputCtrl\" />\n <mat-divider></mat-divider>\n </div>\n }\n <div class=\"dbx-pickable-item-field-chips\">\n <mat-chip-listbox [multiple]=\"multiSelectSignal()\" [selectable]=\"!isDisabledOrReadonlySignal()\" [disabled]=\"isDisabledOrReadonlySignal()\" [attr.aria-invalid]=\"ariaInvalidSignal()\" [attr.aria-describedby]=\"ariaDescribedBySignal()\">\n @if (showSelectAllButtonSignal() && multiSelectSignal() && !isDisabledOrReadonlySignal()) {\n <mat-chip-option (click)=\"toggleAll()\" [selected]=\"allSelectedSignal()\">\n <span class=\"dbx-chip-label\">All</span>\n </mat-chip-option>\n }\n @for (item of itemsSignal(); track item.key) {\n <mat-chip-option (click)=\"itemClicked(item)\" [selected]=\"item.selected\" [disabled]=\"readonlySignal() || item.disabled\">\n @if (item.itemValue.icon) {\n <mat-icon matChipAvatar>{{ item.itemValue.icon }}</mat-icon>\n }\n <span class=\"dbx-chip-label\">{{ item.itemValue.label }}</span>\n @if (item.itemValue.sublabel) {\n <span class=\"dbx-chip-sublabel\">{{ item.itemValue.sublabel }}</span>\n }\n </mat-chip-option>\n }\n </mat-chip-listbox>\n <dbx-injection [config]=\"footerConfigSignal()\"></dbx-injection>\n </div>\n @if (noItemsAvailableSignal()) {\n <output class=\"dbx-label\">No items match this filter.</output>\n }\n</div>\n" }]
8337
+ args: [{ selector: 'dbx-forge-pickable-chip-field', imports: [ReactiveFormsModule, MatChipsModule, MatIconModule, MatDivider, DbxInjectionComponent], template: "<div class=\"dbx-pickable-item-field\">\n @if (showTextFilterSignal()) {\n <div class=\"dbx-pickable-item-field-filter\">\n @if (filterLabelSignal()) {\n <div class=\"dbx-label\">{{ filterLabelSignal() }}</div>\n }\n <input class=\"dbx-forge-bare-input\" [placeholder]=\"'Filter'\" [formControl]=\"inputCtrl\" />\n <mat-divider></mat-divider>\n </div>\n }\n <div class=\"dbx-pickable-item-field-chips\">\n <mat-chip-listbox [multiple]=\"multiSelectSignal()\" [selectable]=\"!isDisabledOrReadonlySignal()\" [disabled]=\"isDisabledOrReadonlySignal()\" [attr.aria-invalid]=\"ariaInvalidSignal()\" [attr.aria-describedby]=\"ariaDescribedBySignal()\">\n @if (showSelectAllButtonSignal() && multiSelectSignal() && !isDisabledOrReadonlySignal()) {\n <mat-chip-option (click)=\"toggleAll()\" [selected]=\"allSelectedSignal()\">\n <span class=\"dbx-chip-label\">All</span>\n </mat-chip-option>\n }\n @for (item of itemsSignal(); track item.key) {\n <mat-chip-option (click)=\"itemClicked(item)\" [selected]=\"item.selected\" [disabled]=\"readonlySignal() || item.disabled\">\n @if (item.itemValue.icon) {\n <mat-icon matChipAvatar>{{ item.itemValue.icon }}</mat-icon>\n }\n <span class=\"dbx-chip-label\">{{ item.itemValue.label }}</span>\n @if (item.itemValue.sublabel) {\n <span class=\"dbx-chip-sublabel\">{{ item.itemValue.sublabel }}</span>\n }\n </mat-chip-option>\n }\n </mat-chip-listbox>\n <dbx-injection [config]=\"footerConfigSignal()\"></dbx-injection>\n </div>\n @if (noItemsAvailableSignal()) {\n <output class=\"dbx-label\">No items match this filter.</output>\n }\n</div>\n" }]
8111
8338
  }], ctorParameters: () => [] });
8112
8339
 
8113
8340
  var pickableChip_field_component = /*#__PURE__*/Object.freeze({
@@ -8142,12 +8369,12 @@ class DbxForgePickableListFieldComponent extends AbstractForgePickableItemFieldD
8142
8369
  this._setValues(allValues);
8143
8370
  }
8144
8371
  }
8145
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgePickableListFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8146
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.11", type: DbxForgePickableListFieldComponent, isStandalone: true, selector: "dbx-forge-pickable-list-field", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-pickable-item-field dbx-pickable-item-field-list\">\n @if (showTextFilterSignal()) {\n <div class=\"dbx-pickable-item-field-filter\">\n @if (filterLabelSignal()) {\n <div class=\"dbx-label\">{{ filterLabelSignal() }}</div>\n }\n <input class=\"dbx-forge-bare-input\" [placeholder]=\"'Filter'\" [formControl]=\"inputCtrl\" />\n <mat-divider></mat-divider>\n </div>\n }\n @if (showSelectAllButtonSignal() && multiSelectSignal() && !isDisabledOrReadonlySignal()) {\n <div class=\"dbx-pickable-item-field-select-all\">\n <button class=\"dbx-pickable-select-all-button\" type=\"button\" (click)=\"toggleAll()\">{{ allSelectedSignal() ? 'Deselect All' : 'Select All' }}</button>\n <mat-divider></mat-divider>\n </div>\n }\n <div class=\"dbx-pickable-item-field-list-content\">\n <mat-selection-list [multiple]=\"multiSelectSignal()\" [disabled]=\"isDisabledOrReadonlySignal()\" (selectionChange)=\"onSelectionChange($event)\" [attr.aria-invalid]=\"ariaInvalidSignal()\" [attr.aria-describedby]=\"ariaDescribedBySignal()\">\n @for (item of itemsSignal(); track item.key) {\n <mat-list-option class=\"dbx-list-view-item\" [value]=\"item.itemValue.value\" [selected]=\"item.selected\" [disabled]=\"readonlySignal() || item.disabled\">\n @if (item.itemValue.icon) {\n <mat-icon matListItemIcon>{{ item.itemValue.icon }}</mat-icon>\n }\n <div class=\"dbx-default-pickable-item-field-list-item dbx-flex-bar\">\n <span class=\"dbx-chip-label\">{{ item.itemValue.label }}</span>\n @if (item.itemValue.sublabel) {\n <span class=\"dbx-chip-sublabel\">({{ item.itemValue.sublabel }})</span>\n }\n </div>\n </mat-list-option>\n }\n </mat-selection-list>\n </div>\n <dbx-injection [config]=\"footerConfigSignal()\"></dbx-injection>\n @if (noItemsAvailableSignal()) {\n <output class=\"dbx-label\">No items match this filter.</output>\n }\n</div>\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i2$2.MatSelectionList, selector: "mat-selection-list", inputs: ["color", "compareWith", "multiple", "hideSingleSelectionIndicator", "disabled"], outputs: ["selectionChange"], exportAs: ["matSelectionList"] }, { kind: "component", type: i2$2.MatListOption, selector: "mat-list-option", inputs: ["togglePosition", "checkboxPosition", "color", "value", "selected"], outputs: ["selectedChange"], exportAs: ["matListOption"] }, { kind: "directive", type: i2$2.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "component", type: i7.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
8372
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgePickableListFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8373
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: DbxForgePickableListFieldComponent, isStandalone: true, selector: "dbx-forge-pickable-list-field", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-pickable-item-field dbx-pickable-item-field-list\">\n @if (showTextFilterSignal()) {\n <div class=\"dbx-pickable-item-field-filter\">\n @if (filterLabelSignal()) {\n <div class=\"dbx-label\">{{ filterLabelSignal() }}</div>\n }\n <input class=\"dbx-forge-bare-input\" [placeholder]=\"'Filter'\" [formControl]=\"inputCtrl\" />\n <mat-divider></mat-divider>\n </div>\n }\n @if (showSelectAllButtonSignal() && multiSelectSignal() && !isDisabledOrReadonlySignal()) {\n <div class=\"dbx-pickable-item-field-select-all\">\n <button class=\"dbx-pickable-select-all-button\" type=\"button\" (click)=\"toggleAll()\">{{ allSelectedSignal() ? 'Deselect All' : 'Select All' }}</button>\n <mat-divider></mat-divider>\n </div>\n }\n <div class=\"dbx-pickable-item-field-list-content\">\n <mat-selection-list [multiple]=\"multiSelectSignal()\" [disabled]=\"isDisabledOrReadonlySignal()\" (selectionChange)=\"onSelectionChange($event)\" [attr.aria-invalid]=\"ariaInvalidSignal()\" [attr.aria-describedby]=\"ariaDescribedBySignal()\">\n @for (item of itemsSignal(); track item.key) {\n <mat-list-option class=\"dbx-list-view-item\" [value]=\"item.itemValue.value\" [selected]=\"item.selected\" [disabled]=\"readonlySignal() || item.disabled\">\n @if (item.itemValue.icon) {\n <mat-icon matListItemIcon>{{ item.itemValue.icon }}</mat-icon>\n }\n <div class=\"dbx-default-pickable-item-field-list-item dbx-flex-bar\">\n <span class=\"dbx-chip-label\">{{ item.itemValue.label }}</span>\n @if (item.itemValue.sublabel) {\n <span class=\"dbx-chip-sublabel\">({{ item.itemValue.sublabel }})</span>\n }\n </div>\n </mat-list-option>\n }\n </mat-selection-list>\n </div>\n <dbx-injection [config]=\"footerConfigSignal()\"></dbx-injection>\n @if (noItemsAvailableSignal()) {\n <output class=\"dbx-label\">No items match this filter.</output>\n }\n</div>\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$4.DefaultValueAccessor, selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i2$2.MatSelectionList, selector: "mat-selection-list", inputs: ["color", "compareWith", "multiple", "hideSingleSelectionIndicator", "disabled"], outputs: ["selectionChange"], exportAs: ["matSelectionList"] }, { kind: "component", type: i2$2.MatListOption, selector: "mat-list-option", inputs: ["togglePosition", "color", "value", "selected"], outputs: ["selectedChange"], exportAs: ["matListOption"] }, { kind: "directive", type: i2$2.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "component", type: i7.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }] });
8147
8374
  }
8148
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgePickableListFieldComponent, decorators: [{
8375
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgePickableListFieldComponent, decorators: [{
8149
8376
  type: Component,
8150
- args: [{ selector: 'dbx-forge-pickable-list-field', imports: [ReactiveFormsModule, MatListModule, MatIconModule, MatDivider, DbxInjectionComponent], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<div class=\"dbx-pickable-item-field dbx-pickable-item-field-list\">\n @if (showTextFilterSignal()) {\n <div class=\"dbx-pickable-item-field-filter\">\n @if (filterLabelSignal()) {\n <div class=\"dbx-label\">{{ filterLabelSignal() }}</div>\n }\n <input class=\"dbx-forge-bare-input\" [placeholder]=\"'Filter'\" [formControl]=\"inputCtrl\" />\n <mat-divider></mat-divider>\n </div>\n }\n @if (showSelectAllButtonSignal() && multiSelectSignal() && !isDisabledOrReadonlySignal()) {\n <div class=\"dbx-pickable-item-field-select-all\">\n <button class=\"dbx-pickable-select-all-button\" type=\"button\" (click)=\"toggleAll()\">{{ allSelectedSignal() ? 'Deselect All' : 'Select All' }}</button>\n <mat-divider></mat-divider>\n </div>\n }\n <div class=\"dbx-pickable-item-field-list-content\">\n <mat-selection-list [multiple]=\"multiSelectSignal()\" [disabled]=\"isDisabledOrReadonlySignal()\" (selectionChange)=\"onSelectionChange($event)\" [attr.aria-invalid]=\"ariaInvalidSignal()\" [attr.aria-describedby]=\"ariaDescribedBySignal()\">\n @for (item of itemsSignal(); track item.key) {\n <mat-list-option class=\"dbx-list-view-item\" [value]=\"item.itemValue.value\" [selected]=\"item.selected\" [disabled]=\"readonlySignal() || item.disabled\">\n @if (item.itemValue.icon) {\n <mat-icon matListItemIcon>{{ item.itemValue.icon }}</mat-icon>\n }\n <div class=\"dbx-default-pickable-item-field-list-item dbx-flex-bar\">\n <span class=\"dbx-chip-label\">{{ item.itemValue.label }}</span>\n @if (item.itemValue.sublabel) {\n <span class=\"dbx-chip-sublabel\">({{ item.itemValue.sublabel }})</span>\n }\n </div>\n </mat-list-option>\n }\n </mat-selection-list>\n </div>\n <dbx-injection [config]=\"footerConfigSignal()\"></dbx-injection>\n @if (noItemsAvailableSignal()) {\n <output class=\"dbx-label\">No items match this filter.</output>\n }\n</div>\n" }]
8377
+ args: [{ selector: 'dbx-forge-pickable-list-field', imports: [ReactiveFormsModule, MatListModule, MatIconModule, MatDivider, DbxInjectionComponent], template: "<div class=\"dbx-pickable-item-field dbx-pickable-item-field-list\">\n @if (showTextFilterSignal()) {\n <div class=\"dbx-pickable-item-field-filter\">\n @if (filterLabelSignal()) {\n <div class=\"dbx-label\">{{ filterLabelSignal() }}</div>\n }\n <input class=\"dbx-forge-bare-input\" [placeholder]=\"'Filter'\" [formControl]=\"inputCtrl\" />\n <mat-divider></mat-divider>\n </div>\n }\n @if (showSelectAllButtonSignal() && multiSelectSignal() && !isDisabledOrReadonlySignal()) {\n <div class=\"dbx-pickable-item-field-select-all\">\n <button class=\"dbx-pickable-select-all-button\" type=\"button\" (click)=\"toggleAll()\">{{ allSelectedSignal() ? 'Deselect All' : 'Select All' }}</button>\n <mat-divider></mat-divider>\n </div>\n }\n <div class=\"dbx-pickable-item-field-list-content\">\n <mat-selection-list [multiple]=\"multiSelectSignal()\" [disabled]=\"isDisabledOrReadonlySignal()\" (selectionChange)=\"onSelectionChange($event)\" [attr.aria-invalid]=\"ariaInvalidSignal()\" [attr.aria-describedby]=\"ariaDescribedBySignal()\">\n @for (item of itemsSignal(); track item.key) {\n <mat-list-option class=\"dbx-list-view-item\" [value]=\"item.itemValue.value\" [selected]=\"item.selected\" [disabled]=\"readonlySignal() || item.disabled\">\n @if (item.itemValue.icon) {\n <mat-icon matListItemIcon>{{ item.itemValue.icon }}</mat-icon>\n }\n <div class=\"dbx-default-pickable-item-field-list-item dbx-flex-bar\">\n <span class=\"dbx-chip-label\">{{ item.itemValue.label }}</span>\n @if (item.itemValue.sublabel) {\n <span class=\"dbx-chip-sublabel\">({{ item.itemValue.sublabel }})</span>\n }\n </div>\n </mat-list-option>\n }\n </mat-selection-list>\n </div>\n <dbx-injection [config]=\"footerConfigSignal()\"></dbx-injection>\n @if (noItemsAvailableSignal()) {\n <output class=\"dbx-label\">No items match this filter.</output>\n }\n</div>\n" }]
8151
8378
  }], ctorParameters: () => [] });
8152
8379
 
8153
8380
  var pickableList_field_component = /*#__PURE__*/Object.freeze({
@@ -8208,16 +8435,26 @@ class DbxForgeSourceSelectFieldComponent {
8208
8435
  materialConfig = inject(MATERIAL_CONFIG, { optional: true });
8209
8436
  elementRef = inject((ElementRef));
8210
8437
  // ng-forge ValueFieldComponent inputs
8211
- field = input.required(...(ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []));
8212
- key = input.required(...(ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []));
8213
- label = input(...(ngDevMode ? [undefined, { debugName: "label" }] : /* istanbul ignore next */ []));
8214
- placeholder = input(...(ngDevMode ? [undefined, { debugName: "placeholder" }] : /* istanbul ignore next */ []));
8215
- className = input('', ...(ngDevMode ? [{ debugName: "className" }] : /* istanbul ignore next */ []));
8216
- tabIndex = input(...(ngDevMode ? [undefined, { debugName: "tabIndex" }] : /* istanbul ignore next */ []));
8217
- props = input(...(ngDevMode ? [undefined, { debugName: "props" }] : /* istanbul ignore next */ []));
8218
- meta = input(...(ngDevMode ? [undefined, { debugName: "meta" }] : /* istanbul ignore next */ []));
8219
- validationMessages = input(...(ngDevMode ? [undefined, { debugName: "validationMessages" }] : /* istanbul ignore next */ []));
8220
- defaultValidationMessages = input(...(ngDevMode ? [undefined, { debugName: "defaultValidationMessages" }] : /* istanbul ignore next */ []));
8438
+ field = input.required(/* @ts-ignore */
8439
+ ...(ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []));
8440
+ key = input.required(/* @ts-ignore */
8441
+ ...(ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []));
8442
+ label = input(/* @ts-ignore */
8443
+ ...(ngDevMode ? [undefined, { debugName: "label" }] : /* istanbul ignore next */ []));
8444
+ placeholder = input(/* @ts-ignore */
8445
+ ...(ngDevMode ? [undefined, { debugName: "placeholder" }] : /* istanbul ignore next */ []));
8446
+ className = input('', /* @ts-ignore */
8447
+ ...(ngDevMode ? [{ debugName: "className" }] : /* istanbul ignore next */ []));
8448
+ tabIndex = input(/* @ts-ignore */
8449
+ ...(ngDevMode ? [undefined, { debugName: "tabIndex" }] : /* istanbul ignore next */ []));
8450
+ props = input(/* @ts-ignore */
8451
+ ...(ngDevMode ? [undefined, { debugName: "props" }] : /* istanbul ignore next */ []));
8452
+ meta = input(/* @ts-ignore */
8453
+ ...(ngDevMode ? [undefined, { debugName: "meta" }] : /* istanbul ignore next */ []));
8454
+ validationMessages = input(/* @ts-ignore */
8455
+ ...(ngDevMode ? [undefined, { debugName: "validationMessages" }] : /* istanbul ignore next */ []));
8456
+ defaultValidationMessages = input(/* @ts-ignore */
8457
+ ...(ngDevMode ? [undefined, { debugName: "defaultValidationMessages" }] : /* istanbul ignore next */ []));
8221
8458
  // Disabled state
8222
8459
  isDisabled = dbxForgeFieldDisabled();
8223
8460
  _cacheMetaSub = cleanSubscription();
@@ -8231,19 +8468,27 @@ class DbxForgeSourceSelectFieldComponent {
8231
8468
  buttonElement = viewChild('button', { ...(ngDevMode ? { debugName: "buttonElement" } : /* istanbul ignore next */ {}), read: (ElementRef) });
8232
8469
  filterInputElement = viewChild('filterInput', { ...(ngDevMode ? { debugName: "filterInputElement" } : /* istanbul ignore next */ {}), read: (ElementRef) });
8233
8470
  // Computed signals from props
8234
- hintSignal = computed(() => this.props()?.hint, ...(ngDevMode ? [{ debugName: "hintSignal" }] : /* istanbul ignore next */ []));
8471
+ hintSignal = computed(() => this.props()?.hint, /* @ts-ignore */
8472
+ ...(ngDevMode ? [{ debugName: "hintSignal" }] : /* istanbul ignore next */ []));
8235
8473
  // Material config
8236
- effectiveAppearanceSignal = computed(() => this.materialConfig?.appearance ?? 'outline', ...(ngDevMode ? [{ debugName: "effectiveAppearanceSignal" }] : /* istanbul ignore next */ []));
8237
- effectiveSubscriptSizingSignal = computed(() => this.materialConfig?.subscriptSizing ?? 'dynamic', ...(ngDevMode ? [{ debugName: "effectiveSubscriptSizingSignal" }] : /* istanbul ignore next */ []));
8474
+ effectiveAppearanceSignal = computed(() => this.materialConfig?.appearance ?? 'outline', /* @ts-ignore */
8475
+ ...(ngDevMode ? [{ debugName: "effectiveAppearanceSignal" }] : /* istanbul ignore next */ []));
8476
+ effectiveSubscriptSizingSignal = computed(() => this.materialConfig?.subscriptSizing ?? 'dynamic', /* @ts-ignore */
8477
+ ...(ngDevMode ? [{ debugName: "effectiveSubscriptSizingSignal" }] : /* istanbul ignore next */ []));
8238
8478
  // Error handling
8239
8479
  resolvedErrors = createResolvedErrorsSignal(this.field, this.validationMessages, this.defaultValidationMessages);
8240
8480
  showErrors = shouldShowErrors(this.field);
8241
- errorsToDisplaySignal = computed(() => (this.showErrors() ? this.resolvedErrors() : []), ...(ngDevMode ? [{ debugName: "errorsToDisplaySignal" }] : /* istanbul ignore next */ []));
8481
+ errorsToDisplaySignal = computed(() => (this.showErrors() ? this.resolvedErrors() : []), /* @ts-ignore */
8482
+ ...(ngDevMode ? [{ debugName: "errorsToDisplaySignal" }] : /* istanbul ignore next */ []));
8242
8483
  // ARIA
8243
- hintIdSignal = computed(() => `${this.key()}-hint`, ...(ngDevMode ? [{ debugName: "hintIdSignal" }] : /* istanbul ignore next */ []));
8244
- errorIdSignal = computed(() => `${this.key()}-error`, ...(ngDevMode ? [{ debugName: "errorIdSignal" }] : /* istanbul ignore next */ []));
8245
- ariaInvalidSignal = computed(() => (this.showErrors() ? 'true' : null), ...(ngDevMode ? [{ debugName: "ariaInvalidSignal" }] : /* istanbul ignore next */ []));
8246
- ariaRequiredSignal = computed(() => (this.field()().required() ? 'true' : null), ...(ngDevMode ? [{ debugName: "ariaRequiredSignal" }] : /* istanbul ignore next */ []));
8484
+ hintIdSignal = computed(() => `${this.key()}-hint`, /* @ts-ignore */
8485
+ ...(ngDevMode ? [{ debugName: "hintIdSignal" }] : /* istanbul ignore next */ []));
8486
+ errorIdSignal = computed(() => `${this.key()}-error`, /* @ts-ignore */
8487
+ ...(ngDevMode ? [{ debugName: "errorIdSignal" }] : /* istanbul ignore next */ []));
8488
+ ariaInvalidSignal = computed(() => (this.showErrors() ? 'true' : null), /* @ts-ignore */
8489
+ ...(ngDevMode ? [{ debugName: "ariaInvalidSignal" }] : /* istanbul ignore next */ []));
8490
+ ariaRequiredSignal = computed(() => (this.field()().required() ? 'true' : null), /* @ts-ignore */
8491
+ ...(ngDevMode ? [{ debugName: "ariaRequiredSignal" }] : /* istanbul ignore next */ []));
8247
8492
  ariaDescribedBySignal = computed(() => {
8248
8493
  const errorId = this.errorIdSignal();
8249
8494
  const hintId = this.hintIdSignal();
@@ -8252,13 +8497,20 @@ class DbxForgeSourceSelectFieldComponent {
8252
8497
  if (this.props()?.hint)
8253
8498
  return hintId;
8254
8499
  return null;
8255
- }, ...(ngDevMode ? [{ debugName: "ariaDescribedBySignal" }] : /* istanbul ignore next */ []));
8256
- multipleSignal = computed(() => this.props()?.multiple ?? false, ...(ngDevMode ? [{ debugName: "multipleSignal" }] : /* istanbul ignore next */ []));
8257
- showOpenSourceButtonSignal = computed(() => Boolean(this.props()?.openSource), ...(ngDevMode ? [{ debugName: "showOpenSourceButtonSignal" }] : /* istanbul ignore next */ []));
8258
- selectButtonIconSignal = computed(() => this.props()?.selectButtonIcon ?? 'add', ...(ngDevMode ? [{ debugName: "selectButtonIconSignal" }] : /* istanbul ignore next */ []));
8259
- filterableSignal = computed(() => this.props()?.filterable !== false, ...(ngDevMode ? [{ debugName: "filterableSignal" }] : /* istanbul ignore next */ []));
8260
- filterableGroupsSignal = computed(() => this.props()?.filterableGroups !== false, ...(ngDevMode ? [{ debugName: "filterableGroupsSignal" }] : /* istanbul ignore next */ []));
8261
- selectPanelClassSignal = computed(() => (this.filterableSignal() ? 'dbx-source-select-filterable-panel' : ''), ...(ngDevMode ? [{ debugName: "selectPanelClassSignal" }] : /* istanbul ignore next */ []));
8500
+ }, /* @ts-ignore */
8501
+ ...(ngDevMode ? [{ debugName: "ariaDescribedBySignal" }] : /* istanbul ignore next */ []));
8502
+ multipleSignal = computed(() => this.props()?.multiple ?? false, /* @ts-ignore */
8503
+ ...(ngDevMode ? [{ debugName: "multipleSignal" }] : /* istanbul ignore next */ []));
8504
+ showOpenSourceButtonSignal = computed(() => Boolean(this.props()?.openSource), /* @ts-ignore */
8505
+ ...(ngDevMode ? [{ debugName: "showOpenSourceButtonSignal" }] : /* istanbul ignore next */ []));
8506
+ selectButtonIconSignal = computed(() => this.props()?.selectButtonIcon ?? 'add', /* @ts-ignore */
8507
+ ...(ngDevMode ? [{ debugName: "selectButtonIconSignal" }] : /* istanbul ignore next */ []));
8508
+ filterableSignal = computed(() => this.props()?.filterable !== false, /* @ts-ignore */
8509
+ ...(ngDevMode ? [{ debugName: "filterableSignal" }] : /* istanbul ignore next */ []));
8510
+ filterableGroupsSignal = computed(() => this.props()?.filterableGroups !== false, /* @ts-ignore */
8511
+ ...(ngDevMode ? [{ debugName: "filterableGroupsSignal" }] : /* istanbul ignore next */ []));
8512
+ selectPanelClassSignal = computed(() => (this.filterableSignal() ? 'dbx-source-select-filterable-panel' : ''), /* @ts-ignore */
8513
+ ...(ngDevMode ? [{ debugName: "selectPanelClassSignal" }] : /* istanbul ignore next */ []));
8262
8514
  values$ = this._valuesSubject.asObservable().pipe(shareReplay(1));
8263
8515
  allValuesEverSelected$ = this.values$.pipe(scan((acc, values) => {
8264
8516
  let result = acc;
@@ -8374,7 +8626,8 @@ class DbxForgeSourceSelectFieldComponent {
8374
8626
  // ng-forge can seed the field with the empty-string primitive default; treat nullish/empty as unset.
8375
8627
  const values = filterEmptyArrayValues(fieldValue == null ? [] : convertMaybeToArray(fieldValue));
8376
8628
  this._valuesSubject.next(values);
8377
- }, ...(ngDevMode ? [{ debugName: "_syncFieldValueEffect" }] : /* istanbul ignore next */ []));
8629
+ }, /* @ts-ignore */
8630
+ ...(ngDevMode ? [{ debugName: "_syncFieldValueEffect" }] : /* istanbul ignore next */ []));
8378
8631
  constructor() {
8379
8632
  setupMetaTracking(this.elementRef, this.meta, { selector: 'mat-select' });
8380
8633
  }
@@ -8529,17 +8782,17 @@ class DbxForgeSourceSelectFieldComponent {
8529
8782
  return of(hasDisplay.map((x) => x[3]));
8530
8783
  }));
8531
8784
  }
8532
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeSourceSelectFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8533
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.11", type: DbxForgeSourceSelectFieldComponent, isStandalone: true, selector: "dbx-forge-source-select-field", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, key: { classPropertyName: "key", publicName: "key", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: true, isRequired: false, transformFunction: null }, props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null }, meta: { classPropertyName: "meta", publicName: "meta", isSignal: true, isRequired: false, transformFunction: null }, validationMessages: { classPropertyName: "validationMessages", publicName: "validationMessages", isSignal: true, isRequired: false, transformFunction: null }, defaultValidationMessages: { classPropertyName: "defaultValidationMessages", publicName: "defaultValidationMessages", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "id": "`${key()}`", "attr.data-testid": "key()", "class": "className()", "attr.hidden": "field()().hidden() || null" } }, viewQueries: [{ propertyName: "buttonElement", first: true, predicate: ["button"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "filterInputElement", first: true, predicate: ["filterInput"], descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: "@let f = field();\n@let selectId = key() + '-select';\n\n<mat-form-field class=\"dbx-w100\" [appearance]=\"effectiveAppearanceSignal()\" [subscriptSizing]=\"effectiveSubscriptSizingSignal()\">\n @if (label(); as label) {\n <mat-label>{{ label | dynamicText | async }}</mat-label>\n }\n\n <mat-select [id]=\"selectId\" [formField]=\"f\" [multiple]=\"multipleSignal()\" [panelClass]=\"selectPanelClassSignal()\" (openedChange)=\"onSelectOpenedChange($event)\" [attr.aria-invalid]=\"ariaInvalidSignal()\" [attr.aria-required]=\"ariaRequiredSignal()\" [attr.aria-describedby]=\"ariaDescribedBySignal()\">\n @if (filterableSignal()) {\n <div class=\"dbx-source-select-filter-container\">\n <input #filterInput class=\"dbx-forge-bare-input dbx-source-select-filter-input\" type=\"text\" placeholder=\"Type to filter...\" (input)=\"onFilterInput($event)\" (keydown)=\"onFilterKeydown($event)\" />\n </div>\n }\n @for (value of filteredNonGroupedValuesSignal(); track value.value) {\n <mat-option [value]=\"value.value\">{{ value.label }}</mat-option>\n }\n @for (optionGroup of filteredGroupedOptionsSignal(); track optionGroup.label) {\n <mat-optgroup [label]=\"optionGroup.label\">\n @for (value of optionGroup.values; track value.value) {\n <mat-option [value]=\"value.value\">{{ value.label }}</mat-option>\n }\n </mat-optgroup>\n }\n </mat-select>\n\n @if (showOpenSourceButtonSignal() && !isDisabled()) {\n <div matSuffix class=\"dbx-source-select-field-suffix\">\n <dbx-action dbxActionValue [dbxActionHandler]=\"handleSelectOptions\">\n <dbx-button #button dbxActionButton [fab]=\"true\" [iconOnly]=\"true\" [icon]=\"selectButtonIconSignal()\"></dbx-button>\n </dbx-action>\n </div>\n }\n\n <dbx-loading class=\"dbx-source-select-field-loading\" [linear]=\"true\" [context]=\"context\"></dbx-loading>\n\n @if (errorsToDisplaySignal()[0]; as error) {\n <mat-error [id]=\"errorIdSignal()\">{{ error.message }}</mat-error>\n } @else if (hintSignal()) {\n <mat-hint [id]=\"hintIdSignal()\">{{ hintSignal() }}</mat-hint>\n }\n</mat-form-field>\n", dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "component", type: MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: MatOptgroup, selector: "mat-optgroup", inputs: ["label", "disabled"], exportAs: ["matOptgroup"] }, { kind: "directive", type: MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: FormField, selector: "[formField]", inputs: ["formField"], exportAs: ["formField"] }, { 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: "ngmodule", type: DbxActionModule }, { kind: "directive", type: i1.DbxActionDirective, selector: "dbx-action,[dbxAction]", exportAs: ["action", "dbxAction"] }, { kind: "directive", type: i1.DbxActionHandlerDirective, selector: "[dbxActionHandler]", inputs: ["dbxActionHandler"] }, { kind: "directive", type: i1.DbxActionValueDirective, selector: "dbxActionValue,[dbxActionValue]", inputs: ["dbxActionValue"] }, { kind: "directive", type: i1.DbxActionButtonDirective, selector: "[dbxActionButton]", inputs: ["dbxActionButtonEcho"] }, { kind: "component", type: DbxLoadingComponent, selector: "dbx-loading", inputs: ["padding", "show", "text", "mode", "diameter", "linear", "loading", "error", "context"] }, { kind: "pipe", type: DynamicTextPipe, name: "dynamicText" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
8785
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeSourceSelectFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8786
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: DbxForgeSourceSelectFieldComponent, isStandalone: true, selector: "dbx-forge-source-select-field", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, key: { classPropertyName: "key", publicName: "key", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: true, isRequired: false, transformFunction: null }, props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null }, meta: { classPropertyName: "meta", publicName: "meta", isSignal: true, isRequired: false, transformFunction: null }, validationMessages: { classPropertyName: "validationMessages", publicName: "validationMessages", isSignal: true, isRequired: false, transformFunction: null }, defaultValidationMessages: { classPropertyName: "defaultValidationMessages", publicName: "defaultValidationMessages", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "id": "`${key()}`", "attr.data-testid": "key()", "class": "className()", "attr.hidden": "field()().hidden() || null" } }, viewQueries: [{ propertyName: "buttonElement", first: true, predicate: ["button"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "filterInputElement", first: true, predicate: ["filterInput"], descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: "@let f = field();\n@let selectId = key() + '-select';\n\n<mat-form-field class=\"dbx-w100\" [appearance]=\"effectiveAppearanceSignal()\" [subscriptSizing]=\"effectiveSubscriptSizingSignal()\">\n @if (label(); as label) {\n <mat-label>{{ label | dynamicText | async }}</mat-label>\n }\n\n <mat-select [id]=\"selectId\" [formField]=\"f\" [multiple]=\"multipleSignal()\" [panelClass]=\"selectPanelClassSignal()\" (openedChange)=\"onSelectOpenedChange($event)\" [attr.aria-invalid]=\"ariaInvalidSignal()\" [attr.aria-required]=\"ariaRequiredSignal()\" [attr.aria-describedby]=\"ariaDescribedBySignal()\">\n @if (filterableSignal()) {\n <div class=\"dbx-source-select-filter-container\">\n <input #filterInput class=\"dbx-forge-bare-input dbx-source-select-filter-input\" type=\"text\" placeholder=\"Type to filter...\" (input)=\"onFilterInput($event)\" (keydown)=\"onFilterKeydown($event)\" />\n </div>\n }\n @for (value of filteredNonGroupedValuesSignal(); track value.value) {\n <mat-option [value]=\"value.value\">{{ value.label }}</mat-option>\n }\n @for (optionGroup of filteredGroupedOptionsSignal(); track optionGroup.label) {\n <mat-optgroup [label]=\"optionGroup.label\">\n @for (value of optionGroup.values; track value.value) {\n <mat-option [value]=\"value.value\">{{ value.label }}</mat-option>\n }\n </mat-optgroup>\n }\n </mat-select>\n\n @if (showOpenSourceButtonSignal() && !isDisabled()) {\n <div matSuffix class=\"dbx-source-select-field-suffix\">\n <dbx-action dbxActionValue [dbxActionHandler]=\"handleSelectOptions\" dbxActionSnackbarError>\n <dbx-button #button dbxActionButton [fab]=\"true\" [iconOnly]=\"true\" [icon]=\"selectButtonIconSignal()\"></dbx-button>\n </dbx-action>\n </div>\n }\n\n <dbx-loading class=\"dbx-source-select-field-loading\" [linear]=\"true\" [context]=\"context\"></dbx-loading>\n\n @if (errorsToDisplaySignal()[0]; as error) {\n <mat-error [id]=\"errorIdSignal()\">{{ error.message }}</mat-error>\n } @else if (hintSignal()) {\n <mat-hint [id]=\"hintIdSignal()\">{{ hintSignal() }}</mat-hint>\n }\n</mat-form-field>\n", dependencies: [{ kind: "directive", type: DbxActionSnackbarErrorDirective, selector: "[dbxActionSnackbarError]", inputs: ["dbxActionSnackbarError"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "component", type: MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: MatOptgroup, selector: "mat-optgroup", inputs: ["label", "disabled"], exportAs: ["matOptgroup"] }, { kind: "directive", type: MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: FormField, selector: "[formField]", inputs: ["formField"], exportAs: ["formField"] }, { kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customTextColor", "customSpinnerColor", "basic", "tonal", "raised", "stroked", "flat", "iconOnly", "fab", "customContent", "allowClickPropagation", "mode"] }, { kind: "ngmodule", type: DbxActionModule }, { kind: "directive", type: i1.DbxActionDirective, selector: "dbx-action,[dbxAction]", exportAs: ["action", "dbxAction"] }, { kind: "directive", type: i1.DbxActionHandlerDirective, selector: "[dbxActionHandler]", inputs: ["dbxActionHandler"] }, { kind: "directive", type: i1.DbxActionValueDirective, selector: "dbxActionValue,[dbxActionValue]", inputs: ["dbxActionValue"] }, { kind: "directive", type: i1.DbxActionButtonDirective, selector: "[dbxActionButton]", inputs: ["dbxActionButtonEcho"] }, { kind: "component", type: DbxLoadingComponent, selector: "dbx-loading", inputs: ["padding", "show", "text", "mode", "diameter", "linear", "loading", "error", "context"] }, { kind: "pipe", type: DynamicTextPipe, name: "dynamicText" }, { kind: "pipe", type: AsyncPipe, name: "async" }] });
8534
8787
  }
8535
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeSourceSelectFieldComponent, decorators: [{
8788
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeSourceSelectFieldComponent, decorators: [{
8536
8789
  type: Component,
8537
- args: [{ selector: 'dbx-forge-source-select-field', imports: [MatFormField, MatLabel, MatSelect, MatOption, MatOptgroup, MatHint, MatError, MatSuffix, FormField, DynamicTextPipe, AsyncPipe, DbxButtonComponent, DbxActionModule, DbxLoadingComponent], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, host: {
8790
+ args: [{ selector: 'dbx-forge-source-select-field', imports: [DbxActionSnackbarErrorDirective, MatFormField, MatLabel, MatSelect, MatOption, MatOptgroup, MatHint, MatError, MatSuffix, FormField, DynamicTextPipe, AsyncPipe, DbxButtonComponent, DbxActionModule, DbxLoadingComponent], host: {
8538
8791
  '[id]': '`${key()}`',
8539
8792
  '[attr.data-testid]': 'key()',
8540
8793
  '[class]': 'className()',
8541
8794
  '[attr.hidden]': 'field()().hidden() || null'
8542
- }, template: "@let f = field();\n@let selectId = key() + '-select';\n\n<mat-form-field class=\"dbx-w100\" [appearance]=\"effectiveAppearanceSignal()\" [subscriptSizing]=\"effectiveSubscriptSizingSignal()\">\n @if (label(); as label) {\n <mat-label>{{ label | dynamicText | async }}</mat-label>\n }\n\n <mat-select [id]=\"selectId\" [formField]=\"f\" [multiple]=\"multipleSignal()\" [panelClass]=\"selectPanelClassSignal()\" (openedChange)=\"onSelectOpenedChange($event)\" [attr.aria-invalid]=\"ariaInvalidSignal()\" [attr.aria-required]=\"ariaRequiredSignal()\" [attr.aria-describedby]=\"ariaDescribedBySignal()\">\n @if (filterableSignal()) {\n <div class=\"dbx-source-select-filter-container\">\n <input #filterInput class=\"dbx-forge-bare-input dbx-source-select-filter-input\" type=\"text\" placeholder=\"Type to filter...\" (input)=\"onFilterInput($event)\" (keydown)=\"onFilterKeydown($event)\" />\n </div>\n }\n @for (value of filteredNonGroupedValuesSignal(); track value.value) {\n <mat-option [value]=\"value.value\">{{ value.label }}</mat-option>\n }\n @for (optionGroup of filteredGroupedOptionsSignal(); track optionGroup.label) {\n <mat-optgroup [label]=\"optionGroup.label\">\n @for (value of optionGroup.values; track value.value) {\n <mat-option [value]=\"value.value\">{{ value.label }}</mat-option>\n }\n </mat-optgroup>\n }\n </mat-select>\n\n @if (showOpenSourceButtonSignal() && !isDisabled()) {\n <div matSuffix class=\"dbx-source-select-field-suffix\">\n <dbx-action dbxActionValue [dbxActionHandler]=\"handleSelectOptions\">\n <dbx-button #button dbxActionButton [fab]=\"true\" [iconOnly]=\"true\" [icon]=\"selectButtonIconSignal()\"></dbx-button>\n </dbx-action>\n </div>\n }\n\n <dbx-loading class=\"dbx-source-select-field-loading\" [linear]=\"true\" [context]=\"context\"></dbx-loading>\n\n @if (errorsToDisplaySignal()[0]; as error) {\n <mat-error [id]=\"errorIdSignal()\">{{ error.message }}</mat-error>\n } @else if (hintSignal()) {\n <mat-hint [id]=\"hintIdSignal()\">{{ hintSignal() }}</mat-hint>\n }\n</mat-form-field>\n" }]
8795
+ }, template: "@let f = field();\n@let selectId = key() + '-select';\n\n<mat-form-field class=\"dbx-w100\" [appearance]=\"effectiveAppearanceSignal()\" [subscriptSizing]=\"effectiveSubscriptSizingSignal()\">\n @if (label(); as label) {\n <mat-label>{{ label | dynamicText | async }}</mat-label>\n }\n\n <mat-select [id]=\"selectId\" [formField]=\"f\" [multiple]=\"multipleSignal()\" [panelClass]=\"selectPanelClassSignal()\" (openedChange)=\"onSelectOpenedChange($event)\" [attr.aria-invalid]=\"ariaInvalidSignal()\" [attr.aria-required]=\"ariaRequiredSignal()\" [attr.aria-describedby]=\"ariaDescribedBySignal()\">\n @if (filterableSignal()) {\n <div class=\"dbx-source-select-filter-container\">\n <input #filterInput class=\"dbx-forge-bare-input dbx-source-select-filter-input\" type=\"text\" placeholder=\"Type to filter...\" (input)=\"onFilterInput($event)\" (keydown)=\"onFilterKeydown($event)\" />\n </div>\n }\n @for (value of filteredNonGroupedValuesSignal(); track value.value) {\n <mat-option [value]=\"value.value\">{{ value.label }}</mat-option>\n }\n @for (optionGroup of filteredGroupedOptionsSignal(); track optionGroup.label) {\n <mat-optgroup [label]=\"optionGroup.label\">\n @for (value of optionGroup.values; track value.value) {\n <mat-option [value]=\"value.value\">{{ value.label }}</mat-option>\n }\n </mat-optgroup>\n }\n </mat-select>\n\n @if (showOpenSourceButtonSignal() && !isDisabled()) {\n <div matSuffix class=\"dbx-source-select-field-suffix\">\n <dbx-action dbxActionValue [dbxActionHandler]=\"handleSelectOptions\" dbxActionSnackbarError>\n <dbx-button #button dbxActionButton [fab]=\"true\" [iconOnly]=\"true\" [icon]=\"selectButtonIconSignal()\"></dbx-button>\n </dbx-action>\n </div>\n }\n\n <dbx-loading class=\"dbx-source-select-field-loading\" [linear]=\"true\" [context]=\"context\"></dbx-loading>\n\n @if (errorsToDisplaySignal()[0]; as error) {\n <mat-error [id]=\"errorIdSignal()\">{{ error.message }}</mat-error>\n } @else if (hintSignal()) {\n <mat-hint [id]=\"hintIdSignal()\">{{ hintSignal() }}</mat-hint>\n }\n</mat-form-field>\n" }]
8543
8796
  }], ctorParameters: () => [], propDecorators: { field: [{ type: i0.Input, args: [{ isSignal: true, alias: "field", required: true }] }], key: [{ type: i0.Input, args: [{ isSignal: true, alias: "key", required: true }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], tabIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "tabIndex", required: false }] }], props: [{ type: i0.Input, args: [{ isSignal: true, alias: "props", required: false }] }], meta: [{ type: i0.Input, args: [{ isSignal: true, alias: "meta", required: false }] }], validationMessages: [{ type: i0.Input, args: [{ isSignal: true, alias: "validationMessages", required: false }] }], defaultValidationMessages: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultValidationMessages", required: false }] }], buttonElement: [{ type: i0.ViewChild, args: ['button', { ...{ read: (ElementRef) }, isSignal: true }] }], filterInputElement: [{ type: i0.ViewChild, args: ['filterInput', { ...{ read: (ElementRef) }, isSignal: true }] }] } });
8544
8797
 
8545
8798
  var sourceselect_field_component = /*#__PURE__*/Object.freeze({
@@ -8595,16 +8848,26 @@ const dbxForgeListSelectionField = dbxForgeFieldFunction({
8595
8848
  class DbxForgeListSelectionFieldComponent {
8596
8849
  elementRef = inject((ElementRef));
8597
8850
  // ng-forge ValueFieldComponent inputs
8598
- field = input.required(...(ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []));
8599
- key = input.required(...(ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []));
8600
- label = input(...(ngDevMode ? [undefined, { debugName: "label" }] : /* istanbul ignore next */ []));
8601
- placeholder = input(...(ngDevMode ? [undefined, { debugName: "placeholder" }] : /* istanbul ignore next */ []));
8602
- className = input('', ...(ngDevMode ? [{ debugName: "className" }] : /* istanbul ignore next */ []));
8603
- tabIndex = input(...(ngDevMode ? [undefined, { debugName: "tabIndex" }] : /* istanbul ignore next */ []));
8604
- props = input(...(ngDevMode ? [undefined, { debugName: "props" }] : /* istanbul ignore next */ []));
8605
- meta = input(...(ngDevMode ? [undefined, { debugName: "meta" }] : /* istanbul ignore next */ []));
8606
- validationMessages = input(...(ngDevMode ? [undefined, { debugName: "validationMessages" }] : /* istanbul ignore next */ []));
8607
- defaultValidationMessages = input(...(ngDevMode ? [undefined, { debugName: "defaultValidationMessages" }] : /* istanbul ignore next */ []));
8851
+ field = input.required(/* @ts-ignore */
8852
+ ...(ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []));
8853
+ key = input.required(/* @ts-ignore */
8854
+ ...(ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []));
8855
+ label = input(/* @ts-ignore */
8856
+ ...(ngDevMode ? [undefined, { debugName: "label" }] : /* istanbul ignore next */ []));
8857
+ placeholder = input(/* @ts-ignore */
8858
+ ...(ngDevMode ? [undefined, { debugName: "placeholder" }] : /* istanbul ignore next */ []));
8859
+ className = input('', /* @ts-ignore */
8860
+ ...(ngDevMode ? [{ debugName: "className" }] : /* istanbul ignore next */ []));
8861
+ tabIndex = input(/* @ts-ignore */
8862
+ ...(ngDevMode ? [undefined, { debugName: "tabIndex" }] : /* istanbul ignore next */ []));
8863
+ props = input(/* @ts-ignore */
8864
+ ...(ngDevMode ? [undefined, { debugName: "props" }] : /* istanbul ignore next */ []));
8865
+ meta = input(/* @ts-ignore */
8866
+ ...(ngDevMode ? [undefined, { debugName: "meta" }] : /* istanbul ignore next */ []));
8867
+ validationMessages = input(/* @ts-ignore */
8868
+ ...(ngDevMode ? [undefined, { debugName: "validationMessages" }] : /* istanbul ignore next */ []));
8869
+ defaultValidationMessages = input(/* @ts-ignore */
8870
+ ...(ngDevMode ? [undefined, { debugName: "defaultValidationMessages" }] : /* istanbul ignore next */ []));
8608
8871
  // Disabled state
8609
8872
  isDisabled = dbxForgeFieldDisabled();
8610
8873
  isDisabled$ = toObservable(this.isDisabled);
@@ -8615,8 +8878,10 @@ class DbxForgeListSelectionFieldComponent {
8615
8878
  labelSignal = computed(() => {
8616
8879
  const l = this.label();
8617
8880
  return typeof l === 'string' ? l : undefined;
8618
- }, ...(ngDevMode ? [{ debugName: "labelSignal" }] : /* istanbul ignore next */ []));
8619
- hintSignal = computed(() => this.props()?.hint, ...(ngDevMode ? [{ debugName: "hintSignal" }] : /* istanbul ignore next */ []));
8881
+ }, /* @ts-ignore */
8882
+ ...(ngDevMode ? [{ debugName: "labelSignal" }] : /* istanbul ignore next */ []));
8883
+ hintSignal = computed(() => this.props()?.hint, /* @ts-ignore */
8884
+ ...(ngDevMode ? [{ debugName: "hintSignal" }] : /* istanbul ignore next */ []));
8620
8885
  /**
8621
8886
  * Resolves the configured `maxHeight` prop into a CSS length string for the
8622
8887
  * `--dbx-forge-list-item-field-height` custom property. Returns `null` when
@@ -8634,15 +8899,20 @@ class DbxForgeListSelectionFieldComponent {
8634
8899
  return `${raw}px`;
8635
8900
  }
8636
8901
  return raw;
8637
- }, ...(ngDevMode ? [{ debugName: "maxHeightCssVarSignal" }] : /* istanbul ignore next */ []));
8902
+ }, /* @ts-ignore */
8903
+ ...(ngDevMode ? [{ debugName: "maxHeightCssVarSignal" }] : /* istanbul ignore next */ []));
8638
8904
  // Error handling
8639
8905
  resolvedErrors = createResolvedErrorsSignal(this.field, this.validationMessages, this.defaultValidationMessages);
8640
8906
  showErrors = shouldShowErrors(this.field);
8641
- errorsToDisplaySignal = computed(() => (this.showErrors() ? this.resolvedErrors() : []), ...(ngDevMode ? [{ debugName: "errorsToDisplaySignal" }] : /* istanbul ignore next */ []));
8907
+ errorsToDisplaySignal = computed(() => (this.showErrors() ? this.resolvedErrors() : []), /* @ts-ignore */
8908
+ ...(ngDevMode ? [{ debugName: "errorsToDisplaySignal" }] : /* istanbul ignore next */ []));
8642
8909
  // ARIA
8643
- hintIdSignal = computed(() => `${this.key()}-hint`, ...(ngDevMode ? [{ debugName: "hintIdSignal" }] : /* istanbul ignore next */ []));
8644
- errorIdSignal = computed(() => `${this.key()}-error`, ...(ngDevMode ? [{ debugName: "errorIdSignal" }] : /* istanbul ignore next */ []));
8645
- ariaInvalidSignal = computed(() => (this.showErrors() ? 'true' : null), ...(ngDevMode ? [{ debugName: "ariaInvalidSignal" }] : /* istanbul ignore next */ []));
8910
+ hintIdSignal = computed(() => `${this.key()}-hint`, /* @ts-ignore */
8911
+ ...(ngDevMode ? [{ debugName: "hintIdSignal" }] : /* istanbul ignore next */ []));
8912
+ errorIdSignal = computed(() => `${this.key()}-error`, /* @ts-ignore */
8913
+ ...(ngDevMode ? [{ debugName: "errorIdSignal" }] : /* istanbul ignore next */ []));
8914
+ ariaInvalidSignal = computed(() => (this.showErrors() ? 'true' : null), /* @ts-ignore */
8915
+ ...(ngDevMode ? [{ debugName: "ariaInvalidSignal" }] : /* istanbul ignore next */ []));
8646
8916
  ariaDescribedBySignal = computed(() => {
8647
8917
  const errorId = this.errorIdSignal();
8648
8918
  const hintId = this.hintIdSignal();
@@ -8651,7 +8921,8 @@ class DbxForgeListSelectionFieldComponent {
8651
8921
  if (this.props()?.hint)
8652
8922
  return hintId;
8653
8923
  return null;
8654
- }, ...(ngDevMode ? [{ debugName: "ariaDescribedBySignal" }] : /* istanbul ignore next */ []));
8924
+ }, /* @ts-ignore */
8925
+ ...(ngDevMode ? [{ debugName: "ariaDescribedBySignal" }] : /* istanbul ignore next */ []));
8655
8926
  listComponentClass$ = this._listComponentClassObs.pipe(switchMapFilterMaybe());
8656
8927
  config$ = this.listComponentClass$.pipe(map((componentClass) => {
8657
8928
  const p = this.props();
@@ -8731,12 +9002,12 @@ class DbxForgeListSelectionFieldComponent {
8731
9002
  fieldState.value.set(values);
8732
9003
  }
8733
9004
  }
8734
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeListSelectionFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8735
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.11", type: DbxForgeListSelectionFieldComponent, isStandalone: true, selector: "dbx-forge-list-selection-field", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, key: { classPropertyName: "key", publicName: "key", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: true, isRequired: false, transformFunction: null }, props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null }, meta: { classPropertyName: "meta", publicName: "meta", isSignal: true, isRequired: false, transformFunction: null }, validationMessages: { classPropertyName: "validationMessages", publicName: "validationMessages", isSignal: true, isRequired: false, transformFunction: null }, defaultValidationMessages: { classPropertyName: "defaultValidationMessages", publicName: "defaultValidationMessages", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"dbx-forge-list-item-field\" [class.dbx-forge-list-field-disabled]=\"isDisabled()\" [style.--dbx-forge-list-item-field-height]=\"maxHeightCssVarSignal()\" dbxListItemModifier [dbxListItemIsSelectedModifier]=\"isSelectedModifierFunctionSignal()\" [attr.aria-invalid]=\"ariaInvalidSignal()\">\n <div class=\"dbx-forge-list-item-field-content\">\n <dbx-injection [config]=\"configSignal()\"></dbx-injection>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: DbxListModifierModule }, { kind: "directive", type: i1$1.DbxValueListItemModifierDirective, selector: "dbxListItemModifier,[dbxListItemModifier]", inputs: ["dbxListItemModifier"] }, { kind: "directive", type: i1$1.DbxListItemIsSelectedModifierDirective, selector: "dbxListItemIsSelectedModifier,[dbxListItemIsSelectedModifier]", inputs: ["dbxListItemIsSelectedModifier"] }, { kind: "component", type: DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }, { kind: "ngmodule", type: MatDividerModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9005
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeListSelectionFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9006
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: DbxForgeListSelectionFieldComponent, isStandalone: true, selector: "dbx-forge-list-selection-field", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, key: { classPropertyName: "key", publicName: "key", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: true, isRequired: false, transformFunction: null }, props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null }, meta: { classPropertyName: "meta", publicName: "meta", isSignal: true, isRequired: false, transformFunction: null }, validationMessages: { classPropertyName: "validationMessages", publicName: "validationMessages", isSignal: true, isRequired: false, transformFunction: null }, defaultValidationMessages: { classPropertyName: "defaultValidationMessages", publicName: "defaultValidationMessages", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"dbx-forge-list-item-field\" [class.dbx-forge-list-field-disabled]=\"isDisabled()\" [style.--dbx-forge-list-item-field-height]=\"maxHeightCssVarSignal()\" dbxListItemModifier [dbxListItemIsSelectedModifier]=\"isSelectedModifierFunctionSignal()\" [attr.aria-invalid]=\"ariaInvalidSignal()\">\n <div class=\"dbx-forge-list-item-field-content\">\n <dbx-injection [config]=\"configSignal()\"></dbx-injection>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: DbxListModifierModule }, { kind: "directive", type: i1$1.DbxValueListItemModifierDirective, selector: "dbxListItemModifier,[dbxListItemModifier]", inputs: ["dbxListItemModifier"] }, { kind: "directive", type: i1$1.DbxListItemIsSelectedModifierDirective, selector: "dbxListItemIsSelectedModifier,[dbxListItemIsSelectedModifier]", inputs: ["dbxListItemIsSelectedModifier"] }, { kind: "component", type: DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }, { kind: "ngmodule", type: MatDividerModule }] });
8736
9007
  }
8737
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeListSelectionFieldComponent, decorators: [{
9008
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeListSelectionFieldComponent, decorators: [{
8738
9009
  type: Component,
8739
- args: [{ selector: 'dbx-forge-list-selection-field', imports: [DbxListModifierModule, DbxInjectionComponent, MatDividerModule], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<div class=\"dbx-forge-list-item-field\" [class.dbx-forge-list-field-disabled]=\"isDisabled()\" [style.--dbx-forge-list-item-field-height]=\"maxHeightCssVarSignal()\" dbxListItemModifier [dbxListItemIsSelectedModifier]=\"isSelectedModifierFunctionSignal()\" [attr.aria-invalid]=\"ariaInvalidSignal()\">\n <div class=\"dbx-forge-list-item-field-content\">\n <dbx-injection [config]=\"configSignal()\"></dbx-injection>\n </div>\n</div>\n" }]
9010
+ args: [{ selector: 'dbx-forge-list-selection-field', imports: [DbxListModifierModule, DbxInjectionComponent, MatDividerModule], template: "<div class=\"dbx-forge-list-item-field\" [class.dbx-forge-list-field-disabled]=\"isDisabled()\" [style.--dbx-forge-list-item-field-height]=\"maxHeightCssVarSignal()\" dbxListItemModifier [dbxListItemIsSelectedModifier]=\"isSelectedModifierFunctionSignal()\" [attr.aria-invalid]=\"ariaInvalidSignal()\">\n <div class=\"dbx-forge-list-item-field-content\">\n <dbx-injection [config]=\"configSignal()\"></dbx-injection>\n </div>\n</div>\n" }]
8740
9011
  }], ctorParameters: () => [], propDecorators: { field: [{ type: i0.Input, args: [{ isSignal: true, alias: "field", required: true }] }], key: [{ type: i0.Input, args: [{ isSignal: true, alias: "key", required: true }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], tabIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "tabIndex", required: false }] }], props: [{ type: i0.Input, args: [{ isSignal: true, alias: "props", required: false }] }], meta: [{ type: i0.Input, args: [{ isSignal: true, alias: "meta", required: false }] }], validationMessages: [{ type: i0.Input, args: [{ isSignal: true, alias: "validationMessages", required: false }] }], defaultValidationMessages: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultValidationMessages", required: false }] }] } });
8741
9012
 
8742
9013
  var list_field_component = /*#__PURE__*/Object.freeze({
@@ -8785,34 +9056,46 @@ const FORGE_COMPONENT_FIELD_TYPE = 'dbx-component';
8785
9056
  class DbxForgeComponentFieldComponent {
8786
9057
  elementRef = inject((ElementRef));
8787
9058
  // ng-forge ValueFieldComponent inputs
8788
- field = input.required(...(ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []));
8789
- key = input.required(...(ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []));
8790
- label = input(...(ngDevMode ? [undefined, { debugName: "label" }] : /* istanbul ignore next */ []));
8791
- placeholder = input(...(ngDevMode ? [undefined, { debugName: "placeholder" }] : /* istanbul ignore next */ []));
8792
- className = input('', ...(ngDevMode ? [{ debugName: "className" }] : /* istanbul ignore next */ []));
8793
- tabIndex = input(...(ngDevMode ? [undefined, { debugName: "tabIndex" }] : /* istanbul ignore next */ []));
8794
- props = input(...(ngDevMode ? [undefined, { debugName: "props" }] : /* istanbul ignore next */ []));
8795
- meta = input(...(ngDevMode ? [undefined, { debugName: "meta" }] : /* istanbul ignore next */ []));
8796
- validationMessages = input(...(ngDevMode ? [undefined, { debugName: "validationMessages" }] : /* istanbul ignore next */ []));
8797
- defaultValidationMessages = input(...(ngDevMode ? [undefined, { debugName: "defaultValidationMessages" }] : /* istanbul ignore next */ []));
9059
+ field = input.required(/* @ts-ignore */
9060
+ ...(ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []));
9061
+ key = input.required(/* @ts-ignore */
9062
+ ...(ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []));
9063
+ label = input(/* @ts-ignore */
9064
+ ...(ngDevMode ? [undefined, { debugName: "label" }] : /* istanbul ignore next */ []));
9065
+ placeholder = input(/* @ts-ignore */
9066
+ ...(ngDevMode ? [undefined, { debugName: "placeholder" }] : /* istanbul ignore next */ []));
9067
+ className = input('', /* @ts-ignore */
9068
+ ...(ngDevMode ? [{ debugName: "className" }] : /* istanbul ignore next */ []));
9069
+ tabIndex = input(/* @ts-ignore */
9070
+ ...(ngDevMode ? [undefined, { debugName: "tabIndex" }] : /* istanbul ignore next */ []));
9071
+ props = input(/* @ts-ignore */
9072
+ ...(ngDevMode ? [undefined, { debugName: "props" }] : /* istanbul ignore next */ []));
9073
+ meta = input(/* @ts-ignore */
9074
+ ...(ngDevMode ? [undefined, { debugName: "meta" }] : /* istanbul ignore next */ []));
9075
+ validationMessages = input(/* @ts-ignore */
9076
+ ...(ngDevMode ? [undefined, { debugName: "validationMessages" }] : /* istanbul ignore next */ []));
9077
+ defaultValidationMessages = input(/* @ts-ignore */
9078
+ ...(ngDevMode ? [undefined, { debugName: "defaultValidationMessages" }] : /* istanbul ignore next */ []));
8798
9079
  // Disabled state
8799
9080
  isDisabled = dbxForgeFieldDisabled();
8800
9081
  showDisabledStateSignal = computed(() => {
8801
9082
  const props = this.props();
8802
9083
  return this.isDisabled() && (props?.allowDisabledEffects ?? true);
8803
- }, ...(ngDevMode ? [{ debugName: "showDisabledStateSignal" }] : /* istanbul ignore next */ []));
9084
+ }, /* @ts-ignore */
9085
+ ...(ngDevMode ? [{ debugName: "showDisabledStateSignal" }] : /* istanbul ignore next */ []));
8804
9086
  constructor() {
8805
9087
  setupMetaTracking(this.elementRef, this.meta, { selector: 'dbx-injection' });
8806
9088
  }
8807
9089
  configSignal = computed(() => {
8808
9090
  return this.props()?.componentField;
8809
- }, ...(ngDevMode ? [{ debugName: "configSignal" }] : /* istanbul ignore next */ []));
8810
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeComponentFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8811
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.11", type: DbxForgeComponentFieldComponent, isStandalone: true, selector: "dbx-forge-component-field", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, key: { classPropertyName: "key", publicName: "key", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: true, isRequired: false, transformFunction: null }, props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null }, meta: { classPropertyName: "meta", publicName: "meta", isSignal: true, isRequired: false, transformFunction: null }, validationMessages: { classPropertyName: "validationMessages", publicName: "validationMessages", isSignal: true, isRequired: false, transformFunction: null }, defaultValidationMessages: { classPropertyName: "defaultValidationMessages", publicName: "defaultValidationMessages", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "className()", "class.dbx-forge-disabled": "showDisabledStateSignal()" } }, ngImport: i0, template: `
9091
+ }, /* @ts-ignore */
9092
+ ...(ngDevMode ? [{ debugName: "configSignal" }] : /* istanbul ignore next */ []));
9093
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeComponentFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9094
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: DbxForgeComponentFieldComponent, isStandalone: true, selector: "dbx-forge-component-field", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, key: { classPropertyName: "key", publicName: "key", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: true, isRequired: false, transformFunction: null }, props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null }, meta: { classPropertyName: "meta", publicName: "meta", isSignal: true, isRequired: false, transformFunction: null }, validationMessages: { classPropertyName: "validationMessages", publicName: "validationMessages", isSignal: true, isRequired: false, transformFunction: null }, defaultValidationMessages: { classPropertyName: "defaultValidationMessages", publicName: "defaultValidationMessages", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "className()", "class.dbx-forge-disabled": "showDisabledStateSignal()" } }, ngImport: i0, template: `
8812
9095
  <div class="dbx-form-component" dbx-injection [config]="configSignal()"></div>
8813
- `, isInline: true, dependencies: [{ kind: "component", type: DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9096
+ `, isInline: true, dependencies: [{ kind: "component", type: DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }] });
8814
9097
  }
8815
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeComponentFieldComponent, decorators: [{
9098
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeComponentFieldComponent, decorators: [{
8816
9099
  type: Component,
8817
9100
  args: [{
8818
9101
  selector: 'dbx-forge-component-field',
@@ -8820,8 +9103,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
8820
9103
  <div class="dbx-form-component" dbx-injection [config]="configSignal()"></div>
8821
9104
  `,
8822
9105
  imports: [DbxInjectionComponent],
8823
- changeDetection: ChangeDetectionStrategy.OnPush,
8824
- standalone: true,
8825
9106
  host: {
8826
9107
  '[class]': 'className()',
8827
9108
  '[class.dbx-forge-disabled]': 'showDisabledStateSignal()'
@@ -8893,16 +9174,26 @@ class DbxForgeTextEditorFieldComponent {
8893
9174
  _compactContextStore = inject(CompactContextStore, { optional: true });
8894
9175
  elementRef = inject((ElementRef));
8895
9176
  // ng-forge ValueFieldComponent inputs
8896
- field = input.required(...(ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []));
8897
- key = input.required(...(ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []));
8898
- label = input(...(ngDevMode ? [undefined, { debugName: "label" }] : /* istanbul ignore next */ []));
8899
- placeholder = input(...(ngDevMode ? [undefined, { debugName: "placeholder" }] : /* istanbul ignore next */ []));
8900
- className = input('', ...(ngDevMode ? [{ debugName: "className" }] : /* istanbul ignore next */ []));
8901
- tabIndex = input(...(ngDevMode ? [undefined, { debugName: "tabIndex" }] : /* istanbul ignore next */ []));
8902
- props = input(...(ngDevMode ? [undefined, { debugName: "props" }] : /* istanbul ignore next */ []));
8903
- meta = input(...(ngDevMode ? [undefined, { debugName: "meta" }] : /* istanbul ignore next */ []));
8904
- validationMessages = input(...(ngDevMode ? [undefined, { debugName: "validationMessages" }] : /* istanbul ignore next */ []));
8905
- defaultValidationMessages = input(...(ngDevMode ? [undefined, { debugName: "defaultValidationMessages" }] : /* istanbul ignore next */ []));
9177
+ field = input.required(/* @ts-ignore */
9178
+ ...(ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []));
9179
+ key = input.required(/* @ts-ignore */
9180
+ ...(ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []));
9181
+ label = input(/* @ts-ignore */
9182
+ ...(ngDevMode ? [undefined, { debugName: "label" }] : /* istanbul ignore next */ []));
9183
+ placeholder = input(/* @ts-ignore */
9184
+ ...(ngDevMode ? [undefined, { debugName: "placeholder" }] : /* istanbul ignore next */ []));
9185
+ className = input('', /* @ts-ignore */
9186
+ ...(ngDevMode ? [{ debugName: "className" }] : /* istanbul ignore next */ []));
9187
+ tabIndex = input(/* @ts-ignore */
9188
+ ...(ngDevMode ? [undefined, { debugName: "tabIndex" }] : /* istanbul ignore next */ []));
9189
+ props = input(/* @ts-ignore */
9190
+ ...(ngDevMode ? [undefined, { debugName: "props" }] : /* istanbul ignore next */ []));
9191
+ meta = input(/* @ts-ignore */
9192
+ ...(ngDevMode ? [undefined, { debugName: "meta" }] : /* istanbul ignore next */ []));
9193
+ validationMessages = input(/* @ts-ignore */
9194
+ ...(ngDevMode ? [undefined, { debugName: "validationMessages" }] : /* istanbul ignore next */ []));
9195
+ defaultValidationMessages = input(/* @ts-ignore */
9196
+ ...(ngDevMode ? [undefined, { debugName: "defaultValidationMessages" }] : /* istanbul ignore next */ []));
8906
9197
  _editor;
8907
9198
  _editorValueSub = cleanSubscription();
8908
9199
  _syncFromFieldSub = cleanSubscription();
@@ -8916,20 +9207,27 @@ class DbxForgeTextEditorFieldComponent {
8916
9207
  labelSignal = computed(() => {
8917
9208
  const l = this.label();
8918
9209
  return typeof l === 'string' ? l : undefined;
8919
- }, ...(ngDevMode ? [{ debugName: "labelSignal" }] : /* istanbul ignore next */ []));
9210
+ }, /* @ts-ignore */
9211
+ ...(ngDevMode ? [{ debugName: "labelSignal" }] : /* istanbul ignore next */ []));
8920
9212
  placeholderSignal = computed(() => {
8921
9213
  const p = this.placeholder();
8922
9214
  return typeof p === 'string' ? p : '';
8923
- }, ...(ngDevMode ? [{ debugName: "placeholderSignal" }] : /* istanbul ignore next */ []));
8924
- descriptionSignal = computed(() => this.props()?.hint, ...(ngDevMode ? [{ debugName: "descriptionSignal" }] : /* istanbul ignore next */ []));
9215
+ }, /* @ts-ignore */
9216
+ ...(ngDevMode ? [{ debugName: "placeholderSignal" }] : /* istanbul ignore next */ []));
9217
+ descriptionSignal = computed(() => this.props()?.hint, /* @ts-ignore */
9218
+ ...(ngDevMode ? [{ debugName: "descriptionSignal" }] : /* istanbul ignore next */ []));
8925
9219
  // Error handling
8926
9220
  resolvedErrors = createResolvedErrorsSignal(this.field, this.validationMessages, this.defaultValidationMessages);
8927
9221
  showErrors = shouldShowErrors(this.field);
8928
- errorsToDisplaySignal = computed(() => (this.showErrors() ? this.resolvedErrors() : []), ...(ngDevMode ? [{ debugName: "errorsToDisplaySignal" }] : /* istanbul ignore next */ []));
9222
+ errorsToDisplaySignal = computed(() => (this.showErrors() ? this.resolvedErrors() : []), /* @ts-ignore */
9223
+ ...(ngDevMode ? [{ debugName: "errorsToDisplaySignal" }] : /* istanbul ignore next */ []));
8929
9224
  // ARIA
8930
- hintIdSignal = computed(() => `${this.key()}-hint`, ...(ngDevMode ? [{ debugName: "hintIdSignal" }] : /* istanbul ignore next */ []));
8931
- errorIdSignal = computed(() => `${this.key()}-error`, ...(ngDevMode ? [{ debugName: "errorIdSignal" }] : /* istanbul ignore next */ []));
8932
- ariaInvalidSignal = computed(() => (this.showErrors() ? 'true' : null), ...(ngDevMode ? [{ debugName: "ariaInvalidSignal" }] : /* istanbul ignore next */ []));
9225
+ hintIdSignal = computed(() => `${this.key()}-hint`, /* @ts-ignore */
9226
+ ...(ngDevMode ? [{ debugName: "hintIdSignal" }] : /* istanbul ignore next */ []));
9227
+ errorIdSignal = computed(() => `${this.key()}-error`, /* @ts-ignore */
9228
+ ...(ngDevMode ? [{ debugName: "errorIdSignal" }] : /* istanbul ignore next */ []));
9229
+ ariaInvalidSignal = computed(() => (this.showErrors() ? 'true' : null), /* @ts-ignore */
9230
+ ...(ngDevMode ? [{ debugName: "ariaInvalidSignal" }] : /* istanbul ignore next */ []));
8933
9231
  ariaDescribedBySignal = computed(() => {
8934
9232
  const errorId = this.errorIdSignal();
8935
9233
  const hintId = this.hintIdSignal();
@@ -8938,7 +9236,8 @@ class DbxForgeTextEditorFieldComponent {
8938
9236
  if (this.props()?.hint)
8939
9237
  return hintId;
8940
9238
  return null;
8941
- }, ...(ngDevMode ? [{ debugName: "ariaDescribedBySignal" }] : /* istanbul ignore next */ []));
9239
+ }, /* @ts-ignore */
9240
+ ...(ngDevMode ? [{ debugName: "ariaDescribedBySignal" }] : /* istanbul ignore next */ []));
8942
9241
  constructor() {
8943
9242
  setupMetaTracking(this.elementRef, this.meta, { selector: 'ngx-editor' });
8944
9243
  }
@@ -8949,7 +9248,8 @@ class DbxForgeTextEditorFieldComponent {
8949
9248
  _disabledEffect = effect(() => {
8950
9249
  const disabled = this.isDisabled();
8951
9250
  toggleDisableFormControl(this.editorFormControl, disabled);
8952
- }, ...(ngDevMode ? [{ debugName: "_disabledEffect" }] : /* istanbul ignore next */ []));
9251
+ }, /* @ts-ignore */
9252
+ ...(ngDevMode ? [{ debugName: "_disabledEffect" }] : /* istanbul ignore next */ []));
8953
9253
  _syncFieldToEditor = effect(() => {
8954
9254
  const fieldSignal = this.field();
8955
9255
  const node = fieldSignal ? fieldSignal() : undefined;
@@ -8957,7 +9257,8 @@ class DbxForgeTextEditorFieldComponent {
8957
9257
  if (fieldValue !== undefined && fieldValue !== this.editorFormControl.value) {
8958
9258
  this.editorFormControl.setValue(fieldValue ?? '', { emitEvent: false });
8959
9259
  }
8960
- }, ...(ngDevMode ? [{ debugName: "_syncFieldToEditor" }] : /* istanbul ignore next */ []));
9260
+ }, /* @ts-ignore */
9261
+ ...(ngDevMode ? [{ debugName: "_syncFieldToEditor" }] : /* istanbul ignore next */ []));
8961
9262
  ngOnInit() {
8962
9263
  this._editor = new Editor({});
8963
9264
  // Watch for FormControl value changes (updated by ngx-editor's formControl binding)
@@ -8982,12 +9283,12 @@ class DbxForgeTextEditorFieldComponent {
8982
9283
  node.value.set(value);
8983
9284
  }
8984
9285
  }
8985
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeTextEditorFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8986
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.11", type: DbxForgeTextEditorFieldComponent, isStandalone: true, selector: "dbx-forge-texteditor-field", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, key: { classPropertyName: "key", publicName: "key", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: true, isRequired: false, transformFunction: null }, props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null }, meta: { classPropertyName: "meta", publicName: "meta", isSignal: true, isRequired: false, transformFunction: null }, validationMessages: { classPropertyName: "validationMessages", publicName: "validationMessages", isSignal: true, isRequired: false, transformFunction: null }, defaultValidationMessages: { classPropertyName: "defaultValidationMessages", publicName: "defaultValidationMessages", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"dbx-texteditor-field\" [ngClass]=\"compactClassSignal()\" [class.dbx-texteditor-field-disabled]=\"isDisabled()\">\n @if (labelSignal()) {\n <span class=\"dbx-label\">{{ labelSignal() }}</span>\n }\n <div class=\"dbx-texteditor-field-content\">\n <div class=\"dbx-texteditor-field-input\">\n <ngx-editor [editor]=\"editor\" outputFormat=\"html\" [placeholder]=\"placeholderSignal()\" [formControl]=\"editorFormControl\" [attr.aria-invalid]=\"ariaInvalidSignal()\" [attr.aria-describedby]=\"ariaDescribedBySignal()\"></ngx-editor>\n </div>\n <div class=\"dbx-texteditor-field-menu\">\n <ngx-editor-menu [editor]=\"editor\" [disabled]=\"isDisabled()\"></ngx-editor-menu>\n </div>\n </div>\n @if (errorsToDisplaySignal()[0]; as error) {\n <div class=\"dbx-form-description dbx-form-error\" [id]=\"errorIdSignal()\">{{ error.message }}</div>\n } @else if (descriptionSignal()) {\n <div class=\"dbx-form-description\" [id]=\"hintIdSignal()\">{{ descriptionSignal() }}</div>\n }\n</div>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: NgxEditorModule }, { kind: "component", type: i1$5.NgxEditorComponent, selector: "ngx-editor", inputs: ["editor", "outputFormat", "placeholder"], outputs: ["focusOut", "focusIn"] }, { kind: "component", type: i1$5.NgxEditorMenuComponent, selector: "ngx-editor-menu", inputs: ["toolbar", "colorPresets", "disabled", "editor", "customMenuRef", "dropdownPlacement"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9286
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeTextEditorFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9287
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: DbxForgeTextEditorFieldComponent, isStandalone: true, selector: "dbx-forge-texteditor-field", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, key: { classPropertyName: "key", publicName: "key", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: true, isRequired: false, transformFunction: null }, props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null }, meta: { classPropertyName: "meta", publicName: "meta", isSignal: true, isRequired: false, transformFunction: null }, validationMessages: { classPropertyName: "validationMessages", publicName: "validationMessages", isSignal: true, isRequired: false, transformFunction: null }, defaultValidationMessages: { classPropertyName: "defaultValidationMessages", publicName: "defaultValidationMessages", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"dbx-texteditor-field\" [ngClass]=\"compactClassSignal()\" [class.dbx-texteditor-field-disabled]=\"isDisabled()\">\n @if (labelSignal()) {\n <span class=\"dbx-label\">{{ labelSignal() }}</span>\n }\n <div class=\"dbx-texteditor-field-content\">\n <div class=\"dbx-texteditor-field-input\">\n <ngx-editor [editor]=\"editor\" outputFormat=\"html\" [placeholder]=\"placeholderSignal()\" [formControl]=\"editorFormControl\" [attr.aria-invalid]=\"ariaInvalidSignal()\" [attr.aria-describedby]=\"ariaDescribedBySignal()\"></ngx-editor>\n </div>\n <div class=\"dbx-texteditor-field-menu\">\n <ngx-editor-menu [editor]=\"editor\" [disabled]=\"isDisabled()\"></ngx-editor-menu>\n </div>\n </div>\n @if (errorsToDisplaySignal()[0]; as error) {\n <div class=\"dbx-form-description dbx-form-error\" [id]=\"errorIdSignal()\">{{ error.message }}</div>\n } @else if (descriptionSignal()) {\n <div class=\"dbx-form-description\" [id]=\"hintIdSignal()\">{{ descriptionSignal() }}</div>\n }\n</div>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: NgxEditorModule }, { kind: "component", type: i1$5.NgxEditorComponent, selector: "ngx-editor", inputs: ["editor", "outputFormat", "placeholder"], outputs: ["focusOut", "focusIn"] }, { kind: "component", type: i1$5.NgxEditorMenuComponent, selector: "ngx-editor-menu", inputs: ["toolbar", "colorPresets", "disabled", "editor", "customMenuRef", "dropdownPlacement"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
8987
9288
  }
8988
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeTextEditorFieldComponent, decorators: [{
9289
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeTextEditorFieldComponent, decorators: [{
8989
9290
  type: Component,
8990
- args: [{ selector: 'dbx-forge-texteditor-field', imports: [NgClass, NgxEditorModule, FormsModule, ReactiveFormsModule], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<div class=\"dbx-texteditor-field\" [ngClass]=\"compactClassSignal()\" [class.dbx-texteditor-field-disabled]=\"isDisabled()\">\n @if (labelSignal()) {\n <span class=\"dbx-label\">{{ labelSignal() }}</span>\n }\n <div class=\"dbx-texteditor-field-content\">\n <div class=\"dbx-texteditor-field-input\">\n <ngx-editor [editor]=\"editor\" outputFormat=\"html\" [placeholder]=\"placeholderSignal()\" [formControl]=\"editorFormControl\" [attr.aria-invalid]=\"ariaInvalidSignal()\" [attr.aria-describedby]=\"ariaDescribedBySignal()\"></ngx-editor>\n </div>\n <div class=\"dbx-texteditor-field-menu\">\n <ngx-editor-menu [editor]=\"editor\" [disabled]=\"isDisabled()\"></ngx-editor-menu>\n </div>\n </div>\n @if (errorsToDisplaySignal()[0]; as error) {\n <div class=\"dbx-form-description dbx-form-error\" [id]=\"errorIdSignal()\">{{ error.message }}</div>\n } @else if (descriptionSignal()) {\n <div class=\"dbx-form-description\" [id]=\"hintIdSignal()\">{{ descriptionSignal() }}</div>\n }\n</div>\n" }]
9291
+ args: [{ selector: 'dbx-forge-texteditor-field', imports: [NgClass, NgxEditorModule, FormsModule, ReactiveFormsModule], template: "<div class=\"dbx-texteditor-field\" [ngClass]=\"compactClassSignal()\" [class.dbx-texteditor-field-disabled]=\"isDisabled()\">\n @if (labelSignal()) {\n <span class=\"dbx-label\">{{ labelSignal() }}</span>\n }\n <div class=\"dbx-texteditor-field-content\">\n <div class=\"dbx-texteditor-field-input\">\n <ngx-editor [editor]=\"editor\" outputFormat=\"html\" [placeholder]=\"placeholderSignal()\" [formControl]=\"editorFormControl\" [attr.aria-invalid]=\"ariaInvalidSignal()\" [attr.aria-describedby]=\"ariaDescribedBySignal()\"></ngx-editor>\n </div>\n <div class=\"dbx-texteditor-field-menu\">\n <ngx-editor-menu [editor]=\"editor\" [disabled]=\"isDisabled()\"></ngx-editor-menu>\n </div>\n </div>\n @if (errorsToDisplaySignal()[0]; as error) {\n <div class=\"dbx-form-description dbx-form-error\" [id]=\"errorIdSignal()\">{{ error.message }}</div>\n } @else if (descriptionSignal()) {\n <div class=\"dbx-form-description\" [id]=\"hintIdSignal()\">{{ descriptionSignal() }}</div>\n }\n</div>\n" }]
8991
9292
  }], ctorParameters: () => [], propDecorators: { field: [{ type: i0.Input, args: [{ isSignal: true, alias: "field", required: true }] }], key: [{ type: i0.Input, args: [{ isSignal: true, alias: "key", required: true }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], tabIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "tabIndex", required: false }] }], props: [{ type: i0.Input, args: [{ isSignal: true, alias: "props", required: false }] }], meta: [{ type: i0.Input, args: [{ isSignal: true, alias: "meta", required: false }] }], validationMessages: [{ type: i0.Input, args: [{ isSignal: true, alias: "validationMessages", required: false }] }], defaultValidationMessages: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultValidationMessages", required: false }] }] } });
8992
9293
 
8993
9294
  var texteditor_field_component = /*#__PURE__*/Object.freeze({
@@ -9108,30 +9409,39 @@ function _withValuesFromSource(field, source) {
9108
9409
  * for coordinated add/remove/reorder operations.
9109
9410
  */
9110
9411
  class DbxForgeArrayFieldWrapperComponent {
9111
- fieldComponent = viewChild.required('fieldComponent', { read: ViewContainerRef });
9112
- fieldInputs = input(...(ngDevMode ? [undefined, { debugName: "fieldInputs" }] : /* istanbul ignore next */ []));
9412
+ fieldComponent = viewChild.required('fieldComponent', { ...(ngDevMode ? { debugName: "fieldComponent" } : /* istanbul ignore next */ {}), read: ViewContainerRef });
9413
+ fieldInputs = input(/* @ts-ignore */
9414
+ ...(ngDevMode ? [undefined, { debugName: "fieldInputs" }] : /* istanbul ignore next */ []));
9113
9415
  dispatcher = inject(EventDispatcher);
9114
9416
  _formContextService = inject(DbxForgeFormContextService);
9115
9417
  /**
9116
9418
  * Wrapper config props passed via addWrappers({ type, props }).
9117
9419
  * ng-forge delivers wrapper config properties (with `type` stripped) as individual inputs.
9118
9420
  */
9119
- props = input(...(ngDevMode ? [undefined, { debugName: "props" }] : /* istanbul ignore next */ []));
9421
+ props = input(/* @ts-ignore */
9422
+ ...(ngDevMode ? [undefined, { debugName: "props" }] : /* istanbul ignore next */ []));
9120
9423
  // Disabled state
9121
9424
  isDisabled = dbxForgeFieldDisabled();
9122
- labelSignal = computed(() => this.props()?.label ?? '', ...(ngDevMode ? [{ debugName: "labelSignal" }] : /* istanbul ignore next */ []));
9123
- hintSignal = computed(() => this.props()?.hint ?? '', ...(ngDevMode ? [{ debugName: "hintSignal" }] : /* istanbul ignore next */ []));
9124
- disableRearrangeSignal = computed(() => this.props()?.disableRearrange ?? false, ...(ngDevMode ? [{ debugName: "disableRearrangeSignal" }] : /* istanbul ignore next */ []));
9125
- allowAddSignal = computed(() => this.props()?.allowAdd ?? true, ...(ngDevMode ? [{ debugName: "allowAddSignal" }] : /* istanbul ignore next */ []));
9425
+ labelSignal = computed(() => this.props()?.label ?? '', /* @ts-ignore */
9426
+ ...(ngDevMode ? [{ debugName: "labelSignal" }] : /* istanbul ignore next */ []));
9427
+ hintSignal = computed(() => this.props()?.hint ?? '', /* @ts-ignore */
9428
+ ...(ngDevMode ? [{ debugName: "hintSignal" }] : /* istanbul ignore next */ []));
9429
+ disableRearrangeSignal = computed(() => this.props()?.disableRearrange ?? false, /* @ts-ignore */
9430
+ ...(ngDevMode ? [{ debugName: "disableRearrangeSignal" }] : /* istanbul ignore next */ []));
9431
+ allowAddSignal = computed(() => this.props()?.allowAdd ?? true, /* @ts-ignore */
9432
+ ...(ngDevMode ? [{ debugName: "allowAddSignal" }] : /* istanbul ignore next */ []));
9126
9433
  addTextSignal = computed(() => {
9127
9434
  const text = this.props()?.addText;
9128
9435
  return typeof text === 'string' ? text : 'Add';
9129
- }, ...(ngDevMode ? [{ debugName: "addTextSignal" }] : /* istanbul ignore next */ []));
9130
- addButtonStyleSignal = computed(() => this.props()?.addButtonStyle ?? { type: 'raised', color: 'primary' }, ...(ngDevMode ? [{ debugName: "addButtonStyleSignal" }] : /* istanbul ignore next */ []));
9436
+ }, /* @ts-ignore */
9437
+ ...(ngDevMode ? [{ debugName: "addTextSignal" }] : /* istanbul ignore next */ []));
9438
+ addButtonStyleSignal = computed(() => this.props()?.addButtonStyle ?? { type: 'raised', color: 'primary' }, /* @ts-ignore */
9439
+ ...(ngDevMode ? [{ debugName: "addButtonStyleSignal" }] : /* istanbul ignore next */ []));
9131
9440
  /**
9132
9441
  * Current item count read reactively from the form value.
9133
9442
  */
9134
- itemCountSignal = computed(() => this._readArrayValue().length, ...(ngDevMode ? [{ debugName: "itemCountSignal" }] : /* istanbul ignore next */ []));
9443
+ itemCountSignal = computed(() => this._readArrayValue().length, /* @ts-ignore */
9444
+ ...(ngDevMode ? [{ debugName: "itemCountSignal" }] : /* istanbul ignore next */ []));
9135
9445
  /**
9136
9446
  * Whether the array has reached its configured `maxLength`. When true, the
9137
9447
  * add button is disabled. Returns false when `maxLength` is not set.
@@ -9140,7 +9450,8 @@ class DbxForgeArrayFieldWrapperComponent {
9140
9450
  const itemCount = this.itemCountSignal();
9141
9451
  const maxLength = this.props()?.maxLength;
9142
9452
  return typeof maxLength === 'number' && itemCount >= maxLength;
9143
- }, ...(ngDevMode ? [{ debugName: "atMaxLengthSignal" }] : /* istanbul ignore next */ []));
9453
+ }, /* @ts-ignore */
9454
+ ...(ngDevMode ? [{ debugName: "atMaxLengthSignal" }] : /* istanbul ignore next */ []));
9144
9455
  /**
9145
9456
  * Add button disabled state — combines the standard disabled flag with the
9146
9457
  * `maxLength` cap so clicking past the limit is prevented.
@@ -9148,7 +9459,8 @@ class DbxForgeArrayFieldWrapperComponent {
9148
9459
  addButtonDisabledSignal = computed(() => {
9149
9460
  const atMaxLength = this.atMaxLengthSignal();
9150
9461
  return this.isDisabled() || atMaxLength;
9151
- }, ...(ngDevMode ? [{ debugName: "addButtonDisabledSignal" }] : /* istanbul ignore next */ []));
9462
+ }, /* @ts-ignore */
9463
+ ...(ngDevMode ? [{ debugName: "addButtonDisabledSignal" }] : /* istanbul ignore next */ []));
9152
9464
  drop(event) {
9153
9465
  if (event.previousIndex === event.currentIndex) {
9154
9466
  return;
@@ -9270,12 +9582,12 @@ class DbxForgeArrayFieldWrapperComponent {
9270
9582
  const boundedTo = Math.max(0, Math.min(toIndex, items.length));
9271
9583
  this.dispatcher.dispatch(arrayEvent(key).insertAt(boundedTo, templateWithValues));
9272
9584
  }
9273
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeArrayFieldWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9274
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.11", type: DbxForgeArrayFieldWrapperComponent, isStandalone: true, selector: "dbx-forge-array-field-wrapper", inputs: { fieldInputs: { classPropertyName: "fieldInputs", publicName: "fieldInputs", isSignal: true, isRequired: false, transformFunction: null }, props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "fieldComponent", first: true, predicate: ["fieldComponent"], descendants: true, read: ViewContainerRef, isSignal: true }], ngImport: i0, template: "<div class=\"dbx-form-repeat-array\">\n @if (labelSignal(); as labelText) {\n <div class=\"dbx-form-repeat-array-header\">\n <h4 class=\"dbx-form-repeat-array-title\">{{ labelText | dynamicText | async }}</h4>\n </div>\n }\n @if (hintSignal(); as hintText) {\n <p class=\"dbx-form-repeat-array-hint\">{{ hintText | dynamicText | async }}</p>\n }\n <div class=\"dbx-form-repeat-array-content\" cdkDropList [cdkDropListDisabled]=\"disableRearrangeSignal()\" (cdkDropListDropped)=\"drop($event)\">\n <ng-container #fieldComponent></ng-container>\n </div>\n @if (allowAddSignal()) {\n <div class=\"dbx-form-repeat-array-footer\">\n <dbx-button [text]=\"addTextSignal()\" [buttonStyle]=\"addButtonStyleSignal()\" [disabled]=\"addButtonDisabledSignal()\" (buttonClick)=\"addItem()\"></dbx-button>\n </div>\n }\n</div>\n", dependencies: [{ kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer", "cdkDropListHasAnchor"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { 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: "pipe", type: DynamicTextPipe, name: "dynamicText" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9585
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeArrayFieldWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9586
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: DbxForgeArrayFieldWrapperComponent, isStandalone: true, selector: "dbx-forge-array-field-wrapper", inputs: { fieldInputs: { classPropertyName: "fieldInputs", publicName: "fieldInputs", isSignal: true, isRequired: false, transformFunction: null }, props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "fieldComponent", first: true, predicate: ["fieldComponent"], descendants: true, read: ViewContainerRef, isSignal: true }], ngImport: i0, template: "<div class=\"dbx-form-repeat-array\">\n @if (labelSignal(); as labelText) {\n <div class=\"dbx-form-repeat-array-header\">\n <h4 class=\"dbx-form-repeat-array-title\">{{ labelText | dynamicText | async }}</h4>\n </div>\n }\n @if (hintSignal(); as hintText) {\n <p class=\"dbx-form-repeat-array-hint\">{{ hintText | dynamicText | async }}</p>\n }\n <div class=\"dbx-form-repeat-array-content\" cdkDropList [cdkDropListDisabled]=\"disableRearrangeSignal()\" (cdkDropListDropped)=\"drop($event)\">\n <ng-container #fieldComponent></ng-container>\n </div>\n @if (allowAddSignal()) {\n <div class=\"dbx-form-repeat-array-footer\">\n <dbx-button [text]=\"addTextSignal()\" [buttonStyle]=\"addButtonStyleSignal()\" [disabled]=\"addButtonDisabledSignal()\" (buttonClick)=\"addItem()\"></dbx-button>\n </div>\n }\n</div>\n", dependencies: [{ kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer", "cdkDropListHasAnchor"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customTextColor", "customSpinnerColor", "basic", "tonal", "raised", "stroked", "flat", "iconOnly", "fab", "customContent", "allowClickPropagation", "mode"] }, { kind: "pipe", type: DynamicTextPipe, name: "dynamicText" }, { kind: "pipe", type: AsyncPipe, name: "async" }] });
9275
9587
  }
9276
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeArrayFieldWrapperComponent, decorators: [{
9588
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeArrayFieldWrapperComponent, decorators: [{
9277
9589
  type: Component,
9278
- args: [{ selector: 'dbx-forge-array-field-wrapper', imports: [DynamicTextPipe, AsyncPipe, CdkDropList, DbxButtonComponent], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<div class=\"dbx-form-repeat-array\">\n @if (labelSignal(); as labelText) {\n <div class=\"dbx-form-repeat-array-header\">\n <h4 class=\"dbx-form-repeat-array-title\">{{ labelText | dynamicText | async }}</h4>\n </div>\n }\n @if (hintSignal(); as hintText) {\n <p class=\"dbx-form-repeat-array-hint\">{{ hintText | dynamicText | async }}</p>\n }\n <div class=\"dbx-form-repeat-array-content\" cdkDropList [cdkDropListDisabled]=\"disableRearrangeSignal()\" (cdkDropListDropped)=\"drop($event)\">\n <ng-container #fieldComponent></ng-container>\n </div>\n @if (allowAddSignal()) {\n <div class=\"dbx-form-repeat-array-footer\">\n <dbx-button [text]=\"addTextSignal()\" [buttonStyle]=\"addButtonStyleSignal()\" [disabled]=\"addButtonDisabledSignal()\" (buttonClick)=\"addItem()\"></dbx-button>\n </div>\n }\n</div>\n" }]
9590
+ args: [{ selector: 'dbx-forge-array-field-wrapper', imports: [DynamicTextPipe, AsyncPipe, CdkDropList, DbxButtonComponent], template: "<div class=\"dbx-form-repeat-array\">\n @if (labelSignal(); as labelText) {\n <div class=\"dbx-form-repeat-array-header\">\n <h4 class=\"dbx-form-repeat-array-title\">{{ labelText | dynamicText | async }}</h4>\n </div>\n }\n @if (hintSignal(); as hintText) {\n <p class=\"dbx-form-repeat-array-hint\">{{ hintText | dynamicText | async }}</p>\n }\n <div class=\"dbx-form-repeat-array-content\" cdkDropList [cdkDropListDisabled]=\"disableRearrangeSignal()\" (cdkDropListDropped)=\"drop($event)\">\n <ng-container #fieldComponent></ng-container>\n </div>\n @if (allowAddSignal()) {\n <div class=\"dbx-form-repeat-array-footer\">\n <dbx-button [text]=\"addTextSignal()\" [buttonStyle]=\"addButtonStyleSignal()\" [disabled]=\"addButtonDisabledSignal()\" (buttonClick)=\"addItem()\"></dbx-button>\n </div>\n }\n</div>\n" }]
9279
9591
  }], propDecorators: { fieldComponent: [{ type: i0.ViewChild, args: ['fieldComponent', { ...{ read: ViewContainerRef }, isSignal: true }] }], fieldInputs: [{ type: i0.Input, args: [{ isSignal: true, alias: "fieldInputs", required: false }] }], props: [{ type: i0.Input, args: [{ isSignal: true, alias: "props", required: false }] }] } });
9280
9592
 
9281
9593
  var arrayField_wrapper_component = /*#__PURE__*/Object.freeze({
@@ -9304,17 +9616,21 @@ const DEFAULT_DUPLICATE_BUTTON = {
9304
9616
  * a drag handle, item label, and remove button.
9305
9617
  */
9306
9618
  class DbxForgeArrayFieldElementWrapperComponent {
9307
- fieldComponent = viewChild.required('fieldComponent', { read: ViewContainerRef });
9619
+ fieldComponent = viewChild.required('fieldComponent', { ...(ngDevMode ? { debugName: "fieldComponent" } : /* istanbul ignore next */ {}), read: ViewContainerRef });
9308
9620
  parent = inject(DbxForgeArrayFieldWrapperComponent);
9309
9621
  formContextService = inject(DbxForgeFormContextService);
9310
9622
  arrayContext = inject(ARRAY_CONTEXT);
9311
9623
  // Disabled state
9312
9624
  isDisabled = dbxForgeFieldDisabled();
9313
9625
  // Props from wrapper config (ng-forge passes wrapper config properties as individual inputs)
9314
- fieldInputs = input(...(ngDevMode ? [undefined, { debugName: "fieldInputs" }] : /* istanbul ignore next */ []));
9315
- props = input(...(ngDevMode ? [undefined, { debugName: "props" }] : /* istanbul ignore next */ []));
9316
- disableRearrangeSignal = computed(() => this.props()?.disableRearrange ?? false, ...(ngDevMode ? [{ debugName: "disableRearrangeSignal" }] : /* istanbul ignore next */ []));
9317
- showIndexChipSignal = computed(() => this.props()?.showIndexChip ?? true, ...(ngDevMode ? [{ debugName: "showIndexChipSignal" }] : /* istanbul ignore next */ []));
9626
+ fieldInputs = input(/* @ts-ignore */
9627
+ ...(ngDevMode ? [undefined, { debugName: "fieldInputs" }] : /* istanbul ignore next */ []));
9628
+ props = input(/* @ts-ignore */
9629
+ ...(ngDevMode ? [undefined, { debugName: "props" }] : /* istanbul ignore next */ []));
9630
+ disableRearrangeSignal = computed(() => this.props()?.disableRearrange ?? false, /* @ts-ignore */
9631
+ ...(ngDevMode ? [{ debugName: "disableRearrangeSignal" }] : /* istanbul ignore next */ []));
9632
+ showIndexChipSignal = computed(() => this.props()?.showIndexChip ?? true, /* @ts-ignore */
9633
+ ...(ngDevMode ? [{ debugName: "showIndexChipSignal" }] : /* istanbul ignore next */ []));
9318
9634
  indexChipDisplaySignal = computed(() => {
9319
9635
  const displayFn = this.props()?.indexChipDisplay;
9320
9636
  let result = DEFAULT_INDEX_CHIP_DISPLAY;
@@ -9323,7 +9639,8 @@ class DbxForgeArrayFieldElementWrapperComponent {
9323
9639
  result = displayFn(ctx);
9324
9640
  }
9325
9641
  return result;
9326
- }, ...(ngDevMode ? [{ debugName: "indexChipDisplaySignal" }] : /* istanbul ignore next */ []));
9642
+ }, /* @ts-ignore */
9643
+ ...(ngDevMode ? [{ debugName: "indexChipDisplaySignal" }] : /* istanbul ignore next */ []));
9327
9644
  allowRemoveSignal = computed(() => {
9328
9645
  const allowRemove = this.props()?.allowRemove;
9329
9646
  let result;
@@ -9335,12 +9652,15 @@ class DbxForgeArrayFieldElementWrapperComponent {
9335
9652
  result = allowRemove ?? true;
9336
9653
  }
9337
9654
  return result;
9338
- }, ...(ngDevMode ? [{ debugName: "allowRemoveSignal" }] : /* istanbul ignore next */ []));
9655
+ }, /* @ts-ignore */
9656
+ ...(ngDevMode ? [{ debugName: "allowRemoveSignal" }] : /* istanbul ignore next */ []));
9339
9657
  removeTextSignal = computed(() => {
9340
9658
  const text = this.props()?.removeText;
9341
9659
  return typeof text === 'string' ? text : 'Remove';
9342
- }, ...(ngDevMode ? [{ debugName: "removeTextSignal" }] : /* istanbul ignore next */ []));
9343
- removeButtonStyleSignal = computed(() => this.props()?.removeButtonStyle ?? { type: 'stroked', color: 'warn' }, ...(ngDevMode ? [{ debugName: "removeButtonStyleSignal" }] : /* istanbul ignore next */ []));
9660
+ }, /* @ts-ignore */
9661
+ ...(ngDevMode ? [{ debugName: "removeTextSignal" }] : /* istanbul ignore next */ []));
9662
+ removeButtonStyleSignal = computed(() => this.props()?.removeButtonStyle ?? { type: 'stroked', color: 'warn' }, /* @ts-ignore */
9663
+ ...(ngDevMode ? [{ debugName: "removeButtonStyleSignal" }] : /* istanbul ignore next */ []));
9344
9664
  /**
9345
9665
  * Resolves {@link DbxForgeArrayFieldElementWrapperProps.allowDuplicate} to either
9346
9666
  * `false` (hide the button) or a target {@link IndexNumber}. `true` maps to the
@@ -9367,8 +9687,10 @@ class DbxForgeArrayFieldElementWrapperComponent {
9367
9687
  }
9368
9688
  }
9369
9689
  return result;
9370
- }, ...(ngDevMode ? [{ debugName: "duplicateTargetIndexSignal" }] : /* istanbul ignore next */ []));
9371
- allowDuplicateSignal = computed(() => this.duplicateTargetIndexSignal() !== false, ...(ngDevMode ? [{ debugName: "allowDuplicateSignal" }] : /* istanbul ignore next */ []));
9690
+ }, /* @ts-ignore */
9691
+ ...(ngDevMode ? [{ debugName: "duplicateTargetIndexSignal" }] : /* istanbul ignore next */ []));
9692
+ allowDuplicateSignal = computed(() => this.duplicateTargetIndexSignal() !== false, /* @ts-ignore */
9693
+ ...(ngDevMode ? [{ debugName: "allowDuplicateSignal" }] : /* istanbul ignore next */ []));
9372
9694
  duplicateButtonSignal = computed(() => {
9373
9695
  const duplicateButton = this.props()?.duplicateButton;
9374
9696
  let result;
@@ -9380,7 +9702,8 @@ class DbxForgeArrayFieldElementWrapperComponent {
9380
9702
  result = duplicateButton ?? DEFAULT_DUPLICATE_BUTTON;
9381
9703
  }
9382
9704
  return result;
9383
- }, ...(ngDevMode ? [{ debugName: "duplicateButtonSignal" }] : /* istanbul ignore next */ []));
9705
+ }, /* @ts-ignore */
9706
+ ...(ngDevMode ? [{ debugName: "duplicateButtonSignal" }] : /* istanbul ignore next */ []));
9384
9707
  labelSignal = computed(() => {
9385
9708
  const props = this.props();
9386
9709
  const index = this.arrayContext.index();
@@ -9404,7 +9727,8 @@ class DbxForgeArrayFieldElementWrapperComponent {
9404
9727
  }
9405
9728
  }
9406
9729
  return result;
9407
- }, ...(ngDevMode ? [{ debugName: "labelSignal" }] : /* istanbul ignore next */ []));
9730
+ }, /* @ts-ignore */
9731
+ ...(ngDevMode ? [{ debugName: "labelSignal" }] : /* istanbul ignore next */ []));
9408
9732
  removeItem() {
9409
9733
  this.parent.removeItem(this.arrayContext.index());
9410
9734
  }
@@ -9414,12 +9738,12 @@ class DbxForgeArrayFieldElementWrapperComponent {
9414
9738
  this.parent.duplicateItem(this.arrayContext.index(), targetIndex);
9415
9739
  }
9416
9740
  }
9417
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeArrayFieldElementWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9418
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.11", type: DbxForgeArrayFieldElementWrapperComponent, isStandalone: true, selector: "dbx-forge-array-field-element-wrapper", inputs: { fieldInputs: { classPropertyName: "fieldInputs", publicName: "fieldInputs", isSignal: true, isRequired: false, transformFunction: null }, props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "fieldComponent", first: true, predicate: ["fieldComponent"], descendants: true, read: ViewContainerRef, isSignal: true }], ngImport: i0, template: "<div class=\"dbx-form-repeat-array-field\" cdkDrag cdkDragLockAxis=\"y\" [cdkDragDisabled]=\"disableRearrangeSignal()\">\n <ng-template cdkDragPlaceholder>\n <div class=\"dbx-form-repeat-array-drag-placeholder\"></div>\n </ng-template>\n @if (showIndexChipSignal()) {\n <dbx-chip [display]=\"indexChipDisplaySignal()\">{{ arrayContext.index() + 1 }}</dbx-chip>\n }\n <div class=\"dbx-content-navbar dbx-form-repeat-array-bar dbx-flex-bar\">\n @if (!disableRearrangeSignal()) {\n <button mat-icon-button type=\"button\" cdkDragHandle class=\"dbx-form-repeat-array-drag-button\" [disabled]=\"isDisabled()\" aria-label=\"Drag to reorder\">\n <mat-icon>drag_handle</mat-icon>\n </button>\n <dbx-button-spacer></dbx-button-spacer>\n }\n <span class=\"dbx-form-repeat-array-label\">{{ labelSignal() }}</span>\n <span class=\"spacer\"></span>\n @if (allowDuplicateSignal()) {\n <dbx-button class=\"dbx-button-spacer\" [buttonDisplay]=\"duplicateButtonSignal().display\" [buttonStyle]=\"duplicateButtonSignal().style\" [disabled]=\"isDisabled()\" (buttonClick)=\"duplicateItem()\"></dbx-button>\n }\n @if (allowRemoveSignal()) {\n <dbx-button [text]=\"removeTextSignal()\" [buttonStyle]=\"removeButtonStyleSignal()\" [disabled]=\"isDisabled()\" (buttonClick)=\"removeItem()\"></dbx-button>\n }\n </div>\n <div class=\"dbx-form-repeat-array-field-content\">\n <ng-container #fieldComponent></ng-container>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }, { kind: "directive", type: DbxChipDirective, selector: "dbx-chip", inputs: ["small", "block", "color", "display", "tone"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { 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: "directive", type: DbxButtonSpacerDirective, selector: "dbx-button-spacer,[dbxButtonSpacer]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9741
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeArrayFieldElementWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9742
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: DbxForgeArrayFieldElementWrapperComponent, isStandalone: true, selector: "dbx-forge-array-field-element-wrapper", inputs: { fieldInputs: { classPropertyName: "fieldInputs", publicName: "fieldInputs", isSignal: true, isRequired: false, transformFunction: null }, props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "fieldComponent", first: true, predicate: ["fieldComponent"], descendants: true, read: ViewContainerRef, isSignal: true }], ngImport: i0, template: "<div class=\"dbx-form-repeat-array-field\" cdkDrag cdkDragLockAxis=\"y\" [cdkDragDisabled]=\"disableRearrangeSignal()\">\n <ng-template cdkDragPlaceholder>\n <div class=\"dbx-form-repeat-array-drag-placeholder\"></div>\n </ng-template>\n @if (showIndexChipSignal()) {\n <dbx-chip [display]=\"indexChipDisplaySignal()\">{{ arrayContext.index() + 1 }}</dbx-chip>\n }\n <div class=\"dbx-content-navbar dbx-form-repeat-array-bar dbx-flex-bar\">\n @if (!disableRearrangeSignal()) {\n <button mat-icon-button type=\"button\" cdkDragHandle class=\"dbx-form-repeat-array-drag-button\" [disabled]=\"isDisabled()\" aria-label=\"Drag to reorder\">\n <mat-icon>drag_handle</mat-icon>\n </button>\n <dbx-button-spacer></dbx-button-spacer>\n }\n <span class=\"dbx-form-repeat-array-label\">{{ labelSignal() }}</span>\n <span class=\"spacer\"></span>\n @if (allowDuplicateSignal()) {\n <dbx-button class=\"dbx-button-spacer\" [buttonDisplay]=\"duplicateButtonSignal().display\" [buttonStyle]=\"duplicateButtonSignal().style\" [disabled]=\"isDisabled()\" (buttonClick)=\"duplicateItem()\"></dbx-button>\n }\n @if (allowRemoveSignal()) {\n <dbx-button [text]=\"removeTextSignal()\" [buttonStyle]=\"removeButtonStyleSignal()\" [disabled]=\"isDisabled()\" (buttonClick)=\"removeItem()\"></dbx-button>\n }\n </div>\n <div class=\"dbx-form-repeat-array-field-content\">\n <ng-container #fieldComponent></ng-container>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }, { kind: "directive", type: DbxChipDirective, selector: "dbx-chip", inputs: ["small", "block", "color", "display", "tone"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customTextColor", "customSpinnerColor", "basic", "tonal", "raised", "stroked", "flat", "iconOnly", "fab", "customContent", "allowClickPropagation", "mode"] }, { kind: "directive", type: DbxButtonSpacerDirective, selector: "dbx-button-spacer,[dbxButtonSpacer]" }] });
9419
9743
  }
9420
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeArrayFieldElementWrapperComponent, decorators: [{
9744
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeArrayFieldElementWrapperComponent, decorators: [{
9421
9745
  type: Component,
9422
- args: [{ selector: 'dbx-forge-array-field-element-wrapper', imports: [CdkDrag, CdkDragHandle, CdkDragPlaceholder, DbxChipDirective, MatIconModule, MatButtonModule, DbxButtonComponent, DbxButtonSpacerDirective], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<div class=\"dbx-form-repeat-array-field\" cdkDrag cdkDragLockAxis=\"y\" [cdkDragDisabled]=\"disableRearrangeSignal()\">\n <ng-template cdkDragPlaceholder>\n <div class=\"dbx-form-repeat-array-drag-placeholder\"></div>\n </ng-template>\n @if (showIndexChipSignal()) {\n <dbx-chip [display]=\"indexChipDisplaySignal()\">{{ arrayContext.index() + 1 }}</dbx-chip>\n }\n <div class=\"dbx-content-navbar dbx-form-repeat-array-bar dbx-flex-bar\">\n @if (!disableRearrangeSignal()) {\n <button mat-icon-button type=\"button\" cdkDragHandle class=\"dbx-form-repeat-array-drag-button\" [disabled]=\"isDisabled()\" aria-label=\"Drag to reorder\">\n <mat-icon>drag_handle</mat-icon>\n </button>\n <dbx-button-spacer></dbx-button-spacer>\n }\n <span class=\"dbx-form-repeat-array-label\">{{ labelSignal() }}</span>\n <span class=\"spacer\"></span>\n @if (allowDuplicateSignal()) {\n <dbx-button class=\"dbx-button-spacer\" [buttonDisplay]=\"duplicateButtonSignal().display\" [buttonStyle]=\"duplicateButtonSignal().style\" [disabled]=\"isDisabled()\" (buttonClick)=\"duplicateItem()\"></dbx-button>\n }\n @if (allowRemoveSignal()) {\n <dbx-button [text]=\"removeTextSignal()\" [buttonStyle]=\"removeButtonStyleSignal()\" [disabled]=\"isDisabled()\" (buttonClick)=\"removeItem()\"></dbx-button>\n }\n </div>\n <div class=\"dbx-form-repeat-array-field-content\">\n <ng-container #fieldComponent></ng-container>\n </div>\n</div>\n" }]
9746
+ args: [{ selector: 'dbx-forge-array-field-element-wrapper', imports: [CdkDrag, CdkDragHandle, CdkDragPlaceholder, DbxChipDirective, MatIconModule, MatButtonModule, DbxButtonComponent, DbxButtonSpacerDirective], template: "<div class=\"dbx-form-repeat-array-field\" cdkDrag cdkDragLockAxis=\"y\" [cdkDragDisabled]=\"disableRearrangeSignal()\">\n <ng-template cdkDragPlaceholder>\n <div class=\"dbx-form-repeat-array-drag-placeholder\"></div>\n </ng-template>\n @if (showIndexChipSignal()) {\n <dbx-chip [display]=\"indexChipDisplaySignal()\">{{ arrayContext.index() + 1 }}</dbx-chip>\n }\n <div class=\"dbx-content-navbar dbx-form-repeat-array-bar dbx-flex-bar\">\n @if (!disableRearrangeSignal()) {\n <button mat-icon-button type=\"button\" cdkDragHandle class=\"dbx-form-repeat-array-drag-button\" [disabled]=\"isDisabled()\" aria-label=\"Drag to reorder\">\n <mat-icon>drag_handle</mat-icon>\n </button>\n <dbx-button-spacer></dbx-button-spacer>\n }\n <span class=\"dbx-form-repeat-array-label\">{{ labelSignal() }}</span>\n <span class=\"spacer\"></span>\n @if (allowDuplicateSignal()) {\n <dbx-button class=\"dbx-button-spacer\" [buttonDisplay]=\"duplicateButtonSignal().display\" [buttonStyle]=\"duplicateButtonSignal().style\" [disabled]=\"isDisabled()\" (buttonClick)=\"duplicateItem()\"></dbx-button>\n }\n @if (allowRemoveSignal()) {\n <dbx-button [text]=\"removeTextSignal()\" [buttonStyle]=\"removeButtonStyleSignal()\" [disabled]=\"isDisabled()\" (buttonClick)=\"removeItem()\"></dbx-button>\n }\n </div>\n <div class=\"dbx-form-repeat-array-field-content\">\n <ng-container #fieldComponent></ng-container>\n </div>\n</div>\n" }]
9423
9747
  }], propDecorators: { fieldComponent: [{ type: i0.ViewChild, args: ['fieldComponent', { ...{ read: ViewContainerRef }, isSignal: true }] }], fieldInputs: [{ type: i0.Input, args: [{ isSignal: true, alias: "fieldInputs", required: false }] }], props: [{ type: i0.Input, args: [{ isSignal: true, alias: "props", required: false }] }] } });
9424
9748
 
9425
9749
  var arrayField_element_wrapper_component = /*#__PURE__*/Object.freeze({
@@ -9435,18 +9759,22 @@ var arrayField_element_wrapper_component = /*#__PURE__*/Object.freeze({
9435
9759
  * and the parent {@link FieldSignalContext} to observe form validation state.
9436
9760
  */
9437
9761
  class DbxForgeFormFieldWrapperComponent {
9438
- fieldComponent = viewChild.required('fieldComponent', { read: ViewContainerRef });
9762
+ fieldComponent = viewChild.required('fieldComponent', { ...(ngDevMode ? { debugName: "fieldComponent" } : /* istanbul ignore next */ {}), read: ViewContainerRef });
9439
9763
  // Props from wrapper config
9440
- fieldInputs = input(...(ngDevMode ? [undefined, { debugName: "fieldInputs" }] : /* istanbul ignore next */ []));
9764
+ fieldInputs = input(/* @ts-ignore */
9765
+ ...(ngDevMode ? [undefined, { debugName: "fieldInputs" }] : /* istanbul ignore next */ []));
9441
9766
  /**
9442
9767
  * Wrapper config props passed via `addWrappers({ type, props })`.
9443
9768
  * ng-forge delivers wrapper config properties (with `type` stripped) as individual inputs.
9444
9769
  */
9445
- props = input(...(ngDevMode ? [undefined, { debugName: "props" }] : /* istanbul ignore next */ []));
9770
+ props = input(/* @ts-ignore */
9771
+ ...(ngDevMode ? [undefined, { debugName: "props" }] : /* istanbul ignore next */ []));
9446
9772
  // Read-only field tree from the wrapped field
9447
- formStateSignal = computed(() => this.fieldInputs()?.field, ...(ngDevMode ? [{ debugName: "formStateSignal" }] : /* istanbul ignore next */ []));
9773
+ formStateSignal = computed(() => this.fieldInputs()?.field, /* @ts-ignore */
9774
+ ...(ngDevMode ? [{ debugName: "formStateSignal" }] : /* istanbul ignore next */ []));
9448
9775
  // Disabled state
9449
- isDisabledSignal = computed(() => this.formStateSignal()?.disabled(), ...(ngDevMode ? [{ debugName: "isDisabledSignal" }] : /* istanbul ignore next */ []));
9776
+ isDisabledSignal = computed(() => this.formStateSignal()?.disabled(), /* @ts-ignore */
9777
+ ...(ngDevMode ? [{ debugName: "isDisabledSignal" }] : /* istanbul ignore next */ []));
9450
9778
  /**
9451
9779
  * Resolved notch label. Prefers a wrapper-level `props.label` override and
9452
9780
  * falls back to the wrapped field's own label.
@@ -9454,13 +9782,18 @@ class DbxForgeFormFieldWrapperComponent {
9454
9782
  labelSignal = computed(() => {
9455
9783
  const fieldInputs = this.fieldInputs();
9456
9784
  return this.props()?.label ?? fieldInputs?.label;
9457
- }, ...(ngDevMode ? [{ debugName: "labelSignal" }] : /* istanbul ignore next */ []));
9458
- hintSignal = computed(() => this.fieldInputs()?.props?.hint, ...(ngDevMode ? [{ debugName: "hintSignal" }] : /* istanbul ignore next */ []));
9459
- classNameSignal = computed(() => this.fieldInputs()?.className ?? '', ...(ngDevMode ? [{ debugName: "classNameSignal" }] : /* istanbul ignore next */ []));
9785
+ }, /* @ts-ignore */
9786
+ ...(ngDevMode ? [{ debugName: "labelSignal" }] : /* istanbul ignore next */ []));
9787
+ hintSignal = computed(() => this.fieldInputs()?.props?.hint, /* @ts-ignore */
9788
+ ...(ngDevMode ? [{ debugName: "hintSignal" }] : /* istanbul ignore next */ []));
9789
+ classNameSignal = computed(() => this.fieldInputs()?.className ?? '', /* @ts-ignore */
9790
+ ...(ngDevMode ? [{ debugName: "classNameSignal" }] : /* istanbul ignore next */ []));
9460
9791
  // Key for ARIA IDs
9461
- keySignal = computed(() => this.fieldInputs()?.key ?? '', ...(ngDevMode ? [{ debugName: "keySignal" }] : /* istanbul ignore next */ []));
9792
+ keySignal = computed(() => this.fieldInputs()?.key ?? '', /* @ts-ignore */
9793
+ ...(ngDevMode ? [{ debugName: "keySignal" }] : /* istanbul ignore next */ []));
9462
9794
  // Validation state from form tree
9463
- childErrorsSignal = computed(() => this.formStateSignal()?.errors(), ...(ngDevMode ? [{ debugName: "childErrorsSignal" }] : /* istanbul ignore next */ []));
9795
+ childErrorsSignal = computed(() => this.formStateSignal()?.errors(), /* @ts-ignore */
9796
+ ...(ngDevMode ? [{ debugName: "childErrorsSignal" }] : /* istanbul ignore next */ []));
9464
9797
  /**
9465
9798
  * Whether errors should be displayed.
9466
9799
  *
@@ -9471,7 +9804,8 @@ class DbxForgeFormFieldWrapperComponent {
9471
9804
  showErrorsSignal = computed(() => {
9472
9805
  const childErrors = this.childErrorsSignal();
9473
9806
  return (this.formStateSignal()?.invalid() ?? false) && (childErrors?.length ?? 0) > 0;
9474
- }, ...(ngDevMode ? [{ debugName: "showErrorsSignal" }] : /* istanbul ignore next */ []));
9807
+ }, /* @ts-ignore */
9808
+ ...(ngDevMode ? [{ debugName: "showErrorsSignal" }] : /* istanbul ignore next */ []));
9475
9809
  hasError = this.showErrorsSignal;
9476
9810
  /**
9477
9811
  * Resolves the first error message using the same priority as ng-forge's
@@ -9491,21 +9825,26 @@ class DbxForgeFormFieldWrapperComponent {
9491
9825
  const defaultMessages = inputs?.defaultValidationMessages ?? {};
9492
9826
  const message = fieldMessages[error.kind] ?? defaultMessages[error.kind] ?? error.message ?? error.kind;
9493
9827
  return interpolateParams(message, error);
9494
- }, ...(ngDevMode ? [{ debugName: "firstErrorMessageSignal" }] : /* istanbul ignore next */ []));
9828
+ }, /* @ts-ignore */
9829
+ ...(ngDevMode ? [{ debugName: "firstErrorMessageSignal" }] : /* istanbul ignore next */ []));
9495
9830
  /**
9496
9831
  * Whether any child field has `required` state, used to show the asterisk in the label.
9497
9832
  */
9498
- isRequiredSignal = computed(() => this.formStateSignal()?.required(), ...(ngDevMode ? [{ debugName: "isRequiredSignal" }] : /* istanbul ignore next */ []));
9833
+ isRequiredSignal = computed(() => this.formStateSignal()?.required(), /* @ts-ignore */
9834
+ ...(ngDevMode ? [{ debugName: "isRequiredSignal" }] : /* istanbul ignore next */ []));
9499
9835
  // ARIA IDs
9500
- labelIdSignal = computed(() => `${this.keySignal()}-label`, ...(ngDevMode ? [{ debugName: "labelIdSignal" }] : /* istanbul ignore next */ []));
9501
- errorIdSignal = computed(() => `${this.keySignal()}-error`, ...(ngDevMode ? [{ debugName: "errorIdSignal" }] : /* istanbul ignore next */ []));
9502
- hintIdSignal = computed(() => `${this.keySignal()}-hint`, ...(ngDevMode ? [{ debugName: "hintIdSignal" }] : /* istanbul ignore next */ []));
9503
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeFormFieldWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9504
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.11", type: DbxForgeFormFieldWrapperComponent, isStandalone: true, selector: "dbx-forge-form-field-wrapper", inputs: { fieldInputs: { classPropertyName: "fieldInputs", publicName: "fieldInputs", isSignal: true, isRequired: false, transformFunction: null }, props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classNameSignal()" }, classAttribute: "dbx-forge-form-field mat-form-field-animations-enabled" }, viewQueries: [{ propertyName: "fieldComponent", first: true, predicate: ["fieldComponent"], descendants: true, read: ViewContainerRef, isSignal: true }], ngImport: i0, template: "<div class=\"dbx-forge-form-field-wrapper\" [class.dbx-forge-form-field-wrapper-error]=\"hasError()\" [class.dbx-forge-form-field-wrapper-disabled]=\"isDisabledSignal()\" role=\"group\" [attr.aria-labelledby]=\"labelSignal() ? labelIdSignal() : null\">\n <div class=\"dbx-forge-form-field-outline\">\n <div class=\"dbx-forge-form-field-outline-leading\"></div>\n <div class=\"dbx-forge-form-field-outline-notch\" [class.dbx-forge-form-field-outline-notch-empty]=\"!labelSignal()\">\n @if (labelSignal(); as labelText) {\n <span class=\"dbx-forge-form-field-outline-label\" [id]=\"labelIdSignal()\">\n {{ labelText | dynamicText | async }}\n @if (isRequiredSignal()) {\n <span aria-hidden=\"true\" class=\"mat-mdc-form-field-required-marker mdc-floating-label--required\"></span>\n }\n </span>\n }\n </div>\n <div class=\"dbx-forge-form-field-outline-trailing\"></div>\n </div>\n <div class=\"dbx-forge-form-field-content\">\n <ng-container #fieldComponent></ng-container>\n </div>\n</div>\n<div class=\"mat-mdc-form-field-subscript-wrapper mat-mdc-form-field-bottom-align mat-mdc-form-field-subscript-dynamic-size\">\n @if (showErrorsSignal()) {\n <div class=\"mat-mdc-form-field-error-wrapper\">\n <div class=\"mat-mdc-form-field-error mat-mdc-form-field-bottom-align\" [id]=\"errorIdSignal()\">{{ firstErrorMessageSignal() }}</div>\n </div>\n } @else if (hintSignal(); as hint) {\n <div class=\"mat-mdc-form-field-hint-wrapper\">\n <div class=\"mat-mdc-form-field-hint mat-mdc-form-field-bottom-align\" [id]=\"hintIdSignal()\">{{ hint }}</div>\n </div>\n }\n</div>\n", styles: [".dbx-forge-form-field-wrapper{position:relative;margin-top:8px}.dbx-forge-form-field-outline{display:flex;position:absolute;inset:0;pointer-events:none}.dbx-forge-form-field-outline-leading{border:1px solid var(--mat-form-field-outlined-outline-color, var(--mat-sys-outline, rgba(0, 0, 0, .38)));border-right:none;border-radius:var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small, 4px)) 0 0 var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small, 4px));width:12px}.dbx-forge-form-field-outline-notch{border-bottom:1px solid var(--mat-form-field-outlined-outline-color, var(--mat-sys-outline, rgba(0, 0, 0, .38)));display:flex;align-items:flex-start;max-width:calc(100% - 24px)}.dbx-forge-form-field-outline-notch-empty{border-top:1px solid var(--mat-form-field-outlined-outline-color, var(--mat-sys-outline, rgba(0, 0, 0, .38)));width:0;padding:0}.dbx-forge-form-field-outline-label{display:inline-block;transform:translateY(-50%);pointer-events:auto;padding:0 4px;background:var(--mat-sys-surface, white);white-space:nowrap;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-outlined-label-text-populated-font, var(--mat-sys-body-small-font));font-size:var(--mat-form-field-outlined-label-text-populated-size, var(--mat-sys-body-small-size));line-height:var(--mat-form-field-outlined-label-text-populated-line-height, var(--mat-sys-body-small-line-height));letter-spacing:var(--mat-form-field-outlined-label-text-populated-tracking, var(--mat-sys-body-small-tracking));font-weight:var(--mat-form-field-outlined-label-text-populated-weight, var(--mat-sys-body-small-weight));color:var(--mat-form-field-outlined-label-text-color, var(--mat-sys-on-surface-variant, rgba(0, 0, 0, .6)))}.dbx-forge-form-field-outline-trailing{border:1px solid var(--mat-form-field-outlined-outline-color, var(--mat-sys-outline, rgba(0, 0, 0, .38)));border-left:none;border-radius:0 var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small, 4px)) var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small, 4px)) 0;flex-grow:1}.dbx-forge-form-field-wrapper:hover .dbx-forge-form-field-outline-leading,.dbx-forge-form-field-wrapper:hover .dbx-forge-form-field-outline-notch,.dbx-forge-form-field-wrapper:hover .dbx-forge-form-field-outline-trailing{border-color:var(--mat-form-field-outlined-hover-outline-color, var(--mat-sys-on-surface, rgba(0, 0, 0, .87)))}.dbx-forge-form-field-wrapper:focus-within .dbx-forge-form-field-outline-leading,.dbx-forge-form-field-wrapper:focus-within .dbx-forge-form-field-outline-notch,.dbx-forge-form-field-wrapper:focus-within .dbx-forge-form-field-outline-trailing{border-color:var(--mat-form-field-outlined-focus-outline-color, var(--mat-sys-primary));border-width:2px}.dbx-forge-form-field-wrapper:focus-within .dbx-forge-form-field-outline-label{color:var(--mat-form-field-outlined-focus-label-text-color, var(--mat-sys-primary));padding:0 3px}.dbx-forge-form-field-wrapper-error .dbx-forge-form-field-outline-leading,.dbx-forge-form-field-wrapper-error .dbx-forge-form-field-outline-notch,.dbx-forge-form-field-wrapper-error .dbx-forge-form-field-outline-trailing,.dbx-forge-form-field-wrapper-error:focus-within .dbx-forge-form-field-outline-leading,.dbx-forge-form-field-wrapper-error:focus-within .dbx-forge-form-field-outline-notch,.dbx-forge-form-field-wrapper-error:focus-within .dbx-forge-form-field-outline-trailing{border-color:var(--mat-form-field-outlined-error-outline-color, var(--mat-sys-error, #f44336))}.dbx-forge-form-field-wrapper-error .dbx-forge-form-field-outline-label,.dbx-forge-form-field-wrapper-error:focus-within .dbx-forge-form-field-outline-label{color:var(--mat-form-field-outlined-error-label-text-color, var(--mat-sys-error, #f44336))}.dbx-forge-form-field-content{position:relative;padding:var(--mat-form-field-container-vertical-padding, 16px) 16px 8px;min-height:56px;box-sizing:border-box}.dbx-forge-form-field-wrapper-disabled .dbx-forge-form-field-content{opacity:.38;pointer-events:none}.dbx-forge-form-field-wrapper-disabled .dbx-forge-form-field-outline-leading,.dbx-forge-form-field-wrapper-disabled .dbx-forge-form-field-outline-notch,.dbx-forge-form-field-wrapper-disabled .dbx-forge-form-field-outline-trailing,.dbx-forge-form-field-wrapper-disabled:hover .dbx-forge-form-field-outline-leading,.dbx-forge-form-field-wrapper-disabled:hover .dbx-forge-form-field-outline-notch,.dbx-forge-form-field-wrapper-disabled:hover .dbx-forge-form-field-outline-trailing{border-color:var(--mat-form-field-outlined-disabled-outline-color, rgba(0, 0, 0, .12))}.dbx-forge-form-field-wrapper-disabled .dbx-forge-form-field-outline-label{color:var(--mat-form-field-outlined-disabled-label-text-color, rgba(0, 0, 0, .38))}\n"], dependencies: [{ kind: "pipe", type: DynamicTextPipe, name: "dynamicText" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9505
- }
9506
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeFormFieldWrapperComponent, decorators: [{
9836
+ labelIdSignal = computed(() => `${this.keySignal()}-label`, /* @ts-ignore */
9837
+ ...(ngDevMode ? [{ debugName: "labelIdSignal" }] : /* istanbul ignore next */ []));
9838
+ errorIdSignal = computed(() => `${this.keySignal()}-error`, /* @ts-ignore */
9839
+ ...(ngDevMode ? [{ debugName: "errorIdSignal" }] : /* istanbul ignore next */ []));
9840
+ hintIdSignal = computed(() => `${this.keySignal()}-hint`, /* @ts-ignore */
9841
+ ...(ngDevMode ? [{ debugName: "hintIdSignal" }] : /* istanbul ignore next */ []));
9842
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeFormFieldWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9843
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: DbxForgeFormFieldWrapperComponent, isStandalone: true, selector: "dbx-forge-form-field-wrapper", inputs: { fieldInputs: { classPropertyName: "fieldInputs", publicName: "fieldInputs", isSignal: true, isRequired: false, transformFunction: null }, props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classNameSignal()" }, classAttribute: "dbx-forge-form-field mat-form-field-animations-enabled" }, viewQueries: [{ propertyName: "fieldComponent", first: true, predicate: ["fieldComponent"], descendants: true, read: ViewContainerRef, isSignal: true }], ngImport: i0, template: "<div class=\"dbx-forge-form-field-wrapper\" [class.dbx-forge-form-field-wrapper-error]=\"hasError()\" [class.dbx-forge-form-field-wrapper-disabled]=\"isDisabledSignal()\" role=\"group\" [attr.aria-labelledby]=\"labelSignal() ? labelIdSignal() : null\">\n <div class=\"dbx-forge-form-field-outline\">\n <div class=\"dbx-forge-form-field-outline-leading\"></div>\n <div class=\"dbx-forge-form-field-outline-notch\" [class.dbx-forge-form-field-outline-notch-empty]=\"!labelSignal()\">\n @if (labelSignal(); as labelText) {\n <span class=\"dbx-forge-form-field-outline-label\" [id]=\"labelIdSignal()\">\n {{ labelText | dynamicText | async }}\n @if (isRequiredSignal()) {\n <span aria-hidden=\"true\" class=\"mat-mdc-form-field-required-marker mdc-floating-label--required\"></span>\n }\n </span>\n }\n </div>\n <div class=\"dbx-forge-form-field-outline-trailing\"></div>\n </div>\n <div class=\"dbx-forge-form-field-content\">\n <ng-container #fieldComponent></ng-container>\n </div>\n</div>\n<div class=\"mat-mdc-form-field-subscript-wrapper mat-mdc-form-field-bottom-align mat-mdc-form-field-subscript-dynamic-size\">\n @if (showErrorsSignal()) {\n <div class=\"mat-mdc-form-field-error-wrapper\">\n <div class=\"mat-mdc-form-field-error mat-mdc-form-field-bottom-align\" [id]=\"errorIdSignal()\">{{ firstErrorMessageSignal() }}</div>\n </div>\n } @else if (hintSignal(); as hint) {\n <div class=\"mat-mdc-form-field-hint-wrapper\">\n <div class=\"mat-mdc-form-field-hint mat-mdc-form-field-bottom-align\" [id]=\"hintIdSignal()\">{{ hint }}</div>\n </div>\n }\n</div>\n", styles: [".dbx-forge-form-field-wrapper{position:relative;margin-top:8px}.dbx-forge-form-field-outline{display:flex;position:absolute;inset:0;pointer-events:none}.dbx-forge-form-field-outline-leading{border:1px solid var(--mat-form-field-outlined-outline-color, var(--mat-sys-outline, rgba(0, 0, 0, .38)));border-right:none;border-radius:var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small, 4px)) 0 0 var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small, 4px));width:12px}.dbx-forge-form-field-outline-notch{border-bottom:1px solid var(--mat-form-field-outlined-outline-color, var(--mat-sys-outline, rgba(0, 0, 0, .38)));display:flex;align-items:flex-start;max-width:calc(100% - 24px)}.dbx-forge-form-field-outline-notch-empty{border-top:1px solid var(--mat-form-field-outlined-outline-color, var(--mat-sys-outline, rgba(0, 0, 0, .38)));width:0;padding:0}.dbx-forge-form-field-outline-label{display:inline-block;transform:translateY(-50%);pointer-events:auto;padding:0 4px;background:var(--mat-sys-surface, white);white-space:nowrap;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-outlined-label-text-populated-font, var(--mat-sys-body-small-font));font-size:var(--mat-form-field-outlined-label-text-populated-size, var(--mat-sys-body-small-size));line-height:var(--mat-form-field-outlined-label-text-populated-line-height, var(--mat-sys-body-small-line-height));letter-spacing:var(--mat-form-field-outlined-label-text-populated-tracking, var(--mat-sys-body-small-tracking));font-weight:var(--mat-form-field-outlined-label-text-populated-weight, var(--mat-sys-body-small-weight));color:var(--mat-form-field-outlined-label-text-color, var(--mat-sys-on-surface-variant, rgba(0, 0, 0, .6)))}.dbx-forge-form-field-outline-trailing{border:1px solid var(--mat-form-field-outlined-outline-color, var(--mat-sys-outline, rgba(0, 0, 0, .38)));border-left:none;border-radius:0 var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small, 4px)) var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small, 4px)) 0;flex-grow:1}.dbx-forge-form-field-wrapper:hover .dbx-forge-form-field-outline-leading,.dbx-forge-form-field-wrapper:hover .dbx-forge-form-field-outline-notch,.dbx-forge-form-field-wrapper:hover .dbx-forge-form-field-outline-trailing{border-color:var(--mat-form-field-outlined-hover-outline-color, var(--mat-sys-on-surface, rgba(0, 0, 0, .87)))}.dbx-forge-form-field-wrapper:focus-within .dbx-forge-form-field-outline-leading,.dbx-forge-form-field-wrapper:focus-within .dbx-forge-form-field-outline-notch,.dbx-forge-form-field-wrapper:focus-within .dbx-forge-form-field-outline-trailing{border-color:var(--mat-form-field-outlined-focus-outline-color, var(--mat-sys-primary));border-width:2px}.dbx-forge-form-field-wrapper:focus-within .dbx-forge-form-field-outline-label{color:var(--mat-form-field-outlined-focus-label-text-color, var(--mat-sys-primary));padding:0 3px}.dbx-forge-form-field-wrapper-error .dbx-forge-form-field-outline-leading,.dbx-forge-form-field-wrapper-error .dbx-forge-form-field-outline-notch,.dbx-forge-form-field-wrapper-error .dbx-forge-form-field-outline-trailing,.dbx-forge-form-field-wrapper-error:focus-within .dbx-forge-form-field-outline-leading,.dbx-forge-form-field-wrapper-error:focus-within .dbx-forge-form-field-outline-notch,.dbx-forge-form-field-wrapper-error:focus-within .dbx-forge-form-field-outline-trailing{border-color:var(--mat-form-field-outlined-error-outline-color, var(--mat-sys-error, #f44336))}.dbx-forge-form-field-wrapper-error .dbx-forge-form-field-outline-label,.dbx-forge-form-field-wrapper-error:focus-within .dbx-forge-form-field-outline-label{color:var(--mat-form-field-outlined-error-label-text-color, var(--mat-sys-error, #f44336))}.dbx-forge-form-field-content{position:relative;padding:var(--mat-form-field-container-vertical-padding, 16px) 16px 8px;min-height:56px;box-sizing:border-box}.dbx-forge-form-field-wrapper-disabled .dbx-forge-form-field-content{opacity:.38;pointer-events:none}.dbx-forge-form-field-wrapper-disabled .dbx-forge-form-field-outline-leading,.dbx-forge-form-field-wrapper-disabled .dbx-forge-form-field-outline-notch,.dbx-forge-form-field-wrapper-disabled .dbx-forge-form-field-outline-trailing,.dbx-forge-form-field-wrapper-disabled:hover .dbx-forge-form-field-outline-leading,.dbx-forge-form-field-wrapper-disabled:hover .dbx-forge-form-field-outline-notch,.dbx-forge-form-field-wrapper-disabled:hover .dbx-forge-form-field-outline-trailing{border-color:var(--mat-form-field-outlined-disabled-outline-color, rgba(0, 0, 0, .12))}.dbx-forge-form-field-wrapper-disabled .dbx-forge-form-field-outline-label{color:var(--mat-form-field-outlined-disabled-label-text-color, rgba(0, 0, 0, .38))}\n"], dependencies: [{ kind: "pipe", type: DynamicTextPipe, name: "dynamicText" }, { kind: "pipe", type: AsyncPipe, name: "async" }] });
9844
+ }
9845
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeFormFieldWrapperComponent, decorators: [{
9507
9846
  type: Component,
9508
- args: [{ selector: 'dbx-forge-form-field-wrapper', imports: [DynamicTextPipe, AsyncPipe], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, host: {
9847
+ args: [{ selector: 'dbx-forge-form-field-wrapper', imports: [DynamicTextPipe, AsyncPipe], host: {
9509
9848
  // `mat-form-field-animations-enabled` is intentionally retained: it gates
9510
9849
  // the 300ms subscript fade animation via Material's
9511
9850
  // `.mat-form-field-animations-enabled .mat-mdc-form-field-hint-wrapper { animation-duration: 300ms; }`
@@ -9643,22 +9982,23 @@ function dbxForgeStyleWrapper(config) {
9643
9982
  * pending signal to detect when async validators are running.
9644
9983
  */
9645
9984
  class DbxForgeWorkingWrapperComponent {
9646
- fieldComponent = viewChild.required('fieldComponent', { read: ViewContainerRef });
9985
+ fieldComponent = viewChild.required('fieldComponent', { ...(ngDevMode ? { debugName: "fieldComponent" } : /* istanbul ignore next */ {}), read: ViewContainerRef });
9647
9986
  fieldSignalContext = inject(FIELD_SIGNAL_CONTEXT);
9648
9987
  showLoadingSignal = computed(() => {
9649
9988
  return this.fieldSignalContext.form().pending();
9650
- }, ...(ngDevMode ? [{ debugName: "showLoadingSignal" }] : /* istanbul ignore next */ []));
9651
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeWorkingWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9652
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.11", type: DbxForgeWorkingWrapperComponent, isStandalone: true, selector: "dbx-forge-working-wrapper", viewQueries: [{ propertyName: "fieldComponent", first: true, predicate: ["fieldComponent"], descendants: true, read: ViewContainerRef, isSignal: true }], ngImport: i0, template: `
9989
+ }, /* @ts-ignore */
9990
+ ...(ngDevMode ? [{ debugName: "showLoadingSignal" }] : /* istanbul ignore next */ []));
9991
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeWorkingWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9992
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: DbxForgeWorkingWrapperComponent, isStandalone: true, selector: "dbx-forge-working-wrapper", viewQueries: [{ propertyName: "fieldComponent", first: true, predicate: ["fieldComponent"], descendants: true, read: ViewContainerRef, isSignal: true }], ngImport: i0, template: `
9653
9993
  <div class="dbx-forge-working-wrapper">
9654
9994
  <ng-container #fieldComponent></ng-container>
9655
9995
  @if (showLoadingSignal()) {
9656
9996
  <mat-progress-bar mode="indeterminate" class="dbx-forge-working-bar"></mat-progress-bar>
9657
9997
  }
9658
9998
  </div>
9659
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i1$6.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9999
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i1$6.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }] });
9660
10000
  }
9661
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeWorkingWrapperComponent, decorators: [{
10001
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeWorkingWrapperComponent, decorators: [{
9662
10002
  type: Component,
9663
10003
  args: [{
9664
10004
  selector: 'dbx-forge-working-wrapper',
@@ -9670,9 +10010,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
9670
10010
  }
9671
10011
  </div>
9672
10012
  `,
9673
- imports: [MatProgressBarModule],
9674
- changeDetection: ChangeDetectionStrategy.OnPush,
9675
- standalone: true
10013
+ imports: [MatProgressBarModule]
9676
10014
  }]
9677
10015
  }], propDecorators: { fieldComponent: [{ type: i0.ViewChild, args: ['fieldComponent', { ...{ read: ViewContainerRef }, isSignal: true }] }] } });
9678
10016
 
@@ -9699,11 +10037,11 @@ const dbxForgeFormComponentImports = [DbxForgeFormComponent];
9699
10037
  * Default imports module for a view that extends AbstractSyncForgeFormDirective or AbstractConfigAsyncForgeFormDirective.
9700
10038
  */
9701
10039
  class DbxForgeFormComponentImportsModule {
9702
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeFormComponentImportsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9703
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeFormComponentImportsModule, imports: [DbxForgeFormComponent], exports: [DbxForgeFormComponent] });
9704
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeFormComponentImportsModule, imports: [dbxForgeFormComponentImports] });
10040
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeFormComponentImportsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10041
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeFormComponentImportsModule, imports: [DbxForgeFormComponent], exports: [DbxForgeFormComponent] });
10042
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeFormComponentImportsModule, imports: [dbxForgeFormComponentImports] });
9705
10043
  }
9706
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeFormComponentImportsModule, decorators: [{
10044
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeFormComponentImportsModule, decorators: [{
9707
10045
  type: NgModule,
9708
10046
  args: [{
9709
10047
  imports: dbxForgeFormComponentImports,
@@ -9717,7 +10055,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
9717
10055
  */
9718
10056
  class AbstractForgeFormDirective {
9719
10057
  context = inject((DbxForgeFormContext), { self: true });
9720
- disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
10058
+ disabled = input(false, /* @ts-ignore */
10059
+ ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
9721
10060
  _disabledEffect = effect(() => {
9722
10061
  if (this.disabled()) {
9723
10062
  this.context.setDisabled('directive', true);
@@ -9725,7 +10064,8 @@ class AbstractForgeFormDirective {
9725
10064
  else {
9726
10065
  this.context.setDisabled('directive', false);
9727
10066
  }
9728
- }, ...(ngDevMode ? [{ debugName: "_disabledEffect" }] : /* istanbul ignore next */ []));
10067
+ }, /* @ts-ignore */
10068
+ ...(ngDevMode ? [{ debugName: "_disabledEffect" }] : /* istanbul ignore next */ []));
9729
10069
  getValue() {
9730
10070
  return this.context.getValue();
9731
10071
  }
@@ -9741,10 +10081,10 @@ class AbstractForgeFormDirective {
9741
10081
  setDisabled(key, disabled) {
9742
10082
  this.context.setDisabled(key, disabled);
9743
10083
  }
9744
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: AbstractForgeFormDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
9745
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.11", type: AbstractForgeFormDirective, isStandalone: true, inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
10084
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: AbstractForgeFormDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
10085
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.4", type: AbstractForgeFormDirective, isStandalone: true, inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
9746
10086
  }
9747
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: AbstractForgeFormDirective, decorators: [{
10087
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: AbstractForgeFormDirective, decorators: [{
9748
10088
  type: Directive
9749
10089
  }], propDecorators: { disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }] } });
9750
10090
  /**
@@ -9754,10 +10094,10 @@ class AbstractSyncForgeFormDirective extends AbstractForgeFormDirective {
9754
10094
  ngOnInit() {
9755
10095
  this.context.config = this.formConfig;
9756
10096
  }
9757
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: AbstractSyncForgeFormDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
9758
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.11", type: AbstractSyncForgeFormDirective, isStandalone: true, usesInheritance: true, ngImport: i0 });
10097
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: AbstractSyncForgeFormDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
10098
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.4", type: AbstractSyncForgeFormDirective, isStandalone: true, usesInheritance: true, ngImport: i0 });
9759
10099
  }
9760
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: AbstractSyncForgeFormDirective, decorators: [{
10100
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: AbstractSyncForgeFormDirective, decorators: [{
9761
10101
  type: Directive
9762
10102
  }] });
9763
10103
  /**
@@ -9771,10 +10111,10 @@ class AbstractAsyncForgeFormDirective extends AbstractForgeFormDirective {
9771
10111
  this.context.config = formConfig;
9772
10112
  });
9773
10113
  }
9774
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: AbstractAsyncForgeFormDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
9775
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.11", type: AbstractAsyncForgeFormDirective, isStandalone: true, usesInheritance: true, ngImport: i0 });
10114
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: AbstractAsyncForgeFormDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
10115
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.4", type: AbstractAsyncForgeFormDirective, isStandalone: true, usesInheritance: true, ngImport: i0 });
9776
10116
  }
9777
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: AbstractAsyncForgeFormDirective, decorators: [{
10117
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: AbstractAsyncForgeFormDirective, decorators: [{
9778
10118
  type: Directive
9779
10119
  }] });
9780
10120
  /**
@@ -9788,12 +10128,13 @@ class AbstractConfigAsyncForgeFormDirective extends AbstractAsyncForgeFormDirect
9788
10128
  /**
9789
10129
  * The forge form config input.
9790
10130
  */
9791
- config = model(...(ngDevMode ? [undefined, { debugName: "config" }] : /* istanbul ignore next */ []));
10131
+ config = model(/* @ts-ignore */
10132
+ ...(ngDevMode ? [undefined, { debugName: "config" }] : /* istanbul ignore next */ []));
9792
10133
  currentConfig$ = toObservable(this.config).pipe(maybeValueFromObservableOrValue());
9793
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: AbstractConfigAsyncForgeFormDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
9794
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.11", type: AbstractConfigAsyncForgeFormDirective, isStandalone: true, inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { config: "configChange" }, usesInheritance: true, ngImport: i0 });
10134
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: AbstractConfigAsyncForgeFormDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
10135
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.4", type: AbstractConfigAsyncForgeFormDirective, isStandalone: true, inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { config: "configChange" }, usesInheritance: true, ngImport: i0 });
9795
10136
  }
9796
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: AbstractConfigAsyncForgeFormDirective, decorators: [{
10137
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: AbstractConfigAsyncForgeFormDirective, decorators: [{
9797
10138
  type: Directive
9798
10139
  }], propDecorators: { config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: false }] }, { type: i0.Output, args: ["configChange"] }] } });
9799
10140
 
@@ -9804,18 +10145,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
9804
10145
  */
9805
10146
  class DbxForgeAsyncConfigFormComponent extends AbstractConfigAsyncForgeFormDirective {
9806
10147
  formConfig$ = this.currentConfig$;
9807
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeAsyncConfigFormComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
9808
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.11", type: DbxForgeAsyncConfigFormComponent, isStandalone: true, selector: "dbx-forge-form", providers: provideDbxForgeFormContext(), usesInheritance: true, ngImport: i0, template: "<dbx-forge></dbx-forge>", isInline: true, dependencies: [{ kind: "ngmodule", type: DbxForgeFormComponentImportsModule }, { kind: "component", type: DbxForgeFormComponent, selector: "dbx-forge" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
10148
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeAsyncConfigFormComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
10149
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.4", type: DbxForgeAsyncConfigFormComponent, isStandalone: true, selector: "dbx-forge-form", providers: provideDbxForgeFormContext(), usesInheritance: true, ngImport: i0, template: "<dbx-forge></dbx-forge>", isInline: true, dependencies: [{ kind: "ngmodule", type: DbxForgeFormComponentImportsModule }, { kind: "component", type: DbxForgeFormComponent, selector: "dbx-forge" }] });
9809
10150
  }
9810
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxForgeAsyncConfigFormComponent, decorators: [{
10151
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeAsyncConfigFormComponent, decorators: [{
9811
10152
  type: Component,
9812
10153
  args: [{
9813
10154
  selector: 'dbx-forge-form',
9814
10155
  template: DBX_FORGE_FORM_COMPONENT_TEMPLATE,
9815
10156
  providers: provideDbxForgeFormContext(),
9816
- imports: [DbxForgeFormComponentImportsModule],
9817
- changeDetection: ChangeDetectionStrategy.OnPush,
9818
- standalone: true
10157
+ imports: [DbxForgeFormComponentImportsModule]
9819
10158
  }]
9820
10159
  }] });
9821
10160
 
@@ -9899,12 +10238,12 @@ const DBX_FORGE_FIELD_TYPES = [
9899
10238
  // -- Wrapper-related fields --
9900
10239
  {
9901
10240
  name: FORGE_EXPAND_FIELD_TYPE_NAME,
9902
- loadComponent: () => import('./dereekb-dbx-form-expand.field.component-uqVNtX2s.mjs').then((m) => m.DbxForgeExpandFieldComponent),
10241
+ loadComponent: () => import('./dereekb-dbx-form-expand.field.component-BO_8nxHg.mjs').then((m) => m.DbxForgeExpandFieldComponent),
9903
10242
  mapper: valueFieldMapper
9904
10243
  },
9905
10244
  {
9906
10245
  name: FORGE_INFO_BUTTON_FIELD_TYPE_NAME,
9907
- loadComponent: () => import('./dereekb-dbx-form-info.field.component-CBAXCDdO.mjs').then((m) => m.DbxForgeInfoButtonFieldComponent),
10246
+ loadComponent: () => import('./dereekb-dbx-form-info.field.component-CImBKYE7.mjs').then((m) => m.DbxForgeInfoButtonFieldComponent),
9908
10247
  mapper: valueFieldMapper
9909
10248
  }
9910
10249
  ];
@@ -9918,15 +10257,15 @@ const DBX_FORGE_FIELD_WRAPPER_TYPES = [
9918
10257
  },
9919
10258
  {
9920
10259
  wrapperName: DBX_FORGE_SECTION_WRAPPER_TYPE_NAME,
9921
- loadComponent: () => import('./dereekb-dbx-form-section.wrapper.component-BoR5-a8A.mjs').then((m) => m.DbxForgeSectionWrapperComponent)
10260
+ loadComponent: () => import('./dereekb-dbx-form-section.wrapper.component-CpXSvC5e.mjs').then((m) => m.DbxForgeSectionWrapperComponent)
9922
10261
  },
9923
10262
  {
9924
10263
  wrapperName: DBX_FORGE_STYLE_WRAPPER_TYPE_NAME,
9925
- loadComponent: () => import('./dereekb-dbx-form-style.wrapper.component-C4dVNND_.mjs').then((m) => m.DbxForgeStyleWrapperComponent)
10264
+ loadComponent: () => import('./dereekb-dbx-form-style.wrapper.component-CPzzgQXk.mjs').then((m) => m.DbxForgeStyleWrapperComponent)
9926
10265
  },
9927
10266
  {
9928
10267
  wrapperName: DBX_FORGE_INFO_WRAPPER_TYPE_NAME,
9929
- loadComponent: () => import('./dereekb-dbx-form-info.wrapper.component-ChSBMxgm.mjs').then((m) => m.DbxForgeInfoWrapperComponent)
10268
+ loadComponent: () => import('./dereekb-dbx-form-info.wrapper.component-DdDCQ47C.mjs').then((m) => m.DbxForgeInfoWrapperComponent)
9930
10269
  },
9931
10270
  {
9932
10271
  wrapperName: DBX_FORGE_WORKING_WRAPPER_TYPE_NAME,
@@ -9934,7 +10273,7 @@ const DBX_FORGE_FIELD_WRAPPER_TYPES = [
9934
10273
  },
9935
10274
  {
9936
10275
  wrapperName: DBX_FORGE_FLEX_WRAPPER_TYPE_NAME,
9937
- loadComponent: () => import('./dereekb-dbx-form-flex.wrapper.component-C2nN1Oi1.mjs').then((m) => m.DbxForgeFlexWrapperComponent)
10276
+ loadComponent: () => import('./dereekb-dbx-form-flex.wrapper.component-C54ACtzt.mjs').then((m) => m.DbxForgeFlexWrapperComponent)
9938
10277
  },
9939
10278
  {
9940
10279
  wrapperName: DBX_FORGE_ARRAY_FIELD_WRAPPER_NAME,
@@ -9976,11 +10315,9 @@ function provideDbxForgeFormFieldDeclarations(...additionalFieldTypes) {
9976
10315
  * Creates a forge field array for a simple search form with a single text input.
9977
10316
  *
9978
10317
  * @param config - Optional search field configuration with label and placeholder.
9979
- * @returns The forge field defs for the search form
9980
- *
9981
- * TODO(migrate): Will be renamed in a future release to dbxForgePresetSearchFormFields.
10318
+ * @returns The forge field defs for the search form.
9982
10319
  */
9983
- function dbxFormSearchFormFields(config) {
10320
+ function dbxForgePresetSearchFormFields(config) {
9984
10321
  const { key = 'search', label, placeholder = 'Search', props } = config ?? {};
9985
10322
  const field = dbxForgeTextField({
9986
10323
  key,
@@ -9992,20 +10329,19 @@ function dbxFormSearchFormFields(config) {
9992
10329
  return [field];
9993
10330
  }
9994
10331
 
9995
- // TODO(migrate): Will be renamed in a future release to DbxForgePresetSearchFormComponent.
9996
- class DbxFormSearchFormComponent extends AbstractConfigAsyncForgeFormDirective {
10332
+ class DbxForgePresetSearchFormComponent extends AbstractConfigAsyncForgeFormDirective {
9997
10333
  // eslint-disable-next-line @angular-eslint/no-output-native
9998
10334
  search = output();
9999
- formConfig$ = this.currentConfig$.pipe(map((config) => ({ fields: dbxFormSearchFormFields(config) })));
10335
+ formConfig$ = this.currentConfig$.pipe(map((config) => ({ fields: dbxForgePresetSearchFormFields(config) })));
10000
10336
  searchChanged(value) {
10001
10337
  this.search.emit(value?.search ?? '');
10002
10338
  }
10003
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxFormSearchFormComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
10004
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.11", type: DbxFormSearchFormComponent, isStandalone: true, selector: "dbx-form-search-form", outputs: { search: "search" }, host: { classAttribute: "d-block dbx-form-search-form" }, providers: provideDbxForgeFormContext(), usesInheritance: true, ngImport: i0, template: `
10339
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgePresetSearchFormComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
10340
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.4", type: DbxForgePresetSearchFormComponent, isStandalone: true, selector: "dbx-form-search-form", outputs: { search: "search" }, host: { classAttribute: "d-block dbx-form-search-form" }, providers: provideDbxForgeFormContext(), usesInheritance: true, ngImport: i0, template: `
10005
10341
  <dbx-forge (dbxFormValueChange)="searchChanged($event)"></dbx-forge>
10006
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: DbxForgeFormComponentImportsModule }, { kind: "component", type: DbxForgeFormComponent, selector: "dbx-forge" }, { kind: "directive", type: DbxFormValueChangeDirective, selector: "[dbxFormValueChange]", outputs: ["dbxFormValueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
10342
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: DbxForgeFormComponentImportsModule }, { kind: "component", type: DbxForgeFormComponent, selector: "dbx-forge" }, { kind: "directive", type: DbxFormValueChangeDirective, selector: "[dbxFormValueChange]", outputs: ["dbxFormValueChange"] }] });
10007
10343
  }
10008
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxFormSearchFormComponent, decorators: [{
10344
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgePresetSearchFormComponent, decorators: [{
10009
10345
  type: Component,
10010
10346
  args: [{
10011
10347
  selector: 'dbx-form-search-form',
@@ -10014,8 +10350,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
10014
10350
  `,
10015
10351
  providers: provideDbxForgeFormContext(),
10016
10352
  imports: [DbxForgeFormComponentImportsModule, DbxFormValueChangeDirective],
10017
- standalone: true,
10018
- changeDetection: ChangeDetectionStrategy.OnPush,
10019
10353
  host: {
10020
10354
  class: 'd-block dbx-form-search-form'
10021
10355
  }
@@ -10219,23 +10553,6 @@ function dbxForgeUsernameLoginField(username) {
10219
10553
  }
10220
10554
  return result;
10221
10555
  }
10222
- // MARK: Compat
10223
- // COMPAT: Deprecated aliases
10224
- /**
10225
- * @deprecated use DEFAULT_DBX_FORGE_PASSWORDS_MATCH_VALIDATION_MESSAGE instead.
10226
- * @dbxAllowDefaultPrefix
10227
- */
10228
- const DBX_FORGE_DEFAULT_PASSWORDS_MATCH_VALIDATION_MESSAGE = DEFAULT_DBX_FORGE_PASSWORDS_MATCH_VALIDATION_MESSAGE;
10229
- /**
10230
- * @deprecated use DEFAULT_DBX_FORGE_TEXT_PASSWORD_AUTOCOMPLETE instead.
10231
- * @dbxAllowDefaultPrefix
10232
- */
10233
- const DBX_FORGE_TEXT_PASSWORD_DEFAULT_AUTOCOMPLETE = DEFAULT_DBX_FORGE_TEXT_PASSWORD_AUTOCOMPLETE;
10234
- /**
10235
- * @deprecated use DEFAULT_DBX_FORGE_TEXT_VERIFY_PASSWORD_AUTOCOMPLETE instead.
10236
- * @dbxAllowDefaultPrefix
10237
- */
10238
- const DBX_FORGE_TEXT_VERIFY_PASSWORD_DEFAULT_AUTOCOMPLETE = DEFAULT_DBX_FORGE_TEXT_VERIFY_PASSWORD_AUTOCOMPLETE;
10239
10556
 
10240
10557
  /**
10241
10558
  * A function that takes a search string and returns matching string results.
@@ -10514,17 +10831,16 @@ function pickableValueFieldValuesConfigForStaticLabeledValues(input) {
10514
10831
  * @selector `dbx-form-spacer,[dbxFormSpacer],.dbx-form-spacer`
10515
10832
  */
10516
10833
  class DbxFormSpacerDirective {
10517
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxFormSpacerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
10518
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.11", type: DbxFormSpacerDirective, isStandalone: true, selector: "dbx-form-spacer,[dbxFormSpacer],.dbx-form-spacer", host: { classAttribute: "d-block dbx-form-spacer" }, ngImport: i0 });
10834
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxFormSpacerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
10835
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.4", type: DbxFormSpacerDirective, isStandalone: true, selector: "dbx-form-spacer,[dbxFormSpacer],.dbx-form-spacer", host: { classAttribute: "d-block dbx-form-spacer" }, ngImport: i0 });
10519
10836
  }
10520
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxFormSpacerDirective, decorators: [{
10837
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxFormSpacerDirective, decorators: [{
10521
10838
  type: Directive,
10522
10839
  args: [{
10523
10840
  selector: 'dbx-form-spacer,[dbxFormSpacer],.dbx-form-spacer',
10524
10841
  host: {
10525
10842
  class: 'd-block dbx-form-spacer'
10526
- },
10527
- standalone: true
10843
+ }
10528
10844
  }]
10529
10845
  }] });
10530
10846
 
@@ -10699,5 +11015,5 @@ function provideDbxFormConfiguration(config) {
10699
11015
  * Generated bundle index. Do not edit.
10700
11016
  */
10701
11017
 
10702
- export { APP_ACTION_FORM_DISABLED_KEY, AbstractAsyncForgeFormDirective, AbstractConfigAsyncForgeFormDirective, AbstractDbxSearchableFieldDisplayDirective, AbstractForgeFormDirective, AbstractForgePickableItemFieldDirective, AbstractForgeSearchableFieldDirective, AbstractSyncForgeFormDirective, DBX_DATE_TIME_FIELD_DATE_NOT_IN_SCHEDULE_ERROR, DBX_DATE_TIME_FIELD_MENU_PRESETS_TOKEN, DBX_DATE_TIME_FIELD_TIME_NOT_IN_RANGE_ERROR, DBX_FORGE_ARRAY_FIELD_ELEMENT_WRAPPER_NAME, DBX_FORGE_ARRAY_FIELD_WRAPPER_NAME, DBX_FORGE_DEFAULT_PASSWORDS_MATCH_VALIDATION_MESSAGE, DBX_FORGE_FIELD_TYPES, DBX_FORGE_FIELD_WRAPPER_TYPES, DBX_FORGE_FLEX_WRAPPER_TYPE_NAME, DBX_FORGE_FORM_COMPONENT_TEMPLATE, DBX_FORGE_FORM_FIELD_WRAPPER_NAME, DBX_FORGE_INFO_WRAPPER_TYPE_NAME, DBX_FORGE_PASSWORDS_MATCH_VALIDATION_KIND, DBX_FORGE_SEARCHABLE_CHIP_FIELD_TYPE_NAME, DBX_FORGE_SEARCHABLE_TEXT_FIELD_TYPE_NAME, DBX_FORGE_SECTION_WRAPPER_TYPE_NAME, DBX_FORGE_STYLE_WRAPPER_TYPE_NAME, DBX_FORGE_TEXT_PASSWORD_DEFAULT_AUTOCOMPLETE, DBX_FORGE_TEXT_VERIFY_PASSWORD_DEFAULT_AUTOCOMPLETE, DBX_FORGE_WORKING_WRAPPER_TYPE_NAME, DBX_SEARCHABLE_FIELD_COMPONENT_DATA_TOKEN, DEFAULT_DATE_TIME_FIELD_MENU_PRESETS_PRESETS, DEFAULT_DBX_FORGE_PASSWORDS_MATCH_VALIDATION_MESSAGE, DEFAULT_DBX_FORGE_TEXT_PASSWORD_AUTOCOMPLETE, DEFAULT_DBX_FORGE_TEXT_VERIFY_PASSWORD_AUTOCOMPLETE, DEFAULT_DURATION_PICKER_POPOVER_KEY, DEFAULT_FORGE_LAT_LNG_TEXT_FIELD_PATTERN_MESSAGE, DEFAULT_FORGE_LAT_LNG_TEXT_FIELD_PLACEHOLDER, DEFAULT_FORM_DISABLED_KEY, DEFAULT_TRANSFORM_DEBOUNCE_TIME, DbxActionFormDirective, DbxActionFormSafetyDirective, DbxDateTimeFieldMenuPresetsService, DbxDateTimeFieldTimeMode, DbxDateTimeValueMode, DbxDefaultSearchableFieldDisplayComponent, DbxDurationPickerPopoverComponent, DbxForgeActionDialogComponent, DbxForgeArrayFieldElementWrapperComponent, DbxForgeArrayFieldWrapperComponent, DbxForgeAsyncConfigFormComponent, DbxForgeComponentFieldComponent, DbxForgeDateRangeFieldComponent, DbxForgeDateTimeFieldComponent, DbxForgeDynamicFormSignalRef, DbxForgeFixedDateRangeFieldComponent, DbxForgeFixedDateRangeFieldSelectionStrategy, DbxForgeFormComponent, DbxForgeFormComponentImportsModule, DbxForgeFormContext, DbxForgeFormContextService, DbxForgeFormFieldWrapperComponent, DbxForgeGlobalDefaultConfigService, DbxForgeListSelectionFieldComponent, DbxForgePhoneFieldComponent, DbxForgePickableChipFieldComponent, DbxForgePickableListFieldComponent, DbxForgeSearchableChipFieldComponent, DbxForgeSearchableTextFieldComponent, DbxForgeSourceSelectFieldComponent, DbxForgeTextEditorFieldComponent, DbxForgeTimeDurationFieldComponent, DbxForgeWorkingWrapperComponent, DbxForm, DbxFormLoadingSourceDirective, DbxFormLoggerDirective, DbxFormSearchFormComponent, DbxFormSourceDirective, DbxFormSpacerDirective, DbxFormState, DbxFormValueChangeDirective, DbxMutableForm, DbxSearchableFieldAutocompleteItemComponent, FIELD_VALUES_ARE_EQUAL_VALIDATION_KEY, FIELD_VALUE_IS_AVAILABLE_ERROR_VALIDATION_KEY, FIELD_VALUE_IS_AVAILABLE_VALIDATION_KEY, FORGE_COMPONENT_FIELD_TYPE, FORGE_DATERANGE_FIELD_TYPE, FORGE_DATETIME_FIELD_TYPE, FORGE_EXPAND_FIELD_TYPE_NAME, FORGE_FIELD_VALUE_IS_AVAILABLE_VALIDATOR_NAME, FORGE_FIXEDDATERANGE_FIELD_TYPE, FORGE_INFO_BUTTON_FIELD_TYPE_NAME, FORGE_IS_DIVISIBLE_BY_VALIDATION_KEY, FORGE_LIST_SELECTION_FIELD_TYPE, FORGE_PHONE_FIELD_TYPE, FORGE_PICKABLE_CHIP_FIELD_TYPE, FORGE_PICKABLE_LIST_FIELD_TYPE, FORGE_SOURCE_SELECT_FIELD_TYPE, FORGE_STYLED_BOX_CLASS, FORGE_TEXT_EDITOR_FIELD_TYPE, FORGE_TIMEDURATION_FIELD_TYPE, FORGE_VALUE_SELECTION_FIELD_TYPE, INVALID_PHONE_NUMBER_EXTENSION_MESSAGE, INVALID_PHONE_NUMBER_MESSAGE, IS_DIVISIBLE_BY_VALIDATION_KEY, IS_NOT_WEBSITE_URL_VALIDATION_KEY, IS_NOT_WEBSITE_URL_WITH_EXPECTED_DOMAIN_VALIDATION_KEY, IS_NOT_WEBSITE_URL_WITH_PREFIX_VALIDATION_KEY, SELF_DEPENDENCY_TOKEN, _filterForgeFormValueKeepInternal, _filterForgeFormValueStripInternal, _forgeFormValueEqual, applyTimeOffset, buildCombinedDateTime, computeDateKeyboardStep, computeErrorMessage, computeTimeKeyboardStep, configureDbxForgeFormFieldWrapper, configureDbxForgeFormFieldWrapperWith, configureForgeAutocompleteFieldMeta, copyFormConfigCustomFnConfig, dateRangeFieldMapper, dateTimeFieldCalc, dateTimeFieldMapper, dateTimePreset, dbxDateRangeIsSameDateRangeFieldValue, dbxDateTimeInputValueParseFactory, dbxDateTimeIsSameDateTimeFieldValue, dbxDateTimeOutputValueFactory, dbxForgeAddressFields, dbxForgeAddressGroup, dbxForgeAddressLineField, dbxForgeAddressListField, dbxForgeArrayField, dbxForgeBuildFieldDef, dbxForgeCheckboxField, dbxForgeChecklistField, dbxForgeCityField, dbxForgeComponentField, dbxForgeContainer, dbxForgeCountryField, dbxForgeDateField, dbxForgeDateRangeRow, dbxForgeDateTimeField, dbxForgeDateTimeRangeRow, dbxForgeDefaultValidationMessages, dbxForgeDollarAmountField, dbxForgeEmailField, dbxForgeExpandWrapper, dbxForgeFieldDisabled, dbxForgeFieldFunction, dbxForgeFieldFunctionConfigPropsWithHintBuilder, dbxForgeFieldFunctionConfigure, dbxForgeFinalizeFormConfig, dbxForgeFixedDateRangeField, dbxForgeFlexLayout, provideDbxForgeFormContext as dbxForgeFormComponentProviders, dbxForgeGroup, dbxForgeInfoWrapper, dbxForgeLatLngTextField, dbxForgeListSelectionField, dbxForgeNameField, dbxForgeNumberField, dbxForgeNumberSliderField, dbxForgePhoneField, dbxForgePickableChipField, dbxForgePickableListField, dbxForgeRow, dbxForgeSearchableChipField, dbxForgeSearchableStringChipField, dbxForgeSearchableTextField, dbxForgeSectionWrapper, dbxForgeSourceSelectField, dbxForgeStateField, dbxForgeStyleWrapper, dbxForgeSubsectionWrapper, dbxForgeTextAreaField, dbxForgeTextEditorField, dbxForgeTextField, dbxForgeTextIsAvailableField, dbxForgeTextPasswordField, dbxForgeTextPasswordWithVerifyField, dbxForgeTextVerifyPasswordField, dbxForgeTimeDurationField, dbxForgeTimezoneStringField, dbxForgeToggleField, dbxForgeToggleWrapper, dbxForgeUsernameLoginField, dbxForgeUsernamePasswordLoginFields, dbxForgeValueSelectionField, dbxForgeWebsiteUrlField, dbxForgeZipCodeField, dbxFormSearchFormFields, dbxFormSourceObservable, dbxFormSourceObservableFromStream, disableAutofillAttributes, fieldAutocompleteAttributeValue, fieldValueIsAvailableValidator, fieldValuesAreEqualValidator, filterPickableItemFieldValuesByLabel, filterPickableItemFieldValuesByLabelFilterFunction, filterPresets, fixedDateRangeFieldMapper, isDivisibleBy, isDomain, isE164PhoneNumber, isE164PhoneNumberWithValidExtension, isInRange, isPhoneExtension, isTruthy, isWebsiteUrlValidator, mergeDbxForgeFieldFormConfig, mergePickerConfig, navigateDate, phoneFieldMapper, pickableValueFieldValuesConfigForStaticLabeledValues, provideDbxForgeFormContext, provideDbxForgeFormFieldDeclarations, provideDbxForm, provideDbxFormConfiguration, provideDbxMutableForm, resolveForgeSelectionOptions, streamValueFromControl, stripEmptyForgeValues, stripForgeInternalKeys, timeDurationFieldMapper, toggleDisableFormControl };
11018
+ export { APP_ACTION_FORM_DISABLED_KEY, AbstractAsyncForgeFormDirective, AbstractConfigAsyncForgeFormDirective, AbstractDbxSearchableFieldDisplayDirective, AbstractForgeFormDirective, AbstractForgePickableItemFieldDirective, AbstractForgeSearchableFieldDirective, AbstractSyncForgeFormDirective, DBX_DATE_TIME_FIELD_DATE_NOT_IN_SCHEDULE_ERROR, DBX_DATE_TIME_FIELD_MENU_PRESETS_TOKEN, DBX_DATE_TIME_FIELD_TIME_NOT_IN_RANGE_ERROR, DBX_FORGE_ARRAY_FIELD_ELEMENT_WRAPPER_NAME, DBX_FORGE_ARRAY_FIELD_WRAPPER_NAME, DBX_FORGE_FIELD_TYPES, DBX_FORGE_FIELD_WRAPPER_TYPES, DBX_FORGE_FLEX_WRAPPER_TYPE_NAME, DBX_FORGE_FORM_COMPONENT_TEMPLATE, DBX_FORGE_FORM_FIELD_WRAPPER_NAME, DBX_FORGE_INFO_WRAPPER_TYPE_NAME, DBX_FORGE_PASSWORDS_MATCH_VALIDATION_KIND, DBX_FORGE_SEARCHABLE_CHIP_FIELD_TYPE_NAME, DBX_FORGE_SEARCHABLE_TEXT_FIELD_TYPE_NAME, DBX_FORGE_SECTION_WRAPPER_TYPE_NAME, DBX_FORGE_STYLE_WRAPPER_TYPE_NAME, DBX_FORGE_WORKING_WRAPPER_TYPE_NAME, DBX_SEARCHABLE_FIELD_COMPONENT_DATA_TOKEN, DEFAULT_DATE_TIME_FIELD_MENU_PRESETS_PRESETS, DEFAULT_DBX_FORGE_PASSWORDS_MATCH_VALIDATION_MESSAGE, DEFAULT_DBX_FORGE_TEXT_PASSWORD_AUTOCOMPLETE, DEFAULT_DBX_FORGE_TEXT_VERIFY_PASSWORD_AUTOCOMPLETE, DEFAULT_DURATION_PICKER_POPOVER_KEY, DEFAULT_FORGE_LAT_LNG_TEXT_FIELD_PATTERN_MESSAGE, DEFAULT_FORGE_LAT_LNG_TEXT_FIELD_PLACEHOLDER, DEFAULT_FORM_DISABLED_KEY, DEFAULT_TRANSFORM_DEBOUNCE_TIME, DbxActionFormDirective, DbxActionFormSafetyDirective, DbxDateTimeFieldMenuPresetsService, DbxDateTimeFieldTimeMode, DbxDateTimeValueMode, DbxDefaultSearchableFieldDisplayComponent, DbxDurationPickerPopoverComponent, DbxForgeActionDialogComponent, DbxForgeArrayFieldElementWrapperComponent, DbxForgeArrayFieldWrapperComponent, DbxForgeAsyncConfigFormComponent, DbxForgeComponentFieldComponent, DbxForgeDateRangeFieldComponent, DbxForgeDateTimeFieldComponent, DbxForgeDynamicFormSignalRef, DbxForgeFixedDateRangeFieldComponent, DbxForgeFixedDateRangeFieldSelectionStrategy, DbxForgeFormComponent, DbxForgeFormComponentImportsModule, DbxForgeFormContext, DbxForgeFormContextService, DbxForgeFormFieldWrapperComponent, DbxForgeGlobalDefaultConfigService, DbxForgeListSelectionFieldComponent, DbxForgePhoneFieldComponent, DbxForgePickableChipFieldComponent, DbxForgePickableListFieldComponent, DbxForgePresetSearchFormComponent, DbxForgeSearchableChipFieldComponent, DbxForgeSearchableTextFieldComponent, DbxForgeSourceSelectFieldComponent, DbxForgeTextEditorFieldComponent, DbxForgeTimeDurationFieldComponent, DbxForgeWorkingWrapperComponent, DbxForm, DbxFormLoadingSourceDirective, DbxFormLoggerDirective, DbxFormSourceDirective, DbxFormSpacerDirective, DbxFormState, DbxFormValueChangeDirective, DbxMutableForm, DbxSearchableFieldAutocompleteItemComponent, FIELD_VALUES_ARE_EQUAL_VALIDATION_KEY, FIELD_VALUE_IS_AVAILABLE_ERROR_VALIDATION_KEY, FIELD_VALUE_IS_AVAILABLE_VALIDATION_KEY, FORGE_COMPONENT_FIELD_TYPE, FORGE_DATERANGE_FIELD_TYPE, FORGE_DATETIME_FIELD_TYPE, FORGE_EXPAND_FIELD_TYPE_NAME, FORGE_FIELD_VALUE_IS_AVAILABLE_VALIDATOR_NAME, FORGE_FIXEDDATERANGE_FIELD_TYPE, FORGE_INFO_BUTTON_FIELD_TYPE_NAME, FORGE_IS_DIVISIBLE_BY_VALIDATION_KEY, FORGE_LIST_SELECTION_FIELD_TYPE, FORGE_PHONE_FIELD_TYPE, FORGE_PICKABLE_CHIP_FIELD_TYPE, FORGE_PICKABLE_LIST_FIELD_TYPE, FORGE_SOURCE_SELECT_FIELD_TYPE, FORGE_TEXT_EDITOR_FIELD_TYPE, FORGE_TIMEDURATION_FIELD_TYPE, FORGE_VALUE_SELECTION_FIELD_TYPE, INVALID_PHONE_NUMBER_EXTENSION_MESSAGE, INVALID_PHONE_NUMBER_MESSAGE, IS_DIVISIBLE_BY_VALIDATION_KEY, IS_NOT_WEBSITE_URL_VALIDATION_KEY, IS_NOT_WEBSITE_URL_WITH_EXPECTED_DOMAIN_VALIDATION_KEY, IS_NOT_WEBSITE_URL_WITH_PREFIX_VALIDATION_KEY, SELF_DEPENDENCY_TOKEN, _filterForgeFormValueKeepInternal, _filterForgeFormValueStripInternal, _forgeFormValueEqual, applyTimeOffset, buildCombinedDateTime, computeDateKeyboardStep, computeErrorMessage, computeTimeKeyboardStep, configureDbxForgeFormFieldWrapper, configureDbxForgeFormFieldWrapperWith, configureForgeAutocompleteFieldMeta, copyFormConfigCustomFnConfig, dateRangeFieldMapper, dateTimeFieldCalc, dateTimeFieldMapper, dateTimePreset, dbxDateRangeIsSameDateRangeFieldValue, dbxDateTimeInputValueParseFactory, dbxDateTimeIsSameDateTimeFieldValue, dbxDateTimeOutputValueFactory, dbxForgeAddressFields, dbxForgeAddressGroup, dbxForgeAddressLineField, dbxForgeAddressListField, dbxForgeArrayField, dbxForgeBuildFieldDef, dbxForgeCheckboxField, dbxForgeChecklistField, dbxForgeCityField, dbxForgeComponentField, dbxForgeContainer, dbxForgeCountryField, dbxForgeDateField, dbxForgeDateRangeRow, dbxForgeDateTimeField, dbxForgeDateTimeRangeRow, dbxForgeDefaultValidationMessages, dbxForgeDollarAmountField, dbxForgeEmailField, dbxForgeExpandWrapper, dbxForgeFieldDisabled, dbxForgeFieldFunction, dbxForgeFieldFunctionConfigPropsWithHintBuilder, dbxForgeFieldFunctionConfigure, dbxForgeFinalizeFormConfig, dbxForgeFixedDateRangeField, dbxForgeFlexLayout, provideDbxForgeFormContext as dbxForgeFormComponentProviders, dbxForgeGroup, dbxForgeInfoWrapper, dbxForgeLatLngTextField, dbxForgeListSelectionField, dbxForgeNameField, dbxForgeNumberField, dbxForgeNumberSliderField, dbxForgePhoneField, dbxForgePickableChipField, dbxForgePickableListField, dbxForgePresetSearchFormFields, dbxForgeRow, dbxForgeSearchableChipField, dbxForgeSearchableStringChipField, dbxForgeSearchableTextField, dbxForgeSectionWrapper, dbxForgeSourceSelectField, dbxForgeStateField, dbxForgeStyleWrapper, dbxForgeSubsectionWrapper, dbxForgeTextAreaField, dbxForgeTextEditorField, dbxForgeTextField, dbxForgeTextIsAvailableField, dbxForgeTextPasswordField, dbxForgeTextPasswordWithVerifyField, dbxForgeTextVerifyPasswordField, dbxForgeTimeDurationField, dbxForgeTimezoneStringField, dbxForgeToggleField, dbxForgeToggleWrapper, dbxForgeUsernameLoginField, dbxForgeUsernamePasswordLoginFields, dbxForgeValueSelectionField, dbxForgeWebsiteUrlField, dbxForgeZipCodeField, dbxFormSourceObservable, dbxFormSourceObservableFromStream, disableAutofillAttributes, fieldAutocompleteAttributeValue, fieldValueIsAvailableValidator, fieldValuesAreEqualValidator, filterPickableItemFieldValuesByLabel, filterPickableItemFieldValuesByLabelFilterFunction, filterPresets, fixedDateRangeFieldMapper, isDivisibleBy, isDomain, isE164PhoneNumber, isE164PhoneNumberWithValidExtension, isInRange, isPhoneExtension, isTruthy, isWebsiteUrlValidator, mergeDbxForgeFieldFormConfig, mergePickerConfig, navigateDate, phoneFieldMapper, pickableValueFieldValuesConfigForStaticLabeledValues, provideDbxForgeFormContext, provideDbxForgeFormFieldDeclarations, provideDbxForm, provideDbxFormConfiguration, provideDbxMutableForm, resolveForgeSelectionOptions, streamValueFromControl, stripEmptyForgeValues, stripForgeInternalKeys, timeDurationFieldMapper, toggleDisableFormControl };
10703
11019
  //# sourceMappingURL=dereekb-dbx-form.mjs.map