@angular/material 20.2.0-next.0 → 20.2.0-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/core/index.d.ts +6 -1
  2. package/datepicker/_m3-datepicker.scss +1 -4
  3. package/fesm2022/{animation-DfMFjxHu.mjs → animation-ChQ1vjiF.mjs} +15 -7
  4. package/fesm2022/animation-ChQ1vjiF.mjs.map +1 -0
  5. package/fesm2022/autocomplete.mjs +24 -24
  6. package/fesm2022/badge.mjs +12 -12
  7. package/fesm2022/bottom-sheet.mjs +12 -12
  8. package/fesm2022/button-toggle.mjs +16 -16
  9. package/fesm2022/button.mjs +21 -21
  10. package/fesm2022/card.mjs +47 -47
  11. package/fesm2022/checkbox.mjs +12 -12
  12. package/fesm2022/chips.mjs +51 -51
  13. package/fesm2022/{common-module-DAS0wn13.mjs → common-module-Ckwlusp6.mjs} +5 -5
  14. package/fesm2022/{common-module-DAS0wn13.mjs.map → common-module-Ckwlusp6.mjs.map} +1 -1
  15. package/fesm2022/core.mjs +25 -25
  16. package/fesm2022/core.mjs.map +1 -1
  17. package/fesm2022/datepicker.mjs +105 -101
  18. package/fesm2022/datepicker.mjs.map +1 -1
  19. package/fesm2022/dialog/testing.mjs +3 -3
  20. package/fesm2022/dialog.mjs +3 -3
  21. package/fesm2022/divider.mjs +8 -8
  22. package/fesm2022/{error-options-Bq793X0d.mjs → error-options-DasykDPK.mjs} +7 -7
  23. package/fesm2022/{error-options-Bq793X0d.mjs.map → error-options-DasykDPK.mjs.map} +1 -1
  24. package/fesm2022/expansion.mjs +28 -28
  25. package/fesm2022/{form-field-Bp1BCQ2b.mjs → form-field-Ce1YJL9K.mjs} +38 -37
  26. package/fesm2022/form-field-Ce1YJL9K.mjs.map +1 -0
  27. package/fesm2022/form-field.mjs +4 -4
  28. package/fesm2022/grid-list.mjs +24 -24
  29. package/fesm2022/icon/testing.mjs +8 -8
  30. package/fesm2022/{icon-button-KgXJnU_D.mjs → icon-button-CfB6KH_E.mjs} +10 -10
  31. package/fesm2022/{icon-button-KgXJnU_D.mjs.map → icon-button-CfB6KH_E.mjs.map} +1 -1
  32. package/fesm2022/{icon-registry-BoQxDGS7.mjs → icon-registry-CLBDUSOu.mjs} +4 -4
  33. package/fesm2022/{icon-registry-BoQxDGS7.mjs.map → icon-registry-CLBDUSOu.mjs.map} +1 -1
  34. package/fesm2022/icon.mjs +10 -10
  35. package/fesm2022/{index-ByBcQY3R.mjs → index-CAi4o7I5.mjs} +9 -9
  36. package/fesm2022/{index-ByBcQY3R.mjs.map → index-CAi4o7I5.mjs.map} +1 -1
  37. package/fesm2022/{index-DPMBppX-.mjs → index-rIXEckYE.mjs} +7 -7
  38. package/fesm2022/{index-DPMBppX-.mjs.map → index-rIXEckYE.mjs.map} +1 -1
  39. package/fesm2022/input.mjs +13 -13
  40. package/fesm2022/{internal-form-field-BjqHmADC.mjs → internal-form-field-C-QWn7el.mjs} +4 -4
  41. package/fesm2022/{internal-form-field-BjqHmADC.mjs.map → internal-form-field-C-QWn7el.mjs.map} +1 -1
  42. package/fesm2022/{line-BZzwAXSt.mjs → line-B0IgETj1.mjs} +9 -9
  43. package/fesm2022/{line-BZzwAXSt.mjs.map → line-B0IgETj1.mjs.map} +1 -1
  44. package/fesm2022/list.mjs +56 -56
  45. package/fesm2022/menu.mjs +27 -27
  46. package/fesm2022/{module-MzaMA0u6.mjs → module-BVI4kAmT.mjs} +28 -28
  47. package/fesm2022/{module-MzaMA0u6.mjs.map → module-BVI4kAmT.mjs.map} +1 -1
  48. package/fesm2022/{module-D8r4rZmE.mjs → module-BpF6A05B.mjs} +18 -18
  49. package/fesm2022/{module-D8r4rZmE.mjs.map → module-BpF6A05B.mjs.map} +1 -1
  50. package/fesm2022/{module-DFA1Fexr.mjs → module-Bww_vjaX.mjs} +7 -7
  51. package/fesm2022/{module-DFA1Fexr.mjs.map → module-Bww_vjaX.mjs.map} +1 -1
  52. package/fesm2022/{module-BLyJetA8.mjs → module-X8APgGCS.mjs} +13 -13
  53. package/fesm2022/{module-BLyJetA8.mjs.map → module-X8APgGCS.mjs.map} +1 -1
  54. package/fesm2022/{option-DikEMAxk.mjs → option-_yFTwxlw.mjs} +10 -10
  55. package/fesm2022/{option-DikEMAxk.mjs.map → option-_yFTwxlw.mjs.map} +1 -1
  56. package/fesm2022/paginator.mjs +26 -26
  57. package/fesm2022/progress-bar.mjs +16 -11
  58. package/fesm2022/progress-bar.mjs.map +1 -1
  59. package/fesm2022/progress-spinner.mjs +18 -15
  60. package/fesm2022/progress-spinner.mjs.map +1 -1
  61. package/fesm2022/{pseudo-checkbox-MTYwd7sN.mjs → pseudo-checkbox-CJSCiP0Y.mjs} +5 -5
  62. package/fesm2022/{pseudo-checkbox-MTYwd7sN.mjs.map → pseudo-checkbox-CJSCiP0Y.mjs.map} +1 -1
  63. package/fesm2022/{pseudo-checkbox-module-BH5rV6nS.mjs → pseudo-checkbox-module-BwXRv-p0.mjs} +7 -7
  64. package/fesm2022/{pseudo-checkbox-module-BH5rV6nS.mjs.map → pseudo-checkbox-module-BwXRv-p0.mjs.map} +1 -1
  65. package/fesm2022/radio.mjs +16 -16
  66. package/fesm2022/{ripple-Caf80wGY.mjs → ripple-DToxr3s4.mjs} +8 -8
  67. package/fesm2022/{ripple-Caf80wGY.mjs.map → ripple-DToxr3s4.mjs.map} +1 -1
  68. package/fesm2022/{ripple-loader-DWrwQmhi.mjs → ripple-loader-B_67UOY7.mjs} +6 -6
  69. package/fesm2022/{ripple-loader-DWrwQmhi.mjs.map → ripple-loader-B_67UOY7.mjs.map} +1 -1
  70. package/fesm2022/select.mjs +13 -13
  71. package/fesm2022/sidenav.mjs +24 -24
  72. package/fesm2022/slide-toggle.mjs +12 -12
  73. package/fesm2022/slider.mjs +21 -21
  74. package/fesm2022/snack-bar.mjs +29 -29
  75. package/fesm2022/sort.mjs +16 -16
  76. package/fesm2022/stepper.mjs +38 -38
  77. package/fesm2022/{structural-styles-BrpNk7kf.mjs → structural-styles-wmZbw0XJ.mjs} +4 -4
  78. package/fesm2022/{structural-styles-BrpNk7kf.mjs.map → structural-styles-wmZbw0XJ.mjs.map} +1 -1
  79. package/fesm2022/table.mjs +60 -56
  80. package/fesm2022/table.mjs.map +1 -1
  81. package/fesm2022/tabs.mjs +47 -47
  82. package/fesm2022/timepicker.mjs +21 -21
  83. package/fesm2022/toolbar.mjs +11 -11
  84. package/fesm2022/tooltip.mjs +3 -3
  85. package/fesm2022/tree.mjs +26 -26
  86. package/form-field/index.d.ts +2 -2
  87. package/input/index.d.ts +4 -4
  88. package/{module.d-D1Ym5Wf2.d.ts → module.d-DZ2PGGPh.d.ts} +1 -1
  89. package/{module.d-bebo7gS5.d.ts → module.d-gWBlTHnh.d.ts} +2 -2
  90. package/package.json +2 -2
  91. package/paginator/index.d.ts +5 -5
  92. package/{paginator.d-DuJ-oYgT.d.ts → paginator.d-Zo1cMMo4.d.ts} +1 -1
  93. package/schematics/ng-add/index.js +1 -1
  94. package/schematics/ng-add/theming/theming.js +8 -1
  95. package/schematics/ng-add/theming/theming.js.map +1 -1
  96. package/schematics/ng-update/index_bundled.js +134 -106
  97. package/schematics/ng-update/index_bundled.js.map +2 -2
  98. package/select/index.d.ts +3 -3
  99. package/table/index.d.ts +4 -4
  100. package/fesm2022/animation-DfMFjxHu.mjs.map +0 -1
  101. package/fesm2022/form-field-Bp1BCQ2b.mjs.map +0 -1
  102. package/{form-field.d-C6p5uYjG.d.ts → form-field.d-e195lFUo.d.ts} +1 -1
@@ -8,14 +8,14 @@ import { Directive, InjectionToken, inject, Input, ElementRef, NgZone, Renderer2
8
8
  import { Subscription, Subject, merge } from 'rxjs';
9
9
  import { startWith, map, pairwise, filter, takeUntil } from 'rxjs/operators';
10
10
  import { SharedResizeObserver } from '@angular/cdk/observers/private';
11
- import { _ as _animationsDisabled } from './animation-DfMFjxHu.mjs';
11
+ import { _ as _animationsDisabled } from './animation-ChQ1vjiF.mjs';
12
12
 
13
13
  /** The floating label for a `mat-form-field`. */
14
14
  class MatLabel {
15
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.0", ngImport: i0, type: MatLabel, deps: [], target: i0.ɵɵFactoryTarget.Directive });
16
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0-next.0", type: MatLabel, isStandalone: true, selector: "mat-label", ngImport: i0 });
15
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.1", ngImport: i0, type: MatLabel, deps: [], target: i0.ɵɵFactoryTarget.Directive });
16
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0-next.1", type: MatLabel, isStandalone: true, selector: "mat-label", ngImport: i0 });
17
17
  }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.0", ngImport: i0, type: MatLabel, decorators: [{
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.1", ngImport: i0, type: MatLabel, decorators: [{
19
19
  type: Directive,
20
20
  args: [{
21
21
  selector: 'mat-label',
@@ -32,10 +32,10 @@ const MAT_ERROR = new InjectionToken('MatError');
32
32
  class MatError {
33
33
  id = inject(_IdGenerator).getId('mat-mdc-error-');
34
34
  constructor() { }
35
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.0", ngImport: i0, type: MatError, deps: [], target: i0.ɵɵFactoryTarget.Directive });
36
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0-next.0", type: MatError, isStandalone: true, selector: "mat-error, [matError]", inputs: { id: "id" }, host: { properties: { "id": "id" }, classAttribute: "mat-mdc-form-field-error mat-mdc-form-field-bottom-align" }, providers: [{ provide: MAT_ERROR, useExisting: MatError }], ngImport: i0 });
35
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.1", ngImport: i0, type: MatError, deps: [], target: i0.ɵɵFactoryTarget.Directive });
36
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0-next.1", type: MatError, isStandalone: true, selector: "mat-error, [matError]", inputs: { id: "id" }, host: { properties: { "id": "id" }, classAttribute: "mat-mdc-form-field-error mat-mdc-form-field-bottom-align" }, providers: [{ provide: MAT_ERROR, useExisting: MatError }], ngImport: i0 });
37
37
  }
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.0", ngImport: i0, type: MatError, decorators: [{
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.1", ngImport: i0, type: MatError, decorators: [{
39
39
  type: Directive,
40
40
  args: [{
41
41
  selector: 'mat-error, [matError]',
@@ -55,10 +55,10 @@ class MatHint {
55
55
  align = 'start';
56
56
  /** Unique ID for the hint. Used for the aria-describedby on the form field control. */
57
57
  id = inject(_IdGenerator).getId('mat-mdc-hint-');
58
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.0", ngImport: i0, type: MatHint, deps: [], target: i0.ɵɵFactoryTarget.Directive });
59
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0-next.0", type: MatHint, isStandalone: true, selector: "mat-hint", inputs: { align: "align", id: "id" }, host: { properties: { "class.mat-mdc-form-field-hint-end": "align === \"end\"", "id": "id", "attr.align": "null" }, classAttribute: "mat-mdc-form-field-hint mat-mdc-form-field-bottom-align" }, ngImport: i0 });
58
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.1", ngImport: i0, type: MatHint, deps: [], target: i0.ɵɵFactoryTarget.Directive });
59
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0-next.1", type: MatHint, isStandalone: true, selector: "mat-hint", inputs: { align: "align", id: "id" }, host: { properties: { "class.mat-mdc-form-field-hint-end": "align === \"end\"", "id": "id", "attr.align": "null" }, classAttribute: "mat-mdc-form-field-hint mat-mdc-form-field-bottom-align" }, ngImport: i0 });
60
60
  }
61
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.0", ngImport: i0, type: MatHint, decorators: [{
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.1", ngImport: i0, type: MatHint, decorators: [{
62
62
  type: Directive,
63
63
  args: [{
64
64
  selector: 'mat-hint',
@@ -88,10 +88,10 @@ class MatPrefix {
88
88
  this._isText = true;
89
89
  }
90
90
  _isText = false;
91
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.0", ngImport: i0, type: MatPrefix, deps: [], target: i0.ɵɵFactoryTarget.Directive });
92
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0-next.0", type: MatPrefix, isStandalone: true, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: { _isTextSelector: ["matTextPrefix", "_isTextSelector"] }, providers: [{ provide: MAT_PREFIX, useExisting: MatPrefix }], ngImport: i0 });
91
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.1", ngImport: i0, type: MatPrefix, deps: [], target: i0.ɵɵFactoryTarget.Directive });
92
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0-next.1", type: MatPrefix, isStandalone: true, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: { _isTextSelector: ["matTextPrefix", "_isTextSelector"] }, providers: [{ provide: MAT_PREFIX, useExisting: MatPrefix }], ngImport: i0 });
93
93
  }
94
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.0", ngImport: i0, type: MatPrefix, decorators: [{
94
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.1", ngImport: i0, type: MatPrefix, decorators: [{
95
95
  type: Directive,
96
96
  args: [{
97
97
  selector: '[matPrefix], [matIconPrefix], [matTextPrefix]',
@@ -114,10 +114,10 @@ class MatSuffix {
114
114
  this._isText = true;
115
115
  }
116
116
  _isText = false;
117
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.0", ngImport: i0, type: MatSuffix, deps: [], target: i0.ɵɵFactoryTarget.Directive });
118
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0-next.0", type: MatSuffix, isStandalone: true, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: { _isTextSelector: ["matTextSuffix", "_isTextSelector"] }, providers: [{ provide: MAT_SUFFIX, useExisting: MatSuffix }], ngImport: i0 });
117
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.1", ngImport: i0, type: MatSuffix, deps: [], target: i0.ɵɵFactoryTarget.Directive });
118
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0-next.1", type: MatSuffix, isStandalone: true, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: { _isTextSelector: ["matTextSuffix", "_isTextSelector"] }, providers: [{ provide: MAT_SUFFIX, useExisting: MatSuffix }], ngImport: i0 });
119
119
  }
120
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.0", ngImport: i0, type: MatSuffix, decorators: [{
120
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.1", ngImport: i0, type: MatSuffix, decorators: [{
121
121
  type: Directive,
122
122
  args: [{
123
123
  selector: '[matSuffix], [matIconSuffix], [matTextSuffix]',
@@ -211,10 +211,10 @@ class MatFormFieldFloatingLabel {
211
211
  .subscribe(() => this._handleResize());
212
212
  });
213
213
  }
214
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.0", ngImport: i0, type: MatFormFieldFloatingLabel, deps: [], target: i0.ɵɵFactoryTarget.Directive });
215
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0-next.0", type: MatFormFieldFloatingLabel, isStandalone: true, selector: "label[matFormFieldFloatingLabel]", inputs: { floating: "floating", monitorResize: "monitorResize" }, host: { properties: { "class.mdc-floating-label--float-above": "floating" }, classAttribute: "mdc-floating-label mat-mdc-floating-label" }, ngImport: i0 });
214
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.1", ngImport: i0, type: MatFormFieldFloatingLabel, deps: [], target: i0.ɵɵFactoryTarget.Directive });
215
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0-next.1", type: MatFormFieldFloatingLabel, isStandalone: true, selector: "label[matFormFieldFloatingLabel]", inputs: { floating: "floating", monitorResize: "monitorResize" }, host: { properties: { "class.mdc-floating-label--float-above": "floating" }, classAttribute: "mdc-floating-label mat-mdc-floating-label" }, ngImport: i0 });
216
216
  }
217
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.0", ngImport: i0, type: MatFormFieldFloatingLabel, decorators: [{
217
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.1", ngImport: i0, type: MatFormFieldFloatingLabel, decorators: [{
218
218
  type: Directive,
219
219
  args: [{
220
220
  selector: 'label[matFormFieldFloatingLabel]',
@@ -290,10 +290,10 @@ class MatFormFieldLineRipple {
290
290
  ngOnDestroy() {
291
291
  this._cleanupTransitionEnd();
292
292
  }
293
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.0", ngImport: i0, type: MatFormFieldLineRipple, deps: [], target: i0.ɵɵFactoryTarget.Directive });
294
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0-next.0", type: MatFormFieldLineRipple, isStandalone: true, selector: "div[matFormFieldLineRipple]", host: { classAttribute: "mdc-line-ripple" }, ngImport: i0 });
293
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.1", ngImport: i0, type: MatFormFieldLineRipple, deps: [], target: i0.ɵɵFactoryTarget.Directive });
294
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0-next.1", type: MatFormFieldLineRipple, isStandalone: true, selector: "div[matFormFieldLineRipple]", host: { classAttribute: "mdc-line-ripple" }, ngImport: i0 });
295
295
  }
296
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.0", ngImport: i0, type: MatFormFieldLineRipple, decorators: [{
296
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.1", ngImport: i0, type: MatFormFieldLineRipple, decorators: [{
297
297
  type: Directive,
298
298
  args: [{
299
299
  selector: 'div[matFormFieldLineRipple]',
@@ -346,10 +346,10 @@ class MatFormFieldNotchedOutline {
346
346
  // Set this only on the notch to avoid style recalculations in other parts of the form field.
347
347
  this._notch.nativeElement.style.setProperty('--mat-form-field-notch-max-width', `calc(100% - ${prefixAndSuffixWidth}px)`);
348
348
  }
349
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.0", ngImport: i0, type: MatFormFieldNotchedOutline, deps: [], target: i0.ɵɵFactoryTarget.Component });
350
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.0-next.0", type: MatFormFieldNotchedOutline, isStandalone: true, selector: "div[matFormFieldNotchedOutline]", inputs: { open: ["matFormFieldNotchedOutlineOpen", "open"] }, host: { properties: { "class.mdc-notched-outline--notched": "open" }, classAttribute: "mdc-notched-outline" }, viewQueries: [{ propertyName: "_notch", first: true, predicate: ["notch"], descendants: true }], ngImport: i0, 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", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
349
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.1", ngImport: i0, type: MatFormFieldNotchedOutline, deps: [], target: i0.ɵɵFactoryTarget.Component });
350
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.0-next.1", type: MatFormFieldNotchedOutline, isStandalone: true, selector: "div[matFormFieldNotchedOutline]", inputs: { open: ["matFormFieldNotchedOutlineOpen", "open"] }, host: { properties: { "class.mdc-notched-outline--notched": "open" }, classAttribute: "mdc-notched-outline" }, viewQueries: [{ propertyName: "_notch", first: true, predicate: ["notch"], descendants: true }], ngImport: i0, 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", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
351
351
  }
352
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.0", ngImport: i0, type: MatFormFieldNotchedOutline, decorators: [{
352
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.1", ngImport: i0, type: MatFormFieldNotchedOutline, decorators: [{
353
353
  type: Component,
354
354
  args: [{ selector: 'div[matFormFieldNotchedOutline]', host: {
355
355
  'class': 'mdc-notched-outline',
@@ -416,10 +416,10 @@ class MatFormFieldControl {
416
416
  disableAutomaticLabeling;
417
417
  /** Gets the list of element IDs that currently describe this control. */
418
418
  describedByIds;
419
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.0", ngImport: i0, type: MatFormFieldControl, deps: [], target: i0.ɵɵFactoryTarget.Directive });
420
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0-next.0", type: MatFormFieldControl, isStandalone: true, ngImport: i0 });
419
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.1", ngImport: i0, type: MatFormFieldControl, deps: [], target: i0.ɵɵFactoryTarget.Directive });
420
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.2.0-next.1", type: MatFormFieldControl, isStandalone: true, ngImport: i0 });
421
421
  }
422
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.0", ngImport: i0, type: MatFormFieldControl, decorators: [{
422
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.1", ngImport: i0, type: MatFormFieldControl, decorators: [{
423
423
  type: Directive
424
424
  }] });
425
425
 
@@ -592,6 +592,7 @@ class MatFormField {
592
592
  _stateChanges;
593
593
  _valueChanges;
594
594
  _describedByChanges;
595
+ _outlineLabelOffsetResizeObserver = null;
595
596
  _animationsDisabled = _animationsDisabled();
596
597
  constructor() {
597
598
  const defaults = this._defaults;
@@ -758,22 +759,23 @@ class MatFormField {
758
759
  }
759
760
  }
760
761
  _updateFocusState() {
762
+ const controlFocused = this._control.focused;
761
763
  // Usually the MDC foundation would call "activateFocus" and "deactivateFocus" whenever
762
764
  // certain DOM events are emitted. This is not possible in our implementation of the
763
765
  // form field because we support abstract form field controls which are not necessarily
764
766
  // of type input, nor do we have a reference to a native form field control element. Instead
765
767
  // we handle the focus by checking if the abstract form field control focused state changes.
766
- if (this._control.focused && !this._isFocused) {
768
+ if (controlFocused && !this._isFocused) {
767
769
  this._isFocused = true;
768
770
  this._lineRipple?.activate();
769
771
  }
770
- else if (!this._control.focused && (this._isFocused || this._isFocused === null)) {
772
+ else if (!controlFocused && (this._isFocused || this._isFocused === null)) {
771
773
  this._isFocused = false;
772
774
  this._lineRipple?.deactivate();
773
775
  }
774
- this._textField?.nativeElement.classList.toggle('mdc-text-field--focused', this._control.focused);
776
+ this._elementRef.nativeElement.classList.toggle('mat-focused', controlFocused);
777
+ this._textField?.nativeElement.classList.toggle('mdc-text-field--focused', controlFocused);
775
778
  }
776
- _outlineLabelOffsetResizeObserver = null;
777
779
  /**
778
780
  * The floating label in the docked state needs to account for prefixes. The horizontal offset
779
781
  * is calculated whenever the appearance changes to `outline`, the prefixes change, or when the
@@ -1009,13 +1011,13 @@ class MatFormField {
1009
1011
  // shadow DOM, however browser that support shadow DOM should support `getRootNode` as well.
1010
1012
  return document.documentElement.contains(element);
1011
1013
  }
1012
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.0", ngImport: i0, type: MatFormField, deps: [], target: i0.ɵɵFactoryTarget.Component });
1013
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.0-next.0", type: MatFormField, isStandalone: true, selector: "mat-form-field", inputs: { hideRequiredMarker: "hideRequiredMarker", color: "color", floatLabel: "floatLabel", appearance: "appearance", subscriptSizing: "subscriptSizing", hintLabel: "hintLabel" }, host: { properties: { "class.mat-mdc-form-field-label-always-float": "_shouldAlwaysFloat()", "class.mat-mdc-form-field-has-icon-prefix": "_hasIconPrefix", "class.mat-mdc-form-field-has-icon-suffix": "_hasIconSuffix", "class.mat-form-field-invalid": "_control.errorState", "class.mat-form-field-disabled": "_control.disabled", "class.mat-form-field-autofilled": "_control.autofilled", "class.mat-form-field-appearance-fill": "appearance == \"fill\"", "class.mat-form-field-appearance-outline": "appearance == \"outline\"", "class.mat-form-field-hide-placeholder": "_hasFloatingLabel() && !_shouldLabelFloat()", "class.mat-focused": "_control.focused", "class.mat-primary": "color !== \"accent\" && color !== \"warn\"", "class.mat-accent": "color === \"accent\"", "class.mat-warn": "color === \"warn\"", "class.ng-untouched": "_shouldForward(\"untouched\")", "class.ng-touched": "_shouldForward(\"touched\")", "class.ng-pristine": "_shouldForward(\"pristine\")", "class.ng-dirty": "_shouldForward(\"dirty\")", "class.ng-valid": "_shouldForward(\"valid\")", "class.ng-invalid": "_shouldForward(\"invalid\")", "class.ng-pending": "_shouldForward(\"pending\")" }, classAttribute: "mat-mdc-form-field" }, providers: [
1014
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.1", ngImport: i0, type: MatFormField, deps: [], target: i0.ɵɵFactoryTarget.Component });
1015
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.0-next.1", type: MatFormField, isStandalone: true, selector: "mat-form-field", inputs: { hideRequiredMarker: "hideRequiredMarker", color: "color", floatLabel: "floatLabel", appearance: "appearance", subscriptSizing: "subscriptSizing", hintLabel: "hintLabel" }, host: { properties: { "class.mat-mdc-form-field-label-always-float": "_shouldAlwaysFloat()", "class.mat-mdc-form-field-has-icon-prefix": "_hasIconPrefix", "class.mat-mdc-form-field-has-icon-suffix": "_hasIconSuffix", "class.mat-form-field-invalid": "_control.errorState", "class.mat-form-field-disabled": "_control.disabled", "class.mat-form-field-autofilled": "_control.autofilled", "class.mat-form-field-appearance-fill": "appearance == \"fill\"", "class.mat-form-field-appearance-outline": "appearance == \"outline\"", "class.mat-form-field-hide-placeholder": "_hasFloatingLabel() && !_shouldLabelFloat()", "class.mat-primary": "color !== \"accent\" && color !== \"warn\"", "class.mat-accent": "color === \"accent\"", "class.mat-warn": "color === \"warn\"", "class.ng-untouched": "_shouldForward(\"untouched\")", "class.ng-touched": "_shouldForward(\"touched\")", "class.ng-pristine": "_shouldForward(\"pristine\")", "class.ng-dirty": "_shouldForward(\"dirty\")", "class.ng-valid": "_shouldForward(\"valid\")", "class.ng-invalid": "_shouldForward(\"invalid\")", "class.ng-pending": "_shouldForward(\"pending\")" }, classAttribute: "mat-mdc-form-field" }, providers: [
1014
1016
  { provide: MAT_FORM_FIELD, useExisting: MatFormField },
1015
1017
  { provide: FLOATING_LABEL_PARENT, useExisting: MatFormField },
1016
1018
  ], queries: [{ propertyName: "_labelChild", first: true, predicate: MatLabel, descendants: true, isSignal: true }, { propertyName: "_formFieldControl", first: true, predicate: MatFormFieldControl, descendants: true }, { propertyName: "_prefixChildren", predicate: MAT_PREFIX, descendants: true }, { propertyName: "_suffixChildren", predicate: MAT_SUFFIX, descendants: true }, { propertyName: "_errorChildren", predicate: MAT_ERROR, descendants: true }, { propertyName: "_hintChildren", predicate: MatHint, descendants: true }], viewQueries: [{ propertyName: "_iconPrefixContainerSignal", first: true, predicate: ["iconPrefixContainer"], descendants: true, isSignal: true }, { propertyName: "_textPrefixContainerSignal", first: true, predicate: ["textPrefixContainer"], descendants: true, isSignal: true }, { propertyName: "_iconSuffixContainerSignal", first: true, predicate: ["iconSuffixContainer"], descendants: true, isSignal: true }, { propertyName: "_textSuffixContainerSignal", first: true, predicate: ["textSuffixContainer"], descendants: true, isSignal: true }, { propertyName: "_textField", first: true, predicate: ["textField"], descendants: true }, { propertyName: "_iconPrefixContainer", first: true, predicate: ["iconPrefixContainer"], descendants: true }, { propertyName: "_textPrefixContainer", first: true, predicate: ["textPrefixContainer"], descendants: true }, { propertyName: "_iconSuffixContainer", first: true, predicate: ["iconSuffixContainer"], descendants: true }, { propertyName: "_textSuffixContainer", first: true, predicate: ["textSuffixContainer"], descendants: true }, { propertyName: "_floatingLabel", first: true, predicate: MatFormFieldFloatingLabel, descendants: true }, { propertyName: "_notchedOutline", first: true, predicate: MatFormFieldNotchedOutline, descendants: true }, { propertyName: "_lineRipple", first: true, predicate: MatFormFieldLineRipple, descendants: true }], exportAs: ["matFormField"], ngImport: i0, 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", 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"], dependencies: [{ kind: "directive", type: MatFormFieldFloatingLabel, selector: "label[matFormFieldFloatingLabel]", inputs: ["floating", "monitorResize"] }, { kind: "component", type: MatFormFieldNotchedOutline, selector: "div[matFormFieldNotchedOutline]", inputs: ["matFormFieldNotchedOutlineOpen"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: MatFormFieldLineRipple, selector: "div[matFormFieldLineRipple]" }, { kind: "directive", type: MatHint, selector: "mat-hint", inputs: ["align", "id"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1017
1019
  }
1018
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.0", ngImport: i0, type: MatFormField, decorators: [{
1020
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.1", ngImport: i0, type: MatFormField, decorators: [{
1019
1021
  type: Component,
1020
1022
  args: [{ selector: 'mat-form-field', exportAs: 'matFormField', host: {
1021
1023
  'class': 'mat-mdc-form-field',
@@ -1031,7 +1033,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.0",
1031
1033
  '[class.mat-form-field-appearance-fill]': 'appearance == "fill"',
1032
1034
  '[class.mat-form-field-appearance-outline]': 'appearance == "outline"',
1033
1035
  '[class.mat-form-field-hide-placeholder]': '_hasFloatingLabel() && !_shouldLabelFloat()',
1034
- '[class.mat-focused]': '_control.focused',
1035
1036
  '[class.mat-primary]': 'color !== "accent" && color !== "warn"',
1036
1037
  '[class.mat-accent]': 'color === "accent"',
1037
1038
  '[class.mat-warn]': 'color === "warn"',
@@ -1106,4 +1107,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.0",
1106
1107
  }] } });
1107
1108
 
1108
1109
  export { MatLabel as M, MAT_ERROR as a, MatError as b, MatHint as c, MAT_PREFIX as d, MatPrefix as e, MAT_SUFFIX as f, MatSuffix as g, MAT_FORM_FIELD as h, MAT_FORM_FIELD_DEFAULT_OPTIONS as i, MatFormField as j, MatFormFieldControl as k, getMatFormFieldPlaceholderConflictError as l, getMatFormFieldDuplicatedHintError as m, getMatFormFieldMissingControlError as n };
1109
- //# sourceMappingURL=form-field-Bp1BCQ2b.mjs.map
1110
+ //# sourceMappingURL=form-field-Ce1YJL9K.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-field-Ce1YJL9K.mjs","sources":["../../../../../k8-fastbuild-ST-46c76129e412/bin/src/material/form-field/directives/label.ts","../../../../../k8-fastbuild-ST-46c76129e412/bin/src/material/form-field/directives/error.ts","../../../../../k8-fastbuild-ST-46c76129e412/bin/src/material/form-field/directives/hint.ts","../../../../../k8-fastbuild-ST-46c76129e412/bin/src/material/form-field/directives/prefix.ts","../../../../../k8-fastbuild-ST-46c76129e412/bin/src/material/form-field/directives/suffix.ts","../../../../../k8-fastbuild-ST-46c76129e412/bin/src/material/form-field/directives/floating-label.ts","../../../../../k8-fastbuild-ST-46c76129e412/bin/src/material/form-field/directives/line-ripple.ts","../../../../../k8-fastbuild-ST-46c76129e412/bin/src/material/form-field/directives/notched-outline.ts","../../../../../k8-fastbuild-ST-46c76129e412/bin/src/material/form-field/directives/notched-outline.html","../../../../../k8-fastbuild-ST-46c76129e412/bin/src/material/form-field/form-field-control.ts","../../../../../k8-fastbuild-ST-46c76129e412/bin/src/material/form-field/form-field-errors.ts","../../../../../k8-fastbuild-ST-46c76129e412/bin/src/material/form-field/form-field.ts","../../../../../k8-fastbuild-ST-46c76129e412/bin/src/material/form-field/form-field.html"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {Directive} from '@angular/core';\n\n/** The floating label for a `mat-form-field`. */\n@Directive({\n selector: 'mat-label',\n})\nexport class MatLabel {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {Directive, InjectionToken, Input, inject} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\n\n/**\n * Injection token that can be used to reference instances of `MatError`. It serves as\n * alternative token to the actual `MatError` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nexport const MAT_ERROR = new InjectionToken<MatError>('MatError');\n\n/** Single error message to be shown underneath the form-field. */\n@Directive({\n selector: 'mat-error, [matError]',\n host: {\n 'class': 'mat-mdc-form-field-error mat-mdc-form-field-bottom-align',\n '[id]': 'id',\n },\n providers: [{provide: MAT_ERROR, useExisting: MatError}],\n})\nexport class MatError {\n @Input() id: string = inject(_IdGenerator).getId('mat-mdc-error-');\n\n constructor(...args: unknown[]);\n\n constructor() {}\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {Directive, inject, Input} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\n\n/** Hint text to be shown underneath the form field control. */\n@Directive({\n selector: 'mat-hint',\n host: {\n 'class': 'mat-mdc-form-field-hint mat-mdc-form-field-bottom-align',\n '[class.mat-mdc-form-field-hint-end]': 'align === \"end\"',\n '[id]': 'id',\n // Remove align attribute to prevent it from interfering with layout.\n '[attr.align]': 'null',\n },\n})\nexport class MatHint {\n /** Whether to align the hint label at the start or end of the line. */\n @Input() align: 'start' | 'end' = 'start';\n\n /** Unique ID for the hint. Used for the aria-describedby on the form field control. */\n @Input() id: string = inject(_IdGenerator).getId('mat-mdc-hint-');\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {Directive, InjectionToken, Input} from '@angular/core';\n\n/**\n * Injection token that can be used to reference instances of `MatPrefix`. It serves as\n * alternative token to the actual `MatPrefix` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nexport const MAT_PREFIX = new InjectionToken<MatPrefix>('MatPrefix');\n\n/** Prefix to be placed in front of the form field. */\n@Directive({\n selector: '[matPrefix], [matIconPrefix], [matTextPrefix]',\n providers: [{provide: MAT_PREFIX, useExisting: MatPrefix}],\n})\nexport class MatPrefix {\n @Input('matTextPrefix')\n set _isTextSelector(value: '') {\n this._isText = true;\n }\n\n _isText = false;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {Directive, InjectionToken, Input} from '@angular/core';\n\n/**\n * Injection token that can be used to reference instances of `MatSuffix`. It serves as\n * alternative token to the actual `MatSuffix` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nexport const MAT_SUFFIX = new InjectionToken<MatSuffix>('MatSuffix');\n\n/** Suffix to be placed at the end of the form field. */\n@Directive({\n selector: '[matSuffix], [matIconSuffix], [matTextSuffix]',\n providers: [{provide: MAT_SUFFIX, useExisting: MatSuffix}],\n})\nexport class MatSuffix {\n @Input('matTextSuffix')\n set _isTextSelector(value: '') {\n this._isText = true;\n }\n\n _isText = false;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n Directive,\n ElementRef,\n inject,\n Input,\n NgZone,\n OnDestroy,\n InjectionToken,\n} from '@angular/core';\nimport {SharedResizeObserver} from '@angular/cdk/observers/private';\nimport {Subscription} from 'rxjs';\n\n/** An interface that the parent form-field should implement to receive resize events. */\nexport interface FloatingLabelParent {\n _handleLabelResized(): void;\n}\n\n/** An injion token for the parent form-field. */\nexport const FLOATING_LABEL_PARENT = new InjectionToken<FloatingLabelParent>('FloatingLabelParent');\n\n/**\n * Internal directive that maintains a MDC floating label. This directive does not\n * use the `MDCFloatingLabelFoundation` class, as it is not worth the size cost of\n * including it just to measure the label width and toggle some classes.\n *\n * The use of a directive allows us to conditionally render a floating label in the\n * template without having to manually manage instantiation and destruction of the\n * floating label component based on.\n *\n * The component is responsible for setting up the floating label styles, measuring label\n * width for the outline notch, and providing inputs that can be used to toggle the\n * label's floating or required state.\n */\n@Directive({\n selector: 'label[matFormFieldFloatingLabel]',\n host: {\n 'class': 'mdc-floating-label mat-mdc-floating-label',\n '[class.mdc-floating-label--float-above]': 'floating',\n },\n})\nexport class MatFormFieldFloatingLabel implements OnDestroy {\n private _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /** Whether the label is floating. */\n @Input()\n get floating() {\n return this._floating;\n }\n set floating(value: boolean) {\n this._floating = value;\n if (this.monitorResize) {\n this._handleResize();\n }\n }\n private _floating = false;\n\n /** Whether to monitor for resize events on the floating label. */\n @Input()\n get monitorResize() {\n return this._monitorResize;\n }\n set monitorResize(value: boolean) {\n this._monitorResize = value;\n if (this._monitorResize) {\n this._subscribeToResize();\n } else {\n this._resizeSubscription.unsubscribe();\n }\n }\n private _monitorResize = false;\n\n /** The shared ResizeObserver. */\n private _resizeObserver = inject(SharedResizeObserver);\n\n /** The Angular zone. */\n private _ngZone = inject(NgZone);\n\n /** The parent form-field. */\n private _parent = inject(FLOATING_LABEL_PARENT);\n\n /** The current resize event subscription. */\n private _resizeSubscription = new Subscription();\n\n constructor(...args: unknown[]);\n constructor() {}\n\n ngOnDestroy() {\n this._resizeSubscription.unsubscribe();\n }\n\n /** Gets the width of the label. Used for the outline notch. */\n getWidth(): number {\n return estimateScrollWidth(this._elementRef.nativeElement);\n }\n\n /** Gets the HTML element for the floating label. */\n get element(): HTMLElement {\n return this._elementRef.nativeElement;\n }\n\n /** Handles resize events from the ResizeObserver. */\n private _handleResize() {\n // In the case where the label grows in size, the following sequence of events occurs:\n // 1. The label grows by 1px triggering the ResizeObserver\n // 2. The notch is expanded to accommodate the entire label\n // 3. The label expands to its full width, triggering the ResizeObserver again\n //\n // This is expected, but If we allow this to all happen within the same macro task it causes an\n // error: `ResizeObserver loop limit exceeded`. Therefore we push the notch resize out until\n // the next macro task.\n setTimeout(() => this._parent._handleLabelResized());\n }\n\n /** Subscribes to resize events. */\n private _subscribeToResize() {\n this._resizeSubscription.unsubscribe();\n this._ngZone.runOutsideAngular(() => {\n this._resizeSubscription = this._resizeObserver\n .observe(this._elementRef.nativeElement, {box: 'border-box'})\n .subscribe(() => this._handleResize());\n });\n }\n}\n\n/**\n * Estimates the scroll width of an element.\n * via https://github.com/material-components/material-components-web/blob/c0a11ef0d000a098fd0c372be8f12d6a99302855/packages/mdc-dom/ponyfill.ts\n */\nfunction estimateScrollWidth(element: HTMLElement): number {\n // Check the offsetParent. If the element inherits display: none from any\n // parent, the offsetParent property will be null (see\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetParent).\n // This check ensures we only clone the node when necessary.\n const htmlEl = element as HTMLElement;\n if (htmlEl.offsetParent !== null) {\n return htmlEl.scrollWidth;\n }\n\n const clone = htmlEl.cloneNode(true) as HTMLElement;\n clone.style.setProperty('position', 'absolute');\n clone.style.setProperty('transform', 'translate(-9999px, -9999px)');\n document.documentElement.appendChild(clone);\n const scrollWidth = clone.scrollWidth;\n clone.remove();\n return scrollWidth;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {Directive, ElementRef, NgZone, OnDestroy, Renderer2, inject} from '@angular/core';\n\n/** Class added when the line ripple is active. */\nconst ACTIVATE_CLASS = 'mdc-line-ripple--active';\n\n/** Class added when the line ripple is being deactivated. */\nconst DEACTIVATING_CLASS = 'mdc-line-ripple--deactivating';\n\n/**\n * Internal directive that creates an instance of the MDC line-ripple component. Using a\n * directive allows us to conditionally render a line-ripple in the template without having\n * to manually create and destroy the `MDCLineRipple` component whenever the condition changes.\n *\n * The directive sets up the styles for the line-ripple and provides an API for activating\n * and deactivating the line-ripple.\n */\n@Directive({\n selector: 'div[matFormFieldLineRipple]',\n host: {\n 'class': 'mdc-line-ripple',\n },\n})\nexport class MatFormFieldLineRipple implements OnDestroy {\n private _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private _cleanupTransitionEnd: () => void;\n\n constructor(...args: unknown[]);\n\n constructor() {\n const ngZone = inject(NgZone);\n const renderer = inject(Renderer2);\n\n ngZone.runOutsideAngular(() => {\n this._cleanupTransitionEnd = renderer.listen(\n this._elementRef.nativeElement,\n 'transitionend',\n this._handleTransitionEnd,\n );\n });\n }\n\n activate() {\n const classList = this._elementRef.nativeElement.classList;\n classList.remove(DEACTIVATING_CLASS);\n classList.add(ACTIVATE_CLASS);\n }\n\n deactivate() {\n this._elementRef.nativeElement.classList.add(DEACTIVATING_CLASS);\n }\n\n private _handleTransitionEnd = (event: TransitionEvent) => {\n const classList = this._elementRef.nativeElement.classList;\n const isDeactivating = classList.contains(DEACTIVATING_CLASS);\n\n if (event.propertyName === 'opacity' && isDeactivating) {\n classList.remove(ACTIVATE_CLASS, DEACTIVATING_CLASS);\n }\n };\n\n ngOnDestroy() {\n this._cleanupTransitionEnd();\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n NgZone,\n ViewChild,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\n\n/**\n * Internal component that creates an instance of the MDC notched-outline component.\n *\n * The component sets up the HTML structure and styles for the notched-outline. It provides\n * inputs to toggle the notch state and width.\n */\n@Component({\n selector: 'div[matFormFieldNotchedOutline]',\n templateUrl: './notched-outline.html',\n host: {\n 'class': 'mdc-notched-outline',\n // Besides updating the notch state through the MDC component, we toggle this class through\n // a host binding in order to ensure that the notched-outline renders correctly on the server.\n '[class.mdc-notched-outline--notched]': 'open',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class MatFormFieldNotchedOutline implements AfterViewInit {\n private _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private _ngZone = inject(NgZone);\n\n /** Whether the notch should be opened. */\n @Input('matFormFieldNotchedOutlineOpen') open: boolean = false;\n\n @ViewChild('notch') _notch: ElementRef<HTMLElement>;\n\n ngAfterViewInit(): void {\n const element = this._elementRef.nativeElement;\n const label = element.querySelector<HTMLElement>('.mdc-floating-label');\n\n if (label) {\n element.classList.add('mdc-notched-outline--upgraded');\n\n if (typeof requestAnimationFrame === 'function') {\n label.style.transitionDuration = '0s';\n this._ngZone.runOutsideAngular(() => {\n requestAnimationFrame(() => (label.style.transitionDuration = ''));\n });\n }\n } else {\n element.classList.add('mdc-notched-outline--no-label');\n }\n }\n\n _setNotchWidth(labelWidth: number) {\n const notch = this._notch.nativeElement;\n\n if (!this.open || !labelWidth) {\n notch.style.width = '';\n } else {\n const NOTCH_ELEMENT_PADDING = 8;\n const NOTCH_ELEMENT_BORDER = 1;\n notch.style.width = `calc(${labelWidth}px * var(--mat-mdc-form-field-floating-label-scale, 0.75) + ${\n NOTCH_ELEMENT_PADDING + NOTCH_ELEMENT_BORDER\n }px)`;\n }\n }\n\n _setMaxWidth(prefixAndSuffixWidth: number) {\n // Set this only on the notch to avoid style recalculations in other parts of the form field.\n this._notch.nativeElement.style.setProperty(\n '--mat-form-field-notch-max-width',\n `calc(100% - ${prefixAndSuffixWidth}px)`,\n );\n }\n}\n","<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","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {Observable} from 'rxjs';\nimport {AbstractControlDirective, NgControl} from '@angular/forms';\nimport {Directive} from '@angular/core';\n\n/** An interface which allows a control to work inside of a `MatFormField`. */\n@Directive()\nexport abstract class MatFormFieldControl<T> {\n /** The value of the control. */\n value: T | null;\n\n /**\n * Stream that emits whenever the state of the control changes such that the parent `MatFormField`\n * needs to run change detection.\n */\n readonly stateChanges: Observable<void>;\n\n /** The element ID for this control. */\n readonly id: string;\n\n /** The placeholder for this control. */\n readonly placeholder: string;\n\n /** Gets the AbstractControlDirective for this control. */\n readonly ngControl: NgControl | AbstractControlDirective | null;\n\n /** Whether the control is focused. */\n readonly focused: boolean;\n\n /** Whether the control is empty. */\n readonly empty: boolean;\n\n /** Whether the `MatFormField` label should try to float. */\n readonly shouldLabelFloat: boolean;\n\n /** Whether the control is required. */\n readonly required: boolean;\n\n /** Whether the control is disabled. */\n readonly disabled: boolean;\n\n /** Whether the control is in an error state. */\n readonly errorState: boolean;\n\n /**\n * An optional name for the control type that can be used to distinguish `mat-form-field` elements\n * based on their control type. The form field will add a class,\n * `mat-form-field-type-{{controlType}}` to its root element.\n */\n readonly controlType?: string;\n\n /**\n * Whether the input is currently in an autofilled state. If property is not present on the\n * control it is assumed to be false.\n */\n readonly autofilled?: boolean;\n\n /**\n * Value of `aria-describedby` that should be merged with the described-by ids\n * which are set by the form-field.\n */\n readonly userAriaDescribedBy?: string;\n\n /**\n * Whether to automatically assign the ID of the form field as the `for` attribute\n * on the `<label>` inside the form field. Set this to true to prevent the form\n * field from associating the label with non-native elements.\n */\n readonly disableAutomaticLabeling?: boolean;\n\n /** Gets the list of element IDs that currently describe this control. */\n readonly describedByIds?: string[];\n\n /** Sets the list of element IDs that currently describe this control. */\n abstract setDescribedByIds(ids: string[]): void;\n\n /** Handles a click on the control's container. */\n abstract onContainerClick(event: MouseEvent): void;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\n/** @docs-private */\nexport function getMatFormFieldPlaceholderConflictError(): Error {\n return Error('Placeholder attribute and child element were both specified.');\n}\n\n/** @docs-private */\nexport function getMatFormFieldDuplicatedHintError(align: string): Error {\n return Error(`A hint was already declared for 'align=\"${align}\"'.`);\n}\n\n/** @docs-private */\nexport function getMatFormFieldMissingControlError(): Error {\n return Error('mat-form-field must contain a MatFormFieldControl.');\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {Platform} from '@angular/cdk/platform';\nimport {NgTemplateOutlet} from '@angular/common';\nimport {\n AfterContentChecked,\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n InjectionToken,\n Input,\n NgZone,\n OnDestroy,\n QueryList,\n ViewChild,\n ViewEncapsulation,\n afterRenderEffect,\n computed,\n contentChild,\n inject,\n signal,\n viewChild,\n} from '@angular/core';\nimport {AbstractControlDirective, ValidatorFn} from '@angular/forms';\nimport {Subject, Subscription, merge} from 'rxjs';\nimport {filter, map, pairwise, startWith, takeUntil} from 'rxjs/operators';\nimport {ThemePalette, _animationsDisabled} from '../core';\nimport {MAT_ERROR, MatError} from './directives/error';\nimport {\n FLOATING_LABEL_PARENT,\n FloatingLabelParent,\n MatFormFieldFloatingLabel,\n} from './directives/floating-label';\nimport {MatHint} from './directives/hint';\nimport {MatLabel} from './directives/label';\nimport {MatFormFieldLineRipple} from './directives/line-ripple';\nimport {MatFormFieldNotchedOutline} from './directives/notched-outline';\nimport {MAT_PREFIX, MatPrefix} from './directives/prefix';\nimport {MAT_SUFFIX, MatSuffix} from './directives/suffix';\nimport {MatFormFieldControl as _MatFormFieldControl} from './form-field-control';\nimport {\n getMatFormFieldDuplicatedHintError,\n getMatFormFieldMissingControlError,\n} from './form-field-errors';\n\n/** Type for the available floatLabel values. */\nexport type FloatLabelType = 'always' | 'auto';\n\n/** Possible appearance styles for the form field. */\nexport type MatFormFieldAppearance = 'fill' | 'outline';\n\n/** Behaviors for how the subscript height is set. */\nexport type SubscriptSizing = 'fixed' | 'dynamic';\n\n/**\n * Represents the default options for the form field that can be configured\n * using the `MAT_FORM_FIELD_DEFAULT_OPTIONS` injection token.\n */\nexport interface MatFormFieldDefaultOptions {\n /** Default form field appearance style. */\n appearance?: MatFormFieldAppearance;\n /**\n * Default theme color of the form field. This API is supported in M2 themes only, it has no\n * effect in M3 themes. For color customization in M3, see https://material.angular.dev/components/form-field/styling.\n *\n * For information on applying color variants in M3, see\n * https://material.angular.dev/guide/material-2-theming#optional-add-backwards-compatibility-styles-for-color-variants\n */\n color?: ThemePalette;\n /** Whether the required marker should be hidden by default. */\n hideRequiredMarker?: boolean;\n /**\n * Whether the label for form fields should by default float `always`,\n * `never`, or `auto` (only when necessary).\n */\n floatLabel?: FloatLabelType;\n /** Whether the form field should reserve space for one line by default. */\n subscriptSizing?: SubscriptSizing;\n}\n\n/**\n * Injection token that can be used to inject an instances of `MatFormField`. It serves\n * as alternative token to the actual `MatFormField` class which would cause unnecessary\n * retention of the `MatFormField` class and its component metadata.\n */\nexport const MAT_FORM_FIELD = new InjectionToken<MatFormField>('MatFormField');\n\n/**\n * Injection token that can be used to configure the\n * default options for all form field within an app.\n */\nexport const MAT_FORM_FIELD_DEFAULT_OPTIONS = new InjectionToken<MatFormFieldDefaultOptions>(\n 'MAT_FORM_FIELD_DEFAULT_OPTIONS',\n);\n\n/** Styles that are to be applied to the label elements in the outlined appearance. */\ntype OutlinedLabelStyles =\n | [floatingLabelTransform: string, notchedOutlineWidth: number | null]\n | null;\n\n/** Default appearance used by the form field. */\nconst DEFAULT_APPEARANCE: MatFormFieldAppearance = 'fill';\n\n/**\n * Whether the label for form fields should by default float `always`,\n * `never`, or `auto`.\n */\nconst DEFAULT_FLOAT_LABEL: FloatLabelType = 'auto';\n\n/** Default way that the subscript element height is set. */\nconst DEFAULT_SUBSCRIPT_SIZING: SubscriptSizing = 'fixed';\n\n/**\n * Default transform for docked floating labels in a MDC text-field. This value has been\n * extracted from the MDC text-field styles because we programmatically modify the docked\n * label transform, but do not want to accidentally discard the default label transform.\n */\nconst FLOATING_LABEL_DEFAULT_DOCKED_TRANSFORM = `translateY(-50%)`;\n\n/**\n * Despite `MatFormFieldControl` being an abstract class, most of our usages enforce its shape\n * using `implements` instead of `extends`. This appears to be problematic when Closure compiler\n * is configured to use type information to rename properties, because it can't figure out which\n * class properties are coming from. This interface seems to work around the issue while preserving\n * our type safety (alternative being using `any` everywhere).\n * @docs-private\n */\ninterface MatFormFieldControl<T> extends _MatFormFieldControl<T> {}\n\n/** Container for form controls that applies Material Design styling and behavior. */\n@Component({\n selector: 'mat-form-field',\n exportAs: 'matFormField',\n templateUrl: './form-field.html',\n styleUrl: './form-field.css',\n host: {\n 'class': 'mat-mdc-form-field',\n '[class.mat-mdc-form-field-label-always-float]': '_shouldAlwaysFloat()',\n '[class.mat-mdc-form-field-has-icon-prefix]': '_hasIconPrefix',\n '[class.mat-mdc-form-field-has-icon-suffix]': '_hasIconSuffix',\n // Note that these classes reuse the same names as the non-MDC version, because they can be\n // considered a public API since custom form controls may use them to style themselves.\n // See https://github.com/angular/components/pull/20502#discussion_r486124901.\n '[class.mat-form-field-invalid]': '_control.errorState',\n '[class.mat-form-field-disabled]': '_control.disabled',\n '[class.mat-form-field-autofilled]': '_control.autofilled',\n '[class.mat-form-field-appearance-fill]': 'appearance == \"fill\"',\n '[class.mat-form-field-appearance-outline]': 'appearance == \"outline\"',\n '[class.mat-form-field-hide-placeholder]': '_hasFloatingLabel() && !_shouldLabelFloat()',\n '[class.mat-primary]': 'color !== \"accent\" && color !== \"warn\"',\n '[class.mat-accent]': 'color === \"accent\"',\n '[class.mat-warn]': 'color === \"warn\"',\n '[class.ng-untouched]': '_shouldForward(\"untouched\")',\n '[class.ng-touched]': '_shouldForward(\"touched\")',\n '[class.ng-pristine]': '_shouldForward(\"pristine\")',\n '[class.ng-dirty]': '_shouldForward(\"dirty\")',\n '[class.ng-valid]': '_shouldForward(\"valid\")',\n '[class.ng-invalid]': '_shouldForward(\"invalid\")',\n '[class.ng-pending]': '_shouldForward(\"pending\")',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {provide: MAT_FORM_FIELD, useExisting: MatFormField},\n {provide: FLOATING_LABEL_PARENT, useExisting: MatFormField},\n ],\n imports: [\n MatFormFieldFloatingLabel,\n MatFormFieldNotchedOutline,\n NgTemplateOutlet,\n MatFormFieldLineRipple,\n MatHint,\n ],\n})\nexport class MatFormField\n implements FloatingLabelParent, AfterContentInit, AfterContentChecked, AfterViewInit, OnDestroy\n{\n _elementRef = inject(ElementRef);\n private _changeDetectorRef = inject(ChangeDetectorRef);\n private _dir = inject(Directionality);\n private _platform = inject(Platform);\n private _idGenerator = inject(_IdGenerator);\n private _ngZone = inject(NgZone);\n private _defaults = inject<MatFormFieldDefaultOptions>(MAT_FORM_FIELD_DEFAULT_OPTIONS, {\n optional: true,\n });\n\n @ViewChild('textField') _textField: ElementRef<HTMLElement>;\n @ViewChild('iconPrefixContainer') _iconPrefixContainer: ElementRef<HTMLElement>;\n @ViewChild('textPrefixContainer') _textPrefixContainer: ElementRef<HTMLElement>;\n @ViewChild('iconSuffixContainer') _iconSuffixContainer: ElementRef<HTMLElement>;\n @ViewChild('textSuffixContainer') _textSuffixContainer: ElementRef<HTMLElement>;\n @ViewChild(MatFormFieldFloatingLabel) _floatingLabel: MatFormFieldFloatingLabel | undefined;\n @ViewChild(MatFormFieldNotchedOutline) _notchedOutline: MatFormFieldNotchedOutline | undefined;\n @ViewChild(MatFormFieldLineRipple) _lineRipple: MatFormFieldLineRipple | undefined;\n\n private _iconPrefixContainerSignal = viewChild<ElementRef<HTMLElement>>('iconPrefixContainer');\n private _textPrefixContainerSignal = viewChild<ElementRef<HTMLElement>>('textPrefixContainer');\n private _iconSuffixContainerSignal = viewChild<ElementRef<HTMLElement>>('iconSuffixContainer');\n private _textSuffixContainerSignal = viewChild<ElementRef<HTMLElement>>('textSuffixContainer');\n private _prefixSuffixContainers = computed(() => {\n return [\n this._iconPrefixContainerSignal(),\n this._textPrefixContainerSignal(),\n this._iconSuffixContainerSignal(),\n this._textSuffixContainerSignal(),\n ]\n .map(container => container?.nativeElement)\n .filter(e => e !== undefined);\n });\n\n @ContentChild(_MatFormFieldControl) _formFieldControl: MatFormFieldControl<any>;\n @ContentChildren(MAT_PREFIX, {descendants: true}) _prefixChildren: QueryList<MatPrefix>;\n @ContentChildren(MAT_SUFFIX, {descendants: true}) _suffixChildren: QueryList<MatSuffix>;\n @ContentChildren(MAT_ERROR, {descendants: true}) _errorChildren: QueryList<MatError>;\n @ContentChildren(MatHint, {descendants: true}) _hintChildren: QueryList<MatHint>;\n\n private readonly _labelChild = contentChild(MatLabel);\n\n /** Whether the required marker should be hidden. */\n @Input()\n get hideRequiredMarker(): boolean {\n return this._hideRequiredMarker;\n }\n set hideRequiredMarker(value: BooleanInput) {\n this._hideRequiredMarker = coerceBooleanProperty(value);\n }\n private _hideRequiredMarker = false;\n\n /**\n * Theme color of the form field. This API is supported in M2 themes only, it\n * has no effect in M3 themes. For color customization in M3, see https://material.angular.dev/components/form-field/styling.\n *\n * For information on applying color variants in M3, see\n * https://material.angular.dev/guide/material-2-theming#optional-add-backwards-compatibility-styles-for-color-variants\n */\n @Input() color: ThemePalette = 'primary';\n\n /** Whether the label should always float or float as the user types. */\n @Input()\n get floatLabel(): FloatLabelType {\n return this._floatLabel || this._defaults?.floatLabel || DEFAULT_FLOAT_LABEL;\n }\n set floatLabel(value: FloatLabelType) {\n if (value !== this._floatLabel) {\n this._floatLabel = value;\n // For backwards compatibility. Custom form field controls or directives might set\n // the \"floatLabel\" input and expect the form field view to be updated automatically.\n // e.g. autocomplete trigger. Ideally we'd get rid of this and the consumers would just\n // emit the \"stateChanges\" observable. TODO(devversion): consider removing.\n this._changeDetectorRef.markForCheck();\n }\n }\n private _floatLabel: FloatLabelType;\n\n /** The form field appearance style. */\n @Input()\n get appearance(): MatFormFieldAppearance {\n return this._appearanceSignal();\n }\n set appearance(value: MatFormFieldAppearance) {\n const newAppearance = value || this._defaults?.appearance || DEFAULT_APPEARANCE;\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (newAppearance !== 'fill' && newAppearance !== 'outline') {\n throw new Error(\n `MatFormField: Invalid appearance \"${newAppearance}\", valid values are \"fill\" or \"outline\".`,\n );\n }\n }\n this._appearanceSignal.set(newAppearance);\n }\n private _appearanceSignal = signal(DEFAULT_APPEARANCE);\n\n /**\n * Whether the form field should reserve space for one line of hint/error text (default)\n * or to have the spacing grow from 0px as needed based on the size of the hint/error content.\n * Note that when using dynamic sizing, layout shifts will occur when hint/error text changes.\n */\n @Input()\n get subscriptSizing(): SubscriptSizing {\n return this._subscriptSizing || this._defaults?.subscriptSizing || DEFAULT_SUBSCRIPT_SIZING;\n }\n set subscriptSizing(value: SubscriptSizing) {\n this._subscriptSizing = value || this._defaults?.subscriptSizing || DEFAULT_SUBSCRIPT_SIZING;\n }\n private _subscriptSizing: SubscriptSizing | null = null;\n\n /** Text for the form field hint. */\n @Input()\n get hintLabel(): string {\n return this._hintLabel;\n }\n set hintLabel(value: string) {\n this._hintLabel = value;\n this._processHints();\n }\n private _hintLabel = '';\n\n _hasIconPrefix = false;\n _hasTextPrefix = false;\n _hasIconSuffix = false;\n _hasTextSuffix = false;\n\n // Unique id for the internal form field label.\n readonly _labelId = this._idGenerator.getId('mat-mdc-form-field-label-');\n\n // Unique id for the hint label.\n readonly _hintLabelId = this._idGenerator.getId('mat-mdc-hint-');\n\n // Ids obtained from the error and hint fields\n private _describedByIds: string[] | undefined;\n\n /** Gets the current form field control */\n get _control(): MatFormFieldControl<any> {\n return this._explicitFormFieldControl || this._formFieldControl;\n }\n set _control(value) {\n this._explicitFormFieldControl = value;\n }\n\n private _destroyed = new Subject<void>();\n private _isFocused: boolean | null = null;\n private _explicitFormFieldControl: MatFormFieldControl<any>;\n private _previousControl: MatFormFieldControl<unknown> | null = null;\n private _previousControlValidatorFn: ValidatorFn | null = null;\n private _stateChanges: Subscription | undefined;\n private _valueChanges: Subscription | undefined;\n private _describedByChanges: Subscription | undefined;\n private _outlineLabelOffsetResizeObserver: ResizeObserver | null = null;\n protected readonly _animationsDisabled = _animationsDisabled();\n\n constructor(...args: unknown[]);\n\n constructor() {\n const defaults = this._defaults;\n\n if (defaults) {\n if (defaults.appearance) {\n this.appearance = defaults.appearance;\n }\n this._hideRequiredMarker = Boolean(defaults?.hideRequiredMarker);\n if (defaults.color) {\n this.color = defaults.color;\n }\n }\n\n this._syncOutlineLabelOffset();\n }\n\n ngAfterViewInit() {\n // Initial focus state sync. This happens rarely, but we want to account for\n // it in case the form field control has \"focused\" set to true on init.\n this._updateFocusState();\n\n if (!this._animationsDisabled) {\n this._ngZone.runOutsideAngular(() => {\n // Enable animations after a certain amount of time so that they don't run on init.\n setTimeout(() => {\n this._elementRef.nativeElement.classList.add('mat-form-field-animations-enabled');\n }, 300);\n });\n }\n\n // Because the above changes a value used in the template after it was checked, we need\n // to trigger CD or the change might not be reflected if there is no other CD scheduled.\n this._changeDetectorRef.detectChanges();\n }\n\n ngAfterContentInit() {\n this._assertFormFieldControl();\n this._initializeSubscript();\n this._initializePrefixAndSuffix();\n }\n\n ngAfterContentChecked() {\n this._assertFormFieldControl();\n\n // if form field was being used with an input in first place and then replaced by other\n // component such as select.\n if (this._control !== this._previousControl) {\n this._initializeControl(this._previousControl);\n\n // keep a reference for last validator we had.\n if (this._control.ngControl && this._control.ngControl.control) {\n this._previousControlValidatorFn = this._control.ngControl.control.validator;\n }\n\n this._previousControl = this._control;\n }\n\n // make sure the the control has been initialized.\n if (this._control.ngControl && this._control.ngControl.control) {\n // get the validators for current control.\n const validatorFn = this._control.ngControl.control.validator;\n\n // if our current validatorFn isn't equal to it might be we are CD behind, marking the\n // component will allow us to catch up.\n if (validatorFn !== this._previousControlValidatorFn) {\n this._changeDetectorRef.markForCheck();\n }\n }\n }\n\n ngOnDestroy() {\n this._outlineLabelOffsetResizeObserver?.disconnect();\n this._stateChanges?.unsubscribe();\n this._valueChanges?.unsubscribe();\n this._describedByChanges?.unsubscribe();\n this._destroyed.next();\n this._destroyed.complete();\n }\n\n /**\n * Gets the id of the label element. If no label is present, returns `null`.\n */\n getLabelId = computed(() => (this._hasFloatingLabel() ? this._labelId : null));\n\n /**\n * Gets an ElementRef for the element that a overlay attached to the form field\n * should be positioned relative to.\n */\n getConnectedOverlayOrigin(): ElementRef {\n return this._textField || this._elementRef;\n }\n\n /** Animates the placeholder up and locks it in position. */\n _animateAndLockLabel(): void {\n // This is for backwards compatibility only. Consumers of the form field might use\n // this method. e.g. the autocomplete trigger. This method has been added to the non-MDC\n // form field because setting \"floatLabel\" to \"always\" caused the label to float without\n // animation. This is different in MDC where the label always animates, so this method\n // is no longer necessary. There doesn't seem any benefit in adding logic to allow changing\n // the floating label state without animations. The non-MDC implementation was inconsistent\n // because it always animates if \"floatLabel\" is set away from \"always\".\n // TODO(devversion): consider removing this method when releasing the MDC form field.\n if (this._hasFloatingLabel()) {\n this.floatLabel = 'always';\n }\n }\n\n /** Initializes the registered form field control. */\n private _initializeControl(previousControl: MatFormFieldControl<unknown> | null) {\n const control = this._control;\n const classPrefix = 'mat-mdc-form-field-type-';\n\n if (previousControl) {\n this._elementRef.nativeElement.classList.remove(classPrefix + previousControl.controlType);\n }\n\n if (control.controlType) {\n this._elementRef.nativeElement.classList.add(classPrefix + control.controlType);\n }\n\n // Subscribe to changes in the child control state in order to update the form field UI.\n this._stateChanges?.unsubscribe();\n this._stateChanges = control.stateChanges.subscribe(() => {\n this._updateFocusState();\n this._changeDetectorRef.markForCheck();\n });\n\n // Updating the `aria-describedby` touches the DOM. Only do it if it actually needs to change.\n this._describedByChanges?.unsubscribe();\n this._describedByChanges = control.stateChanges\n .pipe(\n startWith([undefined, undefined] as const),\n map(() => [control.errorState, control.userAriaDescribedBy] as const),\n pairwise(),\n filter(([[prevErrorState, prevDescribedBy], [currentErrorState, currentDescribedBy]]) => {\n return prevErrorState !== currentErrorState || prevDescribedBy !== currentDescribedBy;\n }),\n )\n .subscribe(() => this._syncDescribedByIds());\n\n this._valueChanges?.unsubscribe();\n\n // Run change detection if the value changes.\n if (control.ngControl && control.ngControl.valueChanges) {\n this._valueChanges = control.ngControl.valueChanges\n .pipe(takeUntil(this._destroyed))\n .subscribe(() => this._changeDetectorRef.markForCheck());\n }\n }\n\n private _checkPrefixAndSuffixTypes() {\n this._hasIconPrefix = !!this._prefixChildren.find(p => !p._isText);\n this._hasTextPrefix = !!this._prefixChildren.find(p => p._isText);\n this._hasIconSuffix = !!this._suffixChildren.find(s => !s._isText);\n this._hasTextSuffix = !!this._suffixChildren.find(s => s._isText);\n }\n\n /** Initializes the prefix and suffix containers. */\n private _initializePrefixAndSuffix() {\n this._checkPrefixAndSuffixTypes();\n // Mark the form field as dirty whenever the prefix or suffix children change. This\n // is necessary because we conditionally display the prefix/suffix containers based\n // on whether there is projected content.\n merge(this._prefixChildren.changes, this._suffixChildren.changes).subscribe(() => {\n this._checkPrefixAndSuffixTypes();\n this._changeDetectorRef.markForCheck();\n });\n }\n\n /**\n * Initializes the subscript by validating hints and synchronizing \"aria-describedby\" ids\n * with the custom form field control. Also subscribes to hint and error changes in order\n * to be able to validate and synchronize ids on change.\n */\n private _initializeSubscript() {\n // Re-validate when the number of hints changes.\n this._hintChildren.changes.subscribe(() => {\n this._processHints();\n this._changeDetectorRef.markForCheck();\n });\n\n // Update the aria-described by when the number of errors changes.\n this._errorChildren.changes.subscribe(() => {\n this._syncDescribedByIds();\n this._changeDetectorRef.markForCheck();\n });\n\n // Initial mat-hint validation and subscript describedByIds sync.\n this._validateHints();\n this._syncDescribedByIds();\n }\n\n /** Throws an error if the form field's control is missing. */\n private _assertFormFieldControl() {\n if (!this._control && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getMatFormFieldMissingControlError();\n }\n }\n\n private _updateFocusState() {\n const controlFocused = this._control.focused;\n\n // Usually the MDC foundation would call \"activateFocus\" and \"deactivateFocus\" whenever\n // certain DOM events are emitted. This is not possible in our implementation of the\n // form field because we support abstract form field controls which are not necessarily\n // of type input, nor do we have a reference to a native form field control element. Instead\n // we handle the focus by checking if the abstract form field control focused state changes.\n if (controlFocused && !this._isFocused) {\n this._isFocused = true;\n this._lineRipple?.activate();\n } else if (!controlFocused && (this._isFocused || this._isFocused === null)) {\n this._isFocused = false;\n this._lineRipple?.deactivate();\n }\n\n this._elementRef.nativeElement.classList.toggle('mat-focused', controlFocused);\n this._textField?.nativeElement.classList.toggle('mdc-text-field--focused', controlFocused);\n }\n\n /**\n * The floating label in the docked state needs to account for prefixes. The horizontal offset\n * is calculated whenever the appearance changes to `outline`, the prefixes change, or when the\n * form field is added to the DOM. This method sets up all subscriptions which are needed to\n * trigger the label offset update.\n */\n private _syncOutlineLabelOffset() {\n afterRenderEffect({\n earlyRead: () => {\n if (this._appearanceSignal() !== 'outline') {\n this._outlineLabelOffsetResizeObserver?.disconnect();\n return null;\n }\n\n // Setup a resize observer to monitor changes to the size of the prefix / suffix and\n // readjust the label offset.\n if (globalThis.ResizeObserver) {\n this._outlineLabelOffsetResizeObserver ||= new globalThis.ResizeObserver(() => {\n this._writeOutlinedLabelStyles(this._getOutlinedLabelOffset());\n });\n for (const el of this._prefixSuffixContainers()) {\n this._outlineLabelOffsetResizeObserver.observe(el, {box: 'border-box'});\n }\n }\n\n return this._getOutlinedLabelOffset();\n },\n write: labelStyles => this._writeOutlinedLabelStyles(labelStyles()),\n });\n }\n\n /** Whether the floating label should always float or not. */\n _shouldAlwaysFloat() {\n return this.floatLabel === 'always';\n }\n\n _hasOutline() {\n return this.appearance === 'outline';\n }\n\n /**\n * Whether the label should display in the infix. Labels in the outline appearance are\n * displayed as part of the notched-outline and are horizontally offset to account for\n * form field prefix content. This won't work in server side rendering since we cannot\n * measure the width of the prefix container. To make the docked label appear as if the\n * right offset has been calculated, we forcibly render the label inside the infix. Since\n * the label is part of the infix, the label cannot overflow the prefix content.\n */\n _forceDisplayInfixLabel() {\n return !this._platform.isBrowser && this._prefixChildren.length && !this._shouldLabelFloat();\n }\n\n _hasFloatingLabel = computed(() => !!this._labelChild());\n\n _shouldLabelFloat(): boolean {\n if (!this._hasFloatingLabel()) {\n return false;\n }\n return this._control.shouldLabelFloat || this._shouldAlwaysFloat();\n }\n\n /**\n * Determines whether a class from the AbstractControlDirective\n * should be forwarded to the host element.\n */\n _shouldForward(prop: keyof AbstractControlDirective): boolean {\n const control = this._control ? this._control.ngControl : null;\n return control && control[prop];\n }\n\n /** Gets the type of subscript message to render (error or hint). */\n _getSubscriptMessageType(): 'error' | 'hint' {\n return this._errorChildren && this._errorChildren.length > 0 && this._control.errorState\n ? 'error'\n : 'hint';\n }\n\n /** Handle label resize events. */\n _handleLabelResized() {\n this._refreshOutlineNotchWidth();\n }\n\n /** Refreshes the width of the outline-notch, if present. */\n _refreshOutlineNotchWidth() {\n if (!this._hasOutline() || !this._floatingLabel || !this._shouldLabelFloat()) {\n this._notchedOutline?._setNotchWidth(0);\n } else {\n this._notchedOutline?._setNotchWidth(this._floatingLabel.getWidth());\n }\n }\n\n /** Does any extra processing that is required when handling the hints. */\n private _processHints() {\n this._validateHints();\n this._syncDescribedByIds();\n }\n\n /**\n * Ensure that there is a maximum of one of each \"mat-hint\" alignment specified. The hint\n * label specified set through the input is being considered as \"start\" aligned.\n *\n * This method is a noop if Angular runs in production mode.\n */\n private _validateHints() {\n if (this._hintChildren && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n let startHint: MatHint;\n let endHint: MatHint;\n this._hintChildren.forEach((hint: MatHint) => {\n if (hint.align === 'start') {\n if (startHint || this.hintLabel) {\n throw getMatFormFieldDuplicatedHintError('start');\n }\n startHint = hint;\n } else if (hint.align === 'end') {\n if (endHint) {\n throw getMatFormFieldDuplicatedHintError('end');\n }\n endHint = hint;\n }\n });\n }\n }\n\n /**\n * Sets the list of element IDs that describe the child control. This allows the control to update\n * its `aria-describedby` attribute accordingly.\n */\n private _syncDescribedByIds() {\n if (this._control) {\n let ids: string[] = [];\n\n // TODO(wagnermaciel): Remove the type check when we find the root cause of this bug.\n if (\n this._control.userAriaDescribedBy &&\n typeof this._control.userAriaDescribedBy === 'string'\n ) {\n ids.push(...this._control.userAriaDescribedBy.split(' '));\n }\n\n if (this._getSubscriptMessageType() === 'hint') {\n const startHint = this._hintChildren\n ? this._hintChildren.find(hint => hint.align === 'start')\n : null;\n const endHint = this._hintChildren\n ? this._hintChildren.find(hint => hint.align === 'end')\n : null;\n\n if (startHint) {\n ids.push(startHint.id);\n } else if (this._hintLabel) {\n ids.push(this._hintLabelId);\n }\n\n if (endHint) {\n ids.push(endHint.id);\n }\n } else if (this._errorChildren) {\n ids.push(...this._errorChildren.map(error => error.id));\n }\n\n const existingDescribedBy = this._control.describedByIds;\n let toAssign: string[];\n\n // In some cases there might be some `aria-describedby` IDs that were assigned directly,\n // like by the `AriaDescriber` (see #30011). Attempt to preserve them by taking the previous\n // attribute value and filtering out the IDs that came from the previous `setDescribedByIds`\n // call. Note the `|| ids` here allows us to avoid duplicating IDs on the first render.\n if (existingDescribedBy) {\n const exclude = this._describedByIds || ids;\n toAssign = ids.concat(existingDescribedBy.filter(id => id && !exclude.includes(id)));\n } else {\n toAssign = ids;\n }\n\n this._control.setDescribedByIds(toAssign);\n this._describedByIds = ids;\n }\n }\n\n /**\n * Calculates the horizontal offset of the label in the outline appearance. In the outline\n * appearance, the notched-outline and label are not relative to the infix container because\n * the outline intends to surround prefixes, suffixes and the infix. This means that the\n * floating label by default overlaps prefixes in the docked state. To avoid this, we need to\n * horizontally offset the label by the width of the prefix container. The MDC text-field does\n * not need to do this because they use a fixed width for prefixes. Hence, they can simply\n * incorporate the horizontal offset into their default text-field styles.\n */\n private _getOutlinedLabelOffset(): OutlinedLabelStyles {\n const dir = this._dir.valueSignal();\n if (!this._hasOutline() || !this._floatingLabel) {\n return null;\n }\n // If no prefix is displayed, reset the outline label offset from potential\n // previous label offset updates.\n if (!this._iconPrefixContainer && !this._textPrefixContainer) {\n return ['', null];\n }\n // If the form field is not attached to the DOM yet (e.g. in a tab), we defer\n // the label offset update until the zone stabilizes.\n if (!this._isAttachedToDom()) {\n return null;\n }\n const iconPrefixContainer = this._iconPrefixContainer?.nativeElement;\n const textPrefixContainer = this._textPrefixContainer?.nativeElement;\n const iconSuffixContainer = this._iconSuffixContainer?.nativeElement;\n const textSuffixContainer = this._textSuffixContainer?.nativeElement;\n const iconPrefixContainerWidth = iconPrefixContainer?.getBoundingClientRect().width ?? 0;\n const textPrefixContainerWidth = textPrefixContainer?.getBoundingClientRect().width ?? 0;\n const iconSuffixContainerWidth = iconSuffixContainer?.getBoundingClientRect().width ?? 0;\n const textSuffixContainerWidth = textSuffixContainer?.getBoundingClientRect().width ?? 0;\n // If the directionality is RTL, the x-axis transform needs to be inverted. This\n // is because `transformX` does not change based on the page directionality.\n const negate = dir === 'rtl' ? '-1' : '1';\n const prefixWidth = `${iconPrefixContainerWidth + textPrefixContainerWidth}px`;\n const labelOffset = `var(--mat-mdc-form-field-label-offset-x, 0px)`;\n const labelHorizontalOffset = `calc(${negate} * (${prefixWidth} + ${labelOffset}))`;\n\n // Update the translateX of the floating label to account for the prefix container,\n // but allow the CSS to override this setting via a CSS variable when the label is\n // floating.\n const floatingLabelTransform =\n 'var(--mat-mdc-form-field-label-transform, ' +\n `${FLOATING_LABEL_DEFAULT_DOCKED_TRANSFORM} translateX(${labelHorizontalOffset}))`;\n\n // Prevent the label from overlapping the suffix when in resting position.\n const notchedOutlineWidth =\n iconPrefixContainerWidth +\n textPrefixContainerWidth +\n iconSuffixContainerWidth +\n textSuffixContainerWidth;\n\n return [floatingLabelTransform, notchedOutlineWidth];\n }\n\n /** Writes the styles produced by `_getOutlineLabelOffset` synchronously to the DOM. */\n private _writeOutlinedLabelStyles(styles: OutlinedLabelStyles): void {\n if (styles !== null) {\n const [floatingLabelTransform, notchedOutlineWidth] = styles;\n\n if (this._floatingLabel) {\n this._floatingLabel.element.style.transform = floatingLabelTransform;\n }\n\n if (notchedOutlineWidth !== null) {\n this._notchedOutline?._setMaxWidth(notchedOutlineWidth);\n }\n }\n }\n\n /** Checks whether the form field is attached to the DOM. */\n private _isAttachedToDom(): boolean {\n const element: HTMLElement = this._elementRef.nativeElement;\n if (element.getRootNode) {\n const rootNode = element.getRootNode();\n // If the element is inside the DOM the root node will be either the document\n // or the closest shadow root, otherwise it'll be the element itself.\n return rootNode && rootNode !== element;\n }\n // Otherwise fall back to checking if it's in the document. This doesn't account for\n // shadow DOM, however browser that support shadow DOM should support `getRootNode` as well.\n return document.documentElement!.contains(element);\n }\n}\n","<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"],"names":["_MatFormFieldControl"],"mappings":";;;;;;;;;;;;AAUA;MAIa,QAAQ,CAAA;8GAAR,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;kGAAR,QAAQ,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;kGAAR,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAHpB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,WAAW;AACtB,iBAAA;;;ACFD;;;;AAIG;MACU,SAAS,GAAG,IAAI,cAAc,CAAW,UAAU;AAEhE;MASa,QAAQ,CAAA;IACV,EAAE,GAAW,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC;AAIlE,IAAA,WAAA,GAAA;8GALW,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;kGAAR,QAAQ,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,0DAAA,EAAA,EAAA,SAAA,EAFR,CAAC,EAAC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAC,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;kGAE7C,QAAQ,EAAA,UAAA,EAAA,CAAA;kBARpB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,IAAI,EAAE;AACJ,wBAAA,OAAO,EAAE,0DAA0D;AACnE,wBAAA,MAAM,EAAE,IAAI;AACb,qBAAA;oBACD,SAAS,EAAE,CAAC,EAAC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAU,QAAA,EAAC,CAAC;AACzD,iBAAA;wDAEU,EAAE,EAAA,CAAA;sBAAV;;;ACjBH;MAWa,OAAO,CAAA;;IAET,KAAK,GAAoB,OAAO;;IAGhC,EAAE,GAAW,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC;8GALtD,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;kGAAP,OAAO,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,mCAAA,EAAA,mBAAA,EAAA,IAAA,EAAA,IAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,yDAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;kGAAP,OAAO,EAAA,UAAA,EAAA,CAAA;kBAVnB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,IAAI,EAAE;AACJ,wBAAA,OAAO,EAAE,yDAAyD;AAClE,wBAAA,qCAAqC,EAAE,iBAAiB;AACxD,wBAAA,MAAM,EAAE,IAAI;;AAEZ,wBAAA,cAAc,EAAE,MAAM;AACvB,qBAAA;AACF,iBAAA;8BAGU,KAAK,EAAA,CAAA;sBAAb;gBAGQ,EAAE,EAAA,CAAA;sBAAV;;;ACjBH;;;;AAIG;MACU,UAAU,GAAG,IAAI,cAAc,CAAY,WAAW;AAEnE;MAKa,SAAS,CAAA;IACpB,IACI,eAAe,CAAC,KAAS,EAAA;AAC3B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;;IAGrB,OAAO,GAAG,KAAK;8GANJ,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;kGAAT,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,CAAA,eAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,SAAA,EAFT,CAAC,EAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAC,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;kGAE/C,SAAS,EAAA,UAAA,EAAA,CAAA;kBAJrB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,+CAA+C;oBACzD,SAAS,EAAE,CAAC,EAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAW,SAAA,EAAC,CAAC;AAC3D,iBAAA;8BAGK,eAAe,EAAA,CAAA;sBADlB,KAAK;uBAAC,eAAe;;;ACbxB;;;;AAIG;MACU,UAAU,GAAG,IAAI,cAAc,CAAY,WAAW;AAEnE;MAKa,SAAS,CAAA;IACpB,IACI,eAAe,CAAC,KAAS,EAAA;AAC3B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;;IAGrB,OAAO,GAAG,KAAK;8GANJ,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;kGAAT,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,CAAA,eAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,SAAA,EAFT,CAAC,EAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAC,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;kGAE/C,SAAS,EAAA,UAAA,EAAA,CAAA;kBAJrB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,+CAA+C;oBACzD,SAAS,EAAE,CAAC,EAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAW,SAAA,EAAC,CAAC;AAC3D,iBAAA;8BAGK,eAAe,EAAA,CAAA;sBADlB,KAAK;uBAAC,eAAe;;;ACExB;AACO,MAAM,qBAAqB,GAAG,IAAI,cAAc,CAAsB,qBAAqB,CAAC;AAEnG;;;;;;;;;;;;AAYG;MAQU,yBAAyB,CAAA;AAC5B,IAAA,WAAW,GAAG,MAAM,CAA0B,UAAU,CAAC;;AAGjE,IAAA,IACI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS;;IAEvB,IAAI,QAAQ,CAAC,KAAc,EAAA;AACzB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,IAAI,CAAC,aAAa,EAAE;;;IAGhB,SAAS,GAAG,KAAK;;AAGzB,IAAA,IACI,aAAa,GAAA;QACf,OAAO,IAAI,CAAC,cAAc;;IAE5B,IAAI,aAAa,CAAC,KAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK;AAC3B,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,IAAI,CAAC,kBAAkB,EAAE;;aACpB;AACL,YAAA,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE;;;IAGlC,cAAc,GAAG,KAAK;;AAGtB,IAAA,eAAe,GAAG,MAAM,CAAC,oBAAoB,CAAC;;AAG9C,IAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;;AAGxB,IAAA,OAAO,GAAG,MAAM,CAAC,qBAAqB,CAAC;;AAGvC,IAAA,mBAAmB,GAAG,IAAI,YAAY,EAAE;AAGhD,IAAA,WAAA,GAAA;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE;;;IAIxC,QAAQ,GAAA;QACN,OAAO,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;;;AAI5D,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa;;;IAI/B,aAAa,GAAA;;;;;;;;;QASnB,UAAU,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;;;IAI9C,kBAAkB,GAAA;AACxB,QAAA,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE;AACtC,QAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,MAAK;AAClC,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;AAC7B,iBAAA,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,EAAC,GAAG,EAAE,YAAY,EAAC;iBAC3D,SAAS,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;AAC1C,SAAC,CAAC;;8GAhFO,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;kGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,uCAAA,EAAA,UAAA,EAAA,EAAA,cAAA,EAAA,2CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;kGAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAPrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kCAAkC;AAC5C,oBAAA,IAAI,EAAE;AACJ,wBAAA,OAAO,EAAE,2CAA2C;AACpD,wBAAA,yCAAyC,EAAE,UAAU;AACtD,qBAAA;AACF,iBAAA;wDAMK,QAAQ,EAAA,CAAA;sBADX;gBAcG,aAAa,EAAA,CAAA;sBADhB;;AAmEH;;;AAGG;AACH,SAAS,mBAAmB,CAAC,OAAoB,EAAA;;;;;IAK/C,MAAM,MAAM,GAAG,OAAsB;AACrC,IAAA,IAAI,MAAM,CAAC,YAAY,KAAK,IAAI,EAAE;QAChC,OAAO,MAAM,CAAC,WAAW;;IAG3B,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAgB;IACnD,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,EAAE,UAAU,CAAC;IAC/C,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,6BAA6B,CAAC;AACnE,IAAA,QAAQ,CAAC,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC;AAC3C,IAAA,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW;IACrC,KAAK,CAAC,MAAM,EAAE;AACd,IAAA,OAAO,WAAW;AACpB;;AC/IA;AACA,MAAM,cAAc,GAAG,yBAAyB;AAEhD;AACA,MAAM,kBAAkB,GAAG,+BAA+B;AAE1D;;;;;;;AAOG;MAOU,sBAAsB,CAAA;AACzB,IAAA,WAAW,GAAG,MAAM,CAA0B,UAAU,CAAC;AACzD,IAAA,qBAAqB;AAI7B,IAAA,WAAA,GAAA;AACE,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC7B,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;AAElC,QAAA,MAAM,CAAC,iBAAiB,CAAC,MAAK;AAC5B,YAAA,IAAI,CAAC,qBAAqB,GAAG,QAAQ,CAAC,MAAM,CAC1C,IAAI,CAAC,WAAW,CAAC,aAAa,EAC9B,eAAe,EACf,IAAI,CAAC,oBAAoB,CAC1B;AACH,SAAC,CAAC;;IAGJ,QAAQ,GAAA;QACN,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS;AAC1D,QAAA,SAAS,CAAC,MAAM,CAAC,kBAAkB,CAAC;AACpC,QAAA,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC;;IAG/B,UAAU,GAAA;QACR,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAkB,CAAC;;AAG1D,IAAA,oBAAoB,GAAG,CAAC,KAAsB,KAAI;QACxD,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS;QAC1D,MAAM,cAAc,GAAG,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAE7D,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS,IAAI,cAAc,EAAE;AACtD,YAAA,SAAS,CAAC,MAAM,CAAC,cAAc,EAAE,kBAAkB,CAAC;;AAExD,KAAC;IAED,WAAW,GAAA;QACT,IAAI,CAAC,qBAAqB,EAAE;;8GAvCnB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;kGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;kGAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,6BAA6B;AACvC,oBAAA,IAAI,EAAE;AACJ,wBAAA,OAAO,EAAE,iBAAiB;AAC3B,qBAAA;AACF,iBAAA;;;ACTD;;;;;AAKG;MAaU,0BAA0B,CAAA;AAC7B,IAAA,WAAW,GAAG,MAAM,CAA0B,UAAU,CAAC;AACzD,IAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;;IAGS,IAAI,GAAY,KAAK;AAE1C,IAAA,MAAM;IAE1B,eAAe,GAAA;AACb,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa;QAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,aAAa,CAAc,qBAAqB,CAAC;QAEvE,IAAI,KAAK,EAAE;AACT,YAAA,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,+BAA+B,CAAC;AAEtD,YAAA,IAAI,OAAO,qBAAqB,KAAK,UAAU,EAAE;AAC/C,gBAAA,KAAK,CAAC,KAAK,CAAC,kBAAkB,GAAG,IAAI;AACrC,gBAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,MAAK;AAClC,oBAAA,qBAAqB,CAAC,OAAO,KAAK,CAAC,KAAK,CAAC,kBAAkB,GAAG,EAAE,CAAC,CAAC;AACpE,iBAAC,CAAC;;;aAEC;AACL,YAAA,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,+BAA+B,CAAC;;;AAI1D,IAAA,cAAc,CAAC,UAAkB,EAAA;AAC/B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa;QAEvC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE;AAC7B,YAAA,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE;;aACjB;YACL,MAAM,qBAAqB,GAAG,CAAC;YAC/B,MAAM,oBAAoB,GAAG,CAAC;AAC9B,YAAA,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAA,KAAA,EAAQ,UAAU,CAAA,4DAAA,EACpC,qBAAqB,GAAG,oBAC1B,CAAA,GAAA,CAAK;;;AAIT,IAAA,YAAY,CAAC,oBAA4B,EAAA;;AAEvC,QAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CACzC,kCAAkC,EAClC,CAAA,YAAA,EAAe,oBAAoB,CAAA,GAAA,CAAK,CACzC;;8GA9CQ,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA1B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,eAAA,EAAA,IAAA,EAAA,0BAA0B,yWCtCvC,+PAKA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;kGDiCa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAZtC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iCAAiC,EAErC,IAAA,EAAA;AACJ,wBAAA,OAAO,EAAE,qBAAqB;;;AAG9B,wBAAA,sCAAsC,EAAE,MAAM;AAC/C,qBAAA,EAAA,eAAA,EACgB,uBAAuB,CAAC,MAAM,EAChC,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,+PAAA,EAAA;8BAOI,IAAI,EAAA,CAAA;sBAA5C,KAAK;uBAAC,gCAAgC;gBAEnB,MAAM,EAAA,CAAA;sBAAzB,SAAS;uBAAC,OAAO;;;AEjCpB;MAEsB,mBAAmB,CAAA;;AAEvC,IAAA,KAAK;AAEL;;;AAGG;AACM,IAAA,YAAY;;AAGZ,IAAA,EAAE;;AAGF,IAAA,WAAW;;AAGX,IAAA,SAAS;;AAGT,IAAA,OAAO;;AAGP,IAAA,KAAK;;AAGL,IAAA,gBAAgB;;AAGhB,IAAA,QAAQ;;AAGR,IAAA,QAAQ;;AAGR,IAAA,UAAU;AAEnB;;;;AAIG;AACM,IAAA,WAAW;AAEpB;;;AAGG;AACM,IAAA,UAAU;AAEnB;;;AAGG;AACM,IAAA,mBAAmB;AAE5B;;;;AAIG;AACM,IAAA,wBAAwB;;AAGxB,IAAA,cAAc;8GAhEH,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;kGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;kGAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBADxC;;;ACLD;SACgB,uCAAuC,GAAA;AACrD,IAAA,OAAO,KAAK,CAAC,8DAA8D,CAAC;AAC9E;AAEA;AACM,SAAU,kCAAkC,CAAC,KAAa,EAAA;AAC9D,IAAA,OAAO,KAAK,CAAC,CAAA,wCAAA,EAA2C,KAAK,CAAA,GAAA,CAAK,CAAC;AACrE;AAEA;SACgB,kCAAkC,GAAA;AAChD,IAAA,OAAO,KAAK,CAAC,oDAAoD,CAAC;AACpE;;ACwEA;;;;AAIG;MACU,cAAc,GAAG,IAAI,cAAc,CAAe,cAAc;AAE7E;;;AAGG;MACU,8BAA8B,GAAG,IAAI,cAAc,CAC9D,gCAAgC;AAQlC;AACA,MAAM,kBAAkB,GAA2B,MAAM;AAEzD;;;AAGG;AACH,MAAM,mBAAmB,GAAmB,MAAM;AAElD;AACA,MAAM,wBAAwB,GAAoB,OAAO;AAEzD;;;;AAIG;AACH,MAAM,uCAAuC,GAAG,CAAA,gBAAA,CAAkB;AAYlE;MA6Ca,YAAY,CAAA;AAGvB,IAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AACxB,IAAA,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC9C,IAAA,IAAI,GAAG,MAAM,CAAC,cAAc,CAAC;AAC7B,IAAA,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC5B,IAAA,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;AACnC,IAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;AACxB,IAAA,SAAS,GAAG,MAAM,CAA6B,8BAA8B,EAAE;AACrF,QAAA,QAAQ,EAAE,IAAI;AACf,KAAA,CAAC;AAEsB,IAAA,UAAU;AACA,IAAA,oBAAoB;AACpB,IAAA,oBAAoB;AACpB,IAAA,oBAAoB;AACpB,IAAA,oBAAoB;AAChB,IAAA,cAAc;AACb,IAAA,eAAe;AACnB,IAAA,WAAW;AAEtC,IAAA,0BAA0B,GAAG,SAAS,CAA0B,qBAAqB,sEAAC;AACtF,IAAA,0BAA0B,GAAG,SAAS,CAA0B,qBAAqB,sEAAC;AACtF,IAAA,0BAA0B,GAAG,SAAS,CAA0B,qBAAqB,sEAAC;AACtF,IAAA,0BAA0B,GAAG,SAAS,CAA0B,qBAAqB,sEAAC;AACtF,IAAA,uBAAuB,GAAG,QAAQ,CAAC,MAAK;QAC9C,OAAO;YACL,IAAI,CAAC,0BAA0B,EAAE;YACjC,IAAI,CAAC,0BAA0B,EAAE;YACjC,IAAI,CAAC,0BAA0B,EAAE;YACjC,IAAI,CAAC,0BAA0B,EAAE;AAClC;aACE,GAAG,CAAC,SAAS,IAAI,SAAS,EAAE,aAAa;aACzC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC;AACjC,KAAC,mEAAC;AAEkC,IAAA,iBAAiB;AACH,IAAA,eAAe;AACf,IAAA,eAAe;AAChB,IAAA,cAAc;AAChB,IAAA,aAAa;AAE3C,IAAA,WAAW,GAAG,YAAY,CAAC,QAAQ,uDAAC;;AAGrD,IAAA,IACI,kBAAkB,GAAA;QACpB,OAAO,IAAI,CAAC,mBAAmB;;IAEjC,IAAI,kBAAkB,CAAC,KAAmB,EAAA;AACxC,QAAA,IAAI,CAAC,mBAAmB,GAAG,qBAAqB,CAAC,KAAK,CAAC;;IAEjD,mBAAmB,GAAG,KAAK;AAEnC;;;;;;AAMG;IACM,KAAK,GAAiB,SAAS;;AAGxC,IAAA,IACI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,EAAE,UAAU,IAAI,mBAAmB;;IAE9E,IAAI,UAAU,CAAC,KAAqB,EAAA;AAClC,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,WAAW,EAAE;AAC9B,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK;;;;;AAKxB,YAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;;;AAGlC,IAAA,WAAW;;AAGnB,IAAA,IACI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,iBAAiB,EAAE;;IAEjC,IAAI,UAAU,CAAC,KAA6B,EAAA;QAC1C,MAAM,aAAa,GAAG,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE,UAAU,IAAI,kBAAkB;AAC/E,QAAA,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,EAAE;YACjD,IAAI,aAAa,KAAK,MAAM,IAAI,aAAa,KAAK,SAAS,EAAE;AAC3D,gBAAA,MAAM,IAAI,KAAK,CACb,qCAAqC,aAAa,CAAA,wCAAA,CAA0C,CAC7F;;;AAGL,QAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,aAAa,CAAC;;AAEnC,IAAA,iBAAiB,GAAG,MAAM,CAAC,kBAAkB,6DAAC;AAEtD;;;;AAIG;AACH,IAAA,IACI,eAAe,GAAA;QACjB,OAAO,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,SAAS,EAAE,eAAe,IAAI,wBAAwB;;IAE7F,IAAI,eAAe,CAAC,KAAsB,EAAA;AACxC,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE,eAAe,IAAI,wBAAwB;;IAEtF,gBAAgB,GAA2B,IAAI;;AAGvD,IAAA,IACI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,UAAU;;IAExB,IAAI,SAAS,CAAC,KAAa,EAAA;AACzB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;QACvB,IAAI,CAAC,aAAa,EAAE;;IAEd,UAAU,GAAG,EAAE;IAEvB,cAAc,GAAG,KAAK;IACtB,cAAc,GAAG,KAAK;IACtB,cAAc,GAAG,KAAK;IACtB,cAAc,GAAG,KAAK;;IAGb,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,2BAA2B,CAAC;;IAG/D,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,eAAe,CAAC;;AAGxD,IAAA,eAAe;;AAGvB,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,yBAAyB,IAAI,IAAI,CAAC,iBAAiB;;IAEjE,IAAI,QAAQ,CAAC,KAAK,EAAA;AAChB,QAAA,IAAI,CAAC,yBAAyB,GAAG,KAAK;;AAGhC,IAAA,UAAU,GAAG,IAAI,OAAO,EAAQ;IAChC,UAAU,GAAmB,IAAI;AACjC,IAAA,yBAAyB;IACzB,gBAAgB,GAAwC,IAAI;IAC5D,2BAA2B,GAAuB,IAAI;AACtD,IAAA,aAAa;AACb,IAAA,aAAa;AACb,IAAA,mBAAmB;IACnB,iCAAiC,GAA0B,IAAI;IACpD,mBAAmB,GAAG,mBAAmB,EAAE;AAI9D,IAAA,WAAA,GAAA;AACE,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS;QAE/B,IAAI,QAAQ,EAAE;AACZ,YAAA,IAAI,QAAQ,CAAC,UAAU,EAAE;AACvB,gBAAA,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU;;YAEvC,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,QAAQ,EAAE,kBAAkB,CAAC;AAChE,YAAA,IAAI,QAAQ,CAAC,KAAK,EAAE;AAClB,gBAAA,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK;;;QAI/B,IAAI,CAAC,uBAAuB,EAAE;;IAGhC,eAAe,GAAA;;;QAGb,IAAI,CAAC,iBAAiB,EAAE;AAExB,QAAA,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;AAC7B,YAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,MAAK;;gBAElC,UAAU,CAAC,MAAK;oBACd,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,mCAAmC,CAAC;iBAClF,EAAE,GAAG,CAAC;AACT,aAAC,CAAC;;;;AAKJ,QAAA,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE;;IAGzC,kBAAkB,GAAA;QAChB,IAAI,CAAC,uBAAuB,EAAE;QAC9B,IAAI,CAAC,oBAAoB,EAAE;QAC3B,IAAI,CAAC,0BAA0B,EAAE;;IAGnC,qBAAqB,GAAA;QACnB,IAAI,CAAC,uBAAuB,EAAE;;;QAI9B,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,gBAAgB,EAAE;AAC3C,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,CAAC;;AAG9C,YAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE;AAC9D,gBAAA,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS;;AAG9E,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ;;;AAIvC,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE;;YAE9D,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS;;;AAI7D,YAAA,IAAI,WAAW,KAAK,IAAI,CAAC,2BAA2B,EAAE;AACpD,gBAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;;;;IAK5C,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,iCAAiC,EAAE,UAAU,EAAE;AACpD,QAAA,IAAI,CAAC,aAAa,EAAE,WAAW,EAAE;AACjC,QAAA,IAAI,CAAC,aAAa,EAAE,WAAW,EAAE;AACjC,QAAA,IAAI,CAAC,mBAAmB,EAAE,WAAW,EAAE;AACvC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;AACtB,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE;;AAG5B;;AAEG;IACH,UAAU,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,iBAAiB,EAAE,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,YAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAE9E;;;AAGG;IACH,yBAAyB,GAAA;AACvB,QAAA,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW;;;IAI5C,oBAAoB,GAAA;;;;;;;;;AASlB,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE;AAC5B,YAAA,IAAI,CAAC,UAAU,GAAG,QAAQ;;;;AAKtB,IAAA,kBAAkB,CAAC,eAAoD,EAAA;AAC7E,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ;QAC7B,MAAM,WAAW,GAAG,0BAA0B;QAE9C,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,GAAG,eAAe,CAAC,WAAW,CAAC;;AAG5F,QAAA,IAAI,OAAO,CAAC,WAAW,EAAE;AACvB,YAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;;;AAIjF,QAAA,IAAI,CAAC,aAAa,EAAE,WAAW,EAAE;QACjC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,MAAK;YACvD,IAAI,CAAC,iBAAiB,EAAE;AACxB,YAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;AACxC,SAAC,CAAC;;AAGF,QAAA,IAAI,CAAC,mBAAmB,EAAE,WAAW,EAAE;AACvC,QAAA,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC;aAChC,IAAI,CACH,SAAS,CAAC,CAAC,SAAS,EAAE,SAAS,CAAU,CAAC,EAC1C,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,mBAAmB,CAAU,CAAC,EACrE,QAAQ,EAAE,EACV,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,eAAe,CAAC,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,CAAC,KAAI;AACtF,YAAA,OAAO,cAAc,KAAK,iBAAiB,IAAI,eAAe,KAAK,kBAAkB;AACvF,SAAC,CAAC;aAEH,SAAS,CAAC,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAE9C,QAAA,IAAI,CAAC,aAAa,EAAE,WAAW,EAAE;;QAGjC,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,YAAY,EAAE;AACvD,YAAA,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC;AACpC,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;iBAC/B,SAAS,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;;;IAItD,0BAA0B,GAAA;QAChC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;AAClE,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;QACjE,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;AAClE,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;;;IAI3D,0BAA0B,GAAA;QAChC,IAAI,CAAC,0BAA0B,EAAE;;;;AAIjC,QAAA,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,MAAK;YAC/E,IAAI,CAAC,0BAA0B,EAAE;AACjC,YAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;AACxC,SAAC,CAAC;;AAGJ;;;;AAIG;IACK,oBAAoB,GAAA;;QAE1B,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,MAAK;YACxC,IAAI,CAAC,aAAa,EAAE;AACpB,YAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;AACxC,SAAC,CAAC;;QAGF,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,MAAK;YACzC,IAAI,CAAC,mBAAmB,EAAE;AAC1B,YAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;AACxC,SAAC,CAAC;;QAGF,IAAI,CAAC,cAAc,EAAE;QACrB,IAAI,CAAC,mBAAmB,EAAE;;;IAIpB,uBAAuB,GAAA;AAC7B,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,EAAE;YACrE,MAAM,kCAAkC,EAAE;;;IAItC,iBAAiB,GAAA;AACvB,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO;;;;;;AAO5C,QAAA,IAAI,cAAc,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACtC,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI;AACtB,YAAA,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE;;AACvB,aAAA,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,EAAE;AAC3E,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,YAAA,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE;;AAGhC,QAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,EAAE,cAAc,CAAC;AAC9E,QAAA,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,yBAAyB,EAAE,cAAc,CAAC;;AAG5F;;;;;AAKG;IACK,uBAAuB,GAAA;AAC7B,QAAA,iBAAiB,CAAC;YAChB,SAAS,EAAE,MAAK;AACd,gBAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE,KAAK,SAAS,EAAE;AAC1C,oBAAA,IAAI,CAAC,iCAAiC,EAAE,UAAU,EAAE;AACpD,oBAAA,OAAO,IAAI;;;;AAKb,gBAAA,IAAI,UAAU,CAAC,cAAc,EAAE;oBAC7B,IAAI,CAAC,iCAAiC,KAAK,IAAI,UAAU,CAAC,cAAc,CAAC,MAAK;wBAC5E,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC;AAChE,qBAAC,CAAC;oBACF,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,uBAAuB,EAAE,EAAE;AAC/C,wBAAA,IAAI,CAAC,iCAAiC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAC,GAAG,EAAE,YAAY,EAAC,CAAC;;;AAI3E,gBAAA,OAAO,IAAI,CAAC,uBAAuB,EAAE;aACtC;YACD,KAAK,EAAE,WAAW,IAAI,IAAI,CAAC,yBAAyB,CAAC,WAAW,EAAE,CAAC;AACpE,SAAA,CAAC;;;IAIJ,kBAAkB,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ;;IAGrC,WAAW,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,UAAU,KAAK,SAAS;;AAGtC;;;;;;;AAOG;IACH,uBAAuB,GAAA;AACrB,QAAA,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;;AAG9F,IAAA,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,6DAAC;IAExD,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE;AAC7B,YAAA,OAAO,KAAK;;QAEd,OAAO,IAAI,CAAC,QAAQ,CAAC,gBAAgB,IAAI,IAAI,CAAC,kBAAkB,EAAE;;AAGpE;;;AAGG;AACH,IAAA,cAAc,CAAC,IAAoC,EAAA;AACjD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI;AAC9D,QAAA,OAAO,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;;;IAIjC,wBAAwB,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC;AAC5E,cAAE;cACA,MAAM;;;IAIZ,mBAAmB,GAAA;QACjB,IAAI,CAAC,yBAAyB,EAAE;;;IAIlC,yBAAyB,GAAA;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE;AAC5E,YAAA,IAAI,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC,CAAC;;aAClC;AACL,YAAA,IAAI,CAAC,eAAe,EAAE,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;;;;IAKhE,aAAa,GAAA;QACnB,IAAI,CAAC,cAAc,EAAE;QACrB,IAAI,CAAC,mBAAmB,EAAE;;AAG5B;;;;;AAKG;IACK,cAAc,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,EAAE;AACzE,YAAA,IAAI,SAAkB;AACtB,YAAA,IAAI,OAAgB;YACpB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,IAAa,KAAI;AAC3C,gBAAA,IAAI,IAAI,CAAC,KAAK,KAAK,OAAO,EAAE;AAC1B,oBAAA,IAAI,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE;AAC/B,wBAAA,MAAM,kCAAkC,CAAC,OAAO,CAAC;;oBAEnD,SAAS,GAAG,IAAI;;AACX,qBAAA,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE;oBAC/B,IAAI,OAAO,EAAE;AACX,wBAAA,MAAM,kCAAkC,CAAC,KAAK,CAAC;;oBAEjD,OAAO,GAAG,IAAI;;AAElB,aAAC,CAAC;;;AAIN;;;AAGG;IACK,mBAAmB,GAAA;AACzB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,GAAG,GAAa,EAAE;;AAGtB,YAAA,IACE,IAAI,CAAC,QAAQ,CAAC,mBAAmB;gBACjC,OAAO,IAAI,CAAC,QAAQ,CAAC,mBAAmB,KAAK,QAAQ,EACrD;AACA,gBAAA,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;;AAG3D,YAAA,IAAI,IAAI,CAAC,wBAAwB,EAAE,KAAK,MAAM,EAAE;AAC9C,gBAAA,MAAM,SAAS,GAAG,IAAI,CAAC;AACrB,sBAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,OAAO;sBACtD,IAAI;AACR,gBAAA,MAAM,OAAO,GAAG,IAAI,CAAC;AACnB,sBAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK;sBACpD,IAAI;gBAER,IAAI,SAAS,EAAE;AACb,oBAAA,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;;AACjB,qBAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AAC1B,oBAAA,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;;gBAG7B,IAAI,OAAO,EAAE;AACX,oBAAA,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;;;AAEjB,iBAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AAC9B,gBAAA,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC;;AAGzD,YAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc;AACxD,YAAA,IAAI,QAAkB;;;;;YAMtB,IAAI,mBAAmB,EAAE;AACvB,gBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,IAAI,GAAG;gBAC3C,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;;iBAC/E;gBACL,QAAQ,GAAG,GAAG;;AAGhB,YAAA,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,CAAC;AACzC,YAAA,IAAI,CAAC,eAAe,GAAG,GAAG;;;AAI9B;;;;;;;;AAQG;IACK,uBAAuB,GAAA;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;QACnC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AAC/C,YAAA,OAAO,IAAI;;;;QAIb,IAAI,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;AAC5D,YAAA,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC;;;;AAInB,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE;AAC5B,YAAA,OAAO,IAAI;;AAEb,QAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,oBAAoB,EAAE,aAAa;AACpE,QAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,oBAAoB,EAAE,aAAa;AACpE,QAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,oBAAoB,EAAE,aAAa;AACpE,QAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,oBAAoB,EAAE,aAAa;QACpE,MAAM,wBAAwB,GAAG,mBAAmB,EAAE,qBAAqB,EAAE,CAAC,KAAK,IAAI,CAAC;QACxF,MAAM,wBAAwB,GAAG,mBAAmB,EAAE,qBAAqB,EAAE,CAAC,KAAK,IAAI,CAAC;QACxF,MAAM,wBAAwB,GAAG,mBAAmB,EAAE,qBAAqB,EAAE,CAAC,KAAK,IAAI,CAAC;QACxF,MAAM,wBAAwB,GAAG,mBAAmB,EAAE,qBAAqB,EAAE,CAAC,KAAK,IAAI,CAAC;;;AAGxF,QAAA,MAAM,MAAM,GAAG,GAAG,KAAK,KAAK,GAAG,IAAI,GAAG,GAAG;AACzC,QAAA,MAAM,WAAW,GAAG,CAAA,EAAG,wBAAwB,GAAG,wBAAwB,IAAI;QAC9E,MAAM,WAAW,GAAG,CAAA,6CAAA,CAA+C;QACnE,MAAM,qBAAqB,GAAG,CAAQ,KAAA,EAAA,MAAM,OAAO,WAAW,CAAA,GAAA,EAAM,WAAW,CAAA,EAAA,CAAI;;;;QAKnF,MAAM,sBAAsB,GAC1B,4CAA4C;AAC5C,YAAA,CAAA,EAAG,uCAAuC,CAAA,YAAA,EAAe,qBAAqB,CAAA,EAAA,CAAI;;QAGpF,MAAM,mBAAmB,GACvB,wBAAwB;YACxB,wBAAwB;YACxB,wBAAwB;AACxB,YAAA,wBAAwB;AAE1B,QAAA,OAAO,CAAC,sBAAsB,EAAE,mBAAmB,CAAC;;;AAI9C,IAAA,yBAAyB,CAAC,MAA2B,EAAA;AAC3D,QAAA,IAAI,MAAM,KAAK,IAAI,EAAE;AACnB,YAAA,MAAM,CAAC,sBAAsB,EAAE,mBAAmB,CAAC,GAAG,MAAM;AAE5D,YAAA,IAAI,IAAI,CAAC,cAAc,EAAE;gBACvB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,sBAAsB;;AAGtE,YAAA,IAAI,mBAAmB,KAAK,IAAI,EAAE;AAChC,gBAAA,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC,mBAAmB,CAAC;;;;;IAMrD,gBAAgB,GAAA;AACtB,QAAA,MAAM,OAAO,GAAgB,IAAI,CAAC,WAAW,CAAC,aAAa;AAC3D,QAAA,IAAI,OAAO,CAAC,WAAW,EAAE;AACvB,YAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE;;;AAGtC,YAAA,OAAO,QAAQ,IAAI,QAAQ,KAAK,OAAO;;;;QAIzC,OAAO,QAAQ,CAAC,eAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC;;8GA/nBzC,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAZ,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,eAAA,EAAA,IAAA,EAAA,YAAY,EAZZ,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,KAAA,EAAA,OAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,6CAAA,EAAA,sBAAA,EAAA,0CAAA,EAAA,gBAAA,EAAA,0CAAA,EAAA,gBAAA,EAAA,8BAAA,EAAA,qBAAA,EAAA,+BAAA,EAAA,mBAAA,EAAA,iCAAA,EAAA,qBAAA,EAAA,sCAAA,EAAA,wBAAA,EAAA,yCAAA,EAAA,2BAAA,EAAA,uCAAA,EAAA,6CAAA,EAAA,mBAAA,EAAA,4CAAA,EAAA,kBAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,+BAAA,EAAA,kBAAA,EAAA,6BAAA,EAAA,mBAAA,EAAA,8BAAA,EAAA,gBAAA,EAAA,2BAAA,EAAA,gBAAA,EAAA,2BAAA,EAAA,kBAAA,EAAA,6BAAA,EAAA,kBAAA,EAAA,6BAAA,EAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA,EAAC,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAC;AACpD,YAAA,EAAC,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,YAAY,EAAC;AAC5D,SAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAoD2C,QAAQ,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EANtCA,mBAAoB,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EACjB,UAAU,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EACV,UAAU,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,SAAA,EACV,SAAS,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,eAAA,EAAA,SAAA,EACT,OAAO,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,4BAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,4BAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,4BAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,4BAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAvBb,yBAAyB,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACzB,0BAA0B,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAC1B,sBAAsB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC/MnC,i5JAgIA,EAAA,MAAA,EAAA,CAAA,owiCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDoDI,yBAAyB,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACzB,0BAA0B,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,gCAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAC1B,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChB,sBAAsB,EAAA,QAAA,EAAA,6BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACtB,OAAO,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;kGAGE,YAAY,EAAA,UAAA,EAAA,CAAA;kBA5CxB,SAAS;+BACE,gBAAgB,EAAA,QAAA,EAChB,cAAc,EAGlB,IAAA,EAAA;AACJ,wBAAA,OAAO,EAAE,oBAAoB;AAC7B,wBAAA,+CAA+C,EAAE,sBAAsB;AACvE,wBAAA,4CAA4C,EAAE,gBAAgB;AAC9D,wBAAA,4CAA4C,EAAE,gBAAgB;;;;AAI9D,wBAAA,gCAAgC,EAAE,qBAAqB;AACvD,wBAAA,iCAAiC,EAAE,mBAAmB;AACtD,wBAAA,mCAAmC,EAAE,qBAAqB;AAC1D,wBAAA,wCAAwC,EAAE,sBAAsB;AAChE,wBAAA,2CAA2C,EAAE,yBAAyB;AACtE,wBAAA,yCAAyC,EAAE,6CAA6C;AACxF,wBAAA,qBAAqB,EAAE,wCAAwC;AAC/D,wBAAA,oBAAoB,EAAE,oBAAoB;AAC1C,wBAAA,kBAAkB,EAAE,kBAAkB;AACtC,wBAAA,sBAAsB,EAAE,6BAA6B;AACrD,wBAAA,oBAAoB,EAAE,2BAA2B;AACjD,wBAAA,qBAAqB,EAAE,4BAA4B;AACnD,wBAAA,kBAAkB,EAAE,yBAAyB;AAC7C,wBAAA,kBAAkB,EAAE,yBAAyB;AAC7C,wBAAA,oBAAoB,EAAE,2BAA2B;AACjD,wBAAA,oBAAoB,EAAE,2BAA2B;AAClD,qBAAA,EAAA,aAAA,EACc,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;AACT,wBAAA,EAAC,OAAO,EAAE,cAAc,EAAE,WAAW,cAAc,EAAC;AACpD,wBAAA,EAAC,OAAO,EAAE,qBAAqB,EAAE,WAAW,cAAc,EAAC;qBAC5D,EACQ,OAAA,EAAA;wBACP,yBAAyB;wBACzB,0BAA0B;wBAC1B,gBAAgB;wBAChB,sBAAsB;wBACtB,OAAO;AACR,qBAAA,EAAA,QAAA,EAAA,i5JAAA,EAAA,MAAA,EAAA,CAAA,owiCAAA,CAAA,EAAA;wDAeuB,UAAU,EAAA,CAAA;sBAAjC,SAAS;uBAAC,WAAW;gBACY,oBAAoB,EAAA,CAAA;sBAArD,SAAS;uBAAC,qBAAqB;gBACE,oBAAoB,EAAA,CAAA;sBAArD,SAAS;uBAAC,qBAAqB;gBACE,oBAAoB,EAAA,CAAA;sBAArD,SAAS;uBAAC,qBAAqB;gBACE,oBAAoB,EAAA,CAAA;sBAArD,SAAS;uBAAC,qBAAqB;gBACM,cAAc,EAAA,CAAA;sBAAnD,SAAS;uBAAC,yBAAyB;gBACG,eAAe,EAAA,CAAA;sBAArD,SAAS;uBAAC,0BAA0B;gBACF,WAAW,EAAA,CAAA;sBAA7C,SAAS;uBAAC,sBAAsB;gBAiBG,iBAAiB,EAAA,CAAA;sBAApD,YAAY;uBAACA,mBAAoB;gBACgB,eAAe,EAAA,CAAA;sBAAhE,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,UAAU,EAAE,EAAC,WAAW,EAAE,IAAI,EAAC;gBACE,eAAe,EAAA,CAAA;sBAAhE,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,UAAU,EAAE,EAAC,WAAW,EAAE,IAAI,EAAC;gBACC,cAAc,EAAA,CAAA;sBAA9D,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,SAAS,EAAE,EAAC,WAAW,EAAE,IAAI,EAAC;gBACA,aAAa,EAAA,CAAA;sBAA3D,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,OAAO,EAAE,EAAC,WAAW,EAAE,IAAI,EAAC;gBAMzC,kBAAkB,EAAA,CAAA;sBADrB;gBAgBQ,KAAK,EAAA,CAAA;sBAAb;gBAIG,UAAU,EAAA,CAAA;sBADb;gBAkBG,UAAU,EAAA,CAAA;sBADb;gBAuBG,eAAe,EAAA,CAAA;sBADlB;gBAWG,SAAS,EAAA,CAAA;sBADZ;;;;;"}
@@ -1,5 +1,5 @@
1
- export { a as MAT_ERROR, h as MAT_FORM_FIELD, i as MAT_FORM_FIELD_DEFAULT_OPTIONS, d as MAT_PREFIX, f as MAT_SUFFIX, b as MatError, j as MatFormField, k as MatFormFieldControl, c as MatHint, M as MatLabel, e as MatPrefix, g as MatSuffix, m as getMatFormFieldDuplicatedHintError, n as getMatFormFieldMissingControlError, l as getMatFormFieldPlaceholderConflictError } from './form-field-Bp1BCQ2b.mjs';
2
- export { M as MatFormFieldModule } from './module-DFA1Fexr.mjs';
1
+ export { a as MAT_ERROR, h as MAT_FORM_FIELD, i as MAT_FORM_FIELD_DEFAULT_OPTIONS, d as MAT_PREFIX, f as MAT_SUFFIX, b as MatError, j as MatFormField, k as MatFormFieldControl, c as MatHint, M as MatLabel, e as MatPrefix, g as MatSuffix, m as getMatFormFieldDuplicatedHintError, n as getMatFormFieldMissingControlError, l as getMatFormFieldPlaceholderConflictError } from './form-field-Ce1YJL9K.mjs';
2
+ export { M as MatFormFieldModule } from './module-Bww_vjaX.mjs';
3
3
  import '@angular/cdk/a11y';
4
4
  import '@angular/cdk/bidi';
5
5
  import '@angular/cdk/coercion';
@@ -9,10 +9,10 @@ import '@angular/core';
9
9
  import 'rxjs';
10
10
  import 'rxjs/operators';
11
11
  import '@angular/cdk/observers/private';
12
- import './animation-DfMFjxHu.mjs';
12
+ import './animation-ChQ1vjiF.mjs';
13
13
  import '@angular/cdk/layout';
14
14
  import '@angular/cdk/observers';
15
- import './common-module-DAS0wn13.mjs';
15
+ import './common-module-Ckwlusp6.mjs';
16
16
 
17
17
  /**
18
18
  * Animations used by the MatFormField.