{"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":["nextId","SbbTextarea","ngControl","inject","NgControl","self","optional","_changeDetectorRef","ChangeDetectorRef","_elementRef","ElementRef","_labelCharactersRemaining","$localize","_counter","value","_uniqueId","id","_id","stateChanges","next","inputId","disableAutomaticLabeling","Subject","_destroyed","_errorStateTracker","_textarea","nativeElement","_updateDigitsCounter","markForCheck","disabled","_disabled","readonly","_readonly","errorState","maxlength","_maxlength","minlength","_minlength","required","_required","autosizeDisabled","errorStateMatcher","matcher","focused","_focused","empty","_ariaDescribedby","BehaviorSubject","placeholder","autosize","_onChange","_onTouched","constructor","defaultErrorStateMatcher","SbbErrorStateMatcher","parentForm","NgForm","parentFormGroup","FormGroupDirective","valueAccessor","_ErrorStateTracker","ngDoCheck","updateErrorState","onContainerClick","_event","focus","options","_onFocus","_focusTextarea","target","_onBlur","_onInput","event","writeValue","newValue","registerOnChange","fn","registerOnTouched","setDisabledState","setDescribedByIds","ids","join","ngOnDestroy","complete","length","deps","i0","ɵɵFactoryTarget","Component","ɵcmp","ɵɵngDeclareComponent","minVersion","version","type","isStandalone","selector","inputs","booleanAttribute","numberAttribute","host","attributes","listeners","properties","classAttribute","providers","provide","SbbFormFieldControl","useExisting","viewQueries","propertyName","first","predicate","descendants","static","CdkTextareaAutosize","ngImport","template","exportAs","changeDetection","ChangeDetectionStrategy","OnPush","encapsulation","ViewEncapsulation","None","decorators","args","class","tabindex","imports","styles","Input","transform","ViewChild","HostListener","SbbTextareaModule","NgModule","ɵmod","ɵɵngDeclareNgModule","TextFieldModule","SbbCommonModule","exports"],"mappings":"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"}