@dereekb/dbx-form 13.43.0 → 14.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/dereekb-dbx-form-calendar.mjs +156 -196
- package/fesm2022/dereekb-dbx-form-calendar.mjs.map +1 -1
- package/fesm2022/dereekb-dbx-form-expand.field.component-BO_8nxHg.mjs +70 -0
- package/fesm2022/dereekb-dbx-form-expand.field.component-BO_8nxHg.mjs.map +1 -0
- package/fesm2022/dereekb-dbx-form-flex.wrapper.component-C54ACtzt.mjs +40 -0
- package/fesm2022/dereekb-dbx-form-flex.wrapper.component-C54ACtzt.mjs.map +1 -0
- package/fesm2022/dereekb-dbx-form-info.field.component-CImBKYE7.mjs +61 -0
- package/fesm2022/dereekb-dbx-form-info.field.component-CImBKYE7.mjs.map +1 -0
- package/fesm2022/{dereekb-dbx-form-info.wrapper.component-ChSBMxgm.mjs → dereekb-dbx-form-info.wrapper.component-DdDCQ47C.mjs} +14 -13
- package/fesm2022/dereekb-dbx-form-info.wrapper.component-DdDCQ47C.mjs.map +1 -0
- package/fesm2022/dereekb-dbx-form-mapbox.mjs +100 -60
- package/fesm2022/dereekb-dbx-form-mapbox.mjs.map +1 -1
- package/fesm2022/dereekb-dbx-form-quiz.mjs +106 -73
- package/fesm2022/dereekb-dbx-form-quiz.mjs.map +1 -1
- package/fesm2022/{dereekb-dbx-form-section.wrapper.component-BoR5-a8A.mjs → dereekb-dbx-form-section.wrapper.component-CpXSvC5e.mjs} +14 -13
- package/fesm2022/dereekb-dbx-form-section.wrapper.component-CpXSvC5e.mjs.map +1 -0
- package/fesm2022/dereekb-dbx-form-style-demo.mjs +30 -39
- package/fesm2022/dereekb-dbx-form-style-demo.mjs.map +1 -1
- package/fesm2022/{dereekb-dbx-form-style.wrapper.component-C4dVNND_.mjs → dereekb-dbx-form-style.wrapper.component-CPzzgQXk.mjs} +12 -12
- package/fesm2022/dereekb-dbx-form-style.wrapper.component-CPzzgQXk.mjs.map +1 -0
- package/fesm2022/dereekb-dbx-form.mjs +949 -635
- package/fesm2022/dereekb-dbx-form.mjs.map +1 -1
- package/package.json +24 -24
- package/types/dereekb-dbx-form-calendar.d.ts +55 -64
- package/types/dereekb-dbx-form.d.ts +51 -293
- package/fesm2022/dereekb-dbx-form-expand.field.component-uqVNtX2s.mjs +0 -56
- package/fesm2022/dereekb-dbx-form-expand.field.component-uqVNtX2s.mjs.map +0 -1
- package/fesm2022/dereekb-dbx-form-flex.wrapper.component-C2nN1Oi1.mjs +0 -39
- package/fesm2022/dereekb-dbx-form-flex.wrapper.component-C2nN1Oi1.mjs.map +0 -1
- package/fesm2022/dereekb-dbx-form-info.field.component-CBAXCDdO.mjs +0 -50
- package/fesm2022/dereekb-dbx-form-info.field.component-CBAXCDdO.mjs.map +0 -1
- package/fesm2022/dereekb-dbx-form-info.wrapper.component-ChSBMxgm.mjs.map +0 -1
- package/fesm2022/dereekb-dbx-form-section.wrapper.component-BoR5-a8A.mjs.map +0 -1
- package/fesm2022/dereekb-dbx-form-style.wrapper.component-C4dVNND_.mjs.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { forwardRef, inject, input, Directive, effect,
|
|
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
4
|
import { DbxActionTransitionSafetyDirective, AbstractDialogDirective, 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';
|
|
@@ -167,26 +167,31 @@ class DbxActionFormDirective {
|
|
|
167
167
|
*
|
|
168
168
|
* Defaults to true.
|
|
169
169
|
*/
|
|
170
|
-
dbxActionFormDisabledOnWorking = input(true,
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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: "
|
|
306
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
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: "
|
|
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',
|
|
336
|
-
|
|
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: "
|
|
342
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
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: "
|
|
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: "
|
|
606
|
-
static ɵprov = i0.ɵɵ
|
|
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: "
|
|
609
|
-
type:
|
|
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,
|
|
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
|
-
},
|
|
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,
|
|
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: "
|
|
932
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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: "
|
|
1052
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
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,
|
|
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,
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
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,
|
|
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()),
|
|
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
|
-
},
|
|
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(),
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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: "
|
|
1312
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
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"] }]
|
|
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: "
|
|
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(
|
|
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(
|
|
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
|
-
},
|
|
1523
|
-
|
|
1524
|
-
static
|
|
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: "
|
|
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,8 +1602,8 @@ class DbxForgeActionDialogComponent extends AbstractDialogDirective {
|
|
|
1582
1602
|
data: config
|
|
1583
1603
|
});
|
|
1584
1604
|
}
|
|
1585
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1586
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
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: `
|
|
1587
1607
|
<dbx-dialog-content dbxAction [dbxActionHandler]="handleSubmitValue" class="dbx-dialog-content-with-header">
|
|
1588
1608
|
<h3 class="dbx-dialog-content-header">{{ header }}</h3>
|
|
1589
1609
|
<dbx-dialog-content-close (close)="close()"></dbx-dialog-content-close>
|
|
@@ -1592,9 +1612,9 @@ 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", "
|
|
1615
|
+
`, 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", "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: "
|
|
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: `
|
|
@@ -1607,7 +1627,6 @@ 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
1631
|
imports: [DbxDialogContentDirective, DbxActionModule, DbxButtonModule, DbxDialogContentCloseComponent, DbxForgeFormComponent, DbxFormSourceDirective, DbxActionFormDirective]
|
|
1613
1632
|
}]
|
|
@@ -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: "
|
|
1640
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
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: "
|
|
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(
|
|
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: "
|
|
1684
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
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: "
|
|
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: "
|
|
1730
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
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: "
|
|
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`
|
|
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
|
|
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,
|
|
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
|
-
|
|
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(
|
|
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: "
|
|
4602
|
-
static ɵprov = i0.ɵɵ
|
|
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: "
|
|
4605
|
-
type:
|
|
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(
|
|
4630
|
-
|
|
4631
|
-
|
|
4632
|
-
|
|
4633
|
-
|
|
4634
|
-
|
|
4635
|
-
|
|
4636
|
-
|
|
4637
|
-
|
|
4638
|
-
|
|
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,
|
|
4646
|
-
|
|
4647
|
-
|
|
4648
|
-
|
|
4649
|
-
|
|
4650
|
-
|
|
4651
|
-
|
|
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
|
-
},
|
|
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
|
-
},
|
|
4691
|
-
|
|
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
|
-
},
|
|
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
|
-
},
|
|
4700
|
-
|
|
4701
|
-
|
|
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
|
-
},
|
|
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
|
-
},
|
|
4716
|
-
|
|
4717
|
-
|
|
4718
|
-
|
|
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
|
-
},
|
|
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
|
-
},
|
|
4727
|
-
|
|
4728
|
-
|
|
4729
|
-
|
|
4730
|
-
|
|
4731
|
-
|
|
4732
|
-
|
|
4733
|
-
|
|
4734
|
-
|
|
4735
|
-
|
|
4736
|
-
|
|
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
|
-
},
|
|
4741
|
-
|
|
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(),
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
4994
|
+
}, /* @ts-ignore */
|
|
4995
|
+
...(ngDevMode ? [{ debugName: "isTimeMenuDisabledSignal" }] : /* istanbul ignore next */ []));
|
|
4948
4996
|
// ARIA
|
|
4949
|
-
hintIdSignal = computed(() => `${this.key()}-hint`,
|
|
4950
|
-
|
|
4951
|
-
|
|
4952
|
-
|
|
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
|
-
},
|
|
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,12 +5332,12 @@ 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: "
|
|
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 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]):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: "
|
|
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',
|
|
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
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 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"] }]
|
|
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 }] }] } });
|
|
@@ -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(
|
|
5338
|
-
|
|
5339
|
-
|
|
5340
|
-
|
|
5341
|
-
|
|
5342
|
-
|
|
5343
|
-
|
|
5344
|
-
|
|
5345
|
-
|
|
5346
|
-
|
|
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',
|
|
5356
|
-
|
|
5357
|
-
|
|
5358
|
-
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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() : []),
|
|
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`,
|
|
5373
|
-
|
|
5374
|
-
|
|
5375
|
-
|
|
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
|
-
},
|
|
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: "
|
|
5487
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
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: "
|
|
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',
|
|
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(
|
|
5570
|
-
|
|
5571
|
-
|
|
5572
|
-
|
|
5573
|
-
|
|
5574
|
-
|
|
5575
|
-
|
|
5576
|
-
|
|
5577
|
-
|
|
5578
|
-
|
|
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,
|
|
5585
|
-
|
|
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
|
-
},
|
|
5706
|
+
}, /* @ts-ignore */
|
|
5707
|
+
...(ngDevMode ? [{ debugName: "isRequiredSignal" }] : /* istanbul ignore next */ []));
|
|
5619
5708
|
isDisabled = dbxForgeFieldDisabled();
|
|
5620
|
-
valueModeSignal = computed(() => this.props()?.valueMode ?? DbxDateTimeValueMode.DATE,
|
|
5621
|
-
|
|
5622
|
-
|
|
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() : []),
|
|
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`,
|
|
5629
|
-
|
|
5630
|
-
|
|
5631
|
-
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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));
|
|
@@ -6019,17 +6119,17 @@ class DbxForgeFixedDateRangeFieldComponent {
|
|
|
6019
6119
|
// Field may not be ready
|
|
6020
6120
|
}
|
|
6021
6121
|
}
|
|
6022
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
6023
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
6122
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeFixedDateRangeFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6123
|
+
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
6124
|
{
|
|
6025
6125
|
provide: MAT_DATE_RANGE_SELECTION_STRATEGY,
|
|
6026
6126
|
useClass: forwardRef(() => DbxForgeFixedDateRangeFieldSelectionStrategy)
|
|
6027
6127
|
}
|
|
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"] }]
|
|
6128
|
+
], 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
6129
|
}
|
|
6030
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
6130
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeFixedDateRangeFieldComponent, decorators: [{
|
|
6031
6131
|
type: Component,
|
|
6032
|
-
args: [{ selector: 'dbx-forge-fixeddaterange-field',
|
|
6132
|
+
args: [{ selector: 'dbx-forge-fixeddaterange-field', imports: [MatDatepickerModule, MatFormFieldModule, ReactiveFormsModule, MatInputModule, MatError, NgClass], providers: [
|
|
6033
6133
|
{
|
|
6034
6134
|
provide: MAT_DATE_RANGE_SELECTION_STRATEGY,
|
|
6035
6135
|
useClass: forwardRef(() => DbxForgeFixedDateRangeFieldSelectionStrategy)
|
|
@@ -6085,10 +6185,10 @@ class DbxForgeFixedDateRangeFieldSelectionStrategy {
|
|
|
6085
6185
|
const year = date.getFullYear();
|
|
6086
6186
|
return this._dateAdapter.createDate(year, monthIndex, day);
|
|
6087
6187
|
}
|
|
6088
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
6089
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
6188
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeFixedDateRangeFieldSelectionStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
6189
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeFixedDateRangeFieldSelectionStrategy });
|
|
6090
6190
|
}
|
|
6091
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
6191
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeFixedDateRangeFieldSelectionStrategy, decorators: [{
|
|
6092
6192
|
type: Injectable
|
|
6093
6193
|
}] });
|
|
6094
6194
|
// MARK: Mapper
|
|
@@ -6182,7 +6282,8 @@ const DEFAULT_DURATION_PICKER_POPOVER_KEY = 'durationpicker';
|
|
|
6182
6282
|
* ```
|
|
6183
6283
|
*/
|
|
6184
6284
|
class DbxDurationPickerPopoverComponent extends AbstractPopoverDirective {
|
|
6185
|
-
durationData = signal(this.popover.data?.current ?? {},
|
|
6285
|
+
durationData = signal(this.popover.data?.current ?? {}, /* @ts-ignore */
|
|
6286
|
+
...(ngDevMode ? [{ debugName: "durationData" }] : /* istanbul ignore next */ []));
|
|
6186
6287
|
units = [...(this.popover.data?.units ?? ['d', 'h', 'min', 's'])].reverse();
|
|
6187
6288
|
_onChange = this.popover.data?.onChange;
|
|
6188
6289
|
_minMs = this.popover.data?.minMs;
|
|
@@ -6410,12 +6511,12 @@ class DbxDurationPickerPopoverComponent extends AbstractPopoverDirective {
|
|
|
6410
6511
|
}
|
|
6411
6512
|
return false;
|
|
6412
6513
|
}
|
|
6413
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
6414
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
6514
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxDurationPickerPopoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6515
|
+
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 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"] }] });
|
|
6415
6516
|
}
|
|
6416
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
6517
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxDurationPickerPopoverComponent, decorators: [{
|
|
6417
6518
|
type: Component,
|
|
6418
|
-
args: [{ imports: [MatIconModule, MatButtonModule],
|
|
6519
|
+
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 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" }]
|
|
6419
6520
|
}], ctorParameters: () => [] });
|
|
6420
6521
|
|
|
6421
6522
|
/**
|
|
@@ -6433,16 +6534,26 @@ class DbxForgeTimeDurationFieldComponent {
|
|
|
6433
6534
|
popoverService = inject(DbxPopoverService);
|
|
6434
6535
|
elementRef = inject((ElementRef));
|
|
6435
6536
|
// Standard ng-forge value field inputs
|
|
6436
|
-
field = input.required(
|
|
6437
|
-
|
|
6438
|
-
|
|
6439
|
-
|
|
6440
|
-
|
|
6441
|
-
|
|
6442
|
-
|
|
6443
|
-
|
|
6444
|
-
|
|
6445
|
-
|
|
6537
|
+
field = input.required(/* @ts-ignore */
|
|
6538
|
+
...(ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []));
|
|
6539
|
+
key = input.required(/* @ts-ignore */
|
|
6540
|
+
...(ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []));
|
|
6541
|
+
label = input(/* @ts-ignore */
|
|
6542
|
+
...(ngDevMode ? [undefined, { debugName: "label" }] : /* istanbul ignore next */ []));
|
|
6543
|
+
placeholder = input(/* @ts-ignore */
|
|
6544
|
+
...(ngDevMode ? [undefined, { debugName: "placeholder" }] : /* istanbul ignore next */ []));
|
|
6545
|
+
className = input('', /* @ts-ignore */
|
|
6546
|
+
...(ngDevMode ? [{ debugName: "className" }] : /* istanbul ignore next */ []));
|
|
6547
|
+
tabIndex = input(/* @ts-ignore */
|
|
6548
|
+
...(ngDevMode ? [undefined, { debugName: "tabIndex" }] : /* istanbul ignore next */ []));
|
|
6549
|
+
props = input(/* @ts-ignore */
|
|
6550
|
+
...(ngDevMode ? [undefined, { debugName: "props" }] : /* istanbul ignore next */ []));
|
|
6551
|
+
meta = input(/* @ts-ignore */
|
|
6552
|
+
...(ngDevMode ? [undefined, { debugName: "meta" }] : /* istanbul ignore next */ []));
|
|
6553
|
+
validationMessages = input(/* @ts-ignore */
|
|
6554
|
+
...(ngDevMode ? [undefined, { debugName: "validationMessages" }] : /* istanbul ignore next */ []));
|
|
6555
|
+
defaultValidationMessages = input(/* @ts-ignore */
|
|
6556
|
+
...(ngDevMode ? [undefined, { debugName: "defaultValidationMessages" }] : /* istanbul ignore next */ []));
|
|
6446
6557
|
/**
|
|
6447
6558
|
* Internal FormControl for the text input.
|
|
6448
6559
|
*/
|
|
@@ -6453,14 +6564,19 @@ class DbxForgeTimeDurationFieldComponent {
|
|
|
6453
6564
|
*/
|
|
6454
6565
|
_currentDurationData = {};
|
|
6455
6566
|
// Computed props
|
|
6456
|
-
effectiveAppearanceSignal = computed(() => this.props()?.appearance ?? this.materialConfig?.appearance ?? 'outline',
|
|
6457
|
-
|
|
6458
|
-
|
|
6459
|
-
|
|
6567
|
+
effectiveAppearanceSignal = computed(() => this.props()?.appearance ?? this.materialConfig?.appearance ?? 'outline', /* @ts-ignore */
|
|
6568
|
+
...(ngDevMode ? [{ debugName: "effectiveAppearanceSignal" }] : /* istanbul ignore next */ []));
|
|
6569
|
+
outputUnitSignal = computed(() => this.props()?.outputUnit ?? 'ms', /* @ts-ignore */
|
|
6570
|
+
...(ngDevMode ? [{ debugName: "outputUnitSignal" }] : /* istanbul ignore next */ []));
|
|
6571
|
+
valueModeSignal = computed(() => this.props()?.valueMode ?? 'number', /* @ts-ignore */
|
|
6572
|
+
...(ngDevMode ? [{ debugName: "valueModeSignal" }] : /* istanbul ignore next */ []));
|
|
6573
|
+
allowedUnitsSignal = computed(() => this.props()?.allowedUnits ?? ALL_TIME_UNITS, /* @ts-ignore */
|
|
6574
|
+
...(ngDevMode ? [{ debugName: "allowedUnitsSignal" }] : /* istanbul ignore next */ []));
|
|
6460
6575
|
pickerUnitsSignal = computed(() => {
|
|
6461
6576
|
const allowedUnits = this.allowedUnitsSignal();
|
|
6462
6577
|
return this.props()?.pickerUnits ?? allowedUnits.filter((u) => u !== 'ms');
|
|
6463
|
-
},
|
|
6578
|
+
}, /* @ts-ignore */
|
|
6579
|
+
...(ngDevMode ? [{ debugName: "pickerUnitsSignal" }] : /* istanbul ignore next */ []));
|
|
6464
6580
|
/**
|
|
6465
6581
|
* Units used for decomposing/displaying duration text.
|
|
6466
6582
|
*/
|
|
@@ -6470,18 +6586,24 @@ class DbxForgeTimeDurationFieldComponent {
|
|
|
6470
6586
|
units.push('ms');
|
|
6471
6587
|
}
|
|
6472
6588
|
return units;
|
|
6473
|
-
},
|
|
6589
|
+
}, /* @ts-ignore */
|
|
6590
|
+
...(ngDevMode ? [{ debugName: "displayUnitsSignal" }] : /* istanbul ignore next */ []));
|
|
6474
6591
|
// Disabled state
|
|
6475
6592
|
isDisabled = dbxForgeFieldDisabled();
|
|
6476
6593
|
// Error handling
|
|
6477
6594
|
resolvedErrors = createResolvedErrorsSignal(this.field, this.validationMessages, this.defaultValidationMessages);
|
|
6478
6595
|
showErrors = shouldShowErrors(this.field);
|
|
6479
|
-
errorsToDisplaySignal = computed(() => (this.showErrors() ? this.resolvedErrors() : []),
|
|
6596
|
+
errorsToDisplaySignal = computed(() => (this.showErrors() ? this.resolvedErrors() : []), /* @ts-ignore */
|
|
6597
|
+
...(ngDevMode ? [{ debugName: "errorsToDisplaySignal" }] : /* istanbul ignore next */ []));
|
|
6480
6598
|
// ARIA
|
|
6481
|
-
hintIdSignal = computed(() => `${this.key()}-hint`,
|
|
6482
|
-
|
|
6483
|
-
|
|
6484
|
-
|
|
6599
|
+
hintIdSignal = computed(() => `${this.key()}-hint`, /* @ts-ignore */
|
|
6600
|
+
...(ngDevMode ? [{ debugName: "hintIdSignal" }] : /* istanbul ignore next */ []));
|
|
6601
|
+
errorIdSignal = computed(() => `${this.key()}-error`, /* @ts-ignore */
|
|
6602
|
+
...(ngDevMode ? [{ debugName: "errorIdSignal" }] : /* istanbul ignore next */ []));
|
|
6603
|
+
ariaInvalidSignal = computed(() => (this.showErrors() ? 'true' : null), /* @ts-ignore */
|
|
6604
|
+
...(ngDevMode ? [{ debugName: "ariaInvalidSignal" }] : /* istanbul ignore next */ []));
|
|
6605
|
+
ariaRequiredSignal = computed(() => (this.field()().required() ? 'true' : null), /* @ts-ignore */
|
|
6606
|
+
...(ngDevMode ? [{ debugName: "ariaRequiredSignal" }] : /* istanbul ignore next */ []));
|
|
6485
6607
|
ariaDescribedBySignal = computed(() => {
|
|
6486
6608
|
const errorId = this.errorIdSignal();
|
|
6487
6609
|
const hintId = this.hintIdSignal();
|
|
@@ -6490,7 +6612,8 @@ class DbxForgeTimeDurationFieldComponent {
|
|
|
6490
6612
|
if (this.props()?.hint)
|
|
6491
6613
|
return hintId;
|
|
6492
6614
|
return null;
|
|
6493
|
-
},
|
|
6615
|
+
}, /* @ts-ignore */
|
|
6616
|
+
...(ngDevMode ? [{ debugName: "ariaDescribedBySignal" }] : /* istanbul ignore next */ []));
|
|
6494
6617
|
/**
|
|
6495
6618
|
* Flag to prevent feedback loops during sync.
|
|
6496
6619
|
*/
|
|
@@ -6651,12 +6774,12 @@ class DbxForgeTimeDurationFieldComponent {
|
|
|
6651
6774
|
}
|
|
6652
6775
|
return result;
|
|
6653
6776
|
}
|
|
6654
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
6655
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
6777
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeTimeDurationFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6778
|
+
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
6779
|
}
|
|
6657
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
6780
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeTimeDurationFieldComponent, decorators: [{
|
|
6658
6781
|
type: Component,
|
|
6659
|
-
args: [{ selector: 'dbx-forge-timeduration-field',
|
|
6782
|
+
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
6783
|
}], 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
6784
|
// MARK: Mapper
|
|
6662
6785
|
/**
|
|
@@ -6818,16 +6941,26 @@ class DbxForgePhoneFieldComponent {
|
|
|
6818
6941
|
destroyRef = inject(DestroyRef);
|
|
6819
6942
|
elementRef = inject((ElementRef));
|
|
6820
6943
|
// Standard ng-forge value field inputs
|
|
6821
|
-
field = input.required(
|
|
6822
|
-
|
|
6823
|
-
|
|
6824
|
-
|
|
6825
|
-
|
|
6826
|
-
|
|
6827
|
-
|
|
6828
|
-
|
|
6829
|
-
|
|
6830
|
-
|
|
6944
|
+
field = input.required(/* @ts-ignore */
|
|
6945
|
+
...(ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []));
|
|
6946
|
+
key = input.required(/* @ts-ignore */
|
|
6947
|
+
...(ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []));
|
|
6948
|
+
label = input(/* @ts-ignore */
|
|
6949
|
+
...(ngDevMode ? [undefined, { debugName: "label" }] : /* istanbul ignore next */ []));
|
|
6950
|
+
placeholder = input(/* @ts-ignore */
|
|
6951
|
+
...(ngDevMode ? [undefined, { debugName: "placeholder" }] : /* istanbul ignore next */ []));
|
|
6952
|
+
className = input('', /* @ts-ignore */
|
|
6953
|
+
...(ngDevMode ? [{ debugName: "className" }] : /* istanbul ignore next */ []));
|
|
6954
|
+
tabIndex = input(/* @ts-ignore */
|
|
6955
|
+
...(ngDevMode ? [undefined, { debugName: "tabIndex" }] : /* istanbul ignore next */ []));
|
|
6956
|
+
props = input(/* @ts-ignore */
|
|
6957
|
+
...(ngDevMode ? [undefined, { debugName: "props" }] : /* istanbul ignore next */ []));
|
|
6958
|
+
meta = input(/* @ts-ignore */
|
|
6959
|
+
...(ngDevMode ? [undefined, { debugName: "meta" }] : /* istanbul ignore next */ []));
|
|
6960
|
+
validationMessages = input(/* @ts-ignore */
|
|
6961
|
+
...(ngDevMode ? [undefined, { debugName: "validationMessages" }] : /* istanbul ignore next */ []));
|
|
6962
|
+
defaultValidationMessages = input(/* @ts-ignore */
|
|
6963
|
+
...(ngDevMode ? [undefined, { debugName: "defaultValidationMessages" }] : /* istanbul ignore next */ []));
|
|
6831
6964
|
/**
|
|
6832
6965
|
* Internal FormControl used to bridge ngx-mat-input-tel (reactive forms)
|
|
6833
6966
|
* with the ng-forge Signal Forms field tree.
|
|
@@ -6835,23 +6968,34 @@ class DbxForgePhoneFieldComponent {
|
|
|
6835
6968
|
phoneCtrl = new FormControl('');
|
|
6836
6969
|
extensionCtrl = new FormControl('', { validators: [isPhoneExtension()] });
|
|
6837
6970
|
// Computed props
|
|
6838
|
-
preferredCountriesSignal = computed(() => this.props()?.preferredCountries ?? DEFAULT_FORGE_PREFERRED_COUNTRIES,
|
|
6839
|
-
|
|
6840
|
-
|
|
6841
|
-
|
|
6842
|
-
|
|
6843
|
-
|
|
6971
|
+
preferredCountriesSignal = computed(() => this.props()?.preferredCountries ?? DEFAULT_FORGE_PREFERRED_COUNTRIES, /* @ts-ignore */
|
|
6972
|
+
...(ngDevMode ? [{ debugName: "preferredCountriesSignal" }] : /* istanbul ignore next */ []));
|
|
6973
|
+
onlyCountriesSignal = computed(() => this.props()?.onlyCountries ?? [], /* @ts-ignore */
|
|
6974
|
+
...(ngDevMode ? [{ debugName: "onlyCountriesSignal" }] : /* istanbul ignore next */ []));
|
|
6975
|
+
enableSearchSignal = computed(() => this.props()?.enableSearch ?? true, /* @ts-ignore */
|
|
6976
|
+
...(ngDevMode ? [{ debugName: "enableSearchSignal" }] : /* istanbul ignore next */ []));
|
|
6977
|
+
allowExtensionSignal = computed(() => this.props()?.allowExtension ?? false, /* @ts-ignore */
|
|
6978
|
+
...(ngDevMode ? [{ debugName: "allowExtensionSignal" }] : /* istanbul ignore next */ []));
|
|
6979
|
+
effectiveAppearanceSignal = computed(() => this.props()?.appearance ?? this.materialConfig?.appearance ?? 'outline', /* @ts-ignore */
|
|
6980
|
+
...(ngDevMode ? [{ debugName: "effectiveAppearanceSignal" }] : /* istanbul ignore next */ []));
|
|
6981
|
+
effectiveAutocompleteSignal = computed(() => this.props()?.autocomplete ?? 'off', /* @ts-ignore */
|
|
6982
|
+
...(ngDevMode ? [{ debugName: "effectiveAutocompleteSignal" }] : /* istanbul ignore next */ []));
|
|
6844
6983
|
// Disabled state
|
|
6845
6984
|
isDisabled = dbxForgeFieldDisabled();
|
|
6846
6985
|
// Error handling
|
|
6847
6986
|
resolvedErrors = createResolvedErrorsSignal(this.field, this.validationMessages, this.defaultValidationMessages);
|
|
6848
6987
|
showErrors = shouldShowErrors(this.field);
|
|
6849
|
-
errorsToDisplaySignal = computed(() => (this.showErrors() ? this.resolvedErrors() : []),
|
|
6988
|
+
errorsToDisplaySignal = computed(() => (this.showErrors() ? this.resolvedErrors() : []), /* @ts-ignore */
|
|
6989
|
+
...(ngDevMode ? [{ debugName: "errorsToDisplaySignal" }] : /* istanbul ignore next */ []));
|
|
6850
6990
|
// ARIA
|
|
6851
|
-
hintIdSignal = computed(() => `${this.key()}-hint`,
|
|
6852
|
-
|
|
6853
|
-
|
|
6854
|
-
|
|
6991
|
+
hintIdSignal = computed(() => `${this.key()}-hint`, /* @ts-ignore */
|
|
6992
|
+
...(ngDevMode ? [{ debugName: "hintIdSignal" }] : /* istanbul ignore next */ []));
|
|
6993
|
+
errorIdSignal = computed(() => `${this.key()}-error`, /* @ts-ignore */
|
|
6994
|
+
...(ngDevMode ? [{ debugName: "errorIdSignal" }] : /* istanbul ignore next */ []));
|
|
6995
|
+
ariaInvalidSignal = computed(() => (this.showErrors() ? 'true' : null), /* @ts-ignore */
|
|
6996
|
+
...(ngDevMode ? [{ debugName: "ariaInvalidSignal" }] : /* istanbul ignore next */ []));
|
|
6997
|
+
ariaRequiredSignal = computed(() => (this.field()().required() ? 'true' : null), /* @ts-ignore */
|
|
6998
|
+
...(ngDevMode ? [{ debugName: "ariaRequiredSignal" }] : /* istanbul ignore next */ []));
|
|
6855
6999
|
ariaDescribedBySignal = computed(() => {
|
|
6856
7000
|
const errorId = this.errorIdSignal();
|
|
6857
7001
|
const hintId = this.hintIdSignal();
|
|
@@ -6860,7 +7004,8 @@ class DbxForgePhoneFieldComponent {
|
|
|
6860
7004
|
if (this.props()?.hint)
|
|
6861
7005
|
return hintId;
|
|
6862
7006
|
return null;
|
|
6863
|
-
},
|
|
7007
|
+
}, /* @ts-ignore */
|
|
7008
|
+
...(ngDevMode ? [{ debugName: "ariaDescribedBySignal" }] : /* istanbul ignore next */ []));
|
|
6864
7009
|
/**
|
|
6865
7010
|
* Flag to prevent feedback loops during sync.
|
|
6866
7011
|
*/
|
|
@@ -6935,12 +7080,12 @@ class DbxForgePhoneFieldComponent {
|
|
|
6935
7080
|
}
|
|
6936
7081
|
this._syncing = false;
|
|
6937
7082
|
}
|
|
6938
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
6939
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
7083
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgePhoneFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7084
|
+
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
7085
|
}
|
|
6941
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
7086
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgePhoneFieldComponent, decorators: [{
|
|
6942
7087
|
type: Component,
|
|
6943
|
-
args: [{ selector: 'dbx-forge-phone-field',
|
|
7088
|
+
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
7089
|
}], 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
7090
|
// MARK: Mapper
|
|
6946
7091
|
/**
|
|
@@ -7022,42 +7167,63 @@ class DbxForgeValueSelectionFieldComponent {
|
|
|
7022
7167
|
materialConfig = inject(MATERIAL_CONFIG, { optional: true });
|
|
7023
7168
|
elementRef = inject((ElementRef));
|
|
7024
7169
|
// ng-forge ValueFieldComponent inputs
|
|
7025
|
-
field = input.required(
|
|
7026
|
-
|
|
7027
|
-
|
|
7028
|
-
|
|
7029
|
-
|
|
7030
|
-
|
|
7031
|
-
|
|
7032
|
-
|
|
7033
|
-
|
|
7034
|
-
|
|
7170
|
+
field = input.required(/* @ts-ignore */
|
|
7171
|
+
...(ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []));
|
|
7172
|
+
key = input.required(/* @ts-ignore */
|
|
7173
|
+
...(ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []));
|
|
7174
|
+
label = input(/* @ts-ignore */
|
|
7175
|
+
...(ngDevMode ? [undefined, { debugName: "label" }] : /* istanbul ignore next */ []));
|
|
7176
|
+
placeholder = input(/* @ts-ignore */
|
|
7177
|
+
...(ngDevMode ? [undefined, { debugName: "placeholder" }] : /* istanbul ignore next */ []));
|
|
7178
|
+
className = input('', /* @ts-ignore */
|
|
7179
|
+
...(ngDevMode ? [{ debugName: "className" }] : /* istanbul ignore next */ []));
|
|
7180
|
+
tabIndex = input(/* @ts-ignore */
|
|
7181
|
+
...(ngDevMode ? [undefined, { debugName: "tabIndex" }] : /* istanbul ignore next */ []));
|
|
7182
|
+
props = input(/* @ts-ignore */
|
|
7183
|
+
...(ngDevMode ? [undefined, { debugName: "props" }] : /* istanbul ignore next */ []));
|
|
7184
|
+
meta = input(/* @ts-ignore */
|
|
7185
|
+
...(ngDevMode ? [undefined, { debugName: "meta" }] : /* istanbul ignore next */ []));
|
|
7186
|
+
validationMessages = input(/* @ts-ignore */
|
|
7187
|
+
...(ngDevMode ? [undefined, { debugName: "validationMessages" }] : /* istanbul ignore next */ []));
|
|
7188
|
+
defaultValidationMessages = input(/* @ts-ignore */
|
|
7189
|
+
...(ngDevMode ? [undefined, { debugName: "defaultValidationMessages" }] : /* istanbul ignore next */ []));
|
|
7035
7190
|
// Derived signals
|
|
7036
|
-
addClearOptionSignal = computed(() => this.props()?.addClearOption,
|
|
7191
|
+
addClearOptionSignal = computed(() => this.props()?.addClearOption, /* @ts-ignore */
|
|
7192
|
+
...(ngDevMode ? [{ debugName: "addClearOptionSignal" }] : /* istanbul ignore next */ []));
|
|
7037
7193
|
addClearOption$ = toObservable(this.addClearOptionSignal).pipe(distinctUntilChanged());
|
|
7038
|
-
inputOptionsSignal = computed(() => this.props()?.options,
|
|
7194
|
+
inputOptionsSignal = computed(() => this.props()?.options, /* @ts-ignore */
|
|
7195
|
+
...(ngDevMode ? [{ debugName: "inputOptionsSignal" }] : /* istanbul ignore next */ []));
|
|
7039
7196
|
inputOptions$ = toObservable(this.inputOptionsSignal).pipe(maybeValueFromObservableOrValue());
|
|
7040
7197
|
resolvedOptions$ = combineLatest([this.inputOptions$, this.addClearOption$]).pipe(map(([options, addClearOption]) => resolveForgeSelectionOptions(options ?? [], addClearOption ?? false)));
|
|
7041
7198
|
resolvedOptionsSignal = toSignal(this.resolvedOptions$);
|
|
7042
|
-
multipleSignal = computed(() => this.props()?.multiple ?? false,
|
|
7043
|
-
|
|
7044
|
-
|
|
7045
|
-
|
|
7199
|
+
multipleSignal = computed(() => this.props()?.multiple ?? false, /* @ts-ignore */
|
|
7200
|
+
...(ngDevMode ? [{ debugName: "multipleSignal" }] : /* istanbul ignore next */ []));
|
|
7201
|
+
effectiveAppearanceSignal = computed(() => this.props()?.appearance ?? this.materialConfig?.appearance ?? 'outline', /* @ts-ignore */
|
|
7202
|
+
...(ngDevMode ? [{ debugName: "effectiveAppearanceSignal" }] : /* istanbul ignore next */ []));
|
|
7203
|
+
effectiveSubscriptSizingSignal = computed(() => this.props()?.subscriptSizing ?? this.materialConfig?.subscriptSizing ?? 'dynamic', /* @ts-ignore */
|
|
7204
|
+
...(ngDevMode ? [{ debugName: "effectiveSubscriptSizingSignal" }] : /* istanbul ignore next */ []));
|
|
7205
|
+
compareWithSignal = computed(() => this.props()?.compareWith ?? Object.is, /* @ts-ignore */
|
|
7206
|
+
...(ngDevMode ? [{ debugName: "compareWithSignal" }] : /* istanbul ignore next */ []));
|
|
7046
7207
|
// Error display
|
|
7047
7208
|
resolvedErrors = createResolvedErrorsSignal(this.field, this.validationMessages, this.defaultValidationMessages);
|
|
7048
7209
|
showErrors = shouldShowErrors(this.field);
|
|
7049
|
-
errorsToDisplaySignal = computed(() => (this.showErrors() ? this.resolvedErrors() : []),
|
|
7210
|
+
errorsToDisplaySignal = computed(() => (this.showErrors() ? this.resolvedErrors() : []), /* @ts-ignore */
|
|
7211
|
+
...(ngDevMode ? [{ debugName: "errorsToDisplaySignal" }] : /* istanbul ignore next */ []));
|
|
7050
7212
|
/**
|
|
7051
7213
|
* Unique ID for the hint element
|
|
7052
7214
|
*/
|
|
7053
|
-
hintIdSignal = computed(() => `${this.key()}-hint`,
|
|
7215
|
+
hintIdSignal = computed(() => `${this.key()}-hint`, /* @ts-ignore */
|
|
7216
|
+
...(ngDevMode ? [{ debugName: "hintIdSignal" }] : /* istanbul ignore next */ []));
|
|
7054
7217
|
/**
|
|
7055
7218
|
* Base ID for error elements
|
|
7056
7219
|
*/
|
|
7057
|
-
errorIdSignal = computed(() => `${this.key()}-error`,
|
|
7220
|
+
errorIdSignal = computed(() => `${this.key()}-error`, /* @ts-ignore */
|
|
7221
|
+
...(ngDevMode ? [{ debugName: "errorIdSignal" }] : /* istanbul ignore next */ []));
|
|
7058
7222
|
// Accessibility
|
|
7059
|
-
ariaInvalidSignal = computed(() => (this.showErrors() ? 'true' : null),
|
|
7060
|
-
|
|
7223
|
+
ariaInvalidSignal = computed(() => (this.showErrors() ? 'true' : null), /* @ts-ignore */
|
|
7224
|
+
...(ngDevMode ? [{ debugName: "ariaInvalidSignal" }] : /* istanbul ignore next */ []));
|
|
7225
|
+
ariaRequiredSignal = computed(() => (this.field()().required() ? 'true' : null), /* @ts-ignore */
|
|
7226
|
+
...(ngDevMode ? [{ debugName: "ariaRequiredSignal" }] : /* istanbul ignore next */ []));
|
|
7061
7227
|
ariaDescribedBySignal = computed(() => {
|
|
7062
7228
|
const errorId = this.errorIdSignal();
|
|
7063
7229
|
const hintId = this.hintIdSignal();
|
|
@@ -7066,16 +7232,17 @@ class DbxForgeValueSelectionFieldComponent {
|
|
|
7066
7232
|
if (this.props()?.hint)
|
|
7067
7233
|
return hintId;
|
|
7068
7234
|
return null;
|
|
7069
|
-
},
|
|
7235
|
+
}, /* @ts-ignore */
|
|
7236
|
+
...(ngDevMode ? [{ debugName: "ariaDescribedBySignal" }] : /* istanbul ignore next */ []));
|
|
7070
7237
|
constructor() {
|
|
7071
7238
|
setupMetaTracking(this.elementRef, this.meta, { selector: 'mat-select' });
|
|
7072
7239
|
}
|
|
7073
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
7074
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
7240
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeValueSelectionFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7241
|
+
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
7242
|
}
|
|
7076
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
7243
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeValueSelectionFieldComponent, decorators: [{
|
|
7077
7244
|
type: Component,
|
|
7078
|
-
args: [{ selector: 'dbx-forge-value-selection-field', imports: [MatFormField, MatLabel, MatSelect, MatOption, MatHint, FormField, MatError, DynamicTextPipe, AsyncPipe],
|
|
7245
|
+
args: [{ selector: 'dbx-forge-value-selection-field', imports: [MatFormField, MatLabel, MatSelect, MatOption, MatHint, FormField, MatError, DynamicTextPipe, AsyncPipe], host: {
|
|
7079
7246
|
'[id]': '`${key()}`',
|
|
7080
7247
|
'[attr.data-testid]': 'key()',
|
|
7081
7248
|
'[class]': 'className()',
|
|
@@ -7133,7 +7300,8 @@ const DBX_SEARCHABLE_FIELD_COMPONENT_DATA_TOKEN = new InjectionToken('DbxSearcha
|
|
|
7133
7300
|
* value data via {@link DBX_SEARCHABLE_FIELD_COMPONENT_DATA_TOKEN}.
|
|
7134
7301
|
*/
|
|
7135
7302
|
class DbxSearchableFieldAutocompleteItemComponent {
|
|
7136
|
-
displayValue = input.required(
|
|
7303
|
+
displayValue = input.required(/* @ts-ignore */
|
|
7304
|
+
...(ngDevMode ? [{ debugName: "displayValue" }] : /* istanbul ignore next */ []));
|
|
7137
7305
|
configSignal = computed(() => {
|
|
7138
7306
|
const displayValue = this.displayValue();
|
|
7139
7307
|
const config = {
|
|
@@ -7149,16 +7317,18 @@ class DbxSearchableFieldAutocompleteItemComponent {
|
|
|
7149
7317
|
], displayValue.display.providers)
|
|
7150
7318
|
};
|
|
7151
7319
|
return config;
|
|
7152
|
-
},
|
|
7153
|
-
|
|
7154
|
-
|
|
7155
|
-
|
|
7320
|
+
}, /* @ts-ignore */
|
|
7321
|
+
...(ngDevMode ? [{ debugName: "configSignal" }] : /* istanbul ignore next */ []));
|
|
7322
|
+
anchorSignal = computed(() => this.displayValue().anchor, /* @ts-ignore */
|
|
7323
|
+
...(ngDevMode ? [{ debugName: "anchorSignal" }] : /* istanbul ignore next */ []));
|
|
7324
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxSearchableFieldAutocompleteItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7325
|
+
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
7326
|
<dbx-anchor [block]="true" [anchor]="anchorSignal()">
|
|
7157
7327
|
<dbx-injection [config]="configSignal()"></dbx-injection>
|
|
7158
7328
|
</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"] }]
|
|
7329
|
+
`, 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
7330
|
}
|
|
7161
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
7331
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxSearchableFieldAutocompleteItemComponent, decorators: [{
|
|
7162
7332
|
type: Component,
|
|
7163
7333
|
args: [{
|
|
7164
7334
|
selector: 'dbx-searchable-field-autocomplete-item',
|
|
@@ -7167,9 +7337,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
|
|
|
7167
7337
|
<dbx-injection [config]="configSignal()"></dbx-injection>
|
|
7168
7338
|
</dbx-anchor>
|
|
7169
7339
|
`,
|
|
7170
|
-
imports: [DbxAnchorComponent, DbxInjectionComponent]
|
|
7171
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
7172
|
-
standalone: true
|
|
7340
|
+
imports: [DbxAnchorComponent, DbxInjectionComponent]
|
|
7173
7341
|
}]
|
|
7174
7342
|
}], propDecorators: { displayValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "displayValue", required: true }] }] } });
|
|
7175
7343
|
// MARK: Default
|
|
@@ -7181,10 +7349,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
|
|
|
7181
7349
|
*/
|
|
7182
7350
|
class AbstractDbxSearchableFieldDisplayDirective {
|
|
7183
7351
|
displayValue = inject(DBX_SEARCHABLE_FIELD_COMPONENT_DATA_TOKEN);
|
|
7184
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
7185
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
7352
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: AbstractDbxSearchableFieldDisplayDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
7353
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.4", type: AbstractDbxSearchableFieldDisplayDirective, isStandalone: true, ngImport: i0 });
|
|
7186
7354
|
}
|
|
7187
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
7355
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: AbstractDbxSearchableFieldDisplayDirective, decorators: [{
|
|
7188
7356
|
type: Directive
|
|
7189
7357
|
}] });
|
|
7190
7358
|
/**
|
|
@@ -7194,8 +7362,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
|
|
|
7194
7362
|
*/
|
|
7195
7363
|
class DbxDefaultSearchableFieldDisplayComponent extends AbstractDbxSearchableFieldDisplayDirective {
|
|
7196
7364
|
icon = this.displayValue.icon;
|
|
7197
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
7198
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
7365
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxDefaultSearchableFieldDisplayComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
7366
|
+
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
7367
|
<div class="dbx-default-searchable-field-display dbx-flex-bar">
|
|
7200
7368
|
@if (icon) {
|
|
7201
7369
|
<mat-icon class="dbx-icon-spacer">{{ icon }}</mat-icon>
|
|
@@ -7205,9 +7373,9 @@ class DbxDefaultSearchableFieldDisplayComponent extends AbstractDbxSearchableFie
|
|
|
7205
7373
|
<span class="dbx-chip-sublabel">({{ displayValue.sublabel }})</span>
|
|
7206
7374
|
}
|
|
7207
7375
|
</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"] }]
|
|
7376
|
+
`, 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
7377
|
}
|
|
7210
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
7378
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxDefaultSearchableFieldDisplayComponent, decorators: [{
|
|
7211
7379
|
type: Component,
|
|
7212
7380
|
args: [{
|
|
7213
7381
|
selector: 'dbx-default-searchable-field-display',
|
|
@@ -7222,9 +7390,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
|
|
|
7222
7390
|
}
|
|
7223
7391
|
</div>
|
|
7224
7392
|
`,
|
|
7225
|
-
imports: [MatIconModule]
|
|
7226
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
7227
|
-
standalone: true
|
|
7393
|
+
imports: [MatIconModule]
|
|
7228
7394
|
}]
|
|
7229
7395
|
}] });
|
|
7230
7396
|
|
|
@@ -7241,15 +7407,24 @@ const DEFAULT_SEARCHABLE_FIELD_DISPLAY = {
|
|
|
7241
7407
|
*/
|
|
7242
7408
|
class AbstractForgeSearchableFieldDirective {
|
|
7243
7409
|
// MARK: ng-forge ValueFieldComponent Inputs
|
|
7244
|
-
key = input.required(
|
|
7245
|
-
|
|
7246
|
-
|
|
7247
|
-
|
|
7248
|
-
|
|
7249
|
-
|
|
7250
|
-
|
|
7251
|
-
|
|
7252
|
-
|
|
7410
|
+
key = input.required(/* @ts-ignore */
|
|
7411
|
+
...(ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []));
|
|
7412
|
+
label = input(/* @ts-ignore */
|
|
7413
|
+
...(ngDevMode ? [undefined, { debugName: "label" }] : /* istanbul ignore next */ []));
|
|
7414
|
+
placeholder = input(/* @ts-ignore */
|
|
7415
|
+
...(ngDevMode ? [undefined, { debugName: "placeholder" }] : /* istanbul ignore next */ []));
|
|
7416
|
+
className = input('', /* @ts-ignore */
|
|
7417
|
+
...(ngDevMode ? [{ debugName: "className" }] : /* istanbul ignore next */ []));
|
|
7418
|
+
tabIndex = input(/* @ts-ignore */
|
|
7419
|
+
...(ngDevMode ? [undefined, { debugName: "tabIndex" }] : /* istanbul ignore next */ []));
|
|
7420
|
+
props = input(/* @ts-ignore */
|
|
7421
|
+
...(ngDevMode ? [undefined, { debugName: "props" }] : /* istanbul ignore next */ []));
|
|
7422
|
+
meta = input(/* @ts-ignore */
|
|
7423
|
+
...(ngDevMode ? [undefined, { debugName: "meta" }] : /* istanbul ignore next */ []));
|
|
7424
|
+
validationMessages = input(/* @ts-ignore */
|
|
7425
|
+
...(ngDevMode ? [undefined, { debugName: "validationMessages" }] : /* istanbul ignore next */ []));
|
|
7426
|
+
defaultValidationMessages = input(/* @ts-ignore */
|
|
7427
|
+
...(ngDevMode ? [undefined, { debugName: "defaultValidationMessages" }] : /* istanbul ignore next */ []));
|
|
7253
7428
|
inputCtrl = new FormControl('');
|
|
7254
7429
|
_clearDisplayHashMapSub = cleanSubscription();
|
|
7255
7430
|
_displayHashMap = completeOnDestroy(new BehaviorSubject(new Map()));
|
|
@@ -7260,18 +7435,23 @@ class AbstractForgeSearchableFieldDirective {
|
|
|
7260
7435
|
labelSignal = computed(() => {
|
|
7261
7436
|
const l = this.label();
|
|
7262
7437
|
return typeof l === 'string' ? l : undefined;
|
|
7263
|
-
},
|
|
7264
|
-
|
|
7438
|
+
}, /* @ts-ignore */
|
|
7439
|
+
...(ngDevMode ? [{ debugName: "labelSignal" }] : /* istanbul ignore next */ []));
|
|
7440
|
+
hintSignal = computed(() => this.props()?.hint, /* @ts-ignore */
|
|
7441
|
+
...(ngDevMode ? [{ debugName: "hintSignal" }] : /* istanbul ignore next */ []));
|
|
7265
7442
|
// ARIA IDs
|
|
7266
|
-
hintIdSignal = computed(() => `${this.key()}-hint`,
|
|
7267
|
-
|
|
7443
|
+
hintIdSignal = computed(() => `${this.key()}-hint`, /* @ts-ignore */
|
|
7444
|
+
...(ngDevMode ? [{ debugName: "hintIdSignal" }] : /* istanbul ignore next */ []));
|
|
7445
|
+
errorIdSignal = computed(() => `${this.key()}-error`, /* @ts-ignore */
|
|
7446
|
+
...(ngDevMode ? [{ debugName: "errorIdSignal" }] : /* istanbul ignore next */ []));
|
|
7268
7447
|
searchInputPlaceholderSignal = computed(() => {
|
|
7269
7448
|
const p = this.props();
|
|
7270
7449
|
const placeholderValue = this.placeholder();
|
|
7271
7450
|
const searchOnEmpty = p?.searchOnEmptyText ?? false;
|
|
7272
7451
|
const placeholder = typeof placeholderValue === 'string' ? placeholderValue : undefined;
|
|
7273
7452
|
return placeholder || (searchOnEmpty ? '' : DEFAULT_SEARCH_INPUT_PLACEHOLDER);
|
|
7274
|
-
},
|
|
7453
|
+
}, /* @ts-ignore */
|
|
7454
|
+
...(ngDevMode ? [{ debugName: "searchInputPlaceholderSignal" }] : /* istanbul ignore next */ []));
|
|
7275
7455
|
// MARK: Search Results
|
|
7276
7456
|
searchResultsState$ = this.inputValueString$.pipe(switchMap((text) => {
|
|
7277
7457
|
const p = this.props();
|
|
@@ -7351,10 +7531,10 @@ class AbstractForgeSearchableFieldDirective {
|
|
|
7351
7531
|
return obs;
|
|
7352
7532
|
}));
|
|
7353
7533
|
}
|
|
7354
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
7355
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
7534
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: AbstractForgeSearchableFieldDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
7535
|
+
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
7536
|
}
|
|
7357
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
7537
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: AbstractForgeSearchableFieldDirective, decorators: [{
|
|
7358
7538
|
type: Directive
|
|
7359
7539
|
}], 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
7540
|
|
|
@@ -7468,8 +7648,10 @@ function dbxForgeSearchableStringChipField(config) {
|
|
|
7468
7648
|
*/
|
|
7469
7649
|
class DbxForgeSearchableTextFieldComponent extends AbstractForgeSearchableFieldDirective {
|
|
7470
7650
|
elementRef = inject((ElementRef));
|
|
7471
|
-
field = input.required(
|
|
7472
|
-
|
|
7651
|
+
field = input.required(/* @ts-ignore */
|
|
7652
|
+
...(ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []));
|
|
7653
|
+
textInputRef = viewChild('textInput', /* @ts-ignore */
|
|
7654
|
+
...(ngDevMode ? [{ debugName: "textInputRef" }] : /* istanbul ignore next */ []));
|
|
7473
7655
|
_singleValueSyncSub = cleanSubscription();
|
|
7474
7656
|
_valuesSubject = completeOnDestroy(new BehaviorSubject([]));
|
|
7475
7657
|
// Disabled state
|
|
@@ -7477,42 +7659,52 @@ class DbxForgeSearchableTextFieldComponent extends AbstractForgeSearchableFieldD
|
|
|
7477
7659
|
// Error handling
|
|
7478
7660
|
resolvedErrors = createResolvedErrorsSignal(this.field, this.validationMessages, this.defaultValidationMessages);
|
|
7479
7661
|
showErrors = shouldShowErrors(this.field);
|
|
7480
|
-
errorsToDisplaySignal = computed(() => (this.showErrors() ? this.resolvedErrors() : []),
|
|
7662
|
+
errorsToDisplaySignal = computed(() => (this.showErrors() ? this.resolvedErrors() : []), /* @ts-ignore */
|
|
7663
|
+
...(ngDevMode ? [{ debugName: "errorsToDisplaySignal" }] : /* istanbul ignore next */ []));
|
|
7481
7664
|
// ARIA
|
|
7482
|
-
ariaInvalidSignal = computed(() => (this.showErrors() ? 'true' : null),
|
|
7665
|
+
ariaInvalidSignal = computed(() => (this.showErrors() ? 'true' : null), /* @ts-ignore */
|
|
7666
|
+
...(ngDevMode ? [{ debugName: "ariaInvalidSignal" }] : /* istanbul ignore next */ []));
|
|
7483
7667
|
ariaDescribedBySignal = computed(() => {
|
|
7484
7668
|
if (this.errorsToDisplaySignal().length > 0)
|
|
7485
7669
|
return this.errorIdSignal();
|
|
7486
7670
|
if (this.props()?.hint)
|
|
7487
7671
|
return this.hintIdSignal();
|
|
7488
7672
|
return null;
|
|
7489
|
-
},
|
|
7490
|
-
|
|
7491
|
-
|
|
7673
|
+
}, /* @ts-ignore */
|
|
7674
|
+
...(ngDevMode ? [{ debugName: "ariaDescribedBySignal" }] : /* istanbul ignore next */ []));
|
|
7675
|
+
showClearValueSignal = computed(() => this.props()?.showClearValue ?? true, /* @ts-ignore */
|
|
7676
|
+
...(ngDevMode ? [{ debugName: "showClearValueSignal" }] : /* istanbul ignore next */ []));
|
|
7677
|
+
searchLabelSignal = computed(() => this.props()?.searchLabel ?? 'Search', /* @ts-ignore */
|
|
7678
|
+
...(ngDevMode ? [{ debugName: "searchLabelSignal" }] : /* istanbul ignore next */ []));
|
|
7492
7679
|
fieldValueSignal = computed(() => {
|
|
7493
7680
|
const fieldGetter = this.field();
|
|
7494
7681
|
const fieldState = typeof fieldGetter === 'function' ? fieldGetter() : undefined;
|
|
7495
7682
|
return fieldState?.value?.();
|
|
7496
|
-
},
|
|
7683
|
+
}, /* @ts-ignore */
|
|
7684
|
+
...(ngDevMode ? [{ debugName: "fieldValueSignal" }] : /* istanbul ignore next */ []));
|
|
7497
7685
|
displayValues$ = this._valuesSubject.pipe(switchMap((values) => this._loadDisplayValuesForValues(values)), map((x) => x?.value ?? []), shareReplay(1));
|
|
7498
7686
|
selectedDisplayValue$ = this.displayValues$.pipe(map((x) => x[0]), shareReplay(1));
|
|
7499
7687
|
selectedDisplayValueSignal = toSignal(this.selectedDisplayValue$);
|
|
7500
|
-
hasValueSignal = computed(() => Boolean(this.selectedDisplayValueSignal()),
|
|
7688
|
+
hasValueSignal = computed(() => Boolean(this.selectedDisplayValueSignal()), /* @ts-ignore */
|
|
7689
|
+
...(ngDevMode ? [{ debugName: "hasValueSignal" }] : /* istanbul ignore next */ []));
|
|
7501
7690
|
showSelectedDisplayValueSignal = computed(() => {
|
|
7502
7691
|
const hasValue = this.hasValueSignal();
|
|
7503
7692
|
const p = this.props();
|
|
7504
7693
|
const showSelected = p?.showSelectedValue ?? !(p?.allowStringValues ?? false);
|
|
7505
7694
|
return showSelected && hasValue;
|
|
7506
|
-
},
|
|
7695
|
+
}, /* @ts-ignore */
|
|
7696
|
+
...(ngDevMode ? [{ debugName: "showSelectedDisplayValueSignal" }] : /* istanbul ignore next */ []));
|
|
7507
7697
|
// Disabled state propagation
|
|
7508
7698
|
_disabledEffect = effect(() => {
|
|
7509
7699
|
toggleDisableFormControl(this.inputCtrl, this.isDisabled());
|
|
7510
|
-
},
|
|
7700
|
+
}, /* @ts-ignore */
|
|
7701
|
+
...(ngDevMode ? [{ debugName: "_disabledEffect" }] : /* istanbul ignore next */ []));
|
|
7511
7702
|
_syncFieldValueEffect = effect(() => {
|
|
7512
7703
|
const fieldValue = this.fieldValueSignal();
|
|
7513
7704
|
const values = fieldValue != null && fieldValue !== '' ? [fieldValue] : [];
|
|
7514
7705
|
this._valuesSubject.next(values);
|
|
7515
|
-
},
|
|
7706
|
+
}, /* @ts-ignore */
|
|
7707
|
+
...(ngDevMode ? [{ debugName: "_syncFieldValueEffect" }] : /* istanbul ignore next */ []));
|
|
7516
7708
|
constructor() {
|
|
7517
7709
|
super();
|
|
7518
7710
|
setupMetaTracking(this.elementRef, this.meta, { selector: 'input' });
|
|
@@ -7557,12 +7749,12 @@ class DbxForgeSearchableTextFieldComponent extends AbstractForgeSearchableFieldD
|
|
|
7557
7749
|
fieldState.value.set(value ?? null);
|
|
7558
7750
|
}
|
|
7559
7751
|
}
|
|
7560
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
7561
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
7752
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeSearchableTextFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7753
|
+
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
7754
|
}
|
|
7563
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
7755
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeSearchableTextFieldComponent, decorators: [{
|
|
7564
7756
|
type: Component,
|
|
7565
|
-
args: [{ selector: 'dbx-forge-searchable-text-field', imports: [FormsModule, ReactiveFormsModule, MatAutocompleteModule, MatOptionModule, MatIconModule, DbxSearchableFieldAutocompleteItemComponent],
|
|
7757
|
+
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
7758
|
}], ctorParameters: () => [], propDecorators: { field: [{ type: i0.Input, args: [{ isSignal: true, alias: "field", required: true }] }], textInputRef: [{ type: i0.ViewChild, args: ['textInput', { isSignal: true }] }] } });
|
|
7567
7759
|
|
|
7568
7760
|
var searchableText_field_component = /*#__PURE__*/Object.freeze({
|
|
@@ -7578,23 +7770,27 @@ var searchableText_field_component = /*#__PURE__*/Object.freeze({
|
|
|
7578
7770
|
*/
|
|
7579
7771
|
class DbxForgeSearchableChipFieldComponent extends AbstractForgeSearchableFieldDirective {
|
|
7580
7772
|
elementRef = inject((ElementRef));
|
|
7581
|
-
field = input.required(
|
|
7773
|
+
field = input.required(/* @ts-ignore */
|
|
7774
|
+
...(ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []));
|
|
7582
7775
|
separatorKeysCodes = [ENTER, COMMA];
|
|
7583
7776
|
// Disabled state
|
|
7584
7777
|
isDisabled = dbxForgeFieldDisabled();
|
|
7585
7778
|
// Error handling
|
|
7586
7779
|
resolvedErrors = createResolvedErrorsSignal(this.field, this.validationMessages, this.defaultValidationMessages);
|
|
7587
7780
|
showErrors = shouldShowErrors(this.field);
|
|
7588
|
-
errorsToDisplaySignal = computed(() => (this.showErrors() ? this.resolvedErrors() : []),
|
|
7781
|
+
errorsToDisplaySignal = computed(() => (this.showErrors() ? this.resolvedErrors() : []), /* @ts-ignore */
|
|
7782
|
+
...(ngDevMode ? [{ debugName: "errorsToDisplaySignal" }] : /* istanbul ignore next */ []));
|
|
7589
7783
|
// ARIA
|
|
7590
|
-
ariaInvalidSignal = computed(() => (this.showErrors() ? 'true' : null),
|
|
7784
|
+
ariaInvalidSignal = computed(() => (this.showErrors() ? 'true' : null), /* @ts-ignore */
|
|
7785
|
+
...(ngDevMode ? [{ debugName: "ariaInvalidSignal" }] : /* istanbul ignore next */ []));
|
|
7591
7786
|
ariaDescribedBySignal = computed(() => {
|
|
7592
7787
|
if (this.errorsToDisplaySignal().length > 0)
|
|
7593
7788
|
return this.errorIdSignal();
|
|
7594
7789
|
if (this.props()?.hint)
|
|
7595
7790
|
return this.hintIdSignal();
|
|
7596
7791
|
return null;
|
|
7597
|
-
},
|
|
7792
|
+
}, /* @ts-ignore */
|
|
7793
|
+
...(ngDevMode ? [{ debugName: "ariaDescribedBySignal" }] : /* istanbul ignore next */ []));
|
|
7598
7794
|
_blur = completeOnDestroy(new Subject());
|
|
7599
7795
|
_blurSub = cleanSubscription();
|
|
7600
7796
|
_valuesSubject = completeOnDestroy(new BehaviorSubject([]));
|
|
@@ -7604,14 +7800,16 @@ class DbxForgeSearchableChipFieldComponent extends AbstractForgeSearchableFieldD
|
|
|
7604
7800
|
// Disabled state propagation
|
|
7605
7801
|
_disabledEffect = effect(() => {
|
|
7606
7802
|
toggleDisableFormControl(this.inputCtrl, this.isDisabled());
|
|
7607
|
-
},
|
|
7803
|
+
}, /* @ts-ignore */
|
|
7804
|
+
...(ngDevMode ? [{ debugName: "_disabledEffect" }] : /* istanbul ignore next */ []));
|
|
7608
7805
|
_syncFieldValueEffect = effect(() => {
|
|
7609
7806
|
const fieldGetter = this.field();
|
|
7610
7807
|
const fieldState = typeof fieldGetter === 'function' ? fieldGetter() : undefined;
|
|
7611
7808
|
const fieldValue = fieldState?.value?.();
|
|
7612
7809
|
const values = fieldValue == null ? [] : convertMaybeToArray(fieldValue).filter((v) => v != null && v !== '');
|
|
7613
7810
|
this._valuesSubject.next(values);
|
|
7614
|
-
},
|
|
7811
|
+
}, /* @ts-ignore */
|
|
7812
|
+
...(ngDevMode ? [{ debugName: "_syncFieldValueEffect" }] : /* istanbul ignore next */ []));
|
|
7615
7813
|
constructor() {
|
|
7616
7814
|
super();
|
|
7617
7815
|
setupMetaTracking(this.elementRef, this.meta, { selector: 'input' });
|
|
@@ -7746,12 +7944,12 @@ class DbxForgeSearchableChipFieldComponent extends AbstractForgeSearchableFieldD
|
|
|
7746
7944
|
fieldState.value.set(newValue ?? null);
|
|
7747
7945
|
}
|
|
7748
7946
|
}
|
|
7749
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
7750
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
7947
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeSearchableChipFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7948
|
+
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 #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]):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
7949
|
}
|
|
7752
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
7950
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeSearchableChipFieldComponent, decorators: [{
|
|
7753
7951
|
type: Component,
|
|
7754
|
-
args: [{ selector: 'dbx-forge-searchable-chip-field', imports: [FormsModule, ReactiveFormsModule, MatAutocompleteModule, MatChipsModule, MatOptionModule, MatIconModule, DbxLoadingModule, DbxSearchableFieldAutocompleteItemComponent],
|
|
7952
|
+
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 #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" }]
|
|
7755
7953
|
}], ctorParameters: () => [], propDecorators: { field: [{ type: i0.Input, args: [{ isSignal: true, alias: "field", required: true }] }] } });
|
|
7756
7954
|
|
|
7757
7955
|
var searchableChip_field_component = /*#__PURE__*/Object.freeze({
|
|
@@ -7779,16 +7977,26 @@ const FORGE_PICKABLE_LIST_FIELD_TYPE = 'dbx-pickable-list';
|
|
|
7779
7977
|
*/
|
|
7780
7978
|
class AbstractForgePickableItemFieldDirective {
|
|
7781
7979
|
// MARK: ng-forge ValueFieldComponent Inputs
|
|
7782
|
-
field = input.required(
|
|
7783
|
-
|
|
7784
|
-
|
|
7785
|
-
|
|
7786
|
-
|
|
7787
|
-
|
|
7788
|
-
|
|
7789
|
-
|
|
7790
|
-
|
|
7791
|
-
|
|
7980
|
+
field = input.required(/* @ts-ignore */
|
|
7981
|
+
...(ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []));
|
|
7982
|
+
key = input.required(/* @ts-ignore */
|
|
7983
|
+
...(ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []));
|
|
7984
|
+
label = input(/* @ts-ignore */
|
|
7985
|
+
...(ngDevMode ? [undefined, { debugName: "label" }] : /* istanbul ignore next */ []));
|
|
7986
|
+
placeholder = input(/* @ts-ignore */
|
|
7987
|
+
...(ngDevMode ? [undefined, { debugName: "placeholder" }] : /* istanbul ignore next */ []));
|
|
7988
|
+
className = input('', /* @ts-ignore */
|
|
7989
|
+
...(ngDevMode ? [{ debugName: "className" }] : /* istanbul ignore next */ []));
|
|
7990
|
+
tabIndex = input(/* @ts-ignore */
|
|
7991
|
+
...(ngDevMode ? [undefined, { debugName: "tabIndex" }] : /* istanbul ignore next */ []));
|
|
7992
|
+
props = input(/* @ts-ignore */
|
|
7993
|
+
...(ngDevMode ? [undefined, { debugName: "props" }] : /* istanbul ignore next */ []));
|
|
7994
|
+
meta = input(/* @ts-ignore */
|
|
7995
|
+
...(ngDevMode ? [undefined, { debugName: "meta" }] : /* istanbul ignore next */ []));
|
|
7996
|
+
validationMessages = input(/* @ts-ignore */
|
|
7997
|
+
...(ngDevMode ? [undefined, { debugName: "validationMessages" }] : /* istanbul ignore next */ []));
|
|
7998
|
+
defaultValidationMessages = input(/* @ts-ignore */
|
|
7999
|
+
...(ngDevMode ? [undefined, { debugName: "defaultValidationMessages" }] : /* istanbul ignore next */ []));
|
|
7792
8000
|
inputCtrl = new FormControl('');
|
|
7793
8001
|
_clearDisplayHashMapSub = cleanSubscription();
|
|
7794
8002
|
_displayHashMap = completeOnDestroy(new BehaviorSubject(new Map()));
|
|
@@ -7797,35 +8005,49 @@ class AbstractForgePickableItemFieldDirective {
|
|
|
7797
8005
|
labelSignal = computed(() => {
|
|
7798
8006
|
const l = this.label();
|
|
7799
8007
|
return typeof l === 'string' ? l : undefined;
|
|
7800
|
-
},
|
|
7801
|
-
|
|
7802
|
-
|
|
8008
|
+
}, /* @ts-ignore */
|
|
8009
|
+
...(ngDevMode ? [{ debugName: "labelSignal" }] : /* istanbul ignore next */ []));
|
|
8010
|
+
hintSignal = computed(() => this.props()?.hint, /* @ts-ignore */
|
|
8011
|
+
...(ngDevMode ? [{ debugName: "hintSignal" }] : /* istanbul ignore next */ []));
|
|
8012
|
+
multiSelectSignal = computed(() => this.props()?.multiSelect ?? true, /* @ts-ignore */
|
|
8013
|
+
...(ngDevMode ? [{ debugName: "multiSelectSignal" }] : /* istanbul ignore next */ []));
|
|
7803
8014
|
isDisabled = dbxForgeFieldDisabled();
|
|
7804
8015
|
readonlySignal = computed(() => {
|
|
7805
8016
|
const fieldGetter = this.field();
|
|
7806
8017
|
const fieldState = typeof fieldGetter === 'function' ? fieldGetter() : undefined;
|
|
7807
8018
|
return fieldState?.readonly?.() ?? false;
|
|
7808
|
-
},
|
|
8019
|
+
}, /* @ts-ignore */
|
|
8020
|
+
...(ngDevMode ? [{ debugName: "readonlySignal" }] : /* istanbul ignore next */ []));
|
|
7809
8021
|
isDisabledOrReadonlySignal = computed(() => {
|
|
7810
8022
|
const readonly = this.readonlySignal();
|
|
7811
8023
|
return this.isDisabled() || readonly;
|
|
7812
|
-
},
|
|
7813
|
-
|
|
8024
|
+
}, /* @ts-ignore */
|
|
8025
|
+
...(ngDevMode ? [{ debugName: "isDisabledOrReadonlySignal" }] : /* istanbul ignore next */ []));
|
|
8026
|
+
showSelectAllButtonSignal = computed(() => this.props()?.showSelectAllButton ?? false, /* @ts-ignore */
|
|
8027
|
+
...(ngDevMode ? [{ debugName: "showSelectAllButtonSignal" }] : /* istanbul ignore next */ []));
|
|
7814
8028
|
showTextFilterSignal = computed(() => {
|
|
7815
8029
|
const props = this.props();
|
|
7816
8030
|
return this.props()?.showTextFilter ?? Boolean(props?.filterValues);
|
|
7817
|
-
},
|
|
7818
|
-
|
|
7819
|
-
|
|
8031
|
+
}, /* @ts-ignore */
|
|
8032
|
+
...(ngDevMode ? [{ debugName: "showTextFilterSignal" }] : /* istanbul ignore next */ []));
|
|
8033
|
+
filterLabelSignal = computed(() => this.props()?.filterLabel, /* @ts-ignore */
|
|
8034
|
+
...(ngDevMode ? [{ debugName: "filterLabelSignal" }] : /* istanbul ignore next */ []));
|
|
8035
|
+
footerConfigSignal = computed(() => this.props()?.footerConfig, /* @ts-ignore */
|
|
8036
|
+
...(ngDevMode ? [{ debugName: "footerConfigSignal" }] : /* istanbul ignore next */ []));
|
|
7820
8037
|
// Error handling
|
|
7821
8038
|
resolvedErrors = createResolvedErrorsSignal(this.field, this.validationMessages, this.defaultValidationMessages);
|
|
7822
8039
|
showErrors = shouldShowErrors(this.field);
|
|
7823
|
-
errorsToDisplaySignal = computed(() => (this.showErrors() ? this.resolvedErrors() : []),
|
|
8040
|
+
errorsToDisplaySignal = computed(() => (this.showErrors() ? this.resolvedErrors() : []), /* @ts-ignore */
|
|
8041
|
+
...(ngDevMode ? [{ debugName: "errorsToDisplaySignal" }] : /* istanbul ignore next */ []));
|
|
7824
8042
|
// ARIA
|
|
7825
|
-
hintIdSignal = computed(() => `${this.key()}-hint`,
|
|
7826
|
-
|
|
7827
|
-
|
|
7828
|
-
|
|
8043
|
+
hintIdSignal = computed(() => `${this.key()}-hint`, /* @ts-ignore */
|
|
8044
|
+
...(ngDevMode ? [{ debugName: "hintIdSignal" }] : /* istanbul ignore next */ []));
|
|
8045
|
+
errorIdSignal = computed(() => `${this.key()}-error`, /* @ts-ignore */
|
|
8046
|
+
...(ngDevMode ? [{ debugName: "errorIdSignal" }] : /* istanbul ignore next */ []));
|
|
8047
|
+
ariaInvalidSignal = computed(() => (this.showErrors() ? 'true' : null), /* @ts-ignore */
|
|
8048
|
+
...(ngDevMode ? [{ debugName: "ariaInvalidSignal" }] : /* istanbul ignore next */ []));
|
|
8049
|
+
ariaRequiredSignal = computed(() => (this.field()().required() ? 'true' : null), /* @ts-ignore */
|
|
8050
|
+
...(ngDevMode ? [{ debugName: "ariaRequiredSignal" }] : /* istanbul ignore next */ []));
|
|
7829
8051
|
ariaDescribedBySignal = computed(() => {
|
|
7830
8052
|
const errorId = this.errorIdSignal();
|
|
7831
8053
|
const props = this.props();
|
|
@@ -7838,7 +8060,8 @@ class AbstractForgePickableItemFieldDirective {
|
|
|
7838
8060
|
result = hintId;
|
|
7839
8061
|
}
|
|
7840
8062
|
return result;
|
|
7841
|
-
},
|
|
8063
|
+
}, /* @ts-ignore */
|
|
8064
|
+
...(ngDevMode ? [{ debugName: "ariaDescribedBySignal" }] : /* istanbul ignore next */ []));
|
|
7842
8065
|
get _pickOnlyOne() {
|
|
7843
8066
|
const p = this.props();
|
|
7844
8067
|
const asArrayValue = p?.asArrayValue ?? true;
|
|
@@ -7899,7 +8122,8 @@ class AbstractForgePickableItemFieldDirective {
|
|
|
7899
8122
|
allSelectedSignal = computed(() => {
|
|
7900
8123
|
const items = this.itemsSignal();
|
|
7901
8124
|
return items.length > 0 && items.every((x) => x.selected);
|
|
7902
|
-
},
|
|
8125
|
+
}, /* @ts-ignore */
|
|
8126
|
+
...(ngDevMode ? [{ debugName: "allSelectedSignal" }] : /* istanbul ignore next */ []));
|
|
7903
8127
|
// Sync field value to _valuesSubject
|
|
7904
8128
|
_syncFieldValueEffect = effect(() => {
|
|
7905
8129
|
const fieldGetter = this.field();
|
|
@@ -7910,7 +8134,8 @@ class AbstractForgePickableItemFieldDirective {
|
|
|
7910
8134
|
// otherwise show up as a phantom selection when the user picks an item.
|
|
7911
8135
|
const values = filterEmptyArrayValues(convertMaybeToArray(fieldValue));
|
|
7912
8136
|
this._valuesSubject.next(values);
|
|
7913
|
-
},
|
|
8137
|
+
}, /* @ts-ignore */
|
|
8138
|
+
...(ngDevMode ? [{ debugName: "_syncFieldValueEffect" }] : /* istanbul ignore next */ []));
|
|
7914
8139
|
// MARK: Lifecycle
|
|
7915
8140
|
ngOnInit() {
|
|
7916
8141
|
const p = this.props();
|
|
@@ -8010,10 +8235,10 @@ class AbstractForgePickableItemFieldDirective {
|
|
|
8010
8235
|
return of(hasDisplay.map((x) => x[3]));
|
|
8011
8236
|
}));
|
|
8012
8237
|
}
|
|
8013
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
8014
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
8238
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: AbstractForgePickableItemFieldDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
8239
|
+
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
8240
|
}
|
|
8016
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
8241
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: AbstractForgePickableItemFieldDirective, decorators: [{
|
|
8017
8242
|
type: Directive
|
|
8018
8243
|
}], 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
8244
|
|
|
@@ -8102,12 +8327,12 @@ class DbxForgePickableChipFieldComponent extends AbstractForgePickableItemFieldD
|
|
|
8102
8327
|
this._setValues(allValues);
|
|
8103
8328
|
}
|
|
8104
8329
|
}
|
|
8105
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
8106
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
8330
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgePickableChipFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
8331
|
+
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
8332
|
}
|
|
8108
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
8333
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgePickableChipFieldComponent, decorators: [{
|
|
8109
8334
|
type: Component,
|
|
8110
|
-
args: [{ selector: 'dbx-forge-pickable-chip-field', imports: [ReactiveFormsModule, MatChipsModule, MatIconModule, MatDivider, DbxInjectionComponent],
|
|
8335
|
+
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
8336
|
}], ctorParameters: () => [] });
|
|
8112
8337
|
|
|
8113
8338
|
var pickableChip_field_component = /*#__PURE__*/Object.freeze({
|
|
@@ -8142,12 +8367,12 @@ class DbxForgePickableListFieldComponent extends AbstractForgePickableItemFieldD
|
|
|
8142
8367
|
this._setValues(allValues);
|
|
8143
8368
|
}
|
|
8144
8369
|
}
|
|
8145
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
8146
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
8370
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgePickableListFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
8371
|
+
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
8372
|
}
|
|
8148
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
8373
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgePickableListFieldComponent, decorators: [{
|
|
8149
8374
|
type: Component,
|
|
8150
|
-
args: [{ selector: 'dbx-forge-pickable-list-field', imports: [ReactiveFormsModule, MatListModule, MatIconModule, MatDivider, DbxInjectionComponent],
|
|
8375
|
+
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
8376
|
}], ctorParameters: () => [] });
|
|
8152
8377
|
|
|
8153
8378
|
var pickableList_field_component = /*#__PURE__*/Object.freeze({
|
|
@@ -8208,16 +8433,26 @@ class DbxForgeSourceSelectFieldComponent {
|
|
|
8208
8433
|
materialConfig = inject(MATERIAL_CONFIG, { optional: true });
|
|
8209
8434
|
elementRef = inject((ElementRef));
|
|
8210
8435
|
// ng-forge ValueFieldComponent inputs
|
|
8211
|
-
field = input.required(
|
|
8212
|
-
|
|
8213
|
-
|
|
8214
|
-
|
|
8215
|
-
|
|
8216
|
-
|
|
8217
|
-
|
|
8218
|
-
|
|
8219
|
-
|
|
8220
|
-
|
|
8436
|
+
field = input.required(/* @ts-ignore */
|
|
8437
|
+
...(ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []));
|
|
8438
|
+
key = input.required(/* @ts-ignore */
|
|
8439
|
+
...(ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []));
|
|
8440
|
+
label = input(/* @ts-ignore */
|
|
8441
|
+
...(ngDevMode ? [undefined, { debugName: "label" }] : /* istanbul ignore next */ []));
|
|
8442
|
+
placeholder = input(/* @ts-ignore */
|
|
8443
|
+
...(ngDevMode ? [undefined, { debugName: "placeholder" }] : /* istanbul ignore next */ []));
|
|
8444
|
+
className = input('', /* @ts-ignore */
|
|
8445
|
+
...(ngDevMode ? [{ debugName: "className" }] : /* istanbul ignore next */ []));
|
|
8446
|
+
tabIndex = input(/* @ts-ignore */
|
|
8447
|
+
...(ngDevMode ? [undefined, { debugName: "tabIndex" }] : /* istanbul ignore next */ []));
|
|
8448
|
+
props = input(/* @ts-ignore */
|
|
8449
|
+
...(ngDevMode ? [undefined, { debugName: "props" }] : /* istanbul ignore next */ []));
|
|
8450
|
+
meta = input(/* @ts-ignore */
|
|
8451
|
+
...(ngDevMode ? [undefined, { debugName: "meta" }] : /* istanbul ignore next */ []));
|
|
8452
|
+
validationMessages = input(/* @ts-ignore */
|
|
8453
|
+
...(ngDevMode ? [undefined, { debugName: "validationMessages" }] : /* istanbul ignore next */ []));
|
|
8454
|
+
defaultValidationMessages = input(/* @ts-ignore */
|
|
8455
|
+
...(ngDevMode ? [undefined, { debugName: "defaultValidationMessages" }] : /* istanbul ignore next */ []));
|
|
8221
8456
|
// Disabled state
|
|
8222
8457
|
isDisabled = dbxForgeFieldDisabled();
|
|
8223
8458
|
_cacheMetaSub = cleanSubscription();
|
|
@@ -8231,19 +8466,27 @@ class DbxForgeSourceSelectFieldComponent {
|
|
|
8231
8466
|
buttonElement = viewChild('button', { ...(ngDevMode ? { debugName: "buttonElement" } : /* istanbul ignore next */ {}), read: (ElementRef) });
|
|
8232
8467
|
filterInputElement = viewChild('filterInput', { ...(ngDevMode ? { debugName: "filterInputElement" } : /* istanbul ignore next */ {}), read: (ElementRef) });
|
|
8233
8468
|
// Computed signals from props
|
|
8234
|
-
hintSignal = computed(() => this.props()?.hint,
|
|
8469
|
+
hintSignal = computed(() => this.props()?.hint, /* @ts-ignore */
|
|
8470
|
+
...(ngDevMode ? [{ debugName: "hintSignal" }] : /* istanbul ignore next */ []));
|
|
8235
8471
|
// Material config
|
|
8236
|
-
effectiveAppearanceSignal = computed(() => this.materialConfig?.appearance ?? 'outline',
|
|
8237
|
-
|
|
8472
|
+
effectiveAppearanceSignal = computed(() => this.materialConfig?.appearance ?? 'outline', /* @ts-ignore */
|
|
8473
|
+
...(ngDevMode ? [{ debugName: "effectiveAppearanceSignal" }] : /* istanbul ignore next */ []));
|
|
8474
|
+
effectiveSubscriptSizingSignal = computed(() => this.materialConfig?.subscriptSizing ?? 'dynamic', /* @ts-ignore */
|
|
8475
|
+
...(ngDevMode ? [{ debugName: "effectiveSubscriptSizingSignal" }] : /* istanbul ignore next */ []));
|
|
8238
8476
|
// Error handling
|
|
8239
8477
|
resolvedErrors = createResolvedErrorsSignal(this.field, this.validationMessages, this.defaultValidationMessages);
|
|
8240
8478
|
showErrors = shouldShowErrors(this.field);
|
|
8241
|
-
errorsToDisplaySignal = computed(() => (this.showErrors() ? this.resolvedErrors() : []),
|
|
8479
|
+
errorsToDisplaySignal = computed(() => (this.showErrors() ? this.resolvedErrors() : []), /* @ts-ignore */
|
|
8480
|
+
...(ngDevMode ? [{ debugName: "errorsToDisplaySignal" }] : /* istanbul ignore next */ []));
|
|
8242
8481
|
// ARIA
|
|
8243
|
-
hintIdSignal = computed(() => `${this.key()}-hint`,
|
|
8244
|
-
|
|
8245
|
-
|
|
8246
|
-
|
|
8482
|
+
hintIdSignal = computed(() => `${this.key()}-hint`, /* @ts-ignore */
|
|
8483
|
+
...(ngDevMode ? [{ debugName: "hintIdSignal" }] : /* istanbul ignore next */ []));
|
|
8484
|
+
errorIdSignal = computed(() => `${this.key()}-error`, /* @ts-ignore */
|
|
8485
|
+
...(ngDevMode ? [{ debugName: "errorIdSignal" }] : /* istanbul ignore next */ []));
|
|
8486
|
+
ariaInvalidSignal = computed(() => (this.showErrors() ? 'true' : null), /* @ts-ignore */
|
|
8487
|
+
...(ngDevMode ? [{ debugName: "ariaInvalidSignal" }] : /* istanbul ignore next */ []));
|
|
8488
|
+
ariaRequiredSignal = computed(() => (this.field()().required() ? 'true' : null), /* @ts-ignore */
|
|
8489
|
+
...(ngDevMode ? [{ debugName: "ariaRequiredSignal" }] : /* istanbul ignore next */ []));
|
|
8247
8490
|
ariaDescribedBySignal = computed(() => {
|
|
8248
8491
|
const errorId = this.errorIdSignal();
|
|
8249
8492
|
const hintId = this.hintIdSignal();
|
|
@@ -8252,13 +8495,20 @@ class DbxForgeSourceSelectFieldComponent {
|
|
|
8252
8495
|
if (this.props()?.hint)
|
|
8253
8496
|
return hintId;
|
|
8254
8497
|
return null;
|
|
8255
|
-
},
|
|
8256
|
-
|
|
8257
|
-
|
|
8258
|
-
|
|
8259
|
-
|
|
8260
|
-
|
|
8261
|
-
|
|
8498
|
+
}, /* @ts-ignore */
|
|
8499
|
+
...(ngDevMode ? [{ debugName: "ariaDescribedBySignal" }] : /* istanbul ignore next */ []));
|
|
8500
|
+
multipleSignal = computed(() => this.props()?.multiple ?? false, /* @ts-ignore */
|
|
8501
|
+
...(ngDevMode ? [{ debugName: "multipleSignal" }] : /* istanbul ignore next */ []));
|
|
8502
|
+
showOpenSourceButtonSignal = computed(() => Boolean(this.props()?.openSource), /* @ts-ignore */
|
|
8503
|
+
...(ngDevMode ? [{ debugName: "showOpenSourceButtonSignal" }] : /* istanbul ignore next */ []));
|
|
8504
|
+
selectButtonIconSignal = computed(() => this.props()?.selectButtonIcon ?? 'add', /* @ts-ignore */
|
|
8505
|
+
...(ngDevMode ? [{ debugName: "selectButtonIconSignal" }] : /* istanbul ignore next */ []));
|
|
8506
|
+
filterableSignal = computed(() => this.props()?.filterable !== false, /* @ts-ignore */
|
|
8507
|
+
...(ngDevMode ? [{ debugName: "filterableSignal" }] : /* istanbul ignore next */ []));
|
|
8508
|
+
filterableGroupsSignal = computed(() => this.props()?.filterableGroups !== false, /* @ts-ignore */
|
|
8509
|
+
...(ngDevMode ? [{ debugName: "filterableGroupsSignal" }] : /* istanbul ignore next */ []));
|
|
8510
|
+
selectPanelClassSignal = computed(() => (this.filterableSignal() ? 'dbx-source-select-filterable-panel' : ''), /* @ts-ignore */
|
|
8511
|
+
...(ngDevMode ? [{ debugName: "selectPanelClassSignal" }] : /* istanbul ignore next */ []));
|
|
8262
8512
|
values$ = this._valuesSubject.asObservable().pipe(shareReplay(1));
|
|
8263
8513
|
allValuesEverSelected$ = this.values$.pipe(scan((acc, values) => {
|
|
8264
8514
|
let result = acc;
|
|
@@ -8374,7 +8624,8 @@ class DbxForgeSourceSelectFieldComponent {
|
|
|
8374
8624
|
// ng-forge can seed the field with the empty-string primitive default; treat nullish/empty as unset.
|
|
8375
8625
|
const values = filterEmptyArrayValues(fieldValue == null ? [] : convertMaybeToArray(fieldValue));
|
|
8376
8626
|
this._valuesSubject.next(values);
|
|
8377
|
-
},
|
|
8627
|
+
}, /* @ts-ignore */
|
|
8628
|
+
...(ngDevMode ? [{ debugName: "_syncFieldValueEffect" }] : /* istanbul ignore next */ []));
|
|
8378
8629
|
constructor() {
|
|
8379
8630
|
setupMetaTracking(this.elementRef, this.meta, { selector: 'mat-select' });
|
|
8380
8631
|
}
|
|
@@ -8529,12 +8780,12 @@ class DbxForgeSourceSelectFieldComponent {
|
|
|
8529
8780
|
return of(hasDisplay.map((x) => x[3]));
|
|
8530
8781
|
}));
|
|
8531
8782
|
}
|
|
8532
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
8533
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
8783
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeSourceSelectFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
8784
|
+
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\">\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", "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
8785
|
}
|
|
8535
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
8786
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeSourceSelectFieldComponent, decorators: [{
|
|
8536
8787
|
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],
|
|
8788
|
+
args: [{ selector: 'dbx-forge-source-select-field', imports: [MatFormField, MatLabel, MatSelect, MatOption, MatOptgroup, MatHint, MatError, MatSuffix, FormField, DynamicTextPipe, AsyncPipe, DbxButtonComponent, DbxActionModule, DbxLoadingComponent], host: {
|
|
8538
8789
|
'[id]': '`${key()}`',
|
|
8539
8790
|
'[attr.data-testid]': 'key()',
|
|
8540
8791
|
'[class]': 'className()',
|
|
@@ -8595,16 +8846,26 @@ const dbxForgeListSelectionField = dbxForgeFieldFunction({
|
|
|
8595
8846
|
class DbxForgeListSelectionFieldComponent {
|
|
8596
8847
|
elementRef = inject((ElementRef));
|
|
8597
8848
|
// ng-forge ValueFieldComponent inputs
|
|
8598
|
-
field = input.required(
|
|
8599
|
-
|
|
8600
|
-
|
|
8601
|
-
|
|
8602
|
-
|
|
8603
|
-
|
|
8604
|
-
|
|
8605
|
-
|
|
8606
|
-
|
|
8607
|
-
|
|
8849
|
+
field = input.required(/* @ts-ignore */
|
|
8850
|
+
...(ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []));
|
|
8851
|
+
key = input.required(/* @ts-ignore */
|
|
8852
|
+
...(ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []));
|
|
8853
|
+
label = input(/* @ts-ignore */
|
|
8854
|
+
...(ngDevMode ? [undefined, { debugName: "label" }] : /* istanbul ignore next */ []));
|
|
8855
|
+
placeholder = input(/* @ts-ignore */
|
|
8856
|
+
...(ngDevMode ? [undefined, { debugName: "placeholder" }] : /* istanbul ignore next */ []));
|
|
8857
|
+
className = input('', /* @ts-ignore */
|
|
8858
|
+
...(ngDevMode ? [{ debugName: "className" }] : /* istanbul ignore next */ []));
|
|
8859
|
+
tabIndex = input(/* @ts-ignore */
|
|
8860
|
+
...(ngDevMode ? [undefined, { debugName: "tabIndex" }] : /* istanbul ignore next */ []));
|
|
8861
|
+
props = input(/* @ts-ignore */
|
|
8862
|
+
...(ngDevMode ? [undefined, { debugName: "props" }] : /* istanbul ignore next */ []));
|
|
8863
|
+
meta = input(/* @ts-ignore */
|
|
8864
|
+
...(ngDevMode ? [undefined, { debugName: "meta" }] : /* istanbul ignore next */ []));
|
|
8865
|
+
validationMessages = input(/* @ts-ignore */
|
|
8866
|
+
...(ngDevMode ? [undefined, { debugName: "validationMessages" }] : /* istanbul ignore next */ []));
|
|
8867
|
+
defaultValidationMessages = input(/* @ts-ignore */
|
|
8868
|
+
...(ngDevMode ? [undefined, { debugName: "defaultValidationMessages" }] : /* istanbul ignore next */ []));
|
|
8608
8869
|
// Disabled state
|
|
8609
8870
|
isDisabled = dbxForgeFieldDisabled();
|
|
8610
8871
|
isDisabled$ = toObservable(this.isDisabled);
|
|
@@ -8615,8 +8876,10 @@ class DbxForgeListSelectionFieldComponent {
|
|
|
8615
8876
|
labelSignal = computed(() => {
|
|
8616
8877
|
const l = this.label();
|
|
8617
8878
|
return typeof l === 'string' ? l : undefined;
|
|
8618
|
-
},
|
|
8619
|
-
|
|
8879
|
+
}, /* @ts-ignore */
|
|
8880
|
+
...(ngDevMode ? [{ debugName: "labelSignal" }] : /* istanbul ignore next */ []));
|
|
8881
|
+
hintSignal = computed(() => this.props()?.hint, /* @ts-ignore */
|
|
8882
|
+
...(ngDevMode ? [{ debugName: "hintSignal" }] : /* istanbul ignore next */ []));
|
|
8620
8883
|
/**
|
|
8621
8884
|
* Resolves the configured `maxHeight` prop into a CSS length string for the
|
|
8622
8885
|
* `--dbx-forge-list-item-field-height` custom property. Returns `null` when
|
|
@@ -8634,15 +8897,20 @@ class DbxForgeListSelectionFieldComponent {
|
|
|
8634
8897
|
return `${raw}px`;
|
|
8635
8898
|
}
|
|
8636
8899
|
return raw;
|
|
8637
|
-
},
|
|
8900
|
+
}, /* @ts-ignore */
|
|
8901
|
+
...(ngDevMode ? [{ debugName: "maxHeightCssVarSignal" }] : /* istanbul ignore next */ []));
|
|
8638
8902
|
// Error handling
|
|
8639
8903
|
resolvedErrors = createResolvedErrorsSignal(this.field, this.validationMessages, this.defaultValidationMessages);
|
|
8640
8904
|
showErrors = shouldShowErrors(this.field);
|
|
8641
|
-
errorsToDisplaySignal = computed(() => (this.showErrors() ? this.resolvedErrors() : []),
|
|
8905
|
+
errorsToDisplaySignal = computed(() => (this.showErrors() ? this.resolvedErrors() : []), /* @ts-ignore */
|
|
8906
|
+
...(ngDevMode ? [{ debugName: "errorsToDisplaySignal" }] : /* istanbul ignore next */ []));
|
|
8642
8907
|
// ARIA
|
|
8643
|
-
hintIdSignal = computed(() => `${this.key()}-hint`,
|
|
8644
|
-
|
|
8645
|
-
|
|
8908
|
+
hintIdSignal = computed(() => `${this.key()}-hint`, /* @ts-ignore */
|
|
8909
|
+
...(ngDevMode ? [{ debugName: "hintIdSignal" }] : /* istanbul ignore next */ []));
|
|
8910
|
+
errorIdSignal = computed(() => `${this.key()}-error`, /* @ts-ignore */
|
|
8911
|
+
...(ngDevMode ? [{ debugName: "errorIdSignal" }] : /* istanbul ignore next */ []));
|
|
8912
|
+
ariaInvalidSignal = computed(() => (this.showErrors() ? 'true' : null), /* @ts-ignore */
|
|
8913
|
+
...(ngDevMode ? [{ debugName: "ariaInvalidSignal" }] : /* istanbul ignore next */ []));
|
|
8646
8914
|
ariaDescribedBySignal = computed(() => {
|
|
8647
8915
|
const errorId = this.errorIdSignal();
|
|
8648
8916
|
const hintId = this.hintIdSignal();
|
|
@@ -8651,7 +8919,8 @@ class DbxForgeListSelectionFieldComponent {
|
|
|
8651
8919
|
if (this.props()?.hint)
|
|
8652
8920
|
return hintId;
|
|
8653
8921
|
return null;
|
|
8654
|
-
},
|
|
8922
|
+
}, /* @ts-ignore */
|
|
8923
|
+
...(ngDevMode ? [{ debugName: "ariaDescribedBySignal" }] : /* istanbul ignore next */ []));
|
|
8655
8924
|
listComponentClass$ = this._listComponentClassObs.pipe(switchMapFilterMaybe());
|
|
8656
8925
|
config$ = this.listComponentClass$.pipe(map((componentClass) => {
|
|
8657
8926
|
const p = this.props();
|
|
@@ -8731,12 +9000,12 @@ class DbxForgeListSelectionFieldComponent {
|
|
|
8731
9000
|
fieldState.value.set(values);
|
|
8732
9001
|
}
|
|
8733
9002
|
}
|
|
8734
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
8735
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "
|
|
9003
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeListSelectionFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9004
|
+
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
9005
|
}
|
|
8737
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
9006
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeListSelectionFieldComponent, decorators: [{
|
|
8738
9007
|
type: Component,
|
|
8739
|
-
args: [{ selector: 'dbx-forge-list-selection-field', imports: [DbxListModifierModule, DbxInjectionComponent, MatDividerModule],
|
|
9008
|
+
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
9009
|
}], 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
9010
|
|
|
8742
9011
|
var list_field_component = /*#__PURE__*/Object.freeze({
|
|
@@ -8785,34 +9054,46 @@ const FORGE_COMPONENT_FIELD_TYPE = 'dbx-component';
|
|
|
8785
9054
|
class DbxForgeComponentFieldComponent {
|
|
8786
9055
|
elementRef = inject((ElementRef));
|
|
8787
9056
|
// ng-forge ValueFieldComponent inputs
|
|
8788
|
-
field = input.required(
|
|
8789
|
-
|
|
8790
|
-
|
|
8791
|
-
|
|
8792
|
-
|
|
8793
|
-
|
|
8794
|
-
|
|
8795
|
-
|
|
8796
|
-
|
|
8797
|
-
|
|
9057
|
+
field = input.required(/* @ts-ignore */
|
|
9058
|
+
...(ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []));
|
|
9059
|
+
key = input.required(/* @ts-ignore */
|
|
9060
|
+
...(ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []));
|
|
9061
|
+
label = input(/* @ts-ignore */
|
|
9062
|
+
...(ngDevMode ? [undefined, { debugName: "label" }] : /* istanbul ignore next */ []));
|
|
9063
|
+
placeholder = input(/* @ts-ignore */
|
|
9064
|
+
...(ngDevMode ? [undefined, { debugName: "placeholder" }] : /* istanbul ignore next */ []));
|
|
9065
|
+
className = input('', /* @ts-ignore */
|
|
9066
|
+
...(ngDevMode ? [{ debugName: "className" }] : /* istanbul ignore next */ []));
|
|
9067
|
+
tabIndex = input(/* @ts-ignore */
|
|
9068
|
+
...(ngDevMode ? [undefined, { debugName: "tabIndex" }] : /* istanbul ignore next */ []));
|
|
9069
|
+
props = input(/* @ts-ignore */
|
|
9070
|
+
...(ngDevMode ? [undefined, { debugName: "props" }] : /* istanbul ignore next */ []));
|
|
9071
|
+
meta = input(/* @ts-ignore */
|
|
9072
|
+
...(ngDevMode ? [undefined, { debugName: "meta" }] : /* istanbul ignore next */ []));
|
|
9073
|
+
validationMessages = input(/* @ts-ignore */
|
|
9074
|
+
...(ngDevMode ? [undefined, { debugName: "validationMessages" }] : /* istanbul ignore next */ []));
|
|
9075
|
+
defaultValidationMessages = input(/* @ts-ignore */
|
|
9076
|
+
...(ngDevMode ? [undefined, { debugName: "defaultValidationMessages" }] : /* istanbul ignore next */ []));
|
|
8798
9077
|
// Disabled state
|
|
8799
9078
|
isDisabled = dbxForgeFieldDisabled();
|
|
8800
9079
|
showDisabledStateSignal = computed(() => {
|
|
8801
9080
|
const props = this.props();
|
|
8802
9081
|
return this.isDisabled() && (props?.allowDisabledEffects ?? true);
|
|
8803
|
-
},
|
|
9082
|
+
}, /* @ts-ignore */
|
|
9083
|
+
...(ngDevMode ? [{ debugName: "showDisabledStateSignal" }] : /* istanbul ignore next */ []));
|
|
8804
9084
|
constructor() {
|
|
8805
9085
|
setupMetaTracking(this.elementRef, this.meta, { selector: 'dbx-injection' });
|
|
8806
9086
|
}
|
|
8807
9087
|
configSignal = computed(() => {
|
|
8808
9088
|
return this.props()?.componentField;
|
|
8809
|
-
},
|
|
8810
|
-
|
|
8811
|
-
static
|
|
9089
|
+
}, /* @ts-ignore */
|
|
9090
|
+
...(ngDevMode ? [{ debugName: "configSignal" }] : /* istanbul ignore next */ []));
|
|
9091
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeComponentFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9092
|
+
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
9093
|
<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"] }]
|
|
9094
|
+
`, isInline: true, dependencies: [{ kind: "component", type: DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }] });
|
|
8814
9095
|
}
|
|
8815
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
9096
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeComponentFieldComponent, decorators: [{
|
|
8816
9097
|
type: Component,
|
|
8817
9098
|
args: [{
|
|
8818
9099
|
selector: 'dbx-forge-component-field',
|
|
@@ -8820,8 +9101,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
|
|
|
8820
9101
|
<div class="dbx-form-component" dbx-injection [config]="configSignal()"></div>
|
|
8821
9102
|
`,
|
|
8822
9103
|
imports: [DbxInjectionComponent],
|
|
8823
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
8824
|
-
standalone: true,
|
|
8825
9104
|
host: {
|
|
8826
9105
|
'[class]': 'className()',
|
|
8827
9106
|
'[class.dbx-forge-disabled]': 'showDisabledStateSignal()'
|
|
@@ -8893,16 +9172,26 @@ class DbxForgeTextEditorFieldComponent {
|
|
|
8893
9172
|
_compactContextStore = inject(CompactContextStore, { optional: true });
|
|
8894
9173
|
elementRef = inject((ElementRef));
|
|
8895
9174
|
// ng-forge ValueFieldComponent inputs
|
|
8896
|
-
field = input.required(
|
|
8897
|
-
|
|
8898
|
-
|
|
8899
|
-
|
|
8900
|
-
|
|
8901
|
-
|
|
8902
|
-
|
|
8903
|
-
|
|
8904
|
-
|
|
8905
|
-
|
|
9175
|
+
field = input.required(/* @ts-ignore */
|
|
9176
|
+
...(ngDevMode ? [{ debugName: "field" }] : /* istanbul ignore next */ []));
|
|
9177
|
+
key = input.required(/* @ts-ignore */
|
|
9178
|
+
...(ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []));
|
|
9179
|
+
label = input(/* @ts-ignore */
|
|
9180
|
+
...(ngDevMode ? [undefined, { debugName: "label" }] : /* istanbul ignore next */ []));
|
|
9181
|
+
placeholder = input(/* @ts-ignore */
|
|
9182
|
+
...(ngDevMode ? [undefined, { debugName: "placeholder" }] : /* istanbul ignore next */ []));
|
|
9183
|
+
className = input('', /* @ts-ignore */
|
|
9184
|
+
...(ngDevMode ? [{ debugName: "className" }] : /* istanbul ignore next */ []));
|
|
9185
|
+
tabIndex = input(/* @ts-ignore */
|
|
9186
|
+
...(ngDevMode ? [undefined, { debugName: "tabIndex" }] : /* istanbul ignore next */ []));
|
|
9187
|
+
props = input(/* @ts-ignore */
|
|
9188
|
+
...(ngDevMode ? [undefined, { debugName: "props" }] : /* istanbul ignore next */ []));
|
|
9189
|
+
meta = input(/* @ts-ignore */
|
|
9190
|
+
...(ngDevMode ? [undefined, { debugName: "meta" }] : /* istanbul ignore next */ []));
|
|
9191
|
+
validationMessages = input(/* @ts-ignore */
|
|
9192
|
+
...(ngDevMode ? [undefined, { debugName: "validationMessages" }] : /* istanbul ignore next */ []));
|
|
9193
|
+
defaultValidationMessages = input(/* @ts-ignore */
|
|
9194
|
+
...(ngDevMode ? [undefined, { debugName: "defaultValidationMessages" }] : /* istanbul ignore next */ []));
|
|
8906
9195
|
_editor;
|
|
8907
9196
|
_editorValueSub = cleanSubscription();
|
|
8908
9197
|
_syncFromFieldSub = cleanSubscription();
|
|
@@ -8916,20 +9205,27 @@ class DbxForgeTextEditorFieldComponent {
|
|
|
8916
9205
|
labelSignal = computed(() => {
|
|
8917
9206
|
const l = this.label();
|
|
8918
9207
|
return typeof l === 'string' ? l : undefined;
|
|
8919
|
-
},
|
|
9208
|
+
}, /* @ts-ignore */
|
|
9209
|
+
...(ngDevMode ? [{ debugName: "labelSignal" }] : /* istanbul ignore next */ []));
|
|
8920
9210
|
placeholderSignal = computed(() => {
|
|
8921
9211
|
const p = this.placeholder();
|
|
8922
9212
|
return typeof p === 'string' ? p : '';
|
|
8923
|
-
},
|
|
8924
|
-
|
|
9213
|
+
}, /* @ts-ignore */
|
|
9214
|
+
...(ngDevMode ? [{ debugName: "placeholderSignal" }] : /* istanbul ignore next */ []));
|
|
9215
|
+
descriptionSignal = computed(() => this.props()?.hint, /* @ts-ignore */
|
|
9216
|
+
...(ngDevMode ? [{ debugName: "descriptionSignal" }] : /* istanbul ignore next */ []));
|
|
8925
9217
|
// Error handling
|
|
8926
9218
|
resolvedErrors = createResolvedErrorsSignal(this.field, this.validationMessages, this.defaultValidationMessages);
|
|
8927
9219
|
showErrors = shouldShowErrors(this.field);
|
|
8928
|
-
errorsToDisplaySignal = computed(() => (this.showErrors() ? this.resolvedErrors() : []),
|
|
9220
|
+
errorsToDisplaySignal = computed(() => (this.showErrors() ? this.resolvedErrors() : []), /* @ts-ignore */
|
|
9221
|
+
...(ngDevMode ? [{ debugName: "errorsToDisplaySignal" }] : /* istanbul ignore next */ []));
|
|
8929
9222
|
// ARIA
|
|
8930
|
-
hintIdSignal = computed(() => `${this.key()}-hint`,
|
|
8931
|
-
|
|
8932
|
-
|
|
9223
|
+
hintIdSignal = computed(() => `${this.key()}-hint`, /* @ts-ignore */
|
|
9224
|
+
...(ngDevMode ? [{ debugName: "hintIdSignal" }] : /* istanbul ignore next */ []));
|
|
9225
|
+
errorIdSignal = computed(() => `${this.key()}-error`, /* @ts-ignore */
|
|
9226
|
+
...(ngDevMode ? [{ debugName: "errorIdSignal" }] : /* istanbul ignore next */ []));
|
|
9227
|
+
ariaInvalidSignal = computed(() => (this.showErrors() ? 'true' : null), /* @ts-ignore */
|
|
9228
|
+
...(ngDevMode ? [{ debugName: "ariaInvalidSignal" }] : /* istanbul ignore next */ []));
|
|
8933
9229
|
ariaDescribedBySignal = computed(() => {
|
|
8934
9230
|
const errorId = this.errorIdSignal();
|
|
8935
9231
|
const hintId = this.hintIdSignal();
|
|
@@ -8938,7 +9234,8 @@ class DbxForgeTextEditorFieldComponent {
|
|
|
8938
9234
|
if (this.props()?.hint)
|
|
8939
9235
|
return hintId;
|
|
8940
9236
|
return null;
|
|
8941
|
-
},
|
|
9237
|
+
}, /* @ts-ignore */
|
|
9238
|
+
...(ngDevMode ? [{ debugName: "ariaDescribedBySignal" }] : /* istanbul ignore next */ []));
|
|
8942
9239
|
constructor() {
|
|
8943
9240
|
setupMetaTracking(this.elementRef, this.meta, { selector: 'ngx-editor' });
|
|
8944
9241
|
}
|
|
@@ -8949,7 +9246,8 @@ class DbxForgeTextEditorFieldComponent {
|
|
|
8949
9246
|
_disabledEffect = effect(() => {
|
|
8950
9247
|
const disabled = this.isDisabled();
|
|
8951
9248
|
toggleDisableFormControl(this.editorFormControl, disabled);
|
|
8952
|
-
},
|
|
9249
|
+
}, /* @ts-ignore */
|
|
9250
|
+
...(ngDevMode ? [{ debugName: "_disabledEffect" }] : /* istanbul ignore next */ []));
|
|
8953
9251
|
_syncFieldToEditor = effect(() => {
|
|
8954
9252
|
const fieldSignal = this.field();
|
|
8955
9253
|
const node = fieldSignal ? fieldSignal() : undefined;
|
|
@@ -8957,7 +9255,8 @@ class DbxForgeTextEditorFieldComponent {
|
|
|
8957
9255
|
if (fieldValue !== undefined && fieldValue !== this.editorFormControl.value) {
|
|
8958
9256
|
this.editorFormControl.setValue(fieldValue ?? '', { emitEvent: false });
|
|
8959
9257
|
}
|
|
8960
|
-
},
|
|
9258
|
+
}, /* @ts-ignore */
|
|
9259
|
+
...(ngDevMode ? [{ debugName: "_syncFieldToEditor" }] : /* istanbul ignore next */ []));
|
|
8961
9260
|
ngOnInit() {
|
|
8962
9261
|
this._editor = new Editor({});
|
|
8963
9262
|
// Watch for FormControl value changes (updated by ngx-editor's formControl binding)
|
|
@@ -8982,12 +9281,12 @@ class DbxForgeTextEditorFieldComponent {
|
|
|
8982
9281
|
node.value.set(value);
|
|
8983
9282
|
}
|
|
8984
9283
|
}
|
|
8985
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
8986
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
9284
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeTextEditorFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9285
|
+
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
9286
|
}
|
|
8988
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
9287
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeTextEditorFieldComponent, decorators: [{
|
|
8989
9288
|
type: Component,
|
|
8990
|
-
args: [{ selector: 'dbx-forge-texteditor-field', imports: [NgClass, NgxEditorModule, FormsModule, ReactiveFormsModule],
|
|
9289
|
+
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
9290
|
}], 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
9291
|
|
|
8993
9292
|
var texteditor_field_component = /*#__PURE__*/Object.freeze({
|
|
@@ -9108,30 +9407,39 @@ function _withValuesFromSource(field, source) {
|
|
|
9108
9407
|
* for coordinated add/remove/reorder operations.
|
|
9109
9408
|
*/
|
|
9110
9409
|
class DbxForgeArrayFieldWrapperComponent {
|
|
9111
|
-
fieldComponent = viewChild.required('fieldComponent', { read: ViewContainerRef });
|
|
9112
|
-
fieldInputs = input(
|
|
9410
|
+
fieldComponent = viewChild.required('fieldComponent', { ...(ngDevMode ? { debugName: "fieldComponent" } : /* istanbul ignore next */ {}), read: ViewContainerRef });
|
|
9411
|
+
fieldInputs = input(/* @ts-ignore */
|
|
9412
|
+
...(ngDevMode ? [undefined, { debugName: "fieldInputs" }] : /* istanbul ignore next */ []));
|
|
9113
9413
|
dispatcher = inject(EventDispatcher);
|
|
9114
9414
|
_formContextService = inject(DbxForgeFormContextService);
|
|
9115
9415
|
/**
|
|
9116
9416
|
* Wrapper config props passed via addWrappers({ type, props }).
|
|
9117
9417
|
* ng-forge delivers wrapper config properties (with `type` stripped) as individual inputs.
|
|
9118
9418
|
*/
|
|
9119
|
-
props = input(
|
|
9419
|
+
props = input(/* @ts-ignore */
|
|
9420
|
+
...(ngDevMode ? [undefined, { debugName: "props" }] : /* istanbul ignore next */ []));
|
|
9120
9421
|
// Disabled state
|
|
9121
9422
|
isDisabled = dbxForgeFieldDisabled();
|
|
9122
|
-
labelSignal = computed(() => this.props()?.label ?? '',
|
|
9123
|
-
|
|
9124
|
-
|
|
9125
|
-
|
|
9423
|
+
labelSignal = computed(() => this.props()?.label ?? '', /* @ts-ignore */
|
|
9424
|
+
...(ngDevMode ? [{ debugName: "labelSignal" }] : /* istanbul ignore next */ []));
|
|
9425
|
+
hintSignal = computed(() => this.props()?.hint ?? '', /* @ts-ignore */
|
|
9426
|
+
...(ngDevMode ? [{ debugName: "hintSignal" }] : /* istanbul ignore next */ []));
|
|
9427
|
+
disableRearrangeSignal = computed(() => this.props()?.disableRearrange ?? false, /* @ts-ignore */
|
|
9428
|
+
...(ngDevMode ? [{ debugName: "disableRearrangeSignal" }] : /* istanbul ignore next */ []));
|
|
9429
|
+
allowAddSignal = computed(() => this.props()?.allowAdd ?? true, /* @ts-ignore */
|
|
9430
|
+
...(ngDevMode ? [{ debugName: "allowAddSignal" }] : /* istanbul ignore next */ []));
|
|
9126
9431
|
addTextSignal = computed(() => {
|
|
9127
9432
|
const text = this.props()?.addText;
|
|
9128
9433
|
return typeof text === 'string' ? text : 'Add';
|
|
9129
|
-
},
|
|
9130
|
-
|
|
9434
|
+
}, /* @ts-ignore */
|
|
9435
|
+
...(ngDevMode ? [{ debugName: "addTextSignal" }] : /* istanbul ignore next */ []));
|
|
9436
|
+
addButtonStyleSignal = computed(() => this.props()?.addButtonStyle ?? { type: 'raised', color: 'primary' }, /* @ts-ignore */
|
|
9437
|
+
...(ngDevMode ? [{ debugName: "addButtonStyleSignal" }] : /* istanbul ignore next */ []));
|
|
9131
9438
|
/**
|
|
9132
9439
|
* Current item count read reactively from the form value.
|
|
9133
9440
|
*/
|
|
9134
|
-
itemCountSignal = computed(() => this._readArrayValue().length,
|
|
9441
|
+
itemCountSignal = computed(() => this._readArrayValue().length, /* @ts-ignore */
|
|
9442
|
+
...(ngDevMode ? [{ debugName: "itemCountSignal" }] : /* istanbul ignore next */ []));
|
|
9135
9443
|
/**
|
|
9136
9444
|
* Whether the array has reached its configured `maxLength`. When true, the
|
|
9137
9445
|
* add button is disabled. Returns false when `maxLength` is not set.
|
|
@@ -9140,7 +9448,8 @@ class DbxForgeArrayFieldWrapperComponent {
|
|
|
9140
9448
|
const itemCount = this.itemCountSignal();
|
|
9141
9449
|
const maxLength = this.props()?.maxLength;
|
|
9142
9450
|
return typeof maxLength === 'number' && itemCount >= maxLength;
|
|
9143
|
-
},
|
|
9451
|
+
}, /* @ts-ignore */
|
|
9452
|
+
...(ngDevMode ? [{ debugName: "atMaxLengthSignal" }] : /* istanbul ignore next */ []));
|
|
9144
9453
|
/**
|
|
9145
9454
|
* Add button disabled state — combines the standard disabled flag with the
|
|
9146
9455
|
* `maxLength` cap so clicking past the limit is prevented.
|
|
@@ -9148,7 +9457,8 @@ class DbxForgeArrayFieldWrapperComponent {
|
|
|
9148
9457
|
addButtonDisabledSignal = computed(() => {
|
|
9149
9458
|
const atMaxLength = this.atMaxLengthSignal();
|
|
9150
9459
|
return this.isDisabled() || atMaxLength;
|
|
9151
|
-
},
|
|
9460
|
+
}, /* @ts-ignore */
|
|
9461
|
+
...(ngDevMode ? [{ debugName: "addButtonDisabledSignal" }] : /* istanbul ignore next */ []));
|
|
9152
9462
|
drop(event) {
|
|
9153
9463
|
if (event.previousIndex === event.currentIndex) {
|
|
9154
9464
|
return;
|
|
@@ -9270,12 +9580,12 @@ class DbxForgeArrayFieldWrapperComponent {
|
|
|
9270
9580
|
const boundedTo = Math.max(0, Math.min(toIndex, items.length));
|
|
9271
9581
|
this.dispatcher.dispatch(arrayEvent(key).insertAt(boundedTo, templateWithValues));
|
|
9272
9582
|
}
|
|
9273
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
9274
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
9583
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeArrayFieldWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9584
|
+
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
9585
|
}
|
|
9276
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
9586
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeArrayFieldWrapperComponent, decorators: [{
|
|
9277
9587
|
type: Component,
|
|
9278
|
-
args: [{ selector: 'dbx-forge-array-field-wrapper', imports: [DynamicTextPipe, AsyncPipe, CdkDropList, DbxButtonComponent],
|
|
9588
|
+
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
9589
|
}], 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
9590
|
|
|
9281
9591
|
var arrayField_wrapper_component = /*#__PURE__*/Object.freeze({
|
|
@@ -9304,17 +9614,21 @@ const DEFAULT_DUPLICATE_BUTTON = {
|
|
|
9304
9614
|
* a drag handle, item label, and remove button.
|
|
9305
9615
|
*/
|
|
9306
9616
|
class DbxForgeArrayFieldElementWrapperComponent {
|
|
9307
|
-
fieldComponent = viewChild.required('fieldComponent', { read: ViewContainerRef });
|
|
9617
|
+
fieldComponent = viewChild.required('fieldComponent', { ...(ngDevMode ? { debugName: "fieldComponent" } : /* istanbul ignore next */ {}), read: ViewContainerRef });
|
|
9308
9618
|
parent = inject(DbxForgeArrayFieldWrapperComponent);
|
|
9309
9619
|
formContextService = inject(DbxForgeFormContextService);
|
|
9310
9620
|
arrayContext = inject(ARRAY_CONTEXT);
|
|
9311
9621
|
// Disabled state
|
|
9312
9622
|
isDisabled = dbxForgeFieldDisabled();
|
|
9313
9623
|
// Props from wrapper config (ng-forge passes wrapper config properties as individual inputs)
|
|
9314
|
-
fieldInputs = input(
|
|
9315
|
-
|
|
9316
|
-
|
|
9317
|
-
|
|
9624
|
+
fieldInputs = input(/* @ts-ignore */
|
|
9625
|
+
...(ngDevMode ? [undefined, { debugName: "fieldInputs" }] : /* istanbul ignore next */ []));
|
|
9626
|
+
props = input(/* @ts-ignore */
|
|
9627
|
+
...(ngDevMode ? [undefined, { debugName: "props" }] : /* istanbul ignore next */ []));
|
|
9628
|
+
disableRearrangeSignal = computed(() => this.props()?.disableRearrange ?? false, /* @ts-ignore */
|
|
9629
|
+
...(ngDevMode ? [{ debugName: "disableRearrangeSignal" }] : /* istanbul ignore next */ []));
|
|
9630
|
+
showIndexChipSignal = computed(() => this.props()?.showIndexChip ?? true, /* @ts-ignore */
|
|
9631
|
+
...(ngDevMode ? [{ debugName: "showIndexChipSignal" }] : /* istanbul ignore next */ []));
|
|
9318
9632
|
indexChipDisplaySignal = computed(() => {
|
|
9319
9633
|
const displayFn = this.props()?.indexChipDisplay;
|
|
9320
9634
|
let result = DEFAULT_INDEX_CHIP_DISPLAY;
|
|
@@ -9323,7 +9637,8 @@ class DbxForgeArrayFieldElementWrapperComponent {
|
|
|
9323
9637
|
result = displayFn(ctx);
|
|
9324
9638
|
}
|
|
9325
9639
|
return result;
|
|
9326
|
-
},
|
|
9640
|
+
}, /* @ts-ignore */
|
|
9641
|
+
...(ngDevMode ? [{ debugName: "indexChipDisplaySignal" }] : /* istanbul ignore next */ []));
|
|
9327
9642
|
allowRemoveSignal = computed(() => {
|
|
9328
9643
|
const allowRemove = this.props()?.allowRemove;
|
|
9329
9644
|
let result;
|
|
@@ -9335,12 +9650,15 @@ class DbxForgeArrayFieldElementWrapperComponent {
|
|
|
9335
9650
|
result = allowRemove ?? true;
|
|
9336
9651
|
}
|
|
9337
9652
|
return result;
|
|
9338
|
-
},
|
|
9653
|
+
}, /* @ts-ignore */
|
|
9654
|
+
...(ngDevMode ? [{ debugName: "allowRemoveSignal" }] : /* istanbul ignore next */ []));
|
|
9339
9655
|
removeTextSignal = computed(() => {
|
|
9340
9656
|
const text = this.props()?.removeText;
|
|
9341
9657
|
return typeof text === 'string' ? text : 'Remove';
|
|
9342
|
-
},
|
|
9343
|
-
|
|
9658
|
+
}, /* @ts-ignore */
|
|
9659
|
+
...(ngDevMode ? [{ debugName: "removeTextSignal" }] : /* istanbul ignore next */ []));
|
|
9660
|
+
removeButtonStyleSignal = computed(() => this.props()?.removeButtonStyle ?? { type: 'stroked', color: 'warn' }, /* @ts-ignore */
|
|
9661
|
+
...(ngDevMode ? [{ debugName: "removeButtonStyleSignal" }] : /* istanbul ignore next */ []));
|
|
9344
9662
|
/**
|
|
9345
9663
|
* Resolves {@link DbxForgeArrayFieldElementWrapperProps.allowDuplicate} to either
|
|
9346
9664
|
* `false` (hide the button) or a target {@link IndexNumber}. `true` maps to the
|
|
@@ -9367,8 +9685,10 @@ class DbxForgeArrayFieldElementWrapperComponent {
|
|
|
9367
9685
|
}
|
|
9368
9686
|
}
|
|
9369
9687
|
return result;
|
|
9370
|
-
},
|
|
9371
|
-
|
|
9688
|
+
}, /* @ts-ignore */
|
|
9689
|
+
...(ngDevMode ? [{ debugName: "duplicateTargetIndexSignal" }] : /* istanbul ignore next */ []));
|
|
9690
|
+
allowDuplicateSignal = computed(() => this.duplicateTargetIndexSignal() !== false, /* @ts-ignore */
|
|
9691
|
+
...(ngDevMode ? [{ debugName: "allowDuplicateSignal" }] : /* istanbul ignore next */ []));
|
|
9372
9692
|
duplicateButtonSignal = computed(() => {
|
|
9373
9693
|
const duplicateButton = this.props()?.duplicateButton;
|
|
9374
9694
|
let result;
|
|
@@ -9380,7 +9700,8 @@ class DbxForgeArrayFieldElementWrapperComponent {
|
|
|
9380
9700
|
result = duplicateButton ?? DEFAULT_DUPLICATE_BUTTON;
|
|
9381
9701
|
}
|
|
9382
9702
|
return result;
|
|
9383
|
-
},
|
|
9703
|
+
}, /* @ts-ignore */
|
|
9704
|
+
...(ngDevMode ? [{ debugName: "duplicateButtonSignal" }] : /* istanbul ignore next */ []));
|
|
9384
9705
|
labelSignal = computed(() => {
|
|
9385
9706
|
const props = this.props();
|
|
9386
9707
|
const index = this.arrayContext.index();
|
|
@@ -9404,7 +9725,8 @@ class DbxForgeArrayFieldElementWrapperComponent {
|
|
|
9404
9725
|
}
|
|
9405
9726
|
}
|
|
9406
9727
|
return result;
|
|
9407
|
-
},
|
|
9728
|
+
}, /* @ts-ignore */
|
|
9729
|
+
...(ngDevMode ? [{ debugName: "labelSignal" }] : /* istanbul ignore next */ []));
|
|
9408
9730
|
removeItem() {
|
|
9409
9731
|
this.parent.removeItem(this.arrayContext.index());
|
|
9410
9732
|
}
|
|
@@ -9414,12 +9736,12 @@ class DbxForgeArrayFieldElementWrapperComponent {
|
|
|
9414
9736
|
this.parent.duplicateItem(this.arrayContext.index(), targetIndex);
|
|
9415
9737
|
}
|
|
9416
9738
|
}
|
|
9417
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
9418
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
9739
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeArrayFieldElementWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9740
|
+
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
9741
|
}
|
|
9420
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
9742
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeArrayFieldElementWrapperComponent, decorators: [{
|
|
9421
9743
|
type: Component,
|
|
9422
|
-
args: [{ selector: 'dbx-forge-array-field-element-wrapper', imports: [CdkDrag, CdkDragHandle, CdkDragPlaceholder, DbxChipDirective, MatIconModule, MatButtonModule, DbxButtonComponent, DbxButtonSpacerDirective],
|
|
9744
|
+
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
9745
|
}], 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
9746
|
|
|
9425
9747
|
var arrayField_element_wrapper_component = /*#__PURE__*/Object.freeze({
|
|
@@ -9435,18 +9757,22 @@ var arrayField_element_wrapper_component = /*#__PURE__*/Object.freeze({
|
|
|
9435
9757
|
* and the parent {@link FieldSignalContext} to observe form validation state.
|
|
9436
9758
|
*/
|
|
9437
9759
|
class DbxForgeFormFieldWrapperComponent {
|
|
9438
|
-
fieldComponent = viewChild.required('fieldComponent', { read: ViewContainerRef });
|
|
9760
|
+
fieldComponent = viewChild.required('fieldComponent', { ...(ngDevMode ? { debugName: "fieldComponent" } : /* istanbul ignore next */ {}), read: ViewContainerRef });
|
|
9439
9761
|
// Props from wrapper config
|
|
9440
|
-
fieldInputs = input(
|
|
9762
|
+
fieldInputs = input(/* @ts-ignore */
|
|
9763
|
+
...(ngDevMode ? [undefined, { debugName: "fieldInputs" }] : /* istanbul ignore next */ []));
|
|
9441
9764
|
/**
|
|
9442
9765
|
* Wrapper config props passed via `addWrappers({ type, props })`.
|
|
9443
9766
|
* ng-forge delivers wrapper config properties (with `type` stripped) as individual inputs.
|
|
9444
9767
|
*/
|
|
9445
|
-
props = input(
|
|
9768
|
+
props = input(/* @ts-ignore */
|
|
9769
|
+
...(ngDevMode ? [undefined, { debugName: "props" }] : /* istanbul ignore next */ []));
|
|
9446
9770
|
// Read-only field tree from the wrapped field
|
|
9447
|
-
formStateSignal = computed(() => this.fieldInputs()?.field,
|
|
9771
|
+
formStateSignal = computed(() => this.fieldInputs()?.field, /* @ts-ignore */
|
|
9772
|
+
...(ngDevMode ? [{ debugName: "formStateSignal" }] : /* istanbul ignore next */ []));
|
|
9448
9773
|
// Disabled state
|
|
9449
|
-
isDisabledSignal = computed(() => this.formStateSignal()?.disabled(),
|
|
9774
|
+
isDisabledSignal = computed(() => this.formStateSignal()?.disabled(), /* @ts-ignore */
|
|
9775
|
+
...(ngDevMode ? [{ debugName: "isDisabledSignal" }] : /* istanbul ignore next */ []));
|
|
9450
9776
|
/**
|
|
9451
9777
|
* Resolved notch label. Prefers a wrapper-level `props.label` override and
|
|
9452
9778
|
* falls back to the wrapped field's own label.
|
|
@@ -9454,13 +9780,18 @@ class DbxForgeFormFieldWrapperComponent {
|
|
|
9454
9780
|
labelSignal = computed(() => {
|
|
9455
9781
|
const fieldInputs = this.fieldInputs();
|
|
9456
9782
|
return this.props()?.label ?? fieldInputs?.label;
|
|
9457
|
-
},
|
|
9458
|
-
|
|
9459
|
-
|
|
9783
|
+
}, /* @ts-ignore */
|
|
9784
|
+
...(ngDevMode ? [{ debugName: "labelSignal" }] : /* istanbul ignore next */ []));
|
|
9785
|
+
hintSignal = computed(() => this.fieldInputs()?.props?.hint, /* @ts-ignore */
|
|
9786
|
+
...(ngDevMode ? [{ debugName: "hintSignal" }] : /* istanbul ignore next */ []));
|
|
9787
|
+
classNameSignal = computed(() => this.fieldInputs()?.className ?? '', /* @ts-ignore */
|
|
9788
|
+
...(ngDevMode ? [{ debugName: "classNameSignal" }] : /* istanbul ignore next */ []));
|
|
9460
9789
|
// Key for ARIA IDs
|
|
9461
|
-
keySignal = computed(() => this.fieldInputs()?.key ?? '',
|
|
9790
|
+
keySignal = computed(() => this.fieldInputs()?.key ?? '', /* @ts-ignore */
|
|
9791
|
+
...(ngDevMode ? [{ debugName: "keySignal" }] : /* istanbul ignore next */ []));
|
|
9462
9792
|
// Validation state from form tree
|
|
9463
|
-
childErrorsSignal = computed(() => this.formStateSignal()?.errors(),
|
|
9793
|
+
childErrorsSignal = computed(() => this.formStateSignal()?.errors(), /* @ts-ignore */
|
|
9794
|
+
...(ngDevMode ? [{ debugName: "childErrorsSignal" }] : /* istanbul ignore next */ []));
|
|
9464
9795
|
/**
|
|
9465
9796
|
* Whether errors should be displayed.
|
|
9466
9797
|
*
|
|
@@ -9471,7 +9802,8 @@ class DbxForgeFormFieldWrapperComponent {
|
|
|
9471
9802
|
showErrorsSignal = computed(() => {
|
|
9472
9803
|
const childErrors = this.childErrorsSignal();
|
|
9473
9804
|
return (this.formStateSignal()?.invalid() ?? false) && (childErrors?.length ?? 0) > 0;
|
|
9474
|
-
},
|
|
9805
|
+
}, /* @ts-ignore */
|
|
9806
|
+
...(ngDevMode ? [{ debugName: "showErrorsSignal" }] : /* istanbul ignore next */ []));
|
|
9475
9807
|
hasError = this.showErrorsSignal;
|
|
9476
9808
|
/**
|
|
9477
9809
|
* Resolves the first error message using the same priority as ng-forge's
|
|
@@ -9491,21 +9823,26 @@ class DbxForgeFormFieldWrapperComponent {
|
|
|
9491
9823
|
const defaultMessages = inputs?.defaultValidationMessages ?? {};
|
|
9492
9824
|
const message = fieldMessages[error.kind] ?? defaultMessages[error.kind] ?? error.message ?? error.kind;
|
|
9493
9825
|
return interpolateParams(message, error);
|
|
9494
|
-
},
|
|
9826
|
+
}, /* @ts-ignore */
|
|
9827
|
+
...(ngDevMode ? [{ debugName: "firstErrorMessageSignal" }] : /* istanbul ignore next */ []));
|
|
9495
9828
|
/**
|
|
9496
9829
|
* Whether any child field has `required` state, used to show the asterisk in the label.
|
|
9497
9830
|
*/
|
|
9498
|
-
isRequiredSignal = computed(() => this.formStateSignal()?.required(),
|
|
9831
|
+
isRequiredSignal = computed(() => this.formStateSignal()?.required(), /* @ts-ignore */
|
|
9832
|
+
...(ngDevMode ? [{ debugName: "isRequiredSignal" }] : /* istanbul ignore next */ []));
|
|
9499
9833
|
// ARIA IDs
|
|
9500
|
-
labelIdSignal = computed(() => `${this.keySignal()}-label`,
|
|
9501
|
-
|
|
9502
|
-
|
|
9503
|
-
|
|
9504
|
-
|
|
9505
|
-
}
|
|
9506
|
-
i0.ɵɵ
|
|
9834
|
+
labelIdSignal = computed(() => `${this.keySignal()}-label`, /* @ts-ignore */
|
|
9835
|
+
...(ngDevMode ? [{ debugName: "labelIdSignal" }] : /* istanbul ignore next */ []));
|
|
9836
|
+
errorIdSignal = computed(() => `${this.keySignal()}-error`, /* @ts-ignore */
|
|
9837
|
+
...(ngDevMode ? [{ debugName: "errorIdSignal" }] : /* istanbul ignore next */ []));
|
|
9838
|
+
hintIdSignal = computed(() => `${this.keySignal()}-hint`, /* @ts-ignore */
|
|
9839
|
+
...(ngDevMode ? [{ debugName: "hintIdSignal" }] : /* istanbul ignore next */ []));
|
|
9840
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeFormFieldWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9841
|
+
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" }] });
|
|
9842
|
+
}
|
|
9843
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeFormFieldWrapperComponent, decorators: [{
|
|
9507
9844
|
type: Component,
|
|
9508
|
-
args: [{ selector: 'dbx-forge-form-field-wrapper', imports: [DynamicTextPipe, AsyncPipe],
|
|
9845
|
+
args: [{ selector: 'dbx-forge-form-field-wrapper', imports: [DynamicTextPipe, AsyncPipe], host: {
|
|
9509
9846
|
// `mat-form-field-animations-enabled` is intentionally retained: it gates
|
|
9510
9847
|
// the 300ms subscript fade animation via Material's
|
|
9511
9848
|
// `.mat-form-field-animations-enabled .mat-mdc-form-field-hint-wrapper { animation-duration: 300ms; }`
|
|
@@ -9643,22 +9980,23 @@ function dbxForgeStyleWrapper(config) {
|
|
|
9643
9980
|
* pending signal to detect when async validators are running.
|
|
9644
9981
|
*/
|
|
9645
9982
|
class DbxForgeWorkingWrapperComponent {
|
|
9646
|
-
fieldComponent = viewChild.required('fieldComponent', { read: ViewContainerRef });
|
|
9983
|
+
fieldComponent = viewChild.required('fieldComponent', { ...(ngDevMode ? { debugName: "fieldComponent" } : /* istanbul ignore next */ {}), read: ViewContainerRef });
|
|
9647
9984
|
fieldSignalContext = inject(FIELD_SIGNAL_CONTEXT);
|
|
9648
9985
|
showLoadingSignal = computed(() => {
|
|
9649
9986
|
return this.fieldSignalContext.form().pending();
|
|
9650
|
-
},
|
|
9651
|
-
|
|
9652
|
-
static
|
|
9987
|
+
}, /* @ts-ignore */
|
|
9988
|
+
...(ngDevMode ? [{ debugName: "showLoadingSignal" }] : /* istanbul ignore next */ []));
|
|
9989
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeWorkingWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9990
|
+
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
9991
|
<div class="dbx-forge-working-wrapper">
|
|
9654
9992
|
<ng-container #fieldComponent></ng-container>
|
|
9655
9993
|
@if (showLoadingSignal()) {
|
|
9656
9994
|
<mat-progress-bar mode="indeterminate" class="dbx-forge-working-bar"></mat-progress-bar>
|
|
9657
9995
|
}
|
|
9658
9996
|
</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"] }]
|
|
9997
|
+
`, 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
9998
|
}
|
|
9661
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
9999
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeWorkingWrapperComponent, decorators: [{
|
|
9662
10000
|
type: Component,
|
|
9663
10001
|
args: [{
|
|
9664
10002
|
selector: 'dbx-forge-working-wrapper',
|
|
@@ -9670,9 +10008,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
|
|
|
9670
10008
|
}
|
|
9671
10009
|
</div>
|
|
9672
10010
|
`,
|
|
9673
|
-
imports: [MatProgressBarModule]
|
|
9674
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
9675
|
-
standalone: true
|
|
10011
|
+
imports: [MatProgressBarModule]
|
|
9676
10012
|
}]
|
|
9677
10013
|
}], propDecorators: { fieldComponent: [{ type: i0.ViewChild, args: ['fieldComponent', { ...{ read: ViewContainerRef }, isSignal: true }] }] } });
|
|
9678
10014
|
|
|
@@ -9699,11 +10035,11 @@ const dbxForgeFormComponentImports = [DbxForgeFormComponent];
|
|
|
9699
10035
|
* Default imports module for a view that extends AbstractSyncForgeFormDirective or AbstractConfigAsyncForgeFormDirective.
|
|
9700
10036
|
*/
|
|
9701
10037
|
class DbxForgeFormComponentImportsModule {
|
|
9702
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
9703
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
9704
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
10038
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeFormComponentImportsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
10039
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeFormComponentImportsModule, imports: [DbxForgeFormComponent], exports: [DbxForgeFormComponent] });
|
|
10040
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeFormComponentImportsModule, imports: [dbxForgeFormComponentImports] });
|
|
9705
10041
|
}
|
|
9706
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
10042
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeFormComponentImportsModule, decorators: [{
|
|
9707
10043
|
type: NgModule,
|
|
9708
10044
|
args: [{
|
|
9709
10045
|
imports: dbxForgeFormComponentImports,
|
|
@@ -9717,7 +10053,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
|
|
|
9717
10053
|
*/
|
|
9718
10054
|
class AbstractForgeFormDirective {
|
|
9719
10055
|
context = inject((DbxForgeFormContext), { self: true });
|
|
9720
|
-
disabled = input(false,
|
|
10056
|
+
disabled = input(false, /* @ts-ignore */
|
|
10057
|
+
...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
|
|
9721
10058
|
_disabledEffect = effect(() => {
|
|
9722
10059
|
if (this.disabled()) {
|
|
9723
10060
|
this.context.setDisabled('directive', true);
|
|
@@ -9725,7 +10062,8 @@ class AbstractForgeFormDirective {
|
|
|
9725
10062
|
else {
|
|
9726
10063
|
this.context.setDisabled('directive', false);
|
|
9727
10064
|
}
|
|
9728
|
-
},
|
|
10065
|
+
}, /* @ts-ignore */
|
|
10066
|
+
...(ngDevMode ? [{ debugName: "_disabledEffect" }] : /* istanbul ignore next */ []));
|
|
9729
10067
|
getValue() {
|
|
9730
10068
|
return this.context.getValue();
|
|
9731
10069
|
}
|
|
@@ -9741,10 +10079,10 @@ class AbstractForgeFormDirective {
|
|
|
9741
10079
|
setDisabled(key, disabled) {
|
|
9742
10080
|
this.context.setDisabled(key, disabled);
|
|
9743
10081
|
}
|
|
9744
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
9745
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
10082
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: AbstractForgeFormDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
10083
|
+
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
10084
|
}
|
|
9747
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
10085
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: AbstractForgeFormDirective, decorators: [{
|
|
9748
10086
|
type: Directive
|
|
9749
10087
|
}], propDecorators: { disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }] } });
|
|
9750
10088
|
/**
|
|
@@ -9754,10 +10092,10 @@ class AbstractSyncForgeFormDirective extends AbstractForgeFormDirective {
|
|
|
9754
10092
|
ngOnInit() {
|
|
9755
10093
|
this.context.config = this.formConfig;
|
|
9756
10094
|
}
|
|
9757
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
9758
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
10095
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: AbstractSyncForgeFormDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
10096
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.4", type: AbstractSyncForgeFormDirective, isStandalone: true, usesInheritance: true, ngImport: i0 });
|
|
9759
10097
|
}
|
|
9760
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
10098
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: AbstractSyncForgeFormDirective, decorators: [{
|
|
9761
10099
|
type: Directive
|
|
9762
10100
|
}] });
|
|
9763
10101
|
/**
|
|
@@ -9771,10 +10109,10 @@ class AbstractAsyncForgeFormDirective extends AbstractForgeFormDirective {
|
|
|
9771
10109
|
this.context.config = formConfig;
|
|
9772
10110
|
});
|
|
9773
10111
|
}
|
|
9774
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
9775
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
10112
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: AbstractAsyncForgeFormDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
10113
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.4", type: AbstractAsyncForgeFormDirective, isStandalone: true, usesInheritance: true, ngImport: i0 });
|
|
9776
10114
|
}
|
|
9777
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
10115
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: AbstractAsyncForgeFormDirective, decorators: [{
|
|
9778
10116
|
type: Directive
|
|
9779
10117
|
}] });
|
|
9780
10118
|
/**
|
|
@@ -9788,12 +10126,13 @@ class AbstractConfigAsyncForgeFormDirective extends AbstractAsyncForgeFormDirect
|
|
|
9788
10126
|
/**
|
|
9789
10127
|
* The forge form config input.
|
|
9790
10128
|
*/
|
|
9791
|
-
config = model(
|
|
10129
|
+
config = model(/* @ts-ignore */
|
|
10130
|
+
...(ngDevMode ? [undefined, { debugName: "config" }] : /* istanbul ignore next */ []));
|
|
9792
10131
|
currentConfig$ = toObservable(this.config).pipe(maybeValueFromObservableOrValue());
|
|
9793
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
9794
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
10132
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: AbstractConfigAsyncForgeFormDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
10133
|
+
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
10134
|
}
|
|
9796
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
10135
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: AbstractConfigAsyncForgeFormDirective, decorators: [{
|
|
9797
10136
|
type: Directive
|
|
9798
10137
|
}], propDecorators: { config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: false }] }, { type: i0.Output, args: ["configChange"] }] } });
|
|
9799
10138
|
|
|
@@ -9804,18 +10143,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
|
|
|
9804
10143
|
*/
|
|
9805
10144
|
class DbxForgeAsyncConfigFormComponent extends AbstractConfigAsyncForgeFormDirective {
|
|
9806
10145
|
formConfig$ = this.currentConfig$;
|
|
9807
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
9808
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
10146
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeAsyncConfigFormComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
10147
|
+
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
10148
|
}
|
|
9810
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
10149
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgeAsyncConfigFormComponent, decorators: [{
|
|
9811
10150
|
type: Component,
|
|
9812
10151
|
args: [{
|
|
9813
10152
|
selector: 'dbx-forge-form',
|
|
9814
10153
|
template: DBX_FORGE_FORM_COMPONENT_TEMPLATE,
|
|
9815
10154
|
providers: provideDbxForgeFormContext(),
|
|
9816
|
-
imports: [DbxForgeFormComponentImportsModule]
|
|
9817
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
9818
|
-
standalone: true
|
|
10155
|
+
imports: [DbxForgeFormComponentImportsModule]
|
|
9819
10156
|
}]
|
|
9820
10157
|
}] });
|
|
9821
10158
|
|
|
@@ -9899,12 +10236,12 @@ const DBX_FORGE_FIELD_TYPES = [
|
|
|
9899
10236
|
// -- Wrapper-related fields --
|
|
9900
10237
|
{
|
|
9901
10238
|
name: FORGE_EXPAND_FIELD_TYPE_NAME,
|
|
9902
|
-
loadComponent: () => import('./dereekb-dbx-form-expand.field.component-
|
|
10239
|
+
loadComponent: () => import('./dereekb-dbx-form-expand.field.component-BO_8nxHg.mjs').then((m) => m.DbxForgeExpandFieldComponent),
|
|
9903
10240
|
mapper: valueFieldMapper
|
|
9904
10241
|
},
|
|
9905
10242
|
{
|
|
9906
10243
|
name: FORGE_INFO_BUTTON_FIELD_TYPE_NAME,
|
|
9907
|
-
loadComponent: () => import('./dereekb-dbx-form-info.field.component-
|
|
10244
|
+
loadComponent: () => import('./dereekb-dbx-form-info.field.component-CImBKYE7.mjs').then((m) => m.DbxForgeInfoButtonFieldComponent),
|
|
9908
10245
|
mapper: valueFieldMapper
|
|
9909
10246
|
}
|
|
9910
10247
|
];
|
|
@@ -9918,15 +10255,15 @@ const DBX_FORGE_FIELD_WRAPPER_TYPES = [
|
|
|
9918
10255
|
},
|
|
9919
10256
|
{
|
|
9920
10257
|
wrapperName: DBX_FORGE_SECTION_WRAPPER_TYPE_NAME,
|
|
9921
|
-
loadComponent: () => import('./dereekb-dbx-form-section.wrapper.component-
|
|
10258
|
+
loadComponent: () => import('./dereekb-dbx-form-section.wrapper.component-CpXSvC5e.mjs').then((m) => m.DbxForgeSectionWrapperComponent)
|
|
9922
10259
|
},
|
|
9923
10260
|
{
|
|
9924
10261
|
wrapperName: DBX_FORGE_STYLE_WRAPPER_TYPE_NAME,
|
|
9925
|
-
loadComponent: () => import('./dereekb-dbx-form-style.wrapper.component-
|
|
10262
|
+
loadComponent: () => import('./dereekb-dbx-form-style.wrapper.component-CPzzgQXk.mjs').then((m) => m.DbxForgeStyleWrapperComponent)
|
|
9926
10263
|
},
|
|
9927
10264
|
{
|
|
9928
10265
|
wrapperName: DBX_FORGE_INFO_WRAPPER_TYPE_NAME,
|
|
9929
|
-
loadComponent: () => import('./dereekb-dbx-form-info.wrapper.component-
|
|
10266
|
+
loadComponent: () => import('./dereekb-dbx-form-info.wrapper.component-DdDCQ47C.mjs').then((m) => m.DbxForgeInfoWrapperComponent)
|
|
9930
10267
|
},
|
|
9931
10268
|
{
|
|
9932
10269
|
wrapperName: DBX_FORGE_WORKING_WRAPPER_TYPE_NAME,
|
|
@@ -9934,7 +10271,7 @@ const DBX_FORGE_FIELD_WRAPPER_TYPES = [
|
|
|
9934
10271
|
},
|
|
9935
10272
|
{
|
|
9936
10273
|
wrapperName: DBX_FORGE_FLEX_WRAPPER_TYPE_NAME,
|
|
9937
|
-
loadComponent: () => import('./dereekb-dbx-form-flex.wrapper.component-
|
|
10274
|
+
loadComponent: () => import('./dereekb-dbx-form-flex.wrapper.component-C54ACtzt.mjs').then((m) => m.DbxForgeFlexWrapperComponent)
|
|
9938
10275
|
},
|
|
9939
10276
|
{
|
|
9940
10277
|
wrapperName: DBX_FORGE_ARRAY_FIELD_WRAPPER_NAME,
|
|
@@ -9976,11 +10313,9 @@ function provideDbxForgeFormFieldDeclarations(...additionalFieldTypes) {
|
|
|
9976
10313
|
* Creates a forge field array for a simple search form with a single text input.
|
|
9977
10314
|
*
|
|
9978
10315
|
* @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.
|
|
10316
|
+
* @returns The forge field defs for the search form.
|
|
9982
10317
|
*/
|
|
9983
|
-
function
|
|
10318
|
+
function dbxForgePresetSearchFormFields(config) {
|
|
9984
10319
|
const { key = 'search', label, placeholder = 'Search', props } = config ?? {};
|
|
9985
10320
|
const field = dbxForgeTextField({
|
|
9986
10321
|
key,
|
|
@@ -9992,20 +10327,19 @@ function dbxFormSearchFormFields(config) {
|
|
|
9992
10327
|
return [field];
|
|
9993
10328
|
}
|
|
9994
10329
|
|
|
9995
|
-
|
|
9996
|
-
class DbxFormSearchFormComponent extends AbstractConfigAsyncForgeFormDirective {
|
|
10330
|
+
class DbxForgePresetSearchFormComponent extends AbstractConfigAsyncForgeFormDirective {
|
|
9997
10331
|
// eslint-disable-next-line @angular-eslint/no-output-native
|
|
9998
10332
|
search = output();
|
|
9999
|
-
formConfig$ = this.currentConfig$.pipe(map((config) => ({ fields:
|
|
10333
|
+
formConfig$ = this.currentConfig$.pipe(map((config) => ({ fields: dbxForgePresetSearchFormFields(config) })));
|
|
10000
10334
|
searchChanged(value) {
|
|
10001
10335
|
this.search.emit(value?.search ?? '');
|
|
10002
10336
|
}
|
|
10003
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
10004
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
10337
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgePresetSearchFormComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
10338
|
+
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
10339
|
<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"] }]
|
|
10340
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: DbxForgeFormComponentImportsModule }, { kind: "component", type: DbxForgeFormComponent, selector: "dbx-forge" }, { kind: "directive", type: DbxFormValueChangeDirective, selector: "[dbxFormValueChange]", outputs: ["dbxFormValueChange"] }] });
|
|
10007
10341
|
}
|
|
10008
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
10342
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxForgePresetSearchFormComponent, decorators: [{
|
|
10009
10343
|
type: Component,
|
|
10010
10344
|
args: [{
|
|
10011
10345
|
selector: 'dbx-form-search-form',
|
|
@@ -10014,8 +10348,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
|
|
|
10014
10348
|
`,
|
|
10015
10349
|
providers: provideDbxForgeFormContext(),
|
|
10016
10350
|
imports: [DbxForgeFormComponentImportsModule, DbxFormValueChangeDirective],
|
|
10017
|
-
standalone: true,
|
|
10018
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
10019
10351
|
host: {
|
|
10020
10352
|
class: 'd-block dbx-form-search-form'
|
|
10021
10353
|
}
|
|
@@ -10219,23 +10551,6 @@ function dbxForgeUsernameLoginField(username) {
|
|
|
10219
10551
|
}
|
|
10220
10552
|
return result;
|
|
10221
10553
|
}
|
|
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
10554
|
|
|
10240
10555
|
/**
|
|
10241
10556
|
* A function that takes a search string and returns matching string results.
|
|
@@ -10514,17 +10829,16 @@ function pickableValueFieldValuesConfigForStaticLabeledValues(input) {
|
|
|
10514
10829
|
* @selector `dbx-form-spacer,[dbxFormSpacer],.dbx-form-spacer`
|
|
10515
10830
|
*/
|
|
10516
10831
|
class DbxFormSpacerDirective {
|
|
10517
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
10518
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
10832
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxFormSpacerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
10833
|
+
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
10834
|
}
|
|
10520
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
10835
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: DbxFormSpacerDirective, decorators: [{
|
|
10521
10836
|
type: Directive,
|
|
10522
10837
|
args: [{
|
|
10523
10838
|
selector: 'dbx-form-spacer,[dbxFormSpacer],.dbx-form-spacer',
|
|
10524
10839
|
host: {
|
|
10525
10840
|
class: 'd-block dbx-form-spacer'
|
|
10526
|
-
}
|
|
10527
|
-
standalone: true
|
|
10841
|
+
}
|
|
10528
10842
|
}]
|
|
10529
10843
|
}] });
|
|
10530
10844
|
|
|
@@ -10699,5 +11013,5 @@ function provideDbxFormConfiguration(config) {
|
|
|
10699
11013
|
* Generated bundle index. Do not edit.
|
|
10700
11014
|
*/
|
|
10701
11015
|
|
|
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,
|
|
11016
|
+
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
11017
|
//# sourceMappingURL=dereekb-dbx-form.mjs.map
|