@ng-forge/dynamic-forms-material 0.8.0-next.4 → 0.8.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/README.md CHANGED
@@ -20,6 +20,8 @@ Material Design field components for [@ng-forge/dynamic-forms](https://www.npmjs
20
20
 
21
21
  | @ng-forge/dynamic-forms-material | @ng-forge/dynamic-forms | Angular |
22
22
  | -------------------------------- | ----------------------- | ------------- |
23
+ | 0.8.x | 0.8.x | >=21.2.0 |
24
+ | 0.7.x | 0.7.x | >=21.2.0 |
23
25
  | 0.6.x | 0.6.x | >=21.1.0 |
24
26
  | 0.5.x | 0.5.x | >=21.1.0 |
25
27
  | 0.4.x | 0.4.x | >=21.1.0 |
@@ -955,6 +955,7 @@ class MatSliderFieldComponent {
955
955
  placeholder = input(...(ngDevMode ? [undefined, { debugName: "placeholder" }] : /* istanbul ignore next */ []));
956
956
  className = input('', ...(ngDevMode ? [{ debugName: "className" }] : /* istanbul ignore next */ []));
957
957
  tabIndex = input(...(ngDevMode ? [undefined, { debugName: "tabIndex" }] : /* istanbul ignore next */ []));
958
+ step = input(...(ngDevMode ? [undefined, { debugName: "step" }] : /* istanbul ignore next */ []));
958
959
  props = input(...(ngDevMode ? [undefined, { debugName: "props" }] : /* istanbul ignore next */ []));
959
960
  meta = input(...(ngDevMode ? [undefined, { debugName: "meta" }] : /* istanbul ignore next */ []));
960
961
  validationMessages = input(...(ngDevMode ? [undefined, { debugName: "validationMessages" }] : /* istanbul ignore next */ []));
@@ -981,7 +982,7 @@ class MatSliderFieldComponent {
981
982
  /** aria-describedby: links to hint and error messages for screen readers */
982
983
  ariaDescribedBy = createAriaDescribedBySignal(this.errorsToDisplay, this.errorId, this.hintId, () => !!this.props()?.hint);
983
984
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: MatSliderFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
984
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", 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: `
985
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", 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 }, step: { classPropertyName: "step", publicName: "step", 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: `
985
986
  @let f = field();
986
987
  @let inputId = key() + '-input';
987
988
 
@@ -992,7 +993,7 @@ class MatSliderFieldComponent {
992
993
  <mat-slider
993
994
  [min]="f().min?.() ?? 0"
994
995
  [max]="f().max?.() ?? 100"
995
- [step]="props()?.step ?? 1"
996
+ [step]="step() ?? props()?.step ?? 1"
996
997
  [discrete]="props()?.thumbLabel || props()?.showThumbLabel"
997
998
  [showTickMarks]="props()?.tickInterval !== undefined"
998
999
  [color]="props()?.color || 'primary'"
@@ -1029,7 +1030,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
1029
1030
  <mat-slider
1030
1031
  [min]="f().min?.() ?? 0"
1031
1032
  [max]="f().max?.() ?? 100"
1032
- [step]="props()?.step ?? 1"
1033
+ [step]="step() ?? props()?.step ?? 1"
1033
1034
  [discrete]="props()?.thumbLabel || props()?.showThumbLabel"
1034
1035
  [showTickMarks]="props()?.tickInterval !== undefined"
1035
1036
  [color]="props()?.color || 'primary'"
@@ -1057,7 +1058,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
1057
1058
  '[attr.data-testid]': 'key()',
1058
1059
  '[attr.hidden]': 'field()().hidden() || null',
1059
1060
  }, changeDetection: ChangeDetectionStrategy.OnPush, 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"] }]
1060
- }], 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 }] }] } });
1061
+ }], 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 }] }], step: [{ type: i0.Input, args: [{ isSignal: true, alias: "step", 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 }] }] } });
1061
1062
 
1062
1063
  var matSlider_component = /*#__PURE__*/Object.freeze({
1063
1064
  __proto__: null,
@@ -1 +1 @@
1
- {"version":3,"file":"ng-forge-dynamic-forms-material.mjs","sources":["../../../../packages/dynamic-forms-material/src/lib/models/material-config.token.ts","../../../../packages/dynamic-forms-material/src/lib/utils/create-aria-described-by.ts","../../../../packages/dynamic-forms-material/src/lib/fields/checkbox/mat-checkbox.component.ts","../../../../packages/dynamic-forms-material/src/lib/fields/datepicker/mat-datepicker.component.ts","../../../../packages/dynamic-forms-material/src/lib/fields/input/mat-input.component.ts","../../../../packages/dynamic-forms-material/src/lib/fields/multi-checkbox/mat-multi-checkbox.component.ts","../../../../packages/dynamic-forms-material/src/lib/fields/radio/mat-radio.component.ts","../../../../packages/dynamic-forms-material/src/lib/fields/select/mat-select.component.ts","../../../../packages/dynamic-forms-material/src/lib/fields/slider/mat-slider.component.ts","../../../../packages/dynamic-forms-material/src/lib/fields/button/mat-button.component.ts","../../../../packages/dynamic-forms-material/src/lib/fields/button/index.ts","../../../../packages/dynamic-forms-material/src/lib/fields/textarea/mat-textarea.component.ts","../../../../packages/dynamic-forms-material/src/lib/fields/toggle/mat-toggle.component.ts","../../../../packages/dynamic-forms-material/src/lib/fields/index.ts","../../../../packages/dynamic-forms-material/src/lib/types/types.ts","../../../../packages/dynamic-forms-material/src/lib/fields/button/mat-button.mapper.ts","../../../../packages/dynamic-forms-material/src/lib/fields/button/mat-specific-button.mapper.ts","../../../../packages/dynamic-forms-material/src/lib/config/material-field-config.ts","../../../../packages/dynamic-forms-material/src/lib/types/registry-augmentation.ts","../../../../packages/dynamic-forms-material/src/lib/providers/material-providers.ts","../../../../packages/dynamic-forms-material/src/lib/index.ts","../../../../packages/dynamic-forms-material/src/ng-forge-dynamic-forms-material.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { MaterialConfig } from './material-config';\n\n/**\n * Injection token for Material Design form configuration.\n * Use this to provide global configuration for Material form fields.\n *\n * @example\n * ```typescript\n * import { provideDynamicForm } from '@ng-forge/dynamic-forms';\n * import { withMaterialFields } from '@ng-forge/dynamic-forms-material';\n *\n * export const appConfig: ApplicationConfig = {\n * providers: [\n * provideDynamicForm(\n * ...withMaterialFields({\n * appearance: 'fill',\n * subscriptSizing: 'fixed'\n * })\n * )\n * ]\n * };\n * ```\n */\nexport const MATERIAL_CONFIG = new InjectionToken<MaterialConfig>('MATERIAL_CONFIG');\n","import { computed, Signal } from '@angular/core';\nimport { ResolvedError } from '@ng-forge/dynamic-forms/integration';\n\n/**\n * Creates a signal that computes the aria-describedby value based on errors and hint state.\n * Errors take precedence over hints - when errors are displayed, the hint is hidden.\n * Only the first error is displayed (single error ID, not indexed).\n *\n * @param errorsToDisplay Signal containing the array of errors currently being displayed\n * @param errorId Signal containing the ID for the error element (single error only)\n * @param hintId Signal containing the ID for the hint element\n * @param hasHint Function that returns true if a hint is configured\n * @returns Signal containing the aria-describedby value or null\n */\nexport function createAriaDescribedBySignal(\n errorsToDisplay: Signal<ResolvedError[]>,\n errorId: Signal<string>,\n hintId: Signal<string>,\n hasHint: () => boolean,\n): Signal<string | null> {\n return computed(() => {\n if (errorsToDisplay().length > 0) {\n return errorId();\n }\n if (hasHint()) {\n return hintId();\n }\n return null;\n });\n}\n","import { afterRenderEffect, ChangeDetectionStrategy, Component, computed, ElementRef, inject, input } from '@angular/core';\nimport { FormField, FieldTree } from '@angular/forms/signals';\nimport { MatCheckbox } from '@angular/material/checkbox';\nimport { DynamicText, DynamicTextPipe, FieldMeta, ValidationMessages } from '@ng-forge/dynamic-forms';\nimport { createResolvedErrorsSignal, setupMetaTracking, shouldShowErrors } from '@ng-forge/dynamic-forms/integration';\nimport { MatCheckboxComponent, MatCheckboxProps } from './mat-checkbox.type';\nimport { MatError } from '@angular/material/input';\nimport { AsyncPipe } from '@angular/common';\nimport { MATERIAL_CONFIG } from '../../models/material-config.token';\nimport { createAriaDescribedBySignal } from '../../utils/create-aria-described-by';\n\n@Component({\n selector: 'df-mat-checkbox',\n imports: [MatCheckbox, FormField, MatError, DynamicTextPipe, AsyncPipe],\n template: `\n @let f = field();\n @let checkboxId = key() + '-checkbox';\n\n <mat-checkbox\n [id]=\"checkboxId\"\n [formField]=\"f\"\n [labelPosition]=\"props()?.labelPosition || 'after'\"\n [indeterminate]=\"props()?.indeterminate || false\"\n [color]=\"props()?.color || 'primary'\"\n [disableRipple]=\"effectiveDisableRipple()\"\n [required]=\"!!f().required()\"\n [attr.aria-describedby]=\"ariaDescribedBy()\"\n [attr.tabindex]=\"tabIndex()\"\n [attr.hidden]=\"f().hidden() || null\"\n >\n {{ label() | dynamicText | async }}\n </mat-checkbox>\n\n @if (errorsToDisplay()[0]; as error) {\n <mat-error [id]=\"errorId()\" [attr.hidden]=\"f().hidden() || null\">{{ error.message }}</mat-error>\n } @else if (props()?.hint; as hint) {\n <div class=\"mat-hint\" [id]=\"hintId()\" [attr.hidden]=\"f().hidden() || null\">{{ hint | dynamicText | async }}</div>\n }\n `,\n styleUrl: '../../styles/_form-field.scss',\n host: {\n '[class]': 'className()',\n '[id]': '`${key()}`',\n '[attr.data-testid]': 'key()',\n '[attr.hidden]': 'field()().hidden() || null',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport default class MatCheckboxFieldComponent implements MatCheckboxComponent {\n private materialConfig = inject(MATERIAL_CONFIG, { optional: true });\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n readonly field = input.required<FieldTree<boolean>>();\n readonly key = input.required<string>();\n\n // Properties\n readonly label = input<DynamicText>();\n readonly placeholder = input<DynamicText>();\n readonly className = input<string>('');\n readonly tabIndex = input<number>();\n readonly props = input<MatCheckboxProps>();\n readonly meta = input<FieldMeta>();\n readonly validationMessages = input<ValidationMessages>();\n readonly defaultValidationMessages = input<ValidationMessages>();\n\n readonly effectiveDisableRipple = computed(() => this.props()?.disableRipple ?? this.materialConfig?.disableRipple ?? false);\n\n readonly resolvedErrors = createResolvedErrorsSignal(this.field, this.validationMessages, this.defaultValidationMessages);\n readonly showErrors = shouldShowErrors(this.field);\n\n readonly errorsToDisplay = computed(() => (this.showErrors() ? this.resolvedErrors() : []));\n\n constructor() {\n // Apply meta attributes to the internal checkbox input\n setupMetaTracking(this.elementRef, this.meta, {\n selector: 'input[type=\"checkbox\"]',\n });\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Accessibility\n // ─────────────────────────────────────────────────────────────────────────────\n\n /** Unique ID for the hint element, used for aria-describedby */\n protected readonly hintId = computed(() => `${this.key()}-hint`);\n\n /** Base ID for error elements, used for aria-describedby */\n protected readonly errorId = computed(() => `${this.key()}-error`);\n\n /** aria-invalid: true when field is invalid AND touched, false otherwise */\n protected readonly ariaInvalid = computed(() => {\n const fieldState = this.field()();\n return fieldState.invalid() && fieldState.touched();\n });\n\n /** aria-required: true if field is required, null otherwise (to remove attribute) */\n protected readonly ariaRequired = computed(() => {\n return this.field()().required?.() === true ? true : null;\n });\n\n /** aria-describedby: links to hint and error messages for screen readers */\n protected readonly ariaDescribedBy = createAriaDescribedBySignal(\n this.errorsToDisplay,\n this.errorId,\n this.hintId,\n () => !!this.props()?.hint,\n );\n\n /**\n * Workaround: Angular Material's MatCheckbox does NOT set aria-required on its internal\n * input element when [required] is passed, even though it sets the native required attribute.\n * This effect imperatively sets/removes aria-required on the internal input.\n *\n * Bug: MatCheckbox sets `required` attribute but not `aria-required` for screen readers.\n * @see https://github.com/angular/components/issues/XXXXX (TODO: file issue)\n *\n * Uses afterRenderEffect to ensure DOM is ready before manipulating attributes.\n */\n private readonly syncAriaRequiredToDom = afterRenderEffect(() => {\n const isRequired = this.ariaRequired();\n const inputEl = this.elementRef.nativeElement.querySelector('input[type=\"checkbox\"]');\n if (inputEl) {\n if (isRequired) {\n inputEl.setAttribute('aria-required', 'true');\n } else {\n inputEl.removeAttribute('aria-required');\n }\n }\n });\n\n /**\n * Workaround: Angular Material's MatCheckbox does NOT propagate aria-describedby to its internal\n * input element. This effect imperatively sets/removes aria-describedby on the internal input.\n *\n * Uses afterRenderEffect to ensure DOM is ready before querying internal elements.\n */\n private readonly syncAriaDescribedByToDom = afterRenderEffect(() => {\n const describedBy = this.ariaDescribedBy();\n const inputEl = this.elementRef.nativeElement.querySelector('input[type=\"checkbox\"]');\n if (inputEl) {\n if (describedBy) {\n inputEl.setAttribute('aria-describedby', describedBy);\n } else {\n inputEl.removeAttribute('aria-describedby');\n }\n }\n });\n}\n","import { ChangeDetectionStrategy, Component, computed, ElementRef, inject, input } from '@angular/core';\nimport { FormField, FieldTree } from '@angular/forms/signals';\nimport { MatError, MatFormField, MatLabel, MatSuffix } from '@angular/material/form-field';\nimport { MatHint, MatInput } from '@angular/material/input';\nimport { MatDatepicker, MatDatepickerInput, MatDatepickerToggle } from '@angular/material/datepicker';\nimport { DynamicText, DynamicTextPipe, ValidationMessages } from '@ng-forge/dynamic-forms';\nimport { createResolvedErrorsSignal, InputMeta, setupMetaTracking, shouldShowErrors } from '@ng-forge/dynamic-forms/integration';\nimport { MatDatepickerComponent, MatDatepickerProps } from './mat-datepicker.type';\nimport { provideNativeDateAdapter } from '@angular/material/core';\nimport { AsyncPipe } from '@angular/common';\nimport { MATERIAL_CONFIG } from '../../models/material-config.token';\nimport { createAriaDescribedBySignal } from '../../utils/create-aria-described-by';\n\n@Component({\n selector: 'df-mat-datepicker',\n imports: [\n MatFormField,\n MatLabel,\n MatInput,\n MatHint,\n MatDatepicker,\n MatDatepickerInput,\n MatDatepickerToggle,\n MatSuffix,\n FormField,\n MatError,\n DynamicTextPipe,\n AsyncPipe,\n ],\n host: {\n '[id]': '`${key()}`',\n '[class]': 'className()',\n '[attr.data-testid]': 'key()',\n '[attr.hidden]': 'field()().hidden() || null',\n },\n template: `\n @let f = field();\n @let inputId = key() + '-input';\n\n <mat-form-field\n [appearance]=\"effectiveAppearance()\"\n [subscriptSizing]=\"effectiveSubscriptSizing()\"\n [floatLabel]=\"effectiveFloatLabel()\"\n [hideRequiredMarker]=\"effectiveHideRequiredMarker()\"\n >\n @if (label(); as label) {\n <mat-label>{{ label | dynamicText | async }}</mat-label>\n }\n\n <input\n matInput\n [id]=\"inputId\"\n [matDatepicker]=\"picker\"\n [formField]=\"f\"\n [placeholder]=\"(placeholder() | dynamicText | async) ?? ''\"\n [attr.tabindex]=\"tabIndex()\"\n [min]=\"minDate()\"\n [max]=\"maxDate()\"\n [attr.aria-invalid]=\"ariaInvalid()\"\n [attr.aria-required]=\"ariaRequired()\"\n [attr.aria-describedby]=\"ariaDescribedBy()\"\n />\n\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\" />\n <mat-datepicker #picker [startAt]=\"startAt()\" [startView]=\"props()?.startView || 'month'\" [touchUi]=\"props()?.touchUi ?? false\" />\n\n @if (errorsToDisplay()[0]; as error) {\n <mat-error [id]=\"errorId()\">{{ error.message }}</mat-error>\n } @else if (props()?.hint; as hint) {\n <mat-hint [id]=\"hintId()\">{{ hint | dynamicText | async }}</mat-hint>\n }\n </mat-form-field>\n `,\n styleUrl: '../../styles/_form-field.scss',\n styles: [\n `\n mat-form-field {\n width: 100%;\n }\n `,\n ],\n providers: [provideNativeDateAdapter()],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport default class MatDatepickerFieldComponent implements MatDatepickerComponent {\n private materialConfig = inject(MATERIAL_CONFIG, { optional: true });\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n readonly field = input.required<FieldTree<string>>();\n readonly key = input.required<string>();\n\n constructor() {\n setupMetaTracking(this.elementRef, this.meta, { selector: 'input' });\n }\n\n readonly label = input<DynamicText>();\n readonly placeholder = input<DynamicText>();\n\n readonly className = input<string>('');\n readonly tabIndex = input<number>();\n\n readonly minDate = input<Date | null>(null);\n readonly maxDate = input<Date | null>(null);\n readonly startAt = input<Date | null>(null);\n readonly props = input<MatDatepickerProps>();\n readonly meta = input<InputMeta>();\n readonly validationMessages = input<ValidationMessages>();\n readonly defaultValidationMessages = input<ValidationMessages>();\n\n readonly effectiveAppearance = computed(() => this.props()?.appearance ?? this.materialConfig?.appearance ?? 'outline');\n\n readonly effectiveSubscriptSizing = computed(() => this.props()?.subscriptSizing ?? this.materialConfig?.subscriptSizing ?? 'dynamic');\n\n readonly effectiveFloatLabel = computed(() => this.props()?.floatLabel ?? this.materialConfig?.floatLabel ?? 'auto');\n\n readonly effectiveHideRequiredMarker = computed(\n () => this.props()?.hideRequiredMarker ?? this.materialConfig?.hideRequiredMarker ?? false,\n );\n\n readonly resolvedErrors = createResolvedErrorsSignal(this.field, this.validationMessages, this.defaultValidationMessages);\n readonly showErrors = shouldShowErrors(this.field);\n\n readonly errorsToDisplay = computed(() => (this.showErrors() ? this.resolvedErrors() : []));\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Accessibility\n // ─────────────────────────────────────────────────────────────────────────────\n\n /** Unique ID for the hint element, used for aria-describedby */\n protected readonly hintId = computed(() => `${this.key()}-hint`);\n\n /** Base ID for error elements, used for aria-describedby */\n protected readonly errorId = computed(() => `${this.key()}-error`);\n\n /** aria-invalid: true when field is invalid AND touched, false otherwise */\n protected readonly ariaInvalid = computed(() => {\n const fieldState = this.field()();\n return fieldState.invalid() && fieldState.touched();\n });\n\n /** aria-required: true if field is required, null otherwise (to remove attribute) */\n protected readonly ariaRequired = computed(() => {\n return this.field()().required?.() === true ? true : null;\n });\n\n /** aria-describedby: links to hint and error messages for screen readers */\n protected readonly ariaDescribedBy = createAriaDescribedBySignal(\n this.errorsToDisplay,\n this.errorId,\n this.hintId,\n () => !!this.props()?.hint,\n );\n}\n","import { afterRenderEffect, ChangeDetectionStrategy, Component, computed, ElementRef, inject, input, viewChild } from '@angular/core';\nimport { FormField, FieldTree } from '@angular/forms/signals';\nimport { MatError, MatFormField, MatLabel } from '@angular/material/form-field';\nimport { MatHint, MatInput } from '@angular/material/input';\nimport { DynamicText, DynamicTextPipe, ValidationMessages } from '@ng-forge/dynamic-forms';\nimport { createResolvedErrorsSignal, InputMeta, setupMetaTracking, shouldShowErrors } from '@ng-forge/dynamic-forms/integration';\nimport { MatInputComponent, MatInputProps } from './mat-input.type';\nimport { AsyncPipe } from '@angular/common';\nimport { MATERIAL_CONFIG } from '../../models/material-config.token';\nimport { createAriaDescribedBySignal } from '../../utils/create-aria-described-by';\n\n@Component({\n selector: 'df-mat-input',\n imports: [MatFormField, MatLabel, MatInput, MatHint, FormField, MatError, DynamicTextPipe, AsyncPipe],\n template: `\n @let f = field();\n @let inputId = key() + '-input';\n\n <mat-form-field\n [appearance]=\"effectiveAppearance()\"\n [subscriptSizing]=\"effectiveSubscriptSizing()\"\n [floatLabel]=\"effectiveFloatLabel()\"\n [hideRequiredMarker]=\"effectiveHideRequiredMarker()\"\n >\n @if (label()) {\n <mat-label>{{ label() | dynamicText | async }}</mat-label>\n }\n <input\n #inputRef\n matInput\n [id]=\"inputId\"\n [formField]=\"f\"\n [type]=\"props()?.type ?? 'text'\"\n [placeholder]=\"(placeholder() | dynamicText | async) ?? ''\"\n [attr.tabindex]=\"tabIndex()\"\n [attr.aria-invalid]=\"ariaInvalid()\"\n [attr.aria-required]=\"ariaRequired()\"\n [attr.aria-describedby]=\"ariaDescribedBy()\"\n />\n @if (errorsToDisplay()[0]; as error) {\n <mat-error [id]=\"errorId()\">{{ error.message }}</mat-error>\n } @else if (props()?.hint; as hint) {\n <mat-hint [id]=\"hintId()\">{{ hint | dynamicText | async }}</mat-hint>\n }\n </mat-form-field>\n `,\n styleUrl: '../../styles/_form-field.scss',\n styles: [\n `\n mat-form-field {\n width: 100%;\n }\n `,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[id]': '`${key()}`',\n '[attr.data-testid]': 'key()',\n '[class]': 'className()',\n '[attr.hidden]': 'field()().hidden() || null',\n },\n})\nexport default class MatInputFieldComponent implements MatInputComponent {\n private materialConfig = inject(MATERIAL_CONFIG, { optional: true });\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n readonly field = input.required<FieldTree<string>>();\n readonly key = input.required<string>();\n\n readonly label = input<DynamicText>();\n readonly placeholder = input<DynamicText>();\n readonly className = input<string>('');\n readonly tabIndex = input<number>();\n readonly props = input<MatInputProps>();\n readonly meta = input<InputMeta>();\n readonly validationMessages = input<ValidationMessages>();\n readonly defaultValidationMessages = input<ValidationMessages>();\n\n constructor() {\n setupMetaTracking(this.elementRef, this.meta, { selector: 'input' });\n }\n\n /**\n * Reference to the native input element.\n * Used to imperatively sync the readonly attribute since Angular Signal Forms'\n * [field] directive doesn't sync FieldState.readonly() to the DOM.\n */\n private readonly inputRef = viewChild<ElementRef<HTMLInputElement>>('inputRef');\n\n /**\n * Computed signal that extracts the readonly state from the field.\n * Used by the effect to reactively sync the readonly attribute to the DOM.\n */\n private readonly isReadonly = computed(() => this.field()().readonly());\n\n /**\n * Workaround: Angular Signal Forms' [field] directive does NOT sync the readonly\n * attribute to the DOM, even though FieldState.readonly() returns the correct value.\n * This effect imperatively sets/removes the readonly attribute on the native input\n * element whenever the readonly state changes.\n *\n * Note: We cannot use [readonly] or [attr.readonly] bindings because Angular throws\n * NG8022: \"Binding to '[readonly]' is not allowed on nodes using the '[field]' directive\"\n *\n * Uses afterRenderEffect to ensure DOM is ready before manipulating attributes.\n *\n * @see https://github.com/angular/angular/issues/65897\n */\n private readonly syncReadonlyToDom = afterRenderEffect({\n write: () => {\n const inputRef = this.inputRef();\n const isReadonly = this.isReadonly();\n\n if (inputRef?.nativeElement) {\n if (isReadonly) {\n inputRef.nativeElement.setAttribute('readonly', '');\n } else {\n inputRef.nativeElement.removeAttribute('readonly');\n }\n }\n },\n });\n\n readonly effectiveAppearance = computed(() => this.props()?.appearance ?? this.materialConfig?.appearance ?? 'outline');\n\n readonly effectiveSubscriptSizing = computed(() => this.props()?.subscriptSizing ?? this.materialConfig?.subscriptSizing ?? 'dynamic');\n\n readonly effectiveFloatLabel = computed(() => this.props()?.floatLabel ?? this.materialConfig?.floatLabel ?? 'auto');\n\n readonly effectiveHideRequiredMarker = computed(\n () => this.props()?.hideRequiredMarker ?? this.materialConfig?.hideRequiredMarker ?? false,\n );\n\n readonly resolvedErrors = createResolvedErrorsSignal(this.field, this.validationMessages, this.defaultValidationMessages);\n readonly showErrors = shouldShowErrors(this.field);\n\n readonly errorsToDisplay = computed(() => (this.showErrors() ? this.resolvedErrors() : []));\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Accessibility\n // ─────────────────────────────────────────────────────────────────────────────\n\n /** Unique ID for the hint element, used for aria-describedby */\n protected readonly hintId = computed(() => `${this.key()}-hint`);\n\n /** Base ID for error elements, used for aria-describedby */\n protected readonly errorId = computed(() => `${this.key()}-error`);\n\n /** aria-invalid: true when field is invalid AND touched, false otherwise */\n protected readonly ariaInvalid = computed(() => {\n const fieldState = this.field()();\n return fieldState.invalid() && fieldState.touched();\n });\n\n /** aria-required: true if field is required, null otherwise (to remove attribute) */\n protected readonly ariaRequired = computed(() => {\n return this.field()().required?.() === true ? true : null;\n });\n\n /** aria-describedby: links to hint and error messages for screen readers */\n protected readonly ariaDescribedBy = createAriaDescribedBySignal(\n this.errorsToDisplay,\n this.errorId,\n this.hintId,\n () => !!this.props()?.hint,\n );\n}\n","import { ChangeDetectionStrategy, Component, computed, ElementRef, inject, input, linkedSignal } from '@angular/core';\nimport { FieldTree } from '@angular/forms/signals';\nimport { MatCheckbox } from '@angular/material/checkbox';\nimport { DynamicText, DynamicTextPipe, FieldMeta, FieldOption, ValidationMessages, ValueType } from '@ng-forge/dynamic-forms';\nimport { createResolvedErrorsSignal, isEqual, setupMetaTracking, shouldShowErrors } from '@ng-forge/dynamic-forms/integration';\nimport { explicitEffect } from 'ngxtension/explicit-effect';\nimport { MatMultiCheckboxComponent, MatMultiCheckboxProps } from './mat-multi-checkbox.type';\nimport { MatError } from '@angular/material/input';\nimport { AsyncPipe } from '@angular/common';\nimport { createAriaDescribedBySignal } from '../../utils/create-aria-described-by';\n\n@Component({\n selector: 'df-mat-multi-checkbox',\n imports: [MatCheckbox, MatError, DynamicTextPipe, AsyncPipe],\n template: `\n @let f = field();\n @let checkboxGroupId = key() + '-checkbox-group';\n @let checked = checkedValuesMap();\n\n @if (label(); as label) {\n <div class=\"checkbox-group-label\">{{ label | dynamicText | async }}</div>\n }\n\n <div\n [id]=\"checkboxGroupId\"\n class=\"checkbox-group\"\n role=\"group\"\n [attr.aria-invalid]=\"ariaInvalid()\"\n [attr.aria-required]=\"ariaRequired()\"\n [attr.aria-describedby]=\"ariaDescribedBy()\"\n >\n @for (option of options(); track option.value) {\n <mat-checkbox\n [checked]=\"checked['' + option.value]\"\n [disabled]=\"f().disabled() || option.disabled\"\n [color]=\"props()?.color || 'primary'\"\n [labelPosition]=\"props()?.labelPosition || 'after'\"\n (change)=\"onCheckboxChange(option, $event.checked)\"\n >\n {{ option.label | dynamicText | async }}\n </mat-checkbox>\n }\n </div>\n\n @if (errorsToDisplay()[0]; as error) {\n <mat-error [id]=\"errorId()\">{{ error.message }}</mat-error>\n } @else if (props()?.hint; as hint) {\n <div class=\"mat-hint\" [id]=\"hintId()\">{{ hint | dynamicText | async }}</div>\n }\n `,\n styleUrl: '../../styles/_form-field.scss',\n host: {\n '[class]': 'className() || \"\"',\n '[id]': '`${key()}`',\n '[attr.data-testid]': 'key()',\n '[attr.hidden]': 'field()().hidden() || null',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport default class MatMultiCheckboxFieldComponent implements MatMultiCheckboxComponent {\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n readonly field = input.required<FieldTree<ValueType[]>>();\n readonly key = input.required<string>();\n\n readonly label = input<DynamicText>();\n readonly placeholder = input<DynamicText>();\n\n readonly className = input<string>('');\n readonly tabIndex = input<number>();\n\n readonly options = input<FieldOption<ValueType>[]>([]);\n readonly props = input<MatMultiCheckboxProps>();\n readonly meta = input<FieldMeta>();\n\n valueViewModel = linkedSignal<FieldOption<ValueType>[]>(\n () => {\n const currentValues = this.field()().value();\n return this.options().filter((option) => currentValues.includes(option.value));\n },\n { equal: isEqual },\n );\n\n /** Computed map of checked option values for O(1) lookup in template */\n readonly checkedValuesMap = computed(() => {\n const map: Record<string, boolean> = {};\n for (const opt of this.valueViewModel()) {\n map[String(opt.value)] = true;\n }\n return map;\n });\n\n constructor() {\n // Apply meta attributes to all checkbox inputs, re-apply when options change\n setupMetaTracking(this.elementRef, this.meta, {\n selector: 'input[type=\"checkbox\"]',\n dependents: [this.options],\n });\n\n explicitEffect([this.valueViewModel], ([selectedOptions]) => {\n const selectedValues = selectedOptions.map((option) => option.value);\n\n if (!isEqual(selectedValues, this.field()().value())) {\n this.field()().value.set(selectedValues);\n }\n });\n\n explicitEffect([this.options], ([options]) => {\n const values = options.map((option) => option.value);\n const uniqueValues = new Set(values);\n\n if (values.length !== uniqueValues.size) {\n const duplicates = values.filter((value, index) => values.indexOf(value) !== index);\n throw new Error(`Duplicate option values detected in mat-multi-checkbox: ${duplicates.join(', ')}`);\n }\n });\n }\n\n onCheckboxChange(option: FieldOption<ValueType>, checked: boolean): void {\n this.valueViewModel.update((currentOptions) => {\n if (checked) {\n return currentOptions.some((opt) => opt.value === option.value) ? currentOptions : [...currentOptions, option];\n } else {\n return currentOptions.filter((opt) => opt.value !== option.value);\n }\n });\n }\n\n readonly validationMessages = input<ValidationMessages>();\n readonly defaultValidationMessages = input<ValidationMessages>();\n\n readonly resolvedErrors = createResolvedErrorsSignal(this.field, this.validationMessages, this.defaultValidationMessages);\n readonly showErrors = shouldShowErrors(this.field);\n\n readonly errorsToDisplay = computed(() => (this.showErrors() ? this.resolvedErrors() : []));\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Accessibility\n // ─────────────────────────────────────────────────────────────────────────────\n\n /** Unique ID for the hint element, used for aria-describedby */\n protected readonly hintId = computed(() => `${this.key()}-hint`);\n\n /** Base ID for error elements, used for aria-describedby */\n protected readonly errorId = computed(() => `${this.key()}-error`);\n\n /** aria-invalid: true when field is invalid AND touched, false otherwise */\n protected readonly ariaInvalid = computed(() => {\n const fieldState = this.field()();\n return fieldState.invalid() && fieldState.touched();\n });\n\n /** aria-required: true if field is required, null otherwise (to remove attribute) */\n protected readonly ariaRequired = computed(() => {\n return this.field()().required?.() === true ? true : null;\n });\n\n /** aria-describedby: links to hint and error messages for screen readers */\n protected readonly ariaDescribedBy = createAriaDescribedBySignal(\n this.errorsToDisplay,\n this.errorId,\n this.hintId,\n () => !!this.props()?.hint,\n );\n}\n","import { ChangeDetectionStrategy, Component, computed, ElementRef, inject, input } from '@angular/core';\nimport { FormField, FieldTree } from '@angular/forms/signals';\nimport { MatRadioButton, MatRadioGroup } from '@angular/material/radio';\nimport { DynamicText, DynamicTextPipe, FieldMeta, FieldOption, ValidationMessages, ValueType } from '@ng-forge/dynamic-forms';\nimport { createResolvedErrorsSignal, setupMetaTracking, shouldShowErrors } from '@ng-forge/dynamic-forms/integration';\nimport { MatRadioComponent, MatRadioProps } from './mat-radio.type';\nimport { MatError } from '@angular/material/input';\nimport { AsyncPipe } from '@angular/common';\nimport { createAriaDescribedBySignal } from '../../utils/create-aria-described-by';\n\n@Component({\n selector: 'df-mat-radio',\n imports: [MatRadioGroup, MatRadioButton, FormField, MatError, DynamicTextPipe, AsyncPipe],\n template: `\n @let f = field();\n @let radioGroupId = key() + '-radio-group';\n\n @if (label()) {\n <div class=\"radio-label\">{{ label() | dynamicText | async }}</div>\n }\n\n <mat-radio-group\n [id]=\"radioGroupId\"\n [formField]=\"f\"\n [attr.aria-invalid]=\"ariaInvalid()\"\n [attr.aria-required]=\"ariaRequired()\"\n [attr.aria-describedby]=\"ariaDescribedBy()\"\n >\n @for (option of options(); track option.value) {\n <mat-radio-button\n [value]=\"option.value\"\n [disabled]=\"option.disabled || false\"\n [color]=\"props()?.color || 'primary'\"\n [labelPosition]=\"props()?.labelPosition || 'after'\"\n >\n {{ option.label | dynamicText | async }}\n </mat-radio-button>\n }\n </mat-radio-group>\n\n @if (errorsToDisplay()[0]; as error) {\n <mat-error [id]=\"errorId()\">{{ error.message }}</mat-error>\n } @else if (props()?.hint; as hint) {\n <div class=\"mat-hint\" [id]=\"hintId()\">{{ hint | dynamicText | async }}</div>\n }\n `,\n styleUrl: '../../styles/_form-field.scss',\n host: {\n '[class]': 'className() || \"\"',\n '[id]': '`${key()}`',\n '[attr.data-testid]': 'key()',\n '[attr.hidden]': 'field()().hidden() || null',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport default class MatRadioFieldComponent implements MatRadioComponent {\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n readonly field = input.required<FieldTree<ValueType>>();\n readonly key = input.required<string>();\n\n readonly label = input<DynamicText>();\n readonly placeholder = input<DynamicText>();\n\n readonly className = input<string>('');\n readonly tabIndex = input<number>();\n\n readonly options = input<FieldOption<ValueType>[]>([]);\n readonly props = input<MatRadioProps>();\n readonly meta = input<FieldMeta>();\n readonly validationMessages = input<ValidationMessages>();\n readonly defaultValidationMessages = input<ValidationMessages>();\n\n readonly resolvedErrors = createResolvedErrorsSignal(this.field, this.validationMessages, this.defaultValidationMessages);\n readonly showErrors = shouldShowErrors(this.field);\n\n readonly errorsToDisplay = computed(() => (this.showErrors() ? this.resolvedErrors() : []));\n\n constructor() {\n // Apply meta attributes to all radio inputs, re-apply when options change\n setupMetaTracking(this.elementRef, this.meta, {\n selector: 'input[type=\"radio\"]',\n dependents: [this.options],\n });\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Accessibility\n // ─────────────────────────────────────────────────────────────────────────────\n\n /** Unique ID for the hint element, used for aria-describedby */\n protected readonly hintId = computed(() => `${this.key()}-hint`);\n\n /** Base ID for error elements, used for aria-describedby */\n protected readonly errorId = computed(() => `${this.key()}-error`);\n\n /** aria-invalid: true when field is invalid AND touched, false otherwise */\n protected readonly ariaInvalid = computed(() => {\n const fieldState = this.field()();\n return fieldState.invalid() && fieldState.touched();\n });\n\n /** aria-required: true if field is required, null otherwise (to remove attribute) */\n protected readonly ariaRequired = computed(() => {\n return this.field()().required?.() === true ? true : null;\n });\n\n /** aria-describedby: links to hint and error messages for screen readers */\n protected readonly ariaDescribedBy = createAriaDescribedBySignal(\n this.errorsToDisplay,\n this.errorId,\n this.hintId,\n () => !!this.props()?.hint,\n );\n}\n","import { ChangeDetectionStrategy, Component, computed, ElementRef, inject, input } from '@angular/core';\nimport { FormField, FieldTree } from '@angular/forms/signals';\nimport { MatError, MatFormField, MatLabel } from '@angular/material/form-field';\nimport { MatOption, MatSelect } from '@angular/material/select';\nimport { MatHint } from '@angular/material/input';\nimport { DynamicText, DynamicTextPipe, FieldMeta, FieldOption, ValidationMessages, ValueType } from '@ng-forge/dynamic-forms';\nimport { createResolvedErrorsSignal, setupMetaTracking, shouldShowErrors } from '@ng-forge/dynamic-forms/integration';\nimport { MatSelectComponent, MatSelectProps } from './mat-select.type';\nimport { AsyncPipe } from '@angular/common';\nimport { MATERIAL_CONFIG } from '../../models/material-config.token';\nimport { createAriaDescribedBySignal } from '../../utils/create-aria-described-by';\n\n@Component({\n selector: 'df-mat-select',\n imports: [MatFormField, MatLabel, MatSelect, MatOption, MatHint, FormField, MatError, DynamicTextPipe, AsyncPipe],\n template: `\n @let f = field();\n @let selectId = key() + '-select';\n\n <mat-form-field\n [appearance]=\"effectiveAppearance()\"\n [subscriptSizing]=\"effectiveSubscriptSizing()\"\n [floatLabel]=\"effectiveFloatLabel()\"\n [hideRequiredMarker]=\"effectiveHideRequiredMarker()\"\n >\n @if (label(); as label) {\n <mat-label>{{ label | dynamicText | async }}</mat-label>\n }\n\n <mat-select\n [id]=\"selectId\"\n [formField]=\"f\"\n [placeholder]=\"(placeholder() | dynamicText | async) ?? ''\"\n [multiple]=\"props()?.multiple || false\"\n [compareWith]=\"props()?.compareWith || defaultCompare\"\n [attr.aria-invalid]=\"ariaInvalid()\"\n [attr.aria-required]=\"ariaRequired()\"\n [attr.aria-describedby]=\"ariaDescribedBy()\"\n >\n @for (option of options(); track option.value) {\n <mat-option [value]=\"option.value\" [disabled]=\"option.disabled || false\">\n {{ option.label | dynamicText | async }}\n </mat-option>\n }\n </mat-select>\n\n @if (errorsToDisplay()[0]; as error) {\n <mat-error [id]=\"errorId()\">{{ error.message }}</mat-error>\n } @else if (props()?.hint; as hint) {\n <mat-hint [id]=\"hintId()\">{{ hint | dynamicText | async }}</mat-hint>\n }\n </mat-form-field>\n `,\n styleUrl: '../../styles/_form-field.scss',\n styles: [\n `\n mat-form-field {\n width: 100%;\n }\n `,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[id]': '`${key()}`',\n '[attr.data-testid]': 'key()',\n '[class]': 'className()',\n '[attr.hidden]': 'field()().hidden() || null',\n },\n})\nexport default class MatSelectFieldComponent implements MatSelectComponent {\n private materialConfig = inject(MATERIAL_CONFIG, { optional: true });\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n readonly field = input.required<FieldTree<ValueType>>();\n readonly key = input.required<string>();\n\n readonly label = input<DynamicText>();\n readonly placeholder = input<DynamicText>();\n\n readonly className = input<string>('');\n readonly tabIndex = input<number>();\n\n readonly options = input<FieldOption<ValueType>[]>([]);\n readonly props = input<MatSelectProps>();\n readonly meta = input<FieldMeta>();\n readonly validationMessages = input<ValidationMessages>();\n readonly defaultValidationMessages = input<ValidationMessages>();\n\n readonly effectiveAppearance = computed(() => this.props()?.appearance ?? this.materialConfig?.appearance ?? 'outline');\n\n readonly effectiveSubscriptSizing = computed(() => this.props()?.subscriptSizing ?? this.materialConfig?.subscriptSizing ?? 'dynamic');\n\n readonly effectiveFloatLabel = computed(() => this.props()?.floatLabel ?? this.materialConfig?.floatLabel ?? 'auto');\n\n readonly effectiveHideRequiredMarker = computed(\n () => this.props()?.hideRequiredMarker ?? this.materialConfig?.hideRequiredMarker ?? false,\n );\n\n readonly resolvedErrors = createResolvedErrorsSignal(this.field, this.validationMessages, this.defaultValidationMessages);\n readonly showErrors = shouldShowErrors(this.field);\n\n readonly errorsToDisplay = computed(() => (this.showErrors() ? this.resolvedErrors() : []));\n\n defaultCompare = Object.is;\n\n constructor() {\n // mat-select has no native input - apply meta to mat-select element\n setupMetaTracking(this.elementRef, this.meta, {\n selector: 'mat-select',\n });\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Accessibility\n // ─────────────────────────────────────────────────────────────────────────────\n\n /** Unique ID for the hint element, used for aria-describedby */\n protected readonly hintId = computed(() => `${this.key()}-hint`);\n\n /** Base ID for error elements, used for aria-describedby */\n protected readonly errorId = computed(() => `${this.key()}-error`);\n\n /** aria-invalid: true when field is invalid AND touched, false otherwise */\n protected readonly ariaInvalid = computed(() => {\n const fieldState = this.field()();\n return fieldState.invalid() && fieldState.touched();\n });\n\n /** aria-required: true if field is required, null otherwise (to remove attribute) */\n protected readonly ariaRequired = computed(() => {\n return this.field()().required?.() === true ? true : null;\n });\n\n /** aria-describedby: links to hint and error messages for screen readers */\n protected readonly ariaDescribedBy = createAriaDescribedBySignal(\n this.errorsToDisplay,\n this.errorId,\n this.hintId,\n () => !!this.props()?.hint,\n );\n}\n","import { ChangeDetectionStrategy, Component, computed, ElementRef, inject, input } from '@angular/core';\nimport { FormField, FieldTree } from '@angular/forms/signals';\nimport { MatSlider, MatSliderThumb } from '@angular/material/slider';\nimport { DynamicText, DynamicTextPipe, ValidationMessages } from '@ng-forge/dynamic-forms';\nimport { createResolvedErrorsSignal, InputMeta, setupMetaTracking, shouldShowErrors } from '@ng-forge/dynamic-forms/integration';\nimport { MatSliderComponent, MatSliderProps } from './mat-slider.type';\nimport { MatError } from '@angular/material/input';\nimport { AsyncPipe } from '@angular/common';\nimport { createAriaDescribedBySignal } from '../../utils/create-aria-described-by';\n\n@Component({\n selector: 'df-mat-slider',\n imports: [MatSlider, MatSliderThumb, MatError, DynamicTextPipe, AsyncPipe, FormField],\n template: `\n @let f = field();\n @let inputId = key() + '-input';\n\n @if (label(); as label) {\n <div class=\"slider-label\">{{ label | dynamicText | async }}</div>\n }\n\n <mat-slider\n [min]=\"f().min?.() ?? 0\"\n [max]=\"f().max?.() ?? 100\"\n [step]=\"props()?.step ?? 1\"\n [discrete]=\"props()?.thumbLabel || props()?.showThumbLabel\"\n [showTickMarks]=\"props()?.tickInterval !== undefined\"\n [color]=\"props()?.color || 'primary'\"\n class=\"slider-container\"\n >\n <input\n matSliderThumb\n [id]=\"inputId\"\n [formField]=\"f\"\n [attr.tabindex]=\"tabIndex()\"\n [attr.aria-invalid]=\"ariaInvalid()\"\n [attr.aria-required]=\"ariaRequired()\"\n [attr.aria-describedby]=\"ariaDescribedBy()\"\n />\n </mat-slider>\n\n @if (errorsToDisplay()[0]; as error) {\n <mat-error [id]=\"errorId()\">{{ error.message }}</mat-error>\n } @else if (props()?.hint; as hint) {\n <div class=\"mat-hint\" [id]=\"hintId()\">{{ hint | dynamicText | async }}</div>\n }\n `,\n styleUrl: '../../styles/_form-field.scss',\n styles: [\n `\n .slider-container {\n width: 100%;\n }\n `,\n ],\n host: {\n '[class]': 'className()',\n '[id]': '`${key()}`',\n '[attr.data-testid]': 'key()',\n '[attr.hidden]': 'field()().hidden() || null',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport default class MatSliderFieldComponent implements MatSliderComponent {\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n readonly field = input.required<FieldTree<number>>();\n readonly key = input.required<string>();\n\n constructor() {\n setupMetaTracking(this.elementRef, this.meta, { selector: 'input' });\n }\n\n readonly label = input<DynamicText>();\n readonly placeholder = input<DynamicText>();\n\n readonly className = input<string>('');\n readonly tabIndex = input<number>();\n\n readonly props = input<MatSliderProps>();\n readonly meta = input<InputMeta>();\n readonly validationMessages = input<ValidationMessages>();\n readonly defaultValidationMessages = input<ValidationMessages>();\n\n readonly resolvedErrors = createResolvedErrorsSignal(this.field, this.validationMessages, this.defaultValidationMessages);\n readonly showErrors = shouldShowErrors(this.field);\n\n readonly errorsToDisplay = computed(() => (this.showErrors() ? this.resolvedErrors() : []));\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Accessibility\n // ─────────────────────────────────────────────────────────────────────────────\n\n /** Unique ID for the hint element, used for aria-describedby */\n protected readonly hintId = computed(() => `${this.key()}-hint`);\n\n /** Base ID for error elements, used for aria-describedby */\n protected readonly errorId = computed(() => `${this.key()}-error`);\n\n /** aria-required: true when field has required validation, null otherwise */\n protected readonly ariaRequired = computed(() => {\n return this.field()().required?.() === true ? true : null;\n });\n\n /** aria-invalid: true when field is invalid AND touched, false otherwise */\n protected readonly ariaInvalid = computed(() => {\n const fieldState = this.field()();\n return fieldState.invalid() && fieldState.touched();\n });\n\n /** aria-describedby: links to hint and error messages for screen readers */\n protected readonly ariaDescribedBy = createAriaDescribedBySignal(\n this.errorsToDisplay,\n this.errorId,\n this.hintId,\n () => !!this.props()?.hint,\n );\n}\n","import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { MatButton } from '@angular/material/button';\nimport {\n ARRAY_CONTEXT,\n ArrayItemContext,\n DynamicText,\n DynamicTextPipe,\n EventBus,\n FormEvent,\n FormEventConstructor,\n resolveTokens,\n} from '@ng-forge/dynamic-forms';\nimport { EventArgs } from '@ng-forge/dynamic-forms/integration';\nimport { MatButtonComponent, MatButtonProps } from './mat-button.type';\nimport { AsyncPipe } from '@angular/common';\n\n@Component({\n selector: 'df-mat-button',\n imports: [MatButton, DynamicTextPipe, AsyncPipe],\n host: {\n '[id]': '`${key()}`',\n '[attr.data-testid]': 'key()',\n '[class]': 'className()',\n '[attr.hidden]': 'hidden() || null',\n },\n template: `\n @let buttonId = key() + '-button';\n <button\n mat-raised-button\n [id]=\"buttonId\"\n [type]=\"buttonType()\"\n [color]=\"props()?.color || 'primary'\"\n [disabled]=\"disabled()\"\n [attr.data-testid]=\"buttonTestId()\"\n (click)=\"onClick()\"\n >\n {{ label() | dynamicText | async }}\n </button>\n `,\n styleUrl: '../../styles/_form-field.scss',\n styles: [\n `\n button {\n min-width: fit-content;\n }\n `,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport default class MatButtonFieldComponent<TEvent extends FormEvent> implements MatButtonComponent<TEvent> {\n private readonly eventBus = inject(EventBus);\n private readonly arrayContext = inject(ARRAY_CONTEXT, { optional: true });\n\n readonly key = input.required<string>();\n readonly label = input.required<DynamicText>();\n readonly disabled = input<boolean>(false);\n readonly hidden = input<boolean>(false);\n\n readonly tabIndex = input<number>();\n readonly className = input<string>('');\n\n /** Event to dispatch on click. Optional for submit buttons (native form submit handles it). */\n readonly event = input<FormEventConstructor<TEvent>>();\n readonly eventArgs = input<EventArgs>();\n readonly props = input<MatButtonProps>();\n\n readonly eventContext = input<ArrayItemContext>();\n\n /** Resolved button type - defaults to 'button' if not specified in props */\n readonly buttonType = computed(() => this.props()?.type ?? 'button');\n\n readonly buttonTestId = computed(() => `${this.buttonType()}-${this.key()}`);\n\n /**\n * Handle button click.\n * - For submit buttons (type=\"submit\"): do nothing, native form submit handles it\n * - For other buttons: dispatch the configured event via EventBus\n */\n onClick(): void {\n // Native submit buttons let the form handle submission\n if (this.buttonType() === 'submit') {\n return;\n }\n\n // Other buttons dispatch their event (if configured)\n const event = this.event();\n if (event) {\n this.dispatchEvent(event);\n }\n }\n\n private dispatchEvent(event: FormEventConstructor<TEvent>): void {\n const args = this.eventArgs();\n\n if (args && args.length > 0) {\n // Build context from injected ARRAY_CONTEXT (with linkedSignal index) or fallback to eventContext\n const context: ArrayItemContext = this.arrayContext\n ? {\n key: this.key(),\n // Read signal to get current index (automatically updates via linkedSignal)\n index: this.arrayContext.index(),\n arrayKey: this.arrayContext.arrayKey,\n formValue: this.arrayContext.formValue,\n }\n : this.eventContext() || { key: this.key() };\n\n // Resolve tokens in event args using the provided context\n const resolvedArgs = resolveTokens(args, context);\n\n // Dispatch event with resolved args\n this.eventBus.dispatch(event, ...resolvedArgs);\n } else {\n // No args, dispatch event without arguments\n this.eventBus.dispatch(event);\n }\n }\n}\n","// Public API - types for type safety\nexport type {\n MatButtonProps,\n MatButtonField,\n MatSubmitButtonField,\n MatNextButtonField,\n MatPreviousButtonField,\n AddArrayItemButtonField,\n PrependArrayItemButtonField,\n InsertArrayItemButtonField,\n RemoveArrayItemButtonField,\n PopArrayItemButtonField,\n ShiftArrayItemButtonField,\n} from './mat-button.type';\n\n// Public API - component\nexport { default as MatButtonFieldComponent } from './mat-button.component';\n","import { afterRenderEffect, ChangeDetectionStrategy, Component, computed, ElementRef, inject, input, viewChild } from '@angular/core';\nimport { FormField, FieldTree } from '@angular/forms/signals';\nimport { MatError, MatFormField, MatLabel } from '@angular/material/form-field';\nimport { MatHint, MatInput } from '@angular/material/input';\nimport { DynamicText, DynamicTextPipe, ValidationMessages } from '@ng-forge/dynamic-forms';\nimport { createResolvedErrorsSignal, setupMetaTracking, shouldShowErrors, TextareaMeta } from '@ng-forge/dynamic-forms/integration';\nimport { MatTextareaComponent, MatTextareaProps } from './mat-textarea.type';\nimport { AsyncPipe } from '@angular/common';\nimport { MATERIAL_CONFIG } from '../../models/material-config.token';\nimport { createAriaDescribedBySignal } from '../../utils/create-aria-described-by';\n\n@Component({\n selector: 'df-mat-textarea',\n imports: [MatFormField, MatLabel, MatInput, MatHint, FormField, MatError, DynamicTextPipe, AsyncPipe],\n template: `\n @let f = field();\n @let textareaId = key() + '-textarea';\n\n <mat-form-field\n [appearance]=\"effectiveAppearance()\"\n [subscriptSizing]=\"effectiveSubscriptSizing()\"\n [floatLabel]=\"effectiveFloatLabel()\"\n [hideRequiredMarker]=\"effectiveHideRequiredMarker()\"\n >\n @if (label()) {\n <mat-label>{{ label() | dynamicText | async }}</mat-label>\n }\n\n <textarea\n #textareaRef\n matInput\n [id]=\"textareaId\"\n [formField]=\"f\"\n [placeholder]=\"(placeholder() | dynamicText | async) ?? ''\"\n [attr.tabindex]=\"tabIndex()\"\n [attr.aria-invalid]=\"ariaInvalid()\"\n [attr.aria-required]=\"ariaRequired()\"\n [attr.aria-describedby]=\"ariaDescribedBy()\"\n [style.resize]=\"props()?.resize || 'vertical'\"\n ></textarea>\n\n @if (errorsToDisplay()[0]; as error) {\n <mat-error [id]=\"errorId()\">{{ error.message }}</mat-error>\n } @else if (props()?.hint; as hint) {\n <mat-hint [id]=\"hintId()\">{{ hint | dynamicText | async }}</mat-hint>\n }\n </mat-form-field>\n `,\n styleUrl: '../../styles/_form-field.scss',\n styles: [\n `\n mat-form-field {\n width: 100%;\n }\n `,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[id]': '`${key()}`',\n '[attr.data-testid]': 'key()',\n '[class]': 'className()',\n '[attr.hidden]': 'field()().hidden() || null',\n },\n})\nexport default class MatTextareaFieldComponent implements MatTextareaComponent {\n private materialConfig = inject(MATERIAL_CONFIG, { optional: true });\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n readonly field = input.required<FieldTree<string>>();\n readonly key = input.required<string>();\n\n readonly label = input<DynamicText>();\n readonly placeholder = input<DynamicText>();\n readonly className = input<string>('');\n readonly tabIndex = input<number>();\n readonly props = input<MatTextareaProps>();\n readonly meta = input<TextareaMeta>();\n readonly validationMessages = input<ValidationMessages>();\n readonly defaultValidationMessages = input<ValidationMessages>();\n\n constructor() {\n setupMetaTracking(this.elementRef, this.meta, { selector: 'textarea' });\n }\n\n /**\n * Reference to the native textarea element.\n * Used to imperatively sync the readonly attribute since Angular Signal Forms'\n * [field] directive doesn't sync FieldState.readonly() to the DOM.\n */\n private readonly textareaRef = viewChild<ElementRef<HTMLTextAreaElement>>('textareaRef');\n\n /**\n * Computed signal that extracts the readonly state from the field.\n * Used by the effect to reactively sync the readonly attribute to the DOM.\n */\n private readonly isReadonly = computed(() => this.field()().readonly());\n\n /**\n * Workaround: Angular Signal Forms' [field] directive does NOT sync the readonly\n * attribute to the DOM, even though FieldState.readonly() returns the correct value.\n * This effect imperatively sets/removes the readonly attribute on the native textarea\n * element whenever the readonly state changes.\n *\n * Note: We cannot use [readonly] or [attr.readonly] bindings because Angular throws\n * NG8022: \"Binding to '[readonly]' is not allowed on nodes using the '[field]' directive\"\n *\n * Uses afterRenderEffect to ensure DOM is ready before manipulating attributes.\n *\n * @see https://github.com/angular/angular/issues/65897\n */\n private readonly syncReadonlyToDom = afterRenderEffect({\n write: () => {\n const textareaRef = this.textareaRef();\n const isReadonly = this.isReadonly();\n if (textareaRef?.nativeElement) {\n if (isReadonly) {\n textareaRef.nativeElement.setAttribute('readonly', '');\n } else {\n textareaRef.nativeElement.removeAttribute('readonly');\n }\n }\n },\n });\n\n readonly effectiveAppearance = computed(() => this.props()?.appearance ?? this.materialConfig?.appearance ?? 'outline');\n readonly effectiveSubscriptSizing = computed(() => this.props()?.subscriptSizing ?? this.materialConfig?.subscriptSizing ?? 'dynamic');\n\n readonly effectiveFloatLabel = computed(() => this.props()?.floatLabel ?? this.materialConfig?.floatLabel ?? 'auto');\n readonly effectiveHideRequiredMarker = computed(\n () => this.props()?.hideRequiredMarker ?? this.materialConfig?.hideRequiredMarker ?? false,\n );\n\n readonly resolvedErrors = createResolvedErrorsSignal(this.field, this.validationMessages, this.defaultValidationMessages);\n readonly showErrors = shouldShowErrors(this.field);\n\n readonly errorsToDisplay = computed(() => (this.showErrors() ? this.resolvedErrors() : []));\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Accessibility\n // ─────────────────────────────────────────────────────────────────────────────\n\n /** Unique ID for the hint element, used for aria-describedby */\n protected readonly hintId = computed(() => `${this.key()}-hint`);\n\n /** Base ID for error elements, used for aria-describedby */\n protected readonly errorId = computed(() => `${this.key()}-error`);\n\n /** aria-invalid: true when field is invalid AND touched, false otherwise */\n protected readonly ariaInvalid = computed(() => {\n const fieldState = this.field()();\n return fieldState.invalid() && fieldState.touched();\n });\n\n /** aria-required: true if field is required, null otherwise (to remove attribute) */\n protected readonly ariaRequired = computed(() => {\n return this.field()().required?.() === true ? true : null;\n });\n\n /** aria-describedby: links to hint and error messages for screen readers */\n protected readonly ariaDescribedBy = createAriaDescribedBySignal(\n this.errorsToDisplay,\n this.errorId,\n this.hintId,\n () => !!this.props()?.hint,\n );\n}\n","import { afterRenderEffect, ChangeDetectionStrategy, Component, computed, ElementRef, inject, input } from '@angular/core';\nimport { FormField, FieldTree } from '@angular/forms/signals';\nimport { MatSlideToggle } from '@angular/material/slide-toggle';\nimport { DynamicText, DynamicTextPipe, FieldMeta, ValidationMessages } from '@ng-forge/dynamic-forms';\nimport { createResolvedErrorsSignal, setupMetaTracking, shouldShowErrors } from '@ng-forge/dynamic-forms/integration';\n\nimport { MatToggleComponent, MatToggleProps } from './mat-toggle.type';\nimport { MatError } from '@angular/material/input';\nimport { AsyncPipe } from '@angular/common';\nimport { MATERIAL_CONFIG } from '../../models/material-config.token';\nimport { createAriaDescribedBySignal } from '../../utils/create-aria-described-by';\n\n@Component({\n selector: 'df-mat-toggle',\n imports: [MatSlideToggle, FormField, MatError, DynamicTextPipe, AsyncPipe],\n template: `\n @let f = field();\n @let toggleId = key() + '-toggle';\n\n <mat-slide-toggle\n [id]=\"toggleId\"\n [formField]=\"f\"\n [color]=\"props()?.color || 'primary'\"\n [labelPosition]=\"props()?.labelPosition || 'after'\"\n [hideIcon]=\"props()?.hideIcon || false\"\n [disableRipple]=\"effectiveDisableRipple()\"\n [required]=\"!!f().required()\"\n [attr.aria-describedby]=\"ariaDescribedBy()\"\n [attr.tabindex]=\"tabIndex()\"\n class=\"toggle-container\"\n >\n {{ label() | dynamicText | async }}\n </mat-slide-toggle>\n\n @if (errorsToDisplay()[0]; as error) {\n <mat-error [id]=\"errorId()\">{{ error.message }}</mat-error>\n } @else if (props()?.hint; as hint) {\n <div class=\"mat-hint\" [id]=\"hintId()\">{{ hint | dynamicText | async }}</div>\n }\n `,\n styleUrl: '../../styles/_form-field.scss',\n host: {\n '[class]': 'className()',\n '[id]': '`${key()}`',\n '[attr.data-testid]': 'key()',\n '[attr.hidden]': 'field()().hidden() || null',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport default class MatToggleFieldComponent implements MatToggleComponent {\n private materialConfig = inject(MATERIAL_CONFIG, { optional: true });\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n readonly field = input.required<FieldTree<boolean>>();\n readonly key = input.required<string>();\n\n readonly label = input<DynamicText>();\n readonly placeholder = input<DynamicText>();\n\n readonly className = input<string>('');\n readonly tabIndex = input<number>();\n\n readonly props = input<MatToggleProps>();\n readonly meta = input<FieldMeta>();\n readonly validationMessages = input<ValidationMessages>();\n readonly defaultValidationMessages = input<ValidationMessages>();\n\n readonly effectiveDisableRipple = computed(() => this.props()?.disableRipple ?? this.materialConfig?.disableRipple ?? false);\n\n readonly resolvedErrors = createResolvedErrorsSignal(this.field, this.validationMessages, this.defaultValidationMessages);\n readonly showErrors = shouldShowErrors(this.field);\n\n readonly errorsToDisplay = computed(() => (this.showErrors() ? this.resolvedErrors() : []));\n\n constructor() {\n // Apply meta attributes to the internal toggle button\n // Note: mat-slide-toggle uses <button role=\"switch\"> instead of <input type=\"checkbox\">\n setupMetaTracking(this.elementRef, this.meta, {\n selector: 'button[role=\"switch\"]',\n });\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Accessibility\n // ─────────────────────────────────────────────────────────────────────────────\n\n /** Unique ID for the hint element, used for aria-describedby */\n protected readonly hintId = computed(() => `${this.key()}-hint`);\n\n /** Base ID for error elements, used for aria-describedby */\n protected readonly errorId = computed(() => `${this.key()}-error`);\n\n /** aria-invalid: true when field is invalid AND touched, false otherwise */\n protected readonly ariaInvalid = computed(() => {\n const fieldState = this.field()();\n return fieldState.invalid() && fieldState.touched();\n });\n\n /** aria-required: true if field is required, null otherwise (to remove attribute) */\n protected readonly ariaRequired = computed(() => {\n return this.field()().required?.() === true ? true : null;\n });\n\n /** aria-describedby: links to hint and error messages for screen readers */\n protected readonly ariaDescribedBy = createAriaDescribedBySignal(\n this.errorsToDisplay,\n this.errorId,\n this.hintId,\n () => !!this.props()?.hint,\n );\n\n /**\n * Workaround: Angular Material's MatSlideToggle does NOT propagate aria-required to its internal\n * button element. This effect imperatively sets/removes aria-required on the internal button.\n *\n * Uses afterRenderEffect to ensure DOM is ready before querying internal elements.\n */\n private readonly syncAriaRequiredToDom = afterRenderEffect(() => {\n const isRequired = this.ariaRequired();\n const buttonEl = this.elementRef.nativeElement.querySelector('button[role=\"switch\"]');\n if (buttonEl) {\n if (isRequired) {\n buttonEl.setAttribute('aria-required', 'true');\n } else {\n buttonEl.removeAttribute('aria-required');\n }\n }\n });\n\n /**\n * Workaround: Angular Material's MatSlideToggle does NOT propagate aria-describedby to its internal\n * button element. This effect imperatively sets/removes aria-describedby on the internal button.\n *\n * Uses afterRenderEffect to ensure DOM is ready before querying internal elements.\n */\n private readonly syncAriaDescribedByToDom = afterRenderEffect(() => {\n const describedBy = this.ariaDescribedBy();\n const buttonEl = this.elementRef.nativeElement.querySelector('button[role=\"switch\"]');\n if (buttonEl) {\n if (describedBy) {\n buttonEl.setAttribute('aria-describedby', describedBy);\n } else {\n buttonEl.removeAttribute('aria-describedby');\n }\n }\n });\n}\n","// Public exports for material field components and types\n\nexport { MatCheckboxFieldComponent } from './checkbox';\nexport type { MatCheckboxProps, MatCheckboxField, MatCheckboxComponent } from './checkbox';\n\nexport { MatDatepickerFieldComponent } from './datepicker';\nexport type { MatDatepickerProps, MatDatepickerField, MatDatepickerComponent } from './datepicker';\n\nexport { MatInputFieldComponent } from './input';\nexport type { MatInputProps, MatInputField, MatInputComponent } from './input';\n\nexport { MatMultiCheckboxFieldComponent } from './multi-checkbox';\nexport type { MatMultiCheckboxProps, MatMultiCheckboxField, MatMultiCheckboxComponent } from './multi-checkbox';\n\nexport { MatRadioFieldComponent } from './radio';\nexport type { MatRadioProps, MatRadioField, MatRadioComponent } from './radio';\n\nexport { MatSelectFieldComponent } from './select';\nexport type { MatSelectProps, MatSelectField, MatSelectComponent } from './select';\n\nexport { MatSliderFieldComponent } from './slider';\nexport type { MatSliderProps, MatSliderField, MatSliderComponent } from './slider';\n\nexport { MatButtonFieldComponent } from './button';\nexport type {\n MatButtonProps,\n MatButtonField,\n MatSubmitButtonField,\n MatNextButtonField,\n MatPreviousButtonField,\n AddArrayItemButtonField,\n PrependArrayItemButtonField,\n InsertArrayItemButtonField,\n RemoveArrayItemButtonField,\n PopArrayItemButtonField,\n ShiftArrayItemButtonField,\n} from './button';\n\nexport { MatTextareaFieldComponent } from './textarea';\nexport type { MatTextareaProps, MatTextareaField, MatTextareaComponent } from './textarea';\n\nexport { MatToggleFieldComponent } from './toggle';\nexport type { MatToggleProps, MatToggleField, MatToggleComponent } from './toggle';\n","/**\n * Material Design field type constants\n * Based on available field components in the /fields folder\n */\nexport const MatField = {\n Input: 'input',\n Select: 'select',\n Checkbox: 'checkbox',\n Button: 'button',\n Submit: 'submit',\n Next: 'next',\n Previous: 'previous',\n AddArrayItem: 'addArrayItem',\n PrependArrayItem: 'prependArrayItem',\n InsertArrayItem: 'insertArrayItem',\n RemoveArrayItem: 'removeArrayItem',\n PopArrayItem: 'popArrayItem',\n ShiftArrayItem: 'shiftArrayItem',\n Textarea: 'textarea',\n Radio: 'radio',\n MultiCheckbox: 'multi-checkbox',\n Datepicker: 'datepicker',\n Slider: 'slider',\n Toggle: 'toggle',\n} as const;\n\nexport type MatFieldType = (typeof MatField)[keyof typeof MatField];\n","import { computed, inject, isSignal, Signal } from '@angular/core';\nimport { ARRAY_CONTEXT, buildBaseInputs, DEFAULT_PROPS, FieldDef } from '@ng-forge/dynamic-forms';\n\n/**\n * Generic button mapper for custom events or basic buttons.\n * For specific button types (submit, next, prev, add/remove array items),\n * use the dedicated field types and their specific mappers.\n *\n * Supports template property for array events (AppendArrayItemEvent, PrependArrayItemEvent, InsertArrayItemEvent)\n * which enables the $template token in eventArgs.\n *\n * @param fieldDef The button field definition\n * @returns Signal containing Record of input names to values for ngComponentOutlet\n */\nexport function buttonFieldMapper(fieldDef: FieldDef<Record<string, unknown>>): Signal<Record<string, unknown>> {\n const defaultProps = inject(DEFAULT_PROPS);\n const arrayContext = inject(ARRAY_CONTEXT, { optional: true });\n\n return computed(() => {\n const baseInputs = buildBaseInputs(fieldDef, defaultProps());\n\n const inputs: Record<string, unknown> = {\n ...baseInputs,\n };\n\n if (fieldDef.disabled !== undefined) {\n inputs['disabled'] = fieldDef.disabled;\n }\n\n if (fieldDef.hidden !== undefined) {\n inputs['hidden'] = fieldDef.hidden;\n }\n\n // Add event binding for button events\n if ('event' in fieldDef && fieldDef.event !== undefined) {\n inputs['event'] = fieldDef.event;\n }\n\n // Add eventArgs binding if provided\n if ('eventArgs' in fieldDef && fieldDef.eventArgs !== undefined) {\n inputs['eventArgs'] = fieldDef.eventArgs;\n }\n\n // Add eventContext for token resolution (supports $template, $arrayKey, $index, etc.)\n const template = 'template' in fieldDef ? fieldDef.template : undefined;\n if (template || arrayContext) {\n // Read signal value if index is a signal (supports differential updates)\n const getIndex = () => {\n if (!arrayContext) return -1;\n return isSignal(arrayContext.index) ? arrayContext.index() : arrayContext.index;\n };\n\n inputs['eventContext'] = {\n key: fieldDef.key,\n index: getIndex(),\n arrayKey: arrayContext?.arrayKey ?? '',\n formValue: arrayContext?.formValue ?? {},\n template,\n };\n }\n\n return inputs;\n });\n}\n","/**\n * Navigation button mappers for Material - re-exported from integration package.\n *\n * These mappers handle submit, next, and previous buttons with proper\n * disabled state resolution based on form validity and options.\n */\nexport { submitButtonFieldMapper, nextButtonFieldMapper, previousButtonFieldMapper } from '@ng-forge/dynamic-forms/integration';\n","import { FieldTypeDefinition } from '@ng-forge/dynamic-forms';\nimport {\n addArrayItemButtonMapper,\n checkboxFieldMapper,\n datepickerFieldMapper,\n insertArrayItemButtonMapper,\n optionsFieldMapper,\n popArrayItemButtonMapper,\n prependArrayItemButtonMapper,\n removeArrayItemButtonMapper,\n shiftArrayItemButtonMapper,\n valueFieldMapper,\n} from '@ng-forge/dynamic-forms/integration';\nimport { MatField } from '../types/types';\nimport { buttonFieldMapper } from '../fields/button/mat-button.mapper';\nimport { nextButtonFieldMapper, previousButtonFieldMapper, submitButtonFieldMapper } from '../fields/button/mat-specific-button.mapper';\n\n/**\n * Base definition for button field types that don't use the `field` input.\n * Button fields render immediately without waiting for form value integration.\n */\nconst BUTTON_FIELD_TYPES_BASE = {\n renderReadyWhen: [] as string[],\n};\n\n/**\n * Material Design field type definitions\n * Follows the FieldTypeDefinition interface for proper registry integration\n */\nexport const MATERIAL_FIELD_TYPES: FieldTypeDefinition[] = [\n {\n name: MatField.Input,\n loadComponent: () => import('../fields/input/mat-input.component'),\n mapper: valueFieldMapper,\n propsToMeta: ['type'],\n scope: ['text-input', 'numeric'],\n },\n {\n name: MatField.Select,\n loadComponent: () => import('../fields/select/mat-select.component'),\n mapper: optionsFieldMapper,\n scope: 'single-select',\n },\n {\n name: MatField.Checkbox,\n loadComponent: () => import('../fields/checkbox/mat-checkbox.component'),\n mapper: checkboxFieldMapper,\n scope: 'boolean',\n },\n {\n name: MatField.Button,\n loadComponent: () => import('../fields/button/mat-button.component'),\n mapper: buttonFieldMapper,\n valueHandling: 'exclude',\n ...BUTTON_FIELD_TYPES_BASE,\n },\n {\n name: MatField.Submit,\n loadComponent: () => import('../fields/button/mat-button.component'),\n mapper: submitButtonFieldMapper,\n valueHandling: 'exclude',\n ...BUTTON_FIELD_TYPES_BASE,\n },\n {\n name: MatField.Next,\n loadComponent: () => import('../fields/button/mat-button.component'),\n mapper: nextButtonFieldMapper,\n valueHandling: 'exclude',\n ...BUTTON_FIELD_TYPES_BASE,\n },\n {\n name: MatField.Previous,\n loadComponent: () => import('../fields/button/mat-button.component'),\n mapper: previousButtonFieldMapper,\n valueHandling: 'exclude',\n ...BUTTON_FIELD_TYPES_BASE,\n },\n {\n name: MatField.AddArrayItem,\n loadComponent: () => import('../fields/button/mat-button.component'),\n mapper: addArrayItemButtonMapper,\n valueHandling: 'exclude',\n ...BUTTON_FIELD_TYPES_BASE,\n },\n {\n name: MatField.PrependArrayItem,\n loadComponent: () => import('../fields/button/mat-button.component'),\n mapper: prependArrayItemButtonMapper,\n valueHandling: 'exclude',\n ...BUTTON_FIELD_TYPES_BASE,\n },\n {\n name: MatField.InsertArrayItem,\n loadComponent: () => import('../fields/button/mat-button.component'),\n mapper: insertArrayItemButtonMapper,\n valueHandling: 'exclude',\n ...BUTTON_FIELD_TYPES_BASE,\n },\n {\n name: MatField.RemoveArrayItem,\n loadComponent: () => import('../fields/button/mat-button.component'),\n mapper: removeArrayItemButtonMapper,\n valueHandling: 'exclude',\n ...BUTTON_FIELD_TYPES_BASE,\n },\n {\n name: MatField.PopArrayItem,\n loadComponent: () => import('../fields/button/mat-button.component'),\n mapper: popArrayItemButtonMapper,\n valueHandling: 'exclude',\n ...BUTTON_FIELD_TYPES_BASE,\n },\n {\n name: MatField.ShiftArrayItem,\n loadComponent: () => import('../fields/button/mat-button.component'),\n mapper: shiftArrayItemButtonMapper,\n valueHandling: 'exclude',\n ...BUTTON_FIELD_TYPES_BASE,\n },\n {\n name: MatField.Textarea,\n loadComponent: () => import('../fields/textarea/mat-textarea.component'),\n mapper: valueFieldMapper,\n propsToMeta: ['rows', 'cols'],\n scope: 'text-input',\n },\n {\n name: MatField.Radio,\n loadComponent: () => import('../fields/radio/mat-radio.component'),\n mapper: optionsFieldMapper,\n scope: 'single-select',\n },\n {\n name: MatField.MultiCheckbox,\n loadComponent: () => import('../fields/multi-checkbox/mat-multi-checkbox.component'),\n mapper: optionsFieldMapper,\n scope: 'multi-select',\n },\n {\n name: MatField.Datepicker,\n loadComponent: () => import('../fields/datepicker/mat-datepicker.component'),\n mapper: datepickerFieldMapper,\n scope: 'date',\n },\n {\n name: MatField.Slider,\n loadComponent: () => import('../fields/slider/mat-slider.component'),\n mapper: valueFieldMapper,\n scope: 'numeric',\n },\n {\n name: MatField.Toggle,\n loadComponent: () => import('../fields/toggle/mat-toggle.component'),\n mapper: checkboxFieldMapper,\n scope: 'boolean',\n },\n];\n","/**\n * Module augmentation for @ng-forge/dynamic-form\n * This file augments the FieldRegistryLeaves interface to include\n * all Material Design field types provided by this library.\n */\n\nimport type { FormEvent } from '@ng-forge/dynamic-forms';\nimport type {\n AddArrayItemButtonField,\n InsertArrayItemButtonField,\n MatButtonField,\n MatCheckboxField,\n MatDatepickerField,\n MatInputField,\n MatMultiCheckboxField,\n MatNextButtonField,\n MatPreviousButtonField,\n MatRadioField,\n PopArrayItemButtonField,\n PrependArrayItemButtonField,\n RemoveArrayItemButtonField,\n MatSelectField,\n ShiftArrayItemButtonField,\n MatSliderField,\n MatSubmitButtonField,\n MatTextareaField,\n MatToggleField,\n} from '../fields';\n\ndeclare module '@ng-forge/dynamic-forms' {\n interface FieldRegistryLeaves {\n input: MatInputField;\n select: MatSelectField<unknown>;\n checkbox: MatCheckboxField;\n button: MatButtonField<FormEvent>;\n submit: MatSubmitButtonField;\n next: MatNextButtonField;\n previous: MatPreviousButtonField;\n addArrayItem: AddArrayItemButtonField;\n prependArrayItem: PrependArrayItemButtonField;\n insertArrayItem: InsertArrayItemButtonField;\n removeArrayItem: RemoveArrayItemButtonField;\n popArrayItem: PopArrayItemButtonField;\n shiftArrayItem: ShiftArrayItemButtonField;\n textarea: MatTextareaField;\n radio: MatRadioField<unknown>;\n 'multi-checkbox': MatMultiCheckboxField<unknown>;\n datepicker: MatDatepickerField;\n slider: MatSliderField;\n toggle: MatToggleField;\n }\n}\n","import type { Provider } from '@angular/core';\nimport type { FieldTypeDefinition } from '@ng-forge/dynamic-forms';\nimport { MATERIAL_FIELD_TYPES } from '../config/material-field-config';\nimport { MaterialConfig } from '../models/material-config';\nimport { MATERIAL_CONFIG } from '../models/material-config.token';\n\n/**\n * Field type definitions for Material Design components.\n */\nexport type MaterialFieldTypes = FieldTypeDefinition[];\n\ntype MaterialConfigFeature = {\n ɵkind: 'material-config';\n ɵproviders: Provider[];\n};\n\ntype MaterialFieldsWithConfig = [...MaterialFieldTypes, MaterialConfigFeature];\n\n/**\n * Configure dynamic forms with Material Design field types.\n * Provides all Material Design field types for use with provideDynamicForm.\n *\n * @param config - Optional global configuration for Material form fields\n *\n * @example\n * ```typescript\n * // Application-level setup\n * import { ApplicationConfig } from '@angular/core';\n * import { provideDynamicForm } from '@ng-forge/dynamic-form';\n * import { withMaterialFields } from '@ng-forge/dynamic-form-material';\n *\n * export const appConfig: ApplicationConfig = {\n * providers: [\n * provideDynamicForm(...withMaterialFields())\n * ]\n * };\n * ```\n *\n * @example\n * ```typescript\n * // With global configuration\n * export const appConfig: ApplicationConfig = {\n * providers: [\n * provideDynamicForm(\n * ...withMaterialFields({\n * appearance: 'fill',\n * subscriptSizing: 'fixed'\n * })\n * )\n * ]\n * };\n * ```\n *\n * @returns Array of field type definitions and optionally a config feature\n */\nexport function withMaterialFields(): MaterialFieldTypes;\nexport function withMaterialFields(config: MaterialConfig): MaterialFieldsWithConfig;\nexport function withMaterialFields(config: MaterialConfig | undefined): MaterialFieldTypes | MaterialFieldsWithConfig;\nexport function withMaterialFields(config?: MaterialConfig): MaterialFieldTypes | MaterialFieldsWithConfig {\n if (!config) {\n return MATERIAL_FIELD_TYPES;\n }\n\n const fieldsWithConfig = [\n ...MATERIAL_FIELD_TYPES,\n {\n ɵkind: 'material-config',\n ɵproviders: [{ provide: MATERIAL_CONFIG, useValue: config }],\n } satisfies MaterialConfigFeature,\n ];\n\n // Safe: this preserves all material field definitions and appends exactly one config feature.\n return fieldsWithConfig as MaterialFieldsWithConfig;\n}\n","// Field components\nexport {\n MatCheckboxFieldComponent,\n MatDatepickerFieldComponent,\n MatInputFieldComponent,\n MatMultiCheckboxFieldComponent,\n MatRadioFieldComponent,\n MatSelectFieldComponent,\n MatSliderFieldComponent,\n MatButtonFieldComponent,\n MatTextareaFieldComponent,\n MatToggleFieldComponent,\n} from './fields';\nexport type {\n MatCheckboxProps,\n MatCheckboxField,\n MatCheckboxComponent,\n MatDatepickerProps,\n MatDatepickerField,\n MatDatepickerComponent,\n MatInputProps,\n MatInputField,\n MatInputComponent,\n MatMultiCheckboxProps,\n MatMultiCheckboxField,\n MatMultiCheckboxComponent,\n MatRadioProps,\n MatRadioField,\n MatRadioComponent,\n MatSelectProps,\n MatSelectField,\n MatSelectComponent,\n MatSliderProps,\n MatSliderField,\n MatSliderComponent,\n MatButtonProps,\n MatButtonField,\n MatSubmitButtonField,\n MatNextButtonField,\n MatPreviousButtonField,\n AddArrayItemButtonField,\n PrependArrayItemButtonField,\n InsertArrayItemButtonField,\n RemoveArrayItemButtonField,\n PopArrayItemButtonField,\n ShiftArrayItemButtonField,\n MatTextareaProps,\n MatTextareaField,\n MatTextareaComponent,\n MatToggleProps,\n MatToggleField,\n MatToggleComponent,\n} from './fields';\n\n// Configuration\nexport { MATERIAL_FIELD_TYPES } from './config/material-field-config';\nexport { MATERIAL_CONFIG } from './models';\nexport type { MaterialConfig } from './models';\n\n// Types and constants\nexport { MatField, type MatFieldType } from './types/types';\nexport type { MatFormProps, MatFormConfig } from './types/form-config';\n\n// Module augmentation for global types\nimport './types/registry-augmentation';\n\n// Providers\nexport { withMaterialFields } from './providers/material-providers';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["MatError"],"mappings":"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"}
1
+ {"version":3,"file":"ng-forge-dynamic-forms-material.mjs","sources":["../../../../packages/dynamic-forms-material/src/lib/models/material-config.token.ts","../../../../packages/dynamic-forms-material/src/lib/utils/create-aria-described-by.ts","../../../../packages/dynamic-forms-material/src/lib/fields/checkbox/mat-checkbox.component.ts","../../../../packages/dynamic-forms-material/src/lib/fields/datepicker/mat-datepicker.component.ts","../../../../packages/dynamic-forms-material/src/lib/fields/input/mat-input.component.ts","../../../../packages/dynamic-forms-material/src/lib/fields/multi-checkbox/mat-multi-checkbox.component.ts","../../../../packages/dynamic-forms-material/src/lib/fields/radio/mat-radio.component.ts","../../../../packages/dynamic-forms-material/src/lib/fields/select/mat-select.component.ts","../../../../packages/dynamic-forms-material/src/lib/fields/slider/mat-slider.component.ts","../../../../packages/dynamic-forms-material/src/lib/fields/button/mat-button.component.ts","../../../../packages/dynamic-forms-material/src/lib/fields/button/index.ts","../../../../packages/dynamic-forms-material/src/lib/fields/textarea/mat-textarea.component.ts","../../../../packages/dynamic-forms-material/src/lib/fields/toggle/mat-toggle.component.ts","../../../../packages/dynamic-forms-material/src/lib/fields/index.ts","../../../../packages/dynamic-forms-material/src/lib/types/types.ts","../../../../packages/dynamic-forms-material/src/lib/fields/button/mat-button.mapper.ts","../../../../packages/dynamic-forms-material/src/lib/fields/button/mat-specific-button.mapper.ts","../../../../packages/dynamic-forms-material/src/lib/config/material-field-config.ts","../../../../packages/dynamic-forms-material/src/lib/types/registry-augmentation.ts","../../../../packages/dynamic-forms-material/src/lib/providers/material-providers.ts","../../../../packages/dynamic-forms-material/src/lib/index.ts","../../../../packages/dynamic-forms-material/src/ng-forge-dynamic-forms-material.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { MaterialConfig } from './material-config';\n\n/**\n * Injection token for Material Design form configuration.\n * Use this to provide global configuration for Material form fields.\n *\n * @example\n * ```typescript\n * import { provideDynamicForm } from '@ng-forge/dynamic-forms';\n * import { withMaterialFields } from '@ng-forge/dynamic-forms-material';\n *\n * export const appConfig: ApplicationConfig = {\n * providers: [\n * provideDynamicForm(\n * ...withMaterialFields({\n * appearance: 'fill',\n * subscriptSizing: 'fixed'\n * })\n * )\n * ]\n * };\n * ```\n */\nexport const MATERIAL_CONFIG = new InjectionToken<MaterialConfig>('MATERIAL_CONFIG');\n","import { computed, Signal } from '@angular/core';\nimport { ResolvedError } from '@ng-forge/dynamic-forms/integration';\n\n/**\n * Creates a signal that computes the aria-describedby value based on errors and hint state.\n * Errors take precedence over hints - when errors are displayed, the hint is hidden.\n * Only the first error is displayed (single error ID, not indexed).\n *\n * @param errorsToDisplay Signal containing the array of errors currently being displayed\n * @param errorId Signal containing the ID for the error element (single error only)\n * @param hintId Signal containing the ID for the hint element\n * @param hasHint Function that returns true if a hint is configured\n * @returns Signal containing the aria-describedby value or null\n */\nexport function createAriaDescribedBySignal(\n errorsToDisplay: Signal<ResolvedError[]>,\n errorId: Signal<string>,\n hintId: Signal<string>,\n hasHint: () => boolean,\n): Signal<string | null> {\n return computed(() => {\n if (errorsToDisplay().length > 0) {\n return errorId();\n }\n if (hasHint()) {\n return hintId();\n }\n return null;\n });\n}\n","import { afterRenderEffect, ChangeDetectionStrategy, Component, computed, ElementRef, inject, input } from '@angular/core';\nimport { FormField, FieldTree } from '@angular/forms/signals';\nimport { MatCheckbox } from '@angular/material/checkbox';\nimport { DynamicText, DynamicTextPipe, FieldMeta, ValidationMessages } from '@ng-forge/dynamic-forms';\nimport { createResolvedErrorsSignal, setupMetaTracking, shouldShowErrors } from '@ng-forge/dynamic-forms/integration';\nimport { MatCheckboxComponent, MatCheckboxProps } from './mat-checkbox.type';\nimport { MatError } from '@angular/material/input';\nimport { AsyncPipe } from '@angular/common';\nimport { MATERIAL_CONFIG } from '../../models/material-config.token';\nimport { createAriaDescribedBySignal } from '../../utils/create-aria-described-by';\n\n@Component({\n selector: 'df-mat-checkbox',\n imports: [MatCheckbox, FormField, MatError, DynamicTextPipe, AsyncPipe],\n template: `\n @let f = field();\n @let checkboxId = key() + '-checkbox';\n\n <mat-checkbox\n [id]=\"checkboxId\"\n [formField]=\"f\"\n [labelPosition]=\"props()?.labelPosition || 'after'\"\n [indeterminate]=\"props()?.indeterminate || false\"\n [color]=\"props()?.color || 'primary'\"\n [disableRipple]=\"effectiveDisableRipple()\"\n [required]=\"!!f().required()\"\n [attr.aria-describedby]=\"ariaDescribedBy()\"\n [attr.tabindex]=\"tabIndex()\"\n [attr.hidden]=\"f().hidden() || null\"\n >\n {{ label() | dynamicText | async }}\n </mat-checkbox>\n\n @if (errorsToDisplay()[0]; as error) {\n <mat-error [id]=\"errorId()\" [attr.hidden]=\"f().hidden() || null\">{{ error.message }}</mat-error>\n } @else if (props()?.hint; as hint) {\n <div class=\"mat-hint\" [id]=\"hintId()\" [attr.hidden]=\"f().hidden() || null\">{{ hint | dynamicText | async }}</div>\n }\n `,\n styleUrl: '../../styles/_form-field.scss',\n host: {\n '[class]': 'className()',\n '[id]': '`${key()}`',\n '[attr.data-testid]': 'key()',\n '[attr.hidden]': 'field()().hidden() || null',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport default class MatCheckboxFieldComponent implements MatCheckboxComponent {\n private materialConfig = inject(MATERIAL_CONFIG, { optional: true });\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n readonly field = input.required<FieldTree<boolean>>();\n readonly key = input.required<string>();\n\n // Properties\n readonly label = input<DynamicText>();\n readonly placeholder = input<DynamicText>();\n readonly className = input<string>('');\n readonly tabIndex = input<number>();\n readonly props = input<MatCheckboxProps>();\n readonly meta = input<FieldMeta>();\n readonly validationMessages = input<ValidationMessages>();\n readonly defaultValidationMessages = input<ValidationMessages>();\n\n readonly effectiveDisableRipple = computed(() => this.props()?.disableRipple ?? this.materialConfig?.disableRipple ?? false);\n\n readonly resolvedErrors = createResolvedErrorsSignal(this.field, this.validationMessages, this.defaultValidationMessages);\n readonly showErrors = shouldShowErrors(this.field);\n\n readonly errorsToDisplay = computed(() => (this.showErrors() ? this.resolvedErrors() : []));\n\n constructor() {\n // Apply meta attributes to the internal checkbox input\n setupMetaTracking(this.elementRef, this.meta, {\n selector: 'input[type=\"checkbox\"]',\n });\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Accessibility\n // ─────────────────────────────────────────────────────────────────────────────\n\n /** Unique ID for the hint element, used for aria-describedby */\n protected readonly hintId = computed(() => `${this.key()}-hint`);\n\n /** Base ID for error elements, used for aria-describedby */\n protected readonly errorId = computed(() => `${this.key()}-error`);\n\n /** aria-invalid: true when field is invalid AND touched, false otherwise */\n protected readonly ariaInvalid = computed(() => {\n const fieldState = this.field()();\n return fieldState.invalid() && fieldState.touched();\n });\n\n /** aria-required: true if field is required, null otherwise (to remove attribute) */\n protected readonly ariaRequired = computed(() => {\n return this.field()().required?.() === true ? true : null;\n });\n\n /** aria-describedby: links to hint and error messages for screen readers */\n protected readonly ariaDescribedBy = createAriaDescribedBySignal(\n this.errorsToDisplay,\n this.errorId,\n this.hintId,\n () => !!this.props()?.hint,\n );\n\n /**\n * Workaround: Angular Material's MatCheckbox does NOT set aria-required on its internal\n * input element when [required] is passed, even though it sets the native required attribute.\n * This effect imperatively sets/removes aria-required on the internal input.\n *\n * Bug: MatCheckbox sets `required` attribute but not `aria-required` for screen readers.\n * @see https://github.com/angular/components/issues/XXXXX (TODO: file issue)\n *\n * Uses afterRenderEffect to ensure DOM is ready before manipulating attributes.\n */\n private readonly syncAriaRequiredToDom = afterRenderEffect(() => {\n const isRequired = this.ariaRequired();\n const inputEl = this.elementRef.nativeElement.querySelector('input[type=\"checkbox\"]');\n if (inputEl) {\n if (isRequired) {\n inputEl.setAttribute('aria-required', 'true');\n } else {\n inputEl.removeAttribute('aria-required');\n }\n }\n });\n\n /**\n * Workaround: Angular Material's MatCheckbox does NOT propagate aria-describedby to its internal\n * input element. This effect imperatively sets/removes aria-describedby on the internal input.\n *\n * Uses afterRenderEffect to ensure DOM is ready before querying internal elements.\n */\n private readonly syncAriaDescribedByToDom = afterRenderEffect(() => {\n const describedBy = this.ariaDescribedBy();\n const inputEl = this.elementRef.nativeElement.querySelector('input[type=\"checkbox\"]');\n if (inputEl) {\n if (describedBy) {\n inputEl.setAttribute('aria-describedby', describedBy);\n } else {\n inputEl.removeAttribute('aria-describedby');\n }\n }\n });\n}\n","import { ChangeDetectionStrategy, Component, computed, ElementRef, inject, input } from '@angular/core';\nimport { FormField, FieldTree } from '@angular/forms/signals';\nimport { MatError, MatFormField, MatLabel, MatSuffix } from '@angular/material/form-field';\nimport { MatHint, MatInput } from '@angular/material/input';\nimport { MatDatepicker, MatDatepickerInput, MatDatepickerToggle } from '@angular/material/datepicker';\nimport { DynamicText, DynamicTextPipe, ValidationMessages } from '@ng-forge/dynamic-forms';\nimport { createResolvedErrorsSignal, InputMeta, setupMetaTracking, shouldShowErrors } from '@ng-forge/dynamic-forms/integration';\nimport { MatDatepickerComponent, MatDatepickerProps } from './mat-datepicker.type';\nimport { provideNativeDateAdapter } from '@angular/material/core';\nimport { AsyncPipe } from '@angular/common';\nimport { MATERIAL_CONFIG } from '../../models/material-config.token';\nimport { createAriaDescribedBySignal } from '../../utils/create-aria-described-by';\n\n@Component({\n selector: 'df-mat-datepicker',\n imports: [\n MatFormField,\n MatLabel,\n MatInput,\n MatHint,\n MatDatepicker,\n MatDatepickerInput,\n MatDatepickerToggle,\n MatSuffix,\n FormField,\n MatError,\n DynamicTextPipe,\n AsyncPipe,\n ],\n host: {\n '[id]': '`${key()}`',\n '[class]': 'className()',\n '[attr.data-testid]': 'key()',\n '[attr.hidden]': 'field()().hidden() || null',\n },\n template: `\n @let f = field();\n @let inputId = key() + '-input';\n\n <mat-form-field\n [appearance]=\"effectiveAppearance()\"\n [subscriptSizing]=\"effectiveSubscriptSizing()\"\n [floatLabel]=\"effectiveFloatLabel()\"\n [hideRequiredMarker]=\"effectiveHideRequiredMarker()\"\n >\n @if (label(); as label) {\n <mat-label>{{ label | dynamicText | async }}</mat-label>\n }\n\n <input\n matInput\n [id]=\"inputId\"\n [matDatepicker]=\"picker\"\n [formField]=\"f\"\n [placeholder]=\"(placeholder() | dynamicText | async) ?? ''\"\n [attr.tabindex]=\"tabIndex()\"\n [min]=\"minDate()\"\n [max]=\"maxDate()\"\n [attr.aria-invalid]=\"ariaInvalid()\"\n [attr.aria-required]=\"ariaRequired()\"\n [attr.aria-describedby]=\"ariaDescribedBy()\"\n />\n\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\" />\n <mat-datepicker #picker [startAt]=\"startAt()\" [startView]=\"props()?.startView || 'month'\" [touchUi]=\"props()?.touchUi ?? false\" />\n\n @if (errorsToDisplay()[0]; as error) {\n <mat-error [id]=\"errorId()\">{{ error.message }}</mat-error>\n } @else if (props()?.hint; as hint) {\n <mat-hint [id]=\"hintId()\">{{ hint | dynamicText | async }}</mat-hint>\n }\n </mat-form-field>\n `,\n styleUrl: '../../styles/_form-field.scss',\n styles: [\n `\n mat-form-field {\n width: 100%;\n }\n `,\n ],\n providers: [provideNativeDateAdapter()],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport default class MatDatepickerFieldComponent implements MatDatepickerComponent {\n private materialConfig = inject(MATERIAL_CONFIG, { optional: true });\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n readonly field = input.required<FieldTree<string>>();\n readonly key = input.required<string>();\n\n constructor() {\n setupMetaTracking(this.elementRef, this.meta, { selector: 'input' });\n }\n\n readonly label = input<DynamicText>();\n readonly placeholder = input<DynamicText>();\n\n readonly className = input<string>('');\n readonly tabIndex = input<number>();\n\n readonly minDate = input<Date | null>(null);\n readonly maxDate = input<Date | null>(null);\n readonly startAt = input<Date | null>(null);\n readonly props = input<MatDatepickerProps>();\n readonly meta = input<InputMeta>();\n readonly validationMessages = input<ValidationMessages>();\n readonly defaultValidationMessages = input<ValidationMessages>();\n\n readonly effectiveAppearance = computed(() => this.props()?.appearance ?? this.materialConfig?.appearance ?? 'outline');\n\n readonly effectiveSubscriptSizing = computed(() => this.props()?.subscriptSizing ?? this.materialConfig?.subscriptSizing ?? 'dynamic');\n\n readonly effectiveFloatLabel = computed(() => this.props()?.floatLabel ?? this.materialConfig?.floatLabel ?? 'auto');\n\n readonly effectiveHideRequiredMarker = computed(\n () => this.props()?.hideRequiredMarker ?? this.materialConfig?.hideRequiredMarker ?? false,\n );\n\n readonly resolvedErrors = createResolvedErrorsSignal(this.field, this.validationMessages, this.defaultValidationMessages);\n readonly showErrors = shouldShowErrors(this.field);\n\n readonly errorsToDisplay = computed(() => (this.showErrors() ? this.resolvedErrors() : []));\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Accessibility\n // ─────────────────────────────────────────────────────────────────────────────\n\n /** Unique ID for the hint element, used for aria-describedby */\n protected readonly hintId = computed(() => `${this.key()}-hint`);\n\n /** Base ID for error elements, used for aria-describedby */\n protected readonly errorId = computed(() => `${this.key()}-error`);\n\n /** aria-invalid: true when field is invalid AND touched, false otherwise */\n protected readonly ariaInvalid = computed(() => {\n const fieldState = this.field()();\n return fieldState.invalid() && fieldState.touched();\n });\n\n /** aria-required: true if field is required, null otherwise (to remove attribute) */\n protected readonly ariaRequired = computed(() => {\n return this.field()().required?.() === true ? true : null;\n });\n\n /** aria-describedby: links to hint and error messages for screen readers */\n protected readonly ariaDescribedBy = createAriaDescribedBySignal(\n this.errorsToDisplay,\n this.errorId,\n this.hintId,\n () => !!this.props()?.hint,\n );\n}\n","import { afterRenderEffect, ChangeDetectionStrategy, Component, computed, ElementRef, inject, input, viewChild } from '@angular/core';\nimport { FormField, FieldTree } from '@angular/forms/signals';\nimport { MatError, MatFormField, MatLabel } from '@angular/material/form-field';\nimport { MatHint, MatInput } from '@angular/material/input';\nimport { DynamicText, DynamicTextPipe, ValidationMessages } from '@ng-forge/dynamic-forms';\nimport { createResolvedErrorsSignal, InputMeta, setupMetaTracking, shouldShowErrors } from '@ng-forge/dynamic-forms/integration';\nimport { MatInputComponent, MatInputProps } from './mat-input.type';\nimport { AsyncPipe } from '@angular/common';\nimport { MATERIAL_CONFIG } from '../../models/material-config.token';\nimport { createAriaDescribedBySignal } from '../../utils/create-aria-described-by';\n\n@Component({\n selector: 'df-mat-input',\n imports: [MatFormField, MatLabel, MatInput, MatHint, FormField, MatError, DynamicTextPipe, AsyncPipe],\n template: `\n @let f = field();\n @let inputId = key() + '-input';\n\n <mat-form-field\n [appearance]=\"effectiveAppearance()\"\n [subscriptSizing]=\"effectiveSubscriptSizing()\"\n [floatLabel]=\"effectiveFloatLabel()\"\n [hideRequiredMarker]=\"effectiveHideRequiredMarker()\"\n >\n @if (label()) {\n <mat-label>{{ label() | dynamicText | async }}</mat-label>\n }\n <input\n #inputRef\n matInput\n [id]=\"inputId\"\n [formField]=\"f\"\n [type]=\"props()?.type ?? 'text'\"\n [placeholder]=\"(placeholder() | dynamicText | async) ?? ''\"\n [attr.tabindex]=\"tabIndex()\"\n [attr.aria-invalid]=\"ariaInvalid()\"\n [attr.aria-required]=\"ariaRequired()\"\n [attr.aria-describedby]=\"ariaDescribedBy()\"\n />\n @if (errorsToDisplay()[0]; as error) {\n <mat-error [id]=\"errorId()\">{{ error.message }}</mat-error>\n } @else if (props()?.hint; as hint) {\n <mat-hint [id]=\"hintId()\">{{ hint | dynamicText | async }}</mat-hint>\n }\n </mat-form-field>\n `,\n styleUrl: '../../styles/_form-field.scss',\n styles: [\n `\n mat-form-field {\n width: 100%;\n }\n `,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[id]': '`${key()}`',\n '[attr.data-testid]': 'key()',\n '[class]': 'className()',\n '[attr.hidden]': 'field()().hidden() || null',\n },\n})\nexport default class MatInputFieldComponent implements MatInputComponent {\n private materialConfig = inject(MATERIAL_CONFIG, { optional: true });\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n readonly field = input.required<FieldTree<string>>();\n readonly key = input.required<string>();\n\n readonly label = input<DynamicText>();\n readonly placeholder = input<DynamicText>();\n readonly className = input<string>('');\n readonly tabIndex = input<number>();\n readonly props = input<MatInputProps>();\n readonly meta = input<InputMeta>();\n readonly validationMessages = input<ValidationMessages>();\n readonly defaultValidationMessages = input<ValidationMessages>();\n\n constructor() {\n setupMetaTracking(this.elementRef, this.meta, { selector: 'input' });\n }\n\n /**\n * Reference to the native input element.\n * Used to imperatively sync the readonly attribute since Angular Signal Forms'\n * [field] directive doesn't sync FieldState.readonly() to the DOM.\n */\n private readonly inputRef = viewChild<ElementRef<HTMLInputElement>>('inputRef');\n\n /**\n * Computed signal that extracts the readonly state from the field.\n * Used by the effect to reactively sync the readonly attribute to the DOM.\n */\n private readonly isReadonly = computed(() => this.field()().readonly());\n\n /**\n * Workaround: Angular Signal Forms' [field] directive does NOT sync the readonly\n * attribute to the DOM, even though FieldState.readonly() returns the correct value.\n * This effect imperatively sets/removes the readonly attribute on the native input\n * element whenever the readonly state changes.\n *\n * Note: We cannot use [readonly] or [attr.readonly] bindings because Angular throws\n * NG8022: \"Binding to '[readonly]' is not allowed on nodes using the '[field]' directive\"\n *\n * Uses afterRenderEffect to ensure DOM is ready before manipulating attributes.\n *\n * @see https://github.com/angular/angular/issues/65897\n */\n private readonly syncReadonlyToDom = afterRenderEffect({\n write: () => {\n const inputRef = this.inputRef();\n const isReadonly = this.isReadonly();\n\n if (inputRef?.nativeElement) {\n if (isReadonly) {\n inputRef.nativeElement.setAttribute('readonly', '');\n } else {\n inputRef.nativeElement.removeAttribute('readonly');\n }\n }\n },\n });\n\n readonly effectiveAppearance = computed(() => this.props()?.appearance ?? this.materialConfig?.appearance ?? 'outline');\n\n readonly effectiveSubscriptSizing = computed(() => this.props()?.subscriptSizing ?? this.materialConfig?.subscriptSizing ?? 'dynamic');\n\n readonly effectiveFloatLabel = computed(() => this.props()?.floatLabel ?? this.materialConfig?.floatLabel ?? 'auto');\n\n readonly effectiveHideRequiredMarker = computed(\n () => this.props()?.hideRequiredMarker ?? this.materialConfig?.hideRequiredMarker ?? false,\n );\n\n readonly resolvedErrors = createResolvedErrorsSignal(this.field, this.validationMessages, this.defaultValidationMessages);\n readonly showErrors = shouldShowErrors(this.field);\n\n readonly errorsToDisplay = computed(() => (this.showErrors() ? this.resolvedErrors() : []));\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Accessibility\n // ─────────────────────────────────────────────────────────────────────────────\n\n /** Unique ID for the hint element, used for aria-describedby */\n protected readonly hintId = computed(() => `${this.key()}-hint`);\n\n /** Base ID for error elements, used for aria-describedby */\n protected readonly errorId = computed(() => `${this.key()}-error`);\n\n /** aria-invalid: true when field is invalid AND touched, false otherwise */\n protected readonly ariaInvalid = computed(() => {\n const fieldState = this.field()();\n return fieldState.invalid() && fieldState.touched();\n });\n\n /** aria-required: true if field is required, null otherwise (to remove attribute) */\n protected readonly ariaRequired = computed(() => {\n return this.field()().required?.() === true ? true : null;\n });\n\n /** aria-describedby: links to hint and error messages for screen readers */\n protected readonly ariaDescribedBy = createAriaDescribedBySignal(\n this.errorsToDisplay,\n this.errorId,\n this.hintId,\n () => !!this.props()?.hint,\n );\n}\n","import { ChangeDetectionStrategy, Component, computed, ElementRef, inject, input, linkedSignal } from '@angular/core';\nimport { FieldTree } from '@angular/forms/signals';\nimport { MatCheckbox } from '@angular/material/checkbox';\nimport { DynamicText, DynamicTextPipe, FieldMeta, FieldOption, ValidationMessages, ValueType } from '@ng-forge/dynamic-forms';\nimport { createResolvedErrorsSignal, isEqual, setupMetaTracking, shouldShowErrors } from '@ng-forge/dynamic-forms/integration';\nimport { explicitEffect } from 'ngxtension/explicit-effect';\nimport { MatMultiCheckboxComponent, MatMultiCheckboxProps } from './mat-multi-checkbox.type';\nimport { MatError } from '@angular/material/input';\nimport { AsyncPipe } from '@angular/common';\nimport { createAriaDescribedBySignal } from '../../utils/create-aria-described-by';\n\n@Component({\n selector: 'df-mat-multi-checkbox',\n imports: [MatCheckbox, MatError, DynamicTextPipe, AsyncPipe],\n template: `\n @let f = field();\n @let checkboxGroupId = key() + '-checkbox-group';\n @let checked = checkedValuesMap();\n\n @if (label(); as label) {\n <div class=\"checkbox-group-label\">{{ label | dynamicText | async }}</div>\n }\n\n <div\n [id]=\"checkboxGroupId\"\n class=\"checkbox-group\"\n role=\"group\"\n [attr.aria-invalid]=\"ariaInvalid()\"\n [attr.aria-required]=\"ariaRequired()\"\n [attr.aria-describedby]=\"ariaDescribedBy()\"\n >\n @for (option of options(); track option.value) {\n <mat-checkbox\n [checked]=\"checked['' + option.value]\"\n [disabled]=\"f().disabled() || option.disabled\"\n [color]=\"props()?.color || 'primary'\"\n [labelPosition]=\"props()?.labelPosition || 'after'\"\n (change)=\"onCheckboxChange(option, $event.checked)\"\n >\n {{ option.label | dynamicText | async }}\n </mat-checkbox>\n }\n </div>\n\n @if (errorsToDisplay()[0]; as error) {\n <mat-error [id]=\"errorId()\">{{ error.message }}</mat-error>\n } @else if (props()?.hint; as hint) {\n <div class=\"mat-hint\" [id]=\"hintId()\">{{ hint | dynamicText | async }}</div>\n }\n `,\n styleUrl: '../../styles/_form-field.scss',\n host: {\n '[class]': 'className() || \"\"',\n '[id]': '`${key()}`',\n '[attr.data-testid]': 'key()',\n '[attr.hidden]': 'field()().hidden() || null',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport default class MatMultiCheckboxFieldComponent implements MatMultiCheckboxComponent {\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n readonly field = input.required<FieldTree<ValueType[]>>();\n readonly key = input.required<string>();\n\n readonly label = input<DynamicText>();\n readonly placeholder = input<DynamicText>();\n\n readonly className = input<string>('');\n readonly tabIndex = input<number>();\n\n readonly options = input<FieldOption<ValueType>[]>([]);\n readonly props = input<MatMultiCheckboxProps>();\n readonly meta = input<FieldMeta>();\n\n valueViewModel = linkedSignal<FieldOption<ValueType>[]>(\n () => {\n const currentValues = this.field()().value();\n return this.options().filter((option) => currentValues.includes(option.value));\n },\n { equal: isEqual },\n );\n\n /** Computed map of checked option values for O(1) lookup in template */\n readonly checkedValuesMap = computed(() => {\n const map: Record<string, boolean> = {};\n for (const opt of this.valueViewModel()) {\n map[String(opt.value)] = true;\n }\n return map;\n });\n\n constructor() {\n // Apply meta attributes to all checkbox inputs, re-apply when options change\n setupMetaTracking(this.elementRef, this.meta, {\n selector: 'input[type=\"checkbox\"]',\n dependents: [this.options],\n });\n\n explicitEffect([this.valueViewModel], ([selectedOptions]) => {\n const selectedValues = selectedOptions.map((option) => option.value);\n\n if (!isEqual(selectedValues, this.field()().value())) {\n this.field()().value.set(selectedValues);\n }\n });\n\n explicitEffect([this.options], ([options]) => {\n const values = options.map((option) => option.value);\n const uniqueValues = new Set(values);\n\n if (values.length !== uniqueValues.size) {\n const duplicates = values.filter((value, index) => values.indexOf(value) !== index);\n throw new Error(`Duplicate option values detected in mat-multi-checkbox: ${duplicates.join(', ')}`);\n }\n });\n }\n\n onCheckboxChange(option: FieldOption<ValueType>, checked: boolean): void {\n this.valueViewModel.update((currentOptions) => {\n if (checked) {\n return currentOptions.some((opt) => opt.value === option.value) ? currentOptions : [...currentOptions, option];\n } else {\n return currentOptions.filter((opt) => opt.value !== option.value);\n }\n });\n }\n\n readonly validationMessages = input<ValidationMessages>();\n readonly defaultValidationMessages = input<ValidationMessages>();\n\n readonly resolvedErrors = createResolvedErrorsSignal(this.field, this.validationMessages, this.defaultValidationMessages);\n readonly showErrors = shouldShowErrors(this.field);\n\n readonly errorsToDisplay = computed(() => (this.showErrors() ? this.resolvedErrors() : []));\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Accessibility\n // ─────────────────────────────────────────────────────────────────────────────\n\n /** Unique ID for the hint element, used for aria-describedby */\n protected readonly hintId = computed(() => `${this.key()}-hint`);\n\n /** Base ID for error elements, used for aria-describedby */\n protected readonly errorId = computed(() => `${this.key()}-error`);\n\n /** aria-invalid: true when field is invalid AND touched, false otherwise */\n protected readonly ariaInvalid = computed(() => {\n const fieldState = this.field()();\n return fieldState.invalid() && fieldState.touched();\n });\n\n /** aria-required: true if field is required, null otherwise (to remove attribute) */\n protected readonly ariaRequired = computed(() => {\n return this.field()().required?.() === true ? true : null;\n });\n\n /** aria-describedby: links to hint and error messages for screen readers */\n protected readonly ariaDescribedBy = createAriaDescribedBySignal(\n this.errorsToDisplay,\n this.errorId,\n this.hintId,\n () => !!this.props()?.hint,\n );\n}\n","import { ChangeDetectionStrategy, Component, computed, ElementRef, inject, input } from '@angular/core';\nimport { FormField, FieldTree } from '@angular/forms/signals';\nimport { MatRadioButton, MatRadioGroup } from '@angular/material/radio';\nimport { DynamicText, DynamicTextPipe, FieldMeta, FieldOption, ValidationMessages, ValueType } from '@ng-forge/dynamic-forms';\nimport { createResolvedErrorsSignal, setupMetaTracking, shouldShowErrors } from '@ng-forge/dynamic-forms/integration';\nimport { MatRadioComponent, MatRadioProps } from './mat-radio.type';\nimport { MatError } from '@angular/material/input';\nimport { AsyncPipe } from '@angular/common';\nimport { createAriaDescribedBySignal } from '../../utils/create-aria-described-by';\n\n@Component({\n selector: 'df-mat-radio',\n imports: [MatRadioGroup, MatRadioButton, FormField, MatError, DynamicTextPipe, AsyncPipe],\n template: `\n @let f = field();\n @let radioGroupId = key() + '-radio-group';\n\n @if (label()) {\n <div class=\"radio-label\">{{ label() | dynamicText | async }}</div>\n }\n\n <mat-radio-group\n [id]=\"radioGroupId\"\n [formField]=\"f\"\n [attr.aria-invalid]=\"ariaInvalid()\"\n [attr.aria-required]=\"ariaRequired()\"\n [attr.aria-describedby]=\"ariaDescribedBy()\"\n >\n @for (option of options(); track option.value) {\n <mat-radio-button\n [value]=\"option.value\"\n [disabled]=\"option.disabled || false\"\n [color]=\"props()?.color || 'primary'\"\n [labelPosition]=\"props()?.labelPosition || 'after'\"\n >\n {{ option.label | dynamicText | async }}\n </mat-radio-button>\n }\n </mat-radio-group>\n\n @if (errorsToDisplay()[0]; as error) {\n <mat-error [id]=\"errorId()\">{{ error.message }}</mat-error>\n } @else if (props()?.hint; as hint) {\n <div class=\"mat-hint\" [id]=\"hintId()\">{{ hint | dynamicText | async }}</div>\n }\n `,\n styleUrl: '../../styles/_form-field.scss',\n host: {\n '[class]': 'className() || \"\"',\n '[id]': '`${key()}`',\n '[attr.data-testid]': 'key()',\n '[attr.hidden]': 'field()().hidden() || null',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport default class MatRadioFieldComponent implements MatRadioComponent {\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n readonly field = input.required<FieldTree<ValueType>>();\n readonly key = input.required<string>();\n\n readonly label = input<DynamicText>();\n readonly placeholder = input<DynamicText>();\n\n readonly className = input<string>('');\n readonly tabIndex = input<number>();\n\n readonly options = input<FieldOption<ValueType>[]>([]);\n readonly props = input<MatRadioProps>();\n readonly meta = input<FieldMeta>();\n readonly validationMessages = input<ValidationMessages>();\n readonly defaultValidationMessages = input<ValidationMessages>();\n\n readonly resolvedErrors = createResolvedErrorsSignal(this.field, this.validationMessages, this.defaultValidationMessages);\n readonly showErrors = shouldShowErrors(this.field);\n\n readonly errorsToDisplay = computed(() => (this.showErrors() ? this.resolvedErrors() : []));\n\n constructor() {\n // Apply meta attributes to all radio inputs, re-apply when options change\n setupMetaTracking(this.elementRef, this.meta, {\n selector: 'input[type=\"radio\"]',\n dependents: [this.options],\n });\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Accessibility\n // ─────────────────────────────────────────────────────────────────────────────\n\n /** Unique ID for the hint element, used for aria-describedby */\n protected readonly hintId = computed(() => `${this.key()}-hint`);\n\n /** Base ID for error elements, used for aria-describedby */\n protected readonly errorId = computed(() => `${this.key()}-error`);\n\n /** aria-invalid: true when field is invalid AND touched, false otherwise */\n protected readonly ariaInvalid = computed(() => {\n const fieldState = this.field()();\n return fieldState.invalid() && fieldState.touched();\n });\n\n /** aria-required: true if field is required, null otherwise (to remove attribute) */\n protected readonly ariaRequired = computed(() => {\n return this.field()().required?.() === true ? true : null;\n });\n\n /** aria-describedby: links to hint and error messages for screen readers */\n protected readonly ariaDescribedBy = createAriaDescribedBySignal(\n this.errorsToDisplay,\n this.errorId,\n this.hintId,\n () => !!this.props()?.hint,\n );\n}\n","import { ChangeDetectionStrategy, Component, computed, ElementRef, inject, input } from '@angular/core';\nimport { FormField, FieldTree } from '@angular/forms/signals';\nimport { MatError, MatFormField, MatLabel } from '@angular/material/form-field';\nimport { MatOption, MatSelect } from '@angular/material/select';\nimport { MatHint } from '@angular/material/input';\nimport { DynamicText, DynamicTextPipe, FieldMeta, FieldOption, ValidationMessages, ValueType } from '@ng-forge/dynamic-forms';\nimport { createResolvedErrorsSignal, setupMetaTracking, shouldShowErrors } from '@ng-forge/dynamic-forms/integration';\nimport { MatSelectComponent, MatSelectProps } from './mat-select.type';\nimport { AsyncPipe } from '@angular/common';\nimport { MATERIAL_CONFIG } from '../../models/material-config.token';\nimport { createAriaDescribedBySignal } from '../../utils/create-aria-described-by';\n\n@Component({\n selector: 'df-mat-select',\n imports: [MatFormField, MatLabel, MatSelect, MatOption, MatHint, FormField, MatError, DynamicTextPipe, AsyncPipe],\n template: `\n @let f = field();\n @let selectId = key() + '-select';\n\n <mat-form-field\n [appearance]=\"effectiveAppearance()\"\n [subscriptSizing]=\"effectiveSubscriptSizing()\"\n [floatLabel]=\"effectiveFloatLabel()\"\n [hideRequiredMarker]=\"effectiveHideRequiredMarker()\"\n >\n @if (label(); as label) {\n <mat-label>{{ label | dynamicText | async }}</mat-label>\n }\n\n <mat-select\n [id]=\"selectId\"\n [formField]=\"f\"\n [placeholder]=\"(placeholder() | dynamicText | async) ?? ''\"\n [multiple]=\"props()?.multiple || false\"\n [compareWith]=\"props()?.compareWith || defaultCompare\"\n [attr.aria-invalid]=\"ariaInvalid()\"\n [attr.aria-required]=\"ariaRequired()\"\n [attr.aria-describedby]=\"ariaDescribedBy()\"\n >\n @for (option of options(); track option.value) {\n <mat-option [value]=\"option.value\" [disabled]=\"option.disabled || false\">\n {{ option.label | dynamicText | async }}\n </mat-option>\n }\n </mat-select>\n\n @if (errorsToDisplay()[0]; as error) {\n <mat-error [id]=\"errorId()\">{{ error.message }}</mat-error>\n } @else if (props()?.hint; as hint) {\n <mat-hint [id]=\"hintId()\">{{ hint | dynamicText | async }}</mat-hint>\n }\n </mat-form-field>\n `,\n styleUrl: '../../styles/_form-field.scss',\n styles: [\n `\n mat-form-field {\n width: 100%;\n }\n `,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[id]': '`${key()}`',\n '[attr.data-testid]': 'key()',\n '[class]': 'className()',\n '[attr.hidden]': 'field()().hidden() || null',\n },\n})\nexport default class MatSelectFieldComponent implements MatSelectComponent {\n private materialConfig = inject(MATERIAL_CONFIG, { optional: true });\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n readonly field = input.required<FieldTree<ValueType>>();\n readonly key = input.required<string>();\n\n readonly label = input<DynamicText>();\n readonly placeholder = input<DynamicText>();\n\n readonly className = input<string>('');\n readonly tabIndex = input<number>();\n\n readonly options = input<FieldOption<ValueType>[]>([]);\n readonly props = input<MatSelectProps>();\n readonly meta = input<FieldMeta>();\n readonly validationMessages = input<ValidationMessages>();\n readonly defaultValidationMessages = input<ValidationMessages>();\n\n readonly effectiveAppearance = computed(() => this.props()?.appearance ?? this.materialConfig?.appearance ?? 'outline');\n\n readonly effectiveSubscriptSizing = computed(() => this.props()?.subscriptSizing ?? this.materialConfig?.subscriptSizing ?? 'dynamic');\n\n readonly effectiveFloatLabel = computed(() => this.props()?.floatLabel ?? this.materialConfig?.floatLabel ?? 'auto');\n\n readonly effectiveHideRequiredMarker = computed(\n () => this.props()?.hideRequiredMarker ?? this.materialConfig?.hideRequiredMarker ?? false,\n );\n\n readonly resolvedErrors = createResolvedErrorsSignal(this.field, this.validationMessages, this.defaultValidationMessages);\n readonly showErrors = shouldShowErrors(this.field);\n\n readonly errorsToDisplay = computed(() => (this.showErrors() ? this.resolvedErrors() : []));\n\n defaultCompare = Object.is;\n\n constructor() {\n // mat-select has no native input - apply meta to mat-select element\n setupMetaTracking(this.elementRef, this.meta, {\n selector: 'mat-select',\n });\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Accessibility\n // ─────────────────────────────────────────────────────────────────────────────\n\n /** Unique ID for the hint element, used for aria-describedby */\n protected readonly hintId = computed(() => `${this.key()}-hint`);\n\n /** Base ID for error elements, used for aria-describedby */\n protected readonly errorId = computed(() => `${this.key()}-error`);\n\n /** aria-invalid: true when field is invalid AND touched, false otherwise */\n protected readonly ariaInvalid = computed(() => {\n const fieldState = this.field()();\n return fieldState.invalid() && fieldState.touched();\n });\n\n /** aria-required: true if field is required, null otherwise (to remove attribute) */\n protected readonly ariaRequired = computed(() => {\n return this.field()().required?.() === true ? true : null;\n });\n\n /** aria-describedby: links to hint and error messages for screen readers */\n protected readonly ariaDescribedBy = createAriaDescribedBySignal(\n this.errorsToDisplay,\n this.errorId,\n this.hintId,\n () => !!this.props()?.hint,\n );\n}\n","import { ChangeDetectionStrategy, Component, computed, ElementRef, inject, input } from '@angular/core';\nimport { FormField, FieldTree } from '@angular/forms/signals';\nimport { MatSlider, MatSliderThumb } from '@angular/material/slider';\nimport { DynamicText, DynamicTextPipe, ValidationMessages } from '@ng-forge/dynamic-forms';\nimport { createResolvedErrorsSignal, InputMeta, setupMetaTracking, shouldShowErrors } from '@ng-forge/dynamic-forms/integration';\nimport { MatSliderComponent, MatSliderProps } from './mat-slider.type';\nimport { MatError } from '@angular/material/input';\nimport { AsyncPipe } from '@angular/common';\nimport { createAriaDescribedBySignal } from '../../utils/create-aria-described-by';\n\n@Component({\n selector: 'df-mat-slider',\n imports: [MatSlider, MatSliderThumb, MatError, DynamicTextPipe, AsyncPipe, FormField],\n template: `\n @let f = field();\n @let inputId = key() + '-input';\n\n @if (label(); as label) {\n <div class=\"slider-label\">{{ label | dynamicText | async }}</div>\n }\n\n <mat-slider\n [min]=\"f().min?.() ?? 0\"\n [max]=\"f().max?.() ?? 100\"\n [step]=\"step() ?? props()?.step ?? 1\"\n [discrete]=\"props()?.thumbLabel || props()?.showThumbLabel\"\n [showTickMarks]=\"props()?.tickInterval !== undefined\"\n [color]=\"props()?.color || 'primary'\"\n class=\"slider-container\"\n >\n <input\n matSliderThumb\n [id]=\"inputId\"\n [formField]=\"f\"\n [attr.tabindex]=\"tabIndex()\"\n [attr.aria-invalid]=\"ariaInvalid()\"\n [attr.aria-required]=\"ariaRequired()\"\n [attr.aria-describedby]=\"ariaDescribedBy()\"\n />\n </mat-slider>\n\n @if (errorsToDisplay()[0]; as error) {\n <mat-error [id]=\"errorId()\">{{ error.message }}</mat-error>\n } @else if (props()?.hint; as hint) {\n <div class=\"mat-hint\" [id]=\"hintId()\">{{ hint | dynamicText | async }}</div>\n }\n `,\n styleUrl: '../../styles/_form-field.scss',\n styles: [\n `\n .slider-container {\n width: 100%;\n }\n `,\n ],\n host: {\n '[class]': 'className()',\n '[id]': '`${key()}`',\n '[attr.data-testid]': 'key()',\n '[attr.hidden]': 'field()().hidden() || null',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport default class MatSliderFieldComponent implements MatSliderComponent {\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n readonly field = input.required<FieldTree<number>>();\n readonly key = input.required<string>();\n\n constructor() {\n setupMetaTracking(this.elementRef, this.meta, { selector: 'input' });\n }\n\n readonly label = input<DynamicText>();\n readonly placeholder = input<DynamicText>();\n\n readonly className = input<string>('');\n readonly tabIndex = input<number>();\n readonly step = input<number>();\n\n readonly props = input<MatSliderProps>();\n readonly meta = input<InputMeta>();\n readonly validationMessages = input<ValidationMessages>();\n readonly defaultValidationMessages = input<ValidationMessages>();\n\n readonly resolvedErrors = createResolvedErrorsSignal(this.field, this.validationMessages, this.defaultValidationMessages);\n readonly showErrors = shouldShowErrors(this.field);\n\n readonly errorsToDisplay = computed(() => (this.showErrors() ? this.resolvedErrors() : []));\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Accessibility\n // ─────────────────────────────────────────────────────────────────────────────\n\n /** Unique ID for the hint element, used for aria-describedby */\n protected readonly hintId = computed(() => `${this.key()}-hint`);\n\n /** Base ID for error elements, used for aria-describedby */\n protected readonly errorId = computed(() => `${this.key()}-error`);\n\n /** aria-required: true when field has required validation, null otherwise */\n protected readonly ariaRequired = computed(() => {\n return this.field()().required?.() === true ? true : null;\n });\n\n /** aria-invalid: true when field is invalid AND touched, false otherwise */\n protected readonly ariaInvalid = computed(() => {\n const fieldState = this.field()();\n return fieldState.invalid() && fieldState.touched();\n });\n\n /** aria-describedby: links to hint and error messages for screen readers */\n protected readonly ariaDescribedBy = createAriaDescribedBySignal(\n this.errorsToDisplay,\n this.errorId,\n this.hintId,\n () => !!this.props()?.hint,\n );\n}\n","import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { MatButton } from '@angular/material/button';\nimport {\n ARRAY_CONTEXT,\n ArrayItemContext,\n DynamicText,\n DynamicTextPipe,\n EventBus,\n FormEvent,\n FormEventConstructor,\n resolveTokens,\n} from '@ng-forge/dynamic-forms';\nimport { EventArgs } from '@ng-forge/dynamic-forms/integration';\nimport { MatButtonComponent, MatButtonProps } from './mat-button.type';\nimport { AsyncPipe } from '@angular/common';\n\n@Component({\n selector: 'df-mat-button',\n imports: [MatButton, DynamicTextPipe, AsyncPipe],\n host: {\n '[id]': '`${key()}`',\n '[attr.data-testid]': 'key()',\n '[class]': 'className()',\n '[attr.hidden]': 'hidden() || null',\n },\n template: `\n @let buttonId = key() + '-button';\n <button\n mat-raised-button\n [id]=\"buttonId\"\n [type]=\"buttonType()\"\n [color]=\"props()?.color || 'primary'\"\n [disabled]=\"disabled()\"\n [attr.data-testid]=\"buttonTestId()\"\n (click)=\"onClick()\"\n >\n {{ label() | dynamicText | async }}\n </button>\n `,\n styleUrl: '../../styles/_form-field.scss',\n styles: [\n `\n button {\n min-width: fit-content;\n }\n `,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport default class MatButtonFieldComponent<TEvent extends FormEvent> implements MatButtonComponent<TEvent> {\n private readonly eventBus = inject(EventBus);\n private readonly arrayContext = inject(ARRAY_CONTEXT, { optional: true });\n\n readonly key = input.required<string>();\n readonly label = input.required<DynamicText>();\n readonly disabled = input<boolean>(false);\n readonly hidden = input<boolean>(false);\n\n readonly tabIndex = input<number>();\n readonly className = input<string>('');\n\n /** Event to dispatch on click. Optional for submit buttons (native form submit handles it). */\n readonly event = input<FormEventConstructor<TEvent>>();\n readonly eventArgs = input<EventArgs>();\n readonly props = input<MatButtonProps>();\n\n readonly eventContext = input<ArrayItemContext>();\n\n /** Resolved button type - defaults to 'button' if not specified in props */\n readonly buttonType = computed(() => this.props()?.type ?? 'button');\n\n readonly buttonTestId = computed(() => `${this.buttonType()}-${this.key()}`);\n\n /**\n * Handle button click.\n * - For submit buttons (type=\"submit\"): do nothing, native form submit handles it\n * - For other buttons: dispatch the configured event via EventBus\n */\n onClick(): void {\n // Native submit buttons let the form handle submission\n if (this.buttonType() === 'submit') {\n return;\n }\n\n // Other buttons dispatch their event (if configured)\n const event = this.event();\n if (event) {\n this.dispatchEvent(event);\n }\n }\n\n private dispatchEvent(event: FormEventConstructor<TEvent>): void {\n const args = this.eventArgs();\n\n if (args && args.length > 0) {\n // Build context from injected ARRAY_CONTEXT (with linkedSignal index) or fallback to eventContext\n const context: ArrayItemContext = this.arrayContext\n ? {\n key: this.key(),\n // Read signal to get current index (automatically updates via linkedSignal)\n index: this.arrayContext.index(),\n arrayKey: this.arrayContext.arrayKey,\n formValue: this.arrayContext.formValue,\n }\n : this.eventContext() || { key: this.key() };\n\n // Resolve tokens in event args using the provided context\n const resolvedArgs = resolveTokens(args, context);\n\n // Dispatch event with resolved args\n this.eventBus.dispatch(event, ...resolvedArgs);\n } else {\n // No args, dispatch event without arguments\n this.eventBus.dispatch(event);\n }\n }\n}\n","// Public API - types for type safety\nexport type {\n MatButtonProps,\n MatButtonField,\n MatSubmitButtonField,\n MatNextButtonField,\n MatPreviousButtonField,\n AddArrayItemButtonField,\n PrependArrayItemButtonField,\n InsertArrayItemButtonField,\n RemoveArrayItemButtonField,\n PopArrayItemButtonField,\n ShiftArrayItemButtonField,\n} from './mat-button.type';\n\n// Public API - component\nexport { default as MatButtonFieldComponent } from './mat-button.component';\n","import { afterRenderEffect, ChangeDetectionStrategy, Component, computed, ElementRef, inject, input, viewChild } from '@angular/core';\nimport { FormField, FieldTree } from '@angular/forms/signals';\nimport { MatError, MatFormField, MatLabel } from '@angular/material/form-field';\nimport { MatHint, MatInput } from '@angular/material/input';\nimport { DynamicText, DynamicTextPipe, ValidationMessages } from '@ng-forge/dynamic-forms';\nimport { createResolvedErrorsSignal, setupMetaTracking, shouldShowErrors, TextareaMeta } from '@ng-forge/dynamic-forms/integration';\nimport { MatTextareaComponent, MatTextareaProps } from './mat-textarea.type';\nimport { AsyncPipe } from '@angular/common';\nimport { MATERIAL_CONFIG } from '../../models/material-config.token';\nimport { createAriaDescribedBySignal } from '../../utils/create-aria-described-by';\n\n@Component({\n selector: 'df-mat-textarea',\n imports: [MatFormField, MatLabel, MatInput, MatHint, FormField, MatError, DynamicTextPipe, AsyncPipe],\n template: `\n @let f = field();\n @let textareaId = key() + '-textarea';\n\n <mat-form-field\n [appearance]=\"effectiveAppearance()\"\n [subscriptSizing]=\"effectiveSubscriptSizing()\"\n [floatLabel]=\"effectiveFloatLabel()\"\n [hideRequiredMarker]=\"effectiveHideRequiredMarker()\"\n >\n @if (label()) {\n <mat-label>{{ label() | dynamicText | async }}</mat-label>\n }\n\n <textarea\n #textareaRef\n matInput\n [id]=\"textareaId\"\n [formField]=\"f\"\n [placeholder]=\"(placeholder() | dynamicText | async) ?? ''\"\n [attr.tabindex]=\"tabIndex()\"\n [attr.aria-invalid]=\"ariaInvalid()\"\n [attr.aria-required]=\"ariaRequired()\"\n [attr.aria-describedby]=\"ariaDescribedBy()\"\n [style.resize]=\"props()?.resize || 'vertical'\"\n ></textarea>\n\n @if (errorsToDisplay()[0]; as error) {\n <mat-error [id]=\"errorId()\">{{ error.message }}</mat-error>\n } @else if (props()?.hint; as hint) {\n <mat-hint [id]=\"hintId()\">{{ hint | dynamicText | async }}</mat-hint>\n }\n </mat-form-field>\n `,\n styleUrl: '../../styles/_form-field.scss',\n styles: [\n `\n mat-form-field {\n width: 100%;\n }\n `,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[id]': '`${key()}`',\n '[attr.data-testid]': 'key()',\n '[class]': 'className()',\n '[attr.hidden]': 'field()().hidden() || null',\n },\n})\nexport default class MatTextareaFieldComponent implements MatTextareaComponent {\n private materialConfig = inject(MATERIAL_CONFIG, { optional: true });\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n readonly field = input.required<FieldTree<string>>();\n readonly key = input.required<string>();\n\n readonly label = input<DynamicText>();\n readonly placeholder = input<DynamicText>();\n readonly className = input<string>('');\n readonly tabIndex = input<number>();\n readonly props = input<MatTextareaProps>();\n readonly meta = input<TextareaMeta>();\n readonly validationMessages = input<ValidationMessages>();\n readonly defaultValidationMessages = input<ValidationMessages>();\n\n constructor() {\n setupMetaTracking(this.elementRef, this.meta, { selector: 'textarea' });\n }\n\n /**\n * Reference to the native textarea element.\n * Used to imperatively sync the readonly attribute since Angular Signal Forms'\n * [field] directive doesn't sync FieldState.readonly() to the DOM.\n */\n private readonly textareaRef = viewChild<ElementRef<HTMLTextAreaElement>>('textareaRef');\n\n /**\n * Computed signal that extracts the readonly state from the field.\n * Used by the effect to reactively sync the readonly attribute to the DOM.\n */\n private readonly isReadonly = computed(() => this.field()().readonly());\n\n /**\n * Workaround: Angular Signal Forms' [field] directive does NOT sync the readonly\n * attribute to the DOM, even though FieldState.readonly() returns the correct value.\n * This effect imperatively sets/removes the readonly attribute on the native textarea\n * element whenever the readonly state changes.\n *\n * Note: We cannot use [readonly] or [attr.readonly] bindings because Angular throws\n * NG8022: \"Binding to '[readonly]' is not allowed on nodes using the '[field]' directive\"\n *\n * Uses afterRenderEffect to ensure DOM is ready before manipulating attributes.\n *\n * @see https://github.com/angular/angular/issues/65897\n */\n private readonly syncReadonlyToDom = afterRenderEffect({\n write: () => {\n const textareaRef = this.textareaRef();\n const isReadonly = this.isReadonly();\n if (textareaRef?.nativeElement) {\n if (isReadonly) {\n textareaRef.nativeElement.setAttribute('readonly', '');\n } else {\n textareaRef.nativeElement.removeAttribute('readonly');\n }\n }\n },\n });\n\n readonly effectiveAppearance = computed(() => this.props()?.appearance ?? this.materialConfig?.appearance ?? 'outline');\n readonly effectiveSubscriptSizing = computed(() => this.props()?.subscriptSizing ?? this.materialConfig?.subscriptSizing ?? 'dynamic');\n\n readonly effectiveFloatLabel = computed(() => this.props()?.floatLabel ?? this.materialConfig?.floatLabel ?? 'auto');\n readonly effectiveHideRequiredMarker = computed(\n () => this.props()?.hideRequiredMarker ?? this.materialConfig?.hideRequiredMarker ?? false,\n );\n\n readonly resolvedErrors = createResolvedErrorsSignal(this.field, this.validationMessages, this.defaultValidationMessages);\n readonly showErrors = shouldShowErrors(this.field);\n\n readonly errorsToDisplay = computed(() => (this.showErrors() ? this.resolvedErrors() : []));\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Accessibility\n // ─────────────────────────────────────────────────────────────────────────────\n\n /** Unique ID for the hint element, used for aria-describedby */\n protected readonly hintId = computed(() => `${this.key()}-hint`);\n\n /** Base ID for error elements, used for aria-describedby */\n protected readonly errorId = computed(() => `${this.key()}-error`);\n\n /** aria-invalid: true when field is invalid AND touched, false otherwise */\n protected readonly ariaInvalid = computed(() => {\n const fieldState = this.field()();\n return fieldState.invalid() && fieldState.touched();\n });\n\n /** aria-required: true if field is required, null otherwise (to remove attribute) */\n protected readonly ariaRequired = computed(() => {\n return this.field()().required?.() === true ? true : null;\n });\n\n /** aria-describedby: links to hint and error messages for screen readers */\n protected readonly ariaDescribedBy = createAriaDescribedBySignal(\n this.errorsToDisplay,\n this.errorId,\n this.hintId,\n () => !!this.props()?.hint,\n );\n}\n","import { afterRenderEffect, ChangeDetectionStrategy, Component, computed, ElementRef, inject, input } from '@angular/core';\nimport { FormField, FieldTree } from '@angular/forms/signals';\nimport { MatSlideToggle } from '@angular/material/slide-toggle';\nimport { DynamicText, DynamicTextPipe, FieldMeta, ValidationMessages } from '@ng-forge/dynamic-forms';\nimport { createResolvedErrorsSignal, setupMetaTracking, shouldShowErrors } from '@ng-forge/dynamic-forms/integration';\n\nimport { MatToggleComponent, MatToggleProps } from './mat-toggle.type';\nimport { MatError } from '@angular/material/input';\nimport { AsyncPipe } from '@angular/common';\nimport { MATERIAL_CONFIG } from '../../models/material-config.token';\nimport { createAriaDescribedBySignal } from '../../utils/create-aria-described-by';\n\n@Component({\n selector: 'df-mat-toggle',\n imports: [MatSlideToggle, FormField, MatError, DynamicTextPipe, AsyncPipe],\n template: `\n @let f = field();\n @let toggleId = key() + '-toggle';\n\n <mat-slide-toggle\n [id]=\"toggleId\"\n [formField]=\"f\"\n [color]=\"props()?.color || 'primary'\"\n [labelPosition]=\"props()?.labelPosition || 'after'\"\n [hideIcon]=\"props()?.hideIcon || false\"\n [disableRipple]=\"effectiveDisableRipple()\"\n [required]=\"!!f().required()\"\n [attr.aria-describedby]=\"ariaDescribedBy()\"\n [attr.tabindex]=\"tabIndex()\"\n class=\"toggle-container\"\n >\n {{ label() | dynamicText | async }}\n </mat-slide-toggle>\n\n @if (errorsToDisplay()[0]; as error) {\n <mat-error [id]=\"errorId()\">{{ error.message }}</mat-error>\n } @else if (props()?.hint; as hint) {\n <div class=\"mat-hint\" [id]=\"hintId()\">{{ hint | dynamicText | async }}</div>\n }\n `,\n styleUrl: '../../styles/_form-field.scss',\n host: {\n '[class]': 'className()',\n '[id]': '`${key()}`',\n '[attr.data-testid]': 'key()',\n '[attr.hidden]': 'field()().hidden() || null',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport default class MatToggleFieldComponent implements MatToggleComponent {\n private materialConfig = inject(MATERIAL_CONFIG, { optional: true });\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n readonly field = input.required<FieldTree<boolean>>();\n readonly key = input.required<string>();\n\n readonly label = input<DynamicText>();\n readonly placeholder = input<DynamicText>();\n\n readonly className = input<string>('');\n readonly tabIndex = input<number>();\n\n readonly props = input<MatToggleProps>();\n readonly meta = input<FieldMeta>();\n readonly validationMessages = input<ValidationMessages>();\n readonly defaultValidationMessages = input<ValidationMessages>();\n\n readonly effectiveDisableRipple = computed(() => this.props()?.disableRipple ?? this.materialConfig?.disableRipple ?? false);\n\n readonly resolvedErrors = createResolvedErrorsSignal(this.field, this.validationMessages, this.defaultValidationMessages);\n readonly showErrors = shouldShowErrors(this.field);\n\n readonly errorsToDisplay = computed(() => (this.showErrors() ? this.resolvedErrors() : []));\n\n constructor() {\n // Apply meta attributes to the internal toggle button\n // Note: mat-slide-toggle uses <button role=\"switch\"> instead of <input type=\"checkbox\">\n setupMetaTracking(this.elementRef, this.meta, {\n selector: 'button[role=\"switch\"]',\n });\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Accessibility\n // ─────────────────────────────────────────────────────────────────────────────\n\n /** Unique ID for the hint element, used for aria-describedby */\n protected readonly hintId = computed(() => `${this.key()}-hint`);\n\n /** Base ID for error elements, used for aria-describedby */\n protected readonly errorId = computed(() => `${this.key()}-error`);\n\n /** aria-invalid: true when field is invalid AND touched, false otherwise */\n protected readonly ariaInvalid = computed(() => {\n const fieldState = this.field()();\n return fieldState.invalid() && fieldState.touched();\n });\n\n /** aria-required: true if field is required, null otherwise (to remove attribute) */\n protected readonly ariaRequired = computed(() => {\n return this.field()().required?.() === true ? true : null;\n });\n\n /** aria-describedby: links to hint and error messages for screen readers */\n protected readonly ariaDescribedBy = createAriaDescribedBySignal(\n this.errorsToDisplay,\n this.errorId,\n this.hintId,\n () => !!this.props()?.hint,\n );\n\n /**\n * Workaround: Angular Material's MatSlideToggle does NOT propagate aria-required to its internal\n * button element. This effect imperatively sets/removes aria-required on the internal button.\n *\n * Uses afterRenderEffect to ensure DOM is ready before querying internal elements.\n */\n private readonly syncAriaRequiredToDom = afterRenderEffect(() => {\n const isRequired = this.ariaRequired();\n const buttonEl = this.elementRef.nativeElement.querySelector('button[role=\"switch\"]');\n if (buttonEl) {\n if (isRequired) {\n buttonEl.setAttribute('aria-required', 'true');\n } else {\n buttonEl.removeAttribute('aria-required');\n }\n }\n });\n\n /**\n * Workaround: Angular Material's MatSlideToggle does NOT propagate aria-describedby to its internal\n * button element. This effect imperatively sets/removes aria-describedby on the internal button.\n *\n * Uses afterRenderEffect to ensure DOM is ready before querying internal elements.\n */\n private readonly syncAriaDescribedByToDom = afterRenderEffect(() => {\n const describedBy = this.ariaDescribedBy();\n const buttonEl = this.elementRef.nativeElement.querySelector('button[role=\"switch\"]');\n if (buttonEl) {\n if (describedBy) {\n buttonEl.setAttribute('aria-describedby', describedBy);\n } else {\n buttonEl.removeAttribute('aria-describedby');\n }\n }\n });\n}\n","// Public exports for material field components and types\n\nexport { MatCheckboxFieldComponent } from './checkbox';\nexport type { MatCheckboxProps, MatCheckboxField, MatCheckboxComponent } from './checkbox';\n\nexport { MatDatepickerFieldComponent } from './datepicker';\nexport type { MatDatepickerProps, MatDatepickerField, MatDatepickerComponent } from './datepicker';\n\nexport { MatInputFieldComponent } from './input';\nexport type { MatInputProps, MatInputField, MatInputComponent } from './input';\n\nexport { MatMultiCheckboxFieldComponent } from './multi-checkbox';\nexport type { MatMultiCheckboxProps, MatMultiCheckboxField, MatMultiCheckboxComponent } from './multi-checkbox';\n\nexport { MatRadioFieldComponent } from './radio';\nexport type { MatRadioProps, MatRadioField, MatRadioComponent } from './radio';\n\nexport { MatSelectFieldComponent } from './select';\nexport type { MatSelectProps, MatSelectField, MatSelectComponent } from './select';\n\nexport { MatSliderFieldComponent } from './slider';\nexport type { MatSliderProps, MatSliderField, MatSliderComponent } from './slider';\n\nexport { MatButtonFieldComponent } from './button';\nexport type {\n MatButtonProps,\n MatButtonField,\n MatSubmitButtonField,\n MatNextButtonField,\n MatPreviousButtonField,\n AddArrayItemButtonField,\n PrependArrayItemButtonField,\n InsertArrayItemButtonField,\n RemoveArrayItemButtonField,\n PopArrayItemButtonField,\n ShiftArrayItemButtonField,\n} from './button';\n\nexport { MatTextareaFieldComponent } from './textarea';\nexport type { MatTextareaProps, MatTextareaField, MatTextareaComponent } from './textarea';\n\nexport { MatToggleFieldComponent } from './toggle';\nexport type { MatToggleProps, MatToggleField, MatToggleComponent } from './toggle';\n","/**\n * Material Design field type constants\n * Based on available field components in the /fields folder\n */\nexport const MatField = {\n Input: 'input',\n Select: 'select',\n Checkbox: 'checkbox',\n Button: 'button',\n Submit: 'submit',\n Next: 'next',\n Previous: 'previous',\n AddArrayItem: 'addArrayItem',\n PrependArrayItem: 'prependArrayItem',\n InsertArrayItem: 'insertArrayItem',\n RemoveArrayItem: 'removeArrayItem',\n PopArrayItem: 'popArrayItem',\n ShiftArrayItem: 'shiftArrayItem',\n Textarea: 'textarea',\n Radio: 'radio',\n MultiCheckbox: 'multi-checkbox',\n Datepicker: 'datepicker',\n Slider: 'slider',\n Toggle: 'toggle',\n} as const;\n\nexport type MatFieldType = (typeof MatField)[keyof typeof MatField];\n","import { computed, inject, isSignal, Signal } from '@angular/core';\nimport { ARRAY_CONTEXT, buildBaseInputs, DEFAULT_PROPS, FieldDef } from '@ng-forge/dynamic-forms';\n\n/**\n * Generic button mapper for custom events or basic buttons.\n * For specific button types (submit, next, prev, add/remove array items),\n * use the dedicated field types and their specific mappers.\n *\n * Supports template property for array events (AppendArrayItemEvent, PrependArrayItemEvent, InsertArrayItemEvent)\n * which enables the $template token in eventArgs.\n *\n * @param fieldDef The button field definition\n * @returns Signal containing Record of input names to values for ngComponentOutlet\n */\nexport function buttonFieldMapper(fieldDef: FieldDef<Record<string, unknown>>): Signal<Record<string, unknown>> {\n const defaultProps = inject(DEFAULT_PROPS);\n const arrayContext = inject(ARRAY_CONTEXT, { optional: true });\n\n return computed(() => {\n const baseInputs = buildBaseInputs(fieldDef, defaultProps());\n\n const inputs: Record<string, unknown> = {\n ...baseInputs,\n };\n\n if (fieldDef.disabled !== undefined) {\n inputs['disabled'] = fieldDef.disabled;\n }\n\n if (fieldDef.hidden !== undefined) {\n inputs['hidden'] = fieldDef.hidden;\n }\n\n // Add event binding for button events\n if ('event' in fieldDef && fieldDef.event !== undefined) {\n inputs['event'] = fieldDef.event;\n }\n\n // Add eventArgs binding if provided\n if ('eventArgs' in fieldDef && fieldDef.eventArgs !== undefined) {\n inputs['eventArgs'] = fieldDef.eventArgs;\n }\n\n // Add eventContext for token resolution (supports $template, $arrayKey, $index, etc.)\n const template = 'template' in fieldDef ? fieldDef.template : undefined;\n if (template || arrayContext) {\n // Read signal value if index is a signal (supports differential updates)\n const getIndex = () => {\n if (!arrayContext) return -1;\n return isSignal(arrayContext.index) ? arrayContext.index() : arrayContext.index;\n };\n\n inputs['eventContext'] = {\n key: fieldDef.key,\n index: getIndex(),\n arrayKey: arrayContext?.arrayKey ?? '',\n formValue: arrayContext?.formValue ?? {},\n template,\n };\n }\n\n return inputs;\n });\n}\n","/**\n * Navigation button mappers for Material - re-exported from integration package.\n *\n * These mappers handle submit, next, and previous buttons with proper\n * disabled state resolution based on form validity and options.\n */\nexport { submitButtonFieldMapper, nextButtonFieldMapper, previousButtonFieldMapper } from '@ng-forge/dynamic-forms/integration';\n","import { FieldTypeDefinition } from '@ng-forge/dynamic-forms';\nimport {\n addArrayItemButtonMapper,\n checkboxFieldMapper,\n datepickerFieldMapper,\n insertArrayItemButtonMapper,\n optionsFieldMapper,\n popArrayItemButtonMapper,\n prependArrayItemButtonMapper,\n removeArrayItemButtonMapper,\n shiftArrayItemButtonMapper,\n valueFieldMapper,\n} from '@ng-forge/dynamic-forms/integration';\nimport { MatField } from '../types/types';\nimport { buttonFieldMapper } from '../fields/button/mat-button.mapper';\nimport { nextButtonFieldMapper, previousButtonFieldMapper, submitButtonFieldMapper } from '../fields/button/mat-specific-button.mapper';\n\n/**\n * Base definition for button field types that don't use the `field` input.\n * Button fields render immediately without waiting for form value integration.\n */\nconst BUTTON_FIELD_TYPES_BASE = {\n renderReadyWhen: [] as string[],\n};\n\n/**\n * Material Design field type definitions\n * Follows the FieldTypeDefinition interface for proper registry integration\n */\nexport const MATERIAL_FIELD_TYPES: FieldTypeDefinition[] = [\n {\n name: MatField.Input,\n loadComponent: () => import('../fields/input/mat-input.component'),\n mapper: valueFieldMapper,\n propsToMeta: ['type'],\n scope: ['text-input', 'numeric'],\n },\n {\n name: MatField.Select,\n loadComponent: () => import('../fields/select/mat-select.component'),\n mapper: optionsFieldMapper,\n scope: 'single-select',\n },\n {\n name: MatField.Checkbox,\n loadComponent: () => import('../fields/checkbox/mat-checkbox.component'),\n mapper: checkboxFieldMapper,\n scope: 'boolean',\n },\n {\n name: MatField.Button,\n loadComponent: () => import('../fields/button/mat-button.component'),\n mapper: buttonFieldMapper,\n valueHandling: 'exclude',\n ...BUTTON_FIELD_TYPES_BASE,\n },\n {\n name: MatField.Submit,\n loadComponent: () => import('../fields/button/mat-button.component'),\n mapper: submitButtonFieldMapper,\n valueHandling: 'exclude',\n ...BUTTON_FIELD_TYPES_BASE,\n },\n {\n name: MatField.Next,\n loadComponent: () => import('../fields/button/mat-button.component'),\n mapper: nextButtonFieldMapper,\n valueHandling: 'exclude',\n ...BUTTON_FIELD_TYPES_BASE,\n },\n {\n name: MatField.Previous,\n loadComponent: () => import('../fields/button/mat-button.component'),\n mapper: previousButtonFieldMapper,\n valueHandling: 'exclude',\n ...BUTTON_FIELD_TYPES_BASE,\n },\n {\n name: MatField.AddArrayItem,\n loadComponent: () => import('../fields/button/mat-button.component'),\n mapper: addArrayItemButtonMapper,\n valueHandling: 'exclude',\n ...BUTTON_FIELD_TYPES_BASE,\n },\n {\n name: MatField.PrependArrayItem,\n loadComponent: () => import('../fields/button/mat-button.component'),\n mapper: prependArrayItemButtonMapper,\n valueHandling: 'exclude',\n ...BUTTON_FIELD_TYPES_BASE,\n },\n {\n name: MatField.InsertArrayItem,\n loadComponent: () => import('../fields/button/mat-button.component'),\n mapper: insertArrayItemButtonMapper,\n valueHandling: 'exclude',\n ...BUTTON_FIELD_TYPES_BASE,\n },\n {\n name: MatField.RemoveArrayItem,\n loadComponent: () => import('../fields/button/mat-button.component'),\n mapper: removeArrayItemButtonMapper,\n valueHandling: 'exclude',\n ...BUTTON_FIELD_TYPES_BASE,\n },\n {\n name: MatField.PopArrayItem,\n loadComponent: () => import('../fields/button/mat-button.component'),\n mapper: popArrayItemButtonMapper,\n valueHandling: 'exclude',\n ...BUTTON_FIELD_TYPES_BASE,\n },\n {\n name: MatField.ShiftArrayItem,\n loadComponent: () => import('../fields/button/mat-button.component'),\n mapper: shiftArrayItemButtonMapper,\n valueHandling: 'exclude',\n ...BUTTON_FIELD_TYPES_BASE,\n },\n {\n name: MatField.Textarea,\n loadComponent: () => import('../fields/textarea/mat-textarea.component'),\n mapper: valueFieldMapper,\n propsToMeta: ['rows', 'cols'],\n scope: 'text-input',\n },\n {\n name: MatField.Radio,\n loadComponent: () => import('../fields/radio/mat-radio.component'),\n mapper: optionsFieldMapper,\n scope: 'single-select',\n },\n {\n name: MatField.MultiCheckbox,\n loadComponent: () => import('../fields/multi-checkbox/mat-multi-checkbox.component'),\n mapper: optionsFieldMapper,\n scope: 'multi-select',\n },\n {\n name: MatField.Datepicker,\n loadComponent: () => import('../fields/datepicker/mat-datepicker.component'),\n mapper: datepickerFieldMapper,\n scope: 'date',\n },\n {\n name: MatField.Slider,\n loadComponent: () => import('../fields/slider/mat-slider.component'),\n mapper: valueFieldMapper,\n scope: 'numeric',\n },\n {\n name: MatField.Toggle,\n loadComponent: () => import('../fields/toggle/mat-toggle.component'),\n mapper: checkboxFieldMapper,\n scope: 'boolean',\n },\n];\n","/**\n * Module augmentation for @ng-forge/dynamic-form\n * This file augments the FieldRegistryLeaves interface to include\n * all Material Design field types provided by this library.\n */\n\nimport type { FormEvent } from '@ng-forge/dynamic-forms';\nimport type {\n AddArrayItemButtonField,\n InsertArrayItemButtonField,\n MatButtonField,\n MatCheckboxField,\n MatDatepickerField,\n MatInputField,\n MatMultiCheckboxField,\n MatNextButtonField,\n MatPreviousButtonField,\n MatRadioField,\n PopArrayItemButtonField,\n PrependArrayItemButtonField,\n RemoveArrayItemButtonField,\n MatSelectField,\n ShiftArrayItemButtonField,\n MatSliderField,\n MatSubmitButtonField,\n MatTextareaField,\n MatToggleField,\n} from '../fields';\n\ndeclare module '@ng-forge/dynamic-forms' {\n interface FieldRegistryLeaves {\n input: MatInputField;\n select: MatSelectField<unknown>;\n checkbox: MatCheckboxField;\n button: MatButtonField<FormEvent>;\n submit: MatSubmitButtonField;\n next: MatNextButtonField;\n previous: MatPreviousButtonField;\n addArrayItem: AddArrayItemButtonField;\n prependArrayItem: PrependArrayItemButtonField;\n insertArrayItem: InsertArrayItemButtonField;\n removeArrayItem: RemoveArrayItemButtonField;\n popArrayItem: PopArrayItemButtonField;\n shiftArrayItem: ShiftArrayItemButtonField;\n textarea: MatTextareaField;\n radio: MatRadioField<unknown>;\n 'multi-checkbox': MatMultiCheckboxField<unknown>;\n datepicker: MatDatepickerField;\n slider: MatSliderField;\n toggle: MatToggleField;\n }\n}\n","import type { Provider } from '@angular/core';\nimport type { FieldTypeDefinition } from '@ng-forge/dynamic-forms';\nimport { MATERIAL_FIELD_TYPES } from '../config/material-field-config';\nimport { MaterialConfig } from '../models/material-config';\nimport { MATERIAL_CONFIG } from '../models/material-config.token';\n\n/**\n * Field type definitions for Material Design components.\n */\nexport type MaterialFieldTypes = FieldTypeDefinition[];\n\ntype MaterialConfigFeature = {\n ɵkind: 'material-config';\n ɵproviders: Provider[];\n};\n\ntype MaterialFieldsWithConfig = [...MaterialFieldTypes, MaterialConfigFeature];\n\n/**\n * Configure dynamic forms with Material Design field types.\n * Provides all Material Design field types for use with provideDynamicForm.\n *\n * @param config - Optional global configuration for Material form fields\n *\n * @example\n * ```typescript\n * // Application-level setup\n * import { ApplicationConfig } from '@angular/core';\n * import { provideDynamicForm } from '@ng-forge/dynamic-form';\n * import { withMaterialFields } from '@ng-forge/dynamic-form-material';\n *\n * export const appConfig: ApplicationConfig = {\n * providers: [\n * provideDynamicForm(...withMaterialFields())\n * ]\n * };\n * ```\n *\n * @example\n * ```typescript\n * // With global configuration\n * export const appConfig: ApplicationConfig = {\n * providers: [\n * provideDynamicForm(\n * ...withMaterialFields({\n * appearance: 'fill',\n * subscriptSizing: 'fixed'\n * })\n * )\n * ]\n * };\n * ```\n *\n * @returns Array of field type definitions and optionally a config feature\n */\nexport function withMaterialFields(): MaterialFieldTypes;\nexport function withMaterialFields(config: MaterialConfig): MaterialFieldsWithConfig;\nexport function withMaterialFields(config: MaterialConfig | undefined): MaterialFieldTypes | MaterialFieldsWithConfig;\nexport function withMaterialFields(config?: MaterialConfig): MaterialFieldTypes | MaterialFieldsWithConfig {\n if (!config) {\n return MATERIAL_FIELD_TYPES;\n }\n\n const fieldsWithConfig = [\n ...MATERIAL_FIELD_TYPES,\n {\n ɵkind: 'material-config',\n ɵproviders: [{ provide: MATERIAL_CONFIG, useValue: config }],\n } satisfies MaterialConfigFeature,\n ];\n\n // Safe: this preserves all material field definitions and appends exactly one config feature.\n return fieldsWithConfig as MaterialFieldsWithConfig;\n}\n","// Field components\nexport {\n MatCheckboxFieldComponent,\n MatDatepickerFieldComponent,\n MatInputFieldComponent,\n MatMultiCheckboxFieldComponent,\n MatRadioFieldComponent,\n MatSelectFieldComponent,\n MatSliderFieldComponent,\n MatButtonFieldComponent,\n MatTextareaFieldComponent,\n MatToggleFieldComponent,\n} from './fields';\nexport type {\n MatCheckboxProps,\n MatCheckboxField,\n MatCheckboxComponent,\n MatDatepickerProps,\n MatDatepickerField,\n MatDatepickerComponent,\n MatInputProps,\n MatInputField,\n MatInputComponent,\n MatMultiCheckboxProps,\n MatMultiCheckboxField,\n MatMultiCheckboxComponent,\n MatRadioProps,\n MatRadioField,\n MatRadioComponent,\n MatSelectProps,\n MatSelectField,\n MatSelectComponent,\n MatSliderProps,\n MatSliderField,\n MatSliderComponent,\n MatButtonProps,\n MatButtonField,\n MatSubmitButtonField,\n MatNextButtonField,\n MatPreviousButtonField,\n AddArrayItemButtonField,\n PrependArrayItemButtonField,\n InsertArrayItemButtonField,\n RemoveArrayItemButtonField,\n PopArrayItemButtonField,\n ShiftArrayItemButtonField,\n MatTextareaProps,\n MatTextareaField,\n MatTextareaComponent,\n MatToggleProps,\n MatToggleField,\n MatToggleComponent,\n} from './fields';\n\n// Configuration\nexport { MATERIAL_FIELD_TYPES } from './config/material-field-config';\nexport { MATERIAL_CONFIG } from './models';\nexport type { MaterialConfig } from './models';\n\n// Types and constants\nexport { MatField, type MatFieldType } from './types/types';\nexport type { MatFormProps, MatFormConfig } from './types/form-config';\n\n// Module augmentation for global types\nimport './types/registry-augmentation';\n\n// Providers\nexport { withMaterialFields } from './providers/material-providers';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["MatError"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ng-forge/dynamic-forms-material",
3
- "version": "0.8.0-next.4",
3
+ "version": "0.8.0",
4
4
  "description": "Angular Material integration for @ng-forge/dynamic-forms. Pre-built Material Design form components.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -32,7 +32,7 @@
32
32
  "@angular/core": "~21.2.0",
33
33
  "@angular/forms": "~21.2.0",
34
34
  "@angular/material": "~21.2.0",
35
- "@ng-forge/dynamic-forms": "~0.8.0-next.4",
35
+ "@ng-forge/dynamic-forms": "~0.8.0",
36
36
  "rxjs": ">=7.0.0"
37
37
  },
38
38
  "module": "fesm2022/ng-forge-dynamic-forms-material.mjs",
@@ -49,4 +49,4 @@
49
49
  "dependencies": {
50
50
  "tslib": "^2.3.0"
51
51
  }
52
- }
52
+ }
@@ -194,7 +194,6 @@ declare class MatInputFieldComponent implements MatInputComponent {
194
194
 
195
195
  interface MatMultiCheckboxProps {
196
196
  disableRipple?: boolean;
197
- tabIndex?: number;
198
197
  hint?: DynamicText;
199
198
  labelPosition?: 'before' | 'after';
200
199
  color?: ThemePalette;
@@ -348,6 +347,7 @@ declare class MatSliderFieldComponent implements MatSliderComponent {
348
347
  readonly placeholder: _angular_core.InputSignal<DynamicText | undefined>;
349
348
  readonly className: _angular_core.InputSignal<string>;
350
349
  readonly tabIndex: _angular_core.InputSignal<number | undefined>;
350
+ readonly step: _angular_core.InputSignal<number | undefined>;
351
351
  readonly props: _angular_core.InputSignal<MatSliderProps | undefined>;
352
352
  readonly meta: _angular_core.InputSignal<InputMeta | undefined>;
353
353
  readonly validationMessages: _angular_core.InputSignal<ValidationMessages | undefined>;
@@ -366,7 +366,7 @@ declare class MatSliderFieldComponent implements MatSliderComponent {
366
366
  /** aria-describedby: links to hint and error messages for screen readers */
367
367
  protected readonly ariaDescribedBy: _angular_core.Signal<string | null>;
368
368
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<MatSliderFieldComponent, never>;
369
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<MatSliderFieldComponent, "df-mat-slider", never, { "field": { "alias": "field"; "required": true; "isSignal": true; }; "key": { "alias": "key"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; "tabIndex": { "alias": "tabIndex"; "required": false; "isSignal": true; }; "props": { "alias": "props"; "required": false; "isSignal": true; }; "meta": { "alias": "meta"; "required": false; "isSignal": true; }; "validationMessages": { "alias": "validationMessages"; "required": false; "isSignal": true; }; "defaultValidationMessages": { "alias": "defaultValidationMessages"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
369
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<MatSliderFieldComponent, "df-mat-slider", never, { "field": { "alias": "field"; "required": true; "isSignal": true; }; "key": { "alias": "key"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; "tabIndex": { "alias": "tabIndex"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "props": { "alias": "props"; "required": false; "isSignal": true; }; "meta": { "alias": "meta"; "required": false; "isSignal": true; }; "validationMessages": { "alias": "validationMessages"; "required": false; "isSignal": true; }; "defaultValidationMessages": { "alias": "defaultValidationMessages"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
370
370
  }
371
371
 
372
372
  interface MatButtonProps {
@@ -505,10 +505,7 @@ interface MatTextareaProps extends TextareaProps {
505
505
  subscriptSizing?: SubscriptSizing;
506
506
  floatLabel?: FloatLabelType;
507
507
  hideRequiredMarker?: boolean;
508
- rows?: number;
509
- cols?: number;
510
508
  resize?: 'none' | 'both' | 'horizontal' | 'vertical';
511
- maxLength?: number;
512
509
  }
513
510
  type MatTextareaField = TextareaField<MatTextareaProps>;
514
511
  type MatTextareaComponent = ValueFieldComponent<MatTextareaField>;