{"version":3,"file":"chunk-gfc0mnxq.js","sources":["node_modules/@angular/material/fesm2022/form-field.mjs","node_modules/@angular/cdk/fesm2022/text-field.mjs","node_modules/@angular/material/fesm2022/input.mjs"],"sourcesContent":["import * as i0 from '@angular/core';\nimport { Directive, InjectionToken, Attribute, Input, inject, NgZone, Component, ChangeDetectionStrategy, ViewEncapsulation, ViewChild, contentChild, Injector, computed, afterRender, ANIMATION_MODULE_TYPE, Optional, Inject, ContentChild, ContentChildren, NgModule } from '@angular/core';\nimport * as i1 from '@angular/cdk/bidi';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport * as i2 from '@angular/cdk/platform';\nimport { DOCUMENT, NgTemplateOutlet, CommonModule } from '@angular/common';\nimport { Subscription, Subject, merge } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { SharedResizeObserver } from '@angular/cdk/observers/private';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\nimport { ObserversModule } from '@angular/cdk/observers';\nimport { MatCommonModule } from '@angular/material/core';\n\n/** The floating label for a `mat-form-field`. */\nconst _c0 = [\"notch\"];\nconst _c1 = [\"matFormFieldNotchedOutline\", \"\"];\nconst _c2 = [\"*\"];\nconst _c3 = [\"textField\"];\nconst _c4 = [\"iconPrefixContainer\"];\nconst _c5 = [\"textPrefixContainer\"];\nconst _c6 = [\"iconSuffixContainer\"];\nconst _c7 = [\"textSuffixContainer\"];\nconst _c8 = [\"*\", [[\"mat-label\"]], [[\"\", \"matPrefix\", \"\"], [\"\", \"matIconPrefix\", \"\"]], [[\"\", \"matTextPrefix\", \"\"]], [[\"\", \"matTextSuffix\", \"\"]], [[\"\", \"matSuffix\", \"\"], [\"\", \"matIconSuffix\", \"\"]], [[\"mat-error\"], [\"\", \"matError\", \"\"]], [[\"mat-hint\", 3, \"align\", \"end\"]], [[\"mat-hint\", \"align\", \"end\"]]];\nconst _c9 = [\"*\", \"mat-label\", \"[matPrefix], [matIconPrefix]\", \"[matTextPrefix]\", \"[matTextSuffix]\", \"[matSuffix], [matIconSuffix]\", \"mat-error, [matError]\", \"mat-hint:not([align='end'])\", \"mat-hint[align='end']\"];\nfunction MatFormField_ng_template_0_Conditional_0_Conditional_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 21);\n }\n}\nfunction MatFormField_ng_template_0_Conditional_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"label\", 20);\n i0.ɵɵprojection(1, 1);\n i0.ɵɵtemplate(2, MatFormField_ng_template_0_Conditional_0_Conditional_2_Template, 1, 0, \"span\", 21);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"floating\", ctx_r1._shouldLabelFloat())(\"monitorResize\", ctx_r1._hasOutline())(\"id\", ctx_r1._labelId);\n i0.ɵɵattribute(\"for\", ctx_r1._control.disableAutomaticLabeling ? null : ctx_r1._control.id);\n i0.ɵɵadvance(2);\n i0.ɵɵconditional(!ctx_r1.hideRequiredMarker && ctx_r1._control.required ? 2 : -1);\n }\n}\nfunction MatFormField_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, MatFormField_ng_template_0_Conditional_0_Template, 3, 5, \"label\", 20);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵconditional(ctx_r1._hasFloatingLabel() ? 0 : -1);\n }\n}\nfunction MatFormField_Conditional_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 7);\n }\n}\nfunction MatFormField_Conditional_6_Conditional_1_ng_template_0_Template(rf, ctx) {}\nfunction MatFormField_Conditional_6_Conditional_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, MatFormField_Conditional_6_Conditional_1_ng_template_0_Template, 0, 0, \"ng-template\", 13);\n }\n if (rf & 2) {\n i0.ɵɵnextContext(2);\n const labelTemplate_r3 = i0.ɵɵreference(1);\n i0.ɵɵproperty(\"ngTemplateOutlet\", labelTemplate_r3);\n }\n}\nfunction MatFormField_Conditional_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 9);\n i0.ɵɵtemplate(1, MatFormField_Conditional_6_Conditional_1_Template, 1, 1, null, 13);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"matFormFieldNotchedOutlineOpen\", ctx_r1._shouldLabelFloat());\n i0.ɵɵadvance();\n i0.ɵɵconditional(!ctx_r1._forceDisplayInfixLabel() ? 1 : -1);\n }\n}\nfunction MatFormField_Conditional_7_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 10, 2);\n i0.ɵɵprojection(2, 2);\n i0.ɵɵelementEnd();\n }\n}\nfunction MatFormField_Conditional_8_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 11, 3);\n i0.ɵɵprojection(2, 3);\n i0.ɵɵelementEnd();\n }\n}\nfunction MatFormField_Conditional_10_ng_template_0_Template(rf, ctx) {}\nfunction MatFormField_Conditional_10_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, MatFormField_Conditional_10_ng_template_0_Template, 0, 0, \"ng-template\", 13);\n }\n if (rf & 2) {\n i0.ɵɵnextContext();\n const labelTemplate_r3 = i0.ɵɵreference(1);\n i0.ɵɵproperty(\"ngTemplateOutlet\", labelTemplate_r3);\n }\n}\nfunction MatFormField_Conditional_12_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 14, 4);\n i0.ɵɵprojection(2, 4);\n i0.ɵɵelementEnd();\n }\n}\nfunction MatFormField_Conditional_13_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 15, 5);\n i0.ɵɵprojection(2, 5);\n i0.ɵɵelementEnd();\n }\n}\nfunction MatFormField_Conditional_14_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 16);\n }\n}\nfunction MatFormField_Case_16_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 18);\n i0.ɵɵprojection(1, 6);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"@transitionMessages\", ctx_r1._subscriptAnimationState);\n }\n}\nfunction MatFormField_Case_17_Conditional_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"mat-hint\", 22);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"id\", ctx_r1._hintLabelId);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r1.hintLabel);\n }\n}\nfunction MatFormField_Case_17_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 19);\n i0.ɵɵtemplate(1, MatFormField_Case_17_Conditional_1_Template, 2, 2, \"mat-hint\", 22);\n i0.ɵɵprojection(2, 7);\n i0.ɵɵelement(3, \"div\", 23);\n i0.ɵɵprojection(4, 8);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"@transitionMessages\", ctx_r1._subscriptAnimationState);\n i0.ɵɵadvance();\n i0.ɵɵconditional(ctx_r1.hintLabel ? 1 : -1);\n }\n}\nlet MatLabel = /*#__PURE__*/(() => {\n class MatLabel {\n static {\n this.ɵfac = function MatLabel_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatLabel)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLabel,\n selectors: [[\"mat-label\"]],\n standalone: true\n });\n }\n }\n return MatLabel;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet nextUniqueId$2 = 0;\n/**\n * Injection token that can be used to reference instances of `MatError`. It serves as\n * alternative token to the actual `MatError` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nconst MAT_ERROR = /*#__PURE__*/new InjectionToken('MatError');\n/** Single error message to be shown underneath the form-field. */\nlet MatError = /*#__PURE__*/(() => {\n class MatError {\n constructor(ariaLive, elementRef) {\n this.id = `mat-mdc-error-${nextUniqueId$2++}`;\n // If no aria-live value is set add 'polite' as a default. This is preferred over setting\n // role='alert' so that screen readers do not interrupt the current task to read this aloud.\n if (!ariaLive) {\n elementRef.nativeElement.setAttribute('aria-live', 'polite');\n }\n }\n static {\n this.ɵfac = function MatError_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatError)(i0.ɵɵinjectAttribute('aria-live'), i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatError,\n selectors: [[\"mat-error\"], [\"\", \"matError\", \"\"]],\n hostAttrs: [\"aria-atomic\", \"true\", 1, \"mat-mdc-form-field-error\", \"mat-mdc-form-field-bottom-align\"],\n hostVars: 1,\n hostBindings: function MatError_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵhostProperty(\"id\", ctx.id);\n }\n },\n inputs: {\n id: \"id\"\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_ERROR,\n useExisting: MatError\n }])]\n });\n }\n }\n return MatError;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet nextUniqueId$1 = 0;\n/** Hint text to be shown underneath the form field control. */\nlet MatHint = /*#__PURE__*/(() => {\n class MatHint {\n constructor() {\n /** Whether to align the hint label at the start or end of the line. */\n this.align = 'start';\n /** Unique ID for the hint. Used for the aria-describedby on the form field control. */\n this.id = `mat-mdc-hint-${nextUniqueId$1++}`;\n }\n static {\n this.ɵfac = function MatHint_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatHint)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatHint,\n selectors: [[\"mat-hint\"]],\n hostAttrs: [1, \"mat-mdc-form-field-hint\", \"mat-mdc-form-field-bottom-align\"],\n hostVars: 4,\n hostBindings: function MatHint_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵhostProperty(\"id\", ctx.id);\n i0.ɵɵattribute(\"align\", null);\n i0.ɵɵclassProp(\"mat-mdc-form-field-hint-end\", ctx.align === \"end\");\n }\n },\n inputs: {\n align: \"align\",\n id: \"id\"\n },\n standalone: true\n });\n }\n }\n return MatHint;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Injection token that can be used to reference instances of `MatPrefix`. It serves as\n * alternative token to the actual `MatPrefix` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nconst MAT_PREFIX = /*#__PURE__*/new InjectionToken('MatPrefix');\n/** Prefix to be placed in front of the form field. */\nlet MatPrefix = /*#__PURE__*/(() => {\n class MatPrefix {\n constructor() {\n this._isText = false;\n }\n set _isTextSelector(value) {\n this._isText = true;\n }\n static {\n this.ɵfac = function MatPrefix_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatPrefix)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatPrefix,\n selectors: [[\"\", \"matPrefix\", \"\"], [\"\", \"matIconPrefix\", \"\"], [\"\", \"matTextPrefix\", \"\"]],\n inputs: {\n _isTextSelector: [0, \"matTextPrefix\", \"_isTextSelector\"]\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_PREFIX,\n useExisting: MatPrefix\n }])]\n });\n }\n }\n return MatPrefix;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Injection token that can be used to reference instances of `MatSuffix`. It serves as\n * alternative token to the actual `MatSuffix` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nconst MAT_SUFFIX = /*#__PURE__*/new InjectionToken('MatSuffix');\n/** Suffix to be placed at the end of the form field. */\nlet MatSuffix = /*#__PURE__*/(() => {\n class MatSuffix {\n constructor() {\n this._isText = false;\n }\n set _isTextSelector(value) {\n this._isText = true;\n }\n static {\n this.ɵfac = function MatSuffix_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatSuffix)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatSuffix,\n selectors: [[\"\", \"matSuffix\", \"\"], [\"\", \"matIconSuffix\", \"\"], [\"\", \"matTextSuffix\", \"\"]],\n inputs: {\n _isTextSelector: [0, \"matTextSuffix\", \"_isTextSelector\"]\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_SUFFIX,\n useExisting: MatSuffix\n }])]\n });\n }\n }\n return MatSuffix;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/** An injion token for the parent form-field. */\nconst FLOATING_LABEL_PARENT = /*#__PURE__*/new InjectionToken('FloatingLabelParent');\n/**\n * Internal directive that maintains a MDC floating label. This directive does not\n * use the `MDCFloatingLabelFoundation` class, as it is not worth the size cost of\n * including it just to measure the label width and toggle some classes.\n *\n * The use of a directive allows us to conditionally render a floating label in the\n * template without having to manually manage instantiation and destruction of the\n * floating label component based on.\n *\n * The component is responsible for setting up the floating label styles, measuring label\n * width for the outline notch, and providing inputs that can be used to toggle the\n * label's floating or required state.\n */\nlet MatFormFieldFloatingLabel = /*#__PURE__*/(() => {\n class MatFormFieldFloatingLabel {\n /** Whether the label is floating. */\n get floating() {\n return this._floating;\n }\n set floating(value) {\n this._floating = value;\n if (this.monitorResize) {\n this._handleResize();\n }\n }\n /** Whether to monitor for resize events on the floating label. */\n get monitorResize() {\n return this._monitorResize;\n }\n set monitorResize(value) {\n this._monitorResize = value;\n if (this._monitorResize) {\n this._subscribeToResize();\n } else {\n this._resizeSubscription.unsubscribe();\n }\n }\n constructor(_elementRef) {\n this._elementRef = _elementRef;\n this._floating = false;\n this._monitorResize = false;\n /** The shared ResizeObserver. */\n this._resizeObserver = inject(SharedResizeObserver);\n /** The Angular zone. */\n this._ngZone = inject(NgZone);\n /** The parent form-field. */\n this._parent = inject(FLOATING_LABEL_PARENT);\n /** The current resize event subscription. */\n this._resizeSubscription = new Subscription();\n }\n ngOnDestroy() {\n this._resizeSubscription.unsubscribe();\n }\n /** Gets the width of the label. Used for the outline notch. */\n getWidth() {\n return estimateScrollWidth(this._elementRef.nativeElement);\n }\n /** Gets the HTML element for the floating label. */\n get element() {\n return this._elementRef.nativeElement;\n }\n /** Handles resize events from the ResizeObserver. */\n _handleResize() {\n // In the case where the label grows in size, the following sequence of events occurs:\n // 1. The label grows by 1px triggering the ResizeObserver\n // 2. The notch is expanded to accommodate the entire label\n // 3. The label expands to its full width, triggering the ResizeObserver again\n //\n // This is expected, but If we allow this to all happen within the same macro task it causes an\n // error: `ResizeObserver loop limit exceeded`. Therefore we push the notch resize out until\n // the next macro task.\n setTimeout(() => this._parent._handleLabelResized());\n }\n /** Subscribes to resize events. */\n _subscribeToResize() {\n this._resizeSubscription.unsubscribe();\n this._ngZone.runOutsideAngular(() => {\n this._resizeSubscription = this._resizeObserver.observe(this._elementRef.nativeElement, {\n box: 'border-box'\n }).subscribe(() => this._handleResize());\n });\n }\n static {\n this.ɵfac = function MatFormFieldFloatingLabel_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatFormFieldFloatingLabel)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatFormFieldFloatingLabel,\n selectors: [[\"label\", \"matFormFieldFloatingLabel\", \"\"]],\n hostAttrs: [1, \"mdc-floating-label\", \"mat-mdc-floating-label\"],\n hostVars: 2,\n hostBindings: function MatFormFieldFloatingLabel_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"mdc-floating-label--float-above\", ctx.floating);\n }\n },\n inputs: {\n floating: \"floating\",\n monitorResize: \"monitorResize\"\n },\n standalone: true\n });\n }\n }\n return MatFormFieldFloatingLabel;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Estimates the scroll width of an element.\n * via https://github.com/material-components/material-components-web/blob/c0a11ef0d000a098fd0c372be8f12d6a99302855/packages/mdc-dom/ponyfill.ts\n */\nfunction estimateScrollWidth(element) {\n // Check the offsetParent. If the element inherits display: none from any\n // parent, the offsetParent property will be null (see\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetParent).\n // This check ensures we only clone the node when necessary.\n const htmlEl = element;\n if (htmlEl.offsetParent !== null) {\n return htmlEl.scrollWidth;\n }\n const clone = htmlEl.cloneNode(true);\n clone.style.setProperty('position', 'absolute');\n clone.style.setProperty('transform', 'translate(-9999px, -9999px)');\n document.documentElement.appendChild(clone);\n const scrollWidth = clone.scrollWidth;\n clone.remove();\n return scrollWidth;\n}\n\n/** Class added when the line ripple is active. */\nconst ACTIVATE_CLASS = 'mdc-line-ripple--active';\n/** Class added when the line ripple is being deactivated. */\nconst DEACTIVATING_CLASS = 'mdc-line-ripple--deactivating';\n/**\n * Internal directive that creates an instance of the MDC line-ripple component. Using a\n * directive allows us to conditionally render a line-ripple in the template without having\n * to manually create and destroy the `MDCLineRipple` component whenever the condition changes.\n *\n * The directive sets up the styles for the line-ripple and provides an API for activating\n * and deactivating the line-ripple.\n */\nlet MatFormFieldLineRipple = /*#__PURE__*/(() => {\n class MatFormFieldLineRipple {\n constructor(_elementRef, ngZone) {\n this._elementRef = _elementRef;\n this._handleTransitionEnd = event => {\n const classList = this._elementRef.nativeElement.classList;\n const isDeactivating = classList.contains(DEACTIVATING_CLASS);\n if (event.propertyName === 'opacity' && isDeactivating) {\n classList.remove(ACTIVATE_CLASS, DEACTIVATING_CLASS);\n }\n };\n ngZone.runOutsideAngular(() => {\n _elementRef.nativeElement.addEventListener('transitionend', this._handleTransitionEnd);\n });\n }\n activate() {\n const classList = this._elementRef.nativeElement.classList;\n classList.remove(DEACTIVATING_CLASS);\n classList.add(ACTIVATE_CLASS);\n }\n deactivate() {\n this._elementRef.nativeElement.classList.add(DEACTIVATING_CLASS);\n }\n ngOnDestroy() {\n this._elementRef.nativeElement.removeEventListener('transitionend', this._handleTransitionEnd);\n }\n static {\n this.ɵfac = function MatFormFieldLineRipple_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatFormFieldLineRipple)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatFormFieldLineRipple,\n selectors: [[\"div\", \"matFormFieldLineRipple\", \"\"]],\n hostAttrs: [1, \"mdc-line-ripple\"],\n standalone: true\n });\n }\n }\n return MatFormFieldLineRipple;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Internal component that creates an instance of the MDC notched-outline component.\n *\n * The component sets up the HTML structure and styles for the notched-outline. It provides\n * inputs to toggle the notch state and width.\n */\nlet MatFormFieldNotchedOutline = /*#__PURE__*/(() => {\n class MatFormFieldNotchedOutline {\n constructor(_elementRef, _ngZone) {\n this._elementRef = _elementRef;\n this._ngZone = _ngZone;\n /** Whether the notch should be opened. */\n this.open = false;\n }\n ngAfterViewInit() {\n const label = this._elementRef.nativeElement.querySelector('.mdc-floating-label');\n if (label) {\n this._elementRef.nativeElement.classList.add('mdc-notched-outline--upgraded');\n if (typeof requestAnimationFrame === 'function') {\n label.style.transitionDuration = '0s';\n this._ngZone.runOutsideAngular(() => {\n requestAnimationFrame(() => label.style.transitionDuration = '');\n });\n }\n } else {\n this._elementRef.nativeElement.classList.add('mdc-notched-outline--no-label');\n }\n }\n _setNotchWidth(labelWidth) {\n if (!this.open || !labelWidth) {\n this._notch.nativeElement.style.width = '';\n } else {\n const NOTCH_ELEMENT_PADDING = 8;\n const NOTCH_ELEMENT_BORDER = 1;\n this._notch.nativeElement.style.width = `calc(${labelWidth}px * var(--mat-mdc-form-field-floating-label-scale, 0.75) + ${NOTCH_ELEMENT_PADDING + NOTCH_ELEMENT_BORDER}px)`;\n }\n }\n static {\n this.ɵfac = function MatFormFieldNotchedOutline_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatFormFieldNotchedOutline)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatFormFieldNotchedOutline,\n selectors: [[\"div\", \"matFormFieldNotchedOutline\", \"\"]],\n viewQuery: function MatFormFieldNotchedOutline_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._notch = _t.first);\n }\n },\n hostAttrs: [1, \"mdc-notched-outline\"],\n hostVars: 2,\n hostBindings: function MatFormFieldNotchedOutline_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"mdc-notched-outline--notched\", ctx.open);\n }\n },\n inputs: {\n open: [0, \"matFormFieldNotchedOutlineOpen\", \"open\"]\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n attrs: _c1,\n ngContentSelectors: _c2,\n decls: 5,\n vars: 0,\n consts: [[\"notch\", \"\"], [1, \"mat-mdc-notch-piece\", \"mdc-notched-outline__leading\"], [1, \"mat-mdc-notch-piece\", \"mdc-notched-outline__notch\"], [1, \"mat-mdc-notch-piece\", \"mdc-notched-outline__trailing\"]],\n template: function MatFormFieldNotchedOutline_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelement(0, \"div\", 1);\n i0.ɵɵelementStart(1, \"div\", 2, 0);\n i0.ɵɵprojection(3);\n i0.ɵɵelementEnd();\n i0.ɵɵelement(4, \"div\", 3);\n }\n },\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return MatFormFieldNotchedOutline;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Animations used by the MatFormField.\n * @docs-private\n */\nconst matFormFieldAnimations = {\n /** Animation that transitions the form field's error and hint messages. */\n transitionMessages: /*#__PURE__*/trigger('transitionMessages', [\n /*#__PURE__*/\n // TODO(mmalerba): Use angular animations for label animation as well.\n state('enter', /*#__PURE__*/style({\n opacity: 1,\n transform: 'translateY(0%)'\n })), /*#__PURE__*/transition('void => enter', [/*#__PURE__*/style({\n opacity: 0,\n transform: 'translateY(-5px)'\n }), /*#__PURE__*/animate('300ms cubic-bezier(0.55, 0, 0.55, 0.2)')])])\n};\n\n/** An interface which allows a control to work inside of a `MatFormField`. */\nlet MatFormFieldControl = /*#__PURE__*/(() => {\n class MatFormFieldControl {\n static {\n this.ɵfac = function MatFormFieldControl_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatFormFieldControl)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatFormFieldControl\n });\n }\n }\n return MatFormFieldControl;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/** @docs-private */\nfunction getMatFormFieldPlaceholderConflictError() {\n return Error('Placeholder attribute and child element were both specified.');\n}\n/** @docs-private */\nfunction getMatFormFieldDuplicatedHintError(align) {\n return Error(`A hint was already declared for 'align=\"${align}\"'.`);\n}\n/** @docs-private */\nfunction getMatFormFieldMissingControlError() {\n return Error('mat-form-field must contain a MatFormFieldControl.');\n}\n\n/**\n * Injection token that can be used to inject an instances of `MatFormField`. It serves\n * as alternative token to the actual `MatFormField` class which would cause unnecessary\n * retention of the `MatFormField` class and its component metadata.\n */\nconst MAT_FORM_FIELD = /*#__PURE__*/new InjectionToken('MatFormField');\n/**\n * Injection token that can be used to configure the\n * default options for all form field within an app.\n */\nconst MAT_FORM_FIELD_DEFAULT_OPTIONS = /*#__PURE__*/new InjectionToken('MAT_FORM_FIELD_DEFAULT_OPTIONS');\nlet nextUniqueId = 0;\n/** Default appearance used by the form field. */\nconst DEFAULT_APPEARANCE = 'fill';\n/**\n * Whether the label for form fields should by default float `always`,\n * `never`, or `auto`.\n */\nconst DEFAULT_FLOAT_LABEL = 'auto';\n/** Default way that the subscript element height is set. */\nconst DEFAULT_SUBSCRIPT_SIZING = 'fixed';\n/**\n * Default transform for docked floating labels in a MDC text-field. This value has been\n * extracted from the MDC text-field styles because we programmatically modify the docked\n * label transform, but do not want to accidentally discard the default label transform.\n */\nconst FLOATING_LABEL_DEFAULT_DOCKED_TRANSFORM = `translateY(-50%)`;\n/** Container for form controls that applies Material Design styling and behavior. */\nlet MatFormField = /*#__PURE__*/(() => {\n class MatFormField {\n /** Whether the required marker should be hidden. */\n get hideRequiredMarker() {\n return this._hideRequiredMarker;\n }\n set hideRequiredMarker(value) {\n this._hideRequiredMarker = coerceBooleanProperty(value);\n }\n /** Whether the label should always float or float as the user types. */\n get floatLabel() {\n return this._floatLabel || this._defaults?.floatLabel || DEFAULT_FLOAT_LABEL;\n }\n set floatLabel(value) {\n if (value !== this._floatLabel) {\n this._floatLabel = value;\n // For backwards compatibility. Custom form field controls or directives might set\n // the \"floatLabel\" input and expect the form field view to be updated automatically.\n // e.g. autocomplete trigger. Ideally we'd get rid of this and the consumers would just\n // emit the \"stateChanges\" observable. TODO(devversion): consider removing.\n this._changeDetectorRef.markForCheck();\n }\n }\n /** The form field appearance style. */\n get appearance() {\n return this._appearance;\n }\n set appearance(value) {\n const oldValue = this._appearance;\n const newAppearance = value || this._defaults?.appearance || DEFAULT_APPEARANCE;\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (newAppearance !== 'fill' && newAppearance !== 'outline') {\n throw new Error(`MatFormField: Invalid appearance \"${newAppearance}\", valid values are \"fill\" or \"outline\".`);\n }\n }\n this._appearance = newAppearance;\n if (this._appearance === 'outline' && this._appearance !== oldValue) {\n // If the appearance has been switched to `outline`, the label offset needs to be updated.\n // The update can happen once the view has been re-checked, but not immediately because\n // the view has not been updated and the notched-outline floating label is not present.\n this._needsOutlineLabelOffsetUpdate = true;\n }\n }\n /**\n * Whether the form field should reserve space for one line of hint/error text (default)\n * or to have the spacing grow from 0px as needed based on the size of the hint/error content.\n * Note that when using dynamic sizing, layout shifts will occur when hint/error text changes.\n */\n get subscriptSizing() {\n return this._subscriptSizing || this._defaults?.subscriptSizing || DEFAULT_SUBSCRIPT_SIZING;\n }\n set subscriptSizing(value) {\n this._subscriptSizing = value || this._defaults?.subscriptSizing || DEFAULT_SUBSCRIPT_SIZING;\n }\n /** Text for the form field hint. */\n get hintLabel() {\n return this._hintLabel;\n }\n set hintLabel(value) {\n this._hintLabel = value;\n this._processHints();\n }\n /** Gets the current form field control */\n get _control() {\n return this._explicitFormFieldControl || this._formFieldControl;\n }\n set _control(value) {\n this._explicitFormFieldControl = value;\n }\n constructor(_elementRef, _changeDetectorRef,\n /**\n * @deprecated not needed, to be removed.\n * @breaking-change 19.0.0 remove this param\n */\n _unusedNgZone, _dir, _platform, _defaults, _animationMode,\n /**\n * @deprecated not needed, to be removed.\n * @breaking-change 17.0.0 remove this param\n */\n _unusedDocument) {\n this._elementRef = _elementRef;\n this._changeDetectorRef = _changeDetectorRef;\n this._dir = _dir;\n this._platform = _platform;\n this._defaults = _defaults;\n this._animationMode = _animationMode;\n this._labelChild = contentChild(MatLabel);\n this._hideRequiredMarker = false;\n /**\n * Theme color of the form field. This API is supported in M2 themes only, it\n * has no effect in M3 themes.\n *\n * For information on applying color variants in M3, see\n * https://material.angular.io/guide/theming#using-component-color-variants.\n */\n this.color = 'primary';\n this._appearance = DEFAULT_APPEARANCE;\n this._subscriptSizing = null;\n this._hintLabel = '';\n this._hasIconPrefix = false;\n this._hasTextPrefix = false;\n this._hasIconSuffix = false;\n this._hasTextSuffix = false;\n // Unique id for the internal form field label.\n this._labelId = `mat-mdc-form-field-label-${nextUniqueId++}`;\n // Unique id for the hint label.\n this._hintLabelId = `mat-mdc-hint-${nextUniqueId++}`;\n /** State of the mat-hint and mat-error animations. */\n this._subscriptAnimationState = '';\n this._destroyed = new Subject();\n this._isFocused = null;\n this._needsOutlineLabelOffsetUpdate = false;\n this._previousControl = null;\n this._injector = inject(Injector);\n /**\n * Gets the id of the label element. If no label is present, returns `null`.\n */\n this.getLabelId = computed(() => this._hasFloatingLabel() ? this._labelId : null);\n this._hasFloatingLabel = computed(() => !!this._labelChild());\n if (_defaults) {\n if (_defaults.appearance) {\n this.appearance = _defaults.appearance;\n }\n this._hideRequiredMarker = Boolean(_defaults?.hideRequiredMarker);\n if (_defaults.color) {\n this.color = _defaults.color;\n }\n }\n }\n ngAfterViewInit() {\n // Initial focus state sync. This happens rarely, but we want to account for\n // it in case the form field control has \"focused\" set to true on init.\n this._updateFocusState();\n // Enable animations now. This ensures we don't animate on initial render.\n this._subscriptAnimationState = 'enter';\n // Because the above changes a value used in the template after it was checked, we need\n // to trigger CD or the change might not be reflected if there is no other CD scheduled.\n this._changeDetectorRef.detectChanges();\n }\n ngAfterContentInit() {\n this._assertFormFieldControl();\n this._initializeSubscript();\n this._initializePrefixAndSuffix();\n this._initializeOutlineLabelOffsetSubscriptions();\n }\n ngAfterContentChecked() {\n this._assertFormFieldControl();\n if (this._control !== this._previousControl) {\n this._initializeControl(this._previousControl);\n this._previousControl = this._control;\n }\n }\n ngOnDestroy() {\n this._stateChanges?.unsubscribe();\n this._valueChanges?.unsubscribe();\n this._destroyed.next();\n this._destroyed.complete();\n }\n /**\n * Gets an ElementRef for the element that a overlay attached to the form field\n * should be positioned relative to.\n */\n getConnectedOverlayOrigin() {\n return this._textField || this._elementRef;\n }\n /** Animates the placeholder up and locks it in position. */\n _animateAndLockLabel() {\n // This is for backwards compatibility only. Consumers of the form field might use\n // this method. e.g. the autocomplete trigger. This method has been added to the non-MDC\n // form field because setting \"floatLabel\" to \"always\" caused the label to float without\n // animation. This is different in MDC where the label always animates, so this method\n // is no longer necessary. There doesn't seem any benefit in adding logic to allow changing\n // the floating label state without animations. The non-MDC implementation was inconsistent\n // because it always animates if \"floatLabel\" is set away from \"always\".\n // TODO(devversion): consider removing this method when releasing the MDC form field.\n if (this._hasFloatingLabel()) {\n this.floatLabel = 'always';\n }\n }\n /** Initializes the registered form field control. */\n _initializeControl(previousControl) {\n const control = this._control;\n const classPrefix = 'mat-mdc-form-field-type-';\n if (previousControl) {\n this._elementRef.nativeElement.classList.remove(classPrefix + previousControl.controlType);\n }\n if (control.controlType) {\n this._elementRef.nativeElement.classList.add(classPrefix + control.controlType);\n }\n // Subscribe to changes in the child control state in order to update the form field UI.\n this._stateChanges?.unsubscribe();\n this._stateChanges = control.stateChanges.subscribe(() => {\n this._updateFocusState();\n this._syncDescribedByIds();\n this._changeDetectorRef.markForCheck();\n });\n this._valueChanges?.unsubscribe();\n // Run change detection if the value changes.\n if (control.ngControl && control.ngControl.valueChanges) {\n this._valueChanges = control.ngControl.valueChanges.pipe(takeUntil(this._destroyed)).subscribe(() => this._changeDetectorRef.markForCheck());\n }\n }\n _checkPrefixAndSuffixTypes() {\n this._hasIconPrefix = !!this._prefixChildren.find(p => !p._isText);\n this._hasTextPrefix = !!this._prefixChildren.find(p => p._isText);\n this._hasIconSuffix = !!this._suffixChildren.find(s => !s._isText);\n this._hasTextSuffix = !!this._suffixChildren.find(s => s._isText);\n }\n /** Initializes the prefix and suffix containers. */\n _initializePrefixAndSuffix() {\n this._checkPrefixAndSuffixTypes();\n // Mark the form field as dirty whenever the prefix or suffix children change. This\n // is necessary because we conditionally display the prefix/suffix containers based\n // on whether there is projected content.\n merge(this._prefixChildren.changes, this._suffixChildren.changes).subscribe(() => {\n this._checkPrefixAndSuffixTypes();\n this._changeDetectorRef.markForCheck();\n });\n }\n /**\n * Initializes the subscript by validating hints and synchronizing \"aria-describedby\" ids\n * with the custom form field control. Also subscribes to hint and error changes in order\n * to be able to validate and synchronize ids on change.\n */\n _initializeSubscript() {\n // Re-validate when the number of hints changes.\n this._hintChildren.changes.subscribe(() => {\n this._processHints();\n this._changeDetectorRef.markForCheck();\n });\n // Update the aria-described by when the number of errors changes.\n this._errorChildren.changes.subscribe(() => {\n this._syncDescribedByIds();\n this._changeDetectorRef.markForCheck();\n });\n // Initial mat-hint validation and subscript describedByIds sync.\n this._validateHints();\n this._syncDescribedByIds();\n }\n /** Throws an error if the form field's control is missing. */\n _assertFormFieldControl() {\n if (!this._control && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getMatFormFieldMissingControlError();\n }\n }\n _updateFocusState() {\n // Usually the MDC foundation would call \"activateFocus\" and \"deactivateFocus\" whenever\n // certain DOM events are emitted. This is not possible in our implementation of the\n // form field because we support abstract form field controls which are not necessarily\n // of type input, nor do we have a reference to a native form field control element. Instead\n // we handle the focus by checking if the abstract form field control focused state changes.\n if (this._control.focused && !this._isFocused) {\n this._isFocused = true;\n this._lineRipple?.activate();\n } else if (!this._control.focused && (this._isFocused || this._isFocused === null)) {\n this._isFocused = false;\n this._lineRipple?.deactivate();\n }\n this._textField?.nativeElement.classList.toggle('mdc-text-field--focused', this._control.focused);\n }\n /**\n * The floating label in the docked state needs to account for prefixes. The horizontal offset\n * is calculated whenever the appearance changes to `outline`, the prefixes change, or when the\n * form field is added to the DOM. This method sets up all subscriptions which are needed to\n * trigger the label offset update.\n */\n _initializeOutlineLabelOffsetSubscriptions() {\n // Whenever the prefix changes, schedule an update of the label offset.\n // TODO(mmalerba): Use ResizeObserver to better support dynamically changing prefix content.\n this._prefixChildren.changes.subscribe(() => this._needsOutlineLabelOffsetUpdate = true);\n // TODO(mmalerba): Split this into separate `afterRender` calls using the `EarlyRead` and\n // `Write` phases.\n afterRender(() => {\n if (this._needsOutlineLabelOffsetUpdate) {\n this._needsOutlineLabelOffsetUpdate = false;\n this._updateOutlineLabelOffset();\n }\n }, {\n injector: this._injector\n });\n this._dir.change.pipe(takeUntil(this._destroyed)).subscribe(() => this._needsOutlineLabelOffsetUpdate = true);\n }\n /** Whether the floating label should always float or not. */\n _shouldAlwaysFloat() {\n return this.floatLabel === 'always';\n }\n _hasOutline() {\n return this.appearance === 'outline';\n }\n /**\n * Whether the label should display in the infix. Labels in the outline appearance are\n * displayed as part of the notched-outline and are horizontally offset to account for\n * form field prefix content. This won't work in server side rendering since we cannot\n * measure the width of the prefix container. To make the docked label appear as if the\n * right offset has been calculated, we forcibly render the label inside the infix. Since\n * the label is part of the infix, the label cannot overflow the prefix content.\n */\n _forceDisplayInfixLabel() {\n return !this._platform.isBrowser && this._prefixChildren.length && !this._shouldLabelFloat();\n }\n _shouldLabelFloat() {\n if (!this._hasFloatingLabel()) {\n return false;\n }\n return this._control.shouldLabelFloat || this._shouldAlwaysFloat();\n }\n /**\n * Determines whether a class from the AbstractControlDirective\n * should be forwarded to the host element.\n */\n _shouldForward(prop) {\n const control = this._control ? this._control.ngControl : null;\n return control && control[prop];\n }\n /** Determines whether to display hints or errors. */\n _getDisplayedMessages() {\n return this._errorChildren && this._errorChildren.length > 0 && this._control.errorState ? 'error' : 'hint';\n }\n /** Handle label resize events. */\n _handleLabelResized() {\n this._refreshOutlineNotchWidth();\n }\n /** Refreshes the width of the outline-notch, if present. */\n _refreshOutlineNotchWidth() {\n if (!this._hasOutline() || !this._floatingLabel || !this._shouldLabelFloat()) {\n this._notchedOutline?._setNotchWidth(0);\n } else {\n this._notchedOutline?._setNotchWidth(this._floatingLabel.getWidth());\n }\n }\n /** Does any extra processing that is required when handling the hints. */\n _processHints() {\n this._validateHints();\n this._syncDescribedByIds();\n }\n /**\n * Ensure that there is a maximum of one of each \"mat-hint\" alignment specified. The hint\n * label specified set through the input is being considered as \"start\" aligned.\n *\n * This method is a noop if Angular runs in production mode.\n */\n _validateHints() {\n if (this._hintChildren && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n let startHint;\n let endHint;\n this._hintChildren.forEach(hint => {\n if (hint.align === 'start') {\n if (startHint || this.hintLabel) {\n throw getMatFormFieldDuplicatedHintError('start');\n }\n startHint = hint;\n } else if (hint.align === 'end') {\n if (endHint) {\n throw getMatFormFieldDuplicatedHintError('end');\n }\n endHint = hint;\n }\n });\n }\n }\n /**\n * Sets the list of element IDs that describe the child control. This allows the control to update\n * its `aria-describedby` attribute accordingly.\n */\n _syncDescribedByIds() {\n if (this._control) {\n let ids = [];\n // TODO(wagnermaciel): Remove the type check when we find the root cause of this bug.\n if (this._control.userAriaDescribedBy && typeof this._control.userAriaDescribedBy === 'string') {\n ids.push(...this._control.userAriaDescribedBy.split(' '));\n }\n if (this._getDisplayedMessages() === 'hint') {\n const startHint = this._hintChildren ? this._hintChildren.find(hint => hint.align === 'start') : null;\n const endHint = this._hintChildren ? this._hintChildren.find(hint => hint.align === 'end') : null;\n if (startHint) {\n ids.push(startHint.id);\n } else if (this._hintLabel) {\n ids.push(this._hintLabelId);\n }\n if (endHint) {\n ids.push(endHint.id);\n }\n } else if (this._errorChildren) {\n ids.push(...this._errorChildren.map(error => error.id));\n }\n this._control.setDescribedByIds(ids);\n }\n }\n /**\n * Updates the horizontal offset of the label in the outline appearance. In the outline\n * appearance, the notched-outline and label are not relative to the infix container because\n * the outline intends to surround prefixes, suffixes and the infix. This means that the\n * floating label by default overlaps prefixes in the docked state. To avoid this, we need to\n * horizontally offset the label by the width of the prefix container. The MDC text-field does\n * not need to do this because they use a fixed width for prefixes. Hence, they can simply\n * incorporate the horizontal offset into their default text-field styles.\n */\n _updateOutlineLabelOffset() {\n if (!this._hasOutline() || !this._floatingLabel) {\n return;\n }\n const floatingLabel = this._floatingLabel.element;\n // If no prefix is displayed, reset the outline label offset from potential\n // previous label offset updates.\n if (!(this._iconPrefixContainer || this._textPrefixContainer)) {\n floatingLabel.style.transform = '';\n return;\n }\n // If the form field is not attached to the DOM yet (e.g. in a tab), we defer\n // the label offset update until the zone stabilizes.\n if (!this._isAttachedToDom()) {\n this._needsOutlineLabelOffsetUpdate = true;\n return;\n }\n const iconPrefixContainer = this._iconPrefixContainer?.nativeElement;\n const textPrefixContainer = this._textPrefixContainer?.nativeElement;\n const iconSuffixContainer = this._iconSuffixContainer?.nativeElement;\n const textSuffixContainer = this._textSuffixContainer?.nativeElement;\n const iconPrefixContainerWidth = iconPrefixContainer?.getBoundingClientRect().width ?? 0;\n const textPrefixContainerWidth = textPrefixContainer?.getBoundingClientRect().width ?? 0;\n const iconSuffixContainerWidth = iconSuffixContainer?.getBoundingClientRect().width ?? 0;\n const textSuffixContainerWidth = textSuffixContainer?.getBoundingClientRect().width ?? 0;\n // If the directionality is RTL, the x-axis transform needs to be inverted. This\n // is because `transformX` does not change based on the page directionality.\n const negate = this._dir.value === 'rtl' ? '-1' : '1';\n const prefixWidth = `${iconPrefixContainerWidth + textPrefixContainerWidth}px`;\n const labelOffset = `var(--mat-mdc-form-field-label-offset-x, 0px)`;\n const labelHorizontalOffset = `calc(${negate} * (${prefixWidth} + ${labelOffset}))`;\n // Update the translateX of the floating label to account for the prefix container,\n // but allow the CSS to override this setting via a CSS variable when the label is\n // floating.\n floatingLabel.style.transform = `var(\n --mat-mdc-form-field-label-transform,\n ${FLOATING_LABEL_DEFAULT_DOCKED_TRANSFORM} translateX(${labelHorizontalOffset})\n )`;\n // Prevent the label from overlapping the suffix when in resting position.\n const prefixAndSuffixWidth = iconPrefixContainerWidth + textPrefixContainerWidth + iconSuffixContainerWidth + textSuffixContainerWidth;\n this._elementRef.nativeElement.style.setProperty('--mat-form-field-notch-max-width', `calc(100% - ${prefixAndSuffixWidth}px)`);\n }\n /** Checks whether the form field is attached to the DOM. */\n _isAttachedToDom() {\n const element = this._elementRef.nativeElement;\n if (element.getRootNode) {\n const rootNode = element.getRootNode();\n // If the element is inside the DOM the root node will be either the document\n // or the closest shadow root, otherwise it'll be the element itself.\n return rootNode && rootNode !== element;\n }\n // Otherwise fall back to checking if it's in the document. This doesn't account for\n // shadow DOM, however browser that support shadow DOM should support `getRootNode` as well.\n return document.documentElement.contains(element);\n }\n static {\n this.ɵfac = function MatFormField_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatFormField)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.Directionality), i0.ɵɵdirectiveInject(i2.Platform), i0.ɵɵdirectiveInject(MAT_FORM_FIELD_DEFAULT_OPTIONS, 8), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8), i0.ɵɵdirectiveInject(DOCUMENT));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatFormField,\n selectors: [[\"mat-form-field\"]],\n contentQueries: function MatFormField_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuerySignal(dirIndex, ctx._labelChild, MatLabel, 5);\n i0.ɵɵcontentQuery(dirIndex, MatFormFieldControl, 5);\n i0.ɵɵcontentQuery(dirIndex, MAT_PREFIX, 5);\n i0.ɵɵcontentQuery(dirIndex, MAT_SUFFIX, 5);\n i0.ɵɵcontentQuery(dirIndex, MAT_ERROR, 5);\n i0.ɵɵcontentQuery(dirIndex, MatHint, 5);\n }\n if (rf & 2) {\n i0.ɵɵqueryAdvance();\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._formFieldControl = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._prefixChildren = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._suffixChildren = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._errorChildren = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._hintChildren = _t);\n }\n },\n viewQuery: function MatFormField_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c3, 5);\n i0.ɵɵviewQuery(_c4, 5);\n i0.ɵɵviewQuery(_c5, 5);\n i0.ɵɵviewQuery(_c6, 5);\n i0.ɵɵviewQuery(_c7, 5);\n i0.ɵɵviewQuery(MatFormFieldFloatingLabel, 5);\n i0.ɵɵviewQuery(MatFormFieldNotchedOutline, 5);\n i0.ɵɵviewQuery(MatFormFieldLineRipple, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._textField = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._iconPrefixContainer = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._textPrefixContainer = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._iconSuffixContainer = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._textSuffixContainer = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._floatingLabel = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._notchedOutline = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._lineRipple = _t.first);\n }\n },\n hostAttrs: [1, \"mat-mdc-form-field\"],\n hostVars: 42,\n hostBindings: function MatFormField_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"mat-mdc-form-field-label-always-float\", ctx._shouldAlwaysFloat())(\"mat-mdc-form-field-has-icon-prefix\", ctx._hasIconPrefix)(\"mat-mdc-form-field-has-icon-suffix\", ctx._hasIconSuffix)(\"mat-form-field-invalid\", ctx._control.errorState)(\"mat-form-field-disabled\", ctx._control.disabled)(\"mat-form-field-autofilled\", ctx._control.autofilled)(\"mat-form-field-no-animations\", ctx._animationMode === \"NoopAnimations\")(\"mat-form-field-appearance-fill\", ctx.appearance == \"fill\")(\"mat-form-field-appearance-outline\", ctx.appearance == \"outline\")(\"mat-form-field-hide-placeholder\", ctx._hasFloatingLabel() && !ctx._shouldLabelFloat())(\"mat-focused\", ctx._control.focused)(\"mat-primary\", ctx.color !== \"accent\" && ctx.color !== \"warn\")(\"mat-accent\", ctx.color === \"accent\")(\"mat-warn\", ctx.color === \"warn\")(\"ng-untouched\", ctx._shouldForward(\"untouched\"))(\"ng-touched\", ctx._shouldForward(\"touched\"))(\"ng-pristine\", ctx._shouldForward(\"pristine\"))(\"ng-dirty\", ctx._shouldForward(\"dirty\"))(\"ng-valid\", ctx._shouldForward(\"valid\"))(\"ng-invalid\", ctx._shouldForward(\"invalid\"))(\"ng-pending\", ctx._shouldForward(\"pending\"));\n }\n },\n inputs: {\n hideRequiredMarker: \"hideRequiredMarker\",\n color: \"color\",\n floatLabel: \"floatLabel\",\n appearance: \"appearance\",\n subscriptSizing: \"subscriptSizing\",\n hintLabel: \"hintLabel\"\n },\n exportAs: [\"matFormField\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_FORM_FIELD,\n useExisting: MatFormField\n }, {\n provide: FLOATING_LABEL_PARENT,\n useExisting: MatFormField\n }]), i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c9,\n decls: 18,\n vars: 21,\n consts: [[\"labelTemplate\", \"\"], [\"textField\", \"\"], [\"iconPrefixContainer\", \"\"], [\"textPrefixContainer\", \"\"], [\"textSuffixContainer\", \"\"], [\"iconSuffixContainer\", \"\"], [1, \"mat-mdc-text-field-wrapper\", \"mdc-text-field\", 3, \"click\"], [1, \"mat-mdc-form-field-focus-overlay\"], [1, \"mat-mdc-form-field-flex\"], [\"matFormFieldNotchedOutline\", \"\", 3, \"matFormFieldNotchedOutlineOpen\"], [1, \"mat-mdc-form-field-icon-prefix\"], [1, \"mat-mdc-form-field-text-prefix\"], [1, \"mat-mdc-form-field-infix\"], [3, \"ngTemplateOutlet\"], [1, \"mat-mdc-form-field-text-suffix\"], [1, \"mat-mdc-form-field-icon-suffix\"], [\"matFormFieldLineRipple\", \"\"], [1, \"mat-mdc-form-field-subscript-wrapper\", \"mat-mdc-form-field-bottom-align\"], [1, \"mat-mdc-form-field-error-wrapper\"], [1, \"mat-mdc-form-field-hint-wrapper\"], [\"matFormFieldFloatingLabel\", \"\", 3, \"floating\", \"monitorResize\", \"id\"], [\"aria-hidden\", \"true\", 1, \"mat-mdc-form-field-required-marker\", \"mdc-floating-label--required\"], [3, \"id\"], [1, \"mat-mdc-form-field-hint-spacer\"]],\n template: function MatFormField_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵprojectionDef(_c8);\n i0.ɵɵtemplate(0, MatFormField_ng_template_0_Template, 1, 1, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementStart(2, \"div\", 6, 1);\n i0.ɵɵlistener(\"click\", function MatFormField_Template_div_click_2_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._control.onContainerClick($event));\n });\n i0.ɵɵtemplate(4, MatFormField_Conditional_4_Template, 1, 0, \"div\", 7);\n i0.ɵɵelementStart(5, \"div\", 8);\n i0.ɵɵtemplate(6, MatFormField_Conditional_6_Template, 2, 2, \"div\", 9)(7, MatFormField_Conditional_7_Template, 3, 0, \"div\", 10)(8, MatFormField_Conditional_8_Template, 3, 0, \"div\", 11);\n i0.ɵɵelementStart(9, \"div\", 12);\n i0.ɵɵtemplate(10, MatFormField_Conditional_10_Template, 1, 1, null, 13);\n i0.ɵɵprojection(11);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(12, MatFormField_Conditional_12_Template, 3, 0, \"div\", 14)(13, MatFormField_Conditional_13_Template, 3, 0, \"div\", 15);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(14, MatFormField_Conditional_14_Template, 1, 0, \"div\", 16);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(15, \"div\", 17);\n i0.ɵɵtemplate(16, MatFormField_Case_16_Template, 2, 1, \"div\", 18)(17, MatFormField_Case_17_Template, 5, 2, \"div\", 19);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n let tmp_16_0;\n i0.ɵɵadvance(2);\n i0.ɵɵclassProp(\"mdc-text-field--filled\", !ctx._hasOutline())(\"mdc-text-field--outlined\", ctx._hasOutline())(\"mdc-text-field--no-label\", !ctx._hasFloatingLabel())(\"mdc-text-field--disabled\", ctx._control.disabled)(\"mdc-text-field--invalid\", ctx._control.errorState);\n i0.ɵɵadvance(2);\n i0.ɵɵconditional(!ctx._hasOutline() && !ctx._control.disabled ? 4 : -1);\n i0.ɵɵadvance(2);\n i0.ɵɵconditional(ctx._hasOutline() ? 6 : -1);\n i0.ɵɵadvance();\n i0.ɵɵconditional(ctx._hasIconPrefix ? 7 : -1);\n i0.ɵɵadvance();\n i0.ɵɵconditional(ctx._hasTextPrefix ? 8 : -1);\n i0.ɵɵadvance(2);\n i0.ɵɵconditional(!ctx._hasOutline() || ctx._forceDisplayInfixLabel() ? 10 : -1);\n i0.ɵɵadvance(2);\n i0.ɵɵconditional(ctx._hasTextSuffix ? 12 : -1);\n i0.ɵɵadvance();\n i0.ɵɵconditional(ctx._hasIconSuffix ? 13 : -1);\n i0.ɵɵadvance();\n i0.ɵɵconditional(!ctx._hasOutline() ? 14 : -1);\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"mat-mdc-form-field-subscript-dynamic-size\", ctx.subscriptSizing === \"dynamic\");\n i0.ɵɵadvance();\n i0.ɵɵconditional((tmp_16_0 = ctx._getDisplayedMessages()) === \"error\" ? 16 : tmp_16_0 === \"hint\" ? 17 : -1);\n }\n },\n dependencies: [MatFormFieldFloatingLabel, MatFormFieldNotchedOutline, NgTemplateOutlet, MatFormFieldLineRipple, MatHint],\n styles: [\".mdc-text-field{display:inline-flex;align-items:baseline;padding:0 16px;position:relative;box-sizing:border-box;overflow:hidden;will-change:opacity,transform,color;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.mdc-text-field__input{width:100%;min-width:0;border:none;border-radius:0;background:none;padding:0;-moz-appearance:none;-webkit-appearance:none;height:28px}.mdc-text-field__input::-webkit-calendar-picker-indicator{display:none}.mdc-text-field__input::-ms-clear{display:none}.mdc-text-field__input:focus{outline:none}.mdc-text-field__input:invalid{box-shadow:none}.mdc-text-field__input::placeholder{opacity:0}.mdc-text-field__input::-moz-placeholder{opacity:0}.mdc-text-field__input::-webkit-input-placeholder{opacity:0}.mdc-text-field__input:-ms-input-placeholder{opacity:0}.mdc-text-field--no-label .mdc-text-field__input::placeholder,.mdc-text-field--focused .mdc-text-field__input::placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input::-moz-placeholder,.mdc-text-field--focused .mdc-text-field__input::-moz-placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input::-webkit-input-placeholder,.mdc-text-field--focused .mdc-text-field__input::-webkit-input-placeholder{opacity:1}.mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{opacity:1}.mdc-text-field--outlined .mdc-text-field__input,.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{height:100%}.mdc-text-field--outlined .mdc-text-field__input{display:flex;border:none !important;background-color:rgba(0,0,0,0)}.mdc-text-field--disabled .mdc-text-field__input{pointer-events:auto}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-filled-text-field-input-text-color, var(--mat-app-on-surface));caret-color:var(--mdc-filled-text-field-caret-color, var(--mat-app-primary))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-app-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::-moz-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-app-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::-webkit-input-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-app-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color, var(--mat-app-on-surface-variant))}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-filled-text-field-error-caret-color)}.mdc-text-field--filled.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-filled-text-field-disabled-input-text-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-outlined-text-field-input-text-color, var(--mat-app-on-surface));caret-color:var(--mdc-outlined-text-field-caret-color, var(--mat-app-primary))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-app-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::-moz-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-app-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::-webkit-input-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-app-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color, var(--mat-app-on-surface-variant))}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-outlined-text-field-error-caret-color)}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-outlined-text-field-disabled-input-text-color)}.mdc-text-field--disabled .cdk-high-contrast-active .mdc-text-field__input{background-color:Window}.mdc-text-field--filled{height:56px;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-left-radius:var(--mdc-filled-text-field-container-shape, var(--mat-app-corner-extra-small-top));border-top-right-radius:var(--mdc-filled-text-field-container-shape, var(--mat-app-corner-extra-small-top))}.mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:var(--mdc-filled-text-field-container-color, var(--mat-app-surface-variant))}.mdc-text-field--filled.mdc-text-field--disabled{background-color:var(--mdc-filled-text-field-disabled-container-color)}.mdc-text-field--outlined{height:56px;overflow:visible;padding-right:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small)));padding-left:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small)) + 4px)}[dir=rtl] .mdc-text-field--outlined{padding-right:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small)) + 4px);padding-left:max(16px,var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small)))}.mdc-floating-label{position:absolute;left:0;transform-origin:left top;line-height:1.15rem;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:text;overflow:hidden;will-change:transform}[dir=rtl] .mdc-floating-label{right:0;left:auto;transform-origin:right top;text-align:right}.mdc-text-field .mdc-floating-label{top:50%;transform:translateY(-50%);pointer-events:none}.mdc-notched-outline .mdc-floating-label{display:inline-block;position:relative;max-width:100%}.mdc-text-field--outlined .mdc-floating-label{left:4px;right:auto}[dir=rtl] .mdc-text-field--outlined .mdc-floating-label{left:auto;right:4px}.mdc-text-field--filled .mdc-floating-label{left:16px;right:auto}[dir=rtl] .mdc-text-field--filled .mdc-floating-label{left:auto;right:16px}.mdc-text-field--disabled .mdc-floating-label{cursor:default}.cdk-high-contrast-active .mdc-text-field--disabled .mdc-floating-label{z-index:1}.mdc-text-field--filled.mdc-text-field--no-label .mdc-floating-label{display:none}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-floating-label{color:var(--mdc-filled-text-field-label-text-color, var(--mat-app-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label{color:var(--mdc-filled-text-field-focus-label-text-color, var(--mat-app-primary))}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label{color:var(--mdc-filled-text-field-hover-label-text-color, var(--mat-app-on-surface-variant))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-floating-label{color:var(--mdc-filled-text-field-disabled-label-text-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-floating-label{color:var(--mdc-filled-text-field-error-label-text-color, var(--mat-app-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mdc-floating-label{color:var(--mdc-filled-text-field-error-focus-label-text-color, var(--mat-app-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--disabled):hover .mdc-floating-label{color:var(--mdc-filled-text-field-error-hover-label-text-color, var(--mat-app-on-error-container))}.mdc-text-field--filled .mdc-floating-label{font-family:var(--mdc-filled-text-field-label-text-font, var(--mat-app-body-large-font));font-size:var(--mdc-filled-text-field-label-text-size, var(--mat-app-body-large-size));font-weight:var(--mdc-filled-text-field-label-text-weight, var(--mat-app-body-large-weight));letter-spacing:var(--mdc-filled-text-field-label-text-tracking, var(--mat-app-body-large-tracking))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-floating-label{color:var(--mdc-outlined-text-field-label-text-color, var(--mat-app-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label{color:var(--mdc-outlined-text-field-focus-label-text-color, var(--mat-app-primary))}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label{color:var(--mdc-outlined-text-field-hover-label-text-color, var(--mat-app-on-surface))}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-floating-label{color:var(--mdc-outlined-text-field-disabled-label-text-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-floating-label{color:var(--mdc-outlined-text-field-error-label-text-color, var(--mat-app-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mdc-floating-label{color:var(--mdc-outlined-text-field-error-focus-label-text-color, var(--mat-app-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--disabled):hover .mdc-floating-label{color:var(--mdc-outlined-text-field-error-hover-label-text-color, var(--mat-app-on-error-container))}.mdc-text-field--outlined .mdc-floating-label{font-family:var(--mdc-outlined-text-field-label-text-font, var(--mat-app-body-large-font));font-size:var(--mdc-outlined-text-field-label-text-size, var(--mat-app-body-large-size));font-weight:var(--mdc-outlined-text-field-label-text-weight, var(--mat-app-body-large-weight));letter-spacing:var(--mdc-outlined-text-field-label-text-tracking, var(--mat-app-body-large-tracking))}.mdc-floating-label--float-above{cursor:auto;transform:translateY(-106%) scale(0.75)}.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) scale(1);font-size:.75rem}.mdc-notched-outline .mdc-floating-label--float-above{text-overflow:clip}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:133.3333333333%}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-34.75px) scale(0.75)}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after{margin-left:1px;margin-right:0;content:\\\"*\\\"}[dir=rtl] .mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after{margin-left:0;margin-right:1px}.mdc-notched-outline{display:flex;position:absolute;top:0;right:0;left:0;box-sizing:border-box;width:100%;max-width:100%;height:100%;text-align:left;pointer-events:none}[dir=rtl] .mdc-notched-outline{text-align:right}.mdc-text-field--outlined .mdc-notched-outline{z-index:1}.mat-mdc-notch-piece{box-sizing:border-box;height:100%;pointer-events:none;border-top:1px solid;border-bottom:1px solid}.mdc-text-field--focused .mat-mdc-notch-piece{border-width:2px}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-outline-color, var(--mat-app-outline));border-width:var(--mdc-outlined-text-field-outline-width)}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-hover-outline-color, var(--mat-app-on-surface))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-focus-outline-color, var(--mat-app-primary))}.mdc-text-field--outlined.mdc-text-field--disabled .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-disabled-outline-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-outline-color, var(--mat-app-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--focused):hover .mdc-notched-outline .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-hover-outline-color, var(--mat-app-on-error-container))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--mdc-outlined-text-field-error-focus-outline-color, var(--mat-app-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mat-mdc-notch-piece{border-width:var(--mdc-outlined-text-field-focus-outline-width)}.mdc-notched-outline__leading{border-left:1px solid;border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small));border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small))}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px,var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small)))}[dir=rtl] .mdc-notched-outline__leading{border-left:none;border-right:1px solid;border-bottom-left-radius:0;border-top-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small));border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small))}.mdc-notched-outline__trailing{flex-grow:1;border-left:none;border-right:1px solid;border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small));border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small))}[dir=rtl] .mdc-notched-outline__trailing{border-left:1px solid;border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small));border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small))}.mdc-notched-outline__notch{flex:0 0 auto;width:auto}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{max-width:min(var(--mat-form-field-notch-max-width, 100%),100% - max(12px,var(--mdc-outlined-text-field-container-shape, var(--mat-app-corner-extra-small)))*2)}.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:1px}.mdc-text-field--focused.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:2px}.mdc-notched-outline--notched .mdc-notched-outline__notch{padding-left:0;padding-right:8px;border-top:none;--mat-form-field-notch-max-width: 100%}[dir=rtl] .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-left:8px;padding-right:0}.mdc-notched-outline--no-label .mdc-notched-outline__notch{display:none}.mdc-line-ripple::before,.mdc-line-ripple::after{position:absolute;bottom:0;left:0;width:100%;border-bottom-style:solid;content:\\\"\\\"}.mdc-line-ripple::before{z-index:1;border-bottom-width:var(--mdc-filled-text-field-active-indicator-height)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-active-indicator-color, var(--mat-app-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-hover-active-indicator-color, var(--mat-app-on-surface))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-disabled-active-indicator-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-active-indicator-color, var(--mat-app-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid:not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-hover-active-indicator-color, var(--mat-app-on-error-container))}.mdc-line-ripple::after{transform:scaleX(0);opacity:0;z-index:2}.mdc-text-field--filled .mdc-line-ripple::after{border-bottom-width:var(--mdc-filled-text-field-focus-active-indicator-height)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-focus-active-indicator-color, var(--mat-app-primary))}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-error-focus-active-indicator-color, var(--mat-app-error))}.mdc-line-ripple--active::after{transform:scaleX(1);opacity:1}.mdc-line-ripple--deactivating::after{opacity:0}.mdc-text-field--disabled{pointer-events:none}.mat-mdc-form-field-textarea-control{vertical-align:middle;resize:vertical;box-sizing:border-box;height:auto;margin:0;padding:0;border:none;overflow:auto}.mat-mdc-form-field-input-control.mat-mdc-form-field-input-control{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font:inherit;letter-spacing:inherit;text-decoration:inherit;text-transform:inherit;border:none}.mat-mdc-form-field .mat-mdc-floating-label.mdc-floating-label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;line-height:normal;pointer-events:all;will-change:auto}.mat-mdc-form-field:not(.mat-form-field-disabled) .mat-mdc-floating-label.mdc-floating-label{cursor:inherit}.mdc-text-field--no-label:not(.mdc-text-field--textarea) .mat-mdc-form-field-input-control.mdc-text-field__input,.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control{height:auto}.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control.mdc-text-field__input[type=color]{height:23px}.mat-mdc-text-field-wrapper{height:auto;flex:auto;will-change:auto}.mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-left:0;--mat-mdc-form-field-label-offset-x: -16px}.mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-right:0}[dir=rtl] .mat-mdc-text-field-wrapper{padding-left:16px;padding-right:16px}[dir=rtl] .mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-left:0}[dir=rtl] .mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-right:0}.mat-form-field-disabled .mdc-text-field__input::placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-form-field-disabled .mdc-text-field__input::-moz-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-form-field-disabled .mdc-text-field__input::-webkit-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-form-field-disabled .mdc-text-field__input:-ms-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-mdc-form-field-label-always-float .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms;opacity:1}.mat-mdc-text-field-wrapper .mat-mdc-form-field-infix .mat-mdc-floating-label{left:auto;right:auto}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-text-field__input{display:inline-block}.mat-mdc-form-field .mat-mdc-text-field-wrapper.mdc-text-field .mdc-notched-outline__notch{padding-top:0}.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field .mdc-notched-outline__notch{border-left:1px solid rgba(0,0,0,0)}[dir=rtl] .mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field .mdc-notched-outline__notch{border-left:none;border-right:1px solid rgba(0,0,0,0)}.mat-mdc-form-field-infix{min-height:var(--mat-form-field-container-height);padding-top:var(--mat-form-field-filled-with-label-container-padding-top);padding-bottom:var(--mat-form-field-filled-with-label-container-padding-bottom)}.mdc-text-field--outlined .mat-mdc-form-field-infix,.mdc-text-field--no-label .mat-mdc-form-field-infix{padding-top:var(--mat-form-field-container-vertical-padding);padding-bottom:var(--mat-form-field-container-vertical-padding)}.mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-floating-label{top:calc(var(--mat-form-field-container-height)/2)}.mdc-text-field--filled .mat-mdc-floating-label{display:var(--mat-form-field-filled-label-display, block)}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{--mat-mdc-form-field-label-transform: translateY(calc(calc(6.75px + var(--mat-form-field-container-height) / 2) * -1)) scale(var(--mat-mdc-form-field-floating-label-scale, 0.75));transform:var(--mat-mdc-form-field-label-transform)}.mat-mdc-form-field-subscript-wrapper{box-sizing:border-box;width:100%;position:relative}.mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-error-wrapper{position:absolute;top:0;left:0;right:0;padding:0 16px}.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-error-wrapper{position:static}.mat-mdc-form-field-bottom-align::before{content:\\\"\\\";display:inline-block;height:16px}.mat-mdc-form-field-bottom-align.mat-mdc-form-field-subscript-dynamic-size::before{content:unset}.mat-mdc-form-field-hint-end{order:1}.mat-mdc-form-field-hint-wrapper{display:flex}.mat-mdc-form-field-hint-spacer{flex:1 0 1em}.mat-mdc-form-field-error{display:block;color:var(--mat-form-field-error-text-color, var(--mat-app-error))}.mat-mdc-form-field-subscript-wrapper,.mat-mdc-form-field-bottom-align::before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-subscript-text-font, var(--mat-app-body-small-font));line-height:var(--mat-form-field-subscript-text-line-height, var(--mat-app-body-small-line-height));font-size:var(--mat-form-field-subscript-text-size, var(--mat-app-body-small-size));letter-spacing:var(--mat-form-field-subscript-text-tracking, var(--mat-app-body-small-tracking));font-weight:var(--mat-form-field-subscript-text-weight, var(--mat-app-body-small-weight))}.mat-mdc-form-field-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;opacity:0;pointer-events:none;background-color:var(--mat-form-field-state-layer-color, var(--mat-app-on-surface))}.mat-mdc-text-field-wrapper:hover .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-hover-state-layer-opacity, var(--mat-app-hover-state-layer-opacity))}.mat-mdc-form-field.mat-focused .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-focus-state-layer-opacity)}select.mat-mdc-form-field-input-control{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(0,0,0,0);display:inline-flex;box-sizing:border-box}select.mat-mdc-form-field-input-control:not(:disabled){cursor:pointer}select.mat-mdc-form-field-input-control:not(.mat-mdc-native-select-inline) option{color:var(--mat-form-field-select-option-text-color)}select.mat-mdc-form-field-input-control:not(.mat-mdc-native-select-inline) option:disabled{color:var(--mat-form-field-select-disabled-option-text-color)}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{content:\\\"\\\";width:0;height:0;border-left:5px solid rgba(0,0,0,0);border-right:5px solid rgba(0,0,0,0);border-top:5px solid;position:absolute;right:0;top:50%;margin-top:-2.5px;pointer-events:none;color:var(--mat-form-field-enabled-select-arrow-color, var(--mat-app-on-surface-variant))}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{right:auto;left:0}.mat-mdc-form-field-type-mat-native-select.mat-focused .mat-mdc-form-field-infix::after{color:var(--mat-form-field-focus-select-arrow-color, var(--mat-app-primary))}.mat-mdc-form-field-type-mat-native-select.mat-form-field-disabled .mat-mdc-form-field-infix::after{color:var(--mat-form-field-disabled-select-arrow-color)}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:15px}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:0;padding-left:15px}.cdk-high-contrast-active .mat-form-field-appearance-fill .mat-mdc-text-field-wrapper{outline:solid 1px}.cdk-high-contrast-active .mat-form-field-appearance-fill.mat-form-field-disabled .mat-mdc-text-field-wrapper{outline-color:GrayText}.cdk-high-contrast-active .mat-form-field-appearance-fill.mat-focused .mat-mdc-text-field-wrapper{outline:dashed 3px}.cdk-high-contrast-active .mat-mdc-form-field.mat-focused .mdc-notched-outline{border:dashed 3px}.mat-mdc-form-field-input-control[type=date],.mat-mdc-form-field-input-control[type=datetime],.mat-mdc-form-field-input-control[type=datetime-local],.mat-mdc-form-field-input-control[type=month],.mat-mdc-form-field-input-control[type=week],.mat-mdc-form-field-input-control[type=time]{line-height:1}.mat-mdc-form-field-input-control::-webkit-datetime-edit{line-height:1;padding:0;margin-bottom:-2px}.mat-mdc-form-field{--mat-mdc-form-field-floating-label-scale: 0.75;display:inline-flex;flex-direction:column;min-width:0;text-align:left;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-container-text-font, var(--mat-app-body-large-font));line-height:var(--mat-form-field-container-text-line-height, var(--mat-app-body-large-line-height));font-size:var(--mat-form-field-container-text-size, var(--mat-app-body-large-size));letter-spacing:var(--mat-form-field-container-text-tracking, var(--mat-app-body-large-tracking));font-weight:var(--mat-form-field-container-text-weight, var(--mat-app-body-large-weight))}[dir=rtl] .mat-mdc-form-field{text-align:right}.mat-mdc-form-field .mdc-text-field--outlined .mdc-floating-label--float-above{font-size:calc(var(--mat-form-field-outlined-label-text-populated-size)*var(--mat-mdc-form-field-floating-label-scale))}.mat-mdc-form-field .mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:var(--mat-form-field-outlined-label-text-populated-size)}.mat-mdc-form-field-flex{display:inline-flex;align-items:baseline;box-sizing:border-box;width:100%}.mat-mdc-text-field-wrapper{width:100%;z-index:0}.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix{align-self:center;line-height:0;pointer-events:auto;position:relative;z-index:1}.mat-mdc-form-field-icon-prefix>.mat-icon,.mat-mdc-form-field-icon-suffix>.mat-icon{padding:0 12px;box-sizing:content-box}.mat-mdc-form-field-icon-prefix{color:var(--mat-form-field-leading-icon-color, var(--mat-app-on-surface-variant))}.mat-form-field-disabled .mat-mdc-form-field-icon-prefix{color:var(--mat-form-field-disabled-leading-icon-color)}.mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-trailing-icon-color, var(--mat-app-on-surface-variant))}.mat-form-field-disabled .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-disabled-trailing-icon-color)}.mat-form-field-invalid .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-trailing-icon-color, var(--mat-app-error))}.mat-form-field-invalid:not(.mat-focused):not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper:hover .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-hover-trailing-icon-color, var(--mat-app-on-error-container))}.mat-form-field-invalid.mat-focused .mat-mdc-text-field-wrapper .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-focus-trailing-icon-color, var(--mat-app-error))}.mat-mdc-form-field-icon-prefix,[dir=rtl] .mat-mdc-form-field-icon-suffix{padding:0 4px 0 0}.mat-mdc-form-field-icon-suffix,[dir=rtl] .mat-mdc-form-field-icon-prefix{padding:0 0 0 4px}.mat-mdc-form-field-subscript-wrapper .mat-icon,.mat-mdc-form-field label .mat-icon{width:1em;height:1em;font-size:inherit}.mat-mdc-form-field-infix{flex:auto;min-width:0;width:180px;position:relative;box-sizing:border-box}.mat-mdc-form-field .mdc-notched-outline__notch{margin-left:-1px;-webkit-clip-path:inset(-9em -999em -9em 1px);clip-path:inset(-9em -999em -9em 1px)}[dir=rtl] .mat-mdc-form-field .mdc-notched-outline__notch{margin-left:0;margin-right:-1px;-webkit-clip-path:inset(-9em 1px -9em -999em);clip-path:inset(-9em 1px -9em -999em)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-floating-label{transition:transform 150ms cubic-bezier(0.4, 0, 0.2, 1),color 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input{transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::-moz-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::-webkit-input-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input::placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input::-moz-placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input::-moz-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input::-webkit-input-placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input::-webkit-input-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mat-mdc-form-field:not(.mat-form-field-no-animations).mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--filled:not(.mdc-ripple-upgraded):focus .mdc-text-field__ripple::before{transition-duration:75ms}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-line-ripple::after{transition:transform 180ms cubic-bezier(0.4, 0, 0.2, 1),opacity 180ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-notched-outline .mdc-floating-label{max-width:calc(100% + 1px)}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:calc(133.3333333333% + 1px)}\"],\n encapsulation: 2,\n data: {\n animation: [matFormFieldAnimations.transitionMessages]\n },\n changeDetection: 0\n });\n }\n }\n return MatFormField;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet MatFormFieldModule = /*#__PURE__*/(() => {\n class MatFormFieldModule {\n static {\n this.ɵfac = function MatFormFieldModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatFormFieldModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatFormFieldModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [MatCommonModule, CommonModule, ObserversModule, MatCommonModule]\n });\n }\n }\n return MatFormFieldModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_ERROR, MAT_FORM_FIELD, MAT_FORM_FIELD_DEFAULT_OPTIONS, MAT_PREFIX, MAT_SUFFIX, MatError, MatFormField, MatFormFieldControl, MatFormFieldModule, MatHint, MatLabel, MatPrefix, MatSuffix, getMatFormFieldDuplicatedHintError, getMatFormFieldMissingControlError, getMatFormFieldPlaceholderConflictError, matFormFieldAnimations };\n","import * as i1 from '@angular/cdk/platform';\nimport { normalizePassiveListenerOptions } from '@angular/cdk/platform';\nimport * as i0 from '@angular/core';\nimport { Injectable, EventEmitter, Directive, Output, booleanAttribute, Optional, Inject, Input, NgModule } from '@angular/core';\nimport { coerceElement, coerceNumberProperty } from '@angular/cdk/coercion';\nimport { EMPTY, Subject, fromEvent } from 'rxjs';\nimport { auditTime, takeUntil } from 'rxjs/operators';\nimport { DOCUMENT } from '@angular/common';\n\n/** Options to pass to the animationstart listener. */\nconst listenerOptions = /*#__PURE__*/normalizePassiveListenerOptions({\n passive: true\n});\n/**\n * An injectable service that can be used to monitor the autofill state of an input.\n * Based on the following blog post:\n * https://medium.com/@brunn/detecting-autofilled-fields-in-javascript-aed598d25da7\n */\nlet AutofillMonitor = /*#__PURE__*/(() => {\n class AutofillMonitor {\n constructor(_platform, _ngZone) {\n this._platform = _platform;\n this._ngZone = _ngZone;\n this._monitoredElements = new Map();\n }\n monitor(elementOrRef) {\n if (!this._platform.isBrowser) {\n return EMPTY;\n }\n const element = coerceElement(elementOrRef);\n const info = this._monitoredElements.get(element);\n if (info) {\n return info.subject;\n }\n const result = new Subject();\n const cssClass = 'cdk-text-field-autofilled';\n const listener = event => {\n // Animation events fire on initial element render, we check for the presence of the autofill\n // CSS class to make sure this is a real change in state, not just the initial render before\n // we fire off events.\n if (event.animationName === 'cdk-text-field-autofill-start' && !element.classList.contains(cssClass)) {\n element.classList.add(cssClass);\n this._ngZone.run(() => result.next({\n target: event.target,\n isAutofilled: true\n }));\n } else if (event.animationName === 'cdk-text-field-autofill-end' && element.classList.contains(cssClass)) {\n element.classList.remove(cssClass);\n this._ngZone.run(() => result.next({\n target: event.target,\n isAutofilled: false\n }));\n }\n };\n this._ngZone.runOutsideAngular(() => {\n element.addEventListener('animationstart', listener, listenerOptions);\n element.classList.add('cdk-text-field-autofill-monitored');\n });\n this._monitoredElements.set(element, {\n subject: result,\n unlisten: () => {\n element.removeEventListener('animationstart', listener, listenerOptions);\n }\n });\n return result;\n }\n stopMonitoring(elementOrRef) {\n const element = coerceElement(elementOrRef);\n const info = this._monitoredElements.get(element);\n if (info) {\n info.unlisten();\n info.subject.complete();\n element.classList.remove('cdk-text-field-autofill-monitored');\n element.classList.remove('cdk-text-field-autofilled');\n this._monitoredElements.delete(element);\n }\n }\n ngOnDestroy() {\n this._monitoredElements.forEach((_info, element) => this.stopMonitoring(element));\n }\n static {\n this.ɵfac = function AutofillMonitor_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || AutofillMonitor)(i0.ɵɵinject(i1.Platform), i0.ɵɵinject(i0.NgZone));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: AutofillMonitor,\n factory: AutofillMonitor.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return AutofillMonitor;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/** A directive that can be used to monitor the autofill state of an input. */\nlet CdkAutofill = /*#__PURE__*/(() => {\n class CdkAutofill {\n constructor(_elementRef, _autofillMonitor) {\n this._elementRef = _elementRef;\n this._autofillMonitor = _autofillMonitor;\n /** Emits when the autofill state of the element changes. */\n this.cdkAutofill = new EventEmitter();\n }\n ngOnInit() {\n this._autofillMonitor.monitor(this._elementRef).subscribe(event => this.cdkAutofill.emit(event));\n }\n ngOnDestroy() {\n this._autofillMonitor.stopMonitoring(this._elementRef);\n }\n static {\n this.ɵfac = function CdkAutofill_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CdkAutofill)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(AutofillMonitor));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkAutofill,\n selectors: [[\"\", \"cdkAutofill\", \"\"]],\n outputs: {\n cdkAutofill: \"cdkAutofill\"\n },\n standalone: true\n });\n }\n }\n return CdkAutofill;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/** Directive to automatically resize a textarea to fit its content. */\nlet CdkTextareaAutosize = /*#__PURE__*/(() => {\n class CdkTextareaAutosize {\n /** Minimum amount of rows in the textarea. */\n get minRows() {\n return this._minRows;\n }\n set minRows(value) {\n this._minRows = coerceNumberProperty(value);\n this._setMinHeight();\n }\n /** Maximum amount of rows in the textarea. */\n get maxRows() {\n return this._maxRows;\n }\n set maxRows(value) {\n this._maxRows = coerceNumberProperty(value);\n this._setMaxHeight();\n }\n /** Whether autosizing is enabled or not */\n get enabled() {\n return this._enabled;\n }\n set enabled(value) {\n // Only act if the actual value changed. This specifically helps to not run\n // resizeToFitContent too early (i.e. before ngAfterViewInit)\n if (this._enabled !== value) {\n (this._enabled = value) ? this.resizeToFitContent(true) : this.reset();\n }\n }\n get placeholder() {\n return this._textareaElement.placeholder;\n }\n set placeholder(value) {\n this._cachedPlaceholderHeight = undefined;\n if (value) {\n this._textareaElement.setAttribute('placeholder', value);\n } else {\n this._textareaElement.removeAttribute('placeholder');\n }\n this._cacheTextareaPlaceholderHeight();\n }\n constructor(_elementRef, _platform, _ngZone, /** @breaking-change 11.0.0 make document required */\n document) {\n this._elementRef = _elementRef;\n this._platform = _platform;\n this._ngZone = _ngZone;\n this._destroyed = new Subject();\n this._enabled = true;\n /**\n * Value of minRows as of last resize. If the minRows has decreased, the\n * height of the textarea needs to be recomputed to reflect the new minimum. The maxHeight\n * does not have the same problem because it does not affect the textarea's scrollHeight.\n */\n this._previousMinRows = -1;\n this._isViewInited = false;\n /** Handles `focus` and `blur` events. */\n this._handleFocusEvent = event => {\n this._hasFocus = event.type === 'focus';\n };\n this._document = document;\n this._textareaElement = this._elementRef.nativeElement;\n }\n /** Sets the minimum height of the textarea as determined by minRows. */\n _setMinHeight() {\n const minHeight = this.minRows && this._cachedLineHeight ? `${this.minRows * this._cachedLineHeight}px` : null;\n if (minHeight) {\n this._textareaElement.style.minHeight = minHeight;\n }\n }\n /** Sets the maximum height of the textarea as determined by maxRows. */\n _setMaxHeight() {\n const maxHeight = this.maxRows && this._cachedLineHeight ? `${this.maxRows * this._cachedLineHeight}px` : null;\n if (maxHeight) {\n this._textareaElement.style.maxHeight = maxHeight;\n }\n }\n ngAfterViewInit() {\n if (this._platform.isBrowser) {\n // Remember the height which we started with in case autosizing is disabled\n this._initialHeight = this._textareaElement.style.height;\n this.resizeToFitContent();\n this._ngZone.runOutsideAngular(() => {\n const window = this._getWindow();\n fromEvent(window, 'resize').pipe(auditTime(16), takeUntil(this._destroyed)).subscribe(() => this.resizeToFitContent(true));\n this._textareaElement.addEventListener('focus', this._handleFocusEvent);\n this._textareaElement.addEventListener('blur', this._handleFocusEvent);\n });\n this._isViewInited = true;\n this.resizeToFitContent(true);\n }\n }\n ngOnDestroy() {\n this._textareaElement.removeEventListener('focus', this._handleFocusEvent);\n this._textareaElement.removeEventListener('blur', this._handleFocusEvent);\n this._destroyed.next();\n this._destroyed.complete();\n }\n /**\n * Cache the height of a single-row textarea if it has not already been cached.\n *\n * We need to know how large a single \"row\" of a textarea is in order to apply minRows and\n * maxRows. For the initial version, we will assume that the height of a single line in the\n * textarea does not ever change.\n */\n _cacheTextareaLineHeight() {\n if (this._cachedLineHeight) {\n return;\n }\n // Use a clone element because we have to override some styles.\n let textareaClone = this._textareaElement.cloneNode(false);\n textareaClone.rows = 1;\n // Use `position: absolute` so that this doesn't cause a browser layout and use\n // `visibility: hidden` so that nothing is rendered. Clear any other styles that\n // would affect the height.\n textareaClone.style.position = 'absolute';\n textareaClone.style.visibility = 'hidden';\n textareaClone.style.border = 'none';\n textareaClone.style.padding = '0';\n textareaClone.style.height = '';\n textareaClone.style.minHeight = '';\n textareaClone.style.maxHeight = '';\n // In Firefox it happens that textarea elements are always bigger than the specified amount\n // of rows. This is because Firefox tries to add extra space for the horizontal scrollbar.\n // As a workaround that removes the extra space for the scrollbar, we can just set overflow\n // to hidden. This ensures that there is no invalid calculation of the line height.\n // See Firefox bug report: https://bugzilla.mozilla.org/show_bug.cgi?id=33654\n textareaClone.style.overflow = 'hidden';\n this._textareaElement.parentNode.appendChild(textareaClone);\n this._cachedLineHeight = textareaClone.clientHeight;\n textareaClone.remove();\n // Min and max heights have to be re-calculated if the cached line height changes\n this._setMinHeight();\n this._setMaxHeight();\n }\n _measureScrollHeight() {\n const element = this._textareaElement;\n const previousMargin = element.style.marginBottom || '';\n const isFirefox = this._platform.FIREFOX;\n const needsMarginFiller = isFirefox && this._hasFocus;\n const measuringClass = isFirefox ? 'cdk-textarea-autosize-measuring-firefox' : 'cdk-textarea-autosize-measuring';\n // In some cases the page might move around while we're measuring the `textarea` on Firefox. We\n // work around it by assigning a temporary margin with the same height as the `textarea` so that\n // it occupies the same amount of space. See #23233.\n if (needsMarginFiller) {\n element.style.marginBottom = `${element.clientHeight}px`;\n }\n // Reset the textarea height to auto in order to shrink back to its default size.\n // Also temporarily force overflow:hidden, so scroll bars do not interfere with calculations.\n element.classList.add(measuringClass);\n // The measuring class includes a 2px padding to workaround an issue with Chrome,\n // so we account for that extra space here by subtracting 4 (2px top + 2px bottom).\n const scrollHeight = element.scrollHeight - 4;\n element.classList.remove(measuringClass);\n if (needsMarginFiller) {\n element.style.marginBottom = previousMargin;\n }\n return scrollHeight;\n }\n _cacheTextareaPlaceholderHeight() {\n if (!this._isViewInited || this._cachedPlaceholderHeight != undefined) {\n return;\n }\n if (!this.placeholder) {\n this._cachedPlaceholderHeight = 0;\n return;\n }\n const value = this._textareaElement.value;\n this._textareaElement.value = this._textareaElement.placeholder;\n this._cachedPlaceholderHeight = this._measureScrollHeight();\n this._textareaElement.value = value;\n }\n ngDoCheck() {\n if (this._platform.isBrowser) {\n this.resizeToFitContent();\n }\n }\n /**\n * Resize the textarea to fit its content.\n * @param force Whether to force a height recalculation. By default the height will be\n * recalculated only if the value changed since the last call.\n */\n resizeToFitContent(force = false) {\n // If autosizing is disabled, just skip everything else\n if (!this._enabled) {\n return;\n }\n this._cacheTextareaLineHeight();\n this._cacheTextareaPlaceholderHeight();\n // If we haven't determined the line-height yet, we know we're still hidden and there's no point\n // in checking the height of the textarea.\n if (!this._cachedLineHeight) {\n return;\n }\n const textarea = this._elementRef.nativeElement;\n const value = textarea.value;\n // Only resize if the value or minRows have changed since these calculations can be expensive.\n if (!force && this._minRows === this._previousMinRows && value === this._previousValue) {\n return;\n }\n const scrollHeight = this._measureScrollHeight();\n const height = Math.max(scrollHeight, this._cachedPlaceholderHeight || 0);\n // Use the scrollHeight to know how large the textarea *would* be if fit its entire value.\n textarea.style.height = `${height}px`;\n this._ngZone.runOutsideAngular(() => {\n if (typeof requestAnimationFrame !== 'undefined') {\n requestAnimationFrame(() => this._scrollToCaretPosition(textarea));\n } else {\n setTimeout(() => this._scrollToCaretPosition(textarea));\n }\n });\n this._previousValue = value;\n this._previousMinRows = this._minRows;\n }\n /**\n * Resets the textarea to its original size\n */\n reset() {\n // Do not try to change the textarea, if the initialHeight has not been determined yet\n // This might potentially remove styles when reset() is called before ngAfterViewInit\n if (this._initialHeight !== undefined) {\n this._textareaElement.style.height = this._initialHeight;\n }\n }\n _noopInputHandler() {\n // no-op handler that ensures we're running change detection on input events.\n }\n /** Access injected document if available or fallback to global document reference */\n _getDocument() {\n return this._document || document;\n }\n /** Use defaultView of injected document if available or fallback to global window reference */\n _getWindow() {\n const doc = this._getDocument();\n return doc.defaultView || window;\n }\n /**\n * Scrolls a textarea to the caret position. On Firefox resizing the textarea will\n * prevent it from scrolling to the caret position. We need to re-set the selection\n * in order for it to scroll to the proper position.\n */\n _scrollToCaretPosition(textarea) {\n const {\n selectionStart,\n selectionEnd\n } = textarea;\n // IE will throw an \"Unspecified error\" if we try to set the selection range after the\n // element has been removed from the DOM. Assert that the directive hasn't been destroyed\n // between the time we requested the animation frame and when it was executed.\n // Also note that we have to assert that the textarea is focused before we set the\n // selection range. Setting the selection range on a non-focused textarea will cause\n // it to receive focus on IE and Edge.\n if (!this._destroyed.isStopped && this._hasFocus) {\n textarea.setSelectionRange(selectionStart, selectionEnd);\n }\n }\n static {\n this.ɵfac = function CdkTextareaAutosize_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CdkTextareaAutosize)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(DOCUMENT, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkTextareaAutosize,\n selectors: [[\"textarea\", \"cdkTextareaAutosize\", \"\"]],\n hostAttrs: [\"rows\", \"1\", 1, \"cdk-textarea-autosize\"],\n hostBindings: function CdkTextareaAutosize_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"input\", function CdkTextareaAutosize_input_HostBindingHandler() {\n return ctx._noopInputHandler();\n });\n }\n },\n inputs: {\n minRows: [0, \"cdkAutosizeMinRows\", \"minRows\"],\n maxRows: [0, \"cdkAutosizeMaxRows\", \"maxRows\"],\n enabled: [2, \"cdkTextareaAutosize\", \"enabled\", booleanAttribute],\n placeholder: \"placeholder\"\n },\n exportAs: [\"cdkTextareaAutosize\"],\n standalone: true,\n features: [i0.ɵɵInputTransformsFeature]\n });\n }\n }\n return CdkTextareaAutosize;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet TextFieldModule = /*#__PURE__*/(() => {\n class TextFieldModule {\n static {\n this.ɵfac = function TextFieldModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TextFieldModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: TextFieldModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n }\n return TextFieldModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AutofillMonitor, CdkAutofill, CdkTextareaAutosize, TextFieldModule };\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport * as i1 from '@angular/cdk/platform';\nimport { getSupportedInputTypes } from '@angular/cdk/platform';\nimport * as i4 from '@angular/cdk/text-field';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, Directive, Optional, Self, Inject, Input, NgModule } from '@angular/core';\nimport * as i2 from '@angular/forms';\nimport { Validators } from '@angular/forms';\nimport * as i3 from '@angular/material/core';\nimport { _ErrorStateTracker, MatCommonModule } from '@angular/material/core';\nimport * as i5 from '@angular/material/form-field';\nimport { MAT_FORM_FIELD, MatFormFieldControl, MatFormFieldModule } from '@angular/material/form-field';\nexport { MatError, MatFormField, MatHint, MatLabel, MatPrefix, MatSuffix } from '@angular/material/form-field';\nimport { Subject } from 'rxjs';\n\n/** @docs-private */\nfunction getMatInputUnsupportedTypeError(type) {\n return Error(`Input type \"${type}\" isn't supported by matInput.`);\n}\n\n/**\n * This token is used to inject the object whose value should be set into `MatInput`. If none is\n * provided, the native `HTMLInputElement` is used. Directives like `MatDatepickerInput` can provide\n * themselves for this token, in order to make `MatInput` delegate the getting and setting of the\n * value to them.\n */\nconst MAT_INPUT_VALUE_ACCESSOR = /*#__PURE__*/new InjectionToken('MAT_INPUT_VALUE_ACCESSOR');\n\n// Invalid input type. Using one of these will throw an MatInputUnsupportedTypeError.\nconst MAT_INPUT_INVALID_TYPES = ['button', 'checkbox', 'file', 'hidden', 'image', 'radio', 'range', 'reset', 'submit'];\nlet nextUniqueId = 0;\nlet MatInput = /*#__PURE__*/(() => {\n class MatInput {\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get disabled() {\n return this._disabled;\n }\n set disabled(value) {\n this._disabled = coerceBooleanProperty(value);\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 /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get id() {\n return this._id;\n }\n set id(value) {\n this._id = value || this._uid;\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get required() {\n return this._required ?? this.ngControl?.control?.hasValidator(Validators.required) ?? false;\n }\n set required(value) {\n this._required = coerceBooleanProperty(value);\n }\n /** Input type of the element. */\n get type() {\n return this._type;\n }\n set type(value) {\n this._type = value || 'text';\n this._validateType();\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.type = this._type;\n }\n this._ensureWheelDefaultBehavior();\n }\n /** An object used to control when error messages are shown. */\n get errorStateMatcher() {\n return this._errorStateTracker.matcher;\n }\n set errorStateMatcher(value) {\n this._errorStateTracker.matcher = value;\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get value() {\n return this._inputValueAccessor.value;\n }\n set value(value) {\n if (value !== this.value) {\n this._inputValueAccessor.value = value;\n this.stateChanges.next();\n }\n }\n /** Whether the element is readonly. */\n get readonly() {\n return this._readonly;\n }\n set readonly(value) {\n this._readonly = coerceBooleanProperty(value);\n }\n /** Whether the input is in an error state. */\n get errorState() {\n return this._errorStateTracker.errorState;\n }\n set errorState(value) {\n this._errorStateTracker.errorState = value;\n }\n constructor(_elementRef, _platform, ngControl, parentForm, parentFormGroup, defaultErrorStateMatcher, inputValueAccessor, _autofillMonitor, _ngZone,\n // TODO: Remove this once the legacy appearance has been removed. We only need\n // to inject the form field for determining whether the placeholder has been promoted.\n _formField) {\n this._elementRef = _elementRef;\n this._platform = _platform;\n this.ngControl = ngControl;\n this._autofillMonitor = _autofillMonitor;\n this._ngZone = _ngZone;\n this._formField = _formField;\n this._uid = `mat-input-${nextUniqueId++}`;\n this._webkitBlinkWheelListenerAttached = false;\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n this.focused = false;\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n this.stateChanges = new Subject();\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n this.controlType = 'mat-input';\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n this.autofilled = false;\n this._disabled = false;\n this._type = 'text';\n this._readonly = false;\n this._neverEmptyInputTypes = ['date', 'datetime', 'datetime-local', 'month', 'time', 'week'].filter(t => getSupportedInputTypes().has(t));\n this._iOSKeyupListener = event => {\n const el = event.target;\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 this._webkitBlinkWheelListener = () => {\n // This is a noop function and is used to enable mouse wheel input\n // on number inputs\n // on blink and webkit browsers.\n };\n const element = this._elementRef.nativeElement;\n const nodeName = element.nodeName.toLowerCase();\n // If no input value accessor was explicitly specified, use the element as the input value\n // accessor.\n this._inputValueAccessor = inputValueAccessor || element;\n this._previousNativeValue = this.value;\n // Force setter to be called in case id was not specified.\n this.id = this.id;\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 (_platform.IOS) {\n _ngZone.runOutsideAngular(() => {\n _elementRef.nativeElement.addEventListener('keyup', this._iOSKeyupListener);\n });\n }\n this._errorStateTracker = new _ErrorStateTracker(defaultErrorStateMatcher, ngControl, parentFormGroup, parentForm, this.stateChanges);\n this._isServer = !this._platform.isBrowser;\n this._isNativeSelect = nodeName === 'select';\n this._isTextarea = nodeName === 'textarea';\n this._isInFormField = !!_formField;\n if (this._isNativeSelect) {\n this.controlType = element.multiple ? 'mat-native-select-multiple' : 'mat-native-select';\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 ngOnChanges() {\n this.stateChanges.next();\n }\n ngOnDestroy() {\n this.stateChanges.complete();\n if (this._platform.isBrowser) {\n this._autofillMonitor.stopMonitoring(this._elementRef.nativeElement);\n }\n if (this._platform.IOS) {\n this._elementRef.nativeElement.removeEventListener('keyup', this._iOSKeyupListener);\n }\n if (this._webkitBlinkWheelListenerAttached) {\n this._elementRef.nativeElement.removeEventListener('wheel', this._webkitBlinkWheelListener);\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 // 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 // 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 // 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 /** Focuses the input. */\n focus(options) {\n this._elementRef.nativeElement.focus(options);\n }\n /** Refreshes the error state of the input. */\n updateErrorState() {\n this._errorStateTracker.updateErrorState();\n }\n /** Callback for the cases where the focused state of the input changes. */\n _focusChanged(isFocused) {\n if (isFocused !== this.focused) {\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 /** Does some manual dirty checking on the native input `value` property. */\n _dirtyCheckNativeValue() {\n const newValue = this._elementRef.nativeElement.value;\n if (this._previousNativeValue !== newValue) {\n this._previousNativeValue = newValue;\n this.stateChanges.next();\n }\n }\n /** Does some manual dirty checking on the native input `placeholder` attribute. */\n _dirtyCheckPlaceholder() {\n const placeholder = this._getPlaceholder();\n if (placeholder !== this._previousPlaceholder) {\n const element = this._elementRef.nativeElement;\n this._previousPlaceholder = placeholder;\n placeholder ? element.setAttribute('placeholder', placeholder) : element.removeAttribute('placeholder');\n }\n }\n /** Gets the current placeholder of the form field. */\n _getPlaceholder() {\n return this.placeholder || null;\n }\n /** Make sure the input is a supported type. */\n _validateType() {\n if (MAT_INPUT_INVALID_TYPES.indexOf(this._type) > -1 && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getMatInputUnsupportedTypeError(this._type);\n }\n }\n /** Checks whether the input type is one of the types that are never empty. */\n _isNeverEmpty() {\n return this._neverEmptyInputTypes.indexOf(this._type) > -1;\n }\n /** Checks whether the input is invalid based on the native validation. */\n _isBadInput() {\n // The `validity` property won't be present on platform-server.\n let validity = this._elementRef.nativeElement.validity;\n return validity && validity.badInput;\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get empty() {\n return !this._isNeverEmpty() && !this._elementRef.nativeElement.value && !this._isBadInput() && !this.autofilled;\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get shouldLabelFloat() {\n if (this._isNativeSelect) {\n // For a single-selection ``, the label *always* floats to avoid\n // overlapping the label with the options.\n const selectElement = this._elementRef.nativeElement;\n const firstOption = selectElement.options[0];\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 this.focused || selectElement.multiple || !this.empty || !!(selectElement.selectedIndex > -1 && firstOption && firstOption.label);\n } else {\n return this.focused || !this.empty;\n }\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n setDescribedByIds(ids) {\n if (ids.length) {\n this._elementRef.nativeElement.setAttribute('aria-describedby', ids.join(' '));\n } else {\n this._elementRef.nativeElement.removeAttribute('aria-describedby');\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 /** Whether the form control is a native select that is displayed inline. */\n _isInlineSelect() {\n const element = this._elementRef.nativeElement;\n return this._isNativeSelect && (element.multiple || element.size > 1);\n }\n /**\n * In blink and webkit browsers a focused number input does not increment or decrement its value\n * on mouse wheel interaction unless a wheel event listener is attached to it or one of its ancestors or a passive wheel listener is attached somewhere in the DOM.\n * For example: Hitting a tooltip once enables the mouse wheel input for all number inputs as long as it exists.\n * In order to get reliable and intuitive behavior we apply a wheel event on our own\n * thus making sure increment and decrement by mouse wheel works every time.\n * @docs-private\n */\n _ensureWheelDefaultBehavior() {\n if (!this._webkitBlinkWheelListenerAttached && this._type === 'number' && (this._platform.BLINK || this._platform.WEBKIT)) {\n this._ngZone.runOutsideAngular(() => {\n this._elementRef.nativeElement.addEventListener('wheel', this._webkitBlinkWheelListener);\n });\n this._webkitBlinkWheelListenerAttached = true;\n }\n if (this._webkitBlinkWheelListenerAttached && this._type !== 'number') {\n this._elementRef.nativeElement.removeEventListener('wheel', this._webkitBlinkWheelListener);\n this._webkitBlinkWheelListenerAttached = true;\n }\n }\n static {\n this.ɵfac = function MatInput_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatInput)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(i2.NgControl, 10), i0.ɵɵdirectiveInject(i2.NgForm, 8), i0.ɵɵdirectiveInject(i2.FormGroupDirective, 8), i0.ɵɵdirectiveInject(i3.ErrorStateMatcher), i0.ɵɵdirectiveInject(MAT_INPUT_VALUE_ACCESSOR, 10), i0.ɵɵdirectiveInject(i4.AutofillMonitor), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(MAT_FORM_FIELD, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatInput,\n selectors: [[\"input\", \"matInput\", \"\"], [\"textarea\", \"matInput\", \"\"], [\"select\", \"matNativeControl\", \"\"], [\"input\", \"matNativeControl\", \"\"], [\"textarea\", \"matNativeControl\", \"\"]],\n hostAttrs: [1, \"mat-mdc-input-element\"],\n hostVars: 18,\n hostBindings: function MatInput_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"focus\", function MatInput_focus_HostBindingHandler() {\n return ctx._focusChanged(true);\n })(\"blur\", function MatInput_blur_HostBindingHandler() {\n return ctx._focusChanged(false);\n })(\"input\", function MatInput_input_HostBindingHandler() {\n return ctx._onInput();\n });\n }\n if (rf & 2) {\n i0.ɵɵhostProperty(\"id\", ctx.id)(\"disabled\", ctx.disabled)(\"required\", ctx.required);\n i0.ɵɵattribute(\"name\", ctx.name || null)(\"readonly\", ctx.readonly && !ctx._isNativeSelect || null)(\"aria-invalid\", ctx.empty && ctx.required ? null : ctx.errorState)(\"aria-required\", ctx.required)(\"id\", ctx.id);\n i0.ɵɵclassProp(\"mat-input-server\", ctx._isServer)(\"mat-mdc-form-field-textarea-control\", ctx._isInFormField && ctx._isTextarea)(\"mat-mdc-form-field-input-control\", ctx._isInFormField)(\"mdc-text-field__input\", ctx._isInFormField)(\"mat-mdc-native-select-inline\", ctx._isInlineSelect());\n }\n },\n inputs: {\n disabled: \"disabled\",\n id: \"id\",\n placeholder: \"placeholder\",\n name: \"name\",\n required: \"required\",\n type: \"type\",\n errorStateMatcher: \"errorStateMatcher\",\n userAriaDescribedBy: [0, \"aria-describedby\", \"userAriaDescribedBy\"],\n value: \"value\",\n readonly: \"readonly\"\n },\n exportAs: [\"matInput\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: MatFormFieldControl,\n useExisting: MatInput\n }]), i0.ɵɵNgOnChangesFeature]\n });\n }\n }\n return MatInput;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet MatInputModule = /*#__PURE__*/(() => {\n class MatInputModule {\n static {\n this.ɵfac = function MatInputModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatInputModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatInputModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [MatCommonModule, MatFormFieldModule, MatFormFieldModule, TextFieldModule, MatCommonModule]\n });\n }\n }\n return MatInputModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_INPUT_VALUE_ACCESSOR, MatInput, MatInputModule, getMatInputUnsupportedTypeError };\n"],"names":["_c0","_c1","_c2","_c3","_c4","_c5","_c6","_c7","_c8","_c9","MatFormField_ng_template_0_Conditional_0_Conditional_2_Template","rf","ctx","ɵɵelement","MatFormField_ng_template_0_Conditional_0_Template","ɵɵelementStart","ɵɵprojection","ɵɵtemplate","ɵɵelementEnd","ctx_r1","ɵɵnextContext","ɵɵproperty","ɵɵattribute","ɵɵadvance","ɵɵconditional","MatFormField_ng_template_0_Template","MatFormField_Conditional_4_Template","MatFormField_Conditional_6_Conditional_1_ng_template_0_Template","MatFormField_Conditional_6_Conditional_1_Template","labelTemplate_r3","ɵɵreference","MatFormField_Conditional_6_Template","MatFormField_Conditional_7_Template","MatFormField_Conditional_8_Template","MatFormField_Conditional_10_ng_template_0_Template","MatFormField_Conditional_10_Template","MatFormField_Conditional_12_Template","MatFormField_Conditional_13_Template","MatFormField_Conditional_14_Template","MatFormField_Case_16_Template","MatFormField_Case_17_Conditional_1_Template","ɵɵtext","ɵɵtextInterpolate","MatFormField_Case_17_Template","MatLabel","_MatLabel","__ngFactoryType__","ɵɵdefineDirective","nextUniqueId$2","MAT_ERROR","InjectionToken","MatError","_MatError","ariaLive","elementRef","ɵɵinjectAttribute","ɵɵdirectiveInject","ElementRef","ɵɵhostProperty","ɵɵProvidersFeature","nextUniqueId$1","MatHint","_MatHint","ɵɵclassProp","MAT_PREFIX","MAT_SUFFIX","FLOATING_LABEL_PARENT","MatFormFieldFloatingLabel","_MatFormFieldFloatingLabel","value","_elementRef","inject","SharedResizeObserver","NgZone","Subscription","estimateScrollWidth","element","htmlEl","clone","scrollWidth","ACTIVATE_CLASS","DEACTIVATING_CLASS","MatFormFieldLineRipple","_MatFormFieldLineRipple","ngZone","event","classList","isDeactivating","MatFormFieldNotchedOutline","_MatFormFieldNotchedOutline","_ngZone","label","labelWidth","ɵɵdefineComponent","ɵɵviewQuery","_t","ɵɵqueryRefresh","ɵɵloadQuery","ɵɵStandaloneFeature","ɵɵprojectionDef","matFormFieldAnimations","trigger","state","style","transition","animate","MatFormFieldControl","_MatFormFieldControl","MAT_FORM_FIELD","MAT_FORM_FIELD_DEFAULT_OPTIONS","nextUniqueId","DEFAULT_APPEARANCE","DEFAULT_FLOAT_LABEL","DEFAULT_SUBSCRIPT_SIZING","FLOATING_LABEL_DEFAULT_DOCKED_TRANSFORM","MatFormField","_MatFormField","coerceBooleanProperty","_a","oldValue","newAppearance","_changeDetectorRef","_unusedNgZone","_dir","_platform","_defaults","_animationMode","_unusedDocument","contentChild","Subject","Injector","computed","_b","previousControl","control","classPrefix","takeUntil","p","s","merge","_c","afterRender","prop","ids","startHint","hint","endHint","error","_d","floatingLabel","iconPrefixContainer","textPrefixContainer","iconSuffixContainer","textSuffixContainer","iconPrefixContainerWidth","textPrefixContainerWidth","iconSuffixContainerWidth","textSuffixContainerWidth","negate","prefixWidth","labelHorizontalOffset","prefixAndSuffixWidth","rootNode","ChangeDetectorRef","Directionality","Platform","ANIMATION_MODULE_TYPE","DOCUMENT","dirIndex","ɵɵcontentQuerySignal","ɵɵcontentQuery","ɵɵqueryAdvance","_r1","ɵɵgetCurrentView","ɵɵtemplateRefExtractor","ɵɵlistener","$event","ɵɵrestoreView","ɵɵresetView","tmp_16_0","NgTemplateOutlet","listenerOptions","normalizePassiveListenerOptions","AutofillMonitor","_AutofillMonitor","elementOrRef","EMPTY","coerceElement","info","result","cssClass","listener","_info","ɵɵinject","ɵɵdefineInjectable","MAT_INPUT_VALUE_ACCESSOR","MAT_INPUT_INVALID_TYPES","MatInput","_MatInput","Validators","getSupportedInputTypes","ngControl","parentForm","parentFormGroup","defaultErrorStateMatcher","inputValueAccessor","_autofillMonitor","_formField","t","el","nodeName","_ErrorStateTracker","options","isFocused","newValue","placeholder","validity","selectElement","firstOption","NgControl","NgForm","FormGroupDirective","ErrorStateMatcher","ɵɵNgOnChangesFeature"],"mappings":"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","x_google_ignoreList":[0,1,2]}