{"version":3,"file":"textarea.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/textarea/textarea/textarea.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/textarea/textarea/textarea.html","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/textarea/textarea.module.ts"],"sourcesContent":["// Workaround for: https://github.com/bazelbuild/rules_nodejs/issues/1265\n/// <reference types=\"@angular/localize/init\" />\n\nimport { CdkTextareaAutosize } from '@angular/cdk/text-field';\nimport {\n  booleanAttribute,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  DoCheck,\n  ElementRef,\n  HostListener,\n  inject,\n  Input,\n  numberAttribute,\n  OnDestroy,\n  ViewChild,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { ControlValueAccessor, FormGroupDirective, NgControl, NgForm } from '@angular/forms';\nimport { SbbErrorStateMatcher, _ErrorStateTracker } from '@sbb-esta/angular/core';\nimport { SbbFormFieldControl } from '@sbb-esta/angular/form-field';\nimport { BehaviorSubject, Subject } from 'rxjs';\n\nlet nextId = 0;\n\n@Component({\n  selector: 'sbb-textarea',\n  templateUrl: './textarea.html',\n  styleUrls: ['./textarea.css'],\n  providers: [{ provide: SbbFormFieldControl, useExisting: SbbTextarea }],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  host: {\n    class: 'sbb-textarea sbb-input-element',\n    /** Needs to be -1 so the `focus` event still fires. */\n    tabindex: '-1',\n    '[attr.id]': 'id',\n    '[attr.aria-describedby]': '_ariaDescribedby || null',\n    '[class.sbb-disabled]': 'disabled',\n    '[class.sbb-focused]': 'focused',\n    '[class.sbb-readonly]': 'readonly',\n  },\n  imports: [CdkTextareaAutosize],\n})\nexport class SbbTextarea\n  implements SbbFormFieldControl<string>, ControlValueAccessor, DoCheck, OnDestroy\n{\n  ngControl: NgControl = inject(NgControl, { self: true, optional: true })!;\n  private _changeDetectorRef = inject(ChangeDetectorRef);\n  private _elementRef = inject(ElementRef);\n\n  get _labelCharactersRemaining(): string {\n    return $localize`:Counter text for textarea@@sbbTextareaCounterText:${this._counter.value} characters remaining`;\n  }\n\n  /** Unique id of the element. */\n  private _uniqueId = `sbb-textarea-${++nextId}`;\n\n  @Input()\n  get id(): string {\n    return this._id;\n  }\n  set id(value: string) {\n    this._id = value;\n    this.stateChanges.next();\n  }\n  private _id = this._uniqueId;\n\n  /** Id for the inner input field. */\n  get inputId() {\n    return `${this.id || this._uniqueId}-input`;\n  }\n\n  /**\n   * Disable the automatic labeling to avoid issues like #1918.\n   * @docs-private\n   */\n  readonly disableAutomaticLabeling = true;\n\n  /** Emits when the state of the option changes and any parents have to be notified. */\n  readonly stateChanges = new Subject<void>();\n\n  private _destroyed = new Subject<void>();\n  private _errorStateTracker: _ErrorStateTracker;\n\n  /** The value of the textarea. */\n  @Input()\n  get value() {\n    return this._textarea ? this._textarea.nativeElement.value : '';\n  }\n  set value(value: string) {\n    if (this._textarea) {\n      this._textarea.nativeElement.value = value;\n      this._updateDigitsCounter(this.value);\n      this._changeDetectorRef.markForCheck();\n      this.stateChanges.next();\n    }\n  }\n\n  /** Class property that disables the textarea status. */\n  @Input({ transform: booleanAttribute })\n  get disabled(): boolean {\n    return this._disabled;\n  }\n  set disabled(value: boolean) {\n    this._disabled = value;\n    this._changeDetectorRef.markForCheck();\n    this.stateChanges.next();\n  }\n  private _disabled = false;\n\n  /** Class property that sets readonly the textarea content. */\n  @Input({ transform: booleanAttribute })\n  get readonly(): boolean {\n    return this._readonly;\n  }\n  set readonly(value: boolean) {\n    this._readonly = value;\n    this.stateChanges.next();\n  }\n  private _readonly = false;\n\n  /** Whether the input is in an error state. */\n  get errorState() {\n    return this._errorStateTracker.errorState;\n  }\n  set errorState(value: boolean) {\n    this._errorStateTracker.errorState = value;\n  }\n\n  /** Class property that sets the maxlength of the textarea content. */\n  @Input({ transform: numberAttribute })\n  get maxlength(): number {\n    return this._maxlength;\n  }\n  set maxlength(value: number) {\n    this._maxlength = value;\n    this._updateDigitsCounter(this.value);\n    this.stateChanges.next();\n  }\n  private _maxlength!: number;\n\n  /** Class property that sets the minlength of the textarea content. */\n  @Input({ transform: numberAttribute })\n  get minlength(): number {\n    return this._minlength;\n  }\n  set minlength(value: number) {\n    this._minlength = value;\n    this.stateChanges.next();\n  }\n  private _minlength!: number;\n\n  /** Class property that sets required the textarea. */\n  @Input({ transform: booleanAttribute })\n  get required(): boolean {\n    return this._required;\n  }\n  set required(value: boolean) {\n    this._required = value;\n    this.stateChanges.next();\n  }\n  private _required = false;\n\n  /** Whether the autosizing is disabled or not. Autosizing is based on the CDK Autosize. */\n  @Input({ transform: booleanAttribute }) autosizeDisabled: boolean = false;\n\n  @Input()\n  get errorStateMatcher() {\n    return this._errorStateTracker.matcher;\n  }\n  set errorStateMatcher(value: SbbErrorStateMatcher) {\n    this._errorStateTracker.matcher = value;\n  }\n\n  /** Whether the textarea is focused. */\n  get focused(): boolean {\n    return this._focused;\n  }\n  private _focused: boolean = false;\n\n  /** Whether the textarea has a value. */\n  get empty(): boolean {\n    return !this.value || this.value === '';\n  }\n\n  /** Determines the aria-describedby to be set on the host. */\n  _ariaDescribedby!: string;\n  /** Class property that represents an observer on the number of digits in a textarea. */\n  _counter: BehaviorSubject<number> = new BehaviorSubject<number>(this.maxlength);\n\n  /** Placeholder value for the textarea. */\n  @Input() placeholder: string = '';\n  /** @docs-private */\n  @ViewChild('textarea', { static: true }) _textarea!: ElementRef<HTMLTextAreaElement>;\n  /** Class property that automatically resize a textarea to fit its content. */\n  @ViewChild(CdkTextareaAutosize, { static: true }) autosize!: CdkTextareaAutosize;\n\n  /** `View -> model callback called when value changes` */\n  _onChange: (value: any) => void = () => {};\n  /** `View -> model callback called when autocomplete has been touched` */\n  _onTouched: () => void = () => {};\n\n  constructor(...args: unknown[]);\n  constructor() {\n    const defaultErrorStateMatcher = inject(SbbErrorStateMatcher);\n    const parentForm = inject(NgForm, { optional: true })!;\n    const parentFormGroup = inject(FormGroupDirective, { optional: true })!;\n\n    if (this.ngControl) {\n      // Note: we provide the value accessor through here, instead of\n      // the `providers` to avoid running into a circular import.\n      this.ngControl.valueAccessor = this;\n    }\n\n    this._errorStateTracker = new _ErrorStateTracker(\n      defaultErrorStateMatcher,\n      this.ngControl,\n      parentFormGroup,\n      parentForm,\n      this.stateChanges,\n    );\n  }\n\n  /**\n   * Trigger resize on every check because it's possible that the textarea becomes visible after first rendering.\n   * Without triggering resize, the textarea would not be correctly adjusted when it becomes visible only after first rendering.\n   * This issue is due to the fact, that before being visible, autosize is deactivated.\n   * @docs-private\n   */\n  ngDoCheck() {\n    if (this.ngControl) {\n      this.updateErrorState();\n    }\n  }\n\n  /**\n   * Forward focus if a user clicks on an associated label.\n   * Implemented as part of SbbFormFieldControl.\n   * @docs-private\n   */\n  onContainerClick(_event: Event) {\n    this.focus();\n  }\n\n  /**\n   * Note: under normal conditions focus shouldn't land on this element, however it may be\n   * programmatically set, for example inside of a focus trap, in this case we want to forward\n   * the focus to the native element.\n   * @docs-private\n   */\n  @HostListener('focus')\n  focus(options?: FocusOptions) {\n    this._textarea.nativeElement.focus(options);\n  }\n\n  /** Adds the focused CSS class to this element */\n  _onFocus() {\n    if (!this.disabled) {\n      this._focused = true;\n      this.stateChanges.next();\n    }\n  }\n\n  /**\n   * forward focus if user clicks anywhere on sbb-textarea\n   * @docs-private\n   */\n  @HostListener('click', ['$event'])\n  _focusTextarea(target: Event) {\n    if (target.target === this._elementRef.nativeElement) {\n      this.focus();\n    }\n  }\n\n  /** Removes the focused CSS class from this element */\n  _onBlur() {\n    this._focused = false;\n\n    if (!this.disabled) {\n      this._onTouched();\n      this._changeDetectorRef.markForCheck();\n      this.stateChanges.next();\n    }\n  }\n\n  /** Method that listens change in the textarea content */\n  _onInput(event: any) {\n    this._onChange(event.target.value);\n    this._updateDigitsCounter(event.target.value);\n    this.stateChanges.next();\n  }\n\n  /** Refreshes the error state of the input. */\n  updateErrorState() {\n    this._errorStateTracker.updateErrorState();\n  }\n\n  writeValue(newValue: any) {\n    this.value = newValue == null ? '' : newValue;\n  }\n\n  registerOnChange(fn: (_: any) => void) {\n    this._onChange = fn;\n  }\n\n  registerOnTouched(fn: () => void): void {\n    this._onTouched = fn;\n  }\n\n  setDisabledState(disabled: boolean) {\n    this.disabled = disabled;\n  }\n\n  /**\n   * Implemented as part of SbbFormFieldControl.\n   * @docs-private\n   */\n  setDescribedByIds(ids: string[]): void {\n    this._ariaDescribedby = ids.join(' ');\n  }\n\n  /** @docs-private */\n  ngOnDestroy() {\n    this.stateChanges.complete();\n    this._destroyed.next();\n    this._destroyed.complete();\n  }\n\n  /** Method that updates the max number of digits available in the textarea content */\n  private _updateDigitsCounter(newValue: string) {\n    if (!!this.maxlength) {\n      this._counter.next(this.maxlength - newValue.length);\n    }\n  }\n}\n","<textarea\n  #textarea\n  [id]=\"inputId\"\n  [disabled]=\"disabled\"\n  [readonly]=\"readonly\"\n  [placeholder]=\"!readonly ? placeholder : '-'\"\n  [attr.maxlength]=\"maxlength !== 0 ? maxlength : null\"\n  [attr.minlength]=\"minlength\"\n  [cdkTextareaAutosize]=\"!autosizeDisabled\"\n  (focus)=\"_onFocus()\"\n  (blur)=\"_onBlur()\"\n  (input)=\"_onInput($event)\"\n></textarea>\n@if (maxlength && !disabled) {\n  <div class=\"sbb-textarea-remaining-chars\">{{ _labelCharactersRemaining }}</div>\n}\n","import { TextFieldModule } from '@angular/cdk/text-field';\nimport { NgModule } from '@angular/core';\nimport { SbbCommonModule } from '@sbb-esta/angular/core';\n\nimport { SbbTextarea } from './textarea/textarea';\n\n@NgModule({\n  imports: [TextFieldModule, SbbCommonModule, SbbTextarea],\n  exports: [SbbTextarea],\n})\nexport class SbbTextareaModule {}\n"],"names":[],"mappings":"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"}