@ng-forge/dynamic-forms-material 0.5.1 → 0.6.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.
|
@@ -2,8 +2,8 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { InjectionToken, computed, inject, ElementRef, input, afterRenderEffect, ChangeDetectionStrategy, Component, viewChild, linkedSignal, isSignal } from '@angular/core';
|
|
3
3
|
import { FormField } from '@angular/forms/signals';
|
|
4
4
|
import { MatCheckbox } from '@angular/material/checkbox';
|
|
5
|
-
import { DynamicTextPipe, EventBus, ARRAY_CONTEXT, resolveTokens, DEFAULT_PROPS, buildBaseInputs
|
|
6
|
-
import { createResolvedErrorsSignal, shouldShowErrors, setupMetaTracking, isEqual, valueFieldMapper, optionsFieldMapper, checkboxFieldMapper, datepickerFieldMapper } from '@ng-forge/dynamic-forms/integration';
|
|
5
|
+
import { DynamicTextPipe, EventBus, ARRAY_CONTEXT, resolveTokens, DEFAULT_PROPS, buildBaseInputs } from '@ng-forge/dynamic-forms';
|
|
6
|
+
import { createResolvedErrorsSignal, shouldShowErrors, setupMetaTracking, isEqual, valueFieldMapper, optionsFieldMapper, checkboxFieldMapper, submitButtonFieldMapper, nextButtonFieldMapper, previousButtonFieldMapper, addArrayItemButtonMapper, prependArrayItemButtonMapper, insertArrayItemButtonMapper, removeArrayItemButtonMapper, popArrayItemButtonMapper, shiftArrayItemButtonMapper, datepickerFieldMapper } from '@ng-forge/dynamic-forms/integration';
|
|
7
7
|
import { MatError, MatInput, MatHint } from '@angular/material/input';
|
|
8
8
|
import { AsyncPipe } from '@angular/common';
|
|
9
9
|
import { MatFormField, MatLabel, MatSuffix, MatError as MatError$1 } from '@angular/material/form-field';
|
|
@@ -144,8 +144,8 @@ class MatCheckboxFieldComponent {
|
|
|
144
144
|
}
|
|
145
145
|
}
|
|
146
146
|
});
|
|
147
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.
|
|
148
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.
|
|
147
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: MatCheckboxFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
148
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.4", type: MatCheckboxFieldComponent, isStandalone: true, selector: "df-mat-checkbox", 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()", "id": "`${key()}`", "attr.data-testid": "key()", "attr.hidden": "field()().hidden() || null" } }, ngImport: i0, template: `
|
|
149
149
|
@let f = field();
|
|
150
150
|
@let checkboxId = key() + '-checkbox';
|
|
151
151
|
|
|
@@ -171,7 +171,7 @@ class MatCheckboxFieldComponent {
|
|
|
171
171
|
}
|
|
172
172
|
`, isInline: true, styles: [":host{--df-field-gap: .5rem;--df-label-font-weight: 500;--df-label-color: inherit;--df-hint-color: rgba(0, 0, 0, .6);--df-hint-font-size: .875rem;--df-error-color: #f44336;--df-error-font-size: .875rem;display:block;width:100%}:host([hidden]){display:none!important}.df-mat-field{display:flex;flex-direction:column;gap:var(--df-field-gap);width:100%}.df-mat-label{font-weight:var(--df-label-font-weight);color:var(--df-label-color)}.df-mat-hint{color:var(--df-hint-color);font-size:var(--df-hint-font-size)}.df-mat-error{color:var(--df-error-color);font-size:var(--df-error-font-size)}\n"], dependencies: [{ kind: "component", type: MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: FormField, selector: "[formField]", inputs: ["formField"] }, { kind: "directive", type: MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "pipe", type: DynamicTextPipe, name: "dynamicText" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
173
173
|
}
|
|
174
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.
|
|
174
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: MatCheckboxFieldComponent, decorators: [{
|
|
175
175
|
type: Component,
|
|
176
176
|
args: [{ selector: 'df-mat-checkbox', imports: [MatCheckbox, FormField, MatError, DynamicTextPipe, AsyncPipe], template: `
|
|
177
177
|
@let f = field();
|
|
@@ -252,8 +252,8 @@ class MatDatepickerFieldComponent {
|
|
|
252
252
|
}, ...(ngDevMode ? [{ debugName: "ariaRequired" }] : []));
|
|
253
253
|
/** aria-describedby: links to hint and error messages for screen readers */
|
|
254
254
|
ariaDescribedBy = createAriaDescribedBySignal(this.errorsToDisplay, this.errorId, this.hintId, () => !!this.props()?.hint);
|
|
255
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.
|
|
256
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.
|
|
255
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: MatDatepickerFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
256
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.4", type: MatDatepickerFieldComponent, isStandalone: true, selector: "df-mat-datepicker", 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 }, minDate: { classPropertyName: "minDate", publicName: "minDate", isSignal: true, isRequired: false, transformFunction: null }, maxDate: { classPropertyName: "maxDate", publicName: "maxDate", isSignal: true, isRequired: false, transformFunction: null }, startAt: { classPropertyName: "startAt", publicName: "startAt", 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()}`", "class": "className()", "attr.data-testid": "key()", "attr.hidden": "field()().hidden() || null" } }, providers: [provideNativeDateAdapter()], ngImport: i0, template: `
|
|
257
257
|
@let f = field();
|
|
258
258
|
@let inputId = key() + '-input';
|
|
259
259
|
|
|
@@ -287,7 +287,7 @@ class MatDatepickerFieldComponent {
|
|
|
287
287
|
</mat-form-field>
|
|
288
288
|
`, isInline: true, styles: [":host{--df-field-gap: .5rem;--df-label-font-weight: 500;--df-label-color: inherit;--df-hint-color: rgba(0, 0, 0, .6);--df-hint-font-size: .875rem;--df-error-color: #f44336;--df-error-font-size: .875rem;display:block;width:100%}:host([hidden]){display:none!important}.df-mat-field{display:flex;flex-direction:column;gap:var(--df-field-gap);width:100%}.df-mat-label{font-weight:var(--df-label-font-weight);color:var(--df-label-color)}.df-mat-hint{color:var(--df-hint-color);font-size:var(--df-hint-font-size)}.df-mat-error{color:var(--df-error-color);font-size:var(--df-error-font-size)}\n", "mat-form-field{width:100%}\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: "directive", type: 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: "directive", type: MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "directive", type: MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: FormField, selector: "[formField]", inputs: ["formField"] }, { kind: "directive", type: MatError$1, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "pipe", type: DynamicTextPipe, name: "dynamicText" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
289
289
|
}
|
|
290
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.
|
|
290
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: MatDatepickerFieldComponent, decorators: [{
|
|
291
291
|
type: Component,
|
|
292
292
|
args: [{ selector: 'df-mat-datepicker', imports: [
|
|
293
293
|
MatFormField,
|
|
@@ -424,8 +424,8 @@ class MatInputFieldComponent {
|
|
|
424
424
|
}, ...(ngDevMode ? [{ debugName: "ariaRequired" }] : []));
|
|
425
425
|
/** aria-describedby: links to hint and error messages for screen readers */
|
|
426
426
|
ariaDescribedBy = createAriaDescribedBySignal(this.errorsToDisplay, this.errorId, this.hintId, () => !!this.props()?.hint);
|
|
427
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.
|
|
428
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.
|
|
427
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: MatInputFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
428
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.4", type: MatInputFieldComponent, isStandalone: true, selector: "df-mat-input", 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: "inputRef", first: true, predicate: ["inputRef"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
429
429
|
@let f = field();
|
|
430
430
|
@let inputId = key() + '-input';
|
|
431
431
|
|
|
@@ -453,7 +453,7 @@ class MatInputFieldComponent {
|
|
|
453
453
|
</mat-form-field>
|
|
454
454
|
`, isInline: true, styles: [":host{--df-field-gap: .5rem;--df-label-font-weight: 500;--df-label-color: inherit;--df-hint-color: rgba(0, 0, 0, .6);--df-hint-font-size: .875rem;--df-error-color: #f44336;--df-error-font-size: .875rem;display:block;width:100%}:host([hidden]){display:none!important}.df-mat-field{display:flex;flex-direction:column;gap:var(--df-field-gap);width:100%}.df-mat-label{font-weight:var(--df-label-font-weight);color:var(--df-label-color)}.df-mat-hint{color:var(--df-hint-color);font-size:var(--df-hint-font-size)}.df-mat-error{color:var(--df-error-color);font-size:var(--df-error-font-size)}\n", "mat-form-field{width:100%}\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: "directive", type: 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: "directive", type: MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: FormField, selector: "[formField]", inputs: ["formField"] }, { kind: "directive", type: MatError$1, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "pipe", type: DynamicTextPipe, name: "dynamicText" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
455
455
|
}
|
|
456
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.
|
|
456
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: MatInputFieldComponent, decorators: [{
|
|
457
457
|
type: Component,
|
|
458
458
|
args: [{ selector: 'df-mat-input', imports: [MatFormField, MatLabel, MatInput, MatHint, FormField, MatError$1, DynamicTextPipe, AsyncPipe], template: `
|
|
459
459
|
@let f = field();
|
|
@@ -571,8 +571,8 @@ class MatMultiCheckboxFieldComponent {
|
|
|
571
571
|
}, ...(ngDevMode ? [{ debugName: "ariaRequired" }] : []));
|
|
572
572
|
/** aria-describedby: links to hint and error messages for screen readers */
|
|
573
573
|
ariaDescribedBy = createAriaDescribedBySignal(this.errorsToDisplay, this.errorId, this.hintId, () => !!this.props()?.hint);
|
|
574
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.
|
|
575
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.
|
|
574
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: MatMultiCheckboxFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
575
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.4", type: MatMultiCheckboxFieldComponent, isStandalone: true, selector: "df-mat-multi-checkbox", 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 }, options: { classPropertyName: "options", publicName: "options", 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() || \"\"", "id": "`${key()}`", "attr.data-testid": "key()", "attr.hidden": "field()().hidden() || null" } }, ngImport: i0, template: `
|
|
576
576
|
@let f = field();
|
|
577
577
|
@let checkboxGroupId = key() + '-checkbox-group';
|
|
578
578
|
@let checked = checkedValuesMap();
|
|
@@ -609,7 +609,7 @@ class MatMultiCheckboxFieldComponent {
|
|
|
609
609
|
}
|
|
610
610
|
`, isInline: true, styles: [":host{--df-field-gap: .5rem;--df-label-font-weight: 500;--df-label-color: inherit;--df-hint-color: rgba(0, 0, 0, .6);--df-hint-font-size: .875rem;--df-error-color: #f44336;--df-error-font-size: .875rem;display:block;width:100%}:host([hidden]){display:none!important}.df-mat-field{display:flex;flex-direction:column;gap:var(--df-field-gap);width:100%}.df-mat-label{font-weight:var(--df-label-font-weight);color:var(--df-label-color)}.df-mat-hint{color:var(--df-hint-color);font-size:var(--df-hint-font-size)}.df-mat-error{color:var(--df-error-color);font-size:var(--df-error-font-size)}\n"], dependencies: [{ kind: "component", type: MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "pipe", type: DynamicTextPipe, name: "dynamicText" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
611
611
|
}
|
|
612
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.
|
|
612
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: MatMultiCheckboxFieldComponent, decorators: [{
|
|
613
613
|
type: Component,
|
|
614
614
|
args: [{ selector: 'df-mat-multi-checkbox', imports: [MatCheckbox, MatError, DynamicTextPipe, AsyncPipe], template: `
|
|
615
615
|
@let f = field();
|
|
@@ -700,8 +700,8 @@ class MatRadioFieldComponent {
|
|
|
700
700
|
}, ...(ngDevMode ? [{ debugName: "ariaRequired" }] : []));
|
|
701
701
|
/** aria-describedby: links to hint and error messages for screen readers */
|
|
702
702
|
ariaDescribedBy = createAriaDescribedBySignal(this.errorsToDisplay, this.errorId, this.hintId, () => !!this.props()?.hint);
|
|
703
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.
|
|
704
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.
|
|
703
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: MatRadioFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
704
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.4", type: MatRadioFieldComponent, isStandalone: true, selector: "df-mat-radio", 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 }, options: { classPropertyName: "options", publicName: "options", 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() || \"\"", "id": "`${key()}`", "attr.data-testid": "key()", "attr.hidden": "field()().hidden() || null" } }, ngImport: i0, template: `
|
|
705
705
|
@let f = field();
|
|
706
706
|
@let radioGroupId = key() + '-radio-group';
|
|
707
707
|
|
|
@@ -735,7 +735,7 @@ class MatRadioFieldComponent {
|
|
|
735
735
|
}
|
|
736
736
|
`, isInline: true, styles: [":host{--df-field-gap: .5rem;--df-label-font-weight: 500;--df-label-color: inherit;--df-hint-color: rgba(0, 0, 0, .6);--df-hint-font-size: .875rem;--df-error-color: #f44336;--df-error-font-size: .875rem;display:block;width:100%}:host([hidden]){display:none!important}.df-mat-field{display:flex;flex-direction:column;gap:var(--df-field-gap);width:100%}.df-mat-label{font-weight:var(--df-label-font-weight);color:var(--df-label-color)}.df-mat-hint{color:var(--df-hint-color);font-size:var(--df-hint-font-size)}.df-mat-error{color:var(--df-error-color);font-size:var(--df-error-font-size)}\n"], dependencies: [{ kind: "directive", type: MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "directive", type: FormField, selector: "[formField]", inputs: ["formField"] }, { kind: "directive", type: MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "pipe", type: DynamicTextPipe, name: "dynamicText" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
737
737
|
}
|
|
738
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.
|
|
738
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: MatRadioFieldComponent, decorators: [{
|
|
739
739
|
type: Component,
|
|
740
740
|
args: [{ selector: 'df-mat-radio', imports: [MatRadioGroup, MatRadioButton, FormField, MatError, DynamicTextPipe, AsyncPipe], template: `
|
|
741
741
|
@let f = field();
|
|
@@ -826,8 +826,8 @@ class MatSelectFieldComponent {
|
|
|
826
826
|
}, ...(ngDevMode ? [{ debugName: "ariaRequired" }] : []));
|
|
827
827
|
/** aria-describedby: links to hint and error messages for screen readers */
|
|
828
828
|
ariaDescribedBy = createAriaDescribedBySignal(this.errorsToDisplay, this.errorId, this.hintId, () => !!this.props()?.hint);
|
|
829
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.
|
|
830
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.
|
|
829
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: MatSelectFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
830
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.4", type: MatSelectFieldComponent, isStandalone: true, selector: "df-mat-select", 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 }, options: { classPropertyName: "options", publicName: "options", 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: `
|
|
831
831
|
@let f = field();
|
|
832
832
|
@let selectId = key() + '-select';
|
|
833
833
|
|
|
@@ -861,7 +861,7 @@ class MatSelectFieldComponent {
|
|
|
861
861
|
</mat-form-field>
|
|
862
862
|
`, isInline: true, styles: [":host{--df-field-gap: .5rem;--df-label-font-weight: 500;--df-label-color: inherit;--df-hint-color: rgba(0, 0, 0, .6);--df-hint-font-size: .875rem;--df-error-color: #f44336;--df-error-font-size: .875rem;display:block;width:100%}:host([hidden]){display:none!important}.df-mat-field{display:flex;flex-direction:column;gap:var(--df-field-gap);width:100%}.df-mat-label{font-weight:var(--df-label-font-weight);color:var(--df-label-color)}.df-mat-hint{color:var(--df-hint-color);font-size:var(--df-hint-font-size)}.df-mat-error{color:var(--df-error-color);font-size:var(--df-error-font-size)}\n", "mat-form-field{width:100%}\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"] }, { kind: "directive", type: MatError$1, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "pipe", type: DynamicTextPipe, name: "dynamicText" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
863
863
|
}
|
|
864
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.
|
|
864
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: MatSelectFieldComponent, decorators: [{
|
|
865
865
|
type: Component,
|
|
866
866
|
args: [{ selector: 'df-mat-select', imports: [MatFormField, MatLabel, MatSelect, MatOption, MatHint, FormField, MatError$1, DynamicTextPipe, AsyncPipe], template: `
|
|
867
867
|
@let f = field();
|
|
@@ -940,8 +940,8 @@ class MatSliderFieldComponent {
|
|
|
940
940
|
}, ...(ngDevMode ? [{ debugName: "ariaInvalid" }] : []));
|
|
941
941
|
/** aria-describedby: links to hint and error messages for screen readers */
|
|
942
942
|
ariaDescribedBy = createAriaDescribedBySignal(this.errorsToDisplay, this.errorId, this.hintId, () => !!this.props()?.hint);
|
|
943
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.
|
|
944
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.
|
|
943
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: MatSliderFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
944
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.4", type: MatSliderFieldComponent, isStandalone: true, selector: "df-mat-slider", 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()", "id": "`${key()}`", "attr.data-testid": "key()", "attr.hidden": "field()().hidden() || null" } }, ngImport: i0, template: `
|
|
945
945
|
@let f = field();
|
|
946
946
|
@let inputId = key() + '-input';
|
|
947
947
|
|
|
@@ -975,7 +975,7 @@ class MatSliderFieldComponent {
|
|
|
975
975
|
}
|
|
976
976
|
`, isInline: true, styles: [":host{--df-field-gap: .5rem;--df-label-font-weight: 500;--df-label-color: inherit;--df-hint-color: rgba(0, 0, 0, .6);--df-hint-font-size: .875rem;--df-error-color: #f44336;--df-error-font-size: .875rem;display:block;width:100%}:host([hidden]){display:none!important}.df-mat-field{display:flex;flex-direction:column;gap:var(--df-field-gap);width:100%}.df-mat-label{font-weight:var(--df-label-font-weight);color:var(--df-label-color)}.df-mat-hint{color:var(--df-hint-color);font-size:var(--df-hint-font-size)}.df-mat-error{color:var(--df-error-color);font-size:var(--df-error-font-size)}\n", ".slider-container{width:100%}\n"], dependencies: [{ kind: "component", type: MatSlider, selector: "mat-slider", inputs: ["disabled", "discrete", "showTickMarks", "min", "color", "disableRipple", "max", "step", "displayWith"], exportAs: ["matSlider"] }, { kind: "directive", type: MatSliderThumb, selector: "input[matSliderThumb]", inputs: ["value"], outputs: ["valueChange", "dragStart", "dragEnd"], exportAs: ["matSliderThumb"] }, { kind: "directive", type: MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: FormField, selector: "[formField]", inputs: ["formField"] }, { kind: "pipe", type: DynamicTextPipe, name: "dynamicText" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
977
977
|
}
|
|
978
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.
|
|
978
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: MatSliderFieldComponent, decorators: [{
|
|
979
979
|
type: Component,
|
|
980
980
|
args: [{ selector: 'df-mat-slider', imports: [MatSlider, MatSliderThumb, MatError, DynamicTextPipe, AsyncPipe, FormField], template: `
|
|
981
981
|
@let f = field();
|
|
@@ -1078,8 +1078,8 @@ class MatButtonFieldComponent {
|
|
|
1078
1078
|
this.eventBus.dispatch(event);
|
|
1079
1079
|
}
|
|
1080
1080
|
}
|
|
1081
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.
|
|
1082
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.
|
|
1081
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: MatButtonFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1082
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.4", type: MatButtonFieldComponent, isStandalone: true, selector: "df-mat-button", inputs: { key: { classPropertyName: "key", publicName: "key", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, hidden: { classPropertyName: "hidden", publicName: "hidden", isSignal: true, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, event: { classPropertyName: "event", publicName: "event", isSignal: true, isRequired: false, transformFunction: null }, eventArgs: { classPropertyName: "eventArgs", publicName: "eventArgs", isSignal: true, isRequired: false, transformFunction: null }, props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null }, eventContext: { classPropertyName: "eventContext", publicName: "eventContext", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "id": "`${key()}`", "attr.data-testid": "key()", "class": "className()", "attr.hidden": "hidden() || null" } }, ngImport: i0, template: `
|
|
1083
1083
|
@let buttonId = key() + '-button';
|
|
1084
1084
|
<button
|
|
1085
1085
|
mat-raised-button
|
|
@@ -1094,7 +1094,7 @@ class MatButtonFieldComponent {
|
|
|
1094
1094
|
</button>
|
|
1095
1095
|
`, isInline: true, styles: [":host{--df-field-gap: .5rem;--df-label-font-weight: 500;--df-label-color: inherit;--df-hint-color: rgba(0, 0, 0, .6);--df-hint-font-size: .875rem;--df-error-color: #f44336;--df-error-font-size: .875rem;display:block;width:100%}:host([hidden]){display:none!important}.df-mat-field{display:flex;flex-direction:column;gap:var(--df-field-gap);width:100%}.df-mat-label{font-weight:var(--df-label-font-weight);color:var(--df-label-color)}.df-mat-hint{color:var(--df-hint-color);font-size:var(--df-hint-font-size)}.df-mat-error{color:var(--df-error-color);font-size:var(--df-error-font-size)}\n", "button{min-width:fit-content}\n"], dependencies: [{ kind: "component", type: 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: "pipe", type: DynamicTextPipe, name: "dynamicText" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1096
1096
|
}
|
|
1097
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.
|
|
1097
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: MatButtonFieldComponent, decorators: [{
|
|
1098
1098
|
type: Component,
|
|
1099
1099
|
args: [{ selector: 'df-mat-button', imports: [MatButton, DynamicTextPipe, AsyncPipe], host: {
|
|
1100
1100
|
'[id]': '`${key()}`',
|
|
@@ -1201,8 +1201,8 @@ class MatTextareaFieldComponent {
|
|
|
1201
1201
|
}, ...(ngDevMode ? [{ debugName: "ariaRequired" }] : []));
|
|
1202
1202
|
/** aria-describedby: links to hint and error messages for screen readers */
|
|
1203
1203
|
ariaDescribedBy = createAriaDescribedBySignal(this.errorsToDisplay, this.errorId, this.hintId, () => !!this.props()?.hint);
|
|
1204
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.
|
|
1205
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.
|
|
1204
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: MatTextareaFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1205
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.4", type: MatTextareaFieldComponent, isStandalone: true, selector: "df-mat-textarea", 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: "textareaRef", first: true, predicate: ["textareaRef"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
1206
1206
|
@let f = field();
|
|
1207
1207
|
@let textareaId = key() + '-textarea';
|
|
1208
1208
|
|
|
@@ -1232,7 +1232,7 @@ class MatTextareaFieldComponent {
|
|
|
1232
1232
|
</mat-form-field>
|
|
1233
1233
|
`, isInline: true, styles: [":host{--df-field-gap: .5rem;--df-label-font-weight: 500;--df-label-color: inherit;--df-hint-color: rgba(0, 0, 0, .6);--df-hint-font-size: .875rem;--df-error-color: #f44336;--df-error-font-size: .875rem;display:block;width:100%}:host([hidden]){display:none!important}.df-mat-field{display:flex;flex-direction:column;gap:var(--df-field-gap);width:100%}.df-mat-label{font-weight:var(--df-label-font-weight);color:var(--df-label-color)}.df-mat-hint{color:var(--df-hint-color);font-size:var(--df-hint-font-size)}.df-mat-error{color:var(--df-error-color);font-size:var(--df-error-font-size)}\n", "mat-form-field{width:100%}\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: "directive", type: 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: "directive", type: MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: FormField, selector: "[formField]", inputs: ["formField"] }, { kind: "directive", type: MatError$1, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "pipe", type: DynamicTextPipe, name: "dynamicText" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1234
1234
|
}
|
|
1235
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.
|
|
1235
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: MatTextareaFieldComponent, decorators: [{
|
|
1236
1236
|
type: Component,
|
|
1237
1237
|
args: [{ selector: 'df-mat-textarea', imports: [MatFormField, MatLabel, MatInput, MatHint, FormField, MatError$1, DynamicTextPipe, AsyncPipe], template: `
|
|
1238
1238
|
@let f = field();
|
|
@@ -1353,8 +1353,8 @@ class MatToggleFieldComponent {
|
|
|
1353
1353
|
}
|
|
1354
1354
|
}
|
|
1355
1355
|
});
|
|
1356
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.
|
|
1357
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.
|
|
1356
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: MatToggleFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1357
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.4", type: MatToggleFieldComponent, isStandalone: true, selector: "df-mat-toggle", 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()", "id": "`${key()}`", "attr.data-testid": "key()", "attr.hidden": "field()().hidden() || null" } }, ngImport: i0, template: `
|
|
1358
1358
|
@let f = field();
|
|
1359
1359
|
@let toggleId = key() + '-toggle';
|
|
1360
1360
|
|
|
@@ -1380,7 +1380,7 @@ class MatToggleFieldComponent {
|
|
|
1380
1380
|
}
|
|
1381
1381
|
`, isInline: true, styles: [":host{--df-field-gap: .5rem;--df-label-font-weight: 500;--df-label-color: inherit;--df-hint-color: rgba(0, 0, 0, .6);--df-hint-font-size: .875rem;--df-error-color: #f44336;--df-error-font-size: .875rem;display:block;width:100%}:host([hidden]){display:none!important}.df-mat-field{display:flex;flex-direction:column;gap:var(--df-field-gap);width:100%}.df-mat-label{font-weight:var(--df-label-font-weight);color:var(--df-label-color)}.df-mat-hint{color:var(--df-hint-color);font-size:var(--df-hint-font-size)}.df-mat-error{color:var(--df-error-color);font-size:var(--df-error-font-size)}\n"], dependencies: [{ kind: "component", type: MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "directive", type: FormField, selector: "[formField]", inputs: ["formField"] }, { kind: "directive", type: MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "pipe", type: DynamicTextPipe, name: "dynamicText" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1382
1382
|
}
|
|
1383
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.
|
|
1383
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: MatToggleFieldComponent, decorators: [{
|
|
1384
1384
|
type: Component,
|
|
1385
1385
|
args: [{ selector: 'df-mat-toggle', imports: [MatSlideToggle, FormField, MatError, DynamicTextPipe, AsyncPipe], template: `
|
|
1386
1386
|
@let f = field();
|
|
@@ -1434,7 +1434,11 @@ const MatField = {
|
|
|
1434
1434
|
Next: 'next',
|
|
1435
1435
|
Previous: 'previous',
|
|
1436
1436
|
AddArrayItem: 'addArrayItem',
|
|
1437
|
+
PrependArrayItem: 'prependArrayItem',
|
|
1438
|
+
InsertArrayItem: 'insertArrayItem',
|
|
1437
1439
|
RemoveArrayItem: 'removeArrayItem',
|
|
1440
|
+
PopArrayItem: 'popArrayItem',
|
|
1441
|
+
ShiftArrayItem: 'shiftArrayItem',
|
|
1438
1442
|
Textarea: 'textarea',
|
|
1439
1443
|
Radio: 'radio',
|
|
1440
1444
|
MultiCheckbox: 'multi-checkbox',
|
|
@@ -1448,11 +1452,15 @@ const MatField = {
|
|
|
1448
1452
|
* For specific button types (submit, next, prev, add/remove array items),
|
|
1449
1453
|
* use the dedicated field types and their specific mappers.
|
|
1450
1454
|
*
|
|
1455
|
+
* Supports template property for array events (AppendArrayItemEvent, PrependArrayItemEvent, InsertArrayItemEvent)
|
|
1456
|
+
* which enables the $template token in eventArgs.
|
|
1457
|
+
*
|
|
1451
1458
|
* @param fieldDef The button field definition
|
|
1452
1459
|
* @returns Signal containing Record of input names to values for ngComponentOutlet
|
|
1453
1460
|
*/
|
|
1454
1461
|
function buttonFieldMapper(fieldDef) {
|
|
1455
1462
|
const defaultProps = inject(DEFAULT_PROPS);
|
|
1463
|
+
const arrayContext = inject(ARRAY_CONTEXT, { optional: true });
|
|
1456
1464
|
return computed(() => {
|
|
1457
1465
|
const baseInputs = buildBaseInputs(fieldDef, defaultProps());
|
|
1458
1466
|
const inputs = {
|
|
@@ -1472,226 +1480,33 @@ function buttonFieldMapper(fieldDef) {
|
|
|
1472
1480
|
if ('eventArgs' in fieldDef && fieldDef.eventArgs !== undefined) {
|
|
1473
1481
|
inputs['eventArgs'] = fieldDef.eventArgs;
|
|
1474
1482
|
}
|
|
1475
|
-
|
|
1476
|
-
|
|
1477
|
-
|
|
1478
|
-
|
|
1479
|
-
|
|
1480
|
-
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
|
|
1484
|
-
|
|
1485
|
-
*
|
|
1486
|
-
* Disabled state is resolved using the button-logic-resolver which considers:
|
|
1487
|
-
* 1. Explicit `disabled: true` on the field definition
|
|
1488
|
-
* 2. Field-level `logic` array (if present, overrides form-level defaults)
|
|
1489
|
-
* 3. Form-level `options.submitButton` defaults (disableWhenInvalid, disableWhileSubmitting)
|
|
1490
|
-
*
|
|
1491
|
-
* @param fieldDef The submit button field definition
|
|
1492
|
-
* @returns Signal containing Record of input names to values for ngComponentOutlet
|
|
1493
|
-
*/
|
|
1494
|
-
function submitButtonFieldMapper(fieldDef) {
|
|
1495
|
-
const rootFormRegistry = inject(RootFormRegistryService);
|
|
1496
|
-
const defaultProps = inject(DEFAULT_PROPS);
|
|
1497
|
-
const formOptions = inject(FORM_OPTIONS);
|
|
1498
|
-
const fieldWithLogic = fieldDef;
|
|
1499
|
-
return computed(() => {
|
|
1500
|
-
const baseInputs = buildBaseInputs(fieldDef, defaultProps());
|
|
1501
|
-
// Use rootFormRegistry instead of fieldSignalContext.form because when the submit button
|
|
1502
|
-
// is inside a group/array, fieldSignalContext.form points to the nested form tree,
|
|
1503
|
-
// not the root form. We need root form validity for submit button disabled state (#157).
|
|
1504
|
-
const disabledSignal = resolveSubmitButtonDisabled({
|
|
1505
|
-
form: rootFormRegistry.getRootForm(),
|
|
1506
|
-
formOptions: formOptions(),
|
|
1507
|
-
fieldLogic: fieldWithLogic.logic,
|
|
1508
|
-
explicitlyDisabled: fieldDef.disabled,
|
|
1509
|
-
});
|
|
1510
|
-
const inputs = {
|
|
1511
|
-
...baseInputs,
|
|
1512
|
-
// No event - native form submit handles it via form's onNativeSubmit
|
|
1513
|
-
// Set type="submit" to trigger native form submission
|
|
1514
|
-
props: { ...fieldDef.props, type: 'submit' },
|
|
1515
|
-
// Evaluate the signal inside the computed - component receives plain boolean
|
|
1516
|
-
disabled: disabledSignal(),
|
|
1517
|
-
};
|
|
1518
|
-
if (fieldDef.hidden !== undefined) {
|
|
1519
|
-
inputs['hidden'] = fieldDef.hidden;
|
|
1520
|
-
}
|
|
1521
|
-
return inputs;
|
|
1522
|
-
});
|
|
1523
|
-
}
|
|
1524
|
-
/**
|
|
1525
|
-
* Mapper for next page button - preconfigures NextPageEvent
|
|
1526
|
-
*
|
|
1527
|
-
* Disabled state is resolved using the button-logic-resolver which considers:
|
|
1528
|
-
* 1. Explicit `disabled: true` on the field definition
|
|
1529
|
-
* 2. Field-level `logic` array (if present, overrides form-level defaults)
|
|
1530
|
-
* 3. Form-level `options.nextButton` defaults (disableWhenPageInvalid, disableWhileSubmitting)
|
|
1531
|
-
*
|
|
1532
|
-
* @param fieldDef The next button field definition
|
|
1533
|
-
* @returns Signal containing Record of input names to values for ngComponentOutlet
|
|
1534
|
-
*/
|
|
1535
|
-
function nextButtonFieldMapper(fieldDef) {
|
|
1536
|
-
const fieldSignalContext = inject(FIELD_SIGNAL_CONTEXT);
|
|
1537
|
-
const defaultProps = inject(DEFAULT_PROPS);
|
|
1538
|
-
const formOptions = inject(FORM_OPTIONS);
|
|
1539
|
-
const fieldWithLogic = fieldDef;
|
|
1540
|
-
return computed(() => {
|
|
1541
|
-
const baseInputs = buildBaseInputs(fieldDef, defaultProps());
|
|
1542
|
-
const disabledSignal = resolveNextButtonDisabled({
|
|
1543
|
-
form: fieldSignalContext.form,
|
|
1544
|
-
formOptions: formOptions(),
|
|
1545
|
-
fieldLogic: fieldWithLogic.logic,
|
|
1546
|
-
explicitlyDisabled: fieldDef.disabled,
|
|
1547
|
-
currentPageValid: fieldSignalContext.currentPageValid,
|
|
1548
|
-
});
|
|
1549
|
-
const inputs = {
|
|
1550
|
-
...baseInputs,
|
|
1551
|
-
event: NextPageEvent,
|
|
1552
|
-
// Evaluate the signal inside the computed - component receives plain boolean
|
|
1553
|
-
disabled: disabledSignal(),
|
|
1554
|
-
};
|
|
1555
|
-
if (fieldDef.hidden !== undefined) {
|
|
1556
|
-
inputs['hidden'] = fieldDef.hidden;
|
|
1557
|
-
}
|
|
1558
|
-
return inputs;
|
|
1559
|
-
});
|
|
1560
|
-
}
|
|
1561
|
-
/**
|
|
1562
|
-
* Mapper for previous page button - preconfigures PreviousPageEvent
|
|
1563
|
-
* Note: Does not auto-disable based on validation. Users can explicitly disable if needed.
|
|
1564
|
-
*
|
|
1565
|
-
* @param fieldDef The previous button field definition
|
|
1566
|
-
* @returns Signal containing Record of input names to values for ngComponentOutlet
|
|
1567
|
-
*/
|
|
1568
|
-
function previousButtonFieldMapper(fieldDef) {
|
|
1569
|
-
const defaultProps = inject(DEFAULT_PROPS);
|
|
1570
|
-
return computed(() => {
|
|
1571
|
-
const baseInputs = buildBaseInputs(fieldDef, defaultProps());
|
|
1572
|
-
const inputs = {
|
|
1573
|
-
...baseInputs,
|
|
1574
|
-
event: PreviousPageEvent,
|
|
1575
|
-
};
|
|
1576
|
-
// Add disabled binding only if explicitly set by user
|
|
1577
|
-
if (fieldDef.disabled !== undefined) {
|
|
1578
|
-
inputs['disabled'] = fieldDef.disabled;
|
|
1579
|
-
}
|
|
1580
|
-
if (fieldDef.hidden !== undefined) {
|
|
1581
|
-
inputs['hidden'] = fieldDef.hidden;
|
|
1582
|
-
}
|
|
1583
|
-
return inputs;
|
|
1584
|
-
});
|
|
1585
|
-
}
|
|
1586
|
-
/**
|
|
1587
|
-
* Mapper for add array item button - preconfigures AddArrayItemEvent with array context.
|
|
1588
|
-
*
|
|
1589
|
-
* Supports two modes:
|
|
1590
|
-
* 1. Inside array template: Uses ARRAY_CONTEXT to determine target array
|
|
1591
|
-
* 2. Outside array: Uses `arrayKey` property from field definition
|
|
1592
|
-
*
|
|
1593
|
-
* @param fieldDef The add array item button field definition
|
|
1594
|
-
* @returns Signal containing Record of input names to values for ngComponentOutlet
|
|
1595
|
-
*/
|
|
1596
|
-
function addArrayItemButtonFieldMapper(fieldDef) {
|
|
1597
|
-
const arrayContext = inject(ARRAY_CONTEXT, { optional: true });
|
|
1598
|
-
const logger = inject(DynamicFormLogger);
|
|
1599
|
-
const defaultProps = inject(DEFAULT_PROPS);
|
|
1600
|
-
// Determine the target array key
|
|
1601
|
-
// Priority: explicit arrayKey from fieldDef > arrayKey from context
|
|
1602
|
-
const targetArrayKey = fieldDef.arrayKey ?? arrayContext?.arrayKey;
|
|
1603
|
-
if (!targetArrayKey) {
|
|
1604
|
-
logger.warn(`addArrayItem button "${fieldDef.key}" has no array context. ` +
|
|
1605
|
-
'Either place it inside an array field, or provide an explicit arrayKey property.');
|
|
1606
|
-
}
|
|
1607
|
-
// Set default eventArgs for AddArrayItemEvent (arrayKey)
|
|
1608
|
-
// User can override by providing eventArgs in field definition
|
|
1609
|
-
const defaultEventArgs = ['$arrayKey'];
|
|
1610
|
-
const eventArgs = 'eventArgs' in fieldDef && fieldDef.eventArgs !== undefined ? fieldDef.eventArgs : defaultEventArgs;
|
|
1611
|
-
return computed(() => {
|
|
1612
|
-
const baseInputs = buildBaseInputs(fieldDef, defaultProps());
|
|
1613
|
-
// Read signal value if index is a signal (supports differential updates)
|
|
1614
|
-
const getIndex = () => {
|
|
1615
|
-
if (!arrayContext)
|
|
1616
|
-
return -1;
|
|
1617
|
-
return isSignal(arrayContext.index) ? arrayContext.index() : arrayContext.index;
|
|
1618
|
-
};
|
|
1619
|
-
const inputs = {
|
|
1620
|
-
...baseInputs,
|
|
1621
|
-
event: AddArrayItemEvent,
|
|
1622
|
-
eventArgs,
|
|
1623
|
-
eventContext: {
|
|
1483
|
+
// Add eventContext for token resolution (supports $template, $arrayKey, $index, etc.)
|
|
1484
|
+
const template = 'template' in fieldDef ? fieldDef.template : undefined;
|
|
1485
|
+
if (template || arrayContext) {
|
|
1486
|
+
// Read signal value if index is a signal (supports differential updates)
|
|
1487
|
+
const getIndex = () => {
|
|
1488
|
+
if (!arrayContext)
|
|
1489
|
+
return -1;
|
|
1490
|
+
return isSignal(arrayContext.index) ? arrayContext.index() : arrayContext.index;
|
|
1491
|
+
};
|
|
1492
|
+
inputs['eventContext'] = {
|
|
1624
1493
|
key: fieldDef.key,
|
|
1625
1494
|
index: getIndex(),
|
|
1626
|
-
arrayKey:
|
|
1495
|
+
arrayKey: arrayContext?.arrayKey ?? '',
|
|
1627
1496
|
formValue: arrayContext?.formValue ?? {},
|
|
1628
|
-
|
|
1629
|
-
|
|
1630
|
-
// Add disabled binding only if explicitly set by user
|
|
1631
|
-
if (fieldDef.disabled !== undefined) {
|
|
1632
|
-
inputs['disabled'] = fieldDef.disabled;
|
|
1633
|
-
}
|
|
1634
|
-
if (fieldDef.hidden !== undefined) {
|
|
1635
|
-
inputs['hidden'] = fieldDef.hidden;
|
|
1497
|
+
template,
|
|
1498
|
+
};
|
|
1636
1499
|
}
|
|
1637
1500
|
return inputs;
|
|
1638
1501
|
});
|
|
1639
1502
|
}
|
|
1503
|
+
|
|
1640
1504
|
/**
|
|
1641
|
-
*
|
|
1642
|
-
*
|
|
1643
|
-
* Supports two modes:
|
|
1644
|
-
* 1. Inside array template: Uses ARRAY_CONTEXT to determine target array and removes item at current index
|
|
1645
|
-
* 2. Outside array: Uses `arrayKey` property from field definition, removes last item by default
|
|
1505
|
+
* Navigation button mappers for Material - re-exported from integration package.
|
|
1646
1506
|
*
|
|
1647
|
-
*
|
|
1648
|
-
*
|
|
1507
|
+
* These mappers handle submit, next, and previous buttons with proper
|
|
1508
|
+
* disabled state resolution based on form validity and options.
|
|
1649
1509
|
*/
|
|
1650
|
-
function removeArrayItemButtonFieldMapper(fieldDef) {
|
|
1651
|
-
const arrayContext = inject(ARRAY_CONTEXT, { optional: true });
|
|
1652
|
-
const logger = inject(DynamicFormLogger);
|
|
1653
|
-
const defaultProps = inject(DEFAULT_PROPS);
|
|
1654
|
-
// Determine the target array key
|
|
1655
|
-
// Priority: explicit arrayKey from fieldDef > arrayKey from context
|
|
1656
|
-
const targetArrayKey = fieldDef.arrayKey ?? arrayContext?.arrayKey;
|
|
1657
|
-
if (!targetArrayKey) {
|
|
1658
|
-
logger.warn(`removeArrayItem button "${fieldDef.key}" has no array context. ` +
|
|
1659
|
-
'Either place it inside an array field, or provide an explicit arrayKey property.');
|
|
1660
|
-
}
|
|
1661
|
-
// Set default eventArgs for RemoveArrayItemEvent (arrayKey, index if inside array)
|
|
1662
|
-
// When outside array, only pass arrayKey (removes last by default)
|
|
1663
|
-
// User can override by providing eventArgs in field definition
|
|
1664
|
-
const defaultEventArgs = arrayContext ? ['$arrayKey', '$index'] : ['$arrayKey'];
|
|
1665
|
-
const eventArgs = 'eventArgs' in fieldDef && fieldDef.eventArgs !== undefined ? fieldDef.eventArgs : defaultEventArgs;
|
|
1666
|
-
return computed(() => {
|
|
1667
|
-
const baseInputs = buildBaseInputs(fieldDef, defaultProps());
|
|
1668
|
-
// Read signal value if index is a signal (supports differential updates)
|
|
1669
|
-
const getIndex = () => {
|
|
1670
|
-
if (!arrayContext)
|
|
1671
|
-
return -1; // -1 means remove last (no specific index)
|
|
1672
|
-
return isSignal(arrayContext.index) ? arrayContext.index() : arrayContext.index;
|
|
1673
|
-
};
|
|
1674
|
-
const inputs = {
|
|
1675
|
-
...baseInputs,
|
|
1676
|
-
event: RemoveArrayItemEvent,
|
|
1677
|
-
eventArgs,
|
|
1678
|
-
eventContext: {
|
|
1679
|
-
key: fieldDef.key,
|
|
1680
|
-
index: getIndex(),
|
|
1681
|
-
arrayKey: targetArrayKey ?? '',
|
|
1682
|
-
formValue: arrayContext?.formValue ?? {},
|
|
1683
|
-
},
|
|
1684
|
-
};
|
|
1685
|
-
// Add disabled binding only if explicitly set by user
|
|
1686
|
-
if (fieldDef.disabled !== undefined) {
|
|
1687
|
-
inputs['disabled'] = fieldDef.disabled;
|
|
1688
|
-
}
|
|
1689
|
-
if (fieldDef.hidden !== undefined) {
|
|
1690
|
-
inputs['hidden'] = fieldDef.hidden;
|
|
1691
|
-
}
|
|
1692
|
-
return inputs;
|
|
1693
|
-
});
|
|
1694
|
-
}
|
|
1695
1510
|
|
|
1696
1511
|
/**
|
|
1697
1512
|
* Material Design field type definitions
|
|
@@ -1741,13 +1556,37 @@ const MATERIAL_FIELD_TYPES = [
|
|
|
1741
1556
|
{
|
|
1742
1557
|
name: MatField.AddArrayItem,
|
|
1743
1558
|
loadComponent: () => Promise.resolve().then(function () { return matButton_component; }),
|
|
1744
|
-
mapper:
|
|
1559
|
+
mapper: addArrayItemButtonMapper,
|
|
1560
|
+
valueHandling: 'exclude',
|
|
1561
|
+
},
|
|
1562
|
+
{
|
|
1563
|
+
name: MatField.PrependArrayItem,
|
|
1564
|
+
loadComponent: () => Promise.resolve().then(function () { return matButton_component; }),
|
|
1565
|
+
mapper: prependArrayItemButtonMapper,
|
|
1566
|
+
valueHandling: 'exclude',
|
|
1567
|
+
},
|
|
1568
|
+
{
|
|
1569
|
+
name: MatField.InsertArrayItem,
|
|
1570
|
+
loadComponent: () => Promise.resolve().then(function () { return matButton_component; }),
|
|
1571
|
+
mapper: insertArrayItemButtonMapper,
|
|
1745
1572
|
valueHandling: 'exclude',
|
|
1746
1573
|
},
|
|
1747
1574
|
{
|
|
1748
1575
|
name: MatField.RemoveArrayItem,
|
|
1749
1576
|
loadComponent: () => Promise.resolve().then(function () { return matButton_component; }),
|
|
1750
|
-
mapper:
|
|
1577
|
+
mapper: removeArrayItemButtonMapper,
|
|
1578
|
+
valueHandling: 'exclude',
|
|
1579
|
+
},
|
|
1580
|
+
{
|
|
1581
|
+
name: MatField.PopArrayItem,
|
|
1582
|
+
loadComponent: () => Promise.resolve().then(function () { return matButton_component; }),
|
|
1583
|
+
mapper: popArrayItemButtonMapper,
|
|
1584
|
+
valueHandling: 'exclude',
|
|
1585
|
+
},
|
|
1586
|
+
{
|
|
1587
|
+
name: MatField.ShiftArrayItem,
|
|
1588
|
+
loadComponent: () => Promise.resolve().then(function () { return matButton_component; }),
|
|
1589
|
+
mapper: shiftArrayItemButtonMapper,
|
|
1751
1590
|
valueHandling: 'exclude',
|
|
1752
1591
|
},
|
|
1753
1592
|
{
|