{"version":3,"file":"input.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/input/input-errors.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/input/input.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/material/input/input-module.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\n/** @docs-private */\nexport function getMatInputUnsupportedTypeError(type: string): Error {\n  return Error(`Input type \"${type}\" isn't supported by matInput.`);\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {getSupportedInputTypes, Platform} from '@angular/cdk/platform';\nimport {AutofillMonitor} from '@angular/cdk/text-field';\nimport {\n  AfterViewInit,\n  booleanAttribute,\n  Directive,\n  DoCheck,\n  effect,\n  ElementRef,\n  inject,\n  InjectionToken,\n  Input,\n  isSignal,\n  NgZone,\n  OnChanges,\n  OnDestroy,\n  Renderer2,\n  WritableSignal,\n} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {FormGroupDirective, NgControl, NgForm, Validators} from '@angular/forms';\nimport {ErrorStateMatcher, _ErrorStateTracker} from '../core';\nimport {MatFormFieldControl, MatFormField, MAT_FORM_FIELD} from '../form-field';\nimport {Subject} from 'rxjs';\nimport {getMatInputUnsupportedTypeError} from './input-errors';\nimport {MAT_INPUT_VALUE_ACCESSOR} from './input-value-accessor';\n\n// Invalid input type. Using one of these will throw an MatInputUnsupportedTypeError.\nconst MAT_INPUT_INVALID_TYPES = [\n  'button',\n  'checkbox',\n  'file',\n  'hidden',\n  'image',\n  'radio',\n  'range',\n  'reset',\n  'submit',\n];\n\n/** Object that can be used to configure the default options for the input. */\nexport interface MatInputConfig {\n  /** Whether disabled inputs should be interactive. */\n  disabledInteractive?: boolean;\n}\n\n/** Injection token that can be used to provide the default options for the input. */\nexport const MAT_INPUT_CONFIG = new InjectionToken<MatInputConfig>('MAT_INPUT_CONFIG');\n\n@Directive({\n  selector: `input[matInput], textarea[matInput], select[matNativeControl],\n      input[matNativeControl], textarea[matNativeControl]`,\n  exportAs: 'matInput',\n  host: {\n    'class': 'mat-mdc-input-element',\n    // The BaseMatInput parent class adds `mat-input-element`, `mat-form-field-control` and\n    // `mat-form-field-autofill-control` to the CSS class list, but this should not be added for\n    // this MDC equivalent input.\n    '[class.mat-input-server]': '_isServer',\n    '[class.mat-mdc-form-field-textarea-control]': '_isInFormField && _isTextarea',\n    '[class.mat-mdc-form-field-input-control]': '_isInFormField',\n    '[class.mat-mdc-input-disabled-interactive]': 'disabledInteractive',\n    '[class.mdc-text-field__input]': '_isInFormField',\n    '[class.mat-mdc-native-select-inline]': '_isInlineSelect()',\n    // Native input properties that are overwritten by Angular inputs need to be synced with\n    // the native input element. Otherwise property bindings for those don't work.\n    '[id]': 'id',\n    '[disabled]': 'disabled && !disabledInteractive',\n    '[required]': 'required',\n    '[attr.name]': 'name || null',\n    '[attr.readonly]': '_getReadonlyAttribute()',\n    '[attr.aria-disabled]': 'disabled && disabledInteractive ? \"true\" : null',\n    // Only mark the input as invalid for assistive technology if it has a value since the\n    // state usually overlaps with `aria-required` when the input is empty and can be redundant.\n    '[attr.aria-invalid]': '(empty && required) ? null : errorState',\n    '[attr.aria-required]': 'required',\n    // Native input properties that are overwritten by Angular inputs need to be synced with\n    // the native input element. Otherwise property bindings for those don't work.\n    '[attr.id]': 'id',\n    '(focus)': '_focusChanged(true)',\n    '(blur)': '_focusChanged(false)',\n    '(input)': '_onInput()',\n  },\n  providers: [{provide: MatFormFieldControl, useExisting: MatInput}],\n})\nexport class MatInput\n  implements MatFormFieldControl<any>, OnChanges, OnDestroy, AfterViewInit, DoCheck\n{\n  protected _elementRef =\n    inject<ElementRef<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>>(ElementRef);\n  protected _platform = inject(Platform);\n  ngControl = inject(NgControl, {optional: true, self: true})!;\n  private _autofillMonitor = inject(AutofillMonitor);\n  private _ngZone = inject(NgZone);\n  protected _formField? = inject<MatFormField>(MAT_FORM_FIELD, {optional: true});\n  private _renderer = inject(Renderer2);\n\n  protected _uid = inject(_IdGenerator).getId('mat-input-');\n  protected _previousNativeValue: any;\n  private _inputValueAccessor: {value: any};\n  private _signalBasedValueAccessor?: {value: WritableSignal<any>};\n  private _previousPlaceholder: string | null;\n  private _errorStateTracker: _ErrorStateTracker;\n  private _config = inject(MAT_INPUT_CONFIG, {optional: true});\n  private _cleanupIosKeyup: (() => void) | undefined;\n  private _cleanupWebkitWheel: (() => void) | undefined;\n\n  /** Whether the component is being rendered on the server. */\n  readonly _isServer: boolean;\n\n  /** Whether the component is a native html select. */\n  readonly _isNativeSelect: boolean;\n\n  /** Whether the component is a textarea. */\n  readonly _isTextarea: boolean;\n\n  /** Whether the input is inside of a form field. */\n  readonly _isInFormField: boolean;\n\n  /**\n   * Implemented as part of MatFormFieldControl.\n   * @docs-private\n   */\n  focused: boolean = false;\n\n  /**\n   * Implemented as part of MatFormFieldControl.\n   * @docs-private\n   */\n  readonly stateChanges: Subject<void> = new Subject<void>();\n\n  /**\n   * Implemented as part of MatFormFieldControl.\n   * @docs-private\n   */\n  controlType: string = 'mat-input';\n\n  /**\n   * Implemented as part of MatFormFieldControl.\n   * @docs-private\n   */\n  autofilled = false;\n\n  /**\n   * Implemented as part of MatFormFieldControl.\n   * @docs-private\n   */\n  @Input()\n  get disabled(): boolean {\n    return this._disabled;\n  }\n  set disabled(value: BooleanInput) {\n    this._disabled = coerceBooleanProperty(value);\n\n    // Browsers may not fire the blur event if the input is disabled too quickly.\n    // Reset from here to ensure that the element doesn't become stuck.\n    if (this.focused) {\n      this.focused = false;\n      this.stateChanges.next();\n    }\n  }\n  protected _disabled = false;\n\n  /**\n   * Implemented as part of MatFormFieldControl.\n   * @docs-private\n   */\n  @Input()\n  get id(): string {\n    return this._id;\n  }\n  set id(value: string) {\n    this._id = value || this._uid;\n  }\n  protected _id: string;\n\n  /**\n   * Implemented as part of MatFormFieldControl.\n   * @docs-private\n   */\n  @Input() placeholder: string;\n\n  /**\n   * Name of the input.\n   * @docs-private\n   */\n  @Input() name: string;\n\n  /**\n   * Implemented as part of MatFormFieldControl.\n   * @docs-private\n   */\n  @Input()\n  get required(): boolean {\n    return this._required ?? this.ngControl?.control?.hasValidator(Validators.required) ?? false;\n  }\n  set required(value: BooleanInput) {\n    this._required = coerceBooleanProperty(value);\n  }\n  protected _required: boolean | undefined;\n\n  /** Input type of the element. */\n  @Input()\n  get type(): string {\n    return this._type;\n  }\n  set type(value: string) {\n    this._type = value || 'text';\n    this._validateType();\n\n    // When using Angular inputs, developers are no longer able to set the properties on the native\n    // input element. To ensure that bindings for `type` work, we need to sync the setter\n    // with the native property. Textarea elements don't support the type property or attribute.\n    if (!this._isTextarea && getSupportedInputTypes().has(this._type)) {\n      (this._elementRef.nativeElement as HTMLInputElement).type = this._type;\n    }\n  }\n  protected _type = 'text';\n\n  /** An object used to control when error messages are shown. */\n  @Input()\n  get errorStateMatcher() {\n    return this._errorStateTracker.matcher;\n  }\n  set errorStateMatcher(value: ErrorStateMatcher) {\n    this._errorStateTracker.matcher = value;\n  }\n\n  /**\n   * Implemented as part of MatFormFieldControl.\n   * @docs-private\n   */\n  @Input('aria-describedby') userAriaDescribedBy: string;\n\n  /**\n   * Implemented as part of MatFormFieldControl.\n   * @docs-private\n   */\n  @Input()\n  get value(): string {\n    return this._signalBasedValueAccessor\n      ? this._signalBasedValueAccessor.value()\n      : this._inputValueAccessor.value;\n  }\n  set value(value: any) {\n    if (value !== this.value) {\n      if (this._signalBasedValueAccessor) {\n        this._signalBasedValueAccessor.value.set(value);\n      } else {\n        this._inputValueAccessor.value = value;\n      }\n\n      this.stateChanges.next();\n    }\n  }\n\n  /** Whether the element is readonly. */\n  @Input()\n  get readonly(): boolean {\n    return this._readonly;\n  }\n  set readonly(value: BooleanInput) {\n    this._readonly = coerceBooleanProperty(value);\n  }\n  private _readonly = false;\n\n  /** Whether the input should remain interactive when it is disabled. */\n  @Input({transform: booleanAttribute})\n  disabledInteractive: boolean;\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  protected _neverEmptyInputTypes = [\n    'date',\n    'datetime',\n    'datetime-local',\n    'month',\n    'time',\n    'week',\n  ].filter(t => getSupportedInputTypes().has(t));\n\n  constructor(...args: unknown[]);\n\n  constructor() {\n    const parentForm = inject(NgForm, {optional: true});\n    const parentFormGroup = inject(FormGroupDirective, {optional: true});\n    const defaultErrorStateMatcher = inject(ErrorStateMatcher);\n    const accessor = inject(MAT_INPUT_VALUE_ACCESSOR, {optional: true, self: true});\n\n    const element = this._elementRef.nativeElement;\n    const nodeName = element.nodeName.toLowerCase();\n\n    if (accessor) {\n      if (isSignal(accessor.value)) {\n        this._signalBasedValueAccessor = accessor;\n      } else {\n        this._inputValueAccessor = accessor;\n      }\n    } else {\n      // If no input value accessor was explicitly specified, use the element as the input value\n      // accessor.\n      this._inputValueAccessor = element;\n    }\n\n    this._previousNativeValue = this.value;\n\n    // Force setter to be called in case id was not specified.\n    this.id = this.id;\n\n    // On some versions of iOS the caret gets stuck in the wrong place when holding down the delete\n    // key. In order to get around this we need to \"jiggle\" the caret loose. Since this bug only\n    // exists on iOS, we only bother to install the listener on iOS.\n    if (this._platform.IOS) {\n      this._ngZone.runOutsideAngular(() => {\n        this._cleanupIosKeyup = this._renderer.listen(element, 'keyup', this._iOSKeyupListener);\n      });\n    }\n\n    this._errorStateTracker = new _ErrorStateTracker(\n      defaultErrorStateMatcher,\n      this.ngControl,\n      parentFormGroup,\n      parentForm,\n      this.stateChanges,\n    );\n    this._isServer = !this._platform.isBrowser;\n    this._isNativeSelect = nodeName === 'select';\n    this._isTextarea = nodeName === 'textarea';\n    this._isInFormField = !!this._formField;\n    this.disabledInteractive = this._config?.disabledInteractive || false;\n\n    if (this._isNativeSelect) {\n      this.controlType = (element as HTMLSelectElement).multiple\n        ? 'mat-native-select-multiple'\n        : 'mat-native-select';\n    }\n\n    if (this._signalBasedValueAccessor) {\n      effect(() => {\n        // Read the value so the effect can register the dependency.\n        this._signalBasedValueAccessor!.value();\n        this.stateChanges.next();\n      });\n    }\n  }\n\n  ngAfterViewInit() {\n    if (this._platform.isBrowser) {\n      this._autofillMonitor.monitor(this._elementRef.nativeElement).subscribe(event => {\n        this.autofilled = event.isAutofilled;\n        this.stateChanges.next();\n      });\n    }\n  }\n\n  ngOnChanges() {\n    this.stateChanges.next();\n  }\n\n  ngOnDestroy() {\n    this.stateChanges.complete();\n\n    if (this._platform.isBrowser) {\n      this._autofillMonitor.stopMonitoring(this._elementRef.nativeElement);\n    }\n\n    this._cleanupIosKeyup?.();\n    this._cleanupWebkitWheel?.();\n  }\n\n  ngDoCheck() {\n    if (this.ngControl) {\n      // We need to re-evaluate this on every change detection cycle, because there are some\n      // error triggers that we can't subscribe to (e.g. parent form submissions). This means\n      // that whatever logic is in here has to be super lean or we risk destroying the performance.\n      this.updateErrorState();\n\n      // Since the input isn't a `ControlValueAccessor`, we don't have a good way of knowing when\n      // the disabled state has changed. We can't use the `ngControl.statusChanges`, because it\n      // won't fire if the input is disabled with `emitEvents = false`, despite the input becoming\n      // disabled.\n      if (this.ngControl.disabled !== null && this.ngControl.disabled !== this.disabled) {\n        this.disabled = this.ngControl.disabled;\n        this.stateChanges.next();\n      }\n    }\n\n    // We need to dirty-check the native element's value, because there are some cases where\n    // we won't be notified when it changes (e.g. the consumer isn't using forms or they're\n    // updating the value using `emitEvent: false`).\n    this._dirtyCheckNativeValue();\n\n    // We need to dirty-check and set the placeholder attribute ourselves, because whether it's\n    // present or not depends on a query which is prone to \"changed after checked\" errors.\n    this._dirtyCheckPlaceholder();\n  }\n\n  /** Focuses the input. */\n  focus(options?: FocusOptions): void {\n    this._elementRef.nativeElement.focus(options);\n  }\n\n  /** Refreshes the error state of the input. */\n  updateErrorState() {\n    this._errorStateTracker.updateErrorState();\n  }\n\n  /** Callback for the cases where the focused state of the input changes. */\n  _focusChanged(isFocused: boolean) {\n    if (isFocused === this.focused) {\n      return;\n    }\n\n    if (!this._isNativeSelect && isFocused && this.disabled && this.disabledInteractive) {\n      const element = this._elementRef.nativeElement as HTMLInputElement;\n\n      // Focusing an input that has text will cause all the text to be selected. Clear it since\n      // the user won't be able to change it. This is based on the internal implementation.\n      if (element.type === 'number') {\n        // setSelectionRange doesn't work on number inputs so it needs to be set briefly to text.\n        element.type = 'text';\n        element.setSelectionRange(0, 0);\n        element.type = 'number';\n      } else {\n        element.setSelectionRange(0, 0);\n      }\n    }\n\n    this.focused = isFocused;\n    this.stateChanges.next();\n  }\n\n  _onInput() {\n    // This is a noop function and is used to let Angular know whenever the value changes.\n    // Angular will run a new change detection each time the `input` event has been dispatched.\n    // It's necessary that Angular recognizes the value change, because when floatingLabel\n    // is set to false and Angular forms aren't used, the placeholder won't recognize the\n    // value changes and will not disappear.\n    // Listening to the input event wouldn't be necessary when the input is using the\n    // FormsModule or ReactiveFormsModule, because Angular forms also listens to input events.\n  }\n\n  /** Does some manual dirty checking on the native input `value` property. */\n  protected _dirtyCheckNativeValue() {\n    const newValue = this._elementRef.nativeElement.value;\n\n    if (this._previousNativeValue !== newValue) {\n      this._previousNativeValue = newValue;\n      this.stateChanges.next();\n    }\n  }\n\n  /** Does some manual dirty checking on the native input `placeholder` attribute. */\n  private _dirtyCheckPlaceholder() {\n    const placeholder = this._getPlaceholder();\n    if (placeholder !== this._previousPlaceholder) {\n      const element = this._elementRef.nativeElement;\n      this._previousPlaceholder = placeholder;\n      placeholder\n        ? element.setAttribute('placeholder', placeholder)\n        : element.removeAttribute('placeholder');\n    }\n  }\n\n  /** Gets the current placeholder of the form field. */\n  protected _getPlaceholder(): string | null {\n    return this.placeholder || null;\n  }\n\n  /** Make sure the input is a supported type. */\n  protected _validateType() {\n    if (\n      MAT_INPUT_INVALID_TYPES.indexOf(this._type) > -1 &&\n      (typeof ngDevMode === 'undefined' || ngDevMode)\n    ) {\n      throw getMatInputUnsupportedTypeError(this._type);\n    }\n  }\n\n  /** Checks whether the input type is one of the types that are never empty. */\n  protected _isNeverEmpty() {\n    return this._neverEmptyInputTypes.indexOf(this._type) > -1;\n  }\n\n  /** Checks whether the input is invalid based on the native validation. */\n  protected _isBadInput() {\n    // The `validity` property won't be present on platform-server.\n    let validity = (this._elementRef.nativeElement as HTMLInputElement).validity;\n    return validity && validity.badInput;\n  }\n\n  /**\n   * Implemented as part of MatFormFieldControl.\n   * @docs-private\n   */\n  get empty(): boolean {\n    return (\n      !this._isNeverEmpty() &&\n      !this._elementRef.nativeElement.value &&\n      !this._isBadInput() &&\n      !this.autofilled\n    );\n  }\n\n  /**\n   * Implemented as part of MatFormFieldControl.\n   * @docs-private\n   */\n  get shouldLabelFloat(): boolean {\n    if (this._isNativeSelect) {\n      // For a single-selection `<select>`, the label should float when the selected option has\n      // a non-empty display value. For a `<select multiple>`, the label *always* floats to avoid\n      // overlapping the label with the options.\n      const selectElement = this._elementRef.nativeElement as HTMLSelectElement;\n      const firstOption: HTMLOptionElement | undefined = selectElement.options[0];\n\n      // On most browsers the `selectedIndex` will always be 0, however on IE and Edge it'll be\n      // -1 if the `value` is set to something, that isn't in the list of options, at a later point.\n      return (\n        this.focused ||\n        selectElement.multiple ||\n        !this.empty ||\n        !!(selectElement.selectedIndex > -1 && firstOption && firstOption.label)\n      );\n    } else {\n      return (this.focused && !this.disabled) || !this.empty;\n    }\n  }\n\n  /**\n   * Implemented as part of MatFormFieldControl.\n   * @docs-private\n   */\n  get describedByIds(): string[] {\n    const element = this._elementRef.nativeElement;\n    const existingDescribedBy = element.getAttribute('aria-describedby');\n\n    return existingDescribedBy?.split(' ') || [];\n  }\n\n  /**\n   * Implemented as part of MatFormFieldControl.\n   * @docs-private\n   */\n  setDescribedByIds(ids: string[]) {\n    const element = this._elementRef.nativeElement;\n\n    if (ids.length) {\n      element.setAttribute('aria-describedby', ids.join(' '));\n    } else {\n      element.removeAttribute('aria-describedby');\n    }\n  }\n\n  /**\n   * Implemented as part of MatFormFieldControl.\n   * @docs-private\n   */\n  onContainerClick() {\n    // Do not re-focus the input element if the element is already focused. Otherwise it can happen\n    // that someone clicks on a time input and the cursor resets to the \"hours\" field while the\n    // \"minutes\" field was actually clicked. See: https://github.com/angular/components/issues/12849\n    if (!this.focused) {\n      this.focus();\n    }\n  }\n\n  /** Whether the form control is a native select that is displayed inline. */\n  _isInlineSelect(): boolean {\n    const element = this._elementRef.nativeElement as HTMLSelectElement;\n    return this._isNativeSelect && (element.multiple || element.size > 1);\n  }\n\n  private _iOSKeyupListener = (event: Event): void => {\n    const el = event.target as HTMLInputElement;\n\n    // Note: We specifically check for 0, rather than `!el.selectionStart`, because the two\n    // indicate different things. If the value is 0, it means that the caret is at the start\n    // of the input, whereas a value of `null` means that the input doesn't support\n    // manipulating the selection range. Inputs that don't support setting the selection range\n    // will throw an error so we want to avoid calling `setSelectionRange` on them. See:\n    // https://html.spec.whatwg.org/multipage/input.html#do-not-apply\n    if (!el.value && el.selectionStart === 0 && el.selectionEnd === 0) {\n      // Note: Just setting `0, 0` doesn't fix the issue. Setting\n      // `1, 1` fixes it for the first time that you type text and\n      // then hold delete. Toggling to `1, 1` and then back to\n      // `0, 0` seems to completely fix it.\n      el.setSelectionRange(1, 1);\n      el.setSelectionRange(0, 0);\n    }\n  };\n\n  /** Gets the value to set on the `readonly` attribute. */\n  protected _getReadonlyAttribute(): string | null {\n    if (this._isNativeSelect) {\n      return null;\n    }\n\n    if (this.readonly || (this.disabled && this.disabledInteractive)) {\n      return 'true';\n    }\n\n    return null;\n  }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {BidiModule} from '@angular/cdk/bidi';\nimport {TextFieldModule} from '@angular/cdk/text-field';\nimport {NgModule} from '@angular/core';\nimport {MatFormFieldModule} from '../form-field';\nimport {MatInput} from './input';\n\n@NgModule({\n  imports: [MatFormFieldModule, MatInput],\n  exports: [MatInput, MatFormFieldModule, TextFieldModule, BidiModule],\n})\nexport class MatInputModule {}\n"],"names":["getMatInputUnsupportedTypeError","type","Error","MAT_INPUT_INVALID_TYPES","MAT_INPUT_CONFIG","InjectionToken","MatInput","_elementRef","inject","ElementRef","_platform","Platform","ngControl","NgControl","optional","self","_autofillMonitor","AutofillMonitor","_ngZone","NgZone","_formField","MAT_FORM_FIELD","_renderer","Renderer2","_uid","_IdGenerator","getId","_previousNativeValue","_inputValueAccessor","_signalBasedValueAccessor","_previousPlaceholder","_errorStateTracker","_config","_cleanupIosKeyup","_cleanupWebkitWheel","_isServer","_isNativeSelect","_isTextarea","_isInFormField","focused","stateChanges","Subject","controlType","autofilled","disabled","_disabled","value","coerceBooleanProperty","next","id","_id","placeholder","name","required","_required","control","hasValidator","Validators","_type","_validateType","getSupportedInputTypes","has","nativeElement","errorStateMatcher","matcher","userAriaDescribedBy","set","readonly","_readonly","disabledInteractive","errorState","_neverEmptyInputTypes","filter","t","constructor","parentForm","NgForm","parentFormGroup","FormGroupDirective","defaultErrorStateMatcher","ErrorStateMatcher","accessor","MAT_INPUT_VALUE_ACCESSOR","element","nodeName","toLowerCase","isSignal","IOS","runOutsideAngular","listen","_iOSKeyupListener","_ErrorStateTracker","isBrowser","multiple","effect","ngAfterViewInit","monitor","subscribe","event","isAutofilled","ngOnChanges","ngOnDestroy","complete","stopMonitoring","ngDoCheck","updateErrorState","_dirtyCheckNativeValue","_dirtyCheckPlaceholder","focus","options","_focusChanged","isFocused","setSelectionRange","_onInput","newValue","_getPlaceholder","setAttribute","removeAttribute","indexOf","ngDevMode","_isNeverEmpty","_isBadInput","validity","badInput","empty","shouldLabelFloat","selectElement","firstOption","selectedIndex","label","describedByIds","existingDescribedBy","getAttribute","split","setDescribedByIds","ids","length","join","onContainerClick","_isInlineSelect","size","el","target","selectionStart","selectionEnd","_getReadonlyAttribute","deps","i0","ɵɵFactoryTarget","Directive","ɵdir","ɵɵngDeclareDirective","minVersion","version","isStandalone","selector","inputs","booleanAttribute","host","listeners","properties","classAttribute","providers","provide","MatFormFieldControl","useExisting","exportAs","usesOnChanges","ngImport","decorators","args","Input","transform","MatInputModule","NgModule","imports","MatFormFieldModule","exports","TextFieldModule","BidiModule","ɵinj","ɵɵngDeclareInjector"],"mappings":"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"}