{"version":3,"file":"daffodil-design-input.mjs","sources":["../../../libs/design/input/src/input.component.ts","../../../libs/design/input/src/input.module.ts","../../../libs/design/input/src/daffodil-design-input.ts"],"sourcesContent":["/* eslint-disable quote-props */\nimport {\n  Component,\n  Optional,\n  Self,\n  ElementRef,\n  ChangeDetectionStrategy,\n  OnInit,\n  Input,\n  booleanAttribute,\n} from '@angular/core';\nimport {\n  NgControl,\n  Validators,\n} from '@angular/forms';\nimport {\n  merge,\n  of,\n  map,\n  tap,\n} from 'rxjs';\n\nimport {\n  DaffFormFieldComponent,\n  DaffFormFieldControl,\n} from '@daffodil/design/form-field';\n\n/**\n * DaffInputComponent provides the same functionality as a native `<input>` and contains custom styling and functionality.\n */\n@Component({\n  // eslint-disable-next-line @angular-eslint/component-selector\n  selector: 'input[daff-input]',\n  template: '<ng-content></ng-content>',\n  styleUrl: './input.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n\n    { provide: DaffFormFieldControl, useExisting: DaffInputComponent },\n  ],\n  host: {\n    'class': 'daff-input',\n    '(focus)': '_handleFocus()',\n    '(blur)': '_handleBlur()',\n    '[attr.id]': '_id',\n    '[disabled]': 'disabledAttribute',\n    '[required]': 'requiredAttribute',\n    '[attr.aria-describedby]': 'ariaDescribedBy',\n  },\n})\nexport class DaffInputComponent extends DaffFormFieldControl<string> implements DaffFormFieldControl<string>, OnInit {\n  /** @docs-private */\n  controlType = 'native-input';\n\n  /**\n   * @docs-private\n   *\n   * Implemented as part of DaffFormFieldControl.\n   */\n  focused = false;\n\n  /**\n   * @docs-private\n   */\n  get _id() {\n    return this.formField?.id;\n  };\n\n  /**\n   * @docs-private\n   *\n   * Implemented as part of DaffFormFieldControl.\n   */\n  @Input({ transform: booleanAttribute }) disabled = false;\n\n  /**\n   * @docs-private\n   */\n  get disabledAttribute() {\n    if (this.ngControl) {\n      return this.ngControl.disabled;\n    }\n\n    return this.disabled || null;\n  }\n\n\n  private _required = false;\n\n  /**\n   * @docs-private\n   *\n   * Implemented as part of DaffFormFieldControl.\n   */\n  @Input({ transform: booleanAttribute })\n  get required(): boolean {\n    return this.ngControl?.control?.hasValidator(Validators.required) ?? this._required;\n  }\n  set required(value: boolean) {\n    this._required = value;\n  }\n\n  /**\n   * @docs-private\n   */\n  get requiredAttribute() {\n    return this.required || null;\n  }\n\n  /**\n   * @docs-private\n   */\n  get ariaDescribedBy() {\n    if(this.formField.hasErrorMessage()) {\n      return this.formField.errorMessageId;\n    } else if(this.formField.hasHint()) {\n      return this.formField.hintId;\n    } else {\n      return null;\n    }\n  }\n\n  focus() {\n    this._elementRef.nativeElement.focus();\n  }\n\n  /** @docs-private */\n  _handleFocus() {\n    this.focused = true;\n    this.emitState();\n\n  }\n\n  /** @docs-private */\n  _handleBlur() {\n    this.focused = false;\n    this.emitState(true);\n  }\n\n  constructor(\n    /** @docs-private */\n    @Optional() @Self() public ngControl: NgControl,\n    private _elementRef: ElementRef<HTMLInputElement>,\n    @Optional() private formField: DaffFormFieldComponent,\n  ) {\n    super(ngControl);\n\n    if(!this.formField) {\n      throw new Error('DaffInputComponent needs to be used with the DaffFormFieldComponent.');\n    }\n  }\n\n  /** @docs-private */\n  ngOnInit() {\n    this.stateChanges = merge(\n      this._stateChanges.asObservable(),\n      this.ngControl ? this.ngControl.statusChanges : of(undefined),\n    ).pipe(\n      map(() => this.state),\n      tap((state) => this.disabled = state.disabled),\n    );\n  }\n\n  /** @docs-private */\n  get value() {\n    return this._elementRef.nativeElement.value;\n  }\n}\n","import { NgModule } from '@angular/core';\n\nimport { DaffInputComponent } from './input.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    DaffInputComponent,\n  ],\n  exports: [\n    DaffInputComponent,\n  ],\n})\nexport class DaffInputModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}