1import { 2 SharedResizeObserver 3} from "./chunk-J7W7XB4C.js"; 4import { 5 coerceBooleanProperty 6} from "./chunk-PO4XS2LG.js"; 7import { 8 _animationsDisabled 9} from "./chunk-YVTSSW3S.js"; 10import { 11 Directionality, 12 MatCommonModule, 13 ObserversModule, 14 Platform, 15 _IdGenerator 16} from "./chunk-JFDD3AXM.js"; 17import { 18 ChangeDetectionStrategy, 19 ChangeDetectorRef, 20 Component, 21 ContentChild, 22 ContentChildren, 23 Directive, 24 ElementRef, 25 Injectable, 26 InjectionToken, 27 Input, 28 NgModule, 29 NgTemplateOutlet, 30 NgZone, 31 Renderer2, 32 Subject, 33 Subscription, 34 ViewChild, 35 ViewEncapsulation, 36 afterRenderEffect, 37 computed, 38 contentChild, 39 filter, 40 inject, 41 map, 42 merge, 43 pairwise, 44 setClassMetadata, 45 signal, 46 startWith, 47 takeUntil, 48 viewChild, 49 ɵɵProvidersFeature, 50 ɵɵadvance, 51 ɵɵattribute, 52 ɵɵclassProp, 53 ɵɵconditional, 54 ɵɵconditionalCreate, 55 ɵɵcontentQuery, 56 ɵɵcontentQuerySignal, 57 ɵɵdefineComponent, 58 ɵɵdefineDirective, 59 ɵɵdefineInjectable, 60 ɵɵdefineInjector, 61 ɵɵdefineNgModule, 62 ɵɵdomElement, 63 ɵɵdomElementEnd, 64 ɵɵdomElementStart, 65 ɵɵdomProperty, 66 ɵɵelement, 67 ɵɵelementEnd, 68 ɵɵelementStart, 69 ɵɵgetCurrentView, 70 ɵɵlistener, 71 ɵɵloadQuery, 72 ɵɵnextContext, 73 ɵɵprojection, 74 ɵɵprojectionDef, 75 ɵɵproperty, 76 ɵɵqueryAdvance, 77 ɵɵqueryRefresh, 78 ɵɵreference, 79 ɵɵresetView, 80 ɵɵrestoreView, 81 ɵɵtemplate, 82 ɵɵtemplateRefExtractor, 83 ɵɵtext, 84 ɵɵtextInterpolate, 85 ɵɵviewQuery, 86 ɵɵviewQuerySignal 87} from "./chunk-6KZDFU4W.js"; 88
vendor: 127,687 bytes, lines 89-1492
89// node_modules/@angular/material/fesm2022/form-field-CFbrnFED.mjs 90var _c0 = ["notch"]; 91var _c1 = ["matFormFieldNotchedOutline", ""]; 92var _c2 = ["*"]; 93var _c3 = ["iconPrefixContainer"]; 94var _c4 = ["textPrefixContainer"]; 95var _c5 = ["iconSuffixContainer"]; 96var _c6 = ["textSuffixContainer"]; 97var _c7 = ["textField"]; 98var _c8 = ["*", [["mat-label"]], [["", "matPrefix", ""], ["", "matIconPrefix", ""]], [["", "matTextPrefix", ""]], [["", "matTextSuffix", ""]], [["", "matSuffix", ""], ["", "matIconSuffix", ""]], [["mat-error"], ["", "matError", ""]], [["mat-hint", 3, "align", "end"]], [["mat-hint", "align", "end"]]]; 99var _c9 = ["*", "mat-label", "[matPrefix], [matIconPrefix]", "[matTextPrefix]", "[matTextSuffix]", "[matSuffix], [matIconSuffix]", "mat-error, [matError]", "mat-hint:not([align='end'])", "mat-hint[align='end']"]; 100function MatFormField_ng_template_0_Conditional_0_Conditional_2_Template(rf, ctx) { 101 if (rf & 1) { 102 \u0275\u0275element(0, "span", 20); 103 } 104} 105function MatFormField_ng_template_0_Conditional_0_Template(rf, ctx) { 106 if (rf & 1) { 107 \u0275\u0275elementStart(0, "label", 19); 108 \u0275\u0275projection(1, 1); 109 \u0275\u0275conditionalCreate(2, MatFormField_ng_template_0_Conditional_0_Conditional_2_Template, 1, 0, "span", 20); 110 \u0275\u0275elementEnd(); 111 } 112 if (rf & 2) { 113 const ctx_r1 = \u0275\u0275nextContext(2); 114 \u0275\u0275property("floating", ctx_r1._shouldLabelFloat())("monitorResize", ctx_r1._hasOutline())("id", ctx_r1._labelId); 115 \u0275\u0275attribute("for", ctx_r1._control.disableAutomaticLabeling ? null : ctx_r1._control.id); 116 \u0275\u0275advance(2); 117 \u0275\u0275conditional(!ctx_r1.hideRequiredMarker && ctx_r1._control.required ? 2 : -1); 118 } 119} 120function MatFormField_ng_template_0_Template(rf, ctx) { 121 if (rf & 1) { 122 \u0275\u0275conditionalCreate(0, MatFormField_ng_template_0_Conditional_0_Template, 3, 5, "label", 19); 123 } 124 if (rf & 2) { 125 const ctx_r1 = \u0275\u0275nextContext(); 126 \u0275\u0275conditional(ctx_r1._hasFloatingLabel() ? 0 : -1); 127 } 128} 129function MatFormField_Conditional_4_Template(rf, ctx) { 130 if (rf & 1) { 131 \u0275\u0275element(0, "div", 7); 132 } 133} 134function MatFormField_Conditional_6_Conditional_1_ng_template_0_Template(rf, ctx) { 135} 136function MatFormField_Conditional_6_Conditional_1_Template(rf, ctx) { 137 if (rf & 1) { 138 \u0275\u0275template(0, MatFormField_Conditional_6_Conditional_1_ng_template_0_Template, 0, 0, "ng-template", 13); 139 } 140 if (rf & 2) { 141 \u0275\u0275nextContext(2); 142 const labelTemplate_r3 = \u0275\u0275reference(1); 143 \u0275\u0275property("ngTemplateOutlet", labelTemplate_r3); 144 } 145} 146function MatFormField_Conditional_6_Template(rf, ctx) { 147 if (rf & 1) { 148 \u0275\u0275elementStart(0, "div", 9); 149 \u0275\u0275conditionalCreate(1, MatFormField_Conditional_6_Conditional_1_Template, 1, 1, null, 13); 150 \u0275\u0275elementEnd(); 151 } 152 if (rf & 2) { 153 const ctx_r1 = \u0275\u0275nextContext(); 154 \u0275\u0275property("matFormFieldNotchedOutlineOpen", ctx_r1._shouldLabelFloat()); 155 \u0275\u0275advance(); 156 \u0275\u0275conditional(!ctx_r1._forceDisplayInfixLabel() ? 1 : -1); 157 } 158} 159function MatFormField_Conditional_7_Template(rf, ctx) { 160 if (rf & 1) { 161 \u0275\u0275elementStart(0, "div", 10, 2); 162 \u0275\u0275projection(2, 2); 163 \u0275\u0275elementEnd(); 164 } 165} 166function MatFormField_Conditional_8_Template(rf, ctx) { 167 if (rf & 1) { 168 \u0275\u0275elementStart(0, "div", 11, 3); 169 \u0275\u0275projection(2, 3); 170 \u0275\u0275elementEnd(); 171 } 172} 173function MatFormField_Conditional_10_ng_template_0_Template(rf, ctx) { 174} 175function MatFormField_Conditional_10_Template(rf, ctx) { 176 if (rf & 1) { 177 \u0275\u0275template(0, MatFormField_Conditional_10_ng_template_0_Template, 0, 0, "ng-template", 13); 178 } 179 if (rf & 2) { 180 \u0275\u0275nextContext(); 181 const labelTemplate_r3 = \u0275\u0275reference(1); 182 \u0275\u0275property("ngTemplateOutlet", labelTemplate_r3); 183 } 184} 185function MatFormField_Conditional_12_Template(rf, ctx) { 186 if (rf & 1) { 187 \u0275\u0275elementStart(0, "div", 14, 4); 188 \u0275\u0275projection(2, 4); 189 \u0275\u0275elementEnd(); 190 } 191} 192function MatFormField_Conditional_13_Template(rf, ctx) { 193 if (rf & 1) { 194 \u0275\u0275elementStart(0, "div", 15, 5); 195 \u0275\u0275projection(2, 5); 196 \u0275\u0275elementEnd(); 197 } 198} 199function MatFormField_Conditional_14_Template(rf, ctx) { 200 if (rf & 1) { 201 \u0275\u0275element(0, "div", 16); 202 } 203} 204function MatFormField_Case_17_Template(rf, ctx) { 205 if (rf & 1) { 206 \u0275\u0275projection(0, 6); 207 } 208} 209function MatFormField_Case_18_Conditional_0_Template(rf, ctx) { 210 if (rf & 1) { 211 \u0275\u0275elementStart(0, "mat-hint", 21); 212 \u0275\u0275text(1); 213 \u0275\u0275elementEnd(); 214 } 215 if (rf & 2) { 216 const ctx_r1 = \u0275\u0275nextContext(2); 217 \u0275\u0275property("id", ctx_r1._hintLabelId); 218 \u0275\u0275advance(); 219 \u0275\u0275textInterpolate(ctx_r1.hintLabel); 220 } 221} 222function MatFormField_Case_18_Template(rf, ctx) { 223 if (rf & 1) { 224 \u0275\u0275conditionalCreate(0, MatFormField_Case_18_Conditional_0_Template, 2, 2, "mat-hint", 21); 225 \u0275\u0275projection(1, 7); 226 \u0275\u0275element(2, "div", 22); 227 \u0275\u0275projection(3, 8); 228 } 229 if (rf & 2) { 230 const ctx_r1 = \u0275\u0275nextContext(); 231 \u0275\u0275conditional(ctx_r1.hintLabel ? 0 : -1); 232 } 233} 234var MatLabel = class _MatLabel { 235 static \u0275fac = function MatLabel_Factory(__ngFactoryType__) { 236 return new (__ngFactoryType__ || _MatLabel)(); 237 }; 238 static \u0275dir = /* @__PURE__ */ \u0275\u0275defineDirective({ 239 type: _MatLabel, 240 selectors: [["mat-label"]] 241 }); 242}; 243(() => { 244 (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(MatLabel, [{ 245 type: Directive, 246 args: [{ 247 selector: "mat-label" 248 }] 249 }], null, null); 250})(); 251var MAT_ERROR = new InjectionToken("MatError"); 252var MatError = class _MatError { 253 id = inject(_IdGenerator).getId("mat-mdc-error-"); 254 constructor() { 255 } 256 static \u0275fac = function MatError_Factory(__ngFactoryType__) { 257 return new (__ngFactoryType__ || _MatError)(); 258 }; 259 static \u0275dir = /* @__PURE__ */ \u0275\u0275defineDirective({ 260 type: _MatError, 261 selectors: [["mat-error"], ["", "matError", ""]], 262 hostAttrs: [1, "mat-mdc-form-field-error", "mat-mdc-form-field-bottom-align"], 263 hostVars: 1, 264 hostBindings: function MatError_HostBindings(rf, ctx) { 265 if (rf & 2) { 266 \u0275\u0275domProperty("id", ctx.id); 267 } 268 }, 269 inputs: { 270 id: "id" 271 }, 272 features: [\u0275\u0275ProvidersFeature([{ 273 provide: MAT_ERROR, 274 useExisting: _MatError 275 }])] 276 }); 277}; 278(() => { 279 (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(MatError, [{ 280 type: Directive, 281 args: [{ 282 selector: "mat-error, [matError]", 283 host: { 284 "class": "mat-mdc-form-field-error mat-mdc-form-field-bottom-align", 285 "[id]": "id" 286 }, 287 providers: [{ 288 provide: MAT_ERROR, 289 useExisting: MatError 290 }] 291 }] 292 }], () => [], { 293 id: [{ 294 type: Input 295 }] 296 }); 297})(); 298var MatHint = class _MatHint { 299 /** Whether to align the hint label at the start or end of the line. */ 300 align = "start"; 301 /** Unique ID for the hint. Used for the aria-describedby on the form field control. */ 302 id = inject(_IdGenerator).getId("mat-mdc-hint-"); 303 static \u0275fac = function MatHint_Factory(__ngFactoryType__) { 304 return new (__ngFactoryType__ || _MatHint)(); 305 }; 306 static \u0275dir = /* @__PURE__ */ \u0275\u0275defineDirective({ 307 type: _MatHint, 308 selectors: [["mat-hint"]], 309 hostAttrs: [1, "mat-mdc-form-field-hint", "mat-mdc-form-field-bottom-align"], 310 hostVars: 4, 311 hostBindings: function MatHint_HostBindings(rf, ctx) { 312 if (rf & 2) { 313 \u0275\u0275domProperty("id", ctx.id); 314 \u0275\u0275attribute("align", null); 315 \u0275\u0275classProp("mat-mdc-form-field-hint-end", ctx.align === "end"); 316 } 317 }, 318 inputs: { 319 align: "align", 320 id: "id" 321 } 322 }); 323}; 324(() => { 325 (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(MatHint, [{ 326 type: Directive, 327 args: [{ 328 selector: "mat-hint", 329 host: { 330 "class": "mat-mdc-form-field-hint mat-mdc-form-field-bottom-align", 331 "[class.mat-mdc-form-field-hint-end]": 'align === "end"', 332 "[id]": "id", 333 // Remove align attribute to prevent it from interfering with layout. 334 "[attr.align]": "null" 335 } 336 }] 337 }], null, { 338 align: [{ 339 type: Input 340 }], 341 id: [{ 342 type: Input 343 }] 344 }); 345})(); 346var MAT_PREFIX = new InjectionToken("MatPrefix"); 347var MatPrefix = class _MatPrefix { 348 set _isTextSelector(value) { 349 this._isText = true; 350 } 351 _isText = false; 352 static \u0275fac = function MatPrefix_Factory(__ngFactoryType__) { 353 return new (__ngFactoryType__ || _MatPrefix)(); 354 }; 355 static \u0275dir = /* @__PURE__ */ \u0275\u0275defineDirective({ 356 type: _MatPrefix, 357 selectors: [["", "matPrefix", ""], ["", "matIconPrefix", ""], ["", "matTextPrefix", ""]], 358 inputs: { 359 _isTextSelector: [0, "matTextPrefix", "_isTextSelector"] 360 }, 361 features: [\u0275\u0275ProvidersFeature([{ 362 provide: MAT_PREFIX, 363 useExisting: _MatPrefix 364 }])] 365 }); 366}; 367(() => { 368 (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(MatPrefix, [{ 369 type: Directive, 370 args: [{ 371 selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", 372 providers: [{ 373 provide: MAT_PREFIX, 374 useExisting: MatPrefix 375 }] 376 }] 377 }], null, { 378 _isTextSelector: [{ 379 type: Input, 380 args: ["matTextPrefix"] 381 }] 382 }); 383})(); 384var MAT_SUFFIX = new InjectionToken("MatSuffix"); 385var MatSuffix = class _MatSuffix { 386 set _isTextSelector(value) { 387 this._isText = true; 388 } 389 _isText = false; 390 static \u0275fac = function MatSuffix_Factory(__ngFactoryType__) { 391 return new (__ngFactoryType__ || _MatSuffix)(); 392 }; 393 static \u0275dir = /* @__PURE__ */ \u0275\u0275defineDirective({ 394 type: _MatSuffix, 395 selectors: [["", "matSuffix", ""], ["", "matIconSuffix", ""], ["", "matTextSuffix", ""]], 396 inputs: { 397 _isTextSelector: [0, "matTextSuffix", "_isTextSelector"] 398 }, 399 features: [\u0275\u0275ProvidersFeature([{ 400 provide: MAT_SUFFIX, 401 useExisting: _MatSuffix 402 }])] 403 }); 404}; 405(() => { 406 (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(MatSuffix, [{ 407 type: Directive, 408 args: [{ 409 selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", 410 providers: [{ 411 provide: MAT_SUFFIX, 412 useExisting: MatSuffix 413 }] 414 }] 415 }], null, { 416 _isTextSelector: [{ 417 type: Input, 418 args: ["matTextSuffix"] 419 }] 420 }); 421})(); 422var FLOATING_LABEL_PARENT = new InjectionToken("FloatingLabelParent"); 423var MatFormFieldFloatingLabel = class _MatFormFieldFloatingLabel { 424 _elementRef = inject(ElementRef); 425 /** Whether the label is floating. */ 426 get floating() { 427 return this._floating; 428 } 429 set floating(value) { 430 this._floating = value; 431 if (this.monitorResize) { 432 this._handleResize(); 433 } 434 } 435 _floating = false; 436 /** Whether to monitor for resize events on the floating label. */ 437 get monitorResize() { 438 return this._monitorResize; 439 } 440 set monitorResize(value) { 441 this._monitorResize = value; 442 if (this._monitorResize) { 443 this._subscribeToResize(); 444 } else { 445 this._resizeSubscription.unsubscribe(); 446 } 447 } 448 _monitorResize = false; 449 /** The shared ResizeObserver. */ 450 _resizeObserver = inject(SharedResizeObserver); 451 /** The Angular zone. */ 452 _ngZone = inject(NgZone); 453 /** The parent form-field. */ 454 _parent = inject(FLOATING_LABEL_PARENT); 455 /** The current resize event subscription. */ 456 _resizeSubscription = new Subscription(); 457 constructor() { 458 } 459 ngOnDestroy() { 460 this._resizeSubscription.unsubscribe(); 461 } 462 /** Gets the width of the label. Used for the outline notch. */ 463 getWidth() { 464 return estimateScrollWidth(this._elementRef.nativeElement); 465 } 466 /** Gets the HTML element for the floating label. */ 467 get element() { 468 return this._elementRef.nativeElement; 469 } 470 /** Handles resize events from the ResizeObserver. */ 471 _handleResize() { 472 setTimeout(() => this._parent._handleLabelResized()); 473 } 474 /** Subscribes to resize events. */ 475 _subscribeToResize() { 476 this._resizeSubscription.unsubscribe(); 477 this._ngZone.runOutsideAngular(() => { 478 this._resizeSubscription = this._resizeObserver.observe(this._elementRef.nativeElement, { 479 box: "border-box" 480 }).subscribe(() => this._handleResize()); 481 }); 482 } 483 static \u0275fac = function MatFormFieldFloatingLabel_Factory(__ngFactoryType__) { 484 return new (__ngFactoryType__ || _MatFormFieldFloatingLabel)(); 485 }; 486 static \u0275dir = /* @__PURE__ */ \u0275\u0275defineDirective({ 487 type: _MatFormFieldFloatingLabel, 488 selectors: [["label", "matFormFieldFloatingLabel", ""]], 489 hostAttrs: [1, "mdc-floating-label", "mat-mdc-floating-label"], 490 hostVars: 2, 491 hostBindings: function MatFormFieldFloatingLabel_HostBindings(rf, ctx) { 492 if (rf & 2) { 493 \u0275\u0275classProp("mdc-floating-label--float-above", ctx.floating); 494 } 495 }, 496 inputs: { 497 floating: "floating", 498 monitorResize: "monitorResize" 499 } 500 }); 501}; 502(() => { 503 (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(MatFormFieldFloatingLabel, [{ 504 type: Directive, 505 args: [{ 506 selector: "label[matFormFieldFloatingLabel]", 507 host: { 508 "class": "mdc-floating-label mat-mdc-floating-label", 509 "[class.mdc-floating-label--float-above]": "floating" 510 } 511 }] 512 }], () => [], { 513 floating: [{ 514 type: Input 515 }], 516 monitorResize: [{ 517 type: Input 518 }] 519 }); 520})(); 521function estimateScrollWidth(element) { 522 const htmlEl = element; 523 if (htmlEl.offsetParent !== null) { 524 return htmlEl.scrollWidth; 525 } 526 const clone = htmlEl.cloneNode(true); 527 clone.style.setProperty("position", "absolute"); 528 clone.style.setProperty("transform", "translate(-9999px, -9999px)"); 529 document.documentElement.appendChild(clone); 530 const scrollWidth = clone.scrollWidth; 531 clone.remove(); 532 return scrollWidth; 533} 534var ACTIVATE_CLASS = "mdc-line-ripple--active"; 535var DEACTIVATING_CLASS = "mdc-line-ripple--deactivating"; 536var MatFormFieldLineRipple = class _MatFormFieldLineRipple { 537 _elementRef = inject(ElementRef); 538 _cleanupTransitionEnd; 539 constructor() { 540 const ngZone = inject(NgZone); 541 const renderer = inject(Renderer2); 542 ngZone.runOutsideAngular(() => { 543 this._cleanupTransitionEnd = renderer.listen(this._elementRef.nativeElement, "transitionend", this._handleTransitionEnd); 544 }); 545 } 546 activate() { 547 const classList = this._elementRef.nativeElement.classList; 548 classList.remove(DEACTIVATING_CLASS); 549 classList.add(ACTIVATE_CLASS); 550 } 551 deactivate() { 552 this._elementRef.nativeElement.classList.add(DEACTIVATING_CLASS); 553 } 554 _handleTransitionEnd = (event) => { 555 const classList = this._elementRef.nativeElement.classList; 556 const isDeactivating = classList.contains(DEACTIVATING_CLASS); 557 if (event.propertyName === "opacity" && isDeactivating) { 558 classList.remove(ACTIVATE_CLASS, DEACTIVATING_CLASS); 559 } 560 }; 561 ngOnDestroy() { 562 this._cleanupTransitionEnd(); 563 } 564 static \u0275fac = function MatFormFieldLineRipple_Factory(__ngFactoryType__) { 565 return new (__ngFactoryType__ || _MatFormFieldLineRipple)(); 566 }; 567 static \u0275dir = /* @__PURE__ */ \u0275\u0275defineDirective({ 568 type: _MatFormFieldLineRipple, 569 selectors: [["div", "matFormFieldLineRipple", ""]], 570 hostAttrs: [1, "mdc-line-ripple"] 571 }); 572}; 573(() => { 574 (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(MatFormFieldLineRipple, [{ 575 type: Directive, 576 args: [{ 577 selector: "div[matFormFieldLineRipple]", 578 host: { 579 "class": "mdc-line-ripple" 580 } 581 }] 582 }], () => [], null); 583})(); 584var MatFormFieldNotchedOutline = class _MatFormFieldNotchedOutline { 585 _elementRef = inject(ElementRef); 586 _ngZone = inject(NgZone); 587 /** Whether the notch should be opened. */ 588 open = false; 589 _notch; 590 ngAfterViewInit() { 591 const element = this._elementRef.nativeElement; 592 const label = element.querySelector(".mdc-floating-label"); 593 if (label) { 594 element.classList.add("mdc-notched-outline--upgraded"); 595 if (typeof requestAnimationFrame === "function") { 596 label.style.transitionDuration = "0s"; 597 this._ngZone.runOutsideAngular(() => { 598 requestAnimationFrame(() => label.style.transitionDuration = ""); 599 }); 600 } 601 } else { 602 element.classList.add("mdc-notched-outline--no-label"); 603 } 604 } 605 _setNotchWidth(labelWidth) { 606 const notch = this._notch.nativeElement; 607 if (!this.open || !labelWidth) { 608 notch.style.width = ""; 609 } else { 610 const NOTCH_ELEMENT_PADDING = 8; 611 const NOTCH_ELEMENT_BORDER = 1; 612 notch.style.width = `calc(${labelWidth}px * var(--mat-mdc-form-field-floating-label-scale, 0.75) + ${NOTCH_ELEMENT_PADDING + NOTCH_ELEMENT_BORDER}px)`; 613 } 614 } 615 _setMaxWidth(prefixAndSuffixWidth) { 616 this._notch.nativeElement.style.setProperty("--mat-form-field-notch-max-width", `calc(100% - ${prefixAndSuffixWidth}px)`); 617 } 618 static \u0275fac = function MatFormFieldNotchedOutline_Factory(__ngFactoryType__) { 619 return new (__ngFactoryType__ || _MatFormFieldNotchedOutline)(); 620 }; 621 static \u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ 622 type: _MatFormFieldNotchedOutline, 623 selectors: [["div", "matFormFieldNotchedOutline", ""]], 624 viewQuery: function MatFormFieldNotchedOutline_Query(rf, ctx) { 625 if (rf & 1) { 626 \u0275\u0275viewQuery(_c0, 5); 627 } 628 if (rf & 2) { 629 let _t; 630 \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx._notch = _t.first); 631 } 632 }, 633 hostAttrs: [1, "mdc-notched-outline"], 634 hostVars: 2, 635 hostBindings: function MatFormFieldNotchedOutline_HostBindings(rf, ctx) { 636 if (rf & 2) { 637 \u0275\u0275classProp("mdc-notched-outline--notched", ctx.open); 638 } 639 }, 640 inputs: { 641 open: [0, "matFormFieldNotchedOutlineOpen", "open"] 642 }, 643 attrs: _c1, 644 ngContentSelectors: _c2, 645 decls: 5, 646 vars: 0, 647 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"]], 648 template: function MatFormFieldNotchedOutline_Template(rf, ctx) { 649 if (rf & 1) { 650 \u0275\u0275projectionDef(); 651 \u0275\u0275domElement(0, "div", 1); 652 \u0275\u0275domElementStart(1, "div", 2, 0); 653 \u0275\u0275projection(3); 654 \u0275\u0275domElementEnd(); 655 \u0275\u0275domElement(4, "div", 3); 656 } 657 }, 658 encapsulation: 2, 659 changeDetection: 0 660 }); 661}; 662(() => { 663 (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(MatFormFieldNotchedOutline, [{ 664 type: Component, 665 args: [{ 666 selector: "div[matFormFieldNotchedOutline]", 667 host: { 668 "class": "mdc-notched-outline", 669 // Besides updating the notch state through the MDC component, we toggle this class through 670 // a host binding in order to ensure that the notched-outline renders correctly on the server. 671 "[class.mdc-notched-outline--notched]": "open" 672 }, 673 changeDetection: ChangeDetectionStrategy.OnPush, 674 encapsulation: ViewEncapsulation.None, 675 template: '<div class="mat-mdc-notch-piece mdc-notched-outline__leading"></div>\n<div class="mat-mdc-notch-piece mdc-notched-outline__notch" #notch>\n <ng-content></ng-content>\n</div>\n<div class="mat-mdc-notch-piece mdc-notched-outline__trailing"></div>\n' 676 }] 677 }], null, { 678 open: [{ 679 type: Input, 680 args: ["matFormFieldNotchedOutlineOpen"] 681 }], 682 _notch: [{ 683 type: ViewChild, 684 args: ["notch"] 685 }] 686 }); 687})(); 688var MatFormFieldControl = class _MatFormFieldControl { 689 /** The value of the control. */ 690 value; 691 /** 692 * Stream that emits whenever the state of the control changes such that the parent `MatFormField` 693 * needs to run change detection. 694 */ 695 stateChanges; 696 /** The element ID for this control. */ 697 id; 698 /** The placeholder for this control. */ 699 placeholder; 700 /** Gets the AbstractControlDirective for this control. */ 701 ngControl; 702 /** Whether the control is focused. */ 703 focused; 704 /** Whether the control is empty. */ 705 empty; 706 /** Whether the `MatFormField` label should try to float. */ 707 shouldLabelFloat; 708 /** Whether the control is required. */ 709 required; 710 /** Whether the control is disabled. */ 711 disabled; 712 /** Whether the control is in an error state. */ 713 errorState; 714 /** 715 * An optional name for the control type that can be used to distinguish `mat-form-field` elements 716 * based on their control type. The form field will add a class, 717 * `mat-form-field-type-{{controlType}}` to its root element. 718 */ 719 controlType; 720 /** 721 * Whether the input is currently in an autofilled state. If property is not present on the 722 * control it is assumed to be false. 723 */ 724 autofilled; 725 /** 726 * Value of `aria-describedby` that should be merged with the described-by ids 727 * which are set by the form-field. 728 */ 729 userAriaDescribedBy; 730 /** 731 * Whether to automatically assign the ID of the form field as the `for` attribute 732 * on the `<label>` inside the form field. Set this to true to prevent the form 733 * field from associating the label with non-native elements. 734 */ 735 disableAutomaticLabeling; 736 /** Gets the list of element IDs that currently describe this control. */ 737 describedByIds; 738 static \u0275fac = function MatFormFieldControl_Factory(__ngFactoryType__) { 739 return new (__ngFactoryType__ || _MatFormFieldControl)(); 740 }; 741 static \u0275dir = /* @__PURE__ */ \u0275\u0275defineDirective({ 742 type: _MatFormFieldControl 743 }); 744}; 745(() => { 746 (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(MatFormFieldControl, [{ 747 type: Directive 748 }], null, null); 749})(); 750function getMatFormFieldDuplicatedHintError(align) { 751 return Error(`A hint was already declared for 'align="${align}"'.`); 752} 753function getMatFormFieldMissingControlError() { 754 return Error("mat-form-field must contain a MatFormFieldControl."); 755} 756var MAT_FORM_FIELD = new InjectionToken("MatFormField"); 757var MAT_FORM_FIELD_DEFAULT_OPTIONS = new InjectionToken("MAT_FORM_FIELD_DEFAULT_OPTIONS"); 758var DEFAULT_APPEARANCE = "fill"; 759var DEFAULT_FLOAT_LABEL = "auto"; 760var DEFAULT_SUBSCRIPT_SIZING = "fixed"; 761var FLOATING_LABEL_DEFAULT_DOCKED_TRANSFORM = `translateY(-50%)`; 762var MatFormField = class _MatFormField { 763 _elementRef = inject(ElementRef); 764 _changeDetectorRef = inject(ChangeDetectorRef); 765 _dir = inject(Directionality); 766 _platform = inject(Platform); 767 _idGenerator = inject(_IdGenerator); 768 _ngZone = inject(NgZone); 769 _defaults = inject(MAT_FORM_FIELD_DEFAULT_OPTIONS, { 770 optional: true 771 }); 772 _textField; 773 _iconPrefixContainer; 774 _textPrefixContainer; 775 _iconSuffixContainer; 776 _textSuffixContainer; 777 _floatingLabel; 778 _notchedOutline; 779 _lineRipple; 780 _iconPrefixContainerSignal = viewChild("iconPrefixContainer"); 781 _textPrefixContainerSignal = viewChild("textPrefixContainer"); 782 _iconSuffixContainerSignal = viewChild("iconSuffixContainer"); 783 _textSuffixContainerSignal = viewChild("textSuffixContainer"); 784 _prefixSuffixContainers = computed(() => { 785 return [this._iconPrefixContainerSignal(), this._textPrefixContainerSignal(), this._iconSuffixContainerSignal(), this._textSuffixContainerSignal()].map((container) => container?.nativeElement).filter((e) => e !== void 0); 786 }); 787 _formFieldControl; 788 _prefixChildren; 789 _suffixChildren; 790 _errorChildren; 791 _hintChildren; 792 _labelChild = contentChild(MatLabel); 793 /** Whether the required marker should be hidden. */ 794 get hideRequiredMarker() { 795 return this._hideRequiredMarker; 796 } 797 set hideRequiredMarker(value) { 798 this._hideRequiredMarker = coerceBooleanProperty(value); 799 } 800 _hideRequiredMarker = false; 801 /** 802 * Theme color of the form field. This API is supported in M2 themes only, it 803 * has no effect in M3 themes. For color customization in M3, see https://material.angular.dev/components/form-field/styling. 804 * 805 * For information on applying color variants in M3, see 806 * https://material.angular.dev/guide/material-2-theming#optional-add-backwards-compatibility-styles-for-color-variants 807 */ 808 color = "primary"; 809 /** Whether the label should always float or float as the user types. */ 810 get floatLabel() { 811 return this._floatLabel || this._defaults?.floatLabel || DEFAULT_FLOAT_LABEL; 812 } 813 set floatLabel(value) { 814 if (value !== this._floatLabel) { 815 this._floatLabel = value; 816 this._changeDetectorRef.markForCheck(); 817 } 818 } 819 _floatLabel; 820 /** The form field appearance style. */ 821 get appearance() { 822 return this._appearanceSignal(); 823 } 824 set appearance(value) { 825 const newAppearance = value || this._defaults?.appearance || DEFAULT_APPEARANCE; 826 if (typeof ngDevMode === "undefined" || ngDevMode) { 827 if (newAppearance !== "fill" && newAppearance !== "outline") { 828 throw new Error(`MatFormField: Invalid appearance "${newAppearance}", valid values are "fill" or "outline".`); 829 } 830 } 831 this._appearanceSignal.set(newAppearance); 832 } 833 _appearanceSignal = signal(DEFAULT_APPEARANCE); 834 /** 835 * Whether the form field should reserve space for one line of hint/error text (default) 836 * or to have the spacing grow from 0px as needed based on the size of the hint/error content. 837 * Note that when using dynamic sizing, layout shifts will occur when hint/error text changes. 838 */ 839 get subscriptSizing() { 840 return this._subscriptSizing || this._defaults?.subscriptSizing || DEFAULT_SUBSCRIPT_SIZING; 841 } 842 set subscriptSizing(value) { 843 this._subscriptSizing = value || this._defaults?.subscriptSizing || DEFAULT_SUBSCRIPT_SIZING; 844 } 845 _subscriptSizing = null; 846 /** Text for the form field hint. */ 847 get hintLabel() { 848 return this._hintLabel; 849 } 850 set hintLabel(value) { 851 this._hintLabel = value; 852 this._processHints(); 853 } 854 _hintLabel = ""; 855 _hasIconPrefix = false; 856 _hasTextPrefix = false; 857 _hasIconSuffix = false; 858 _hasTextSuffix = false; 859 // Unique id for the internal form field label. 860 _labelId = this._idGenerator.getId("mat-mdc-form-field-label-"); 861 // Unique id for the hint label. 862 _hintLabelId = this._idGenerator.getId("mat-mdc-hint-"); 863 // Ids obtained from the error and hint fields 864 _describedByIds; 865 /** Gets the current form field control */ 866 get _control() { 867 return this._explicitFormFieldControl || this._formFieldControl; 868 } 869 set _control(value) { 870 this._explicitFormFieldControl = value; 871 } 872 _destroyed = new Subject(); 873 _isFocused = null; 874 _explicitFormFieldControl; 875 _previousControl = null; 876 _previousControlValidatorFn = null; 877 _stateChanges; 878 _valueChanges; 879 _describedByChanges; 880 _animationsDisabled = _animationsDisabled(); 881 constructor() { 882 const defaults = this._defaults; 883 if (defaults) { 884 if (defaults.appearance) { 885 this.appearance = defaults.appearance; 886 } 887 this._hideRequiredMarker = Boolean(defaults?.hideRequiredMarker); 888 if (defaults.color) { 889 this.color = defaults.color; 890 } 891 } 892 this._syncOutlineLabelOffset(); 893 } 894 ngAfterViewInit() { 895 this._updateFocusState(); 896 if (!this._animationsDisabled) { 897 this._ngZone.runOutsideAngular(() => { 898 setTimeout(() => { 899 this._elementRef.nativeElement.classList.add("mat-form-field-animations-enabled"); 900 }, 300); 901 }); 902 } 903 this._changeDetectorRef.detectChanges(); 904 } 905 ngAfterContentInit() { 906 this._assertFormFieldControl(); 907 this._initializeSubscript(); 908 this._initializePrefixAndSuffix(); 909 } 910 ngAfterContentChecked() { 911 this._assertFormFieldControl(); 912 if (this._control !== this._previousControl) { 913 this._initializeControl(this._previousControl); 914 if (this._control.ngControl && this._control.ngControl.control) { 915 this._previousControlValidatorFn = this._control.ngControl.control.validator; 916 } 917 this._previousControl = this._control; 918 } 919 if (this._control.ngControl && this._control.ngControl.control) { 920 const validatorFn = this._control.ngControl.control.validator; 921 if (validatorFn !== this._previousControlValidatorFn) { 922 this._changeDetectorRef.markForCheck(); 923 } 924 } 925 } 926 ngOnDestroy() { 927 this._outlineLabelOffsetResizeObserver?.disconnect(); 928 this._stateChanges?.unsubscribe(); 929 this._valueChanges?.unsubscribe(); 930 this._describedByChanges?.unsubscribe(); 931 this._destroyed.next(); 932 this._destroyed.complete(); 933 } 934 /** 935 * Gets the id of the label element. If no label is present, returns `null`. 936 */ 937 getLabelId = computed(() => this._hasFloatingLabel() ? this._labelId : null); 938 /** 939 * Gets an ElementRef for the element that a overlay attached to the form field 940 * should be positioned relative to. 941 */ 942 getConnectedOverlayOrigin() { 943 return this._textField || this._elementRef; 944 } 945 /** Animates the placeholder up and locks it in position. */ 946 _animateAndLockLabel() { 947 if (this._hasFloatingLabel()) { 948 this.floatLabel = "always"; 949 } 950 } 951 /** Initializes the registered form field control. */ 952 _initializeControl(previousControl) { 953 const control = this._control; 954 const classPrefix = "mat-mdc-form-field-type-"; 955 if (previousControl) { 956 this._elementRef.nativeElement.classList.remove(classPrefix + previousControl.controlType); 957 } 958 if (control.controlType) { 959 this._elementRef.nativeElement.classList.add(classPrefix + control.controlType); 960 } 961 this._stateChanges?.unsubscribe(); 962 this._stateChanges = control.stateChanges.subscribe(() => { 963 this._updateFocusState(); 964 this._changeDetectorRef.markForCheck(); 965 }); 966 this._describedByChanges?.unsubscribe(); 967 this._describedByChanges = control.stateChanges.pipe(startWith([void 0, void 0]), map(() => [control.errorState, control.userAriaDescribedBy]), pairwise(), filter(([[prevErrorState, prevDescribedBy], [currentErrorState, currentDescribedBy]]) => { 968 return prevErrorState !== currentErrorState || prevDescribedBy !== currentDescribedBy; 969 })).subscribe(() => this._syncDescribedByIds()); 970 this._valueChanges?.unsubscribe(); 971 if (control.ngControl && control.ngControl.valueChanges) { 972 this._valueChanges = control.ngControl.valueChanges.pipe(takeUntil(this._destroyed)).subscribe(() => this._changeDetectorRef.markForCheck()); 973 } 974 } 975 _checkPrefixAndSuffixTypes() { 976 this._hasIconPrefix = !!this._prefixChildren.find((p) => !p._isText); 977 this._hasTextPrefix = !!this._prefixChildren.find((p) => p._isText); 978 this._hasIconSuffix = !!this._suffixChildren.find((s) => !s._isText); 979 this._hasTextSuffix = !!this._suffixChildren.find((s) => s._isText); 980 } 981 /** Initializes the prefix and suffix containers. */ 982 _initializePrefixAndSuffix() { 983 this._checkPrefixAndSuffixTypes(); 984 merge(this._prefixChildren.changes, this._suffixChildren.changes).subscribe(() => { 985 this._checkPrefixAndSuffixTypes(); 986 this._changeDetectorRef.markForCheck(); 987 }); 988 } 989 /** 990 * Initializes the subscript by validating hints and synchronizing "aria-describedby" ids 991 * with the custom form field control. Also subscribes to hint and error changes in order 992 * to be able to validate and synchronize ids on change. 993 */ 994 _initializeSubscript() { 995 this._hintChildren.changes.subscribe(() => { 996 this._processHints(); 997 this._changeDetectorRef.markForCheck(); 998 }); 999 this._errorChildren.changes.subscribe(() => { 1000 this._syncDescribedByIds(); 1001 this._changeDetectorRef.markForCheck(); 1002 }); 1003 this._validateHints(); 1004 this._syncDescribedByIds(); 1005 } 1006 /** Throws an error if the form field's control is missing. */ 1007 _assertFormFieldControl() { 1008 if (!this._control && (typeof ngDevMode === "undefined" || ngDevMode)) { 1009 throw getMatFormFieldMissingControlError(); 1010 } 1011 } 1012 _updateFocusState() { 1013 if (this._control.focused && !this._isFocused) { 1014 this._isFocused = true; 1015 this._lineRipple?.activate(); 1016 } else if (!this._control.focused && (this._isFocused || this._isFocused === null)) { 1017 this._isFocused = false; 1018 this._lineRipple?.deactivate(); 1019 } 1020 this._textField?.nativeElement.classList.toggle("mdc-text-field--focused", this._control.focused); 1021 } 1022 _outlineLabelOffsetResizeObserver = null; 1023 /** 1024 * The floating label in the docked state needs to account for prefixes. The horizontal offset 1025 * is calculated whenever the appearance changes to `outline`, the prefixes change, or when the 1026 * form field is added to the DOM. This method sets up all subscriptions which are needed to 1027 * trigger the label offset update. 1028 */ 1029 _syncOutlineLabelOffset() { 1030 afterRenderEffect({ 1031 earlyRead: () => { 1032 if (this._appearanceSignal() !== "outline") { 1033 this._outlineLabelOffsetResizeObserver?.disconnect(); 1034 return null; 1035 } 1036 if (globalThis.ResizeObserver) { 1037 this._outlineLabelOffsetResizeObserver ||= new globalThis.ResizeObserver(() => { 1038 this._writeOutlinedLabelStyles(this._getOutlinedLabelOffset()); 1039 }); 1040 for (const el of this._prefixSuffixContainers()) { 1041 this._outlineLabelOffsetResizeObserver.observe(el, { 1042 box: "border-box" 1043 }); 1044 } 1045 } 1046 return this._getOutlinedLabelOffset(); 1047 }, 1048 write: (labelStyles) => this._writeOutlinedLabelStyles(labelStyles()) 1049 }); 1050 } 1051 /** Whether the floating label should always float or not. */ 1052 _shouldAlwaysFloat() { 1053 return this.floatLabel === "always"; 1054 } 1055 _hasOutline() { 1056 return this.appearance === "outline"; 1057 } 1058 /** 1059 * Whether the label should display in the infix. Labels in the outline appearance are 1060 * displayed as part of the notched-outline and are horizontally offset to account for 1061 * form field prefix content. This won't work in server side rendering since we cannot 1062 * measure the width of the prefix container. To make the docked label appear as if the 1063 * right offset has been calculated, we forcibly render the label inside the infix. Since 1064 * the label is part of the infix, the label cannot overflow the prefix content. 1065 */ 1066 _forceDisplayInfixLabel() { 1067 return !this._platform.isBrowser && this._prefixChildren.length && !this._shouldLabelFloat(); 1068 } 1069 _hasFloatingLabel = computed(() => !!this._labelChild()); 1070 _shouldLabelFloat() { 1071 if (!this._hasFloatingLabel()) { 1072 return false; 1073 } 1074 return this._control.shouldLabelFloat || this._shouldAlwaysFloat(); 1075 } 1076 /** 1077 * Determines whether a class from the AbstractControlDirective 1078 * should be forwarded to the host element. 1079 */ 1080 _shouldForward(prop) { 1081 const control = this._control ? this._control.ngControl : null; 1082 return control && control[prop]; 1083 } 1084 /** Gets the type of subscript message to render (error or hint). */ 1085 _getSubscriptMessageType() { 1086 return this._errorChildren && this._errorChildren.length > 0 && this._control.errorState ? "error" : "hint"; 1087 } 1088 /** Handle label resize events. */ 1089 _handleLabelResized() { 1090 this._refreshOutlineNotchWidth(); 1091 } 1092 /** Refreshes the width of the outline-notch, if present. */ 1093 _refreshOutlineNotchWidth() { 1094 if (!this._hasOutline() || !this._floatingLabel || !this._shouldLabelFloat()) { 1095 this._notchedOutline?._setNotchWidth(0); 1096 } else { 1097 this._notchedOutline?._setNotchWidth(this._floatingLabel.getWidth()); 1098 } 1099 } 1100 /** Does any extra processing that is required when handling the hints. */ 1101 _processHints() { 1102 this._validateHints(); 1103 this._syncDescribedByIds(); 1104 } 1105 /** 1106 * Ensure that there is a maximum of one of each "mat-hint" alignment specified. The hint 1107 * label specified set through the input is being considered as "start" aligned. 1108 * 1109 * This method is a noop if Angular runs in production mode. 1110 */ 1111 _validateHints() { 1112 if (this._hintChildren && (typeof ngDevMode === "undefined" || ngDevMode)) { 1113 let startHint; 1114 let endHint; 1115 this._hintChildren.forEach((hint) => { 1116 if (hint.align === "start") { 1117 if (startHint || this.hintLabel) { 1118 throw getMatFormFieldDuplicatedHintError("start"); 1119 } 1120 startHint = hint; 1121 } else if (hint.align === "end") { 1122 if (endHint) { 1123 throw getMatFormFieldDuplicatedHintError("end"); 1124 } 1125 endHint = hint; 1126 } 1127 }); 1128 } 1129 } 1130 /** 1131 * Sets the list of element IDs that describe the child control. This allows the control to update 1132 * its `aria-describedby` attribute accordingly. 1133 */ 1134 _syncDescribedByIds() { 1135 if (this._control) { 1136 let ids = []; 1137 if (this._control.userAriaDescribedBy && typeof this._control.userAriaDescribedBy === "string") { 1138 ids.push(...this._control.userAriaDescribedBy.split(" ")); 1139 } 1140 if (this._getSubscriptMessageType() === "hint") { 1141 const startHint = this._hintChildren ? this._hintChildren.find((hint) => hint.align === "start") : null; 1142 const endHint = this._hintChildren ? this._hintChildren.find((hint) => hint.align === "end") : null; 1143 if (startHint) { 1144 ids.push(startHint.id); 1145 } else if (this._hintLabel) { 1146 ids.push(this._hintLabelId); 1147 } 1148 if (endHint) { 1149 ids.push(endHint.id); 1150 } 1151 } else if (this._errorChildren) { 1152 ids.push(...this._errorChildren.map((error) => error.id)); 1153 } 1154 const existingDescribedBy = this._control.describedByIds; 1155 let toAssign; 1156 if (existingDescribedBy) { 1157 const exclude = this._describedByIds || ids; 1158 toAssign = ids.concat(existingDescribedBy.filter((id) => id && !exclude.includes(id))); 1159 } else { 1160 toAssign = ids; 1161 } 1162 this._control.setDescribedByIds(toAssign); 1163 this._describedByIds = ids; 1164 } 1165 } 1166 /** 1167 * Calculates the horizontal offset of the label in the outline appearance. In the outline 1168 * appearance, the notched-outline and label are not relative to the infix container because 1169 * the outline intends to surround prefixes, suffixes and the infix. This means that the 1170 * floating label by default overlaps prefixes in the docked state. To avoid this, we need to 1171 * horizontally offset the label by the width of the prefix container. The MDC text-field does 1172 * not need to do this because they use a fixed width for prefixes. Hence, they can simply 1173 * incorporate the horizontal offset into their default text-field styles. 1174 */ 1175 _getOutlinedLabelOffset() { 1176 const dir = this._dir.valueSignal(); 1177 if (!this._hasOutline() || !this._floatingLabel) { 1178 return null; 1179 } 1180 if (!this._iconPrefixContainer && !this._textPrefixContainer) { 1181 return ["", null]; 1182 } 1183 if (!this._isAttachedToDom()) { 1184 return null; 1185 } 1186 const iconPrefixContainer = this._iconPrefixContainer?.nativeElement; 1187 const textPrefixContainer = this._textPrefixContainer?.nativeElement; 1188 const iconSuffixContainer = this._iconSuffixContainer?.nativeElement; 1189 const textSuffixContainer = this._textSuffixContainer?.nativeElement; 1190 const iconPrefixContainerWidth = iconPrefixContainer?.getBoundingClientRect().width ?? 0; 1191 const textPrefixContainerWidth = textPrefixContainer?.getBoundingClientRect().width ?? 0; 1192 const iconSuffixContainerWidth = iconSuffixContainer?.getBoundingClientRect().width ?? 0; 1193 const textSuffixContainerWidth = textSuffixContainer?.getBoundingClientRect().width ?? 0; 1194 const negate = dir === "rtl" ? "-1" : "1"; 1195 const prefixWidth = `${iconPrefixContainerWidth + textPrefixContainerWidth}px`; 1196 const labelOffset = `var(--mat-mdc-form-field-label-offset-x, 0px)`; 1197 const labelHorizontalOffset = `calc(${negate} * (${prefixWidth} + ${labelOffset}))`; 1198 const floatingLabelTransform = `var(--mat-mdc-form-field-label-transform, ${FLOATING_LABEL_DEFAULT_DOCKED_TRANSFORM} translateX(${labelHorizontalOffset}))`; 1199 const notchedOutlineWidth = iconPrefixContainerWidth + textPrefixContainerWidth + iconSuffixContainerWidth + textSuffixContainerWidth; 1200 return [floatingLabelTransform, notchedOutlineWidth]; 1201 } 1202 /** Writes the styles produced by `_getOutlineLabelOffset` synchronously to the DOM. */ 1203 _writeOutlinedLabelStyles(styles) { 1204 if (styles !== null) { 1205 const [floatingLabelTransform, notchedOutlineWidth] = styles; 1206 if (this._floatingLabel) { 1207 this._floatingLabel.element.style.transform = floatingLabelTransform; 1208 } 1209 if (notchedOutlineWidth !== null) { 1210 this._notchedOutline?._setMaxWidth(notchedOutlineWidth); 1211 } 1212 } 1213 } 1214 /** Checks whether the form field is attached to the DOM. */ 1215 _isAttachedToDom() { 1216 const element = this._elementRef.nativeElement; 1217 if (element.getRootNode) { 1218 const rootNode = element.getRootNode(); 1219 return rootNode && rootNode !== element; 1220 } 1221 return document.documentElement.contains(element); 1222 } 1223 static \u0275fac = function MatFormField_Factory(__ngFactoryType__) { 1224 return new (__ngFactoryType__ || _MatFormField)(); 1225 }; 1226 static \u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ 1227 type: _MatFormField, 1228 selectors: [["mat-form-field"]], 1229 contentQueries: function MatFormField_ContentQueries(rf, ctx, dirIndex) { 1230 if (rf & 1) { 1231 \u0275\u0275contentQuerySignal(dirIndex, ctx._labelChild, MatLabel, 5); 1232 \u0275\u0275contentQuery(dirIndex, MatFormFieldControl, 5); 1233 \u0275\u0275contentQuery(dirIndex, MAT_PREFIX, 5); 1234 \u0275\u0275contentQuery(dirIndex, MAT_SUFFIX, 5); 1235 \u0275\u0275contentQuery(dirIndex, MAT_ERROR, 5); 1236 \u0275\u0275contentQuery(dirIndex, MatHint, 5); 1237 } 1238 if (rf & 2) { 1239 \u0275\u0275queryAdvance(); 1240 let _t; 1241 \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx._formFieldControl = _t.first); 1242 \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx._prefixChildren = _t); 1243 \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx._suffixChildren = _t); 1244 \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx._errorChildren = _t); 1245 \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx._hintChildren = _t); 1246 } 1247 }, 1248 viewQuery: function MatFormField_Query(rf, ctx) { 1249 if (rf & 1) { 1250 \u0275\u0275viewQuerySignal(ctx._iconPrefixContainerSignal, _c3, 5); 1251 \u0275\u0275viewQuerySignal(ctx._textPrefixContainerSignal, _c4, 5); 1252 \u0275\u0275viewQuerySignal(ctx._iconSuffixContainerSignal, _c5, 5); 1253 \u0275\u0275viewQuerySignal(ctx._textSuffixContainerSignal, _c6, 5); 1254 \u0275\u0275viewQuery(_c7, 5); 1255 \u0275\u0275viewQuery(_c3, 5); 1256 \u0275\u0275viewQuery(_c4, 5); 1257 \u0275\u0275viewQuery(_c5, 5); 1258 \u0275\u0275viewQuery(_c6, 5); 1259 \u0275\u0275viewQuery(MatFormFieldFloatingLabel, 5); 1260 \u0275\u0275viewQuery(MatFormFieldNotchedOutline, 5); 1261 \u0275\u0275viewQuery(MatFormFieldLineRipple, 5); 1262 } 1263 if (rf & 2) { 1264 \u0275\u0275queryAdvance(4); 1265 let _t; 1266 \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx._textField = _t.first); 1267 \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx._iconPrefixContainer = _t.first); 1268 \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx._textPrefixContainer = _t.first); 1269 \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx._iconSuffixContainer = _t.first); 1270 \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx._textSuffixContainer = _t.first); 1271 \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx._floatingLabel = _t.first); 1272 \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx._notchedOutline = _t.first); 1273 \u0275\u0275queryRefresh(_t = \u0275\u0275loadQuery()) && (ctx._lineRipple = _t.first); 1274 } 1275 }, 1276 hostAttrs: [1, "mat-mdc-form-field"], 1277 hostVars: 40, 1278 hostBindings: function MatFormField_HostBindings(rf, ctx) { 1279 if (rf & 2) { 1280 \u0275\u0275classProp("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-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")); 1281 } 1282 }, 1283 inputs: { 1284 hideRequiredMarker: "hideRequiredMarker", 1285 color: "color", 1286 floatLabel: "floatLabel", 1287 appearance: "appearance", 1288 subscriptSizing: "subscriptSizing", 1289 hintLabel: "hintLabel" 1290 }, 1291 exportAs: ["matFormField"], 1292 features: [\u0275\u0275ProvidersFeature([{ 1293 provide: MAT_FORM_FIELD, 1294 useExisting: _MatFormField 1295 }, { 1296 provide: FLOATING_LABEL_PARENT, 1297 useExisting: _MatFormField 1298 }])], 1299 ngContentSelectors: _c9, 1300 decls: 19, 1301 vars: 25, 1302 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"], ["aria-atomic", "true", "aria-live", "polite"], ["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"]], 1303 template: function MatFormField_Template(rf, ctx) { 1304 if (rf & 1) { 1305 const _r1 = \u0275\u0275getCurrentView(); 1306 \u0275\u0275projectionDef(_c8); 1307 \u0275\u0275template(0, MatFormField_ng_template_0_Template, 1, 1, "ng-template", null, 0, \u0275\u0275templateRefExtractor); 1308 \u0275\u0275elementStart(2, "div", 6, 1); 1309 \u0275\u0275listener("click", function MatFormField_Template_div_click_2_listener($event) { 1310 \u0275\u0275restoreView(_r1); 1311 return \u0275\u0275resetView(ctx._control.onContainerClick($event)); 1312 }); 1313 \u0275\u0275conditionalCreate(4, MatFormField_Conditional_4_Template, 1, 0, "div", 7); 1314 \u0275\u0275elementStart(5, "div", 8); 1315 \u0275\u0275conditionalCreate(6, MatFormField_Conditional_6_Template, 2, 2, "div", 9); 1316 \u0275\u0275conditionalCreate(7, MatFormField_Conditional_7_Template, 3, 0, "div", 10); 1317 \u0275\u0275conditionalCreate(8, MatFormField_Conditional_8_Template, 3, 0, "div", 11); 1318 \u0275\u0275elementStart(9, "div", 12); 1319 \u0275\u0275conditionalCreate(10, MatFormField_Conditional_10_Template, 1, 1, null, 13); 1320 \u0275\u0275projection(11); 1321 \u0275\u0275elementEnd(); 1322 \u0275\u0275conditionalCreate(12, MatFormField_Conditional_12_Template, 3, 0, "div", 14); 1323 \u0275\u0275conditionalCreate(13, MatFormField_Conditional_13_Template, 3, 0, "div", 15); 1324 \u0275\u0275elementEnd(); 1325 \u0275\u0275conditionalCreate(14, MatFormField_Conditional_14_Template, 1, 0, "div", 16); 1326 \u0275\u0275elementEnd(); 1327 \u0275\u0275elementStart(15, "div", 17)(16, "div", 18); 1328 \u0275\u0275conditionalCreate(17, MatFormField_Case_17_Template, 1, 0)(18, MatFormField_Case_18_Template, 4, 1); 1329 \u0275\u0275elementEnd()(); 1330 } 1331 if (rf & 2) { 1332 let tmp_19_0; 1333 \u0275\u0275advance(2); 1334 \u0275\u0275classProp("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); 1335 \u0275\u0275advance(2); 1336 \u0275\u0275conditional(!ctx._hasOutline() && !ctx._control.disabled ? 4 : -1); 1337 \u0275\u0275advance(2); 1338 \u0275\u0275conditional(ctx._hasOutline() ? 6 : -1); 1339 \u0275\u0275advance(); 1340 \u0275\u0275conditional(ctx._hasIconPrefix ? 7 : -1); 1341 \u0275\u0275advance(); 1342 \u0275\u0275conditional(ctx._hasTextPrefix ? 8 : -1); 1343 \u0275\u0275advance(2); 1344 \u0275\u0275conditional(!ctx._hasOutline() || ctx._forceDisplayInfixLabel() ? 10 : -1); 1345 \u0275\u0275advance(2); 1346 \u0275\u0275conditional(ctx._hasTextSuffix ? 12 : -1); 1347 \u0275\u0275advance(); 1348 \u0275\u0275conditional(ctx._hasIconSuffix ? 13 : -1); 1349 \u0275\u0275advance(); 1350 \u0275\u0275conditional(!ctx._hasOutline() ? 14 : -1); 1351 \u0275\u0275advance(); 1352 \u0275\u0275classProp("mat-mdc-form-field-subscript-dynamic-size", ctx.subscriptSizing === "dynamic"); 1353 const subscriptMessageType_r4 = ctx._getSubscriptMessageType(); 1354 \u0275\u0275advance(); 1355 \u0275\u0275classProp("mat-mdc-form-field-error-wrapper", subscriptMessageType_r4 === "error")("mat-mdc-form-field-hint-wrapper", subscriptMessageType_r4 === "hint"); 1356 \u0275\u0275advance(); 1357 \u0275\u0275conditional((tmp_19_0 = subscriptMessageType_r4) === "error" ? 17 : tmp_19_0 === "hint" ? 18 : -1); 1358 } 1359 }, 1360 dependencies: [MatFormFieldFloatingLabel, MatFormFieldNotchedOutline, NgTemplateOutlet, MatFormFieldLineRipple, MatHint], 1361 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,.mdc-text-field__input::-webkit-search-cancel-button{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--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::-moz-placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::-webkit-input-placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive:-ms-input-placeholder{opacity:0}.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(--mat-form-field-filled-input-text-color, var(--mat-sys-on-surface));caret-color:var(--mat-form-field-filled-caret-color, var(--mat-sys-primary))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mat-form-field-filled-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::-moz-placeholder{color:var(--mat-form-field-filled-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::-webkit-input-placeholder{color:var(--mat-form-field-filled-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mat-form-field-filled-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mat-form-field-outlined-input-text-color, var(--mat-sys-on-surface));caret-color:var(--mat-form-field-outlined-caret-color, var(--mat-sys-primary))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mat-form-field-outlined-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::-moz-placeholder{color:var(--mat-form-field-outlined-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::-webkit-input-placeholder{color:var(--mat-form-field-outlined-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mat-form-field-outlined-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mat-form-field-filled-error-caret-color, var(--mat-sys-error))}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mat-form-field-outlined-error-caret-color, var(--mat-sys-error))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-text-field__input{color:var(--mat-form-field-filled-disabled-input-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--mat-form-field-outlined-disabled-input-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}@media(forced-colors: active){.mdc-text-field--disabled .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(--mat-form-field-filled-container-shape, var(--mat-sys-corner-extra-small));border-top-right-radius:var(--mat-form-field-filled-container-shape, var(--mat-sys-corner-extra-small))}.mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:var(--mat-form-field-filled-container-color, var(--mat-sys-surface-variant))}.mdc-text-field--filled.mdc-text-field--disabled{background-color:var(--mat-form-field-filled-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 4%, transparent))}.mdc-text-field--outlined{height:56px;overflow:visible;padding-right:max(16px,var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small)));padding-left:max(16px,var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small)) + 4px)}[dir=rtl] .mdc-text-field--outlined{padding-right:max(16px,var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small)) + 4px);padding-left:max(16px,var(--mat-form-field-outlined-container-shape, var(--mat-sys-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}@media(forced-colors: 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(--mat-form-field-filled-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label{color:var(--mat-form-field-filled-focus-label-text-color, var(--mat-sys-primary))}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label{color:var(--mat-form-field-filled-hover-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-floating-label{color:var(--mat-form-field-filled-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-floating-label{color:var(--mat-form-field-filled-error-label-text-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mdc-floating-label{color:var(--mat-form-field-filled-error-focus-label-text-color, var(--mat-sys-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(--mat-form-field-filled-error-hover-label-text-color, var(--mat-sys-on-error-container))}.mdc-text-field--filled .mdc-floating-label{font-family:var(--mat-form-field-filled-label-text-font, var(--mat-sys-body-large-font));font-size:var(--mat-form-field-filled-label-text-size, var(--mat-sys-body-large-size));font-weight:var(--mat-form-field-filled-label-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mat-form-field-filled-label-text-tracking, var(--mat-sys-body-large-tracking))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-floating-label{color:var(--mat-form-field-outlined-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label{color:var(--mat-form-field-outlined-focus-label-text-color, var(--mat-sys-primary))}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label{color:var(--mat-form-field-outlined-hover-label-text-color, var(--mat-sys-on-surface))}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-floating-label{color:var(--mat-form-field-outlined-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-floating-label{color:var(--mat-form-field-outlined-error-label-text-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mdc-floating-label{color:var(--mat-form-field-outlined-error-focus-label-text-color, var(--mat-sys-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(--mat-form-field-outlined-error-hover-label-text-color, var(--mat-sys-on-error-container))}.mdc-text-field--outlined .mdc-floating-label{font-family:var(--mat-form-field-outlined-label-text-font, var(--mat-sys-body-large-font));font-size:var(--mat-form-field-outlined-label-text-size, var(--mat-sys-body-large-size));font-weight:var(--mat-form-field-outlined-label-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mat-form-field-outlined-label-text-tracking, var(--mat-sys-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(--mat-form-field-outlined-outline-color, var(--mat-sys-outline));border-width:var(--mat-form-field-outlined-outline-width, 1px)}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mat-mdc-notch-piece{border-color:var(--mat-form-field-outlined-hover-outline-color, var(--mat-sys-on-surface))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--mat-form-field-outlined-focus-outline-color, var(--mat-sys-primary))}.mdc-text-field--outlined.mdc-text-field--disabled .mat-mdc-notch-piece{border-color:var(--mat-form-field-outlined-disabled-outline-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mat-mdc-notch-piece{border-color:var(--mat-form-field-outlined-error-outline-color, var(--mat-sys-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(--mat-form-field-outlined-error-hover-outline-color, var(--mat-sys-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(--mat-form-field-outlined-error-focus-outline-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mat-mdc-notch-piece{border-width:var(--mat-form-field-outlined-focus-outline-width, 2px)}.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(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small));border-bottom-left-radius:var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small))}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px,var(--mat-form-field-outlined-container-shape, var(--mat-sys-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(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small));border-bottom-right-radius:var(--mat-form-field-outlined-container-shape, var(--mat-sys-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(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small));border-bottom-right-radius:var(--mat-form-field-outlined-container-shape, var(--mat-sys-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(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small));border-bottom-left-radius:var(--mat-form-field-outlined-container-shape, var(--mat-sys-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%),calc(100% - max(12px, var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small))) * 2))}.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{max-width:min(100%,calc(100% - max(12px, var(--mat-form-field-outlined-container-shape, var(--mat-sys-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}[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(--mat-form-field-filled-active-indicator-height, 1px)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::before{border-bottom-color:var(--mat-form-field-filled-active-indicator-color, var(--mat-sys-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(--mat-form-field-filled-hover-active-indicator-color, var(--mat-sys-on-surface))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-line-ripple::before{border-bottom-color:var(--mat-form-field-filled-disabled-active-indicator-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-line-ripple::before{border-bottom-color:var(--mat-form-field-filled-error-active-indicator-color, var(--mat-sys-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(--mat-form-field-filled-error-hover-active-indicator-color, var(--mat-sys-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(--mat-form-field-filled-focus-active-indicator-height, 2px)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mat-form-field-filled-focus-active-indicator-color, var(--mat-sys-primary))}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mat-form-field-filled-error-focus-active-indicator-color, var(--mat-sys-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, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input::-moz-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input::-webkit-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input:-ms-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.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, 56px);padding-top:var(--mat-form-field-filled-with-label-container-padding-top, 24px);padding-bottom:var(--mat-form-field-filled-with-label-container-padding-bottom, 8px)}.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, 16px);padding-bottom:var(--mat-form-field-container-vertical-padding, 16px)}.mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-floating-label{top:calc(var(--mat-form-field-container-height, 56px)/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, 56px) / 2) * -1)) scale(var(--mat-mdc-form-field-floating-label-scale, 0.75));transform:var(--mat-mdc-form-field-label-transform)}@keyframes _mat-form-field-subscript-animation{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.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;opacity:1;transform:translateY(0);animation:_mat-form-field-subscript-animation 0ms cubic-bezier(0.55, 0, 0.55, 0.2)}.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-sys-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-sys-body-small-font));line-height:var(--mat-form-field-subscript-text-line-height, var(--mat-sys-body-small-line-height));font-size:var(--mat-form-field-subscript-text-size, var(--mat-sys-body-small-size));letter-spacing:var(--mat-form-field-subscript-text-tracking, var(--mat-sys-body-small-tracking));font-weight:var(--mat-form-field-subscript-text-weight, var(--mat-sys-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-sys-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-sys-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, 0)}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, var(--mat-sys-neutral10))}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, color-mix(in srgb, var(--mat-sys-neutral10) 38%, transparent))}.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-sys-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-sys-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, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.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}@media(forced-colors: active){.mat-form-field-appearance-fill .mat-mdc-text-field-wrapper{outline:solid 1px}}@media(forced-colors: active){.mat-form-field-appearance-fill.mat-form-field-disabled .mat-mdc-text-field-wrapper{outline-color:GrayText}}@media(forced-colors: active){.mat-form-field-appearance-fill.mat-focused .mat-mdc-text-field-wrapper{outline:dashed 3px}}@media(forced-colors: 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-sys-body-large-font));line-height:var(--mat-form-field-container-text-line-height, var(--mat-sys-body-large-line-height));font-size:var(--mat-form-field-container-text-size, var(--mat-sys-body-large-size));letter-spacing:var(--mat-form-field-container-text-tracking, var(--mat-sys-body-large-tracking));font-weight:var(--mat-form-field-container-text-weight, var(--mat-sys-body-large-weight))}.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)}[dir=rtl] .mat-mdc-form-field{text-align:right}.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-sys-on-surface-variant))}.mat-form-field-disabled .mat-mdc-form-field-icon-prefix{color:var(--mat-form-field-disabled-leading-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-trailing-icon-color, var(--mat-sys-on-surface-variant))}.mat-form-field-disabled .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-disabled-trailing-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-invalid .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-trailing-icon-color, var(--mat-sys-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-sys-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-sys-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-infix:has(textarea[cols]){width:auto}.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.mat-form-field-animations-enabled .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.mat-form-field-animations-enabled .mdc-text-field__input{transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-text-field__input::placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-text-field__input::-moz-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-text-field__input::-webkit-input-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-text-field__input:-ms-input-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--no-label .mdc-text-field__input::placeholder,.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--focused .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--no-label .mdc-text-field__input::-moz-placeholder,.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--focused .mdc-text-field__input::-moz-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--no-label .mdc-text-field__input::-webkit-input-placeholder,.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--focused .mdc-text-field__input::-webkit-input-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-text-field--filled:not(.mdc-ripple-upgraded):focus .mdc-text-field__ripple::before{transition-duration:75ms}.mat-mdc-form-field.mat-form-field-animations-enabled .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)}.mat-mdc-form-field.mat-form-field-animations-enabled .mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field.mat-form-field-animations-enabled .mat-mdc-form-field-error-wrapper{animation-duration:300ms}.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'], 1362 encapsulation: 2, 1363 changeDetection: 0 1364 }); 1365}; 1366(() => { 1367 (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(MatFormField, [{ 1368 type: Component, 1369 args: [{ 1370 selector: "mat-form-field", 1371 exportAs: "matFormField", 1372 host: { 1373 "class": "mat-mdc-form-field", 1374 "[class.mat-mdc-form-field-label-always-float]": "_shouldAlwaysFloat()", 1375 "[class.mat-mdc-form-field-has-icon-prefix]": "_hasIconPrefix", 1376 "[class.mat-mdc-form-field-has-icon-suffix]": "_hasIconSuffix", 1377 // Note that these classes reuse the same names as the non-MDC version, because they can be 1378 // considered a public API since custom form controls may use them to style themselves. 1379 // See https://github.com/angular/components/pull/20502#discussion_r486124901. 1380 "[class.mat-form-field-invalid]": "_control.errorState", 1381 "[class.mat-form-field-disabled]": "_control.disabled", 1382 "[class.mat-form-field-autofilled]": "_control.autofilled", 1383 "[class.mat-form-field-appearance-fill]": 'appearance == "fill"', 1384 "[class.mat-form-field-appearance-outline]": 'appearance == "outline"', 1385 "[class.mat-form-field-hide-placeholder]": "_hasFloatingLabel() && !_shouldLabelFloat()", 1386 "[class.mat-focused]": "_control.focused", 1387 "[class.mat-primary]": 'color !== "accent" && color !== "warn"', 1388 "[class.mat-accent]": 'color === "accent"', 1389 "[class.mat-warn]": 'color === "warn"', 1390 "[class.ng-untouched]": '_shouldForward("untouched")', 1391 "[class.ng-touched]": '_shouldForward("touched")', 1392 "[class.ng-pristine]": '_shouldForward("pristine")', 1393 "[class.ng-dirty]": '_shouldForward("dirty")', 1394 "[class.ng-valid]": '_shouldForward("valid")', 1395 "[class.ng-invalid]": '_shouldForward("invalid")', 1396 "[class.ng-pending]": '_shouldForward("pending")' 1397 }, 1398 encapsulation: ViewEncapsulation.None, 1399 changeDetection: ChangeDetectionStrategy.OnPush, 1400 providers: [{ 1401 provide: MAT_FORM_FIELD, 1402 useExisting: MatFormField 1403 }, { 1404 provide: FLOATING_LABEL_PARENT, 1405 useExisting: MatFormField 1406 }], 1407 imports: [MatFormFieldFloatingLabel, MatFormFieldNotchedOutline, NgTemplateOutlet, MatFormFieldLineRipple, MatHint], 1408 template: '<ng-template #labelTemplate>\n <!--\n MDC recommends that the text-field is a `<label>` element. This rather complicates the\n setup because it would require every form-field control to explicitly set `aria-labelledby`.\n This is because the `<label>` itself contains more than the actual label (e.g. prefix, suffix\n or other projected content), and screen readers could potentially read out undesired content.\n Excluding elements from being printed out requires them to be marked with `aria-hidden`, or\n the form control is set to a scoped element for the label (using `aria-labelledby`). Both of\n these options seem to complicate the setup because we know exactly what content is rendered\n as part of the label, and we don\'t want to spend resources on walking through projected content\n to set `aria-hidden`. Nor do we want to set `aria-labelledby` on every form control if we could\n simply link the label to the control using the label `for` attribute.\n -->\n @if (_hasFloatingLabel()) {\n <label\n matFormFieldFloatingLabel\n [floating]="_shouldLabelFloat()"\n [monitorResize]="_hasOutline()"\n [id]="_labelId"\n [attr.for]="_control.disableAutomaticLabeling ? null : _control.id"\n >\n <ng-content select="mat-label"></ng-content>\n <!--\n We set the required marker as a separate element, in order to make it easier to target if\n apps want to override it and to be able to set `aria-hidden` so that screen readers don\'t\n pick it up.\n -->\n @if (!hideRequiredMarker && _control.required) {\n <span\n aria-hidden="true"\n class="mat-mdc-form-field-required-marker mdc-floating-label--required"\n ></span>\n }\n </label>\n }\n</ng-template>\n\n<div\n class="mat-mdc-text-field-wrapper mdc-text-field"\n #textField\n [class.mdc-text-field--filled]="!_hasOutline()"\n [class.mdc-text-field--outlined]="_hasOutline()"\n [class.mdc-text-field--no-label]="!_hasFloatingLabel()"\n [class.mdc-text-field--disabled]="_control.disabled"\n [class.mdc-text-field--invalid]="_control.errorState"\n (click)="_control.onContainerClick($event)"\n>\n @if (!_hasOutline() && !_control.disabled) {\n <div class="mat-mdc-form-field-focus-overlay"></div>\n }\n <div class="mat-mdc-form-field-flex">\n @if (_hasOutline()) {\n <div matFormFieldNotchedOutline [matFormFieldNotchedOutlineOpen]="_shouldLabelFloat()">\n @if (!_forceDisplayInfixLabel()) {\n <ng-template [ngTemplateOutlet]="labelTemplate"></ng-template>\n }\n </div>\n }\n\n @if (_hasIconPrefix) {\n <div class="mat-mdc-form-field-icon-prefix" #iconPrefixContainer>\n <ng-content select="[matPrefix], [matIconPrefix]"></ng-content>\n </div>\n }\n\n @if (_hasTextPrefix) {\n <div class="mat-mdc-form-field-text-prefix" #textPrefixContainer>\n <ng-content select="[matTextPrefix]"></ng-content>\n </div>\n }\n\n <div class="mat-mdc-form-field-infix">\n @if (!_hasOutline() || _forceDisplayInfixLabel()) {\n <ng-template [ngTemplateOutlet]="labelTemplate"></ng-template>\n }\n\n <ng-content></ng-content>\n </div>\n\n @if (_hasTextSuffix) {\n <div class="mat-mdc-form-field-text-suffix" #textSuffixContainer>\n <ng-content select="[matTextSuffix]"></ng-content>\n </div>\n }\n\n @if (_hasIconSuffix) {\n <div class="mat-mdc-form-field-icon-suffix" #iconSuffixContainer>\n <ng-content select="[matSuffix], [matIconSuffix]"></ng-content>\n </div>\n }\n </div>\n\n @if (!_hasOutline()) {\n <div matFormFieldLineRipple></div>\n }\n</div>\n\n<div\n class="mat-mdc-form-field-subscript-wrapper mat-mdc-form-field-bottom-align"\n [class.mat-mdc-form-field-subscript-dynamic-size]="subscriptSizing === \'dynamic\'"\n>\n @let subscriptMessageType = _getSubscriptMessageType();\n\n <!-- \n Use a single permanent wrapper for both hints and errors so aria-live works correctly,\n as having it appear post render will not consistently work. We also do not want to add\n additional divs as it causes styling regressions.\n -->\n <div aria-atomic="true" aria-live="polite" \n [class.mat-mdc-form-field-error-wrapper]="subscriptMessageType === \'error\'"\n [class.mat-mdc-form-field-hint-wrapper]="subscriptMessageType === \'hint\'"\n >\n @switch (subscriptMessageType) {\n @case (\'error\') {\n <ng-content select="mat-error, [matError]"></ng-content>\n }\n\n @case (\'hint\') {\n @if (hintLabel) {\n <mat-hint [id]="_hintLabelId">{{hintLabel}}</mat-hint>\n }\n <ng-content select="mat-hint:not([align=\'end\'])"></ng-content>\n <div class="mat-mdc-form-field-hint-spacer"></div>\n <ng-content select="mat-hint[align=\'end\']"></ng-content>\n }\n }\n </div>\n</div>\n', 1409 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,.mdc-text-field__input::-webkit-search-cancel-button{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--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::-moz-placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive::-webkit-input-placeholder{opacity:0}.mdc-text-field--disabled:not(.mdc-text-field--no-label) .mdc-text-field__input.mat-mdc-input-disabled-interactive:-ms-input-placeholder{opacity:0}.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(--mat-form-field-filled-input-text-color, var(--mat-sys-on-surface));caret-color:var(--mat-form-field-filled-caret-color, var(--mat-sys-primary))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mat-form-field-filled-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::-moz-placeholder{color:var(--mat-form-field-filled-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::-webkit-input-placeholder{color:var(--mat-form-field-filled-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mat-form-field-filled-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mat-form-field-outlined-input-text-color, var(--mat-sys-on-surface));caret-color:var(--mat-form-field-outlined-caret-color, var(--mat-sys-primary))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mat-form-field-outlined-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::-moz-placeholder{color:var(--mat-form-field-outlined-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::-webkit-input-placeholder{color:var(--mat-form-field-outlined-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mat-form-field-outlined-input-text-placeholder-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mat-form-field-filled-error-caret-color, var(--mat-sys-error))}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mat-form-field-outlined-error-caret-color, var(--mat-sys-error))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-text-field__input{color:var(--mat-form-field-filled-disabled-input-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--mat-form-field-outlined-disabled-input-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}@media(forced-colors: active){.mdc-text-field--disabled .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(--mat-form-field-filled-container-shape, var(--mat-sys-corner-extra-small));border-top-right-radius:var(--mat-form-field-filled-container-shape, var(--mat-sys-corner-extra-small))}.mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:var(--mat-form-field-filled-container-color, var(--mat-sys-surface-variant))}.mdc-text-field--filled.mdc-text-field--disabled{background-color:var(--mat-form-field-filled-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 4%, transparent))}.mdc-text-field--outlined{height:56px;overflow:visible;padding-right:max(16px,var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small)));padding-left:max(16px,var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small)) + 4px)}[dir=rtl] .mdc-text-field--outlined{padding-right:max(16px,var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small)) + 4px);padding-left:max(16px,var(--mat-form-field-outlined-container-shape, var(--mat-sys-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}@media(forced-colors: 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(--mat-form-field-filled-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label{color:var(--mat-form-field-filled-focus-label-text-color, var(--mat-sys-primary))}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label{color:var(--mat-form-field-filled-hover-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-floating-label{color:var(--mat-form-field-filled-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-floating-label{color:var(--mat-form-field-filled-error-label-text-color, var(--mat-sys-error))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mdc-floating-label{color:var(--mat-form-field-filled-error-focus-label-text-color, var(--mat-sys-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(--mat-form-field-filled-error-hover-label-text-color, var(--mat-sys-on-error-container))}.mdc-text-field--filled .mdc-floating-label{font-family:var(--mat-form-field-filled-label-text-font, var(--mat-sys-body-large-font));font-size:var(--mat-form-field-filled-label-text-size, var(--mat-sys-body-large-size));font-weight:var(--mat-form-field-filled-label-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mat-form-field-filled-label-text-tracking, var(--mat-sys-body-large-tracking))}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-floating-label{color:var(--mat-form-field-outlined-label-text-color, var(--mat-sys-on-surface-variant))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label{color:var(--mat-form-field-outlined-focus-label-text-color, var(--mat-sys-primary))}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-floating-label{color:var(--mat-form-field-outlined-hover-label-text-color, var(--mat-sys-on-surface))}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-floating-label{color:var(--mat-form-field-outlined-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-floating-label{color:var(--mat-form-field-outlined-error-label-text-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid.mdc-text-field--focused .mdc-floating-label{color:var(--mat-form-field-outlined-error-focus-label-text-color, var(--mat-sys-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(--mat-form-field-outlined-error-hover-label-text-color, var(--mat-sys-on-error-container))}.mdc-text-field--outlined .mdc-floating-label{font-family:var(--mat-form-field-outlined-label-text-font, var(--mat-sys-body-large-font));font-size:var(--mat-form-field-outlined-label-text-size, var(--mat-sys-body-large-size));font-weight:var(--mat-form-field-outlined-label-text-weight, var(--mat-sys-body-large-weight));letter-spacing:var(--mat-form-field-outlined-label-text-tracking, var(--mat-sys-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(--mat-form-field-outlined-outline-color, var(--mat-sys-outline));border-width:var(--mat-form-field-outlined-outline-width, 1px)}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mat-mdc-notch-piece{border-color:var(--mat-form-field-outlined-hover-outline-color, var(--mat-sys-on-surface))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--mat-form-field-outlined-focus-outline-color, var(--mat-sys-primary))}.mdc-text-field--outlined.mdc-text-field--disabled .mat-mdc-notch-piece{border-color:var(--mat-form-field-outlined-disabled-outline-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mat-mdc-notch-piece{border-color:var(--mat-form-field-outlined-error-outline-color, var(--mat-sys-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(--mat-form-field-outlined-error-hover-outline-color, var(--mat-sys-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(--mat-form-field-outlined-error-focus-outline-color, var(--mat-sys-error))}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mat-mdc-notch-piece{border-width:var(--mat-form-field-outlined-focus-outline-width, 2px)}.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(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small));border-bottom-left-radius:var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small))}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px,var(--mat-form-field-outlined-container-shape, var(--mat-sys-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(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small));border-bottom-right-radius:var(--mat-form-field-outlined-container-shape, var(--mat-sys-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(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small));border-bottom-right-radius:var(--mat-form-field-outlined-container-shape, var(--mat-sys-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(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small));border-bottom-left-radius:var(--mat-form-field-outlined-container-shape, var(--mat-sys-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%),calc(100% - max(12px, var(--mat-form-field-outlined-container-shape, var(--mat-sys-corner-extra-small))) * 2))}.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{max-width:min(100%,calc(100% - max(12px, var(--mat-form-field-outlined-container-shape, var(--mat-sys-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}[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(--mat-form-field-filled-active-indicator-height, 1px)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::before{border-bottom-color:var(--mat-form-field-filled-active-indicator-color, var(--mat-sys-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(--mat-form-field-filled-hover-active-indicator-color, var(--mat-sys-on-surface))}.mdc-text-field--filled.mdc-text-field--disabled .mdc-line-ripple::before{border-bottom-color:var(--mat-form-field-filled-disabled-active-indicator-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--invalid .mdc-line-ripple::before{border-bottom-color:var(--mat-form-field-filled-error-active-indicator-color, var(--mat-sys-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(--mat-form-field-filled-error-hover-active-indicator-color, var(--mat-sys-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(--mat-form-field-filled-focus-active-indicator-height, 2px)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mat-form-field-filled-focus-active-indicator-color, var(--mat-sys-primary))}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mat-form-field-filled-error-focus-active-indicator-color, var(--mat-sys-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, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input::-moz-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input::-webkit-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-disabled .mdc-text-field__input:-ms-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.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, 56px);padding-top:var(--mat-form-field-filled-with-label-container-padding-top, 24px);padding-bottom:var(--mat-form-field-filled-with-label-container-padding-bottom, 8px)}.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, 16px);padding-bottom:var(--mat-form-field-container-vertical-padding, 16px)}.mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-floating-label{top:calc(var(--mat-form-field-container-height, 56px)/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, 56px) / 2) * -1)) scale(var(--mat-mdc-form-field-floating-label-scale, 0.75));transform:var(--mat-mdc-form-field-label-transform)}@keyframes _mat-form-field-subscript-animation{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.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;opacity:1;transform:translateY(0);animation:_mat-form-field-subscript-animation 0ms cubic-bezier(0.55, 0, 0.55, 0.2)}.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-sys-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-sys-body-small-font));line-height:var(--mat-form-field-subscript-text-line-height, var(--mat-sys-body-small-line-height));font-size:var(--mat-form-field-subscript-text-size, var(--mat-sys-body-small-size));letter-spacing:var(--mat-form-field-subscript-text-tracking, var(--mat-sys-body-small-tracking));font-weight:var(--mat-form-field-subscript-text-weight, var(--mat-sys-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-sys-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-sys-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, 0)}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, var(--mat-sys-neutral10))}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, color-mix(in srgb, var(--mat-sys-neutral10) 38%, transparent))}.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-sys-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-sys-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, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.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}@media(forced-colors: active){.mat-form-field-appearance-fill .mat-mdc-text-field-wrapper{outline:solid 1px}}@media(forced-colors: active){.mat-form-field-appearance-fill.mat-form-field-disabled .mat-mdc-text-field-wrapper{outline-color:GrayText}}@media(forced-colors: active){.mat-form-field-appearance-fill.mat-focused .mat-mdc-text-field-wrapper{outline:dashed 3px}}@media(forced-colors: 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-sys-body-large-font));line-height:var(--mat-form-field-container-text-line-height, var(--mat-sys-body-large-line-height));font-size:var(--mat-form-field-container-text-size, var(--mat-sys-body-large-size));letter-spacing:var(--mat-form-field-container-text-tracking, var(--mat-sys-body-large-tracking));font-weight:var(--mat-form-field-container-text-weight, var(--mat-sys-body-large-weight))}.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)}[dir=rtl] .mat-mdc-form-field{text-align:right}.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-sys-on-surface-variant))}.mat-form-field-disabled .mat-mdc-form-field-icon-prefix{color:var(--mat-form-field-disabled-leading-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-trailing-icon-color, var(--mat-sys-on-surface-variant))}.mat-form-field-disabled .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-disabled-trailing-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-form-field-invalid .mat-mdc-form-field-icon-suffix{color:var(--mat-form-field-error-trailing-icon-color, var(--mat-sys-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-sys-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-sys-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-infix:has(textarea[cols]){width:auto}.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.mat-form-field-animations-enabled .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.mat-form-field-animations-enabled .mdc-text-field__input{transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-text-field__input::placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-text-field__input::-moz-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-text-field__input::-webkit-input-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-text-field__input:-ms-input-placeholder{transition:opacity 67ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--no-label .mdc-text-field__input::placeholder,.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--focused .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--no-label .mdc-text-field__input::-moz-placeholder,.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--focused .mdc-text-field__input::-moz-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--no-label .mdc-text-field__input::-webkit-input-placeholder,.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--focused .mdc-text-field__input::-webkit-input-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mat-mdc-form-field.mat-form-field-animations-enabled.mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{transition-delay:40ms;transition-duration:110ms}.mat-mdc-form-field.mat-form-field-animations-enabled .mdc-text-field--filled:not(.mdc-ripple-upgraded):focus .mdc-text-field__ripple::before{transition-duration:75ms}.mat-mdc-form-field.mat-form-field-animations-enabled .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)}.mat-mdc-form-field.mat-form-field-animations-enabled .mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field.mat-form-field-animations-enabled .mat-mdc-form-field-error-wrapper{animation-duration:300ms}.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'] 1410 }] 1411 }], () => [], { 1412 _textField: [{ 1413 type: ViewChild, 1414 args: ["textField"] 1415 }], 1416 _iconPrefixContainer: [{ 1417 type: ViewChild, 1418 args: ["iconPrefixContainer"] 1419 }], 1420 _textPrefixContainer: [{ 1421 type: ViewChild, 1422 args: ["textPrefixContainer"] 1423 }], 1424 _iconSuffixContainer: [{ 1425 type: ViewChild, 1426 args: ["iconSuffixContainer"] 1427 }], 1428 _textSuffixContainer: [{ 1429 type: ViewChild, 1430 args: ["textSuffixContainer"] 1431 }], 1432 _floatingLabel: [{ 1433 type: ViewChild, 1434 args: [MatFormFieldFloatingLabel] 1435 }], 1436 _notchedOutline: [{ 1437 type: ViewChild, 1438 args: [MatFormFieldNotchedOutline] 1439 }], 1440 _lineRipple: [{ 1441 type: ViewChild, 1442 args: [MatFormFieldLineRipple] 1443 }], 1444 _formFieldControl: [{ 1445 type: ContentChild, 1446 args: [MatFormFieldControl] 1447 }], 1448 _prefixChildren: [{ 1449 type: ContentChildren, 1450 args: [MAT_PREFIX, { 1451 descendants: true 1452 }] 1453 }], 1454 _suffixChildren: [{ 1455 type: ContentChildren, 1456 args: [MAT_SUFFIX, { 1457 descendants: true 1458 }] 1459 }], 1460 _errorChildren: [{ 1461 type: ContentChildren, 1462 args: [MAT_ERROR, { 1463 descendants: true 1464 }] 1465 }], 1466 _hintChildren: [{ 1467 type: ContentChildren, 1468 args: [MatHint, { 1469 descendants: true 1470 }] 1471 }], 1472 hideRequiredMarker: [{ 1473 type: Input 1474 }], 1475 color: [{ 1476 type: Input 1477 }], 1478 floatLabel: [{ 1479 type: Input 1480 }], 1481 appearance: [{ 1482 type: Input 1483 }], 1484 subscriptSizing: [{ 1485 type: Input 1486 }], 1487 hintLabel: [{ 1488 type: Input 1489 }] 1490 }); 1491})(); 1492
vendor: 1,109 bytes, lines 1493-1516
1493// node_modules/@angular/material/fesm2022/module-B62K-792.mjs 1494var MatFormFieldModule = class _MatFormFieldModule { 1495 static \u0275fac = function MatFormFieldModule_Factory(__ngFactoryType__) { 1496 return new (__ngFactoryType__ || _MatFormFieldModule)(); 1497 }; 1498 static \u0275mod = /* @__PURE__ */ \u0275\u0275defineNgModule({ 1499 type: _MatFormFieldModule, 1500 imports: [MatCommonModule, ObserversModule, MatFormField, MatLabel, MatError, MatHint, MatPrefix, MatSuffix], 1501 exports: [MatFormField, MatLabel, MatHint, MatError, MatPrefix, MatSuffix, MatCommonModule] 1502 }); 1503 static \u0275inj = /* @__PURE__ */ \u0275\u0275defineInjector({ 1504 imports: [MatCommonModule, ObserversModule, MatFormField, MatCommonModule] 1505 }); 1506}; 1507(() => { 1508 (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(MatFormFieldModule, [{ 1509 type: NgModule, 1510 args: [{ 1511 imports: [MatCommonModule, ObserversModule, MatFormField, MatLabel, MatError, MatHint, MatPrefix, MatSuffix], 1512 exports: [MatFormField, MatLabel, MatHint, MatError, MatPrefix, MatSuffix, MatCommonModule] 1513 }] 1514 }], null, null); 1515})(); 1516
vendor: 1,450 bytes, lines 1517-1556
1517// node_modules/@angular/material/fesm2022/error-options-DCNQlTOA.mjs 1518var ShowOnDirtyErrorStateMatcher = class _ShowOnDirtyErrorStateMatcher { 1519 isErrorState(control, form) { 1520 return !!(control && control.invalid && (control.dirty || form && form.submitted)); 1521 } 1522 static \u0275fac = function ShowOnDirtyErrorStateMatcher_Factory(__ngFactoryType__) { 1523 return new (__ngFactoryType__ || _ShowOnDirtyErrorStateMatcher)(); 1524 }; 1525 static \u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({ 1526 token: _ShowOnDirtyErrorStateMatcher, 1527 factory: _ShowOnDirtyErrorStateMatcher.\u0275fac 1528 }); 1529}; 1530(() => { 1531 (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(ShowOnDirtyErrorStateMatcher, [{ 1532 type: Injectable 1533 }], null, null); 1534})(); 1535var ErrorStateMatcher = class _ErrorStateMatcher { 1536 isErrorState(control, form) { 1537 return !!(control && control.invalid && (control.touched || form && form.submitted)); 1538 } 1539 static \u0275fac = function ErrorStateMatcher_Factory(__ngFactoryType__) { 1540 return new (__ngFactoryType__ || _ErrorStateMatcher)(); 1541 }; 1542 static \u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({ 1543 token: _ErrorStateMatcher, 1544 factory: _ErrorStateMatcher.\u0275fac, 1545 providedIn: "root" 1546 }); 1547}; 1548(() => { 1549 (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(ErrorStateMatcher, [{ 1550 type: Injectable, 1551 args: [{ 1552 providedIn: "root" 1553 }] 1554 }], null, null); 1555})(); 1556
vendor: 1,355 bytes, lines 1557-1601
1557// node_modules/@angular/material/fesm2022/error-state-Dtb1IHM-.mjs 1558var _ErrorStateTracker = class { 1559 _defaultMatcher; 1560 ngControl; 1561 _parentFormGroup; 1562 _parentForm; 1563 _stateChanges; 1564 /** Whether the tracker is currently in an error state. */ 1565 errorState = false; 1566 /** User-defined matcher for the error state. */ 1567 matcher; 1568 constructor(_defaultMatcher, ngControl, _parentFormGroup, _parentForm, _stateChanges) { 1569 this._defaultMatcher = _defaultMatcher; 1570 this.ngControl = ngControl; 1571 this._parentFormGroup = _parentFormGroup; 1572 this._parentForm = _parentForm; 1573 this._stateChanges = _stateChanges; 1574 } 1575 /** Updates the error state based on the provided error state matcher. */ 1576 updateErrorState() { 1577 const oldState = this.errorState; 1578 const parent = this._parentFormGroup || this._parentForm; 1579 const matcher = this.matcher || this._defaultMatcher; 1580 const control = this.ngControl ? this.ngControl.control : null; 1581 const newState = matcher?.isErrorState(control, parent) ?? false; 1582 if (newState !== oldState) { 1583 this.errorState = newState; 1584 this._stateChanges.next(); 1585 } 1586 } 1587}; 1588 1589export { 1590 MatLabel, 1591 MatError, 1592 MatHint, 1593 MatSuffix, 1594 MatFormFieldControl, 1595 MAT_FORM_FIELD, 1596 MatFormField, 1597 MatFormFieldModule, 1598 ErrorStateMatcher, 1599 _ErrorStateTracker 1600}; 1601//# sourceMappingURL=chunk-ES4YW253.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.