{"version":3,"file":"daffodil-design-textarea.mjs","sources":["../../../libs/design/textarea/src/textarea.component.ts","../../../libs/design/textarea/src/daffodil-design-textarea.ts"],"sourcesContent":["import {\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  map,\n  merge,\n  of,\n  tap,\n} from 'rxjs';\n\nimport {\n  DaffFormFieldComponent,\n  DaffFormFieldControl,\n} from '@daffodil/design/form-field';\n\n/**\n * DaffTextareaComponent provides the same functionality as a native `<textarea>` and contains custom styling and functionality.\n */\n@Component({\n  // eslint-disable-next-line @angular-eslint/component-selector\n  selector: 'textarea[daff-textarea]',\n  template: '<ng-content></ng-content>',\n  styleUrls: ['./textarea.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n\n    { provide: DaffFormFieldControl, useExisting: DaffTextareaComponent },\n  ],\n  host: {\n    class: 'daff-textarea',\n    '[attr.id]': 'internalId',\n    '[disabled]': 'disabledAttribute',\n    '[required]': 'requiredAttribute',\n    '(focus)': 'focus()',\n    '(blur)': 'blur()',\n    '[attr.aria-describedby]': 'ariaDescribedBy',\n  },\n})\nexport class DaffTextareaComponent extends DaffFormFieldControl<string> implements DaffFormFieldControl<string>, OnInit {\n  /** @docs-private */\n  controlType = 'native-textarea';\n\n  /**\n   * @docs-private\n   */\n  focused = false;\n\n  private get _id() {\n    return this.formField?.id;\n  };\n\n  /**\n   * @docs-private\n   */\n  get internalId() {\n    return this._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  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  focus() {\n    this.focused = true;\n    this.emitState();\n  }\n\n  /**\n   * @docs-private\n   */\n  blur() {\n    this.focused = false;\n    this.emitState(true);\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  constructor(\n    /**\n     * @docs-private\n     */\n    @Optional() @Self() public ngControl: NgControl,\n    private _elementRef: ElementRef<HTMLInputElement>,\n    private formField: DaffFormFieldComponent,\n  ) {\n    super(ngControl);\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  /**\n   * @docs-private\n   */\n  onFocus() {\n    this._elementRef.nativeElement.focus();\n  }\n\n  /**\n   * @docs-private\n   */\n  get value() {\n    return this._elementRef.nativeElement.value;\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}