{"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  ContentChild,\n  AfterContentInit,\n  AfterContentChecked,\n  ChangeDetectorRef,\n  ChangeDetectionStrategy,\n  Input,\n  AfterViewInit,\n  isDevMode,\n  ElementRef,\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 DaffFormFieldApperanace = 'fluid' | 'fixed';\n\nenum DaffFormFieldApperanaceEnum {\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  get isNativeSelect() {\n    return this._control.controlType === 'native-select';\n  }\n\n  constructor(private cd: ChangeDetectorRef, public elementRef: ElementRef) {}\n\n  /** @docs-private */\n  @ContentChild(DaffPrefixDirective) _prefix: DaffPrefixDirective;\n\n  /** @docs-private */\n  @ContentChild(DaffSuffixDirective) _suffix: DaffSuffixDirective;\n\n  /**\n   * @docs-private\n   *\n   * The child form control that the form field manages.\n   */\n  @ContentChild(DaffFormFieldControl) _control: DaffFormFieldControl<unknown>;\n\n  /**\n   * @docs-private\n   * @deprecated Deprecated in version 0.86.0. Will be removed in version 1.0.0.\n   */\n  @ContentChild(DaffFormLabelDirective) _formLabelDirective: DaffFormLabelDirective;\n\n  /**\n   * @docs-private\n   */\n  @ContentChild(DaffFormFieldLabelDirective) _formFieldLabelDirective: DaffFormFieldLabelDirective;\n\n  /**\n   * @docs-private\n   */\n  @ContentChild(DaffFormFieldActionDirective) _action: DaffFormFieldActionDirective;\n\n  /**\n   * @docs-private\n   */\n  @ContentChild(DaffHintComponent) private _hint: DaffHintComponent;\n\n  /**\n   * @docs-private\n   */\n  @ContentChild(DaffErrorMessageComponent) private _error: 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 = 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 = 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 = 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 = 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  private _appearance: DaffFormFieldApperanace = DaffFormFieldApperanaceEnum.Fluid;\n\n  /**\n   * The appearance of the form field. Defaults to `fluid`.\n   */\n  @Input()\n  get appearance() {\n    return this._appearance;\n  }\n\n  set appearance(value: DaffFormFieldApperanace) {\n    if(value === null || value === undefined || <unknown>value === '') {\n      this._appearance = DaffFormFieldApperanaceEnum.Fluid;\n    } else {\n      this._appearance = value;\n    }\n  };\n\n  /**\n   * @docs-private\n   */\n  get isFixed() {\n    return this._appearance === DaffFormFieldApperanaceEnum.Fixed;\n  }\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  @Input() id = 'daff-form-field-' + ++daffFormFieldId;\n\n  /**\n   * @docs-private\n   */\n  hasHint() {\n    return this._hint ? true : false;\n  }\n\n  /**\n   * @docs-private\n   */\n  hintId = this.id + '-hint';\n\n  /**\n   * @docs-private\n   */\n  hasErrorMessage() {\n    return this._error ? true : false;\n  }\n\n  /**\n   * @docs-private\n   */\n  errorMessageId = this.id + '-error';\n\n  /**\n   * @docs-private\n   */\n  get autoLabelId() {\n    return this._control.supportsAutoLabelling ? this.id : null;\n  }\n\n  /**\n   * @docs-private\n   */\n  get customId() {\n    return this._control.supportsAutoLabelling ? null : this.id;\n  }\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(({ focused, filled, disabled, error, valid }) => {\n      this.isFilled = filled;\n      this.isError = error;\n      this.isDisabled = disabled;\n      this.isValid = 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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"}