{"version":3,"file":"daffodil-design-form-field.mjs","sources":["../../../libs/design/form-field/src/action/action.directive.ts","../../../libs/design/form-field/src/form-field-control.ts","../../../libs/design/form-field/src/form-field/form-field.component.ts","../../../libs/design/form-field/src/form-field/form-field.component.html","../../../libs/design/form-field/src/form-field.module.ts","../../../libs/design/form-field/src/form-field.ts","../../../libs/design/form-field/src/daffodil-design-form-field.ts"],"sourcesContent":["import { Directive } from '@angular/core';\n\n/**\n * DaffFormFieldActionDirective marks an element, typically a button, as an action attached to a form control inside `DaffFormFieldComponent`.\n */\n@Directive({\n  selector: '[daffFormFieldAction]',\n  host: {\n    class: 'daff-form-field-action',\n  },\n})\nexport class DaffFormFieldActionDirective {}\n","import { NgControl } from '@angular/forms';\nimport {\n  BehaviorSubject,\n  Observable,\n} from 'rxjs';\n\nimport { DaffFormFieldState } from './form-field-state';\n\n/**\n * Form controls must extend this class to be used inside `DaffFormFieldComponent`.\n *\n * > **Note**\n * > The control is defined as an abstract class instead of an interface to support Angular's dependency injection. Interfaces are erased during TypeScript compilation and cannot be used as DI tokens.\n * >\n * > By using an abstract class, the Angular DI container can match the class token for injection.\n */\nexport abstract class DaffFormFieldControl<T> {\n  /**\n   * The type of the control (e.g., 'input', 'select', 'textarea').\n   * Used to apply control-specific styling or behavior.\n   */\n  abstract readonly controlType?: any;\n\n  /**\n   * Whether the control supports automatic label behavior.\n   * When `true`, the form field will associate the label with the control using `for` and `id` attributes.\n   *\n   * Defaults to `true`.\n   */\n  readonly supportsAutoLabelling?: boolean = true;\n\n  /**\n   * Whether the control currently has focus.\n   */\n  abstract readonly focused: boolean;\n\n  /**\n   * Whether the control is required for form validation.\n   */\n  abstract readonly required: boolean;\n\n  /**\n   * Whether the control is disabled.\n   */\n  abstract readonly disabled: boolean;\n\n  /**\n   * The unique identifier for the control element.\n   */\n  readonly id?: string;\n\n  /**\n   * Whether the label should be in the raised position.\n   * By default, matches the focused state.\n   */\n  get raised() {\n    return this.focused;\n  };\n\n  /**\n   * Sets focus on the control.\n   *\n   * @param event - Optional event that triggers the focus.\n   */\n  abstract focus(event?: Event): void;\n\n  /**\n   * The current value of the control.\n   */\n  abstract readonly value: T;\n\n  constructor(public ngControl: NgControl | null) {}\n\n  /**\n   * Computes the current state of the form field control.\n   * Combines control properties and form validation state.\n   */\n  get state(): DaffFormFieldState {\n    return {\n      focused: this.focused,\n      filled: !!this.value,\n      disabled: this.ngControl?.disabled ?? this.disabled,\n      error: this.ngControl?.errors && (this.ngControl?.dirty || this.ngControl?.touched),\n      valid: !this.ngControl?.errors && this.ngControl?.dirty,\n    };\n  }\n\n  _stateChanges = new BehaviorSubject({\n    focused: false,\n    filled: false,\n    disabled: false,\n    error: false,\n    valid: true,\n  });\n\n  /**\n   * Observable stream of state changes for the form field control.\n   */\n  stateChanges: Observable<DaffFormFieldState>;\n\n  /**\n   * Emits the current state.\n   */\n  emitState(deferred = false) {\n    if(deferred) {\n      Promise.resolve().then(() => {\n        this._stateChanges.next(this.state);\n      });\n      return;\n    }\n\n    this._stateChanges.next(this.state);\n  }\n};\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n  Component,\n  ViewEncapsulation,\n  AfterContentInit,\n  AfterContentChecked,\n  ChangeDetectorRef,\n  ChangeDetectionStrategy,\n  AfterViewInit,\n  isDevMode,\n  ElementRef,\n  input,\n  contentChild,\n  signal,\n  computed,\n} from '@angular/core';\n\nimport {\n  DaffPrefixDirective,\n  DaffSuffixDirective,\n  DaffSkeletonableDirective,\n  DaffFormLabelDirective,\n} from '@daffodil/design';\nimport {\n  DaffErrorMessageComponent,\n  DaffHintComponent,\n  DaffFormFieldLabelDirective,\n} from '@daffodil/design/form';\n\nimport { DaffFormFieldActionDirective } from '../action/action.directive';\nimport { DaffFormFieldControl } from '../form-field-control';\n\nlet daffFormFieldId = 0;\n\nexport type DaffFormFieldAppearance = 'fluid' | 'fixed';\n\nenum DaffFormFieldAppearanceEnum {\n  Fluid = 'fluid',\n  Fixed = 'fixed',\n}\n\nexport const DaffFormFieldMissingControlMessage = 'A DaffFormFieldComponent must contain a DaffFormFieldControl';\n\n/**\n * DaffFormFieldComponent is a wrapping component that provides consistent styling and behavior for form control elements.\n */\n@Component({\n  selector: 'daff-form-field',\n  templateUrl: './form-field.component.html',\n  styleUrl: './form-field.component.scss',\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [\n    NgTemplateOutlet,\n  ],\n  host: {\n    class: 'daff-form-field',\n    '[class.is-native-select]': 'isNativeSelect()',\n    '[class.has-prefix]': '_prefix()',\n    '[class.has-suffix]': '_suffix()',\n    '[class.has-action]': '_action()',\n    '[class.daff-error]': 'isError()',\n    '[class.daff-disabled]': 'isDisabled()',\n    '[class.daff-valid]': 'isValid()',\n    '[class.daff-focused]': 'isFocused',\n    '[class.daff-raised]': 'isRaised',\n    '[class.fluid]': 'appearance() === \"fluid\"',\n    '[class.fixed]': 'appearance() === \"fixed\"',\n  },\n  hostDirectives: [\n    {\n      directive: DaffSkeletonableDirective,\n      inputs: ['skeleton'],\n    },\n  ],\n})\nexport class DaffFormFieldComponent implements AfterContentInit, AfterContentChecked, AfterViewInit {\n  /** @docs-private */\n  isNativeSelect = computed(() => this._control()?.controlType === 'native-select');\n\n  constructor(\n    private cd: ChangeDetectorRef,\n    public elementRef: ElementRef,\n  ) {}\n\n  /** @docs-private */\n  _prefix = contentChild(DaffPrefixDirective);\n\n  /** @docs-private */\n  _suffix = contentChild(DaffSuffixDirective);\n\n  /**\n   * @docs-private\n   *\n   * The child form control that the form field manages.\n   */\n  _control = contentChild(DaffFormFieldControl);\n\n  /**\n   * @docs-private\n   *\n   * @deprecated Deprecated in version 0.86.0. Will be removed in version 1.0.0.\n   */\n  _formLabelDirective = contentChild(DaffFormLabelDirective);\n\n  /**\n   * @docs-private\n   */\n  _formFieldLabelDirective = contentChild(DaffFormFieldLabelDirective);\n\n  /**\n   * @docs-private\n   */\n  _action = contentChild(DaffFormFieldActionDirective);\n\n  /**\n   * @docs-private\n   */\n  private _hint = contentChild(DaffHintComponent);\n\n  /**\n   * @docs-private\n   */\n  private _error = contentChild(DaffErrorMessageComponent);\n\n  /**\n   * @docs-private\n   *\n   * Tracking property to keep a record of whether or not the\n   * form field should be marked as error.\n   */\n  isError = signal(false);\n\n  /**\n   * @docs-private\n   *\n   * Tracking property to keep a record of whether or not the\n   * form field contains any user input.\n   */\n  isFilled = signal(false);\n\n  /**\n   * @docs-private\n   *\n   * Tracking property to keep a record of whether or not the\n   * form field should be marked as disabled.\n   */\n  isDisabled = signal(false);\n\n  /**\n   * @docs-private\n   *\n   * Tracking property to keep a record of whether or not the\n   * form field should be marked as valid.\n   */\n  isValid = signal(false);\n\n  /**\n   * @docs-private\n   *\n   * Determines whether or not the form field should display its focused state.\n   */\n  get isFocused() {\n    return this._control()?.focused;\n  }\n\n  /**\n   * @docs-private\n   */\n  get isRaised() {\n    return this._control()?.raised || this.isFilled();\n  }\n\n  /**\n   * The appearance of the form field. Defaults to `fluid`.\n   */\n  appearance = input(DaffFormFieldAppearanceEnum.Fluid, {\n    transform: (value: DaffFormFieldAppearance | '' | null | undefined) =>\n      value || DaffFormFieldAppearanceEnum.Fluid,\n  });\n\n  /**\n   * @docs-private\n   */\n  isFixed = computed(() => this.appearance() === DaffFormFieldAppearanceEnum.Fixed);\n\n  /**\n   * The unique id of the form field. Defaults to an autogenerated value. When using this,\n   * it's your responsibility to ensure that the id for each form field is unique.\n   *\n   * It gets assigned to the `for` attribute on the `<label>` inside of the form field.\n   */\n  id = input('daff-form-field-' + ++daffFormFieldId);\n\n  /**\n   * @docs-private\n   */\n  hasHint = computed(() => !!this._hint());\n\n  /**\n   * @docs-private\n   */\n  hintId = computed(() => this.id() + '-hint');\n\n  /**\n   * @docs-private\n   */\n  hasErrorMessage = computed(() => !!this._error());\n\n  /**\n   * @docs-private\n   */\n  errorMessageId = computed(() => this.id() + '-error');\n\n  /**\n   * @docs-private\n   */\n  autoLabelId = computed(() => this._control()?.supportsAutoLabelling ? this.id() : null);\n\n  /**\n   * @docs-private\n   */\n  customId = computed(() => this._control()?.supportsAutoLabelling ? null : this.id());\n\n  /**\n   * @docs-private\n   *\n   * Displays a console warning if the `DaffFormFieldLabelDirective` is not used on controls (native HTML control elements) that support auto-labelling.\n   */\n  ngAfterViewInit() {\n    if (isDevMode()) {\n      if (!this._formFieldLabelDirective() && this._control()?.supportsAutoLabelling && !(this._control()?.id)) {\n        console.warn(\n          `Accessibility Warning: The form field with id \"${this.id()}\" uses a control that supports auto-labelling, but no <daff-form-label> component was found.\\n\\n` +\n          `1. Add a <daff-form-label> component (recommended)\\n` +\n          `2. OR manually set an 'id' on your input and matching 'for' attribute on your <label>.\\n\\n` +\n          `Why this matters: Proper labelling ensures assistive technologies can identify form fields correctly.`,\n        );\n      }\n\n      if(this._suffix() && this._action() && !this.isFixed()) {\n        console.warn(\n          `UI consideration for form field with id \"${this.id()}\":\\n\\n` + `In a fluid appearance, avoid using suffix alongside an action.`,\n        );\n      };\n    }\n  }\n\n  /**\n   * Validates whether or not the form field is in a \"usable\" state.\n   */\n  private _validateFormControl() {\n    if (!this._control()) {\n      throw new Error(DaffFormFieldMissingControlMessage);\n    }\n  }\n\n  /**\n   * @docs-private\n   *\n   * Lifecycle hook to verify that the form field has an acceptable\n   * child control instance. Mostly useful for development-time\n   * validation of usage.\n   */\n  ngAfterContentInit() {\n    this._validateFormControl();\n\n    this._control()?.stateChanges?.subscribe(({ filled, disabled, error, valid }) => {\n      this.isFilled.set(filled);\n      this.isError.set(error);\n      this.isDisabled.set(disabled);\n      this.isValid.set(valid);\n\n      this.cd.markForCheck();\n    });\n  }\n\n  /**\n   * @docs-private\n   *\n   * Lifecycle hook to verify that the form field has an acceptable\n   * child control instance. Mostly useful for development-time\n   * validation of usage.\n   */\n  ngAfterContentChecked() {\n    this._validateFormControl();\n  }\n}\n","<ng-content />\n\n@if (isFixed()) {\n  <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n}\n<div class=\"daff-form-field__wrapper\">\n\t<div class=\"daff-form-field__control\">\n\t\t@if (_prefix()) {\n\t\t\t<ng-content select=\"[daffPrefix]\"></ng-content>\n\t\t}\n\t\t<div class=\"daff-form-field__inner\">\n\t\t\t@if (!isFixed()) {\n\t\t\t\t<ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n\t\t\t}\n\t\t\t<ng-content></ng-content>\n\t\t</div>\n\t\t@if (_suffix()) {\n\t\t\t<ng-content select=\"[daffSuffix]\"></ng-content>\n\t\t}\n\t\t@if (_action() && !isFixed()) {\n\t\t\t<ng-container *ngTemplateOutlet=\"actionTemplate\"></ng-container>\n\t\t}\n\t</div>\n\t@if ((_action() && isFixed())) {\n\t\t<ng-container *ngTemplateOutlet=\"actionTemplate\"></ng-container>\n\t}\n</div>\n@if (hasHint()) {\n\t<div\n\t\tclass=\"daff-form-field__hint-wrapper\"\n\t\t[id]=\"hintId()\">\n\t\t<ng-content select=\"daff-hint\"></ng-content>\n\t</div>\n}\n@if (hasErrorMessage()) {\n\t<div\n\t\tclass=\"daff-form-field__error-wrapper\"\n\t\t[id]=\"errorMessageId()\">\n\t\t<ng-content select=\"daff-error-message\"></ng-content>\n\t</div>\n}\n\n<ng-template #actionTemplate>\n\t<ng-content select=\"[daffFormFieldAction]\"></ng-content>\n</ng-template>\n\n<ng-template #labelTemplate>\n  @if (_formLabelDirective()) {\n    <ng-content select=\"label[daffFormLabel]\"></ng-content>\n  } @else if(_formFieldLabelDirective()) {\n    <label class=\"daff-form-field__label\"\n      [attr.for]=\"autoLabelId()\"\n      [attr.id]=\"customId()\">\n      <ng-content select=\"daff-form-label\"></ng-content>\n\t\t\t@if (_control().required) {\n\t\t\t<span aria-hidden=\"true\">*</span>\n\t\t\t}\n    </label>\n  } @else {\n    <ng-content select=\"label\"></ng-content>\n  }\n</ng-template>","import { NgModule } from '@angular/core';\n\nimport { DaffFormLabelModule } from '@daffodil/design';\nimport {\n  DaffErrorMessageComponent,\n  DaffFormFieldLabelDirective,\n  DaffHintComponent,\n} from '@daffodil/design/form';\n\nimport { DaffFormFieldComponent } from './form-field/form-field.component';\n\n/**\n * @deprecated in favor of standalone components. Deprecated in version 0.84.0. Will be removed in version 1.0.0.\n */\n@NgModule({\n  imports: [\n    DaffFormFieldComponent,\n    DaffErrorMessageComponent,\n    DaffHintComponent,\n    DaffFormFieldLabelDirective,\n    DaffFormLabelModule,\n  ],\n  exports: [\n    DaffFormFieldComponent,\n    DaffErrorMessageComponent,\n    DaffHintComponent,\n    DaffFormFieldLabelDirective,\n    DaffFormLabelModule,\n  ],\n})\nexport class DaffFormFieldModule { }\n","import {\n  DaffPrefixDirective,\n  DaffSuffixDirective,\n  DaffFormLabelDirective,\n} from '@daffodil/design';\nimport {\n  DaffErrorMessageComponent,\n  DaffFormFieldLabelDirective,\n  DaffHintComponent,\n} from '@daffodil/design/form';\n\nimport { DaffFormFieldActionDirective } from './action/action.directive';\nimport { DaffFormFieldComponent } from './form-field/form-field.component';\n\n/**\n * @docs-private\n */\nexport const DAFF_FORM_FIELD_COMPONENTS = <const> [\n  DaffFormFieldComponent,\n  DaffFormLabelDirective,\n  DaffPrefixDirective,\n  DaffSuffixDirective,\n  DaffFormFieldActionDirective,\n  DaffHintComponent,\n  DaffFormFieldLabelDirective,\n  DaffErrorMessageComponent,\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}