{"version":3,"sources":["node_modules/@angular/material/fesm2022/legacy-core.mjs","node_modules/@angular/forms/fesm2022/forms.mjs","node_modules/@angular/material/fesm2022/legacy-button.mjs","node_modules/@angular/cdk/fesm2022/observers/private.mjs","node_modules/@angular/material/fesm2022/form-field.mjs","node_modules/@angular/material/fesm2022/legacy-form-field.mjs","node_modules/@angular/cdk/fesm2022/text-field.mjs","node_modules/@angular/material/fesm2022/input.mjs","node_modules/@angular/material/fesm2022/legacy-input.mjs","node_modules/@angular/material/fesm2022/select.mjs","node_modules/@angular/material/fesm2022/legacy-select.mjs","node_modules/@angular/material/fesm2022/progress-bar.mjs","node_modules/@angular/material/fesm2022/legacy-progress-bar.mjs","node_modules/@angular/material/fesm2022/progress-spinner.mjs","node_modules/@angular/material/fesm2022/legacy-progress-spinner.mjs","node_modules/@angular/material/fesm2022/divider.mjs","node_modules/@angular/material/fesm2022/icon.mjs","node_modules/@angular/material/fesm2022/autocomplete.mjs","node_modules/@angular/material/fesm2022/legacy-autocomplete.mjs","node_modules/@angular/material/fesm2022/legacy-card.mjs","node_modules/@angular/material/fesm2022/legacy-chips.mjs","node_modules/@angular/material/fesm2022/list.mjs","node_modules/@angular/material/fesm2022/legacy-list.mjs","node_modules/@angular/material/fesm2022/menu.mjs","node_modules/@angular/material/fesm2022/legacy-menu.mjs","node_modules/@angular/material/fesm2022/tooltip.mjs","node_modules/@angular/material/fesm2022/legacy-tooltip.mjs","node_modules/@angular/material/fesm2022/button.mjs","node_modules/@angular/material/fesm2022/paginator.mjs","node_modules/@angular/material/fesm2022/legacy-paginator.mjs","node_modules/@angular/material/fesm2022/slide-toggle.mjs","node_modules/@angular/material/fesm2022/legacy-slide-toggle.mjs","node_modules/@angular/material/fesm2022/snack-bar.mjs","node_modules/@angular/material/fesm2022/legacy-snack-bar.mjs","node_modules/@angular/cdk/fesm2022/table.mjs","node_modules/@angular/material/fesm2022/table.mjs","node_modules/@angular/material/fesm2022/legacy-table.mjs","node_modules/@angular/material/fesm2022/tabs.mjs","node_modules/@angular/material/fesm2022/legacy-tabs.mjs","node_modules/@angular/material/fesm2022/sidenav.mjs","node_modules/@angular/cdk/fesm2022/stepper.mjs","node_modules/@angular/material/fesm2022/stepper.mjs","node_modules/@angular/material/fesm2022/toolbar.mjs","src/app/shared/modules/material.module.ts"],"sourcesContent":["import * as i0 from '@angular/core';\nimport { Component, ViewEncapsulation, ChangeDetectionStrategy, Optional, Inject, NgModule } from '@angular/core';\nimport * as i2 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i1 from '@angular/material/core';\nimport { _MatOptgroupBase, MAT_OPTGROUP, _MatOptionBase, MAT_OPTION_PARENT_COMPONENT, MatRippleModule, MatCommonModule, MatPseudoCheckboxModule } from '@angular/material/core';\nconst _c0 = [\"*\", [[\"mat-option\"], [\"ng-container\"]]];\nconst _c1 = [\"*\", \"mat-option, ng-container\"];\nconst _c2 = [\"*\"];\nfunction MatLegacyOption_mat_pseudo_checkbox_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"mat-pseudo-checkbox\", 5);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"state\", ctx_r0.selected ? \"checked\" : \"unchecked\")(\"disabled\", ctx_r0.disabled);\n }\n}\nfunction MatLegacyOption_span_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 6);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\"(\", ctx_r0.group.label, \")\");\n }\n}\nexport { VERSION as LEGACY_VERSION, AnimationCurves as LegacyAnimationCurves, AnimationDurations as LegacyAnimationDurations, DateAdapter as LegacyDateAdapter, ErrorStateMatcher as LegacyErrorStateMatcher, NativeDateAdapter as LegacyNativeDateAdapter, NativeDateModule as LegacyNativeDateModule, RippleRef as LegacyRippleRef, RippleRenderer as LegacyRippleRenderer, ShowOnDirtyErrorStateMatcher as LegacyShowOnDirtyErrorStateMatcher, MATERIAL_SANITY_CHECKS as MATERIAL_LEGACY_SANITY_CHECKS, MAT_DATE_FORMATS as MAT_LEGACY_DATE_FORMATS, MAT_DATE_LOCALE as MAT_LEGACY_DATE_LOCALE, MAT_DATE_LOCALE_FACTORY as MAT_LEGACY_DATE_LOCALE_FACTORY, MAT_NATIVE_DATE_FORMATS as MAT_LEGACY_NATIVE_DATE_FORMATS, MAT_OPTGROUP as MAT_LEGACY_OPTGROUP, MAT_OPTION_PARENT_COMPONENT as MAT_LEGACY_OPTION_PARENT_COMPONENT, MAT_RIPPLE_GLOBAL_OPTIONS as MAT_LEGACY_RIPPLE_GLOBAL_OPTIONS, MatCommonModule as MatLegacyCommonModule, MatLine as MatLegacyLine, MatLineModule as MatLegacyLineModule, MatNativeDateModule as MatLegacyNativeDateModule, MatOptionSelectionChange as MatLegacyOptionSelectionChange, MatPseudoCheckbox as MatLegacyPseudoCheckbox, MatPseudoCheckboxModule as MatLegacyPseudoCheckboxModule, MatRipple as MatLegacyRipple, MatRippleModule as MatLegacyRippleModule, _MatOptgroupBase as _MatLegacyOptgroupBase, _MatOptionBase as _MatLegacyOptionBase, _countGroupLabelsBeforeOption as _countGroupLabelsBeforeLegacyOption, _getOptionScrollPosition as _getLegacyOptionScrollPosition, defaultRippleAnimationConfig as legacyDefaultRippleAnimationConfig, mixinColor as legacyMixinColor, mixinDisableRipple as legacyMixinDisableRipple, mixinDisabled as legacyMixinDisabled, mixinErrorState as legacyMixinErrorState, mixinInitialized as legacyMixinInitialized, mixinTabIndex as legacyMixinTabIndex, setLines as legacySetLines } from '@angular/material/core';\n\n/**\n * Component that is used to group instances of `mat-option`.\n * @deprecated Use `MatOptgroup` from `@angular/material/core` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyOptgroup extends _MatOptgroupBase {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatLegacyOptgroup_BaseFactory;\n return function MatLegacyOptgroup_Factory(ɵt) {\n return (ɵMatLegacyOptgroup_BaseFactory || (ɵMatLegacyOptgroup_BaseFactory = i0.ɵɵgetInheritedFactory(MatLegacyOptgroup)))(ɵt || MatLegacyOptgroup);\n };\n })();\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatLegacyOptgroup,\n selectors: [[\"mat-optgroup\"]],\n hostAttrs: [1, \"mat-optgroup\"],\n hostVars: 5,\n hostBindings: function MatLegacyOptgroup_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"role\", ctx._inert ? null : \"group\")(\"aria-disabled\", ctx._inert ? null : ctx.disabled.toString())(\"aria-labelledby\", ctx._inert ? null : ctx._labelId);\n i0.ɵɵclassProp(\"mat-optgroup-disabled\", ctx.disabled);\n }\n },\n inputs: {\n disabled: \"disabled\"\n },\n exportAs: [\"matOptgroup\"],\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_OPTGROUP,\n useExisting: MatLegacyOptgroup\n }]), i0.ɵɵInheritDefinitionFeature],\n ngContentSelectors: _c1,\n decls: 4,\n vars: 2,\n consts: [[\"role\", \"presentation\", 1, \"mat-optgroup-label\", 3, \"id\"]],\n template: function MatLegacyOptgroup_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c0);\n i0.ɵɵelementStart(0, \"span\", 0);\n i0.ɵɵtext(1);\n i0.ɵɵprojection(2);\n i0.ɵɵelementEnd();\n i0.ɵɵprojection(3, 1);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"id\", ctx._labelId);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\"\", ctx.label, \" \");\n }\n },\n styles: [\".mat-optgroup-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:48px;height:48px;padding:0 16px;text-align:left;text-decoration:none;max-width:100%;-webkit-user-select:none;user-select:none;cursor:default}.mat-optgroup-label[disabled]{cursor:default}[dir=rtl] .mat-optgroup-label{text-align:right}.mat-optgroup-label .mat-icon{margin-right:16px;vertical-align:middle}.mat-optgroup-label .mat-icon svg{vertical-align:top}[dir=rtl] .mat-optgroup-label .mat-icon{margin-left:16px;margin-right:0}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyOptgroup, [{\n type: Component,\n args: [{\n selector: 'mat-optgroup',\n exportAs: 'matOptgroup',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n inputs: ['disabled'],\n host: {\n 'class': 'mat-optgroup',\n '[attr.role]': '_inert ? null : \"group\"',\n '[attr.aria-disabled]': '_inert ? null : disabled.toString()',\n '[attr.aria-labelledby]': '_inert ? null : _labelId',\n '[class.mat-optgroup-disabled]': 'disabled'\n },\n providers: [{\n provide: MAT_OPTGROUP,\n useExisting: MatLegacyOptgroup\n }],\n template: \"{{ label }} \\n\\n\",\n styles: [\".mat-optgroup-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:48px;height:48px;padding:0 16px;text-align:left;text-decoration:none;max-width:100%;-webkit-user-select:none;user-select:none;cursor:default}.mat-optgroup-label[disabled]{cursor:default}[dir=rtl] .mat-optgroup-label{text-align:right}.mat-optgroup-label .mat-icon{margin-right:16px;vertical-align:middle}.mat-optgroup-label .mat-icon svg{vertical-align:top}[dir=rtl] .mat-optgroup-label .mat-icon{margin-left:16px;margin-right:0}\"]\n }]\n }], null, null);\n})();\n\n/**\n * Single option inside of a `` element.\n * @deprecated Use `MatOption` from `@angular/material/core` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyOption extends _MatOptionBase {\n constructor(element, changeDetectorRef, parent, group) {\n super(element, changeDetectorRef, parent, group);\n }\n static {\n this.ɵfac = function MatLegacyOption_Factory(ɵt) {\n return new (ɵt || MatLegacyOption)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(MAT_OPTION_PARENT_COMPONENT, 8), i0.ɵɵdirectiveInject(MAT_OPTGROUP, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatLegacyOption,\n selectors: [[\"mat-option\"]],\n hostAttrs: [\"role\", \"option\", 1, \"mat-option\", \"mat-focus-indicator\"],\n hostVars: 12,\n hostBindings: function MatLegacyOption_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function MatLegacyOption_click_HostBindingHandler() {\n return ctx._selectViaInteraction();\n })(\"keydown\", function MatLegacyOption_keydown_HostBindingHandler($event) {\n return ctx._handleKeydown($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵhostProperty(\"id\", ctx.id);\n i0.ɵɵattribute(\"tabindex\", ctx._getTabIndex())(\"aria-selected\", ctx.selected)(\"aria-disabled\", ctx.disabled.toString());\n i0.ɵɵclassProp(\"mat-selected\", ctx.selected)(\"mat-option-multiple\", ctx.multiple)(\"mat-active\", ctx.active)(\"mat-option-disabled\", ctx.disabled);\n }\n },\n exportAs: [\"matOption\"],\n features: [i0.ɵɵInheritDefinitionFeature],\n ngContentSelectors: _c2,\n decls: 6,\n vars: 4,\n consts: [[\"text\", \"\"], [\"class\", \"mat-option-pseudo-checkbox\", 3, \"state\", \"disabled\", 4, \"ngIf\"], [1, \"mat-option-text\"], [\"class\", \"cdk-visually-hidden\", 4, \"ngIf\"], [\"mat-ripple\", \"\", 1, \"mat-option-ripple\", 3, \"matRippleTrigger\", \"matRippleDisabled\"], [1, \"mat-option-pseudo-checkbox\", 3, \"state\", \"disabled\"], [1, \"cdk-visually-hidden\"]],\n template: function MatLegacyOption_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵtemplate(0, MatLegacyOption_mat_pseudo_checkbox_0_Template, 1, 2, \"mat-pseudo-checkbox\", 1);\n i0.ɵɵelementStart(1, \"span\", 2, 0);\n i0.ɵɵprojection(3);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(4, MatLegacyOption_span_4_Template, 2, 1, \"span\", 3);\n i0.ɵɵelement(5, \"div\", 4);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", ctx.multiple);\n i0.ɵɵadvance(4);\n i0.ɵɵproperty(\"ngIf\", ctx.group && ctx.group._inert);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"matRippleTrigger\", ctx._getHostElement())(\"matRippleDisabled\", ctx.disabled || ctx.disableRipple);\n }\n },\n dependencies: [i1.MatRipple, i2.NgIf, i1.MatPseudoCheckbox],\n styles: [\".mat-option{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:48px;height:48px;padding:0 16px;text-align:left;text-decoration:none;max-width:100%;position:relative;cursor:pointer;outline:none;display:flex;flex-direction:row;max-width:100%;box-sizing:border-box;align-items:center;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-option[disabled]{cursor:default}[dir=rtl] .mat-option{text-align:right}.mat-option .mat-icon{margin-right:16px;vertical-align:middle}.mat-option .mat-icon svg{vertical-align:top}[dir=rtl] .mat-option .mat-icon{margin-left:16px;margin-right:0}.mat-option[aria-disabled=true]{-webkit-user-select:none;user-select:none;cursor:default}.mat-optgroup .mat-option:not(.mat-option-multiple){padding-left:32px}[dir=rtl] .mat-optgroup .mat-option:not(.mat-option-multiple){padding-left:16px;padding-right:32px}.mat-option.mat-active::before{content:\\\"\\\"}.cdk-high-contrast-active .mat-option[aria-disabled=true]{opacity:.5}.cdk-high-contrast-active .mat-option.mat-selected:not(.mat-option-multiple)::after{content:\\\"\\\";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}[dir=rtl] .cdk-high-contrast-active .mat-option.mat-selected:not(.mat-option-multiple)::after{right:auto;left:16px}.mat-option-text{display:inline-block;flex-grow:1;overflow:hidden;text-overflow:ellipsis}.mat-option .mat-option-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-option-pseudo-checkbox{margin-right:8px}[dir=rtl] .mat-option-pseudo-checkbox{margin-left:8px;margin-right:0}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyOption, [{\n type: Component,\n args: [{\n selector: 'mat-option',\n exportAs: 'matOption',\n host: {\n 'role': 'option',\n '[attr.tabindex]': '_getTabIndex()',\n '[class.mat-selected]': 'selected',\n '[class.mat-option-multiple]': 'multiple',\n '[class.mat-active]': 'active',\n '[id]': 'id',\n '[attr.aria-selected]': 'selected',\n '[attr.aria-disabled]': 'disabled.toString()',\n '[class.mat-option-disabled]': 'disabled',\n '(click)': '_selectViaInteraction()',\n '(keydown)': '_handleKeydown($event)',\n 'class': 'mat-option mat-focus-indicator'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: \"\\n\\n\\n\\n\\n({{ group.label }})\\n\\n\\n\\n\",\n styles: [\".mat-option{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:48px;height:48px;padding:0 16px;text-align:left;text-decoration:none;max-width:100%;position:relative;cursor:pointer;outline:none;display:flex;flex-direction:row;max-width:100%;box-sizing:border-box;align-items:center;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-option[disabled]{cursor:default}[dir=rtl] .mat-option{text-align:right}.mat-option .mat-icon{margin-right:16px;vertical-align:middle}.mat-option .mat-icon svg{vertical-align:top}[dir=rtl] .mat-option .mat-icon{margin-left:16px;margin-right:0}.mat-option[aria-disabled=true]{-webkit-user-select:none;user-select:none;cursor:default}.mat-optgroup .mat-option:not(.mat-option-multiple){padding-left:32px}[dir=rtl] .mat-optgroup .mat-option:not(.mat-option-multiple){padding-left:16px;padding-right:32px}.mat-option.mat-active::before{content:\\\"\\\"}.cdk-high-contrast-active .mat-option[aria-disabled=true]{opacity:.5}.cdk-high-contrast-active .mat-option.mat-selected:not(.mat-option-multiple)::after{content:\\\"\\\";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}[dir=rtl] .cdk-high-contrast-active .mat-option.mat-selected:not(.mat-option-multiple)::after{right:auto;left:16px}.mat-option-text{display:inline-block;flex-grow:1;overflow:hidden;text-overflow:ellipsis}.mat-option .mat-option-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-option-pseudo-checkbox{margin-right:8px}[dir=rtl] .mat-option-pseudo-checkbox{margin-left:8px;margin-right:0}\"]\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_OPTION_PARENT_COMPONENT]\n }]\n }, {\n type: MatLegacyOptgroup,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_OPTGROUP]\n }]\n }];\n }, null);\n})();\n\n/**\n * @deprecated Use `MatOptionModule` from `@angular/material/core` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyOptionModule {\n static {\n this.ɵfac = function MatLegacyOptionModule_Factory(ɵt) {\n return new (ɵt || MatLegacyOptionModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatLegacyOptionModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [MatRippleModule, CommonModule, MatCommonModule, MatPseudoCheckboxModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyOptionModule, [{\n type: NgModule,\n args: [{\n imports: [MatRippleModule, CommonModule, MatCommonModule, MatPseudoCheckboxModule],\n exports: [MatLegacyOption, MatLegacyOptgroup],\n declarations: [MatLegacyOption, MatLegacyOptgroup]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MatLegacyOptgroup, MatLegacyOption, MatLegacyOptionModule };\n","/**\n * @license Angular v18.1.3\n * (c) 2010-2024 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport * as i0 from '@angular/core';\nimport { Directive, InjectionToken, forwardRef, Optional, Inject, ɵisPromise, ɵisSubscribable, ɵRuntimeError, Self, computed, signal, untracked, EventEmitter, Input, Host, SkipSelf, booleanAttribute, ChangeDetectorRef, Output, Injectable, inject, NgModule, Version } from '@angular/core';\nimport { ɵgetDOM } from '@angular/common';\nimport { from, forkJoin, Subject } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n/**\n * Base class for all ControlValueAccessor classes defined in Forms package.\n * Contains common logic and utility functions.\n *\n * Note: this is an *internal-only* class and should not be extended or used directly in\n * applications code.\n */\nclass BaseControlValueAccessor {\n constructor(_renderer, _elementRef) {\n this._renderer = _renderer;\n this._elementRef = _elementRef;\n /**\n * The registered callback function called when a change or input event occurs on the input\n * element.\n * @nodoc\n */\n this.onChange = _ => {};\n /**\n * The registered callback function called when a blur event occurs on the input element.\n * @nodoc\n */\n this.onTouched = () => {};\n }\n /**\n * Helper method that sets a property on a target element using the current Renderer\n * implementation.\n * @nodoc\n */\n setProperty(key, value) {\n this._renderer.setProperty(this._elementRef.nativeElement, key, value);\n }\n /**\n * Registers a function called when the control is touched.\n * @nodoc\n */\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n /**\n * Registers a function called when the control value changes.\n * @nodoc\n */\n registerOnChange(fn) {\n this.onChange = fn;\n }\n /**\n * Sets the \"disabled\" property on the range input element.\n * @nodoc\n */\n setDisabledState(isDisabled) {\n this.setProperty('disabled', isDisabled);\n }\n static {\n this.ɵfac = function BaseControlValueAccessor_Factory(ɵt) {\n return new (ɵt || BaseControlValueAccessor)(i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: BaseControlValueAccessor\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(BaseControlValueAccessor, [{\n type: Directive\n }], () => [{\n type: i0.Renderer2\n }, {\n type: i0.ElementRef\n }], null);\n})();\n/**\n * Base class for all built-in ControlValueAccessor classes (except DefaultValueAccessor, which is\n * used in case no other CVAs can be found). We use this class to distinguish between default CVA,\n * built-in CVAs and custom CVAs, so that Forms logic can recognize built-in CVAs and treat custom\n * ones with higher priority (when both built-in and custom CVAs are present).\n *\n * Note: this is an *internal-only* class and should not be extended or used directly in\n * applications code.\n */\nclass BuiltInControlValueAccessor extends BaseControlValueAccessor {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵBuiltInControlValueAccessor_BaseFactory;\n return function BuiltInControlValueAccessor_Factory(ɵt) {\n return (ɵBuiltInControlValueAccessor_BaseFactory || (ɵBuiltInControlValueAccessor_BaseFactory = i0.ɵɵgetInheritedFactory(BuiltInControlValueAccessor)))(ɵt || BuiltInControlValueAccessor);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: BuiltInControlValueAccessor,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(BuiltInControlValueAccessor, [{\n type: Directive\n }], null, null);\n})();\n/**\n * Used to provide a `ControlValueAccessor` for form controls.\n *\n * See `DefaultValueAccessor` for how to implement one.\n *\n * @publicApi\n */\nconst NG_VALUE_ACCESSOR = new InjectionToken(ngDevMode ? 'NgValueAccessor' : '');\nconst CHECKBOX_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxControlValueAccessor),\n multi: true\n};\n/**\n * @description\n * A `ControlValueAccessor` for writing a value and listening to changes on a checkbox input\n * element.\n *\n * @usageNotes\n *\n * ### Using a checkbox with a reactive form.\n *\n * The following example shows how to use a checkbox with a reactive form.\n *\n * ```ts\n * const rememberLoginControl = new FormControl();\n * ```\n *\n * ```\n * \n * ```\n *\n * @ngModule ReactiveFormsModule\n * @ngModule FormsModule\n * @publicApi\n */\nclass CheckboxControlValueAccessor extends BuiltInControlValueAccessor {\n /**\n * Sets the \"checked\" property on the input element.\n * @nodoc\n */\n writeValue(value) {\n this.setProperty('checked', value);\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵCheckboxControlValueAccessor_BaseFactory;\n return function CheckboxControlValueAccessor_Factory(ɵt) {\n return (ɵCheckboxControlValueAccessor_BaseFactory || (ɵCheckboxControlValueAccessor_BaseFactory = i0.ɵɵgetInheritedFactory(CheckboxControlValueAccessor)))(ɵt || CheckboxControlValueAccessor);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CheckboxControlValueAccessor,\n selectors: [[\"input\", \"type\", \"checkbox\", \"formControlName\", \"\"], [\"input\", \"type\", \"checkbox\", \"formControl\", \"\"], [\"input\", \"type\", \"checkbox\", \"ngModel\", \"\"]],\n hostBindings: function CheckboxControlValueAccessor_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"change\", function CheckboxControlValueAccessor_change_HostBindingHandler($event) {\n return ctx.onChange($event.target.checked);\n })(\"blur\", function CheckboxControlValueAccessor_blur_HostBindingHandler() {\n return ctx.onTouched();\n });\n }\n },\n features: [i0.ɵɵProvidersFeature([CHECKBOX_VALUE_ACCESSOR]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CheckboxControlValueAccessor, [{\n type: Directive,\n args: [{\n selector: 'input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]',\n host: {\n '(change)': 'onChange($event.target.checked)',\n '(blur)': 'onTouched()'\n },\n providers: [CHECKBOX_VALUE_ACCESSOR]\n }]\n }], null, null);\n})();\nconst DEFAULT_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DefaultValueAccessor),\n multi: true\n};\n/**\n * We must check whether the agent is Android because composition events\n * behave differently between iOS and Android.\n */\nfunction _isAndroid() {\n const userAgent = ɵgetDOM() ? ɵgetDOM().getUserAgent() : '';\n return /android (\\d+)/.test(userAgent.toLowerCase());\n}\n/**\n * @description\n * Provide this token to control if form directives buffer IME input until\n * the \"compositionend\" event occurs.\n * @publicApi\n */\nconst COMPOSITION_BUFFER_MODE = new InjectionToken(ngDevMode ? 'CompositionEventMode' : '');\n/**\n * The default `ControlValueAccessor` for writing a value and listening to changes on input\n * elements. The accessor is used by the `FormControlDirective`, `FormControlName`, and\n * `NgModel` directives.\n *\n * {@searchKeywords ngDefaultControl}\n *\n * @usageNotes\n *\n * ### Using the default value accessor\n *\n * The following example shows how to use an input element that activates the default value accessor\n * (in this case, a text field).\n *\n * ```ts\n * const firstNameControl = new FormControl();\n * ```\n *\n * ```\n * \n * ```\n *\n * This value accessor is used by default for `` and `` elements, but\n * you could also use it for custom components that have similar behavior and do not require special\n * processing. In order to attach the default value accessor to a custom element, add the\n * `ngDefaultControl` attribute as shown below.\n *\n * ```\n * \n * ```\n *\n * @ngModule ReactiveFormsModule\n * @ngModule FormsModule\n * @publicApi\n */\nclass DefaultValueAccessor extends BaseControlValueAccessor {\n constructor(renderer, elementRef, _compositionMode) {\n super(renderer, elementRef);\n this._compositionMode = _compositionMode;\n /** Whether the user is creating a composition string (IME events). */\n this._composing = false;\n if (this._compositionMode == null) {\n this._compositionMode = !_isAndroid();\n }\n }\n /**\n * Sets the \"value\" property on the input element.\n * @nodoc\n */\n writeValue(value) {\n const normalizedValue = value == null ? '' : value;\n this.setProperty('value', normalizedValue);\n }\n /** @internal */\n _handleInput(value) {\n if (!this._compositionMode || this._compositionMode && !this._composing) {\n this.onChange(value);\n }\n }\n /** @internal */\n _compositionStart() {\n this._composing = true;\n }\n /** @internal */\n _compositionEnd(value) {\n this._composing = false;\n this._compositionMode && this.onChange(value);\n }\n static {\n this.ɵfac = function DefaultValueAccessor_Factory(ɵt) {\n return new (ɵt || DefaultValueAccessor)(i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(COMPOSITION_BUFFER_MODE, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: DefaultValueAccessor,\n selectors: [[\"input\", \"formControlName\", \"\", 3, \"type\", \"checkbox\"], [\"textarea\", \"formControlName\", \"\"], [\"input\", \"formControl\", \"\", 3, \"type\", \"checkbox\"], [\"textarea\", \"formControl\", \"\"], [\"input\", \"ngModel\", \"\", 3, \"type\", \"checkbox\"], [\"textarea\", \"ngModel\", \"\"], [\"\", \"ngDefaultControl\", \"\"]],\n hostBindings: function DefaultValueAccessor_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"input\", function DefaultValueAccessor_input_HostBindingHandler($event) {\n return ctx._handleInput($event.target.value);\n })(\"blur\", function DefaultValueAccessor_blur_HostBindingHandler() {\n return ctx.onTouched();\n })(\"compositionstart\", function DefaultValueAccessor_compositionstart_HostBindingHandler() {\n return ctx._compositionStart();\n })(\"compositionend\", function DefaultValueAccessor_compositionend_HostBindingHandler($event) {\n return ctx._compositionEnd($event.target.value);\n });\n }\n },\n features: [i0.ɵɵProvidersFeature([DEFAULT_VALUE_ACCESSOR]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DefaultValueAccessor, [{\n type: Directive,\n args: [{\n selector: 'input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]',\n // TODO: vsavkin replace the above selector with the one below it once\n // https://github.com/angular/angular/issues/3011 is implemented\n // selector: '[ngModel],[formControl],[formControlName]',\n host: {\n '(input)': '$any(this)._handleInput($event.target.value)',\n '(blur)': 'onTouched()',\n '(compositionstart)': '$any(this)._compositionStart()',\n '(compositionend)': '$any(this)._compositionEnd($event.target.value)'\n },\n providers: [DEFAULT_VALUE_ACCESSOR]\n }]\n }], () => [{\n type: i0.Renderer2\n }, {\n type: i0.ElementRef\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [COMPOSITION_BUFFER_MODE]\n }]\n }], null);\n})();\nfunction isEmptyInputValue(value) {\n /**\n * Check if the object is a string or array before evaluating the length attribute.\n * This avoids falsely rejecting objects that contain a custom length attribute.\n * For example, the object {id: 1, length: 0, width: 0} should not be returned as empty.\n */\n return value == null || (typeof value === 'string' || Array.isArray(value)) && value.length === 0;\n}\nfunction hasValidLength(value) {\n // non-strict comparison is intentional, to check for both `null` and `undefined` values\n return value != null && typeof value.length === 'number';\n}\n/**\n * @description\n * An `InjectionToken` for registering additional synchronous validators used with\n * `AbstractControl`s.\n *\n * @see {@link NG_ASYNC_VALIDATORS}\n *\n * @usageNotes\n *\n * ### Providing a custom validator\n *\n * The following example registers a custom validator directive. Adding the validator to the\n * existing collection of validators requires the `multi: true` option.\n *\n * ```typescript\n * @Directive({\n * selector: '[customValidator]',\n * providers: [{provide: NG_VALIDATORS, useExisting: CustomValidatorDirective, multi: true}]\n * })\n * class CustomValidatorDirective implements Validator {\n * validate(control: AbstractControl): ValidationErrors | null {\n * return { 'custom': true };\n * }\n * }\n * ```\n *\n * @publicApi\n */\nconst NG_VALIDATORS = new InjectionToken(ngDevMode ? 'NgValidators' : '');\n/**\n * @description\n * An `InjectionToken` for registering additional asynchronous validators used with\n * `AbstractControl`s.\n *\n * @see {@link NG_VALIDATORS}\n *\n * @usageNotes\n *\n * ### Provide a custom async validator directive\n *\n * The following example implements the `AsyncValidator` interface to create an\n * async validator directive with a custom error key.\n *\n * ```typescript\n * @Directive({\n * selector: '[customAsyncValidator]',\n * providers: [{provide: NG_ASYNC_VALIDATORS, useExisting: CustomAsyncValidatorDirective, multi:\n * true}]\n * })\n * class CustomAsyncValidatorDirective implements AsyncValidator {\n * validate(control: AbstractControl): Promise {\n * return Promise.resolve({'custom': true});\n * }\n * }\n * ```\n *\n * @publicApi\n */\nconst NG_ASYNC_VALIDATORS = new InjectionToken(ngDevMode ? 'NgAsyncValidators' : '');\n/**\n * A regular expression that matches valid e-mail addresses.\n *\n * At a high level, this regexp matches e-mail addresses of the format `local-part@tld`, where:\n * - `local-part` consists of one or more of the allowed characters (alphanumeric and some\n * punctuation symbols).\n * - `local-part` cannot begin or end with a period (`.`).\n * - `local-part` cannot be longer than 64 characters.\n * - `tld` consists of one or more `labels` separated by periods (`.`). For example `localhost` or\n * `foo.com`.\n * - A `label` consists of one or more of the allowed characters (alphanumeric, dashes (`-`) and\n * periods (`.`)).\n * - A `label` cannot begin or end with a dash (`-`) or a period (`.`).\n * - A `label` cannot be longer than 63 characters.\n * - The whole address cannot be longer than 254 characters.\n *\n * ## Implementation background\n *\n * This regexp was ported over from AngularJS (see there for git history):\n * https://github.com/angular/angular.js/blob/c133ef836/src/ng/directive/input.js#L27\n * It is based on the\n * [WHATWG version](https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address) with\n * some enhancements to incorporate more RFC rules (such as rules related to domain names and the\n * lengths of different parts of the address). The main differences from the WHATWG version are:\n * - Disallow `local-part` to begin or end with a period (`.`).\n * - Disallow `local-part` length to exceed 64 characters.\n * - Disallow total address length to exceed 254 characters.\n *\n * See [this commit](https://github.com/angular/angular.js/commit/f3f5cf72e) for more details.\n */\nconst EMAIL_REGEXP = /^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n/**\n * @description\n * Provides a set of built-in validators that can be used by form controls.\n *\n * A validator is a function that processes a `FormControl` or collection of\n * controls and returns an error map or null. A null map means that validation has passed.\n *\n * @see [Form Validation](guide/forms/form-validation)\n *\n * @publicApi\n */\nclass Validators {\n /**\n * @description\n * Validator that requires the control's value to be greater than or equal to the provided number.\n *\n * @usageNotes\n *\n * ### Validate against a minimum of 3\n *\n * ```typescript\n * const control = new FormControl(2, Validators.min(3));\n *\n * console.log(control.errors); // {min: {min: 3, actual: 2}}\n * ```\n *\n * @returns A validator function that returns an error map with the\n * `min` property if the validation check fails, otherwise `null`.\n *\n * @see {@link updateValueAndValidity()}\n *\n */\n static min(min) {\n return minValidator(min);\n }\n /**\n * @description\n * Validator that requires the control's value to be less than or equal to the provided number.\n *\n * @usageNotes\n *\n * ### Validate against a maximum of 15\n *\n * ```typescript\n * const control = new FormControl(16, Validators.max(15));\n *\n * console.log(control.errors); // {max: {max: 15, actual: 16}}\n * ```\n *\n * @returns A validator function that returns an error map with the\n * `max` property if the validation check fails, otherwise `null`.\n *\n * @see {@link updateValueAndValidity()}\n *\n */\n static max(max) {\n return maxValidator(max);\n }\n /**\n * @description\n * Validator that requires the control have a non-empty value.\n *\n * @usageNotes\n *\n * ### Validate that the field is non-empty\n *\n * ```typescript\n * const control = new FormControl('', Validators.required);\n *\n * console.log(control.errors); // {required: true}\n * ```\n *\n * @returns An error map with the `required` property\n * if the validation check fails, otherwise `null`.\n *\n * @see {@link updateValueAndValidity()}\n *\n */\n static required(control) {\n return requiredValidator(control);\n }\n /**\n * @description\n * Validator that requires the control's value be true. This validator is commonly\n * used for required checkboxes.\n *\n * @usageNotes\n *\n * ### Validate that the field value is true\n *\n * ```typescript\n * const control = new FormControl('some value', Validators.requiredTrue);\n *\n * console.log(control.errors); // {required: true}\n * ```\n *\n * @returns An error map that contains the `required` property\n * set to `true` if the validation check fails, otherwise `null`.\n *\n * @see {@link updateValueAndValidity()}\n *\n */\n static requiredTrue(control) {\n return requiredTrueValidator(control);\n }\n /**\n * @description\n * Validator that requires the control's value pass an email validation test.\n *\n * Tests the value using a [regular\n * expression](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions)\n * pattern suitable for common use cases. The pattern is based on the definition of a valid email\n * address in the [WHATWG HTML\n * specification](https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address) with\n * some enhancements to incorporate more RFC rules (such as rules related to domain names and the\n * lengths of different parts of the address).\n *\n * The differences from the WHATWG version include:\n * - Disallow `local-part` (the part before the `@` symbol) to begin or end with a period (`.`).\n * - Disallow `local-part` to be longer than 64 characters.\n * - Disallow the whole address to be longer than 254 characters.\n *\n * If this pattern does not satisfy your business needs, you can use `Validators.pattern()` to\n * validate the value against a different pattern.\n *\n * @usageNotes\n *\n * ### Validate that the field matches a valid email pattern\n *\n * ```typescript\n * const control = new FormControl('bad@', Validators.email);\n *\n * console.log(control.errors); // {email: true}\n * ```\n *\n * @returns An error map with the `email` property\n * if the validation check fails, otherwise `null`.\n *\n * @see {@link updateValueAndValidity()}\n *\n */\n static email(control) {\n return emailValidator(control);\n }\n /**\n * @description\n * Validator that requires the length of the control's value to be greater than or equal\n * to the provided minimum length. This validator is also provided by default if you use the\n * the HTML5 `minlength` attribute. Note that the `minLength` validator is intended to be used\n * only for types that have a numeric `length` property, such as strings or arrays. The\n * `minLength` validator logic is also not invoked for values when their `length` property is 0\n * (for example in case of an empty string or an empty array), to support optional controls. You\n * can use the standard `required` validator if empty values should not be considered valid.\n *\n * @usageNotes\n *\n * ### Validate that the field has a minimum of 3 characters\n *\n * ```typescript\n * const control = new FormControl('ng', Validators.minLength(3));\n *\n * console.log(control.errors); // {minlength: {requiredLength: 3, actualLength: 2}}\n * ```\n *\n * ```html\n * \n * ```\n *\n * @returns A validator function that returns an error map with the\n * `minlength` property if the validation check fails, otherwise `null`.\n *\n * @see {@link updateValueAndValidity()}\n *\n */\n static minLength(minLength) {\n return minLengthValidator(minLength);\n }\n /**\n * @description\n * Validator that requires the length of the control's value to be less than or equal\n * to the provided maximum length. This validator is also provided by default if you use the\n * the HTML5 `maxlength` attribute. Note that the `maxLength` validator is intended to be used\n * only for types that have a numeric `length` property, such as strings or arrays.\n *\n * @usageNotes\n *\n * ### Validate that the field has maximum of 5 characters\n *\n * ```typescript\n * const control = new FormControl('Angular', Validators.maxLength(5));\n *\n * console.log(control.errors); // {maxlength: {requiredLength: 5, actualLength: 7}}\n * ```\n *\n * ```html\n * \n * ```\n *\n * @returns A validator function that returns an error map with the\n * `maxlength` property if the validation check fails, otherwise `null`.\n *\n * @see {@link updateValueAndValidity()}\n *\n */\n static maxLength(maxLength) {\n return maxLengthValidator(maxLength);\n }\n /**\n * @description\n * Validator that requires the control's value to match a regex pattern. This validator is also\n * provided by default if you use the HTML5 `pattern` attribute.\n *\n * @usageNotes\n *\n * ### Validate that the field only contains letters or spaces\n *\n * ```typescript\n * const control = new FormControl('1', Validators.pattern('[a-zA-Z ]*'));\n *\n * console.log(control.errors); // {pattern: {requiredPattern: '^[a-zA-Z ]*$', actualValue: '1'}}\n * ```\n *\n * ```html\n * \n * ```\n *\n * ### Pattern matching with the global or sticky flag\n *\n * `RegExp` objects created with the `g` or `y` flags that are passed into `Validators.pattern`\n * can produce different results on the same input when validations are run consecutively. This is\n * due to how the behavior of `RegExp.prototype.test` is\n * specified in [ECMA-262](https://tc39.es/ecma262/#sec-regexpbuiltinexec)\n * (`RegExp` preserves the index of the last match when the global or sticky flag is used).\n * Due to this behavior, it is recommended that when using\n * `Validators.pattern` you **do not** pass in a `RegExp` object with either the global or sticky\n * flag enabled.\n *\n * ```typescript\n * // Not recommended (since the `g` flag is used)\n * const controlOne = new FormControl('1', Validators.pattern(/foo/g));\n *\n * // Good\n * const controlTwo = new FormControl('1', Validators.pattern(/foo/));\n * ```\n *\n * @param pattern A regular expression to be used as is to test the values, or a string.\n * If a string is passed, the `^` character is prepended and the `$` character is\n * appended to the provided string (if not already present), and the resulting regular\n * expression is used to test the values.\n *\n * @returns A validator function that returns an error map with the\n * `pattern` property if the validation check fails, otherwise `null`.\n *\n * @see {@link updateValueAndValidity()}\n *\n */\n static pattern(pattern) {\n return patternValidator(pattern);\n }\n /**\n * @description\n * Validator that performs no operation.\n *\n * @see {@link updateValueAndValidity()}\n *\n */\n static nullValidator(control) {\n return nullValidator(control);\n }\n static compose(validators) {\n return compose(validators);\n }\n /**\n * @description\n * Compose multiple async validators into a single function that returns the union\n * of the individual error objects for the provided control.\n *\n * @returns A validator function that returns an error map with the\n * merged error objects of the async validators if the validation check fails, otherwise `null`.\n *\n * @see {@link updateValueAndValidity()}\n *\n */\n static composeAsync(validators) {\n return composeAsync(validators);\n }\n}\n/**\n * Validator that requires the control's value to be greater than or equal to the provided number.\n * See `Validators.min` for additional information.\n */\nfunction minValidator(min) {\n return control => {\n if (isEmptyInputValue(control.value) || isEmptyInputValue(min)) {\n return null; // don't validate empty values to allow optional controls\n }\n const value = parseFloat(control.value);\n // Controls with NaN values after parsing should be treated as not having a\n // minimum, per the HTML forms spec: https://www.w3.org/TR/html5/forms.html#attr-input-min\n return !isNaN(value) && value < min ? {\n 'min': {\n 'min': min,\n 'actual': control.value\n }\n } : null;\n };\n}\n/**\n * Validator that requires the control's value to be less than or equal to the provided number.\n * See `Validators.max` for additional information.\n */\nfunction maxValidator(max) {\n return control => {\n if (isEmptyInputValue(control.value) || isEmptyInputValue(max)) {\n return null; // don't validate empty values to allow optional controls\n }\n const value = parseFloat(control.value);\n // Controls with NaN values after parsing should be treated as not having a\n // maximum, per the HTML forms spec: https://www.w3.org/TR/html5/forms.html#attr-input-max\n return !isNaN(value) && value > max ? {\n 'max': {\n 'max': max,\n 'actual': control.value\n }\n } : null;\n };\n}\n/**\n * Validator that requires the control have a non-empty value.\n * See `Validators.required` for additional information.\n */\nfunction requiredValidator(control) {\n return isEmptyInputValue(control.value) ? {\n 'required': true\n } : null;\n}\n/**\n * Validator that requires the control's value be true. This validator is commonly\n * used for required checkboxes.\n * See `Validators.requiredTrue` for additional information.\n */\nfunction requiredTrueValidator(control) {\n return control.value === true ? null : {\n 'required': true\n };\n}\n/**\n * Validator that requires the control's value pass an email validation test.\n * See `Validators.email` for additional information.\n */\nfunction emailValidator(control) {\n if (isEmptyInputValue(control.value)) {\n return null; // don't validate empty values to allow optional controls\n }\n return EMAIL_REGEXP.test(control.value) ? null : {\n 'email': true\n };\n}\n/**\n * Validator that requires the length of the control's value to be greater than or equal\n * to the provided minimum length. See `Validators.minLength` for additional information.\n */\nfunction minLengthValidator(minLength) {\n return control => {\n if (isEmptyInputValue(control.value) || !hasValidLength(control.value)) {\n // don't validate empty values to allow optional controls\n // don't validate values without `length` property\n return null;\n }\n return control.value.length < minLength ? {\n 'minlength': {\n 'requiredLength': minLength,\n 'actualLength': control.value.length\n }\n } : null;\n };\n}\n/**\n * Validator that requires the length of the control's value to be less than or equal\n * to the provided maximum length. See `Validators.maxLength` for additional information.\n */\nfunction maxLengthValidator(maxLength) {\n return control => {\n return hasValidLength(control.value) && control.value.length > maxLength ? {\n 'maxlength': {\n 'requiredLength': maxLength,\n 'actualLength': control.value.length\n }\n } : null;\n };\n}\n/**\n * Validator that requires the control's value to match a regex pattern.\n * See `Validators.pattern` for additional information.\n */\nfunction patternValidator(pattern) {\n if (!pattern) return nullValidator;\n let regex;\n let regexStr;\n if (typeof pattern === 'string') {\n regexStr = '';\n if (pattern.charAt(0) !== '^') regexStr += '^';\n regexStr += pattern;\n if (pattern.charAt(pattern.length - 1) !== '$') regexStr += '$';\n regex = new RegExp(regexStr);\n } else {\n regexStr = pattern.toString();\n regex = pattern;\n }\n return control => {\n if (isEmptyInputValue(control.value)) {\n return null; // don't validate empty values to allow optional controls\n }\n const value = control.value;\n return regex.test(value) ? null : {\n 'pattern': {\n 'requiredPattern': regexStr,\n 'actualValue': value\n }\n };\n };\n}\n/**\n * Function that has `ValidatorFn` shape, but performs no operation.\n */\nfunction nullValidator(control) {\n return null;\n}\nfunction isPresent(o) {\n return o != null;\n}\nfunction toObservable(value) {\n const obs = ɵisPromise(value) ? from(value) : value;\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !ɵisSubscribable(obs)) {\n let errorMessage = `Expected async validator to return Promise or Observable.`;\n // A synchronous validator will return object or null.\n if (typeof value === 'object') {\n errorMessage += ' Are you using a synchronous validator where an async validator is expected?';\n }\n throw new ɵRuntimeError(-1101 /* RuntimeErrorCode.WRONG_VALIDATOR_RETURN_TYPE */, errorMessage);\n }\n return obs;\n}\nfunction mergeErrors(arrayOfErrors) {\n let res = {};\n arrayOfErrors.forEach(errors => {\n res = errors != null ? {\n ...res,\n ...errors\n } : res;\n });\n return Object.keys(res).length === 0 ? null : res;\n}\nfunction executeValidators(control, validators) {\n return validators.map(validator => validator(control));\n}\nfunction isValidatorFn(validator) {\n return !validator.validate;\n}\n/**\n * Given the list of validators that may contain both functions as well as classes, return the list\n * of validator functions (convert validator classes into validator functions). This is needed to\n * have consistent structure in validators list before composing them.\n *\n * @param validators The set of validators that may contain validators both in plain function form\n * as well as represented as a validator class.\n */\nfunction normalizeValidators(validators) {\n return validators.map(validator => {\n return isValidatorFn(validator) ? validator : c => validator.validate(c);\n });\n}\n/**\n * Merges synchronous validators into a single validator function.\n * See `Validators.compose` for additional information.\n */\nfunction compose(validators) {\n if (!validators) return null;\n const presentValidators = validators.filter(isPresent);\n if (presentValidators.length == 0) return null;\n return function (control) {\n return mergeErrors(executeValidators(control, presentValidators));\n };\n}\n/**\n * Accepts a list of validators of different possible shapes (`Validator` and `ValidatorFn`),\n * normalizes the list (converts everything to `ValidatorFn`) and merges them into a single\n * validator function.\n */\nfunction composeValidators(validators) {\n return validators != null ? compose(normalizeValidators(validators)) : null;\n}\n/**\n * Merges asynchronous validators into a single validator function.\n * See `Validators.composeAsync` for additional information.\n */\nfunction composeAsync(validators) {\n if (!validators) return null;\n const presentValidators = validators.filter(isPresent);\n if (presentValidators.length == 0) return null;\n return function (control) {\n const observables = executeValidators(control, presentValidators).map(toObservable);\n return forkJoin(observables).pipe(map(mergeErrors));\n };\n}\n/**\n * Accepts a list of async validators of different possible shapes (`AsyncValidator` and\n * `AsyncValidatorFn`), normalizes the list (converts everything to `AsyncValidatorFn`) and merges\n * them into a single validator function.\n */\nfunction composeAsyncValidators(validators) {\n return validators != null ? composeAsync(normalizeValidators(validators)) : null;\n}\n/**\n * Merges raw control validators with a given directive validator and returns the combined list of\n * validators as an array.\n */\nfunction mergeValidators(controlValidators, dirValidator) {\n if (controlValidators === null) return [dirValidator];\n return Array.isArray(controlValidators) ? [...controlValidators, dirValidator] : [controlValidators, dirValidator];\n}\n/**\n * Retrieves the list of raw synchronous validators attached to a given control.\n */\nfunction getControlValidators(control) {\n return control._rawValidators;\n}\n/**\n * Retrieves the list of raw asynchronous validators attached to a given control.\n */\nfunction getControlAsyncValidators(control) {\n return control._rawAsyncValidators;\n}\n/**\n * Accepts a singleton validator, an array, or null, and returns an array type with the provided\n * validators.\n *\n * @param validators A validator, validators, or null.\n * @returns A validators array.\n */\nfunction makeValidatorsArray(validators) {\n if (!validators) return [];\n return Array.isArray(validators) ? validators : [validators];\n}\n/**\n * Determines whether a validator or validators array has a given validator.\n *\n * @param validators The validator or validators to compare against.\n * @param validator The validator to check.\n * @returns Whether the validator is present.\n */\nfunction hasValidator(validators, validator) {\n return Array.isArray(validators) ? validators.includes(validator) : validators === validator;\n}\n/**\n * Combines two arrays of validators into one. If duplicates are provided, only one will be added.\n *\n * @param validators The new validators.\n * @param currentValidators The base array of current validators.\n * @returns An array of validators.\n */\nfunction addValidators(validators, currentValidators) {\n const current = makeValidatorsArray(currentValidators);\n const validatorsToAdd = makeValidatorsArray(validators);\n validatorsToAdd.forEach(v => {\n // Note: if there are duplicate entries in the new validators array,\n // only the first one would be added to the current list of validators.\n // Duplicate ones would be ignored since `hasValidator` would detect\n // the presence of a validator function and we update the current list in place.\n if (!hasValidator(current, v)) {\n current.push(v);\n }\n });\n return current;\n}\nfunction removeValidators(validators, currentValidators) {\n return makeValidatorsArray(currentValidators).filter(v => !hasValidator(validators, v));\n}\n\n/**\n * @description\n * Base class for control directives.\n *\n * This class is only used internally in the `ReactiveFormsModule` and the `FormsModule`.\n *\n * @publicApi\n */\nclass AbstractControlDirective {\n constructor() {\n /**\n * Set of synchronous validators as they were provided while calling `setValidators` function.\n * @internal\n */\n this._rawValidators = [];\n /**\n * Set of asynchronous validators as they were provided while calling `setAsyncValidators`\n * function.\n * @internal\n */\n this._rawAsyncValidators = [];\n /*\n * The set of callbacks to be invoked when directive instance is being destroyed.\n */\n this._onDestroyCallbacks = [];\n }\n /**\n * @description\n * Reports the value of the control if it is present, otherwise null.\n */\n get value() {\n return this.control ? this.control.value : null;\n }\n /**\n * @description\n * Reports whether the control is valid. A control is considered valid if no\n * validation errors exist with the current value.\n * If the control is not present, null is returned.\n */\n get valid() {\n return this.control ? this.control.valid : null;\n }\n /**\n * @description\n * Reports whether the control is invalid, meaning that an error exists in the input value.\n * If the control is not present, null is returned.\n */\n get invalid() {\n return this.control ? this.control.invalid : null;\n }\n /**\n * @description\n * Reports whether a control is pending, meaning that async validation is occurring and\n * errors are not yet available for the input value. If the control is not present, null is\n * returned.\n */\n get pending() {\n return this.control ? this.control.pending : null;\n }\n /**\n * @description\n * Reports whether the control is disabled, meaning that the control is disabled\n * in the UI and is exempt from validation checks and excluded from aggregate\n * values of ancestor controls. If the control is not present, null is returned.\n */\n get disabled() {\n return this.control ? this.control.disabled : null;\n }\n /**\n * @description\n * Reports whether the control is enabled, meaning that the control is included in ancestor\n * calculations of validity or value. If the control is not present, null is returned.\n */\n get enabled() {\n return this.control ? this.control.enabled : null;\n }\n /**\n * @description\n * Reports the control's validation errors. If the control is not present, null is returned.\n */\n get errors() {\n return this.control ? this.control.errors : null;\n }\n /**\n * @description\n * Reports whether the control is pristine, meaning that the user has not yet changed\n * the value in the UI. If the control is not present, null is returned.\n */\n get pristine() {\n return this.control ? this.control.pristine : null;\n }\n /**\n * @description\n * Reports whether the control is dirty, meaning that the user has changed\n * the value in the UI. If the control is not present, null is returned.\n */\n get dirty() {\n return this.control ? this.control.dirty : null;\n }\n /**\n * @description\n * Reports whether the control is touched, meaning that the user has triggered\n * a `blur` event on it. If the control is not present, null is returned.\n */\n get touched() {\n return this.control ? this.control.touched : null;\n }\n /**\n * @description\n * Reports the validation status of the control. Possible values include:\n * 'VALID', 'INVALID', 'DISABLED', and 'PENDING'.\n * If the control is not present, null is returned.\n */\n get status() {\n return this.control ? this.control.status : null;\n }\n /**\n * @description\n * Reports whether the control is untouched, meaning that the user has not yet triggered\n * a `blur` event on it. If the control is not present, null is returned.\n */\n get untouched() {\n return this.control ? this.control.untouched : null;\n }\n /**\n * @description\n * Returns a multicasting observable that emits a validation status whenever it is\n * calculated for the control. If the control is not present, null is returned.\n */\n get statusChanges() {\n return this.control ? this.control.statusChanges : null;\n }\n /**\n * @description\n * Returns a multicasting observable of value changes for the control that emits every time the\n * value of the control changes in the UI or programmatically.\n * If the control is not present, null is returned.\n */\n get valueChanges() {\n return this.control ? this.control.valueChanges : null;\n }\n /**\n * @description\n * Returns an array that represents the path from the top-level form to this control.\n * Each index is the string name of the control on that level.\n */\n get path() {\n return null;\n }\n /**\n * Sets synchronous validators for this directive.\n * @internal\n */\n _setValidators(validators) {\n this._rawValidators = validators || [];\n this._composedValidatorFn = composeValidators(this._rawValidators);\n }\n /**\n * Sets asynchronous validators for this directive.\n * @internal\n */\n _setAsyncValidators(validators) {\n this._rawAsyncValidators = validators || [];\n this._composedAsyncValidatorFn = composeAsyncValidators(this._rawAsyncValidators);\n }\n /**\n * @description\n * Synchronous validator function composed of all the synchronous validators registered with this\n * directive.\n */\n get validator() {\n return this._composedValidatorFn || null;\n }\n /**\n * @description\n * Asynchronous validator function composed of all the asynchronous validators registered with\n * this directive.\n */\n get asyncValidator() {\n return this._composedAsyncValidatorFn || null;\n }\n /**\n * Internal function to register callbacks that should be invoked\n * when directive instance is being destroyed.\n * @internal\n */\n _registerOnDestroy(fn) {\n this._onDestroyCallbacks.push(fn);\n }\n /**\n * Internal function to invoke all registered \"on destroy\" callbacks.\n * Note: calling this function also clears the list of callbacks.\n * @internal\n */\n _invokeOnDestroyCallbacks() {\n this._onDestroyCallbacks.forEach(fn => fn());\n this._onDestroyCallbacks = [];\n }\n /**\n * @description\n * Resets the control with the provided value if the control is present.\n */\n reset(value = undefined) {\n if (this.control) this.control.reset(value);\n }\n /**\n * @description\n * Reports whether the control with the given path has the error specified.\n *\n * @param errorCode The code of the error to check\n * @param path A list of control names that designates how to move from the current control\n * to the control that should be queried for errors.\n *\n * @usageNotes\n * For example, for the following `FormGroup`:\n *\n * ```\n * form = new FormGroup({\n * address: new FormGroup({ street: new FormControl() })\n * });\n * ```\n *\n * The path to the 'street' control from the root form would be 'address' -> 'street'.\n *\n * It can be provided to this method in one of two formats:\n *\n * 1. An array of string control names, e.g. `['address', 'street']`\n * 1. A period-delimited list of control names in one string, e.g. `'address.street'`\n *\n * If no path is given, this method checks for the error on the current control.\n *\n * @returns whether the given error is present in the control at the given path.\n *\n * If the control is not present, false is returned.\n */\n hasError(errorCode, path) {\n return this.control ? this.control.hasError(errorCode, path) : false;\n }\n /**\n * @description\n * Reports error data for the control with the given path.\n *\n * @param errorCode The code of the error to check\n * @param path A list of control names that designates how to move from the current control\n * to the control that should be queried for errors.\n *\n * @usageNotes\n * For example, for the following `FormGroup`:\n *\n * ```\n * form = new FormGroup({\n * address: new FormGroup({ street: new FormControl() })\n * });\n * ```\n *\n * The path to the 'street' control from the root form would be 'address' -> 'street'.\n *\n * It can be provided to this method in one of two formats:\n *\n * 1. An array of string control names, e.g. `['address', 'street']`\n * 1. A period-delimited list of control names in one string, e.g. `'address.street'`\n *\n * @returns error data for that particular error. If the control or error is not present,\n * null is returned.\n */\n getError(errorCode, path) {\n return this.control ? this.control.getError(errorCode, path) : null;\n }\n}\n\n/**\n * @description\n * A base class for directives that contain multiple registered instances of `NgControl`.\n * Only used by the forms module.\n *\n * @publicApi\n */\nclass ControlContainer extends AbstractControlDirective {\n /**\n * @description\n * The top-level form directive for the control.\n */\n get formDirective() {\n return null;\n }\n /**\n * @description\n * The path to this group.\n */\n get path() {\n return null;\n }\n}\n\n/**\n * @description\n * A base class that all `FormControl`-based directives extend. It binds a `FormControl`\n * object to a DOM element.\n *\n * @publicApi\n */\nclass NgControl extends AbstractControlDirective {\n constructor() {\n super(...arguments);\n /**\n * @description\n * The parent form for the control.\n *\n * @internal\n */\n this._parent = null;\n /**\n * @description\n * The name for the control\n */\n this.name = null;\n /**\n * @description\n * The value accessor for the control\n */\n this.valueAccessor = null;\n }\n}\n\n// DO NOT REFACTOR!\n// Each status is represented by a separate function to make sure that\n// advanced Closure Compiler optimizations related to property renaming\n// can work correctly.\nclass AbstractControlStatus {\n constructor(cd) {\n this._cd = cd;\n }\n get isTouched() {\n // track the touched signal\n this._cd?.control?._touched?.();\n return !!this._cd?.control?.touched;\n }\n get isUntouched() {\n return !!this._cd?.control?.untouched;\n }\n get isPristine() {\n // track the pristine signal\n this._cd?.control?._pristine?.();\n return !!this._cd?.control?.pristine;\n }\n get isDirty() {\n // pristine signal already tracked above\n return !!this._cd?.control?.dirty;\n }\n get isValid() {\n // track the status signal\n this._cd?.control?._status?.();\n return !!this._cd?.control?.valid;\n }\n get isInvalid() {\n // status signal already tracked above\n return !!this._cd?.control?.invalid;\n }\n get isPending() {\n // status signal already tracked above\n return !!this._cd?.control?.pending;\n }\n get isSubmitted() {\n // track the submitted signal\n this._cd?._submitted?.();\n // We check for the `submitted` field from `NgForm` and `FormGroupDirective` classes, but\n // we avoid instanceof checks to prevent non-tree-shakable references to those types.\n return !!this._cd?.submitted;\n }\n}\nconst ngControlStatusHost = {\n '[class.ng-untouched]': 'isUntouched',\n '[class.ng-touched]': 'isTouched',\n '[class.ng-pristine]': 'isPristine',\n '[class.ng-dirty]': 'isDirty',\n '[class.ng-valid]': 'isValid',\n '[class.ng-invalid]': 'isInvalid',\n '[class.ng-pending]': 'isPending'\n};\nconst ngGroupStatusHost = {\n ...ngControlStatusHost,\n '[class.ng-submitted]': 'isSubmitted'\n};\n/**\n * @description\n * Directive automatically applied to Angular form controls that sets CSS classes\n * based on control status.\n *\n * @usageNotes\n *\n * ### CSS classes applied\n *\n * The following classes are applied as the properties become true:\n *\n * * ng-valid\n * * ng-invalid\n * * ng-pending\n * * ng-pristine\n * * ng-dirty\n * * ng-untouched\n * * ng-touched\n *\n * @ngModule ReactiveFormsModule\n * @ngModule FormsModule\n * @publicApi\n */\nclass NgControlStatus extends AbstractControlStatus {\n constructor(cd) {\n super(cd);\n }\n static {\n this.ɵfac = function NgControlStatus_Factory(ɵt) {\n return new (ɵt || NgControlStatus)(i0.ɵɵdirectiveInject(NgControl, 2));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgControlStatus,\n selectors: [[\"\", \"formControlName\", \"\"], [\"\", \"ngModel\", \"\"], [\"\", \"formControl\", \"\"]],\n hostVars: 14,\n hostBindings: function NgControlStatus_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"ng-untouched\", ctx.isUntouched)(\"ng-touched\", ctx.isTouched)(\"ng-pristine\", ctx.isPristine)(\"ng-dirty\", ctx.isDirty)(\"ng-valid\", ctx.isValid)(\"ng-invalid\", ctx.isInvalid)(\"ng-pending\", ctx.isPending);\n }\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgControlStatus, [{\n type: Directive,\n args: [{\n selector: '[formControlName],[ngModel],[formControl]',\n host: ngControlStatusHost\n }]\n }], () => [{\n type: NgControl,\n decorators: [{\n type: Self\n }]\n }], null);\n})();\n/**\n * @description\n * Directive automatically applied to Angular form groups that sets CSS classes\n * based on control status (valid/invalid/dirty/etc). On groups, this includes the additional\n * class ng-submitted.\n *\n * @see {@link NgControlStatus}\n *\n * @ngModule ReactiveFormsModule\n * @ngModule FormsModule\n * @publicApi\n */\nclass NgControlStatusGroup extends AbstractControlStatus {\n constructor(cd) {\n super(cd);\n }\n static {\n this.ɵfac = function NgControlStatusGroup_Factory(ɵt) {\n return new (ɵt || NgControlStatusGroup)(i0.ɵɵdirectiveInject(ControlContainer, 10));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgControlStatusGroup,\n selectors: [[\"\", \"formGroupName\", \"\"], [\"\", \"formArrayName\", \"\"], [\"\", \"ngModelGroup\", \"\"], [\"\", \"formGroup\", \"\"], [\"form\", 3, \"ngNoForm\", \"\"], [\"\", \"ngForm\", \"\"]],\n hostVars: 16,\n hostBindings: function NgControlStatusGroup_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"ng-untouched\", ctx.isUntouched)(\"ng-touched\", ctx.isTouched)(\"ng-pristine\", ctx.isPristine)(\"ng-dirty\", ctx.isDirty)(\"ng-valid\", ctx.isValid)(\"ng-invalid\", ctx.isInvalid)(\"ng-pending\", ctx.isPending)(\"ng-submitted\", ctx.isSubmitted);\n }\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgControlStatusGroup, [{\n type: Directive,\n args: [{\n selector: '[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]',\n host: ngGroupStatusHost\n }]\n }], () => [{\n type: ControlContainer,\n decorators: [{\n type: Optional\n }, {\n type: Self\n }]\n }], null);\n})();\nconst formControlNameExample = `\n \n \n \n\n In your class:\n\n this.myGroup = new FormGroup({\n firstName: new FormControl()\n });`;\nconst formGroupNameExample = `\n \n \n \n \n \n\n In your class:\n\n this.myGroup = new FormGroup({\n person: new FormGroup({ firstName: new FormControl() })\n });`;\nconst formArrayNameExample = `\n \n \n \n \n \n \n \n\n In your class:\n\n this.cityArray = new FormArray([new FormControl('SF')]);\n this.myGroup = new FormGroup({\n cities: this.cityArray\n });`;\nconst ngModelGroupExample = `\n \n \n \n \n `;\nconst ngModelWithFormGroupExample = `\n \n \n \n \n`;\nfunction controlParentException(nameOrIndex) {\n return new ɵRuntimeError(1050 /* RuntimeErrorCode.FORM_CONTROL_NAME_MISSING_PARENT */, `formControlName must be used with a parent formGroup directive. You'll want to add a formGroup\n directive and pass it an existing FormGroup instance (you can create one in your class).\n\n ${describeFormControl(nameOrIndex)}\n\n Example:\n\n ${formControlNameExample}`);\n}\nfunction describeFormControl(nameOrIndex) {\n if (nameOrIndex == null || nameOrIndex === '') {\n return '';\n }\n const valueType = typeof nameOrIndex === 'string' ? 'name' : 'index';\n return `Affected Form Control ${valueType}: \"${nameOrIndex}\"`;\n}\nfunction ngModelGroupException() {\n return new ɵRuntimeError(1051 /* RuntimeErrorCode.FORM_CONTROL_NAME_INSIDE_MODEL_GROUP */, `formControlName cannot be used with an ngModelGroup parent. It is only compatible with parents\n that also have a \"form\" prefix: formGroupName, formArrayName, or formGroup.\n\n Option 1: Update the parent to be formGroupName (reactive form strategy)\n\n ${formGroupNameExample}\n\n Option 2: Use ngModel instead of formControlName (template-driven strategy)\n\n ${ngModelGroupExample}`);\n}\nfunction missingFormException() {\n return new ɵRuntimeError(1052 /* RuntimeErrorCode.FORM_GROUP_MISSING_INSTANCE */, `formGroup expects a FormGroup instance. Please pass one in.\n\n Example:\n\n ${formControlNameExample}`);\n}\nfunction groupParentException() {\n return new ɵRuntimeError(1053 /* RuntimeErrorCode.FORM_GROUP_NAME_MISSING_PARENT */, `formGroupName must be used with a parent formGroup directive. You'll want to add a formGroup\n directive and pass it an existing FormGroup instance (you can create one in your class).\n\n Example:\n\n ${formGroupNameExample}`);\n}\nfunction arrayParentException() {\n return new ɵRuntimeError(1054 /* RuntimeErrorCode.FORM_ARRAY_NAME_MISSING_PARENT */, `formArrayName must be used with a parent formGroup directive. You'll want to add a formGroup\n directive and pass it an existing FormGroup instance (you can create one in your class).\n\n Example:\n\n ${formArrayNameExample}`);\n}\nconst disabledAttrWarning = `\n It looks like you're using the disabled attribute with a reactive form directive. If you set disabled to true\n when you set up this control in your component class, the disabled attribute will actually be set in the DOM for\n you. We recommend using this approach to avoid 'changed after checked' errors.\n\n Example:\n // Specify the \\`disabled\\` property at control creation time:\n form = new FormGroup({\n first: new FormControl({value: 'Nancy', disabled: true}, Validators.required),\n last: new FormControl('Drew', Validators.required)\n });\n\n // Controls can also be enabled/disabled after creation:\n form.get('first')?.enable();\n form.get('last')?.disable();\n`;\nconst asyncValidatorsDroppedWithOptsWarning = `\n It looks like you're constructing using a FormControl with both an options argument and an\n async validators argument. Mixing these arguments will cause your async validators to be dropped.\n You should either put all your validators in the options object, or in separate validators\n arguments. For example:\n\n // Using validators arguments\n fc = new FormControl(42, Validators.required, myAsyncValidator);\n\n // Using AbstractControlOptions\n fc = new FormControl(42, {validators: Validators.required, asyncValidators: myAV});\n\n // Do NOT mix them: async validators will be dropped!\n fc = new FormControl(42, {validators: Validators.required}, /* Oops! */ myAsyncValidator);\n`;\nfunction ngModelWarning(directiveName) {\n return `\n It looks like you're using ngModel on the same form field as ${directiveName}.\n Support for using the ngModel input property and ngModelChange event with\n reactive form directives has been deprecated in Angular v6 and will be removed\n in a future version of Angular.\n\n For more information on this, see our API docs here:\n https://angular.io/api/forms/${directiveName === 'formControl' ? 'FormControlDirective' : 'FormControlName'}#use-with-ngmodel\n `;\n}\nfunction describeKey(isFormGroup, key) {\n return isFormGroup ? `with name: '${key}'` : `at index: ${key}`;\n}\nfunction noControlsError(isFormGroup) {\n return `\n There are no form controls registered with this ${isFormGroup ? 'group' : 'array'} yet. If you're using ngModel,\n you may want to check next tick (e.g. use setTimeout).\n `;\n}\nfunction missingControlError(isFormGroup, key) {\n return `Cannot find form control ${describeKey(isFormGroup, key)}`;\n}\nfunction missingControlValueError(isFormGroup, key) {\n return `Must supply a value for form control ${describeKey(isFormGroup, key)}`;\n}\n\n/**\n * Reports that a control is valid, meaning that no errors exist in the input value.\n *\n * @see {@link status}\n */\nconst VALID = 'VALID';\n/**\n * Reports that a control is invalid, meaning that an error exists in the input value.\n *\n * @see {@link status}\n */\nconst INVALID = 'INVALID';\n/**\n * Reports that a control is pending, meaning that async validation is occurring and\n * errors are not yet available for the input value.\n *\n * @see {@link markAsPending}\n * @see {@link status}\n */\nconst PENDING = 'PENDING';\n/**\n * Reports that a control is disabled, meaning that the control is exempt from ancestor\n * calculations of validity or value.\n *\n * @see {@link markAsDisabled}\n * @see {@link status}\n */\nconst DISABLED = 'DISABLED';\n/**\n * Base class for every event sent by `AbstractControl.events()`\n *\n * @publicApi\n */\nclass ControlEvent {}\n/**\n * Event fired when the value of a control changes.\n *\n * @publicApi\n */\nclass ValueChangeEvent extends ControlEvent {\n constructor(value, source) {\n super();\n this.value = value;\n this.source = source;\n }\n}\n/**\n * Event fired when the control's pristine state changes (pristine <=> dirty).\n *\n * @publicApi */\nclass PristineChangeEvent extends ControlEvent {\n constructor(pristine, source) {\n super();\n this.pristine = pristine;\n this.source = source;\n }\n}\n/**\n * Event fired when the control's touched status changes (touched <=> untouched).\n *\n * @publicApi\n */\nclass TouchedChangeEvent extends ControlEvent {\n constructor(touched, source) {\n super();\n this.touched = touched;\n this.source = source;\n }\n}\n/**\n * Event fired when the control's status changes.\n *\n * @publicApi\n */\nclass StatusChangeEvent extends ControlEvent {\n constructor(status, source) {\n super();\n this.status = status;\n this.source = source;\n }\n}\n/**\n * Event fired when a form is submitted\n *\n * @publicApi\n */\nclass FormSubmittedEvent extends ControlEvent {\n constructor(source) {\n super();\n this.source = source;\n }\n}\n/**\n * Event fired when a form is reset.\n *\n * @publicApi\n */\nclass FormResetEvent extends ControlEvent {\n constructor(source) {\n super();\n this.source = source;\n }\n}\n/**\n * Gets validators from either an options object or given validators.\n */\nfunction pickValidators(validatorOrOpts) {\n return (isOptionsObj(validatorOrOpts) ? validatorOrOpts.validators : validatorOrOpts) || null;\n}\n/**\n * Creates validator function by combining provided validators.\n */\nfunction coerceToValidator(validator) {\n return Array.isArray(validator) ? composeValidators(validator) : validator || null;\n}\n/**\n * Gets async validators from either an options object or given validators.\n */\nfunction pickAsyncValidators(asyncValidator, validatorOrOpts) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (isOptionsObj(validatorOrOpts) && asyncValidator) {\n console.warn(asyncValidatorsDroppedWithOptsWarning);\n }\n }\n return (isOptionsObj(validatorOrOpts) ? validatorOrOpts.asyncValidators : asyncValidator) || null;\n}\n/**\n * Creates async validator function by combining provided async validators.\n */\nfunction coerceToAsyncValidator(asyncValidator) {\n return Array.isArray(asyncValidator) ? composeAsyncValidators(asyncValidator) : asyncValidator || null;\n}\nfunction isOptionsObj(validatorOrOpts) {\n return validatorOrOpts != null && !Array.isArray(validatorOrOpts) && typeof validatorOrOpts === 'object';\n}\nfunction assertControlPresent(parent, isGroup, key) {\n const controls = parent.controls;\n const collection = isGroup ? Object.keys(controls) : controls;\n if (!collection.length) {\n throw new ɵRuntimeError(1000 /* RuntimeErrorCode.NO_CONTROLS */, typeof ngDevMode === 'undefined' || ngDevMode ? noControlsError(isGroup) : '');\n }\n if (!controls[key]) {\n throw new ɵRuntimeError(1001 /* RuntimeErrorCode.MISSING_CONTROL */, typeof ngDevMode === 'undefined' || ngDevMode ? missingControlError(isGroup, key) : '');\n }\n}\nfunction assertAllValuesPresent(control, isGroup, value) {\n control._forEachChild((_, key) => {\n if (value[key] === undefined) {\n throw new ɵRuntimeError(1002 /* RuntimeErrorCode.MISSING_CONTROL_VALUE */, typeof ngDevMode === 'undefined' || ngDevMode ? missingControlValueError(isGroup, key) : '');\n }\n });\n}\n/**\n * This is the base class for `FormControl`, `FormGroup`, and `FormArray`.\n *\n * It provides some of the shared behavior that all controls and groups of controls have, like\n * running validators, calculating status, and resetting state. It also defines the properties\n * that are shared between all sub-classes, like `value`, `valid`, and `dirty`. It shouldn't be\n * instantiated directly.\n *\n * The first type parameter TValue represents the value type of the control (`control.value`).\n * The optional type parameter TRawValue represents the raw value type (`control.getRawValue()`).\n *\n * @see [Forms Guide](guide/forms)\n * @see [Reactive Forms Guide](guide/forms/reactive-forms)\n * @see [Dynamic Forms Guide](guide/forms/dynamic-forms)\n *\n * @publicApi\n */\nclass AbstractControl {\n /**\n * Initialize the AbstractControl instance.\n *\n * @param validators The function or array of functions that is used to determine the validity of\n * this control synchronously.\n * @param asyncValidators The function or array of functions that is used to determine validity of\n * this control asynchronously.\n */\n constructor(validators, asyncValidators) {\n /** @internal */\n this._pendingDirty = false;\n /**\n * Indicates that a control has its own pending asynchronous validation in progress.\n * It also stores if the control should emit events when the validation status changes.\n *\n * @internal\n */\n this._hasOwnPendingAsyncValidator = null;\n /** @internal */\n this._pendingTouched = false;\n /** @internal */\n this._onCollectionChange = () => {};\n this._parent = null;\n /** @internal */\n this._status = computed(() => this.statusReactive());\n this.statusReactive = signal(undefined);\n /** @internal */\n this._pristine = computed(() => this.pristineReactive());\n this.pristineReactive = signal(true);\n /** @internal */\n this._touched = computed(() => this.touchedReactive());\n this.touchedReactive = signal(false);\n /**\n * Exposed as observable, see below.\n *\n * @internal\n */\n this._events = new Subject();\n /**\n * A multicasting observable that emits an event every time the state of the control changes.\n * It emits for value, status, pristine or touched changes.\n *\n * **Note**: On value change, the emit happens right after a value of this control is updated. The\n * value of a parent control (for example if this FormControl is a part of a FormGroup) is updated\n * later, so accessing a value of a parent control (using the `value` property) from the callback\n * of this event might result in getting a value that has not been updated yet. Subscribe to the\n * `events` of the parent control instead.\n * For other event types, the events are emitted after the parent control has been updated.\n *\n */\n this.events = this._events.asObservable();\n /** @internal */\n this._onDisabledChange = [];\n this._assignValidators(validators);\n this._assignAsyncValidators(asyncValidators);\n }\n /**\n * Returns the function that is used to determine the validity of this control synchronously.\n * If multiple validators have been added, this will be a single composed function.\n * See `Validators.compose()` for additional information.\n */\n get validator() {\n return this._composedValidatorFn;\n }\n set validator(validatorFn) {\n this._rawValidators = this._composedValidatorFn = validatorFn;\n }\n /**\n * Returns the function that is used to determine the validity of this control asynchronously.\n * If multiple validators have been added, this will be a single composed function.\n * See `Validators.compose()` for additional information.\n */\n get asyncValidator() {\n return this._composedAsyncValidatorFn;\n }\n set asyncValidator(asyncValidatorFn) {\n this._rawAsyncValidators = this._composedAsyncValidatorFn = asyncValidatorFn;\n }\n /**\n * The parent control.\n */\n get parent() {\n return this._parent;\n }\n /**\n * The validation status of the control.\n *\n * @see {@link FormControlStatus}\n *\n * These status values are mutually exclusive, so a control cannot be\n * both valid AND invalid or invalid AND disabled.\n */\n get status() {\n return untracked(this.statusReactive);\n }\n set status(v) {\n untracked(() => this.statusReactive.set(v));\n }\n /**\n * A control is `valid` when its `status` is `VALID`.\n *\n * @see {@link AbstractControl.status}\n *\n * @returns True if the control has passed all of its validation tests,\n * false otherwise.\n */\n get valid() {\n return this.status === VALID;\n }\n /**\n * A control is `invalid` when its `status` is `INVALID`.\n *\n * @see {@link AbstractControl.status}\n *\n * @returns True if this control has failed one or more of its validation checks,\n * false otherwise.\n */\n get invalid() {\n return this.status === INVALID;\n }\n /**\n * A control is `pending` when its `status` is `PENDING`.\n *\n * @see {@link AbstractControl.status}\n *\n * @returns True if this control is in the process of conducting a validation check,\n * false otherwise.\n */\n get pending() {\n return this.status == PENDING;\n }\n /**\n * A control is `disabled` when its `status` is `DISABLED`.\n *\n * Disabled controls are exempt from validation checks and\n * are not included in the aggregate value of their ancestor\n * controls.\n *\n * @see {@link AbstractControl.status}\n *\n * @returns True if the control is disabled, false otherwise.\n */\n get disabled() {\n return this.status === DISABLED;\n }\n /**\n * A control is `enabled` as long as its `status` is not `DISABLED`.\n *\n * @returns True if the control has any status other than 'DISABLED',\n * false if the status is 'DISABLED'.\n *\n * @see {@link AbstractControl.status}\n *\n */\n get enabled() {\n return this.status !== DISABLED;\n }\n /**\n * A control is `pristine` if the user has not yet changed\n * the value in the UI.\n *\n * @returns True if the user has not yet changed the value in the UI; compare `dirty`.\n * Programmatic changes to a control's value do not mark it dirty.\n */\n get pristine() {\n return untracked(this.pristineReactive);\n }\n set pristine(v) {\n untracked(() => this.pristineReactive.set(v));\n }\n /**\n * A control is `dirty` if the user has changed the value\n * in the UI.\n *\n * @returns True if the user has changed the value of this control in the UI; compare `pristine`.\n * Programmatic changes to a control's value do not mark it dirty.\n */\n get dirty() {\n return !this.pristine;\n }\n /**\n * True if the control is marked as `touched`.\n *\n * A control is marked `touched` once the user has triggered\n * a `blur` event on it.\n */\n get touched() {\n return untracked(this.touchedReactive);\n }\n set touched(v) {\n untracked(() => this.touchedReactive.set(v));\n }\n /**\n * True if the control has not been marked as touched\n *\n * A control is `untouched` if the user has not yet triggered\n * a `blur` event on it.\n */\n get untouched() {\n return !this.touched;\n }\n /**\n * Reports the update strategy of the `AbstractControl` (meaning\n * the event on which the control updates itself).\n * Possible values: `'change'` | `'blur'` | `'submit'`\n * Default value: `'change'`\n */\n get updateOn() {\n return this._updateOn ? this._updateOn : this.parent ? this.parent.updateOn : 'change';\n }\n /**\n * Sets the synchronous validators that are active on this control. Calling\n * this overwrites any existing synchronous validators.\n *\n * When you add or remove a validator at run time, you must call\n * `updateValueAndValidity()` for the new validation to take effect.\n *\n * If you want to add a new validator without affecting existing ones, consider\n * using `addValidators()` method instead.\n */\n setValidators(validators) {\n this._assignValidators(validators);\n }\n /**\n * Sets the asynchronous validators that are active on this control. Calling this\n * overwrites any existing asynchronous validators.\n *\n * When you add or remove a validator at run time, you must call\n * `updateValueAndValidity()` for the new validation to take effect.\n *\n * If you want to add a new validator without affecting existing ones, consider\n * using `addAsyncValidators()` method instead.\n */\n setAsyncValidators(validators) {\n this._assignAsyncValidators(validators);\n }\n /**\n * Add a synchronous validator or validators to this control, without affecting other validators.\n *\n * When you add or remove a validator at run time, you must call\n * `updateValueAndValidity()` for the new validation to take effect.\n *\n * Adding a validator that already exists will have no effect. If duplicate validator functions\n * are present in the `validators` array, only the first instance would be added to a form\n * control.\n *\n * @param validators The new validator function or functions to add to this control.\n */\n addValidators(validators) {\n this.setValidators(addValidators(validators, this._rawValidators));\n }\n /**\n * Add an asynchronous validator or validators to this control, without affecting other\n * validators.\n *\n * When you add or remove a validator at run time, you must call\n * `updateValueAndValidity()` for the new validation to take effect.\n *\n * Adding a validator that already exists will have no effect.\n *\n * @param validators The new asynchronous validator function or functions to add to this control.\n */\n addAsyncValidators(validators) {\n this.setAsyncValidators(addValidators(validators, this._rawAsyncValidators));\n }\n /**\n * Remove a synchronous validator from this control, without affecting other validators.\n * Validators are compared by function reference; you must pass a reference to the exact same\n * validator function as the one that was originally set. If a provided validator is not found,\n * it is ignored.\n *\n * @usageNotes\n *\n * ### Reference to a ValidatorFn\n *\n * ```\n * // Reference to the RequiredValidator\n * const ctrl = new FormControl('', Validators.required);\n * ctrl.removeValidators(Validators.required);\n *\n * // Reference to anonymous function inside MinValidator\n * const minValidator = Validators.min(3);\n * const ctrl = new FormControl('', minValidator);\n * expect(ctrl.hasValidator(minValidator)).toEqual(true)\n * expect(ctrl.hasValidator(Validators.min(3))).toEqual(false)\n *\n * ctrl.removeValidators(minValidator);\n * ```\n *\n * When you add or remove a validator at run time, you must call\n * `updateValueAndValidity()` for the new validation to take effect.\n *\n * @param validators The validator or validators to remove.\n */\n removeValidators(validators) {\n this.setValidators(removeValidators(validators, this._rawValidators));\n }\n /**\n * Remove an asynchronous validator from this control, without affecting other validators.\n * Validators are compared by function reference; you must pass a reference to the exact same\n * validator function as the one that was originally set. If a provided validator is not found, it\n * is ignored.\n *\n * When you add or remove a validator at run time, you must call\n * `updateValueAndValidity()` for the new validation to take effect.\n *\n * @param validators The asynchronous validator or validators to remove.\n */\n removeAsyncValidators(validators) {\n this.setAsyncValidators(removeValidators(validators, this._rawAsyncValidators));\n }\n /**\n * Check whether a synchronous validator function is present on this control. The provided\n * validator must be a reference to the exact same function that was provided.\n *\n * @usageNotes\n *\n * ### Reference to a ValidatorFn\n *\n * ```\n * // Reference to the RequiredValidator\n * const ctrl = new FormControl(0, Validators.required);\n * expect(ctrl.hasValidator(Validators.required)).toEqual(true)\n *\n * // Reference to anonymous function inside MinValidator\n * const minValidator = Validators.min(3);\n * const ctrl = new FormControl(0, minValidator);\n * expect(ctrl.hasValidator(minValidator)).toEqual(true)\n * expect(ctrl.hasValidator(Validators.min(3))).toEqual(false)\n * ```\n *\n * @param validator The validator to check for presence. Compared by function reference.\n * @returns Whether the provided validator was found on this control.\n */\n hasValidator(validator) {\n return hasValidator(this._rawValidators, validator);\n }\n /**\n * Check whether an asynchronous validator function is present on this control. The provided\n * validator must be a reference to the exact same function that was provided.\n *\n * @param validator The asynchronous validator to check for presence. Compared by function\n * reference.\n * @returns Whether the provided asynchronous validator was found on this control.\n */\n hasAsyncValidator(validator) {\n return hasValidator(this._rawAsyncValidators, validator);\n }\n /**\n * Empties out the synchronous validator list.\n *\n * When you add or remove a validator at run time, you must call\n * `updateValueAndValidity()` for the new validation to take effect.\n *\n */\n clearValidators() {\n this.validator = null;\n }\n /**\n * Empties out the async validator list.\n *\n * When you add or remove a validator at run time, you must call\n * `updateValueAndValidity()` for the new validation to take effect.\n *\n */\n clearAsyncValidators() {\n this.asyncValidator = null;\n }\n markAsTouched(opts = {}) {\n const changed = this.touched === false;\n this.touched = true;\n const sourceControl = opts.sourceControl ?? this;\n if (this._parent && !opts.onlySelf) {\n this._parent.markAsTouched({\n ...opts,\n sourceControl\n });\n }\n if (changed && opts.emitEvent !== false) {\n this._events.next(new TouchedChangeEvent(true, sourceControl));\n }\n }\n /**\n * Marks the control and all its descendant controls as `touched`.\n * @see {@link markAsTouched()}\n *\n * @param opts Configuration options that determine how the control propagates changes\n * and emits events after marking is applied.\n * * `emitEvent`: When true or not supplied (the default), the `events`\n * observable emits a `TouchedChangeEvent` with the `touched` property being `true`.\n * When false, no events are emitted.\n */\n markAllAsTouched(opts = {}) {\n this.markAsTouched({\n onlySelf: true,\n emitEvent: opts.emitEvent,\n sourceControl: this\n });\n this._forEachChild(control => control.markAllAsTouched(opts));\n }\n markAsUntouched(opts = {}) {\n const changed = this.touched === true;\n this.touched = false;\n this._pendingTouched = false;\n const sourceControl = opts.sourceControl ?? this;\n this._forEachChild(control => {\n control.markAsUntouched({\n onlySelf: true,\n emitEvent: opts.emitEvent,\n sourceControl\n });\n });\n if (this._parent && !opts.onlySelf) {\n this._parent._updateTouched(opts, sourceControl);\n }\n if (changed && opts.emitEvent !== false) {\n this._events.next(new TouchedChangeEvent(false, sourceControl));\n }\n }\n markAsDirty(opts = {}) {\n const changed = this.pristine === true;\n this.pristine = false;\n const sourceControl = opts.sourceControl ?? this;\n if (this._parent && !opts.onlySelf) {\n this._parent.markAsDirty({\n ...opts,\n sourceControl\n });\n }\n if (changed && opts.emitEvent !== false) {\n this._events.next(new PristineChangeEvent(false, sourceControl));\n }\n }\n markAsPristine(opts = {}) {\n const changed = this.pristine === false;\n this.pristine = true;\n this._pendingDirty = false;\n const sourceControl = opts.sourceControl ?? this;\n this._forEachChild(control => {\n /** We don't propagate the source control downwards */\n control.markAsPristine({\n onlySelf: true,\n emitEvent: opts.emitEvent\n });\n });\n if (this._parent && !opts.onlySelf) {\n this._parent._updatePristine(opts, sourceControl);\n }\n if (changed && opts.emitEvent !== false) {\n this._events.next(new PristineChangeEvent(true, sourceControl));\n }\n }\n markAsPending(opts = {}) {\n this.status = PENDING;\n const sourceControl = opts.sourceControl ?? this;\n if (opts.emitEvent !== false) {\n this._events.next(new StatusChangeEvent(this.status, sourceControl));\n this.statusChanges.emit(this.status);\n }\n if (this._parent && !opts.onlySelf) {\n this._parent.markAsPending({\n ...opts,\n sourceControl\n });\n }\n }\n disable(opts = {}) {\n // If parent has been marked artificially dirty we don't want to re-calculate the\n // parent's dirtiness based on the children.\n const skipPristineCheck = this._parentMarkedDirty(opts.onlySelf);\n this.status = DISABLED;\n this.errors = null;\n this._forEachChild(control => {\n /** We don't propagate the source control downwards */\n control.disable({\n ...opts,\n onlySelf: true\n });\n });\n this._updateValue();\n const sourceControl = opts.sourceControl ?? this;\n if (opts.emitEvent !== false) {\n this._events.next(new ValueChangeEvent(this.value, sourceControl));\n this._events.next(new StatusChangeEvent(this.status, sourceControl));\n this.valueChanges.emit(this.value);\n this.statusChanges.emit(this.status);\n }\n this._updateAncestors({\n ...opts,\n skipPristineCheck\n }, this);\n this._onDisabledChange.forEach(changeFn => changeFn(true));\n }\n /**\n * Enables the control. This means the control is included in validation checks and\n * the aggregate value of its parent. Its status recalculates based on its value and\n * its validators.\n *\n * By default, if the control has children, all children are enabled.\n *\n * @see {@link AbstractControl.status}\n *\n * @param opts Configure options that control how the control propagates changes and\n * emits events when marked as untouched\n * * `onlySelf`: When true, mark only this control. When false or not supplied,\n * marks all direct ancestors. Default is false.\n * * `emitEvent`: When true or not supplied (the default), the `statusChanges`,\n * `valueChanges` and `events`\n * observables emit events with the latest status and value when the control is enabled.\n * When false, no events are emitted.\n */\n enable(opts = {}) {\n // If parent has been marked artificially dirty we don't want to re-calculate the\n // parent's dirtiness based on the children.\n const skipPristineCheck = this._parentMarkedDirty(opts.onlySelf);\n this.status = VALID;\n this._forEachChild(control => {\n control.enable({\n ...opts,\n onlySelf: true\n });\n });\n this.updateValueAndValidity({\n onlySelf: true,\n emitEvent: opts.emitEvent\n });\n this._updateAncestors({\n ...opts,\n skipPristineCheck\n }, this);\n this._onDisabledChange.forEach(changeFn => changeFn(false));\n }\n _updateAncestors(opts, sourceControl) {\n if (this._parent && !opts.onlySelf) {\n this._parent.updateValueAndValidity(opts);\n if (!opts.skipPristineCheck) {\n this._parent._updatePristine({}, sourceControl);\n }\n this._parent._updateTouched({}, sourceControl);\n }\n }\n /**\n * Sets the parent of the control\n *\n * @param parent The new parent.\n */\n setParent(parent) {\n this._parent = parent;\n }\n /**\n * The raw value of this control. For most control implementations, the raw value will include\n * disabled children.\n */\n getRawValue() {\n return this.value;\n }\n updateValueAndValidity(opts = {}) {\n this._setInitialStatus();\n this._updateValue();\n if (this.enabled) {\n const shouldHaveEmitted = this._cancelExistingSubscription();\n this.errors = this._runValidator();\n this.status = this._calculateStatus();\n if (this.status === VALID || this.status === PENDING) {\n // If the canceled subscription should have emitted\n // we make sure the async validator emits the status change on completion\n this._runAsyncValidator(shouldHaveEmitted, opts.emitEvent);\n }\n }\n const sourceControl = opts.sourceControl ?? this;\n if (opts.emitEvent !== false) {\n this._events.next(new ValueChangeEvent(this.value, sourceControl));\n this._events.next(new StatusChangeEvent(this.status, sourceControl));\n this.valueChanges.emit(this.value);\n this.statusChanges.emit(this.status);\n }\n if (this._parent && !opts.onlySelf) {\n this._parent.updateValueAndValidity({\n ...opts,\n sourceControl\n });\n }\n }\n /** @internal */\n _updateTreeValidity(opts = {\n emitEvent: true\n }) {\n this._forEachChild(ctrl => ctrl._updateTreeValidity(opts));\n this.updateValueAndValidity({\n onlySelf: true,\n emitEvent: opts.emitEvent\n });\n }\n _setInitialStatus() {\n this.status = this._allControlsDisabled() ? DISABLED : VALID;\n }\n _runValidator() {\n return this.validator ? this.validator(this) : null;\n }\n _runAsyncValidator(shouldHaveEmitted, emitEvent) {\n if (this.asyncValidator) {\n this.status = PENDING;\n this._hasOwnPendingAsyncValidator = {\n emitEvent: emitEvent !== false\n };\n const obs = toObservable(this.asyncValidator(this));\n this._asyncValidationSubscription = obs.subscribe(errors => {\n this._hasOwnPendingAsyncValidator = null;\n // This will trigger the recalculation of the validation status, which depends on\n // the state of the asynchronous validation (whether it is in progress or not). So, it is\n // necessary that we have updated the `_hasOwnPendingAsyncValidator` boolean flag first.\n this.setErrors(errors, {\n emitEvent,\n shouldHaveEmitted\n });\n });\n }\n }\n _cancelExistingSubscription() {\n if (this._asyncValidationSubscription) {\n this._asyncValidationSubscription.unsubscribe();\n // we're cancelling the validator subscribtion, we keep if it should have emitted\n // because we want to emit eventually if it was required at least once.\n const shouldHaveEmitted = this._hasOwnPendingAsyncValidator?.emitEvent ?? false;\n this._hasOwnPendingAsyncValidator = null;\n return shouldHaveEmitted;\n }\n return false;\n }\n setErrors(errors, opts = {}) {\n this.errors = errors;\n this._updateControlsErrors(opts.emitEvent !== false, this, opts.shouldHaveEmitted);\n }\n /**\n * Retrieves a child control given the control's name or path.\n *\n * @param path A dot-delimited string or array of string/number values that define the path to the\n * control. If a string is provided, passing it as a string literal will result in improved type\n * information. Likewise, if an array is provided, passing it `as const` will cause improved type\n * information to be available.\n *\n * @usageNotes\n * ### Retrieve a nested control\n *\n * For example, to get a `name` control nested within a `person` sub-group:\n *\n * * `this.form.get('person.name');`\n *\n * -OR-\n *\n * * `this.form.get(['person', 'name'] as const);` // `as const` gives improved typings\n *\n * ### Retrieve a control in a FormArray\n *\n * When accessing an element inside a FormArray, you can use an element index.\n * For example, to get a `price` control from the first element in an `items` array you can use:\n *\n * * `this.form.get('items.0.price');`\n *\n * -OR-\n *\n * * `this.form.get(['items', 0, 'price']);`\n */\n get(path) {\n let currPath = path;\n if (currPath == null) return null;\n if (!Array.isArray(currPath)) currPath = currPath.split('.');\n if (currPath.length === 0) return null;\n return currPath.reduce((control, name) => control && control._find(name), this);\n }\n /**\n * @description\n * Reports error data for the control with the given path.\n *\n * @param errorCode The code of the error to check\n * @param path A list of control names that designates how to move from the current control\n * to the control that should be queried for errors.\n *\n * @usageNotes\n * For example, for the following `FormGroup`:\n *\n * ```\n * form = new FormGroup({\n * address: new FormGroup({ street: new FormControl() })\n * });\n * ```\n *\n * The path to the 'street' control from the root form would be 'address' -> 'street'.\n *\n * It can be provided to this method in one of two formats:\n *\n * 1. An array of string control names, e.g. `['address', 'street']`\n * 1. A period-delimited list of control names in one string, e.g. `'address.street'`\n *\n * @returns error data for that particular error. If the control or error is not present,\n * null is returned.\n */\n getError(errorCode, path) {\n const control = path ? this.get(path) : this;\n return control && control.errors ? control.errors[errorCode] : null;\n }\n /**\n * @description\n * Reports whether the control with the given path has the error specified.\n *\n * @param errorCode The code of the error to check\n * @param path A list of control names that designates how to move from the current control\n * to the control that should be queried for errors.\n *\n * @usageNotes\n * For example, for the following `FormGroup`:\n *\n * ```\n * form = new FormGroup({\n * address: new FormGroup({ street: new FormControl() })\n * });\n * ```\n *\n * The path to the 'street' control from the root form would be 'address' -> 'street'.\n *\n * It can be provided to this method in one of two formats:\n *\n * 1. An array of string control names, e.g. `['address', 'street']`\n * 1. A period-delimited list of control names in one string, e.g. `'address.street'`\n *\n * If no path is given, this method checks for the error on the current control.\n *\n * @returns whether the given error is present in the control at the given path.\n *\n * If the control is not present, false is returned.\n */\n hasError(errorCode, path) {\n return !!this.getError(errorCode, path);\n }\n /**\n * Retrieves the top-level ancestor of this control.\n */\n get root() {\n let x = this;\n while (x._parent) {\n x = x._parent;\n }\n return x;\n }\n /** @internal */\n _updateControlsErrors(emitEvent, changedControl, shouldHaveEmitted) {\n this.status = this._calculateStatus();\n if (emitEvent) {\n this.statusChanges.emit(this.status);\n }\n // The Events Observable expose a slight different bevahior than the statusChanges obs\n // An async validator will still emit a StatusChangeEvent is a previously cancelled\n // async validator has emitEvent set to true\n if (emitEvent || shouldHaveEmitted) {\n this._events.next(new StatusChangeEvent(this.status, changedControl));\n }\n if (this._parent) {\n this._parent._updateControlsErrors(emitEvent, changedControl, shouldHaveEmitted);\n }\n }\n /** @internal */\n _initObservables() {\n this.valueChanges = new EventEmitter();\n this.statusChanges = new EventEmitter();\n }\n _calculateStatus() {\n if (this._allControlsDisabled()) return DISABLED;\n if (this.errors) return INVALID;\n if (this._hasOwnPendingAsyncValidator || this._anyControlsHaveStatus(PENDING)) return PENDING;\n if (this._anyControlsHaveStatus(INVALID)) return INVALID;\n return VALID;\n }\n /** @internal */\n _anyControlsHaveStatus(status) {\n return this._anyControls(control => control.status === status);\n }\n /** @internal */\n _anyControlsDirty() {\n return this._anyControls(control => control.dirty);\n }\n /** @internal */\n _anyControlsTouched() {\n return this._anyControls(control => control.touched);\n }\n /** @internal */\n _updatePristine(opts, changedControl) {\n const newPristine = !this._anyControlsDirty();\n const changed = this.pristine !== newPristine;\n this.pristine = newPristine;\n if (this._parent && !opts.onlySelf) {\n this._parent._updatePristine(opts, changedControl);\n }\n if (changed) {\n this._events.next(new PristineChangeEvent(this.pristine, changedControl));\n }\n }\n /** @internal */\n _updateTouched(opts = {}, changedControl) {\n this.touched = this._anyControlsTouched();\n this._events.next(new TouchedChangeEvent(this.touched, changedControl));\n if (this._parent && !opts.onlySelf) {\n this._parent._updateTouched(opts, changedControl);\n }\n }\n /** @internal */\n _registerOnCollectionChange(fn) {\n this._onCollectionChange = fn;\n }\n /** @internal */\n _setUpdateStrategy(opts) {\n if (isOptionsObj(opts) && opts.updateOn != null) {\n this._updateOn = opts.updateOn;\n }\n }\n /**\n * Check to see if parent has been marked artificially dirty.\n *\n * @internal\n */\n _parentMarkedDirty(onlySelf) {\n const parentDirty = this._parent && this._parent.dirty;\n return !onlySelf && !!parentDirty && !this._parent._anyControlsDirty();\n }\n /** @internal */\n _find(name) {\n return null;\n }\n /**\n * Internal implementation of the `setValidators` method. Needs to be separated out into a\n * different method, because it is called in the constructor and it can break cases where\n * a control is extended.\n */\n _assignValidators(validators) {\n this._rawValidators = Array.isArray(validators) ? validators.slice() : validators;\n this._composedValidatorFn = coerceToValidator(this._rawValidators);\n }\n /**\n * Internal implementation of the `setAsyncValidators` method. Needs to be separated out into a\n * different method, because it is called in the constructor and it can break cases where\n * a control is extended.\n */\n _assignAsyncValidators(validators) {\n this._rawAsyncValidators = Array.isArray(validators) ? validators.slice() : validators;\n this._composedAsyncValidatorFn = coerceToAsyncValidator(this._rawAsyncValidators);\n }\n}\n\n/**\n * Tracks the value and validity state of a group of `FormControl` instances.\n *\n * A `FormGroup` aggregates the values of each child `FormControl` into one object,\n * with each control name as the key. It calculates its status by reducing the status values\n * of its children. For example, if one of the controls in a group is invalid, the entire\n * group becomes invalid.\n *\n * `FormGroup` is one of the four fundamental building blocks used to define forms in Angular,\n * along with `FormControl`, `FormArray`, and `FormRecord`.\n *\n * When instantiating a `FormGroup`, pass in a collection of child controls as the first\n * argument. The key for each child registers the name for the control.\n *\n * `FormGroup` is intended for use cases where the keys are known ahead of time.\n * If you need to dynamically add and remove controls, use {@link FormRecord} instead.\n *\n * `FormGroup` accepts an optional type parameter `TControl`, which is an object type with inner\n * control types as values.\n *\n * @usageNotes\n *\n * ### Create a form group with 2 controls\n *\n * ```\n * const form = new FormGroup({\n * first: new FormControl('Nancy', Validators.minLength(2)),\n * last: new FormControl('Drew'),\n * });\n *\n * console.log(form.value); // {first: 'Nancy', last; 'Drew'}\n * console.log(form.status); // 'VALID'\n * ```\n *\n * ### The type argument, and optional controls\n *\n * `FormGroup` accepts one generic argument, which is an object containing its inner controls.\n * This type will usually be inferred automatically, but you can always specify it explicitly if you\n * wish.\n *\n * If you have controls that are optional (i.e. they can be removed, you can use the `?` in the\n * type):\n *\n * ```\n * const form = new FormGroup<{\n * first: FormControl,\n * middle?: FormControl, // Middle name is optional.\n * last: FormControl,\n * }>({\n * first: new FormControl('Nancy'),\n * last: new FormControl('Drew'),\n * });\n * ```\n *\n * ### Create a form group with a group-level validator\n *\n * You include group-level validators as the second arg, or group-level async\n * validators as the third arg. These come in handy when you want to perform validation\n * that considers the value of more than one child control.\n *\n * ```\n * const form = new FormGroup({\n * password: new FormControl('', Validators.minLength(2)),\n * passwordConfirm: new FormControl('', Validators.minLength(2)),\n * }, passwordMatchValidator);\n *\n *\n * function passwordMatchValidator(g: FormGroup) {\n * return g.get('password').value === g.get('passwordConfirm').value\n * ? null : {'mismatch': true};\n * }\n * ```\n *\n * Like `FormControl` instances, you choose to pass in\n * validators and async validators as part of an options object.\n *\n * ```\n * const form = new FormGroup({\n * password: new FormControl('')\n * passwordConfirm: new FormControl('')\n * }, { validators: passwordMatchValidator, asyncValidators: otherValidator });\n * ```\n *\n * ### Set the updateOn property for all controls in a form group\n *\n * The options object is used to set a default value for each child\n * control's `updateOn` property. If you set `updateOn` to `'blur'` at the\n * group level, all child controls default to 'blur', unless the child\n * has explicitly specified a different `updateOn` value.\n *\n * ```ts\n * const c = new FormGroup({\n * one: new FormControl()\n * }, { updateOn: 'blur' });\n * ```\n *\n * ### Using a FormGroup with optional controls\n *\n * It is possible to have optional controls in a FormGroup. An optional control can be removed later\n * using `removeControl`, and can be omitted when calling `reset`. Optional controls must be\n * declared optional in the group's type.\n *\n * ```ts\n * const c = new FormGroup<{one?: FormControl}>({\n * one: new FormControl('')\n * });\n * ```\n *\n * Notice that `c.value.one` has type `string|null|undefined`. This is because calling `c.reset({})`\n * without providing the optional key `one` will cause it to become `null`.\n *\n * @publicApi\n */\nclass FormGroup extends AbstractControl {\n /**\n * Creates a new `FormGroup` instance.\n *\n * @param controls A collection of child controls. The key for each child is the name\n * under which it is registered.\n *\n * @param validatorOrOpts A synchronous validator function, or an array of\n * such functions, or an `AbstractControlOptions` object that contains validation functions\n * and a validation trigger.\n *\n * @param asyncValidator A single async validator or array of async validator functions\n *\n */\n constructor(controls, validatorOrOpts, asyncValidator) {\n super(pickValidators(validatorOrOpts), pickAsyncValidators(asyncValidator, validatorOrOpts));\n (typeof ngDevMode === 'undefined' || ngDevMode) && validateFormGroupControls(controls);\n this.controls = controls;\n this._initObservables();\n this._setUpdateStrategy(validatorOrOpts);\n this._setUpControls();\n this.updateValueAndValidity({\n onlySelf: true,\n // If `asyncValidator` is present, it will trigger control status change from `PENDING` to\n // `VALID` or `INVALID`. The status should be broadcasted via the `statusChanges` observable,\n // so we set `emitEvent` to `true` to allow that during the control creation process.\n emitEvent: !!this.asyncValidator\n });\n }\n registerControl(name, control) {\n if (this.controls[name]) return this.controls[name];\n this.controls[name] = control;\n control.setParent(this);\n control._registerOnCollectionChange(this._onCollectionChange);\n return control;\n }\n addControl(name, control, options = {}) {\n this.registerControl(name, control);\n this.updateValueAndValidity({\n emitEvent: options.emitEvent\n });\n this._onCollectionChange();\n }\n /**\n * Remove a control from this group. In a strongly-typed group, required controls cannot be\n * removed.\n *\n * This method also updates the value and validity of the control.\n *\n * @param name The control name to remove from the collection\n * @param options Specifies whether this FormGroup instance should emit events after a\n * control is removed.\n * * `emitEvent`: When true or not supplied (the default), both the `statusChanges` and\n * `valueChanges` observables emit events with the latest status and value when the control is\n * removed. When false, no events are emitted.\n */\n removeControl(name, options = {}) {\n if (this.controls[name]) this.controls[name]._registerOnCollectionChange(() => {});\n delete this.controls[name];\n this.updateValueAndValidity({\n emitEvent: options.emitEvent\n });\n this._onCollectionChange();\n }\n setControl(name, control, options = {}) {\n if (this.controls[name]) this.controls[name]._registerOnCollectionChange(() => {});\n delete this.controls[name];\n if (control) this.registerControl(name, control);\n this.updateValueAndValidity({\n emitEvent: options.emitEvent\n });\n this._onCollectionChange();\n }\n contains(controlName) {\n return this.controls.hasOwnProperty(controlName) && this.controls[controlName].enabled;\n }\n /**\n * Sets the value of the `FormGroup`. It accepts an object that matches\n * the structure of the group, with control names as keys.\n *\n * @usageNotes\n * ### Set the complete value for the form group\n *\n * ```\n * const form = new FormGroup({\n * first: new FormControl(),\n * last: new FormControl()\n * });\n *\n * console.log(form.value); // {first: null, last: null}\n *\n * form.setValue({first: 'Nancy', last: 'Drew'});\n * console.log(form.value); // {first: 'Nancy', last: 'Drew'}\n * ```\n *\n * @throws When strict checks fail, such as setting the value of a control\n * that doesn't exist or if you exclude a value of a control that does exist.\n *\n * @param value The new value for the control that matches the structure of the group.\n * @param options Configuration options that determine how the control propagates changes\n * and emits events after the value changes.\n * The configuration options are passed to the {@link AbstractControl#updateValueAndValidity\n * updateValueAndValidity} method.\n *\n * * `onlySelf`: When true, each change only affects this control, and not its parent. Default is\n * false.\n * * `emitEvent`: When true or not supplied (the default), both the `statusChanges` and\n * `valueChanges`\n * observables emit events with the latest status and value when the control value is updated.\n * When false, no events are emitted.\n */\n setValue(value, options = {}) {\n assertAllValuesPresent(this, true, value);\n Object.keys(value).forEach(name => {\n assertControlPresent(this, true, name);\n this.controls[name].setValue(value[name], {\n onlySelf: true,\n emitEvent: options.emitEvent\n });\n });\n this.updateValueAndValidity(options);\n }\n /**\n * Patches the value of the `FormGroup`. It accepts an object with control\n * names as keys, and does its best to match the values to the correct controls\n * in the group.\n *\n * It accepts both super-sets and sub-sets of the group without throwing an error.\n *\n * @usageNotes\n * ### Patch the value for a form group\n *\n * ```\n * const form = new FormGroup({\n * first: new FormControl(),\n * last: new FormControl()\n * });\n * console.log(form.value); // {first: null, last: null}\n *\n * form.patchValue({first: 'Nancy'});\n * console.log(form.value); // {first: 'Nancy', last: null}\n * ```\n *\n * @param value The object that matches the structure of the group.\n * @param options Configuration options that determine how the control propagates changes and\n * emits events after the value is patched.\n * * `onlySelf`: When true, each change only affects this control and not its parent. Default is\n * true.\n * * `emitEvent`: When true or not supplied (the default), both the `statusChanges` and\n * `valueChanges` observables emit events with the latest status and value when the control value\n * is updated. When false, no events are emitted. The configuration options are passed to\n * the {@link AbstractControl#updateValueAndValidity updateValueAndValidity} method.\n */\n patchValue(value, options = {}) {\n // Even though the `value` argument type doesn't allow `null` and `undefined` values, the\n // `patchValue` can be called recursively and inner data structures might have these values, so\n // we just ignore such cases when a field containing FormGroup instance receives `null` or\n // `undefined` as a value.\n if (value == null /* both `null` and `undefined` */) return;\n Object.keys(value).forEach(name => {\n // The compiler cannot see through the uninstantiated conditional type of `this.controls`, so\n // `as any` is required.\n const control = this.controls[name];\n if (control) {\n control.patchValue( /* Guaranteed to be present, due to the outer forEach. */value[name], {\n onlySelf: true,\n emitEvent: options.emitEvent\n });\n }\n });\n this.updateValueAndValidity(options);\n }\n /**\n * Resets the `FormGroup`, marks all descendants `pristine` and `untouched` and sets\n * the value of all descendants to their default values, or null if no defaults were provided.\n *\n * You reset to a specific form state by passing in a map of states\n * that matches the structure of your form, with control names as keys. The state\n * is a standalone value or a form state object with both a value and a disabled\n * status.\n *\n * @param value Resets the control with an initial value,\n * or an object that defines the initial value and disabled state.\n *\n * @param options Configuration options that determine how the control propagates changes\n * and emits events when the group is reset.\n * * `onlySelf`: When true, each change only affects this control, and not its parent. Default is\n * false.\n * * `emitEvent`: When true or not supplied (the default), both the `statusChanges` and\n * `valueChanges`\n * observables emit events with the latest status and value when the control is reset.\n * When false, no events are emitted.\n * The configuration options are passed to the {@link AbstractControl#updateValueAndValidity\n * updateValueAndValidity} method.\n *\n * @usageNotes\n *\n * ### Reset the form group values\n *\n * ```ts\n * const form = new FormGroup({\n * first: new FormControl('first name'),\n * last: new FormControl('last name')\n * });\n *\n * console.log(form.value); // {first: 'first name', last: 'last name'}\n *\n * form.reset({ first: 'name', last: 'last name' });\n *\n * console.log(form.value); // {first: 'name', last: 'last name'}\n * ```\n *\n * ### Reset the form group values and disabled status\n *\n * ```\n * const form = new FormGroup({\n * first: new FormControl('first name'),\n * last: new FormControl('last name')\n * });\n *\n * form.reset({\n * first: {value: 'name', disabled: true},\n * last: 'last'\n * });\n *\n * console.log(form.value); // {last: 'last'}\n * console.log(form.get('first').status); // 'DISABLED'\n * ```\n */\n reset(value = {}, options = {}) {\n this._forEachChild((control, name) => {\n control.reset(value ? value[name] : null, {\n onlySelf: true,\n emitEvent: options.emitEvent\n });\n });\n this._updatePristine(options, this);\n this._updateTouched(options, this);\n this.updateValueAndValidity(options);\n }\n /**\n * The aggregate value of the `FormGroup`, including any disabled controls.\n *\n * Retrieves all values regardless of disabled status.\n */\n getRawValue() {\n return this._reduceChildren({}, (acc, control, name) => {\n acc[name] = control.getRawValue();\n return acc;\n });\n }\n /** @internal */\n _syncPendingControls() {\n let subtreeUpdated = this._reduceChildren(false, (updated, child) => {\n return child._syncPendingControls() ? true : updated;\n });\n if (subtreeUpdated) this.updateValueAndValidity({\n onlySelf: true\n });\n return subtreeUpdated;\n }\n /** @internal */\n _forEachChild(cb) {\n Object.keys(this.controls).forEach(key => {\n // The list of controls can change (for ex. controls might be removed) while the loop\n // is running (as a result of invoking Forms API in `valueChanges` subscription), so we\n // have to null check before invoking the callback.\n const control = this.controls[key];\n control && cb(control, key);\n });\n }\n /** @internal */\n _setUpControls() {\n this._forEachChild(control => {\n control.setParent(this);\n control._registerOnCollectionChange(this._onCollectionChange);\n });\n }\n /** @internal */\n _updateValue() {\n this.value = this._reduceValue();\n }\n /** @internal */\n _anyControls(condition) {\n for (const [controlName, control] of Object.entries(this.controls)) {\n if (this.contains(controlName) && condition(control)) {\n return true;\n }\n }\n return false;\n }\n /** @internal */\n _reduceValue() {\n let acc = {};\n return this._reduceChildren(acc, (acc, control, name) => {\n if (control.enabled || this.disabled) {\n acc[name] = control.value;\n }\n return acc;\n });\n }\n /** @internal */\n _reduceChildren(initValue, fn) {\n let res = initValue;\n this._forEachChild((control, name) => {\n res = fn(res, control, name);\n });\n return res;\n }\n /** @internal */\n _allControlsDisabled() {\n for (const controlName of Object.keys(this.controls)) {\n if (this.controls[controlName].enabled) {\n return false;\n }\n }\n return Object.keys(this.controls).length > 0 || this.disabled;\n }\n /** @internal */\n _find(name) {\n return this.controls.hasOwnProperty(name) ? this.controls[name] : null;\n }\n}\n/**\n * Will validate that none of the controls has a key with a dot\n * Throws other wise\n */\nfunction validateFormGroupControls(controls) {\n const invalidKeys = Object.keys(controls).filter(key => key.includes('.'));\n if (invalidKeys.length > 0) {\n // TODO: make this an error once there are no more uses in G3\n console.warn(`FormGroup keys cannot include \\`.\\`, please replace the keys for: ${invalidKeys.join(',')}.`);\n }\n}\nconst UntypedFormGroup = FormGroup;\n/**\n * @description\n * Asserts that the given control is an instance of `FormGroup`\n *\n * @publicApi\n */\nconst isFormGroup = control => control instanceof FormGroup;\n/**\n * Tracks the value and validity state of a collection of `FormControl` instances, each of which has\n * the same value type.\n *\n * `FormRecord` is very similar to {@link FormGroup}, except it can be used with a dynamic keys,\n * with controls added and removed as needed.\n *\n * `FormRecord` accepts one generic argument, which describes the type of the controls it contains.\n *\n * @usageNotes\n *\n * ```\n * let numbers = new FormRecord({bill: new FormControl('415-123-456')});\n * numbers.addControl('bob', new FormControl('415-234-567'));\n * numbers.removeControl('bill');\n * ```\n *\n * @publicApi\n */\nclass FormRecord extends FormGroup {}\n/**\n * @description\n * Asserts that the given control is an instance of `FormRecord`\n *\n * @publicApi\n */\nconst isFormRecord = control => control instanceof FormRecord;\n\n/**\n * Token to provide to allow SetDisabledState to always be called when a CVA is added, regardless of\n * whether the control is disabled or enabled.\n *\n * @see {@link FormsModule#withconfig}\n */\nconst CALL_SET_DISABLED_STATE = new InjectionToken('CallSetDisabledState', {\n providedIn: 'root',\n factory: () => setDisabledStateDefault\n});\n/**\n * Whether to use the fixed setDisabledState behavior by default.\n */\nconst setDisabledStateDefault = 'always';\nfunction controlPath(name, parent) {\n return [...parent.path, name];\n}\n/**\n * Links a Form control and a Form directive by setting up callbacks (such as `onChange`) on both\n * instances. This function is typically invoked when form directive is being initialized.\n *\n * @param control Form control instance that should be linked.\n * @param dir Directive that should be linked with a given control.\n */\nfunction setUpControl(control, dir, callSetDisabledState = setDisabledStateDefault) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!control) _throwError(dir, 'Cannot find control with');\n if (!dir.valueAccessor) _throwMissingValueAccessorError(dir);\n }\n setUpValidators(control, dir);\n dir.valueAccessor.writeValue(control.value);\n // The legacy behavior only calls the CVA's `setDisabledState` if the control is disabled.\n // If the `callSetDisabledState` option is set to `always`, then this bug is fixed and\n // the method is always called.\n if (control.disabled || callSetDisabledState === 'always') {\n dir.valueAccessor.setDisabledState?.(control.disabled);\n }\n setUpViewChangePipeline(control, dir);\n setUpModelChangePipeline(control, dir);\n setUpBlurPipeline(control, dir);\n setUpDisabledChangeHandler(control, dir);\n}\n/**\n * Reverts configuration performed by the `setUpControl` control function.\n * Effectively disconnects form control with a given form directive.\n * This function is typically invoked when corresponding form directive is being destroyed.\n *\n * @param control Form control which should be cleaned up.\n * @param dir Directive that should be disconnected from a given control.\n * @param validateControlPresenceOnChange Flag that indicates whether onChange handler should\n * contain asserts to verify that it's not called once directive is destroyed. We need this flag\n * to avoid potentially breaking changes caused by better control cleanup introduced in #39235.\n */\nfunction cleanUpControl(control, dir, validateControlPresenceOnChange = true) {\n const noop = () => {\n if (validateControlPresenceOnChange && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n _noControlError(dir);\n }\n };\n // The `valueAccessor` field is typically defined on FromControl and FormControlName directive\n // instances and there is a logic in `selectValueAccessor` function that throws if it's not the\n // case. We still check the presence of `valueAccessor` before invoking its methods to make sure\n // that cleanup works correctly if app code or tests are setup to ignore the error thrown from\n // `selectValueAccessor`. See https://github.com/angular/angular/issues/40521.\n if (dir.valueAccessor) {\n dir.valueAccessor.registerOnChange(noop);\n dir.valueAccessor.registerOnTouched(noop);\n }\n cleanUpValidators(control, dir);\n if (control) {\n dir._invokeOnDestroyCallbacks();\n control._registerOnCollectionChange(() => {});\n }\n}\nfunction registerOnValidatorChange(validators, onChange) {\n validators.forEach(validator => {\n if (validator.registerOnValidatorChange) validator.registerOnValidatorChange(onChange);\n });\n}\n/**\n * Sets up disabled change handler function on a given form control if ControlValueAccessor\n * associated with a given directive instance supports the `setDisabledState` call.\n *\n * @param control Form control where disabled change handler should be setup.\n * @param dir Corresponding directive instance associated with this control.\n */\nfunction setUpDisabledChangeHandler(control, dir) {\n if (dir.valueAccessor.setDisabledState) {\n const onDisabledChange = isDisabled => {\n dir.valueAccessor.setDisabledState(isDisabled);\n };\n control.registerOnDisabledChange(onDisabledChange);\n // Register a callback function to cleanup disabled change handler\n // from a control instance when a directive is destroyed.\n dir._registerOnDestroy(() => {\n control._unregisterOnDisabledChange(onDisabledChange);\n });\n }\n}\n/**\n * Sets up sync and async directive validators on provided form control.\n * This function merges validators from the directive into the validators of the control.\n *\n * @param control Form control where directive validators should be setup.\n * @param dir Directive instance that contains validators to be setup.\n */\nfunction setUpValidators(control, dir) {\n const validators = getControlValidators(control);\n if (dir.validator !== null) {\n control.setValidators(mergeValidators(validators, dir.validator));\n } else if (typeof validators === 'function') {\n // If sync validators are represented by a single validator function, we force the\n // `Validators.compose` call to happen by executing the `setValidators` function with\n // an array that contains that function. We need this to avoid possible discrepancies in\n // validators behavior, so sync validators are always processed by the `Validators.compose`.\n // Note: we should consider moving this logic inside the `setValidators` function itself, so we\n // have consistent behavior on AbstractControl API level. The same applies to the async\n // validators logic below.\n control.setValidators([validators]);\n }\n const asyncValidators = getControlAsyncValidators(control);\n if (dir.asyncValidator !== null) {\n control.setAsyncValidators(mergeValidators(asyncValidators, dir.asyncValidator));\n } else if (typeof asyncValidators === 'function') {\n control.setAsyncValidators([asyncValidators]);\n }\n // Re-run validation when validator binding changes, e.g. minlength=3 -> minlength=4\n const onValidatorChange = () => control.updateValueAndValidity();\n registerOnValidatorChange(dir._rawValidators, onValidatorChange);\n registerOnValidatorChange(dir._rawAsyncValidators, onValidatorChange);\n}\n/**\n * Cleans up sync and async directive validators on provided form control.\n * This function reverts the setup performed by the `setUpValidators` function, i.e.\n * removes directive-specific validators from a given control instance.\n *\n * @param control Form control from where directive validators should be removed.\n * @param dir Directive instance that contains validators to be removed.\n * @returns true if a control was updated as a result of this action.\n */\nfunction cleanUpValidators(control, dir) {\n let isControlUpdated = false;\n if (control !== null) {\n if (dir.validator !== null) {\n const validators = getControlValidators(control);\n if (Array.isArray(validators) && validators.length > 0) {\n // Filter out directive validator function.\n const updatedValidators = validators.filter(validator => validator !== dir.validator);\n if (updatedValidators.length !== validators.length) {\n isControlUpdated = true;\n control.setValidators(updatedValidators);\n }\n }\n }\n if (dir.asyncValidator !== null) {\n const asyncValidators = getControlAsyncValidators(control);\n if (Array.isArray(asyncValidators) && asyncValidators.length > 0) {\n // Filter out directive async validator function.\n const updatedAsyncValidators = asyncValidators.filter(asyncValidator => asyncValidator !== dir.asyncValidator);\n if (updatedAsyncValidators.length !== asyncValidators.length) {\n isControlUpdated = true;\n control.setAsyncValidators(updatedAsyncValidators);\n }\n }\n }\n }\n // Clear onValidatorChange callbacks by providing a noop function.\n const noop = () => {};\n registerOnValidatorChange(dir._rawValidators, noop);\n registerOnValidatorChange(dir._rawAsyncValidators, noop);\n return isControlUpdated;\n}\nfunction setUpViewChangePipeline(control, dir) {\n dir.valueAccessor.registerOnChange(newValue => {\n control._pendingValue = newValue;\n control._pendingChange = true;\n control._pendingDirty = true;\n if (control.updateOn === 'change') updateControl(control, dir);\n });\n}\nfunction setUpBlurPipeline(control, dir) {\n dir.valueAccessor.registerOnTouched(() => {\n control._pendingTouched = true;\n if (control.updateOn === 'blur' && control._pendingChange) updateControl(control, dir);\n if (control.updateOn !== 'submit') control.markAsTouched();\n });\n}\nfunction updateControl(control, dir) {\n if (control._pendingDirty) control.markAsDirty();\n control.setValue(control._pendingValue, {\n emitModelToViewChange: false\n });\n dir.viewToModelUpdate(control._pendingValue);\n control._pendingChange = false;\n}\nfunction setUpModelChangePipeline(control, dir) {\n const onChange = (newValue, emitModelEvent) => {\n // control -> view\n dir.valueAccessor.writeValue(newValue);\n // control -> ngModel\n if (emitModelEvent) dir.viewToModelUpdate(newValue);\n };\n control.registerOnChange(onChange);\n // Register a callback function to cleanup onChange handler\n // from a control instance when a directive is destroyed.\n dir._registerOnDestroy(() => {\n control._unregisterOnChange(onChange);\n });\n}\n/**\n * Links a FormGroup or FormArray instance and corresponding Form directive by setting up validators\n * present in the view.\n *\n * @param control FormGroup or FormArray instance that should be linked.\n * @param dir Directive that provides view validators.\n */\nfunction setUpFormContainer(control, dir) {\n if (control == null && (typeof ngDevMode === 'undefined' || ngDevMode)) _throwError(dir, 'Cannot find control with');\n setUpValidators(control, dir);\n}\n/**\n * Reverts the setup performed by the `setUpFormContainer` function.\n *\n * @param control FormGroup or FormArray instance that should be cleaned up.\n * @param dir Directive that provided view validators.\n * @returns true if a control was updated as a result of this action.\n */\nfunction cleanUpFormContainer(control, dir) {\n return cleanUpValidators(control, dir);\n}\nfunction _noControlError(dir) {\n return _throwError(dir, 'There is no FormControl instance attached to form control element with');\n}\nfunction _throwError(dir, message) {\n const messageEnd = _describeControlLocation(dir);\n throw new Error(`${message} ${messageEnd}`);\n}\nfunction _describeControlLocation(dir) {\n const path = dir.path;\n if (path && path.length > 1) return `path: '${path.join(' -> ')}'`;\n if (path?.[0]) return `name: '${path}'`;\n return 'unspecified name attribute';\n}\nfunction _throwMissingValueAccessorError(dir) {\n const loc = _describeControlLocation(dir);\n throw new ɵRuntimeError(-1203 /* RuntimeErrorCode.NG_MISSING_VALUE_ACCESSOR */, `No value accessor for form control ${loc}.`);\n}\nfunction _throwInvalidValueAccessorError(dir) {\n const loc = _describeControlLocation(dir);\n throw new ɵRuntimeError(1200 /* RuntimeErrorCode.NG_VALUE_ACCESSOR_NOT_PROVIDED */, `Value accessor was not provided as an array for form control with ${loc}. ` + `Check that the \\`NG_VALUE_ACCESSOR\\` token is configured as a \\`multi: true\\` provider.`);\n}\nfunction isPropertyUpdated(changes, viewModel) {\n if (!changes.hasOwnProperty('model')) return false;\n const change = changes['model'];\n if (change.isFirstChange()) return true;\n return !Object.is(viewModel, change.currentValue);\n}\nfunction isBuiltInAccessor(valueAccessor) {\n // Check if a given value accessor is an instance of a class that directly extends\n // `BuiltInControlValueAccessor` one.\n return Object.getPrototypeOf(valueAccessor.constructor) === BuiltInControlValueAccessor;\n}\nfunction syncPendingControls(form, directives) {\n form._syncPendingControls();\n directives.forEach(dir => {\n const control = dir.control;\n if (control.updateOn === 'submit' && control._pendingChange) {\n dir.viewToModelUpdate(control._pendingValue);\n control._pendingChange = false;\n }\n });\n}\n// TODO: vsavkin remove it once https://github.com/angular/angular/issues/3011 is implemented\nfunction selectValueAccessor(dir, valueAccessors) {\n if (!valueAccessors) return null;\n if (!Array.isArray(valueAccessors) && (typeof ngDevMode === 'undefined' || ngDevMode)) _throwInvalidValueAccessorError(dir);\n let defaultAccessor = undefined;\n let builtinAccessor = undefined;\n let customAccessor = undefined;\n valueAccessors.forEach(v => {\n if (v.constructor === DefaultValueAccessor) {\n defaultAccessor = v;\n } else if (isBuiltInAccessor(v)) {\n if (builtinAccessor && (typeof ngDevMode === 'undefined' || ngDevMode)) _throwError(dir, 'More than one built-in value accessor matches form control with');\n builtinAccessor = v;\n } else {\n if (customAccessor && (typeof ngDevMode === 'undefined' || ngDevMode)) _throwError(dir, 'More than one custom value accessor matches form control with');\n customAccessor = v;\n }\n });\n if (customAccessor) return customAccessor;\n if (builtinAccessor) return builtinAccessor;\n if (defaultAccessor) return defaultAccessor;\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n _throwError(dir, 'No valid value accessor for form control with');\n }\n return null;\n}\nfunction removeListItem$1(list, el) {\n const index = list.indexOf(el);\n if (index > -1) list.splice(index, 1);\n}\n// TODO(kara): remove after deprecation period\nfunction _ngModelWarning(name, type, instance, warningConfig) {\n if (warningConfig === 'never') return;\n if ((warningConfig === null || warningConfig === 'once') && !type._ngModelWarningSentOnce || warningConfig === 'always' && !instance._ngModelWarningSent) {\n console.warn(ngModelWarning(name));\n type._ngModelWarningSentOnce = true;\n instance._ngModelWarningSent = true;\n }\n}\nconst formDirectiveProvider$1 = {\n provide: ControlContainer,\n useExisting: forwardRef(() => NgForm)\n};\nconst resolvedPromise$1 = (() => Promise.resolve())();\n/**\n * @description\n * Creates a top-level `FormGroup` instance and binds it to a form\n * to track aggregate form value and validation status.\n *\n * As soon as you import the `FormsModule`, this directive becomes active by default on\n * all `` tags. You don't need to add a special selector.\n *\n * You optionally export the directive into a local template variable using `ngForm` as the key\n * (ex: `#myForm=\"ngForm\"`). This is optional, but useful. Many properties from the underlying\n * `FormGroup` instance are duplicated on the directive itself, so a reference to it\n * gives you access to the aggregate value and validity status of the form, as well as\n * user interaction properties like `dirty` and `touched`.\n *\n * To register child controls with the form, use `NgModel` with a `name`\n * attribute. You may use `NgModelGroup` to create sub-groups within the form.\n *\n * If necessary, listen to the directive's `ngSubmit` event to be notified when the user has\n * triggered a form submission. The `ngSubmit` event emits the original form\n * submission event.\n *\n * In template driven forms, all `` tags are automatically tagged as `NgForm`.\n * To import the `FormsModule` but skip its usage in some forms,\n * for example, to use native HTML5 validation, add the `ngNoForm` and the ``\n * tags won't create an `NgForm` directive. In reactive forms, using `ngNoForm` is\n * unnecessary because the `` tags are inert. In that case, you would\n * refrain from using the `formGroup` directive.\n *\n * @usageNotes\n *\n * ### Listening for form submission\n *\n * The following example shows how to capture the form values from the \"ngSubmit\" event.\n *\n * {@example forms/ts/simpleForm/simple_form_example.ts region='Component'}\n *\n * ### Setting the update options\n *\n * The following example shows you how to change the \"updateOn\" option from its default using\n * ngFormOptions.\n *\n * ```html\n * \n * \n * \n * ```\n *\n * ### Native DOM validation UI\n *\n * In order to prevent the native DOM form validation UI from interfering with Angular's form\n * validation, Angular automatically adds the `novalidate` attribute on any `` whenever\n * `FormModule` or `ReactiveFormModule` are imported into the application.\n * If you want to explicitly enable native DOM validation UI with Angular forms, you can add the\n * `ngNativeValidate` attribute to the `` element:\n *\n * ```html\n * \n * ...\n * \n * ```\n *\n * @ngModule FormsModule\n * @publicApi\n */\nclass NgForm extends ControlContainer {\n /**\n * @description\n * Returns whether the form submission has been triggered.\n */\n get submitted() {\n return untracked(this.submittedReactive);\n }\n constructor(validators, asyncValidators, callSetDisabledState) {\n super();\n this.callSetDisabledState = callSetDisabledState;\n /** @internal */\n this._submitted = computed(() => this.submittedReactive());\n this.submittedReactive = signal(false);\n this._directives = new Set();\n /**\n * @description\n * Event emitter for the \"ngSubmit\" event\n */\n this.ngSubmit = new EventEmitter();\n this.form = new FormGroup({}, composeValidators(validators), composeAsyncValidators(asyncValidators));\n }\n /** @nodoc */\n ngAfterViewInit() {\n this._setUpdateStrategy();\n }\n /**\n * @description\n * The directive instance.\n */\n get formDirective() {\n return this;\n }\n /**\n * @description\n * The internal `FormGroup` instance.\n */\n get control() {\n return this.form;\n }\n /**\n * @description\n * Returns an array representing the path to this group. Because this directive\n * always lives at the top level of a form, it is always an empty array.\n */\n get path() {\n return [];\n }\n /**\n * @description\n * Returns a map of the controls in this group.\n */\n get controls() {\n return this.form.controls;\n }\n /**\n * @description\n * Method that sets up the control directive in this group, re-calculates its value\n * and validity, and adds the instance to the internal list of directives.\n *\n * @param dir The `NgModel` directive instance.\n */\n addControl(dir) {\n resolvedPromise$1.then(() => {\n const container = this._findContainer(dir.path);\n dir.control = container.registerControl(dir.name, dir.control);\n setUpControl(dir.control, dir, this.callSetDisabledState);\n dir.control.updateValueAndValidity({\n emitEvent: false\n });\n this._directives.add(dir);\n });\n }\n /**\n * @description\n * Retrieves the `FormControl` instance from the provided `NgModel` directive.\n *\n * @param dir The `NgModel` directive instance.\n */\n getControl(dir) {\n return this.form.get(dir.path);\n }\n /**\n * @description\n * Removes the `NgModel` instance from the internal list of directives\n *\n * @param dir The `NgModel` directive instance.\n */\n removeControl(dir) {\n resolvedPromise$1.then(() => {\n const container = this._findContainer(dir.path);\n if (container) {\n container.removeControl(dir.name);\n }\n this._directives.delete(dir);\n });\n }\n /**\n * @description\n * Adds a new `NgModelGroup` directive instance to the form.\n *\n * @param dir The `NgModelGroup` directive instance.\n */\n addFormGroup(dir) {\n resolvedPromise$1.then(() => {\n const container = this._findContainer(dir.path);\n const group = new FormGroup({});\n setUpFormContainer(group, dir);\n container.registerControl(dir.name, group);\n group.updateValueAndValidity({\n emitEvent: false\n });\n });\n }\n /**\n * @description\n * Removes the `NgModelGroup` directive instance from the form.\n *\n * @param dir The `NgModelGroup` directive instance.\n */\n removeFormGroup(dir) {\n resolvedPromise$1.then(() => {\n const container = this._findContainer(dir.path);\n if (container) {\n container.removeControl(dir.name);\n }\n });\n }\n /**\n * @description\n * Retrieves the `FormGroup` for a provided `NgModelGroup` directive instance\n *\n * @param dir The `NgModelGroup` directive instance.\n */\n getFormGroup(dir) {\n return this.form.get(dir.path);\n }\n /**\n * Sets the new value for the provided `NgControl` directive.\n *\n * @param dir The `NgControl` directive instance.\n * @param value The new value for the directive's control.\n */\n updateModel(dir, value) {\n resolvedPromise$1.then(() => {\n const ctrl = this.form.get(dir.path);\n ctrl.setValue(value);\n });\n }\n /**\n * @description\n * Sets the value for this `FormGroup`.\n *\n * @param value The new value\n */\n setValue(value) {\n this.control.setValue(value);\n }\n /**\n * @description\n * Method called when the \"submit\" event is triggered on the form.\n * Triggers the `ngSubmit` emitter to emit the \"submit\" event as its payload.\n *\n * @param $event The \"submit\" event object\n */\n onSubmit($event) {\n this.submittedReactive.set(true);\n syncPendingControls(this.form, this._directives);\n this.ngSubmit.emit($event);\n // Forms with `method=\"dialog\"` have some special behavior\n // that won't reload the page and that shouldn't be prevented.\n return $event?.target?.method === 'dialog';\n }\n /**\n * @description\n * Method called when the \"reset\" event is triggered on the form.\n */\n onReset() {\n this.resetForm();\n }\n /**\n * @description\n * Resets the form to an initial value and resets its submitted status.\n *\n * @param value The new value for the form.\n */\n resetForm(value = undefined) {\n this.form.reset(value);\n this.submittedReactive.set(false);\n }\n _setUpdateStrategy() {\n if (this.options && this.options.updateOn != null) {\n this.form._updateOn = this.options.updateOn;\n }\n }\n _findContainer(path) {\n path.pop();\n return path.length ? this.form.get(path) : this.form;\n }\n static {\n this.ɵfac = function NgForm_Factory(ɵt) {\n return new (ɵt || NgForm)(i0.ɵɵdirectiveInject(NG_VALIDATORS, 10), i0.ɵɵdirectiveInject(NG_ASYNC_VALIDATORS, 10), i0.ɵɵdirectiveInject(CALL_SET_DISABLED_STATE, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgForm,\n selectors: [[\"form\", 3, \"ngNoForm\", \"\", 3, \"formGroup\", \"\"], [\"ng-form\"], [\"\", \"ngForm\", \"\"]],\n hostBindings: function NgForm_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"submit\", function NgForm_submit_HostBindingHandler($event) {\n return ctx.onSubmit($event);\n })(\"reset\", function NgForm_reset_HostBindingHandler() {\n return ctx.onReset();\n });\n }\n },\n inputs: {\n options: [0, \"ngFormOptions\", \"options\"]\n },\n outputs: {\n ngSubmit: \"ngSubmit\"\n },\n exportAs: [\"ngForm\"],\n features: [i0.ɵɵProvidersFeature([formDirectiveProvider$1]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgForm, [{\n type: Directive,\n args: [{\n selector: 'form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]',\n providers: [formDirectiveProvider$1],\n host: {\n '(submit)': 'onSubmit($event)',\n '(reset)': 'onReset()'\n },\n outputs: ['ngSubmit'],\n exportAs: 'ngForm'\n }]\n }], () => [{\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Self\n }, {\n type: Inject,\n args: [NG_VALIDATORS]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Self\n }, {\n type: Inject,\n args: [NG_ASYNC_VALIDATORS]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [CALL_SET_DISABLED_STATE]\n }]\n }], {\n options: [{\n type: Input,\n args: ['ngFormOptions']\n }]\n });\n})();\nfunction removeListItem(list, el) {\n const index = list.indexOf(el);\n if (index > -1) list.splice(index, 1);\n}\nfunction isFormControlState(formState) {\n return typeof formState === 'object' && formState !== null && Object.keys(formState).length === 2 && 'value' in formState && 'disabled' in formState;\n}\nconst FormControl = class FormControl extends AbstractControl {\n constructor(\n // formState and defaultValue will only be null if T is nullable\n formState = null, validatorOrOpts, asyncValidator) {\n super(pickValidators(validatorOrOpts), pickAsyncValidators(asyncValidator, validatorOrOpts));\n /** @publicApi */\n this.defaultValue = null;\n /** @internal */\n this._onChange = [];\n /** @internal */\n this._pendingChange = false;\n this._applyFormState(formState);\n this._setUpdateStrategy(validatorOrOpts);\n this._initObservables();\n this.updateValueAndValidity({\n onlySelf: true,\n // If `asyncValidator` is present, it will trigger control status change from `PENDING` to\n // `VALID` or `INVALID`.\n // The status should be broadcasted via the `statusChanges` observable, so we set\n // `emitEvent` to `true` to allow that during the control creation process.\n emitEvent: !!this.asyncValidator\n });\n if (isOptionsObj(validatorOrOpts) && (validatorOrOpts.nonNullable || validatorOrOpts.initialValueIsDefault)) {\n if (isFormControlState(formState)) {\n this.defaultValue = formState.value;\n } else {\n this.defaultValue = formState;\n }\n }\n }\n setValue(value, options = {}) {\n this.value = this._pendingValue = value;\n if (this._onChange.length && options.emitModelToViewChange !== false) {\n this._onChange.forEach(changeFn => changeFn(this.value, options.emitViewToModelChange !== false));\n }\n this.updateValueAndValidity(options);\n }\n patchValue(value, options = {}) {\n this.setValue(value, options);\n }\n reset(formState = this.defaultValue, options = {}) {\n this._applyFormState(formState);\n this.markAsPristine(options);\n this.markAsUntouched(options);\n this.setValue(this.value, options);\n this._pendingChange = false;\n }\n /** @internal */\n _updateValue() {}\n /** @internal */\n _anyControls(condition) {\n return false;\n }\n /** @internal */\n _allControlsDisabled() {\n return this.disabled;\n }\n registerOnChange(fn) {\n this._onChange.push(fn);\n }\n /** @internal */\n _unregisterOnChange(fn) {\n removeListItem(this._onChange, fn);\n }\n registerOnDisabledChange(fn) {\n this._onDisabledChange.push(fn);\n }\n /** @internal */\n _unregisterOnDisabledChange(fn) {\n removeListItem(this._onDisabledChange, fn);\n }\n /** @internal */\n _forEachChild(cb) {}\n /** @internal */\n _syncPendingControls() {\n if (this.updateOn === 'submit') {\n if (this._pendingDirty) this.markAsDirty();\n if (this._pendingTouched) this.markAsTouched();\n if (this._pendingChange) {\n this.setValue(this._pendingValue, {\n onlySelf: true,\n emitModelToViewChange: false\n });\n return true;\n }\n }\n return false;\n }\n _applyFormState(formState) {\n if (isFormControlState(formState)) {\n this.value = this._pendingValue = formState.value;\n formState.disabled ? this.disable({\n onlySelf: true,\n emitEvent: false\n }) : this.enable({\n onlySelf: true,\n emitEvent: false\n });\n } else {\n this.value = this._pendingValue = formState;\n }\n }\n};\nconst UntypedFormControl = FormControl;\n/**\n * @description\n * Asserts that the given control is an instance of `FormControl`\n *\n * @publicApi\n */\nconst isFormControl = control => control instanceof FormControl;\n\n/**\n * @description\n * A base class for code shared between the `NgModelGroup` and `FormGroupName` directives.\n *\n * @publicApi\n */\nclass AbstractFormGroupDirective extends ControlContainer {\n /** @nodoc */\n ngOnInit() {\n this._checkParentType();\n // Register the group with its parent group.\n this.formDirective.addFormGroup(this);\n }\n /** @nodoc */\n ngOnDestroy() {\n if (this.formDirective) {\n // Remove the group from its parent group.\n this.formDirective.removeFormGroup(this);\n }\n }\n /**\n * @description\n * The `FormGroup` bound to this directive.\n */\n get control() {\n return this.formDirective.getFormGroup(this);\n }\n /**\n * @description\n * The path to this group from the top-level directive.\n */\n get path() {\n return controlPath(this.name == null ? this.name : this.name.toString(), this._parent);\n }\n /**\n * @description\n * The top-level directive for this group if present, otherwise null.\n */\n get formDirective() {\n return this._parent ? this._parent.formDirective : null;\n }\n /** @internal */\n _checkParentType() {}\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵAbstractFormGroupDirective_BaseFactory;\n return function AbstractFormGroupDirective_Factory(ɵt) {\n return (ɵAbstractFormGroupDirective_BaseFactory || (ɵAbstractFormGroupDirective_BaseFactory = i0.ɵɵgetInheritedFactory(AbstractFormGroupDirective)))(ɵt || AbstractFormGroupDirective);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: AbstractFormGroupDirective,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(AbstractFormGroupDirective, [{\n type: Directive\n }], null, null);\n})();\nfunction modelParentException() {\n return new ɵRuntimeError(1350 /* RuntimeErrorCode.NGMODEL_IN_FORM_GROUP */, `\n ngModel cannot be used to register form controls with a parent formGroup directive. Try using\n formGroup's partner directive \"formControlName\" instead. Example:\n\n ${formControlNameExample}\n\n Or, if you'd like to avoid registering this form control, indicate that it's standalone in ngModelOptions:\n\n Example:\n\n ${ngModelWithFormGroupExample}`);\n}\nfunction formGroupNameException() {\n return new ɵRuntimeError(1351 /* RuntimeErrorCode.NGMODEL_IN_FORM_GROUP_NAME */, `\n ngModel cannot be used to register form controls with a parent formGroupName or formArrayName directive.\n\n Option 1: Use formControlName instead of ngModel (reactive strategy):\n\n ${formGroupNameExample}\n\n Option 2: Update ngModel's parent be ngModelGroup (template-driven strategy):\n\n ${ngModelGroupExample}`);\n}\nfunction missingNameException() {\n return new ɵRuntimeError(1352 /* RuntimeErrorCode.NGMODEL_WITHOUT_NAME */, `If ngModel is used within a form tag, either the name attribute must be set or the form\n control must be defined as 'standalone' in ngModelOptions.\n\n Example 1: \n Example 2: `);\n}\nfunction modelGroupParentException() {\n return new ɵRuntimeError(1353 /* RuntimeErrorCode.NGMODELGROUP_IN_FORM_GROUP */, `\n ngModelGroup cannot be used with a parent formGroup directive.\n\n Option 1: Use formGroupName instead of ngModelGroup (reactive strategy):\n\n ${formGroupNameExample}\n\n Option 2: Use a regular form tag instead of the formGroup directive (template-driven strategy):\n\n ${ngModelGroupExample}`);\n}\nconst modelGroupProvider = {\n provide: ControlContainer,\n useExisting: forwardRef(() => NgModelGroup)\n};\n/**\n * @description\n * Creates and binds a `FormGroup` instance to a DOM element.\n *\n * This directive can only be used as a child of `NgForm` (within `` tags).\n *\n * Use this directive to validate a sub-group of your form separately from the\n * rest of your form, or if some values in your domain model make more sense\n * to consume together in a nested object.\n *\n * Provide a name for the sub-group and it will become the key\n * for the sub-group in the form's full value. If you need direct access, export the directive into\n * a local template variable using `ngModelGroup` (ex: `#myGroup=\"ngModelGroup\"`).\n *\n * @usageNotes\n *\n * ### Consuming controls in a grouping\n *\n * The following example shows you how to combine controls together in a sub-group\n * of the form.\n *\n * {@example forms/ts/ngModelGroup/ng_model_group_example.ts region='Component'}\n *\n * @ngModule FormsModule\n * @publicApi\n */\nclass NgModelGroup extends AbstractFormGroupDirective {\n constructor(parent, validators, asyncValidators) {\n super();\n /**\n * @description\n * Tracks the name of the `NgModelGroup` bound to the directive. The name corresponds\n * to a key in the parent `NgForm`.\n */\n this.name = '';\n this._parent = parent;\n this._setValidators(validators);\n this._setAsyncValidators(asyncValidators);\n }\n /** @internal */\n _checkParentType() {\n if (!(this._parent instanceof NgModelGroup) && !(this._parent instanceof NgForm) && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw modelGroupParentException();\n }\n }\n static {\n this.ɵfac = function NgModelGroup_Factory(ɵt) {\n return new (ɵt || NgModelGroup)(i0.ɵɵdirectiveInject(ControlContainer, 5), i0.ɵɵdirectiveInject(NG_VALIDATORS, 10), i0.ɵɵdirectiveInject(NG_ASYNC_VALIDATORS, 10));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgModelGroup,\n selectors: [[\"\", \"ngModelGroup\", \"\"]],\n inputs: {\n name: [0, \"ngModelGroup\", \"name\"]\n },\n exportAs: [\"ngModelGroup\"],\n features: [i0.ɵɵProvidersFeature([modelGroupProvider]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgModelGroup, [{\n type: Directive,\n args: [{\n selector: '[ngModelGroup]',\n providers: [modelGroupProvider],\n exportAs: 'ngModelGroup'\n }]\n }], () => [{\n type: ControlContainer,\n decorators: [{\n type: Host\n }, {\n type: SkipSelf\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Self\n }, {\n type: Inject,\n args: [NG_VALIDATORS]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Self\n }, {\n type: Inject,\n args: [NG_ASYNC_VALIDATORS]\n }]\n }], {\n name: [{\n type: Input,\n args: ['ngModelGroup']\n }]\n });\n})();\nconst formControlBinding$1 = {\n provide: NgControl,\n useExisting: forwardRef(() => NgModel)\n};\n/**\n * `ngModel` forces an additional change detection run when its inputs change:\n * E.g.:\n * ```\n * {{myModel.valid}}\n * \n * ```\n * I.e. `ngModel` can export itself on the element and then be used in the template.\n * Normally, this would result in expressions before the `input` that use the exported directive\n * to have an old value as they have been\n * dirty checked before. As this is a very common case for `ngModel`, we added this second change\n * detection run.\n *\n * Notes:\n * - this is just one extra run no matter how many `ngModel`s have been changed.\n * - this is a general problem when using `exportAs` for directives!\n */\nconst resolvedPromise = (() => Promise.resolve())();\n/**\n * @description\n * Creates a `FormControl` instance from a [domain\n * model](https://en.wikipedia.org/wiki/Domain_model) and binds it to a form control element.\n *\n * The `FormControl` instance tracks the value, user interaction, and\n * validation status of the control and keeps the view synced with the model. If used\n * within a parent form, the directive also registers itself with the form as a child\n * control.\n *\n * This directive is used by itself or as part of a larger form. Use the\n * `ngModel` selector to activate it.\n *\n * It accepts a domain model as an optional `Input`. If you have a one-way binding\n * to `ngModel` with `[]` syntax, changing the domain model's value in the component\n * class sets the value in the view. If you have a two-way binding with `[()]` syntax\n * (also known as 'banana-in-a-box syntax'), the value in the UI always syncs back to\n * the domain model in your class.\n *\n * To inspect the properties of the associated `FormControl` (like the validity state),\n * export the directive into a local template variable using `ngModel` as the key (ex:\n * `#myVar=\"ngModel\"`). You can then access the control using the directive's `control` property.\n * However, the most commonly used properties (like `valid` and `dirty`) also exist on the control\n * for direct access. See a full list of properties directly available in\n * `AbstractControlDirective`.\n *\n * @see {@link RadioControlValueAccessor}\n * @see {@link SelectControlValueAccessor}\n *\n * @usageNotes\n *\n * ### Using ngModel on a standalone control\n *\n * The following examples show a simple standalone control using `ngModel`:\n *\n * {@example forms/ts/simpleNgModel/simple_ng_model_example.ts region='Component'}\n *\n * When using the `ngModel` within `` tags, you'll also need to supply a `name` attribute\n * so that the control can be registered with the parent form under that name.\n *\n * In the context of a parent form, it's often unnecessary to include one-way or two-way binding,\n * as the parent form syncs the value for you. You access its properties by exporting it into a\n * local template variable using `ngForm` such as (`#f=\"ngForm\"`). Use the variable where\n * needed on form submission.\n *\n * If you do need to populate initial values into your form, using a one-way binding for\n * `ngModel` tends to be sufficient as long as you use the exported form's value rather\n * than the domain model's value on submit.\n *\n * ### Using ngModel within a form\n *\n * The following example shows controls using `ngModel` within a form:\n *\n * {@example forms/ts/simpleForm/simple_form_example.ts region='Component'}\n *\n * ### Using a standalone ngModel within a group\n *\n * The following example shows you how to use a standalone ngModel control\n * within a form. This controls the display of the form, but doesn't contain form data.\n *\n * ```html\n * \n * \n * Show more options?\n * \n * \n * ```\n *\n * ### Setting the ngModel `name` attribute through options\n *\n * The following example shows you an alternate way to set the name attribute. Here,\n * an attribute identified as name is used within a custom form control component. To still be able\n * to specify the NgModel's name, you must specify it using the `ngModelOptions` input instead.\n *\n * ```html\n * \n * \n * \n * \n * \n * ```\n *\n * @ngModule FormsModule\n * @publicApi\n */\nclass NgModel extends NgControl {\n constructor(parent, validators, asyncValidators, valueAccessors, _changeDetectorRef, callSetDisabledState) {\n super();\n this._changeDetectorRef = _changeDetectorRef;\n this.callSetDisabledState = callSetDisabledState;\n this.control = new FormControl();\n /** @internal */\n this._registered = false;\n /**\n * @description\n * Tracks the name bound to the directive. If a parent form exists, it\n * uses this name as a key to retrieve this control's value.\n */\n this.name = '';\n /**\n * @description\n * Event emitter for producing the `ngModelChange` event after\n * the view model updates.\n */\n this.update = new EventEmitter();\n this._parent = parent;\n this._setValidators(validators);\n this._setAsyncValidators(asyncValidators);\n this.valueAccessor = selectValueAccessor(this, valueAccessors);\n }\n /** @nodoc */\n ngOnChanges(changes) {\n this._checkForErrors();\n if (!this._registered || 'name' in changes) {\n if (this._registered) {\n this._checkName();\n if (this.formDirective) {\n // We can't call `formDirective.removeControl(this)`, because the `name` has already been\n // changed. We also can't reset the name temporarily since the logic in `removeControl`\n // is inside a promise and it won't run immediately. We work around it by giving it an\n // object with the same shape instead.\n const oldName = changes['name'].previousValue;\n this.formDirective.removeControl({\n name: oldName,\n path: this._getPath(oldName)\n });\n }\n }\n this._setUpControl();\n }\n if ('isDisabled' in changes) {\n this._updateDisabled(changes);\n }\n if (isPropertyUpdated(changes, this.viewModel)) {\n this._updateValue(this.model);\n this.viewModel = this.model;\n }\n }\n /** @nodoc */\n ngOnDestroy() {\n this.formDirective && this.formDirective.removeControl(this);\n }\n /**\n * @description\n * Returns an array that represents the path from the top-level form to this control.\n * Each index is the string name of the control on that level.\n */\n get path() {\n return this._getPath(this.name);\n }\n /**\n * @description\n * The top-level directive for this control if present, otherwise null.\n */\n get formDirective() {\n return this._parent ? this._parent.formDirective : null;\n }\n /**\n * @description\n * Sets the new value for the view model and emits an `ngModelChange` event.\n *\n * @param newValue The new value emitted by `ngModelChange`.\n */\n viewToModelUpdate(newValue) {\n this.viewModel = newValue;\n this.update.emit(newValue);\n }\n _setUpControl() {\n this._setUpdateStrategy();\n this._isStandalone() ? this._setUpStandalone() : this.formDirective.addControl(this);\n this._registered = true;\n }\n _setUpdateStrategy() {\n if (this.options && this.options.updateOn != null) {\n this.control._updateOn = this.options.updateOn;\n }\n }\n _isStandalone() {\n return !this._parent || !!(this.options && this.options.standalone);\n }\n _setUpStandalone() {\n setUpControl(this.control, this, this.callSetDisabledState);\n this.control.updateValueAndValidity({\n emitEvent: false\n });\n }\n _checkForErrors() {\n if (!this._isStandalone()) {\n this._checkParentType();\n }\n this._checkName();\n }\n _checkParentType() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!(this._parent instanceof NgModelGroup) && this._parent instanceof AbstractFormGroupDirective) {\n throw formGroupNameException();\n } else if (!(this._parent instanceof NgModelGroup) && !(this._parent instanceof NgForm)) {\n throw modelParentException();\n }\n }\n }\n _checkName() {\n if (this.options && this.options.name) this.name = this.options.name;\n if (!this._isStandalone() && !this.name && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw missingNameException();\n }\n }\n _updateValue(value) {\n resolvedPromise.then(() => {\n this.control.setValue(value, {\n emitViewToModelChange: false\n });\n this._changeDetectorRef?.markForCheck();\n });\n }\n _updateDisabled(changes) {\n const disabledValue = changes['isDisabled'].currentValue;\n // checking for 0 to avoid breaking change\n const isDisabled = disabledValue !== 0 && booleanAttribute(disabledValue);\n resolvedPromise.then(() => {\n if (isDisabled && !this.control.disabled) {\n this.control.disable();\n } else if (!isDisabled && this.control.disabled) {\n this.control.enable();\n }\n this._changeDetectorRef?.markForCheck();\n });\n }\n _getPath(controlName) {\n return this._parent ? controlPath(controlName, this._parent) : [controlName];\n }\n static {\n this.ɵfac = function NgModel_Factory(ɵt) {\n return new (ɵt || NgModel)(i0.ɵɵdirectiveInject(ControlContainer, 9), i0.ɵɵdirectiveInject(NG_VALIDATORS, 10), i0.ɵɵdirectiveInject(NG_ASYNC_VALIDATORS, 10), i0.ɵɵdirectiveInject(NG_VALUE_ACCESSOR, 10), i0.ɵɵdirectiveInject(ChangeDetectorRef, 8), i0.ɵɵdirectiveInject(CALL_SET_DISABLED_STATE, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgModel,\n selectors: [[\"\", \"ngModel\", \"\", 3, \"formControlName\", \"\", 3, \"formControl\", \"\"]],\n inputs: {\n name: \"name\",\n isDisabled: [0, \"disabled\", \"isDisabled\"],\n model: [0, \"ngModel\", \"model\"],\n options: [0, \"ngModelOptions\", \"options\"]\n },\n outputs: {\n update: \"ngModelChange\"\n },\n exportAs: [\"ngModel\"],\n features: [i0.ɵɵProvidersFeature([formControlBinding$1]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgModel, [{\n type: Directive,\n args: [{\n selector: '[ngModel]:not([formControlName]):not([formControl])',\n providers: [formControlBinding$1],\n exportAs: 'ngModel'\n }]\n }], () => [{\n type: ControlContainer,\n decorators: [{\n type: Optional\n }, {\n type: Host\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Self\n }, {\n type: Inject,\n args: [NG_VALIDATORS]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Self\n }, {\n type: Inject,\n args: [NG_ASYNC_VALIDATORS]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Self\n }, {\n type: Inject,\n args: [NG_VALUE_ACCESSOR]\n }]\n }, {\n type: i0.ChangeDetectorRef,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ChangeDetectorRef]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [CALL_SET_DISABLED_STATE]\n }]\n }], {\n name: [{\n type: Input\n }],\n isDisabled: [{\n type: Input,\n args: ['disabled']\n }],\n model: [{\n type: Input,\n args: ['ngModel']\n }],\n options: [{\n type: Input,\n args: ['ngModelOptions']\n }],\n update: [{\n type: Output,\n args: ['ngModelChange']\n }]\n });\n})();\n\n/**\n * @description\n *\n * Adds `novalidate` attribute to all forms by default.\n *\n * `novalidate` is used to disable browser's native form validation.\n *\n * If you want to use native validation with Angular forms, just add `ngNativeValidate` attribute:\n *\n * ```\n * \n * ```\n *\n * @publicApi\n * @ngModule ReactiveFormsModule\n * @ngModule FormsModule\n */\nclass ɵNgNoValidate {\n static {\n this.ɵfac = function ɵNgNoValidate_Factory(ɵt) {\n return new (ɵt || ɵNgNoValidate)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: ɵNgNoValidate,\n selectors: [[\"form\", 3, \"ngNoForm\", \"\", 3, \"ngNativeValidate\", \"\"]],\n hostAttrs: [\"novalidate\", \"\"]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ɵNgNoValidate, [{\n type: Directive,\n args: [{\n selector: 'form:not([ngNoForm]):not([ngNativeValidate])',\n host: {\n 'novalidate': ''\n }\n }]\n }], null, null);\n})();\nconst NUMBER_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NumberValueAccessor),\n multi: true\n};\n/**\n * @description\n * The `ControlValueAccessor` for writing a number value and listening to number input changes.\n * The value accessor is used by the `FormControlDirective`, `FormControlName`, and `NgModel`\n * directives.\n *\n * @usageNotes\n *\n * ### Using a number input with a reactive form.\n *\n * The following example shows how to use a number input with a reactive form.\n *\n * ```ts\n * const totalCountControl = new FormControl();\n * ```\n *\n * ```\n * \n * ```\n *\n * @ngModule ReactiveFormsModule\n * @ngModule FormsModule\n * @publicApi\n */\nclass NumberValueAccessor extends BuiltInControlValueAccessor {\n /**\n * Sets the \"value\" property on the input element.\n * @nodoc\n */\n writeValue(value) {\n // The value needs to be normalized for IE9, otherwise it is set to 'null' when null\n const normalizedValue = value == null ? '' : value;\n this.setProperty('value', normalizedValue);\n }\n /**\n * Registers a function called when the control value changes.\n * @nodoc\n */\n registerOnChange(fn) {\n this.onChange = value => {\n fn(value == '' ? null : parseFloat(value));\n };\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵNumberValueAccessor_BaseFactory;\n return function NumberValueAccessor_Factory(ɵt) {\n return (ɵNumberValueAccessor_BaseFactory || (ɵNumberValueAccessor_BaseFactory = i0.ɵɵgetInheritedFactory(NumberValueAccessor)))(ɵt || NumberValueAccessor);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NumberValueAccessor,\n selectors: [[\"input\", \"type\", \"number\", \"formControlName\", \"\"], [\"input\", \"type\", \"number\", \"formControl\", \"\"], [\"input\", \"type\", \"number\", \"ngModel\", \"\"]],\n hostBindings: function NumberValueAccessor_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"input\", function NumberValueAccessor_input_HostBindingHandler($event) {\n return ctx.onChange($event.target.value);\n })(\"blur\", function NumberValueAccessor_blur_HostBindingHandler() {\n return ctx.onTouched();\n });\n }\n },\n features: [i0.ɵɵProvidersFeature([NUMBER_VALUE_ACCESSOR]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NumberValueAccessor, [{\n type: Directive,\n args: [{\n selector: 'input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]',\n host: {\n '(input)': 'onChange($event.target.value)',\n '(blur)': 'onTouched()'\n },\n providers: [NUMBER_VALUE_ACCESSOR]\n }]\n }], null, null);\n})();\nconst RADIO_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioControlValueAccessor),\n multi: true\n};\nfunction throwNameError() {\n throw new ɵRuntimeError(1202 /* RuntimeErrorCode.NAME_AND_FORM_CONTROL_NAME_MUST_MATCH */, `\n If you define both a name and a formControlName attribute on your radio button, their values\n must match. Ex: \n `);\n}\n/**\n * @description\n * Class used by Angular to track radio buttons. For internal use only.\n */\nclass RadioControlRegistry {\n constructor() {\n this._accessors = [];\n }\n /**\n * @description\n * Adds a control to the internal registry. For internal use only.\n */\n add(control, accessor) {\n this._accessors.push([control, accessor]);\n }\n /**\n * @description\n * Removes a control from the internal registry. For internal use only.\n */\n remove(accessor) {\n for (let i = this._accessors.length - 1; i >= 0; --i) {\n if (this._accessors[i][1] === accessor) {\n this._accessors.splice(i, 1);\n return;\n }\n }\n }\n /**\n * @description\n * Selects a radio button. For internal use only.\n */\n select(accessor) {\n this._accessors.forEach(c => {\n if (this._isSameGroup(c, accessor) && c[1] !== accessor) {\n c[1].fireUncheck(accessor.value);\n }\n });\n }\n _isSameGroup(controlPair, accessor) {\n if (!controlPair[0].control) return false;\n return controlPair[0]._parent === accessor._control._parent && controlPair[1].name === accessor.name;\n }\n static {\n this.ɵfac = function RadioControlRegistry_Factory(ɵt) {\n return new (ɵt || RadioControlRegistry)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: RadioControlRegistry,\n factory: RadioControlRegistry.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(RadioControlRegistry, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\n/**\n * @description\n * The `ControlValueAccessor` for writing radio control values and listening to radio control\n * changes. The value accessor is used by the `FormControlDirective`, `FormControlName`, and\n * `NgModel` directives.\n *\n * @usageNotes\n *\n * ### Using radio buttons with reactive form directives\n *\n * The follow example shows how to use radio buttons in a reactive form. When using radio buttons in\n * a reactive form, radio buttons in the same group should have the same `formControlName`.\n * Providing a `name` attribute is optional.\n *\n * {@example forms/ts/reactiveRadioButtons/reactive_radio_button_example.ts region='Reactive'}\n *\n * @ngModule ReactiveFormsModule\n * @ngModule FormsModule\n * @publicApi\n */\nclass RadioControlValueAccessor extends BuiltInControlValueAccessor {\n constructor(renderer, elementRef, _registry, _injector) {\n super(renderer, elementRef);\n this._registry = _registry;\n this._injector = _injector;\n this.setDisabledStateFired = false;\n /**\n * The registered callback function called when a change event occurs on the input element.\n * Note: we declare `onChange` here (also used as host listener) as a function with no arguments\n * to override the `onChange` function (which expects 1 argument) in the parent\n * `BaseControlValueAccessor` class.\n * @nodoc\n */\n this.onChange = () => {};\n this.callSetDisabledState = inject(CALL_SET_DISABLED_STATE, {\n optional: true\n }) ?? setDisabledStateDefault;\n }\n /** @nodoc */\n ngOnInit() {\n this._control = this._injector.get(NgControl);\n this._checkName();\n this._registry.add(this._control, this);\n }\n /** @nodoc */\n ngOnDestroy() {\n this._registry.remove(this);\n }\n /**\n * Sets the \"checked\" property value on the radio input element.\n * @nodoc\n */\n writeValue(value) {\n this._state = value === this.value;\n this.setProperty('checked', this._state);\n }\n /**\n * Registers a function called when the control value changes.\n * @nodoc\n */\n registerOnChange(fn) {\n this._fn = fn;\n this.onChange = () => {\n fn(this.value);\n this._registry.select(this);\n };\n }\n /** @nodoc */\n setDisabledState(isDisabled) {\n /**\n * `setDisabledState` is supposed to be called whenever the disabled state of a control changes,\n * including upon control creation. However, a longstanding bug caused the method to not fire\n * when an *enabled* control was attached. This bug was fixed in v15 in #47576.\n *\n * This had a side effect: previously, it was possible to instantiate a reactive form control\n * with `[attr.disabled]=true`, even though the corresponding control was enabled in the\n * model. This resulted in a mismatch between the model and the DOM. Now, because\n * `setDisabledState` is always called, the value in the DOM will be immediately overwritten\n * with the \"correct\" enabled value.\n *\n * However, the fix also created an exceptional case: radio buttons. Because Reactive Forms\n * models the entire group of radio buttons as a single `FormControl`, there is no way to\n * control the disabled state for individual radios, so they can no longer be configured as\n * disabled. Thus, we keep the old behavior for radio buttons, so that `[attr.disabled]`\n * continues to work. Specifically, we drop the first call to `setDisabledState` if `disabled`\n * is `false`, and we are not in legacy mode.\n */\n if (this.setDisabledStateFired || isDisabled || this.callSetDisabledState === 'whenDisabledForLegacyCode') {\n this.setProperty('disabled', isDisabled);\n }\n this.setDisabledStateFired = true;\n }\n /**\n * Sets the \"value\" on the radio input element and unchecks it.\n *\n * @param value\n */\n fireUncheck(value) {\n this.writeValue(value);\n }\n _checkName() {\n if (this.name && this.formControlName && this.name !== this.formControlName && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throwNameError();\n }\n if (!this.name && this.formControlName) this.name = this.formControlName;\n }\n static {\n this.ɵfac = function RadioControlValueAccessor_Factory(ɵt) {\n return new (ɵt || RadioControlValueAccessor)(i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(RadioControlRegistry), i0.ɵɵdirectiveInject(i0.Injector));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: RadioControlValueAccessor,\n selectors: [[\"input\", \"type\", \"radio\", \"formControlName\", \"\"], [\"input\", \"type\", \"radio\", \"formControl\", \"\"], [\"input\", \"type\", \"radio\", \"ngModel\", \"\"]],\n hostBindings: function RadioControlValueAccessor_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"change\", function RadioControlValueAccessor_change_HostBindingHandler() {\n return ctx.onChange();\n })(\"blur\", function RadioControlValueAccessor_blur_HostBindingHandler() {\n return ctx.onTouched();\n });\n }\n },\n inputs: {\n name: \"name\",\n formControlName: \"formControlName\",\n value: \"value\"\n },\n features: [i0.ɵɵProvidersFeature([RADIO_VALUE_ACCESSOR]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(RadioControlValueAccessor, [{\n type: Directive,\n args: [{\n selector: 'input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]',\n host: {\n '(change)': 'onChange()',\n '(blur)': 'onTouched()'\n },\n providers: [RADIO_VALUE_ACCESSOR]\n }]\n }], () => [{\n type: i0.Renderer2\n }, {\n type: i0.ElementRef\n }, {\n type: RadioControlRegistry\n }, {\n type: i0.Injector\n }], {\n name: [{\n type: Input\n }],\n formControlName: [{\n type: Input\n }],\n value: [{\n type: Input\n }]\n });\n})();\nconst RANGE_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RangeValueAccessor),\n multi: true\n};\n/**\n * @description\n * The `ControlValueAccessor` for writing a range value and listening to range input changes.\n * The value accessor is used by the `FormControlDirective`, `FormControlName`, and `NgModel`\n * directives.\n *\n * @usageNotes\n *\n * ### Using a range input with a reactive form\n *\n * The following example shows how to use a range input with a reactive form.\n *\n * ```ts\n * const ageControl = new FormControl();\n * ```\n *\n * ```\n * \n * ```\n *\n * @ngModule ReactiveFormsModule\n * @ngModule FormsModule\n * @publicApi\n */\nclass RangeValueAccessor extends BuiltInControlValueAccessor {\n /**\n * Sets the \"value\" property on the input element.\n * @nodoc\n */\n writeValue(value) {\n this.setProperty('value', parseFloat(value));\n }\n /**\n * Registers a function called when the control value changes.\n * @nodoc\n */\n registerOnChange(fn) {\n this.onChange = value => {\n fn(value == '' ? null : parseFloat(value));\n };\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵRangeValueAccessor_BaseFactory;\n return function RangeValueAccessor_Factory(ɵt) {\n return (ɵRangeValueAccessor_BaseFactory || (ɵRangeValueAccessor_BaseFactory = i0.ɵɵgetInheritedFactory(RangeValueAccessor)))(ɵt || RangeValueAccessor);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: RangeValueAccessor,\n selectors: [[\"input\", \"type\", \"range\", \"formControlName\", \"\"], [\"input\", \"type\", \"range\", \"formControl\", \"\"], [\"input\", \"type\", \"range\", \"ngModel\", \"\"]],\n hostBindings: function RangeValueAccessor_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"change\", function RangeValueAccessor_change_HostBindingHandler($event) {\n return ctx.onChange($event.target.value);\n })(\"input\", function RangeValueAccessor_input_HostBindingHandler($event) {\n return ctx.onChange($event.target.value);\n })(\"blur\", function RangeValueAccessor_blur_HostBindingHandler() {\n return ctx.onTouched();\n });\n }\n },\n features: [i0.ɵɵProvidersFeature([RANGE_VALUE_ACCESSOR]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(RangeValueAccessor, [{\n type: Directive,\n args: [{\n selector: 'input[type=range][formControlName],input[type=range][formControl],input[type=range][ngModel]',\n host: {\n '(change)': 'onChange($event.target.value)',\n '(input)': 'onChange($event.target.value)',\n '(blur)': 'onTouched()'\n },\n providers: [RANGE_VALUE_ACCESSOR]\n }]\n }], null, null);\n})();\n\n/**\n * Token to provide to turn off the ngModel warning on formControl and formControlName.\n */\nconst NG_MODEL_WITH_FORM_CONTROL_WARNING = new InjectionToken(ngDevMode ? 'NgModelWithFormControlWarning' : '');\nconst formControlBinding = {\n provide: NgControl,\n useExisting: forwardRef(() => FormControlDirective)\n};\n/**\n * @description\n * Synchronizes a standalone `FormControl` instance to a form control element.\n *\n * Note that support for using the `ngModel` input property and `ngModelChange` event with reactive\n * form directives was deprecated in Angular v6 and is scheduled for removal in\n * a future version of Angular.\n *\n * @see [Reactive Forms Guide](guide/forms/reactive-forms)\n * @see {@link FormControl}\n * @see {@link AbstractControl}\n *\n * @usageNotes\n *\n * The following example shows how to register a standalone control and set its value.\n *\n * {@example forms/ts/simpleFormControl/simple_form_control_example.ts region='Component'}\n *\n * @ngModule ReactiveFormsModule\n * @publicApi\n */\nclass FormControlDirective extends NgControl {\n /**\n * @description\n * Triggers a warning in dev mode that this input should not be used with reactive forms.\n */\n set isDisabled(isDisabled) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n console.warn(disabledAttrWarning);\n }\n }\n /**\n * @description\n * Static property used to track whether any ngModel warnings have been sent across\n * all instances of FormControlDirective. Used to support warning config of \"once\".\n *\n * @internal\n */\n static {\n this._ngModelWarningSentOnce = false;\n }\n constructor(validators, asyncValidators, valueAccessors, _ngModelWarningConfig, callSetDisabledState) {\n super();\n this._ngModelWarningConfig = _ngModelWarningConfig;\n this.callSetDisabledState = callSetDisabledState;\n /** @deprecated as of v6 */\n this.update = new EventEmitter();\n /**\n * @description\n * Instance property used to track whether an ngModel warning has been sent out for this\n * particular `FormControlDirective` instance. Used to support warning config of \"always\".\n *\n * @internal\n */\n this._ngModelWarningSent = false;\n this._setValidators(validators);\n this._setAsyncValidators(asyncValidators);\n this.valueAccessor = selectValueAccessor(this, valueAccessors);\n }\n /** @nodoc */\n ngOnChanges(changes) {\n if (this._isControlChanged(changes)) {\n const previousForm = changes['form'].previousValue;\n if (previousForm) {\n cleanUpControl(previousForm, this, /* validateControlPresenceOnChange */false);\n }\n setUpControl(this.form, this, this.callSetDisabledState);\n this.form.updateValueAndValidity({\n emitEvent: false\n });\n }\n if (isPropertyUpdated(changes, this.viewModel)) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n _ngModelWarning('formControl', FormControlDirective, this, this._ngModelWarningConfig);\n }\n this.form.setValue(this.model);\n this.viewModel = this.model;\n }\n }\n /** @nodoc */\n ngOnDestroy() {\n if (this.form) {\n cleanUpControl(this.form, this, /* validateControlPresenceOnChange */false);\n }\n }\n /**\n * @description\n * Returns an array that represents the path from the top-level form to this control.\n * Each index is the string name of the control on that level.\n */\n get path() {\n return [];\n }\n /**\n * @description\n * The `FormControl` bound to this directive.\n */\n get control() {\n return this.form;\n }\n /**\n * @description\n * Sets the new value for the view model and emits an `ngModelChange` event.\n *\n * @param newValue The new value for the view model.\n */\n viewToModelUpdate(newValue) {\n this.viewModel = newValue;\n this.update.emit(newValue);\n }\n _isControlChanged(changes) {\n return changes.hasOwnProperty('form');\n }\n static {\n this.ɵfac = function FormControlDirective_Factory(ɵt) {\n return new (ɵt || FormControlDirective)(i0.ɵɵdirectiveInject(NG_VALIDATORS, 10), i0.ɵɵdirectiveInject(NG_ASYNC_VALIDATORS, 10), i0.ɵɵdirectiveInject(NG_VALUE_ACCESSOR, 10), i0.ɵɵdirectiveInject(NG_MODEL_WITH_FORM_CONTROL_WARNING, 8), i0.ɵɵdirectiveInject(CALL_SET_DISABLED_STATE, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: FormControlDirective,\n selectors: [[\"\", \"formControl\", \"\"]],\n inputs: {\n form: [0, \"formControl\", \"form\"],\n isDisabled: [0, \"disabled\", \"isDisabled\"],\n model: [0, \"ngModel\", \"model\"]\n },\n outputs: {\n update: \"ngModelChange\"\n },\n exportAs: [\"ngForm\"],\n features: [i0.ɵɵProvidersFeature([formControlBinding]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FormControlDirective, [{\n type: Directive,\n args: [{\n selector: '[formControl]',\n providers: [formControlBinding],\n exportAs: 'ngForm'\n }]\n }], () => [{\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Self\n }, {\n type: Inject,\n args: [NG_VALIDATORS]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Self\n }, {\n type: Inject,\n args: [NG_ASYNC_VALIDATORS]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Self\n }, {\n type: Inject,\n args: [NG_VALUE_ACCESSOR]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [NG_MODEL_WITH_FORM_CONTROL_WARNING]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [CALL_SET_DISABLED_STATE]\n }]\n }], {\n form: [{\n type: Input,\n args: ['formControl']\n }],\n isDisabled: [{\n type: Input,\n args: ['disabled']\n }],\n model: [{\n type: Input,\n args: ['ngModel']\n }],\n update: [{\n type: Output,\n args: ['ngModelChange']\n }]\n });\n})();\nconst formDirectiveProvider = {\n provide: ControlContainer,\n useExisting: forwardRef(() => FormGroupDirective)\n};\n/**\n * @description\n *\n * Binds an existing `FormGroup` or `FormRecord` to a DOM element.\n *\n * This directive accepts an existing `FormGroup` instance. It will then use this\n * `FormGroup` instance to match any child `FormControl`, `FormGroup`/`FormRecord`,\n * and `FormArray` instances to child `FormControlName`, `FormGroupName`,\n * and `FormArrayName` directives.\n *\n * @see [Reactive Forms Guide](guide/forms/reactive-forms)\n * @see {@link AbstractControl}\n *\n * @usageNotes\n * ### Register Form Group\n *\n * The following example registers a `FormGroup` with first name and last name controls,\n * and listens for the *ngSubmit* event when the button is clicked.\n *\n * {@example forms/ts/simpleFormGroup/simple_form_group_example.ts region='Component'}\n *\n * @ngModule ReactiveFormsModule\n * @publicApi\n */\nclass FormGroupDirective extends ControlContainer {\n /**\n * @description\n * Reports whether the form submission has been triggered.\n */\n get submitted() {\n return untracked(this._submittedReactive);\n }\n // TODO(atscott): Remove once invalid API usage is cleaned up internally\n set submitted(value) {\n this._submittedReactive.set(value);\n }\n constructor(validators, asyncValidators, callSetDisabledState) {\n super();\n this.callSetDisabledState = callSetDisabledState;\n /** @internal */\n this._submitted = computed(() => this._submittedReactive());\n this._submittedReactive = signal(false);\n /**\n * Callback that should be invoked when controls in FormGroup or FormArray collection change\n * (added or removed). This callback triggers corresponding DOM updates.\n */\n this._onCollectionChange = () => this._updateDomValue();\n /**\n * @description\n * Tracks the list of added `FormControlName` instances\n */\n this.directives = [];\n /**\n * @description\n * Tracks the `FormGroup` bound to this directive.\n */\n this.form = null;\n /**\n * @description\n * Emits an event when the form submission has been triggered.\n */\n this.ngSubmit = new EventEmitter();\n this._setValidators(validators);\n this._setAsyncValidators(asyncValidators);\n }\n /** @nodoc */\n ngOnChanges(changes) {\n this._checkFormPresent();\n if (changes.hasOwnProperty('form')) {\n this._updateValidators();\n this._updateDomValue();\n this._updateRegistrations();\n this._oldForm = this.form;\n }\n }\n /** @nodoc */\n ngOnDestroy() {\n if (this.form) {\n cleanUpValidators(this.form, this);\n // Currently the `onCollectionChange` callback is rewritten each time the\n // `_registerOnCollectionChange` function is invoked. The implication is that cleanup should\n // happen *only* when the `onCollectionChange` callback was set by this directive instance.\n // Otherwise it might cause overriding a callback of some other directive instances. We should\n // consider updating this logic later to make it similar to how `onChange` callbacks are\n // handled, see https://github.com/angular/angular/issues/39732 for additional info.\n if (this.form._onCollectionChange === this._onCollectionChange) {\n this.form._registerOnCollectionChange(() => {});\n }\n }\n }\n /**\n * @description\n * Returns this directive's instance.\n */\n get formDirective() {\n return this;\n }\n /**\n * @description\n * Returns the `FormGroup` bound to this directive.\n */\n get control() {\n return this.form;\n }\n /**\n * @description\n * Returns an array representing the path to this group. Because this directive\n * always lives at the top level of a form, it always an empty array.\n */\n get path() {\n return [];\n }\n /**\n * @description\n * Method that sets up the control directive in this group, re-calculates its value\n * and validity, and adds the instance to the internal list of directives.\n *\n * @param dir The `FormControlName` directive instance.\n */\n addControl(dir) {\n const ctrl = this.form.get(dir.path);\n setUpControl(ctrl, dir, this.callSetDisabledState);\n ctrl.updateValueAndValidity({\n emitEvent: false\n });\n this.directives.push(dir);\n return ctrl;\n }\n /**\n * @description\n * Retrieves the `FormControl` instance from the provided `FormControlName` directive\n *\n * @param dir The `FormControlName` directive instance.\n */\n getControl(dir) {\n return this.form.get(dir.path);\n }\n /**\n * @description\n * Removes the `FormControlName` instance from the internal list of directives\n *\n * @param dir The `FormControlName` directive instance.\n */\n removeControl(dir) {\n cleanUpControl(dir.control || null, dir, /* validateControlPresenceOnChange */false);\n removeListItem$1(this.directives, dir);\n }\n /**\n * Adds a new `FormGroupName` directive instance to the form.\n *\n * @param dir The `FormGroupName` directive instance.\n */\n addFormGroup(dir) {\n this._setUpFormContainer(dir);\n }\n /**\n * Performs the necessary cleanup when a `FormGroupName` directive instance is removed from the\n * view.\n *\n * @param dir The `FormGroupName` directive instance.\n */\n removeFormGroup(dir) {\n this._cleanUpFormContainer(dir);\n }\n /**\n * @description\n * Retrieves the `FormGroup` for a provided `FormGroupName` directive instance\n *\n * @param dir The `FormGroupName` directive instance.\n */\n getFormGroup(dir) {\n return this.form.get(dir.path);\n }\n /**\n * Performs the necessary setup when a `FormArrayName` directive instance is added to the view.\n *\n * @param dir The `FormArrayName` directive instance.\n */\n addFormArray(dir) {\n this._setUpFormContainer(dir);\n }\n /**\n * Performs the necessary cleanup when a `FormArrayName` directive instance is removed from the\n * view.\n *\n * @param dir The `FormArrayName` directive instance.\n */\n removeFormArray(dir) {\n this._cleanUpFormContainer(dir);\n }\n /**\n * @description\n * Retrieves the `FormArray` for a provided `FormArrayName` directive instance.\n *\n * @param dir The `FormArrayName` directive instance.\n */\n getFormArray(dir) {\n return this.form.get(dir.path);\n }\n /**\n * Sets the new value for the provided `FormControlName` directive.\n *\n * @param dir The `FormControlName` directive instance.\n * @param value The new value for the directive's control.\n */\n updateModel(dir, value) {\n const ctrl = this.form.get(dir.path);\n ctrl.setValue(value);\n }\n /**\n * @description\n * Method called with the \"submit\" event is triggered on the form.\n * Triggers the `ngSubmit` emitter to emit the \"submit\" event as its payload.\n *\n * @param $event The \"submit\" event object\n */\n onSubmit($event) {\n this._submittedReactive.set(true);\n syncPendingControls(this.form, this.directives);\n this.ngSubmit.emit($event);\n this.form._events.next(new FormSubmittedEvent(this.control));\n // Forms with `method=\"dialog\"` have some special behavior that won't reload the page and that\n // shouldn't be prevented. Note that we need to null check the `event` and the `target`, because\n // some internal apps call this method directly with the wrong arguments.\n return $event?.target?.method === 'dialog';\n }\n /**\n * @description\n * Method called when the \"reset\" event is triggered on the form.\n */\n onReset() {\n this.resetForm();\n }\n /**\n * @description\n * Resets the form to an initial value and resets its submitted status.\n *\n * @param value The new value for the form.\n */\n resetForm(value = undefined) {\n this.form.reset(value);\n this._submittedReactive.set(false);\n this.form._events.next(new FormResetEvent(this.form));\n }\n /** @internal */\n _updateDomValue() {\n this.directives.forEach(dir => {\n const oldCtrl = dir.control;\n const newCtrl = this.form.get(dir.path);\n if (oldCtrl !== newCtrl) {\n // Note: the value of the `dir.control` may not be defined, for example when it's a first\n // `FormControl` that is added to a `FormGroup` instance (via `addControl` call).\n cleanUpControl(oldCtrl || null, dir);\n // Check whether new control at the same location inside the corresponding `FormGroup` is an\n // instance of `FormControl` and perform control setup only if that's the case.\n // Note: we don't need to clear the list of directives (`this.directives`) here, it would be\n // taken care of in the `removeControl` method invoked when corresponding `formControlName`\n // directive instance is being removed (invoked from `FormControlName.ngOnDestroy`).\n if (isFormControl(newCtrl)) {\n setUpControl(newCtrl, dir, this.callSetDisabledState);\n dir.control = newCtrl;\n }\n }\n });\n this.form._updateTreeValidity({\n emitEvent: false\n });\n }\n _setUpFormContainer(dir) {\n const ctrl = this.form.get(dir.path);\n setUpFormContainer(ctrl, dir);\n // NOTE: this operation looks unnecessary in case no new validators were added in\n // `setUpFormContainer` call. Consider updating this code to match the logic in\n // `_cleanUpFormContainer` function.\n ctrl.updateValueAndValidity({\n emitEvent: false\n });\n }\n _cleanUpFormContainer(dir) {\n if (this.form) {\n const ctrl = this.form.get(dir.path);\n if (ctrl) {\n const isControlUpdated = cleanUpFormContainer(ctrl, dir);\n if (isControlUpdated) {\n // Run validity check only in case a control was updated (i.e. view validators were\n // removed) as removing view validators might cause validity to change.\n ctrl.updateValueAndValidity({\n emitEvent: false\n });\n }\n }\n }\n }\n _updateRegistrations() {\n this.form._registerOnCollectionChange(this._onCollectionChange);\n if (this._oldForm) {\n this._oldForm._registerOnCollectionChange(() => {});\n }\n }\n _updateValidators() {\n setUpValidators(this.form, this);\n if (this._oldForm) {\n cleanUpValidators(this._oldForm, this);\n }\n }\n _checkFormPresent() {\n if (!this.form && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw missingFormException();\n }\n }\n static {\n this.ɵfac = function FormGroupDirective_Factory(ɵt) {\n return new (ɵt || FormGroupDirective)(i0.ɵɵdirectiveInject(NG_VALIDATORS, 10), i0.ɵɵdirectiveInject(NG_ASYNC_VALIDATORS, 10), i0.ɵɵdirectiveInject(CALL_SET_DISABLED_STATE, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: FormGroupDirective,\n selectors: [[\"\", \"formGroup\", \"\"]],\n hostBindings: function FormGroupDirective_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"submit\", function FormGroupDirective_submit_HostBindingHandler($event) {\n return ctx.onSubmit($event);\n })(\"reset\", function FormGroupDirective_reset_HostBindingHandler() {\n return ctx.onReset();\n });\n }\n },\n inputs: {\n form: [0, \"formGroup\", \"form\"]\n },\n outputs: {\n ngSubmit: \"ngSubmit\"\n },\n exportAs: [\"ngForm\"],\n features: [i0.ɵɵProvidersFeature([formDirectiveProvider]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FormGroupDirective, [{\n type: Directive,\n args: [{\n selector: '[formGroup]',\n providers: [formDirectiveProvider],\n host: {\n '(submit)': 'onSubmit($event)',\n '(reset)': 'onReset()'\n },\n exportAs: 'ngForm'\n }]\n }], () => [{\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Self\n }, {\n type: Inject,\n args: [NG_VALIDATORS]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Self\n }, {\n type: Inject,\n args: [NG_ASYNC_VALIDATORS]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [CALL_SET_DISABLED_STATE]\n }]\n }], {\n form: [{\n type: Input,\n args: ['formGroup']\n }],\n ngSubmit: [{\n type: Output\n }]\n });\n})();\nconst formGroupNameProvider = {\n provide: ControlContainer,\n useExisting: forwardRef(() => FormGroupName)\n};\n/**\n * @description\n *\n * Syncs a nested `FormGroup` or `FormRecord` to a DOM element.\n *\n * This directive can only be used with a parent `FormGroupDirective`.\n *\n * It accepts the string name of the nested `FormGroup` or `FormRecord` to link, and\n * looks for a `FormGroup` or `FormRecord` registered with that name in the parent\n * `FormGroup` instance you passed into `FormGroupDirective`.\n *\n * Use nested form groups to validate a sub-group of a\n * form separately from the rest or to group the values of certain\n * controls into their own nested object.\n *\n * @see [Reactive Forms Guide](guide/forms/reactive-forms)\n *\n * @usageNotes\n *\n * ### Access the group by name\n *\n * The following example uses the `AbstractControl.get` method to access the\n * associated `FormGroup`\n *\n * ```ts\n * this.form.get('name');\n * ```\n *\n * ### Access individual controls in the group\n *\n * The following example uses the `AbstractControl.get` method to access\n * individual controls within the group using dot syntax.\n *\n * ```ts\n * this.form.get('name.first');\n * ```\n *\n * ### Register a nested `FormGroup`.\n *\n * The following example registers a nested *name* `FormGroup` within an existing `FormGroup`,\n * and provides methods to retrieve the nested `FormGroup` and individual controls.\n *\n * {@example forms/ts/nestedFormGroup/nested_form_group_example.ts region='Component'}\n *\n * @ngModule ReactiveFormsModule\n * @publicApi\n */\nclass FormGroupName extends AbstractFormGroupDirective {\n constructor(parent, validators, asyncValidators) {\n super();\n /**\n * @description\n * Tracks the name of the `FormGroup` bound to the directive. The name corresponds\n * to a key in the parent `FormGroup` or `FormArray`.\n * Accepts a name as a string or a number.\n * The name in the form of a string is useful for individual forms,\n * while the numerical form allows for form groups to be bound\n * to indices when iterating over groups in a `FormArray`.\n */\n this.name = null;\n this._parent = parent;\n this._setValidators(validators);\n this._setAsyncValidators(asyncValidators);\n }\n /** @internal */\n _checkParentType() {\n if (_hasInvalidParent(this._parent) && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw groupParentException();\n }\n }\n static {\n this.ɵfac = function FormGroupName_Factory(ɵt) {\n return new (ɵt || FormGroupName)(i0.ɵɵdirectiveInject(ControlContainer, 13), i0.ɵɵdirectiveInject(NG_VALIDATORS, 10), i0.ɵɵdirectiveInject(NG_ASYNC_VALIDATORS, 10));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: FormGroupName,\n selectors: [[\"\", \"formGroupName\", \"\"]],\n inputs: {\n name: [0, \"formGroupName\", \"name\"]\n },\n features: [i0.ɵɵProvidersFeature([formGroupNameProvider]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FormGroupName, [{\n type: Directive,\n args: [{\n selector: '[formGroupName]',\n providers: [formGroupNameProvider]\n }]\n }], () => [{\n type: ControlContainer,\n decorators: [{\n type: Optional\n }, {\n type: Host\n }, {\n type: SkipSelf\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Self\n }, {\n type: Inject,\n args: [NG_VALIDATORS]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Self\n }, {\n type: Inject,\n args: [NG_ASYNC_VALIDATORS]\n }]\n }], {\n name: [{\n type: Input,\n args: ['formGroupName']\n }]\n });\n})();\nconst formArrayNameProvider = {\n provide: ControlContainer,\n useExisting: forwardRef(() => FormArrayName)\n};\n/**\n * @description\n *\n * Syncs a nested `FormArray` to a DOM element.\n *\n * This directive is designed to be used with a parent `FormGroupDirective` (selector:\n * `[formGroup]`).\n *\n * It accepts the string name of the nested `FormArray` you want to link, and\n * will look for a `FormArray` registered with that name in the parent\n * `FormGroup` instance you passed into `FormGroupDirective`.\n *\n * @see [Reactive Forms Guide](guide/forms/reactive-forms)\n * @see {@link AbstractControl}\n *\n * @usageNotes\n *\n * ### Example\n *\n * {@example forms/ts/nestedFormArray/nested_form_array_example.ts region='Component'}\n *\n * @ngModule ReactiveFormsModule\n * @publicApi\n */\nclass FormArrayName extends ControlContainer {\n constructor(parent, validators, asyncValidators) {\n super();\n /**\n * @description\n * Tracks the name of the `FormArray` bound to the directive. The name corresponds\n * to a key in the parent `FormGroup` or `FormArray`.\n * Accepts a name as a string or a number.\n * The name in the form of a string is useful for individual forms,\n * while the numerical form allows for form arrays to be bound\n * to indices when iterating over arrays in a `FormArray`.\n */\n this.name = null;\n this._parent = parent;\n this._setValidators(validators);\n this._setAsyncValidators(asyncValidators);\n }\n /**\n * A lifecycle method called when the directive's inputs are initialized. For internal use only.\n * @throws If the directive does not have a valid parent.\n * @nodoc\n */\n ngOnInit() {\n this._checkParentType();\n this.formDirective.addFormArray(this);\n }\n /**\n * A lifecycle method called before the directive's instance is destroyed. For internal use only.\n * @nodoc\n */\n ngOnDestroy() {\n if (this.formDirective) {\n this.formDirective.removeFormArray(this);\n }\n }\n /**\n * @description\n * The `FormArray` bound to this directive.\n */\n get control() {\n return this.formDirective.getFormArray(this);\n }\n /**\n * @description\n * The top-level directive for this group if present, otherwise null.\n */\n get formDirective() {\n return this._parent ? this._parent.formDirective : null;\n }\n /**\n * @description\n * Returns an array that represents the path from the top-level form to this control.\n * Each index is the string name of the control on that level.\n */\n get path() {\n return controlPath(this.name == null ? this.name : this.name.toString(), this._parent);\n }\n _checkParentType() {\n if (_hasInvalidParent(this._parent) && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw arrayParentException();\n }\n }\n static {\n this.ɵfac = function FormArrayName_Factory(ɵt) {\n return new (ɵt || FormArrayName)(i0.ɵɵdirectiveInject(ControlContainer, 13), i0.ɵɵdirectiveInject(NG_VALIDATORS, 10), i0.ɵɵdirectiveInject(NG_ASYNC_VALIDATORS, 10));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: FormArrayName,\n selectors: [[\"\", \"formArrayName\", \"\"]],\n inputs: {\n name: [0, \"formArrayName\", \"name\"]\n },\n features: [i0.ɵɵProvidersFeature([formArrayNameProvider]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FormArrayName, [{\n type: Directive,\n args: [{\n selector: '[formArrayName]',\n providers: [formArrayNameProvider]\n }]\n }], () => [{\n type: ControlContainer,\n decorators: [{\n type: Optional\n }, {\n type: Host\n }, {\n type: SkipSelf\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Self\n }, {\n type: Inject,\n args: [NG_VALIDATORS]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Self\n }, {\n type: Inject,\n args: [NG_ASYNC_VALIDATORS]\n }]\n }], {\n name: [{\n type: Input,\n args: ['formArrayName']\n }]\n });\n})();\nfunction _hasInvalidParent(parent) {\n return !(parent instanceof FormGroupName) && !(parent instanceof FormGroupDirective) && !(parent instanceof FormArrayName);\n}\nconst controlNameBinding = {\n provide: NgControl,\n useExisting: forwardRef(() => FormControlName)\n};\n/**\n * @description\n * Syncs a `FormControl` in an existing `FormGroup` to a form control\n * element by name.\n *\n * @see [Reactive Forms Guide](guide/forms/reactive-forms)\n * @see {@link FormControl}\n * @see {@link AbstractControl}\n *\n * @usageNotes\n *\n * ### Register `FormControl` within a group\n *\n * The following example shows how to register multiple form controls within a form group\n * and set their value.\n *\n * {@example forms/ts/simpleFormGroup/simple_form_group_example.ts region='Component'}\n *\n * To see `formControlName` examples with different form control types, see:\n *\n * * Radio buttons: `RadioControlValueAccessor`\n * * Selects: `SelectControlValueAccessor`\n *\n * ### Use with ngModel is deprecated\n *\n * Support for using the `ngModel` input property and `ngModelChange` event with reactive\n * form directives has been deprecated in Angular v6 and is scheduled for removal in\n * a future version of Angular.\n *\n * @ngModule ReactiveFormsModule\n * @publicApi\n */\nclass FormControlName extends NgControl {\n /**\n * @description\n * Triggers a warning in dev mode that this input should not be used with reactive forms.\n */\n set isDisabled(isDisabled) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n console.warn(disabledAttrWarning);\n }\n }\n /**\n * @description\n * Static property used to track whether any ngModel warnings have been sent across\n * all instances of FormControlName. Used to support warning config of \"once\".\n *\n * @internal\n */\n static {\n this._ngModelWarningSentOnce = false;\n }\n constructor(parent, validators, asyncValidators, valueAccessors, _ngModelWarningConfig) {\n super();\n this._ngModelWarningConfig = _ngModelWarningConfig;\n this._added = false;\n /**\n * @description\n * Tracks the name of the `FormControl` bound to the directive. The name corresponds\n * to a key in the parent `FormGroup` or `FormArray`.\n * Accepts a name as a string or a number.\n * The name in the form of a string is useful for individual forms,\n * while the numerical form allows for form controls to be bound\n * to indices when iterating over controls in a `FormArray`.\n */\n this.name = null;\n /** @deprecated as of v6 */\n this.update = new EventEmitter();\n /**\n * @description\n * Instance property used to track whether an ngModel warning has been sent out for this\n * particular FormControlName instance. Used to support warning config of \"always\".\n *\n * @internal\n */\n this._ngModelWarningSent = false;\n this._parent = parent;\n this._setValidators(validators);\n this._setAsyncValidators(asyncValidators);\n this.valueAccessor = selectValueAccessor(this, valueAccessors);\n }\n /** @nodoc */\n ngOnChanges(changes) {\n if (!this._added) this._setUpControl();\n if (isPropertyUpdated(changes, this.viewModel)) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n _ngModelWarning('formControlName', FormControlName, this, this._ngModelWarningConfig);\n }\n this.viewModel = this.model;\n this.formDirective.updateModel(this, this.model);\n }\n }\n /** @nodoc */\n ngOnDestroy() {\n if (this.formDirective) {\n this.formDirective.removeControl(this);\n }\n }\n /**\n * @description\n * Sets the new value for the view model and emits an `ngModelChange` event.\n *\n * @param newValue The new value for the view model.\n */\n viewToModelUpdate(newValue) {\n this.viewModel = newValue;\n this.update.emit(newValue);\n }\n /**\n * @description\n * Returns an array that represents the path from the top-level form to this control.\n * Each index is the string name of the control on that level.\n */\n get path() {\n return controlPath(this.name == null ? this.name : this.name.toString(), this._parent);\n }\n /**\n * @description\n * The top-level directive for this group if present, otherwise null.\n */\n get formDirective() {\n return this._parent ? this._parent.formDirective : null;\n }\n _checkParentType() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!(this._parent instanceof FormGroupName) && this._parent instanceof AbstractFormGroupDirective) {\n throw ngModelGroupException();\n } else if (!(this._parent instanceof FormGroupName) && !(this._parent instanceof FormGroupDirective) && !(this._parent instanceof FormArrayName)) {\n throw controlParentException(this.name);\n }\n }\n }\n _setUpControl() {\n this._checkParentType();\n this.control = this.formDirective.addControl(this);\n this._added = true;\n }\n static {\n this.ɵfac = function FormControlName_Factory(ɵt) {\n return new (ɵt || FormControlName)(i0.ɵɵdirectiveInject(ControlContainer, 13), i0.ɵɵdirectiveInject(NG_VALIDATORS, 10), i0.ɵɵdirectiveInject(NG_ASYNC_VALIDATORS, 10), i0.ɵɵdirectiveInject(NG_VALUE_ACCESSOR, 10), i0.ɵɵdirectiveInject(NG_MODEL_WITH_FORM_CONTROL_WARNING, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: FormControlName,\n selectors: [[\"\", \"formControlName\", \"\"]],\n inputs: {\n name: [0, \"formControlName\", \"name\"],\n isDisabled: [0, \"disabled\", \"isDisabled\"],\n model: [0, \"ngModel\", \"model\"]\n },\n outputs: {\n update: \"ngModelChange\"\n },\n features: [i0.ɵɵProvidersFeature([controlNameBinding]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FormControlName, [{\n type: Directive,\n args: [{\n selector: '[formControlName]',\n providers: [controlNameBinding]\n }]\n }], () => [{\n type: ControlContainer,\n decorators: [{\n type: Optional\n }, {\n type: Host\n }, {\n type: SkipSelf\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Self\n }, {\n type: Inject,\n args: [NG_VALIDATORS]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Self\n }, {\n type: Inject,\n args: [NG_ASYNC_VALIDATORS]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Self\n }, {\n type: Inject,\n args: [NG_VALUE_ACCESSOR]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [NG_MODEL_WITH_FORM_CONTROL_WARNING]\n }]\n }], {\n name: [{\n type: Input,\n args: ['formControlName']\n }],\n isDisabled: [{\n type: Input,\n args: ['disabled']\n }],\n model: [{\n type: Input,\n args: ['ngModel']\n }],\n update: [{\n type: Output,\n args: ['ngModelChange']\n }]\n });\n})();\nconst SELECT_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectControlValueAccessor),\n multi: true\n};\nfunction _buildValueString$1(id, value) {\n if (id == null) return `${value}`;\n if (value && typeof value === 'object') value = 'Object';\n return `${id}: ${value}`.slice(0, 50);\n}\nfunction _extractId$1(valueString) {\n return valueString.split(':')[0];\n}\n/**\n * @description\n * The `ControlValueAccessor` for writing select control values and listening to select control\n * changes. The value accessor is used by the `FormControlDirective`, `FormControlName`, and\n * `NgModel` directives.\n *\n * @usageNotes\n *\n * ### Using select controls in a reactive form\n *\n * The following examples show how to use a select control in a reactive form.\n *\n * {@example forms/ts/reactiveSelectControl/reactive_select_control_example.ts region='Component'}\n *\n * ### Using select controls in a template-driven form\n *\n * To use a select in a template-driven form, simply add an `ngModel` and a `name`\n * attribute to the main `` tag.\n *\n * {@example forms/ts/selectControl/select_control_example.ts region='Component'}\n *\n * ### Customizing option selection\n *\n * Angular uses object identity to select option. It's possible for the identities of items\n * to change while the data does not. This can happen, for example, if the items are produced\n * from an RPC to the server, and that RPC is re-run. Even if the data hasn't changed, the\n * second response will produce objects with different identities.\n *\n * To customize the default option comparison algorithm, `` supports `compareWith` input.\n * `compareWith` takes a **function** which has two arguments: `option1` and `option2`.\n * If `compareWith` is given, Angular selects option by the return value of the function.\n *\n * ```ts\n * const selectedCountriesControl = new FormControl();\n * ```\n *\n * ```\n * \n * \n * {{country.name}}\n * \n * \n *\n * compareFn(c1: Country, c2: Country): boolean {\n * return c1 && c2 ? c1.id === c2.id : c1 === c2;\n * }\n * ```\n *\n * **Note:** We listen to the 'change' event because 'input' events aren't fired\n * for selects in IE, see:\n * https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event#browser_compatibility\n *\n * @ngModule ReactiveFormsModule\n * @ngModule FormsModule\n * @publicApi\n */\nclass SelectControlValueAccessor extends BuiltInControlValueAccessor {\n constructor() {\n super(...arguments);\n /** @internal */\n this._optionMap = new Map();\n /** @internal */\n this._idCounter = 0;\n this._compareWith = Object.is;\n }\n /**\n * @description\n * Tracks the option comparison algorithm for tracking identities when\n * checking for changes.\n */\n set compareWith(fn) {\n if (typeof fn !== 'function' && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw new ɵRuntimeError(1201 /* RuntimeErrorCode.COMPAREWITH_NOT_A_FN */, `compareWith must be a function, but received ${JSON.stringify(fn)}`);\n }\n this._compareWith = fn;\n }\n /**\n * Sets the \"value\" property on the select element.\n * @nodoc\n */\n writeValue(value) {\n this.value = value;\n const id = this._getOptionId(value);\n const valueString = _buildValueString$1(id, value);\n this.setProperty('value', valueString);\n }\n /**\n * Registers a function called when the control value changes.\n * @nodoc\n */\n registerOnChange(fn) {\n this.onChange = valueString => {\n this.value = this._getOptionValue(valueString);\n fn(this.value);\n };\n }\n /** @internal */\n _registerOption() {\n return (this._idCounter++).toString();\n }\n /** @internal */\n _getOptionId(value) {\n for (const id of this._optionMap.keys()) {\n if (this._compareWith(this._optionMap.get(id), value)) return id;\n }\n return null;\n }\n /** @internal */\n _getOptionValue(valueString) {\n const id = _extractId$1(valueString);\n return this._optionMap.has(id) ? this._optionMap.get(id) : valueString;\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵSelectControlValueAccessor_BaseFactory;\n return function SelectControlValueAccessor_Factory(ɵt) {\n return (ɵSelectControlValueAccessor_BaseFactory || (ɵSelectControlValueAccessor_BaseFactory = i0.ɵɵgetInheritedFactory(SelectControlValueAccessor)))(ɵt || SelectControlValueAccessor);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: SelectControlValueAccessor,\n selectors: [[\"select\", \"formControlName\", \"\", 3, \"multiple\", \"\"], [\"select\", \"formControl\", \"\", 3, \"multiple\", \"\"], [\"select\", \"ngModel\", \"\", 3, \"multiple\", \"\"]],\n hostBindings: function SelectControlValueAccessor_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"change\", function SelectControlValueAccessor_change_HostBindingHandler($event) {\n return ctx.onChange($event.target.value);\n })(\"blur\", function SelectControlValueAccessor_blur_HostBindingHandler() {\n return ctx.onTouched();\n });\n }\n },\n inputs: {\n compareWith: \"compareWith\"\n },\n features: [i0.ɵɵProvidersFeature([SELECT_VALUE_ACCESSOR]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SelectControlValueAccessor, [{\n type: Directive,\n args: [{\n selector: 'select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]',\n host: {\n '(change)': 'onChange($event.target.value)',\n '(blur)': 'onTouched()'\n },\n providers: [SELECT_VALUE_ACCESSOR]\n }]\n }], null, {\n compareWith: [{\n type: Input\n }]\n });\n})();\n/**\n * @description\n * Marks `` as dynamic, so Angular can be notified when options change.\n *\n * @see {@link SelectControlValueAccessor}\n *\n * @ngModule ReactiveFormsModule\n * @ngModule FormsModule\n * @publicApi\n */\nclass NgSelectOption {\n constructor(_element, _renderer, _select) {\n this._element = _element;\n this._renderer = _renderer;\n this._select = _select;\n if (this._select) this.id = this._select._registerOption();\n }\n /**\n * @description\n * Tracks the value bound to the option element. Unlike the value binding,\n * ngValue supports binding to objects.\n */\n set ngValue(value) {\n if (this._select == null) return;\n this._select._optionMap.set(this.id, value);\n this._setElementValue(_buildValueString$1(this.id, value));\n this._select.writeValue(this._select.value);\n }\n /**\n * @description\n * Tracks simple string values bound to the option element.\n * For objects, use the `ngValue` input binding.\n */\n set value(value) {\n this._setElementValue(value);\n if (this._select) this._select.writeValue(this._select.value);\n }\n /** @internal */\n _setElementValue(value) {\n this._renderer.setProperty(this._element.nativeElement, 'value', value);\n }\n /** @nodoc */\n ngOnDestroy() {\n if (this._select) {\n this._select._optionMap.delete(this.id);\n this._select.writeValue(this._select.value);\n }\n }\n static {\n this.ɵfac = function NgSelectOption_Factory(ɵt) {\n return new (ɵt || NgSelectOption)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(SelectControlValueAccessor, 9));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgSelectOption,\n selectors: [[\"option\"]],\n inputs: {\n ngValue: \"ngValue\",\n value: \"value\"\n }\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgSelectOption, [{\n type: Directive,\n args: [{\n selector: 'option'\n }]\n }], () => [{\n type: i0.ElementRef\n }, {\n type: i0.Renderer2\n }, {\n type: SelectControlValueAccessor,\n decorators: [{\n type: Optional\n }, {\n type: Host\n }]\n }], {\n ngValue: [{\n type: Input,\n args: ['ngValue']\n }],\n value: [{\n type: Input,\n args: ['value']\n }]\n });\n})();\nconst SELECT_MULTIPLE_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectMultipleControlValueAccessor),\n multi: true\n};\nfunction _buildValueString(id, value) {\n if (id == null) return `${value}`;\n if (typeof value === 'string') value = `'${value}'`;\n if (value && typeof value === 'object') value = 'Object';\n return `${id}: ${value}`.slice(0, 50);\n}\nfunction _extractId(valueString) {\n return valueString.split(':')[0];\n}\n/** Mock interface for HTMLCollection */\nclass HTMLCollection {}\n/**\n * @description\n * The `ControlValueAccessor` for writing multi-select control values and listening to multi-select\n * control changes. The value accessor is used by the `FormControlDirective`, `FormControlName`, and\n * `NgModel` directives.\n *\n * @see {@link SelectControlValueAccessor}\n *\n * @usageNotes\n *\n * ### Using a multi-select control\n *\n * The follow example shows you how to use a multi-select control with a reactive form.\n *\n * ```ts\n * const countryControl = new FormControl();\n * ```\n *\n * ```\n * \n * \n * {{ country.name }}\n * \n * \n * ```\n *\n * ### Customizing option selection\n *\n * To customize the default option comparison algorithm, `` supports `compareWith` input.\n * See the `SelectControlValueAccessor` for usage.\n *\n * @ngModule ReactiveFormsModule\n * @ngModule FormsModule\n * @publicApi\n */\nclass SelectMultipleControlValueAccessor extends BuiltInControlValueAccessor {\n constructor() {\n super(...arguments);\n /** @internal */\n this._optionMap = new Map();\n /** @internal */\n this._idCounter = 0;\n this._compareWith = Object.is;\n }\n /**\n * @description\n * Tracks the option comparison algorithm for tracking identities when\n * checking for changes.\n */\n set compareWith(fn) {\n if (typeof fn !== 'function' && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw new ɵRuntimeError(1201 /* RuntimeErrorCode.COMPAREWITH_NOT_A_FN */, `compareWith must be a function, but received ${JSON.stringify(fn)}`);\n }\n this._compareWith = fn;\n }\n /**\n * Sets the \"value\" property on one or of more of the select's options.\n * @nodoc\n */\n writeValue(value) {\n this.value = value;\n let optionSelectedStateSetter;\n if (Array.isArray(value)) {\n // convert values to ids\n const ids = value.map(v => this._getOptionId(v));\n optionSelectedStateSetter = (opt, o) => {\n opt._setSelected(ids.indexOf(o.toString()) > -1);\n };\n } else {\n optionSelectedStateSetter = (opt, o) => {\n opt._setSelected(false);\n };\n }\n this._optionMap.forEach(optionSelectedStateSetter);\n }\n /**\n * Registers a function called when the control value changes\n * and writes an array of the selected options.\n * @nodoc\n */\n registerOnChange(fn) {\n this.onChange = element => {\n const selected = [];\n const selectedOptions = element.selectedOptions;\n if (selectedOptions !== undefined) {\n const options = selectedOptions;\n for (let i = 0; i < options.length; i++) {\n const opt = options[i];\n const val = this._getOptionValue(opt.value);\n selected.push(val);\n }\n }\n // Degrade to use `options` when `selectedOptions` property is not available.\n // Note: the `selectedOptions` is available in all supported browsers, but the Domino lib\n // doesn't have it currently, see https://github.com/fgnass/domino/issues/177.\n else {\n const options = element.options;\n for (let i = 0; i < options.length; i++) {\n const opt = options[i];\n if (opt.selected) {\n const val = this._getOptionValue(opt.value);\n selected.push(val);\n }\n }\n }\n this.value = selected;\n fn(selected);\n };\n }\n /** @internal */\n _registerOption(value) {\n const id = (this._idCounter++).toString();\n this._optionMap.set(id, value);\n return id;\n }\n /** @internal */\n _getOptionId(value) {\n for (const id of this._optionMap.keys()) {\n if (this._compareWith(this._optionMap.get(id)._value, value)) return id;\n }\n return null;\n }\n /** @internal */\n _getOptionValue(valueString) {\n const id = _extractId(valueString);\n return this._optionMap.has(id) ? this._optionMap.get(id)._value : valueString;\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵSelectMultipleControlValueAccessor_BaseFactory;\n return function SelectMultipleControlValueAccessor_Factory(ɵt) {\n return (ɵSelectMultipleControlValueAccessor_BaseFactory || (ɵSelectMultipleControlValueAccessor_BaseFactory = i0.ɵɵgetInheritedFactory(SelectMultipleControlValueAccessor)))(ɵt || SelectMultipleControlValueAccessor);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: SelectMultipleControlValueAccessor,\n selectors: [[\"select\", \"multiple\", \"\", \"formControlName\", \"\"], [\"select\", \"multiple\", \"\", \"formControl\", \"\"], [\"select\", \"multiple\", \"\", \"ngModel\", \"\"]],\n hostBindings: function SelectMultipleControlValueAccessor_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"change\", function SelectMultipleControlValueAccessor_change_HostBindingHandler($event) {\n return ctx.onChange($event.target);\n })(\"blur\", function SelectMultipleControlValueAccessor_blur_HostBindingHandler() {\n return ctx.onTouched();\n });\n }\n },\n inputs: {\n compareWith: \"compareWith\"\n },\n features: [i0.ɵɵProvidersFeature([SELECT_MULTIPLE_VALUE_ACCESSOR]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SelectMultipleControlValueAccessor, [{\n type: Directive,\n args: [{\n selector: 'select[multiple][formControlName],select[multiple][formControl],select[multiple][ngModel]',\n host: {\n '(change)': 'onChange($event.target)',\n '(blur)': 'onTouched()'\n },\n providers: [SELECT_MULTIPLE_VALUE_ACCESSOR]\n }]\n }], null, {\n compareWith: [{\n type: Input\n }]\n });\n})();\n/**\n * @description\n * Marks `` as dynamic, so Angular can be notified when options change.\n *\n * @see {@link SelectMultipleControlValueAccessor}\n *\n * @ngModule ReactiveFormsModule\n * @ngModule FormsModule\n * @publicApi\n */\nclass ɵNgSelectMultipleOption {\n constructor(_element, _renderer, _select) {\n this._element = _element;\n this._renderer = _renderer;\n this._select = _select;\n if (this._select) {\n this.id = this._select._registerOption(this);\n }\n }\n /**\n * @description\n * Tracks the value bound to the option element. Unlike the value binding,\n * ngValue supports binding to objects.\n */\n set ngValue(value) {\n if (this._select == null) return;\n this._value = value;\n this._setElementValue(_buildValueString(this.id, value));\n this._select.writeValue(this._select.value);\n }\n /**\n * @description\n * Tracks simple string values bound to the option element.\n * For objects, use the `ngValue` input binding.\n */\n set value(value) {\n if (this._select) {\n this._value = value;\n this._setElementValue(_buildValueString(this.id, value));\n this._select.writeValue(this._select.value);\n } else {\n this._setElementValue(value);\n }\n }\n /** @internal */\n _setElementValue(value) {\n this._renderer.setProperty(this._element.nativeElement, 'value', value);\n }\n /** @internal */\n _setSelected(selected) {\n this._renderer.setProperty(this._element.nativeElement, 'selected', selected);\n }\n /** @nodoc */\n ngOnDestroy() {\n if (this._select) {\n this._select._optionMap.delete(this.id);\n this._select.writeValue(this._select.value);\n }\n }\n static {\n this.ɵfac = function ɵNgSelectMultipleOption_Factory(ɵt) {\n return new (ɵt || ɵNgSelectMultipleOption)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(SelectMultipleControlValueAccessor, 9));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: ɵNgSelectMultipleOption,\n selectors: [[\"option\"]],\n inputs: {\n ngValue: \"ngValue\",\n value: \"value\"\n }\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ɵNgSelectMultipleOption, [{\n type: Directive,\n args: [{\n selector: 'option'\n }]\n }], () => [{\n type: i0.ElementRef\n }, {\n type: i0.Renderer2\n }, {\n type: SelectMultipleControlValueAccessor,\n decorators: [{\n type: Optional\n }, {\n type: Host\n }]\n }], {\n ngValue: [{\n type: Input,\n args: ['ngValue']\n }],\n value: [{\n type: Input,\n args: ['value']\n }]\n });\n})();\n\n/**\n * Method that updates string to integer if not already a number\n *\n * @param value The value to convert to integer.\n * @returns value of parameter converted to number or integer.\n */\nfunction toInteger(value) {\n return typeof value === 'number' ? value : parseInt(value, 10);\n}\n/**\n * Method that ensures that provided value is a float (and converts it to float if needed).\n *\n * @param value The value to convert to float.\n * @returns value of parameter converted to number or float.\n */\nfunction toFloat(value) {\n return typeof value === 'number' ? value : parseFloat(value);\n}\n/**\n * A base class for Validator-based Directives. The class contains common logic shared across such\n * Directives.\n *\n * For internal use only, this class is not intended for use outside of the Forms package.\n */\nclass AbstractValidatorDirective {\n constructor() {\n this._validator = nullValidator;\n }\n /** @nodoc */\n ngOnChanges(changes) {\n if (this.inputName in changes) {\n const input = this.normalizeInput(changes[this.inputName].currentValue);\n this._enabled = this.enabled(input);\n this._validator = this._enabled ? this.createValidator(input) : nullValidator;\n if (this._onChange) {\n this._onChange();\n }\n }\n }\n /** @nodoc */\n validate(control) {\n return this._validator(control);\n }\n /** @nodoc */\n registerOnValidatorChange(fn) {\n this._onChange = fn;\n }\n /**\n * @description\n * Determines whether this validator should be active or not based on an input.\n * Base class implementation checks whether an input is defined (if the value is different from\n * `null` and `undefined`). Validator classes that extend this base class can override this\n * function with the logic specific to a particular validator directive.\n */\n enabled(input) {\n return input != null /* both `null` and `undefined` */;\n }\n static {\n this.ɵfac = function AbstractValidatorDirective_Factory(ɵt) {\n return new (ɵt || AbstractValidatorDirective)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: AbstractValidatorDirective,\n features: [i0.ɵɵNgOnChangesFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(AbstractValidatorDirective, [{\n type: Directive\n }], null, null);\n})();\n/**\n * @description\n * Provider which adds `MaxValidator` to the `NG_VALIDATORS` multi-provider list.\n */\nconst MAX_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => MaxValidator),\n multi: true\n};\n/**\n * A directive which installs the {@link MaxValidator} for any `formControlName`,\n * `formControl`, or control with `ngModel` that also has a `max` attribute.\n *\n * @see [Form Validation](guide/forms/form-validation)\n *\n * @usageNotes\n *\n * ### Adding a max validator\n *\n * The following example shows how to add a max validator to an input attached to an\n * ngModel binding.\n *\n * ```html\n * \n * ```\n *\n * @ngModule ReactiveFormsModule\n * @ngModule FormsModule\n * @publicApi\n */\nclass MaxValidator extends AbstractValidatorDirective {\n constructor() {\n super(...arguments);\n /** @internal */\n this.inputName = 'max';\n /** @internal */\n this.normalizeInput = input => toFloat(input);\n /** @internal */\n this.createValidator = max => maxValidator(max);\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMaxValidator_BaseFactory;\n return function MaxValidator_Factory(ɵt) {\n return (ɵMaxValidator_BaseFactory || (ɵMaxValidator_BaseFactory = i0.ɵɵgetInheritedFactory(MaxValidator)))(ɵt || MaxValidator);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MaxValidator,\n selectors: [[\"input\", \"type\", \"number\", \"max\", \"\", \"formControlName\", \"\"], [\"input\", \"type\", \"number\", \"max\", \"\", \"formControl\", \"\"], [\"input\", \"type\", \"number\", \"max\", \"\", \"ngModel\", \"\"]],\n hostVars: 1,\n hostBindings: function MaxValidator_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"max\", ctx._enabled ? ctx.max : null);\n }\n },\n inputs: {\n max: \"max\"\n },\n features: [i0.ɵɵProvidersFeature([MAX_VALIDATOR]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MaxValidator, [{\n type: Directive,\n args: [{\n selector: 'input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]',\n providers: [MAX_VALIDATOR],\n host: {\n '[attr.max]': '_enabled ? max : null'\n }\n }]\n }], null, {\n max: [{\n type: Input\n }]\n });\n})();\n/**\n * @description\n * Provider which adds `MinValidator` to the `NG_VALIDATORS` multi-provider list.\n */\nconst MIN_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => MinValidator),\n multi: true\n};\n/**\n * A directive which installs the {@link MinValidator} for any `formControlName`,\n * `formControl`, or control with `ngModel` that also has a `min` attribute.\n *\n * @see [Form Validation](guide/forms/form-validation)\n *\n * @usageNotes\n *\n * ### Adding a min validator\n *\n * The following example shows how to add a min validator to an input attached to an\n * ngModel binding.\n *\n * ```html\n * \n * ```\n *\n * @ngModule ReactiveFormsModule\n * @ngModule FormsModule\n * @publicApi\n */\nclass MinValidator extends AbstractValidatorDirective {\n constructor() {\n super(...arguments);\n /** @internal */\n this.inputName = 'min';\n /** @internal */\n this.normalizeInput = input => toFloat(input);\n /** @internal */\n this.createValidator = min => minValidator(min);\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMinValidator_BaseFactory;\n return function MinValidator_Factory(ɵt) {\n return (ɵMinValidator_BaseFactory || (ɵMinValidator_BaseFactory = i0.ɵɵgetInheritedFactory(MinValidator)))(ɵt || MinValidator);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MinValidator,\n selectors: [[\"input\", \"type\", \"number\", \"min\", \"\", \"formControlName\", \"\"], [\"input\", \"type\", \"number\", \"min\", \"\", \"formControl\", \"\"], [\"input\", \"type\", \"number\", \"min\", \"\", \"ngModel\", \"\"]],\n hostVars: 1,\n hostBindings: function MinValidator_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"min\", ctx._enabled ? ctx.min : null);\n }\n },\n inputs: {\n min: \"min\"\n },\n features: [i0.ɵɵProvidersFeature([MIN_VALIDATOR]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MinValidator, [{\n type: Directive,\n args: [{\n selector: 'input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]',\n providers: [MIN_VALIDATOR],\n host: {\n '[attr.min]': '_enabled ? min : null'\n }\n }]\n }], null, {\n min: [{\n type: Input\n }]\n });\n})();\n/**\n * @description\n * Provider which adds `RequiredValidator` to the `NG_VALIDATORS` multi-provider list.\n */\nconst REQUIRED_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => RequiredValidator),\n multi: true\n};\n/**\n * @description\n * Provider which adds `CheckboxRequiredValidator` to the `NG_VALIDATORS` multi-provider list.\n */\nconst CHECKBOX_REQUIRED_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => CheckboxRequiredValidator),\n multi: true\n};\n/**\n * @description\n * A directive that adds the `required` validator to any controls marked with the\n * `required` attribute. The directive is provided with the `NG_VALIDATORS` multi-provider list.\n *\n * @see [Form Validation](guide/forms/form-validation)\n *\n * @usageNotes\n *\n * ### Adding a required validator using template-driven forms\n *\n * ```\n * \n * ```\n *\n * @ngModule FormsModule\n * @ngModule ReactiveFormsModule\n * @publicApi\n */\nclass RequiredValidator extends AbstractValidatorDirective {\n constructor() {\n super(...arguments);\n /** @internal */\n this.inputName = 'required';\n /** @internal */\n this.normalizeInput = booleanAttribute;\n /** @internal */\n this.createValidator = input => requiredValidator;\n }\n /** @nodoc */\n enabled(input) {\n return input;\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵRequiredValidator_BaseFactory;\n return function RequiredValidator_Factory(ɵt) {\n return (ɵRequiredValidator_BaseFactory || (ɵRequiredValidator_BaseFactory = i0.ɵɵgetInheritedFactory(RequiredValidator)))(ɵt || RequiredValidator);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: RequiredValidator,\n selectors: [[\"\", \"required\", \"\", \"formControlName\", \"\", 3, \"type\", \"checkbox\"], [\"\", \"required\", \"\", \"formControl\", \"\", 3, \"type\", \"checkbox\"], [\"\", \"required\", \"\", \"ngModel\", \"\", 3, \"type\", \"checkbox\"]],\n hostVars: 1,\n hostBindings: function RequiredValidator_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"required\", ctx._enabled ? \"\" : null);\n }\n },\n inputs: {\n required: \"required\"\n },\n features: [i0.ɵɵProvidersFeature([REQUIRED_VALIDATOR]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(RequiredValidator, [{\n type: Directive,\n args: [{\n selector: ':not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]',\n providers: [REQUIRED_VALIDATOR],\n host: {\n '[attr.required]': '_enabled ? \"\" : null'\n }\n }]\n }], null, {\n required: [{\n type: Input\n }]\n });\n})();\n/**\n * A Directive that adds the `required` validator to checkbox controls marked with the\n * `required` attribute. The directive is provided with the `NG_VALIDATORS` multi-provider list.\n *\n * @see [Form Validation](guide/forms/form-validation)\n *\n * @usageNotes\n *\n * ### Adding a required checkbox validator using template-driven forms\n *\n * The following example shows how to add a checkbox required validator to an input attached to an\n * ngModel binding.\n *\n * ```\n * \n * ```\n *\n * @publicApi\n * @ngModule FormsModule\n * @ngModule ReactiveFormsModule\n */\nclass CheckboxRequiredValidator extends RequiredValidator {\n constructor() {\n super(...arguments);\n /** @internal */\n this.createValidator = input => requiredTrueValidator;\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵCheckboxRequiredValidator_BaseFactory;\n return function CheckboxRequiredValidator_Factory(ɵt) {\n return (ɵCheckboxRequiredValidator_BaseFactory || (ɵCheckboxRequiredValidator_BaseFactory = i0.ɵɵgetInheritedFactory(CheckboxRequiredValidator)))(ɵt || CheckboxRequiredValidator);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CheckboxRequiredValidator,\n selectors: [[\"input\", \"type\", \"checkbox\", \"required\", \"\", \"formControlName\", \"\"], [\"input\", \"type\", \"checkbox\", \"required\", \"\", \"formControl\", \"\"], [\"input\", \"type\", \"checkbox\", \"required\", \"\", \"ngModel\", \"\"]],\n hostVars: 1,\n hostBindings: function CheckboxRequiredValidator_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"required\", ctx._enabled ? \"\" : null);\n }\n },\n features: [i0.ɵɵProvidersFeature([CHECKBOX_REQUIRED_VALIDATOR]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CheckboxRequiredValidator, [{\n type: Directive,\n args: [{\n selector: 'input[type=checkbox][required][formControlName],input[type=checkbox][required][formControl],input[type=checkbox][required][ngModel]',\n providers: [CHECKBOX_REQUIRED_VALIDATOR],\n host: {\n '[attr.required]': '_enabled ? \"\" : null'\n }\n }]\n }], null, null);\n})();\n/**\n * @description\n * Provider which adds `EmailValidator` to the `NG_VALIDATORS` multi-provider list.\n */\nconst EMAIL_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => EmailValidator),\n multi: true\n};\n/**\n * A directive that adds the `email` validator to controls marked with the\n * `email` attribute. The directive is provided with the `NG_VALIDATORS` multi-provider list.\n *\n * The email validation is based on the WHATWG HTML specification with some enhancements to\n * incorporate more RFC rules. More information can be found on the [Validators.email\n * page](api/forms/Validators#email).\n *\n * @see [Form Validation](guide/forms/form-validation)\n *\n * @usageNotes\n *\n * ### Adding an email validator\n *\n * The following example shows how to add an email validator to an input attached to an ngModel\n * binding.\n *\n * ```\n * \n * \n * \n * ```\n *\n * @publicApi\n * @ngModule FormsModule\n * @ngModule ReactiveFormsModule\n */\nclass EmailValidator extends AbstractValidatorDirective {\n constructor() {\n super(...arguments);\n /** @internal */\n this.inputName = 'email';\n /** @internal */\n this.normalizeInput = booleanAttribute;\n /** @internal */\n this.createValidator = input => emailValidator;\n }\n /** @nodoc */\n enabled(input) {\n return input;\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵEmailValidator_BaseFactory;\n return function EmailValidator_Factory(ɵt) {\n return (ɵEmailValidator_BaseFactory || (ɵEmailValidator_BaseFactory = i0.ɵɵgetInheritedFactory(EmailValidator)))(ɵt || EmailValidator);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: EmailValidator,\n selectors: [[\"\", \"email\", \"\", \"formControlName\", \"\"], [\"\", \"email\", \"\", \"formControl\", \"\"], [\"\", \"email\", \"\", \"ngModel\", \"\"]],\n inputs: {\n email: \"email\"\n },\n features: [i0.ɵɵProvidersFeature([EMAIL_VALIDATOR]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(EmailValidator, [{\n type: Directive,\n args: [{\n selector: '[email][formControlName],[email][formControl],[email][ngModel]',\n providers: [EMAIL_VALIDATOR]\n }]\n }], null, {\n email: [{\n type: Input\n }]\n });\n})();\n/**\n * @description\n * Provider which adds `MinLengthValidator` to the `NG_VALIDATORS` multi-provider list.\n */\nconst MIN_LENGTH_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => MinLengthValidator),\n multi: true\n};\n/**\n * A directive that adds minimum length validation to controls marked with the\n * `minlength` attribute. The directive is provided with the `NG_VALIDATORS` multi-provider list.\n *\n * @see [Form Validation](guide/forms/form-validation)\n *\n * @usageNotes\n *\n * ### Adding a minimum length validator\n *\n * The following example shows how to add a minimum length validator to an input attached to an\n * ngModel binding.\n *\n * ```html\n * \n * ```\n *\n * @ngModule ReactiveFormsModule\n * @ngModule FormsModule\n * @publicApi\n */\nclass MinLengthValidator extends AbstractValidatorDirective {\n constructor() {\n super(...arguments);\n /** @internal */\n this.inputName = 'minlength';\n /** @internal */\n this.normalizeInput = input => toInteger(input);\n /** @internal */\n this.createValidator = minlength => minLengthValidator(minlength);\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMinLengthValidator_BaseFactory;\n return function MinLengthValidator_Factory(ɵt) {\n return (ɵMinLengthValidator_BaseFactory || (ɵMinLengthValidator_BaseFactory = i0.ɵɵgetInheritedFactory(MinLengthValidator)))(ɵt || MinLengthValidator);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MinLengthValidator,\n selectors: [[\"\", \"minlength\", \"\", \"formControlName\", \"\"], [\"\", \"minlength\", \"\", \"formControl\", \"\"], [\"\", \"minlength\", \"\", \"ngModel\", \"\"]],\n hostVars: 1,\n hostBindings: function MinLengthValidator_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"minlength\", ctx._enabled ? ctx.minlength : null);\n }\n },\n inputs: {\n minlength: \"minlength\"\n },\n features: [i0.ɵɵProvidersFeature([MIN_LENGTH_VALIDATOR]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MinLengthValidator, [{\n type: Directive,\n args: [{\n selector: '[minlength][formControlName],[minlength][formControl],[minlength][ngModel]',\n providers: [MIN_LENGTH_VALIDATOR],\n host: {\n '[attr.minlength]': '_enabled ? minlength : null'\n }\n }]\n }], null, {\n minlength: [{\n type: Input\n }]\n });\n})();\n/**\n * @description\n * Provider which adds `MaxLengthValidator` to the `NG_VALIDATORS` multi-provider list.\n */\nconst MAX_LENGTH_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => MaxLengthValidator),\n multi: true\n};\n/**\n * A directive that adds maximum length validation to controls marked with the\n * `maxlength` attribute. The directive is provided with the `NG_VALIDATORS` multi-provider list.\n *\n * @see [Form Validation](guide/forms/form-validation)\n *\n * @usageNotes\n *\n * ### Adding a maximum length validator\n *\n * The following example shows how to add a maximum length validator to an input attached to an\n * ngModel binding.\n *\n * ```html\n * \n * ```\n *\n * @ngModule ReactiveFormsModule\n * @ngModule FormsModule\n * @publicApi\n */\nclass MaxLengthValidator extends AbstractValidatorDirective {\n constructor() {\n super(...arguments);\n /** @internal */\n this.inputName = 'maxlength';\n /** @internal */\n this.normalizeInput = input => toInteger(input);\n /** @internal */\n this.createValidator = maxlength => maxLengthValidator(maxlength);\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMaxLengthValidator_BaseFactory;\n return function MaxLengthValidator_Factory(ɵt) {\n return (ɵMaxLengthValidator_BaseFactory || (ɵMaxLengthValidator_BaseFactory = i0.ɵɵgetInheritedFactory(MaxLengthValidator)))(ɵt || MaxLengthValidator);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MaxLengthValidator,\n selectors: [[\"\", \"maxlength\", \"\", \"formControlName\", \"\"], [\"\", \"maxlength\", \"\", \"formControl\", \"\"], [\"\", \"maxlength\", \"\", \"ngModel\", \"\"]],\n hostVars: 1,\n hostBindings: function MaxLengthValidator_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"maxlength\", ctx._enabled ? ctx.maxlength : null);\n }\n },\n inputs: {\n maxlength: \"maxlength\"\n },\n features: [i0.ɵɵProvidersFeature([MAX_LENGTH_VALIDATOR]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MaxLengthValidator, [{\n type: Directive,\n args: [{\n selector: '[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]',\n providers: [MAX_LENGTH_VALIDATOR],\n host: {\n '[attr.maxlength]': '_enabled ? maxlength : null'\n }\n }]\n }], null, {\n maxlength: [{\n type: Input\n }]\n });\n})();\n/**\n * @description\n * Provider which adds `PatternValidator` to the `NG_VALIDATORS` multi-provider list.\n */\nconst PATTERN_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => PatternValidator),\n multi: true\n};\n/**\n * @description\n * A directive that adds regex pattern validation to controls marked with the\n * `pattern` attribute. The regex must match the entire control value.\n * The directive is provided with the `NG_VALIDATORS` multi-provider list.\n *\n * @see [Form Validation](guide/forms/form-validation)\n *\n * @usageNotes\n *\n * ### Adding a pattern validator\n *\n * The following example shows how to add a pattern validator to an input attached to an\n * ngModel binding.\n *\n * ```html\n * \n * ```\n *\n * @ngModule ReactiveFormsModule\n * @ngModule FormsModule\n * @publicApi\n */\nclass PatternValidator extends AbstractValidatorDirective {\n constructor() {\n super(...arguments);\n /** @internal */\n this.inputName = 'pattern';\n /** @internal */\n this.normalizeInput = input => input;\n /** @internal */\n this.createValidator = input => patternValidator(input);\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵPatternValidator_BaseFactory;\n return function PatternValidator_Factory(ɵt) {\n return (ɵPatternValidator_BaseFactory || (ɵPatternValidator_BaseFactory = i0.ɵɵgetInheritedFactory(PatternValidator)))(ɵt || PatternValidator);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: PatternValidator,\n selectors: [[\"\", \"pattern\", \"\", \"formControlName\", \"\"], [\"\", \"pattern\", \"\", \"formControl\", \"\"], [\"\", \"pattern\", \"\", \"ngModel\", \"\"]],\n hostVars: 1,\n hostBindings: function PatternValidator_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"pattern\", ctx._enabled ? ctx.pattern : null);\n }\n },\n inputs: {\n pattern: \"pattern\"\n },\n features: [i0.ɵɵProvidersFeature([PATTERN_VALIDATOR]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(PatternValidator, [{\n type: Directive,\n args: [{\n selector: '[pattern][formControlName],[pattern][formControl],[pattern][ngModel]',\n providers: [PATTERN_VALIDATOR],\n host: {\n '[attr.pattern]': '_enabled ? pattern : null'\n }\n }]\n }], null, {\n pattern: [{\n type: Input\n }]\n });\n})();\nconst SHARED_FORM_DIRECTIVES = [ɵNgNoValidate, NgSelectOption, ɵNgSelectMultipleOption, DefaultValueAccessor, NumberValueAccessor, RangeValueAccessor, CheckboxControlValueAccessor, SelectControlValueAccessor, SelectMultipleControlValueAccessor, RadioControlValueAccessor, NgControlStatus, NgControlStatusGroup, RequiredValidator, MinLengthValidator, MaxLengthValidator, PatternValidator, CheckboxRequiredValidator, EmailValidator, MinValidator, MaxValidator];\nconst TEMPLATE_DRIVEN_DIRECTIVES = [NgModel, NgModelGroup, NgForm];\nconst REACTIVE_DRIVEN_DIRECTIVES = [FormControlDirective, FormGroupDirective, FormControlName, FormGroupName, FormArrayName];\n/**\n * Internal module used for sharing directives between FormsModule and ReactiveFormsModule\n */\nclass ɵInternalFormsSharedModule {\n static {\n this.ɵfac = function ɵInternalFormsSharedModule_Factory(ɵt) {\n return new (ɵt || ɵInternalFormsSharedModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: ɵInternalFormsSharedModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ɵInternalFormsSharedModule, [{\n type: NgModule,\n args: [{\n declarations: SHARED_FORM_DIRECTIVES,\n exports: SHARED_FORM_DIRECTIVES\n }]\n }], null, null);\n})();\n\n/**\n * Tracks the value and validity state of an array of `FormControl`,\n * `FormGroup` or `FormArray` instances.\n *\n * A `FormArray` aggregates the values of each child `FormControl` into an array.\n * It calculates its status by reducing the status values of its children. For example, if one of\n * the controls in a `FormArray` is invalid, the entire array becomes invalid.\n *\n * `FormArray` accepts one generic argument, which is the type of the controls inside.\n * If you need a heterogenous array, use {@link UntypedFormArray}.\n *\n * `FormArray` is one of the four fundamental building blocks used to define forms in Angular,\n * along with `FormControl`, `FormGroup`, and `FormRecord`.\n *\n * @usageNotes\n *\n * ### Create an array of form controls\n *\n * ```\n * const arr = new FormArray([\n * new FormControl('Nancy', Validators.minLength(2)),\n * new FormControl('Drew'),\n * ]);\n *\n * console.log(arr.value); // ['Nancy', 'Drew']\n * console.log(arr.status); // 'VALID'\n * ```\n *\n * ### Create a form array with array-level validators\n *\n * You include array-level validators and async validators. These come in handy\n * when you want to perform validation that considers the value of more than one child\n * control.\n *\n * The two types of validators are passed in separately as the second and third arg\n * respectively, or together as part of an options object.\n *\n * ```\n * const arr = new FormArray([\n * new FormControl('Nancy'),\n * new FormControl('Drew')\n * ], {validators: myValidator, asyncValidators: myAsyncValidator});\n * ```\n *\n * ### Set the updateOn property for all controls in a form array\n *\n * The options object is used to set a default value for each child\n * control's `updateOn` property. If you set `updateOn` to `'blur'` at the\n * array level, all child controls default to 'blur', unless the child\n * has explicitly specified a different `updateOn` value.\n *\n * ```ts\n * const arr = new FormArray([\n * new FormControl()\n * ], {updateOn: 'blur'});\n * ```\n *\n * ### Adding or removing controls from a form array\n *\n * To change the controls in the array, use the `push`, `insert`, `removeAt` or `clear` methods\n * in `FormArray` itself. These methods ensure the controls are properly tracked in the\n * form's hierarchy. Do not modify the array of `AbstractControl`s used to instantiate\n * the `FormArray` directly, as that result in strange and unexpected behavior such\n * as broken change detection.\n *\n * @publicApi\n */\nclass FormArray extends AbstractControl {\n /**\n * Creates a new `FormArray` instance.\n *\n * @param controls An array of child controls. Each child control is given an index\n * where it is registered.\n *\n * @param validatorOrOpts A synchronous validator function, or an array of\n * such functions, or an `AbstractControlOptions` object that contains validation functions\n * and a validation trigger.\n *\n * @param asyncValidator A single async validator or array of async validator functions\n *\n */\n constructor(controls, validatorOrOpts, asyncValidator) {\n super(pickValidators(validatorOrOpts), pickAsyncValidators(asyncValidator, validatorOrOpts));\n this.controls = controls;\n this._initObservables();\n this._setUpdateStrategy(validatorOrOpts);\n this._setUpControls();\n this.updateValueAndValidity({\n onlySelf: true,\n // If `asyncValidator` is present, it will trigger control status change from `PENDING` to\n // `VALID` or `INVALID`.\n // The status should be broadcasted via the `statusChanges` observable, so we set `emitEvent`\n // to `true` to allow that during the control creation process.\n emitEvent: !!this.asyncValidator\n });\n }\n /**\n * Get the `AbstractControl` at the given `index` in the array.\n *\n * @param index Index in the array to retrieve the control. If `index` is negative, it will wrap\n * around from the back, and if index is greatly negative (less than `-length`), the result is\n * undefined. This behavior is the same as `Array.at(index)`.\n */\n at(index) {\n return this.controls[this._adjustIndex(index)];\n }\n /**\n * Insert a new `AbstractControl` at the end of the array.\n *\n * @param control Form control to be inserted\n * @param options Specifies whether this FormArray instance should emit events after a new\n * control is added.\n * * `emitEvent`: When true or not supplied (the default), both the `statusChanges` and\n * `valueChanges` observables emit events with the latest status and value when the control is\n * inserted. When false, no events are emitted.\n */\n push(control, options = {}) {\n this.controls.push(control);\n this._registerControl(control);\n this.updateValueAndValidity({\n emitEvent: options.emitEvent\n });\n this._onCollectionChange();\n }\n /**\n * Insert a new `AbstractControl` at the given `index` in the array.\n *\n * @param index Index in the array to insert the control. If `index` is negative, wraps around\n * from the back. If `index` is greatly negative (less than `-length`), prepends to the array.\n * This behavior is the same as `Array.splice(index, 0, control)`.\n * @param control Form control to be inserted\n * @param options Specifies whether this FormArray instance should emit events after a new\n * control is inserted.\n * * `emitEvent`: When true or not supplied (the default), both the `statusChanges` and\n * `valueChanges` observables emit events with the latest status and value when the control is\n * inserted. When false, no events are emitted.\n */\n insert(index, control, options = {}) {\n this.controls.splice(index, 0, control);\n this._registerControl(control);\n this.updateValueAndValidity({\n emitEvent: options.emitEvent\n });\n }\n /**\n * Remove the control at the given `index` in the array.\n *\n * @param index Index in the array to remove the control. If `index` is negative, wraps around\n * from the back. If `index` is greatly negative (less than `-length`), removes the first\n * element. This behavior is the same as `Array.splice(index, 1)`.\n * @param options Specifies whether this FormArray instance should emit events after a\n * control is removed.\n * * `emitEvent`: When true or not supplied (the default), both the `statusChanges` and\n * `valueChanges` observables emit events with the latest status and value when the control is\n * removed. When false, no events are emitted.\n */\n removeAt(index, options = {}) {\n // Adjust the index, then clamp it at no less than 0 to prevent undesired underflows.\n let adjustedIndex = this._adjustIndex(index);\n if (adjustedIndex < 0) adjustedIndex = 0;\n if (this.controls[adjustedIndex]) this.controls[adjustedIndex]._registerOnCollectionChange(() => {});\n this.controls.splice(adjustedIndex, 1);\n this.updateValueAndValidity({\n emitEvent: options.emitEvent\n });\n }\n /**\n * Replace an existing control.\n *\n * @param index Index in the array to replace the control. If `index` is negative, wraps around\n * from the back. If `index` is greatly negative (less than `-length`), replaces the first\n * element. This behavior is the same as `Array.splice(index, 1, control)`.\n * @param control The `AbstractControl` control to replace the existing control\n * @param options Specifies whether this FormArray instance should emit events after an\n * existing control is replaced with a new one.\n * * `emitEvent`: When true or not supplied (the default), both the `statusChanges` and\n * `valueChanges` observables emit events with the latest status and value when the control is\n * replaced with a new one. When false, no events are emitted.\n */\n setControl(index, control, options = {}) {\n // Adjust the index, then clamp it at no less than 0 to prevent undesired underflows.\n let adjustedIndex = this._adjustIndex(index);\n if (adjustedIndex < 0) adjustedIndex = 0;\n if (this.controls[adjustedIndex]) this.controls[adjustedIndex]._registerOnCollectionChange(() => {});\n this.controls.splice(adjustedIndex, 1);\n if (control) {\n this.controls.splice(adjustedIndex, 0, control);\n this._registerControl(control);\n }\n this.updateValueAndValidity({\n emitEvent: options.emitEvent\n });\n this._onCollectionChange();\n }\n /**\n * Length of the control array.\n */\n get length() {\n return this.controls.length;\n }\n /**\n * Sets the value of the `FormArray`. It accepts an array that matches\n * the structure of the control.\n *\n * This method performs strict checks, and throws an error if you try\n * to set the value of a control that doesn't exist or if you exclude the\n * value of a control.\n *\n * @usageNotes\n * ### Set the values for the controls in the form array\n *\n * ```\n * const arr = new FormArray([\n * new FormControl(),\n * new FormControl()\n * ]);\n * console.log(arr.value); // [null, null]\n *\n * arr.setValue(['Nancy', 'Drew']);\n * console.log(arr.value); // ['Nancy', 'Drew']\n * ```\n *\n * @param value Array of values for the controls\n * @param options Configure options that determine how the control propagates changes and\n * emits events after the value changes\n *\n * * `onlySelf`: When true, each change only affects this control, and not its parent. Default\n * is false.\n * * `emitEvent`: When true or not supplied (the default), both the `statusChanges` and\n * `valueChanges`\n * observables emit events with the latest status and value when the control value is updated.\n * When false, no events are emitted.\n * The configuration options are passed to the {@link AbstractControl#updateValueAndValidity\n * updateValueAndValidity} method.\n */\n setValue(value, options = {}) {\n assertAllValuesPresent(this, false, value);\n value.forEach((newValue, index) => {\n assertControlPresent(this, false, index);\n this.at(index).setValue(newValue, {\n onlySelf: true,\n emitEvent: options.emitEvent\n });\n });\n this.updateValueAndValidity(options);\n }\n /**\n * Patches the value of the `FormArray`. It accepts an array that matches the\n * structure of the control, and does its best to match the values to the correct\n * controls in the group.\n *\n * It accepts both super-sets and sub-sets of the array without throwing an error.\n *\n * @usageNotes\n * ### Patch the values for controls in a form array\n *\n * ```\n * const arr = new FormArray([\n * new FormControl(),\n * new FormControl()\n * ]);\n * console.log(arr.value); // [null, null]\n *\n * arr.patchValue(['Nancy']);\n * console.log(arr.value); // ['Nancy', null]\n * ```\n *\n * @param value Array of latest values for the controls\n * @param options Configure options that determine how the control propagates changes and\n * emits events after the value changes\n *\n * * `onlySelf`: When true, each change only affects this control, and not its parent. Default\n * is false.\n * * `emitEvent`: When true or not supplied (the default), both the `statusChanges` and\n * `valueChanges` observables emit events with the latest status and value when the control\n * value is updated. When false, no events are emitted. The configuration options are passed to\n * the {@link AbstractControl#updateValueAndValidity updateValueAndValidity} method.\n */\n patchValue(value, options = {}) {\n // Even though the `value` argument type doesn't allow `null` and `undefined` values, the\n // `patchValue` can be called recursively and inner data structures might have these values,\n // so we just ignore such cases when a field containing FormArray instance receives `null` or\n // `undefined` as a value.\n if (value == null /* both `null` and `undefined` */) return;\n value.forEach((newValue, index) => {\n if (this.at(index)) {\n this.at(index).patchValue(newValue, {\n onlySelf: true,\n emitEvent: options.emitEvent\n });\n }\n });\n this.updateValueAndValidity(options);\n }\n /**\n * Resets the `FormArray` and all descendants are marked `pristine` and `untouched`, and the\n * value of all descendants to null or null maps.\n *\n * You reset to a specific form state by passing in an array of states\n * that matches the structure of the control. The state is a standalone value\n * or a form state object with both a value and a disabled status.\n *\n * @usageNotes\n * ### Reset the values in a form array\n *\n * ```ts\n * const arr = new FormArray([\n * new FormControl(),\n * new FormControl()\n * ]);\n * arr.reset(['name', 'last name']);\n *\n * console.log(arr.value); // ['name', 'last name']\n * ```\n *\n * ### Reset the values in a form array and the disabled status for the first control\n *\n * ```\n * arr.reset([\n * {value: 'name', disabled: true},\n * 'last'\n * ]);\n *\n * console.log(arr.value); // ['last']\n * console.log(arr.at(0).status); // 'DISABLED'\n * ```\n *\n * @param value Array of values for the controls\n * @param options Configure options that determine how the control propagates changes and\n * emits events after the value changes\n *\n * * `onlySelf`: When true, each change only affects this control, and not its parent. Default\n * is false.\n * * `emitEvent`: When true or not supplied (the default), both the `statusChanges` and\n * `valueChanges`\n * observables emit events with the latest status and value when the control is reset.\n * When false, no events are emitted.\n * The configuration options are passed to the {@link AbstractControl#updateValueAndValidity\n * updateValueAndValidity} method.\n */\n reset(value = [], options = {}) {\n this._forEachChild((control, index) => {\n control.reset(value[index], {\n onlySelf: true,\n emitEvent: options.emitEvent\n });\n });\n this._updatePristine(options, this);\n this._updateTouched(options, this);\n this.updateValueAndValidity(options);\n }\n /**\n * The aggregate value of the array, including any disabled controls.\n *\n * Reports all values regardless of disabled status.\n */\n getRawValue() {\n return this.controls.map(control => control.getRawValue());\n }\n /**\n * Remove all controls in the `FormArray`.\n *\n * @param options Specifies whether this FormArray instance should emit events after all\n * controls are removed.\n * * `emitEvent`: When true or not supplied (the default), both the `statusChanges` and\n * `valueChanges` observables emit events with the latest status and value when all controls\n * in this FormArray instance are removed. When false, no events are emitted.\n *\n * @usageNotes\n * ### Remove all elements from a FormArray\n *\n * ```ts\n * const arr = new FormArray([\n * new FormControl(),\n * new FormControl()\n * ]);\n * console.log(arr.length); // 2\n *\n * arr.clear();\n * console.log(arr.length); // 0\n * ```\n *\n * It's a simpler and more efficient alternative to removing all elements one by one:\n *\n * ```ts\n * const arr = new FormArray([\n * new FormControl(),\n * new FormControl()\n * ]);\n *\n * while (arr.length) {\n * arr.removeAt(0);\n * }\n * ```\n */\n clear(options = {}) {\n if (this.controls.length < 1) return;\n this._forEachChild(control => control._registerOnCollectionChange(() => {}));\n this.controls.splice(0);\n this.updateValueAndValidity({\n emitEvent: options.emitEvent\n });\n }\n /**\n * Adjusts a negative index by summing it with the length of the array. For very negative\n * indices, the result may remain negative.\n * @internal\n */\n _adjustIndex(index) {\n return index < 0 ? index + this.length : index;\n }\n /** @internal */\n _syncPendingControls() {\n let subtreeUpdated = this.controls.reduce((updated, child) => {\n return child._syncPendingControls() ? true : updated;\n }, false);\n if (subtreeUpdated) this.updateValueAndValidity({\n onlySelf: true\n });\n return subtreeUpdated;\n }\n /** @internal */\n _forEachChild(cb) {\n this.controls.forEach((control, index) => {\n cb(control, index);\n });\n }\n /** @internal */\n _updateValue() {\n this.value = this.controls.filter(control => control.enabled || this.disabled).map(control => control.value);\n }\n /** @internal */\n _anyControls(condition) {\n return this.controls.some(control => control.enabled && condition(control));\n }\n /** @internal */\n _setUpControls() {\n this._forEachChild(control => this._registerControl(control));\n }\n /** @internal */\n _allControlsDisabled() {\n for (const control of this.controls) {\n if (control.enabled) return false;\n }\n return this.controls.length > 0 || this.disabled;\n }\n _registerControl(control) {\n control.setParent(this);\n control._registerOnCollectionChange(this._onCollectionChange);\n }\n /** @internal */\n _find(name) {\n return this.at(name) ?? null;\n }\n}\nconst UntypedFormArray = FormArray;\n/**\n * @description\n * Asserts that the given control is an instance of `FormArray`\n *\n * @publicApi\n */\nconst isFormArray = control => control instanceof FormArray;\nfunction isAbstractControlOptions(options) {\n return !!options && (options.asyncValidators !== undefined || options.validators !== undefined || options.updateOn !== undefined);\n}\n/**\n * @description\n * Creates an `AbstractControl` from a user-specified configuration.\n *\n * The `FormBuilder` provides syntactic sugar that shortens creating instances of a\n * `FormControl`, `FormGroup`, or `FormArray`. It reduces the amount of boilerplate needed to\n * build complex forms.\n *\n * @see [Reactive Forms Guide](guide/forms/reactive-forms)\n *\n * @publicApi\n */\nclass FormBuilder {\n constructor() {\n this.useNonNullable = false;\n }\n /**\n * @description\n * Returns a FormBuilder in which automatically constructed `FormControl` elements\n * have `{nonNullable: true}` and are non-nullable.\n *\n * **Constructing non-nullable controls**\n *\n * When constructing a control, it will be non-nullable, and will reset to its initial value.\n *\n * ```ts\n * let nnfb = new FormBuilder().nonNullable;\n * let name = nnfb.control('Alex'); // FormControl\n * name.reset();\n * console.log(name); // 'Alex'\n * ```\n *\n * **Constructing non-nullable groups or arrays**\n *\n * When constructing a group or array, all automatically created inner controls will be\n * non-nullable, and will reset to their initial values.\n *\n * ```ts\n * let nnfb = new FormBuilder().nonNullable;\n * let name = nnfb.group({who: 'Alex'}); // FormGroup<{who: FormControl}>\n * name.reset();\n * console.log(name); // {who: 'Alex'}\n * ```\n * **Constructing *nullable* fields on groups or arrays**\n *\n * It is still possible to have a nullable field. In particular, any `FormControl` which is\n * *already* constructed will not be altered. For example:\n *\n * ```ts\n * let nnfb = new FormBuilder().nonNullable;\n * // FormGroup<{who: FormControl}>\n * let name = nnfb.group({who: new FormControl('Alex')});\n * name.reset(); console.log(name); // {who: null}\n * ```\n *\n * Because the inner control is constructed explicitly by the caller, the builder has\n * no control over how it is created, and cannot exclude the `null`.\n */\n get nonNullable() {\n const nnfb = new FormBuilder();\n nnfb.useNonNullable = true;\n return nnfb;\n }\n group(controls, options = null) {\n const reducedControls = this._reduceControls(controls);\n let newOptions = {};\n if (isAbstractControlOptions(options)) {\n // `options` are `AbstractControlOptions`\n newOptions = options;\n } else if (options !== null) {\n // `options` are legacy form group options\n newOptions.validators = options.validator;\n newOptions.asyncValidators = options.asyncValidator;\n }\n return new FormGroup(reducedControls, newOptions);\n }\n /**\n * @description\n * Constructs a new `FormRecord` instance. Accepts a single generic argument, which is an object\n * containing all the keys and corresponding inner control types.\n *\n * @param controls A collection of child controls. The key for each child is the name\n * under which it is registered.\n *\n * @param options Configuration options object for the `FormRecord`. The object should have the\n * `AbstractControlOptions` type and might contain the following fields:\n * * `validators`: A synchronous validator function, or an array of validator functions.\n * * `asyncValidators`: A single async validator or array of async validator functions.\n * * `updateOn`: The event upon which the control should be updated (options: 'change' | 'blur'\n * | submit').\n */\n record(controls, options = null) {\n const reducedControls = this._reduceControls(controls);\n // Cast to `any` because the inferred types are not as specific as Element.\n return new FormRecord(reducedControls, options);\n }\n /**\n * @description\n * Constructs a new `FormControl` with the given state, validators and options. Sets\n * `{nonNullable: true}` in the options to get a non-nullable control. Otherwise, the\n * control will be nullable. Accepts a single generic argument, which is the type of the\n * control's value.\n *\n * @param formState Initializes the control with an initial state value, or\n * with an object that contains both a value and a disabled status.\n *\n * @param validatorOrOpts A synchronous validator function, or an array of\n * such functions, or a `FormControlOptions` object that contains\n * validation functions and a validation trigger.\n *\n * @param asyncValidator A single async validator or array of async validator\n * functions.\n *\n * @usageNotes\n *\n * ### Initialize a control as disabled\n *\n * The following example returns a control with an initial value in a disabled state.\n *\n * \n * \n */\n control(formState, validatorOrOpts, asyncValidator) {\n let newOptions = {};\n if (!this.useNonNullable) {\n return new FormControl(formState, validatorOrOpts, asyncValidator);\n }\n if (isAbstractControlOptions(validatorOrOpts)) {\n // If the second argument is options, then they are copied.\n newOptions = validatorOrOpts;\n } else {\n // If the other arguments are validators, they are copied into an options object.\n newOptions.validators = validatorOrOpts;\n newOptions.asyncValidators = asyncValidator;\n }\n return new FormControl(formState, {\n ...newOptions,\n nonNullable: true\n });\n }\n /**\n * Constructs a new `FormArray` from the given array of configurations,\n * validators and options. Accepts a single generic argument, which is the type of each control\n * inside the array.\n *\n * @param controls An array of child controls or control configs. Each child control is given an\n * index when it is registered.\n *\n * @param validatorOrOpts A synchronous validator function, or an array of such functions, or an\n * `AbstractControlOptions` object that contains\n * validation functions and a validation trigger.\n *\n * @param asyncValidator A single async validator or array of async validator functions.\n */\n array(controls, validatorOrOpts, asyncValidator) {\n const createdControls = controls.map(c => this._createControl(c));\n // Cast to `any` because the inferred types are not as specific as Element.\n return new FormArray(createdControls, validatorOrOpts, asyncValidator);\n }\n /** @internal */\n _reduceControls(controls) {\n const createdControls = {};\n Object.keys(controls).forEach(controlName => {\n createdControls[controlName] = this._createControl(controls[controlName]);\n });\n return createdControls;\n }\n /** @internal */\n _createControl(controls) {\n if (controls instanceof FormControl) {\n return controls;\n } else if (controls instanceof AbstractControl) {\n // A control; just return it\n return controls;\n } else if (Array.isArray(controls)) {\n // ControlConfig Tuple\n const value = controls[0];\n const validator = controls.length > 1 ? controls[1] : null;\n const asyncValidator = controls.length > 2 ? controls[2] : null;\n return this.control(value, validator, asyncValidator);\n } else {\n // T or FormControlState\n return this.control(controls);\n }\n }\n static {\n this.ɵfac = function FormBuilder_Factory(ɵt) {\n return new (ɵt || FormBuilder)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: FormBuilder,\n factory: FormBuilder.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FormBuilder, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\n/**\n * @description\n * `NonNullableFormBuilder` is similar to {@link FormBuilder}, but automatically constructed\n * {@link FormControl} elements have `{nonNullable: true}` and are non-nullable.\n *\n * @publicApi\n */\nclass NonNullableFormBuilder {\n static {\n this.ɵfac = function NonNullableFormBuilder_Factory(ɵt) {\n return new (ɵt || NonNullableFormBuilder)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NonNullableFormBuilder,\n factory: () => (() => inject(FormBuilder).nonNullable)(),\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NonNullableFormBuilder, [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n useFactory: () => inject(FormBuilder).nonNullable\n }]\n }], null, null);\n})();\n/**\n * UntypedFormBuilder is the same as `FormBuilder`, but it provides untyped controls.\n */\nclass UntypedFormBuilder extends FormBuilder {\n group(controlsConfig, options = null) {\n return super.group(controlsConfig, options);\n }\n /**\n * Like `FormBuilder#control`, except the resulting control is untyped.\n */\n control(formState, validatorOrOpts, asyncValidator) {\n return super.control(formState, validatorOrOpts, asyncValidator);\n }\n /**\n * Like `FormBuilder#array`, except the resulting array is untyped.\n */\n array(controlsConfig, validatorOrOpts, asyncValidator) {\n return super.array(controlsConfig, validatorOrOpts, asyncValidator);\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵUntypedFormBuilder_BaseFactory;\n return function UntypedFormBuilder_Factory(ɵt) {\n return (ɵUntypedFormBuilder_BaseFactory || (ɵUntypedFormBuilder_BaseFactory = i0.ɵɵgetInheritedFactory(UntypedFormBuilder)))(ɵt || UntypedFormBuilder);\n };\n })();\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: UntypedFormBuilder,\n factory: UntypedFormBuilder.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(UntypedFormBuilder, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of the forms package.\n */\n/**\n * @publicApi\n */\nconst VERSION = new Version('18.1.3');\n\n/**\n * Exports the required providers and directives for template-driven forms,\n * making them available for import by NgModules that import this module.\n *\n * @see [Forms Overview](guide/forms)\n * @see [Template-driven Forms Guide](guide/forms)\n *\n * @publicApi\n */\nclass FormsModule {\n /**\n * @description\n * Provides options for configuring the forms module.\n *\n * @param opts An object of configuration options\n * * `callSetDisabledState` Configures whether to `always` call `setDisabledState`, which is more\n * correct, or to only call it `whenDisabled`, which is the legacy behavior.\n */\n static withConfig(opts) {\n return {\n ngModule: FormsModule,\n providers: [{\n provide: CALL_SET_DISABLED_STATE,\n useValue: opts.callSetDisabledState ?? setDisabledStateDefault\n }]\n };\n }\n static {\n this.ɵfac = function FormsModule_Factory(ɵt) {\n return new (ɵt || FormsModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: FormsModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [ɵInternalFormsSharedModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FormsModule, [{\n type: NgModule,\n args: [{\n declarations: TEMPLATE_DRIVEN_DIRECTIVES,\n exports: [ɵInternalFormsSharedModule, TEMPLATE_DRIVEN_DIRECTIVES]\n }]\n }], null, null);\n})();\n/**\n * Exports the required infrastructure and directives for reactive forms,\n * making them available for import by NgModules that import this module.\n *\n * @see [Forms Overview](guide/forms)\n * @see [Reactive Forms Guide](guide/forms/reactive-forms)\n *\n * @publicApi\n */\nclass ReactiveFormsModule {\n /**\n * @description\n * Provides options for configuring the reactive forms module.\n *\n * @param opts An object of configuration options\n * * `warnOnNgModelWithFormControl` Configures when to emit a warning when an `ngModel`\n * binding is used with reactive form directives.\n * * `callSetDisabledState` Configures whether to `always` call `setDisabledState`, which is more\n * correct, or to only call it `whenDisabled`, which is the legacy behavior.\n */\n static withConfig(opts) {\n return {\n ngModule: ReactiveFormsModule,\n providers: [{\n provide: NG_MODEL_WITH_FORM_CONTROL_WARNING,\n useValue: opts.warnOnNgModelWithFormControl ?? 'always'\n }, {\n provide: CALL_SET_DISABLED_STATE,\n useValue: opts.callSetDisabledState ?? setDisabledStateDefault\n }]\n };\n }\n static {\n this.ɵfac = function ReactiveFormsModule_Factory(ɵt) {\n return new (ɵt || ReactiveFormsModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: ReactiveFormsModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [ɵInternalFormsSharedModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ReactiveFormsModule, [{\n type: NgModule,\n args: [{\n declarations: [REACTIVE_DRIVEN_DIRECTIVES],\n exports: [ɵInternalFormsSharedModule, REACTIVE_DRIVEN_DIRECTIVES]\n }]\n }], null, null);\n})();\n\n/**\n * @module\n * @description\n * This module is used for handling user input, by defining and building a `FormGroup` that\n * consists of `FormControl` objects, and mapping them onto the DOM. `FormControl`\n * objects can then be used to read information from the form DOM elements.\n *\n * Forms providers are not included in default providers; you must import these providers\n * explicitly.\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\n// This file only reexports content of the `src` folder. Keep it that way.\n\n// This file is not used to build this module. It is only used during editing\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AbstractControl, AbstractControlDirective, AbstractFormGroupDirective, COMPOSITION_BUFFER_MODE, CheckboxControlValueAccessor, CheckboxRequiredValidator, ControlContainer, ControlEvent, DefaultValueAccessor, EmailValidator, FormArray, FormArrayName, FormBuilder, FormControl, FormControlDirective, FormControlName, FormGroup, FormGroupDirective, FormGroupName, FormRecord, FormResetEvent, FormSubmittedEvent, FormsModule, MaxLengthValidator, MaxValidator, MinLengthValidator, MinValidator, NG_ASYNC_VALIDATORS, NG_VALIDATORS, NG_VALUE_ACCESSOR, NgControl, NgControlStatus, NgControlStatusGroup, NgForm, NgModel, NgModelGroup, NgSelectOption, NonNullableFormBuilder, NumberValueAccessor, PatternValidator, PristineChangeEvent, RadioControlValueAccessor, RangeValueAccessor, ReactiveFormsModule, RequiredValidator, SelectControlValueAccessor, SelectMultipleControlValueAccessor, StatusChangeEvent, TouchedChangeEvent, UntypedFormArray, UntypedFormBuilder, UntypedFormControl, UntypedFormGroup, VERSION, Validators, ValueChangeEvent, isFormArray, isFormControl, isFormGroup, isFormRecord, ɵInternalFormsSharedModule, ɵNgNoValidate, ɵNgSelectMultipleOption };\n","import * as i0 from '@angular/core';\nimport { Component, ViewEncapsulation, ChangeDetectionStrategy, Optional, Inject, ViewChild, Input, NgModule } from '@angular/core';\nimport * as i2 from '@angular/material/core';\nimport { mixinColor, mixinDisabled, mixinDisableRipple, MatRipple, MatRippleModule, MatCommonModule } from '@angular/material/core';\nimport * as i1 from '@angular/cdk/a11y';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\n\n/** Default color palette for round buttons (mat-fab and mat-mini-fab) */\nconst _c0 = [\"mat-button\", \"\"];\nconst _c1 = [\"*\"];\nconst _c2 = \".mat-button .mat-button-focus-overlay,.mat-icon-button .mat-button-focus-overlay{opacity:0}.mat-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay,.mat-stroked-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay{opacity:.04}@media(hover: none){.mat-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay,.mat-stroked-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay{opacity:0}}.mat-button,.mat-icon-button,.mat-stroked-button,.mat-flat-button{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible}.mat-button::-moz-focus-inner,.mat-icon-button::-moz-focus-inner,.mat-stroked-button::-moz-focus-inner,.mat-flat-button::-moz-focus-inner{border:0}.mat-button.mat-button-disabled,.mat-icon-button.mat-button-disabled,.mat-stroked-button.mat-button-disabled,.mat-flat-button.mat-button-disabled{cursor:default}.mat-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-button.cdk-program-focused .mat-button-focus-overlay,.mat-icon-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-icon-button.cdk-program-focused .mat-button-focus-overlay,.mat-stroked-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-stroked-button.cdk-program-focused .mat-button-focus-overlay,.mat-flat-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-flat-button.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-button::-moz-focus-inner,.mat-icon-button::-moz-focus-inner,.mat-stroked-button::-moz-focus-inner,.mat-flat-button::-moz-focus-inner{border:0}.mat-raised-button{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-raised-button::-moz-focus-inner{border:0}.mat-raised-button.mat-button-disabled{cursor:default}.mat-raised-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-raised-button.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-raised-button::-moz-focus-inner{border:0}.mat-raised-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-stroked-button{border:1px solid currentColor;padding:0 15px;line-height:34px}.mat-stroked-button .mat-button-ripple.mat-ripple,.mat-stroked-button .mat-button-focus-overlay{top:-1px;left:-1px;right:-1px;bottom:-1px}.mat-fab{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);min-width:0;border-radius:50%;width:56px;height:56px;padding:0;flex-shrink:0}.mat-fab::-moz-focus-inner{border:0}.mat-fab.mat-button-disabled{cursor:default}.mat-fab.cdk-keyboard-focused .mat-button-focus-overlay,.mat-fab.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-fab::-moz-focus-inner{border:0}.mat-fab._mat-animation-noopable{transition:none !important;animation:none !important}.mat-fab .mat-button-wrapper{padding:16px 0;display:inline-block;line-height:24px}.mat-mini-fab{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);min-width:0;border-radius:50%;width:40px;height:40px;padding:0;flex-shrink:0}.mat-mini-fab::-moz-focus-inner{border:0}.mat-mini-fab.mat-button-disabled{cursor:default}.mat-mini-fab.cdk-keyboard-focused .mat-button-focus-overlay,.mat-mini-fab.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-mini-fab::-moz-focus-inner{border:0}.mat-mini-fab._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mini-fab .mat-button-wrapper{padding:8px 0;display:inline-block;line-height:24px}.mat-icon-button{padding:0;min-width:0;width:40px;height:40px;flex-shrink:0;line-height:40px;border-radius:50%}.mat-icon-button i,.mat-icon-button .mat-icon{line-height:24px}.mat-button-ripple.mat-ripple,.mat-button-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-button-ripple.mat-ripple:not(:empty){transform:translateZ(0)}.mat-button-focus-overlay{opacity:0;transition:opacity 200ms cubic-bezier(0.35, 0, 0.25, 1),background-color 200ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-button-focus-overlay{transition:none}.mat-button-ripple-round{border-radius:50%;z-index:1}.mat-button .mat-button-wrapper>*,.mat-flat-button .mat-button-wrapper>*,.mat-stroked-button .mat-button-wrapper>*,.mat-raised-button .mat-button-wrapper>*,.mat-icon-button .mat-button-wrapper>*,.mat-fab .mat-button-wrapper>*,.mat-mini-fab .mat-button-wrapper>*{vertical-align:middle}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button{display:inline-flex;justify-content:center;align-items:center;font-size:inherit;width:2.5em;height:2.5em}.mat-flat-button::before,.mat-raised-button::before,.mat-fab::before,.mat-mini-fab::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-stroked-button::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 3px) * -1)}.cdk-high-contrast-active .mat-button,.cdk-high-contrast-active .mat-flat-button,.cdk-high-contrast-active .mat-raised-button,.cdk-high-contrast-active .mat-icon-button,.cdk-high-contrast-active .mat-fab,.cdk-high-contrast-active .mat-mini-fab{outline:solid 1px}.mat-datepicker-toggle .mat-mdc-button-base{width:40px;height:40px;padding:8px 0}.mat-datepicker-actions .mat-button-base+.mat-button-base{margin-left:8px}[dir=rtl] .mat-datepicker-actions .mat-button-base+.mat-button-base{margin-left:0;margin-right:8px}\";\nconst DEFAULT_ROUND_BUTTON_COLOR = 'accent';\n/**\n * List of classes to add to button instances based on host attributes to\n * style as different variants.\n */\nconst BUTTON_HOST_ATTRIBUTES = ['mat-button', 'mat-flat-button', 'mat-icon-button', 'mat-raised-button', 'mat-stroked-button', 'mat-mini-fab', 'mat-fab'];\n// Boilerplate for applying mixins to button.\nconst _MatButtonBase = mixinColor(mixinDisabled(mixinDisableRipple(class {\n constructor(_elementRef) {\n this._elementRef = _elementRef;\n }\n})));\n/**\n * Material design button.\n * @deprecated Use `MatButton` from `@angular/material/button` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyButton extends _MatButtonBase {\n constructor(elementRef, _focusMonitor, _animationMode) {\n super(elementRef);\n this._focusMonitor = _focusMonitor;\n this._animationMode = _animationMode;\n /** Whether the button is round. */\n this.isRoundButton = this._hasHostAttributes('mat-fab', 'mat-mini-fab');\n /** Whether the button is icon button. */\n this.isIconButton = this._hasHostAttributes('mat-icon-button');\n // For each of the variant selectors that is present in the button's host\n // attributes, add the correct corresponding class.\n for (const attr of BUTTON_HOST_ATTRIBUTES) {\n if (this._hasHostAttributes(attr)) {\n this._getHostElement().classList.add(attr);\n }\n }\n // Add a class that applies to all buttons. This makes it easier to target if somebody\n // wants to target all Material buttons. We do it here rather than `host` to ensure that\n // the class is applied to derived classes.\n elementRef.nativeElement.classList.add('mat-button-base');\n if (this.isRoundButton) {\n this.color = DEFAULT_ROUND_BUTTON_COLOR;\n }\n }\n ngAfterViewInit() {\n this._focusMonitor.monitor(this._elementRef, true);\n }\n ngOnDestroy() {\n this._focusMonitor.stopMonitoring(this._elementRef);\n }\n /** Focuses the button. */\n focus(origin, options) {\n if (origin) {\n this._focusMonitor.focusVia(this._getHostElement(), origin, options);\n } else {\n this._getHostElement().focus(options);\n }\n }\n _getHostElement() {\n return this._elementRef.nativeElement;\n }\n _isRippleDisabled() {\n return this.disableRipple || this.disabled;\n }\n /** Gets whether the button has one of the given attributes. */\n _hasHostAttributes(...attributes) {\n return attributes.some(attribute => this._getHostElement().hasAttribute(attribute));\n }\n static {\n this.ɵfac = function MatLegacyButton_Factory(ɵt) {\n return new (ɵt || MatLegacyButton)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.FocusMonitor), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatLegacyButton,\n selectors: [[\"button\", \"mat-button\", \"\"], [\"button\", \"mat-raised-button\", \"\"], [\"button\", \"mat-icon-button\", \"\"], [\"button\", \"mat-fab\", \"\"], [\"button\", \"mat-mini-fab\", \"\"], [\"button\", \"mat-stroked-button\", \"\"], [\"button\", \"mat-flat-button\", \"\"]],\n viewQuery: function MatLegacyButton_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(MatRipple, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.ripple = _t.first);\n }\n },\n hostAttrs: [1, \"mat-focus-indicator\"],\n hostVars: 5,\n hostBindings: function MatLegacyButton_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"disabled\", ctx.disabled || null);\n i0.ɵɵclassProp(\"_mat-animation-noopable\", ctx._animationMode === \"NoopAnimations\")(\"mat-button-disabled\", ctx.disabled);\n }\n },\n inputs: {\n disabled: \"disabled\",\n disableRipple: \"disableRipple\",\n color: \"color\"\n },\n exportAs: [\"matButton\"],\n features: [i0.ɵɵInheritDefinitionFeature],\n attrs: _c0,\n ngContentSelectors: _c1,\n decls: 4,\n vars: 5,\n consts: [[1, \"mat-button-wrapper\"], [\"matRipple\", \"\", 1, \"mat-button-ripple\", 3, \"matRippleDisabled\", \"matRippleCentered\", \"matRippleTrigger\"], [1, \"mat-button-focus-overlay\"]],\n template: function MatLegacyButton_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"span\", 0);\n i0.ɵɵprojection(1);\n i0.ɵɵelementEnd();\n i0.ɵɵelement(2, \"span\", 1)(3, \"span\", 2);\n }\n if (rf & 2) {\n i0.ɵɵadvance(2);\n i0.ɵɵclassProp(\"mat-button-ripple-round\", ctx.isRoundButton || ctx.isIconButton);\n i0.ɵɵproperty(\"matRippleDisabled\", ctx._isRippleDisabled())(\"matRippleCentered\", ctx.isIconButton)(\"matRippleTrigger\", ctx._getHostElement());\n }\n },\n dependencies: [i2.MatRipple],\n styles: [\".mat-button .mat-button-focus-overlay,.mat-icon-button .mat-button-focus-overlay{opacity:0}.mat-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay,.mat-stroked-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay{opacity:.04}@media(hover: none){.mat-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay,.mat-stroked-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay{opacity:0}}.mat-button,.mat-icon-button,.mat-stroked-button,.mat-flat-button{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible}.mat-button::-moz-focus-inner,.mat-icon-button::-moz-focus-inner,.mat-stroked-button::-moz-focus-inner,.mat-flat-button::-moz-focus-inner{border:0}.mat-button.mat-button-disabled,.mat-icon-button.mat-button-disabled,.mat-stroked-button.mat-button-disabled,.mat-flat-button.mat-button-disabled{cursor:default}.mat-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-button.cdk-program-focused .mat-button-focus-overlay,.mat-icon-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-icon-button.cdk-program-focused .mat-button-focus-overlay,.mat-stroked-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-stroked-button.cdk-program-focused .mat-button-focus-overlay,.mat-flat-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-flat-button.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-button::-moz-focus-inner,.mat-icon-button::-moz-focus-inner,.mat-stroked-button::-moz-focus-inner,.mat-flat-button::-moz-focus-inner{border:0}.mat-raised-button{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-raised-button::-moz-focus-inner{border:0}.mat-raised-button.mat-button-disabled{cursor:default}.mat-raised-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-raised-button.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-raised-button::-moz-focus-inner{border:0}.mat-raised-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-stroked-button{border:1px solid currentColor;padding:0 15px;line-height:34px}.mat-stroked-button .mat-button-ripple.mat-ripple,.mat-stroked-button .mat-button-focus-overlay{top:-1px;left:-1px;right:-1px;bottom:-1px}.mat-fab{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);min-width:0;border-radius:50%;width:56px;height:56px;padding:0;flex-shrink:0}.mat-fab::-moz-focus-inner{border:0}.mat-fab.mat-button-disabled{cursor:default}.mat-fab.cdk-keyboard-focused .mat-button-focus-overlay,.mat-fab.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-fab::-moz-focus-inner{border:0}.mat-fab._mat-animation-noopable{transition:none !important;animation:none !important}.mat-fab .mat-button-wrapper{padding:16px 0;display:inline-block;line-height:24px}.mat-mini-fab{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);min-width:0;border-radius:50%;width:40px;height:40px;padding:0;flex-shrink:0}.mat-mini-fab::-moz-focus-inner{border:0}.mat-mini-fab.mat-button-disabled{cursor:default}.mat-mini-fab.cdk-keyboard-focused .mat-button-focus-overlay,.mat-mini-fab.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-mini-fab::-moz-focus-inner{border:0}.mat-mini-fab._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mini-fab .mat-button-wrapper{padding:8px 0;display:inline-block;line-height:24px}.mat-icon-button{padding:0;min-width:0;width:40px;height:40px;flex-shrink:0;line-height:40px;border-radius:50%}.mat-icon-button i,.mat-icon-button .mat-icon{line-height:24px}.mat-button-ripple.mat-ripple,.mat-button-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-button-ripple.mat-ripple:not(:empty){transform:translateZ(0)}.mat-button-focus-overlay{opacity:0;transition:opacity 200ms cubic-bezier(0.35, 0, 0.25, 1),background-color 200ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-button-focus-overlay{transition:none}.mat-button-ripple-round{border-radius:50%;z-index:1}.mat-button .mat-button-wrapper>*,.mat-flat-button .mat-button-wrapper>*,.mat-stroked-button .mat-button-wrapper>*,.mat-raised-button .mat-button-wrapper>*,.mat-icon-button .mat-button-wrapper>*,.mat-fab .mat-button-wrapper>*,.mat-mini-fab .mat-button-wrapper>*{vertical-align:middle}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button{display:inline-flex;justify-content:center;align-items:center;font-size:inherit;width:2.5em;height:2.5em}.mat-flat-button::before,.mat-raised-button::before,.mat-fab::before,.mat-mini-fab::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-stroked-button::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 3px) * -1)}.cdk-high-contrast-active .mat-button,.cdk-high-contrast-active .mat-flat-button,.cdk-high-contrast-active .mat-raised-button,.cdk-high-contrast-active .mat-icon-button,.cdk-high-contrast-active .mat-fab,.cdk-high-contrast-active .mat-mini-fab{outline:solid 1px}.mat-datepicker-toggle .mat-mdc-button-base{width:40px;height:40px;padding:8px 0}.mat-datepicker-actions .mat-button-base+.mat-button-base{margin-left:8px}[dir=rtl] .mat-datepicker-actions .mat-button-base+.mat-button-base{margin-left:0;margin-right:8px}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyButton, [{\n type: Component,\n args: [{\n selector: `button[mat-button], button[mat-raised-button], button[mat-icon-button],\n button[mat-fab], button[mat-mini-fab], button[mat-stroked-button],\n button[mat-flat-button]`,\n exportAs: 'matButton',\n host: {\n '[attr.disabled]': 'disabled || null',\n '[class._mat-animation-noopable]': '_animationMode === \"NoopAnimations\"',\n // Add a class for disabled button styling instead of the using attribute\n // selector or pseudo-selector. This allows users to create focusable\n // disabled buttons without recreating the styles.\n '[class.mat-button-disabled]': 'disabled',\n 'class': 'mat-focus-indicator'\n },\n inputs: ['disabled', 'disableRipple', 'color'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: \"\\n\\n\\n\",\n styles: [\".mat-button .mat-button-focus-overlay,.mat-icon-button .mat-button-focus-overlay{opacity:0}.mat-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay,.mat-stroked-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay{opacity:.04}@media(hover: none){.mat-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay,.mat-stroked-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay{opacity:0}}.mat-button,.mat-icon-button,.mat-stroked-button,.mat-flat-button{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible}.mat-button::-moz-focus-inner,.mat-icon-button::-moz-focus-inner,.mat-stroked-button::-moz-focus-inner,.mat-flat-button::-moz-focus-inner{border:0}.mat-button.mat-button-disabled,.mat-icon-button.mat-button-disabled,.mat-stroked-button.mat-button-disabled,.mat-flat-button.mat-button-disabled{cursor:default}.mat-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-button.cdk-program-focused .mat-button-focus-overlay,.mat-icon-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-icon-button.cdk-program-focused .mat-button-focus-overlay,.mat-stroked-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-stroked-button.cdk-program-focused .mat-button-focus-overlay,.mat-flat-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-flat-button.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-button::-moz-focus-inner,.mat-icon-button::-moz-focus-inner,.mat-stroked-button::-moz-focus-inner,.mat-flat-button::-moz-focus-inner{border:0}.mat-raised-button{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-raised-button::-moz-focus-inner{border:0}.mat-raised-button.mat-button-disabled{cursor:default}.mat-raised-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-raised-button.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-raised-button::-moz-focus-inner{border:0}.mat-raised-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-stroked-button{border:1px solid currentColor;padding:0 15px;line-height:34px}.mat-stroked-button .mat-button-ripple.mat-ripple,.mat-stroked-button .mat-button-focus-overlay{top:-1px;left:-1px;right:-1px;bottom:-1px}.mat-fab{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);min-width:0;border-radius:50%;width:56px;height:56px;padding:0;flex-shrink:0}.mat-fab::-moz-focus-inner{border:0}.mat-fab.mat-button-disabled{cursor:default}.mat-fab.cdk-keyboard-focused .mat-button-focus-overlay,.mat-fab.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-fab::-moz-focus-inner{border:0}.mat-fab._mat-animation-noopable{transition:none !important;animation:none !important}.mat-fab .mat-button-wrapper{padding:16px 0;display:inline-block;line-height:24px}.mat-mini-fab{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);min-width:0;border-radius:50%;width:40px;height:40px;padding:0;flex-shrink:0}.mat-mini-fab::-moz-focus-inner{border:0}.mat-mini-fab.mat-button-disabled{cursor:default}.mat-mini-fab.cdk-keyboard-focused .mat-button-focus-overlay,.mat-mini-fab.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-mini-fab::-moz-focus-inner{border:0}.mat-mini-fab._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mini-fab .mat-button-wrapper{padding:8px 0;display:inline-block;line-height:24px}.mat-icon-button{padding:0;min-width:0;width:40px;height:40px;flex-shrink:0;line-height:40px;border-radius:50%}.mat-icon-button i,.mat-icon-button .mat-icon{line-height:24px}.mat-button-ripple.mat-ripple,.mat-button-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-button-ripple.mat-ripple:not(:empty){transform:translateZ(0)}.mat-button-focus-overlay{opacity:0;transition:opacity 200ms cubic-bezier(0.35, 0, 0.25, 1),background-color 200ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-button-focus-overlay{transition:none}.mat-button-ripple-round{border-radius:50%;z-index:1}.mat-button .mat-button-wrapper>*,.mat-flat-button .mat-button-wrapper>*,.mat-stroked-button .mat-button-wrapper>*,.mat-raised-button .mat-button-wrapper>*,.mat-icon-button .mat-button-wrapper>*,.mat-fab .mat-button-wrapper>*,.mat-mini-fab .mat-button-wrapper>*{vertical-align:middle}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button{display:inline-flex;justify-content:center;align-items:center;font-size:inherit;width:2.5em;height:2.5em}.mat-flat-button::before,.mat-raised-button::before,.mat-fab::before,.mat-mini-fab::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-stroked-button::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 3px) * -1)}.cdk-high-contrast-active .mat-button,.cdk-high-contrast-active .mat-flat-button,.cdk-high-contrast-active .mat-raised-button,.cdk-high-contrast-active .mat-icon-button,.cdk-high-contrast-active .mat-fab,.cdk-high-contrast-active .mat-mini-fab{outline:solid 1px}.mat-datepicker-toggle .mat-mdc-button-base{width:40px;height:40px;padding:8px 0}.mat-datepicker-actions .mat-button-base+.mat-button-base{margin-left:8px}[dir=rtl] .mat-datepicker-actions .mat-button-base+.mat-button-base{margin-left:0;margin-right:8px}\"]\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i1.FocusMonitor\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }]\n }];\n }, {\n ripple: [{\n type: ViewChild,\n args: [MatRipple]\n }]\n });\n})();\n/**\n * Material design anchor button.\n * @deprecated Use `MatAnchor` from `@angular/material/button` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyAnchor extends MatLegacyButton {\n constructor(focusMonitor, elementRef, animationMode, /** @breaking-change 14.0.0 _ngZone will be required. */\n _ngZone) {\n super(elementRef, focusMonitor, animationMode);\n this._ngZone = _ngZone;\n this._haltDisabledEvents = event => {\n // A disabled button shouldn't apply any actions\n if (this.disabled) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n };\n }\n ngAfterViewInit() {\n super.ngAfterViewInit();\n /** @breaking-change 14.0.0 _ngZone will be required. */\n if (this._ngZone) {\n this._ngZone.runOutsideAngular(() => {\n this._elementRef.nativeElement.addEventListener('click', this._haltDisabledEvents);\n });\n } else {\n this._elementRef.nativeElement.addEventListener('click', this._haltDisabledEvents);\n }\n }\n ngOnDestroy() {\n super.ngOnDestroy();\n this._elementRef.nativeElement.removeEventListener('click', this._haltDisabledEvents);\n }\n static {\n this.ɵfac = function MatLegacyAnchor_Factory(ɵt) {\n return new (ɵt || MatLegacyAnchor)(i0.ɵɵdirectiveInject(i1.FocusMonitor), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8), i0.ɵɵdirectiveInject(i0.NgZone, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatLegacyAnchor,\n selectors: [[\"a\", \"mat-button\", \"\"], [\"a\", \"mat-raised-button\", \"\"], [\"a\", \"mat-icon-button\", \"\"], [\"a\", \"mat-fab\", \"\"], [\"a\", \"mat-mini-fab\", \"\"], [\"a\", \"mat-stroked-button\", \"\"], [\"a\", \"mat-flat-button\", \"\"]],\n hostAttrs: [1, \"mat-focus-indicator\"],\n hostVars: 7,\n hostBindings: function MatLegacyAnchor_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"tabindex\", ctx.disabled ? -1 : ctx.tabIndex)(\"disabled\", ctx.disabled || null)(\"aria-disabled\", ctx.disabled.toString());\n i0.ɵɵclassProp(\"_mat-animation-noopable\", ctx._animationMode === \"NoopAnimations\")(\"mat-button-disabled\", ctx.disabled);\n }\n },\n inputs: {\n disabled: \"disabled\",\n disableRipple: \"disableRipple\",\n color: \"color\",\n tabIndex: \"tabIndex\"\n },\n exportAs: [\"matButton\", \"matAnchor\"],\n features: [i0.ɵɵInheritDefinitionFeature],\n attrs: _c0,\n ngContentSelectors: _c1,\n decls: 4,\n vars: 5,\n consts: [[1, \"mat-button-wrapper\"], [\"matRipple\", \"\", 1, \"mat-button-ripple\", 3, \"matRippleDisabled\", \"matRippleCentered\", \"matRippleTrigger\"], [1, \"mat-button-focus-overlay\"]],\n template: function MatLegacyAnchor_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"span\", 0);\n i0.ɵɵprojection(1);\n i0.ɵɵelementEnd();\n i0.ɵɵelement(2, \"span\", 1)(3, \"span\", 2);\n }\n if (rf & 2) {\n i0.ɵɵadvance(2);\n i0.ɵɵclassProp(\"mat-button-ripple-round\", ctx.isRoundButton || ctx.isIconButton);\n i0.ɵɵproperty(\"matRippleDisabled\", ctx._isRippleDisabled())(\"matRippleCentered\", ctx.isIconButton)(\"matRippleTrigger\", ctx._getHostElement());\n }\n },\n dependencies: [i2.MatRipple],\n styles: [_c2],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyAnchor, [{\n type: Component,\n args: [{\n selector: `a[mat-button], a[mat-raised-button], a[mat-icon-button], a[mat-fab],\n a[mat-mini-fab], a[mat-stroked-button], a[mat-flat-button]`,\n exportAs: 'matButton, matAnchor',\n host: {\n // Note that we ignore the user-specified tabindex when it's disabled for\n // consistency with the `mat-button` applied on native buttons where even\n // though they have an index, they're not tabbable.\n '[attr.tabindex]': 'disabled ? -1 : tabIndex',\n '[attr.disabled]': 'disabled || null',\n '[attr.aria-disabled]': 'disabled.toString()',\n '[class._mat-animation-noopable]': '_animationMode === \"NoopAnimations\"',\n '[class.mat-button-disabled]': 'disabled',\n 'class': 'mat-focus-indicator'\n },\n inputs: ['disabled', 'disableRipple', 'color'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: \"\\n\\n\\n\",\n styles: [\".mat-button .mat-button-focus-overlay,.mat-icon-button .mat-button-focus-overlay{opacity:0}.mat-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay,.mat-stroked-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay{opacity:.04}@media(hover: none){.mat-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay,.mat-stroked-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay{opacity:0}}.mat-button,.mat-icon-button,.mat-stroked-button,.mat-flat-button{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible}.mat-button::-moz-focus-inner,.mat-icon-button::-moz-focus-inner,.mat-stroked-button::-moz-focus-inner,.mat-flat-button::-moz-focus-inner{border:0}.mat-button.mat-button-disabled,.mat-icon-button.mat-button-disabled,.mat-stroked-button.mat-button-disabled,.mat-flat-button.mat-button-disabled{cursor:default}.mat-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-button.cdk-program-focused .mat-button-focus-overlay,.mat-icon-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-icon-button.cdk-program-focused .mat-button-focus-overlay,.mat-stroked-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-stroked-button.cdk-program-focused .mat-button-focus-overlay,.mat-flat-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-flat-button.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-button::-moz-focus-inner,.mat-icon-button::-moz-focus-inner,.mat-stroked-button::-moz-focus-inner,.mat-flat-button::-moz-focus-inner{border:0}.mat-raised-button{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-raised-button::-moz-focus-inner{border:0}.mat-raised-button.mat-button-disabled{cursor:default}.mat-raised-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-raised-button.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-raised-button::-moz-focus-inner{border:0}.mat-raised-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-stroked-button{border:1px solid currentColor;padding:0 15px;line-height:34px}.mat-stroked-button .mat-button-ripple.mat-ripple,.mat-stroked-button .mat-button-focus-overlay{top:-1px;left:-1px;right:-1px;bottom:-1px}.mat-fab{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);min-width:0;border-radius:50%;width:56px;height:56px;padding:0;flex-shrink:0}.mat-fab::-moz-focus-inner{border:0}.mat-fab.mat-button-disabled{cursor:default}.mat-fab.cdk-keyboard-focused .mat-button-focus-overlay,.mat-fab.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-fab::-moz-focus-inner{border:0}.mat-fab._mat-animation-noopable{transition:none !important;animation:none !important}.mat-fab .mat-button-wrapper{padding:16px 0;display:inline-block;line-height:24px}.mat-mini-fab{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);min-width:0;border-radius:50%;width:40px;height:40px;padding:0;flex-shrink:0}.mat-mini-fab::-moz-focus-inner{border:0}.mat-mini-fab.mat-button-disabled{cursor:default}.mat-mini-fab.cdk-keyboard-focused .mat-button-focus-overlay,.mat-mini-fab.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-mini-fab::-moz-focus-inner{border:0}.mat-mini-fab._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mini-fab .mat-button-wrapper{padding:8px 0;display:inline-block;line-height:24px}.mat-icon-button{padding:0;min-width:0;width:40px;height:40px;flex-shrink:0;line-height:40px;border-radius:50%}.mat-icon-button i,.mat-icon-button .mat-icon{line-height:24px}.mat-button-ripple.mat-ripple,.mat-button-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-button-ripple.mat-ripple:not(:empty){transform:translateZ(0)}.mat-button-focus-overlay{opacity:0;transition:opacity 200ms cubic-bezier(0.35, 0, 0.25, 1),background-color 200ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-button-focus-overlay{transition:none}.mat-button-ripple-round{border-radius:50%;z-index:1}.mat-button .mat-button-wrapper>*,.mat-flat-button .mat-button-wrapper>*,.mat-stroked-button .mat-button-wrapper>*,.mat-raised-button .mat-button-wrapper>*,.mat-icon-button .mat-button-wrapper>*,.mat-fab .mat-button-wrapper>*,.mat-mini-fab .mat-button-wrapper>*{vertical-align:middle}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button{display:inline-flex;justify-content:center;align-items:center;font-size:inherit;width:2.5em;height:2.5em}.mat-flat-button::before,.mat-raised-button::before,.mat-fab::before,.mat-mini-fab::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-stroked-button::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 3px) * -1)}.cdk-high-contrast-active .mat-button,.cdk-high-contrast-active .mat-flat-button,.cdk-high-contrast-active .mat-raised-button,.cdk-high-contrast-active .mat-icon-button,.cdk-high-contrast-active .mat-fab,.cdk-high-contrast-active .mat-mini-fab{outline:solid 1px}.mat-datepicker-toggle .mat-mdc-button-base{width:40px;height:40px;padding:8px 0}.mat-datepicker-actions .mat-button-base+.mat-button-base{margin-left:8px}[dir=rtl] .mat-datepicker-actions .mat-button-base+.mat-button-base{margin-left:0;margin-right:8px}\"]\n }]\n }], function () {\n return [{\n type: i1.FocusMonitor\n }, {\n type: i0.ElementRef\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }]\n }, {\n type: i0.NgZone,\n decorators: [{\n type: Optional\n }]\n }];\n }, {\n tabIndex: [{\n type: Input\n }]\n });\n})();\n\n/**\n * @deprecated Use `MatButtonModule` from `@angular/material/button` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyButtonModule {\n static {\n this.ɵfac = function MatLegacyButtonModule_Factory(ɵt) {\n return new (ɵt || MatLegacyButtonModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatLegacyButtonModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [MatRippleModule, MatCommonModule, MatCommonModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyButtonModule, [{\n type: NgModule,\n args: [{\n imports: [MatRippleModule, MatCommonModule],\n exports: [MatLegacyButton, MatLegacyAnchor, MatCommonModule],\n declarations: [MatLegacyButton, MatLegacyAnchor]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MatLegacyAnchor, MatLegacyButton, MatLegacyButtonModule };\n","import * as i0 from '@angular/core';\nimport { inject, NgZone, Injectable } from '@angular/core';\nimport { Subject, Observable } from 'rxjs';\nimport { filter, shareReplay, takeUntil } from 'rxjs/operators';\n\n/**\n * Handler that logs \"ResizeObserver loop limit exceeded\" errors.\n * These errors are not shown in the Chrome console, so we log them to ensure developers are aware.\n * @param e The error\n */\nconst loopLimitExceededErrorHandler = e => {\n if (e instanceof Error && e.message === 'ResizeObserver loop limit exceeded') {\n console.error(`${e.message}. This could indicate a performance issue with your app. See https://github.com/WICG/resize-observer/blob/master/explainer.md#error-handling`);\n }\n};\n/**\n * A shared ResizeObserver to be used for a particular box type (content-box, border-box, or\n * device-pixel-content-box)\n */\nclass SingleBoxSharedResizeObserver {\n constructor( /** The box type to observe for resizes. */\n _box) {\n this._box = _box;\n /** Stream that emits when the shared observer is destroyed. */\n this._destroyed = new Subject();\n /** Stream of all events from the ResizeObserver. */\n this._resizeSubject = new Subject();\n /** A map of elements to streams of their resize events. */\n this._elementObservables = new Map();\n if (typeof ResizeObserver !== 'undefined') {\n this._resizeObserver = new ResizeObserver(entries => this._resizeSubject.next(entries));\n }\n }\n /**\n * Gets a stream of resize events for the given element.\n * @param target The element to observe.\n * @return The stream of resize events for the element.\n */\n observe(target) {\n if (!this._elementObservables.has(target)) {\n this._elementObservables.set(target, new Observable(observer => {\n const subscription = this._resizeSubject.subscribe(observer);\n this._resizeObserver?.observe(target, {\n box: this._box\n });\n return () => {\n this._resizeObserver?.unobserve(target);\n subscription.unsubscribe();\n this._elementObservables.delete(target);\n };\n }).pipe(filter(entries => entries.some(entry => entry.target === target)),\n // Share a replay of the last event so that subsequent calls to observe the same element\n // receive initial sizing info like the first one. Also enable ref counting so the\n // element will be automatically unobserved when there are no more subscriptions.\n shareReplay({\n bufferSize: 1,\n refCount: true\n }), takeUntil(this._destroyed)));\n }\n return this._elementObservables.get(target);\n }\n /** Destroys this instance. */\n destroy() {\n this._destroyed.next();\n this._destroyed.complete();\n this._resizeSubject.complete();\n this._elementObservables.clear();\n }\n}\n/**\n * Allows observing resize events on multiple elements using a shared set of ResizeObserver.\n * Sharing a ResizeObserver instance is recommended for better performance (see\n * https://github.com/WICG/resize-observer/issues/59).\n *\n * Rather than share a single `ResizeObserver`, this class creates one `ResizeObserver` per type\n * of observed box ('content-box', 'border-box', and 'device-pixel-content-box'). This avoids\n * later calls to `observe` with a different box type from influencing the events dispatched to\n * earlier calls.\n */\nclass SharedResizeObserver {\n constructor() {\n /** Map of box type to shared resize observer. */\n this._observers = new Map();\n /** The Angular zone. */\n this._ngZone = inject(NgZone);\n if (typeof ResizeObserver !== 'undefined' && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n this._ngZone.runOutsideAngular(() => {\n window.addEventListener('error', loopLimitExceededErrorHandler);\n });\n }\n }\n ngOnDestroy() {\n for (const [, observer] of this._observers) {\n observer.destroy();\n }\n this._observers.clear();\n if (typeof ResizeObserver !== 'undefined' && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n window.removeEventListener('error', loopLimitExceededErrorHandler);\n }\n }\n /**\n * Gets a stream of resize events for the given target element and box type.\n * @param target The element to observe for resizes.\n * @param options Options to pass to the `ResizeObserver`\n * @return The stream of resize events for the element.\n */\n observe(target, options) {\n const box = options?.box || 'content-box';\n if (!this._observers.has(box)) {\n this._observers.set(box, new SingleBoxSharedResizeObserver(box));\n }\n return this._observers.get(box).observe(target);\n }\n static {\n this.ɵfac = function SharedResizeObserver_Factory(ɵt) {\n return new (ɵt || SharedResizeObserver)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SharedResizeObserver,\n factory: SharedResizeObserver.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SharedResizeObserver, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], function () {\n return [];\n }, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { SharedResizeObserver };\n","import * as i0 from '@angular/core';\nimport { Directive, InjectionToken, Attribute, Input, inject, NgZone, Component, ChangeDetectionStrategy, ViewEncapsulation, ViewChild, Optional, Inject, ContentChild, ContentChildren, NgModule } from '@angular/core';\nimport * as i1 from '@angular/cdk/bidi';\nimport * as i2 from '@angular/cdk/platform';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\nimport { Subscription, Subject, merge } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { SharedResizeObserver } from '@angular/cdk/observers/private';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\nimport * as i3 from '@angular/common';\nimport { DOCUMENT, CommonModule } from '@angular/common';\nimport { ObserversModule } from '@angular/cdk/observers';\nimport { MatCommonModule } from '@angular/material/core';\n\n/** The floating label for a `mat-form-field`. */\nconst _c0 = [\"notch\"];\nconst _c1 = [\"matFormFieldNotchedOutline\", \"\"];\nconst _c2 = [\"*\"];\nconst _c3 = [\"textField\"];\nconst _c4 = [\"iconPrefixContainer\"];\nconst _c5 = [\"textPrefixContainer\"];\nconst _c6 = [\"*\", [[\"mat-label\"]], [[\"\", \"matPrefix\", \"\"], [\"\", \"matIconPrefix\", \"\"]], [[\"\", \"matTextPrefix\", \"\"]], [[\"\", \"matTextSuffix\", \"\"]], [[\"\", \"matSuffix\", \"\"], [\"\", \"matIconSuffix\", \"\"]], [[\"mat-error\"], [\"\", \"matError\", \"\"]], [[\"mat-hint\", 3, \"align\", \"end\"]], [[\"mat-hint\", \"align\", \"end\"]]];\nconst _c7 = [\"*\", \"mat-label\", \"[matPrefix], [matIconPrefix]\", \"[matTextPrefix]\", \"[matTextSuffix]\", \"[matSuffix], [matIconSuffix]\", \"mat-error, [matError]\", \"mat-hint:not([align='end'])\", \"mat-hint[align='end']\"];\nfunction MatFormField_ng_template_0_label_0_span_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 21);\n }\n}\nfunction MatFormField_ng_template_0_label_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"label\", 19);\n i0.ɵɵprojection(1, 1);\n i0.ɵɵtemplate(2, MatFormField_ng_template_0_label_0_span_2_Template, 1, 0, \"span\", 20);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"floating\", ctx_r1._shouldLabelFloat())(\"monitorResize\", ctx_r1._hasOutline())(\"id\", ctx_r1._labelId);\n i0.ɵɵattribute(\"for\", ctx_r1._control.id);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.hideRequiredMarker && ctx_r1._control.required);\n }\n}\nfunction MatFormField_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, MatFormField_ng_template_0_label_0_Template, 3, 5, \"label\", 18);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngIf\", ctx_r1._hasFloatingLabel());\n }\n}\nfunction MatFormField_div_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 22);\n }\n}\nfunction MatFormField_div_6_ng_template_1_ng_template_0_Template(rf, ctx) {}\nfunction MatFormField_div_6_ng_template_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, MatFormField_div_6_ng_template_1_ng_template_0_Template, 0, 0, \"ng-template\", 24);\n }\n if (rf & 2) {\n i0.ɵɵnextContext(2);\n const labelTemplate_r3 = i0.ɵɵreference(1);\n i0.ɵɵproperty(\"ngTemplateOutlet\", labelTemplate_r3);\n }\n}\nfunction MatFormField_div_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 23);\n i0.ɵɵtemplate(1, MatFormField_div_6_ng_template_1_Template, 1, 1, \"ng-template\", 11);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"matFormFieldNotchedOutlineOpen\", ctx_r1._shouldLabelFloat());\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1._forceDisplayInfixLabel());\n }\n}\nfunction MatFormField_div_7_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 25, 2);\n i0.ɵɵprojection(2, 2);\n i0.ɵɵelementEnd();\n }\n}\nfunction MatFormField_div_8_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 26, 3);\n i0.ɵɵprojection(2, 3);\n i0.ɵɵelementEnd();\n }\n}\nfunction MatFormField_ng_template_10_ng_template_0_Template(rf, ctx) {}\nfunction MatFormField_ng_template_10_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, MatFormField_ng_template_10_ng_template_0_Template, 0, 0, \"ng-template\", 24);\n }\n if (rf & 2) {\n i0.ɵɵnextContext();\n const labelTemplate_r3 = i0.ɵɵreference(1);\n i0.ɵɵproperty(\"ngTemplateOutlet\", labelTemplate_r3);\n }\n}\nfunction MatFormField_div_12_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 27);\n i0.ɵɵprojection(1, 4);\n i0.ɵɵelementEnd();\n }\n}\nfunction MatFormField_div_13_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 28);\n i0.ɵɵprojection(1, 5);\n i0.ɵɵelementEnd();\n }\n}\nfunction MatFormField_div_14_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 29);\n }\n}\nfunction MatFormField_div_16_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 30);\n i0.ɵɵprojection(1, 6);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"@transitionMessages\", ctx_r1._subscriptAnimationState);\n }\n}\nfunction MatFormField_div_17_mat_hint_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"mat-hint\", 34);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"id\", ctx_r1._hintLabelId);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r1.hintLabel);\n }\n}\nfunction MatFormField_div_17_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 31);\n i0.ɵɵtemplate(1, MatFormField_div_17_mat_hint_1_Template, 2, 2, \"mat-hint\", 32);\n i0.ɵɵprojection(2, 7);\n i0.ɵɵelement(3, \"div\", 33);\n i0.ɵɵprojection(4, 8);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"@transitionMessages\", ctx_r1._subscriptAnimationState);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.hintLabel);\n }\n}\nclass MatLabel {\n static {\n this.ɵfac = function MatLabel_Factory(ɵt) {\n return new (ɵt || MatLabel)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLabel,\n selectors: [[\"mat-label\"]]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLabel, [{\n type: Directive,\n args: [{\n selector: 'mat-label'\n }]\n }], null, null);\n})();\nlet nextUniqueId$2 = 0;\n/**\n * Injection token that can be used to reference instances of `MatError`. It serves as\n * alternative token to the actual `MatError` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nconst MAT_ERROR = new InjectionToken('MatError');\n/** Single error message to be shown underneath the form-field. */\nclass MatError {\n constructor(ariaLive, elementRef) {\n this.id = `mat-mdc-error-${nextUniqueId$2++}`;\n // If no aria-live value is set add 'polite' as a default. This is preferred over setting\n // role='alert' so that screen readers do not interrupt the current task to read this aloud.\n if (!ariaLive) {\n elementRef.nativeElement.setAttribute('aria-live', 'polite');\n }\n }\n static {\n this.ɵfac = function MatError_Factory(ɵt) {\n return new (ɵt || MatError)(i0.ɵɵinjectAttribute('aria-live'), i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatError,\n selectors: [[\"mat-error\"], [\"\", \"matError\", \"\"]],\n hostAttrs: [\"aria-atomic\", \"true\", 1, \"mat-mdc-form-field-error\", \"mat-mdc-form-field-bottom-align\"],\n hostVars: 1,\n hostBindings: function MatError_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵhostProperty(\"id\", ctx.id);\n }\n },\n inputs: {\n id: \"id\"\n },\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_ERROR,\n useExisting: MatError\n }])]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatError, [{\n type: Directive,\n args: [{\n selector: 'mat-error, [matError]',\n host: {\n 'class': 'mat-mdc-form-field-error mat-mdc-form-field-bottom-align',\n 'aria-atomic': 'true',\n '[id]': 'id'\n },\n providers: [{\n provide: MAT_ERROR,\n useExisting: MatError\n }]\n }]\n }], function () {\n return [{\n type: undefined,\n decorators: [{\n type: Attribute,\n args: ['aria-live']\n }]\n }, {\n type: i0.ElementRef\n }];\n }, {\n id: [{\n type: Input\n }]\n });\n})();\nlet nextUniqueId$1 = 0;\n/** Hint text to be shown underneath the form field control. */\nclass MatHint {\n constructor() {\n /** Whether to align the hint label at the start or end of the line. */\n this.align = 'start';\n /** Unique ID for the hint. Used for the aria-describedby on the form field control. */\n this.id = `mat-mdc-hint-${nextUniqueId$1++}`;\n }\n static {\n this.ɵfac = function MatHint_Factory(ɵt) {\n return new (ɵt || MatHint)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatHint,\n selectors: [[\"mat-hint\"]],\n hostAttrs: [1, \"mat-mdc-form-field-hint\", \"mat-mdc-form-field-bottom-align\"],\n hostVars: 4,\n hostBindings: function MatHint_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵhostProperty(\"id\", ctx.id);\n i0.ɵɵattribute(\"align\", null);\n i0.ɵɵclassProp(\"mat-mdc-form-field-hint-end\", ctx.align === \"end\");\n }\n },\n inputs: {\n align: \"align\",\n id: \"id\"\n }\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatHint, [{\n type: Directive,\n args: [{\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 }]\n }], null, {\n align: [{\n type: Input\n }],\n id: [{\n type: Input\n }]\n });\n})();\n\n/**\n * Injection token that can be used to reference instances of `MatPrefix`. It serves as\n * alternative token to the actual `MatPrefix` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nconst MAT_PREFIX = new InjectionToken('MatPrefix');\n/** Prefix to be placed in front of the form field. */\nclass MatPrefix {\n constructor() {\n this._isText = false;\n }\n set _isTextSelector(value) {\n this._isText = true;\n }\n static {\n this.ɵfac = function MatPrefix_Factory(ɵt) {\n return new (ɵt || MatPrefix)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatPrefix,\n selectors: [[\"\", \"matPrefix\", \"\"], [\"\", \"matIconPrefix\", \"\"], [\"\", \"matTextPrefix\", \"\"]],\n inputs: {\n _isTextSelector: [0, \"matTextPrefix\", \"_isTextSelector\"]\n },\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_PREFIX,\n useExisting: MatPrefix\n }])]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatPrefix, [{\n type: Directive,\n args: [{\n selector: '[matPrefix], [matIconPrefix], [matTextPrefix]',\n providers: [{\n provide: MAT_PREFIX,\n useExisting: MatPrefix\n }]\n }]\n }], null, {\n _isTextSelector: [{\n type: Input,\n args: ['matTextPrefix']\n }]\n });\n})();\n\n/**\n * Injection token that can be used to reference instances of `MatSuffix`. It serves as\n * alternative token to the actual `MatSuffix` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nconst MAT_SUFFIX = new InjectionToken('MatSuffix');\n/** Suffix to be placed at the end of the form field. */\nclass MatSuffix {\n constructor() {\n this._isText = false;\n }\n set _isTextSelector(value) {\n this._isText = true;\n }\n static {\n this.ɵfac = function MatSuffix_Factory(ɵt) {\n return new (ɵt || MatSuffix)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatSuffix,\n selectors: [[\"\", \"matSuffix\", \"\"], [\"\", \"matIconSuffix\", \"\"], [\"\", \"matTextSuffix\", \"\"]],\n inputs: {\n _isTextSelector: [0, \"matTextSuffix\", \"_isTextSelector\"]\n },\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_SUFFIX,\n useExisting: MatSuffix\n }])]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatSuffix, [{\n type: Directive,\n args: [{\n selector: '[matSuffix], [matIconSuffix], [matTextSuffix]',\n providers: [{\n provide: MAT_SUFFIX,\n useExisting: MatSuffix\n }]\n }]\n }], null, {\n _isTextSelector: [{\n type: Input,\n args: ['matTextSuffix']\n }]\n });\n})();\n\n/** An injion token for the parent form-field. */\nconst FLOATING_LABEL_PARENT = new InjectionToken('FloatingLabelParent');\n/**\n * Internal directive that maintains a MDC floating label. This directive does not\n * use the `MDCFloatingLabelFoundation` class, as it is not worth the size cost of\n * including it just to measure the label width and toggle some classes.\n *\n * The use of a directive allows us to conditionally render a floating label in the\n * template without having to manually manage instantiation and destruction of the\n * floating label component based on.\n *\n * The component is responsible for setting up the floating label styles, measuring label\n * width for the outline notch, and providing inputs that can be used to toggle the\n * label's floating or required state.\n */\nclass MatFormFieldFloatingLabel {\n /** Whether the label is floating. */\n get floating() {\n return this._floating;\n }\n set floating(value) {\n this._floating = value;\n if (this.monitorResize) {\n this._handleResize();\n }\n }\n /** Whether to monitor for resize events on the floating label. */\n get monitorResize() {\n return this._monitorResize;\n }\n set monitorResize(value) {\n this._monitorResize = value;\n if (this._monitorResize) {\n this._subscribeToResize();\n } else {\n this._resizeSubscription.unsubscribe();\n }\n }\n constructor(_elementRef) {\n this._elementRef = _elementRef;\n this._floating = false;\n this._monitorResize = false;\n /** The shared ResizeObserver. */\n this._resizeObserver = inject(SharedResizeObserver);\n /** The Angular zone. */\n this._ngZone = inject(NgZone);\n /** The parent form-field. */\n this._parent = inject(FLOATING_LABEL_PARENT);\n /** The current resize event subscription. */\n this._resizeSubscription = new Subscription();\n }\n ngOnDestroy() {\n this._resizeSubscription.unsubscribe();\n }\n /** Gets the width of the label. Used for the outline notch. */\n getWidth() {\n return estimateScrollWidth(this._elementRef.nativeElement);\n }\n /** Gets the HTML element for the floating label. */\n get element() {\n return this._elementRef.nativeElement;\n }\n /** Handles resize events from the ResizeObserver. */\n _handleResize() {\n // In the case where the label grows in size, the following sequence of events occurs:\n // 1. The label grows by 1px triggering the ResizeObserver\n // 2. The notch is expanded to accommodate the entire label\n // 3. The label expands to its full width, triggering the ResizeObserver again\n //\n // This is expected, but If we allow this to all happen within the same macro task it causes an\n // error: `ResizeObserver loop limit exceeded`. Therefore we push the notch resize out until\n // the next macro task.\n setTimeout(() => this._parent._handleLabelResized());\n }\n /** Subscribes to resize events. */\n _subscribeToResize() {\n this._resizeSubscription.unsubscribe();\n this._ngZone.runOutsideAngular(() => {\n this._resizeSubscription = this._resizeObserver.observe(this._elementRef.nativeElement, {\n box: 'border-box'\n }).subscribe(() => this._handleResize());\n });\n }\n static {\n this.ɵfac = function MatFormFieldFloatingLabel_Factory(ɵt) {\n return new (ɵt || MatFormFieldFloatingLabel)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatFormFieldFloatingLabel,\n selectors: [[\"label\", \"matFormFieldFloatingLabel\", \"\"]],\n hostAttrs: [1, \"mdc-floating-label\", \"mat-mdc-floating-label\"],\n hostVars: 2,\n hostBindings: function MatFormFieldFloatingLabel_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"mdc-floating-label--float-above\", ctx.floating);\n }\n },\n inputs: {\n floating: \"floating\",\n monitorResize: \"monitorResize\"\n }\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatFormFieldFloatingLabel, [{\n type: Directive,\n args: [{\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 }]\n }], function () {\n return [{\n type: i0.ElementRef\n }];\n }, {\n floating: [{\n type: Input\n }],\n monitorResize: [{\n type: Input\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) {\n // Check the offsetParent. If the element inherits display: none from any\n // parent, the offsetParent property will be null (see\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetParent).\n // This check ensures we only clone the node when necessary.\n const htmlEl = element;\n if (htmlEl.offsetParent !== null) {\n return htmlEl.scrollWidth;\n }\n const clone = htmlEl.cloneNode(true);\n clone.style.setProperty('position', 'absolute');\n clone.style.setProperty('transform', 'translate(-9999px, -9999px)');\n document.documentElement.appendChild(clone);\n const scrollWidth = clone.scrollWidth;\n clone.remove();\n return scrollWidth;\n}\n\n/** Class added when the line ripple is active. */\nconst ACTIVATE_CLASS = 'mdc-line-ripple--active';\n/** Class added when the line ripple is being deactivated. */\nconst DEACTIVATING_CLASS = 'mdc-line-ripple--deactivating';\n/**\n * Internal directive that creates an instance of the MDC line-ripple component. Using a\n * directive allows us to conditionally render a line-ripple in the template without having\n * to manually create and destroy the `MDCLineRipple` component whenever the condition changes.\n *\n * The directive sets up the styles for the line-ripple and provides an API for activating\n * and deactivating the line-ripple.\n */\nclass MatFormFieldLineRipple {\n constructor(_elementRef, ngZone) {\n this._elementRef = _elementRef;\n this._handleTransitionEnd = event => {\n const classList = this._elementRef.nativeElement.classList;\n const isDeactivating = classList.contains(DEACTIVATING_CLASS);\n if (event.propertyName === 'opacity' && isDeactivating) {\n classList.remove(ACTIVATE_CLASS, DEACTIVATING_CLASS);\n }\n };\n ngZone.runOutsideAngular(() => {\n _elementRef.nativeElement.addEventListener('transitionend', this._handleTransitionEnd);\n });\n }\n activate() {\n const classList = this._elementRef.nativeElement.classList;\n classList.remove(DEACTIVATING_CLASS);\n classList.add(ACTIVATE_CLASS);\n }\n deactivate() {\n this._elementRef.nativeElement.classList.add(DEACTIVATING_CLASS);\n }\n ngOnDestroy() {\n this._elementRef.nativeElement.removeEventListener('transitionend', this._handleTransitionEnd);\n }\n static {\n this.ɵfac = function MatFormFieldLineRipple_Factory(ɵt) {\n return new (ɵt || MatFormFieldLineRipple)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatFormFieldLineRipple,\n selectors: [[\"div\", \"matFormFieldLineRipple\", \"\"]],\n hostAttrs: [1, \"mdc-line-ripple\"]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatFormFieldLineRipple, [{\n type: Directive,\n args: [{\n selector: 'div[matFormFieldLineRipple]',\n host: {\n 'class': 'mdc-line-ripple'\n }\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i0.NgZone\n }];\n }, null);\n})();\n\n/**\n * Internal component that creates an instance of the MDC notched-outline component.\n *\n * The component sets up the HTML structure and styles for the notched-outline. It provides\n * inputs to toggle the notch state and width.\n */\nclass MatFormFieldNotchedOutline {\n constructor(_elementRef, _ngZone) {\n this._elementRef = _elementRef;\n this._ngZone = _ngZone;\n /** Whether the notch should be opened. */\n this.open = false;\n }\n ngAfterViewInit() {\n const label = this._elementRef.nativeElement.querySelector('.mdc-floating-label');\n if (label) {\n this._elementRef.nativeElement.classList.add('mdc-notched-outline--upgraded');\n if (typeof requestAnimationFrame === 'function') {\n label.style.transitionDuration = '0s';\n this._ngZone.runOutsideAngular(() => {\n requestAnimationFrame(() => label.style.transitionDuration = '');\n });\n }\n } else {\n this._elementRef.nativeElement.classList.add('mdc-notched-outline--no-label');\n }\n }\n _setNotchWidth(labelWidth) {\n if (!this.open || !labelWidth) {\n this._notch.nativeElement.style.width = '';\n } else {\n const NOTCH_ELEMENT_PADDING = 8;\n const NOTCH_ELEMENT_BORDER = 1;\n this._notch.nativeElement.style.width = `calc(${labelWidth}px * var(--mat-mdc-form-field-floating-label-scale, 0.75) + ${NOTCH_ELEMENT_PADDING + NOTCH_ELEMENT_BORDER}px)`;\n }\n }\n static {\n this.ɵfac = function MatFormFieldNotchedOutline_Factory(ɵt) {\n return new (ɵt || MatFormFieldNotchedOutline)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatFormFieldNotchedOutline,\n selectors: [[\"div\", \"matFormFieldNotchedOutline\", \"\"]],\n viewQuery: function MatFormFieldNotchedOutline_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._notch = _t.first);\n }\n },\n hostAttrs: [1, \"mdc-notched-outline\"],\n hostVars: 2,\n hostBindings: function MatFormFieldNotchedOutline_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"mdc-notched-outline--notched\", ctx.open);\n }\n },\n inputs: {\n open: [0, \"matFormFieldNotchedOutlineOpen\", \"open\"]\n },\n attrs: _c1,\n ngContentSelectors: _c2,\n decls: 5,\n vars: 0,\n consts: [[\"notch\", \"\"], [1, \"mdc-notched-outline__leading\"], [1, \"mdc-notched-outline__notch\"], [1, \"mdc-notched-outline__trailing\"]],\n template: function MatFormFieldNotchedOutline_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelement(0, \"div\", 1);\n i0.ɵɵelementStart(1, \"div\", 2, 0);\n i0.ɵɵprojection(3);\n i0.ɵɵelementEnd();\n i0.ɵɵelement(4, \"div\", 3);\n }\n },\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatFormFieldNotchedOutline, [{\n type: Component,\n args: [{\n selector: 'div[matFormFieldNotchedOutline]',\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 template: \"\\n\\n \\n\\n\\n\"\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i0.NgZone\n }];\n }, {\n open: [{\n type: Input,\n args: ['matFormFieldNotchedOutlineOpen']\n }],\n _notch: [{\n type: ViewChild,\n args: ['notch']\n }]\n });\n})();\n\n/**\n * Animations used by the MatFormField.\n * @docs-private\n */\nconst matFormFieldAnimations = {\n /** Animation that transitions the form field's error and hint messages. */\n transitionMessages: trigger('transitionMessages', [\n // TODO(mmalerba): Use angular animations for label animation as well.\n state('enter', style({\n opacity: 1,\n transform: 'translateY(0%)'\n })), transition('void => enter', [style({\n opacity: 0,\n transform: 'translateY(-5px)'\n }), animate('300ms cubic-bezier(0.55, 0, 0.55, 0.2)')])])\n};\n\n/** An interface which allows a control to work inside of a `MatFormField`. */\nclass MatFormFieldControl {\n static {\n this.ɵfac = function MatFormFieldControl_Factory(ɵt) {\n return new (ɵt || MatFormFieldControl)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatFormFieldControl\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatFormFieldControl, [{\n type: Directive\n }], null, null);\n})();\n\n/** @docs-private */\nfunction getMatFormFieldPlaceholderConflictError() {\n return Error('Placeholder attribute and child element were both specified.');\n}\n/** @docs-private */\nfunction getMatFormFieldDuplicatedHintError(align) {\n return Error(`A hint was already declared for 'align=\"${align}\"'.`);\n}\n/** @docs-private */\nfunction getMatFormFieldMissingControlError() {\n return Error('mat-form-field must contain a MatFormFieldControl.');\n}\n\n/**\n * Injection token that can be used to inject an instances of `MatFormField`. It serves\n * as alternative token to the actual `MatFormField` class which would cause unnecessary\n * retention of the `MatFormField` class and its component metadata.\n */\nconst MAT_FORM_FIELD = new InjectionToken('MatFormField');\n/**\n * Injection token that can be used to configure the\n * default options for all form field within an app.\n */\nconst MAT_FORM_FIELD_DEFAULT_OPTIONS = new InjectionToken('MAT_FORM_FIELD_DEFAULT_OPTIONS');\nlet nextUniqueId = 0;\n/** Default appearance used by the form field. */\nconst DEFAULT_APPEARANCE = 'fill';\n/**\n * Whether the label for form fields should by default float `always`,\n * `never`, or `auto`.\n */\nconst DEFAULT_FLOAT_LABEL = 'auto';\n/** Default way that the subscript element height is set. */\nconst DEFAULT_SUBSCRIPT_SIZING = 'fixed';\n/**\n * Default transform for docked floating labels in a MDC text-field. This value has been\n * extracted from the MDC text-field styles because we programmatically modify the docked\n * label transform, but do not want to accidentally discard the default label transform.\n */\nconst FLOATING_LABEL_DEFAULT_DOCKED_TRANSFORM = `translateY(-50%)`;\n/** Container for form controls that applies Material Design styling and behavior. */\nclass MatFormField {\n /** Whether the required marker should be hidden. */\n get hideRequiredMarker() {\n return this._hideRequiredMarker;\n }\n set hideRequiredMarker(value) {\n this._hideRequiredMarker = coerceBooleanProperty(value);\n }\n /** Whether the label should always float or float as the user types. */\n get floatLabel() {\n return this._floatLabel || this._defaults?.floatLabel || DEFAULT_FLOAT_LABEL;\n }\n set floatLabel(value) {\n if (value !== this._floatLabel) {\n this._floatLabel = value;\n // For backwards compatibility. Custom form field controls or directives might set\n // the \"floatLabel\" input and expect the form field view to be updated automatically.\n // e.g. autocomplete trigger. Ideally we'd get rid of this and the consumers would just\n // emit the \"stateChanges\" observable. TODO(devversion): consider removing.\n this._changeDetectorRef.markForCheck();\n }\n }\n /** The form field appearance style. */\n get appearance() {\n return this._appearance;\n }\n set appearance(value) {\n const oldValue = this._appearance;\n const newAppearance = value || this._defaults?.appearance || DEFAULT_APPEARANCE;\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (newAppearance !== 'fill' && newAppearance !== 'outline') {\n throw new Error(`MatFormField: Invalid appearance \"${newAppearance}\", valid values are \"fill\" or \"outline\".`);\n }\n }\n this._appearance = newAppearance;\n if (this._appearance === 'outline' && this._appearance !== oldValue) {\n // If the appearance has been switched to `outline`, the label offset needs to be updated.\n // The update can happen once the view has been re-checked, but not immediately because\n // the view has not been updated and the notched-outline floating label is not present.\n this._needsOutlineLabelOffsetUpdateOnStable = true;\n }\n }\n /**\n * Whether the form field should reserve space for one line of hint/error text (default)\n * or to have the spacing grow from 0px as needed based on the size of the hint/error content.\n * Note that when using dynamic sizing, layout shifts will occur when hint/error text changes.\n */\n get subscriptSizing() {\n return this._subscriptSizing || this._defaults?.subscriptSizing || DEFAULT_SUBSCRIPT_SIZING;\n }\n set subscriptSizing(value) {\n this._subscriptSizing = value || this._defaults?.subscriptSizing || DEFAULT_SUBSCRIPT_SIZING;\n }\n /** Text for the form field hint. */\n get hintLabel() {\n return this._hintLabel;\n }\n set hintLabel(value) {\n this._hintLabel = value;\n this._processHints();\n }\n /** Gets the current form field control */\n get _control() {\n return this._explicitFormFieldControl || this._formFieldControl;\n }\n set _control(value) {\n this._explicitFormFieldControl = value;\n }\n constructor(_elementRef, _changeDetectorRef, _ngZone, _dir, _platform, _defaults, _animationMode,\n /**\n * @deprecated not needed, to be removed.\n * @breaking-change 17.0.0 remove this param\n */\n _unusedDocument) {\n this._elementRef = _elementRef;\n this._changeDetectorRef = _changeDetectorRef;\n this._ngZone = _ngZone;\n this._dir = _dir;\n this._platform = _platform;\n this._defaults = _defaults;\n this._animationMode = _animationMode;\n this._hideRequiredMarker = false;\n /** The color palette for the form field. */\n this.color = 'primary';\n this._appearance = DEFAULT_APPEARANCE;\n this._subscriptSizing = null;\n this._hintLabel = '';\n this._hasIconPrefix = false;\n this._hasTextPrefix = false;\n this._hasIconSuffix = false;\n this._hasTextSuffix = false;\n // Unique id for the internal form field label.\n this._labelId = `mat-mdc-form-field-label-${nextUniqueId++}`;\n // Unique id for the hint label.\n this._hintLabelId = `mat-mdc-hint-${nextUniqueId++}`;\n /** State of the mat-hint and mat-error animations. */\n this._subscriptAnimationState = '';\n this._destroyed = new Subject();\n this._isFocused = null;\n this._needsOutlineLabelOffsetUpdateOnStable = false;\n if (_defaults) {\n if (_defaults.appearance) {\n this.appearance = _defaults.appearance;\n }\n this._hideRequiredMarker = Boolean(_defaults?.hideRequiredMarker);\n if (_defaults.color) {\n this.color = _defaults.color;\n }\n }\n }\n ngAfterViewInit() {\n // Initial focus state sync. This happens rarely, but we want to account for\n // it in case the form field control has \"focused\" set to true on init.\n this._updateFocusState();\n // Enable animations now. This ensures we don't animate on initial render.\n this._subscriptAnimationState = 'enter';\n // Because the above changes a value used in the template after it was checked, we need\n // to trigger CD or the change might not be reflected if there is no other CD scheduled.\n this._changeDetectorRef.detectChanges();\n }\n ngAfterContentInit() {\n this._assertFormFieldControl();\n this._initializeControl();\n this._initializeSubscript();\n this._initializePrefixAndSuffix();\n this._initializeOutlineLabelOffsetSubscriptions();\n }\n ngAfterContentChecked() {\n this._assertFormFieldControl();\n }\n ngOnDestroy() {\n this._destroyed.next();\n this._destroyed.complete();\n }\n /**\n * Gets the id of the label element. If no label is present, returns `null`.\n */\n getLabelId() {\n return 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() {\n return this._textField || this._elementRef;\n }\n /** Animates the placeholder up and locks it in position. */\n _animateAndLockLabel() {\n // This is for backwards compatibility only. Consumers of the form field might use\n // this method. e.g. the autocomplete trigger. This method has been added to the non-MDC\n // form field because setting \"floatLabel\" to \"always\" caused the label to float without\n // animation. This is different in MDC where the label always animates, so this method\n // is no longer necessary. There doesn't seem any benefit in adding logic to allow changing\n // the floating label state without animations. The non-MDC implementation was inconsistent\n // because it always animates if \"floatLabel\" is set away from \"always\".\n // TODO(devversion): consider removing this method when releasing the MDC form field.\n if (this._hasFloatingLabel()) {\n this.floatLabel = 'always';\n }\n }\n /** Initializes the registered form field control. */\n _initializeControl() {\n const control = this._control;\n if (control.controlType) {\n this._elementRef.nativeElement.classList.add(`mat-mdc-form-field-type-${control.controlType}`);\n }\n // Subscribe to changes in the child control state in order to update the form field UI.\n control.stateChanges.subscribe(() => {\n this._updateFocusState();\n this._syncDescribedByIds();\n this._changeDetectorRef.markForCheck();\n });\n // Run change detection if the value changes.\n if (control.ngControl && control.ngControl.valueChanges) {\n control.ngControl.valueChanges.pipe(takeUntil(this._destroyed)).subscribe(() => this._changeDetectorRef.markForCheck());\n }\n }\n _checkPrefixAndSuffixTypes() {\n this._hasIconPrefix = !!this._prefixChildren.find(p => !p._isText);\n this._hasTextPrefix = !!this._prefixChildren.find(p => p._isText);\n this._hasIconSuffix = !!this._suffixChildren.find(s => !s._isText);\n this._hasTextSuffix = !!this._suffixChildren.find(s => s._isText);\n }\n /** Initializes the prefix and suffix containers. */\n _initializePrefixAndSuffix() {\n this._checkPrefixAndSuffixTypes();\n // Mark the form field as dirty whenever the prefix or suffix children change. This\n // is necessary because we conditionally display the prefix/suffix containers based\n // on whether there is projected content.\n merge(this._prefixChildren.changes, this._suffixChildren.changes).subscribe(() => {\n this._checkPrefixAndSuffixTypes();\n this._changeDetectorRef.markForCheck();\n });\n }\n /**\n * Initializes the subscript by validating hints and synchronizing \"aria-describedby\" ids\n * with the custom form field control. Also subscribes to hint and error changes in order\n * to be able to validate and synchronize ids on change.\n */\n _initializeSubscript() {\n // Re-validate when the number of hints changes.\n this._hintChildren.changes.subscribe(() => {\n this._processHints();\n this._changeDetectorRef.markForCheck();\n });\n // Update the aria-described by when the number of errors changes.\n this._errorChildren.changes.subscribe(() => {\n this._syncDescribedByIds();\n this._changeDetectorRef.markForCheck();\n });\n // Initial mat-hint validation and subscript describedByIds sync.\n this._validateHints();\n this._syncDescribedByIds();\n }\n /** Throws an error if the form field's control is missing. */\n _assertFormFieldControl() {\n if (!this._control && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getMatFormFieldMissingControlError();\n }\n }\n _updateFocusState() {\n // Usually the MDC foundation would call \"activateFocus\" and \"deactivateFocus\" whenever\n // certain DOM events are emitted. This is not possible in our implementation of the\n // form field because we support abstract form field controls which are not necessarily\n // of type input, nor do we have a reference to a native form field control element. Instead\n // we handle the focus by checking if the abstract form field control focused state changes.\n if (this._control.focused && !this._isFocused) {\n this._isFocused = true;\n this._lineRipple?.activate();\n } else if (!this._control.focused && (this._isFocused || this._isFocused === null)) {\n this._isFocused = false;\n this._lineRipple?.deactivate();\n }\n this._textField?.nativeElement.classList.toggle('mdc-text-field--focused', this._control.focused);\n }\n /**\n * The floating label in the docked state needs to account for prefixes. The horizontal offset\n * is calculated whenever the appearance changes to `outline`, the prefixes change, or when the\n * form field is added to the DOM. This method sets up all subscriptions which are needed to\n * trigger the label offset update. In general, we want to avoid performing measurements often,\n * so we rely on the `NgZone` as indicator when the offset should be recalculated, instead of\n * checking every change detection cycle.\n */\n _initializeOutlineLabelOffsetSubscriptions() {\n // Whenever the prefix changes, schedule an update of the label offset.\n this._prefixChildren.changes.subscribe(() => this._needsOutlineLabelOffsetUpdateOnStable = true);\n // Note that we have to run outside of the `NgZone` explicitly, in order to avoid\n // throwing users into an infinite loop if `zone-patch-rxjs` is included.\n this._ngZone.runOutsideAngular(() => {\n this._ngZone.onStable.pipe(takeUntil(this._destroyed)).subscribe(() => {\n if (this._needsOutlineLabelOffsetUpdateOnStable) {\n this._needsOutlineLabelOffsetUpdateOnStable = false;\n this._updateOutlineLabelOffset();\n }\n });\n });\n this._dir.change.pipe(takeUntil(this._destroyed)).subscribe(() => this._needsOutlineLabelOffsetUpdateOnStable = true);\n }\n /** Whether the floating label should always float or not. */\n _shouldAlwaysFloat() {\n return this.floatLabel === 'always';\n }\n _hasOutline() {\n return this.appearance === 'outline';\n }\n /**\n * Whether the label should display in the infix. Labels in the outline appearance are\n * displayed as part of the notched-outline and are horizontally offset to account for\n * form field prefix content. This won't work in server side rendering since we cannot\n * measure the width of the prefix container. To make the docked label appear as if the\n * right offset has been calculated, we forcibly render the label inside the infix. Since\n * the label is part of the infix, the label cannot overflow the prefix content.\n */\n _forceDisplayInfixLabel() {\n return !this._platform.isBrowser && this._prefixChildren.length && !this._shouldLabelFloat();\n }\n _hasFloatingLabel() {\n return !!this._labelChildNonStatic || !!this._labelChildStatic;\n }\n _shouldLabelFloat() {\n return this._control.shouldLabelFloat || this._shouldAlwaysFloat();\n }\n /**\n * Determines whether a class from the AbstractControlDirective\n * should be forwarded to the host element.\n */\n _shouldForward(prop) {\n const control = this._control ? this._control.ngControl : null;\n return control && control[prop];\n }\n /** Determines whether to display hints or errors. */\n _getDisplayedMessages() {\n return this._errorChildren && this._errorChildren.length > 0 && this._control.errorState ? 'error' : 'hint';\n }\n /** Handle label resize events. */\n _handleLabelResized() {\n this._refreshOutlineNotchWidth();\n }\n /** Refreshes the width of the outline-notch, if present. */\n _refreshOutlineNotchWidth() {\n if (!this._hasOutline() || !this._floatingLabel || !this._shouldLabelFloat()) {\n this._notchedOutline?._setNotchWidth(0);\n } else {\n this._notchedOutline?._setNotchWidth(this._floatingLabel.getWidth());\n }\n }\n /** Does any extra processing that is required when handling the hints. */\n _processHints() {\n this._validateHints();\n this._syncDescribedByIds();\n }\n /**\n * Ensure that there is a maximum of one of each \"mat-hint\" alignment specified. The hint\n * label specified set through the input is being considered as \"start\" aligned.\n *\n * This method is a noop if Angular runs in production mode.\n */\n _validateHints() {\n if (this._hintChildren && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n let startHint;\n let endHint;\n this._hintChildren.forEach(hint => {\n if (hint.align === 'start') {\n if (startHint || this.hintLabel) {\n throw getMatFormFieldDuplicatedHintError('start');\n }\n startHint = hint;\n } else if (hint.align === 'end') {\n if (endHint) {\n throw getMatFormFieldDuplicatedHintError('end');\n }\n endHint = hint;\n }\n });\n }\n }\n /**\n * Sets the list of element IDs that describe the child control. This allows the control to update\n * its `aria-describedby` attribute accordingly.\n */\n _syncDescribedByIds() {\n if (this._control) {\n let ids = [];\n // TODO(wagnermaciel): Remove the type check when we find the root cause of this bug.\n if (this._control.userAriaDescribedBy && typeof this._control.userAriaDescribedBy === 'string') {\n ids.push(...this._control.userAriaDescribedBy.split(' '));\n }\n if (this._getDisplayedMessages() === 'hint') {\n const startHint = this._hintChildren ? this._hintChildren.find(hint => hint.align === 'start') : null;\n const endHint = this._hintChildren ? this._hintChildren.find(hint => hint.align === 'end') : null;\n if (startHint) {\n ids.push(startHint.id);\n } else if (this._hintLabel) {\n ids.push(this._hintLabelId);\n }\n if (endHint) {\n ids.push(endHint.id);\n }\n } else if (this._errorChildren) {\n ids.push(...this._errorChildren.map(error => error.id));\n }\n this._control.setDescribedByIds(ids);\n }\n }\n /**\n * Updates the horizontal offset of the label in the outline appearance. In the outline\n * appearance, the notched-outline and label are not relative to the infix container because\n * the outline intends to surround prefixes, suffixes and the infix. This means that the\n * floating label by default overlaps prefixes in the docked state. To avoid this, we need to\n * horizontally offset the label by the width of the prefix container. The MDC text-field does\n * not need to do this because they use a fixed width for prefixes. Hence, they can simply\n * incorporate the horizontal offset into their default text-field styles.\n */\n _updateOutlineLabelOffset() {\n if (!this._platform.isBrowser || !this._hasOutline() || !this._floatingLabel) {\n return;\n }\n const floatingLabel = this._floatingLabel.element;\n // If no prefix is displayed, reset the outline label offset from potential\n // previous label offset updates.\n if (!(this._iconPrefixContainer || this._textPrefixContainer)) {\n floatingLabel.style.transform = '';\n return;\n }\n // If the form field is not attached to the DOM yet (e.g. in a tab), we defer\n // the label offset update until the zone stabilizes.\n if (!this._isAttachedToDom()) {\n this._needsOutlineLabelOffsetUpdateOnStable = true;\n return;\n }\n const iconPrefixContainer = this._iconPrefixContainer?.nativeElement;\n const textPrefixContainer = this._textPrefixContainer?.nativeElement;\n const iconPrefixContainerWidth = iconPrefixContainer?.getBoundingClientRect().width ?? 0;\n const textPrefixContainerWidth = textPrefixContainer?.getBoundingClientRect().width ?? 0;\n // If the directionality is RTL, the x-axis transform needs to be inverted. This\n // is because `transformX` does not change based on the page directionality.\n const negate = this._dir.value === 'rtl' ? '-1' : '1';\n const prefixWidth = `${iconPrefixContainerWidth + textPrefixContainerWidth}px`;\n const labelOffset = `var(--mat-mdc-form-field-label-offset-x, 0px)`;\n const labelHorizontalOffset = `calc(${negate} * (${prefixWidth} + ${labelOffset}))`;\n // Update the translateX of the floating label to account for the prefix container,\n // but allow the CSS to override this setting via a CSS variable when the label is\n // floating.\n floatingLabel.style.transform = `var(\n --mat-mdc-form-field-label-transform,\n ${FLOATING_LABEL_DEFAULT_DOCKED_TRANSFORM} translateX(${labelHorizontalOffset})\n )`;\n }\n /** Checks whether the form field is attached to the DOM. */\n _isAttachedToDom() {\n const element = this._elementRef.nativeElement;\n if (element.getRootNode) {\n const rootNode = element.getRootNode();\n // If the element is inside the DOM the root node will be either the document\n // or the closest shadow root, otherwise it'll be the element itself.\n return rootNode && rootNode !== element;\n }\n // Otherwise fall back to checking if it's in the document. This doesn't account for\n // shadow DOM, however browser that support shadow DOM should support `getRootNode` as well.\n return document.documentElement.contains(element);\n }\n static {\n this.ɵfac = function MatFormField_Factory(ɵt) {\n return new (ɵt || MatFormField)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.Directionality), i0.ɵɵdirectiveInject(i2.Platform), i0.ɵɵdirectiveInject(MAT_FORM_FIELD_DEFAULT_OPTIONS, 8), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8), i0.ɵɵdirectiveInject(DOCUMENT));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatFormField,\n selectors: [[\"mat-form-field\"]],\n contentQueries: function MatFormField_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MatLabel, 5);\n i0.ɵɵcontentQuery(dirIndex, MatLabel, 7);\n i0.ɵɵcontentQuery(dirIndex, MatFormFieldControl, 5);\n i0.ɵɵcontentQuery(dirIndex, MAT_PREFIX, 5);\n i0.ɵɵcontentQuery(dirIndex, MAT_SUFFIX, 5);\n i0.ɵɵcontentQuery(dirIndex, MAT_ERROR, 5);\n i0.ɵɵcontentQuery(dirIndex, MatHint, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._labelChildNonStatic = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._labelChildStatic = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._formFieldControl = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._prefixChildren = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._suffixChildren = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._errorChildren = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._hintChildren = _t);\n }\n },\n viewQuery: function MatFormField_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c3, 5);\n i0.ɵɵviewQuery(_c4, 5);\n i0.ɵɵviewQuery(_c5, 5);\n i0.ɵɵviewQuery(MatFormFieldFloatingLabel, 5);\n i0.ɵɵviewQuery(MatFormFieldNotchedOutline, 5);\n i0.ɵɵviewQuery(MatFormFieldLineRipple, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._textField = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._iconPrefixContainer = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._textPrefixContainer = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._floatingLabel = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._notchedOutline = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._lineRipple = _t.first);\n }\n },\n hostAttrs: [1, \"mat-mdc-form-field\"],\n hostVars: 42,\n hostBindings: function MatFormField_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"mat-mdc-form-field-label-always-float\", ctx._shouldAlwaysFloat())(\"mat-mdc-form-field-has-icon-prefix\", ctx._hasIconPrefix)(\"mat-mdc-form-field-has-icon-suffix\", ctx._hasIconSuffix)(\"mat-form-field-invalid\", ctx._control.errorState)(\"mat-form-field-disabled\", ctx._control.disabled)(\"mat-form-field-autofilled\", ctx._control.autofilled)(\"mat-form-field-no-animations\", ctx._animationMode === \"NoopAnimations\")(\"mat-form-field-appearance-fill\", ctx.appearance == \"fill\")(\"mat-form-field-appearance-outline\", ctx.appearance == \"outline\")(\"mat-form-field-hide-placeholder\", ctx._hasFloatingLabel() && !ctx._shouldLabelFloat())(\"mat-focused\", ctx._control.focused)(\"mat-primary\", ctx.color !== \"accent\" && ctx.color !== \"warn\")(\"mat-accent\", ctx.color === \"accent\")(\"mat-warn\", ctx.color === \"warn\")(\"ng-untouched\", ctx._shouldForward(\"untouched\"))(\"ng-touched\", ctx._shouldForward(\"touched\"))(\"ng-pristine\", ctx._shouldForward(\"pristine\"))(\"ng-dirty\", ctx._shouldForward(\"dirty\"))(\"ng-valid\", ctx._shouldForward(\"valid\"))(\"ng-invalid\", ctx._shouldForward(\"invalid\"))(\"ng-pending\", ctx._shouldForward(\"pending\"));\n }\n },\n inputs: {\n hideRequiredMarker: \"hideRequiredMarker\",\n color: \"color\",\n floatLabel: \"floatLabel\",\n appearance: \"appearance\",\n subscriptSizing: \"subscriptSizing\",\n hintLabel: \"hintLabel\"\n },\n exportAs: [\"matFormField\"],\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_FORM_FIELD,\n useExisting: MatFormField\n }, {\n provide: FLOATING_LABEL_PARENT,\n useExisting: MatFormField\n }])],\n ngContentSelectors: _c7,\n decls: 18,\n vars: 23,\n consts: [[\"labelTemplate\", \"\"], [\"textField\", \"\"], [\"iconPrefixContainer\", \"\"], [\"textPrefixContainer\", \"\"], [1, \"mat-mdc-text-field-wrapper\", \"mdc-text-field\", 3, \"click\"], [\"class\", \"mat-mdc-form-field-focus-overlay\", 4, \"ngIf\"], [1, \"mat-mdc-form-field-flex\"], [\"matFormFieldNotchedOutline\", \"\", 3, \"matFormFieldNotchedOutlineOpen\", 4, \"ngIf\"], [\"class\", \"mat-mdc-form-field-icon-prefix\", 4, \"ngIf\"], [\"class\", \"mat-mdc-form-field-text-prefix\", 4, \"ngIf\"], [1, \"mat-mdc-form-field-infix\"], [3, \"ngIf\"], [\"class\", \"mat-mdc-form-field-text-suffix\", 4, \"ngIf\"], [\"class\", \"mat-mdc-form-field-icon-suffix\", 4, \"ngIf\"], [\"matFormFieldLineRipple\", \"\", 4, \"ngIf\"], [1, \"mat-mdc-form-field-subscript-wrapper\", \"mat-mdc-form-field-bottom-align\", 3, \"ngSwitch\"], [\"class\", \"mat-mdc-form-field-error-wrapper\", 4, \"ngSwitchCase\"], [\"class\", \"mat-mdc-form-field-hint-wrapper\", 4, \"ngSwitchCase\"], [\"matFormFieldFloatingLabel\", \"\", 3, \"floating\", \"monitorResize\", \"id\", 4, \"ngIf\"], [\"matFormFieldFloatingLabel\", \"\", 3, \"floating\", \"monitorResize\", \"id\"], [\"aria-hidden\", \"true\", \"class\", \"mat-mdc-form-field-required-marker mdc-floating-label--required\", 4, \"ngIf\"], [\"aria-hidden\", \"true\", 1, \"mat-mdc-form-field-required-marker\", \"mdc-floating-label--required\"], [1, \"mat-mdc-form-field-focus-overlay\"], [\"matFormFieldNotchedOutline\", \"\", 3, \"matFormFieldNotchedOutlineOpen\"], [3, \"ngTemplateOutlet\"], [1, \"mat-mdc-form-field-icon-prefix\"], [1, \"mat-mdc-form-field-text-prefix\"], [1, \"mat-mdc-form-field-text-suffix\"], [1, \"mat-mdc-form-field-icon-suffix\"], [\"matFormFieldLineRipple\", \"\"], [1, \"mat-mdc-form-field-error-wrapper\"], [1, \"mat-mdc-form-field-hint-wrapper\"], [3, \"id\", 4, \"ngIf\"], [1, \"mat-mdc-form-field-hint-spacer\"], [3, \"id\"]],\n template: function MatFormField_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵprojectionDef(_c6);\n i0.ɵɵtemplate(0, MatFormField_ng_template_0_Template, 1, 1, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementStart(2, \"div\", 4, 1);\n i0.ɵɵlistener(\"click\", function MatFormField_Template_div_click_2_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._control.onContainerClick($event));\n });\n i0.ɵɵtemplate(4, MatFormField_div_4_Template, 1, 0, \"div\", 5);\n i0.ɵɵelementStart(5, \"div\", 6);\n i0.ɵɵtemplate(6, MatFormField_div_6_Template, 2, 2, \"div\", 7)(7, MatFormField_div_7_Template, 3, 0, \"div\", 8)(8, MatFormField_div_8_Template, 3, 0, \"div\", 9);\n i0.ɵɵelementStart(9, \"div\", 10);\n i0.ɵɵtemplate(10, MatFormField_ng_template_10_Template, 1, 1, \"ng-template\", 11);\n i0.ɵɵprojection(11);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(12, MatFormField_div_12_Template, 2, 0, \"div\", 12)(13, MatFormField_div_13_Template, 2, 0, \"div\", 13);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(14, MatFormField_div_14_Template, 1, 0, \"div\", 14);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(15, \"div\", 15);\n i0.ɵɵtemplate(16, MatFormField_div_16_Template, 2, 1, \"div\", 16)(17, MatFormField_div_17_Template, 5, 2, \"div\", 17);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵadvance(2);\n i0.ɵɵclassProp(\"mdc-text-field--filled\", !ctx._hasOutline())(\"mdc-text-field--outlined\", ctx._hasOutline())(\"mdc-text-field--no-label\", !ctx._hasFloatingLabel())(\"mdc-text-field--disabled\", ctx._control.disabled)(\"mdc-text-field--invalid\", ctx._control.errorState);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", !ctx._hasOutline() && !ctx._control.disabled);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx._hasOutline());\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx._hasIconPrefix);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx._hasTextPrefix);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", !ctx._hasOutline() || ctx._forceDisplayInfixLabel());\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx._hasTextSuffix);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx._hasIconSuffix);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx._hasOutline());\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"mat-mdc-form-field-subscript-dynamic-size\", ctx.subscriptSizing === \"dynamic\");\n i0.ɵɵproperty(\"ngSwitch\", ctx._getDisplayedMessages());\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngSwitchCase\", \"error\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngSwitchCase\", \"hint\");\n }\n },\n dependencies: [i3.NgIf, i3.NgTemplateOutlet, i3.NgSwitch, i3.NgSwitchCase, MatHint, MatFormFieldFloatingLabel, MatFormFieldNotchedOutline, MatFormFieldLineRipple],\n styles: [\".mdc-text-field{border-top-left-radius:4px;border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:4px;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:0;border-bottom-left-radius:0;display:inline-flex;align-items:baseline;padding:0 16px;position:relative;box-sizing:border-box;overflow:hidden;will-change:opacity,transform,color}.mdc-text-field .mdc-floating-label{top:50%;transform:translateY(-50%);pointer-events:none}.mdc-text-field__input{height:28px;width:100%;min-width:0;border:none;border-radius:0;background:none;appearance:none;padding:0}.mdc-text-field__input::-ms-clear{display:none}.mdc-text-field__input::-webkit-calendar-picker-indicator{display:none}.mdc-text-field__input:focus{outline:none}.mdc-text-field__input:invalid{box-shadow:none}@media all{.mdc-text-field__input::placeholder{opacity:0}}@media all{.mdc-text-field__input:-ms-input-placeholder{opacity:0}}@media all{.mdc-text-field--no-label .mdc-text-field__input::placeholder,.mdc-text-field--focused .mdc-text-field__input::placeholder{opacity:1}}@media all{.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__affix{height:28px;opacity:0;white-space:nowrap}.mdc-text-field--label-floating .mdc-text-field__affix,.mdc-text-field--no-label .mdc-text-field__affix{opacity:1}@supports(-webkit-hyphens: none){.mdc-text-field--outlined .mdc-text-field__affix{align-items:center;align-self:center;display:inline-flex;height:100%}}.mdc-text-field__affix--prefix{padding-left:0;padding-right:2px}[dir=rtl] .mdc-text-field__affix--prefix,.mdc-text-field__affix--prefix[dir=rtl]{padding-left:2px;padding-right:0}.mdc-text-field--end-aligned .mdc-text-field__affix--prefix{padding-left:0;padding-right:12px}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__affix--prefix,.mdc-text-field--end-aligned .mdc-text-field__affix--prefix[dir=rtl]{padding-left:12px;padding-right:0}.mdc-text-field__affix--suffix{padding-left:12px;padding-right:0}[dir=rtl] .mdc-text-field__affix--suffix,.mdc-text-field__affix--suffix[dir=rtl]{padding-left:0;padding-right:12px}.mdc-text-field--end-aligned .mdc-text-field__affix--suffix{padding-left:2px;padding-right:0}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__affix--suffix,.mdc-text-field--end-aligned .mdc-text-field__affix--suffix[dir=rtl]{padding-left:0;padding-right:2px}.mdc-text-field--filled{height:56px}.mdc-text-field--filled::before{display:inline-block;width:0;height:40px;content:\\\"\\\";vertical-align:0}.mdc-text-field--filled .mdc-floating-label{left:16px;right:initial}[dir=rtl] .mdc-text-field--filled .mdc-floating-label,.mdc-text-field--filled .mdc-floating-label[dir=rtl]{left:initial;right:16px}.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{height:100%}.mdc-text-field--filled.mdc-text-field--no-label .mdc-floating-label{display:none}.mdc-text-field--filled.mdc-text-field--no-label::before{display:none}@supports(-webkit-hyphens: none){.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__affix{align-items:center;align-self:center;display:inline-flex;height:100%}}.mdc-text-field--outlined{height:56px;overflow:visible}.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) scale(1)}.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:.75rem}.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-text-field--outlined .mdc-text-field__input{height:100%}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{border-top-left-radius:4px;border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:4px;border-bottom-left-radius:var(--mdc-shape-small, 4px)}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading[dir=rtl]{border-top-left-radius:0;border-top-right-radius:4px;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:4px;border-bottom-right-radius:var(--mdc-shape-small, 4px);border-bottom-left-radius:0}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px, var(--mdc-shape-small, 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{max-width:calc(100% - max(12px, var(--mdc-shape-small, 4px))*2)}}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing{border-top-left-radius:0;border-top-right-radius:4px;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:4px;border-bottom-right-radius:var(--mdc-shape-small, 4px);border-bottom-left-radius:0}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing[dir=rtl]{border-top-left-radius:4px;border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:4px;border-bottom-left-radius:var(--mdc-shape-small, 4px)}@supports(top: max(0%)){.mdc-text-field--outlined{padding-left:max(16px, calc(var(--mdc-shape-small, 4px) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined{padding-right:max(16px, var(--mdc-shape-small, 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-left:max(16px, calc(var(--mdc-shape-small, 4px) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-right:max(16px, var(--mdc-shape-small, 4px))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-left:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-right:max(16px, var(--mdc-shape-small, 4px))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-right:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-left:max(16px, var(--mdc-shape-small, 4px))}}.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-right:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-left:max(16px, calc(var(--mdc-shape-small, 4px) + 4px))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-left:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-right:max(16px, calc(var(--mdc-shape-small, 4px) + 4px))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon{padding-left:0;padding-right:0}.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:1px}.mdc-text-field--outlined .mdc-floating-label{left:4px;right:initial}[dir=rtl] .mdc-text-field--outlined .mdc-floating-label,.mdc-text-field--outlined .mdc-floating-label[dir=rtl]{left:initial;right:4px}.mdc-text-field--outlined .mdc-text-field__input{display:flex;border:none !important;background-color:rgba(0,0,0,0)}.mdc-text-field--outlined .mdc-notched-outline{z-index:1}.mdc-text-field--textarea{flex-direction:column;align-items:center;width:auto;height:auto;padding:0}.mdc-text-field--textarea .mdc-floating-label{top:19px}.mdc-text-field--textarea .mdc-floating-label:not(.mdc-floating-label--float-above){transform:none}.mdc-text-field--textarea .mdc-text-field__input{flex-grow:1;height:auto;min-height:1.5rem;overflow-x:hidden;overflow-y:auto;box-sizing:border-box;resize:none;padding:0 16px}.mdc-text-field--textarea.mdc-text-field--filled::before{display:none}.mdc-text-field--textarea.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-10.25px) scale(0.75)}.mdc-text-field--textarea.mdc-text-field--filled .mdc-text-field__input{margin-top:23px;margin-bottom:9px}.mdc-text-field--textarea.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{margin-top:16px;margin-bottom:16px}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:0}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-27.25px) scale(1)}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:.75rem}.mdc-text-field--textarea.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-24.75px) scale(0.75)}.mdc-text-field--textarea.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-text-field__input{margin-top:16px;margin-bottom:16px}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label{top:18px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field__input{margin-bottom:2px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter{align-self:flex-end;padding:0 16px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter::after{display:inline-block;width:0;height:16px;content:\\\"\\\";vertical-align:-16px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter::before{display:none}.mdc-text-field__resizer{align-self:stretch;display:inline-flex;flex-direction:column;flex-grow:1;max-height:100%;max-width:100%;min-height:56px;min-width:fit-content;min-width:-moz-available;min-width:-webkit-fill-available;overflow:hidden;resize:both}.mdc-text-field--filled .mdc-text-field__resizer{transform:translateY(-1px)}.mdc-text-field--filled .mdc-text-field__resizer .mdc-text-field__input,.mdc-text-field--filled .mdc-text-field__resizer .mdc-text-field-character-counter{transform:translateY(1px)}.mdc-text-field--outlined .mdc-text-field__resizer{transform:translateX(-1px) translateY(-1px)}[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer,.mdc-text-field--outlined .mdc-text-field__resizer[dir=rtl]{transform:translateX(1px) translateY(-1px)}.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input,.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter{transform:translateX(1px) translateY(1px)}[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input,[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter,.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input[dir=rtl],.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter[dir=rtl]{transform:translateX(-1px) translateY(1px)}.mdc-text-field--with-leading-icon{padding-left:0;padding-right:16px}[dir=rtl] .mdc-text-field--with-leading-icon,.mdc-text-field--with-leading-icon[dir=rtl]{padding-left:16px;padding-right:0}.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 48px);left:48px;right:initial}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label,.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label[dir=rtl]{left:initial;right:48px}.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100% / 0.75 - 64px / 0.75)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label{left:36px;right:initial}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label[dir=rtl]{left:initial;right:36px}.mdc-text-field--with-leading-icon.mdc-text-field--outlined :not(.mdc-notched-outline--notched) .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) translateX(-32px) scale(1)}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above[dir=rtl]{transform:translateY(-37.25px) translateX(32px) scale(1)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:.75rem}.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-34.75px) translateX(-32px) scale(0.75)}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir=rtl],.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir=rtl]{transform:translateY(-34.75px) translateX(32px) scale(0.75)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-text-field--with-trailing-icon{padding-left:16px;padding-right:0}[dir=rtl] .mdc-text-field--with-trailing-icon,.mdc-text-field--with-trailing-icon[dir=rtl]{padding-left:0;padding-right:16px}.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 64px)}.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100% / 0.75 - 64px / 0.75)}.mdc-text-field--with-trailing-icon.mdc-text-field--outlined :not(.mdc-notched-outline--notched) .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon{padding-left:0;padding-right:0}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 96px)}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100% / 0.75 - 96px / 0.75)}.mdc-text-field-helper-line{display:flex;justify-content:space-between;box-sizing:border-box}.mdc-text-field+.mdc-text-field-helper-line{padding-right:16px;padding-left:16px}.mdc-form-field>.mdc-text-field+label{align-self:flex-start}.mdc-text-field--focused .mdc-notched-outline__leading,.mdc-text-field--focused .mdc-notched-outline__notch,.mdc-text-field--focused .mdc-notched-outline__trailing{border-width:2px}.mdc-text-field--focused+.mdc-text-field-helper-line .mdc-text-field-helper-text:not(.mdc-text-field-helper-text--validation-msg){opacity:1}.mdc-text-field--focused.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:2px}.mdc-text-field--focused.mdc-text-field--outlined.mdc-text-field--textarea .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:0}.mdc-text-field--invalid+.mdc-text-field-helper-line .mdc-text-field-helper-text--validation-msg{opacity:1}.mdc-text-field--disabled{pointer-events:none}@media screen and (forced-colors: active){.mdc-text-field--disabled .mdc-text-field__input{background-color:Window}.mdc-text-field--disabled .mdc-floating-label{z-index:1}}.mdc-text-field--disabled .mdc-floating-label{cursor:default}.mdc-text-field--disabled.mdc-text-field--filled .mdc-text-field__ripple{display:none}.mdc-text-field--disabled .mdc-text-field__input{pointer-events:auto}.mdc-text-field--end-aligned .mdc-text-field__input{text-align:right}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__input,.mdc-text-field--end-aligned .mdc-text-field__input[dir=rtl]{text-align:left}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__input,[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__input,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix{direction:ltr}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--prefix{padding-left:0;padding-right:2px}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--suffix{padding-left:12px;padding-right:0}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__icon--leading,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__icon--leading{order:1}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--suffix{order:2}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__input,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__input{order:3}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--prefix{order:4}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__icon--trailing,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__icon--trailing{order:5}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__input,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__input{text-align:right}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__affix--prefix{padding-right:12px}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__affix--suffix{padding-left:2px}.mdc-floating-label{position:absolute;left:0;-webkit-transform-origin:left top;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,.mdc-floating-label[dir=rtl]{right:0;left:auto;-webkit-transform-origin:right top;transform-origin:right top;text-align:right}.mdc-floating-label--float-above{cursor:auto}.mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after{margin-left:1px;margin-right:0px;content:\\\"*\\\"}[dir=rtl] .mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after,.mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)[dir=rtl]::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,.mdc-notched-outline[dir=rtl]{text-align:right}.mdc-notched-outline__leading,.mdc-notched-outline__notch,.mdc-notched-outline__trailing{box-sizing:border-box;height:100%;pointer-events:none}.mdc-notched-outline__trailing{flex-grow:1}.mdc-notched-outline__notch{flex:0 0 auto;width:auto}.mdc-notched-outline .mdc-floating-label{display:inline-block;position:relative;max-width:100%}.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-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,.mdc-notched-outline--notched .mdc-notched-outline__notch[dir=rtl]{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}.mdc-line-ripple::after{transform:scaleX(0);opacity:0;z-index:2}.mdc-line-ripple--active::after{transform:scaleX(1);opacity:1}.mdc-line-ripple--deactivating::after{opacity:0}.mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-notched-outline__leading,.mdc-notched-outline__notch,.mdc-notched-outline__trailing{border-top:1px solid;border-bottom:1px solid}.mdc-notched-outline__leading{border-left:1px solid;border-right:none;width:12px}[dir=rtl] .mdc-notched-outline__leading,.mdc-notched-outline__leading[dir=rtl]{border-left:none;border-right:1px solid}.mdc-notched-outline__trailing{border-left:none;border-right:1px solid}[dir=rtl] .mdc-notched-outline__trailing,.mdc-notched-outline__trailing[dir=rtl]{border-left:1px solid;border-right:none}.mdc-notched-outline__notch{max-width:calc(100% - 12px * 2)}.mdc-line-ripple::before{border-bottom-width:1px}.mdc-line-ripple::after{border-bottom-width:2px}.mdc-text-field--filled{--mdc-filled-text-field-active-indicator-height:1px;--mdc-filled-text-field-focus-active-indicator-height:2px;--mdc-filled-text-field-container-shape:4px;border-top-left-radius:var(--mdc-filled-text-field-container-shape);border-top-right-radius:var(--mdc-filled-text-field-container-shape);border-bottom-right-radius:0;border-bottom-left-radius:0}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-filled-text-field-caret-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-filled-text-field-error-caret-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-filled-text-field-input-text-color)}.mdc-text-field--filled.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-filled-text-field-disabled-input-text-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-floating-label,.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-label-text-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label,.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-focus-label-text-color)}.mdc-text-field--filled.mdc-text-field--disabled .mdc-floating-label,.mdc-text-field--filled.mdc-text-field--disabled .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-disabled-label-text-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label,.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-error-label-text-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label,.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-error-focus-label-text-color)}.mdc-text-field--filled .mdc-floating-label{font-family:var(--mdc-filled-text-field-label-text-font);font-size:var(--mdc-filled-text-field-label-text-size);font-weight:var(--mdc-filled-text-field-label-text-weight);letter-spacing:var(--mdc-filled-text-field-label-text-tracking)}@media all{.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color)}}@media all{.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color)}}.mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:var(--mdc-filled-text-field-container-color)}.mdc-text-field--filled.mdc-text-field--disabled{background-color:var(--mdc-filled-text-field-disabled-container-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-active-indicator-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-hover-active-indicator-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-focus-active-indicator-color)}.mdc-text-field--filled.mdc-text-field--disabled .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-disabled-active-indicator-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-active-indicator-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-hover-active-indicator-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-error-focus-active-indicator-color)}.mdc-text-field--filled .mdc-line-ripple::before{border-bottom-width:var(--mdc-filled-text-field-active-indicator-height)}.mdc-text-field--filled .mdc-line-ripple::after{border-bottom-width:var(--mdc-filled-text-field-focus-active-indicator-height)}.mdc-text-field--outlined{--mdc-outlined-text-field-outline-width:1px;--mdc-outlined-text-field-focus-outline-width:2px;--mdc-outlined-text-field-container-shape:4px}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-outlined-text-field-caret-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-outlined-text-field-error-caret-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-outlined-text-field-input-text-color)}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-outlined-text-field-disabled-input-text-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-floating-label,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-label-text-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-focus-label-text-color)}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-floating-label,.mdc-text-field--outlined.mdc-text-field--disabled .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-disabled-label-text-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-error-label-text-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-error-focus-label-text-color)}.mdc-text-field--outlined .mdc-floating-label{font-family:var(--mdc-outlined-text-field-label-text-font);font-size:var(--mdc-outlined-text-field-label-text-size);font-weight:var(--mdc-outlined-text-field-label-text-weight);letter-spacing:var(--mdc-outlined-text-field-label-text-tracking)}@media all{.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color)}}@media all{.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color)}}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{border-top-left-radius:var(--mdc-outlined-text-field-container-shape);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape)}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading[dir=rtl]{border-top-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape);border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape);border-bottom-left-radius:0}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px, var(--mdc-outlined-text-field-container-shape))}}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{max-width:calc(100% - max(12px, var(--mdc-outlined-text-field-container-shape))*2)}}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing{border-top-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape);border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape);border-bottom-left-radius:0}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing[dir=rtl]{border-top-left-radius:var(--mdc-outlined-text-field-container-shape);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape)}@supports(top: max(0%)){.mdc-text-field--outlined{padding-left:max(16px, calc(var(--mdc-outlined-text-field-container-shape) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined{padding-right:max(16px, var(--mdc-outlined-text-field-container-shape))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-left:max(16px, calc(var(--mdc-outlined-text-field-container-shape) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-right:max(16px, var(--mdc-outlined-text-field-container-shape))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-left:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-right:max(16px, var(--mdc-outlined-text-field-container-shape))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-right:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-left:max(16px, var(--mdc-outlined-text-field-container-shape))}}.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-right:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-left:max(16px, calc(var(--mdc-outlined-text-field-container-shape) + 4px))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-left:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-right:max(16px, calc(var(--mdc-outlined-text-field-container-shape) + 4px))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon{padding-left:0;padding-right:0}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-outline-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-hover-outline-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-focus-outline-color)}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-notched-outline__leading,.mdc-text-field--outlined.mdc-text-field--disabled .mdc-notched-outline__notch,.mdc-text-field--outlined.mdc-text-field--disabled .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-disabled-outline-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__leading,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__notch,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-error-outline-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-error-hover-outline-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__leading,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__notch,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-error-focus-outline-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline .mdc-notched-outline__trailing{border-width:var(--mdc-outlined-text-field-outline-width)}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mdc-notched-outline__trailing{border-width:var(--mdc-outlined-text-field-focus-outline-width)}.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}.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}.mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-left:0;--mat-mdc-form-field-label-offset-x: -16px}.mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-right:0}[dir=rtl] .mat-mdc-text-field-wrapper{padding-left:16px;padding-right:16px}[dir=rtl] .mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-left:0}[dir=rtl] .mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-right:0}.mat-form-field-disabled .mdc-text-field__input::placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-form-field-disabled .mdc-text-field__input::-moz-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-form-field-disabled .mdc-text-field__input::-webkit-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-form-field-disabled .mdc-text-field__input:-ms-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-mdc-form-field-label-always-float .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms;opacity:1}.mat-mdc-text-field-wrapper .mat-mdc-form-field-infix .mat-mdc-floating-label{left:auto;right:auto}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-text-field__input{display:inline-block}.mat-mdc-form-field .mat-mdc-text-field-wrapper.mdc-text-field .mdc-notched-outline__notch{padding-top:0}.mat-mdc-text-field-wrapper::before{content:none}.mat-mdc-form-field-subscript-wrapper{box-sizing:border-box;width:100%;position:relative}.mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-error-wrapper{position:absolute;top:0;left:0;right:0;padding:0 16px}.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-error-wrapper{position:static}.mat-mdc-form-field-bottom-align::before{content:\\\"\\\";display:inline-block;height:16px}.mat-mdc-form-field-bottom-align.mat-mdc-form-field-subscript-dynamic-size::before{content:unset}.mat-mdc-form-field-hint-end{order:1}.mat-mdc-form-field-hint-wrapper{display:flex}.mat-mdc-form-field-hint-spacer{flex:1 0 1em}.mat-mdc-form-field-error{display:block}.mat-mdc-form-field-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;opacity:0;pointer-events:none}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}.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}[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-mdc-form-field-input-control{padding-right:15px}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:0;padding-left:15px}.cdk-high-contrast-active .mat-form-field-appearance-fill .mat-mdc-text-field-wrapper{outline:solid 1px}.cdk-high-contrast-active .mat-form-field-appearance-fill.mat-form-field-disabled .mat-mdc-text-field-wrapper{outline-color:GrayText}.cdk-high-contrast-active .mat-form-field-appearance-fill.mat-focused .mat-mdc-text-field-wrapper{outline:dashed 3px}.cdk-high-contrast-active .mat-mdc-form-field.mat-focused .mdc-notched-outline{border:dashed 3px}.mat-mdc-form-field-input-control[type=date],.mat-mdc-form-field-input-control[type=datetime],.mat-mdc-form-field-input-control[type=datetime-local],.mat-mdc-form-field-input-control[type=month],.mat-mdc-form-field-input-control[type=week],.mat-mdc-form-field-input-control[type=time]{line-height:1}.mat-mdc-form-field-input-control::-webkit-datetime-edit{line-height:1;padding:0;margin-bottom:-2px}.mat-mdc-form-field{--mat-mdc-form-field-floating-label-scale: 0.75;display:inline-flex;flex-direction:column;min-width:0;text-align:left;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-container-text-font);line-height:var(--mat-form-field-container-text-line-height);font-size:var(--mat-form-field-container-text-size);letter-spacing:var(--mat-form-field-container-text-tracking);font-weight:var(--mat-form-field-container-text-weight)}[dir=rtl] .mat-mdc-form-field{text-align:right}.mat-mdc-form-field .mdc-text-field--outlined .mdc-floating-label--float-above{font-size:calc(var(--mat-form-field-outlined-label-text-populated-size) * var(--mat-mdc-form-field-floating-label-scale))}.mat-mdc-form-field .mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:var(--mat-form-field-outlined-label-text-populated-size)}.mat-mdc-form-field-flex{display:inline-flex;align-items:baseline;box-sizing:border-box;width:100%}.mat-mdc-text-field-wrapper{width:100%}.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,[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-icon-prefix>.mat-icon,.mat-mdc-form-field-icon-suffix>.mat-icon{padding:12px;box-sizing:content-box}.mat-mdc-form-field-subscript-wrapper .mat-icon,.mat-mdc-form-field label .mat-icon{width:1em;height:1em;font-size:inherit}.mat-mdc-form-field-infix{flex:auto;min-width:0;width:180px;position:relative;box-sizing:border-box}.mat-mdc-form-field .mdc-notched-outline__notch{margin-left:-1px;-webkit-clip-path:inset(-9em -999em -9em 1px);clip-path:inset(-9em -999em -9em 1px)}[dir=rtl] .mat-mdc-form-field .mdc-notched-outline__notch{margin-left:0;margin-right:-1px;-webkit-clip-path:inset(-9em 1px -9em -999em);clip-path:inset(-9em 1px -9em -999em)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input{transition:opacity 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}@media all{.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder{transition:opacity 67ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}}@media all{.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder{transition:opacity 67ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}}@media all{.mdc-text-field--no-label .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder,.mdc-text-field--focused .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms}}@media all{.mdc-text-field--no-label .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder,.mdc-text-field--focused .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder{transition-delay:40ms;transition-duration:110ms}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__affix{transition:opacity 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--filled.mdc-ripple-upgraded--background-focused .mdc-text-field__ripple::before,.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--filled:not(.mdc-ripple-upgraded):focus .mdc-text-field__ripple::before{transition-duration:75ms}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--textarea{transition:none}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--textarea.mdc-text-field--filled .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-textarea-filled 250ms 1}@keyframes mdc-floating-label-shake-float-above-textarea-filled{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-textarea-outlined 250ms 1}@keyframes mdc-floating-label-shake-float-above-textarea-outlined{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined-leading-icon 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon{0%{transform:translateX(calc(0% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}100%{transform:translateX(calc(0% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}}[dir=rtl] .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--shake,.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--with-leading-icon.mdc-text-field--outlined[dir=rtl] .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined-leading-icon 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-rtl{0%{transform:translateX(calc(0% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}100%{transform:translateX(calc(0% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-floating-label{transition:transform 150ms cubic-bezier(0.4, 0, 0.2, 1),color 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-standard 250ms 1}@keyframes mdc-floating-label-shake-float-above-standard{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-line-ripple::after{transition:transform 180ms cubic-bezier(0.4, 0, 0.2, 1),opacity 180ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-notched-outline .mdc-floating-label{max-width:calc(100% + 1px)}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:calc(133.3333333333% + 1px)}\"],\n encapsulation: 2,\n data: {\n animation: [matFormFieldAnimations.transitionMessages]\n },\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatFormField, [{\n type: Component,\n args: [{\n selector: 'mat-form-field',\n exportAs: 'matFormField',\n animations: [matFormFieldAnimations.transitionMessages],\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-no-animations]': '_animationMode === \"NoopAnimations\"',\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-focused]': '_control.focused',\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,\n useExisting: MatFormField\n }, {\n provide: FLOATING_LABEL_PARENT,\n useExisting: MatFormField\n }],\n template: \"\\n \\n \\n \\n \\n \\n \\n\\n\\n\\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n\\n \\n\\n\\n\\n \\n \\n \\n\\n \\n {{hintLabel}}\\n \\n \\n \\n \\n\\n\",\n styles: [\".mdc-text-field{border-top-left-radius:4px;border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:4px;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:0;border-bottom-left-radius:0;display:inline-flex;align-items:baseline;padding:0 16px;position:relative;box-sizing:border-box;overflow:hidden;will-change:opacity,transform,color}.mdc-text-field .mdc-floating-label{top:50%;transform:translateY(-50%);pointer-events:none}.mdc-text-field__input{height:28px;width:100%;min-width:0;border:none;border-radius:0;background:none;appearance:none;padding:0}.mdc-text-field__input::-ms-clear{display:none}.mdc-text-field__input::-webkit-calendar-picker-indicator{display:none}.mdc-text-field__input:focus{outline:none}.mdc-text-field__input:invalid{box-shadow:none}@media all{.mdc-text-field__input::placeholder{opacity:0}}@media all{.mdc-text-field__input:-ms-input-placeholder{opacity:0}}@media all{.mdc-text-field--no-label .mdc-text-field__input::placeholder,.mdc-text-field--focused .mdc-text-field__input::placeholder{opacity:1}}@media all{.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__affix{height:28px;opacity:0;white-space:nowrap}.mdc-text-field--label-floating .mdc-text-field__affix,.mdc-text-field--no-label .mdc-text-field__affix{opacity:1}@supports(-webkit-hyphens: none){.mdc-text-field--outlined .mdc-text-field__affix{align-items:center;align-self:center;display:inline-flex;height:100%}}.mdc-text-field__affix--prefix{padding-left:0;padding-right:2px}[dir=rtl] .mdc-text-field__affix--prefix,.mdc-text-field__affix--prefix[dir=rtl]{padding-left:2px;padding-right:0}.mdc-text-field--end-aligned .mdc-text-field__affix--prefix{padding-left:0;padding-right:12px}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__affix--prefix,.mdc-text-field--end-aligned .mdc-text-field__affix--prefix[dir=rtl]{padding-left:12px;padding-right:0}.mdc-text-field__affix--suffix{padding-left:12px;padding-right:0}[dir=rtl] .mdc-text-field__affix--suffix,.mdc-text-field__affix--suffix[dir=rtl]{padding-left:0;padding-right:12px}.mdc-text-field--end-aligned .mdc-text-field__affix--suffix{padding-left:2px;padding-right:0}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__affix--suffix,.mdc-text-field--end-aligned .mdc-text-field__affix--suffix[dir=rtl]{padding-left:0;padding-right:2px}.mdc-text-field--filled{height:56px}.mdc-text-field--filled::before{display:inline-block;width:0;height:40px;content:\\\"\\\";vertical-align:0}.mdc-text-field--filled .mdc-floating-label{left:16px;right:initial}[dir=rtl] .mdc-text-field--filled .mdc-floating-label,.mdc-text-field--filled .mdc-floating-label[dir=rtl]{left:initial;right:16px}.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{height:100%}.mdc-text-field--filled.mdc-text-field--no-label .mdc-floating-label{display:none}.mdc-text-field--filled.mdc-text-field--no-label::before{display:none}@supports(-webkit-hyphens: none){.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__affix{align-items:center;align-self:center;display:inline-flex;height:100%}}.mdc-text-field--outlined{height:56px;overflow:visible}.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) scale(1)}.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:.75rem}.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-text-field--outlined .mdc-text-field__input{height:100%}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{border-top-left-radius:4px;border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:4px;border-bottom-left-radius:var(--mdc-shape-small, 4px)}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading[dir=rtl]{border-top-left-radius:0;border-top-right-radius:4px;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:4px;border-bottom-right-radius:var(--mdc-shape-small, 4px);border-bottom-left-radius:0}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px, var(--mdc-shape-small, 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{max-width:calc(100% - max(12px, var(--mdc-shape-small, 4px))*2)}}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing{border-top-left-radius:0;border-top-right-radius:4px;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:4px;border-bottom-right-radius:var(--mdc-shape-small, 4px);border-bottom-left-radius:0}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing[dir=rtl]{border-top-left-radius:4px;border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:4px;border-bottom-left-radius:var(--mdc-shape-small, 4px)}@supports(top: max(0%)){.mdc-text-field--outlined{padding-left:max(16px, calc(var(--mdc-shape-small, 4px) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined{padding-right:max(16px, var(--mdc-shape-small, 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-left:max(16px, calc(var(--mdc-shape-small, 4px) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-right:max(16px, var(--mdc-shape-small, 4px))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-left:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-right:max(16px, var(--mdc-shape-small, 4px))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-right:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-left:max(16px, var(--mdc-shape-small, 4px))}}.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-right:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-left:max(16px, calc(var(--mdc-shape-small, 4px) + 4px))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-left:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-right:max(16px, calc(var(--mdc-shape-small, 4px) + 4px))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon{padding-left:0;padding-right:0}.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:1px}.mdc-text-field--outlined .mdc-floating-label{left:4px;right:initial}[dir=rtl] .mdc-text-field--outlined .mdc-floating-label,.mdc-text-field--outlined .mdc-floating-label[dir=rtl]{left:initial;right:4px}.mdc-text-field--outlined .mdc-text-field__input{display:flex;border:none !important;background-color:rgba(0,0,0,0)}.mdc-text-field--outlined .mdc-notched-outline{z-index:1}.mdc-text-field--textarea{flex-direction:column;align-items:center;width:auto;height:auto;padding:0}.mdc-text-field--textarea .mdc-floating-label{top:19px}.mdc-text-field--textarea .mdc-floating-label:not(.mdc-floating-label--float-above){transform:none}.mdc-text-field--textarea .mdc-text-field__input{flex-grow:1;height:auto;min-height:1.5rem;overflow-x:hidden;overflow-y:auto;box-sizing:border-box;resize:none;padding:0 16px}.mdc-text-field--textarea.mdc-text-field--filled::before{display:none}.mdc-text-field--textarea.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-10.25px) scale(0.75)}.mdc-text-field--textarea.mdc-text-field--filled .mdc-text-field__input{margin-top:23px;margin-bottom:9px}.mdc-text-field--textarea.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{margin-top:16px;margin-bottom:16px}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:0}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-27.25px) scale(1)}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:.75rem}.mdc-text-field--textarea.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-24.75px) scale(0.75)}.mdc-text-field--textarea.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-text-field__input{margin-top:16px;margin-bottom:16px}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label{top:18px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field__input{margin-bottom:2px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter{align-self:flex-end;padding:0 16px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter::after{display:inline-block;width:0;height:16px;content:\\\"\\\";vertical-align:-16px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter::before{display:none}.mdc-text-field__resizer{align-self:stretch;display:inline-flex;flex-direction:column;flex-grow:1;max-height:100%;max-width:100%;min-height:56px;min-width:fit-content;min-width:-moz-available;min-width:-webkit-fill-available;overflow:hidden;resize:both}.mdc-text-field--filled .mdc-text-field__resizer{transform:translateY(-1px)}.mdc-text-field--filled .mdc-text-field__resizer .mdc-text-field__input,.mdc-text-field--filled .mdc-text-field__resizer .mdc-text-field-character-counter{transform:translateY(1px)}.mdc-text-field--outlined .mdc-text-field__resizer{transform:translateX(-1px) translateY(-1px)}[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer,.mdc-text-field--outlined .mdc-text-field__resizer[dir=rtl]{transform:translateX(1px) translateY(-1px)}.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input,.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter{transform:translateX(1px) translateY(1px)}[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input,[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter,.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input[dir=rtl],.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter[dir=rtl]{transform:translateX(-1px) translateY(1px)}.mdc-text-field--with-leading-icon{padding-left:0;padding-right:16px}[dir=rtl] .mdc-text-field--with-leading-icon,.mdc-text-field--with-leading-icon[dir=rtl]{padding-left:16px;padding-right:0}.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 48px);left:48px;right:initial}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label,.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label[dir=rtl]{left:initial;right:48px}.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100% / 0.75 - 64px / 0.75)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label{left:36px;right:initial}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label[dir=rtl]{left:initial;right:36px}.mdc-text-field--with-leading-icon.mdc-text-field--outlined :not(.mdc-notched-outline--notched) .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) translateX(-32px) scale(1)}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above[dir=rtl]{transform:translateY(-37.25px) translateX(32px) scale(1)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:.75rem}.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-34.75px) translateX(-32px) scale(0.75)}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir=rtl],.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir=rtl]{transform:translateY(-34.75px) translateX(32px) scale(0.75)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-text-field--with-trailing-icon{padding-left:16px;padding-right:0}[dir=rtl] .mdc-text-field--with-trailing-icon,.mdc-text-field--with-trailing-icon[dir=rtl]{padding-left:0;padding-right:16px}.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 64px)}.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100% / 0.75 - 64px / 0.75)}.mdc-text-field--with-trailing-icon.mdc-text-field--outlined :not(.mdc-notched-outline--notched) .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon{padding-left:0;padding-right:0}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 96px)}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100% / 0.75 - 96px / 0.75)}.mdc-text-field-helper-line{display:flex;justify-content:space-between;box-sizing:border-box}.mdc-text-field+.mdc-text-field-helper-line{padding-right:16px;padding-left:16px}.mdc-form-field>.mdc-text-field+label{align-self:flex-start}.mdc-text-field--focused .mdc-notched-outline__leading,.mdc-text-field--focused .mdc-notched-outline__notch,.mdc-text-field--focused .mdc-notched-outline__trailing{border-width:2px}.mdc-text-field--focused+.mdc-text-field-helper-line .mdc-text-field-helper-text:not(.mdc-text-field-helper-text--validation-msg){opacity:1}.mdc-text-field--focused.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:2px}.mdc-text-field--focused.mdc-text-field--outlined.mdc-text-field--textarea .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:0}.mdc-text-field--invalid+.mdc-text-field-helper-line .mdc-text-field-helper-text--validation-msg{opacity:1}.mdc-text-field--disabled{pointer-events:none}@media screen and (forced-colors: active){.mdc-text-field--disabled .mdc-text-field__input{background-color:Window}.mdc-text-field--disabled .mdc-floating-label{z-index:1}}.mdc-text-field--disabled .mdc-floating-label{cursor:default}.mdc-text-field--disabled.mdc-text-field--filled .mdc-text-field__ripple{display:none}.mdc-text-field--disabled .mdc-text-field__input{pointer-events:auto}.mdc-text-field--end-aligned .mdc-text-field__input{text-align:right}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__input,.mdc-text-field--end-aligned .mdc-text-field__input[dir=rtl]{text-align:left}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__input,[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__input,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix{direction:ltr}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--prefix{padding-left:0;padding-right:2px}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--suffix{padding-left:12px;padding-right:0}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__icon--leading,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__icon--leading{order:1}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--suffix{order:2}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__input,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__input{order:3}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--prefix{order:4}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__icon--trailing,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__icon--trailing{order:5}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__input,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__input{text-align:right}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__affix--prefix{padding-right:12px}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__affix--suffix{padding-left:2px}.mdc-floating-label{position:absolute;left:0;-webkit-transform-origin:left top;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,.mdc-floating-label[dir=rtl]{right:0;left:auto;-webkit-transform-origin:right top;transform-origin:right top;text-align:right}.mdc-floating-label--float-above{cursor:auto}.mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after{margin-left:1px;margin-right:0px;content:\\\"*\\\"}[dir=rtl] .mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after,.mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)[dir=rtl]::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,.mdc-notched-outline[dir=rtl]{text-align:right}.mdc-notched-outline__leading,.mdc-notched-outline__notch,.mdc-notched-outline__trailing{box-sizing:border-box;height:100%;pointer-events:none}.mdc-notched-outline__trailing{flex-grow:1}.mdc-notched-outline__notch{flex:0 0 auto;width:auto}.mdc-notched-outline .mdc-floating-label{display:inline-block;position:relative;max-width:100%}.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-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,.mdc-notched-outline--notched .mdc-notched-outline__notch[dir=rtl]{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}.mdc-line-ripple::after{transform:scaleX(0);opacity:0;z-index:2}.mdc-line-ripple--active::after{transform:scaleX(1);opacity:1}.mdc-line-ripple--deactivating::after{opacity:0}.mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-notched-outline__leading,.mdc-notched-outline__notch,.mdc-notched-outline__trailing{border-top:1px solid;border-bottom:1px solid}.mdc-notched-outline__leading{border-left:1px solid;border-right:none;width:12px}[dir=rtl] .mdc-notched-outline__leading,.mdc-notched-outline__leading[dir=rtl]{border-left:none;border-right:1px solid}.mdc-notched-outline__trailing{border-left:none;border-right:1px solid}[dir=rtl] .mdc-notched-outline__trailing,.mdc-notched-outline__trailing[dir=rtl]{border-left:1px solid;border-right:none}.mdc-notched-outline__notch{max-width:calc(100% - 12px * 2)}.mdc-line-ripple::before{border-bottom-width:1px}.mdc-line-ripple::after{border-bottom-width:2px}.mdc-text-field--filled{--mdc-filled-text-field-active-indicator-height:1px;--mdc-filled-text-field-focus-active-indicator-height:2px;--mdc-filled-text-field-container-shape:4px;border-top-left-radius:var(--mdc-filled-text-field-container-shape);border-top-right-radius:var(--mdc-filled-text-field-container-shape);border-bottom-right-radius:0;border-bottom-left-radius:0}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-filled-text-field-caret-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-filled-text-field-error-caret-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-filled-text-field-input-text-color)}.mdc-text-field--filled.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-filled-text-field-disabled-input-text-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-floating-label,.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-label-text-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label,.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-focus-label-text-color)}.mdc-text-field--filled.mdc-text-field--disabled .mdc-floating-label,.mdc-text-field--filled.mdc-text-field--disabled .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-disabled-label-text-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label,.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-error-label-text-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label,.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-error-focus-label-text-color)}.mdc-text-field--filled .mdc-floating-label{font-family:var(--mdc-filled-text-field-label-text-font);font-size:var(--mdc-filled-text-field-label-text-size);font-weight:var(--mdc-filled-text-field-label-text-weight);letter-spacing:var(--mdc-filled-text-field-label-text-tracking)}@media all{.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color)}}@media all{.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color)}}.mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:var(--mdc-filled-text-field-container-color)}.mdc-text-field--filled.mdc-text-field--disabled{background-color:var(--mdc-filled-text-field-disabled-container-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-active-indicator-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-hover-active-indicator-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-focus-active-indicator-color)}.mdc-text-field--filled.mdc-text-field--disabled .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-disabled-active-indicator-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-active-indicator-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-hover-active-indicator-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-error-focus-active-indicator-color)}.mdc-text-field--filled .mdc-line-ripple::before{border-bottom-width:var(--mdc-filled-text-field-active-indicator-height)}.mdc-text-field--filled .mdc-line-ripple::after{border-bottom-width:var(--mdc-filled-text-field-focus-active-indicator-height)}.mdc-text-field--outlined{--mdc-outlined-text-field-outline-width:1px;--mdc-outlined-text-field-focus-outline-width:2px;--mdc-outlined-text-field-container-shape:4px}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-outlined-text-field-caret-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-outlined-text-field-error-caret-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-outlined-text-field-input-text-color)}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-outlined-text-field-disabled-input-text-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-floating-label,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-label-text-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-focus-label-text-color)}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-floating-label,.mdc-text-field--outlined.mdc-text-field--disabled .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-disabled-label-text-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-error-label-text-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-error-focus-label-text-color)}.mdc-text-field--outlined .mdc-floating-label{font-family:var(--mdc-outlined-text-field-label-text-font);font-size:var(--mdc-outlined-text-field-label-text-size);font-weight:var(--mdc-outlined-text-field-label-text-weight);letter-spacing:var(--mdc-outlined-text-field-label-text-tracking)}@media all{.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color)}}@media all{.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color)}}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{border-top-left-radius:var(--mdc-outlined-text-field-container-shape);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape)}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading[dir=rtl]{border-top-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape);border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape);border-bottom-left-radius:0}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px, var(--mdc-outlined-text-field-container-shape))}}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{max-width:calc(100% - max(12px, var(--mdc-outlined-text-field-container-shape))*2)}}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing{border-top-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape);border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape);border-bottom-left-radius:0}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing[dir=rtl]{border-top-left-radius:var(--mdc-outlined-text-field-container-shape);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape)}@supports(top: max(0%)){.mdc-text-field--outlined{padding-left:max(16px, calc(var(--mdc-outlined-text-field-container-shape) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined{padding-right:max(16px, var(--mdc-outlined-text-field-container-shape))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-left:max(16px, calc(var(--mdc-outlined-text-field-container-shape) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-right:max(16px, var(--mdc-outlined-text-field-container-shape))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-left:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-right:max(16px, var(--mdc-outlined-text-field-container-shape))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-right:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-left:max(16px, var(--mdc-outlined-text-field-container-shape))}}.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-right:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-left:max(16px, calc(var(--mdc-outlined-text-field-container-shape) + 4px))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-left:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-right:max(16px, calc(var(--mdc-outlined-text-field-container-shape) + 4px))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon{padding-left:0;padding-right:0}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-outline-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-hover-outline-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-focus-outline-color)}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-notched-outline__leading,.mdc-text-field--outlined.mdc-text-field--disabled .mdc-notched-outline__notch,.mdc-text-field--outlined.mdc-text-field--disabled .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-disabled-outline-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__leading,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__notch,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-error-outline-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-error-hover-outline-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__leading,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__notch,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-error-focus-outline-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline .mdc-notched-outline__trailing{border-width:var(--mdc-outlined-text-field-outline-width)}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mdc-notched-outline__trailing{border-width:var(--mdc-outlined-text-field-focus-outline-width)}.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}.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}.mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-left:0;--mat-mdc-form-field-label-offset-x: -16px}.mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-right:0}[dir=rtl] .mat-mdc-text-field-wrapper{padding-left:16px;padding-right:16px}[dir=rtl] .mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-left:0}[dir=rtl] .mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-right:0}.mat-form-field-disabled .mdc-text-field__input::placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-form-field-disabled .mdc-text-field__input::-moz-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-form-field-disabled .mdc-text-field__input::-webkit-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-form-field-disabled .mdc-text-field__input:-ms-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-mdc-form-field-label-always-float .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms;opacity:1}.mat-mdc-text-field-wrapper .mat-mdc-form-field-infix .mat-mdc-floating-label{left:auto;right:auto}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-text-field__input{display:inline-block}.mat-mdc-form-field .mat-mdc-text-field-wrapper.mdc-text-field .mdc-notched-outline__notch{padding-top:0}.mat-mdc-text-field-wrapper::before{content:none}.mat-mdc-form-field-subscript-wrapper{box-sizing:border-box;width:100%;position:relative}.mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-error-wrapper{position:absolute;top:0;left:0;right:0;padding:0 16px}.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-error-wrapper{position:static}.mat-mdc-form-field-bottom-align::before{content:\\\"\\\";display:inline-block;height:16px}.mat-mdc-form-field-bottom-align.mat-mdc-form-field-subscript-dynamic-size::before{content:unset}.mat-mdc-form-field-hint-end{order:1}.mat-mdc-form-field-hint-wrapper{display:flex}.mat-mdc-form-field-hint-spacer{flex:1 0 1em}.mat-mdc-form-field-error{display:block}.mat-mdc-form-field-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;opacity:0;pointer-events:none}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}.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}[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-mdc-form-field-input-control{padding-right:15px}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:0;padding-left:15px}.cdk-high-contrast-active .mat-form-field-appearance-fill .mat-mdc-text-field-wrapper{outline:solid 1px}.cdk-high-contrast-active .mat-form-field-appearance-fill.mat-form-field-disabled .mat-mdc-text-field-wrapper{outline-color:GrayText}.cdk-high-contrast-active .mat-form-field-appearance-fill.mat-focused .mat-mdc-text-field-wrapper{outline:dashed 3px}.cdk-high-contrast-active .mat-mdc-form-field.mat-focused .mdc-notched-outline{border:dashed 3px}.mat-mdc-form-field-input-control[type=date],.mat-mdc-form-field-input-control[type=datetime],.mat-mdc-form-field-input-control[type=datetime-local],.mat-mdc-form-field-input-control[type=month],.mat-mdc-form-field-input-control[type=week],.mat-mdc-form-field-input-control[type=time]{line-height:1}.mat-mdc-form-field-input-control::-webkit-datetime-edit{line-height:1;padding:0;margin-bottom:-2px}.mat-mdc-form-field{--mat-mdc-form-field-floating-label-scale: 0.75;display:inline-flex;flex-direction:column;min-width:0;text-align:left;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-container-text-font);line-height:var(--mat-form-field-container-text-line-height);font-size:var(--mat-form-field-container-text-size);letter-spacing:var(--mat-form-field-container-text-tracking);font-weight:var(--mat-form-field-container-text-weight)}[dir=rtl] .mat-mdc-form-field{text-align:right}.mat-mdc-form-field .mdc-text-field--outlined .mdc-floating-label--float-above{font-size:calc(var(--mat-form-field-outlined-label-text-populated-size) * var(--mat-mdc-form-field-floating-label-scale))}.mat-mdc-form-field .mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:var(--mat-form-field-outlined-label-text-populated-size)}.mat-mdc-form-field-flex{display:inline-flex;align-items:baseline;box-sizing:border-box;width:100%}.mat-mdc-text-field-wrapper{width:100%}.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,[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-icon-prefix>.mat-icon,.mat-mdc-form-field-icon-suffix>.mat-icon{padding:12px;box-sizing:content-box}.mat-mdc-form-field-subscript-wrapper .mat-icon,.mat-mdc-form-field label .mat-icon{width:1em;height:1em;font-size:inherit}.mat-mdc-form-field-infix{flex:auto;min-width:0;width:180px;position:relative;box-sizing:border-box}.mat-mdc-form-field .mdc-notched-outline__notch{margin-left:-1px;-webkit-clip-path:inset(-9em -999em -9em 1px);clip-path:inset(-9em -999em -9em 1px)}[dir=rtl] .mat-mdc-form-field .mdc-notched-outline__notch{margin-left:0;margin-right:-1px;-webkit-clip-path:inset(-9em 1px -9em -999em);clip-path:inset(-9em 1px -9em -999em)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input{transition:opacity 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}@media all{.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder{transition:opacity 67ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}}@media all{.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder{transition:opacity 67ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}}@media all{.mdc-text-field--no-label .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder,.mdc-text-field--focused .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms}}@media all{.mdc-text-field--no-label .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder,.mdc-text-field--focused .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder{transition-delay:40ms;transition-duration:110ms}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__affix{transition:opacity 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--filled.mdc-ripple-upgraded--background-focused .mdc-text-field__ripple::before,.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--filled:not(.mdc-ripple-upgraded):focus .mdc-text-field__ripple::before{transition-duration:75ms}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--textarea{transition:none}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--textarea.mdc-text-field--filled .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-textarea-filled 250ms 1}@keyframes mdc-floating-label-shake-float-above-textarea-filled{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-textarea-outlined 250ms 1}@keyframes mdc-floating-label-shake-float-above-textarea-outlined{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined-leading-icon 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon{0%{transform:translateX(calc(0% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}100%{transform:translateX(calc(0% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}}[dir=rtl] .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--shake,.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--with-leading-icon.mdc-text-field--outlined[dir=rtl] .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined-leading-icon 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-rtl{0%{transform:translateX(calc(0% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}100%{transform:translateX(calc(0% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-floating-label{transition:transform 150ms cubic-bezier(0.4, 0, 0.2, 1),color 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-standard 250ms 1}@keyframes mdc-floating-label-shake-float-above-standard{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-line-ripple::after{transition:transform 180ms cubic-bezier(0.4, 0, 0.2, 1),opacity 180ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-notched-outline .mdc-floating-label{max-width:calc(100% + 1px)}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:calc(133.3333333333% + 1px)}\"]\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: i0.NgZone\n }, {\n type: i1.Directionality\n }, {\n type: i2.Platform\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_FORM_FIELD_DEFAULT_OPTIONS]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }];\n }, {\n _textField: [{\n type: ViewChild,\n args: ['textField']\n }],\n _iconPrefixContainer: [{\n type: ViewChild,\n args: ['iconPrefixContainer']\n }],\n _textPrefixContainer: [{\n type: ViewChild,\n args: ['textPrefixContainer']\n }],\n _floatingLabel: [{\n type: ViewChild,\n args: [MatFormFieldFloatingLabel]\n }],\n _notchedOutline: [{\n type: ViewChild,\n args: [MatFormFieldNotchedOutline]\n }],\n _lineRipple: [{\n type: ViewChild,\n args: [MatFormFieldLineRipple]\n }],\n _labelChildNonStatic: [{\n type: ContentChild,\n args: [MatLabel]\n }],\n _labelChildStatic: [{\n type: ContentChild,\n args: [MatLabel, {\n static: true\n }]\n }],\n _formFieldControl: [{\n type: ContentChild,\n args: [MatFormFieldControl]\n }],\n _prefixChildren: [{\n type: ContentChildren,\n args: [MAT_PREFIX, {\n descendants: true\n }]\n }],\n _suffixChildren: [{\n type: ContentChildren,\n args: [MAT_SUFFIX, {\n descendants: true\n }]\n }],\n _errorChildren: [{\n type: ContentChildren,\n args: [MAT_ERROR, {\n descendants: true\n }]\n }],\n _hintChildren: [{\n type: ContentChildren,\n args: [MatHint, {\n descendants: true\n }]\n }],\n hideRequiredMarker: [{\n type: Input\n }],\n color: [{\n type: Input\n }],\n floatLabel: [{\n type: Input\n }],\n appearance: [{\n type: Input\n }],\n subscriptSizing: [{\n type: Input\n }],\n hintLabel: [{\n type: Input\n }]\n });\n})();\nclass MatFormFieldModule {\n static {\n this.ɵfac = function MatFormFieldModule_Factory(ɵt) {\n return new (ɵt || MatFormFieldModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatFormFieldModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [MatCommonModule, CommonModule, ObserversModule, MatCommonModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatFormFieldModule, [{\n type: NgModule,\n args: [{\n imports: [MatCommonModule, CommonModule, ObserversModule],\n exports: [MatFormField, MatLabel, MatHint, MatError, MatPrefix, MatSuffix, MatCommonModule],\n declarations: [MatFormField, MatLabel, MatError, MatHint, MatPrefix, MatSuffix, MatFormFieldFloatingLabel, MatFormFieldNotchedOutline, MatFormFieldLineRipple]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_ERROR, MAT_FORM_FIELD, MAT_FORM_FIELD_DEFAULT_OPTIONS, MAT_PREFIX, MAT_SUFFIX, MatError, MatFormField, MatFormFieldControl, MatFormFieldModule, MatHint, MatLabel, MatPrefix, MatSuffix, getMatFormFieldDuplicatedHintError, getMatFormFieldMissingControlError, getMatFormFieldPlaceholderConflictError, matFormFieldAnimations };\n","import * as i4 from '@angular/cdk/observers';\nimport { ObserversModule } from '@angular/cdk/observers';\nimport * as i3 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Directive, Attribute, Input, InjectionToken, Component, ViewEncapsulation, ChangeDetectionStrategy, Optional, Inject, ViewChild, ContentChild, ContentChildren, NgModule } from '@angular/core';\nimport { mixinColor, MatCommonModule } from '@angular/material/core';\nimport { MAT_ERROR, getMatFormFieldPlaceholderConflictError, getMatFormFieldDuplicatedHintError, getMatFormFieldMissingControlError, MAT_FORM_FIELD, MatFormFieldControl, MAT_PREFIX, MAT_SUFFIX, matFormFieldAnimations } from '@angular/material/form-field';\nconst _c0 = [\"connectionContainer\"];\nconst _c1 = [\"inputContainer\"];\nconst _c2 = [\"label\"];\nconst _c3 = [\"*\", [[\"\", \"matPrefix\", \"\"]], [[\"mat-placeholder\"]], [[\"mat-label\"]], [[\"\", \"matSuffix\", \"\"]], [[\"mat-error\"]], [[\"mat-hint\", 3, \"align\", \"end\"]], [[\"mat-hint\", \"align\", \"end\"]]];\nconst _c4 = [\"*\", \"[matPrefix]\", \"mat-placeholder\", \"mat-label\", \"[matSuffix]\", \"mat-error\", \"mat-hint:not([align='end'])\", \"mat-hint[align='end']\"];\nfunction MatLegacyFormField_ng_container_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"div\", 15);\n i0.ɵɵelement(2, \"div\", 16)(3, \"div\", 17)(4, \"div\", 18);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(5, \"div\", 19);\n i0.ɵɵelement(6, \"div\", 16)(7, \"div\", 17)(8, \"div\", 18);\n i0.ɵɵelementEnd();\n i0.ɵɵelementContainerEnd();\n }\n}\nfunction MatLegacyFormField_div_4_Template(rf, ctx) {\n if (rf & 1) {\n const _r2 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 20);\n i0.ɵɵlistener(\"cdkObserveContent\", function MatLegacyFormField_div_4_Template_div_cdkObserveContent_0_listener() {\n i0.ɵɵrestoreView(_r2);\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.updateOutlineGap());\n });\n i0.ɵɵprojection(1, 1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"cdkObserveContentDisabled\", ctx_r2.appearance != \"outline\");\n }\n}\nfunction MatLegacyFormField_label_9_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵprojection(1, 2);\n i0.ɵɵelementStart(2, \"span\");\n i0.ɵɵtext(3);\n i0.ɵɵelementEnd();\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(3);\n i0.ɵɵtextInterpolate(ctx_r2._control.placeholder);\n }\n}\nfunction MatLegacyFormField_label_9_ng_content_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojection(0, 3, [\"*ngSwitchCase\", \"true\"]);\n }\n}\nfunction MatLegacyFormField_label_9_span_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 23);\n i0.ɵɵtext(1, \" *\");\n i0.ɵɵelementEnd();\n }\n}\nfunction MatLegacyFormField_label_9_Template(rf, ctx) {\n if (rf & 1) {\n const _r4 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"label\", 21, 2);\n i0.ɵɵlistener(\"cdkObserveContent\", function MatLegacyFormField_label_9_Template_label_cdkObserveContent_0_listener() {\n i0.ɵɵrestoreView(_r4);\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.updateOutlineGap());\n });\n i0.ɵɵtemplate(2, MatLegacyFormField_label_9_ng_container_2_Template, 4, 1, \"ng-container\", 13)(3, MatLegacyFormField_label_9_ng_content_3_Template, 1, 0, \"ng-content\", 13)(4, MatLegacyFormField_label_9_span_4_Template, 2, 0, \"span\", 22);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"mat-empty\", ctx_r2._control.empty && !ctx_r2._shouldAlwaysFloat())(\"mat-form-field-empty\", ctx_r2._control.empty && !ctx_r2._shouldAlwaysFloat())(\"mat-accent\", ctx_r2.color == \"accent\")(\"mat-warn\", ctx_r2.color == \"warn\");\n i0.ɵɵproperty(\"cdkObserveContentDisabled\", ctx_r2.appearance != \"outline\")(\"id\", ctx_r2._labelId)(\"ngSwitch\", ctx_r2._hasLabel());\n i0.ɵɵattribute(\"for\", ctx_r2._control.id)(\"aria-owns\", ctx_r2._control.id);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngSwitchCase\", false);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngSwitchCase\", true);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r2.hideRequiredMarker && ctx_r2._control.required && !ctx_r2._control.disabled);\n }\n}\nfunction MatLegacyFormField_div_10_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 24);\n i0.ɵɵprojection(1, 4);\n i0.ɵɵelementEnd();\n }\n}\nfunction MatLegacyFormField_div_11_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 25);\n i0.ɵɵelement(1, \"span\", 26);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"mat-accent\", ctx_r2.color == \"accent\")(\"mat-warn\", ctx_r2.color == \"warn\");\n }\n}\nfunction MatLegacyFormField_div_13_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\");\n i0.ɵɵprojection(1, 5);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"@transitionMessages\", ctx_r2._subscriptAnimationState);\n }\n}\nfunction MatLegacyFormField_div_14_div_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 30);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"id\", ctx_r2._hintLabelId);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r2.hintLabel);\n }\n}\nfunction MatLegacyFormField_div_14_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 27);\n i0.ɵɵtemplate(1, MatLegacyFormField_div_14_div_1_Template, 2, 2, \"div\", 28);\n i0.ɵɵprojection(2, 6);\n i0.ɵɵelement(3, \"div\", 29);\n i0.ɵɵprojection(4, 7);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"@transitionMessages\", ctx_r2._subscriptAnimationState);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.hintLabel);\n }\n}\nexport { MAT_ERROR as MAT_LEGACY_ERROR, MAT_FORM_FIELD as MAT_LEGACY_FORM_FIELD, MAT_PREFIX as MAT_LEGACY_PREFIX, MAT_SUFFIX as MAT_LEGACY_SUFFIX, MatFormFieldControl as MatLegacyFormFieldControl, getMatFormFieldDuplicatedHintError as getMatLegacyFormFieldDuplicatedHintError, getMatFormFieldMissingControlError as getMatLegacyFormFieldMissingControlError, getMatFormFieldPlaceholderConflictError as getMatLegacyFormFieldPlaceholderConflictError, matFormFieldAnimations as matLegacyFormFieldAnimations } from '@angular/material/form-field';\nimport * as i1 from '@angular/cdk/bidi';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Subject, merge, fromEvent } from 'rxjs';\nimport { startWith, takeUntil, take } from 'rxjs/operators';\nimport * as i2 from '@angular/cdk/platform';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\nlet nextUniqueId$2 = 0;\n/**\n * Single error message to be shown underneath the form field.\n * @deprecated Use `MatError` from `@angular/material/form-field` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyError {\n constructor(ariaLive, elementRef) {\n this.id = `mat-error-${nextUniqueId$2++}`;\n // If no aria-live value is set add 'polite' as a default. This is preferred over setting\n // role='alert' so that screen readers do not interrupt the current task to read this aloud.\n if (!ariaLive) {\n elementRef.nativeElement.setAttribute('aria-live', 'polite');\n }\n }\n static {\n this.ɵfac = function MatLegacyError_Factory(ɵt) {\n return new (ɵt || MatLegacyError)(i0.ɵɵinjectAttribute('aria-live'), i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyError,\n selectors: [[\"mat-error\"]],\n hostAttrs: [\"aria-atomic\", \"true\", 1, \"mat-error\"],\n hostVars: 1,\n hostBindings: function MatLegacyError_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"id\", ctx.id);\n }\n },\n inputs: {\n id: \"id\"\n },\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_ERROR,\n useExisting: MatLegacyError\n }])]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyError, [{\n type: Directive,\n args: [{\n selector: 'mat-error',\n host: {\n 'class': 'mat-error',\n '[attr.id]': 'id',\n 'aria-atomic': 'true'\n },\n providers: [{\n provide: MAT_ERROR,\n useExisting: MatLegacyError\n }]\n }]\n }], function () {\n return [{\n type: undefined,\n decorators: [{\n type: Attribute,\n args: ['aria-live']\n }]\n }, {\n type: i0.ElementRef\n }];\n }, {\n id: [{\n type: Input\n }]\n });\n})();\nlet nextUniqueId$1 = 0;\n/**\n * Injection token that can be used to reference instances of `MatHint`. It serves as\n * alternative token to the actual `MatHint` class which could cause unnecessary\n * retention of the class and its directive metadata.\n *\n * *Note*: This is not part of the public API as the MDC-based form-field will not\n * need a lightweight token for `MatHint` and we want to reduce breaking changes.\n *\n * @deprecated Use `_MAT_HINT` from `@angular/material/form-field` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nconst _MAT_LEGACY_HINT = new InjectionToken('MatHint');\n/**\n * Hint text to be shown underneath the form field control.\n * @deprecated Use `MatHint` from `@angular/material/form-field` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyHint {\n constructor() {\n /** Whether to align the hint label at the start or end of the line. */\n this.align = 'start';\n /** Unique ID for the hint. Used for the aria-describedby on the form field control. */\n this.id = `mat-hint-${nextUniqueId$1++}`;\n }\n static {\n this.ɵfac = function MatLegacyHint_Factory(ɵt) {\n return new (ɵt || MatLegacyHint)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyHint,\n selectors: [[\"mat-hint\"]],\n hostAttrs: [1, \"mat-hint\"],\n hostVars: 4,\n hostBindings: function MatLegacyHint_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"id\", ctx.id)(\"align\", null);\n i0.ɵɵclassProp(\"mat-form-field-hint-end\", ctx.align === \"end\");\n }\n },\n inputs: {\n align: \"align\",\n id: \"id\"\n },\n features: [i0.ɵɵProvidersFeature([{\n provide: _MAT_LEGACY_HINT,\n useExisting: MatLegacyHint\n }])]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyHint, [{\n type: Directive,\n args: [{\n selector: 'mat-hint',\n host: {\n 'class': 'mat-hint',\n '[class.mat-form-field-hint-end]': 'align === \"end\"',\n '[attr.id]': 'id',\n // Remove align attribute to prevent it from interfering with layout.\n '[attr.align]': 'null'\n },\n providers: [{\n provide: _MAT_LEGACY_HINT,\n useExisting: MatLegacyHint\n }]\n }]\n }], null, {\n align: [{\n type: Input\n }],\n id: [{\n type: Input\n }]\n });\n})();\n\n/**\n * The floating label for a `mat-form-field`.\n * @deprecated Use `MatLabel` from `@angular/material/form-field` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyLabel {\n static {\n this.ɵfac = function MatLegacyLabel_Factory(ɵt) {\n return new (ɵt || MatLegacyLabel)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyLabel,\n selectors: [[\"mat-label\"]]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyLabel, [{\n type: Directive,\n args: [{\n selector: 'mat-label'\n }]\n }], null, null);\n})();\n\n/**\n * The placeholder text for an `MatFormField`.\n * @deprecated Use `` to specify the label and the `placeholder` attribute to specify the\n * placeholder.\n * @breaking-change 8.0.0\n */\nclass MatLegacyPlaceholder {\n static {\n this.ɵfac = function MatLegacyPlaceholder_Factory(ɵt) {\n return new (ɵt || MatLegacyPlaceholder)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyPlaceholder,\n selectors: [[\"mat-placeholder\"]]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyPlaceholder, [{\n type: Directive,\n args: [{\n selector: 'mat-placeholder'\n }]\n }], null, null);\n})();\nlet nextUniqueId = 0;\nconst floatingLabelScale = 0.75;\nconst outlineGapPadding = 5;\n/**\n * Boilerplate for applying mixins to MatFormField.\n * @docs-private\n */\nconst _MatFormFieldBase = mixinColor(class {\n constructor(_elementRef) {\n this._elementRef = _elementRef;\n }\n}, 'primary');\n/**\n * Injection token that can be used to configure the\n * default options for all form field within an app.\n * @deprecated Use `MAT_FORM_FIELD_DEFAULT_OPTIONS` from `@angular/material/form-field` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nconst MAT_LEGACY_FORM_FIELD_DEFAULT_OPTIONS = new InjectionToken('MAT_FORM_FIELD_DEFAULT_OPTIONS');\n/**\n * Container for form controls that applies Material Design styling and behavior.\n * @deprecated Use `MatFormField` from `@angular/material/form-field` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyFormField extends _MatFormFieldBase {\n /** The form field appearance style. */\n get appearance() {\n return this._appearance;\n }\n set appearance(value) {\n const oldValue = this._appearance;\n this._appearance = value || this._defaults?.appearance || 'legacy';\n if (this._appearance === 'outline' && oldValue !== value) {\n this._outlineGapCalculationNeededOnStable = true;\n }\n }\n /** Whether the required marker should be hidden. */\n get hideRequiredMarker() {\n return this._hideRequiredMarker;\n }\n set hideRequiredMarker(value) {\n this._hideRequiredMarker = coerceBooleanProperty(value);\n }\n /** Whether the floating label should always float or not. */\n _shouldAlwaysFloat() {\n return this.floatLabel === 'always' && !this._showAlwaysAnimate;\n }\n /** Whether the label can float or not. */\n _canLabelFloat() {\n return this.floatLabel !== 'never';\n }\n /** Text for the form field hint. */\n get hintLabel() {\n return this._hintLabel;\n }\n set hintLabel(value) {\n this._hintLabel = value;\n this._processHints();\n }\n /**\n * Whether the label should always float, never float or float as the user types.\n *\n * Note: only the legacy appearance supports the `never` option. `never` was originally added as a\n * way to make the floating label emulate the behavior of a standard input placeholder. However\n * the form field now supports both floating labels and placeholders. Therefore in the non-legacy\n * appearances the `never` option has been disabled in favor of just using the placeholder.\n */\n get floatLabel() {\n return this.appearance !== 'legacy' && this._floatLabel === 'never' ? 'auto' : this._floatLabel;\n }\n set floatLabel(value) {\n if (value !== this._floatLabel) {\n this._floatLabel = value || this._getDefaultFloatLabelState();\n this._changeDetectorRef.markForCheck();\n }\n }\n get _control() {\n // TODO(crisbeto): we need this workaround in order to support both Ivy and ViewEngine.\n // We should clean this up once Ivy is the default renderer.\n return this._explicitFormFieldControl || this._controlNonStatic || this._controlStatic;\n }\n set _control(value) {\n this._explicitFormFieldControl = value;\n }\n constructor(elementRef, _changeDetectorRef, _dir, _defaults, _platform, _ngZone, _animationMode) {\n super(elementRef);\n this._changeDetectorRef = _changeDetectorRef;\n this._dir = _dir;\n this._defaults = _defaults;\n this._platform = _platform;\n this._ngZone = _ngZone;\n /**\n * Whether the outline gap needs to be calculated\n * immediately on the next change detection run.\n */\n this._outlineGapCalculationNeededImmediately = false;\n /** Whether the outline gap needs to be calculated next time the zone has stabilized. */\n this._outlineGapCalculationNeededOnStable = false;\n this._destroyed = new Subject();\n this._hideRequiredMarker = false;\n /** Override for the logic that disables the label animation in certain cases. */\n this._showAlwaysAnimate = false;\n /** State of the mat-hint and mat-error animations. */\n this._subscriptAnimationState = '';\n this._hintLabel = '';\n // Unique id for the hint label.\n this._hintLabelId = `mat-hint-${nextUniqueId++}`;\n // Unique id for the label element.\n this._labelId = `mat-form-field-label-${nextUniqueId++}`;\n this.floatLabel = this._getDefaultFloatLabelState();\n this._animationsEnabled = _animationMode !== 'NoopAnimations';\n // Set the default through here so we invoke the setter on the first run.\n this.appearance = _defaults?.appearance || 'legacy';\n if (_defaults) {\n this._hideRequiredMarker = Boolean(_defaults.hideRequiredMarker);\n if (_defaults.color) {\n this.color = this.defaultColor = _defaults.color;\n }\n }\n }\n /**\n * Gets the id of the label element. If no label is present, returns `null`.\n */\n getLabelId() {\n return this._hasFloatingLabel() ? this._labelId : null;\n }\n /**\n * Gets an ElementRef for the element that a overlay attached to the form field should be\n * positioned relative to.\n */\n getConnectedOverlayOrigin() {\n return this._connectionContainerRef || this._elementRef;\n }\n ngAfterContentInit() {\n this._validateControlChild();\n const control = this._control;\n if (control.controlType) {\n this._elementRef.nativeElement.classList.add(`mat-form-field-type-${control.controlType}`);\n }\n // Subscribe to changes in the child control state in order to update the form field UI.\n control.stateChanges.pipe(startWith(null)).subscribe(() => {\n this._validatePlaceholders();\n this._syncDescribedByIds();\n this._changeDetectorRef.markForCheck();\n });\n // Run change detection if the value changes.\n if (control.ngControl && control.ngControl.valueChanges) {\n control.ngControl.valueChanges.pipe(takeUntil(this._destroyed)).subscribe(() => this._changeDetectorRef.markForCheck());\n }\n // Note that we have to run outside of the `NgZone` explicitly,\n // in order to avoid throwing users into an infinite loop\n // if `zone-patch-rxjs` is included.\n this._ngZone.runOutsideAngular(() => {\n this._ngZone.onStable.pipe(takeUntil(this._destroyed)).subscribe(() => {\n if (this._outlineGapCalculationNeededOnStable) {\n this.updateOutlineGap();\n }\n });\n });\n // Run change detection and update the outline if the suffix or prefix changes.\n merge(this._prefixChildren.changes, this._suffixChildren.changes).subscribe(() => {\n this._outlineGapCalculationNeededOnStable = true;\n this._changeDetectorRef.markForCheck();\n });\n // Re-validate when the number of hints changes.\n this._hintChildren.changes.pipe(startWith(null)).subscribe(() => {\n this._processHints();\n this._changeDetectorRef.markForCheck();\n });\n // Update the aria-described by when the number of errors changes.\n this._errorChildren.changes.pipe(startWith(null)).subscribe(() => {\n this._syncDescribedByIds();\n this._changeDetectorRef.markForCheck();\n });\n if (this._dir) {\n this._dir.change.pipe(takeUntil(this._destroyed)).subscribe(() => {\n if (typeof requestAnimationFrame === 'function') {\n this._ngZone.runOutsideAngular(() => {\n requestAnimationFrame(() => this.updateOutlineGap());\n });\n } else {\n this.updateOutlineGap();\n }\n });\n }\n }\n ngAfterContentChecked() {\n this._validateControlChild();\n if (this._outlineGapCalculationNeededImmediately) {\n this.updateOutlineGap();\n }\n }\n ngAfterViewInit() {\n // Avoid animations on load.\n this._subscriptAnimationState = 'enter';\n this._changeDetectorRef.detectChanges();\n }\n ngOnDestroy() {\n this._destroyed.next();\n this._destroyed.complete();\n }\n /**\n * Determines whether a class from the AbstractControlDirective\n * should be forwarded to the host element.\n */\n _shouldForward(prop) {\n const control = this._control ? this._control.ngControl : null;\n return control && control[prop];\n }\n _hasPlaceholder() {\n return !!(this._control && this._control.placeholder || this._placeholderChild);\n }\n _hasLabel() {\n return !!(this._labelChildNonStatic || this._labelChildStatic);\n }\n _shouldLabelFloat() {\n return this._canLabelFloat() && (this._control && this._control.shouldLabelFloat || this._shouldAlwaysFloat());\n }\n _hideControlPlaceholder() {\n // In the legacy appearance the placeholder is promoted to a label if no label is given.\n return this.appearance === 'legacy' && !this._hasLabel() || this._hasLabel() && !this._shouldLabelFloat();\n }\n _hasFloatingLabel() {\n // In the legacy appearance the placeholder is promoted to a label if no label is given.\n return this._hasLabel() || this.appearance === 'legacy' && this._hasPlaceholder();\n }\n /** Determines whether to display hints or errors. */\n _getDisplayedMessages() {\n return this._errorChildren && this._errorChildren.length > 0 && this._control.errorState ? 'error' : 'hint';\n }\n /** Animates the placeholder up and locks it in position. */\n _animateAndLockLabel() {\n if (this._hasFloatingLabel() && this._canLabelFloat()) {\n // If animations are disabled, we shouldn't go in here,\n // because the `transitionend` will never fire.\n if (this._animationsEnabled && this._label) {\n this._showAlwaysAnimate = true;\n fromEvent(this._label.nativeElement, 'transitionend').pipe(take(1)).subscribe(() => {\n this._showAlwaysAnimate = false;\n });\n }\n this.floatLabel = 'always';\n this._changeDetectorRef.markForCheck();\n }\n }\n /**\n * Ensure that there is only one placeholder (either `placeholder` attribute on the child control\n * or child element with the `mat-placeholder` directive).\n */\n _validatePlaceholders() {\n if (this._control.placeholder && this._placeholderChild && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getMatFormFieldPlaceholderConflictError();\n }\n }\n /** Does any extra processing that is required when handling the hints. */\n _processHints() {\n this._validateHints();\n this._syncDescribedByIds();\n }\n /**\n * Ensure that there is a maximum of one of each `` alignment specified, with the\n * attribute being considered as `align=\"start\"`.\n */\n _validateHints() {\n if (this._hintChildren && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n let startHint;\n let endHint;\n this._hintChildren.forEach(hint => {\n if (hint.align === 'start') {\n if (startHint || this.hintLabel) {\n throw getMatFormFieldDuplicatedHintError('start');\n }\n startHint = hint;\n } else if (hint.align === 'end') {\n if (endHint) {\n throw getMatFormFieldDuplicatedHintError('end');\n }\n endHint = hint;\n }\n });\n }\n }\n /** Gets the default float label state. */\n _getDefaultFloatLabelState() {\n return this._defaults && this._defaults.floatLabel || 'auto';\n }\n /**\n * Sets the list of element IDs that describe the child control. This allows the control to update\n * its `aria-describedby` attribute accordingly.\n */\n _syncDescribedByIds() {\n if (this._control) {\n let ids = [];\n // TODO(wagnermaciel): Remove the type check when we find the root cause of this bug.\n if (this._control.userAriaDescribedBy && typeof this._control.userAriaDescribedBy === 'string') {\n ids.push(...this._control.userAriaDescribedBy.split(' '));\n }\n if (this._getDisplayedMessages() === 'hint') {\n const startHint = this._hintChildren ? this._hintChildren.find(hint => hint.align === 'start') : null;\n const endHint = this._hintChildren ? this._hintChildren.find(hint => hint.align === 'end') : null;\n if (startHint) {\n ids.push(startHint.id);\n } else if (this._hintLabel) {\n ids.push(this._hintLabelId);\n }\n if (endHint) {\n ids.push(endHint.id);\n }\n } else if (this._errorChildren) {\n ids.push(...this._errorChildren.map(error => error.id));\n }\n this._control.setDescribedByIds(ids);\n }\n }\n /** Throws an error if the form field's control is missing. */\n _validateControlChild() {\n if (!this._control && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getMatFormFieldMissingControlError();\n }\n }\n /**\n * Updates the width and position of the gap in the outline. Only relevant for the outline\n * appearance.\n */\n updateOutlineGap() {\n const labelEl = this._label ? this._label.nativeElement : null;\n const container = this._connectionContainerRef.nativeElement;\n const outlineStartSelector = '.mat-form-field-outline-start';\n const outlineGapSelector = '.mat-form-field-outline-gap';\n // getBoundingClientRect isn't available on the server.\n if (this.appearance !== 'outline' || !this._platform.isBrowser) {\n return;\n }\n // If there is no content, set the gap elements to zero.\n if (!labelEl || !labelEl.children.length || !labelEl.textContent.trim()) {\n const gapElements = container.querySelectorAll(`${outlineStartSelector}, ${outlineGapSelector}`);\n for (let i = 0; i < gapElements.length; i++) {\n gapElements[i].style.width = '0';\n }\n return;\n }\n // If the element is not present in the DOM, the outline gap will need to be calculated\n // the next time it is checked and in the DOM.\n if (!this._isAttachedToDOM()) {\n this._outlineGapCalculationNeededImmediately = true;\n return;\n }\n let startWidth = 0;\n let gapWidth = 0;\n const startEls = container.querySelectorAll(outlineStartSelector);\n const gapEls = container.querySelectorAll(outlineGapSelector);\n if (this._label && this._label.nativeElement.children.length) {\n const containerRect = container.getBoundingClientRect();\n // If the container's width and height are zero, it means that the element is\n // invisible and we can't calculate the outline gap. Mark the element as needing\n // to be checked the next time the zone stabilizes. We can't do this immediately\n // on the next change detection, because even if the element becomes visible,\n // the `ClientRect` won't be recalculated immediately. We reset the\n // `_outlineGapCalculationNeededImmediately` flag some we don't run the checks twice.\n if (containerRect.width === 0 && containerRect.height === 0) {\n this._outlineGapCalculationNeededOnStable = true;\n this._outlineGapCalculationNeededImmediately = false;\n return;\n }\n const containerStart = this._getStartEnd(containerRect);\n const labelChildren = labelEl.children;\n const labelStart = this._getStartEnd(labelChildren[0].getBoundingClientRect());\n let labelWidth = 0;\n for (let i = 0; i < labelChildren.length; i++) {\n labelWidth += labelChildren[i].offsetWidth;\n }\n startWidth = Math.abs(labelStart - containerStart) - outlineGapPadding;\n gapWidth = labelWidth > 0 ? labelWidth * floatingLabelScale + outlineGapPadding * 2 : 0;\n }\n for (let i = 0; i < startEls.length; i++) {\n startEls[i].style.width = `${startWidth}px`;\n }\n for (let i = 0; i < gapEls.length; i++) {\n gapEls[i].style.width = `${gapWidth}px`;\n }\n this._outlineGapCalculationNeededOnStable = this._outlineGapCalculationNeededImmediately = false;\n }\n /** Gets the start end of the rect considering the current directionality. */\n _getStartEnd(rect) {\n return this._dir && this._dir.value === 'rtl' ? rect.right : rect.left;\n }\n /** Checks whether the form field is attached to the DOM. */\n _isAttachedToDOM() {\n const element = this._elementRef.nativeElement;\n if (element.getRootNode) {\n const rootNode = element.getRootNode();\n // If the element is inside the DOM the root node will be either the document\n // or the closest shadow root, otherwise it'll be the element itself.\n return rootNode && rootNode !== element;\n }\n // Otherwise fall back to checking if it's in the document. This doesn't account for\n // shadow DOM, however browser that support shadow DOM should support `getRootNode` as well.\n return document.documentElement.contains(element);\n }\n static {\n this.ɵfac = function MatLegacyFormField_Factory(ɵt) {\n return new (ɵt || MatLegacyFormField)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.Directionality, 8), i0.ɵɵdirectiveInject(MAT_LEGACY_FORM_FIELD_DEFAULT_OPTIONS, 8), i0.ɵɵdirectiveInject(i2.Platform), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatLegacyFormField,\n selectors: [[\"mat-form-field\"]],\n contentQueries: function MatLegacyFormField_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MatFormFieldControl, 5);\n i0.ɵɵcontentQuery(dirIndex, MatFormFieldControl, 7);\n i0.ɵɵcontentQuery(dirIndex, MatLegacyLabel, 5);\n i0.ɵɵcontentQuery(dirIndex, MatLegacyLabel, 7);\n i0.ɵɵcontentQuery(dirIndex, MatLegacyPlaceholder, 5);\n i0.ɵɵcontentQuery(dirIndex, MAT_ERROR, 5);\n i0.ɵɵcontentQuery(dirIndex, _MAT_LEGACY_HINT, 5);\n i0.ɵɵcontentQuery(dirIndex, MAT_PREFIX, 5);\n i0.ɵɵcontentQuery(dirIndex, MAT_SUFFIX, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._controlNonStatic = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._controlStatic = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._labelChildNonStatic = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._labelChildStatic = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._placeholderChild = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._errorChildren = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._hintChildren = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._prefixChildren = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._suffixChildren = _t);\n }\n },\n viewQuery: function MatLegacyFormField_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 7);\n i0.ɵɵviewQuery(_c1, 5);\n i0.ɵɵviewQuery(_c2, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._connectionContainerRef = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._inputContainerRef = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._label = _t.first);\n }\n },\n hostAttrs: [\"ngSkipHydration\", \"\", 1, \"mat-form-field\"],\n hostVars: 40,\n hostBindings: function MatLegacyFormField_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"mat-form-field-appearance-standard\", ctx.appearance == \"standard\")(\"mat-form-field-appearance-fill\", ctx.appearance == \"fill\")(\"mat-form-field-appearance-outline\", ctx.appearance == \"outline\")(\"mat-form-field-appearance-legacy\", ctx.appearance == \"legacy\")(\"mat-form-field-invalid\", ctx._control.errorState)(\"mat-form-field-can-float\", ctx._canLabelFloat())(\"mat-form-field-should-float\", ctx._shouldLabelFloat())(\"mat-form-field-has-label\", ctx._hasFloatingLabel())(\"mat-form-field-hide-placeholder\", ctx._hideControlPlaceholder())(\"mat-form-field-disabled\", ctx._control.disabled)(\"mat-form-field-autofilled\", ctx._control.autofilled)(\"mat-focused\", ctx._control.focused)(\"ng-untouched\", ctx._shouldForward(\"untouched\"))(\"ng-touched\", ctx._shouldForward(\"touched\"))(\"ng-pristine\", ctx._shouldForward(\"pristine\"))(\"ng-dirty\", ctx._shouldForward(\"dirty\"))(\"ng-valid\", ctx._shouldForward(\"valid\"))(\"ng-invalid\", ctx._shouldForward(\"invalid\"))(\"ng-pending\", ctx._shouldForward(\"pending\"))(\"_mat-animation-noopable\", !ctx._animationsEnabled);\n }\n },\n inputs: {\n color: \"color\",\n appearance: \"appearance\",\n hideRequiredMarker: \"hideRequiredMarker\",\n hintLabel: \"hintLabel\",\n floatLabel: \"floatLabel\"\n },\n exportAs: [\"matFormField\"],\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_FORM_FIELD,\n useExisting: MatLegacyFormField\n }]), i0.ɵɵInheritDefinitionFeature],\n ngContentSelectors: _c4,\n decls: 15,\n vars: 8,\n consts: [[\"connectionContainer\", \"\"], [\"inputContainer\", \"\"], [\"label\", \"\"], [1, \"mat-form-field-wrapper\"], [1, \"mat-form-field-flex\", 3, \"click\"], [4, \"ngIf\"], [\"class\", \"mat-form-field-prefix\", 3, \"cdkObserveContentDisabled\", \"cdkObserveContent\", 4, \"ngIf\"], [1, \"mat-form-field-infix\"], [1, \"mat-form-field-label-wrapper\"], [\"class\", \"mat-form-field-label\", 3, \"cdkObserveContentDisabled\", \"id\", \"mat-empty\", \"mat-form-field-empty\", \"mat-accent\", \"mat-warn\", \"ngSwitch\", \"cdkObserveContent\", 4, \"ngIf\"], [\"class\", \"mat-form-field-suffix\", 4, \"ngIf\"], [\"class\", \"mat-form-field-underline\", 4, \"ngIf\"], [1, \"mat-form-field-subscript-wrapper\", 3, \"ngSwitch\"], [4, \"ngSwitchCase\"], [\"class\", \"mat-form-field-hint-wrapper\", 4, \"ngSwitchCase\"], [1, \"mat-form-field-outline\"], [1, \"mat-form-field-outline-start\"], [1, \"mat-form-field-outline-gap\"], [1, \"mat-form-field-outline-end\"], [1, \"mat-form-field-outline\", \"mat-form-field-outline-thick\"], [1, \"mat-form-field-prefix\", 3, \"cdkObserveContent\", \"cdkObserveContentDisabled\"], [1, \"mat-form-field-label\", 3, \"cdkObserveContent\", \"cdkObserveContentDisabled\", \"id\", \"ngSwitch\"], [\"class\", \"mat-placeholder-required mat-form-field-required-marker\", \"aria-hidden\", \"true\", 4, \"ngIf\"], [\"aria-hidden\", \"true\", 1, \"mat-placeholder-required\", \"mat-form-field-required-marker\"], [1, \"mat-form-field-suffix\"], [1, \"mat-form-field-underline\"], [1, \"mat-form-field-ripple\"], [1, \"mat-form-field-hint-wrapper\"], [\"class\", \"mat-hint\", 3, \"id\", 4, \"ngIf\"], [1, \"mat-form-field-hint-spacer\"], [1, \"mat-hint\", 3, \"id\"]],\n template: function MatLegacyFormField_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵprojectionDef(_c3);\n i0.ɵɵelementStart(0, \"div\", 3)(1, \"div\", 4, 0);\n i0.ɵɵlistener(\"click\", function MatLegacyFormField_Template_div_click_1_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._control.onContainerClick($event));\n });\n i0.ɵɵtemplate(3, MatLegacyFormField_ng_container_3_Template, 9, 0, \"ng-container\", 5)(4, MatLegacyFormField_div_4_Template, 2, 1, \"div\", 6);\n i0.ɵɵelementStart(5, \"div\", 7, 1);\n i0.ɵɵprojection(7);\n i0.ɵɵelementStart(8, \"span\", 8);\n i0.ɵɵtemplate(9, MatLegacyFormField_label_9_Template, 5, 16, \"label\", 9);\n i0.ɵɵelementEnd()();\n i0.ɵɵtemplate(10, MatLegacyFormField_div_10_Template, 2, 0, \"div\", 10);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(11, MatLegacyFormField_div_11_Template, 2, 4, \"div\", 11);\n i0.ɵɵelementStart(12, \"div\", 12);\n i0.ɵɵtemplate(13, MatLegacyFormField_div_13_Template, 2, 1, \"div\", 13)(14, MatLegacyFormField_div_14_Template, 5, 2, \"div\", 14);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngIf\", ctx.appearance == \"outline\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx._prefixChildren.length);\n i0.ɵɵadvance(5);\n i0.ɵɵproperty(\"ngIf\", ctx._hasFloatingLabel());\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx._suffixChildren.length);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.appearance != \"outline\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngSwitch\", ctx._getDisplayedMessages());\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngSwitchCase\", \"error\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngSwitchCase\", \"hint\");\n }\n },\n dependencies: [i3.NgIf, i3.NgSwitch, i3.NgSwitchCase, i4.CdkObserveContent],\n styles: [\".mat-form-field{display:inline-block;position:relative;text-align:left}[dir=rtl] .mat-form-field{text-align:right}.mat-form-field-wrapper{position:relative}.mat-form-field-flex{display:inline-flex;align-items:baseline;box-sizing:border-box;width:100%}.mat-form-field-prefix,.mat-form-field-suffix{white-space:nowrap;flex:none;position:relative}.mat-form-field-infix{display:block;position:relative;flex:auto;min-width:0;width:180px}.cdk-high-contrast-active .mat-form-field-infix{border-image:linear-gradient(transparent, transparent)}.mat-form-field-label-wrapper{position:absolute;left:0;box-sizing:content-box;width:100%;height:100%;overflow:hidden;pointer-events:none}[dir=rtl] .mat-form-field-label-wrapper{left:auto;right:0}.mat-form-field-label{position:absolute;left:0;font:inherit;pointer-events:none;width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;transform-origin:0 0;transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1),color 400ms cubic-bezier(0.25, 0.8, 0.25, 1),width 400ms cubic-bezier(0.25, 0.8, 0.25, 1);display:none}[dir=rtl] .mat-form-field-label{transform-origin:100% 0;left:auto;right:0}.cdk-high-contrast-active .mat-form-field-disabled .mat-form-field-label{color:GrayText}.mat-form-field-empty.mat-form-field-label,.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label{display:block}.mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{display:none}.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{display:block;transition:none}.mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label,.mat-input-server[placeholder]:not(:placeholder-shown)+.mat-form-field-label-wrapper .mat-form-field-label{display:none}.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label,.mat-form-field-can-float .mat-input-server[placeholder]:not(:placeholder-shown)+.mat-form-field-label-wrapper .mat-form-field-label{display:block}.mat-form-field-label:not(.mat-form-field-empty){transition:none}.mat-form-field-underline{position:absolute;width:100%;pointer-events:none;transform:scale3d(1, 1.0001, 1)}.mat-form-field-ripple{position:absolute;left:0;width:100%;transform-origin:50%;transform:scaleX(0.5);opacity:0;transition:background-color 300ms cubic-bezier(0.55, 0, 0.55, 0.2)}.mat-form-field.mat-focused .mat-form-field-ripple,.mat-form-field.mat-form-field-invalid .mat-form-field-ripple{opacity:1;transform:none;transition:transform 300ms cubic-bezier(0.25, 0.8, 0.25, 1),opacity 100ms cubic-bezier(0.25, 0.8, 0.25, 1),background-color 300ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-form-field-subscript-wrapper{position:absolute;box-sizing:border-box;width:100%;overflow:hidden}.mat-form-field-subscript-wrapper .mat-icon,.mat-form-field-label-wrapper .mat-icon{width:1em;height:1em;font-size:inherit;vertical-align:baseline}.mat-form-field-hint-wrapper{display:flex}.mat-form-field-hint-spacer{flex:1 0 1em}.mat-error{display:block}.mat-form-field-control-wrapper{position:relative}.mat-form-field-hint-end{order:1}.mat-form-field._mat-animation-noopable .mat-form-field-label,.mat-form-field._mat-animation-noopable .mat-form-field-ripple{transition:none}.mat-form-field .mat-form-field-prefix .mat-datepicker-toggle .mat-mdc-button-base,.mat-form-field .mat-form-field-suffix .mat-datepicker-toggle .mat-mdc-button-base{width:40px;height:40px;padding:8px 0}.mat-form-field .mat-datepicker-toggle .mat-mdc-icon-button .mat-icon{font-size:1em;display:inline-block;margin:-2px 0 1px}.mat-form-field-type-mat-date-range-input .mat-form-field-infix{width:200px}.mat-form-field-appearance-legacy .mat-form-field-prefix .mat-datepicker-toggle .mat-mdc-icon-button,.mat-form-field-appearance-legacy .mat-form-field-suffix .mat-datepicker-toggle .mat-mdc-icon-button{font-size:inherit;width:1.5em;height:1.5em;padding:0}.mat-form-field-appearance-legacy .mat-form-field-prefix .mat-datepicker-toggle-default-icon,.mat-form-field-appearance-legacy .mat-form-field-suffix .mat-datepicker-toggle-default-icon{width:1em}.mat-form-field-appearance-legacy .mat-form-field-prefix .mat-datepicker-toggle .mat-mdc-icon-button .mat-icon,.mat-form-field-appearance-legacy .mat-form-field-suffix .mat-datepicker-toggle .mat-mdc-icon-button .mat-icon{line-height:1.5em;margin:0}.mat-form-field .mat-datepicker-toggle .mat-mdc-button-base{vertical-align:middle}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-datepicker-toggle .mat-mdc-button-base{vertical-align:baseline}\", \".mat-form-field-appearance-fill .mat-form-field-flex{border-radius:4px 4px 0 0;padding:.75em .75em 0 .75em}.cdk-high-contrast-active .mat-form-field-appearance-fill .mat-form-field-flex{outline:solid 1px}.cdk-high-contrast-active .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex{outline-color:GrayText}.cdk-high-contrast-active .mat-form-field-appearance-fill.mat-focused .mat-form-field-flex{outline:dashed 3px}.mat-form-field-appearance-fill .mat-form-field-underline::before{content:\\\"\\\";display:block;position:absolute;bottom:0;height:1px;width:100%}.mat-form-field-appearance-fill .mat-form-field-ripple{bottom:0;height:2px}.cdk-high-contrast-active .mat-form-field-appearance-fill .mat-form-field-ripple{height:0}.mat-form-field-appearance-fill:not(.mat-form-field-disabled) .mat-form-field-flex:hover~.mat-form-field-underline .mat-form-field-ripple{opacity:1;transform:none;transition:opacity 600ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-form-field-appearance-fill._mat-animation-noopable:not(.mat-form-field-disabled) .mat-form-field-flex:hover~.mat-form-field-underline .mat-form-field-ripple{transition:none}.mat-form-field-appearance-fill .mat-form-field-subscript-wrapper{padding:0 1em}\", \".mat-input-element{font:inherit;background:rgba(0,0,0,0);color:currentColor;border:none;outline:none;padding:0;margin:0;width:100%;max-width:100%;vertical-align:bottom;text-align:inherit;box-sizing:content-box}.mat-input-element:-moz-ui-invalid{box-shadow:none}.mat-input-element,.mat-input-element::-webkit-search-cancel-button,.mat-input-element::-webkit-search-decoration,.mat-input-element::-webkit-search-results-button,.mat-input-element::-webkit-search-results-decoration{-webkit-appearance:none}.mat-input-element::-webkit-contacts-auto-fill-button,.mat-input-element::-webkit-caps-lock-indicator,.mat-input-element:not([type=password])::-webkit-credentials-auto-fill-button{visibility:hidden}.mat-input-element[type=date],.mat-input-element[type=datetime],.mat-input-element[type=datetime-local],.mat-input-element[type=month],.mat-input-element[type=week],.mat-input-element[type=time]{line-height:1}.mat-input-element[type=date]::after,.mat-input-element[type=datetime]::after,.mat-input-element[type=datetime-local]::after,.mat-input-element[type=month]::after,.mat-input-element[type=week]::after,.mat-input-element[type=time]::after{content:\\\" \\\";white-space:pre;width:1px}.mat-input-element::-webkit-inner-spin-button,.mat-input-element::-webkit-calendar-picker-indicator,.mat-input-element::-webkit-clear-button{font-size:.75em}.mat-input-element::placeholder{-webkit-user-select:none;user-select:none;transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-input-element::-moz-placeholder{-webkit-user-select:none;user-select:none;transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-input-element::-webkit-input-placeholder{-webkit-user-select:none;user-select:none;transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-input-element:-ms-input-placeholder{-webkit-user-select:none;user-select:none;transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-form-field-hide-placeholder .mat-input-element::placeholder{color:rgba(0,0,0,0) !important;-webkit-text-fill-color:rgba(0,0,0,0);transition:none}.cdk-high-contrast-active .mat-form-field-hide-placeholder .mat-input-element::placeholder{opacity:0}.mat-form-field-hide-placeholder .mat-input-element::-moz-placeholder{color:rgba(0,0,0,0) !important;-webkit-text-fill-color:rgba(0,0,0,0);transition:none}.cdk-high-contrast-active .mat-form-field-hide-placeholder .mat-input-element::-moz-placeholder{opacity:0}.mat-form-field-hide-placeholder .mat-input-element::-webkit-input-placeholder{color:rgba(0,0,0,0) !important;-webkit-text-fill-color:rgba(0,0,0,0);transition:none}.cdk-high-contrast-active .mat-form-field-hide-placeholder .mat-input-element::-webkit-input-placeholder{opacity:0}.mat-form-field-hide-placeholder .mat-input-element:-ms-input-placeholder{color:rgba(0,0,0,0) !important;-webkit-text-fill-color:rgba(0,0,0,0);transition:none}.cdk-high-contrast-active .mat-form-field-hide-placeholder .mat-input-element:-ms-input-placeholder{opacity:0}._mat-animation-noopable .mat-input-element::placeholder{transition:none}._mat-animation-noopable .mat-input-element::-moz-placeholder{transition:none}._mat-animation-noopable .mat-input-element::-webkit-input-placeholder{transition:none}._mat-animation-noopable .mat-input-element:-ms-input-placeholder{transition:none}textarea.mat-input-element{resize:vertical;overflow:auto}textarea.mat-input-element.cdk-textarea-autosize{resize:none}textarea.mat-input-element{padding:2px 0;margin:-2px 0}select.mat-input-element{-moz-appearance:none;-webkit-appearance:none;position:relative;background-color:rgba(0,0,0,0);display:inline-flex;box-sizing:border-box;padding-top:1em;top:-1em;margin-bottom:-1em}select.mat-input-element::-moz-focus-inner{border:0}select.mat-input-element:not(:disabled){cursor:pointer}.mat-form-field-type-mat-native-select .mat-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;top:50%;right:0;margin-top:-2.5px;pointer-events:none}[dir=rtl] .mat-form-field-type-mat-native-select .mat-form-field-infix::after{right:auto;left:0}.mat-form-field-type-mat-native-select .mat-input-element{padding-right:15px}[dir=rtl] .mat-form-field-type-mat-native-select .mat-input-element{padding-right:0;padding-left:15px}.mat-form-field-type-mat-native-select .mat-form-field-label-wrapper{max-width:calc(100% - 10px)}.mat-form-field-type-mat-native-select.mat-form-field-appearance-outline .mat-form-field-infix::after{margin-top:-5px}.mat-form-field-type-mat-native-select.mat-form-field-appearance-fill .mat-form-field-infix::after{margin-top:-10px}\", \".mat-form-field-appearance-legacy .mat-form-field-label{transform:perspective(100px)}.mat-form-field-appearance-legacy .mat-form-field-prefix .mat-icon,.mat-form-field-appearance-legacy .mat-form-field-suffix .mat-icon{width:1em}.mat-form-field-appearance-legacy .mat-form-field-prefix .mat-icon-button,.mat-form-field-appearance-legacy .mat-form-field-suffix .mat-icon-button{font:inherit;vertical-align:baseline}.mat-form-field-appearance-legacy .mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field-appearance-legacy .mat-form-field-suffix .mat-icon-button .mat-icon{font-size:inherit}.mat-form-field-appearance-legacy .mat-form-field-underline{height:1px}.cdk-high-contrast-active .mat-form-field-appearance-legacy .mat-form-field-underline{height:0;border-top:solid 1px}.mat-form-field-appearance-legacy .mat-form-field-ripple{top:0;height:2px;overflow:hidden}.cdk-high-contrast-active .mat-form-field-appearance-legacy .mat-form-field-ripple{height:0;border-top:solid 2px}.mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{background-position:0;background-color:rgba(0,0,0,0)}.cdk-high-contrast-active .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{border-top-style:dotted;border-top-width:2px;border-top-color:GrayText}.mat-form-field-appearance-legacy.mat-form-field-invalid:not(.mat-focused) .mat-form-field-ripple{height:1px}\", \".mat-form-field-appearance-outline .mat-form-field-wrapper{margin:.25em 0}.mat-form-field-appearance-outline .mat-form-field-flex{padding:0 .75em 0 .75em;margin-top:-0.25em;position:relative}.mat-form-field-appearance-outline .mat-form-field-prefix,.mat-form-field-appearance-outline .mat-form-field-suffix{top:.25em}.mat-form-field-appearance-outline .mat-form-field-outline{display:flex;position:absolute;top:.25em;left:0;right:0;bottom:0;pointer-events:none}.mat-form-field-appearance-outline .mat-form-field-outline-start,.mat-form-field-appearance-outline .mat-form-field-outline-end{border:1px solid currentColor;min-width:5px}.mat-form-field-appearance-outline .mat-form-field-outline-start{border-radius:5px 0 0 5px;border-right-style:none}[dir=rtl] .mat-form-field-appearance-outline .mat-form-field-outline-start{border-right-style:solid;border-left-style:none;border-radius:0 5px 5px 0}.mat-form-field-appearance-outline .mat-form-field-outline-end{border-radius:0 5px 5px 0;border-left-style:none;flex-grow:1}[dir=rtl] .mat-form-field-appearance-outline .mat-form-field-outline-end{border-left-style:solid;border-right-style:none;border-radius:5px 0 0 5px}.mat-form-field-appearance-outline .mat-form-field-outline-gap{border-radius:.000001px;border:1px solid currentColor;border-left-style:none;border-right-style:none}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-outline-gap{border-top-color:rgba(0,0,0,0)}.mat-form-field-appearance-outline .mat-form-field-outline-thick{opacity:0}.mat-form-field-appearance-outline .mat-form-field-outline-thick .mat-form-field-outline-start,.mat-form-field-appearance-outline .mat-form-field-outline-thick .mat-form-field-outline-end,.mat-form-field-appearance-outline .mat-form-field-outline-thick .mat-form-field-outline-gap{border-width:2px}.mat-form-field-appearance-outline.mat-focused .mat-form-field-outline,.mat-form-field-appearance-outline.mat-form-field-invalid .mat-form-field-outline{opacity:0;transition:opacity 100ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick,.mat-form-field-appearance-outline.mat-form-field-invalid .mat-form-field-outline-thick{opacity:1}.cdk-high-contrast-active .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick{border:3px dashed}.mat-form-field-appearance-outline:not(.mat-form-field-disabled) .mat-form-field-flex:hover .mat-form-field-outline{opacity:0;transition:opacity 600ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-form-field-appearance-outline:not(.mat-form-field-disabled) .mat-form-field-flex:hover .mat-form-field-outline-thick{opacity:1}.mat-form-field-appearance-outline .mat-form-field-subscript-wrapper{padding:0 1em}.cdk-high-contrast-active .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{color:GrayText}.mat-form-field-appearance-outline._mat-animation-noopable:not(.mat-form-field-disabled) .mat-form-field-flex:hover~.mat-form-field-outline,.mat-form-field-appearance-outline._mat-animation-noopable .mat-form-field-outline,.mat-form-field-appearance-outline._mat-animation-noopable .mat-form-field-outline-start,.mat-form-field-appearance-outline._mat-animation-noopable .mat-form-field-outline-end,.mat-form-field-appearance-outline._mat-animation-noopable .mat-form-field-outline-gap{transition:none}\", \".mat-form-field-appearance-standard .mat-form-field-flex{padding-top:.75em}.mat-form-field-appearance-standard .mat-form-field-underline{height:1px}.cdk-high-contrast-active .mat-form-field-appearance-standard .mat-form-field-underline{height:0;border-top:solid 1px}.mat-form-field-appearance-standard .mat-form-field-ripple{bottom:0;height:2px}.cdk-high-contrast-active .mat-form-field-appearance-standard .mat-form-field-ripple{height:0;border-top:solid 2px}.mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{background-position:0;background-color:rgba(0,0,0,0)}.cdk-high-contrast-active .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{border-top-style:dotted;border-top-width:2px}.mat-form-field-appearance-standard:not(.mat-form-field-disabled) .mat-form-field-flex:hover~.mat-form-field-underline .mat-form-field-ripple{opacity:1;transform:none;transition:opacity 600ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-form-field-appearance-standard._mat-animation-noopable:not(.mat-form-field-disabled) .mat-form-field-flex:hover~.mat-form-field-underline .mat-form-field-ripple{transition:none}\"],\n encapsulation: 2,\n data: {\n animation: [matFormFieldAnimations.transitionMessages]\n },\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyFormField, [{\n type: Component,\n args: [{\n selector: 'mat-form-field',\n exportAs: 'matFormField',\n animations: [matFormFieldAnimations.transitionMessages],\n host: {\n 'class': 'mat-form-field',\n '[class.mat-form-field-appearance-standard]': 'appearance == \"standard\"',\n '[class.mat-form-field-appearance-fill]': 'appearance == \"fill\"',\n '[class.mat-form-field-appearance-outline]': 'appearance == \"outline\"',\n '[class.mat-form-field-appearance-legacy]': 'appearance == \"legacy\"',\n '[class.mat-form-field-invalid]': '_control.errorState',\n '[class.mat-form-field-can-float]': '_canLabelFloat()',\n '[class.mat-form-field-should-float]': '_shouldLabelFloat()',\n '[class.mat-form-field-has-label]': '_hasFloatingLabel()',\n '[class.mat-form-field-hide-placeholder]': '_hideControlPlaceholder()',\n '[class.mat-form-field-disabled]': '_control.disabled',\n '[class.mat-form-field-autofilled]': '_control.autofilled',\n '[class.mat-focused]': '_control.focused',\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 '[class._mat-animation-noopable]': '!_animationsEnabled',\n 'ngSkipHydration': ''\n },\n inputs: ['color'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{\n provide: MAT_FORM_FIELD,\n useExisting: MatLegacyFormField\n }],\n template: \"\\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n\\n \\n \\n\\n \\n \\n \\n\\n \\n \\n \\n {{_control.placeholder}}\\n \\n\\n \\n\\n \\n *\\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n \\n {{hintLabel}}\\n \\n \\n \\n \\n \\n\\n\",\n styles: [\".mat-form-field{display:inline-block;position:relative;text-align:left}[dir=rtl] .mat-form-field{text-align:right}.mat-form-field-wrapper{position:relative}.mat-form-field-flex{display:inline-flex;align-items:baseline;box-sizing:border-box;width:100%}.mat-form-field-prefix,.mat-form-field-suffix{white-space:nowrap;flex:none;position:relative}.mat-form-field-infix{display:block;position:relative;flex:auto;min-width:0;width:180px}.cdk-high-contrast-active .mat-form-field-infix{border-image:linear-gradient(transparent, transparent)}.mat-form-field-label-wrapper{position:absolute;left:0;box-sizing:content-box;width:100%;height:100%;overflow:hidden;pointer-events:none}[dir=rtl] .mat-form-field-label-wrapper{left:auto;right:0}.mat-form-field-label{position:absolute;left:0;font:inherit;pointer-events:none;width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;transform-origin:0 0;transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1),color 400ms cubic-bezier(0.25, 0.8, 0.25, 1),width 400ms cubic-bezier(0.25, 0.8, 0.25, 1);display:none}[dir=rtl] .mat-form-field-label{transform-origin:100% 0;left:auto;right:0}.cdk-high-contrast-active .mat-form-field-disabled .mat-form-field-label{color:GrayText}.mat-form-field-empty.mat-form-field-label,.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label{display:block}.mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{display:none}.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{display:block;transition:none}.mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label,.mat-input-server[placeholder]:not(:placeholder-shown)+.mat-form-field-label-wrapper .mat-form-field-label{display:none}.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label,.mat-form-field-can-float .mat-input-server[placeholder]:not(:placeholder-shown)+.mat-form-field-label-wrapper .mat-form-field-label{display:block}.mat-form-field-label:not(.mat-form-field-empty){transition:none}.mat-form-field-underline{position:absolute;width:100%;pointer-events:none;transform:scale3d(1, 1.0001, 1)}.mat-form-field-ripple{position:absolute;left:0;width:100%;transform-origin:50%;transform:scaleX(0.5);opacity:0;transition:background-color 300ms cubic-bezier(0.55, 0, 0.55, 0.2)}.mat-form-field.mat-focused .mat-form-field-ripple,.mat-form-field.mat-form-field-invalid .mat-form-field-ripple{opacity:1;transform:none;transition:transform 300ms cubic-bezier(0.25, 0.8, 0.25, 1),opacity 100ms cubic-bezier(0.25, 0.8, 0.25, 1),background-color 300ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-form-field-subscript-wrapper{position:absolute;box-sizing:border-box;width:100%;overflow:hidden}.mat-form-field-subscript-wrapper .mat-icon,.mat-form-field-label-wrapper .mat-icon{width:1em;height:1em;font-size:inherit;vertical-align:baseline}.mat-form-field-hint-wrapper{display:flex}.mat-form-field-hint-spacer{flex:1 0 1em}.mat-error{display:block}.mat-form-field-control-wrapper{position:relative}.mat-form-field-hint-end{order:1}.mat-form-field._mat-animation-noopable .mat-form-field-label,.mat-form-field._mat-animation-noopable .mat-form-field-ripple{transition:none}.mat-form-field .mat-form-field-prefix .mat-datepicker-toggle .mat-mdc-button-base,.mat-form-field .mat-form-field-suffix .mat-datepicker-toggle .mat-mdc-button-base{width:40px;height:40px;padding:8px 0}.mat-form-field .mat-datepicker-toggle .mat-mdc-icon-button .mat-icon{font-size:1em;display:inline-block;margin:-2px 0 1px}.mat-form-field-type-mat-date-range-input .mat-form-field-infix{width:200px}.mat-form-field-appearance-legacy .mat-form-field-prefix .mat-datepicker-toggle .mat-mdc-icon-button,.mat-form-field-appearance-legacy .mat-form-field-suffix .mat-datepicker-toggle .mat-mdc-icon-button{font-size:inherit;width:1.5em;height:1.5em;padding:0}.mat-form-field-appearance-legacy .mat-form-field-prefix .mat-datepicker-toggle-default-icon,.mat-form-field-appearance-legacy .mat-form-field-suffix .mat-datepicker-toggle-default-icon{width:1em}.mat-form-field-appearance-legacy .mat-form-field-prefix .mat-datepicker-toggle .mat-mdc-icon-button .mat-icon,.mat-form-field-appearance-legacy .mat-form-field-suffix .mat-datepicker-toggle .mat-mdc-icon-button .mat-icon{line-height:1.5em;margin:0}.mat-form-field .mat-datepicker-toggle .mat-mdc-button-base{vertical-align:middle}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-datepicker-toggle .mat-mdc-button-base{vertical-align:baseline}\", \".mat-form-field-appearance-fill .mat-form-field-flex{border-radius:4px 4px 0 0;padding:.75em .75em 0 .75em}.cdk-high-contrast-active .mat-form-field-appearance-fill .mat-form-field-flex{outline:solid 1px}.cdk-high-contrast-active .mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex{outline-color:GrayText}.cdk-high-contrast-active .mat-form-field-appearance-fill.mat-focused .mat-form-field-flex{outline:dashed 3px}.mat-form-field-appearance-fill .mat-form-field-underline::before{content:\\\"\\\";display:block;position:absolute;bottom:0;height:1px;width:100%}.mat-form-field-appearance-fill .mat-form-field-ripple{bottom:0;height:2px}.cdk-high-contrast-active .mat-form-field-appearance-fill .mat-form-field-ripple{height:0}.mat-form-field-appearance-fill:not(.mat-form-field-disabled) .mat-form-field-flex:hover~.mat-form-field-underline .mat-form-field-ripple{opacity:1;transform:none;transition:opacity 600ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-form-field-appearance-fill._mat-animation-noopable:not(.mat-form-field-disabled) .mat-form-field-flex:hover~.mat-form-field-underline .mat-form-field-ripple{transition:none}.mat-form-field-appearance-fill .mat-form-field-subscript-wrapper{padding:0 1em}\", \".mat-input-element{font:inherit;background:rgba(0,0,0,0);color:currentColor;border:none;outline:none;padding:0;margin:0;width:100%;max-width:100%;vertical-align:bottom;text-align:inherit;box-sizing:content-box}.mat-input-element:-moz-ui-invalid{box-shadow:none}.mat-input-element,.mat-input-element::-webkit-search-cancel-button,.mat-input-element::-webkit-search-decoration,.mat-input-element::-webkit-search-results-button,.mat-input-element::-webkit-search-results-decoration{-webkit-appearance:none}.mat-input-element::-webkit-contacts-auto-fill-button,.mat-input-element::-webkit-caps-lock-indicator,.mat-input-element:not([type=password])::-webkit-credentials-auto-fill-button{visibility:hidden}.mat-input-element[type=date],.mat-input-element[type=datetime],.mat-input-element[type=datetime-local],.mat-input-element[type=month],.mat-input-element[type=week],.mat-input-element[type=time]{line-height:1}.mat-input-element[type=date]::after,.mat-input-element[type=datetime]::after,.mat-input-element[type=datetime-local]::after,.mat-input-element[type=month]::after,.mat-input-element[type=week]::after,.mat-input-element[type=time]::after{content:\\\" \\\";white-space:pre;width:1px}.mat-input-element::-webkit-inner-spin-button,.mat-input-element::-webkit-calendar-picker-indicator,.mat-input-element::-webkit-clear-button{font-size:.75em}.mat-input-element::placeholder{-webkit-user-select:none;user-select:none;transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-input-element::-moz-placeholder{-webkit-user-select:none;user-select:none;transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-input-element::-webkit-input-placeholder{-webkit-user-select:none;user-select:none;transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-input-element:-ms-input-placeholder{-webkit-user-select:none;user-select:none;transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-form-field-hide-placeholder .mat-input-element::placeholder{color:rgba(0,0,0,0) !important;-webkit-text-fill-color:rgba(0,0,0,0);transition:none}.cdk-high-contrast-active .mat-form-field-hide-placeholder .mat-input-element::placeholder{opacity:0}.mat-form-field-hide-placeholder .mat-input-element::-moz-placeholder{color:rgba(0,0,0,0) !important;-webkit-text-fill-color:rgba(0,0,0,0);transition:none}.cdk-high-contrast-active .mat-form-field-hide-placeholder .mat-input-element::-moz-placeholder{opacity:0}.mat-form-field-hide-placeholder .mat-input-element::-webkit-input-placeholder{color:rgba(0,0,0,0) !important;-webkit-text-fill-color:rgba(0,0,0,0);transition:none}.cdk-high-contrast-active .mat-form-field-hide-placeholder .mat-input-element::-webkit-input-placeholder{opacity:0}.mat-form-field-hide-placeholder .mat-input-element:-ms-input-placeholder{color:rgba(0,0,0,0) !important;-webkit-text-fill-color:rgba(0,0,0,0);transition:none}.cdk-high-contrast-active .mat-form-field-hide-placeholder .mat-input-element:-ms-input-placeholder{opacity:0}._mat-animation-noopable .mat-input-element::placeholder{transition:none}._mat-animation-noopable .mat-input-element::-moz-placeholder{transition:none}._mat-animation-noopable .mat-input-element::-webkit-input-placeholder{transition:none}._mat-animation-noopable .mat-input-element:-ms-input-placeholder{transition:none}textarea.mat-input-element{resize:vertical;overflow:auto}textarea.mat-input-element.cdk-textarea-autosize{resize:none}textarea.mat-input-element{padding:2px 0;margin:-2px 0}select.mat-input-element{-moz-appearance:none;-webkit-appearance:none;position:relative;background-color:rgba(0,0,0,0);display:inline-flex;box-sizing:border-box;padding-top:1em;top:-1em;margin-bottom:-1em}select.mat-input-element::-moz-focus-inner{border:0}select.mat-input-element:not(:disabled){cursor:pointer}.mat-form-field-type-mat-native-select .mat-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;top:50%;right:0;margin-top:-2.5px;pointer-events:none}[dir=rtl] .mat-form-field-type-mat-native-select .mat-form-field-infix::after{right:auto;left:0}.mat-form-field-type-mat-native-select .mat-input-element{padding-right:15px}[dir=rtl] .mat-form-field-type-mat-native-select .mat-input-element{padding-right:0;padding-left:15px}.mat-form-field-type-mat-native-select .mat-form-field-label-wrapper{max-width:calc(100% - 10px)}.mat-form-field-type-mat-native-select.mat-form-field-appearance-outline .mat-form-field-infix::after{margin-top:-5px}.mat-form-field-type-mat-native-select.mat-form-field-appearance-fill .mat-form-field-infix::after{margin-top:-10px}\", \".mat-form-field-appearance-legacy .mat-form-field-label{transform:perspective(100px)}.mat-form-field-appearance-legacy .mat-form-field-prefix .mat-icon,.mat-form-field-appearance-legacy .mat-form-field-suffix .mat-icon{width:1em}.mat-form-field-appearance-legacy .mat-form-field-prefix .mat-icon-button,.mat-form-field-appearance-legacy .mat-form-field-suffix .mat-icon-button{font:inherit;vertical-align:baseline}.mat-form-field-appearance-legacy .mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field-appearance-legacy .mat-form-field-suffix .mat-icon-button .mat-icon{font-size:inherit}.mat-form-field-appearance-legacy .mat-form-field-underline{height:1px}.cdk-high-contrast-active .mat-form-field-appearance-legacy .mat-form-field-underline{height:0;border-top:solid 1px}.mat-form-field-appearance-legacy .mat-form-field-ripple{top:0;height:2px;overflow:hidden}.cdk-high-contrast-active .mat-form-field-appearance-legacy .mat-form-field-ripple{height:0;border-top:solid 2px}.mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{background-position:0;background-color:rgba(0,0,0,0)}.cdk-high-contrast-active .mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{border-top-style:dotted;border-top-width:2px;border-top-color:GrayText}.mat-form-field-appearance-legacy.mat-form-field-invalid:not(.mat-focused) .mat-form-field-ripple{height:1px}\", \".mat-form-field-appearance-outline .mat-form-field-wrapper{margin:.25em 0}.mat-form-field-appearance-outline .mat-form-field-flex{padding:0 .75em 0 .75em;margin-top:-0.25em;position:relative}.mat-form-field-appearance-outline .mat-form-field-prefix,.mat-form-field-appearance-outline .mat-form-field-suffix{top:.25em}.mat-form-field-appearance-outline .mat-form-field-outline{display:flex;position:absolute;top:.25em;left:0;right:0;bottom:0;pointer-events:none}.mat-form-field-appearance-outline .mat-form-field-outline-start,.mat-form-field-appearance-outline .mat-form-field-outline-end{border:1px solid currentColor;min-width:5px}.mat-form-field-appearance-outline .mat-form-field-outline-start{border-radius:5px 0 0 5px;border-right-style:none}[dir=rtl] .mat-form-field-appearance-outline .mat-form-field-outline-start{border-right-style:solid;border-left-style:none;border-radius:0 5px 5px 0}.mat-form-field-appearance-outline .mat-form-field-outline-end{border-radius:0 5px 5px 0;border-left-style:none;flex-grow:1}[dir=rtl] .mat-form-field-appearance-outline .mat-form-field-outline-end{border-left-style:solid;border-right-style:none;border-radius:5px 0 0 5px}.mat-form-field-appearance-outline .mat-form-field-outline-gap{border-radius:.000001px;border:1px solid currentColor;border-left-style:none;border-right-style:none}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-outline-gap{border-top-color:rgba(0,0,0,0)}.mat-form-field-appearance-outline .mat-form-field-outline-thick{opacity:0}.mat-form-field-appearance-outline .mat-form-field-outline-thick .mat-form-field-outline-start,.mat-form-field-appearance-outline .mat-form-field-outline-thick .mat-form-field-outline-end,.mat-form-field-appearance-outline .mat-form-field-outline-thick .mat-form-field-outline-gap{border-width:2px}.mat-form-field-appearance-outline.mat-focused .mat-form-field-outline,.mat-form-field-appearance-outline.mat-form-field-invalid .mat-form-field-outline{opacity:0;transition:opacity 100ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick,.mat-form-field-appearance-outline.mat-form-field-invalid .mat-form-field-outline-thick{opacity:1}.cdk-high-contrast-active .mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick{border:3px dashed}.mat-form-field-appearance-outline:not(.mat-form-field-disabled) .mat-form-field-flex:hover .mat-form-field-outline{opacity:0;transition:opacity 600ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-form-field-appearance-outline:not(.mat-form-field-disabled) .mat-form-field-flex:hover .mat-form-field-outline-thick{opacity:1}.mat-form-field-appearance-outline .mat-form-field-subscript-wrapper{padding:0 1em}.cdk-high-contrast-active .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{color:GrayText}.mat-form-field-appearance-outline._mat-animation-noopable:not(.mat-form-field-disabled) .mat-form-field-flex:hover~.mat-form-field-outline,.mat-form-field-appearance-outline._mat-animation-noopable .mat-form-field-outline,.mat-form-field-appearance-outline._mat-animation-noopable .mat-form-field-outline-start,.mat-form-field-appearance-outline._mat-animation-noopable .mat-form-field-outline-end,.mat-form-field-appearance-outline._mat-animation-noopable .mat-form-field-outline-gap{transition:none}\", \".mat-form-field-appearance-standard .mat-form-field-flex{padding-top:.75em}.mat-form-field-appearance-standard .mat-form-field-underline{height:1px}.cdk-high-contrast-active .mat-form-field-appearance-standard .mat-form-field-underline{height:0;border-top:solid 1px}.mat-form-field-appearance-standard .mat-form-field-ripple{bottom:0;height:2px}.cdk-high-contrast-active .mat-form-field-appearance-standard .mat-form-field-ripple{height:0;border-top:solid 2px}.mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{background-position:0;background-color:rgba(0,0,0,0)}.cdk-high-contrast-active .mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{border-top-style:dotted;border-top-width:2px}.mat-form-field-appearance-standard:not(.mat-form-field-disabled) .mat-form-field-flex:hover~.mat-form-field-underline .mat-form-field-ripple{opacity:1;transform:none;transition:opacity 600ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-form-field-appearance-standard._mat-animation-noopable:not(.mat-form-field-disabled) .mat-form-field-flex:hover~.mat-form-field-underline .mat-form-field-ripple{transition:none}\"]\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: i1.Directionality,\n decorators: [{\n type: Optional\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_LEGACY_FORM_FIELD_DEFAULT_OPTIONS]\n }]\n }, {\n type: i2.Platform\n }, {\n type: i0.NgZone\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }]\n }];\n }, {\n appearance: [{\n type: Input\n }],\n hideRequiredMarker: [{\n type: Input\n }],\n hintLabel: [{\n type: Input\n }],\n floatLabel: [{\n type: Input\n }],\n _connectionContainerRef: [{\n type: ViewChild,\n args: ['connectionContainer', {\n static: true\n }]\n }],\n _inputContainerRef: [{\n type: ViewChild,\n args: ['inputContainer']\n }],\n _label: [{\n type: ViewChild,\n args: ['label']\n }],\n _controlNonStatic: [{\n type: ContentChild,\n args: [MatFormFieldControl]\n }],\n _controlStatic: [{\n type: ContentChild,\n args: [MatFormFieldControl, {\n static: true\n }]\n }],\n _labelChildNonStatic: [{\n type: ContentChild,\n args: [MatLegacyLabel]\n }],\n _labelChildStatic: [{\n type: ContentChild,\n args: [MatLegacyLabel, {\n static: true\n }]\n }],\n _placeholderChild: [{\n type: ContentChild,\n args: [MatLegacyPlaceholder]\n }],\n _errorChildren: [{\n type: ContentChildren,\n args: [MAT_ERROR, {\n descendants: true\n }]\n }],\n _hintChildren: [{\n type: ContentChildren,\n args: [_MAT_LEGACY_HINT, {\n descendants: true\n }]\n }],\n _prefixChildren: [{\n type: ContentChildren,\n args: [MAT_PREFIX, {\n descendants: true\n }]\n }],\n _suffixChildren: [{\n type: ContentChildren,\n args: [MAT_SUFFIX, {\n descendants: true\n }]\n }]\n });\n})();\n\n/**\n * Prefix to be placed in front of the form field.\n * @deprecated Use `MatPrefix` from `@angular/material/form-field` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyPrefix {\n static {\n this.ɵfac = function MatLegacyPrefix_Factory(ɵt) {\n return new (ɵt || MatLegacyPrefix)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyPrefix,\n selectors: [[\"\", \"matPrefix\", \"\"]],\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_PREFIX,\n useExisting: MatLegacyPrefix\n }])]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyPrefix, [{\n type: Directive,\n args: [{\n selector: '[matPrefix]',\n providers: [{\n provide: MAT_PREFIX,\n useExisting: MatLegacyPrefix\n }]\n }]\n }], null, null);\n})();\n\n/**\n * Suffix to be placed at the end of the form field.\n * @deprecated Use `MatSuffix` from `@angular/material/form-field` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacySuffix {\n static {\n this.ɵfac = function MatLegacySuffix_Factory(ɵt) {\n return new (ɵt || MatLegacySuffix)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacySuffix,\n selectors: [[\"\", \"matSuffix\", \"\"]],\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_SUFFIX,\n useExisting: MatLegacySuffix\n }])]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacySuffix, [{\n type: Directive,\n args: [{\n selector: '[matSuffix]',\n providers: [{\n provide: MAT_SUFFIX,\n useExisting: MatLegacySuffix\n }]\n }]\n }], null, null);\n})();\n\n/**\n * @deprecated Use `MatFormFieldModule` from `@angular/material/form-field` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyFormFieldModule {\n static {\n this.ɵfac = function MatLegacyFormFieldModule_Factory(ɵt) {\n return new (ɵt || MatLegacyFormFieldModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatLegacyFormFieldModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule, MatCommonModule, ObserversModule, MatCommonModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyFormFieldModule, [{\n type: NgModule,\n args: [{\n declarations: [MatLegacyError, MatLegacyFormField, MatLegacyHint, MatLegacyLabel, MatLegacyPlaceholder, MatLegacyPrefix, MatLegacySuffix],\n imports: [CommonModule, MatCommonModule, ObserversModule],\n exports: [MatCommonModule, MatLegacyError, MatLegacyFormField, MatLegacyHint, MatLegacyLabel, MatLegacyPlaceholder, MatLegacyPrefix, MatLegacySuffix]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_LEGACY_FORM_FIELD_DEFAULT_OPTIONS, MatLegacyError, MatLegacyFormField, MatLegacyFormFieldModule, MatLegacyHint, MatLegacyLabel, MatLegacyPlaceholder, MatLegacyPrefix, MatLegacySuffix, _MAT_LEGACY_HINT };\n","import * as i1 from '@angular/cdk/platform';\nimport { normalizePassiveListenerOptions } from '@angular/cdk/platform';\nimport * as i0 from '@angular/core';\nimport { Injectable, EventEmitter, Directive, Output, Optional, Inject, Input, NgModule } from '@angular/core';\nimport { coerceElement, coerceNumberProperty, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { EMPTY, Subject, fromEvent } from 'rxjs';\nimport { auditTime, takeUntil } from 'rxjs/operators';\nimport { DOCUMENT } from '@angular/common';\n\n/** Options to pass to the animationstart listener. */\nconst listenerOptions = normalizePassiveListenerOptions({\n passive: true\n});\n/**\n * An injectable service that can be used to monitor the autofill state of an input.\n * Based on the following blog post:\n * https://medium.com/@brunn/detecting-autofilled-fields-in-javascript-aed598d25da7\n */\nclass AutofillMonitor {\n constructor(_platform, _ngZone) {\n this._platform = _platform;\n this._ngZone = _ngZone;\n this._monitoredElements = new Map();\n }\n monitor(elementOrRef) {\n if (!this._platform.isBrowser) {\n return EMPTY;\n }\n const element = coerceElement(elementOrRef);\n const info = this._monitoredElements.get(element);\n if (info) {\n return info.subject;\n }\n const result = new Subject();\n const cssClass = 'cdk-text-field-autofilled';\n const listener = event => {\n // Animation events fire on initial element render, we check for the presence of the autofill\n // CSS class to make sure this is a real change in state, not just the initial render before\n // we fire off events.\n if (event.animationName === 'cdk-text-field-autofill-start' && !element.classList.contains(cssClass)) {\n element.classList.add(cssClass);\n this._ngZone.run(() => result.next({\n target: event.target,\n isAutofilled: true\n }));\n } else if (event.animationName === 'cdk-text-field-autofill-end' && element.classList.contains(cssClass)) {\n element.classList.remove(cssClass);\n this._ngZone.run(() => result.next({\n target: event.target,\n isAutofilled: false\n }));\n }\n };\n this._ngZone.runOutsideAngular(() => {\n element.addEventListener('animationstart', listener, listenerOptions);\n element.classList.add('cdk-text-field-autofill-monitored');\n });\n this._monitoredElements.set(element, {\n subject: result,\n unlisten: () => {\n element.removeEventListener('animationstart', listener, listenerOptions);\n }\n });\n return result;\n }\n stopMonitoring(elementOrRef) {\n const element = coerceElement(elementOrRef);\n const info = this._monitoredElements.get(element);\n if (info) {\n info.unlisten();\n info.subject.complete();\n element.classList.remove('cdk-text-field-autofill-monitored');\n element.classList.remove('cdk-text-field-autofilled');\n this._monitoredElements.delete(element);\n }\n }\n ngOnDestroy() {\n this._monitoredElements.forEach((_info, element) => this.stopMonitoring(element));\n }\n static {\n this.ɵfac = function AutofillMonitor_Factory(ɵt) {\n return new (ɵt || AutofillMonitor)(i0.ɵɵinject(i1.Platform), i0.ɵɵinject(i0.NgZone));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: AutofillMonitor,\n factory: AutofillMonitor.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(AutofillMonitor, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], function () {\n return [{\n type: i1.Platform\n }, {\n type: i0.NgZone\n }];\n }, null);\n})();\n/** A directive that can be used to monitor the autofill state of an input. */\nclass CdkAutofill {\n constructor(_elementRef, _autofillMonitor) {\n this._elementRef = _elementRef;\n this._autofillMonitor = _autofillMonitor;\n /** Emits when the autofill state of the element changes. */\n this.cdkAutofill = new EventEmitter();\n }\n ngOnInit() {\n this._autofillMonitor.monitor(this._elementRef).subscribe(event => this.cdkAutofill.emit(event));\n }\n ngOnDestroy() {\n this._autofillMonitor.stopMonitoring(this._elementRef);\n }\n static {\n this.ɵfac = function CdkAutofill_Factory(ɵt) {\n return new (ɵt || CdkAutofill)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(AutofillMonitor));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkAutofill,\n selectors: [[\"\", \"cdkAutofill\", \"\"]],\n outputs: {\n cdkAutofill: \"cdkAutofill\"\n }\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkAutofill, [{\n type: Directive,\n args: [{\n selector: '[cdkAutofill]'\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: AutofillMonitor\n }];\n }, {\n cdkAutofill: [{\n type: Output\n }]\n });\n})();\n\n/** Directive to automatically resize a textarea to fit its content. */\nclass CdkTextareaAutosize {\n /** Minimum amount of rows in the textarea. */\n get minRows() {\n return this._minRows;\n }\n set minRows(value) {\n this._minRows = coerceNumberProperty(value);\n this._setMinHeight();\n }\n /** Maximum amount of rows in the textarea. */\n get maxRows() {\n return this._maxRows;\n }\n set maxRows(value) {\n this._maxRows = coerceNumberProperty(value);\n this._setMaxHeight();\n }\n /** Whether autosizing is enabled or not */\n get enabled() {\n return this._enabled;\n }\n set enabled(value) {\n value = coerceBooleanProperty(value);\n // Only act if the actual value changed. This specifically helps to not run\n // resizeToFitContent too early (i.e. before ngAfterViewInit)\n if (this._enabled !== value) {\n (this._enabled = value) ? this.resizeToFitContent(true) : this.reset();\n }\n }\n get placeholder() {\n return this._textareaElement.placeholder;\n }\n set placeholder(value) {\n this._cachedPlaceholderHeight = undefined;\n if (value) {\n this._textareaElement.setAttribute('placeholder', value);\n } else {\n this._textareaElement.removeAttribute('placeholder');\n }\n this._cacheTextareaPlaceholderHeight();\n }\n constructor(_elementRef, _platform, _ngZone, /** @breaking-change 11.0.0 make document required */\n document) {\n this._elementRef = _elementRef;\n this._platform = _platform;\n this._ngZone = _ngZone;\n this._destroyed = new Subject();\n this._enabled = true;\n /**\n * Value of minRows as of last resize. If the minRows has decreased, the\n * height of the textarea needs to be recomputed to reflect the new minimum. The maxHeight\n * does not have the same problem because it does not affect the textarea's scrollHeight.\n */\n this._previousMinRows = -1;\n this._isViewInited = false;\n /** Handles `focus` and `blur` events. */\n this._handleFocusEvent = event => {\n this._hasFocus = event.type === 'focus';\n };\n this._document = document;\n this._textareaElement = this._elementRef.nativeElement;\n }\n /** Sets the minimum height of the textarea as determined by minRows. */\n _setMinHeight() {\n const minHeight = this.minRows && this._cachedLineHeight ? `${this.minRows * this._cachedLineHeight}px` : null;\n if (minHeight) {\n this._textareaElement.style.minHeight = minHeight;\n }\n }\n /** Sets the maximum height of the textarea as determined by maxRows. */\n _setMaxHeight() {\n const maxHeight = this.maxRows && this._cachedLineHeight ? `${this.maxRows * this._cachedLineHeight}px` : null;\n if (maxHeight) {\n this._textareaElement.style.maxHeight = maxHeight;\n }\n }\n ngAfterViewInit() {\n if (this._platform.isBrowser) {\n // Remember the height which we started with in case autosizing is disabled\n this._initialHeight = this._textareaElement.style.height;\n this.resizeToFitContent();\n this._ngZone.runOutsideAngular(() => {\n const window = this._getWindow();\n fromEvent(window, 'resize').pipe(auditTime(16), takeUntil(this._destroyed)).subscribe(() => this.resizeToFitContent(true));\n this._textareaElement.addEventListener('focus', this._handleFocusEvent);\n this._textareaElement.addEventListener('blur', this._handleFocusEvent);\n });\n this._isViewInited = true;\n this.resizeToFitContent(true);\n }\n }\n ngOnDestroy() {\n this._textareaElement.removeEventListener('focus', this._handleFocusEvent);\n this._textareaElement.removeEventListener('blur', this._handleFocusEvent);\n this._destroyed.next();\n this._destroyed.complete();\n }\n /**\n * Cache the height of a single-row textarea if it has not already been cached.\n *\n * We need to know how large a single \"row\" of a textarea is in order to apply minRows and\n * maxRows. For the initial version, we will assume that the height of a single line in the\n * textarea does not ever change.\n */\n _cacheTextareaLineHeight() {\n if (this._cachedLineHeight) {\n return;\n }\n // Use a clone element because we have to override some styles.\n let textareaClone = this._textareaElement.cloneNode(false);\n textareaClone.rows = 1;\n // Use `position: absolute` so that this doesn't cause a browser layout and use\n // `visibility: hidden` so that nothing is rendered. Clear any other styles that\n // would affect the height.\n textareaClone.style.position = 'absolute';\n textareaClone.style.visibility = 'hidden';\n textareaClone.style.border = 'none';\n textareaClone.style.padding = '0';\n textareaClone.style.height = '';\n textareaClone.style.minHeight = '';\n textareaClone.style.maxHeight = '';\n // In Firefox it happens that textarea elements are always bigger than the specified amount\n // of rows. This is because Firefox tries to add extra space for the horizontal scrollbar.\n // As a workaround that removes the extra space for the scrollbar, we can just set overflow\n // to hidden. This ensures that there is no invalid calculation of the line height.\n // See Firefox bug report: https://bugzilla.mozilla.org/show_bug.cgi?id=33654\n textareaClone.style.overflow = 'hidden';\n this._textareaElement.parentNode.appendChild(textareaClone);\n this._cachedLineHeight = textareaClone.clientHeight;\n textareaClone.remove();\n // Min and max heights have to be re-calculated if the cached line height changes\n this._setMinHeight();\n this._setMaxHeight();\n }\n _measureScrollHeight() {\n const element = this._textareaElement;\n const previousMargin = element.style.marginBottom || '';\n const isFirefox = this._platform.FIREFOX;\n const needsMarginFiller = isFirefox && this._hasFocus;\n const measuringClass = isFirefox ? 'cdk-textarea-autosize-measuring-firefox' : 'cdk-textarea-autosize-measuring';\n // In some cases the page might move around while we're measuring the `textarea` on Firefox. We\n // work around it by assigning a temporary margin with the same height as the `textarea` so that\n // it occupies the same amount of space. See #23233.\n if (needsMarginFiller) {\n element.style.marginBottom = `${element.clientHeight}px`;\n }\n // Reset the textarea height to auto in order to shrink back to its default size.\n // Also temporarily force overflow:hidden, so scroll bars do not interfere with calculations.\n element.classList.add(measuringClass);\n // The measuring class includes a 2px padding to workaround an issue with Chrome,\n // so we account for that extra space here by subtracting 4 (2px top + 2px bottom).\n const scrollHeight = element.scrollHeight - 4;\n element.classList.remove(measuringClass);\n if (needsMarginFiller) {\n element.style.marginBottom = previousMargin;\n }\n return scrollHeight;\n }\n _cacheTextareaPlaceholderHeight() {\n if (!this._isViewInited || this._cachedPlaceholderHeight != undefined) {\n return;\n }\n if (!this.placeholder) {\n this._cachedPlaceholderHeight = 0;\n return;\n }\n const value = this._textareaElement.value;\n this._textareaElement.value = this._textareaElement.placeholder;\n this._cachedPlaceholderHeight = this._measureScrollHeight();\n this._textareaElement.value = value;\n }\n ngDoCheck() {\n if (this._platform.isBrowser) {\n this.resizeToFitContent();\n }\n }\n /**\n * Resize the textarea to fit its content.\n * @param force Whether to force a height recalculation. By default the height will be\n * recalculated only if the value changed since the last call.\n */\n resizeToFitContent(force = false) {\n // If autosizing is disabled, just skip everything else\n if (!this._enabled) {\n return;\n }\n this._cacheTextareaLineHeight();\n this._cacheTextareaPlaceholderHeight();\n // If we haven't determined the line-height yet, we know we're still hidden and there's no point\n // in checking the height of the textarea.\n if (!this._cachedLineHeight) {\n return;\n }\n const textarea = this._elementRef.nativeElement;\n const value = textarea.value;\n // Only resize if the value or minRows have changed since these calculations can be expensive.\n if (!force && this._minRows === this._previousMinRows && value === this._previousValue) {\n return;\n }\n const scrollHeight = this._measureScrollHeight();\n const height = Math.max(scrollHeight, this._cachedPlaceholderHeight || 0);\n // Use the scrollHeight to know how large the textarea *would* be if fit its entire value.\n textarea.style.height = `${height}px`;\n this._ngZone.runOutsideAngular(() => {\n if (typeof requestAnimationFrame !== 'undefined') {\n requestAnimationFrame(() => this._scrollToCaretPosition(textarea));\n } else {\n setTimeout(() => this._scrollToCaretPosition(textarea));\n }\n });\n this._previousValue = value;\n this._previousMinRows = this._minRows;\n }\n /**\n * Resets the textarea to its original size\n */\n reset() {\n // Do not try to change the textarea, if the initialHeight has not been determined yet\n // This might potentially remove styles when reset() is called before ngAfterViewInit\n if (this._initialHeight !== undefined) {\n this._textareaElement.style.height = this._initialHeight;\n }\n }\n _noopInputHandler() {\n // no-op handler that ensures we're running change detection on input events.\n }\n /** Access injected document if available or fallback to global document reference */\n _getDocument() {\n return this._document || document;\n }\n /** Use defaultView of injected document if available or fallback to global window reference */\n _getWindow() {\n const doc = this._getDocument();\n return doc.defaultView || window;\n }\n /**\n * Scrolls a textarea to the caret position. On Firefox resizing the textarea will\n * prevent it from scrolling to the caret position. We need to re-set the selection\n * in order for it to scroll to the proper position.\n */\n _scrollToCaretPosition(textarea) {\n const {\n selectionStart,\n selectionEnd\n } = textarea;\n // IE will throw an \"Unspecified error\" if we try to set the selection range after the\n // element has been removed from the DOM. Assert that the directive hasn't been destroyed\n // between the time we requested the animation frame and when it was executed.\n // Also note that we have to assert that the textarea is focused before we set the\n // selection range. Setting the selection range on a non-focused textarea will cause\n // it to receive focus on IE and Edge.\n if (!this._destroyed.isStopped && this._hasFocus) {\n textarea.setSelectionRange(selectionStart, selectionEnd);\n }\n }\n static {\n this.ɵfac = function CdkTextareaAutosize_Factory(ɵt) {\n return new (ɵt || CdkTextareaAutosize)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(DOCUMENT, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkTextareaAutosize,\n selectors: [[\"textarea\", \"cdkTextareaAutosize\", \"\"]],\n hostAttrs: [\"rows\", \"1\", 1, \"cdk-textarea-autosize\"],\n hostBindings: function CdkTextareaAutosize_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"input\", function CdkTextareaAutosize_input_HostBindingHandler() {\n return ctx._noopInputHandler();\n });\n }\n },\n inputs: {\n minRows: [0, \"cdkAutosizeMinRows\", \"minRows\"],\n maxRows: [0, \"cdkAutosizeMaxRows\", \"maxRows\"],\n enabled: [0, \"cdkTextareaAutosize\", \"enabled\"],\n placeholder: \"placeholder\"\n },\n exportAs: [\"cdkTextareaAutosize\"]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkTextareaAutosize, [{\n type: Directive,\n args: [{\n selector: 'textarea[cdkTextareaAutosize]',\n exportAs: 'cdkTextareaAutosize',\n host: {\n 'class': 'cdk-textarea-autosize',\n // Textarea elements that have the directive applied should have a single row by default.\n // Browsers normally show two rows by default and therefore this limits the minRows binding.\n 'rows': '1',\n '(input)': '_noopInputHandler()'\n }\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i1.Platform\n }, {\n type: i0.NgZone\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [DOCUMENT]\n }]\n }];\n }, {\n minRows: [{\n type: Input,\n args: ['cdkAutosizeMinRows']\n }],\n maxRows: [{\n type: Input,\n args: ['cdkAutosizeMaxRows']\n }],\n enabled: [{\n type: Input,\n args: ['cdkTextareaAutosize']\n }],\n placeholder: [{\n type: Input\n }]\n });\n})();\nclass TextFieldModule {\n static {\n this.ɵfac = function TextFieldModule_Factory(ɵt) {\n return new (ɵt || TextFieldModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: TextFieldModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TextFieldModule, [{\n type: NgModule,\n args: [{\n declarations: [CdkAutofill, CdkTextareaAutosize],\n exports: [CdkAutofill, CdkTextareaAutosize]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AutofillMonitor, CdkAutofill, CdkTextareaAutosize, TextFieldModule };\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport * as i1 from '@angular/cdk/platform';\nimport { getSupportedInputTypes } from '@angular/cdk/platform';\nimport * as i4 from '@angular/cdk/text-field';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, Directive, Optional, Self, Inject, Input, NgModule } from '@angular/core';\nimport * as i2 from '@angular/forms';\nimport { Validators } from '@angular/forms';\nimport * as i3 from '@angular/material/core';\nimport { mixinErrorState, MatCommonModule } from '@angular/material/core';\nimport * as i5 from '@angular/material/form-field';\nimport { MAT_FORM_FIELD, MatFormFieldControl, MatFormFieldModule } from '@angular/material/form-field';\nimport { Subject } from 'rxjs';\n\n/** @docs-private */\nfunction getMatInputUnsupportedTypeError(type) {\n return Error(`Input type \"${type}\" isn't supported by matInput.`);\n}\n\n/**\n * This token is used to inject the object whose value should be set into `MatInput`. If none is\n * provided, the native `HTMLInputElement` is used. Directives like `MatDatepickerInput` can provide\n * themselves for this token, in order to make `MatInput` delegate the getting and setting of the\n * value to them.\n */\nconst MAT_INPUT_VALUE_ACCESSOR = new InjectionToken('MAT_INPUT_VALUE_ACCESSOR');\n\n// Invalid input type. Using one of these will throw an MatInputUnsupportedTypeError.\nconst MAT_INPUT_INVALID_TYPES = ['button', 'checkbox', 'file', 'hidden', 'image', 'radio', 'range', 'reset', 'submit'];\nlet nextUniqueId = 0;\n// Boilerplate for applying mixins to MatInput.\n/** @docs-private */\nconst _MatInputBase = mixinErrorState(class {\n constructor(_defaultErrorStateMatcher, _parentForm, _parentFormGroup,\n /**\n * Form control bound to the component.\n * Implemented as part of `MatFormFieldControl`.\n * @docs-private\n */\n ngControl) {\n this._defaultErrorStateMatcher = _defaultErrorStateMatcher;\n this._parentForm = _parentForm;\n this._parentFormGroup = _parentFormGroup;\n this.ngControl = ngControl;\n /**\n * Emits whenever the component state changes and should cause the parent\n * form field to update. Implemented as part of `MatFormFieldControl`.\n * @docs-private\n */\n this.stateChanges = new Subject();\n }\n});\nclass MatInput extends _MatInputBase {\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get disabled() {\n return this._disabled;\n }\n set disabled(value) {\n this._disabled = coerceBooleanProperty(value);\n // Browsers may not fire the blur event if the input is disabled too quickly.\n // Reset from here to ensure that the element doesn't become stuck.\n if (this.focused) {\n this.focused = false;\n this.stateChanges.next();\n }\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get id() {\n return this._id;\n }\n set id(value) {\n this._id = value || this._uid;\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get required() {\n return this._required ?? this.ngControl?.control?.hasValidator(Validators.required) ?? false;\n }\n set required(value) {\n this._required = coerceBooleanProperty(value);\n }\n /** Input type of the element. */\n get type() {\n return this._type;\n }\n set type(value) {\n this._type = value || 'text';\n this._validateType();\n // When using Angular inputs, developers are no longer able to set the properties on the native\n // input element. To ensure that bindings for `type` work, we need to sync the setter\n // with the native property. Textarea elements don't support the type property or attribute.\n if (!this._isTextarea && getSupportedInputTypes().has(this._type)) {\n this._elementRef.nativeElement.type = this._type;\n }\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get value() {\n return this._inputValueAccessor.value;\n }\n set value(value) {\n if (value !== this.value) {\n this._inputValueAccessor.value = value;\n this.stateChanges.next();\n }\n }\n /** Whether the element is readonly. */\n get readonly() {\n return this._readonly;\n }\n set readonly(value) {\n this._readonly = coerceBooleanProperty(value);\n }\n constructor(_elementRef, _platform, ngControl, _parentForm, _parentFormGroup, _defaultErrorStateMatcher, inputValueAccessor, _autofillMonitor, ngZone,\n // TODO: Remove this once the legacy appearance has been removed. We only need\n // to inject the form field for determining whether the placeholder has been promoted.\n _formField) {\n super(_defaultErrorStateMatcher, _parentForm, _parentFormGroup, ngControl);\n this._elementRef = _elementRef;\n this._platform = _platform;\n this._autofillMonitor = _autofillMonitor;\n this._formField = _formField;\n this._uid = `mat-input-${nextUniqueId++}`;\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n this.focused = false;\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n this.stateChanges = new Subject();\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n this.controlType = 'mat-input';\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n this.autofilled = false;\n this._disabled = false;\n this._type = 'text';\n this._readonly = false;\n this._neverEmptyInputTypes = ['date', 'datetime', 'datetime-local', 'month', 'time', 'week'].filter(t => getSupportedInputTypes().has(t));\n this._iOSKeyupListener = event => {\n const el = event.target;\n // Note: We specifically check for 0, rather than `!el.selectionStart`, because the two\n // indicate different things. If the value is 0, it means that the caret is at the start\n // of the input, whereas a value of `null` means that the input doesn't support\n // manipulating the selection range. Inputs that don't support setting the selection range\n // will throw an error so we want to avoid calling `setSelectionRange` on them. See:\n // https://html.spec.whatwg.org/multipage/input.html#do-not-apply\n if (!el.value && el.selectionStart === 0 && el.selectionEnd === 0) {\n // Note: Just setting `0, 0` doesn't fix the issue. Setting\n // `1, 1` fixes it for the first time that you type text and\n // then hold delete. Toggling to `1, 1` and then back to\n // `0, 0` seems to completely fix it.\n el.setSelectionRange(1, 1);\n el.setSelectionRange(0, 0);\n }\n };\n const element = this._elementRef.nativeElement;\n const nodeName = element.nodeName.toLowerCase();\n // If no input value accessor was explicitly specified, use the element as the input value\n // accessor.\n this._inputValueAccessor = inputValueAccessor || element;\n this._previousNativeValue = this.value;\n // Force setter to be called in case id was not specified.\n this.id = this.id;\n // On some versions of iOS the caret gets stuck in the wrong place when holding down the delete\n // key. In order to get around this we need to \"jiggle\" the caret loose. Since this bug only\n // exists on iOS, we only bother to install the listener on iOS.\n if (_platform.IOS) {\n ngZone.runOutsideAngular(() => {\n _elementRef.nativeElement.addEventListener('keyup', this._iOSKeyupListener);\n });\n }\n this._isServer = !this._platform.isBrowser;\n this._isNativeSelect = nodeName === 'select';\n this._isTextarea = nodeName === 'textarea';\n this._isInFormField = !!_formField;\n if (this._isNativeSelect) {\n this.controlType = element.multiple ? 'mat-native-select-multiple' : 'mat-native-select';\n }\n }\n ngAfterViewInit() {\n if (this._platform.isBrowser) {\n this._autofillMonitor.monitor(this._elementRef.nativeElement).subscribe(event => {\n this.autofilled = event.isAutofilled;\n this.stateChanges.next();\n });\n }\n }\n ngOnChanges() {\n this.stateChanges.next();\n }\n ngOnDestroy() {\n this.stateChanges.complete();\n if (this._platform.isBrowser) {\n this._autofillMonitor.stopMonitoring(this._elementRef.nativeElement);\n }\n if (this._platform.IOS) {\n this._elementRef.nativeElement.removeEventListener('keyup', this._iOSKeyupListener);\n }\n }\n ngDoCheck() {\n if (this.ngControl) {\n // We need to re-evaluate this on every change detection cycle, because there are some\n // error triggers that we can't subscribe to (e.g. parent form submissions). This means\n // that whatever logic is in here has to be super lean or we risk destroying the performance.\n this.updateErrorState();\n // Since the input isn't a `ControlValueAccessor`, we don't have a good way of knowing when\n // the disabled state has changed. We can't use the `ngControl.statusChanges`, because it\n // won't fire if the input is disabled with `emitEvents = false`, despite the input becoming\n // disabled.\n if (this.ngControl.disabled !== null && this.ngControl.disabled !== this.disabled) {\n this.disabled = this.ngControl.disabled;\n this.stateChanges.next();\n }\n }\n // We need to dirty-check the native element's value, because there are some cases where\n // we won't be notified when it changes (e.g. the consumer isn't using forms or they're\n // updating the value using `emitEvent: false`).\n this._dirtyCheckNativeValue();\n // We need to dirty-check and set the placeholder attribute ourselves, because whether it's\n // present or not depends on a query which is prone to \"changed after checked\" errors.\n this._dirtyCheckPlaceholder();\n }\n /** Focuses the input. */\n focus(options) {\n this._elementRef.nativeElement.focus(options);\n }\n /** Callback for the cases where the focused state of the input changes. */\n _focusChanged(isFocused) {\n if (isFocused !== this.focused) {\n this.focused = isFocused;\n this.stateChanges.next();\n }\n }\n _onInput() {\n // This is a noop function and is used to let Angular know whenever the value changes.\n // Angular will run a new change detection each time the `input` event has been dispatched.\n // It's necessary that Angular recognizes the value change, because when floatingLabel\n // is set to false and Angular forms aren't used, the placeholder won't recognize the\n // value changes and will not disappear.\n // Listening to the input event wouldn't be necessary when the input is using the\n // FormsModule or ReactiveFormsModule, because Angular forms also listens to input events.\n }\n /** Does some manual dirty checking on the native input `value` property. */\n _dirtyCheckNativeValue() {\n const newValue = this._elementRef.nativeElement.value;\n if (this._previousNativeValue !== newValue) {\n this._previousNativeValue = newValue;\n this.stateChanges.next();\n }\n }\n /** Does some manual dirty checking on the native input `placeholder` attribute. */\n _dirtyCheckPlaceholder() {\n const placeholder = this._getPlaceholder();\n if (placeholder !== this._previousPlaceholder) {\n const element = this._elementRef.nativeElement;\n this._previousPlaceholder = placeholder;\n placeholder ? element.setAttribute('placeholder', placeholder) : element.removeAttribute('placeholder');\n }\n }\n /** Gets the current placeholder of the form field. */\n _getPlaceholder() {\n return this.placeholder || null;\n }\n /** Make sure the input is a supported type. */\n _validateType() {\n if (MAT_INPUT_INVALID_TYPES.indexOf(this._type) > -1 && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getMatInputUnsupportedTypeError(this._type);\n }\n }\n /** Checks whether the input type is one of the types that are never empty. */\n _isNeverEmpty() {\n return this._neverEmptyInputTypes.indexOf(this._type) > -1;\n }\n /** Checks whether the input is invalid based on the native validation. */\n _isBadInput() {\n // The `validity` property won't be present on platform-server.\n let validity = this._elementRef.nativeElement.validity;\n return validity && validity.badInput;\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get empty() {\n return !this._isNeverEmpty() && !this._elementRef.nativeElement.value && !this._isBadInput() && !this.autofilled;\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get shouldLabelFloat() {\n if (this._isNativeSelect) {\n // For a single-selection ``, the label should float when the selected option has\n // a non-empty display value. For a ``, the label *always* floats to avoid\n // overlapping the label with the options.\n const selectElement = this._elementRef.nativeElement;\n const firstOption = selectElement.options[0];\n // On most browsers the `selectedIndex` will always be 0, however on IE and Edge it'll be\n // -1 if the `value` is set to something, that isn't in the list of options, at a later point.\n return this.focused || selectElement.multiple || !this.empty || !!(selectElement.selectedIndex > -1 && firstOption && firstOption.label);\n } else {\n return this.focused || !this.empty;\n }\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n setDescribedByIds(ids) {\n if (ids.length) {\n this._elementRef.nativeElement.setAttribute('aria-describedby', ids.join(' '));\n } else {\n this._elementRef.nativeElement.removeAttribute('aria-describedby');\n }\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n onContainerClick() {\n // Do not re-focus the input element if the element is already focused. Otherwise it can happen\n // that someone clicks on a time input and the cursor resets to the \"hours\" field while the\n // \"minutes\" field was actually clicked. See: https://github.com/angular/components/issues/12849\n if (!this.focused) {\n this.focus();\n }\n }\n /** Whether the form control is a native select that is displayed inline. */\n _isInlineSelect() {\n const element = this._elementRef.nativeElement;\n return this._isNativeSelect && (element.multiple || element.size > 1);\n }\n static {\n this.ɵfac = function MatInput_Factory(ɵt) {\n return new (ɵt || MatInput)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(i2.NgControl, 10), i0.ɵɵdirectiveInject(i2.NgForm, 8), i0.ɵɵdirectiveInject(i2.FormGroupDirective, 8), i0.ɵɵdirectiveInject(i3.ErrorStateMatcher), i0.ɵɵdirectiveInject(MAT_INPUT_VALUE_ACCESSOR, 10), i0.ɵɵdirectiveInject(i4.AutofillMonitor), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(MAT_FORM_FIELD, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatInput,\n selectors: [[\"input\", \"matInput\", \"\"], [\"textarea\", \"matInput\", \"\"], [\"select\", \"matNativeControl\", \"\"], [\"input\", \"matNativeControl\", \"\"], [\"textarea\", \"matNativeControl\", \"\"]],\n hostAttrs: [1, \"mat-mdc-input-element\"],\n hostVars: 18,\n hostBindings: function MatInput_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"focus\", function MatInput_focus_HostBindingHandler() {\n return ctx._focusChanged(true);\n })(\"blur\", function MatInput_blur_HostBindingHandler() {\n return ctx._focusChanged(false);\n })(\"input\", function MatInput_input_HostBindingHandler() {\n return ctx._onInput();\n });\n }\n if (rf & 2) {\n i0.ɵɵhostProperty(\"id\", ctx.id)(\"disabled\", ctx.disabled)(\"required\", ctx.required);\n i0.ɵɵattribute(\"name\", ctx.name || null)(\"readonly\", ctx.readonly && !ctx._isNativeSelect || null)(\"aria-invalid\", ctx.empty && ctx.required ? null : ctx.errorState)(\"aria-required\", ctx.required)(\"id\", ctx.id);\n i0.ɵɵclassProp(\"mat-input-server\", ctx._isServer)(\"mat-mdc-form-field-textarea-control\", ctx._isInFormField && ctx._isTextarea)(\"mat-mdc-form-field-input-control\", ctx._isInFormField)(\"mdc-text-field__input\", ctx._isInFormField)(\"mat-mdc-native-select-inline\", ctx._isInlineSelect());\n }\n },\n inputs: {\n disabled: \"disabled\",\n id: \"id\",\n placeholder: \"placeholder\",\n name: \"name\",\n required: \"required\",\n type: \"type\",\n errorStateMatcher: \"errorStateMatcher\",\n userAriaDescribedBy: [0, \"aria-describedby\", \"userAriaDescribedBy\"],\n value: \"value\",\n readonly: \"readonly\"\n },\n exportAs: [\"matInput\"],\n features: [i0.ɵɵProvidersFeature([{\n provide: MatFormFieldControl,\n useExisting: MatInput\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatInput, [{\n type: Directive,\n args: [{\n selector: `input[matInput], textarea[matInput], select[matNativeControl],\n input[matNativeControl], textarea[matNativeControl]`,\n exportAs: 'matInput',\n host: {\n 'class': 'mat-mdc-input-element',\n // The BaseMatInput parent class adds `mat-input-element`, `mat-form-field-control` and\n // `mat-form-field-autofill-control` to the CSS class list, but this should not be added for\n // this MDC equivalent input.\n '[class.mat-input-server]': '_isServer',\n '[class.mat-mdc-form-field-textarea-control]': '_isInFormField && _isTextarea',\n '[class.mat-mdc-form-field-input-control]': '_isInFormField',\n '[class.mdc-text-field__input]': '_isInFormField',\n '[class.mat-mdc-native-select-inline]': '_isInlineSelect()',\n // Native input properties that are overwritten by Angular inputs need to be synced with\n // the native input element. Otherwise property bindings for those don't work.\n '[id]': 'id',\n '[disabled]': 'disabled',\n '[required]': 'required',\n '[attr.name]': 'name || null',\n '[attr.readonly]': 'readonly && !_isNativeSelect || null',\n // Only mark the input as invalid for assistive technology if it has a value since the\n // state usually overlaps with `aria-required` when the input is empty and can be redundant.\n '[attr.aria-invalid]': '(empty && required) ? null : errorState',\n '[attr.aria-required]': 'required',\n // Native input properties that are overwritten by Angular inputs need to be synced with\n // the native input element. Otherwise property bindings for those don't work.\n '[attr.id]': 'id',\n '(focus)': '_focusChanged(true)',\n '(blur)': '_focusChanged(false)',\n '(input)': '_onInput()'\n },\n providers: [{\n provide: MatFormFieldControl,\n useExisting: MatInput\n }]\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i1.Platform\n }, {\n type: i2.NgControl,\n decorators: [{\n type: Optional\n }, {\n type: Self\n }]\n }, {\n type: i2.NgForm,\n decorators: [{\n type: Optional\n }]\n }, {\n type: i2.FormGroupDirective,\n decorators: [{\n type: Optional\n }]\n }, {\n type: i3.ErrorStateMatcher\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Self\n }, {\n type: Inject,\n args: [MAT_INPUT_VALUE_ACCESSOR]\n }]\n }, {\n type: i4.AutofillMonitor\n }, {\n type: i0.NgZone\n }, {\n type: i5.MatFormField,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_FORM_FIELD]\n }]\n }];\n }, {\n disabled: [{\n type: Input\n }],\n id: [{\n type: Input\n }],\n placeholder: [{\n type: Input\n }],\n name: [{\n type: Input\n }],\n required: [{\n type: Input\n }],\n type: [{\n type: Input\n }],\n errorStateMatcher: [{\n type: Input\n }],\n userAriaDescribedBy: [{\n type: Input,\n args: ['aria-describedby']\n }],\n value: [{\n type: Input\n }],\n readonly: [{\n type: Input\n }]\n });\n})();\nclass MatInputModule {\n static {\n this.ɵfac = function MatInputModule_Factory(ɵt) {\n return new (ɵt || MatInputModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatInputModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [MatCommonModule, MatFormFieldModule, MatFormFieldModule, TextFieldModule, MatCommonModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatInputModule, [{\n type: NgModule,\n args: [{\n imports: [MatCommonModule, MatFormFieldModule],\n exports: [MatInput, MatFormFieldModule, TextFieldModule, MatCommonModule],\n declarations: [MatInput]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_INPUT_VALUE_ACCESSOR, MatInput, MatInputModule, getMatInputUnsupportedTypeError };\n","import * as i0 from '@angular/core';\nimport { inject, Directive, NgModule } from '@angular/core';\nimport { MatInput } from '@angular/material/input';\nexport { MAT_INPUT_VALUE_ACCESSOR as MAT_LEGACY_INPUT_VALUE_ACCESSOR, getMatInputUnsupportedTypeError as getMatLegacyInputUnsupportedTypeError } from '@angular/material/input';\nimport { MAT_LEGACY_FORM_FIELD, MatLegacyFormFieldControl, MatLegacyFormFieldModule } from '@angular/material/legacy-form-field';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport { MatCommonModule, ErrorStateMatcher } from '@angular/material/core';\n\n/**\n * Directive that allows a native input to work inside a `MatFormField`.\n * @deprecated Use `MatInput` from `@angular/material/input` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyInput extends MatInput {\n constructor() {\n super(...arguments);\n this._legacyFormField = inject(MAT_LEGACY_FORM_FIELD, {\n optional: true\n });\n }\n _getPlaceholder() {\n // If we're hiding the native placeholder, it should also be cleared from the DOM, otherwise\n // screen readers will read it out twice: once from the label and once from the attribute.\n // TODO: can be removed once we get rid of the `legacy` style for the form field, because it's\n // the only one that supports promoting the placeholder to a label.\n const formField = this._legacyFormField;\n return formField && formField.appearance === 'legacy' && !formField._hasLabel?.() ? null : this.placeholder;\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatLegacyInput_BaseFactory;\n return function MatLegacyInput_Factory(ɵt) {\n return (ɵMatLegacyInput_BaseFactory || (ɵMatLegacyInput_BaseFactory = i0.ɵɵgetInheritedFactory(MatLegacyInput)))(ɵt || MatLegacyInput);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyInput,\n selectors: [[\"input\", \"matInput\", \"\"], [\"textarea\", \"matInput\", \"\"], [\"select\", \"matNativeControl\", \"\"], [\"input\", \"matNativeControl\", \"\"], [\"textarea\", \"matNativeControl\", \"\"]],\n hostAttrs: [1, \"mat-input-element\", \"mat-form-field-autofill-control\"],\n hostVars: 15,\n hostBindings: function MatLegacyInput_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"data-placeholder\", ctx.placeholder);\n i0.ɵɵclassProp(\"mat-input-server\", ctx._isServer)(\"mat-mdc-input-element\", false)(\"mat-mdc-form-field-textarea-control\", false)(\"mat-mdc-form-field-input-control\", false)(\"mdc-text-field__input\", false)(\"mat-mdc-native-select-inline\", false)(\"mat-native-select-inline\", ctx._isInlineSelect());\n }\n },\n exportAs: [\"matInput\"],\n features: [i0.ɵɵProvidersFeature([{\n provide: MatLegacyFormFieldControl,\n useExisting: MatLegacyInput\n }]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyInput, [{\n type: Directive,\n args: [{\n selector: `input[matInput], textarea[matInput], select[matNativeControl],\n input[matNativeControl], textarea[matNativeControl]`,\n exportAs: 'matInput',\n host: {\n /**\n * @breaking-change 8.0.0 remove .mat-form-field-autofill-control in favor of AutofillMonitor.\n */\n 'class': 'mat-input-element mat-form-field-autofill-control',\n '[class.mat-input-server]': '_isServer',\n // These classes are inherited from the base input class and need to be cleared.\n '[class.mat-mdc-input-element]': 'false',\n '[class.mat-mdc-form-field-textarea-control]': 'false',\n '[class.mat-mdc-form-field-input-control]': 'false',\n '[class.mdc-text-field__input]': 'false',\n '[class.mat-mdc-native-select-inline]': 'false',\n // At the time of writing, we have a lot of customer tests that look up the input based on its\n // placeholder. Since we sometimes omit the placeholder attribute from the DOM to prevent screen\n // readers from reading it twice, we have to keep it somewhere in the DOM for the lookup.\n '[attr.data-placeholder]': 'placeholder',\n '[class.mat-native-select-inline]': '_isInlineSelect()'\n },\n providers: [{\n provide: MatLegacyFormFieldControl,\n useExisting: MatLegacyInput\n }]\n }]\n }], null, null);\n})();\n\n/**\n * @deprecated Use `MatInputModule` from `@angular/material/input` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyInputModule {\n static {\n this.ɵfac = function MatLegacyInputModule_Factory(ɵt) {\n return new (ɵt || MatLegacyInputModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatLegacyInputModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [ErrorStateMatcher],\n imports: [TextFieldModule, MatLegacyFormFieldModule, MatCommonModule, TextFieldModule,\n // We re-export the `MatLegacyFormFieldModule` since `MatLegacyInput` will almost always\n // be used together with `MatLegacyFormField`.\n MatLegacyFormFieldModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyInputModule, [{\n type: NgModule,\n args: [{\n declarations: [MatLegacyInput],\n imports: [TextFieldModule, MatLegacyFormFieldModule, MatCommonModule],\n exports: [TextFieldModule,\n // We re-export the `MatLegacyFormFieldModule` since `MatLegacyInput` will almost always\n // be used together with `MatLegacyFormField`.\n MatLegacyFormFieldModule, MatLegacyInput],\n providers: [ErrorStateMatcher]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MatLegacyInput, MatLegacyInputModule };\n","import * as i8 from '@angular/cdk/overlay';\nimport { Overlay, CdkConnectedOverlay, CdkOverlayOrigin, OverlayModule } from '@angular/cdk/overlay';\nimport * as i7 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, EventEmitter, Directive, Optional, Inject, Self, Attribute, Input, ViewChild, Output, Component, ViewEncapsulation, ChangeDetectionStrategy, ContentChildren, ContentChild, NgModule } from '@angular/core';\nimport * as i2 from '@angular/material/core';\nimport { mixinDisableRipple, mixinTabIndex, mixinDisabled, mixinErrorState, _countGroupLabelsBeforeOption, _getOptionScrollPosition, MAT_OPTION_PARENT_COMPONENT, MatOption, MAT_OPTGROUP, MatOptionModule, MatCommonModule } from '@angular/material/core';\nimport * as i6 from '@angular/material/form-field';\nimport { MAT_FORM_FIELD, MatFormFieldControl, MatFormFieldModule } from '@angular/material/form-field';\nimport * as i1 from '@angular/cdk/scrolling';\nimport { CdkScrollableModule } from '@angular/cdk/scrolling';\nimport * as i5 from '@angular/cdk/a11y';\nimport { removeAriaReferencedId, addAriaReferencedId, ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport * as i3 from '@angular/cdk/bidi';\nimport { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { DOWN_ARROW, UP_ARROW, LEFT_ARROW, RIGHT_ARROW, ENTER, SPACE, hasModifierKey, A } from '@angular/cdk/keycodes';\nimport * as i4 from '@angular/forms';\nimport { Validators } from '@angular/forms';\nimport { Subject, defer, merge } from 'rxjs';\nimport { startWith, switchMap, take, filter, map, distinctUntilChanged, takeUntil } from 'rxjs/operators';\nimport { trigger, transition, query, animateChild, state, style, animate } from '@angular/animations';\n\n/**\n * The following are all the animations for the mat-select component, with each\n * const containing the metadata for one animation.\n *\n * The values below match the implementation of the AngularJS Material mat-select animation.\n * @docs-private\n */\nconst _c0 = [\"trigger\"];\nconst _c1 = [\"panel\"];\nconst _c2 = [[[\"mat-select-trigger\"]], \"*\"];\nconst _c3 = [\"mat-select-trigger\", \"*\"];\nfunction MatSelect_span_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 11);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r1.placeholder);\n }\n}\nfunction MatSelect_span_5_span_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 15);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r1.triggerValue);\n }\n}\nfunction MatSelect_span_5_ng_content_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojection(0, 0, [\"*ngSwitchCase\", \"true\"]);\n }\n}\nfunction MatSelect_span_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 12);\n i0.ɵɵtemplate(1, MatSelect_span_5_span_1_Template, 2, 1, \"span\", 13)(2, MatSelect_span_5_ng_content_2_Template, 1, 0, \"ng-content\", 14);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngSwitch\", !!ctx_r1.customTrigger);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngSwitchCase\", true);\n }\n}\nfunction MatSelect_ng_template_10_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 16, 1);\n i0.ɵɵlistener(\"@transformPanel.done\", function MatSelect_ng_template_10_Template_div_animation_transformPanel_done_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1._panelDoneAnimatingStream.next($event.toState));\n })(\"keydown\", function MatSelect_ng_template_10_Template_div_keydown_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1._handleKeydown($event));\n });\n i0.ɵɵprojection(2, 1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵclassMapInterpolate1(\"mat-mdc-select-panel mdc-menu-surface mdc-menu-surface--open \", ctx_r1._getPanelTheme(), \"\");\n i0.ɵɵproperty(\"ngClass\", ctx_r1.panelClass)(\"@transformPanel\", \"showing\");\n i0.ɵɵattribute(\"id\", ctx_r1.id + \"-panel\")(\"aria-multiselectable\", ctx_r1.multiple)(\"aria-label\", ctx_r1.ariaLabel || null)(\"aria-labelledby\", ctx_r1._getPanelAriaLabelledby());\n }\n}\nconst matSelectAnimations = {\n /**\n * This animation ensures the select's overlay panel animation (transformPanel) is called when\n * closing the select.\n * This is needed due to https://github.com/angular/angular/issues/23302\n */\n transformPanelWrap: trigger('transformPanelWrap', [transition('* => void', query('@transformPanel', [animateChild()], {\n optional: true\n }))]),\n /** This animation transforms the select's overlay panel on and off the page. */\n transformPanel: trigger('transformPanel', [state('void', style({\n opacity: 0,\n transform: 'scale(1, 0.8)'\n })), transition('void => showing', animate('120ms cubic-bezier(0, 0, 0.2, 1)', style({\n opacity: 1,\n transform: 'scale(1, 1)'\n }))), transition('* => void', animate('100ms linear', style({\n opacity: 0\n })))])\n};\n\n// Note that these have been copied over verbatim from\n// `material/select` so that we don't have to expose them publicly.\n/**\n * Returns an exception to be thrown when attempting to change a select's `multiple` option\n * after initialization.\n * @docs-private\n */\nfunction getMatSelectDynamicMultipleError() {\n return Error('Cannot change `multiple` mode of select after initialization.');\n}\n/**\n * Returns an exception to be thrown when attempting to assign a non-array value to a select\n * in `multiple` mode. Note that `undefined` and `null` are still valid values to allow for\n * resetting the value.\n * @docs-private\n */\nfunction getMatSelectNonArrayValueError() {\n return Error('Value must be an array in multiple-selection mode.');\n}\n/**\n * Returns an exception to be thrown when assigning a non-function value to the comparator\n * used to determine if a value corresponds to an option. Note that whether the function\n * actually takes two values and returns a boolean is not checked.\n */\nfunction getMatSelectNonFunctionValueError() {\n return Error('`compareWith` must be a function.');\n}\nlet nextUniqueId = 0;\n/** Injection token that determines the scroll handling while a select is open. */\nconst MAT_SELECT_SCROLL_STRATEGY = new InjectionToken('mat-select-scroll-strategy');\n/** @docs-private */\nfunction MAT_SELECT_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay) {\n return () => overlay.scrollStrategies.reposition();\n}\n/** Injection token that can be used to provide the default options the select module. */\nconst MAT_SELECT_CONFIG = new InjectionToken('MAT_SELECT_CONFIG');\n/** @docs-private */\nconst MAT_SELECT_SCROLL_STRATEGY_PROVIDER = {\n provide: MAT_SELECT_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: MAT_SELECT_SCROLL_STRATEGY_PROVIDER_FACTORY\n};\n/**\n * Injection token that can be used to reference instances of `MatSelectTrigger`. It serves as\n * alternative token to the actual `MatSelectTrigger` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nconst MAT_SELECT_TRIGGER = new InjectionToken('MatSelectTrigger');\n/** Change event object that is emitted when the select value has changed. */\nclass MatSelectChange {\n constructor( /** Reference to the select that emitted the change event. */\n source, /** Current value of the select that emitted the event. */\n value) {\n this.source = source;\n this.value = value;\n }\n}\n// Boilerplate for applying mixins to MatSelect.\n/** @docs-private */\nconst _MatSelectMixinBase = mixinDisableRipple(mixinTabIndex(mixinDisabled(mixinErrorState(class {\n constructor(_elementRef, _defaultErrorStateMatcher, _parentForm, _parentFormGroup,\n /**\n * Form control bound to the component.\n * Implemented as part of `MatFormFieldControl`.\n * @docs-private\n */\n ngControl) {\n this._elementRef = _elementRef;\n this._defaultErrorStateMatcher = _defaultErrorStateMatcher;\n this._parentForm = _parentForm;\n this._parentFormGroup = _parentFormGroup;\n this.ngControl = ngControl;\n /**\n * Emits whenever the component state changes and should cause the parent\n * form-field to update. Implemented as part of `MatFormFieldControl`.\n * @docs-private\n */\n this.stateChanges = new Subject();\n }\n}))));\n/** Base class with all of the `MatSelect` functionality. */\nclass _MatSelectBase extends _MatSelectMixinBase {\n /** Whether the select is focused. */\n get focused() {\n return this._focused || this._panelOpen;\n }\n /** Placeholder to be shown if no value has been selected. */\n get placeholder() {\n return this._placeholder;\n }\n set placeholder(value) {\n this._placeholder = value;\n this.stateChanges.next();\n }\n /** Whether the component is required. */\n get required() {\n return this._required ?? this.ngControl?.control?.hasValidator(Validators.required) ?? false;\n }\n set required(value) {\n this._required = coerceBooleanProperty(value);\n this.stateChanges.next();\n }\n /** Whether the user should be allowed to select multiple options. */\n get multiple() {\n return this._multiple;\n }\n set multiple(value) {\n if (this._selectionModel && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getMatSelectDynamicMultipleError();\n }\n this._multiple = coerceBooleanProperty(value);\n }\n /** Whether to center the active option over the trigger. */\n get disableOptionCentering() {\n return this._disableOptionCentering;\n }\n set disableOptionCentering(value) {\n this._disableOptionCentering = coerceBooleanProperty(value);\n }\n /**\n * Function to compare the option values with the selected values. The first argument\n * is a value from an option. The second is a value from the selection. A boolean\n * should be returned.\n */\n get compareWith() {\n return this._compareWith;\n }\n set compareWith(fn) {\n if (typeof fn !== 'function' && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getMatSelectNonFunctionValueError();\n }\n this._compareWith = fn;\n if (this._selectionModel) {\n // A different comparator means the selection could change.\n this._initializeSelection();\n }\n }\n /** Value of the select control. */\n get value() {\n return this._value;\n }\n set value(newValue) {\n const hasAssigned = this._assignValue(newValue);\n if (hasAssigned) {\n this._onChange(newValue);\n }\n }\n /** Time to wait in milliseconds after the last keystroke before moving focus to an item. */\n get typeaheadDebounceInterval() {\n return this._typeaheadDebounceInterval;\n }\n set typeaheadDebounceInterval(value) {\n this._typeaheadDebounceInterval = coerceNumberProperty(value);\n }\n /** Unique id of the element. */\n get id() {\n return this._id;\n }\n set id(value) {\n this._id = value || this._uid;\n this.stateChanges.next();\n }\n constructor(_viewportRuler, _changeDetectorRef, _ngZone, _defaultErrorStateMatcher, elementRef, _dir, _parentForm, _parentFormGroup, _parentFormField, ngControl, tabIndex, scrollStrategyFactory, _liveAnnouncer, _defaultOptions) {\n super(elementRef, _defaultErrorStateMatcher, _parentForm, _parentFormGroup, ngControl);\n this._viewportRuler = _viewportRuler;\n this._changeDetectorRef = _changeDetectorRef;\n this._ngZone = _ngZone;\n this._dir = _dir;\n this._parentFormField = _parentFormField;\n this._liveAnnouncer = _liveAnnouncer;\n this._defaultOptions = _defaultOptions;\n /** Whether or not the overlay panel is open. */\n this._panelOpen = false;\n /** Comparison function to specify which option is displayed. Defaults to object equality. */\n this._compareWith = (o1, o2) => o1 === o2;\n /** Unique id for this input. */\n this._uid = `mat-select-${nextUniqueId++}`;\n /** Current `aria-labelledby` value for the select trigger. */\n this._triggerAriaLabelledBy = null;\n /** Emits whenever the component is destroyed. */\n this._destroy = new Subject();\n /** `View -> model callback called when value changes` */\n this._onChange = () => {};\n /** `View -> model callback called when select has been touched` */\n this._onTouched = () => {};\n /** ID for the DOM node containing the select's value. */\n this._valueId = `mat-select-value-${nextUniqueId++}`;\n /** Emits when the panel element is finished transforming in. */\n this._panelDoneAnimatingStream = new Subject();\n this._overlayPanelClass = this._defaultOptions?.overlayPanelClass || '';\n this._focused = false;\n /** A name for this control that can be used by `mat-form-field`. */\n this.controlType = 'mat-select';\n this._multiple = false;\n this._disableOptionCentering = this._defaultOptions?.disableOptionCentering ?? false;\n /** Aria label of the select. */\n this.ariaLabel = '';\n /** Combined stream of all of the child options' change events. */\n this.optionSelectionChanges = defer(() => {\n const options = this.options;\n if (options) {\n return options.changes.pipe(startWith(options), switchMap(() => merge(...options.map(option => option.onSelectionChange))));\n }\n return this._ngZone.onStable.pipe(take(1), switchMap(() => this.optionSelectionChanges));\n });\n /** Event emitted when the select panel has been toggled. */\n this.openedChange = new EventEmitter();\n /** Event emitted when the select has been opened. */\n this._openedStream = this.openedChange.pipe(filter(o => o), map(() => {}));\n /** Event emitted when the select has been closed. */\n this._closedStream = this.openedChange.pipe(filter(o => !o), map(() => {}));\n /** Event emitted when the selected value has been changed by the user. */\n this.selectionChange = new EventEmitter();\n /**\n * Event that emits whenever the raw value of the select changes. This is here primarily\n * to facilitate the two-way binding for the `value` input.\n * @docs-private\n */\n this.valueChange = new EventEmitter();\n /**\n * Track which modal we have modified the `aria-owns` attribute of. When the combobox trigger is\n * inside an aria-modal, we apply aria-owns to the parent modal with the `id` of the options\n * panel. Track the modal we have changed so we can undo the changes on destroy.\n */\n this._trackedModal = null;\n if (this.ngControl) {\n // Note: we provide the value accessor through here, instead of\n // the `providers` to avoid running into a circular import.\n this.ngControl.valueAccessor = this;\n }\n // Note that we only want to set this when the defaults pass it in, otherwise it should\n // stay as `undefined` so that it falls back to the default in the key manager.\n if (_defaultOptions?.typeaheadDebounceInterval != null) {\n this._typeaheadDebounceInterval = _defaultOptions.typeaheadDebounceInterval;\n }\n this._scrollStrategyFactory = scrollStrategyFactory;\n this._scrollStrategy = this._scrollStrategyFactory();\n this.tabIndex = parseInt(tabIndex) || 0;\n // Force setter to be called in case id was not specified.\n this.id = this.id;\n }\n ngOnInit() {\n this._selectionModel = new SelectionModel(this.multiple);\n this.stateChanges.next();\n // We need `distinctUntilChanged` here, because some browsers will\n // fire the animation end event twice for the same animation. See:\n // https://github.com/angular/angular/issues/24084\n this._panelDoneAnimatingStream.pipe(distinctUntilChanged(), takeUntil(this._destroy)).subscribe(() => this._panelDoneAnimating(this.panelOpen));\n }\n ngAfterContentInit() {\n this._initKeyManager();\n this._selectionModel.changed.pipe(takeUntil(this._destroy)).subscribe(event => {\n event.added.forEach(option => option.select());\n event.removed.forEach(option => option.deselect());\n });\n this.options.changes.pipe(startWith(null), takeUntil(this._destroy)).subscribe(() => {\n this._resetOptions();\n this._initializeSelection();\n });\n }\n ngDoCheck() {\n const newAriaLabelledby = this._getTriggerAriaLabelledby();\n const ngControl = this.ngControl;\n // We have to manage setting the `aria-labelledby` ourselves, because part of its value\n // is computed as a result of a content query which can cause this binding to trigger a\n // \"changed after checked\" error.\n if (newAriaLabelledby !== this._triggerAriaLabelledBy) {\n const element = this._elementRef.nativeElement;\n this._triggerAriaLabelledBy = newAriaLabelledby;\n if (newAriaLabelledby) {\n element.setAttribute('aria-labelledby', newAriaLabelledby);\n } else {\n element.removeAttribute('aria-labelledby');\n }\n }\n if (ngControl) {\n // The disabled state might go out of sync if the form group is swapped out. See #17860.\n if (this._previousControl !== ngControl.control) {\n if (this._previousControl !== undefined && ngControl.disabled !== null && ngControl.disabled !== this.disabled) {\n this.disabled = ngControl.disabled;\n }\n this._previousControl = ngControl.control;\n }\n this.updateErrorState();\n }\n }\n ngOnChanges(changes) {\n // Updating the disabled state is handled by `mixinDisabled`, but we need to additionally let\n // the parent form field know to run change detection when the disabled state changes.\n if (changes['disabled'] || changes['userAriaDescribedBy']) {\n this.stateChanges.next();\n }\n if (changes['typeaheadDebounceInterval'] && this._keyManager) {\n this._keyManager.withTypeAhead(this._typeaheadDebounceInterval);\n }\n }\n ngOnDestroy() {\n this._keyManager?.destroy();\n this._destroy.next();\n this._destroy.complete();\n this.stateChanges.complete();\n this._clearFromModal();\n }\n /** Toggles the overlay panel open or closed. */\n toggle() {\n this.panelOpen ? this.close() : this.open();\n }\n /** Opens the overlay panel. */\n open() {\n if (this._canOpen()) {\n this._applyModalPanelOwnership();\n this._panelOpen = true;\n this._keyManager.withHorizontalOrientation(null);\n this._highlightCorrectOption();\n this._changeDetectorRef.markForCheck();\n }\n }\n /**\n * If the autocomplete trigger is inside of an `aria-modal` element, connect\n * that modal to the options panel with `aria-owns`.\n *\n * For some browser + screen reader combinations, when navigation is inside\n * of an `aria-modal` element, the screen reader treats everything outside\n * of that modal as hidden or invisible.\n *\n * This causes a problem when the combobox trigger is _inside_ of a modal, because the\n * options panel is rendered _outside_ of that modal, preventing screen reader navigation\n * from reaching the panel.\n *\n * We can work around this issue by applying `aria-owns` to the modal with the `id` of\n * the options panel. This effectively communicates to assistive technology that the\n * options panel is part of the same interaction as the modal.\n *\n * At time of this writing, this issue is present in VoiceOver.\n * See https://github.com/angular/components/issues/20694\n */\n _applyModalPanelOwnership() {\n // TODO(http://github.com/angular/components/issues/26853): consider de-duplicating this with\n // the `LiveAnnouncer` and any other usages.\n //\n // Note that the selector here is limited to CDK overlays at the moment in order to reduce the\n // section of the DOM we need to look through. This should cover all the cases we support, but\n // the selector can be expanded if it turns out to be too narrow.\n const modal = this._elementRef.nativeElement.closest('body > .cdk-overlay-container [aria-modal=\"true\"]');\n if (!modal) {\n // Most commonly, the autocomplete trigger is not inside a modal.\n return;\n }\n const panelId = `${this.id}-panel`;\n if (this._trackedModal) {\n removeAriaReferencedId(this._trackedModal, 'aria-owns', panelId);\n }\n addAriaReferencedId(modal, 'aria-owns', panelId);\n this._trackedModal = modal;\n }\n /** Clears the reference to the listbox overlay element from the modal it was added to. */\n _clearFromModal() {\n if (!this._trackedModal) {\n // Most commonly, the autocomplete trigger is not used inside a modal.\n return;\n }\n const panelId = `${this.id}-panel`;\n removeAriaReferencedId(this._trackedModal, 'aria-owns', panelId);\n this._trackedModal = null;\n }\n /** Closes the overlay panel and focuses the host element. */\n close() {\n if (this._panelOpen) {\n this._panelOpen = false;\n this._keyManager.withHorizontalOrientation(this._isRtl() ? 'rtl' : 'ltr');\n this._changeDetectorRef.markForCheck();\n this._onTouched();\n }\n }\n /**\n * Sets the select's value. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param value New value to be written to the model.\n */\n writeValue(value) {\n this._assignValue(value);\n }\n /**\n * Saves a callback function to be invoked when the select's value\n * changes from user input. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the value changes.\n */\n registerOnChange(fn) {\n this._onChange = fn;\n }\n /**\n * Saves a callback function to be invoked when the select is blurred\n * by the user. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the component has been touched.\n */\n registerOnTouched(fn) {\n this._onTouched = fn;\n }\n /**\n * Disables the select. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param isDisabled Sets whether the component is disabled.\n */\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n this._changeDetectorRef.markForCheck();\n this.stateChanges.next();\n }\n /** Whether or not the overlay panel is open. */\n get panelOpen() {\n return this._panelOpen;\n }\n /** The currently selected option. */\n get selected() {\n return this.multiple ? this._selectionModel?.selected || [] : this._selectionModel?.selected[0];\n }\n /** The value displayed in the trigger. */\n get triggerValue() {\n if (this.empty) {\n return '';\n }\n if (this._multiple) {\n const selectedOptions = this._selectionModel.selected.map(option => option.viewValue);\n if (this._isRtl()) {\n selectedOptions.reverse();\n }\n // TODO(crisbeto): delimiter should be configurable for proper localization.\n return selectedOptions.join(', ');\n }\n return this._selectionModel.selected[0].viewValue;\n }\n /** Whether the element is in RTL mode. */\n _isRtl() {\n return this._dir ? this._dir.value === 'rtl' : false;\n }\n /** Handles all keydown events on the select. */\n _handleKeydown(event) {\n if (!this.disabled) {\n this.panelOpen ? this._handleOpenKeydown(event) : this._handleClosedKeydown(event);\n }\n }\n /** Handles keyboard events while the select is closed. */\n _handleClosedKeydown(event) {\n const keyCode = event.keyCode;\n const isArrowKey = keyCode === DOWN_ARROW || keyCode === UP_ARROW || keyCode === LEFT_ARROW || keyCode === RIGHT_ARROW;\n const isOpenKey = keyCode === ENTER || keyCode === SPACE;\n const manager = this._keyManager;\n // Open the select on ALT + arrow key to match the native \n if (!manager.isTyping() && isOpenKey && !hasModifierKey(event) || (this.multiple || event.altKey) && isArrowKey) {\n event.preventDefault(); // prevents the page from scrolling down when pressing space\n this.open();\n } else if (!this.multiple) {\n const previouslySelectedOption = this.selected;\n manager.onKeydown(event);\n const selectedOption = this.selected;\n // Since the value has changed, we need to announce it ourselves.\n if (selectedOption && previouslySelectedOption !== selectedOption) {\n // We set a duration on the live announcement, because we want the live element to be\n // cleared after a while so that users can't navigate to it using the arrow keys.\n this._liveAnnouncer.announce(selectedOption.viewValue, 10000);\n }\n }\n }\n /** Handles keyboard events when the selected is open. */\n _handleOpenKeydown(event) {\n const manager = this._keyManager;\n const keyCode = event.keyCode;\n const isArrowKey = keyCode === DOWN_ARROW || keyCode === UP_ARROW;\n const isTyping = manager.isTyping();\n if (isArrowKey && event.altKey) {\n // Close the select on ALT + arrow key to match the native \n event.preventDefault();\n this.close();\n // Don't do anything in this case if the user is typing,\n // because the typing sequence can include the space key.\n } else if (!isTyping && (keyCode === ENTER || keyCode === SPACE) && manager.activeItem && !hasModifierKey(event)) {\n event.preventDefault();\n manager.activeItem._selectViaInteraction();\n } else if (!isTyping && this._multiple && keyCode === A && event.ctrlKey) {\n event.preventDefault();\n const hasDeselectedOptions = this.options.some(opt => !opt.disabled && !opt.selected);\n this.options.forEach(option => {\n if (!option.disabled) {\n hasDeselectedOptions ? option.select() : option.deselect();\n }\n });\n } else {\n const previouslyFocusedIndex = manager.activeItemIndex;\n manager.onKeydown(event);\n if (this._multiple && isArrowKey && event.shiftKey && manager.activeItem && manager.activeItemIndex !== previouslyFocusedIndex) {\n manager.activeItem._selectViaInteraction();\n }\n }\n }\n _onFocus() {\n if (!this.disabled) {\n this._focused = true;\n this.stateChanges.next();\n }\n }\n /**\n * Calls the touched callback only if the panel is closed. Otherwise, the trigger will\n * \"blur\" to the panel when it opens, causing a false positive.\n */\n _onBlur() {\n this._focused = false;\n this._keyManager?.cancelTypeahead();\n if (!this.disabled && !this.panelOpen) {\n this._onTouched();\n this._changeDetectorRef.markForCheck();\n this.stateChanges.next();\n }\n }\n /**\n * Callback that is invoked when the overlay panel has been attached.\n */\n _onAttached() {\n this._overlayDir.positionChange.pipe(take(1)).subscribe(() => {\n this._changeDetectorRef.detectChanges();\n this._positioningSettled();\n });\n }\n /** Returns the theme to be used on the panel. */\n _getPanelTheme() {\n return this._parentFormField ? `mat-${this._parentFormField.color}` : '';\n }\n /** Whether the select has a value. */\n get empty() {\n return !this._selectionModel || this._selectionModel.isEmpty();\n }\n _initializeSelection() {\n // Defer setting the value in order to avoid the \"Expression\n // has changed after it was checked\" errors from Angular.\n Promise.resolve().then(() => {\n if (this.ngControl) {\n this._value = this.ngControl.value;\n }\n this._setSelectionByValue(this._value);\n this.stateChanges.next();\n });\n }\n /**\n * Sets the selected option based on a value. If no option can be\n * found with the designated value, the select trigger is cleared.\n */\n _setSelectionByValue(value) {\n this.options.forEach(option => option.setInactiveStyles());\n this._selectionModel.clear();\n if (this.multiple && value) {\n if (!Array.isArray(value) && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getMatSelectNonArrayValueError();\n }\n value.forEach(currentValue => this._selectOptionByValue(currentValue));\n this._sortValues();\n } else {\n const correspondingOption = this._selectOptionByValue(value);\n // Shift focus to the active item. Note that we shouldn't do this in multiple\n // mode, because we don't know what option the user interacted with last.\n if (correspondingOption) {\n this._keyManager.updateActiveItem(correspondingOption);\n } else if (!this.panelOpen) {\n // Otherwise reset the highlighted option. Note that we only want to do this while\n // closed, because doing it while open can shift the user's focus unnecessarily.\n this._keyManager.updateActiveItem(-1);\n }\n }\n this._changeDetectorRef.markForCheck();\n }\n /**\n * Finds and selects and option based on its value.\n * @returns Option that has the corresponding value.\n */\n _selectOptionByValue(value) {\n const correspondingOption = this.options.find(option => {\n // Skip options that are already in the model. This allows us to handle cases\n // where the same primitive value is selected multiple times.\n if (this._selectionModel.isSelected(option)) {\n return false;\n }\n try {\n // Treat null as a special reset value.\n return option.value != null && this._compareWith(option.value, value);\n } catch (error) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n // Notify developers of errors in their comparator.\n console.warn(error);\n }\n return false;\n }\n });\n if (correspondingOption) {\n this._selectionModel.select(correspondingOption);\n }\n return correspondingOption;\n }\n /** Assigns a specific value to the select. Returns whether the value has changed. */\n _assignValue(newValue) {\n // Always re-assign an array, because it might have been mutated.\n if (newValue !== this._value || this._multiple && Array.isArray(newValue)) {\n if (this.options) {\n this._setSelectionByValue(newValue);\n }\n this._value = newValue;\n return true;\n }\n return false;\n }\n _skipPredicate(item) {\n return item.disabled;\n }\n /** Sets up a key manager to listen to keyboard events on the overlay panel. */\n _initKeyManager() {\n this._keyManager = new ActiveDescendantKeyManager(this.options).withTypeAhead(this._typeaheadDebounceInterval).withVerticalOrientation().withHorizontalOrientation(this._isRtl() ? 'rtl' : 'ltr').withHomeAndEnd().withPageUpDown().withAllowedModifierKeys(['shiftKey']).skipPredicate(this._skipPredicate);\n this._keyManager.tabOut.subscribe(() => {\n if (this.panelOpen) {\n // Select the active item when tabbing away. This is consistent with how the native\n // select behaves. Note that we only want to do this in single selection mode.\n if (!this.multiple && this._keyManager.activeItem) {\n this._keyManager.activeItem._selectViaInteraction();\n }\n // Restore focus to the trigger before closing. Ensures that the focus\n // position won't be lost if the user got focus into the overlay.\n this.focus();\n this.close();\n }\n });\n this._keyManager.change.subscribe(() => {\n if (this._panelOpen && this.panel) {\n this._scrollOptionIntoView(this._keyManager.activeItemIndex || 0);\n } else if (!this._panelOpen && !this.multiple && this._keyManager.activeItem) {\n this._keyManager.activeItem._selectViaInteraction();\n }\n });\n }\n /** Drops current option subscriptions and IDs and resets from scratch. */\n _resetOptions() {\n const changedOrDestroyed = merge(this.options.changes, this._destroy);\n this.optionSelectionChanges.pipe(takeUntil(changedOrDestroyed)).subscribe(event => {\n this._onSelect(event.source, event.isUserInput);\n if (event.isUserInput && !this.multiple && this._panelOpen) {\n this.close();\n this.focus();\n }\n });\n // Listen to changes in the internal state of the options and react accordingly.\n // Handles cases like the labels of the selected options changing.\n merge(...this.options.map(option => option._stateChanges)).pipe(takeUntil(changedOrDestroyed)).subscribe(() => {\n // `_stateChanges` can fire as a result of a change in the label's DOM value which may\n // be the result of an expression changing. We have to use `detectChanges` in order\n // to avoid \"changed after checked\" errors (see #14793).\n this._changeDetectorRef.detectChanges();\n this.stateChanges.next();\n });\n }\n /** Invoked when an option is clicked. */\n _onSelect(option, isUserInput) {\n const wasSelected = this._selectionModel.isSelected(option);\n if (option.value == null && !this._multiple) {\n option.deselect();\n this._selectionModel.clear();\n if (this.value != null) {\n this._propagateChanges(option.value);\n }\n } else {\n if (wasSelected !== option.selected) {\n option.selected ? this._selectionModel.select(option) : this._selectionModel.deselect(option);\n }\n if (isUserInput) {\n this._keyManager.setActiveItem(option);\n }\n if (this.multiple) {\n this._sortValues();\n if (isUserInput) {\n // In case the user selected the option with their mouse, we\n // want to restore focus back to the trigger, in order to\n // prevent the select keyboard controls from clashing with\n // the ones from `mat-option`.\n this.focus();\n }\n }\n }\n if (wasSelected !== this._selectionModel.isSelected(option)) {\n this._propagateChanges();\n }\n this.stateChanges.next();\n }\n /** Sorts the selected values in the selected based on their order in the panel. */\n _sortValues() {\n if (this.multiple) {\n const options = this.options.toArray();\n this._selectionModel.sort((a, b) => {\n return this.sortComparator ? this.sortComparator(a, b, options) : options.indexOf(a) - options.indexOf(b);\n });\n this.stateChanges.next();\n }\n }\n /** Emits change event to set the model value. */\n _propagateChanges(fallbackValue) {\n let valueToEmit = null;\n if (this.multiple) {\n valueToEmit = this.selected.map(option => option.value);\n } else {\n valueToEmit = this.selected ? this.selected.value : fallbackValue;\n }\n this._value = valueToEmit;\n this.valueChange.emit(valueToEmit);\n this._onChange(valueToEmit);\n this.selectionChange.emit(this._getChangeEvent(valueToEmit));\n this._changeDetectorRef.markForCheck();\n }\n /**\n * Highlights the selected item. If no option is selected, it will highlight\n * the first *enabled* option.\n */\n _highlightCorrectOption() {\n if (this._keyManager) {\n if (this.empty) {\n // Find the index of the first *enabled* option. Avoid calling `_keyManager.setActiveItem`\n // because it activates the first option that passes the skip predicate, rather than the\n // first *enabled* option.\n let firstEnabledOptionIndex = -1;\n for (let index = 0; index < this.options.length; index++) {\n const option = this.options.get(index);\n if (!option.disabled) {\n firstEnabledOptionIndex = index;\n break;\n }\n }\n this._keyManager.setActiveItem(firstEnabledOptionIndex);\n } else {\n this._keyManager.setActiveItem(this._selectionModel.selected[0]);\n }\n }\n }\n /** Whether the panel is allowed to open. */\n _canOpen() {\n return !this._panelOpen && !this.disabled && this.options?.length > 0;\n }\n /** Focuses the select element. */\n focus(options) {\n this._elementRef.nativeElement.focus(options);\n }\n /** Gets the aria-labelledby for the select panel. */\n _getPanelAriaLabelledby() {\n if (this.ariaLabel) {\n return null;\n }\n const labelId = this._parentFormField?.getLabelId();\n const labelExpression = labelId ? labelId + ' ' : '';\n return this.ariaLabelledby ? labelExpression + this.ariaLabelledby : labelId;\n }\n /** Determines the `aria-activedescendant` to be set on the host. */\n _getAriaActiveDescendant() {\n if (this.panelOpen && this._keyManager && this._keyManager.activeItem) {\n return this._keyManager.activeItem.id;\n }\n return null;\n }\n /** Gets the aria-labelledby of the select component trigger. */\n _getTriggerAriaLabelledby() {\n if (this.ariaLabel) {\n return null;\n }\n const labelId = this._parentFormField?.getLabelId();\n let value = (labelId ? labelId + ' ' : '') + this._valueId;\n if (this.ariaLabelledby) {\n value += ' ' + this.ariaLabelledby;\n }\n return value;\n }\n /** Called when the overlay panel is done animating. */\n _panelDoneAnimating(isOpen) {\n this.openedChange.emit(isOpen);\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n setDescribedByIds(ids) {\n if (ids.length) {\n this._elementRef.nativeElement.setAttribute('aria-describedby', ids.join(' '));\n } else {\n this._elementRef.nativeElement.removeAttribute('aria-describedby');\n }\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n onContainerClick() {\n this.focus();\n this.open();\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get shouldLabelFloat() {\n return this._panelOpen || !this.empty || this._focused && !!this._placeholder;\n }\n static {\n this.ɵfac = function _MatSelectBase_Factory(ɵt) {\n return new (ɵt || _MatSelectBase)(i0.ɵɵdirectiveInject(i1.ViewportRuler), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i2.ErrorStateMatcher), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i3.Directionality, 8), i0.ɵɵdirectiveInject(i4.NgForm, 8), i0.ɵɵdirectiveInject(i4.FormGroupDirective, 8), i0.ɵɵdirectiveInject(MAT_FORM_FIELD, 8), i0.ɵɵdirectiveInject(i4.NgControl, 10), i0.ɵɵinjectAttribute('tabindex'), i0.ɵɵdirectiveInject(MAT_SELECT_SCROLL_STRATEGY), i0.ɵɵdirectiveInject(i5.LiveAnnouncer), i0.ɵɵdirectiveInject(MAT_SELECT_CONFIG, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: _MatSelectBase,\n viewQuery: function _MatSelectBase_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 5);\n i0.ɵɵviewQuery(_c1, 5);\n i0.ɵɵviewQuery(CdkConnectedOverlay, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.trigger = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.panel = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._overlayDir = _t.first);\n }\n },\n inputs: {\n userAriaDescribedBy: [0, \"aria-describedby\", \"userAriaDescribedBy\"],\n panelClass: \"panelClass\",\n placeholder: \"placeholder\",\n required: \"required\",\n multiple: \"multiple\",\n disableOptionCentering: \"disableOptionCentering\",\n compareWith: \"compareWith\",\n value: \"value\",\n ariaLabel: [0, \"aria-label\", \"ariaLabel\"],\n ariaLabelledby: [0, \"aria-labelledby\", \"ariaLabelledby\"],\n errorStateMatcher: \"errorStateMatcher\",\n typeaheadDebounceInterval: \"typeaheadDebounceInterval\",\n sortComparator: \"sortComparator\",\n id: \"id\"\n },\n outputs: {\n openedChange: \"openedChange\",\n _openedStream: \"opened\",\n _closedStream: \"closed\",\n selectionChange: \"selectionChange\",\n valueChange: \"valueChange\"\n },\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(_MatSelectBase, [{\n type: Directive\n }], function () {\n return [{\n type: i1.ViewportRuler\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: i0.NgZone\n }, {\n type: i2.ErrorStateMatcher\n }, {\n type: i0.ElementRef\n }, {\n type: i3.Directionality,\n decorators: [{\n type: Optional\n }]\n }, {\n type: i4.NgForm,\n decorators: [{\n type: Optional\n }]\n }, {\n type: i4.FormGroupDirective,\n decorators: [{\n type: Optional\n }]\n }, {\n type: i6.MatFormField,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_FORM_FIELD]\n }]\n }, {\n type: i4.NgControl,\n decorators: [{\n type: Self\n }, {\n type: Optional\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Attribute,\n args: ['tabindex']\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [MAT_SELECT_SCROLL_STRATEGY]\n }]\n }, {\n type: i5.LiveAnnouncer\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_SELECT_CONFIG]\n }]\n }];\n }, {\n userAriaDescribedBy: [{\n type: Input,\n args: ['aria-describedby']\n }],\n trigger: [{\n type: ViewChild,\n args: ['trigger']\n }],\n panel: [{\n type: ViewChild,\n args: ['panel']\n }],\n _overlayDir: [{\n type: ViewChild,\n args: [CdkConnectedOverlay]\n }],\n panelClass: [{\n type: Input\n }],\n placeholder: [{\n type: Input\n }],\n required: [{\n type: Input\n }],\n multiple: [{\n type: Input\n }],\n disableOptionCentering: [{\n type: Input\n }],\n compareWith: [{\n type: Input\n }],\n value: [{\n type: Input\n }],\n ariaLabel: [{\n type: Input,\n args: ['aria-label']\n }],\n ariaLabelledby: [{\n type: Input,\n args: ['aria-labelledby']\n }],\n errorStateMatcher: [{\n type: Input\n }],\n typeaheadDebounceInterval: [{\n type: Input\n }],\n sortComparator: [{\n type: Input\n }],\n id: [{\n type: Input\n }],\n openedChange: [{\n type: Output\n }],\n _openedStream: [{\n type: Output,\n args: ['opened']\n }],\n _closedStream: [{\n type: Output,\n args: ['closed']\n }],\n selectionChange: [{\n type: Output\n }],\n valueChange: [{\n type: Output\n }]\n });\n})();\n/**\n * Allows the user to customize the trigger that is displayed when the select has a value.\n */\nclass MatSelectTrigger {\n static {\n this.ɵfac = function MatSelectTrigger_Factory(ɵt) {\n return new (ɵt || MatSelectTrigger)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatSelectTrigger,\n selectors: [[\"mat-select-trigger\"]],\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_SELECT_TRIGGER,\n useExisting: MatSelectTrigger\n }])]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatSelectTrigger, [{\n type: Directive,\n args: [{\n selector: 'mat-select-trigger',\n providers: [{\n provide: MAT_SELECT_TRIGGER,\n useExisting: MatSelectTrigger\n }]\n }]\n }], null, null);\n})();\nclass MatSelect extends _MatSelectBase {\n constructor() {\n super(...arguments);\n /**\n * Width of the panel. If set to `auto`, the panel will match the trigger width.\n * If set to null or an empty string, the panel will grow to match the longest option's text.\n */\n this.panelWidth = this._defaultOptions && typeof this._defaultOptions.panelWidth !== 'undefined' ? this._defaultOptions.panelWidth : 'auto';\n this._positions = [{\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top'\n }, {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top'\n }, {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n panelClass: 'mat-mdc-select-panel-above'\n }, {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n panelClass: 'mat-mdc-select-panel-above'\n }];\n this._hideSingleSelectionIndicator = this._defaultOptions?.hideSingleSelectionIndicator ?? false;\n // `skipPredicate` determines if key manager should avoid putting a given option in the tab\n // order. Allow disabled list items to receive focus via keyboard to align with WAI ARIA\n // recommendation.\n //\n // Normally WAI ARIA's instructions are to exclude disabled items from the tab order, but it\n // makes a few exceptions for compound widgets.\n //\n // From [Developing a Keyboard Interface](\n // https://www.w3.org/WAI/ARIA/apg/practices/keyboard-interface/):\n // \"For the following composite widget elements, keep them focusable when disabled: Options in a\n // Listbox...\"\n //\n // The user can focus disabled options using the keyboard, but the user cannot click disabled\n // options.\n this._skipPredicate = option => {\n if (this.panelOpen) {\n // Support keyboard focusing disabled options in an ARIA listbox.\n return false;\n }\n // When the panel is closed, skip over disabled options. Support options via the UP/DOWN arrow\n // keys on a closed select. ARIA listbox interaction pattern is less relevant when the panel is\n // closed.\n return option.disabled;\n };\n }\n get shouldLabelFloat() {\n // Since the panel doesn't overlap the trigger, we\n // want the label to only float when there's a value.\n return this.panelOpen || !this.empty || this.focused && !!this.placeholder;\n }\n ngOnInit() {\n super.ngOnInit();\n this._viewportRuler.change().pipe(takeUntil(this._destroy)).subscribe(() => {\n if (this.panelOpen) {\n this._overlayWidth = this._getOverlayWidth(this._preferredOverlayOrigin);\n this._changeDetectorRef.detectChanges();\n }\n });\n }\n open() {\n // It's important that we read this as late as possible, because doing so earlier will\n // return a different element since it's based on queries in the form field which may\n // not have run yet. Also this needs to be assigned before we measure the overlay width.\n if (this._parentFormField) {\n this._preferredOverlayOrigin = this._parentFormField.getConnectedOverlayOrigin();\n }\n this._overlayWidth = this._getOverlayWidth(this._preferredOverlayOrigin);\n super.open();\n // Required for the MDC form field to pick up when the overlay has been opened.\n this.stateChanges.next();\n }\n close() {\n super.close();\n // Required for the MDC form field to pick up when the overlay has been closed.\n this.stateChanges.next();\n }\n /** Scrolls the active option into view. */\n _scrollOptionIntoView(index) {\n const option = this.options.toArray()[index];\n if (option) {\n const panel = this.panel.nativeElement;\n const labelCount = _countGroupLabelsBeforeOption(index, this.options, this.optionGroups);\n const element = option._getHostElement();\n if (index === 0 && labelCount === 1) {\n // If we've got one group label before the option and we're at the top option,\n // scroll the list to the top. This is better UX than scrolling the list to the\n // top of the option, because it allows the user to read the top group's label.\n panel.scrollTop = 0;\n } else {\n panel.scrollTop = _getOptionScrollPosition(element.offsetTop, element.offsetHeight, panel.scrollTop, panel.offsetHeight);\n }\n }\n }\n _positioningSettled() {\n this._scrollOptionIntoView(this._keyManager.activeItemIndex || 0);\n }\n _getChangeEvent(value) {\n return new MatSelectChange(this, value);\n }\n /** Gets how wide the overlay panel should be. */\n _getOverlayWidth(preferredOrigin) {\n if (this.panelWidth === 'auto') {\n const refToMeasure = preferredOrigin instanceof CdkOverlayOrigin ? preferredOrigin.elementRef : preferredOrigin || this._elementRef;\n return refToMeasure.nativeElement.getBoundingClientRect().width;\n }\n return this.panelWidth === null ? '' : this.panelWidth;\n }\n /** Whether checkmark indicator for single-selection options is hidden. */\n get hideSingleSelectionIndicator() {\n return this._hideSingleSelectionIndicator;\n }\n set hideSingleSelectionIndicator(value) {\n this._hideSingleSelectionIndicator = coerceBooleanProperty(value);\n this._syncParentProperties();\n }\n /** Syncs the parent state with the individual options. */\n _syncParentProperties() {\n if (this.options) {\n for (const option of this.options) {\n option._changeDetectorRef.markForCheck();\n }\n }\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatSelect_BaseFactory;\n return function MatSelect_Factory(ɵt) {\n return (ɵMatSelect_BaseFactory || (ɵMatSelect_BaseFactory = i0.ɵɵgetInheritedFactory(MatSelect)))(ɵt || MatSelect);\n };\n })();\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatSelect,\n selectors: [[\"mat-select\"]],\n contentQueries: function MatSelect_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MAT_SELECT_TRIGGER, 5);\n i0.ɵɵcontentQuery(dirIndex, MatOption, 5);\n i0.ɵɵcontentQuery(dirIndex, MAT_OPTGROUP, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.customTrigger = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.options = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.optionGroups = _t);\n }\n },\n hostAttrs: [\"role\", \"combobox\", \"aria-autocomplete\", \"none\", \"aria-haspopup\", \"listbox\", \"ngSkipHydration\", \"\", 1, \"mat-mdc-select\"],\n hostVars: 19,\n hostBindings: function MatSelect_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"keydown\", function MatSelect_keydown_HostBindingHandler($event) {\n return ctx._handleKeydown($event);\n })(\"focus\", function MatSelect_focus_HostBindingHandler() {\n return ctx._onFocus();\n })(\"blur\", function MatSelect_blur_HostBindingHandler() {\n return ctx._onBlur();\n });\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"id\", ctx.id)(\"tabindex\", ctx.tabIndex)(\"aria-controls\", ctx.panelOpen ? ctx.id + \"-panel\" : null)(\"aria-expanded\", ctx.panelOpen)(\"aria-label\", ctx.ariaLabel || null)(\"aria-required\", ctx.required.toString())(\"aria-disabled\", ctx.disabled.toString())(\"aria-invalid\", ctx.errorState)(\"aria-activedescendant\", ctx._getAriaActiveDescendant());\n i0.ɵɵclassProp(\"mat-mdc-select-disabled\", ctx.disabled)(\"mat-mdc-select-invalid\", ctx.errorState)(\"mat-mdc-select-required\", ctx.required)(\"mat-mdc-select-empty\", ctx.empty)(\"mat-mdc-select-multiple\", ctx.multiple);\n }\n },\n inputs: {\n disabled: \"disabled\",\n disableRipple: \"disableRipple\",\n tabIndex: \"tabIndex\",\n panelWidth: \"panelWidth\",\n hideSingleSelectionIndicator: \"hideSingleSelectionIndicator\"\n },\n exportAs: [\"matSelect\"],\n features: [i0.ɵɵProvidersFeature([{\n provide: MatFormFieldControl,\n useExisting: MatSelect\n }, {\n provide: MAT_OPTION_PARENT_COMPONENT,\n useExisting: MatSelect\n }]), i0.ɵɵInheritDefinitionFeature],\n ngContentSelectors: _c3,\n decls: 11,\n vars: 10,\n consts: [[\"fallbackOverlayOrigin\", \"cdkOverlayOrigin\", \"trigger\", \"\"], [\"panel\", \"\"], [\"cdk-overlay-origin\", \"\", 1, \"mat-mdc-select-trigger\", 3, \"click\"], [1, \"mat-mdc-select-value\", 3, \"ngSwitch\"], [\"class\", \"mat-mdc-select-placeholder mat-mdc-select-min-line\", 4, \"ngSwitchCase\"], [\"class\", \"mat-mdc-select-value-text\", 3, \"ngSwitch\", 4, \"ngSwitchCase\"], [1, \"mat-mdc-select-arrow-wrapper\"], [1, \"mat-mdc-select-arrow\"], [\"viewBox\", \"0 0 24 24\", \"width\", \"24px\", \"height\", \"24px\", \"focusable\", \"false\", \"aria-hidden\", \"true\"], [\"d\", \"M7 10l5 5 5-5z\"], [\"cdk-connected-overlay\", \"\", \"cdkConnectedOverlayLockPosition\", \"\", \"cdkConnectedOverlayHasBackdrop\", \"\", \"cdkConnectedOverlayBackdropClass\", \"cdk-overlay-transparent-backdrop\", 3, \"backdropClick\", \"attach\", \"detach\", \"cdkConnectedOverlayPanelClass\", \"cdkConnectedOverlayScrollStrategy\", \"cdkConnectedOverlayOrigin\", \"cdkConnectedOverlayOpen\", \"cdkConnectedOverlayPositions\", \"cdkConnectedOverlayWidth\"], [1, \"mat-mdc-select-placeholder\", \"mat-mdc-select-min-line\"], [1, \"mat-mdc-select-value-text\", 3, \"ngSwitch\"], [\"class\", \"mat-mdc-select-min-line\", 4, \"ngSwitchDefault\"], [4, \"ngSwitchCase\"], [1, \"mat-mdc-select-min-line\"], [\"role\", \"listbox\", \"tabindex\", \"-1\", 3, \"keydown\", \"ngClass\"]],\n template: function MatSelect_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵprojectionDef(_c2);\n i0.ɵɵelementStart(0, \"div\", 2, 0);\n i0.ɵɵlistener(\"click\", function MatSelect_Template_div_click_0_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.toggle());\n });\n i0.ɵɵelementStart(3, \"div\", 3);\n i0.ɵɵtemplate(4, MatSelect_span_4_Template, 2, 1, \"span\", 4)(5, MatSelect_span_5_Template, 3, 2, \"span\", 5);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(6, \"div\", 6)(7, \"div\", 7);\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(8, \"svg\", 8);\n i0.ɵɵelement(9, \"path\", 9);\n i0.ɵɵelementEnd()()()();\n i0.ɵɵtemplate(10, MatSelect_ng_template_10_Template, 3, 9, \"ng-template\", 10);\n i0.ɵɵlistener(\"backdropClick\", function MatSelect_Template_ng_template_backdropClick_10_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.close());\n })(\"attach\", function MatSelect_Template_ng_template_attach_10_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._onAttached());\n })(\"detach\", function MatSelect_Template_ng_template_detach_10_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.close());\n });\n }\n if (rf & 2) {\n const fallbackOverlayOrigin_r4 = i0.ɵɵreference(1);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngSwitch\", ctx.empty);\n i0.ɵɵattribute(\"id\", ctx._valueId);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngSwitchCase\", true);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngSwitchCase\", false);\n i0.ɵɵadvance(5);\n i0.ɵɵproperty(\"cdkConnectedOverlayPanelClass\", ctx._overlayPanelClass)(\"cdkConnectedOverlayScrollStrategy\", ctx._scrollStrategy)(\"cdkConnectedOverlayOrigin\", ctx._preferredOverlayOrigin || fallbackOverlayOrigin_r4)(\"cdkConnectedOverlayOpen\", ctx.panelOpen)(\"cdkConnectedOverlayPositions\", ctx._positions)(\"cdkConnectedOverlayWidth\", ctx._overlayWidth);\n }\n },\n dependencies: [i7.NgClass, i7.NgSwitch, i7.NgSwitchCase, i7.NgSwitchDefault, i8.CdkConnectedOverlay, i8.CdkOverlayOrigin],\n styles: [\".mat-mdc-select{display:inline-block;width:100%;outline:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:var(--mat-select-enabled-trigger-text-color);font-family:var(--mat-select-trigger-text-font);line-height:var(--mat-select-trigger-text-line-height);font-size:var(--mat-select-trigger-text-size);font-weight:var(--mat-select-trigger-text-weight);letter-spacing:var(--mat-select-trigger-text-tracking)}.mat-mdc-select-disabled{color:var(--mat-select-disabled-trigger-text-color)}.mat-mdc-select-trigger{display:inline-flex;align-items:center;cursor:pointer;position:relative;box-sizing:border-box;width:100%}.mat-mdc-select-disabled .mat-mdc-select-trigger{-webkit-user-select:none;user-select:none;cursor:default}.mat-mdc-select-value{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-mdc-select-value-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-mdc-select-arrow-wrapper{height:24px;flex-shrink:0;display:inline-flex;align-items:center}.mat-form-field-appearance-fill .mat-mdc-select-arrow-wrapper{transform:translateY(-8px)}.mat-form-field-appearance-fill .mdc-text-field--no-label .mat-mdc-select-arrow-wrapper{transform:none}.mat-mdc-select-arrow{width:10px;height:5px;position:relative;color:var(--mat-select-enabled-arrow-color)}.mat-mdc-form-field.mat-focused .mat-mdc-select-arrow{color:var(--mat-select-focused-arrow-color)}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-invalid .mat-mdc-select-arrow{color:var(--mat-select-invalid-arrow-color)}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-disabled .mat-mdc-select-arrow{color:var(--mat-select-disabled-arrow-color)}.mat-mdc-select-arrow svg{fill:currentColor;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.cdk-high-contrast-active .mat-mdc-select-arrow svg{fill:CanvasText}.mat-mdc-select-disabled .cdk-high-contrast-active .mat-mdc-select-arrow svg{fill:GrayText}div.mat-mdc-select-panel{box-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);width:100%;max-height:275px;outline:0;overflow:auto;padding:8px 0;border-radius:4px;box-sizing:border-box;position:static;background-color:var(--mat-select-panel-background-color)}.cdk-high-contrast-active div.mat-mdc-select-panel{outline:solid 1px}.cdk-overlay-pane:not(.mat-mdc-select-panel-above) div.mat-mdc-select-panel{border-top-left-radius:0;border-top-right-radius:0;transform-origin:top center}.mat-mdc-select-panel-above div.mat-mdc-select-panel{border-bottom-left-radius:0;border-bottom-right-radius:0;transform-origin:bottom center}.mat-mdc-select-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1);color:var(--mat-select-placeholder-text-color)}._mat-animation-noopable .mat-mdc-select-placeholder{transition:none}.mat-form-field-hide-placeholder .mat-mdc-select-placeholder{color:rgba(0,0,0,0);-webkit-text-fill-color:rgba(0,0,0,0);transition:none;display:block}.mat-mdc-form-field-type-mat-select:not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper{cursor:pointer}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mat-mdc-floating-label{max-width:calc(100% - 18px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mdc-floating-label--float-above{max-width:calc(100% / 0.75 - 24px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-text-field--label-floating .mdc-notched-outline__notch{max-width:calc(100% - 24px)}.mat-mdc-select-min-line:empty::before{content:\\\" \\\";white-space:pre;width:1px;display:inline-block;visibility:hidden}\"],\n encapsulation: 2,\n data: {\n animation: [matSelectAnimations.transformPanel]\n },\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatSelect, [{\n type: Component,\n args: [{\n selector: 'mat-select',\n exportAs: 'matSelect',\n inputs: ['disabled', 'disableRipple', 'tabIndex'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'role': 'combobox',\n 'aria-autocomplete': 'none',\n 'aria-haspopup': 'listbox',\n 'class': 'mat-mdc-select',\n '[attr.id]': 'id',\n '[attr.tabindex]': 'tabIndex',\n '[attr.aria-controls]': 'panelOpen ? id + \"-panel\" : null',\n '[attr.aria-expanded]': 'panelOpen',\n '[attr.aria-label]': 'ariaLabel || null',\n '[attr.aria-required]': 'required.toString()',\n '[attr.aria-disabled]': 'disabled.toString()',\n '[attr.aria-invalid]': 'errorState',\n '[attr.aria-activedescendant]': '_getAriaActiveDescendant()',\n 'ngSkipHydration': '',\n '[class.mat-mdc-select-disabled]': 'disabled',\n '[class.mat-mdc-select-invalid]': 'errorState',\n '[class.mat-mdc-select-required]': 'required',\n '[class.mat-mdc-select-empty]': 'empty',\n '[class.mat-mdc-select-multiple]': 'multiple',\n '(keydown)': '_handleKeydown($event)',\n '(focus)': '_onFocus()',\n '(blur)': '_onBlur()'\n },\n animations: [matSelectAnimations.transformPanel],\n providers: [{\n provide: MatFormFieldControl,\n useExisting: MatSelect\n }, {\n provide: MAT_OPTION_PARENT_COMPONENT,\n useExisting: MatSelect\n }],\n template: \"\\n \\n {{placeholder}}\\n \\n {{triggerValue}}\\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n\\n\\n\\n \\n \\n \\n\\n\",\n styles: [\".mat-mdc-select{display:inline-block;width:100%;outline:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:var(--mat-select-enabled-trigger-text-color);font-family:var(--mat-select-trigger-text-font);line-height:var(--mat-select-trigger-text-line-height);font-size:var(--mat-select-trigger-text-size);font-weight:var(--mat-select-trigger-text-weight);letter-spacing:var(--mat-select-trigger-text-tracking)}.mat-mdc-select-disabled{color:var(--mat-select-disabled-trigger-text-color)}.mat-mdc-select-trigger{display:inline-flex;align-items:center;cursor:pointer;position:relative;box-sizing:border-box;width:100%}.mat-mdc-select-disabled .mat-mdc-select-trigger{-webkit-user-select:none;user-select:none;cursor:default}.mat-mdc-select-value{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-mdc-select-value-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-mdc-select-arrow-wrapper{height:24px;flex-shrink:0;display:inline-flex;align-items:center}.mat-form-field-appearance-fill .mat-mdc-select-arrow-wrapper{transform:translateY(-8px)}.mat-form-field-appearance-fill .mdc-text-field--no-label .mat-mdc-select-arrow-wrapper{transform:none}.mat-mdc-select-arrow{width:10px;height:5px;position:relative;color:var(--mat-select-enabled-arrow-color)}.mat-mdc-form-field.mat-focused .mat-mdc-select-arrow{color:var(--mat-select-focused-arrow-color)}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-invalid .mat-mdc-select-arrow{color:var(--mat-select-invalid-arrow-color)}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-disabled .mat-mdc-select-arrow{color:var(--mat-select-disabled-arrow-color)}.mat-mdc-select-arrow svg{fill:currentColor;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.cdk-high-contrast-active .mat-mdc-select-arrow svg{fill:CanvasText}.mat-mdc-select-disabled .cdk-high-contrast-active .mat-mdc-select-arrow svg{fill:GrayText}div.mat-mdc-select-panel{box-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);width:100%;max-height:275px;outline:0;overflow:auto;padding:8px 0;border-radius:4px;box-sizing:border-box;position:static;background-color:var(--mat-select-panel-background-color)}.cdk-high-contrast-active div.mat-mdc-select-panel{outline:solid 1px}.cdk-overlay-pane:not(.mat-mdc-select-panel-above) div.mat-mdc-select-panel{border-top-left-radius:0;border-top-right-radius:0;transform-origin:top center}.mat-mdc-select-panel-above div.mat-mdc-select-panel{border-bottom-left-radius:0;border-bottom-right-radius:0;transform-origin:bottom center}.mat-mdc-select-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1);color:var(--mat-select-placeholder-text-color)}._mat-animation-noopable .mat-mdc-select-placeholder{transition:none}.mat-form-field-hide-placeholder .mat-mdc-select-placeholder{color:rgba(0,0,0,0);-webkit-text-fill-color:rgba(0,0,0,0);transition:none;display:block}.mat-mdc-form-field-type-mat-select:not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper{cursor:pointer}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mat-mdc-floating-label{max-width:calc(100% - 18px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mdc-floating-label--float-above{max-width:calc(100% / 0.75 - 24px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-text-field--label-floating .mdc-notched-outline__notch{max-width:calc(100% - 24px)}.mat-mdc-select-min-line:empty::before{content:\\\" \\\";white-space:pre;width:1px;display:inline-block;visibility:hidden}\"]\n }]\n }], null, {\n options: [{\n type: ContentChildren,\n args: [MatOption, {\n descendants: true\n }]\n }],\n optionGroups: [{\n type: ContentChildren,\n args: [MAT_OPTGROUP, {\n descendants: true\n }]\n }],\n customTrigger: [{\n type: ContentChild,\n args: [MAT_SELECT_TRIGGER]\n }],\n panelWidth: [{\n type: Input\n }],\n hideSingleSelectionIndicator: [{\n type: Input\n }]\n });\n})();\nclass MatSelectModule {\n static {\n this.ɵfac = function MatSelectModule_Factory(ɵt) {\n return new (ɵt || MatSelectModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatSelectModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [MAT_SELECT_SCROLL_STRATEGY_PROVIDER],\n imports: [CommonModule, OverlayModule, MatOptionModule, MatCommonModule, CdkScrollableModule, MatFormFieldModule, MatOptionModule, MatCommonModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatSelectModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule, OverlayModule, MatOptionModule, MatCommonModule],\n exports: [CdkScrollableModule, MatFormFieldModule, MatSelect, MatSelectTrigger, MatOptionModule, MatCommonModule],\n declarations: [MatSelect, MatSelectTrigger],\n providers: [MAT_SELECT_SCROLL_STRATEGY_PROVIDER]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_SELECT_CONFIG, MAT_SELECT_SCROLL_STRATEGY, MAT_SELECT_SCROLL_STRATEGY_PROVIDER, MAT_SELECT_SCROLL_STRATEGY_PROVIDER_FACTORY, MAT_SELECT_TRIGGER, MatSelect, MatSelectChange, MatSelectModule, MatSelectTrigger, _MatSelectBase, matSelectAnimations };\n","import * as i2 from '@angular/cdk/overlay';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Directive, Component, ViewEncapsulation, ChangeDetectionStrategy, ContentChildren, ContentChild, NgModule } from '@angular/core';\nimport { MatCommonModule } from '@angular/material/core';\nimport { _countGroupLabelsBeforeLegacyOption, _getLegacyOptionScrollPosition, MAT_LEGACY_OPTION_PARENT_COMPONENT, MatLegacyOption, MAT_LEGACY_OPTGROUP, MatLegacyOptionModule } from '@angular/material/legacy-core';\nimport { MatLegacyFormFieldControl, MatLegacyFormFieldModule } from '@angular/material/legacy-form-field';\nimport { CdkScrollableModule } from '@angular/cdk/scrolling';\nimport { MAT_SELECT_TRIGGER, _MatSelectBase, MAT_SELECT_SCROLL_STRATEGY_PROVIDER } from '@angular/material/select';\nconst _c0 = [[[\"mat-select-trigger\"]], \"*\"];\nconst _c1 = [\"mat-select-trigger\", \"*\"];\nfunction MatLegacySelect_span_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 9);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r1.placeholder);\n }\n}\nfunction MatLegacySelect_span_5_span_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 13);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r1.triggerValue);\n }\n}\nfunction MatLegacySelect_span_5_ng_content_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojection(0, 0, [\"*ngSwitchCase\", \"true\"]);\n }\n}\nfunction MatLegacySelect_span_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 10);\n i0.ɵɵtemplate(1, MatLegacySelect_span_5_span_1_Template, 2, 1, \"span\", 11)(2, MatLegacySelect_span_5_ng_content_2_Template, 1, 0, \"ng-content\", 12);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngSwitch\", !!ctx_r1.customTrigger);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngSwitchCase\", true);\n }\n}\nfunction MatLegacySelect_ng_template_8_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 14)(1, \"div\", 15, 1);\n i0.ɵɵlistener(\"@transformPanel.done\", function MatLegacySelect_ng_template_8_Template_div_animation_transformPanel_done_1_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1._panelDoneAnimatingStream.next($event.toState));\n })(\"keydown\", function MatLegacySelect_ng_template_8_Template_div_keydown_1_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1._handleKeydown($event));\n });\n i0.ɵɵprojection(3, 1);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"@transformPanelWrap\", undefined);\n i0.ɵɵadvance();\n i0.ɵɵclassMapInterpolate1(\"mat-select-panel \", ctx_r1._getPanelTheme(), \"\");\n i0.ɵɵstyleProp(\"transform-origin\", ctx_r1._transformOrigin)(\"font-size\", ctx_r1._triggerFontSize, \"px\");\n i0.ɵɵproperty(\"ngClass\", ctx_r1.panelClass)(\"@transformPanel\", ctx_r1.multiple ? \"showing-multiple\" : \"showing\");\n i0.ɵɵattribute(\"id\", ctx_r1.id + \"-panel\")(\"aria-multiselectable\", ctx_r1.multiple)(\"aria-label\", ctx_r1.ariaLabel || null)(\"aria-labelledby\", ctx_r1._getPanelAriaLabelledby());\n }\n}\nexport { MAT_SELECT_CONFIG as MAT_LEGACY_SELECT_CONFIG, MAT_SELECT_SCROLL_STRATEGY as MAT_LEGACY_SELECT_SCROLL_STRATEGY, MAT_SELECT_SCROLL_STRATEGY_PROVIDER as MAT_LEGACY_SELECT_SCROLL_STRATEGY_PROVIDER, MAT_SELECT_SCROLL_STRATEGY_PROVIDER_FACTORY as MAT_LEGACY_SELECT_SCROLL_STRATEGY_PROVIDER_FACTORY, MAT_SELECT_TRIGGER as MAT_LEGACY_SELECT_TRIGGER } from '@angular/material/select';\nimport { takeUntil, take } from 'rxjs/operators';\nimport { trigger, transition, query, animateChild, state, style, animate } from '@angular/animations';\n\n/**\n * The following are all the animations for the mat-select component, with each\n * const containing the metadata for one animation.\n *\n * The values below match the implementation of the AngularJS Material mat-select animation.\n * @docs-private\n * @deprecated Use `matSelectAnimations` from `@angular/material/select` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nconst matLegacySelectAnimations = {\n /**\n * This animation ensures the select's overlay panel animation (transformPanel) is called when\n * closing the select.\n * This is needed due to https://github.com/angular/angular/issues/23302\n */\n transformPanelWrap: trigger('transformPanelWrap', [transition('* => void', query('@transformPanel', [animateChild()], {\n optional: true\n }))]),\n /**\n * This animation transforms the select's overlay panel on and off the page.\n *\n * When the panel is attached to the DOM, it expands its width by the amount of padding, scales it\n * up to 100% on the Y axis, fades in its border, and translates slightly up and to the\n * side to ensure the option text correctly overlaps the trigger text.\n *\n * When the panel is removed from the DOM, it simply fades out linearly.\n */\n transformPanel: trigger('transformPanel', [state('void', style({\n transform: 'scaleY(0.8)',\n minWidth: '100%',\n opacity: 0\n })), state('showing', style({\n opacity: 1,\n minWidth: 'calc(100% + 32px)',\n transform: 'scaleY(1)'\n })), state('showing-multiple', style({\n opacity: 1,\n minWidth: 'calc(100% + 64px)',\n transform: 'scaleY(1)'\n })), transition('void => *', animate('120ms cubic-bezier(0, 0, 0.2, 1)')), transition('* => void', animate('100ms 25ms linear', style({\n opacity: 0\n })))])\n};\n\n/**\n * The following style constants are necessary to save here in order\n * to properly calculate the alignment of the selected option over\n * the trigger element.\n */\n/**\n * The max height of the select's overlay panel.\n * @deprecated Use `SELECT_PANEL_MAX_HEIGHT` from `@angular/material/select` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nconst SELECT_PANEL_MAX_HEIGHT = 256;\n/**\n * The panel's padding on the x-axis.\n * @deprecated Use `SELECT_PANEL_PADDING_X` from `@angular/material/select` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nconst SELECT_PANEL_PADDING_X = 16;\n/**\n * The panel's x axis padding if it is indented (e.g. there is an option group).\n * @deprecated Use `SELECT_PANEL_INDENT_PADDING_X` from `@angular/material/select` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nconst SELECT_PANEL_INDENT_PADDING_X = SELECT_PANEL_PADDING_X * 2;\n/**\n * The height of the select items in `em` units.\n * @deprecated Use `SELECT_ITEM_HEIGHT_EM` from `@angular/material/select` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nconst SELECT_ITEM_HEIGHT_EM = 3;\n// TODO(josephperrott): Revert to a constant after 2018 spec updates are fully merged.\n/**\n * Distance between the panel edge and the option text in\n * multi-selection mode.\n *\n * Calculated as:\n * (SELECT_PANEL_PADDING_X * 1.5) + 16 = 40\n * The padding is multiplied by 1.5 because the checkbox's margin is half the padding.\n * The checkbox width is 16px.\n *\n * @deprecated Use `SELECT_MULTIPLE_PANEL_PADDING_X` from `@angular/material/select` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nconst SELECT_MULTIPLE_PANEL_PADDING_X = SELECT_PANEL_PADDING_X * 1.5 + 16;\n/**\n * The select panel will only \"fit\" inside the viewport if it is positioned at\n * this value or more away from the viewport boundary.\n * @deprecated Use `SELECT_PANEL_VIEWPORT_PADDING` from `@angular/material/select` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nconst SELECT_PANEL_VIEWPORT_PADDING = 8;\n/**\n * Change event object that is emitted when the select value has changed.\n * @deprecated Use `MatSelectChange` from `@angular/material/select` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacySelectChange {\n constructor( /** Reference to the select that emitted the change event. */\n source, /** Current value of the select that emitted the event. */\n value) {\n this.source = source;\n this.value = value;\n }\n}\n/**\n * Allows the user to customize the trigger that is displayed when the select has a value.\n * @deprecated Use `MatSelectTrigger` from `@angular/material/select` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacySelectTrigger {\n static {\n this.ɵfac = function MatLegacySelectTrigger_Factory(ɵt) {\n return new (ɵt || MatLegacySelectTrigger)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacySelectTrigger,\n selectors: [[\"mat-select-trigger\"]],\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_SELECT_TRIGGER,\n useExisting: MatLegacySelectTrigger\n }])]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacySelectTrigger, [{\n type: Directive,\n args: [{\n selector: 'mat-select-trigger',\n providers: [{\n provide: MAT_SELECT_TRIGGER,\n useExisting: MatLegacySelectTrigger\n }]\n }]\n }], null, null);\n})();\n/**\n * @deprecated Use `MatSelect` from `@angular/material/select` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacySelect extends _MatSelectBase {\n constructor() {\n super(...arguments);\n /** The scroll position of the overlay panel, calculated to center the selected option. */\n this._scrollTop = 0;\n /** The cached font-size of the trigger element. */\n this._triggerFontSize = 0;\n /** The value of the select panel's transform-origin property. */\n this._transformOrigin = 'top';\n /**\n * The y-offset of the overlay panel in relation to the trigger's top start corner.\n * This must be adjusted to align the selected option text over the trigger text.\n * when the panel opens. Will change based on the y-position of the selected option.\n */\n this._offsetY = 0;\n this._positions = [{\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top'\n }, {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom'\n }];\n }\n /**\n * Calculates the scroll position of the select's overlay panel.\n *\n * Attempts to center the selected option in the panel. If the option is\n * too high or too low in the panel to be scrolled to the center, it clamps the\n * scroll position to the min or max scroll positions respectively.\n */\n _calculateOverlayScroll(selectedIndex, scrollBuffer, maxScroll) {\n const itemHeight = this._getItemHeight();\n const optionOffsetFromScrollTop = itemHeight * selectedIndex;\n const halfOptionHeight = itemHeight / 2;\n // Starts at the optionOffsetFromScrollTop, which scrolls the option to the top of the\n // scroll container, then subtracts the scroll buffer to scroll the option down to\n // the center of the overlay panel. Half the option height must be re-added to the\n // scrollTop so the option is centered based on its middle, not its top edge.\n const optimalScrollPosition = optionOffsetFromScrollTop - scrollBuffer + halfOptionHeight;\n return Math.min(Math.max(0, optimalScrollPosition), maxScroll);\n }\n ngOnInit() {\n super.ngOnInit();\n this._viewportRuler.change().pipe(takeUntil(this._destroy)).subscribe(() => {\n if (this.panelOpen) {\n this._triggerRect = this.trigger.nativeElement.getBoundingClientRect();\n this._changeDetectorRef.markForCheck();\n }\n });\n }\n open() {\n if (super._canOpen()) {\n super.open();\n this._triggerRect = this.trigger.nativeElement.getBoundingClientRect();\n // Note: The computed font-size will be a string pixel value (e.g. \"16px\").\n // `parseInt` ignores the trailing 'px' and converts this to a number.\n this._triggerFontSize = parseInt(getComputedStyle(this.trigger.nativeElement).fontSize || '0');\n this._calculateOverlayPosition();\n // Set the font size on the panel element once it exists.\n this._ngZone.onStable.pipe(take(1)).subscribe(() => {\n if (this._triggerFontSize && this._overlayDir.overlayRef && this._overlayDir.overlayRef.overlayElement) {\n this._overlayDir.overlayRef.overlayElement.style.fontSize = `${this._triggerFontSize}px`;\n }\n });\n }\n }\n /** Scrolls the active option into view. */\n _scrollOptionIntoView(index) {\n const labelCount = _countGroupLabelsBeforeLegacyOption(index, this.options, this.optionGroups);\n const itemHeight = this._getItemHeight();\n if (index === 0 && labelCount === 1) {\n // If we've got one group label before the option and we're at the top option,\n // scroll the list to the top. This is better UX than scrolling the list to the\n // top of the option, because it allows the user to read the top group's label.\n this.panel.nativeElement.scrollTop = 0;\n } else {\n this.panel.nativeElement.scrollTop = _getLegacyOptionScrollPosition((index + labelCount) * itemHeight, itemHeight, this.panel.nativeElement.scrollTop, SELECT_PANEL_MAX_HEIGHT);\n }\n }\n _positioningSettled() {\n this._calculateOverlayOffsetX();\n this.panel.nativeElement.scrollTop = this._scrollTop;\n }\n _panelDoneAnimating(isOpen) {\n if (this.panelOpen) {\n this._scrollTop = 0;\n } else {\n this._overlayDir.offsetX = 0;\n this._changeDetectorRef.markForCheck();\n }\n super._panelDoneAnimating(isOpen);\n }\n _getChangeEvent(value) {\n return new MatLegacySelectChange(this, value);\n }\n _getOverlayMinWidth() {\n return this._triggerRect?.width;\n }\n /**\n * Sets the x-offset of the overlay panel in relation to the trigger's top start corner.\n * This must be adjusted to align the selected option text over the trigger text when\n * the panel opens. Will change based on LTR or RTL text direction. Note that the offset\n * can't be calculated until the panel has been attached, because we need to know the\n * content width in order to constrain the panel within the viewport.\n */\n _calculateOverlayOffsetX() {\n const overlayRect = this._overlayDir.overlayRef.overlayElement.getBoundingClientRect();\n const viewportSize = this._viewportRuler.getViewportSize();\n const isRtl = this._isRtl();\n const paddingWidth = this.multiple ? SELECT_MULTIPLE_PANEL_PADDING_X + SELECT_PANEL_PADDING_X : SELECT_PANEL_PADDING_X * 2;\n let offsetX;\n // Adjust the offset, depending on the option padding.\n if (this.multiple) {\n offsetX = SELECT_MULTIPLE_PANEL_PADDING_X;\n } else if (this.disableOptionCentering) {\n offsetX = SELECT_PANEL_PADDING_X;\n } else {\n let selected = this._selectionModel.selected[0] || this.options.first;\n offsetX = selected && selected.group ? SELECT_PANEL_INDENT_PADDING_X : SELECT_PANEL_PADDING_X;\n }\n // Invert the offset in LTR.\n if (!isRtl) {\n offsetX *= -1;\n }\n // Determine how much the select overflows on each side.\n const leftOverflow = 0 - (overlayRect.left + offsetX - (isRtl ? paddingWidth : 0));\n const rightOverflow = overlayRect.right + offsetX - viewportSize.width + (isRtl ? 0 : paddingWidth);\n // If the element overflows on either side, reduce the offset to allow it to fit.\n if (leftOverflow > 0) {\n offsetX += leftOverflow + SELECT_PANEL_VIEWPORT_PADDING;\n } else if (rightOverflow > 0) {\n offsetX -= rightOverflow + SELECT_PANEL_VIEWPORT_PADDING;\n }\n // Set the offset directly in order to avoid having to go through change detection and\n // potentially triggering \"changed after it was checked\" errors. Round the value to avoid\n // blurry content in some browsers.\n this._overlayDir.offsetX = Math.round(offsetX);\n this._overlayDir.overlayRef.updatePosition();\n }\n /**\n * Calculates the y-offset of the select's overlay panel in relation to the\n * top start corner of the trigger. It has to be adjusted in order for the\n * selected option to be aligned over the trigger when the panel opens.\n */\n _calculateOverlayOffsetY(selectedIndex, scrollBuffer, maxScroll) {\n const itemHeight = this._getItemHeight();\n const optionHeightAdjustment = (itemHeight - this._triggerRect.height) / 2;\n const maxOptionsDisplayed = Math.floor(SELECT_PANEL_MAX_HEIGHT / itemHeight);\n let optionOffsetFromPanelTop;\n // Disable offset if requested by user by returning 0 as value to offset\n if (this.disableOptionCentering) {\n return 0;\n }\n if (this._scrollTop === 0) {\n optionOffsetFromPanelTop = selectedIndex * itemHeight;\n } else if (this._scrollTop === maxScroll) {\n const firstDisplayedIndex = this._getItemCount() - maxOptionsDisplayed;\n const selectedDisplayIndex = selectedIndex - firstDisplayedIndex;\n // The first item is partially out of the viewport. Therefore we need to calculate what\n // portion of it is shown in the viewport and account for it in our offset.\n let partialItemHeight = itemHeight - (this._getItemCount() * itemHeight - SELECT_PANEL_MAX_HEIGHT) % itemHeight;\n // Because the panel height is longer than the height of the options alone,\n // there is always extra padding at the top or bottom of the panel. When\n // scrolled to the very bottom, this padding is at the top of the panel and\n // must be added to the offset.\n optionOffsetFromPanelTop = selectedDisplayIndex * itemHeight + partialItemHeight;\n } else {\n // If the option was scrolled to the middle of the panel using a scroll buffer,\n // its offset will be the scroll buffer minus the half height that was added to\n // center it.\n optionOffsetFromPanelTop = scrollBuffer - itemHeight / 2;\n }\n // The final offset is the option's offset from the top, adjusted for the height difference,\n // multiplied by -1 to ensure that the overlay moves in the correct direction up the page.\n // The value is rounded to prevent some browsers from blurring the content.\n return Math.round(optionOffsetFromPanelTop * -1 - optionHeightAdjustment);\n }\n /**\n * Checks that the attempted overlay position will fit within the viewport.\n * If it will not fit, tries to adjust the scroll position and the associated\n * y-offset so the panel can open fully on-screen. If it still won't fit,\n * sets the offset back to 0 to allow the fallback position to take over.\n */\n _checkOverlayWithinViewport(maxScroll) {\n const itemHeight = this._getItemHeight();\n const viewportSize = this._viewportRuler.getViewportSize();\n const topSpaceAvailable = this._triggerRect.top - SELECT_PANEL_VIEWPORT_PADDING;\n const bottomSpaceAvailable = viewportSize.height - this._triggerRect.bottom - SELECT_PANEL_VIEWPORT_PADDING;\n const panelHeightTop = Math.abs(this._offsetY);\n const totalPanelHeight = Math.min(this._getItemCount() * itemHeight, SELECT_PANEL_MAX_HEIGHT);\n const panelHeightBottom = totalPanelHeight - panelHeightTop - this._triggerRect.height;\n if (panelHeightBottom > bottomSpaceAvailable) {\n this._adjustPanelUp(panelHeightBottom, bottomSpaceAvailable);\n } else if (panelHeightTop > topSpaceAvailable) {\n this._adjustPanelDown(panelHeightTop, topSpaceAvailable, maxScroll);\n } else {\n this._transformOrigin = this._getOriginBasedOnOption();\n }\n }\n /** Adjusts the overlay panel up to fit in the viewport. */\n _adjustPanelUp(panelHeightBottom, bottomSpaceAvailable) {\n // Browsers ignore fractional scroll offsets, so we need to round.\n const distanceBelowViewport = Math.round(panelHeightBottom - bottomSpaceAvailable);\n // Scrolls the panel up by the distance it was extending past the boundary, then\n // adjusts the offset by that amount to move the panel up into the viewport.\n this._scrollTop -= distanceBelowViewport;\n this._offsetY -= distanceBelowViewport;\n this._transformOrigin = this._getOriginBasedOnOption();\n // If the panel is scrolled to the very top, it won't be able to fit the panel\n // by scrolling, so set the offset to 0 to allow the fallback position to take\n // effect.\n if (this._scrollTop <= 0) {\n this._scrollTop = 0;\n this._offsetY = 0;\n this._transformOrigin = `50% bottom 0px`;\n }\n }\n /** Adjusts the overlay panel down to fit in the viewport. */\n _adjustPanelDown(panelHeightTop, topSpaceAvailable, maxScroll) {\n // Browsers ignore fractional scroll offsets, so we need to round.\n const distanceAboveViewport = Math.round(panelHeightTop - topSpaceAvailable);\n // Scrolls the panel down by the distance it was extending past the boundary, then\n // adjusts the offset by that amount to move the panel down into the viewport.\n this._scrollTop += distanceAboveViewport;\n this._offsetY += distanceAboveViewport;\n this._transformOrigin = this._getOriginBasedOnOption();\n // If the panel is scrolled to the very bottom, it won't be able to fit the\n // panel by scrolling, so set the offset to 0 to allow the fallback position\n // to take effect.\n if (this._scrollTop >= maxScroll) {\n this._scrollTop = maxScroll;\n this._offsetY = 0;\n this._transformOrigin = `50% top 0px`;\n return;\n }\n }\n /** Calculates the scroll position and x- and y-offsets of the overlay panel. */\n _calculateOverlayPosition() {\n const itemHeight = this._getItemHeight();\n const items = this._getItemCount();\n const panelHeight = Math.min(items * itemHeight, SELECT_PANEL_MAX_HEIGHT);\n const scrollContainerHeight = items * itemHeight;\n // The farthest the panel can be scrolled before it hits the bottom\n const maxScroll = scrollContainerHeight - panelHeight;\n // If no value is selected we open the popup to the first item.\n let selectedOptionOffset;\n if (this.empty) {\n selectedOptionOffset = 0;\n } else {\n selectedOptionOffset = Math.max(this.options.toArray().indexOf(this._selectionModel.selected[0]), 0);\n }\n selectedOptionOffset += _countGroupLabelsBeforeLegacyOption(selectedOptionOffset, this.options, this.optionGroups);\n // We must maintain a scroll buffer so the selected option will be scrolled to the\n // center of the overlay panel rather than the top.\n const scrollBuffer = panelHeight / 2;\n this._scrollTop = this._calculateOverlayScroll(selectedOptionOffset, scrollBuffer, maxScroll);\n this._offsetY = this._calculateOverlayOffsetY(selectedOptionOffset, scrollBuffer, maxScroll);\n this._checkOverlayWithinViewport(maxScroll);\n }\n /** Sets the transform origin point based on the selected option. */\n _getOriginBasedOnOption() {\n const itemHeight = this._getItemHeight();\n const optionHeightAdjustment = (itemHeight - this._triggerRect.height) / 2;\n const originY = Math.abs(this._offsetY) - optionHeightAdjustment + itemHeight / 2;\n return `50% ${originY}px 0px`;\n }\n /** Calculates the height of the select's options. */\n _getItemHeight() {\n return this._triggerFontSize * SELECT_ITEM_HEIGHT_EM;\n }\n /** Calculates the amount of items in the select. This includes options and group labels. */\n _getItemCount() {\n return this.options.length + this.optionGroups.length;\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatLegacySelect_BaseFactory;\n return function MatLegacySelect_Factory(ɵt) {\n return (ɵMatLegacySelect_BaseFactory || (ɵMatLegacySelect_BaseFactory = i0.ɵɵgetInheritedFactory(MatLegacySelect)))(ɵt || MatLegacySelect);\n };\n })();\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatLegacySelect,\n selectors: [[\"mat-select\"]],\n contentQueries: function MatLegacySelect_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MAT_SELECT_TRIGGER, 5);\n i0.ɵɵcontentQuery(dirIndex, MatLegacyOption, 5);\n i0.ɵɵcontentQuery(dirIndex, MAT_LEGACY_OPTGROUP, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.customTrigger = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.options = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.optionGroups = _t);\n }\n },\n hostAttrs: [\"role\", \"combobox\", \"aria-autocomplete\", \"none\", \"aria-haspopup\", \"true\", \"ngSkipHydration\", \"\", 1, \"mat-select\"],\n hostVars: 19,\n hostBindings: function MatLegacySelect_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"keydown\", function MatLegacySelect_keydown_HostBindingHandler($event) {\n return ctx._handleKeydown($event);\n })(\"focus\", function MatLegacySelect_focus_HostBindingHandler() {\n return ctx._onFocus();\n })(\"blur\", function MatLegacySelect_blur_HostBindingHandler() {\n return ctx._onBlur();\n });\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"id\", ctx.id)(\"tabindex\", ctx.tabIndex)(\"aria-controls\", ctx.panelOpen ? ctx.id + \"-panel\" : null)(\"aria-expanded\", ctx.panelOpen)(\"aria-label\", ctx.ariaLabel || null)(\"aria-required\", ctx.required.toString())(\"aria-disabled\", ctx.disabled.toString())(\"aria-invalid\", ctx.errorState)(\"aria-activedescendant\", ctx._getAriaActiveDescendant());\n i0.ɵɵclassProp(\"mat-select-disabled\", ctx.disabled)(\"mat-select-invalid\", ctx.errorState)(\"mat-select-required\", ctx.required)(\"mat-select-empty\", ctx.empty)(\"mat-select-multiple\", ctx.multiple);\n }\n },\n inputs: {\n disabled: \"disabled\",\n disableRipple: \"disableRipple\",\n tabIndex: \"tabIndex\"\n },\n exportAs: [\"matSelect\"],\n features: [i0.ɵɵProvidersFeature([{\n provide: MatLegacyFormFieldControl,\n useExisting: MatLegacySelect\n }, {\n provide: MAT_LEGACY_OPTION_PARENT_COMPONENT,\n useExisting: MatLegacySelect\n }]), i0.ɵɵInheritDefinitionFeature],\n ngContentSelectors: _c1,\n decls: 9,\n vars: 12,\n consts: [[\"origin\", \"cdkOverlayOrigin\", \"trigger\", \"\"], [\"panel\", \"\"], [\"cdk-overlay-origin\", \"\", 1, \"mat-select-trigger\", 3, \"click\"], [1, \"mat-select-value\", 3, \"ngSwitch\"], [\"class\", \"mat-select-placeholder mat-select-min-line\", 4, \"ngSwitchCase\"], [\"class\", \"mat-select-value-text\", 3, \"ngSwitch\", 4, \"ngSwitchCase\"], [1, \"mat-select-arrow-wrapper\"], [1, \"mat-select-arrow\"], [\"cdk-connected-overlay\", \"\", \"cdkConnectedOverlayLockPosition\", \"\", \"cdkConnectedOverlayHasBackdrop\", \"\", \"cdkConnectedOverlayBackdropClass\", \"cdk-overlay-transparent-backdrop\", 3, \"backdropClick\", \"attach\", \"detach\", \"cdkConnectedOverlayPanelClass\", \"cdkConnectedOverlayScrollStrategy\", \"cdkConnectedOverlayOrigin\", \"cdkConnectedOverlayOpen\", \"cdkConnectedOverlayPositions\", \"cdkConnectedOverlayMinWidth\", \"cdkConnectedOverlayOffsetY\"], [1, \"mat-select-placeholder\", \"mat-select-min-line\"], [1, \"mat-select-value-text\", 3, \"ngSwitch\"], [\"class\", \"mat-select-min-line\", 4, \"ngSwitchDefault\"], [4, \"ngSwitchCase\"], [1, \"mat-select-min-line\"], [1, \"mat-select-panel-wrap\"], [\"role\", \"listbox\", \"tabindex\", \"-1\", 3, \"keydown\", \"ngClass\"]],\n template: function MatLegacySelect_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵprojectionDef(_c0);\n i0.ɵɵelementStart(0, \"div\", 2, 0);\n i0.ɵɵlistener(\"click\", function MatLegacySelect_Template_div_click_0_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.toggle());\n });\n i0.ɵɵelementStart(3, \"div\", 3);\n i0.ɵɵtemplate(4, MatLegacySelect_span_4_Template, 2, 1, \"span\", 4)(5, MatLegacySelect_span_5_Template, 3, 2, \"span\", 5);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(6, \"div\", 6);\n i0.ɵɵelement(7, \"div\", 7);\n i0.ɵɵelementEnd()();\n i0.ɵɵtemplate(8, MatLegacySelect_ng_template_8_Template, 4, 14, \"ng-template\", 8);\n i0.ɵɵlistener(\"backdropClick\", function MatLegacySelect_Template_ng_template_backdropClick_8_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.close());\n })(\"attach\", function MatLegacySelect_Template_ng_template_attach_8_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._onAttached());\n })(\"detach\", function MatLegacySelect_Template_ng_template_detach_8_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.close());\n });\n }\n if (rf & 2) {\n const origin_r4 = i0.ɵɵreference(1);\n i0.ɵɵattribute(\"aria-owns\", ctx.panelOpen ? ctx.id + \"-panel\" : null);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngSwitch\", ctx.empty);\n i0.ɵɵattribute(\"id\", ctx._valueId);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngSwitchCase\", true);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngSwitchCase\", false);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"cdkConnectedOverlayPanelClass\", ctx._overlayPanelClass)(\"cdkConnectedOverlayScrollStrategy\", ctx._scrollStrategy)(\"cdkConnectedOverlayOrigin\", origin_r4)(\"cdkConnectedOverlayOpen\", ctx.panelOpen)(\"cdkConnectedOverlayPositions\", ctx._positions)(\"cdkConnectedOverlayMinWidth\", ctx._getOverlayMinWidth())(\"cdkConnectedOverlayOffsetY\", ctx._offsetY);\n }\n },\n dependencies: [i1.NgClass, i1.NgSwitch, i1.NgSwitchCase, i1.NgSwitchDefault, i2.CdkConnectedOverlay, i2.CdkOverlayOrigin],\n styles: [\".mat-select{display:inline-block;width:100%;outline:none}.mat-select-trigger{display:inline-flex;align-items:center;cursor:pointer;position:relative;box-sizing:border-box;width:100%}.mat-select-disabled .mat-select-trigger{-webkit-user-select:none;user-select:none;cursor:default}.mat-select-value{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-select-value-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-select-arrow-wrapper{height:16px;flex-shrink:0;display:inline-flex;align-items:center}.mat-form-field-appearance-fill .mat-select-arrow-wrapper{transform:translateY(-50%)}.mat-form-field-appearance-outline .mat-select-arrow-wrapper{transform:translateY(-25%)}.mat-form-field-appearance-standard.mat-form-field-has-label .mat-select:not(.mat-select-empty) .mat-select-arrow-wrapper{transform:translateY(-50%)}.mat-form-field-appearance-standard .mat-select.mat-select-empty .mat-select-arrow-wrapper{transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}._mat-animation-noopable.mat-form-field-appearance-standard .mat-select.mat-select-empty .mat-select-arrow-wrapper{transition:none}.mat-select-arrow{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;margin:0 4px}.mat-form-field.mat-focused .mat-select-arrow{transform:translateX(0)}.mat-select-panel-wrap{flex-basis:100%}.mat-select-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;padding-top:0;padding-bottom:0;max-height:256px;min-width:100%;border-radius:4px;outline:0}.cdk-high-contrast-active .mat-select-panel{outline:solid 1px}.mat-select-panel .mat-optgroup-label,.mat-select-panel .mat-option{font-size:inherit;line-height:3em;height:3em}.mat-form-field-type-mat-select:not(.mat-form-field-disabled) .mat-form-field-flex{cursor:pointer}.mat-form-field-type-mat-select .mat-form-field-label{width:calc(100% - 18px)}.mat-select-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}._mat-animation-noopable .mat-select-placeholder{transition:none}.mat-form-field-hide-placeholder .mat-select-placeholder{color:rgba(0,0,0,0);-webkit-text-fill-color:rgba(0,0,0,0);transition:none;display:block}.mat-select-min-line:empty::before{content:\\\" \\\";white-space:pre;width:1px;display:inline-block;visibility:hidden}\"],\n encapsulation: 2,\n data: {\n animation: [matLegacySelectAnimations.transformPanelWrap, matLegacySelectAnimations.transformPanel]\n },\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacySelect, [{\n type: Component,\n args: [{\n selector: 'mat-select',\n exportAs: 'matSelect',\n inputs: ['disabled', 'disableRipple', 'tabIndex'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'role': 'combobox',\n 'aria-autocomplete': 'none',\n // TODO(crisbeto): the value for aria-haspopup should be `listbox`, but currently it's difficult\n // to sync into Google, because of an outdated automated a11y check which flags it as an invalid\n // value. At some point we should try to switch it back to being `listbox`.\n 'aria-haspopup': 'true',\n 'class': 'mat-select',\n '[attr.id]': 'id',\n '[attr.tabindex]': 'tabIndex',\n '[attr.aria-controls]': 'panelOpen ? id + \"-panel\" : null',\n '[attr.aria-expanded]': 'panelOpen',\n '[attr.aria-label]': 'ariaLabel || null',\n '[attr.aria-required]': 'required.toString()',\n '[attr.aria-disabled]': 'disabled.toString()',\n '[attr.aria-invalid]': 'errorState',\n '[attr.aria-activedescendant]': '_getAriaActiveDescendant()',\n '[class.mat-select-disabled]': 'disabled',\n '[class.mat-select-invalid]': 'errorState',\n '[class.mat-select-required]': 'required',\n '[class.mat-select-empty]': 'empty',\n '[class.mat-select-multiple]': 'multiple',\n '(keydown)': '_handleKeydown($event)',\n '(focus)': '_onFocus()',\n '(blur)': '_onBlur()',\n 'ngSkipHydration': ''\n },\n animations: [matLegacySelectAnimations.transformPanelWrap, matLegacySelectAnimations.transformPanel],\n providers: [{\n provide: MatLegacyFormFieldControl,\n useExisting: MatLegacySelect\n }, {\n provide: MAT_LEGACY_OPTION_PARENT_COMPONENT,\n useExisting: MatLegacySelect\n }],\n template: \"\\n\\n \\n {{placeholder}}\\n \\n {{triggerValue}}\\n \\n \\n \\n\\n \\n\\n\\n\\n \\n \\n \\n \\n \\n\\n\",\n styles: [\".mat-select{display:inline-block;width:100%;outline:none}.mat-select-trigger{display:inline-flex;align-items:center;cursor:pointer;position:relative;box-sizing:border-box;width:100%}.mat-select-disabled .mat-select-trigger{-webkit-user-select:none;user-select:none;cursor:default}.mat-select-value{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-select-value-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-select-arrow-wrapper{height:16px;flex-shrink:0;display:inline-flex;align-items:center}.mat-form-field-appearance-fill .mat-select-arrow-wrapper{transform:translateY(-50%)}.mat-form-field-appearance-outline .mat-select-arrow-wrapper{transform:translateY(-25%)}.mat-form-field-appearance-standard.mat-form-field-has-label .mat-select:not(.mat-select-empty) .mat-select-arrow-wrapper{transform:translateY(-50%)}.mat-form-field-appearance-standard .mat-select.mat-select-empty .mat-select-arrow-wrapper{transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}._mat-animation-noopable.mat-form-field-appearance-standard .mat-select.mat-select-empty .mat-select-arrow-wrapper{transition:none}.mat-select-arrow{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;margin:0 4px}.mat-form-field.mat-focused .mat-select-arrow{transform:translateX(0)}.mat-select-panel-wrap{flex-basis:100%}.mat-select-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;padding-top:0;padding-bottom:0;max-height:256px;min-width:100%;border-radius:4px;outline:0}.cdk-high-contrast-active .mat-select-panel{outline:solid 1px}.mat-select-panel .mat-optgroup-label,.mat-select-panel .mat-option{font-size:inherit;line-height:3em;height:3em}.mat-form-field-type-mat-select:not(.mat-form-field-disabled) .mat-form-field-flex{cursor:pointer}.mat-form-field-type-mat-select .mat-form-field-label{width:calc(100% - 18px)}.mat-select-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}._mat-animation-noopable .mat-select-placeholder{transition:none}.mat-form-field-hide-placeholder .mat-select-placeholder{color:rgba(0,0,0,0);-webkit-text-fill-color:rgba(0,0,0,0);transition:none;display:block}.mat-select-min-line:empty::before{content:\\\" \\\";white-space:pre;width:1px;display:inline-block;visibility:hidden}\"]\n }]\n }], null, {\n options: [{\n type: ContentChildren,\n args: [MatLegacyOption, {\n descendants: true\n }]\n }],\n optionGroups: [{\n type: ContentChildren,\n args: [MAT_LEGACY_OPTGROUP, {\n descendants: true\n }]\n }],\n customTrigger: [{\n type: ContentChild,\n args: [MAT_SELECT_TRIGGER]\n }]\n });\n})();\n\n/**\n * @deprecated Use `MatSelectModule` from `@angular/material/select` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacySelectModule {\n static {\n this.ɵfac = function MatLegacySelectModule_Factory(ɵt) {\n return new (ɵt || MatLegacySelectModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatLegacySelectModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [MAT_SELECT_SCROLL_STRATEGY_PROVIDER],\n imports: [CommonModule, OverlayModule, MatLegacyOptionModule, MatCommonModule, CdkScrollableModule, MatLegacyFormFieldModule, MatLegacyOptionModule, MatCommonModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacySelectModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule, OverlayModule, MatLegacyOptionModule, MatCommonModule],\n exports: [CdkScrollableModule, MatLegacyFormFieldModule, MatLegacySelect, MatLegacySelectTrigger, MatLegacyOptionModule, MatCommonModule],\n declarations: [MatLegacySelect, MatLegacySelectTrigger],\n providers: [MAT_SELECT_SCROLL_STRATEGY_PROVIDER]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MatLegacySelect, MatLegacySelectChange, MatLegacySelectModule, MatLegacySelectTrigger, matLegacySelectAnimations };\n","import * as i0 from '@angular/core';\nimport { InjectionToken, inject, EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, Optional, Inject, Input, Output, NgModule } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { mixinColor, MatCommonModule } from '@angular/material/core';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\nimport { coerceNumberProperty } from '@angular/cdk/coercion';\n\n/** Injection token to be used to override the default options for `mat-progress-bar`. */\nconst MAT_PROGRESS_BAR_DEFAULT_OPTIONS = new InjectionToken('MAT_PROGRESS_BAR_DEFAULT_OPTIONS');\n/**\n * Injection token used to provide the current location to `MatProgressBar`.\n * Used to handle server-side rendering and to stub out during unit tests.\n * @docs-private\n */\nconst MAT_PROGRESS_BAR_LOCATION = new InjectionToken('mat-progress-bar-location', {\n providedIn: 'root',\n factory: MAT_PROGRESS_BAR_LOCATION_FACTORY\n});\n/** @docs-private */\nfunction MAT_PROGRESS_BAR_LOCATION_FACTORY() {\n const _document = inject(DOCUMENT);\n const _location = _document ? _document.location : null;\n return {\n // Note that this needs to be a function, rather than a property, because Angular\n // will only resolve it once, but we want the current path on each call.\n getPathname: () => _location ? _location.pathname + _location.search : ''\n };\n}\n// Boilerplate for applying mixins to MatProgressBar.\n/** @docs-private */\nconst _MatProgressBarBase = mixinColor(class {\n constructor(_elementRef) {\n this._elementRef = _elementRef;\n }\n}, 'primary');\nclass MatProgressBar extends _MatProgressBarBase {\n constructor(elementRef, _ngZone, _changeDetectorRef, _animationMode, defaults) {\n super(elementRef);\n this._ngZone = _ngZone;\n this._changeDetectorRef = _changeDetectorRef;\n this._animationMode = _animationMode;\n /** Flag that indicates whether NoopAnimations mode is set to true. */\n this._isNoopAnimation = false;\n this._value = 0;\n this._bufferValue = 0;\n /**\n * Event emitted when animation of the primary progress bar completes. This event will not\n * be emitted when animations are disabled, nor will it be emitted for modes with continuous\n * animations (indeterminate and query).\n */\n this.animationEnd = new EventEmitter();\n this._mode = 'determinate';\n /** Event handler for `transitionend` events. */\n this._transitionendHandler = event => {\n if (this.animationEnd.observers.length === 0 || !event.target || !event.target.classList.contains('mdc-linear-progress__primary-bar')) {\n return;\n }\n if (this.mode === 'determinate' || this.mode === 'buffer') {\n this._ngZone.run(() => this.animationEnd.next({\n value: this.value\n }));\n }\n };\n this._isNoopAnimation = _animationMode === 'NoopAnimations';\n if (defaults) {\n if (defaults.color) {\n this.color = this.defaultColor = defaults.color;\n }\n this.mode = defaults.mode || this.mode;\n }\n }\n /** Value of the progress bar. Defaults to zero. Mirrored to aria-valuenow. */\n get value() {\n return this._value;\n }\n set value(v) {\n this._value = clamp(coerceNumberProperty(v));\n this._changeDetectorRef.markForCheck();\n }\n /** Buffer value of the progress bar. Defaults to zero. */\n get bufferValue() {\n return this._bufferValue || 0;\n }\n set bufferValue(v) {\n this._bufferValue = clamp(coerceNumberProperty(v));\n this._changeDetectorRef.markForCheck();\n }\n /**\n * Mode of the progress bar.\n *\n * Input must be one of these values: determinate, indeterminate, buffer, query, defaults to\n * 'determinate'.\n * Mirrored to mode attribute.\n */\n get mode() {\n return this._mode;\n }\n set mode(value) {\n // Note that we don't technically need a getter and a setter here,\n // but we use it to match the behavior of the existing mat-progress-bar.\n this._mode = value;\n this._changeDetectorRef.markForCheck();\n }\n ngAfterViewInit() {\n // Run outside angular so change detection didn't get triggered on every transition end\n // instead only on the animation that we care about (primary value bar's transitionend)\n this._ngZone.runOutsideAngular(() => {\n this._elementRef.nativeElement.addEventListener('transitionend', this._transitionendHandler);\n });\n }\n ngOnDestroy() {\n this._elementRef.nativeElement.removeEventListener('transitionend', this._transitionendHandler);\n }\n /** Gets the transform style that should be applied to the primary bar. */\n _getPrimaryBarTransform() {\n return `scaleX(${this._isIndeterminate() ? 1 : this.value / 100})`;\n }\n /** Gets the `flex-basis` value that should be applied to the buffer bar. */\n _getBufferBarFlexBasis() {\n return `${this.mode === 'buffer' ? this.bufferValue : 100}%`;\n }\n /** Returns whether the progress bar is indeterminate. */\n _isIndeterminate() {\n return this.mode === 'indeterminate' || this.mode === 'query';\n }\n static {\n this.ɵfac = function MatProgressBar_Factory(ɵt) {\n return new (ɵt || MatProgressBar)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8), i0.ɵɵdirectiveInject(MAT_PROGRESS_BAR_DEFAULT_OPTIONS, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatProgressBar,\n selectors: [[\"mat-progress-bar\"]],\n hostAttrs: [\"role\", \"progressbar\", \"aria-valuemin\", \"0\", \"aria-valuemax\", \"100\", \"tabindex\", \"-1\", 1, \"mat-mdc-progress-bar\", \"mdc-linear-progress\"],\n hostVars: 8,\n hostBindings: function MatProgressBar_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-valuenow\", ctx._isIndeterminate() ? null : ctx.value)(\"mode\", ctx.mode);\n i0.ɵɵclassProp(\"_mat-animation-noopable\", ctx._isNoopAnimation)(\"mdc-linear-progress--animation-ready\", !ctx._isNoopAnimation)(\"mdc-linear-progress--indeterminate\", ctx._isIndeterminate());\n }\n },\n inputs: {\n color: \"color\",\n value: \"value\",\n bufferValue: \"bufferValue\",\n mode: \"mode\"\n },\n outputs: {\n animationEnd: \"animationEnd\"\n },\n exportAs: [\"matProgressBar\"],\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 7,\n vars: 4,\n consts: [[\"aria-hidden\", \"true\", 1, \"mdc-linear-progress__buffer\"], [1, \"mdc-linear-progress__buffer-bar\"], [1, \"mdc-linear-progress__buffer-dots\"], [\"aria-hidden\", \"true\", 1, \"mdc-linear-progress__bar\", \"mdc-linear-progress__primary-bar\"], [1, \"mdc-linear-progress__bar-inner\"], [\"aria-hidden\", \"true\", 1, \"mdc-linear-progress__bar\", \"mdc-linear-progress__secondary-bar\"]],\n template: function MatProgressBar_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵelement(1, \"div\", 1)(2, \"div\", 2);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"div\", 3);\n i0.ɵɵelement(4, \"span\", 4);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(5, \"div\", 5);\n i0.ɵɵelement(6, \"span\", 4);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"flex-basis\", ctx._getBufferBarFlexBasis());\n i0.ɵɵadvance(2);\n i0.ɵɵstyleProp(\"transform\", ctx._getPrimaryBarTransform());\n }\n },\n styles: [\"@keyframes mdc-linear-progress-primary-indeterminate-translate{0%{transform:translateX(0)}20%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(0)}59.15%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(var(--mdc-linear-progress-primary-half))}100%{transform:translateX(var(--mdc-linear-progress-primary-full))}}@keyframes mdc-linear-progress-primary-indeterminate-scale{0%{transform:scaleX(0.08)}36.65%{animation-timing-function:cubic-bezier(0.334731, 0.12482, 0.785844, 1);transform:scaleX(0.08)}69.15%{animation-timing-function:cubic-bezier(0.06, 0.11, 0.6, 1);transform:scaleX(0.661479)}100%{transform:scaleX(0.08)}}@keyframes mdc-linear-progress-secondary-indeterminate-translate{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);transform:translateX(0)}25%{animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);transform:translateX(var(--mdc-linear-progress-secondary-quarter))}48.35%{animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);transform:translateX(var(--mdc-linear-progress-secondary-half))}100%{transform:translateX(var(--mdc-linear-progress-secondary-full))}}@keyframes mdc-linear-progress-secondary-indeterminate-scale{0%{animation-timing-function:cubic-bezier(0.205028, 0.057051, 0.57661, 0.453971);transform:scaleX(0.08)}19.15%{animation-timing-function:cubic-bezier(0.152313, 0.196432, 0.648374, 1.004315);transform:scaleX(0.457104)}44.15%{animation-timing-function:cubic-bezier(0.257759, -0.003163, 0.211762, 1.38179);transform:scaleX(0.72796)}100%{transform:scaleX(0.08)}}@keyframes mdc-linear-progress-primary-indeterminate-translate-reverse{0%{transform:translateX(0)}20%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(0)}59.15%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(var(--mdc-linear-progress-primary-half-neg))}100%{transform:translateX(var(--mdc-linear-progress-primary-full-neg))}}@keyframes mdc-linear-progress-secondary-indeterminate-translate-reverse{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);transform:translateX(0)}25%{animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);transform:translateX(var(--mdc-linear-progress-secondary-quarter-neg))}48.35%{animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);transform:translateX(var(--mdc-linear-progress-secondary-half-neg))}100%{transform:translateX(var(--mdc-linear-progress-secondary-full-neg))}}@keyframes mdc-linear-progress-buffering-reverse{from{transform:translateX(-10px)}}.mdc-linear-progress{position:relative;width:100%;transform:translateZ(0);outline:1px solid rgba(0,0,0,0);overflow-x:hidden;transition:opacity 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}@media screen and (forced-colors: active){.mdc-linear-progress{outline-color:CanvasText}}.mdc-linear-progress__bar{position:absolute;top:0;bottom:0;margin:auto 0;width:100%;animation:none;transform-origin:top left;transition:transform 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-linear-progress__bar-inner{display:inline-block;position:absolute;width:100%;animation:none;border-top-style:solid}.mdc-linear-progress__buffer{display:flex;position:absolute;top:0;bottom:0;margin:auto 0;width:100%;overflow:hidden}.mdc-linear-progress__buffer-dots{background-repeat:repeat-x;flex:auto;transform:rotate(180deg);-webkit-mask-image:url(\\\"data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' enable-background='new 0 0 5 2' xml:space='preserve' viewBox='0 0 5 2' preserveAspectRatio='xMinYMin slice'%3E%3Ccircle cx='1' cy='1' r='1'/%3E%3C/svg%3E\\\");mask-image:url(\\\"data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' enable-background='new 0 0 5 2' xml:space='preserve' viewBox='0 0 5 2' preserveAspectRatio='xMinYMin slice'%3E%3Ccircle cx='1' cy='1' r='1'/%3E%3C/svg%3E\\\");animation:mdc-linear-progress-buffering 250ms infinite linear}.mdc-linear-progress__buffer-bar{flex:0 1 100%;transition:flex-basis 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-linear-progress__primary-bar{transform:scaleX(0)}.mdc-linear-progress__secondary-bar{display:none}.mdc-linear-progress--indeterminate .mdc-linear-progress__bar{transition:none}.mdc-linear-progress--indeterminate .mdc-linear-progress__primary-bar{left:-145.166611%}.mdc-linear-progress--indeterminate .mdc-linear-progress__secondary-bar{left:-54.888891%;display:block}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar{animation:mdc-linear-progress-primary-indeterminate-translate 2s infinite linear}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar>.mdc-linear-progress__bar-inner{animation:mdc-linear-progress-primary-indeterminate-scale 2s infinite linear}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar{animation:mdc-linear-progress-secondary-indeterminate-translate 2s infinite linear}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar>.mdc-linear-progress__bar-inner{animation:mdc-linear-progress-secondary-indeterminate-scale 2s infinite linear}[dir=rtl] .mdc-linear-progress:not([dir=ltr]) .mdc-linear-progress__bar,.mdc-linear-progress[dir=rtl]:not([dir=ltr]) .mdc-linear-progress__bar{right:0;-webkit-transform-origin:center right;transform-origin:center right}[dir=rtl] .mdc-linear-progress:not([dir=ltr]).mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar,.mdc-linear-progress[dir=rtl]:not([dir=ltr]).mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar{animation-name:mdc-linear-progress-primary-indeterminate-translate-reverse}[dir=rtl] .mdc-linear-progress:not([dir=ltr]).mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar,.mdc-linear-progress[dir=rtl]:not([dir=ltr]).mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar{animation-name:mdc-linear-progress-secondary-indeterminate-translate-reverse}[dir=rtl] .mdc-linear-progress:not([dir=ltr]) .mdc-linear-progress__buffer-dots,.mdc-linear-progress[dir=rtl]:not([dir=ltr]) .mdc-linear-progress__buffer-dots{animation:mdc-linear-progress-buffering-reverse 250ms infinite linear;transform:rotate(0)}[dir=rtl] .mdc-linear-progress:not([dir=ltr]).mdc-linear-progress--indeterminate .mdc-linear-progress__primary-bar,.mdc-linear-progress[dir=rtl]:not([dir=ltr]).mdc-linear-progress--indeterminate .mdc-linear-progress__primary-bar{right:-145.166611%;left:auto}[dir=rtl] .mdc-linear-progress:not([dir=ltr]).mdc-linear-progress--indeterminate .mdc-linear-progress__secondary-bar,.mdc-linear-progress[dir=rtl]:not([dir=ltr]).mdc-linear-progress--indeterminate .mdc-linear-progress__secondary-bar{right:-54.888891%;left:auto}.mdc-linear-progress--closed{opacity:0}.mdc-linear-progress--closed-animation-off .mdc-linear-progress__buffer-dots{animation:none}.mdc-linear-progress--closed-animation-off.mdc-linear-progress--indeterminate .mdc-linear-progress__bar,.mdc-linear-progress--closed-animation-off.mdc-linear-progress--indeterminate .mdc-linear-progress__bar .mdc-linear-progress__bar-inner{animation:none}@keyframes mdc-linear-progress-buffering{from{transform:rotate(180deg) translateX(calc(var(--mdc-linear-progress-track-height) * -2.5))}}.mdc-linear-progress__bar-inner{border-color:var(--mdc-linear-progress-active-indicator-color)}@media(forced-colors: active){.mdc-linear-progress__buffer-dots{background-color:ButtonBorder}}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.mdc-linear-progress__buffer-dots{background-color:rgba(0,0,0,0);background-image:url(\\\"data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' enable-background='new 0 0 5 2' xml:space='preserve' viewBox='0 0 5 2' preserveAspectRatio='none slice'%3E%3Ccircle cx='1' cy='1' r='1' fill=''/%3E%3C/svg%3E\\\")}}.mdc-linear-progress{height:max(var(--mdc-linear-progress-track-height), var(--mdc-linear-progress-active-indicator-height))}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.mdc-linear-progress{height:4px}}.mdc-linear-progress__bar{height:var(--mdc-linear-progress-active-indicator-height)}.mdc-linear-progress__bar-inner{border-top-width:var(--mdc-linear-progress-active-indicator-height)}.mdc-linear-progress__buffer{height:var(--mdc-linear-progress-track-height)}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.mdc-linear-progress__buffer-dots{background-size:10px var(--mdc-linear-progress-track-height)}}.mdc-linear-progress__buffer{border-radius:var(--mdc-linear-progress-track-shape)}.mat-mdc-progress-bar{--mdc-linear-progress-active-indicator-height:4px;--mdc-linear-progress-track-height:4px;--mdc-linear-progress-track-shape:0}.mat-mdc-progress-bar{display:block;text-align:left;--mdc-linear-progress-primary-half: 83.67142%;--mdc-linear-progress-primary-full: 200.611057%;--mdc-linear-progress-secondary-quarter: 37.651913%;--mdc-linear-progress-secondary-half: 84.386165%;--mdc-linear-progress-secondary-full: 160.277782%;--mdc-linear-progress-primary-half-neg: -83.67142%;--mdc-linear-progress-primary-full-neg: -200.611057%;--mdc-linear-progress-secondary-quarter-neg: -37.651913%;--mdc-linear-progress-secondary-half-neg: -84.386165%;--mdc-linear-progress-secondary-full-neg: -160.277782%}[dir=rtl] .mat-mdc-progress-bar{text-align:right}.mat-mdc-progress-bar[mode=query]{transform:scaleX(-1)}.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__buffer-dots,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__primary-bar,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__secondary-bar,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__bar-inner.mdc-linear-progress__bar-inner{animation:none}.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__primary-bar,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__buffer-bar{transition:transform 1ms}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatProgressBar, [{\n type: Component,\n args: [{\n selector: 'mat-progress-bar',\n exportAs: 'matProgressBar',\n host: {\n 'role': 'progressbar',\n 'aria-valuemin': '0',\n 'aria-valuemax': '100',\n // set tab index to -1 so screen readers will read the aria-label\n // Note: there is a known issue with JAWS that does not read progressbar aria labels on FireFox\n 'tabindex': '-1',\n '[attr.aria-valuenow]': '_isIndeterminate() ? null : value',\n '[attr.mode]': 'mode',\n 'class': 'mat-mdc-progress-bar mdc-linear-progress',\n '[class._mat-animation-noopable]': '_isNoopAnimation',\n '[class.mdc-linear-progress--animation-ready]': '!_isNoopAnimation',\n '[class.mdc-linear-progress--indeterminate]': '_isIndeterminate()'\n },\n inputs: ['color'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: \"\\n\\n \\n \\n\\n\\n \\n\\n\\n \\n\\n\",\n styles: [\"@keyframes mdc-linear-progress-primary-indeterminate-translate{0%{transform:translateX(0)}20%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(0)}59.15%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(var(--mdc-linear-progress-primary-half))}100%{transform:translateX(var(--mdc-linear-progress-primary-full))}}@keyframes mdc-linear-progress-primary-indeterminate-scale{0%{transform:scaleX(0.08)}36.65%{animation-timing-function:cubic-bezier(0.334731, 0.12482, 0.785844, 1);transform:scaleX(0.08)}69.15%{animation-timing-function:cubic-bezier(0.06, 0.11, 0.6, 1);transform:scaleX(0.661479)}100%{transform:scaleX(0.08)}}@keyframes mdc-linear-progress-secondary-indeterminate-translate{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);transform:translateX(0)}25%{animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);transform:translateX(var(--mdc-linear-progress-secondary-quarter))}48.35%{animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);transform:translateX(var(--mdc-linear-progress-secondary-half))}100%{transform:translateX(var(--mdc-linear-progress-secondary-full))}}@keyframes mdc-linear-progress-secondary-indeterminate-scale{0%{animation-timing-function:cubic-bezier(0.205028, 0.057051, 0.57661, 0.453971);transform:scaleX(0.08)}19.15%{animation-timing-function:cubic-bezier(0.152313, 0.196432, 0.648374, 1.004315);transform:scaleX(0.457104)}44.15%{animation-timing-function:cubic-bezier(0.257759, -0.003163, 0.211762, 1.38179);transform:scaleX(0.72796)}100%{transform:scaleX(0.08)}}@keyframes mdc-linear-progress-primary-indeterminate-translate-reverse{0%{transform:translateX(0)}20%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(0)}59.15%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(var(--mdc-linear-progress-primary-half-neg))}100%{transform:translateX(var(--mdc-linear-progress-primary-full-neg))}}@keyframes mdc-linear-progress-secondary-indeterminate-translate-reverse{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);transform:translateX(0)}25%{animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);transform:translateX(var(--mdc-linear-progress-secondary-quarter-neg))}48.35%{animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);transform:translateX(var(--mdc-linear-progress-secondary-half-neg))}100%{transform:translateX(var(--mdc-linear-progress-secondary-full-neg))}}@keyframes mdc-linear-progress-buffering-reverse{from{transform:translateX(-10px)}}.mdc-linear-progress{position:relative;width:100%;transform:translateZ(0);outline:1px solid rgba(0,0,0,0);overflow-x:hidden;transition:opacity 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}@media screen and (forced-colors: active){.mdc-linear-progress{outline-color:CanvasText}}.mdc-linear-progress__bar{position:absolute;top:0;bottom:0;margin:auto 0;width:100%;animation:none;transform-origin:top left;transition:transform 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-linear-progress__bar-inner{display:inline-block;position:absolute;width:100%;animation:none;border-top-style:solid}.mdc-linear-progress__buffer{display:flex;position:absolute;top:0;bottom:0;margin:auto 0;width:100%;overflow:hidden}.mdc-linear-progress__buffer-dots{background-repeat:repeat-x;flex:auto;transform:rotate(180deg);-webkit-mask-image:url(\\\"data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' enable-background='new 0 0 5 2' xml:space='preserve' viewBox='0 0 5 2' preserveAspectRatio='xMinYMin slice'%3E%3Ccircle cx='1' cy='1' r='1'/%3E%3C/svg%3E\\\");mask-image:url(\\\"data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' enable-background='new 0 0 5 2' xml:space='preserve' viewBox='0 0 5 2' preserveAspectRatio='xMinYMin slice'%3E%3Ccircle cx='1' cy='1' r='1'/%3E%3C/svg%3E\\\");animation:mdc-linear-progress-buffering 250ms infinite linear}.mdc-linear-progress__buffer-bar{flex:0 1 100%;transition:flex-basis 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-linear-progress__primary-bar{transform:scaleX(0)}.mdc-linear-progress__secondary-bar{display:none}.mdc-linear-progress--indeterminate .mdc-linear-progress__bar{transition:none}.mdc-linear-progress--indeterminate .mdc-linear-progress__primary-bar{left:-145.166611%}.mdc-linear-progress--indeterminate .mdc-linear-progress__secondary-bar{left:-54.888891%;display:block}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar{animation:mdc-linear-progress-primary-indeterminate-translate 2s infinite linear}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar>.mdc-linear-progress__bar-inner{animation:mdc-linear-progress-primary-indeterminate-scale 2s infinite linear}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar{animation:mdc-linear-progress-secondary-indeterminate-translate 2s infinite linear}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar>.mdc-linear-progress__bar-inner{animation:mdc-linear-progress-secondary-indeterminate-scale 2s infinite linear}[dir=rtl] .mdc-linear-progress:not([dir=ltr]) .mdc-linear-progress__bar,.mdc-linear-progress[dir=rtl]:not([dir=ltr]) .mdc-linear-progress__bar{right:0;-webkit-transform-origin:center right;transform-origin:center right}[dir=rtl] .mdc-linear-progress:not([dir=ltr]).mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar,.mdc-linear-progress[dir=rtl]:not([dir=ltr]).mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar{animation-name:mdc-linear-progress-primary-indeterminate-translate-reverse}[dir=rtl] .mdc-linear-progress:not([dir=ltr]).mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar,.mdc-linear-progress[dir=rtl]:not([dir=ltr]).mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar{animation-name:mdc-linear-progress-secondary-indeterminate-translate-reverse}[dir=rtl] .mdc-linear-progress:not([dir=ltr]) .mdc-linear-progress__buffer-dots,.mdc-linear-progress[dir=rtl]:not([dir=ltr]) .mdc-linear-progress__buffer-dots{animation:mdc-linear-progress-buffering-reverse 250ms infinite linear;transform:rotate(0)}[dir=rtl] .mdc-linear-progress:not([dir=ltr]).mdc-linear-progress--indeterminate .mdc-linear-progress__primary-bar,.mdc-linear-progress[dir=rtl]:not([dir=ltr]).mdc-linear-progress--indeterminate .mdc-linear-progress__primary-bar{right:-145.166611%;left:auto}[dir=rtl] .mdc-linear-progress:not([dir=ltr]).mdc-linear-progress--indeterminate .mdc-linear-progress__secondary-bar,.mdc-linear-progress[dir=rtl]:not([dir=ltr]).mdc-linear-progress--indeterminate .mdc-linear-progress__secondary-bar{right:-54.888891%;left:auto}.mdc-linear-progress--closed{opacity:0}.mdc-linear-progress--closed-animation-off .mdc-linear-progress__buffer-dots{animation:none}.mdc-linear-progress--closed-animation-off.mdc-linear-progress--indeterminate .mdc-linear-progress__bar,.mdc-linear-progress--closed-animation-off.mdc-linear-progress--indeterminate .mdc-linear-progress__bar .mdc-linear-progress__bar-inner{animation:none}@keyframes mdc-linear-progress-buffering{from{transform:rotate(180deg) translateX(calc(var(--mdc-linear-progress-track-height) * -2.5))}}.mdc-linear-progress__bar-inner{border-color:var(--mdc-linear-progress-active-indicator-color)}@media(forced-colors: active){.mdc-linear-progress__buffer-dots{background-color:ButtonBorder}}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.mdc-linear-progress__buffer-dots{background-color:rgba(0,0,0,0);background-image:url(\\\"data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' enable-background='new 0 0 5 2' xml:space='preserve' viewBox='0 0 5 2' preserveAspectRatio='none slice'%3E%3Ccircle cx='1' cy='1' r='1' fill=''/%3E%3C/svg%3E\\\")}}.mdc-linear-progress{height:max(var(--mdc-linear-progress-track-height), var(--mdc-linear-progress-active-indicator-height))}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.mdc-linear-progress{height:4px}}.mdc-linear-progress__bar{height:var(--mdc-linear-progress-active-indicator-height)}.mdc-linear-progress__bar-inner{border-top-width:var(--mdc-linear-progress-active-indicator-height)}.mdc-linear-progress__buffer{height:var(--mdc-linear-progress-track-height)}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.mdc-linear-progress__buffer-dots{background-size:10px var(--mdc-linear-progress-track-height)}}.mdc-linear-progress__buffer{border-radius:var(--mdc-linear-progress-track-shape)}.mat-mdc-progress-bar{--mdc-linear-progress-active-indicator-height:4px;--mdc-linear-progress-track-height:4px;--mdc-linear-progress-track-shape:0}.mat-mdc-progress-bar{display:block;text-align:left;--mdc-linear-progress-primary-half: 83.67142%;--mdc-linear-progress-primary-full: 200.611057%;--mdc-linear-progress-secondary-quarter: 37.651913%;--mdc-linear-progress-secondary-half: 84.386165%;--mdc-linear-progress-secondary-full: 160.277782%;--mdc-linear-progress-primary-half-neg: -83.67142%;--mdc-linear-progress-primary-full-neg: -200.611057%;--mdc-linear-progress-secondary-quarter-neg: -37.651913%;--mdc-linear-progress-secondary-half-neg: -84.386165%;--mdc-linear-progress-secondary-full-neg: -160.277782%}[dir=rtl] .mat-mdc-progress-bar{text-align:right}.mat-mdc-progress-bar[mode=query]{transform:scaleX(-1)}.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__buffer-dots,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__primary-bar,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__secondary-bar,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__bar-inner.mdc-linear-progress__bar-inner{animation:none}.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__primary-bar,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__buffer-bar{transition:transform 1ms}\"]\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i0.NgZone\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_PROGRESS_BAR_DEFAULT_OPTIONS]\n }]\n }];\n }, {\n value: [{\n type: Input\n }],\n bufferValue: [{\n type: Input\n }],\n animationEnd: [{\n type: Output\n }],\n mode: [{\n type: Input\n }]\n });\n})();\n/** Clamps a value to be between two numbers, by default 0 and 100. */\nfunction clamp(v, min = 0, max = 100) {\n return Math.max(min, Math.min(max, v));\n}\nclass MatProgressBarModule {\n static {\n this.ɵfac = function MatProgressBarModule_Factory(ɵt) {\n return new (ɵt || MatProgressBarModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatProgressBarModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [MatCommonModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatProgressBarModule, [{\n type: NgModule,\n args: [{\n exports: [MatProgressBar, MatCommonModule],\n declarations: [MatProgressBar]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_PROGRESS_BAR_DEFAULT_OPTIONS, MAT_PROGRESS_BAR_LOCATION, MAT_PROGRESS_BAR_LOCATION_FACTORY, MatProgressBar, MatProgressBarModule };\n","import * as i0 from '@angular/core';\nimport { EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, Optional, Inject, Input, ViewChild, Output, NgModule } from '@angular/core';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport { mixinColor, MatCommonModule } from '@angular/material/core';\nimport { coerceNumberProperty } from '@angular/cdk/coercion';\nimport { MAT_PROGRESS_BAR_LOCATION, MAT_PROGRESS_BAR_DEFAULT_OPTIONS } from '@angular/material/progress-bar';\nconst _c0 = [\"primaryValueBar\"];\nexport { MAT_PROGRESS_BAR_DEFAULT_OPTIONS as MAT_LEGACY_PROGRESS_BAR_DEFAULT_OPTIONS, MAT_PROGRESS_BAR_LOCATION as MAT_LEGACY_PROGRESS_BAR_LOCATION, MAT_PROGRESS_BAR_LOCATION_FACTORY as MAT_LEGACY_PROGRESS_BAR_LOCATION_FACTORY } from '@angular/material/progress-bar';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\nimport { Subscription, fromEvent } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\n// TODO(josephperrott): Add ARIA attributes for progress bar \"for\".\n// Boilerplate for applying mixins to MatProgressBar.\n/** @docs-private */\nconst _MatProgressBarBase = mixinColor(class {\n constructor(_elementRef) {\n this._elementRef = _elementRef;\n }\n}, 'primary');\n/** Counter used to generate unique IDs for progress bars. */\nlet progressbarId = 0;\n/**\n * `` component.\n * @deprecated Use `MatProgressBar` from `@angular/material/progress-bar` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyProgressBar extends _MatProgressBarBase {\n constructor(elementRef, _ngZone, _animationMode,\n /**\n * @deprecated `location` parameter to be made required.\n * @breaking-change 8.0.0\n */\n location, defaults,\n /**\n * @deprecated `_changeDetectorRef` parameter to be made required.\n * @breaking-change 11.0.0\n */\n _changeDetectorRef) {\n super(elementRef);\n this._ngZone = _ngZone;\n this._animationMode = _animationMode;\n this._changeDetectorRef = _changeDetectorRef;\n /** Flag that indicates whether NoopAnimations mode is set to true. */\n this._isNoopAnimation = false;\n this._value = 0;\n this._bufferValue = 0;\n /**\n * Event emitted when animation of the primary progress bar completes. This event will not\n * be emitted when animations are disabled, nor will it be emitted for modes with continuous\n * animations (indeterminate and query).\n */\n this.animationEnd = new EventEmitter();\n /** Reference to animation end subscription to be unsubscribed on destroy. */\n this._animationEndSubscription = Subscription.EMPTY;\n /**\n * Mode of the progress bar.\n *\n * Input must be one of these values: determinate, indeterminate, buffer, query, defaults to\n * 'determinate'.\n * Mirrored to mode attribute.\n */\n this.mode = 'determinate';\n /** ID of the progress bar. */\n this.progressbarId = `mat-progress-bar-${progressbarId++}`;\n // We need to prefix the SVG reference with the current path, otherwise they won't work\n // in Safari if the page has a `` tag. Note that we need quotes inside the `url()`,\n // because named route URLs can contain parentheses (see #12338). Also we don't use `Location`\n // since we can't tell the difference between whether the consumer is using the hash location\n // strategy or not, because `Location` normalizes both `/#/foo/bar` and `/foo/bar` to\n // the same thing.\n const path = location ? location.getPathname().split('#')[0] : '';\n this._rectangleFillValue = `url('${path}#${this.progressbarId}')`;\n this._isNoopAnimation = _animationMode === 'NoopAnimations';\n if (defaults) {\n if (defaults.color) {\n this.color = this.defaultColor = defaults.color;\n }\n this.mode = defaults.mode || this.mode;\n }\n }\n /** Value of the progress bar. Defaults to zero. Mirrored to aria-valuenow. */\n get value() {\n return this._value;\n }\n set value(v) {\n this._value = clamp(coerceNumberProperty(v) || 0);\n // @breaking-change 11.0.0 Remove null check for _changeDetectorRef.\n this._changeDetectorRef?.markForCheck();\n }\n /** Buffer value of the progress bar. Defaults to zero. */\n get bufferValue() {\n return this._bufferValue;\n }\n set bufferValue(v) {\n this._bufferValue = clamp(v || 0);\n // @breaking-change 11.0.0 Remove null check for _changeDetectorRef.\n this._changeDetectorRef?.markForCheck();\n }\n /** Gets the current transform value for the progress bar's primary indicator. */\n _primaryTransform() {\n // We use a 3d transform to work around some rendering issues in iOS Safari. See #19328.\n const scale = this.value / 100;\n return {\n transform: `scale3d(${scale}, 1, 1)`\n };\n }\n /**\n * Gets the current transform value for the progress bar's buffer indicator. Only used if the\n * progress mode is set to buffer, otherwise returns an undefined, causing no transformation.\n */\n _bufferTransform() {\n if (this.mode === 'buffer') {\n // We use a 3d transform to work around some rendering issues in iOS Safari. See #19328.\n const scale = this.bufferValue / 100;\n return {\n transform: `scale3d(${scale}, 1, 1)`\n };\n }\n return null;\n }\n ngAfterViewInit() {\n // Run outside angular so change detection didn't get triggered on every transition end\n // instead only on the animation that we care about (primary value bar's transitionend)\n this._ngZone.runOutsideAngular(() => {\n const element = this._primaryValueBar.nativeElement;\n this._animationEndSubscription = fromEvent(element, 'transitionend').pipe(filter(e => e.target === element)).subscribe(() => {\n if (this.animationEnd.observers.length === 0) {\n return;\n }\n if (this.mode === 'determinate' || this.mode === 'buffer') {\n this._ngZone.run(() => this.animationEnd.next({\n value: this.value\n }));\n }\n });\n });\n }\n ngOnDestroy() {\n this._animationEndSubscription.unsubscribe();\n }\n static {\n this.ɵfac = function MatLegacyProgressBar_Factory(ɵt) {\n return new (ɵt || MatLegacyProgressBar)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8), i0.ɵɵdirectiveInject(MAT_PROGRESS_BAR_LOCATION, 8), i0.ɵɵdirectiveInject(MAT_PROGRESS_BAR_DEFAULT_OPTIONS, 8), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatLegacyProgressBar,\n selectors: [[\"mat-progress-bar\"]],\n viewQuery: function MatLegacyProgressBar_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._primaryValueBar = _t.first);\n }\n },\n hostAttrs: [\"role\", \"progressbar\", \"aria-valuemin\", \"0\", \"aria-valuemax\", \"100\", \"tabindex\", \"-1\", 1, \"mat-progress-bar\"],\n hostVars: 4,\n hostBindings: function MatLegacyProgressBar_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-valuenow\", ctx.mode === \"indeterminate\" || ctx.mode === \"query\" ? null : ctx.value)(\"mode\", ctx.mode);\n i0.ɵɵclassProp(\"_mat-animation-noopable\", ctx._isNoopAnimation);\n }\n },\n inputs: {\n color: \"color\",\n value: \"value\",\n bufferValue: \"bufferValue\",\n mode: \"mode\"\n },\n outputs: {\n animationEnd: \"animationEnd\"\n },\n exportAs: [\"matProgressBar\"],\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 10,\n vars: 4,\n consts: [[\"primaryValueBar\", \"\"], [\"aria-hidden\", \"true\"], [\"width\", \"100%\", \"height\", \"4\", \"focusable\", \"false\", 1, \"mat-progress-bar-background\", \"mat-progress-bar-element\"], [\"x\", \"4\", \"y\", \"0\", \"width\", \"8\", \"height\", \"4\", \"patternUnits\", \"userSpaceOnUse\", 3, \"id\"], [\"cx\", \"2\", \"cy\", \"2\", \"r\", \"2\"], [\"width\", \"100%\", \"height\", \"100%\"], [1, \"mat-progress-bar-buffer\", \"mat-progress-bar-element\", 3, \"ngStyle\"], [1, \"mat-progress-bar-primary\", \"mat-progress-bar-fill\", \"mat-progress-bar-element\", 3, \"ngStyle\"], [1, \"mat-progress-bar-secondary\", \"mat-progress-bar-fill\", \"mat-progress-bar-element\"]],\n template: function MatLegacyProgressBar_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 1);\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(1, \"svg\", 2)(2, \"defs\")(3, \"pattern\", 3);\n i0.ɵɵelement(4, \"circle\", 4);\n i0.ɵɵelementEnd()();\n i0.ɵɵelement(5, \"rect\", 5);\n i0.ɵɵelementEnd();\n i0.ɵɵnamespaceHTML();\n i0.ɵɵelement(6, \"div\", 6)(7, \"div\", 7, 0)(9, \"div\", 8);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"id\", ctx.progressbarId);\n i0.ɵɵadvance(2);\n i0.ɵɵattribute(\"fill\", ctx._rectangleFillValue);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngStyle\", ctx._bufferTransform());\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngStyle\", ctx._primaryTransform());\n }\n },\n dependencies: [i1.NgStyle],\n styles: [\".mat-progress-bar{display:block;height:4px;overflow:hidden;position:relative;transition:opacity 250ms linear;width:100%}.mat-progress-bar._mat-animation-noopable{transition:none !important;animation:none !important}.mat-progress-bar .mat-progress-bar-element,.mat-progress-bar .mat-progress-bar-fill::after{height:100%;position:absolute;width:100%}.mat-progress-bar .mat-progress-bar-background{width:calc(100% + 10px)}.cdk-high-contrast-active .mat-progress-bar .mat-progress-bar-background{display:none}.mat-progress-bar .mat-progress-bar-buffer{transform-origin:top left;transition:transform 250ms ease}.cdk-high-contrast-active .mat-progress-bar .mat-progress-bar-buffer{border-top:solid 5px;opacity:.5}.mat-progress-bar .mat-progress-bar-secondary{display:none}.mat-progress-bar .mat-progress-bar-fill{animation:none;transform-origin:top left;transition:transform 250ms ease}.cdk-high-contrast-active .mat-progress-bar .mat-progress-bar-fill{border-top:solid 4px}.mat-progress-bar .mat-progress-bar-fill::after{animation:none;content:\\\"\\\";display:inline-block;left:0}.mat-progress-bar[dir=rtl],[dir=rtl] .mat-progress-bar{transform:rotateY(180deg)}.mat-progress-bar[mode=query]{transform:rotateZ(180deg)}.mat-progress-bar[mode=query][dir=rtl],[dir=rtl] .mat-progress-bar[mode=query]{transform:rotateZ(180deg) rotateY(180deg)}.mat-progress-bar[mode=indeterminate] .mat-progress-bar-fill,.mat-progress-bar[mode=query] .mat-progress-bar-fill{transition:none}.mat-progress-bar[mode=indeterminate] .mat-progress-bar-primary,.mat-progress-bar[mode=query] .mat-progress-bar-primary{-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:mat-progress-bar-primary-indeterminate-translate 2000ms infinite linear;left:-145.166611%}.mat-progress-bar[mode=indeterminate] .mat-progress-bar-primary.mat-progress-bar-fill::after,.mat-progress-bar[mode=query] .mat-progress-bar-primary.mat-progress-bar-fill::after{-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:mat-progress-bar-primary-indeterminate-scale 2000ms infinite linear}.mat-progress-bar[mode=indeterminate] .mat-progress-bar-secondary,.mat-progress-bar[mode=query] .mat-progress-bar-secondary{-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:mat-progress-bar-secondary-indeterminate-translate 2000ms infinite linear;left:-54.888891%;display:block}.mat-progress-bar[mode=indeterminate] .mat-progress-bar-secondary.mat-progress-bar-fill::after,.mat-progress-bar[mode=query] .mat-progress-bar-secondary.mat-progress-bar-fill::after{-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:mat-progress-bar-secondary-indeterminate-scale 2000ms infinite linear}.mat-progress-bar[mode=buffer] .mat-progress-bar-background{-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:mat-progress-bar-background-scroll 250ms infinite linear;display:block}.mat-progress-bar._mat-animation-noopable .mat-progress-bar-fill,.mat-progress-bar._mat-animation-noopable .mat-progress-bar-fill::after,.mat-progress-bar._mat-animation-noopable .mat-progress-bar-buffer,.mat-progress-bar._mat-animation-noopable .mat-progress-bar-primary,.mat-progress-bar._mat-animation-noopable .mat-progress-bar-primary.mat-progress-bar-fill::after,.mat-progress-bar._mat-animation-noopable .mat-progress-bar-secondary,.mat-progress-bar._mat-animation-noopable .mat-progress-bar-secondary.mat-progress-bar-fill::after,.mat-progress-bar._mat-animation-noopable .mat-progress-bar-background{animation:none;transition-duration:1ms}@keyframes mat-progress-bar-primary-indeterminate-translate{0%{transform:translateX(0)}20%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(0)}59.15%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(83.67142%)}100%{transform:translateX(200.611057%)}}@keyframes mat-progress-bar-primary-indeterminate-scale{0%{transform:scaleX(0.08)}36.65%{animation-timing-function:cubic-bezier(0.334731, 0.12482, 0.785844, 1);transform:scaleX(0.08)}69.15%{animation-timing-function:cubic-bezier(0.06, 0.11, 0.6, 1);transform:scaleX(0.661479)}100%{transform:scaleX(0.08)}}@keyframes mat-progress-bar-secondary-indeterminate-translate{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);transform:translateX(0)}25%{animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);transform:translateX(37.651913%)}48.35%{animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);transform:translateX(84.386165%)}100%{transform:translateX(160.277782%)}}@keyframes mat-progress-bar-secondary-indeterminate-scale{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);transform:scaleX(0.08)}19.15%{animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);transform:scaleX(0.457104)}44.15%{animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);transform:scaleX(0.72796)}100%{transform:scaleX(0.08)}}@keyframes mat-progress-bar-background-scroll{to{transform:translateX(-8px)}}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyProgressBar, [{\n type: Component,\n args: [{\n selector: 'mat-progress-bar',\n exportAs: 'matProgressBar',\n host: {\n 'role': 'progressbar',\n 'aria-valuemin': '0',\n 'aria-valuemax': '100',\n // set tab index to -1 so screen readers will read the aria-label\n // Note: there is a known issue with JAWS that does not read progressbar aria labels on FireFox\n 'tabindex': '-1',\n '[attr.aria-valuenow]': '(mode === \"indeterminate\" || mode === \"query\") ? null : value',\n '[attr.mode]': 'mode',\n 'class': 'mat-progress-bar',\n '[class._mat-animation-noopable]': '_isNoopAnimation'\n },\n inputs: ['color'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: \"\\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n\",\n styles: [\".mat-progress-bar{display:block;height:4px;overflow:hidden;position:relative;transition:opacity 250ms linear;width:100%}.mat-progress-bar._mat-animation-noopable{transition:none !important;animation:none !important}.mat-progress-bar .mat-progress-bar-element,.mat-progress-bar .mat-progress-bar-fill::after{height:100%;position:absolute;width:100%}.mat-progress-bar .mat-progress-bar-background{width:calc(100% + 10px)}.cdk-high-contrast-active .mat-progress-bar .mat-progress-bar-background{display:none}.mat-progress-bar .mat-progress-bar-buffer{transform-origin:top left;transition:transform 250ms ease}.cdk-high-contrast-active .mat-progress-bar .mat-progress-bar-buffer{border-top:solid 5px;opacity:.5}.mat-progress-bar .mat-progress-bar-secondary{display:none}.mat-progress-bar .mat-progress-bar-fill{animation:none;transform-origin:top left;transition:transform 250ms ease}.cdk-high-contrast-active .mat-progress-bar .mat-progress-bar-fill{border-top:solid 4px}.mat-progress-bar .mat-progress-bar-fill::after{animation:none;content:\\\"\\\";display:inline-block;left:0}.mat-progress-bar[dir=rtl],[dir=rtl] .mat-progress-bar{transform:rotateY(180deg)}.mat-progress-bar[mode=query]{transform:rotateZ(180deg)}.mat-progress-bar[mode=query][dir=rtl],[dir=rtl] .mat-progress-bar[mode=query]{transform:rotateZ(180deg) rotateY(180deg)}.mat-progress-bar[mode=indeterminate] .mat-progress-bar-fill,.mat-progress-bar[mode=query] .mat-progress-bar-fill{transition:none}.mat-progress-bar[mode=indeterminate] .mat-progress-bar-primary,.mat-progress-bar[mode=query] .mat-progress-bar-primary{-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:mat-progress-bar-primary-indeterminate-translate 2000ms infinite linear;left:-145.166611%}.mat-progress-bar[mode=indeterminate] .mat-progress-bar-primary.mat-progress-bar-fill::after,.mat-progress-bar[mode=query] .mat-progress-bar-primary.mat-progress-bar-fill::after{-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:mat-progress-bar-primary-indeterminate-scale 2000ms infinite linear}.mat-progress-bar[mode=indeterminate] .mat-progress-bar-secondary,.mat-progress-bar[mode=query] .mat-progress-bar-secondary{-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:mat-progress-bar-secondary-indeterminate-translate 2000ms infinite linear;left:-54.888891%;display:block}.mat-progress-bar[mode=indeterminate] .mat-progress-bar-secondary.mat-progress-bar-fill::after,.mat-progress-bar[mode=query] .mat-progress-bar-secondary.mat-progress-bar-fill::after{-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:mat-progress-bar-secondary-indeterminate-scale 2000ms infinite linear}.mat-progress-bar[mode=buffer] .mat-progress-bar-background{-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:mat-progress-bar-background-scroll 250ms infinite linear;display:block}.mat-progress-bar._mat-animation-noopable .mat-progress-bar-fill,.mat-progress-bar._mat-animation-noopable .mat-progress-bar-fill::after,.mat-progress-bar._mat-animation-noopable .mat-progress-bar-buffer,.mat-progress-bar._mat-animation-noopable .mat-progress-bar-primary,.mat-progress-bar._mat-animation-noopable .mat-progress-bar-primary.mat-progress-bar-fill::after,.mat-progress-bar._mat-animation-noopable .mat-progress-bar-secondary,.mat-progress-bar._mat-animation-noopable .mat-progress-bar-secondary.mat-progress-bar-fill::after,.mat-progress-bar._mat-animation-noopable .mat-progress-bar-background{animation:none;transition-duration:1ms}@keyframes mat-progress-bar-primary-indeterminate-translate{0%{transform:translateX(0)}20%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(0)}59.15%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(83.67142%)}100%{transform:translateX(200.611057%)}}@keyframes mat-progress-bar-primary-indeterminate-scale{0%{transform:scaleX(0.08)}36.65%{animation-timing-function:cubic-bezier(0.334731, 0.12482, 0.785844, 1);transform:scaleX(0.08)}69.15%{animation-timing-function:cubic-bezier(0.06, 0.11, 0.6, 1);transform:scaleX(0.661479)}100%{transform:scaleX(0.08)}}@keyframes mat-progress-bar-secondary-indeterminate-translate{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);transform:translateX(0)}25%{animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);transform:translateX(37.651913%)}48.35%{animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);transform:translateX(84.386165%)}100%{transform:translateX(160.277782%)}}@keyframes mat-progress-bar-secondary-indeterminate-scale{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);transform:scaleX(0.08)}19.15%{animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);transform:scaleX(0.457104)}44.15%{animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);transform:scaleX(0.72796)}100%{transform:scaleX(0.08)}}@keyframes mat-progress-bar-background-scroll{to{transform:translateX(-8px)}}\"]\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i0.NgZone\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_PROGRESS_BAR_LOCATION]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_PROGRESS_BAR_DEFAULT_OPTIONS]\n }]\n }, {\n type: i0.ChangeDetectorRef\n }];\n }, {\n value: [{\n type: Input\n }],\n bufferValue: [{\n type: Input\n }],\n _primaryValueBar: [{\n type: ViewChild,\n args: ['primaryValueBar']\n }],\n animationEnd: [{\n type: Output\n }],\n mode: [{\n type: Input\n }]\n });\n})();\n/** Clamps a value to be between two numbers, by default 0 and 100. */\nfunction clamp(v, min = 0, max = 100) {\n return Math.max(min, Math.min(max, v));\n}\n\n/**\n * @deprecated Use `MatProgressBarModule` from `@angular/material/progress-bar` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyProgressBarModule {\n static {\n this.ɵfac = function MatLegacyProgressBarModule_Factory(ɵt) {\n return new (ɵt || MatLegacyProgressBarModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatLegacyProgressBarModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule, MatCommonModule, MatCommonModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyProgressBarModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule, MatCommonModule],\n exports: [MatLegacyProgressBar, MatCommonModule],\n declarations: [MatLegacyProgressBar]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MatLegacyProgressBar, MatLegacyProgressBarModule };\n","import * as i0 from '@angular/core';\nimport { InjectionToken, Component, ChangeDetectionStrategy, ViewEncapsulation, Optional, Inject, ViewChild, Input, NgModule } from '@angular/core';\nimport { mixinColor, MatCommonModule } from '@angular/material/core';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\nimport { coerceNumberProperty } from '@angular/cdk/coercion';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\n\n// Boilerplate for applying mixins to MatProgressBar.\nconst _c0 = [\"determinateSpinner\"];\nfunction MatProgressSpinner_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 11);\n i0.ɵɵelement(1, \"circle\", 12);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵattribute(\"viewBox\", ctx_r0._viewBox());\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"stroke-dasharray\", ctx_r0._strokeCircumference(), \"px\")(\"stroke-dashoffset\", ctx_r0._strokeCircumference() / 2, \"px\")(\"stroke-width\", ctx_r0._circleStrokeWidth(), \"%\");\n i0.ɵɵattribute(\"r\", ctx_r0._circleRadius());\n }\n}\nconst _MatProgressSpinnerBase = mixinColor(class {\n constructor(_elementRef) {\n this._elementRef = _elementRef;\n }\n}, 'primary');\n/** Injection token to be used to override the default options for `mat-progress-spinner`. */\nconst MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS = new InjectionToken('mat-progress-spinner-default-options', {\n providedIn: 'root',\n factory: MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY\n});\n/** @docs-private */\nfunction MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY() {\n return {\n diameter: BASE_SIZE\n };\n}\n/**\n * Base reference size of the spinner.\n */\nconst BASE_SIZE = 100;\n/**\n * Base reference stroke width of the spinner.\n */\nconst BASE_STROKE_WIDTH = 10;\nclass MatProgressSpinner extends _MatProgressSpinnerBase {\n constructor(elementRef, animationMode, defaults) {\n super(elementRef);\n /**\n * Mode of the progress bar.\n *\n * Input must be one of these values: determinate, indeterminate, buffer, query, defaults to\n * 'determinate'.\n * Mirrored to mode attribute.\n */\n this.mode = this._elementRef.nativeElement.nodeName.toLowerCase() === 'mat-spinner' ? 'indeterminate' : 'determinate';\n this._value = 0;\n this._diameter = BASE_SIZE;\n this._noopAnimations = animationMode === 'NoopAnimations' && !!defaults && !defaults._forceAnimations;\n if (defaults) {\n if (defaults.color) {\n this.color = this.defaultColor = defaults.color;\n }\n if (defaults.diameter) {\n this.diameter = defaults.diameter;\n }\n if (defaults.strokeWidth) {\n this.strokeWidth = defaults.strokeWidth;\n }\n }\n }\n /** Value of the progress bar. Defaults to zero. Mirrored to aria-valuenow. */\n get value() {\n return this.mode === 'determinate' ? this._value : 0;\n }\n set value(v) {\n this._value = Math.max(0, Math.min(100, coerceNumberProperty(v)));\n }\n /** The diameter of the progress spinner (will set width and height of svg). */\n get diameter() {\n return this._diameter;\n }\n set diameter(size) {\n this._diameter = coerceNumberProperty(size);\n }\n /** Stroke width of the progress spinner. */\n get strokeWidth() {\n return this._strokeWidth ?? this.diameter / 10;\n }\n set strokeWidth(value) {\n this._strokeWidth = coerceNumberProperty(value);\n }\n /** The radius of the spinner, adjusted for stroke width. */\n _circleRadius() {\n return (this.diameter - BASE_STROKE_WIDTH) / 2;\n }\n /** The view box of the spinner's svg element. */\n _viewBox() {\n const viewBox = this._circleRadius() * 2 + this.strokeWidth;\n return `0 0 ${viewBox} ${viewBox}`;\n }\n /** The stroke circumference of the svg circle. */\n _strokeCircumference() {\n return 2 * Math.PI * this._circleRadius();\n }\n /** The dash offset of the svg circle. */\n _strokeDashOffset() {\n if (this.mode === 'determinate') {\n return this._strokeCircumference() * (100 - this._value) / 100;\n }\n return null;\n }\n /** Stroke width of the circle in percent. */\n _circleStrokeWidth() {\n return this.strokeWidth / this.diameter * 100;\n }\n static {\n this.ɵfac = function MatProgressSpinner_Factory(ɵt) {\n return new (ɵt || MatProgressSpinner)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8), i0.ɵɵdirectiveInject(MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatProgressSpinner,\n selectors: [[\"mat-progress-spinner\"], [\"mat-spinner\"]],\n viewQuery: function MatProgressSpinner_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._determinateCircle = _t.first);\n }\n },\n hostAttrs: [\"role\", \"progressbar\", \"tabindex\", \"-1\", 1, \"mat-mdc-progress-spinner\", \"mdc-circular-progress\"],\n hostVars: 16,\n hostBindings: function MatProgressSpinner_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-valuemin\", 0)(\"aria-valuemax\", 100)(\"aria-valuenow\", ctx.mode === \"determinate\" ? ctx.value : null)(\"mode\", ctx.mode);\n i0.ɵɵstyleProp(\"width\", ctx.diameter, \"px\")(\"height\", ctx.diameter, \"px\")(\"--mdc-circular-progress-size\", ctx.diameter + \"px\")(\"--mdc-circular-progress-active-indicator-width\", ctx.diameter + \"px\");\n i0.ɵɵclassProp(\"_mat-animation-noopable\", ctx._noopAnimations)(\"mdc-circular-progress--indeterminate\", ctx.mode === \"indeterminate\");\n }\n },\n inputs: {\n color: \"color\",\n mode: \"mode\",\n value: \"value\",\n diameter: \"diameter\",\n strokeWidth: \"strokeWidth\"\n },\n exportAs: [\"matProgressSpinner\"],\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 14,\n vars: 11,\n consts: [[\"circle\", \"\"], [\"determinateSpinner\", \"\"], [\"aria-hidden\", \"true\", 1, \"mdc-circular-progress__determinate-container\"], [\"xmlns\", \"http://www.w3.org/2000/svg\", \"focusable\", \"false\", 1, \"mdc-circular-progress__determinate-circle-graphic\"], [\"cx\", \"50%\", \"cy\", \"50%\", 1, \"mdc-circular-progress__determinate-circle\"], [\"aria-hidden\", \"true\", 1, \"mdc-circular-progress__indeterminate-container\"], [1, \"mdc-circular-progress__spinner-layer\"], [1, \"mdc-circular-progress__circle-clipper\", \"mdc-circular-progress__circle-left\"], [3, \"ngTemplateOutlet\"], [1, \"mdc-circular-progress__gap-patch\"], [1, \"mdc-circular-progress__circle-clipper\", \"mdc-circular-progress__circle-right\"], [\"xmlns\", \"http://www.w3.org/2000/svg\", \"focusable\", \"false\", 1, \"mdc-circular-progress__indeterminate-circle-graphic\"], [\"cx\", \"50%\", \"cy\", \"50%\"]],\n template: function MatProgressSpinner_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, MatProgressSpinner_ng_template_0_Template, 2, 8, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementStart(2, \"div\", 2, 1);\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(4, \"svg\", 3);\n i0.ɵɵelement(5, \"circle\", 4);\n i0.ɵɵelementEnd()();\n i0.ɵɵnamespaceHTML();\n i0.ɵɵelementStart(6, \"div\", 5)(7, \"div\", 6)(8, \"div\", 7);\n i0.ɵɵelementContainer(9, 8);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(10, \"div\", 9);\n i0.ɵɵelementContainer(11, 8);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(12, \"div\", 10);\n i0.ɵɵelementContainer(13, 8);\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n const circle_r2 = i0.ɵɵreference(1);\n i0.ɵɵadvance(4);\n i0.ɵɵattribute(\"viewBox\", ctx._viewBox());\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"stroke-dasharray\", ctx._strokeCircumference(), \"px\")(\"stroke-dashoffset\", ctx._strokeDashOffset(), \"px\")(\"stroke-width\", ctx._circleStrokeWidth(), \"%\");\n i0.ɵɵattribute(\"r\", ctx._circleRadius());\n i0.ɵɵadvance(4);\n i0.ɵɵproperty(\"ngTemplateOutlet\", circle_r2);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", circle_r2);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", circle_r2);\n }\n },\n dependencies: [i1.NgTemplateOutlet],\n styles: [\"@keyframes mdc-circular-progress-container-rotate{to{transform:rotate(360deg)}}@keyframes mdc-circular-progress-spinner-layer-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}100%{transform:rotate(1080deg)}}@keyframes mdc-circular-progress-color-1-fade-in-out{from{opacity:.99}25%{opacity:.99}26%{opacity:0}89%{opacity:0}90%{opacity:.99}to{opacity:.99}}@keyframes mdc-circular-progress-color-2-fade-in-out{from{opacity:0}15%{opacity:0}25%{opacity:.99}50%{opacity:.99}51%{opacity:0}to{opacity:0}}@keyframes mdc-circular-progress-color-3-fade-in-out{from{opacity:0}40%{opacity:0}50%{opacity:.99}75%{opacity:.99}76%{opacity:0}to{opacity:0}}@keyframes mdc-circular-progress-color-4-fade-in-out{from{opacity:0}65%{opacity:0}75%{opacity:.99}90%{opacity:.99}to{opacity:0}}@keyframes mdc-circular-progress-left-spin{from{transform:rotate(265deg)}50%{transform:rotate(130deg)}to{transform:rotate(265deg)}}@keyframes mdc-circular-progress-right-spin{from{transform:rotate(-265deg)}50%{transform:rotate(-130deg)}to{transform:rotate(-265deg)}}.mdc-circular-progress{display:inline-flex;position:relative;direction:ltr;line-height:0;transition:opacity 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-circular-progress__determinate-container,.mdc-circular-progress__indeterminate-circle-graphic,.mdc-circular-progress__indeterminate-container,.mdc-circular-progress__spinner-layer{position:absolute;width:100%;height:100%}.mdc-circular-progress__determinate-container{transform:rotate(-90deg)}.mdc-circular-progress__indeterminate-container{font-size:0;letter-spacing:0;white-space:nowrap;opacity:0}.mdc-circular-progress__determinate-circle-graphic,.mdc-circular-progress__indeterminate-circle-graphic{fill:rgba(0,0,0,0)}.mdc-circular-progress__determinate-circle{transition:stroke-dashoffset 500ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-circular-progress__gap-patch{position:absolute;top:0;left:47.5%;box-sizing:border-box;width:5%;height:100%;overflow:hidden}.mdc-circular-progress__gap-patch .mdc-circular-progress__indeterminate-circle-graphic{left:-900%;width:2000%;transform:rotate(180deg)}.mdc-circular-progress__circle-clipper{display:inline-flex;position:relative;width:50%;height:100%;overflow:hidden}.mdc-circular-progress__circle-clipper .mdc-circular-progress__indeterminate-circle-graphic{width:200%}.mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{left:-100%}.mdc-circular-progress--indeterminate .mdc-circular-progress__determinate-container{opacity:0}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{opacity:1}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{animation:mdc-circular-progress-container-rotate 1568.2352941176ms linear infinite}.mdc-circular-progress--indeterminate .mdc-circular-progress__spinner-layer{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-1{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-1-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-2{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-2-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-3{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-3-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-4{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-4-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-left .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--closed{opacity:0}.mat-mdc-progress-spinner{--mdc-circular-progress-active-indicator-width:4px;--mdc-circular-progress-size:48px}.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:var(--mdc-circular-progress-active-indicator-color)}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mat-mdc-progress-spinner circle{stroke-width:var(--mdc-circular-progress-active-indicator-width)}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-1 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-2 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-3 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-4 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mat-mdc-progress-spinner .mdc-circular-progress{width:var(--mdc-circular-progress-size) !important;height:var(--mdc-circular-progress-size) !important}.mat-mdc-progress-spinner{display:block;overflow:hidden;line-height:0}.mat-mdc-progress-spinner._mat-animation-noopable,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__determinate-circle{transition:none}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__spinner-layer,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container{animation:none}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container circle{stroke-dasharray:0 !important}.cdk-high-contrast-active .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic,.cdk-high-contrast-active .mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle{stroke:currentColor;stroke:CanvasText}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatProgressSpinner, [{\n type: Component,\n args: [{\n selector: 'mat-progress-spinner, mat-spinner',\n exportAs: 'matProgressSpinner',\n host: {\n 'role': 'progressbar',\n 'class': 'mat-mdc-progress-spinner mdc-circular-progress',\n // set tab index to -1 so screen readers will read the aria-label\n // Note: there is a known issue with JAWS that does not read progressbar aria labels on FireFox\n 'tabindex': '-1',\n '[class._mat-animation-noopable]': `_noopAnimations`,\n '[class.mdc-circular-progress--indeterminate]': 'mode === \"indeterminate\"',\n '[style.width.px]': 'diameter',\n '[style.height.px]': 'diameter',\n '[style.--mdc-circular-progress-size]': 'diameter + \"px\"',\n '[style.--mdc-circular-progress-active-indicator-width]': 'diameter + \"px\"',\n '[attr.aria-valuemin]': '0',\n '[attr.aria-valuemax]': '100',\n '[attr.aria-valuenow]': 'mode === \"determinate\" ? value : null',\n '[attr.mode]': 'mode'\n },\n inputs: ['color'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: \"\\n \\n \\n \\n\\n\\n\\n\\n \\n \\n \\n\\n\\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n\",\n styles: [\"@keyframes mdc-circular-progress-container-rotate{to{transform:rotate(360deg)}}@keyframes mdc-circular-progress-spinner-layer-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}100%{transform:rotate(1080deg)}}@keyframes mdc-circular-progress-color-1-fade-in-out{from{opacity:.99}25%{opacity:.99}26%{opacity:0}89%{opacity:0}90%{opacity:.99}to{opacity:.99}}@keyframes mdc-circular-progress-color-2-fade-in-out{from{opacity:0}15%{opacity:0}25%{opacity:.99}50%{opacity:.99}51%{opacity:0}to{opacity:0}}@keyframes mdc-circular-progress-color-3-fade-in-out{from{opacity:0}40%{opacity:0}50%{opacity:.99}75%{opacity:.99}76%{opacity:0}to{opacity:0}}@keyframes mdc-circular-progress-color-4-fade-in-out{from{opacity:0}65%{opacity:0}75%{opacity:.99}90%{opacity:.99}to{opacity:0}}@keyframes mdc-circular-progress-left-spin{from{transform:rotate(265deg)}50%{transform:rotate(130deg)}to{transform:rotate(265deg)}}@keyframes mdc-circular-progress-right-spin{from{transform:rotate(-265deg)}50%{transform:rotate(-130deg)}to{transform:rotate(-265deg)}}.mdc-circular-progress{display:inline-flex;position:relative;direction:ltr;line-height:0;transition:opacity 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-circular-progress__determinate-container,.mdc-circular-progress__indeterminate-circle-graphic,.mdc-circular-progress__indeterminate-container,.mdc-circular-progress__spinner-layer{position:absolute;width:100%;height:100%}.mdc-circular-progress__determinate-container{transform:rotate(-90deg)}.mdc-circular-progress__indeterminate-container{font-size:0;letter-spacing:0;white-space:nowrap;opacity:0}.mdc-circular-progress__determinate-circle-graphic,.mdc-circular-progress__indeterminate-circle-graphic{fill:rgba(0,0,0,0)}.mdc-circular-progress__determinate-circle{transition:stroke-dashoffset 500ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-circular-progress__gap-patch{position:absolute;top:0;left:47.5%;box-sizing:border-box;width:5%;height:100%;overflow:hidden}.mdc-circular-progress__gap-patch .mdc-circular-progress__indeterminate-circle-graphic{left:-900%;width:2000%;transform:rotate(180deg)}.mdc-circular-progress__circle-clipper{display:inline-flex;position:relative;width:50%;height:100%;overflow:hidden}.mdc-circular-progress__circle-clipper .mdc-circular-progress__indeterminate-circle-graphic{width:200%}.mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{left:-100%}.mdc-circular-progress--indeterminate .mdc-circular-progress__determinate-container{opacity:0}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{opacity:1}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{animation:mdc-circular-progress-container-rotate 1568.2352941176ms linear infinite}.mdc-circular-progress--indeterminate .mdc-circular-progress__spinner-layer{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-1{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-1-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-2{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-2-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-3{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-3-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-4{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-4-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-left .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--closed{opacity:0}.mat-mdc-progress-spinner{--mdc-circular-progress-active-indicator-width:4px;--mdc-circular-progress-size:48px}.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:var(--mdc-circular-progress-active-indicator-color)}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mat-mdc-progress-spinner circle{stroke-width:var(--mdc-circular-progress-active-indicator-width)}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-1 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-2 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-3 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-4 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mat-mdc-progress-spinner .mdc-circular-progress{width:var(--mdc-circular-progress-size) !important;height:var(--mdc-circular-progress-size) !important}.mat-mdc-progress-spinner{display:block;overflow:hidden;line-height:0}.mat-mdc-progress-spinner._mat-animation-noopable,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__determinate-circle{transition:none}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__spinner-layer,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container{animation:none}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container circle{stroke-dasharray:0 !important}.cdk-high-contrast-active .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic,.cdk-high-contrast-active .mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle{stroke:currentColor;stroke:CanvasText}\"]\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS]\n }]\n }];\n }, {\n _determinateCircle: [{\n type: ViewChild,\n args: ['determinateSpinner']\n }],\n mode: [{\n type: Input\n }],\n value: [{\n type: Input\n }],\n diameter: [{\n type: Input\n }],\n strokeWidth: [{\n type: Input\n }]\n });\n})();\n/**\n * @deprecated Import Progress Spinner instead. Note that the\n * `mat-spinner` selector isn't deprecated.\n * @breaking-change 16.0.0\n */\n// tslint:disable-next-line:variable-name\nconst MatSpinner = MatProgressSpinner;\nclass MatProgressSpinnerModule {\n static {\n this.ɵfac = function MatProgressSpinnerModule_Factory(ɵt) {\n return new (ɵt || MatProgressSpinnerModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatProgressSpinnerModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule, MatCommonModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatProgressSpinnerModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n exports: [MatProgressSpinner, MatSpinner, MatCommonModule],\n declarations: [MatProgressSpinner, MatSpinner]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS, MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY, MatProgressSpinner, MatProgressSpinnerModule, MatSpinner };\n","import { coerceNumberProperty } from '@angular/cdk/coercion';\nimport * as i1 from '@angular/cdk/platform';\nimport { _getShadowRoot } from '@angular/cdk/platform';\nimport * as i2 from '@angular/cdk/scrolling';\nimport * as i3 from '@angular/common';\nimport { DOCUMENT, CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { CSP_NONCE, Component, ChangeDetectionStrategy, ViewEncapsulation, Optional, Inject, Input, NgModule } from '@angular/core';\nimport { mixinColor, MatCommonModule } from '@angular/material/core';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\nimport { MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS } from '@angular/material/progress-spinner';\nfunction MatLegacyProgressSpinner__svg_circle_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelement(0, \"circle\", 4);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n const svg_r2 = i0.ɵɵreference(1);\n i0.ɵɵstyleProp(\"animation-name\", \"mat-progress-spinner-stroke-rotate-\" + ctx_r0._spinnerAnimationLabel)(\"stroke-dashoffset\", ctx_r0._getStrokeDashOffset(), \"px\")(\"stroke-dasharray\", ctx_r0._getStrokeCircumference(), \"px\")(\"stroke-width\", ctx_r0._getCircleStrokeWidth(), \"%\")(\"transform-origin\", ctx_r0._getCircleTransformOrigin(svg_r2));\n i0.ɵɵattribute(\"r\", ctx_r0._getCircleRadius());\n }\n}\nfunction MatLegacyProgressSpinner__svg_circle_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelement(0, \"circle\", 4);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n const svg_r2 = i0.ɵɵreference(1);\n i0.ɵɵstyleProp(\"stroke-dashoffset\", ctx_r0._getStrokeDashOffset(), \"px\")(\"stroke-dasharray\", ctx_r0._getStrokeCircumference(), \"px\")(\"stroke-width\", ctx_r0._getCircleStrokeWidth(), \"%\")(\"transform-origin\", ctx_r0._getCircleTransformOrigin(svg_r2));\n i0.ɵɵattribute(\"r\", ctx_r0._getCircleRadius());\n }\n}\nexport { MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS as MAT_LEGACY_PROGRESS_SPINNER_DEFAULT_OPTIONS, MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY as MAT_LEGACY_PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY } from '@angular/material/progress-spinner';\nimport { Subscription } from 'rxjs';\n\n/**\n * Base reference size of the spinner.\n * @docs-private\n */\nconst BASE_SIZE = 100;\n/**\n * Base reference stroke width of the spinner.\n * @docs-private\n */\nconst BASE_STROKE_WIDTH = 10;\n// Boilerplate for applying mixins to MatLegacyProgressSpinner.\n/** @docs-private */\nconst _MatProgressSpinnerBase = mixinColor(class {\n constructor(_elementRef) {\n this._elementRef = _elementRef;\n }\n}, 'primary');\n// .0001 percentage difference is necessary in order to avoid unwanted animation frames\n// for example because the animation duration is 4 seconds, .1% accounts to 4ms\n// which are enough to see the flicker described in\n// https://github.com/angular/components/issues/8984\nconst INDETERMINATE_ANIMATION_TEMPLATE = `\n @keyframes mat-progress-spinner-stroke-rotate-DIAMETER {\n 0% { stroke-dashoffset: START_VALUE; transform: rotate(0); }\n 12.5% { stroke-dashoffset: END_VALUE; transform: rotate(0); }\n 12.5001% { stroke-dashoffset: END_VALUE; transform: rotateX(180deg) rotate(72.5deg); }\n 25% { stroke-dashoffset: START_VALUE; transform: rotateX(180deg) rotate(72.5deg); }\n\n 25.0001% { stroke-dashoffset: START_VALUE; transform: rotate(270deg); }\n 37.5% { stroke-dashoffset: END_VALUE; transform: rotate(270deg); }\n 37.5001% { stroke-dashoffset: END_VALUE; transform: rotateX(180deg) rotate(161.5deg); }\n 50% { stroke-dashoffset: START_VALUE; transform: rotateX(180deg) rotate(161.5deg); }\n\n 50.0001% { stroke-dashoffset: START_VALUE; transform: rotate(180deg); }\n 62.5% { stroke-dashoffset: END_VALUE; transform: rotate(180deg); }\n 62.5001% { stroke-dashoffset: END_VALUE; transform: rotateX(180deg) rotate(251.5deg); }\n 75% { stroke-dashoffset: START_VALUE; transform: rotateX(180deg) rotate(251.5deg); }\n\n 75.0001% { stroke-dashoffset: START_VALUE; transform: rotate(90deg); }\n 87.5% { stroke-dashoffset: END_VALUE; transform: rotate(90deg); }\n 87.5001% { stroke-dashoffset: END_VALUE; transform: rotateX(180deg) rotate(341.5deg); }\n 100% { stroke-dashoffset: START_VALUE; transform: rotateX(180deg) rotate(341.5deg); }\n }\n`;\n/**\n * `` component.\n * @deprecated Use `MatProgressSpinner` from `@angular/material/progress-spinner` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyProgressSpinner extends _MatProgressSpinnerBase {\n /**\n * Tracks diameters of existing instances to de-dupe generated styles (default d = 100).\n * We need to keep track of which elements the diameters were attached to, because for\n * elements in the Shadow DOM the style tags are attached to the shadow root, rather\n * than the document head.\n */\n static {\n this._diameters = new WeakMap();\n }\n /** The diameter of the progress spinner (will set width and height of svg). */\n get diameter() {\n return this._diameter;\n }\n set diameter(size) {\n this._diameter = coerceNumberProperty(size);\n this._spinnerAnimationLabel = this._getSpinnerAnimationLabel();\n // If this is set before `ngOnInit`, the style root may not have been resolved yet.\n if (this._styleRoot) {\n this._attachStyleNode();\n }\n }\n /** Stroke width of the progress spinner. */\n get strokeWidth() {\n return this._strokeWidth || this.diameter / 10;\n }\n set strokeWidth(value) {\n this._strokeWidth = coerceNumberProperty(value);\n }\n /** Value of the progress circle. */\n get value() {\n return this.mode === 'determinate' ? this._value : 0;\n }\n set value(newValue) {\n this._value = Math.max(0, Math.min(100, coerceNumberProperty(newValue)));\n }\n constructor(elementRef, _platform, _document, animationMode, defaults,\n /**\n * @deprecated `changeDetectorRef`, `viewportRuler` and `ngZone`\n * parameters to become required.\n * @breaking-change 14.0.0\n */\n changeDetectorRef, viewportRuler, ngZone, _nonce) {\n super(elementRef);\n this._document = _document;\n this._nonce = _nonce;\n this._diameter = BASE_SIZE;\n this._value = 0;\n this._resizeSubscription = Subscription.EMPTY;\n /** Mode of the progress circle */\n this.mode = 'determinate';\n const trackedDiameters = MatLegacyProgressSpinner._diameters;\n this._spinnerAnimationLabel = this._getSpinnerAnimationLabel();\n // The base size is already inserted via the component's structural styles. We still\n // need to track it so we don't end up adding the same styles again.\n if (!trackedDiameters.has(_document.head)) {\n trackedDiameters.set(_document.head, new Set([BASE_SIZE]));\n }\n this._noopAnimations = animationMode === 'NoopAnimations' && !!defaults && !defaults._forceAnimations;\n if (elementRef.nativeElement.nodeName.toLowerCase() === 'mat-spinner') {\n this.mode = 'indeterminate';\n }\n if (defaults) {\n if (defaults.color) {\n this.color = this.defaultColor = defaults.color;\n }\n if (defaults.diameter) {\n this.diameter = defaults.diameter;\n }\n if (defaults.strokeWidth) {\n this.strokeWidth = defaults.strokeWidth;\n }\n }\n // Safari has an issue where the circle isn't positioned correctly when the page has a\n // different zoom level from the default. This handler triggers a recalculation of the\n // `transform-origin` when the page zoom level changes.\n // See `_getCircleTransformOrigin` for more info.\n // @breaking-change 14.0.0 Remove null checks for `_changeDetectorRef`,\n // `viewportRuler` and `ngZone`.\n if (_platform.isBrowser && _platform.SAFARI && viewportRuler && changeDetectorRef && ngZone) {\n this._resizeSubscription = viewportRuler.change(150).subscribe(() => {\n // When the window is resize while the spinner is in `indeterminate` mode, we\n // have to mark for check so the transform origin of the circle can be recomputed.\n if (this.mode === 'indeterminate') {\n ngZone.run(() => changeDetectorRef.markForCheck());\n }\n });\n }\n }\n ngOnInit() {\n const element = this._elementRef.nativeElement;\n // Note that we need to look up the root node in ngOnInit, rather than the constructor, because\n // Angular seems to create the element outside the shadow root and then moves it inside, if the\n // node is inside an `ngIf` and a ShadowDom-encapsulated component.\n this._styleRoot = _getShadowRoot(element) || this._document.head;\n this._attachStyleNode();\n element.classList.add('mat-progress-spinner-indeterminate-animation');\n }\n ngOnDestroy() {\n this._resizeSubscription.unsubscribe();\n }\n /** The radius of the spinner, adjusted for stroke width. */\n _getCircleRadius() {\n return (this.diameter - BASE_STROKE_WIDTH) / 2;\n }\n /** The view box of the spinner's svg element. */\n _getViewBox() {\n const viewBox = this._getCircleRadius() * 2 + this.strokeWidth;\n return `0 0 ${viewBox} ${viewBox}`;\n }\n /** The stroke circumference of the svg circle. */\n _getStrokeCircumference() {\n return 2 * Math.PI * this._getCircleRadius();\n }\n /** The dash offset of the svg circle. */\n _getStrokeDashOffset() {\n if (this.mode === 'determinate') {\n return this._getStrokeCircumference() * (100 - this._value) / 100;\n }\n return null;\n }\n /** Stroke width of the circle in percent. */\n _getCircleStrokeWidth() {\n return this.strokeWidth / this.diameter * 100;\n }\n /** Gets the `transform-origin` for the inner circle element. */\n _getCircleTransformOrigin(svg) {\n // Safari has an issue where the `transform-origin` doesn't work as expected when the page\n // has a different zoom level from the default. The problem appears to be that a zoom\n // is applied on the `svg` node itself. We can work around it by calculating the origin\n // based on the zoom level. On all other browsers the `currentScale` appears to always be 1.\n const scale = (svg.currentScale ?? 1) * 50;\n return `${scale}% ${scale}%`;\n }\n /** Dynamically generates a style tag containing the correct animation for this diameter. */\n _attachStyleNode() {\n const styleRoot = this._styleRoot;\n const currentDiameter = this._diameter;\n const diameters = MatLegacyProgressSpinner._diameters;\n let diametersForElement = diameters.get(styleRoot);\n if (!diametersForElement || !diametersForElement.has(currentDiameter)) {\n const styleTag = this._document.createElement('style');\n if (this._nonce) {\n styleTag.nonce = this._nonce;\n }\n styleTag.setAttribute('mat-spinner-animation', this._spinnerAnimationLabel);\n styleTag.textContent = this._getAnimationText();\n styleRoot.appendChild(styleTag);\n if (!diametersForElement) {\n diametersForElement = new Set();\n diameters.set(styleRoot, diametersForElement);\n }\n diametersForElement.add(currentDiameter);\n }\n }\n /** Generates animation styles adjusted for the spinner's diameter. */\n _getAnimationText() {\n const strokeCircumference = this._getStrokeCircumference();\n return INDETERMINATE_ANIMATION_TEMPLATE\n // Animation should begin at 5% and end at 80%\n .replace(/START_VALUE/g, `${0.95 * strokeCircumference}`).replace(/END_VALUE/g, `${0.2 * strokeCircumference}`).replace(/DIAMETER/g, `${this._spinnerAnimationLabel}`);\n }\n /** Returns the circle diameter formatted for use with the animation-name CSS property. */\n _getSpinnerAnimationLabel() {\n // The string of a float point number will include a period ‘.’ character,\n // which is not valid for a CSS animation-name.\n return this.diameter.toString().replace('.', '_');\n }\n static {\n this.ɵfac = function MatLegacyProgressSpinner_Factory(ɵt) {\n return new (ɵt || MatLegacyProgressSpinner)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(DOCUMENT, 8), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8), i0.ɵɵdirectiveInject(MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i2.ViewportRuler), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(CSP_NONCE, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatLegacyProgressSpinner,\n selectors: [[\"mat-progress-spinner\"], [\"mat-spinner\"]],\n hostAttrs: [\"role\", \"progressbar\", \"tabindex\", \"-1\", 1, \"mat-progress-spinner\", \"mat-spinner\"],\n hostVars: 10,\n hostBindings: function MatLegacyProgressSpinner_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-valuemin\", ctx.mode === \"determinate\" ? 0 : null)(\"aria-valuemax\", ctx.mode === \"determinate\" ? 100 : null)(\"aria-valuenow\", ctx.mode === \"determinate\" ? ctx.value : null)(\"mode\", ctx.mode);\n i0.ɵɵstyleProp(\"width\", ctx.diameter, \"px\")(\"height\", ctx.diameter, \"px\");\n i0.ɵɵclassProp(\"_mat-animation-noopable\", ctx._noopAnimations);\n }\n },\n inputs: {\n color: \"color\",\n diameter: \"diameter\",\n strokeWidth: \"strokeWidth\",\n mode: \"mode\",\n value: \"value\"\n },\n exportAs: [\"matProgressSpinner\"],\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 4,\n vars: 8,\n consts: [[\"svg\", \"\"], [\"preserveAspectRatio\", \"xMidYMid meet\", \"focusable\", \"false\", \"aria-hidden\", \"true\", 3, \"ngSwitch\"], [\"cx\", \"50%\", \"cy\", \"50%\", 3, \"animation-name\", \"stroke-dashoffset\", \"stroke-dasharray\", \"stroke-width\", \"transform-origin\", 4, \"ngSwitchCase\"], [\"cx\", \"50%\", \"cy\", \"50%\", 3, \"stroke-dashoffset\", \"stroke-dasharray\", \"stroke-width\", \"transform-origin\", 4, \"ngSwitchCase\"], [\"cx\", \"50%\", \"cy\", \"50%\"]],\n template: function MatLegacyProgressSpinner_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 1, 0);\n i0.ɵɵtemplate(2, MatLegacyProgressSpinner__svg_circle_2_Template, 1, 11, \"circle\", 2)(3, MatLegacyProgressSpinner__svg_circle_3_Template, 1, 9, \"circle\", 3);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵstyleProp(\"width\", ctx.diameter, \"px\")(\"height\", ctx.diameter, \"px\");\n i0.ɵɵproperty(\"ngSwitch\", ctx.mode === \"indeterminate\");\n i0.ɵɵattribute(\"viewBox\", ctx._getViewBox());\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngSwitchCase\", true);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngSwitchCase\", false);\n }\n },\n dependencies: [i3.NgSwitch, i3.NgSwitchCase],\n styles: [\".mat-progress-spinner{display:block;position:relative;overflow:hidden}.mat-progress-spinner svg{position:absolute;transform:rotate(-90deg);top:0;left:0;transform-origin:center;overflow:visible}.mat-progress-spinner circle{fill:rgba(0,0,0,0);transition:stroke-dashoffset 225ms linear}.cdk-high-contrast-active .mat-progress-spinner circle{stroke:CanvasText}.mat-progress-spinner[mode=indeterminate] svg{animation:mat-progress-spinner-linear-rotate 2000ms linear infinite}.mat-progress-spinner[mode=indeterminate] circle{transition-property:stroke;animation-duration:4000ms;animation-timing-function:cubic-bezier(0.35, 0, 0.25, 1);animation-iteration-count:infinite}.mat-progress-spinner._mat-animation-noopable svg,.mat-progress-spinner._mat-animation-noopable circle{animation:none;transition:none}@keyframes mat-progress-spinner-linear-rotate{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes mat-progress-spinner-stroke-rotate-100{0%{stroke-dashoffset:268.606171575px;transform:rotate(0)}12.5%{stroke-dashoffset:56.5486677px;transform:rotate(0)}12.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(72.5deg)}25%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(72.5deg)}25.0001%{stroke-dashoffset:268.606171575px;transform:rotate(270deg)}37.5%{stroke-dashoffset:56.5486677px;transform:rotate(270deg)}37.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(161.5deg)}50%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(161.5deg)}50.0001%{stroke-dashoffset:268.606171575px;transform:rotate(180deg)}62.5%{stroke-dashoffset:56.5486677px;transform:rotate(180deg)}62.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(251.5deg)}75%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(251.5deg)}75.0001%{stroke-dashoffset:268.606171575px;transform:rotate(90deg)}87.5%{stroke-dashoffset:56.5486677px;transform:rotate(90deg)}87.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(341.5deg)}100%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(341.5deg)}}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyProgressSpinner, [{\n type: Component,\n args: [{\n selector: 'mat-progress-spinner, mat-spinner',\n exportAs: 'matProgressSpinner',\n host: {\n 'role': 'progressbar',\n // `mat-spinner` is here for backward compatibility.\n 'class': 'mat-progress-spinner mat-spinner',\n // set tab index to -1 so screen readers will read the aria-label\n // Note: there is a known issue with JAWS that does not read progressbar aria labels on FireFox\n 'tabindex': '-1',\n '[class._mat-animation-noopable]': `_noopAnimations`,\n '[style.width.px]': 'diameter',\n '[style.height.px]': 'diameter',\n '[attr.aria-valuemin]': 'mode === \"determinate\" ? 0 : null',\n '[attr.aria-valuemax]': 'mode === \"determinate\" ? 100 : null',\n '[attr.aria-valuenow]': 'mode === \"determinate\" ? value : null',\n '[attr.mode]': 'mode'\n },\n inputs: ['color'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: \"\\n\\n\\n\\n \\n \\n\\n \\n\\n\",\n styles: [\".mat-progress-spinner{display:block;position:relative;overflow:hidden}.mat-progress-spinner svg{position:absolute;transform:rotate(-90deg);top:0;left:0;transform-origin:center;overflow:visible}.mat-progress-spinner circle{fill:rgba(0,0,0,0);transition:stroke-dashoffset 225ms linear}.cdk-high-contrast-active .mat-progress-spinner circle{stroke:CanvasText}.mat-progress-spinner[mode=indeterminate] svg{animation:mat-progress-spinner-linear-rotate 2000ms linear infinite}.mat-progress-spinner[mode=indeterminate] circle{transition-property:stroke;animation-duration:4000ms;animation-timing-function:cubic-bezier(0.35, 0, 0.25, 1);animation-iteration-count:infinite}.mat-progress-spinner._mat-animation-noopable svg,.mat-progress-spinner._mat-animation-noopable circle{animation:none;transition:none}@keyframes mat-progress-spinner-linear-rotate{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes mat-progress-spinner-stroke-rotate-100{0%{stroke-dashoffset:268.606171575px;transform:rotate(0)}12.5%{stroke-dashoffset:56.5486677px;transform:rotate(0)}12.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(72.5deg)}25%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(72.5deg)}25.0001%{stroke-dashoffset:268.606171575px;transform:rotate(270deg)}37.5%{stroke-dashoffset:56.5486677px;transform:rotate(270deg)}37.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(161.5deg)}50%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(161.5deg)}50.0001%{stroke-dashoffset:268.606171575px;transform:rotate(180deg)}62.5%{stroke-dashoffset:56.5486677px;transform:rotate(180deg)}62.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(251.5deg)}75%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(251.5deg)}75.0001%{stroke-dashoffset:268.606171575px;transform:rotate(90deg)}87.5%{stroke-dashoffset:56.5486677px;transform:rotate(90deg)}87.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(341.5deg)}100%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(341.5deg)}}\"]\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i1.Platform\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [DOCUMENT]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS]\n }]\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: i2.ViewportRuler\n }, {\n type: i0.NgZone\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [CSP_NONCE]\n }, {\n type: Optional\n }]\n }];\n }, {\n diameter: [{\n type: Input\n }],\n strokeWidth: [{\n type: Input\n }],\n mode: [{\n type: Input\n }],\n value: [{\n type: Input\n }]\n });\n})();\n\n/**\n * @deprecated Use `MatProgressSpinnerModule` from `@angular/material/progress-spinner` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyProgressSpinnerModule {\n static {\n this.ɵfac = function MatLegacyProgressSpinnerModule_Factory(ɵt) {\n return new (ɵt || MatLegacyProgressSpinnerModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatLegacyProgressSpinnerModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [MatCommonModule, CommonModule, MatCommonModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyProgressSpinnerModule, [{\n type: NgModule,\n args: [{\n imports: [MatCommonModule, CommonModule],\n exports: [MatLegacyProgressSpinner, MatCommonModule],\n declarations: [MatLegacyProgressSpinner]\n }]\n }], null, null);\n})();\n\n/**\n * @deprecated Import Progress Spinner instead. Note that the\n * `mat-spinner` selector isn't deprecated.\n * @breaking-change 8.0.0\n */\n// tslint:disable-next-line:variable-name\nconst MatLegacySpinner = MatLegacyProgressSpinner;\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MatLegacyProgressSpinner, MatLegacyProgressSpinnerModule, MatLegacySpinner };\n","import * as i0 from '@angular/core';\nimport { Component, ViewEncapsulation, ChangeDetectionStrategy, Input, NgModule } from '@angular/core';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { MatCommonModule } from '@angular/material/core';\nclass MatDivider {\n constructor() {\n this._vertical = false;\n this._inset = false;\n }\n /** Whether the divider is vertically aligned. */\n get vertical() {\n return this._vertical;\n }\n set vertical(value) {\n this._vertical = coerceBooleanProperty(value);\n }\n /** Whether the divider is an inset divider. */\n get inset() {\n return this._inset;\n }\n set inset(value) {\n this._inset = coerceBooleanProperty(value);\n }\n static {\n this.ɵfac = function MatDivider_Factory(ɵt) {\n return new (ɵt || MatDivider)();\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatDivider,\n selectors: [[\"mat-divider\"]],\n hostAttrs: [\"role\", \"separator\", 1, \"mat-divider\"],\n hostVars: 7,\n hostBindings: function MatDivider_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-orientation\", ctx.vertical ? \"vertical\" : \"horizontal\");\n i0.ɵɵclassProp(\"mat-divider-vertical\", ctx.vertical)(\"mat-divider-horizontal\", !ctx.vertical)(\"mat-divider-inset\", ctx.inset);\n }\n },\n inputs: {\n vertical: \"vertical\",\n inset: \"inset\"\n },\n decls: 0,\n vars: 0,\n template: function MatDivider_Template(rf, ctx) {},\n styles: [\".mat-divider{--mat-divider-width:1px;display:block;margin:0;border-top-style:solid;border-top-color:var(--mat-divider-color);border-top-width:var(--mat-divider-width)}.mat-divider.mat-divider-vertical{border-top:0;border-right-style:solid;border-right-color:var(--mat-divider-color);border-right-width:var(--mat-divider-width)}.mat-divider.mat-divider-inset{margin-left:80px}[dir=rtl] .mat-divider.mat-divider-inset{margin-left:auto;margin-right:80px}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatDivider, [{\n type: Component,\n args: [{\n selector: 'mat-divider',\n host: {\n 'role': 'separator',\n '[attr.aria-orientation]': 'vertical ? \"vertical\" : \"horizontal\"',\n '[class.mat-divider-vertical]': 'vertical',\n '[class.mat-divider-horizontal]': '!vertical',\n '[class.mat-divider-inset]': 'inset',\n 'class': 'mat-divider'\n },\n template: '',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n styles: [\".mat-divider{--mat-divider-width:1px;display:block;margin:0;border-top-style:solid;border-top-color:var(--mat-divider-color);border-top-width:var(--mat-divider-width)}.mat-divider.mat-divider-vertical{border-top:0;border-right-style:solid;border-right-color:var(--mat-divider-color);border-right-width:var(--mat-divider-width)}.mat-divider.mat-divider-inset{margin-left:80px}[dir=rtl] .mat-divider.mat-divider-inset{margin-left:auto;margin-right:80px}\"]\n }]\n }], null, {\n vertical: [{\n type: Input\n }],\n inset: [{\n type: Input\n }]\n });\n})();\nclass MatDividerModule {\n static {\n this.ɵfac = function MatDividerModule_Factory(ɵt) {\n return new (ɵt || MatDividerModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatDividerModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [MatCommonModule, MatCommonModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatDividerModule, [{\n type: NgModule,\n args: [{\n imports: [MatCommonModule],\n exports: [MatDivider, MatCommonModule],\n declarations: [MatDivider]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MatDivider, MatDividerModule };\n","import * as i0 from '@angular/core';\nimport { SecurityContext, Injectable, Optional, Inject, SkipSelf, ErrorHandler, InjectionToken, inject, Component, ViewEncapsulation, ChangeDetectionStrategy, Attribute, Input, NgModule } from '@angular/core';\nimport { mixinColor, MatCommonModule } from '@angular/material/core';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { DOCUMENT } from '@angular/common';\nimport { of, throwError, forkJoin, Subscription } from 'rxjs';\nimport { tap, map, catchError, finalize, share, take } from 'rxjs/operators';\nimport * as i1 from '@angular/common/http';\nimport { HttpClient } from '@angular/common/http';\nimport * as i2 from '@angular/platform-browser';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n/**\n * The Trusted Types policy, or null if Trusted Types are not\n * enabled/supported, or undefined if the policy has not been created yet.\n */\nconst _c0 = [\"*\"];\nlet policy;\n/**\n * Returns the Trusted Types policy, or null if Trusted Types are not\n * enabled/supported. The first call to this function will create the policy.\n */\nfunction getPolicy() {\n if (policy === undefined) {\n policy = null;\n if (typeof window !== 'undefined') {\n const ttWindow = window;\n if (ttWindow.trustedTypes !== undefined) {\n policy = ttWindow.trustedTypes.createPolicy('angular#components', {\n createHTML: s => s\n });\n }\n }\n }\n return policy;\n}\n/**\n * Unsafely promote a string to a TrustedHTML, falling back to strings when\n * Trusted Types are not available.\n * @security This is a security-sensitive function; any use of this function\n * must go through security review. In particular, it must be assured that the\n * provided string will never cause an XSS vulnerability if used in a context\n * that will be interpreted as HTML by a browser, e.g. when assigning to\n * element.innerHTML.\n */\nfunction trustedHTMLFromString(html) {\n return getPolicy()?.createHTML(html) || html;\n}\n\n/**\n * Returns an exception to be thrown in the case when attempting to\n * load an icon with a name that cannot be found.\n * @docs-private\n */\nfunction getMatIconNameNotFoundError(iconName) {\n return Error(`Unable to find icon with the name \"${iconName}\"`);\n}\n/**\n * Returns an exception to be thrown when the consumer attempts to use\n * `` without including @angular/common/http.\n * @docs-private\n */\nfunction getMatIconNoHttpProviderError() {\n return Error('Could not find HttpClient provider for use with Angular Material icons. ' + 'Please include the HttpClientModule from @angular/common/http in your ' + 'app imports.');\n}\n/**\n * Returns an exception to be thrown when a URL couldn't be sanitized.\n * @param url URL that was attempted to be sanitized.\n * @docs-private\n */\nfunction getMatIconFailedToSanitizeUrlError(url) {\n return Error(`The URL provided to MatIconRegistry was not trusted as a resource URL ` + `via Angular's DomSanitizer. Attempted URL was \"${url}\".`);\n}\n/**\n * Returns an exception to be thrown when a HTML string couldn't be sanitized.\n * @param literal HTML that was attempted to be sanitized.\n * @docs-private\n */\nfunction getMatIconFailedToSanitizeLiteralError(literal) {\n return Error(`The literal provided to MatIconRegistry was not trusted as safe HTML by ` + `Angular's DomSanitizer. Attempted literal was \"${literal}\".`);\n}\n/**\n * Configuration for an icon, including the URL and possibly the cached SVG element.\n * @docs-private\n */\nclass SvgIconConfig {\n constructor(url, svgText, options) {\n this.url = url;\n this.svgText = svgText;\n this.options = options;\n }\n}\n/**\n * Service to register and display icons used by the `` component.\n * - Registers icon URLs by namespace and name.\n * - Registers icon set URLs by namespace.\n * - Registers aliases for CSS classes, for use with icon fonts.\n * - Loads icons from URLs and extracts individual icons from icon sets.\n */\nclass MatIconRegistry {\n constructor(_httpClient, _sanitizer, document, _errorHandler) {\n this._httpClient = _httpClient;\n this._sanitizer = _sanitizer;\n this._errorHandler = _errorHandler;\n /**\n * URLs and cached SVG elements for individual icons. Keys are of the format \"[namespace]:[icon]\".\n */\n this._svgIconConfigs = new Map();\n /**\n * SvgIconConfig objects and cached SVG elements for icon sets, keyed by namespace.\n * Multiple icon sets can be registered under the same namespace.\n */\n this._iconSetConfigs = new Map();\n /** Cache for icons loaded by direct URLs. */\n this._cachedIconsByUrl = new Map();\n /** In-progress icon fetches. Used to coalesce multiple requests to the same URL. */\n this._inProgressUrlFetches = new Map();\n /** Map from font identifiers to their CSS class names. Used for icon fonts. */\n this._fontCssClassesByAlias = new Map();\n /** Registered icon resolver functions. */\n this._resolvers = [];\n /**\n * The CSS classes to apply when an `` component has no icon name, url, or font\n * specified. The default 'material-icons' value assumes that the material icon font has been\n * loaded as described at https://google.github.io/material-design-icons/#icon-font-for-the-web\n */\n this._defaultFontSetClass = ['material-icons', 'mat-ligature-font'];\n this._document = document;\n }\n /**\n * Registers an icon by URL in the default namespace.\n * @param iconName Name under which the icon should be registered.\n * @param url\n */\n addSvgIcon(iconName, url, options) {\n return this.addSvgIconInNamespace('', iconName, url, options);\n }\n /**\n * Registers an icon using an HTML string in the default namespace.\n * @param iconName Name under which the icon should be registered.\n * @param literal SVG source of the icon.\n */\n addSvgIconLiteral(iconName, literal, options) {\n return this.addSvgIconLiteralInNamespace('', iconName, literal, options);\n }\n /**\n * Registers an icon by URL in the specified namespace.\n * @param namespace Namespace in which the icon should be registered.\n * @param iconName Name under which the icon should be registered.\n * @param url\n */\n addSvgIconInNamespace(namespace, iconName, url, options) {\n return this._addSvgIconConfig(namespace, iconName, new SvgIconConfig(url, null, options));\n }\n /**\n * Registers an icon resolver function with the registry. The function will be invoked with the\n * name and namespace of an icon when the registry tries to resolve the URL from which to fetch\n * the icon. The resolver is expected to return a `SafeResourceUrl` that points to the icon,\n * an object with the icon URL and icon options, or `null` if the icon is not supported. Resolvers\n * will be invoked in the order in which they have been registered.\n * @param resolver Resolver function to be registered.\n */\n addSvgIconResolver(resolver) {\n this._resolvers.push(resolver);\n return this;\n }\n /**\n * Registers an icon using an HTML string in the specified namespace.\n * @param namespace Namespace in which the icon should be registered.\n * @param iconName Name under which the icon should be registered.\n * @param literal SVG source of the icon.\n */\n addSvgIconLiteralInNamespace(namespace, iconName, literal, options) {\n const cleanLiteral = this._sanitizer.sanitize(SecurityContext.HTML, literal);\n // TODO: add an ngDevMode check\n if (!cleanLiteral) {\n throw getMatIconFailedToSanitizeLiteralError(literal);\n }\n // Security: The literal is passed in as SafeHtml, and is thus trusted.\n const trustedLiteral = trustedHTMLFromString(cleanLiteral);\n return this._addSvgIconConfig(namespace, iconName, new SvgIconConfig('', trustedLiteral, options));\n }\n /**\n * Registers an icon set by URL in the default namespace.\n * @param url\n */\n addSvgIconSet(url, options) {\n return this.addSvgIconSetInNamespace('', url, options);\n }\n /**\n * Registers an icon set using an HTML string in the default namespace.\n * @param literal SVG source of the icon set.\n */\n addSvgIconSetLiteral(literal, options) {\n return this.addSvgIconSetLiteralInNamespace('', literal, options);\n }\n /**\n * Registers an icon set by URL in the specified namespace.\n * @param namespace Namespace in which to register the icon set.\n * @param url\n */\n addSvgIconSetInNamespace(namespace, url, options) {\n return this._addSvgIconSetConfig(namespace, new SvgIconConfig(url, null, options));\n }\n /**\n * Registers an icon set using an HTML string in the specified namespace.\n * @param namespace Namespace in which to register the icon set.\n * @param literal SVG source of the icon set.\n */\n addSvgIconSetLiteralInNamespace(namespace, literal, options) {\n const cleanLiteral = this._sanitizer.sanitize(SecurityContext.HTML, literal);\n if (!cleanLiteral) {\n throw getMatIconFailedToSanitizeLiteralError(literal);\n }\n // Security: The literal is passed in as SafeHtml, and is thus trusted.\n const trustedLiteral = trustedHTMLFromString(cleanLiteral);\n return this._addSvgIconSetConfig(namespace, new SvgIconConfig('', trustedLiteral, options));\n }\n /**\n * Defines an alias for CSS class names to be used for icon fonts. Creating an matIcon\n * component with the alias as the fontSet input will cause the class name to be applied\n * to the `` element.\n *\n * If the registered font is a ligature font, then don't forget to also include the special\n * class `mat-ligature-font` to allow the usage via attribute. So register like this:\n *\n * ```ts\n * iconRegistry.registerFontClassAlias('f1', 'font1 mat-ligature-font');\n * ```\n *\n * And use like this:\n *\n * ```html\n * \n * ```\n *\n * @param alias Alias for the font.\n * @param classNames Class names override to be used instead of the alias.\n */\n registerFontClassAlias(alias, classNames = alias) {\n this._fontCssClassesByAlias.set(alias, classNames);\n return this;\n }\n /**\n * Returns the CSS class name associated with the alias by a previous call to\n * registerFontClassAlias. If no CSS class has been associated, returns the alias unmodified.\n */\n classNameForFontAlias(alias) {\n return this._fontCssClassesByAlias.get(alias) || alias;\n }\n /**\n * Sets the CSS classes to be used for icon fonts when an `` component does not\n * have a fontSet input value, and is not loading an icon by name or URL.\n */\n setDefaultFontSetClass(...classNames) {\n this._defaultFontSetClass = classNames;\n return this;\n }\n /**\n * Returns the CSS classes to be used for icon fonts when an `` component does not\n * have a fontSet input value, and is not loading an icon by name or URL.\n */\n getDefaultFontSetClass() {\n return this._defaultFontSetClass;\n }\n /**\n * Returns an Observable that produces the icon (as an `` DOM element) from the given URL.\n * The response from the URL may be cached so this will not always cause an HTTP request, but\n * the produced element will always be a new copy of the originally fetched icon. (That is,\n * it will not contain any modifications made to elements previously returned).\n *\n * @param safeUrl URL from which to fetch the SVG icon.\n */\n getSvgIconFromUrl(safeUrl) {\n const url = this._sanitizer.sanitize(SecurityContext.RESOURCE_URL, safeUrl);\n if (!url) {\n throw getMatIconFailedToSanitizeUrlError(safeUrl);\n }\n const cachedIcon = this._cachedIconsByUrl.get(url);\n if (cachedIcon) {\n return of(cloneSvg(cachedIcon));\n }\n return this._loadSvgIconFromConfig(new SvgIconConfig(safeUrl, null)).pipe(tap(svg => this._cachedIconsByUrl.set(url, svg)), map(svg => cloneSvg(svg)));\n }\n /**\n * Returns an Observable that produces the icon (as an `` DOM element) with the given name\n * and namespace. The icon must have been previously registered with addIcon or addIconSet;\n * if not, the Observable will throw an error.\n *\n * @param name Name of the icon to be retrieved.\n * @param namespace Namespace in which to look for the icon.\n */\n getNamedSvgIcon(name, namespace = '') {\n const key = iconKey(namespace, name);\n let config = this._svgIconConfigs.get(key);\n // Return (copy of) cached icon if possible.\n if (config) {\n return this._getSvgFromConfig(config);\n }\n // Otherwise try to resolve the config from one of the resolver functions.\n config = this._getIconConfigFromResolvers(namespace, name);\n if (config) {\n this._svgIconConfigs.set(key, config);\n return this._getSvgFromConfig(config);\n }\n // See if we have any icon sets registered for the namespace.\n const iconSetConfigs = this._iconSetConfigs.get(namespace);\n if (iconSetConfigs) {\n return this._getSvgFromIconSetConfigs(name, iconSetConfigs);\n }\n return throwError(getMatIconNameNotFoundError(key));\n }\n ngOnDestroy() {\n this._resolvers = [];\n this._svgIconConfigs.clear();\n this._iconSetConfigs.clear();\n this._cachedIconsByUrl.clear();\n }\n /**\n * Returns the cached icon for a SvgIconConfig if available, or fetches it from its URL if not.\n */\n _getSvgFromConfig(config) {\n if (config.svgText) {\n // We already have the SVG element for this icon, return a copy.\n return of(cloneSvg(this._svgElementFromConfig(config)));\n } else {\n // Fetch the icon from the config's URL, cache it, and return a copy.\n return this._loadSvgIconFromConfig(config).pipe(map(svg => cloneSvg(svg)));\n }\n }\n /**\n * Attempts to find an icon with the specified name in any of the SVG icon sets.\n * First searches the available cached icons for a nested element with a matching name, and\n * if found copies the element to a new `` element. If not found, fetches all icon sets\n * that have not been cached, and searches again after all fetches are completed.\n * The returned Observable produces the SVG element if possible, and throws\n * an error if no icon with the specified name can be found.\n */\n _getSvgFromIconSetConfigs(name, iconSetConfigs) {\n // For all the icon set SVG elements we've fetched, see if any contain an icon with the\n // requested name.\n const namedIcon = this._extractIconWithNameFromAnySet(name, iconSetConfigs);\n if (namedIcon) {\n // We could cache namedIcon in _svgIconConfigs, but since we have to make a copy every\n // time anyway, there's probably not much advantage compared to just always extracting\n // it from the icon set.\n return of(namedIcon);\n }\n // Not found in any cached icon sets. If there are icon sets with URLs that we haven't\n // fetched, fetch them now and look for iconName in the results.\n const iconSetFetchRequests = iconSetConfigs.filter(iconSetConfig => !iconSetConfig.svgText).map(iconSetConfig => {\n return this._loadSvgIconSetFromConfig(iconSetConfig).pipe(catchError(err => {\n const url = this._sanitizer.sanitize(SecurityContext.RESOURCE_URL, iconSetConfig.url);\n // Swallow errors fetching individual URLs so the\n // combined Observable won't necessarily fail.\n const errorMessage = `Loading icon set URL: ${url} failed: ${err.message}`;\n this._errorHandler.handleError(new Error(errorMessage));\n return of(null);\n }));\n });\n // Fetch all the icon set URLs. When the requests complete, every IconSet should have a\n // cached SVG element (unless the request failed), and we can check again for the icon.\n return forkJoin(iconSetFetchRequests).pipe(map(() => {\n const foundIcon = this._extractIconWithNameFromAnySet(name, iconSetConfigs);\n // TODO: add an ngDevMode check\n if (!foundIcon) {\n throw getMatIconNameNotFoundError(name);\n }\n return foundIcon;\n }));\n }\n /**\n * Searches the cached SVG elements for the given icon sets for a nested icon element whose \"id\"\n * tag matches the specified name. If found, copies the nested element to a new SVG element and\n * returns it. Returns null if no matching element is found.\n */\n _extractIconWithNameFromAnySet(iconName, iconSetConfigs) {\n // Iterate backwards, so icon sets added later have precedence.\n for (let i = iconSetConfigs.length - 1; i >= 0; i--) {\n const config = iconSetConfigs[i];\n // Parsing the icon set's text into an SVG element can be expensive. We can avoid some of\n // the parsing by doing a quick check using `indexOf` to see if there's any chance for the\n // icon to be in the set. This won't be 100% accurate, but it should help us avoid at least\n // some of the parsing.\n if (config.svgText && config.svgText.toString().indexOf(iconName) > -1) {\n const svg = this._svgElementFromConfig(config);\n const foundIcon = this._extractSvgIconFromSet(svg, iconName, config.options);\n if (foundIcon) {\n return foundIcon;\n }\n }\n }\n return null;\n }\n /**\n * Loads the content of the icon URL specified in the SvgIconConfig and creates an SVG element\n * from it.\n */\n _loadSvgIconFromConfig(config) {\n return this._fetchIcon(config).pipe(tap(svgText => config.svgText = svgText), map(() => this._svgElementFromConfig(config)));\n }\n /**\n * Loads the content of the icon set URL specified in the\n * SvgIconConfig and attaches it to the config.\n */\n _loadSvgIconSetFromConfig(config) {\n if (config.svgText) {\n return of(null);\n }\n return this._fetchIcon(config).pipe(tap(svgText => config.svgText = svgText));\n }\n /**\n * Searches the cached element of the given SvgIconConfig for a nested icon element whose \"id\"\n * tag matches the specified name. If found, copies the nested element to a new SVG element and\n * returns it. Returns null if no matching element is found.\n */\n _extractSvgIconFromSet(iconSet, iconName, options) {\n // Use the `id=\"iconName\"` syntax in order to escape special\n // characters in the ID (versus using the #iconName syntax).\n const iconSource = iconSet.querySelector(`[id=\"${iconName}\"]`);\n if (!iconSource) {\n return null;\n }\n // Clone the element and remove the ID to prevent multiple elements from being added\n // to the page with the same ID.\n const iconElement = iconSource.cloneNode(true);\n iconElement.removeAttribute('id');\n // If the icon node is itself an node, clone and return it directly. If not, set it as\n // the content of a new node.\n if (iconElement.nodeName.toLowerCase() === 'svg') {\n return this._setSvgAttributes(iconElement, options);\n }\n // If the node is a , it won't be rendered so we have to convert it into . Note\n // that the same could be achieved by referring to it via , however the \n // tag is problematic on Firefox, because it needs to include the current page path.\n if (iconElement.nodeName.toLowerCase() === 'symbol') {\n return this._setSvgAttributes(this._toSvgElement(iconElement), options);\n }\n // createElement('SVG') doesn't work as expected; the DOM ends up with\n // the correct nodes, but the SVG content doesn't render. Instead we\n // have to create an empty SVG node using innerHTML and append its content.\n // Elements created using DOMParser.parseFromString have the same problem.\n // http://stackoverflow.com/questions/23003278/svg-innerhtml-in-firefox-can-not-display\n const svg = this._svgElementFromString(trustedHTMLFromString(''));\n // Clone the node so we don't remove it from the parent icon set element.\n svg.appendChild(iconElement);\n return this._setSvgAttributes(svg, options);\n }\n /**\n * Creates a DOM element from the given SVG string.\n */\n _svgElementFromString(str) {\n const div = this._document.createElement('DIV');\n div.innerHTML = str;\n const svg = div.querySelector('svg');\n // TODO: add an ngDevMode check\n if (!svg) {\n throw Error(' tag not found');\n }\n return svg;\n }\n /**\n * Converts an element into an SVG node by cloning all of its children.\n */\n _toSvgElement(element) {\n const svg = this._svgElementFromString(trustedHTMLFromString(''));\n const attributes = element.attributes;\n // Copy over all the attributes from the `symbol` to the new SVG, except the id.\n for (let i = 0; i < attributes.length; i++) {\n const {\n name,\n value\n } = attributes[i];\n if (name !== 'id') {\n svg.setAttribute(name, value);\n }\n }\n for (let i = 0; i < element.childNodes.length; i++) {\n if (element.childNodes[i].nodeType === this._document.ELEMENT_NODE) {\n svg.appendChild(element.childNodes[i].cloneNode(true));\n }\n }\n return svg;\n }\n /**\n * Sets the default attributes for an SVG element to be used as an icon.\n */\n _setSvgAttributes(svg, options) {\n svg.setAttribute('fit', '');\n svg.setAttribute('height', '100%');\n svg.setAttribute('width', '100%');\n svg.setAttribute('preserveAspectRatio', 'xMidYMid meet');\n svg.setAttribute('focusable', 'false'); // Disable IE11 default behavior to make SVGs focusable.\n if (options && options.viewBox) {\n svg.setAttribute('viewBox', options.viewBox);\n }\n return svg;\n }\n /**\n * Returns an Observable which produces the string contents of the given icon. Results may be\n * cached, so future calls with the same URL may not cause another HTTP request.\n */\n _fetchIcon(iconConfig) {\n const {\n url: safeUrl,\n options\n } = iconConfig;\n const withCredentials = options?.withCredentials ?? false;\n if (!this._httpClient) {\n throw getMatIconNoHttpProviderError();\n }\n // TODO: add an ngDevMode check\n if (safeUrl == null) {\n throw Error(`Cannot fetch icon from URL \"${safeUrl}\".`);\n }\n const url = this._sanitizer.sanitize(SecurityContext.RESOURCE_URL, safeUrl);\n // TODO: add an ngDevMode check\n if (!url) {\n throw getMatIconFailedToSanitizeUrlError(safeUrl);\n }\n // Store in-progress fetches to avoid sending a duplicate request for a URL when there is\n // already a request in progress for that URL. It's necessary to call share() on the\n // Observable returned by http.get() so that multiple subscribers don't cause multiple XHRs.\n const inProgressFetch = this._inProgressUrlFetches.get(url);\n if (inProgressFetch) {\n return inProgressFetch;\n }\n const req = this._httpClient.get(url, {\n responseType: 'text',\n withCredentials\n }).pipe(map(svg => {\n // Security: This SVG is fetched from a SafeResourceUrl, and is thus\n // trusted HTML.\n return trustedHTMLFromString(svg);\n }), finalize(() => this._inProgressUrlFetches.delete(url)), share());\n this._inProgressUrlFetches.set(url, req);\n return req;\n }\n /**\n * Registers an icon config by name in the specified namespace.\n * @param namespace Namespace in which to register the icon config.\n * @param iconName Name under which to register the config.\n * @param config Config to be registered.\n */\n _addSvgIconConfig(namespace, iconName, config) {\n this._svgIconConfigs.set(iconKey(namespace, iconName), config);\n return this;\n }\n /**\n * Registers an icon set config in the specified namespace.\n * @param namespace Namespace in which to register the icon config.\n * @param config Config to be registered.\n */\n _addSvgIconSetConfig(namespace, config) {\n const configNamespace = this._iconSetConfigs.get(namespace);\n if (configNamespace) {\n configNamespace.push(config);\n } else {\n this._iconSetConfigs.set(namespace, [config]);\n }\n return this;\n }\n /** Parses a config's text into an SVG element. */\n _svgElementFromConfig(config) {\n if (!config.svgElement) {\n const svg = this._svgElementFromString(config.svgText);\n this._setSvgAttributes(svg, config.options);\n config.svgElement = svg;\n }\n return config.svgElement;\n }\n /** Tries to create an icon config through the registered resolver functions. */\n _getIconConfigFromResolvers(namespace, name) {\n for (let i = 0; i < this._resolvers.length; i++) {\n const result = this._resolvers[i](name, namespace);\n if (result) {\n return isSafeUrlWithOptions(result) ? new SvgIconConfig(result.url, null, result.options) : new SvgIconConfig(result, null);\n }\n }\n return undefined;\n }\n static {\n this.ɵfac = function MatIconRegistry_Factory(ɵt) {\n return new (ɵt || MatIconRegistry)(i0.ɵɵinject(i1.HttpClient, 8), i0.ɵɵinject(i2.DomSanitizer), i0.ɵɵinject(DOCUMENT, 8), i0.ɵɵinject(i0.ErrorHandler));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: MatIconRegistry,\n factory: MatIconRegistry.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatIconRegistry, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], function () {\n return [{\n type: i1.HttpClient,\n decorators: [{\n type: Optional\n }]\n }, {\n type: i2.DomSanitizer\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [DOCUMENT]\n }]\n }, {\n type: i0.ErrorHandler\n }];\n }, null);\n})();\n/** @docs-private */\nfunction ICON_REGISTRY_PROVIDER_FACTORY(parentRegistry, httpClient, sanitizer, errorHandler, document) {\n return parentRegistry || new MatIconRegistry(httpClient, sanitizer, document, errorHandler);\n}\n/** @docs-private */\nconst ICON_REGISTRY_PROVIDER = {\n // If there is already an MatIconRegistry available, use that. Otherwise, provide a new one.\n provide: MatIconRegistry,\n deps: [[new Optional(), new SkipSelf(), MatIconRegistry], [new Optional(), HttpClient], DomSanitizer, ErrorHandler, [new Optional(), DOCUMENT]],\n useFactory: ICON_REGISTRY_PROVIDER_FACTORY\n};\n/** Clones an SVGElement while preserving type information. */\nfunction cloneSvg(svg) {\n return svg.cloneNode(true);\n}\n/** Returns the cache key to use for an icon namespace and name. */\nfunction iconKey(namespace, name) {\n return namespace + ':' + name;\n}\nfunction isSafeUrlWithOptions(value) {\n return !!(value.url && value.options);\n}\n\n// Boilerplate for applying mixins to MatIcon.\n/** @docs-private */\nconst _MatIconBase = mixinColor(class {\n constructor(_elementRef) {\n this._elementRef = _elementRef;\n }\n});\n/** Injection token to be used to override the default options for `mat-icon`. */\nconst MAT_ICON_DEFAULT_OPTIONS = new InjectionToken('MAT_ICON_DEFAULT_OPTIONS');\n/**\n * Injection token used to provide the current location to `MatIcon`.\n * Used to handle server-side rendering and to stub out during unit tests.\n * @docs-private\n */\nconst MAT_ICON_LOCATION = new InjectionToken('mat-icon-location', {\n providedIn: 'root',\n factory: MAT_ICON_LOCATION_FACTORY\n});\n/** @docs-private */\nfunction MAT_ICON_LOCATION_FACTORY() {\n const _document = inject(DOCUMENT);\n const _location = _document ? _document.location : null;\n return {\n // Note that this needs to be a function, rather than a property, because Angular\n // will only resolve it once, but we want the current path on each call.\n getPathname: () => _location ? _location.pathname + _location.search : ''\n };\n}\n/** SVG attributes that accept a FuncIRI (e.g. `url()`). */\nconst funcIriAttributes = ['clip-path', 'color-profile', 'src', 'cursor', 'fill', 'filter', 'marker', 'marker-start', 'marker-mid', 'marker-end', 'mask', 'stroke'];\n/** Selector that can be used to find all elements that are using a `FuncIRI`. */\nconst funcIriAttributeSelector = funcIriAttributes.map(attr => `[${attr}]`).join(', ');\n/** Regex that can be used to extract the id out of a FuncIRI. */\nconst funcIriPattern = /^url\\(['\"]?#(.*?)['\"]?\\)$/;\n/**\n * Component to display an icon. It can be used in the following ways:\n *\n * - Specify the svgIcon input to load an SVG icon from a URL previously registered with the\n * addSvgIcon, addSvgIconInNamespace, addSvgIconSet, or addSvgIconSetInNamespace methods of\n * MatIconRegistry. If the svgIcon value contains a colon it is assumed to be in the format\n * \"[namespace]:[name]\", if not the value will be the name of an icon in the default namespace.\n * Examples:\n * `\n * `\n *\n * - Use a font ligature as an icon by putting the ligature text in the `fontIcon` attribute or the\n * content of the `` component. If you register a custom font class, don't forget to also\n * include the special class `mat-ligature-font`. It is recommended to use the attribute alternative\n * to prevent the ligature text to be selectable and to appear in search engine results.\n * By default, the Material icons font is used as described at\n * http://google.github.io/material-design-icons/#icon-font-for-the-web. You can specify an\n * alternate font by setting the fontSet input to either the CSS class to apply to use the\n * desired font, or to an alias previously registered with MatIconRegistry.registerFontClassAlias.\n * Examples:\n * `\n * home\n * \n * sun`\n *\n * - Specify a font glyph to be included via CSS rules by setting the fontSet input to specify the\n * font, and the fontIcon input to specify the icon. Typically the fontIcon will specify a\n * CSS class which causes the glyph to be displayed via a :before selector, as in\n * https://fortawesome.github.io/Font-Awesome/examples/\n * Example:\n * ``\n */\nclass MatIcon extends _MatIconBase {\n /**\n * Whether the icon should be inlined, automatically sizing the icon to match the font size of\n * the element the icon is contained in.\n */\n get inline() {\n return this._inline;\n }\n set inline(inline) {\n this._inline = coerceBooleanProperty(inline);\n }\n /** Name of the icon in the SVG icon set. */\n get svgIcon() {\n return this._svgIcon;\n }\n set svgIcon(value) {\n if (value !== this._svgIcon) {\n if (value) {\n this._updateSvgIcon(value);\n } else if (this._svgIcon) {\n this._clearSvgElement();\n }\n this._svgIcon = value;\n }\n }\n /** Font set that the icon is a part of. */\n get fontSet() {\n return this._fontSet;\n }\n set fontSet(value) {\n const newValue = this._cleanupFontValue(value);\n if (newValue !== this._fontSet) {\n this._fontSet = newValue;\n this._updateFontIconClasses();\n }\n }\n /** Name of an icon within a font set. */\n get fontIcon() {\n return this._fontIcon;\n }\n set fontIcon(value) {\n const newValue = this._cleanupFontValue(value);\n if (newValue !== this._fontIcon) {\n this._fontIcon = newValue;\n this._updateFontIconClasses();\n }\n }\n constructor(elementRef, _iconRegistry, ariaHidden, _location, _errorHandler, defaults) {\n super(elementRef);\n this._iconRegistry = _iconRegistry;\n this._location = _location;\n this._errorHandler = _errorHandler;\n this._inline = false;\n this._previousFontSetClass = [];\n /** Subscription to the current in-progress SVG icon request. */\n this._currentIconFetch = Subscription.EMPTY;\n if (defaults) {\n if (defaults.color) {\n this.color = this.defaultColor = defaults.color;\n }\n if (defaults.fontSet) {\n this.fontSet = defaults.fontSet;\n }\n }\n // If the user has not explicitly set aria-hidden, mark the icon as hidden, as this is\n // the right thing to do for the majority of icon use-cases.\n if (!ariaHidden) {\n elementRef.nativeElement.setAttribute('aria-hidden', 'true');\n }\n }\n /**\n * Splits an svgIcon binding value into its icon set and icon name components.\n * Returns a 2-element array of [(icon set), (icon name)].\n * The separator for the two fields is ':'. If there is no separator, an empty\n * string is returned for the icon set and the entire value is returned for\n * the icon name. If the argument is falsy, returns an array of two empty strings.\n * Throws an error if the name contains two or more ':' separators.\n * Examples:\n * `'social:cake' -> ['social', 'cake']\n * 'penguin' -> ['', 'penguin']\n * null -> ['', '']\n * 'a:b:c' -> (throws Error)`\n */\n _splitIconName(iconName) {\n if (!iconName) {\n return ['', ''];\n }\n const parts = iconName.split(':');\n switch (parts.length) {\n case 1:\n return ['', parts[0]];\n // Use default namespace.\n case 2:\n return parts;\n default:\n throw Error(`Invalid icon name: \"${iconName}\"`);\n // TODO: add an ngDevMode check\n }\n }\n ngOnInit() {\n // Update font classes because ngOnChanges won't be called if none of the inputs are present,\n // e.g. arrow In this case we need to add a CSS class for the default font.\n this._updateFontIconClasses();\n }\n ngAfterViewChecked() {\n const cachedElements = this._elementsWithExternalReferences;\n if (cachedElements && cachedElements.size) {\n const newPath = this._location.getPathname();\n // We need to check whether the URL has changed on each change detection since\n // the browser doesn't have an API that will let us react on link clicks and\n // we can't depend on the Angular router. The references need to be updated,\n // because while most browsers don't care whether the URL is correct after\n // the first render, Safari will break if the user navigates to a different\n // page and the SVG isn't re-rendered.\n if (newPath !== this._previousPath) {\n this._previousPath = newPath;\n this._prependPathToReferences(newPath);\n }\n }\n }\n ngOnDestroy() {\n this._currentIconFetch.unsubscribe();\n if (this._elementsWithExternalReferences) {\n this._elementsWithExternalReferences.clear();\n }\n }\n _usingFontIcon() {\n return !this.svgIcon;\n }\n _setSvgElement(svg) {\n this._clearSvgElement();\n // Note: we do this fix here, rather than the icon registry, because the\n // references have to point to the URL at the time that the icon was created.\n const path = this._location.getPathname();\n this._previousPath = path;\n this._cacheChildrenWithExternalReferences(svg);\n this._prependPathToReferences(path);\n this._elementRef.nativeElement.appendChild(svg);\n }\n _clearSvgElement() {\n const layoutElement = this._elementRef.nativeElement;\n let childCount = layoutElement.childNodes.length;\n if (this._elementsWithExternalReferences) {\n this._elementsWithExternalReferences.clear();\n }\n // Remove existing non-element child nodes and SVGs, and add the new SVG element. Note that\n // we can't use innerHTML, because IE will throw if the element has a data binding.\n while (childCount--) {\n const child = layoutElement.childNodes[childCount];\n // 1 corresponds to Node.ELEMENT_NODE. We remove all non-element nodes in order to get rid\n // of any loose text nodes, as well as any SVG elements in order to remove any old icons.\n if (child.nodeType !== 1 || child.nodeName.toLowerCase() === 'svg') {\n child.remove();\n }\n }\n }\n _updateFontIconClasses() {\n if (!this._usingFontIcon()) {\n return;\n }\n const elem = this._elementRef.nativeElement;\n const fontSetClasses = (this.fontSet ? this._iconRegistry.classNameForFontAlias(this.fontSet).split(/ +/) : this._iconRegistry.getDefaultFontSetClass()).filter(className => className.length > 0);\n this._previousFontSetClass.forEach(className => elem.classList.remove(className));\n fontSetClasses.forEach(className => elem.classList.add(className));\n this._previousFontSetClass = fontSetClasses;\n if (this.fontIcon !== this._previousFontIconClass && !fontSetClasses.includes('mat-ligature-font')) {\n if (this._previousFontIconClass) {\n elem.classList.remove(this._previousFontIconClass);\n }\n if (this.fontIcon) {\n elem.classList.add(this.fontIcon);\n }\n this._previousFontIconClass = this.fontIcon;\n }\n }\n /**\n * Cleans up a value to be used as a fontIcon or fontSet.\n * Since the value ends up being assigned as a CSS class, we\n * have to trim the value and omit space-separated values.\n */\n _cleanupFontValue(value) {\n return typeof value === 'string' ? value.trim().split(' ')[0] : value;\n }\n /**\n * Prepends the current path to all elements that have an attribute pointing to a `FuncIRI`\n * reference. This is required because WebKit browsers require references to be prefixed with\n * the current path, if the page has a `base` tag.\n */\n _prependPathToReferences(path) {\n const elements = this._elementsWithExternalReferences;\n if (elements) {\n elements.forEach((attrs, element) => {\n attrs.forEach(attr => {\n element.setAttribute(attr.name, `url('${path}#${attr.value}')`);\n });\n });\n }\n }\n /**\n * Caches the children of an SVG element that have `url()`\n * references that we need to prefix with the current path.\n */\n _cacheChildrenWithExternalReferences(element) {\n const elementsWithFuncIri = element.querySelectorAll(funcIriAttributeSelector);\n const elements = this._elementsWithExternalReferences = this._elementsWithExternalReferences || new Map();\n for (let i = 0; i < elementsWithFuncIri.length; i++) {\n funcIriAttributes.forEach(attr => {\n const elementWithReference = elementsWithFuncIri[i];\n const value = elementWithReference.getAttribute(attr);\n const match = value ? value.match(funcIriPattern) : null;\n if (match) {\n let attributes = elements.get(elementWithReference);\n if (!attributes) {\n attributes = [];\n elements.set(elementWithReference, attributes);\n }\n attributes.push({\n name: attr,\n value: match[1]\n });\n }\n });\n }\n }\n /** Sets a new SVG icon with a particular name. */\n _updateSvgIcon(rawName) {\n this._svgNamespace = null;\n this._svgName = null;\n this._currentIconFetch.unsubscribe();\n if (rawName) {\n const [namespace, iconName] = this._splitIconName(rawName);\n if (namespace) {\n this._svgNamespace = namespace;\n }\n if (iconName) {\n this._svgName = iconName;\n }\n this._currentIconFetch = this._iconRegistry.getNamedSvgIcon(iconName, namespace).pipe(take(1)).subscribe(svg => this._setSvgElement(svg), err => {\n const errorMessage = `Error retrieving icon ${namespace}:${iconName}! ${err.message}`;\n this._errorHandler.handleError(new Error(errorMessage));\n });\n }\n }\n static {\n this.ɵfac = function MatIcon_Factory(ɵt) {\n return new (ɵt || MatIcon)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(MatIconRegistry), i0.ɵɵinjectAttribute('aria-hidden'), i0.ɵɵdirectiveInject(MAT_ICON_LOCATION), i0.ɵɵdirectiveInject(i0.ErrorHandler), i0.ɵɵdirectiveInject(MAT_ICON_DEFAULT_OPTIONS, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatIcon,\n selectors: [[\"mat-icon\"]],\n hostAttrs: [\"role\", \"img\", 1, \"mat-icon\", \"notranslate\"],\n hostVars: 8,\n hostBindings: function MatIcon_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"data-mat-icon-type\", ctx._usingFontIcon() ? \"font\" : \"svg\")(\"data-mat-icon-name\", ctx._svgName || ctx.fontIcon)(\"data-mat-icon-namespace\", ctx._svgNamespace || ctx.fontSet)(\"fontIcon\", ctx._usingFontIcon() ? ctx.fontIcon : null);\n i0.ɵɵclassProp(\"mat-icon-inline\", ctx.inline)(\"mat-icon-no-color\", ctx.color !== \"primary\" && ctx.color !== \"accent\" && ctx.color !== \"warn\");\n }\n },\n inputs: {\n color: \"color\",\n inline: \"inline\",\n svgIcon: \"svgIcon\",\n fontSet: \"fontSet\",\n fontIcon: \"fontIcon\"\n },\n exportAs: [\"matIcon\"],\n features: [i0.ɵɵInheritDefinitionFeature],\n ngContentSelectors: _c0,\n decls: 1,\n vars: 0,\n template: function MatIcon_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵprojection(0);\n }\n },\n styles: [\"mat-icon,mat-icon.mat-primary,mat-icon.mat-accent,mat-icon.mat-warn{color:var(--mat-icon-color)}.mat-icon{-webkit-user-select:none;user-select:none;background-repeat:no-repeat;display:inline-block;fill:currentColor;height:24px;width:24px;overflow:hidden}.mat-icon.mat-icon-inline{font-size:inherit;height:inherit;line-height:inherit;width:inherit}.mat-icon.mat-ligature-font[fontIcon]::before{content:attr(fontIcon)}[dir=rtl] .mat-icon-rtl-mirror{transform:scale(-1, 1)}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon{display:block}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button .mat-icon{margin:auto}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatIcon, [{\n type: Component,\n args: [{\n template: '',\n selector: 'mat-icon',\n exportAs: 'matIcon',\n inputs: ['color'],\n host: {\n 'role': 'img',\n 'class': 'mat-icon notranslate',\n '[attr.data-mat-icon-type]': '_usingFontIcon() ? \"font\" : \"svg\"',\n '[attr.data-mat-icon-name]': '_svgName || fontIcon',\n '[attr.data-mat-icon-namespace]': '_svgNamespace || fontSet',\n '[attr.fontIcon]': '_usingFontIcon() ? fontIcon : null',\n '[class.mat-icon-inline]': 'inline',\n '[class.mat-icon-no-color]': 'color !== \"primary\" && color !== \"accent\" && color !== \"warn\"'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n styles: [\"mat-icon,mat-icon.mat-primary,mat-icon.mat-accent,mat-icon.mat-warn{color:var(--mat-icon-color)}.mat-icon{-webkit-user-select:none;user-select:none;background-repeat:no-repeat;display:inline-block;fill:currentColor;height:24px;width:24px;overflow:hidden}.mat-icon.mat-icon-inline{font-size:inherit;height:inherit;line-height:inherit;width:inherit}.mat-icon.mat-ligature-font[fontIcon]::before{content:attr(fontIcon)}[dir=rtl] .mat-icon-rtl-mirror{transform:scale(-1, 1)}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon{display:block}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button .mat-icon{margin:auto}\"]\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: MatIconRegistry\n }, {\n type: undefined,\n decorators: [{\n type: Attribute,\n args: ['aria-hidden']\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [MAT_ICON_LOCATION]\n }]\n }, {\n type: i0.ErrorHandler\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_ICON_DEFAULT_OPTIONS]\n }]\n }];\n }, {\n inline: [{\n type: Input\n }],\n svgIcon: [{\n type: Input\n }],\n fontSet: [{\n type: Input\n }],\n fontIcon: [{\n type: Input\n }]\n });\n})();\nclass MatIconModule {\n static {\n this.ɵfac = function MatIconModule_Factory(ɵt) {\n return new (ɵt || MatIconModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatIconModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [MatCommonModule, MatCommonModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatIconModule, [{\n type: NgModule,\n args: [{\n imports: [MatCommonModule],\n exports: [MatIcon, MatCommonModule],\n declarations: [MatIcon]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ICON_REGISTRY_PROVIDER, ICON_REGISTRY_PROVIDER_FACTORY, MAT_ICON_DEFAULT_OPTIONS, MAT_ICON_LOCATION, MAT_ICON_LOCATION_FACTORY, MatIcon, MatIconModule, MatIconRegistry, getMatIconFailedToSanitizeLiteralError, getMatIconFailedToSanitizeUrlError, getMatIconNameNotFoundError, getMatIconNoHttpProviderError };\n","import * as i0 from '@angular/core';\nimport { InjectionToken, EventEmitter, TemplateRef, Directive, Inject, ViewChild, Input, Output, Component, ViewEncapsulation, ChangeDetectionStrategy, ContentChildren, forwardRef, Optional, Host, NgModule } from '@angular/core';\nimport { mixinDisableRipple, MAT_OPTION_PARENT_COMPONENT, MAT_OPTGROUP, MatOption, MatOptionSelectionChange, _countGroupLabelsBeforeOption, _getOptionScrollPosition, MatOptionModule, MatCommonModule } from '@angular/material/core';\nimport * as i2 from '@angular/common';\nimport { DOCUMENT, CommonModule } from '@angular/common';\nimport * as i3 from '@angular/cdk/scrolling';\nimport { CdkScrollableModule } from '@angular/cdk/scrolling';\nimport * as i1$1 from '@angular/cdk/overlay';\nimport { Overlay, OverlayConfig, OverlayModule } from '@angular/cdk/overlay';\nimport { ActiveDescendantKeyManager, addAriaReferencedId, removeAriaReferencedId } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty, coerceStringArray } from '@angular/cdk/coercion';\nimport * as i1 from '@angular/cdk/platform';\nimport { _getEventTarget } from '@angular/cdk/platform';\nimport { trigger, state, style, transition, group, animate } from '@angular/animations';\nimport { Subscription, Subject, defer, merge, of, fromEvent } from 'rxjs';\nimport { ESCAPE, hasModifierKey, UP_ARROW, ENTER, DOWN_ARROW, TAB } from '@angular/cdk/keycodes';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport * as i4 from '@angular/material/form-field';\nimport { MAT_FORM_FIELD } from '@angular/material/form-field';\nimport { startWith, switchMap, take, filter, map, tap, delay } from 'rxjs/operators';\nimport * as i2$1 from '@angular/cdk/bidi';\n\n// Animation values come from\n// https://github.com/material-components/material-components-web/blob/master/packages/mdc-menu-surface/_mixins.scss\n// TODO(mmalerba): Ideally find a way to import the values from MDC's code.\nconst _c0 = [\"panel\"];\nconst _c1 = [\"*\"];\nfunction MatAutocomplete_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 1, 0);\n i0.ɵɵlistener(\"@panelAnimation.done\", function MatAutocomplete_ng_template_0_Template_div_animation_panelAnimation_done_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1._animationDone.next($event));\n });\n i0.ɵɵprojection(2);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const formFieldId_r3 = ctx.id;\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"id\", ctx_r1.id)(\"ngClass\", ctx_r1._classList)(\"@panelAnimation\", ctx_r1.isOpen ? \"visible\" : \"hidden\");\n i0.ɵɵattribute(\"aria-label\", ctx_r1.ariaLabel || null)(\"aria-labelledby\", ctx_r1._getPanelAriaLabelledby(formFieldId_r3));\n }\n}\nconst panelAnimation = trigger('panelAnimation', [state('void, hidden', style({\n opacity: 0,\n transform: 'scaleY(0.8)'\n})), transition(':enter, hidden => visible', [group([animate('0.03s linear', style({\n opacity: 1\n})), animate('0.12s cubic-bezier(0, 0, 0.2, 1)', style({\n transform: 'scaleY(1)'\n}))])]), transition(':leave, visible => hidden', [animate('0.075s linear', style({\n opacity: 0\n}))])]);\n\n/**\n * Autocomplete IDs need to be unique across components, so this counter exists outside of\n * the component definition.\n */\nlet _uniqueAutocompleteIdCounter = 0;\n/** Event object that is emitted when an autocomplete option is selected. */\nclass MatAutocompleteSelectedEvent {\n constructor( /** Reference to the autocomplete panel that emitted the event. */\n source, /** Option that was selected. */\n option) {\n this.source = source;\n this.option = option;\n }\n}\n// Boilerplate for applying mixins to MatAutocomplete.\n/** @docs-private */\nconst _MatAutocompleteMixinBase = mixinDisableRipple(class {});\n/** Injection token to be used to override the default options for `mat-autocomplete`. */\nconst MAT_AUTOCOMPLETE_DEFAULT_OPTIONS = new InjectionToken('mat-autocomplete-default-options', {\n providedIn: 'root',\n factory: MAT_AUTOCOMPLETE_DEFAULT_OPTIONS_FACTORY\n});\n/** @docs-private */\nfunction MAT_AUTOCOMPLETE_DEFAULT_OPTIONS_FACTORY() {\n return {\n autoActiveFirstOption: false,\n autoSelectActiveOption: false,\n hideSingleSelectionIndicator: false,\n requireSelection: false\n };\n}\n/** Base class with all of the `MatAutocomplete` functionality. */\nclass _MatAutocompleteBase extends _MatAutocompleteMixinBase {\n /** Whether the autocomplete panel is open. */\n get isOpen() {\n return this._isOpen && this.showPanel;\n }\n /** @docs-private Sets the theme color of the panel. */\n _setColor(value) {\n this._color = value;\n this._setThemeClasses(this._classList);\n }\n /**\n * Whether the first option should be highlighted when the autocomplete panel is opened.\n * Can be configured globally through the `MAT_AUTOCOMPLETE_DEFAULT_OPTIONS` token.\n */\n get autoActiveFirstOption() {\n return this._autoActiveFirstOption;\n }\n set autoActiveFirstOption(value) {\n this._autoActiveFirstOption = coerceBooleanProperty(value);\n }\n /** Whether the active option should be selected as the user is navigating. */\n get autoSelectActiveOption() {\n return this._autoSelectActiveOption;\n }\n set autoSelectActiveOption(value) {\n this._autoSelectActiveOption = coerceBooleanProperty(value);\n }\n /**\n * Whether the user is required to make a selection when they're interacting with the\n * autocomplete. If the user moves away from the autocomplete without selecting an option from\n * the list, the value will be reset. If the user opens the panel and closes it without\n * interacting or selecting a value, the initial value will be kept.\n */\n get requireSelection() {\n return this._requireSelection;\n }\n set requireSelection(value) {\n this._requireSelection = coerceBooleanProperty(value);\n }\n /**\n * Takes classes set on the host mat-autocomplete element and applies them to the panel\n * inside the overlay container to allow for easy styling.\n */\n set classList(value) {\n if (value && value.length) {\n this._classList = coerceStringArray(value).reduce((classList, className) => {\n classList[className] = true;\n return classList;\n }, {});\n } else {\n this._classList = {};\n }\n this._setVisibilityClasses(this._classList);\n this._setThemeClasses(this._classList);\n this._elementRef.nativeElement.className = '';\n }\n constructor(_changeDetectorRef, _elementRef, _defaults, platform) {\n super();\n this._changeDetectorRef = _changeDetectorRef;\n this._elementRef = _elementRef;\n this._defaults = _defaults;\n this._activeOptionChanges = Subscription.EMPTY;\n /** Whether the autocomplete panel should be visible, depending on option length. */\n this.showPanel = false;\n this._isOpen = false;\n /** Function that maps an option's control value to its display value in the trigger. */\n this.displayWith = null;\n /** Event that is emitted whenever an option from the list is selected. */\n this.optionSelected = new EventEmitter();\n /** Event that is emitted when the autocomplete panel is opened. */\n this.opened = new EventEmitter();\n /** Event that is emitted when the autocomplete panel is closed. */\n this.closed = new EventEmitter();\n /** Emits whenever an option is activated. */\n this.optionActivated = new EventEmitter();\n this._classList = {};\n /** Unique ID to be used by autocomplete trigger's \"aria-owns\" property. */\n this.id = `mat-autocomplete-${_uniqueAutocompleteIdCounter++}`;\n // TODO(crisbeto): the problem that the `inertGroups` option resolves is only present on\n // Safari using VoiceOver. We should occasionally check back to see whether the bug\n // wasn't resolved in VoiceOver, and if it has, we can remove this and the `inertGroups`\n // option altogether.\n this.inertGroups = platform?.SAFARI || false;\n this._autoActiveFirstOption = !!_defaults.autoActiveFirstOption;\n this._autoSelectActiveOption = !!_defaults.autoSelectActiveOption;\n this._requireSelection = !!_defaults.requireSelection;\n }\n ngAfterContentInit() {\n this._keyManager = new ActiveDescendantKeyManager(this.options).withWrap().skipPredicate(this._skipPredicate);\n this._activeOptionChanges = this._keyManager.change.subscribe(index => {\n if (this.isOpen) {\n this.optionActivated.emit({\n source: this,\n option: this.options.toArray()[index] || null\n });\n }\n });\n // Set the initial visibility state.\n this._setVisibility();\n }\n ngOnDestroy() {\n this._keyManager?.destroy();\n this._activeOptionChanges.unsubscribe();\n }\n /**\n * Sets the panel scrollTop. This allows us to manually scroll to display options\n * above or below the fold, as they are not actually being focused when active.\n */\n _setScrollTop(scrollTop) {\n if (this.panel) {\n this.panel.nativeElement.scrollTop = scrollTop;\n }\n }\n /** Returns the panel's scrollTop. */\n _getScrollTop() {\n return this.panel ? this.panel.nativeElement.scrollTop : 0;\n }\n /** Panel should hide itself when the option list is empty. */\n _setVisibility() {\n this.showPanel = !!this.options.length;\n this._setVisibilityClasses(this._classList);\n this._changeDetectorRef.markForCheck();\n }\n /** Emits the `select` event. */\n _emitSelectEvent(option) {\n const event = new MatAutocompleteSelectedEvent(this, option);\n this.optionSelected.emit(event);\n }\n /** Gets the aria-labelledby for the autocomplete panel. */\n _getPanelAriaLabelledby(labelId) {\n if (this.ariaLabel) {\n return null;\n }\n const labelExpression = labelId ? labelId + ' ' : '';\n return this.ariaLabelledby ? labelExpression + this.ariaLabelledby : labelId;\n }\n /** Sets the autocomplete visibility classes on a classlist based on the panel is visible. */\n _setVisibilityClasses(classList) {\n classList[this._visibleClass] = this.showPanel;\n classList[this._hiddenClass] = !this.showPanel;\n }\n /** Sets the theming classes on a classlist based on the theme of the panel. */\n _setThemeClasses(classList) {\n classList['mat-primary'] = this._color === 'primary';\n classList['mat-warn'] = this._color === 'warn';\n classList['mat-accent'] = this._color === 'accent';\n }\n _skipPredicate(option) {\n return option.disabled;\n }\n static {\n this.ɵfac = function _MatAutocompleteBase_Factory(ɵt) {\n return new (ɵt || _MatAutocompleteBase)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(MAT_AUTOCOMPLETE_DEFAULT_OPTIONS), i0.ɵɵdirectiveInject(i1.Platform));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: _MatAutocompleteBase,\n viewQuery: function _MatAutocompleteBase_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(TemplateRef, 7);\n i0.ɵɵviewQuery(_c0, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.template = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.panel = _t.first);\n }\n },\n inputs: {\n ariaLabel: [0, \"aria-label\", \"ariaLabel\"],\n ariaLabelledby: [0, \"aria-labelledby\", \"ariaLabelledby\"],\n displayWith: \"displayWith\",\n autoActiveFirstOption: \"autoActiveFirstOption\",\n autoSelectActiveOption: \"autoSelectActiveOption\",\n requireSelection: \"requireSelection\",\n panelWidth: \"panelWidth\",\n classList: [0, \"class\", \"classList\"]\n },\n outputs: {\n optionSelected: \"optionSelected\",\n opened: \"opened\",\n closed: \"closed\",\n optionActivated: \"optionActivated\"\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(_MatAutocompleteBase, [{\n type: Directive\n }], function () {\n return [{\n type: i0.ChangeDetectorRef\n }, {\n type: i0.ElementRef\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [MAT_AUTOCOMPLETE_DEFAULT_OPTIONS]\n }]\n }, {\n type: i1.Platform\n }];\n }, {\n template: [{\n type: ViewChild,\n args: [TemplateRef, {\n static: true\n }]\n }],\n panel: [{\n type: ViewChild,\n args: ['panel']\n }],\n ariaLabel: [{\n type: Input,\n args: ['aria-label']\n }],\n ariaLabelledby: [{\n type: Input,\n args: ['aria-labelledby']\n }],\n displayWith: [{\n type: Input\n }],\n autoActiveFirstOption: [{\n type: Input\n }],\n autoSelectActiveOption: [{\n type: Input\n }],\n requireSelection: [{\n type: Input\n }],\n panelWidth: [{\n type: Input\n }],\n optionSelected: [{\n type: Output\n }],\n opened: [{\n type: Output\n }],\n closed: [{\n type: Output\n }],\n optionActivated: [{\n type: Output\n }],\n classList: [{\n type: Input,\n args: ['class']\n }]\n });\n})();\nclass MatAutocomplete extends _MatAutocompleteBase {\n constructor() {\n super(...arguments);\n this._visibleClass = 'mat-mdc-autocomplete-visible';\n this._hiddenClass = 'mat-mdc-autocomplete-hidden';\n this._animationDone = new EventEmitter();\n this._hideSingleSelectionIndicator = this._defaults.hideSingleSelectionIndicator ?? false;\n }\n /** Whether checkmark indicator for single-selection options is hidden. */\n get hideSingleSelectionIndicator() {\n return this._hideSingleSelectionIndicator;\n }\n set hideSingleSelectionIndicator(value) {\n this._hideSingleSelectionIndicator = coerceBooleanProperty(value);\n this._syncParentProperties();\n }\n /** Syncs the parent state with the individual options. */\n _syncParentProperties() {\n if (this.options) {\n for (const option of this.options) {\n option._changeDetectorRef.markForCheck();\n }\n }\n }\n ngOnDestroy() {\n super.ngOnDestroy();\n this._animationDone.complete();\n }\n // `skipPredicate` determines if key manager should avoid putting a given option in the tab\n // order. Allow disabled list items to receive focus via keyboard to align with WAI ARIA\n // recommendation.\n //\n // Normally WAI ARIA's instructions are to exclude disabled items from the tab order, but it\n // makes a few exceptions for compound widgets.\n //\n // From [Developing a Keyboard Interface](\n // https://www.w3.org/WAI/ARIA/apg/practices/keyboard-interface/):\n // \"For the following composite widget elements, keep them focusable when disabled: Options in a\n // Listbox...\"\n //\n // The user can focus disabled options using the keyboard, but the user cannot click disabled\n // options.\n _skipPredicate(_option) {\n return false;\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatAutocomplete_BaseFactory;\n return function MatAutocomplete_Factory(ɵt) {\n return (ɵMatAutocomplete_BaseFactory || (ɵMatAutocomplete_BaseFactory = i0.ɵɵgetInheritedFactory(MatAutocomplete)))(ɵt || MatAutocomplete);\n };\n })();\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatAutocomplete,\n selectors: [[\"mat-autocomplete\"]],\n contentQueries: function MatAutocomplete_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MAT_OPTGROUP, 5);\n i0.ɵɵcontentQuery(dirIndex, MatOption, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.optionGroups = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.options = _t);\n }\n },\n hostAttrs: [\"ngSkipHydration\", \"\", 1, \"mat-mdc-autocomplete\"],\n inputs: {\n disableRipple: \"disableRipple\",\n hideSingleSelectionIndicator: \"hideSingleSelectionIndicator\"\n },\n exportAs: [\"matAutocomplete\"],\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_OPTION_PARENT_COMPONENT,\n useExisting: MatAutocomplete\n }]), i0.ɵɵInheritDefinitionFeature],\n ngContentSelectors: _c1,\n decls: 1,\n vars: 0,\n consts: [[\"panel\", \"\"], [\"role\", \"listbox\", 1, \"mat-mdc-autocomplete-panel\", \"mdc-menu-surface\", \"mdc-menu-surface--open\", 3, \"id\", \"ngClass\"]],\n template: function MatAutocomplete_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵtemplate(0, MatAutocomplete_ng_template_0_Template, 3, 5, \"ng-template\");\n }\n },\n dependencies: [i2.NgClass],\n styles: [\"div.mat-mdc-autocomplete-panel{box-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);width:100%;max-height:256px;visibility:hidden;transform-origin:center top;overflow:auto;padding:8px 0;border-radius:4px;box-sizing:border-box;position:static;background-color:var(--mat-autocomplete-background-color)}.cdk-high-contrast-active div.mat-mdc-autocomplete-panel{outline:solid 1px}.cdk-overlay-pane:not(.mat-mdc-autocomplete-panel-above) div.mat-mdc-autocomplete-panel{border-top-left-radius:0;border-top-right-radius:0}.mat-mdc-autocomplete-panel-above div.mat-mdc-autocomplete-panel{border-bottom-left-radius:0;border-bottom-right-radius:0;transform-origin:center bottom}div.mat-mdc-autocomplete-panel.mat-mdc-autocomplete-visible{visibility:visible}div.mat-mdc-autocomplete-panel.mat-mdc-autocomplete-hidden{visibility:hidden}mat-autocomplete{display:none}\"],\n encapsulation: 2,\n data: {\n animation: [panelAnimation]\n },\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatAutocomplete, [{\n type: Component,\n args: [{\n selector: 'mat-autocomplete',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'matAutocomplete',\n inputs: ['disableRipple'],\n host: {\n 'class': 'mat-mdc-autocomplete',\n 'ngSkipHydration': ''\n },\n providers: [{\n provide: MAT_OPTION_PARENT_COMPONENT,\n useExisting: MatAutocomplete\n }],\n animations: [panelAnimation],\n template: \"\\n \\n \\n \\n\\n\",\n styles: [\"div.mat-mdc-autocomplete-panel{box-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);width:100%;max-height:256px;visibility:hidden;transform-origin:center top;overflow:auto;padding:8px 0;border-radius:4px;box-sizing:border-box;position:static;background-color:var(--mat-autocomplete-background-color)}.cdk-high-contrast-active div.mat-mdc-autocomplete-panel{outline:solid 1px}.cdk-overlay-pane:not(.mat-mdc-autocomplete-panel-above) div.mat-mdc-autocomplete-panel{border-top-left-radius:0;border-top-right-radius:0}.mat-mdc-autocomplete-panel-above div.mat-mdc-autocomplete-panel{border-bottom-left-radius:0;border-bottom-right-radius:0;transform-origin:center bottom}div.mat-mdc-autocomplete-panel.mat-mdc-autocomplete-visible{visibility:visible}div.mat-mdc-autocomplete-panel.mat-mdc-autocomplete-hidden{visibility:hidden}mat-autocomplete{display:none}\"]\n }]\n }], null, {\n optionGroups: [{\n type: ContentChildren,\n args: [MAT_OPTGROUP, {\n descendants: true\n }]\n }],\n options: [{\n type: ContentChildren,\n args: [MatOption, {\n descendants: true\n }]\n }],\n hideSingleSelectionIndicator: [{\n type: Input\n }]\n });\n})();\n\n/** Base class containing all of the functionality for `MatAutocompleteOrigin`. */\nclass _MatAutocompleteOriginBase {\n constructor( /** Reference to the element on which the directive is applied. */\n elementRef) {\n this.elementRef = elementRef;\n }\n static {\n this.ɵfac = function _MatAutocompleteOriginBase_Factory(ɵt) {\n return new (ɵt || _MatAutocompleteOriginBase)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: _MatAutocompleteOriginBase\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(_MatAutocompleteOriginBase, [{\n type: Directive\n }], function () {\n return [{\n type: i0.ElementRef\n }];\n }, null);\n})();\n/**\n * Directive applied to an element to make it usable\n * as a connection point for an autocomplete panel.\n */\nclass MatAutocompleteOrigin extends _MatAutocompleteOriginBase {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatAutocompleteOrigin_BaseFactory;\n return function MatAutocompleteOrigin_Factory(ɵt) {\n return (ɵMatAutocompleteOrigin_BaseFactory || (ɵMatAutocompleteOrigin_BaseFactory = i0.ɵɵgetInheritedFactory(MatAutocompleteOrigin)))(ɵt || MatAutocompleteOrigin);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatAutocompleteOrigin,\n selectors: [[\"\", \"matAutocompleteOrigin\", \"\"]],\n exportAs: [\"matAutocompleteOrigin\"],\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatAutocompleteOrigin, [{\n type: Directive,\n args: [{\n selector: '[matAutocompleteOrigin]',\n exportAs: 'matAutocompleteOrigin'\n }]\n }], null, null);\n})();\n\n/**\n * Provider that allows the autocomplete to register as a ControlValueAccessor.\n * @docs-private\n */\nconst MAT_AUTOCOMPLETE_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MatAutocompleteTrigger),\n multi: true\n};\n/**\n * Creates an error to be thrown when attempting to use an autocomplete trigger without a panel.\n * @docs-private\n */\nfunction getMatAutocompleteMissingPanelError() {\n return Error('Attempting to open an undefined instance of `mat-autocomplete`. ' + 'Make sure that the id passed to the `matAutocomplete` is correct and that ' + \"you're attempting to open it after the ngAfterContentInit hook.\");\n}\n/** Injection token that determines the scroll handling while the autocomplete panel is open. */\nconst MAT_AUTOCOMPLETE_SCROLL_STRATEGY = new InjectionToken('mat-autocomplete-scroll-strategy');\n/** @docs-private */\nfunction MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY(overlay) {\n return () => overlay.scrollStrategies.reposition();\n}\n/** @docs-private */\nconst MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY_PROVIDER = {\n provide: MAT_AUTOCOMPLETE_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY\n};\n/** Base class with all of the `MatAutocompleteTrigger` functionality. */\nclass _MatAutocompleteTriggerBase {\n /**\n * Whether the autocomplete is disabled. When disabled, the element will\n * act as a regular input and the user won't be able to open the panel.\n */\n get autocompleteDisabled() {\n return this._autocompleteDisabled;\n }\n set autocompleteDisabled(value) {\n this._autocompleteDisabled = coerceBooleanProperty(value);\n }\n constructor(_element, _overlay, _viewContainerRef, _zone, _changeDetectorRef, scrollStrategy, _dir, _formField, _document, _viewportRuler, _defaults) {\n this._element = _element;\n this._overlay = _overlay;\n this._viewContainerRef = _viewContainerRef;\n this._zone = _zone;\n this._changeDetectorRef = _changeDetectorRef;\n this._dir = _dir;\n this._formField = _formField;\n this._document = _document;\n this._viewportRuler = _viewportRuler;\n this._defaults = _defaults;\n this._componentDestroyed = false;\n this._autocompleteDisabled = false;\n /** Whether or not the label state is being overridden. */\n this._manuallyFloatingLabel = false;\n /** Subscription to viewport size changes. */\n this._viewportSubscription = Subscription.EMPTY;\n /**\n * Whether the autocomplete can open the next time it is focused. Used to prevent a focused,\n * closed autocomplete from being reopened if the user switches to another browser tab and then\n * comes back.\n */\n this._canOpenOnNextFocus = true;\n /** Stream of keyboard events that can close the panel. */\n this._closeKeyEventStream = new Subject();\n /**\n * Event handler for when the window is blurred. Needs to be an\n * arrow function in order to preserve the context.\n */\n this._windowBlurHandler = () => {\n // If the user blurred the window while the autocomplete is focused, it means that it'll be\n // refocused when they come back. In this case we want to skip the first focus event, if the\n // pane was closed, in order to avoid reopening it unintentionally.\n this._canOpenOnNextFocus = this._document.activeElement !== this._element.nativeElement || this.panelOpen;\n };\n /** `View -> model callback called when value changes` */\n this._onChange = () => {};\n /** `View -> model callback called when autocomplete has been touched` */\n this._onTouched = () => {};\n /**\n * Position of the autocomplete panel relative to the trigger element. A position of `auto`\n * will render the panel underneath the trigger if there is enough space for it to fit in\n * the viewport, otherwise the panel will be shown above it. If the position is set to\n * `above` or `below`, the panel will always be shown above or below the trigger. no matter\n * whether it fits completely in the viewport.\n */\n this.position = 'auto';\n /**\n * `autocomplete` attribute to be set on the input element.\n * @docs-private\n */\n this.autocompleteAttribute = 'off';\n this._overlayAttached = false;\n /** Stream of changes to the selection state of the autocomplete options. */\n this.optionSelections = defer(() => {\n const options = this.autocomplete ? this.autocomplete.options : null;\n if (options) {\n return options.changes.pipe(startWith(options), switchMap(() => merge(...options.map(option => option.onSelectionChange))));\n }\n // If there are any subscribers before `ngAfterViewInit`, the `autocomplete` will be undefined.\n // Return a stream that we'll replace with the real one once everything is in place.\n return this._zone.onStable.pipe(take(1), switchMap(() => this.optionSelections));\n });\n /** Handles keyboard events coming from the overlay panel. */\n this._handlePanelKeydown = event => {\n // Close when pressing ESCAPE or ALT + UP_ARROW, based on the a11y guidelines.\n // See: https://www.w3.org/TR/wai-aria-practices-1.1/#textbox-keyboard-interaction\n if (event.keyCode === ESCAPE && !hasModifierKey(event) || event.keyCode === UP_ARROW && hasModifierKey(event, 'altKey')) {\n // If the user had typed something in before we autoselected an option, and they decided\n // to cancel the selection, restore the input value to the one they had typed in.\n if (this._pendingAutoselectedOption) {\n this._updateNativeInputValue(this._valueBeforeAutoSelection ?? '');\n this._pendingAutoselectedOption = null;\n }\n this._closeKeyEventStream.next();\n this._resetActiveItem();\n // We need to stop propagation, otherwise the event will eventually\n // reach the input itself and cause the overlay to be reopened.\n event.stopPropagation();\n event.preventDefault();\n }\n };\n /**\n * Track which modal we have modified the `aria-owns` attribute of. When the combobox trigger is\n * inside an aria-modal, we apply aria-owns to the parent modal with the `id` of the options\n * panel. Track the modal we have changed so we can undo the changes on destroy.\n */\n this._trackedModal = null;\n this._scrollStrategy = scrollStrategy;\n }\n ngAfterViewInit() {\n const window = this._getWindow();\n if (typeof window !== 'undefined') {\n this._zone.runOutsideAngular(() => window.addEventListener('blur', this._windowBlurHandler));\n }\n }\n ngOnChanges(changes) {\n if (changes['position'] && this._positionStrategy) {\n this._setStrategyPositions(this._positionStrategy);\n if (this.panelOpen) {\n this._overlayRef.updatePosition();\n }\n }\n }\n ngOnDestroy() {\n const window = this._getWindow();\n if (typeof window !== 'undefined') {\n window.removeEventListener('blur', this._windowBlurHandler);\n }\n this._viewportSubscription.unsubscribe();\n this._componentDestroyed = true;\n this._destroyPanel();\n this._closeKeyEventStream.complete();\n this._clearFromModal();\n }\n /** Whether or not the autocomplete panel is open. */\n get panelOpen() {\n return this._overlayAttached && this.autocomplete.showPanel;\n }\n /** Opens the autocomplete suggestion panel. */\n openPanel() {\n this._attachOverlay();\n this._floatLabel();\n // Add aria-owns attribute when the autocomplete becomes visible.\n if (this._trackedModal) {\n const panelId = this.autocomplete.id;\n addAriaReferencedId(this._trackedModal, 'aria-owns', panelId);\n }\n }\n /** Closes the autocomplete suggestion panel. */\n closePanel() {\n this._resetLabel();\n if (!this._overlayAttached) {\n return;\n }\n if (this.panelOpen) {\n // Only emit if the panel was visible.\n // The `NgZone.onStable` always emits outside of the Angular zone,\n // so all the subscriptions from `_subscribeToClosingActions()` are also outside of the Angular zone.\n // We should manually run in Angular zone to update UI after panel closing.\n this._zone.run(() => {\n this.autocomplete.closed.emit();\n });\n }\n this.autocomplete._isOpen = this._overlayAttached = false;\n this._pendingAutoselectedOption = null;\n if (this._overlayRef && this._overlayRef.hasAttached()) {\n this._overlayRef.detach();\n this._closingActionsSubscription.unsubscribe();\n }\n this._updatePanelState();\n // Note that in some cases this can end up being called after the component is destroyed.\n // Add a check to ensure that we don't try to run change detection on a destroyed view.\n if (!this._componentDestroyed) {\n // We need to trigger change detection manually, because\n // `fromEvent` doesn't seem to do it at the proper time.\n // This ensures that the label is reset when the\n // user clicks outside.\n this._changeDetectorRef.detectChanges();\n }\n // Remove aria-owns attribute when the autocomplete is no longer visible.\n if (this._trackedModal) {\n const panelId = this.autocomplete.id;\n removeAriaReferencedId(this._trackedModal, 'aria-owns', panelId);\n }\n }\n /**\n * Updates the position of the autocomplete suggestion panel to ensure that it fits all options\n * within the viewport.\n */\n updatePosition() {\n if (this._overlayAttached) {\n this._overlayRef.updatePosition();\n }\n }\n /**\n * A stream of actions that should close the autocomplete panel, including\n * when an option is selected, on blur, and when TAB is pressed.\n */\n get panelClosingActions() {\n return merge(this.optionSelections, this.autocomplete._keyManager.tabOut.pipe(filter(() => this._overlayAttached)), this._closeKeyEventStream, this._getOutsideClickStream(), this._overlayRef ? this._overlayRef.detachments().pipe(filter(() => this._overlayAttached)) : of()).pipe(\n // Normalize the output so we return a consistent type.\n map(event => event instanceof MatOptionSelectionChange ? event : null));\n }\n /** The currently active option, coerced to MatOption type. */\n get activeOption() {\n if (this.autocomplete && this.autocomplete._keyManager) {\n return this.autocomplete._keyManager.activeItem;\n }\n return null;\n }\n /** Stream of clicks outside of the autocomplete panel. */\n _getOutsideClickStream() {\n return merge(fromEvent(this._document, 'click'), fromEvent(this._document, 'auxclick'), fromEvent(this._document, 'touchend')).pipe(filter(event => {\n // If we're in the Shadow DOM, the event target will be the shadow root, so we have to\n // fall back to check the first element in the path of the click event.\n const clickTarget = _getEventTarget(event);\n const formField = this._formField ? this._formField._elementRef.nativeElement : null;\n const customOrigin = this.connectedTo ? this.connectedTo.elementRef.nativeElement : null;\n return this._overlayAttached && clickTarget !== this._element.nativeElement &&\n // Normally focus moves inside `mousedown` so this condition will almost always be\n // true. Its main purpose is to handle the case where the input is focused from an\n // outside click which propagates up to the `body` listener within the same sequence\n // and causes the panel to close immediately (see #3106).\n this._document.activeElement !== this._element.nativeElement && (!formField || !formField.contains(clickTarget)) && (!customOrigin || !customOrigin.contains(clickTarget)) && !!this._overlayRef && !this._overlayRef.overlayElement.contains(clickTarget);\n }));\n }\n // Implemented as part of ControlValueAccessor.\n writeValue(value) {\n Promise.resolve(null).then(() => this._assignOptionValue(value));\n }\n // Implemented as part of ControlValueAccessor.\n registerOnChange(fn) {\n this._onChange = fn;\n }\n // Implemented as part of ControlValueAccessor.\n registerOnTouched(fn) {\n this._onTouched = fn;\n }\n // Implemented as part of ControlValueAccessor.\n setDisabledState(isDisabled) {\n this._element.nativeElement.disabled = isDisabled;\n }\n _handleKeydown(event) {\n const keyCode = event.keyCode;\n const hasModifier = hasModifierKey(event);\n // Prevent the default action on all escape key presses. This is here primarily to bring IE\n // in line with other browsers. By default, pressing escape on IE will cause it to revert\n // the input value to the one that it had on focus, however it won't dispatch any events\n // which means that the model value will be out of sync with the view.\n if (keyCode === ESCAPE && !hasModifier) {\n event.preventDefault();\n }\n if (this.activeOption && keyCode === ENTER && this.panelOpen && !hasModifier) {\n this.activeOption._selectViaInteraction();\n this._resetActiveItem();\n event.preventDefault();\n } else if (this.autocomplete) {\n const prevActiveItem = this.autocomplete._keyManager.activeItem;\n const isArrowKey = keyCode === UP_ARROW || keyCode === DOWN_ARROW;\n if (keyCode === TAB || isArrowKey && !hasModifier && this.panelOpen) {\n this.autocomplete._keyManager.onKeydown(event);\n } else if (isArrowKey && this._canOpen()) {\n this.openPanel();\n }\n if (isArrowKey || this.autocomplete._keyManager.activeItem !== prevActiveItem) {\n this._scrollToOption(this.autocomplete._keyManager.activeItemIndex || 0);\n if (this.autocomplete.autoSelectActiveOption && this.activeOption) {\n if (!this._pendingAutoselectedOption) {\n this._valueBeforeAutoSelection = this._element.nativeElement.value;\n }\n this._pendingAutoselectedOption = this.activeOption;\n this._assignOptionValue(this.activeOption.value);\n }\n }\n }\n }\n _handleInput(event) {\n let target = event.target;\n let value = target.value;\n // Based on `NumberValueAccessor` from forms.\n if (target.type === 'number') {\n value = value == '' ? null : parseFloat(value);\n }\n // If the input has a placeholder, IE will fire the `input` event on page load,\n // focus and blur, in addition to when the user actually changed the value. To\n // filter out all of the extra events, we save the value on focus and between\n // `input` events, and we check whether it changed.\n // See: https://connect.microsoft.com/IE/feedback/details/885747/\n if (this._previousValue !== value) {\n this._previousValue = value;\n this._pendingAutoselectedOption = null;\n // If selection is required we don't write to the CVA while the user is typing.\n // At the end of the selection either the user will have picked something\n // or we'll reset the value back to null.\n if (!this.autocomplete || !this.autocomplete.requireSelection) {\n this._onChange(value);\n }\n if (!value) {\n this._clearPreviousSelectedOption(null, false);\n }\n if (this._canOpen() && this._document.activeElement === event.target) {\n this.openPanel();\n }\n }\n }\n _handleFocus() {\n if (!this._canOpenOnNextFocus) {\n this._canOpenOnNextFocus = true;\n } else if (this._canOpen()) {\n this._previousValue = this._element.nativeElement.value;\n this._attachOverlay();\n this._floatLabel(true);\n }\n }\n _handleClick() {\n if (this._canOpen() && !this.panelOpen) {\n this.openPanel();\n }\n }\n /**\n * In \"auto\" mode, the label will animate down as soon as focus is lost.\n * This causes the value to jump when selecting an option with the mouse.\n * This method manually floats the label until the panel can be closed.\n * @param shouldAnimate Whether the label should be animated when it is floated.\n */\n _floatLabel(shouldAnimate = false) {\n if (this._formField && this._formField.floatLabel === 'auto') {\n if (shouldAnimate) {\n this._formField._animateAndLockLabel();\n } else {\n this._formField.floatLabel = 'always';\n }\n this._manuallyFloatingLabel = true;\n }\n }\n /** If the label has been manually elevated, return it to its normal state. */\n _resetLabel() {\n if (this._manuallyFloatingLabel) {\n if (this._formField) {\n this._formField.floatLabel = 'auto';\n }\n this._manuallyFloatingLabel = false;\n }\n }\n /**\n * This method listens to a stream of panel closing actions and resets the\n * stream every time the option list changes.\n */\n _subscribeToClosingActions() {\n const firstStable = this._zone.onStable.pipe(take(1));\n const optionChanges = this.autocomplete.options.changes.pipe(tap(() => this._positionStrategy.reapplyLastPosition()),\n // Defer emitting to the stream until the next tick, because changing\n // bindings in here will cause \"changed after checked\" errors.\n delay(0));\n // When the zone is stable initially, and when the option list changes...\n return merge(firstStable, optionChanges).pipe(\n // create a new stream of panelClosingActions, replacing any previous streams\n // that were created, and flatten it so our stream only emits closing events...\n switchMap(() => {\n // The `NgZone.onStable` always emits outside of the Angular zone, thus we have to re-enter\n // the Angular zone. This will lead to change detection being called outside of the Angular\n // zone and the `autocomplete.opened` will also emit outside of the Angular.\n this._zone.run(() => {\n const wasOpen = this.panelOpen;\n this._resetActiveItem();\n this._updatePanelState();\n this._changeDetectorRef.detectChanges();\n if (this.panelOpen) {\n this._overlayRef.updatePosition();\n }\n if (wasOpen !== this.panelOpen) {\n // If the `panelOpen` state changed, we need to make sure to emit the `opened` or\n // `closed` event, because we may not have emitted it. This can happen\n // - if the users opens the panel and there are no options, but the\n // options come in slightly later or as a result of the value changing,\n // - if the panel is closed after the user entered a string that did not match any\n // of the available options,\n // - if a valid string is entered after an invalid one.\n if (this.panelOpen) {\n this._captureValueOnAttach();\n this._emitOpened();\n } else {\n this.autocomplete.closed.emit();\n }\n }\n });\n return this.panelClosingActions;\n }),\n // when the first closing event occurs...\n take(1))\n // set the value, close the panel, and complete.\n .subscribe(event => this._setValueAndClose(event));\n }\n /**\n * Emits the opened event once it's known that the panel will be shown and stores\n * the state of the trigger right before the opening sequence was finished.\n */\n _emitOpened() {\n this.autocomplete.opened.emit();\n }\n /** Intended to be called when the panel is attached. Captures the current value of the input. */\n _captureValueOnAttach() {\n this._valueOnAttach = this._element.nativeElement.value;\n }\n /** Destroys the autocomplete suggestion panel. */\n _destroyPanel() {\n if (this._overlayRef) {\n this.closePanel();\n this._overlayRef.dispose();\n this._overlayRef = null;\n }\n }\n _assignOptionValue(value) {\n const toDisplay = this.autocomplete && this.autocomplete.displayWith ? this.autocomplete.displayWith(value) : value;\n // Simply falling back to an empty string if the display value is falsy does not work properly.\n // The display value can also be the number zero and shouldn't fall back to an empty string.\n this._updateNativeInputValue(toDisplay != null ? toDisplay : '');\n }\n _updateNativeInputValue(value) {\n // If it's used within a `MatFormField`, we should set it through the property so it can go\n // through change detection.\n if (this._formField) {\n this._formField._control.value = value;\n } else {\n this._element.nativeElement.value = value;\n }\n this._previousValue = value;\n }\n /**\n * This method closes the panel, and if a value is specified, also sets the associated\n * control to that value. It will also mark the control as dirty if this interaction\n * stemmed from the user.\n */\n _setValueAndClose(event) {\n const panel = this.autocomplete;\n const toSelect = event ? event.source : this._pendingAutoselectedOption;\n if (toSelect) {\n this._clearPreviousSelectedOption(toSelect);\n this._assignOptionValue(toSelect.value);\n // TODO(crisbeto): this should wait until the animation is done, otherwise the value\n // gets reset while the panel is still animating which looks glitchy. It'll likely break\n // some tests to change it at this point.\n this._onChange(toSelect.value);\n panel._emitSelectEvent(toSelect);\n this._element.nativeElement.focus();\n } else if (panel.requireSelection && this._element.nativeElement.value !== this._valueOnAttach) {\n this._clearPreviousSelectedOption(null);\n this._assignOptionValue(null);\n // Wait for the animation to finish before clearing the form control value, otherwise\n // the options might change while the animation is running which looks glitchy.\n if (panel._animationDone) {\n panel._animationDone.pipe(take(1)).subscribe(() => this._onChange(null));\n } else {\n this._onChange(null);\n }\n }\n this.closePanel();\n }\n /**\n * Clear any previous selected option and emit a selection change event for this option\n */\n _clearPreviousSelectedOption(skip, emitEvent) {\n // Null checks are necessary here, because the autocomplete\n // or its options may not have been assigned yet.\n this.autocomplete?.options?.forEach(option => {\n if (option !== skip && option.selected) {\n option.deselect(emitEvent);\n }\n });\n }\n _attachOverlay() {\n if (!this.autocomplete && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getMatAutocompleteMissingPanelError();\n }\n let overlayRef = this._overlayRef;\n if (!overlayRef) {\n this._portal = new TemplatePortal(this.autocomplete.template, this._viewContainerRef, {\n id: this._formField?.getLabelId()\n });\n overlayRef = this._overlay.create(this._getOverlayConfig());\n this._overlayRef = overlayRef;\n this._viewportSubscription = this._viewportRuler.change().subscribe(() => {\n if (this.panelOpen && overlayRef) {\n overlayRef.updateSize({\n width: this._getPanelWidth()\n });\n }\n });\n } else {\n // Update the trigger, panel width and direction, in case anything has changed.\n this._positionStrategy.setOrigin(this._getConnectedElement());\n overlayRef.updateSize({\n width: this._getPanelWidth()\n });\n }\n if (overlayRef && !overlayRef.hasAttached()) {\n overlayRef.attach(this._portal);\n this._closingActionsSubscription = this._subscribeToClosingActions();\n }\n const wasOpen = this.panelOpen;\n this.autocomplete._isOpen = this._overlayAttached = true;\n this.autocomplete._setColor(this._formField?.color);\n this._updatePanelState();\n this._applyModalPanelOwnership();\n this._captureValueOnAttach();\n // We need to do an extra `panelOpen` check in here, because the\n // autocomplete won't be shown if there are no options.\n if (this.panelOpen && wasOpen !== this.panelOpen) {\n this._emitOpened();\n }\n }\n /** Updates the panel's visibility state and any trigger state tied to id. */\n _updatePanelState() {\n this.autocomplete._setVisibility();\n // Note that here we subscribe and unsubscribe based on the panel's visiblity state,\n // because the act of subscribing will prevent events from reaching other overlays and\n // we don't want to block the events if there are no options.\n if (this.panelOpen) {\n const overlayRef = this._overlayRef;\n if (!this._keydownSubscription) {\n // Use the `keydownEvents` in order to take advantage of\n // the overlay event targeting provided by the CDK overlay.\n this._keydownSubscription = overlayRef.keydownEvents().subscribe(this._handlePanelKeydown);\n }\n if (!this._outsideClickSubscription) {\n // Subscribe to the pointer events stream so that it doesn't get picked up by other overlays.\n // TODO(crisbeto): we should switch `_getOutsideClickStream` eventually to use this stream,\n // but the behvior isn't exactly the same and it ends up breaking some internal tests.\n this._outsideClickSubscription = overlayRef.outsidePointerEvents().subscribe();\n }\n } else {\n this._keydownSubscription?.unsubscribe();\n this._outsideClickSubscription?.unsubscribe();\n this._keydownSubscription = this._outsideClickSubscription = null;\n }\n }\n _getOverlayConfig() {\n return new OverlayConfig({\n positionStrategy: this._getOverlayPosition(),\n scrollStrategy: this._scrollStrategy(),\n width: this._getPanelWidth(),\n direction: this._dir ?? undefined,\n panelClass: this._defaults?.overlayPanelClass\n });\n }\n _getOverlayPosition() {\n const strategy = this._overlay.position().flexibleConnectedTo(this._getConnectedElement()).withFlexibleDimensions(false).withPush(false);\n this._setStrategyPositions(strategy);\n this._positionStrategy = strategy;\n return strategy;\n }\n /** Sets the positions on a position strategy based on the directive's input state. */\n _setStrategyPositions(positionStrategy) {\n // Note that we provide horizontal fallback positions, even though by default the dropdown\n // width matches the input, because consumers can override the width. See #18854.\n const belowPositions = [{\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top'\n }, {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top'\n }];\n // The overlay edge connected to the trigger should have squared corners, while\n // the opposite end has rounded corners. We apply a CSS class to swap the\n // border-radius based on the overlay position.\n const panelClass = this._aboveClass;\n const abovePositions = [{\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n panelClass\n }, {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n panelClass\n }];\n let positions;\n if (this.position === 'above') {\n positions = abovePositions;\n } else if (this.position === 'below') {\n positions = belowPositions;\n } else {\n positions = [...belowPositions, ...abovePositions];\n }\n positionStrategy.withPositions(positions);\n }\n _getConnectedElement() {\n if (this.connectedTo) {\n return this.connectedTo.elementRef;\n }\n return this._formField ? this._formField.getConnectedOverlayOrigin() : this._element;\n }\n _getPanelWidth() {\n return this.autocomplete.panelWidth || this._getHostWidth();\n }\n /** Returns the width of the input element, so the panel width can match it. */\n _getHostWidth() {\n return this._getConnectedElement().nativeElement.getBoundingClientRect().width;\n }\n /**\n * Reset the active item to -1. This is so that pressing arrow keys will activate the correct\n * option.\n *\n * If the consumer opted-in to automatically activatating the first option, activate the first\n * *enabled* option.\n */\n _resetActiveItem() {\n const autocomplete = this.autocomplete;\n if (autocomplete.autoActiveFirstOption) {\n // Find the index of the first *enabled* option. Avoid calling `_keyManager.setActiveItem`\n // because it activates the first option that passes the skip predicate, rather than the\n // first *enabled* option.\n let firstEnabledOptionIndex = -1;\n for (let index = 0; index < autocomplete.options.length; index++) {\n const option = autocomplete.options.get(index);\n if (!option.disabled) {\n firstEnabledOptionIndex = index;\n break;\n }\n }\n autocomplete._keyManager.setActiveItem(firstEnabledOptionIndex);\n } else {\n autocomplete._keyManager.setActiveItem(-1);\n }\n }\n /** Determines whether the panel can be opened. */\n _canOpen() {\n const element = this._element.nativeElement;\n return !element.readOnly && !element.disabled && !this._autocompleteDisabled;\n }\n /** Use defaultView of injected document if available or fallback to global window reference */\n _getWindow() {\n return this._document?.defaultView || window;\n }\n /** Scrolls to a particular option in the list. */\n _scrollToOption(index) {\n // Given that we are not actually focusing active options, we must manually adjust scroll\n // to reveal options below the fold. First, we find the offset of the option from the top\n // of the panel. If that offset is below the fold, the new scrollTop will be the offset -\n // the panel height + the option height, so the active option will be just visible at the\n // bottom of the panel. If that offset is above the top of the visible panel, the new scrollTop\n // will become the offset. If that offset is visible within the panel already, the scrollTop is\n // not adjusted.\n const autocomplete = this.autocomplete;\n const labelCount = _countGroupLabelsBeforeOption(index, autocomplete.options, autocomplete.optionGroups);\n if (index === 0 && labelCount === 1) {\n // If we've got one group label before the option and we're at the top option,\n // scroll the list to the top. This is better UX than scrolling the list to the\n // top of the option, because it allows the user to read the top group's label.\n autocomplete._setScrollTop(0);\n } else if (autocomplete.panel) {\n const option = autocomplete.options.toArray()[index];\n if (option) {\n const element = option._getHostElement();\n const newScrollPosition = _getOptionScrollPosition(element.offsetTop, element.offsetHeight, autocomplete._getScrollTop(), autocomplete.panel.nativeElement.offsetHeight);\n autocomplete._setScrollTop(newScrollPosition);\n }\n }\n }\n /**\n * If the autocomplete trigger is inside of an `aria-modal` element, connect\n * that modal to the options panel with `aria-owns`.\n *\n * For some browser + screen reader combinations, when navigation is inside\n * of an `aria-modal` element, the screen reader treats everything outside\n * of that modal as hidden or invisible.\n *\n * This causes a problem when the combobox trigger is _inside_ of a modal, because the\n * options panel is rendered _outside_ of that modal, preventing screen reader navigation\n * from reaching the panel.\n *\n * We can work around this issue by applying `aria-owns` to the modal with the `id` of\n * the options panel. This effectively communicates to assistive technology that the\n * options panel is part of the same interaction as the modal.\n *\n * At time of this writing, this issue is present in VoiceOver.\n * See https://github.com/angular/components/issues/20694\n */\n _applyModalPanelOwnership() {\n // TODO(http://github.com/angular/components/issues/26853): consider de-duplicating this with\n // the `LiveAnnouncer` and any other usages.\n //\n // Note that the selector here is limited to CDK overlays at the moment in order to reduce the\n // section of the DOM we need to look through. This should cover all the cases we support, but\n // the selector can be expanded if it turns out to be too narrow.\n const modal = this._element.nativeElement.closest('body > .cdk-overlay-container [aria-modal=\"true\"]');\n if (!modal) {\n // Most commonly, the autocomplete trigger is not inside a modal.\n return;\n }\n const panelId = this.autocomplete.id;\n if (this._trackedModal) {\n removeAriaReferencedId(this._trackedModal, 'aria-owns', panelId);\n }\n addAriaReferencedId(modal, 'aria-owns', panelId);\n this._trackedModal = modal;\n }\n /** Clears the references to the listbox overlay element from the modal it was added to. */\n _clearFromModal() {\n if (this._trackedModal) {\n const panelId = this.autocomplete.id;\n removeAriaReferencedId(this._trackedModal, 'aria-owns', panelId);\n this._trackedModal = null;\n }\n }\n static {\n this.ɵfac = function _MatAutocompleteTriggerBase_Factory(ɵt) {\n return new (ɵt || _MatAutocompleteTriggerBase)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1$1.Overlay), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(MAT_AUTOCOMPLETE_SCROLL_STRATEGY), i0.ɵɵdirectiveInject(i2$1.Directionality, 8), i0.ɵɵdirectiveInject(MAT_FORM_FIELD, 9), i0.ɵɵdirectiveInject(DOCUMENT, 8), i0.ɵɵdirectiveInject(i3.ViewportRuler), i0.ɵɵdirectiveInject(MAT_AUTOCOMPLETE_DEFAULT_OPTIONS, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: _MatAutocompleteTriggerBase,\n inputs: {\n autocomplete: [0, \"matAutocomplete\", \"autocomplete\"],\n position: [0, \"matAutocompletePosition\", \"position\"],\n connectedTo: [0, \"matAutocompleteConnectedTo\", \"connectedTo\"],\n autocompleteAttribute: [0, \"autocomplete\", \"autocompleteAttribute\"],\n autocompleteDisabled: [0, \"matAutocompleteDisabled\", \"autocompleteDisabled\"]\n },\n features: [i0.ɵɵNgOnChangesFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(_MatAutocompleteTriggerBase, [{\n type: Directive\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i1$1.Overlay\n }, {\n type: i0.ViewContainerRef\n }, {\n type: i0.NgZone\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [MAT_AUTOCOMPLETE_SCROLL_STRATEGY]\n }]\n }, {\n type: i2$1.Directionality,\n decorators: [{\n type: Optional\n }]\n }, {\n type: i4.MatFormField,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_FORM_FIELD]\n }, {\n type: Host\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [DOCUMENT]\n }]\n }, {\n type: i3.ViewportRuler\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_AUTOCOMPLETE_DEFAULT_OPTIONS]\n }]\n }];\n }, {\n autocomplete: [{\n type: Input,\n args: ['matAutocomplete']\n }],\n position: [{\n type: Input,\n args: ['matAutocompletePosition']\n }],\n connectedTo: [{\n type: Input,\n args: ['matAutocompleteConnectedTo']\n }],\n autocompleteAttribute: [{\n type: Input,\n args: ['autocomplete']\n }],\n autocompleteDisabled: [{\n type: Input,\n args: ['matAutocompleteDisabled']\n }]\n });\n})();\nclass MatAutocompleteTrigger extends _MatAutocompleteTriggerBase {\n constructor() {\n super(...arguments);\n this._aboveClass = 'mat-mdc-autocomplete-panel-above';\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatAutocompleteTrigger_BaseFactory;\n return function MatAutocompleteTrigger_Factory(ɵt) {\n return (ɵMatAutocompleteTrigger_BaseFactory || (ɵMatAutocompleteTrigger_BaseFactory = i0.ɵɵgetInheritedFactory(MatAutocompleteTrigger)))(ɵt || MatAutocompleteTrigger);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatAutocompleteTrigger,\n selectors: [[\"input\", \"matAutocomplete\", \"\"], [\"textarea\", \"matAutocomplete\", \"\"]],\n hostAttrs: [1, \"mat-mdc-autocomplete-trigger\"],\n hostVars: 7,\n hostBindings: function MatAutocompleteTrigger_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"focusin\", function MatAutocompleteTrigger_focusin_HostBindingHandler() {\n return ctx._handleFocus();\n })(\"blur\", function MatAutocompleteTrigger_blur_HostBindingHandler() {\n return ctx._onTouched();\n })(\"input\", function MatAutocompleteTrigger_input_HostBindingHandler($event) {\n return ctx._handleInput($event);\n })(\"keydown\", function MatAutocompleteTrigger_keydown_HostBindingHandler($event) {\n return ctx._handleKeydown($event);\n })(\"click\", function MatAutocompleteTrigger_click_HostBindingHandler() {\n return ctx._handleClick();\n });\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"autocomplete\", ctx.autocompleteAttribute)(\"role\", ctx.autocompleteDisabled ? null : \"combobox\")(\"aria-autocomplete\", ctx.autocompleteDisabled ? null : \"list\")(\"aria-activedescendant\", ctx.panelOpen && ctx.activeOption ? ctx.activeOption.id : null)(\"aria-expanded\", ctx.autocompleteDisabled ? null : ctx.panelOpen.toString())(\"aria-controls\", ctx.autocompleteDisabled || !ctx.panelOpen ? null : ctx.autocomplete == null ? null : ctx.autocomplete.id)(\"aria-haspopup\", ctx.autocompleteDisabled ? null : \"listbox\");\n }\n },\n exportAs: [\"matAutocompleteTrigger\"],\n features: [i0.ɵɵProvidersFeature([MAT_AUTOCOMPLETE_VALUE_ACCESSOR]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatAutocompleteTrigger, [{\n type: Directive,\n args: [{\n selector: `input[matAutocomplete], textarea[matAutocomplete]`,\n host: {\n 'class': 'mat-mdc-autocomplete-trigger',\n '[attr.autocomplete]': 'autocompleteAttribute',\n '[attr.role]': 'autocompleteDisabled ? null : \"combobox\"',\n '[attr.aria-autocomplete]': 'autocompleteDisabled ? null : \"list\"',\n '[attr.aria-activedescendant]': '(panelOpen && activeOption) ? activeOption.id : null',\n '[attr.aria-expanded]': 'autocompleteDisabled ? null : panelOpen.toString()',\n '[attr.aria-controls]': '(autocompleteDisabled || !panelOpen) ? null : autocomplete?.id',\n '[attr.aria-haspopup]': 'autocompleteDisabled ? null : \"listbox\"',\n // Note: we use `focusin`, as opposed to `focus`, in order to open the panel\n // a little earlier. This avoids issues where IE delays the focusing of the input.\n '(focusin)': '_handleFocus()',\n '(blur)': '_onTouched()',\n '(input)': '_handleInput($event)',\n '(keydown)': '_handleKeydown($event)',\n '(click)': '_handleClick()'\n },\n exportAs: 'matAutocompleteTrigger',\n providers: [MAT_AUTOCOMPLETE_VALUE_ACCESSOR]\n }]\n }], null, null);\n})();\nclass MatAutocompleteModule {\n static {\n this.ɵfac = function MatAutocompleteModule_Factory(ɵt) {\n return new (ɵt || MatAutocompleteModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatAutocompleteModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY_PROVIDER],\n imports: [OverlayModule, MatOptionModule, MatCommonModule, CommonModule, CdkScrollableModule, MatOptionModule, MatCommonModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatAutocompleteModule, [{\n type: NgModule,\n args: [{\n imports: [OverlayModule, MatOptionModule, MatCommonModule, CommonModule],\n exports: [CdkScrollableModule, MatAutocomplete, MatOptionModule, MatCommonModule, MatAutocompleteTrigger, MatAutocompleteOrigin],\n declarations: [MatAutocomplete, MatAutocompleteTrigger, MatAutocompleteOrigin],\n providers: [MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY_PROVIDER]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_AUTOCOMPLETE_DEFAULT_OPTIONS, MAT_AUTOCOMPLETE_DEFAULT_OPTIONS_FACTORY, MAT_AUTOCOMPLETE_SCROLL_STRATEGY, MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY, MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY_PROVIDER, MAT_AUTOCOMPLETE_VALUE_ACCESSOR, MatAutocomplete, MatAutocompleteModule, MatAutocompleteOrigin, MatAutocompleteSelectedEvent, MatAutocompleteTrigger, _MatAutocompleteBase, _MatAutocompleteOriginBase, _MatAutocompleteTriggerBase, getMatAutocompleteMissingPanelError };\n","import * as i0 from '@angular/core';\nimport { Component, ViewEncapsulation, ChangeDetectionStrategy, ContentChildren, forwardRef, Directive, NgModule } from '@angular/core';\nimport { MAT_LEGACY_OPTION_PARENT_COMPONENT, MAT_LEGACY_OPTGROUP, MatLegacyOption, MatLegacyOptionModule } from '@angular/material/legacy-core';\nimport { _MatAutocompleteBase, _MatAutocompleteTriggerBase, _MatAutocompleteOriginBase, MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY_PROVIDER } from '@angular/material/autocomplete';\nconst _c0 = [\"*\"];\nfunction MatLegacyAutocomplete_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 1, 0);\n i0.ɵɵprojection(2);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const formFieldId_r1 = ctx.id;\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"id\", ctx_r1.id)(\"ngClass\", ctx_r1._classList);\n i0.ɵɵattribute(\"aria-label\", ctx_r1.ariaLabel || null)(\"aria-labelledby\", ctx_r1._getPanelAriaLabelledby(formFieldId_r1));\n }\n}\nexport { MAT_AUTOCOMPLETE_DEFAULT_OPTIONS as MAT_LEGACY_AUTOCOMPLETE_DEFAULT_OPTIONS, MAT_AUTOCOMPLETE_DEFAULT_OPTIONS_FACTORY as MAT_LEGACY_AUTOCOMPLETE_DEFAULT_OPTIONS_FACTORY, MAT_AUTOCOMPLETE_SCROLL_STRATEGY as MAT_LEGACY_AUTOCOMPLETE_SCROLL_STRATEGY, MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY as MAT_LEGACY_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY, MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY_PROVIDER as MAT_LEGACY_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY_PROVIDER, MatAutocompleteSelectedEvent as MatLegacyAutocompleteSelectedEvent, getMatAutocompleteMissingPanelError as getMatLegacyAutocompleteMissingPanelError } from '@angular/material/autocomplete';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { MatCommonModule } from '@angular/material/core';\nimport { CdkScrollableModule } from '@angular/cdk/scrolling';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\n/**\n * @deprecated Use `MatAutocomplete` from `@angular/material/autocomplete` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyAutocomplete extends _MatAutocompleteBase {\n constructor() {\n super(...arguments);\n this._visibleClass = 'mat-autocomplete-visible';\n this._hiddenClass = 'mat-autocomplete-hidden';\n this._animationDone = null;\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatLegacyAutocomplete_BaseFactory;\n return function MatLegacyAutocomplete_Factory(ɵt) {\n return (ɵMatLegacyAutocomplete_BaseFactory || (ɵMatLegacyAutocomplete_BaseFactory = i0.ɵɵgetInheritedFactory(MatLegacyAutocomplete)))(ɵt || MatLegacyAutocomplete);\n };\n })();\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatLegacyAutocomplete,\n selectors: [[\"mat-autocomplete\"]],\n contentQueries: function MatLegacyAutocomplete_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MAT_LEGACY_OPTGROUP, 5);\n i0.ɵɵcontentQuery(dirIndex, MatLegacyOption, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.optionGroups = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.options = _t);\n }\n },\n hostAttrs: [\"ngSkipHydration\", \"\", 1, \"mat-autocomplete\"],\n inputs: {\n disableRipple: \"disableRipple\"\n },\n exportAs: [\"matAutocomplete\"],\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_LEGACY_OPTION_PARENT_COMPONENT,\n useExisting: MatLegacyAutocomplete\n }]), i0.ɵɵInheritDefinitionFeature],\n ngContentSelectors: _c0,\n decls: 1,\n vars: 0,\n consts: [[\"panel\", \"\"], [\"role\", \"listbox\", 1, \"mat-autocomplete-panel\", 3, \"id\", \"ngClass\"]],\n template: function MatLegacyAutocomplete_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵtemplate(0, MatLegacyAutocomplete_ng_template_0_Template, 3, 4, \"ng-template\");\n }\n },\n dependencies: [i1.NgClass],\n styles: [\".mat-autocomplete-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;visibility:hidden;max-width:none;max-height:256px;position:relative;width:100%;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.mat-autocomplete-panel.mat-autocomplete-visible{visibility:visible}.mat-autocomplete-panel.mat-autocomplete-hidden{visibility:hidden}.mat-autocomplete-panel-above .mat-autocomplete-panel{border-radius:0;border-top-left-radius:4px;border-top-right-radius:4px}.mat-autocomplete-panel .mat-divider-horizontal{margin-top:-1px}.cdk-high-contrast-active .mat-autocomplete-panel{outline:solid 1px}mat-autocomplete{display:none}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyAutocomplete, [{\n type: Component,\n args: [{\n selector: 'mat-autocomplete',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'matAutocomplete',\n inputs: ['disableRipple'],\n host: {\n 'class': 'mat-autocomplete',\n 'ngSkipHydration': ''\n },\n providers: [{\n provide: MAT_LEGACY_OPTION_PARENT_COMPONENT,\n useExisting: MatLegacyAutocomplete\n }],\n template: \"\\n \\n \\n \\n\\n\",\n styles: [\".mat-autocomplete-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;visibility:hidden;max-width:none;max-height:256px;position:relative;width:100%;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.mat-autocomplete-panel.mat-autocomplete-visible{visibility:visible}.mat-autocomplete-panel.mat-autocomplete-hidden{visibility:hidden}.mat-autocomplete-panel-above .mat-autocomplete-panel{border-radius:0;border-top-left-radius:4px;border-top-right-radius:4px}.mat-autocomplete-panel .mat-divider-horizontal{margin-top:-1px}.cdk-high-contrast-active .mat-autocomplete-panel{outline:solid 1px}mat-autocomplete{display:none}\"]\n }]\n }], null, {\n optionGroups: [{\n type: ContentChildren,\n args: [MAT_LEGACY_OPTGROUP, {\n descendants: true\n }]\n }],\n options: [{\n type: ContentChildren,\n args: [MatLegacyOption, {\n descendants: true\n }]\n }]\n });\n})();\n\n/**\n * Provider that allows the autocomplete to register as a ControlValueAccessor.\n * @docs-private\n * @deprecated Use `MAT_AUTOCOMPLETE_VALUE_ACCESSOR` from `@angular/material/autocomplete` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nconst MAT_LEGACY_AUTOCOMPLETE_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MatLegacyAutocompleteTrigger),\n multi: true\n};\n/**\n * @deprecated Use `MatAutocompleteTrigger` from `@angular/material/autocomplete` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyAutocompleteTrigger extends _MatAutocompleteTriggerBase {\n constructor() {\n super(...arguments);\n this._aboveClass = 'mat-autocomplete-panel-above';\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatLegacyAutocompleteTrigger_BaseFactory;\n return function MatLegacyAutocompleteTrigger_Factory(ɵt) {\n return (ɵMatLegacyAutocompleteTrigger_BaseFactory || (ɵMatLegacyAutocompleteTrigger_BaseFactory = i0.ɵɵgetInheritedFactory(MatLegacyAutocompleteTrigger)))(ɵt || MatLegacyAutocompleteTrigger);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyAutocompleteTrigger,\n selectors: [[\"input\", \"matAutocomplete\", \"\"], [\"textarea\", \"matAutocomplete\", \"\"]],\n hostAttrs: [1, \"mat-autocomplete-trigger\"],\n hostVars: 7,\n hostBindings: function MatLegacyAutocompleteTrigger_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"focusin\", function MatLegacyAutocompleteTrigger_focusin_HostBindingHandler() {\n return ctx._handleFocus();\n })(\"blur\", function MatLegacyAutocompleteTrigger_blur_HostBindingHandler() {\n return ctx._onTouched();\n })(\"input\", function MatLegacyAutocompleteTrigger_input_HostBindingHandler($event) {\n return ctx._handleInput($event);\n })(\"keydown\", function MatLegacyAutocompleteTrigger_keydown_HostBindingHandler($event) {\n return ctx._handleKeydown($event);\n })(\"click\", function MatLegacyAutocompleteTrigger_click_HostBindingHandler() {\n return ctx._handleClick();\n });\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"autocomplete\", ctx.autocompleteAttribute)(\"role\", ctx.autocompleteDisabled ? null : \"combobox\")(\"aria-autocomplete\", ctx.autocompleteDisabled ? null : \"list\")(\"aria-activedescendant\", ctx.panelOpen && ctx.activeOption ? ctx.activeOption.id : null)(\"aria-expanded\", ctx.autocompleteDisabled ? null : ctx.panelOpen.toString())(\"aria-owns\", ctx.autocompleteDisabled || !ctx.panelOpen ? null : ctx.autocomplete == null ? null : ctx.autocomplete.id)(\"aria-haspopup\", ctx.autocompleteDisabled ? null : \"listbox\");\n }\n },\n exportAs: [\"matAutocompleteTrigger\"],\n features: [i0.ɵɵProvidersFeature([MAT_LEGACY_AUTOCOMPLETE_VALUE_ACCESSOR]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyAutocompleteTrigger, [{\n type: Directive,\n args: [{\n selector: `input[matAutocomplete], textarea[matAutocomplete]`,\n host: {\n 'class': 'mat-autocomplete-trigger',\n '[attr.autocomplete]': 'autocompleteAttribute',\n '[attr.role]': 'autocompleteDisabled ? null : \"combobox\"',\n '[attr.aria-autocomplete]': 'autocompleteDisabled ? null : \"list\"',\n '[attr.aria-activedescendant]': '(panelOpen && activeOption) ? activeOption.id : null',\n '[attr.aria-expanded]': 'autocompleteDisabled ? null : panelOpen.toString()',\n '[attr.aria-owns]': '(autocompleteDisabled || !panelOpen) ? null : autocomplete?.id',\n '[attr.aria-haspopup]': 'autocompleteDisabled ? null : \"listbox\"',\n // Note: we use `focusin`, as opposed to `focus`, in order to open the panel\n // a little earlier. This avoids issues where IE delays the focusing of the input.\n '(focusin)': '_handleFocus()',\n '(blur)': '_onTouched()',\n '(input)': '_handleInput($event)',\n '(keydown)': '_handleKeydown($event)',\n '(click)': '_handleClick()'\n },\n exportAs: 'matAutocompleteTrigger',\n providers: [MAT_LEGACY_AUTOCOMPLETE_VALUE_ACCESSOR]\n }]\n }], null, null);\n})();\n\n/**\n * Directive applied to an element to make it usable\n * as a connection point for an autocomplete panel.\n * @deprecated Use `MatAutocompleteOrigin` from `@angular/material/autocomplete` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyAutocompleteOrigin extends _MatAutocompleteOriginBase {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatLegacyAutocompleteOrigin_BaseFactory;\n return function MatLegacyAutocompleteOrigin_Factory(ɵt) {\n return (ɵMatLegacyAutocompleteOrigin_BaseFactory || (ɵMatLegacyAutocompleteOrigin_BaseFactory = i0.ɵɵgetInheritedFactory(MatLegacyAutocompleteOrigin)))(ɵt || MatLegacyAutocompleteOrigin);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyAutocompleteOrigin,\n selectors: [[\"\", \"matAutocompleteOrigin\", \"\"]],\n exportAs: [\"matAutocompleteOrigin\"],\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyAutocompleteOrigin, [{\n type: Directive,\n args: [{\n selector: '[matAutocompleteOrigin]',\n exportAs: 'matAutocompleteOrigin'\n }]\n }], null, null);\n})();\n\n/**\n * @deprecated Use `MatAutocompleteModule` from `@angular/material/autocomplete` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyAutocompleteModule {\n static {\n this.ɵfac = function MatLegacyAutocompleteModule_Factory(ɵt) {\n return new (ɵt || MatLegacyAutocompleteModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatLegacyAutocompleteModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY_PROVIDER],\n imports: [OverlayModule, MatLegacyOptionModule, MatCommonModule, CommonModule, CdkScrollableModule, MatLegacyOptionModule, MatCommonModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyAutocompleteModule, [{\n type: NgModule,\n args: [{\n imports: [OverlayModule, MatLegacyOptionModule, MatCommonModule, CommonModule],\n exports: [MatLegacyAutocomplete, MatLegacyAutocompleteTrigger, MatLegacyAutocompleteOrigin, CdkScrollableModule, MatLegacyOptionModule, MatCommonModule],\n declarations: [MatLegacyAutocomplete, MatLegacyAutocompleteTrigger, MatLegacyAutocompleteOrigin],\n providers: [MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY_PROVIDER]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_LEGACY_AUTOCOMPLETE_VALUE_ACCESSOR, MatLegacyAutocomplete, MatLegacyAutocompleteModule, MatLegacyAutocompleteOrigin, MatLegacyAutocompleteTrigger };\n","import * as i0 from '@angular/core';\nimport { Directive, Input, Component, ViewEncapsulation, ChangeDetectionStrategy, Optional, Inject, NgModule } from '@angular/core';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\nimport { MatCommonModule } from '@angular/material/core';\n\n/**\n * Content of a card, needed as it's used as a selector in the API.\n * @docs-private\n * @deprecated Use `MatCardContent` from `@angular/material/card` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nconst _c0 = [\"*\", [[\"mat-card-footer\"]]];\nconst _c1 = [\"*\", \"mat-card-footer\"];\nconst _c2 = [[[\"\", \"mat-card-avatar\", \"\"], [\"\", \"matCardAvatar\", \"\"]], [[\"mat-card-title\"], [\"mat-card-subtitle\"], [\"\", \"mat-card-title\", \"\"], [\"\", \"mat-card-subtitle\", \"\"], [\"\", \"matCardTitle\", \"\"], [\"\", \"matCardSubtitle\", \"\"]], \"*\"];\nconst _c3 = [\"[mat-card-avatar], [matCardAvatar]\", \"mat-card-title, mat-card-subtitle,\\n [mat-card-title], [mat-card-subtitle],\\n [matCardTitle], [matCardSubtitle]\", \"*\"];\nconst _c4 = [[[\"mat-card-title\"], [\"mat-card-subtitle\"], [\"\", \"mat-card-title\", \"\"], [\"\", \"mat-card-subtitle\", \"\"], [\"\", \"matCardTitle\", \"\"], [\"\", \"matCardSubtitle\", \"\"]], [[\"img\"]], \"*\"];\nconst _c5 = [\"mat-card-title, mat-card-subtitle,\\n [mat-card-title], [mat-card-subtitle],\\n [matCardTitle], [matCardSubtitle]\", \"img\", \"*\"];\nclass MatLegacyCardContent {\n static {\n this.ɵfac = function MatLegacyCardContent_Factory(ɵt) {\n return new (ɵt || MatLegacyCardContent)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyCardContent,\n selectors: [[\"mat-card-content\"], [\"\", \"mat-card-content\", \"\"], [\"\", \"matCardContent\", \"\"]],\n hostAttrs: [1, \"mat-card-content\"]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyCardContent, [{\n type: Directive,\n args: [{\n selector: 'mat-card-content, [mat-card-content], [matCardContent]',\n host: {\n 'class': 'mat-card-content'\n }\n }]\n }], null, null);\n})();\n/**\n * Title of a card, needed as it's used as a selector in the API.\n * @docs-private\n * @deprecated Use `MatCardTitle` from `@angular/material/card` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyCardTitle {\n static {\n this.ɵfac = function MatLegacyCardTitle_Factory(ɵt) {\n return new (ɵt || MatLegacyCardTitle)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyCardTitle,\n selectors: [[\"mat-card-title\"], [\"\", \"mat-card-title\", \"\"], [\"\", \"matCardTitle\", \"\"]],\n hostAttrs: [1, \"mat-card-title\"]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyCardTitle, [{\n type: Directive,\n args: [{\n selector: `mat-card-title, [mat-card-title], [matCardTitle]`,\n host: {\n 'class': 'mat-card-title'\n }\n }]\n }], null, null);\n})();\n/**\n * Sub-title of a card, needed as it's used as a selector in the API.\n * @docs-private\n * @deprecated Use `MatCardSubtitle` from `@angular/material/card` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyCardSubtitle {\n static {\n this.ɵfac = function MatLegacyCardSubtitle_Factory(ɵt) {\n return new (ɵt || MatLegacyCardSubtitle)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyCardSubtitle,\n selectors: [[\"mat-card-subtitle\"], [\"\", \"mat-card-subtitle\", \"\"], [\"\", \"matCardSubtitle\", \"\"]],\n hostAttrs: [1, \"mat-card-subtitle\"]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyCardSubtitle, [{\n type: Directive,\n args: [{\n selector: `mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]`,\n host: {\n 'class': 'mat-card-subtitle'\n }\n }]\n }], null, null);\n})();\n/**\n * Action section of a card, needed as it's used as a selector in the API.\n * @docs-private\n * @deprecated Use `MatCardActions` from `@angular/material/card` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyCardActions {\n constructor() {\n /** Position of the actions inside the card. */\n this.align = 'start';\n }\n static {\n this.ɵfac = function MatLegacyCardActions_Factory(ɵt) {\n return new (ɵt || MatLegacyCardActions)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyCardActions,\n selectors: [[\"mat-card-actions\"]],\n hostAttrs: [1, \"mat-card-actions\"],\n hostVars: 2,\n hostBindings: function MatLegacyCardActions_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"mat-card-actions-align-end\", ctx.align === \"end\");\n }\n },\n inputs: {\n align: \"align\"\n },\n exportAs: [\"matCardActions\"]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyCardActions, [{\n type: Directive,\n args: [{\n selector: 'mat-card-actions',\n exportAs: 'matCardActions',\n host: {\n 'class': 'mat-card-actions',\n '[class.mat-card-actions-align-end]': 'align === \"end\"'\n }\n }]\n }], null, {\n align: [{\n type: Input\n }]\n });\n})();\n/**\n * Footer of a card, needed as it's used as a selector in the API.\n * @docs-private\n * @deprecated Use `MatCardFooter` from `@angular/material/card` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyCardFooter {\n static {\n this.ɵfac = function MatLegacyCardFooter_Factory(ɵt) {\n return new (ɵt || MatLegacyCardFooter)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyCardFooter,\n selectors: [[\"mat-card-footer\"]],\n hostAttrs: [1, \"mat-card-footer\"]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyCardFooter, [{\n type: Directive,\n args: [{\n selector: 'mat-card-footer',\n host: {\n 'class': 'mat-card-footer'\n }\n }]\n }], null, null);\n})();\n/**\n * Image used in a card, needed to add the mat- CSS styling.\n * @docs-private\n * @deprecated Use `MatCardImage` from `@angular/material/card` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyCardImage {\n static {\n this.ɵfac = function MatLegacyCardImage_Factory(ɵt) {\n return new (ɵt || MatLegacyCardImage)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyCardImage,\n selectors: [[\"\", \"mat-card-image\", \"\"], [\"\", \"matCardImage\", \"\"]],\n hostAttrs: [1, \"mat-card-image\"]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyCardImage, [{\n type: Directive,\n args: [{\n selector: '[mat-card-image], [matCardImage]',\n host: {\n 'class': 'mat-card-image'\n }\n }]\n }], null, null);\n})();\n/**\n * Image used in a card, needed to add the mat- CSS styling.\n * @docs-private\n * @deprecated Use `MatCardSmImage` from `@angular/material/card` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyCardSmImage {\n static {\n this.ɵfac = function MatLegacyCardSmImage_Factory(ɵt) {\n return new (ɵt || MatLegacyCardSmImage)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyCardSmImage,\n selectors: [[\"\", \"mat-card-sm-image\", \"\"], [\"\", \"matCardImageSmall\", \"\"]],\n hostAttrs: [1, \"mat-card-sm-image\"]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyCardSmImage, [{\n type: Directive,\n args: [{\n selector: '[mat-card-sm-image], [matCardImageSmall]',\n host: {\n 'class': 'mat-card-sm-image'\n }\n }]\n }], null, null);\n})();\n/**\n * Image used in a card, needed to add the mat- CSS styling.\n * @docs-private\n * @deprecated Use `MatCardMdImage` from `@angular/material/card` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyCardMdImage {\n static {\n this.ɵfac = function MatLegacyCardMdImage_Factory(ɵt) {\n return new (ɵt || MatLegacyCardMdImage)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyCardMdImage,\n selectors: [[\"\", \"mat-card-md-image\", \"\"], [\"\", \"matCardImageMedium\", \"\"]],\n hostAttrs: [1, \"mat-card-md-image\"]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyCardMdImage, [{\n type: Directive,\n args: [{\n selector: '[mat-card-md-image], [matCardImageMedium]',\n host: {\n 'class': 'mat-card-md-image'\n }\n }]\n }], null, null);\n})();\n/**\n * Image used in a card, needed to add the mat- CSS styling.\n * @docs-private\n * @deprecated Use `MatCardLgImage` from `@angular/material/card` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyCardLgImage {\n static {\n this.ɵfac = function MatLegacyCardLgImage_Factory(ɵt) {\n return new (ɵt || MatLegacyCardLgImage)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyCardLgImage,\n selectors: [[\"\", \"mat-card-lg-image\", \"\"], [\"\", \"matCardImageLarge\", \"\"]],\n hostAttrs: [1, \"mat-card-lg-image\"]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyCardLgImage, [{\n type: Directive,\n args: [{\n selector: '[mat-card-lg-image], [matCardImageLarge]',\n host: {\n 'class': 'mat-card-lg-image'\n }\n }]\n }], null, null);\n})();\n/**\n * Large image used in a card, needed to add the mat- CSS styling.\n * @docs-private\n * @deprecated Use `MatCardXlImage` from `@angular/material/card` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyCardXlImage {\n static {\n this.ɵfac = function MatLegacyCardXlImage_Factory(ɵt) {\n return new (ɵt || MatLegacyCardXlImage)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyCardXlImage,\n selectors: [[\"\", \"mat-card-xl-image\", \"\"], [\"\", \"matCardImageXLarge\", \"\"]],\n hostAttrs: [1, \"mat-card-xl-image\"]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyCardXlImage, [{\n type: Directive,\n args: [{\n selector: '[mat-card-xl-image], [matCardImageXLarge]',\n host: {\n 'class': 'mat-card-xl-image'\n }\n }]\n }], null, null);\n})();\n/**\n * Avatar image used in a card, needed to add the mat- CSS styling.\n * @docs-private\n * @deprecated Use `MatCardAvatar` from `@angular/material/card` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyCardAvatar {\n static {\n this.ɵfac = function MatLegacyCardAvatar_Factory(ɵt) {\n return new (ɵt || MatLegacyCardAvatar)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyCardAvatar,\n selectors: [[\"\", \"mat-card-avatar\", \"\"], [\"\", \"matCardAvatar\", \"\"]],\n hostAttrs: [1, \"mat-card-avatar\"]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyCardAvatar, [{\n type: Directive,\n args: [{\n selector: '[mat-card-avatar], [matCardAvatar]',\n host: {\n 'class': 'mat-card-avatar'\n }\n }]\n }], null, null);\n})();\n/**\n * A basic content container component that adds the styles of a Material design card.\n *\n * While this component can be used alone, it also provides a number\n * of preset styles for common card sections, including:\n * - mat-card-title\n * - mat-card-subtitle\n * - mat-card-content\n * - mat-card-actions\n * - mat-card-footer\n *\n * @deprecated Use `MatCard` from `@angular/material/card` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyCard {\n // @breaking-change 9.0.0 `_animationMode` parameter to be made required.\n constructor(_animationMode) {\n this._animationMode = _animationMode;\n }\n static {\n this.ɵfac = function MatLegacyCard_Factory(ɵt) {\n return new (ɵt || MatLegacyCard)(i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatLegacyCard,\n selectors: [[\"mat-card\"]],\n hostAttrs: [1, \"mat-card\", \"mat-focus-indicator\"],\n hostVars: 2,\n hostBindings: function MatLegacyCard_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"_mat-animation-noopable\", ctx._animationMode === \"NoopAnimations\");\n }\n },\n exportAs: [\"matCard\"],\n ngContentSelectors: _c1,\n decls: 2,\n vars: 0,\n template: function MatLegacyCard_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c0);\n i0.ɵɵprojection(0);\n i0.ɵɵprojection(1, 1);\n }\n },\n styles: [\".mat-card{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);display:block;position:relative;padding:16px;border-radius:4px}.mat-card._mat-animation-noopable{transition:none !important;animation:none !important}.mat-card>.mat-divider-horizontal{position:absolute;left:0;width:100%}[dir=rtl] .mat-card>.mat-divider-horizontal{left:auto;right:0}.mat-card>.mat-divider-horizontal.mat-divider-inset{position:static;margin:0}[dir=rtl] .mat-card>.mat-divider-horizontal.mat-divider-inset{margin-right:0}.cdk-high-contrast-active .mat-card{outline:solid 1px}.mat-card-actions,.mat-card-subtitle,.mat-card-content{display:block;margin-bottom:16px}.mat-card-title{display:block;margin-bottom:8px}.mat-card-actions{margin-left:-8px;margin-right:-8px;padding:8px 0}.mat-card-actions-align-end{display:flex;justify-content:flex-end}.mat-card-image{width:calc(100% + 32px);margin:0 -16px 16px -16px;display:block;overflow:hidden}.mat-card-image img{width:100%}.mat-card-footer{display:block;margin:0 -16px -16px -16px}.mat-card-actions .mat-button,.mat-card-actions .mat-raised-button,.mat-card-actions .mat-stroked-button{margin:0 8px}.mat-card-header{display:flex;flex-direction:row}.mat-card-header .mat-card-title{margin-bottom:12px}.mat-card-header-text{margin:0 16px}.mat-card-avatar{height:40px;width:40px;border-radius:50%;flex-shrink:0;object-fit:cover}.mat-card-title-group{display:flex;justify-content:space-between}.mat-card-sm-image{width:80px;height:80px}.mat-card-md-image{width:112px;height:112px}.mat-card-lg-image{width:152px;height:152px}.mat-card-xl-image{width:240px;height:240px;margin:-8px}.mat-card-title-group>.mat-card-xl-image{margin:-8px 0 8px}@media(max-width: 599px){.mat-card-title-group{margin:0}.mat-card-xl-image{margin-left:0;margin-right:0}}.mat-card>:first-child,.mat-card-content>:first-child{margin-top:0}.mat-card>:last-child:not(.mat-card-footer),.mat-card-content>:last-child:not(.mat-card-footer){margin-bottom:0}.mat-card-image:first-child{margin-top:-16px;border-top-left-radius:inherit;border-top-right-radius:inherit}.mat-card>.mat-card-actions:last-child{margin-bottom:-8px;padding-bottom:0}.mat-card-actions:not(.mat-card-actions-align-end) .mat-button:first-child,.mat-card-actions:not(.mat-card-actions-align-end) .mat-raised-button:first-child,.mat-card-actions:not(.mat-card-actions-align-end) .mat-stroked-button:first-child{margin-left:0;margin-right:0}.mat-card-actions-align-end .mat-button:last-child,.mat-card-actions-align-end .mat-raised-button:last-child,.mat-card-actions-align-end .mat-stroked-button:last-child{margin-left:0;margin-right:0}.mat-card-title:not(:first-child),.mat-card-subtitle:not(:first-child){margin-top:-4px}.mat-card-header .mat-card-subtitle:not(:first-child){margin-top:-8px}.mat-card>.mat-card-xl-image:first-child{margin-top:-8px}.mat-card>.mat-card-xl-image:last-child{margin-bottom:-8px}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyCard, [{\n type: Component,\n args: [{\n selector: 'mat-card',\n exportAs: 'matCard',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'mat-card mat-focus-indicator',\n '[class._mat-animation-noopable]': '_animationMode === \"NoopAnimations\"'\n },\n template: \"\\n\\n\",\n styles: [\".mat-card{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);display:block;position:relative;padding:16px;border-radius:4px}.mat-card._mat-animation-noopable{transition:none !important;animation:none !important}.mat-card>.mat-divider-horizontal{position:absolute;left:0;width:100%}[dir=rtl] .mat-card>.mat-divider-horizontal{left:auto;right:0}.mat-card>.mat-divider-horizontal.mat-divider-inset{position:static;margin:0}[dir=rtl] .mat-card>.mat-divider-horizontal.mat-divider-inset{margin-right:0}.cdk-high-contrast-active .mat-card{outline:solid 1px}.mat-card-actions,.mat-card-subtitle,.mat-card-content{display:block;margin-bottom:16px}.mat-card-title{display:block;margin-bottom:8px}.mat-card-actions{margin-left:-8px;margin-right:-8px;padding:8px 0}.mat-card-actions-align-end{display:flex;justify-content:flex-end}.mat-card-image{width:calc(100% + 32px);margin:0 -16px 16px -16px;display:block;overflow:hidden}.mat-card-image img{width:100%}.mat-card-footer{display:block;margin:0 -16px -16px -16px}.mat-card-actions .mat-button,.mat-card-actions .mat-raised-button,.mat-card-actions .mat-stroked-button{margin:0 8px}.mat-card-header{display:flex;flex-direction:row}.mat-card-header .mat-card-title{margin-bottom:12px}.mat-card-header-text{margin:0 16px}.mat-card-avatar{height:40px;width:40px;border-radius:50%;flex-shrink:0;object-fit:cover}.mat-card-title-group{display:flex;justify-content:space-between}.mat-card-sm-image{width:80px;height:80px}.mat-card-md-image{width:112px;height:112px}.mat-card-lg-image{width:152px;height:152px}.mat-card-xl-image{width:240px;height:240px;margin:-8px}.mat-card-title-group>.mat-card-xl-image{margin:-8px 0 8px}@media(max-width: 599px){.mat-card-title-group{margin:0}.mat-card-xl-image{margin-left:0;margin-right:0}}.mat-card>:first-child,.mat-card-content>:first-child{margin-top:0}.mat-card>:last-child:not(.mat-card-footer),.mat-card-content>:last-child:not(.mat-card-footer){margin-bottom:0}.mat-card-image:first-child{margin-top:-16px;border-top-left-radius:inherit;border-top-right-radius:inherit}.mat-card>.mat-card-actions:last-child{margin-bottom:-8px;padding-bottom:0}.mat-card-actions:not(.mat-card-actions-align-end) .mat-button:first-child,.mat-card-actions:not(.mat-card-actions-align-end) .mat-raised-button:first-child,.mat-card-actions:not(.mat-card-actions-align-end) .mat-stroked-button:first-child{margin-left:0;margin-right:0}.mat-card-actions-align-end .mat-button:last-child,.mat-card-actions-align-end .mat-raised-button:last-child,.mat-card-actions-align-end .mat-stroked-button:last-child{margin-left:0;margin-right:0}.mat-card-title:not(:first-child),.mat-card-subtitle:not(:first-child){margin-top:-4px}.mat-card-header .mat-card-subtitle:not(:first-child){margin-top:-8px}.mat-card>.mat-card-xl-image:first-child{margin-top:-8px}.mat-card>.mat-card-xl-image:last-child{margin-bottom:-8px}\"]\n }]\n }], function () {\n return [{\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }]\n }];\n }, null);\n})();\n/**\n * Component intended to be used within the `` component. It adds styles for a\n * preset header section (i.e. a title, subtitle, and avatar layout).\n * @docs-private\n * @deprecated Use `MatCardHeader` from `@angular/material/card` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyCardHeader {\n static {\n this.ɵfac = function MatLegacyCardHeader_Factory(ɵt) {\n return new (ɵt || MatLegacyCardHeader)();\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatLegacyCardHeader,\n selectors: [[\"mat-card-header\"]],\n hostAttrs: [1, \"mat-card-header\"],\n ngContentSelectors: _c3,\n decls: 4,\n vars: 0,\n consts: [[1, \"mat-card-header-text\"]],\n template: function MatLegacyCardHeader_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c2);\n i0.ɵɵprojection(0);\n i0.ɵɵelementStart(1, \"div\", 0);\n i0.ɵɵprojection(2, 1);\n i0.ɵɵelementEnd();\n i0.ɵɵprojection(3, 2);\n }\n },\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyCardHeader, [{\n type: Component,\n args: [{\n selector: 'mat-card-header',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'mat-card-header'\n },\n template: \"\\n\\n \\n\\n\\n\"\n }]\n }], null, null);\n})();\n/**\n * Component intended to be used within the `` component. It adds styles for a preset\n * layout that groups an image with a title section.\n * @docs-private\n * @deprecated Use `MatCardTitleGroup` from `@angular/material/card` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyCardTitleGroup {\n static {\n this.ɵfac = function MatLegacyCardTitleGroup_Factory(ɵt) {\n return new (ɵt || MatLegacyCardTitleGroup)();\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatLegacyCardTitleGroup,\n selectors: [[\"mat-card-title-group\"]],\n hostAttrs: [1, \"mat-card-title-group\"],\n ngContentSelectors: _c5,\n decls: 4,\n vars: 0,\n template: function MatLegacyCardTitleGroup_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c4);\n i0.ɵɵelementStart(0, \"div\");\n i0.ɵɵprojection(1);\n i0.ɵɵelementEnd();\n i0.ɵɵprojection(2, 1);\n i0.ɵɵprojection(3, 2);\n }\n },\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyCardTitleGroup, [{\n type: Component,\n args: [{\n selector: 'mat-card-title-group',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'mat-card-title-group'\n },\n template: \"\\n \\n\\n\\n\\n\"\n }]\n }], null, null);\n})();\n\n/**\n * @deprecated Use `MatCardModule` from `@angular/material/card` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyCardModule {\n static {\n this.ɵfac = function MatLegacyCardModule_Factory(ɵt) {\n return new (ɵt || MatLegacyCardModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatLegacyCardModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [MatCommonModule, MatCommonModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyCardModule, [{\n type: NgModule,\n args: [{\n imports: [MatCommonModule],\n exports: [MatLegacyCard, MatLegacyCardHeader, MatLegacyCardTitleGroup, MatLegacyCardContent, MatLegacyCardTitle, MatLegacyCardSubtitle, MatLegacyCardActions, MatLegacyCardFooter, MatLegacyCardSmImage, MatLegacyCardMdImage, MatLegacyCardLgImage, MatLegacyCardImage, MatLegacyCardXlImage, MatLegacyCardAvatar, MatCommonModule],\n declarations: [MatLegacyCard, MatLegacyCardHeader, MatLegacyCardTitleGroup, MatLegacyCardContent, MatLegacyCardTitle, MatLegacyCardSubtitle, MatLegacyCardActions, MatLegacyCardFooter, MatLegacyCardSmImage, MatLegacyCardMdImage, MatLegacyCardLgImage, MatLegacyCardImage, MatLegacyCardXlImage, MatLegacyCardAvatar]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MatLegacyCard, MatLegacyCardActions, MatLegacyCardAvatar, MatLegacyCardContent, MatLegacyCardFooter, MatLegacyCardHeader, MatLegacyCardImage, MatLegacyCardLgImage, MatLegacyCardMdImage, MatLegacyCardModule, MatLegacyCardSmImage, MatLegacyCardSubtitle, MatLegacyCardTitle, MatLegacyCardTitleGroup, MatLegacyCardXlImage };\n","import { SPACE, BACKSPACE, DELETE, TAB, hasModifierKey, ENTER } from '@angular/cdk/keycodes';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, Directive, EventEmitter, Optional, Inject, Attribute, ContentChild, Input, Output, Component, ViewEncapsulation, ChangeDetectionStrategy, Self, ContentChildren, NgModule } from '@angular/core';\nimport * as i3 from '@angular/material/core';\nimport { mixinTabIndex, mixinColor, mixinDisableRipple, RippleRenderer, MAT_RIPPLE_GLOBAL_OPTIONS, mixinErrorState, MatCommonModule, ErrorStateMatcher } from '@angular/material/core';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport * as i1 from '@angular/cdk/platform';\nimport { DOCUMENT } from '@angular/common';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\nimport { Subject, merge } from 'rxjs';\nimport { take, takeUntil, startWith } from 'rxjs/operators';\nimport { FocusKeyManager } from '@angular/cdk/a11y';\nimport * as i1$1 from '@angular/cdk/bidi';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport * as i2 from '@angular/forms';\nimport { Validators } from '@angular/forms';\nimport { MatLegacyFormFieldControl } from '@angular/material/legacy-form-field';\n\n/**\n * Event object emitted by MatChip when selected or deselected.\n * @deprecated Use `MatChipSelectionChange` from `@angular/material/chips` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nconst _c0 = [\"*\"];\nclass MatLegacyChipSelectionChange {\n constructor( /** Reference to the chip that emitted the event. */\n source, /** Whether the chip that emitted the event is selected. */\n selected, /** Whether the selection change was a result of a user interaction. */\n isUserInput = false) {\n this.source = source;\n this.selected = selected;\n this.isUserInput = isUserInput;\n }\n}\n/**\n * Injection token that can be used to reference instances of `MatChipRemove`. It serves as\n * alternative token to the actual `MatChipRemove` class which could cause unnecessary\n * retention of the class and its directive metadata.\n * @deprecated Use `MAT_CHIP_REMOVE` from `@angular/material/chips` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nconst MAT_LEGACY_CHIP_REMOVE = new InjectionToken('MatChipRemove');\n/**\n * Injection token that can be used to reference instances of `MatChipAvatar`. It serves as\n * alternative token to the actual `MatChipAvatar` class which could cause unnecessary\n * retention of the class and its directive metadata.\n * @deprecated Use `MAT_CHIP_AVATAR` from `@angular/material/chips` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nconst MAT_LEGACY_CHIP_AVATAR = new InjectionToken('MatChipAvatar');\n/**\n * Injection token that can be used to reference instances of `MatChipTrailingIcon`. It serves as\n * alternative token to the actual `MatChipTrailingIcon` class which could cause unnecessary\n * retention of the class and its directive metadata.\n * @deprecated Use `MAT_CHIP_TRAILING_ICON` from `@angular/material/chips` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nconst MAT_LEGACY_CHIP_TRAILING_ICON = new InjectionToken('MatChipTrailingIcon');\n// Boilerplate for applying mixins to MatChip.\n/** @docs-private */\nclass MatChipBase {\n constructor(_elementRef) {\n this._elementRef = _elementRef;\n }\n}\nconst _MatChipMixinBase = mixinTabIndex(mixinColor(mixinDisableRipple(MatChipBase), 'primary'), -1);\n/**\n * Dummy directive to add CSS class to chip avatar.\n * @docs-private\n * @deprecated Use `MatChipAvatar` from `@angular/material/chips` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyChipAvatar {\n static {\n this.ɵfac = function MatLegacyChipAvatar_Factory(ɵt) {\n return new (ɵt || MatLegacyChipAvatar)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyChipAvatar,\n selectors: [[\"mat-chip-avatar\"], [\"\", \"matChipAvatar\", \"\"]],\n hostAttrs: [1, \"mat-chip-avatar\"],\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_LEGACY_CHIP_AVATAR,\n useExisting: MatLegacyChipAvatar\n }])]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyChipAvatar, [{\n type: Directive,\n args: [{\n selector: 'mat-chip-avatar, [matChipAvatar]',\n host: {\n 'class': 'mat-chip-avatar'\n },\n providers: [{\n provide: MAT_LEGACY_CHIP_AVATAR,\n useExisting: MatLegacyChipAvatar\n }]\n }]\n }], null, null);\n})();\n/**\n * Dummy directive to add CSS class to chip trailing icon.\n * @docs-private\n * @deprecated Use `MatChipTrailingIcon` from `@angular/material/chips` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyChipTrailingIcon {\n static {\n this.ɵfac = function MatLegacyChipTrailingIcon_Factory(ɵt) {\n return new (ɵt || MatLegacyChipTrailingIcon)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyChipTrailingIcon,\n selectors: [[\"mat-chip-trailing-icon\"], [\"\", \"matChipTrailingIcon\", \"\"]],\n hostAttrs: [1, \"mat-chip-trailing-icon\"],\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_LEGACY_CHIP_TRAILING_ICON,\n useExisting: MatLegacyChipTrailingIcon\n }])]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyChipTrailingIcon, [{\n type: Directive,\n args: [{\n selector: 'mat-chip-trailing-icon, [matChipTrailingIcon]',\n host: {\n 'class': 'mat-chip-trailing-icon'\n },\n providers: [{\n provide: MAT_LEGACY_CHIP_TRAILING_ICON,\n useExisting: MatLegacyChipTrailingIcon\n }]\n }]\n }], null, null);\n})();\n/**\n * Material Design styled chip directive. Used inside the MatChipList component.\n * @deprecated Use `MatChip` from `@angular/material/chips` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyChip extends _MatChipMixinBase {\n /**\n * Whether ripples are disabled on interaction\n * @docs-private\n */\n get rippleDisabled() {\n return this.disabled || this.disableRipple || this._animationsDisabled || !!this.rippleConfig.disabled;\n }\n /** Whether the chip is selected. */\n get selected() {\n return this._selected;\n }\n set selected(value) {\n const coercedValue = coerceBooleanProperty(value);\n if (coercedValue !== this._selected) {\n this._selected = coercedValue;\n this._dispatchSelectionChange();\n }\n }\n /** The value of the chip. Defaults to the content inside `` tags. */\n get value() {\n return this._value !== undefined ? this._value : this._elementRef.nativeElement.textContent;\n }\n set value(value) {\n this._value = value;\n }\n /**\n * Whether or not the chip is selectable. When a chip is not selectable,\n * changes to its selected state are always ignored. By default a chip is\n * selectable, and it becomes non-selectable if its parent chip list is\n * not selectable.\n */\n get selectable() {\n return this._selectable && this.chipListSelectable;\n }\n set selectable(value) {\n this._selectable = coerceBooleanProperty(value);\n }\n /** Whether the chip is disabled. */\n get disabled() {\n return this._chipListDisabled || this._disabled;\n }\n set disabled(value) {\n this._disabled = coerceBooleanProperty(value);\n }\n /**\n * Determines whether or not the chip displays the remove styling and emits (removed) events.\n */\n get removable() {\n return this._removable;\n }\n set removable(value) {\n this._removable = coerceBooleanProperty(value);\n }\n /** The ARIA selected applied to the chip. */\n get ariaSelected() {\n // Remove the `aria-selected` when the chip is deselected in single-selection mode, because\n // it adds noise to NVDA users where \"not selected\" will be read out for each chip.\n return this.selectable && (this._chipListMultiple || this.selected) ? this.selected.toString() : null;\n }\n constructor(elementRef, _ngZone, platform, globalRippleOptions, _changeDetectorRef, _document, animationMode, tabIndex) {\n super(elementRef);\n this._ngZone = _ngZone;\n this._changeDetectorRef = _changeDetectorRef;\n /** Whether the chip has focus. */\n this._hasFocus = false;\n /** Whether the chip list is selectable */\n this.chipListSelectable = true;\n /** Whether the chip list is in multi-selection mode. */\n this._chipListMultiple = false;\n /** Whether the chip list as a whole is disabled. */\n this._chipListDisabled = false;\n /** ARIA role that should be applied to the chip. */\n this.role = 'option';\n this._selected = false;\n this._selectable = true;\n this._disabled = false;\n this._removable = true;\n /** Emits when the chip is focused. */\n this._onFocus = new Subject();\n /** Emits when the chip is blurred. */\n this._onBlur = new Subject();\n /** Emitted when the chip is selected or deselected. */\n this.selectionChange = new EventEmitter();\n /** Emitted when the chip is destroyed. */\n this.destroyed = new EventEmitter();\n /** Emitted when a chip is to be removed. */\n this.removed = new EventEmitter();\n this._addHostClassName();\n // Dynamically create the ripple target, append it within the chip, and use it as the\n // chip's ripple target. Adding the class '.mat-chip-ripple' ensures that it will have\n // the proper styles.\n this._chipRippleTarget = _document.createElement('div');\n this._chipRippleTarget.classList.add('mat-chip-ripple');\n this._elementRef.nativeElement.appendChild(this._chipRippleTarget);\n this._chipRipple = new RippleRenderer(this, _ngZone, this._chipRippleTarget, platform);\n this._chipRipple.setupTriggerEvents(elementRef);\n this.rippleConfig = globalRippleOptions || {};\n this._animationsDisabled = animationMode === 'NoopAnimations';\n this.tabIndex = tabIndex != null ? parseInt(tabIndex) || -1 : -1;\n }\n _addHostClassName() {\n const basicChipAttrName = 'mat-basic-chip';\n const element = this._elementRef.nativeElement;\n if (element.hasAttribute(basicChipAttrName) || element.tagName.toLowerCase() === basicChipAttrName) {\n element.classList.add(basicChipAttrName);\n return;\n } else {\n element.classList.add('mat-standard-chip');\n }\n }\n ngOnDestroy() {\n this.destroyed.emit({\n chip: this\n });\n this._chipRipple._removeTriggerEvents();\n }\n /** Selects the chip. */\n select() {\n if (!this._selected) {\n this._selected = true;\n this._dispatchSelectionChange();\n this._changeDetectorRef.markForCheck();\n }\n }\n /** Deselects the chip. */\n deselect() {\n if (this._selected) {\n this._selected = false;\n this._dispatchSelectionChange();\n this._changeDetectorRef.markForCheck();\n }\n }\n /** Select this chip and emit selected event */\n selectViaInteraction() {\n if (!this._selected) {\n this._selected = true;\n this._dispatchSelectionChange(true);\n this._changeDetectorRef.markForCheck();\n }\n }\n /** Toggles the current selected state of this chip. */\n toggleSelected(isUserInput = false) {\n this._selected = !this.selected;\n this._dispatchSelectionChange(isUserInput);\n this._changeDetectorRef.markForCheck();\n return this.selected;\n }\n /** Allows for programmatic focusing of the chip. */\n focus() {\n if (!this._hasFocus) {\n this._elementRef.nativeElement.focus();\n this._onFocus.next({\n chip: this\n });\n }\n this._hasFocus = true;\n }\n /**\n * Allows for programmatic removal of the chip. Called by the MatChipList when the DELETE or\n * BACKSPACE keys are pressed.\n *\n * Informs any listeners of the removal request. Does not remove the chip from the DOM.\n */\n remove() {\n if (this.removable) {\n this.removed.emit({\n chip: this\n });\n }\n }\n /** Handles click events on the chip. */\n _handleClick(event) {\n if (this.disabled) {\n event.preventDefault();\n }\n }\n /** Handle custom key presses. */\n _handleKeydown(event) {\n if (this.disabled) {\n return;\n }\n switch (event.keyCode) {\n case DELETE:\n case BACKSPACE:\n // If we are removable, remove the focused chip\n this.remove();\n // Always prevent so page navigation does not occur\n event.preventDefault();\n break;\n case SPACE:\n // If we are selectable, toggle the focused chip\n if (this.selectable) {\n this.toggleSelected(true);\n }\n // Always prevent space from scrolling the page since the list has focus\n event.preventDefault();\n break;\n }\n }\n _blur() {\n // When animations are enabled, Angular may end up removing the chip from the DOM a little\n // earlier than usual, causing it to be blurred and throwing off the logic in the chip list\n // that moves focus not the next item. To work around the issue, we defer marking the chip\n // as not focused until the next time the zone stabilizes.\n this._ngZone.onStable.pipe(take(1)).subscribe(() => {\n this._ngZone.run(() => {\n this._hasFocus = false;\n this._onBlur.next({\n chip: this\n });\n });\n });\n }\n _dispatchSelectionChange(isUserInput = false) {\n this.selectionChange.emit({\n source: this,\n isUserInput,\n selected: this._selected\n });\n }\n static {\n this.ɵfac = function MatLegacyChip_Factory(ɵt) {\n return new (ɵt || MatLegacyChip)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(MAT_RIPPLE_GLOBAL_OPTIONS, 8), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(DOCUMENT), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8), i0.ɵɵinjectAttribute('tabindex'));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyChip,\n selectors: [[\"mat-basic-chip\"], [\"\", \"mat-basic-chip\", \"\"], [\"mat-chip\"], [\"\", \"mat-chip\", \"\"]],\n contentQueries: function MatLegacyChip_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MAT_LEGACY_CHIP_AVATAR, 5);\n i0.ɵɵcontentQuery(dirIndex, MAT_LEGACY_CHIP_TRAILING_ICON, 5);\n i0.ɵɵcontentQuery(dirIndex, MAT_LEGACY_CHIP_REMOVE, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.avatar = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.trailingIcon = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.removeIcon = _t.first);\n }\n },\n hostAttrs: [1, \"mat-chip\", \"mat-focus-indicator\"],\n hostVars: 15,\n hostBindings: function MatLegacyChip_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function MatLegacyChip_click_HostBindingHandler($event) {\n return ctx._handleClick($event);\n })(\"keydown\", function MatLegacyChip_keydown_HostBindingHandler($event) {\n return ctx._handleKeydown($event);\n })(\"focus\", function MatLegacyChip_focus_HostBindingHandler() {\n return ctx.focus();\n })(\"blur\", function MatLegacyChip_blur_HostBindingHandler() {\n return ctx._blur();\n });\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"tabindex\", ctx.disabled ? null : ctx.tabIndex)(\"role\", ctx.role)(\"disabled\", ctx.disabled || null)(\"aria-disabled\", ctx.disabled.toString())(\"aria-selected\", ctx.ariaSelected);\n i0.ɵɵclassProp(\"mat-chip-selected\", ctx.selected)(\"mat-chip-with-avatar\", ctx.avatar)(\"mat-chip-with-trailing-icon\", ctx.trailingIcon || ctx.removeIcon)(\"mat-chip-disabled\", ctx.disabled)(\"_mat-animation-noopable\", ctx._animationsDisabled);\n }\n },\n inputs: {\n color: \"color\",\n disableRipple: \"disableRipple\",\n tabIndex: \"tabIndex\",\n role: \"role\",\n selected: \"selected\",\n value: \"value\",\n selectable: \"selectable\",\n disabled: \"disabled\",\n removable: \"removable\"\n },\n outputs: {\n selectionChange: \"selectionChange\",\n destroyed: \"destroyed\",\n removed: \"removed\"\n },\n exportAs: [\"matChip\"],\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyChip, [{\n type: Directive,\n args: [{\n selector: `mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]`,\n inputs: ['color', 'disableRipple', 'tabIndex'],\n exportAs: 'matChip',\n host: {\n 'class': 'mat-chip mat-focus-indicator',\n '[attr.tabindex]': 'disabled ? null : tabIndex',\n '[attr.role]': 'role',\n '[class.mat-chip-selected]': 'selected',\n '[class.mat-chip-with-avatar]': 'avatar',\n '[class.mat-chip-with-trailing-icon]': 'trailingIcon || removeIcon',\n '[class.mat-chip-disabled]': 'disabled',\n '[class._mat-animation-noopable]': '_animationsDisabled',\n '[attr.disabled]': 'disabled || null',\n '[attr.aria-disabled]': 'disabled.toString()',\n '[attr.aria-selected]': 'ariaSelected',\n '(click)': '_handleClick($event)',\n '(keydown)': '_handleKeydown($event)',\n '(focus)': 'focus()',\n '(blur)': '_blur()'\n }\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i0.NgZone\n }, {\n type: i1.Platform\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_RIPPLE_GLOBAL_OPTIONS]\n }]\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Attribute,\n args: ['tabindex']\n }]\n }];\n }, {\n avatar: [{\n type: ContentChild,\n args: [MAT_LEGACY_CHIP_AVATAR]\n }],\n trailingIcon: [{\n type: ContentChild,\n args: [MAT_LEGACY_CHIP_TRAILING_ICON]\n }],\n removeIcon: [{\n type: ContentChild,\n args: [MAT_LEGACY_CHIP_REMOVE]\n }],\n role: [{\n type: Input\n }],\n selected: [{\n type: Input\n }],\n value: [{\n type: Input\n }],\n selectable: [{\n type: Input\n }],\n disabled: [{\n type: Input\n }],\n removable: [{\n type: Input\n }],\n selectionChange: [{\n type: Output\n }],\n destroyed: [{\n type: Output\n }],\n removed: [{\n type: Output\n }]\n });\n})();\n/**\n * Applies proper (click) support and adds styling for use with the Material Design \"cancel\" icon\n * available at https://material.io/icons/#ic_cancel.\n *\n * Example:\n *\n * `\n * cancel\n * `\n *\n * You *may* use a custom icon, but you may need to override the `mat-chip-remove` positioning\n * styles to properly center the icon within the chip.\n *\n * @deprecated Use `MatChipRemove` from `@angular/material/chips` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyChipRemove {\n constructor(_parentChip, elementRef) {\n this._parentChip = _parentChip;\n if (elementRef.nativeElement.nodeName === 'BUTTON') {\n elementRef.nativeElement.setAttribute('type', 'button');\n }\n }\n /** Calls the parent chip's public `remove()` method if applicable. */\n _handleClick(event) {\n const parentChip = this._parentChip;\n if (parentChip.removable && !parentChip.disabled) {\n parentChip.remove();\n }\n // We need to stop event propagation because otherwise the event will bubble up to the\n // form field and cause the `onContainerClick` method to be invoked. This method would then\n // reset the focused chip that has been focused after chip removal. Usually the parent\n // the parent click listener of the `MatChip` would prevent propagation, but it can happen\n // that the chip is being removed before the event bubbles up.\n event.stopPropagation();\n event.preventDefault();\n }\n static {\n this.ɵfac = function MatLegacyChipRemove_Factory(ɵt) {\n return new (ɵt || MatLegacyChipRemove)(i0.ɵɵdirectiveInject(MatLegacyChip), i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyChipRemove,\n selectors: [[\"\", \"matChipRemove\", \"\"]],\n hostAttrs: [1, \"mat-chip-remove\", \"mat-chip-trailing-icon\"],\n hostBindings: function MatLegacyChipRemove_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function MatLegacyChipRemove_click_HostBindingHandler($event) {\n return ctx._handleClick($event);\n });\n }\n },\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_LEGACY_CHIP_REMOVE,\n useExisting: MatLegacyChipRemove\n }])]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyChipRemove, [{\n type: Directive,\n args: [{\n selector: '[matChipRemove]',\n host: {\n 'class': 'mat-chip-remove mat-chip-trailing-icon',\n '(click)': '_handleClick($event)'\n },\n providers: [{\n provide: MAT_LEGACY_CHIP_REMOVE,\n useExisting: MatLegacyChipRemove\n }]\n }]\n }], function () {\n return [{\n type: MatLegacyChip\n }, {\n type: i0.ElementRef\n }];\n }, null);\n})();\n\n/**\n * Injection token to be used to override the default options for the chips module.\n * @deprecated Use `MAT_CHIPS_DEFAULT_OPTIONS` from `@angular/material/chips` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nconst MAT_LEGACY_CHIPS_DEFAULT_OPTIONS = new InjectionToken('mat-chips-default-options');\n\n// Boilerplate for applying mixins to MatChipList.\n/** @docs-private */\nconst _MatChipListBase = mixinErrorState(class {\n constructor(_defaultErrorStateMatcher, _parentForm, _parentFormGroup,\n /**\n * Form control bound to the component.\n * Implemented as part of `MatFormFieldControl`.\n * @docs-private\n */\n ngControl) {\n this._defaultErrorStateMatcher = _defaultErrorStateMatcher;\n this._parentForm = _parentForm;\n this._parentFormGroup = _parentFormGroup;\n this.ngControl = ngControl;\n /**\n * Emits whenever the component state changes and should cause the parent\n * form-field to update. Implemented as part of `MatFormFieldControl`.\n * @docs-private\n */\n this.stateChanges = new Subject();\n }\n});\n// Increasing integer for generating unique ids for chip-list components.\nlet nextUniqueId$1 = 0;\n/**\n * Change event object that is emitted when the chip list value has changed.\n * @deprecated Use `MatChipListChange` from `@angular/material/chips` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyChipListChange {\n constructor( /** Chip list that emitted the event. */\n source, /** Value of the chip list when the event was emitted. */\n value) {\n this.source = source;\n this.value = value;\n }\n}\n/**\n * A material design chips component (named ChipList for its similarity to the List component).\n * @deprecated Use `MatChipList` from `@angular/material/chips` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyChipList extends _MatChipListBase {\n /** The array of selected chips inside chip list. */\n get selected() {\n return this.multiple ? this._selectionModel?.selected || [] : this._selectionModel?.selected[0];\n }\n /** The ARIA role applied to the chip list. */\n get role() {\n if (this._explicitRole) {\n return this._explicitRole;\n }\n return this.empty ? null : 'listbox';\n }\n set role(role) {\n this._explicitRole = role;\n }\n /** Whether the user should be allowed to select multiple chips. */\n get multiple() {\n return this._multiple;\n }\n set multiple(value) {\n this._multiple = coerceBooleanProperty(value);\n this._syncChipsState();\n }\n /**\n * A function to compare the option values with the selected values. The first argument\n * is a value from an option. The second is a value from the selection. A boolean\n * should be returned.\n */\n get compareWith() {\n return this._compareWith;\n }\n set compareWith(fn) {\n this._compareWith = fn;\n if (this._selectionModel) {\n // A different comparator means the selection could change.\n this._initializeSelection();\n }\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get value() {\n return this._value;\n }\n set value(value) {\n this.writeValue(value);\n this._value = value;\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get id() {\n return this._chipInput ? this._chipInput.id : this._uid;\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get required() {\n return this._required ?? this.ngControl?.control?.hasValidator(Validators.required) ?? false;\n }\n set required(value) {\n this._required = coerceBooleanProperty(value);\n this.stateChanges.next();\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get placeholder() {\n return this._chipInput ? this._chipInput.placeholder : this._placeholder;\n }\n set placeholder(value) {\n this._placeholder = value;\n this.stateChanges.next();\n }\n /** Whether any chips or the matChipInput inside of this chip-list has focus. */\n get focused() {\n return this._chipInput && this._chipInput.focused || this._hasFocusedChip();\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get empty() {\n return (!this._chipInput || this._chipInput.empty) && (!this.chips || this.chips.length === 0);\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get shouldLabelFloat() {\n return !this.empty || this.focused;\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get disabled() {\n return this.ngControl ? !!this.ngControl.disabled : this._disabled;\n }\n set disabled(value) {\n this._disabled = coerceBooleanProperty(value);\n this._syncChipsState();\n }\n /**\n * Whether or not this chip list is selectable. When a chip list is not selectable,\n * the selected states for all the chips inside the chip list are always ignored.\n */\n get selectable() {\n return this._selectable;\n }\n set selectable(value) {\n this._selectable = coerceBooleanProperty(value);\n this._syncChipsState();\n }\n set tabIndex(value) {\n this._userTabIndex = value;\n this._tabIndex = value;\n }\n /** Combined stream of all of the child chips' selection change events. */\n get chipSelectionChanges() {\n return merge(...this.chips.map(chip => chip.selectionChange));\n }\n /** Combined stream of all of the child chips' focus change events. */\n get chipFocusChanges() {\n return merge(...this.chips.map(chip => chip._onFocus));\n }\n /** Combined stream of all of the child chips' blur change events. */\n get chipBlurChanges() {\n return merge(...this.chips.map(chip => chip._onBlur));\n }\n /** Combined stream of all of the child chips' remove change events. */\n get chipRemoveChanges() {\n return merge(...this.chips.map(chip => chip.destroyed));\n }\n constructor(_elementRef, _changeDetectorRef, _dir, _parentForm, _parentFormGroup, _defaultErrorStateMatcher, ngControl) {\n super(_defaultErrorStateMatcher, _parentForm, _parentFormGroup, ngControl);\n this._elementRef = _elementRef;\n this._changeDetectorRef = _changeDetectorRef;\n this._dir = _dir;\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n this.controlType = 'mat-chip-list';\n /**\n * When a chip is destroyed, we store the index of the destroyed chip until the chips\n * query list notifies about the update. This is necessary because we cannot determine an\n * appropriate chip that should receive focus until the array of chips updated completely.\n */\n this._lastDestroyedChipIndex = null;\n /** Subject that emits when the component has been destroyed. */\n this._destroyed = new Subject();\n /** Uid of the chip list */\n this._uid = `mat-chip-list-${nextUniqueId$1++}`;\n /** Tab index for the chip list. */\n this._tabIndex = 0;\n /**\n * User defined tab index.\n * When it is not null, use user defined tab index. Otherwise use _tabIndex\n */\n this._userTabIndex = null;\n /** Function when touched */\n this._onTouched = () => {};\n /** Function when changed */\n this._onChange = () => {};\n this._multiple = false;\n this._compareWith = (o1, o2) => o1 === o2;\n this._disabled = false;\n /** Orientation of the chip list. */\n this.ariaOrientation = 'horizontal';\n this._selectable = true;\n /** Event emitted when the selected chip list value has been changed by the user. */\n this.change = new EventEmitter();\n /**\n * Event that emits whenever the raw value of the chip-list changes. This is here primarily\n * to facilitate the two-way binding for the `value` input.\n * @docs-private\n */\n this.valueChange = new EventEmitter();\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n ngAfterContentInit() {\n this._keyManager = new FocusKeyManager(this.chips).withWrap().withVerticalOrientation().withHomeAndEnd().withHorizontalOrientation(this._dir ? this._dir.value : 'ltr');\n if (this._dir) {\n this._dir.change.pipe(takeUntil(this._destroyed)).subscribe(dir => this._keyManager.withHorizontalOrientation(dir));\n }\n this._keyManager.tabOut.subscribe(() => this._allowFocusEscape());\n // When the list changes, re-subscribe\n this.chips.changes.pipe(startWith(null), takeUntil(this._destroyed)).subscribe(() => {\n if (this.disabled || !this.selectable) {\n // Since this happens after the content has been\n // checked, we need to defer it to the next tick.\n Promise.resolve().then(() => {\n this._syncChipsState();\n });\n }\n this._resetChips();\n // Reset chips selected/deselected status\n this._initializeSelection();\n // Check to see if we need to update our tab index\n this._updateTabIndex();\n // Check to see if we have a destroyed chip and need to refocus\n this._updateFocusForDestroyedChips();\n this.stateChanges.next();\n });\n }\n ngOnInit() {\n this._selectionModel = new SelectionModel(this.multiple, undefined, false);\n this.stateChanges.next();\n }\n ngDoCheck() {\n if (this.ngControl) {\n // We need to re-evaluate this on every change detection cycle, because there are some\n // error triggers that we can't subscribe to (e.g. parent form submissions). This means\n // that whatever logic is in here has to be super lean or we risk destroying the performance.\n this.updateErrorState();\n if (this.ngControl.disabled !== this._disabled) {\n this.disabled = !!this.ngControl.disabled;\n }\n }\n }\n ngOnDestroy() {\n this._keyManager?.destroy();\n this._destroyed.next();\n this._destroyed.complete();\n this.stateChanges.complete();\n this._dropSubscriptions();\n }\n /** Associates an HTML input element with this chip list. */\n registerInput(inputElement) {\n this._chipInput = inputElement;\n // We use this attribute to match the chip list to its input in test harnesses.\n // Set the attribute directly here to avoid \"changed after checked\" errors.\n this._elementRef.nativeElement.setAttribute('data-mat-chip-input', inputElement.id);\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n setDescribedByIds(ids) {\n if (ids.length) {\n this._elementRef.nativeElement.setAttribute('aria-describedby', ids.join(' '));\n } else {\n this._elementRef.nativeElement.removeAttribute('aria-describedby');\n }\n }\n // Implemented as part of ControlValueAccessor.\n writeValue(value) {\n if (this.chips) {\n this._setSelectionByValue(value, false);\n }\n }\n // Implemented as part of ControlValueAccessor.\n registerOnChange(fn) {\n this._onChange = fn;\n }\n // Implemented as part of ControlValueAccessor.\n registerOnTouched(fn) {\n this._onTouched = fn;\n }\n // Implemented as part of ControlValueAccessor.\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n this.stateChanges.next();\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n onContainerClick(event) {\n if (!this._originatesFromChip(event)) {\n this.focus();\n }\n }\n /**\n * Focuses the first non-disabled chip in this chip list, or the associated input when there\n * are no eligible chips.\n */\n focus(options) {\n if (this.disabled) {\n return;\n }\n // TODO: ARIA says this should focus the first `selected` chip if any are selected.\n // Focus on first element if there's no chipInput inside chip-list\n if (this._chipInput && this._chipInput.focused) {\n // do nothing\n } else if (this.chips.length > 0) {\n this._keyManager.setFirstItemActive();\n this.stateChanges.next();\n } else {\n this._focusInput(options);\n this.stateChanges.next();\n }\n }\n /** Attempt to focus an input if we have one. */\n _focusInput(options) {\n if (this._chipInput) {\n this._chipInput.focus(options);\n }\n }\n /**\n * Pass events to the keyboard manager. Available here for tests.\n */\n _keydown(event) {\n const target = event.target;\n if (target && target.classList.contains('mat-chip')) {\n this._keyManager.onKeydown(event);\n this.stateChanges.next();\n }\n }\n /**\n * Check the tab index as you should not be allowed to focus an empty list.\n */\n _updateTabIndex() {\n // If we have 0 chips, we should not allow keyboard focus\n this._tabIndex = this._userTabIndex || (this.chips.length === 0 ? -1 : 0);\n }\n /**\n * If the amount of chips changed, we need to update the\n * key manager state and focus the next closest chip.\n */\n _updateFocusForDestroyedChips() {\n // Move focus to the closest chip. If no other chips remain, focus the chip-list itself.\n if (this._lastDestroyedChipIndex != null) {\n if (this.chips.length) {\n const newChipIndex = Math.min(this._lastDestroyedChipIndex, this.chips.length - 1);\n this._keyManager.setActiveItem(newChipIndex);\n } else {\n this.focus();\n }\n }\n this._lastDestroyedChipIndex = null;\n }\n /**\n * Utility to ensure all indexes are valid.\n *\n * @param index The index to be checked.\n * @returns True if the index is valid for our list of chips.\n */\n _isValidIndex(index) {\n return index >= 0 && index < this.chips.length;\n }\n _setSelectionByValue(value, isUserInput = true) {\n this._clearSelection();\n this.chips.forEach(chip => chip.deselect());\n if (Array.isArray(value)) {\n value.forEach(currentValue => this._selectValue(currentValue, isUserInput));\n this._sortValues();\n } else {\n const correspondingChip = this._selectValue(value, isUserInput);\n // Shift focus to the active item. Note that we shouldn't do this in multiple\n // mode, because we don't know what chip the user interacted with last.\n if (correspondingChip) {\n if (isUserInput) {\n this._keyManager.setActiveItem(correspondingChip);\n }\n }\n }\n }\n /**\n * Finds and selects the chip based on its value.\n * @returns Chip that has the corresponding value.\n */\n _selectValue(value, isUserInput = true) {\n const correspondingChip = this.chips.find(chip => {\n return chip.value != null && this._compareWith(chip.value, value);\n });\n if (correspondingChip) {\n isUserInput ? correspondingChip.selectViaInteraction() : correspondingChip.select();\n this._selectionModel.select(correspondingChip);\n }\n return correspondingChip;\n }\n _initializeSelection() {\n // Defer setting the value in order to avoid the \"Expression\n // has changed after it was checked\" errors from Angular.\n Promise.resolve().then(() => {\n if (this.ngControl || this._value) {\n this._setSelectionByValue(this.ngControl ? this.ngControl.value : this._value, false);\n this.stateChanges.next();\n }\n });\n }\n /**\n * Deselects every chip in the list.\n * @param skip Chip that should not be deselected.\n */\n _clearSelection(skip) {\n this._selectionModel.clear();\n this.chips.forEach(chip => {\n if (chip !== skip) {\n chip.deselect();\n }\n });\n this.stateChanges.next();\n }\n /**\n * Sorts the model values, ensuring that they keep the same\n * order that they have in the panel.\n */\n _sortValues() {\n if (this._multiple) {\n this._selectionModel.clear();\n this.chips.forEach(chip => {\n if (chip.selected) {\n this._selectionModel.select(chip);\n }\n });\n this.stateChanges.next();\n }\n }\n /** Emits change event to set the model value. */\n _propagateChanges(fallbackValue) {\n let valueToEmit = null;\n if (Array.isArray(this.selected)) {\n valueToEmit = this.selected.map(chip => chip.value);\n } else {\n valueToEmit = this.selected ? this.selected.value : fallbackValue;\n }\n this._value = valueToEmit;\n this.change.emit(new MatLegacyChipListChange(this, valueToEmit));\n this.valueChange.emit(valueToEmit);\n this._onChange(valueToEmit);\n this._changeDetectorRef.markForCheck();\n }\n /** When blurred, mark the field as touched when focus moved outside the chip list. */\n _blur() {\n if (!this._hasFocusedChip()) {\n this._keyManager.setActiveItem(-1);\n }\n if (!this.disabled) {\n if (this._chipInput) {\n // If there's a chip input, we should check whether the focus moved to chip input.\n // If the focus is not moved to chip input, mark the field as touched. If the focus moved\n // to chip input, do nothing.\n // Timeout is needed to wait for the focus() event trigger on chip input.\n setTimeout(() => {\n if (!this.focused) {\n this._markAsTouched();\n }\n });\n } else {\n // If there's no chip input, then mark the field as touched.\n this._markAsTouched();\n }\n }\n }\n /** Mark the field as touched */\n _markAsTouched() {\n this._onTouched();\n this._changeDetectorRef.markForCheck();\n this.stateChanges.next();\n }\n /**\n * Removes the `tabindex` from the chip list and resets it back afterwards, allowing the\n * user to tab out of it. This prevents the list from capturing focus and redirecting\n * it back to the first chip, creating a focus trap, if it user tries to tab away.\n */\n _allowFocusEscape() {\n if (this._tabIndex !== -1) {\n this._tabIndex = -1;\n setTimeout(() => {\n this._tabIndex = this._userTabIndex || 0;\n this._changeDetectorRef.markForCheck();\n });\n }\n }\n _resetChips() {\n this._dropSubscriptions();\n this._listenToChipsFocus();\n this._listenToChipsSelection();\n this._listenToChipsRemoved();\n }\n _dropSubscriptions() {\n if (this._chipFocusSubscription) {\n this._chipFocusSubscription.unsubscribe();\n this._chipFocusSubscription = null;\n }\n if (this._chipBlurSubscription) {\n this._chipBlurSubscription.unsubscribe();\n this._chipBlurSubscription = null;\n }\n if (this._chipSelectionSubscription) {\n this._chipSelectionSubscription.unsubscribe();\n this._chipSelectionSubscription = null;\n }\n if (this._chipRemoveSubscription) {\n this._chipRemoveSubscription.unsubscribe();\n this._chipRemoveSubscription = null;\n }\n }\n /** Listens to user-generated selection events on each chip. */\n _listenToChipsSelection() {\n this._chipSelectionSubscription = this.chipSelectionChanges.subscribe(event => {\n event.source.selected ? this._selectionModel.select(event.source) : this._selectionModel.deselect(event.source);\n // For single selection chip list, make sure the deselected value is unselected.\n if (!this.multiple) {\n this.chips.forEach(chip => {\n if (!this._selectionModel.isSelected(chip) && chip.selected) {\n chip.deselect();\n }\n });\n }\n if (event.isUserInput) {\n this._propagateChanges();\n }\n });\n }\n /** Listens to user-generated selection events on each chip. */\n _listenToChipsFocus() {\n this._chipFocusSubscription = this.chipFocusChanges.subscribe(event => {\n let chipIndex = this.chips.toArray().indexOf(event.chip);\n if (this._isValidIndex(chipIndex)) {\n this._keyManager.updateActiveItem(chipIndex);\n }\n this.stateChanges.next();\n });\n this._chipBlurSubscription = this.chipBlurChanges.subscribe(() => {\n this._blur();\n this.stateChanges.next();\n });\n }\n _listenToChipsRemoved() {\n this._chipRemoveSubscription = this.chipRemoveChanges.subscribe(event => {\n const chip = event.chip;\n const chipIndex = this.chips.toArray().indexOf(event.chip);\n // In case the chip that will be removed is currently focused, we temporarily store\n // the index in order to be able to determine an appropriate sibling chip that will\n // receive focus.\n if (this._isValidIndex(chipIndex) && chip._hasFocus) {\n this._lastDestroyedChipIndex = chipIndex;\n }\n });\n }\n /** Checks whether an event comes from inside a chip element. */\n _originatesFromChip(event) {\n let currentElement = event.target;\n while (currentElement && currentElement !== this._elementRef.nativeElement) {\n if (currentElement.classList.contains('mat-chip')) {\n return true;\n }\n currentElement = currentElement.parentElement;\n }\n return false;\n }\n /** Checks whether any of the chips is focused. */\n _hasFocusedChip() {\n return this.chips && this.chips.some(chip => chip._hasFocus);\n }\n /** Syncs the list's state with the individual chips. */\n _syncChipsState() {\n if (this.chips) {\n this.chips.forEach(chip => {\n chip._chipListDisabled = this._disabled;\n chip._chipListMultiple = this.multiple;\n chip.chipListSelectable = this._selectable;\n });\n }\n }\n static {\n this.ɵfac = function MatLegacyChipList_Factory(ɵt) {\n return new (ɵt || MatLegacyChipList)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1$1.Directionality, 8), i0.ɵɵdirectiveInject(i2.NgForm, 8), i0.ɵɵdirectiveInject(i2.FormGroupDirective, 8), i0.ɵɵdirectiveInject(i3.ErrorStateMatcher), i0.ɵɵdirectiveInject(i2.NgControl, 10));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatLegacyChipList,\n selectors: [[\"mat-chip-list\"]],\n contentQueries: function MatLegacyChipList_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MatLegacyChip, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.chips = _t);\n }\n },\n hostAttrs: [\"ngSkipHydration\", \"\", 1, \"mat-chip-list\"],\n hostVars: 14,\n hostBindings: function MatLegacyChipList_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"focus\", function MatLegacyChipList_focus_HostBindingHandler() {\n return ctx.focus();\n })(\"blur\", function MatLegacyChipList_blur_HostBindingHandler() {\n return ctx._blur();\n })(\"keydown\", function MatLegacyChipList_keydown_HostBindingHandler($event) {\n return ctx._keydown($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵhostProperty(\"id\", ctx._uid);\n i0.ɵɵattribute(\"tabindex\", ctx.disabled ? null : ctx._tabIndex)(\"aria-required\", ctx.role ? ctx.required : null)(\"aria-disabled\", ctx.disabled.toString())(\"aria-invalid\", ctx.errorState)(\"aria-multiselectable\", ctx.multiple)(\"role\", ctx.role)(\"aria-orientation\", ctx.ariaOrientation);\n i0.ɵɵclassProp(\"mat-chip-list-disabled\", ctx.disabled)(\"mat-chip-list-invalid\", ctx.errorState)(\"mat-chip-list-required\", ctx.required);\n }\n },\n inputs: {\n role: \"role\",\n userAriaDescribedBy: [0, \"aria-describedby\", \"userAriaDescribedBy\"],\n errorStateMatcher: \"errorStateMatcher\",\n multiple: \"multiple\",\n compareWith: \"compareWith\",\n value: \"value\",\n required: \"required\",\n placeholder: \"placeholder\",\n disabled: \"disabled\",\n ariaOrientation: [0, \"aria-orientation\", \"ariaOrientation\"],\n selectable: \"selectable\",\n tabIndex: \"tabIndex\"\n },\n outputs: {\n change: \"change\",\n valueChange: \"valueChange\"\n },\n exportAs: [\"matChipList\"],\n features: [i0.ɵɵProvidersFeature([{\n provide: MatLegacyFormFieldControl,\n useExisting: MatLegacyChipList\n }]), i0.ɵɵInheritDefinitionFeature],\n ngContentSelectors: _c0,\n decls: 2,\n vars: 0,\n consts: [[1, \"mat-chip-list-wrapper\"]],\n template: function MatLegacyChipList_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵprojection(1);\n i0.ɵɵelementEnd();\n }\n },\n styles: [\".mat-chip{position:relative;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0);border:none;-webkit-appearance:none;-moz-appearance:none}.mat-chip::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-standard-chip{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);display:inline-flex;padding:7px 12px;border-radius:16px;align-items:center;cursor:default;min-height:32px;height:1px}.mat-standard-chip._mat-animation-noopable{transition:none !important;animation:none !important}.mat-standard-chip .mat-chip-remove{border:none;-webkit-appearance:none;-moz-appearance:none;padding:0;background:none}.mat-standard-chip .mat-chip-remove.mat-icon,.mat-standard-chip .mat-chip-remove .mat-icon{width:18px;height:18px;font-size:18px}.mat-standard-chip::after{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:inherit;opacity:0;content:\\\"\\\";pointer-events:none;transition:opacity 200ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-standard-chip:hover::after{opacity:.12}.mat-standard-chip:focus{outline:none}.mat-standard-chip:focus::after{opacity:.16}.cdk-high-contrast-active .mat-standard-chip{outline:solid 1px}.cdk-high-contrast-active .mat-standard-chip.mat-chip-selected{outline-width:3px}.mat-standard-chip.mat-chip-disabled::after{opacity:0}.mat-standard-chip.mat-chip-disabled .mat-chip-remove,.mat-standard-chip.mat-chip-disabled .mat-chip-trailing-icon{cursor:default}.mat-standard-chip.mat-chip-with-trailing-icon.mat-chip-with-avatar,.mat-standard-chip.mat-chip-with-avatar{padding-top:0;padding-bottom:0}.mat-standard-chip.mat-chip-with-trailing-icon.mat-chip-with-avatar{padding-right:8px;padding-left:0}[dir=rtl] .mat-standard-chip.mat-chip-with-trailing-icon.mat-chip-with-avatar{padding-left:8px;padding-right:0}.mat-standard-chip.mat-chip-with-trailing-icon{padding-top:7px;padding-bottom:7px;padding-right:8px;padding-left:12px}[dir=rtl] .mat-standard-chip.mat-chip-with-trailing-icon{padding-left:8px;padding-right:12px}.mat-standard-chip.mat-chip-with-avatar{padding-left:0;padding-right:12px}[dir=rtl] .mat-standard-chip.mat-chip-with-avatar{padding-right:0;padding-left:12px}.mat-standard-chip .mat-chip-avatar{width:24px;height:24px;margin-right:8px;margin-left:4px}[dir=rtl] .mat-standard-chip .mat-chip-avatar{margin-left:8px;margin-right:4px}.mat-standard-chip .mat-chip-remove,.mat-standard-chip .mat-chip-trailing-icon{width:18px;height:18px;cursor:pointer}.mat-standard-chip .mat-chip-remove,.mat-standard-chip .mat-chip-trailing-icon{margin-left:8px;margin-right:0}[dir=rtl] .mat-standard-chip .mat-chip-remove,[dir=rtl] .mat-standard-chip .mat-chip-trailing-icon{margin-right:8px;margin-left:0}.mat-chip-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit;overflow:hidden;transform:translateZ(0)}.mat-chip-list-wrapper{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;margin:-4px}.mat-chip-list-wrapper input.mat-input-element,.mat-chip-list-wrapper .mat-standard-chip{margin:4px}.mat-chip-list-stacked .mat-chip-list-wrapper{flex-direction:column;align-items:flex-start}.mat-chip-list-stacked .mat-chip-list-wrapper .mat-standard-chip{width:100%}.mat-chip-avatar{border-radius:50%;justify-content:center;align-items:center;display:flex;overflow:hidden;object-fit:cover}input.mat-chip-input{width:150px;margin:4px;flex:1 0 150px}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyChipList, [{\n type: Component,\n args: [{\n selector: 'mat-chip-list',\n template: ``,\n exportAs: 'matChipList',\n host: {\n '[attr.tabindex]': 'disabled ? null : _tabIndex',\n '[attr.aria-required]': 'role ? required : null',\n '[attr.aria-disabled]': 'disabled.toString()',\n '[attr.aria-invalid]': 'errorState',\n '[attr.aria-multiselectable]': 'multiple',\n '[attr.role]': 'role',\n '[class.mat-chip-list-disabled]': 'disabled',\n '[class.mat-chip-list-invalid]': 'errorState',\n '[class.mat-chip-list-required]': 'required',\n '[attr.aria-orientation]': 'ariaOrientation',\n 'class': 'mat-chip-list',\n '(focus)': 'focus()',\n '(blur)': '_blur()',\n '(keydown)': '_keydown($event)',\n '[id]': '_uid',\n 'ngSkipHydration': ''\n },\n providers: [{\n provide: MatLegacyFormFieldControl,\n useExisting: MatLegacyChipList\n }],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n styles: [\".mat-chip{position:relative;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0);border:none;-webkit-appearance:none;-moz-appearance:none}.mat-chip::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-standard-chip{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);display:inline-flex;padding:7px 12px;border-radius:16px;align-items:center;cursor:default;min-height:32px;height:1px}.mat-standard-chip._mat-animation-noopable{transition:none !important;animation:none !important}.mat-standard-chip .mat-chip-remove{border:none;-webkit-appearance:none;-moz-appearance:none;padding:0;background:none}.mat-standard-chip .mat-chip-remove.mat-icon,.mat-standard-chip .mat-chip-remove .mat-icon{width:18px;height:18px;font-size:18px}.mat-standard-chip::after{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:inherit;opacity:0;content:\\\"\\\";pointer-events:none;transition:opacity 200ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-standard-chip:hover::after{opacity:.12}.mat-standard-chip:focus{outline:none}.mat-standard-chip:focus::after{opacity:.16}.cdk-high-contrast-active .mat-standard-chip{outline:solid 1px}.cdk-high-contrast-active .mat-standard-chip.mat-chip-selected{outline-width:3px}.mat-standard-chip.mat-chip-disabled::after{opacity:0}.mat-standard-chip.mat-chip-disabled .mat-chip-remove,.mat-standard-chip.mat-chip-disabled .mat-chip-trailing-icon{cursor:default}.mat-standard-chip.mat-chip-with-trailing-icon.mat-chip-with-avatar,.mat-standard-chip.mat-chip-with-avatar{padding-top:0;padding-bottom:0}.mat-standard-chip.mat-chip-with-trailing-icon.mat-chip-with-avatar{padding-right:8px;padding-left:0}[dir=rtl] .mat-standard-chip.mat-chip-with-trailing-icon.mat-chip-with-avatar{padding-left:8px;padding-right:0}.mat-standard-chip.mat-chip-with-trailing-icon{padding-top:7px;padding-bottom:7px;padding-right:8px;padding-left:12px}[dir=rtl] .mat-standard-chip.mat-chip-with-trailing-icon{padding-left:8px;padding-right:12px}.mat-standard-chip.mat-chip-with-avatar{padding-left:0;padding-right:12px}[dir=rtl] .mat-standard-chip.mat-chip-with-avatar{padding-right:0;padding-left:12px}.mat-standard-chip .mat-chip-avatar{width:24px;height:24px;margin-right:8px;margin-left:4px}[dir=rtl] .mat-standard-chip .mat-chip-avatar{margin-left:8px;margin-right:4px}.mat-standard-chip .mat-chip-remove,.mat-standard-chip .mat-chip-trailing-icon{width:18px;height:18px;cursor:pointer}.mat-standard-chip .mat-chip-remove,.mat-standard-chip .mat-chip-trailing-icon{margin-left:8px;margin-right:0}[dir=rtl] .mat-standard-chip .mat-chip-remove,[dir=rtl] .mat-standard-chip .mat-chip-trailing-icon{margin-right:8px;margin-left:0}.mat-chip-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit;overflow:hidden;transform:translateZ(0)}.mat-chip-list-wrapper{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;margin:-4px}.mat-chip-list-wrapper input.mat-input-element,.mat-chip-list-wrapper .mat-standard-chip{margin:4px}.mat-chip-list-stacked .mat-chip-list-wrapper{flex-direction:column;align-items:flex-start}.mat-chip-list-stacked .mat-chip-list-wrapper .mat-standard-chip{width:100%}.mat-chip-avatar{border-radius:50%;justify-content:center;align-items:center;display:flex;overflow:hidden;object-fit:cover}input.mat-chip-input{width:150px;margin:4px;flex:1 0 150px}\"]\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: i1$1.Directionality,\n decorators: [{\n type: Optional\n }]\n }, {\n type: i2.NgForm,\n decorators: [{\n type: Optional\n }]\n }, {\n type: i2.FormGroupDirective,\n decorators: [{\n type: Optional\n }]\n }, {\n type: i3.ErrorStateMatcher\n }, {\n type: i2.NgControl,\n decorators: [{\n type: Optional\n }, {\n type: Self\n }]\n }];\n }, {\n role: [{\n type: Input\n }],\n userAriaDescribedBy: [{\n type: Input,\n args: ['aria-describedby']\n }],\n errorStateMatcher: [{\n type: Input\n }],\n multiple: [{\n type: Input\n }],\n compareWith: [{\n type: Input\n }],\n value: [{\n type: Input\n }],\n required: [{\n type: Input\n }],\n placeholder: [{\n type: Input\n }],\n disabled: [{\n type: Input\n }],\n ariaOrientation: [{\n type: Input,\n args: ['aria-orientation']\n }],\n selectable: [{\n type: Input\n }],\n tabIndex: [{\n type: Input\n }],\n change: [{\n type: Output\n }],\n valueChange: [{\n type: Output\n }],\n chips: [{\n type: ContentChildren,\n args: [MatLegacyChip, {\n // We need to use `descendants: true`, because Ivy will no longer match\n // indirect descendants if it's left as false.\n descendants: true\n }]\n }]\n });\n})();\n\n// Increasing integer for generating unique ids.\nlet nextUniqueId = 0;\n/**\n * Directive that adds chip-specific behaviors to an input element inside ``.\n * May be placed inside or outside of an ``.\n * @deprecated Use `MatChipInput` from `@angular/material/chips` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyChipInput {\n /** Register input for chip list */\n set chipList(value) {\n if (value) {\n this._chipList = value;\n this._chipList.registerInput(this);\n }\n }\n /**\n * Whether or not the chipEnd event will be emitted when the input is blurred.\n */\n get addOnBlur() {\n return this._addOnBlur;\n }\n set addOnBlur(value) {\n this._addOnBlur = coerceBooleanProperty(value);\n }\n /** Whether the input is disabled. */\n get disabled() {\n return this._disabled || this._chipList && this._chipList.disabled;\n }\n set disabled(value) {\n this._disabled = coerceBooleanProperty(value);\n }\n /** Whether the input is empty. */\n get empty() {\n return !this.inputElement.value;\n }\n constructor(_elementRef, defaultOptions) {\n this._elementRef = _elementRef;\n /** Whether the control is focused. */\n this.focused = false;\n this._addOnBlur = false;\n /** Emitted when a chip is to be added. */\n this.chipEnd = new EventEmitter();\n /** The input's placeholder text. */\n this.placeholder = '';\n /** Unique id for the input. */\n this.id = `mat-chip-list-input-${nextUniqueId++}`;\n this._disabled = false;\n this.inputElement = this._elementRef.nativeElement;\n this.separatorKeyCodes = defaultOptions.separatorKeyCodes;\n }\n ngOnChanges() {\n this._chipList.stateChanges.next();\n }\n ngOnDestroy() {\n this.chipEnd.complete();\n }\n ngAfterContentInit() {\n this._focusLastChipOnBackspace = this.empty;\n }\n /** Utility method to make host definition/tests more clear. */\n _keydown(event) {\n if (event) {\n // Allow the user's focus to escape when they're tabbing forward. Note that we don't\n // want to do this when going backwards, because focus should go back to the first chip.\n if (event.keyCode === TAB && !hasModifierKey(event, 'shiftKey')) {\n this._chipList._allowFocusEscape();\n }\n // To prevent the user from accidentally deleting chips when pressing BACKSPACE continuously,\n // We focus the last chip on backspace only after the user has released the backspace button,\n // and the input is empty (see behaviour in _keyup)\n if (event.keyCode === BACKSPACE && this._focusLastChipOnBackspace) {\n this._chipList._keyManager.setLastItemActive();\n event.preventDefault();\n return;\n } else {\n this._focusLastChipOnBackspace = false;\n }\n }\n this._emitChipEnd(event);\n }\n /**\n * Pass events to the keyboard manager. Available here for tests.\n */\n _keyup(event) {\n // Allow user to move focus to chips next time he presses backspace\n if (!this._focusLastChipOnBackspace && event.keyCode === BACKSPACE && this.empty) {\n this._focusLastChipOnBackspace = true;\n event.preventDefault();\n }\n }\n /** Checks to see if the blur should emit the (chipEnd) event. */\n _blur() {\n if (this.addOnBlur) {\n this._emitChipEnd();\n }\n this.focused = false;\n // Blur the chip list if it is not focused\n if (!this._chipList.focused) {\n this._chipList._blur();\n }\n this._chipList.stateChanges.next();\n }\n _focus() {\n this.focused = true;\n this._focusLastChipOnBackspace = this.empty;\n this._chipList.stateChanges.next();\n }\n /** Checks to see if the (chipEnd) event needs to be emitted. */\n _emitChipEnd(event) {\n if (!this.inputElement.value && !!event) {\n this._chipList._keydown(event);\n }\n if (!event || this._isSeparatorKey(event)) {\n this.chipEnd.emit({\n input: this.inputElement,\n value: this.inputElement.value,\n chipInput: this\n });\n event?.preventDefault();\n }\n }\n _onInput() {\n // Let chip list know whenever the value changes.\n this._chipList.stateChanges.next();\n }\n /** Focuses the input. */\n focus(options) {\n this.inputElement.focus(options);\n }\n /** Clears the input */\n clear() {\n this.inputElement.value = '';\n this._focusLastChipOnBackspace = true;\n }\n /** Checks whether a keycode is one of the configured separators. */\n _isSeparatorKey(event) {\n return !hasModifierKey(event) && new Set(this.separatorKeyCodes).has(event.keyCode);\n }\n static {\n this.ɵfac = function MatLegacyChipInput_Factory(ɵt) {\n return new (ɵt || MatLegacyChipInput)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(MAT_LEGACY_CHIPS_DEFAULT_OPTIONS));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyChipInput,\n selectors: [[\"input\", \"matChipInputFor\", \"\"]],\n hostAttrs: [1, \"mat-chip-input\", \"mat-input-element\"],\n hostVars: 5,\n hostBindings: function MatLegacyChipInput_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"keydown\", function MatLegacyChipInput_keydown_HostBindingHandler($event) {\n return ctx._keydown($event);\n })(\"keyup\", function MatLegacyChipInput_keyup_HostBindingHandler($event) {\n return ctx._keyup($event);\n })(\"blur\", function MatLegacyChipInput_blur_HostBindingHandler() {\n return ctx._blur();\n })(\"focus\", function MatLegacyChipInput_focus_HostBindingHandler() {\n return ctx._focus();\n })(\"input\", function MatLegacyChipInput_input_HostBindingHandler() {\n return ctx._onInput();\n });\n }\n if (rf & 2) {\n i0.ɵɵhostProperty(\"id\", ctx.id);\n i0.ɵɵattribute(\"disabled\", ctx.disabled || null)(\"placeholder\", ctx.placeholder || null)(\"aria-invalid\", ctx._chipList && ctx._chipList.ngControl ? ctx._chipList.ngControl.invalid : null)(\"aria-required\", ctx._chipList && ctx._chipList.required || null);\n }\n },\n inputs: {\n chipList: [0, \"matChipInputFor\", \"chipList\"],\n addOnBlur: [0, \"matChipInputAddOnBlur\", \"addOnBlur\"],\n separatorKeyCodes: [0, \"matChipInputSeparatorKeyCodes\", \"separatorKeyCodes\"],\n placeholder: \"placeholder\",\n id: \"id\",\n disabled: \"disabled\"\n },\n outputs: {\n chipEnd: \"matChipInputTokenEnd\"\n },\n exportAs: [\"matChipInput\", \"matChipInputFor\"],\n features: [i0.ɵɵNgOnChangesFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyChipInput, [{\n type: Directive,\n args: [{\n selector: 'input[matChipInputFor]',\n exportAs: 'matChipInput, matChipInputFor',\n host: {\n 'class': 'mat-chip-input mat-input-element',\n '(keydown)': '_keydown($event)',\n '(keyup)': '_keyup($event)',\n '(blur)': '_blur()',\n '(focus)': '_focus()',\n '(input)': '_onInput()',\n '[id]': 'id',\n '[attr.disabled]': 'disabled || null',\n '[attr.placeholder]': 'placeholder || null',\n '[attr.aria-invalid]': '_chipList && _chipList.ngControl ? _chipList.ngControl.invalid : null',\n '[attr.aria-required]': '_chipList && _chipList.required || null'\n }\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [MAT_LEGACY_CHIPS_DEFAULT_OPTIONS]\n }]\n }];\n }, {\n chipList: [{\n type: Input,\n args: ['matChipInputFor']\n }],\n addOnBlur: [{\n type: Input,\n args: ['matChipInputAddOnBlur']\n }],\n separatorKeyCodes: [{\n type: Input,\n args: ['matChipInputSeparatorKeyCodes']\n }],\n chipEnd: [{\n type: Output,\n args: ['matChipInputTokenEnd']\n }],\n placeholder: [{\n type: Input\n }],\n id: [{\n type: Input\n }],\n disabled: [{\n type: Input\n }]\n });\n})();\nconst CHIP_DECLARATIONS = [MatLegacyChipList, MatLegacyChip, MatLegacyChipInput, MatLegacyChipRemove, MatLegacyChipAvatar, MatLegacyChipTrailingIcon];\n/**\n * @deprecated Use `MatChipsModule` from `@angular/material/chips` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyChipsModule {\n static {\n this.ɵfac = function MatLegacyChipsModule_Factory(ɵt) {\n return new (ɵt || MatLegacyChipsModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatLegacyChipsModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [ErrorStateMatcher, {\n provide: MAT_LEGACY_CHIPS_DEFAULT_OPTIONS,\n useValue: {\n separatorKeyCodes: [ENTER]\n }\n }],\n imports: [MatCommonModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyChipsModule, [{\n type: NgModule,\n args: [{\n imports: [MatCommonModule],\n exports: CHIP_DECLARATIONS,\n declarations: CHIP_DECLARATIONS,\n providers: [ErrorStateMatcher, {\n provide: MAT_LEGACY_CHIPS_DEFAULT_OPTIONS,\n useValue: {\n separatorKeyCodes: [ENTER]\n }\n }]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_LEGACY_CHIPS_DEFAULT_OPTIONS, MAT_LEGACY_CHIP_AVATAR, MAT_LEGACY_CHIP_REMOVE, MAT_LEGACY_CHIP_TRAILING_ICON, MatLegacyChip, MatLegacyChipAvatar, MatLegacyChipInput, MatLegacyChipList, MatLegacyChipListChange, MatLegacyChipRemove, MatLegacyChipSelectionChange, MatLegacyChipTrailingIcon, MatLegacyChipsModule };\n","import * as i0 from '@angular/core';\nimport { InjectionToken, Directive, Optional, Inject, inject, Input, ContentChildren, Component, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, EventEmitter, ANIMATION_MODULE_TYPE as ANIMATION_MODULE_TYPE$1, Output, forwardRef, NgModule } from '@angular/core';\nimport { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';\nimport * as i1 from '@angular/cdk/platform';\nimport { _getFocusedElementPierceShadowDom } from '@angular/cdk/platform';\nimport { RippleRenderer, MAT_RIPPLE_GLOBAL_OPTIONS, MatCommonModule, MatRippleModule, MatPseudoCheckboxModule } from '@angular/material/core';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\nimport { Subscription, merge, Subject } from 'rxjs';\nimport * as i3 from '@angular/cdk/observers';\nimport { ObserversModule } from '@angular/cdk/observers';\nimport * as i3$1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { FocusKeyManager } from '@angular/cdk/a11y';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { ENTER, SPACE, A, hasModifierKey } from '@angular/cdk/keycodes';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { takeUntil } from 'rxjs/operators';\n\n/**\n * Injection token that can be used to reference instances of an `ListOption`. It serves\n * as alternative token to an actual implementation which could result in undesired\n * retention of the class or circular references breaking runtime execution.\n * @docs-private\n */\nconst _c0 = [\"*\"];\nconst _c1 = \"@media screen and (forced-colors: active),(-ms-high-contrast: active){.mdc-list-divider::after{content:\\\"\\\";display:block;border-bottom-width:1px;border-bottom-style:solid}}.mdc-list{margin:0;padding:8px 0;list-style-type:none}.mdc-list:focus{outline:none}.mdc-list-item__wrapper{display:block}.mdc-list-item{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;align-items:stretch;cursor:pointer}.mdc-list-item:focus{outline:none}.mdc-list-item.mdc-list-item--with-one-line{height:48px}.mdc-list-item.mdc-list-item--with-two-lines{height:64px}.mdc-list-item.mdc-list-item--with-three-lines{height:88px}.mdc-list-item.mdc-list-item--with-one-line .mdc-list-item__start{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--with-three-lines .mdc-list-item__start{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--with-one-line .mdc-list-item__end{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-two-lines .mdc-list-item__end{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--disabled,.mdc-list-item.mdc-list-item--non-interactive{cursor:auto}.mdc-list-item:not(.mdc-list-item--selected):focus::before,.mdc-list-item.mdc-ripple-upgraded--background-focused::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:\\\"\\\";pointer-events:none}@media screen and (forced-colors: active){.mdc-list-item:not(.mdc-list-item--selected):focus::before,.mdc-list-item.mdc-ripple-upgraded--background-focused::before{border-color:CanvasText}}.mdc-list-item.mdc-list-item--selected::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:3px double rgba(0,0,0,0);border-radius:inherit;content:\\\"\\\";pointer-events:none}@media screen and (forced-colors: active){.mdc-list-item.mdc-list-item--selected::before{border-color:CanvasText}}.mdc-list-item.mdc-list-item--selected:focus::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:3px solid rgba(0,0,0,0);border-radius:inherit;content:\\\"\\\";pointer-events:none}@media screen and (forced-colors: active){.mdc-list-item.mdc-list-item--selected:focus::before{border-color:CanvasText}}a.mdc-list-item{color:inherit;text-decoration:none}.mdc-list-item__start{fill:currentColor;flex-shrink:0;pointer-events:none}.mdc-list-item__end{flex-shrink:0;pointer-events:none}.mdc-list-item__content{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;align-self:center;flex:1;pointer-events:none}.mdc-list-item--with-two-lines .mdc-list-item__content,.mdc-list-item--with-three-lines .mdc-list-item__content{align-self:stretch}.mdc-list-item__content[for]{pointer-events:none}.mdc-list-item__primary-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-three-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-three-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-three-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item__secondary-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:block;margin-top:0;line-height:normal}.mdc-list-item__secondary-text::before{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-three-lines .mdc-list-item__secondary-text{white-space:normal;line-height:20px}.mdc-list-item--with-overline .mdc-list-item__secondary-text{white-space:nowrap;line-height:auto}.mdc-list-item__overline-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:24px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-three-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-three-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-three-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-avatar.mdc-list-item,.mdc-list-item--with-leading-avatar.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-avatar .mdc-list-item__start{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-avatar .mdc-list-item__start,.mdc-list-item--with-leading-avatar .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-avatar.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-avatar .mdc-list-item__start{border-radius:50%}.mdc-list-item--with-leading-icon.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-icon.mdc-list-item,.mdc-list-item--with-leading-icon.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-icon .mdc-list-item__start{margin-left:16px;margin-right:32px}[dir=rtl] .mdc-list-item--with-leading-icon .mdc-list-item__start,.mdc-list-item--with-leading-icon .mdc-list-item__start[dir=rtl]{margin-left:32px;margin-right:16px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-icon.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-thumbnail.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-thumbnail.mdc-list-item,.mdc-list-item--with-leading-thumbnail.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-thumbnail .mdc-list-item__start{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-thumbnail .mdc-list-item__start,.mdc-list-item--with-leading-thumbnail .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-image.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-image.mdc-list-item,.mdc-list-item--with-leading-image.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-image .mdc-list-item__start{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-image .mdc-list-item__start,.mdc-list-item--with-leading-image .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-image.mdc-list-item--with-one-line{height:72px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:8px}.mdc-list-item--with-leading-video.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-video.mdc-list-item,.mdc-list-item--with-leading-video.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-video .mdc-list-item__start{margin-left:0;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-video .mdc-list-item__start,.mdc-list-item--with-leading-video .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:0}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-video.mdc-list-item--with-one-line{height:72px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-checkbox.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-checkbox.mdc-list-item,.mdc-list-item--with-leading-checkbox.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-checkbox .mdc-list-item__start{margin-left:8px;margin-right:24px}[dir=rtl] .mdc-list-item--with-leading-checkbox .mdc-list-item__start,.mdc-list-item--with-leading-checkbox .mdc-list-item__start[dir=rtl]{margin-left:24px;margin-right:8px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:8px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-radio.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-radio.mdc-list-item,.mdc-list-item--with-leading-radio.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-radio .mdc-list-item__start{margin-left:8px;margin-right:24px}[dir=rtl] .mdc-list-item--with-leading-radio .mdc-list-item__start,.mdc-list-item--with-leading-radio .mdc-list-item__start[dir=rtl]{margin-left:24px;margin-right:8px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:8px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-switch.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-switch.mdc-list-item,.mdc-list-item--with-leading-switch.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-switch .mdc-list-item__start{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-switch .mdc-list-item__start,.mdc-list-item--with-leading-switch .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:16px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-switch.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-trailing-icon.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-icon.mdc-list-item,.mdc-list-item--with-trailing-icon.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-icon .mdc-list-item__end{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-trailing-icon .mdc-list-item__end,.mdc-list-item--with-trailing-icon .mdc-list-item__end[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end{align-self:flex-start;margin-top:0}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:0}.mdc-list-item--with-trailing-meta.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-meta.mdc-list-item,.mdc-list-item--with-trailing-meta.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-meta .mdc-list-item__end{margin-left:28px;margin-right:16px}[dir=rtl] .mdc-list-item--with-trailing-meta .mdc-list-item__end,.mdc-list-item--with-trailing-meta .mdc-list-item__end[dir=rtl]{margin-left:16px;margin-right:28px}.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-trailing-meta .mdc-list-item__end{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-caption-font-family);font-size:var(--mdc-typography-caption-font-size);line-height:var(--mdc-typography-caption-line-height);font-weight:var(--mdc-typography-caption-font-weight);letter-spacing:var(--mdc-typography-caption-letter-spacing);text-decoration:var(--mdc-typography-caption-text-decoration);text-transform:var(--mdc-typography-caption-text-transform)}.mdc-list-item--with-trailing-checkbox.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-checkbox.mdc-list-item,.mdc-list-item--with-trailing-checkbox.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-checkbox .mdc-list-item__end{margin-left:24px;margin-right:8px}[dir=rtl] .mdc-list-item--with-trailing-checkbox .mdc-list-item__end,.mdc-list-item--with-trailing-checkbox .mdc-list-item__end[dir=rtl]{margin-left:8px;margin-right:24px}.mdc-list-item--with-trailing-checkbox.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:8px}.mdc-list-item--with-trailing-radio.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-radio.mdc-list-item,.mdc-list-item--with-trailing-radio.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-radio .mdc-list-item__end{margin-left:24px;margin-right:8px}[dir=rtl] .mdc-list-item--with-trailing-radio .mdc-list-item__end,.mdc-list-item--with-trailing-radio .mdc-list-item__end[dir=rtl]{margin-left:8px;margin-right:24px}.mdc-list-item--with-trailing-radio.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:8px}.mdc-list-item--with-trailing-switch.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-switch.mdc-list-item,.mdc-list-item--with-trailing-switch.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-switch .mdc-list-item__end{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-trailing-switch .mdc-list-item__end,.mdc-list-item--with-trailing-switch .mdc-list-item__end[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-trailing-switch.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:16px}.mdc-list-item--with-overline.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-overline.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-overline.mdc-list-item--with-three-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-overline.mdc-list-item--with-three-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:0}.mdc-list-item{padding-left:16px;padding-right:16px}[dir=rtl] .mdc-list-item,.mdc-list-item[dir=rtl]{padding-left:16px;padding-right:16px}.mdc-list-group .mdc-deprecated-list{padding:0}.mdc-list-group__subheader{margin:calc((3rem - 1.5rem)/2) 16px}.mdc-list-divider{padding:0;background-clip:content-box}.mdc-list-divider.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-text.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-icon.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-image.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-avatar.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-switch.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-radio.mdc-list-divider--with-leading-inset{padding-left:16px;padding-right:auto}[dir=rtl] .mdc-list-divider.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-text.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-icon.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-image.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-avatar.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-switch.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-radio.mdc-list-divider--with-leading-inset,.mdc-list-divider.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-text.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-icon.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-image.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-avatar.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-switch.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-radio.mdc-list-divider--with-leading-inset[dir=rtl]{padding-left:auto;padding-right:16px}.mdc-list-divider.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-text.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-icon.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-image.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-avatar.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-switch.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-radio.mdc-list-divider--with-trailing-inset{padding-left:auto;padding-right:16px}[dir=rtl] .mdc-list-divider.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-text.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-icon.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-image.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-avatar.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-switch.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-radio.mdc-list-divider--with-trailing-inset,.mdc-list-divider.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-text.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-icon.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-image.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-avatar.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-switch.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-radio.mdc-list-divider--with-trailing-inset[dir=rtl]{padding-left:16px;padding-right:auto}.mdc-list-divider--with-leading-video.mdc-list-divider--with-leading-inset{padding-left:0px;padding-right:auto}[dir=rtl] .mdc-list-divider--with-leading-video.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-video.mdc-list-divider--with-leading-inset[dir=rtl]{padding-left:auto;padding-right:0px}[dir=rtl] .mdc-list-divider,.mdc-list-divider[dir=rtl]{padding:0}.mdc-list-item{background-color:var(--mdc-list-list-item-container-color)}.mdc-list-item.mdc-list-item--selected{background-color:var(--mdc-list-list-item-selected-container-color)}.mdc-list-item--with-one-line{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-one-line.mdc-list-item--with-leading-avatar,.mdc-list-item--with-one-line.mdc-list-item--with-leading-icon,.mdc-list-item--with-one-line.mdc-list-item--with-leading-thumbnail,.mdc-list-item--with-one-line.mdc-list-item--with-leading-checkbox,.mdc-list-item--with-one-line.mdc-list-item--with-leading-radio,.mdc-list-item--with-one-line.mdc-list-item--with-leading-switch{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-one-line.mdc-list-item--with-leading-image,.mdc-list-item--with-one-line.mdc-list-item--with-leading-video{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-two-lines{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-two-lines.mdc-list-item--with-leading-avatar,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-icon,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-thumbnail,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-checkbox,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-radio,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-switch,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-image,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-video{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-three-lines{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item.mdc-list-item--with-one-line{height:var(--mdc-list-list-item-one-line-container-height)}.mdc-list-item.mdc-list-item--with-two-lines{height:var(--mdc-list-list-item-two-line-container-height)}.mdc-list-item.mdc-list-item--with-three-lines{height:var(--mdc-list-list-item-three-line-container-height)}.mdc-list-item__primary-text{color:var(--mdc-list-list-item-label-text-color)}.mdc-list-item__primary-text{font-family:var(--mdc-list-list-item-label-text-font);line-height:var(--mdc-list-list-item-label-text-line-height);font-size:var(--mdc-list-list-item-label-text-size);font-weight:var(--mdc-list-list-item-label-text-weight);letter-spacing:var(--mdc-list-list-item-label-text-tracking)}.mdc-list-item__secondary-text{color:var(--mdc-list-list-item-supporting-text-color)}.mdc-list-item__secondary-text{font-family:var(--mdc-list-list-item-supporting-text-font);line-height:var(--mdc-list-list-item-supporting-text-line-height);font-size:var(--mdc-list-list-item-supporting-text-size);font-weight:var(--mdc-list-list-item-supporting-text-weight);letter-spacing:var(--mdc-list-list-item-supporting-text-tracking)}.mdc-list-item--with-leading-icon .mdc-list-item__start{color:var(--mdc-list-list-item-leading-icon-color)}.mdc-list-item--with-leading-icon .mdc-list-item__start{width:var(--mdc-list-list-item-leading-icon-size);height:var(--mdc-list-list-item-leading-icon-size)}.mdc-list-item--with-leading-icon .mdc-list-item__start>i{font-size:var(--mdc-list-list-item-leading-icon-size)}.mdc-list-item--with-leading-icon .mdc-list-item__start .mdc-list-item__icon{font-size:var(--mdc-list-list-item-leading-icon-size);width:var(--mdc-list-list-item-leading-icon-size);height:var(--mdc-list-list-item-leading-icon-size)}.mdc-list-item--with-leading-icon .mdc-list-item__start .mdc-list-item__icon,.mdc-list-item--with-leading-icon .mdc-list-item__start .mdc-list-item__icon>.materialdesignWizIconSvgsSvgIcon{display:block}.mdc-list-item--with-leading-avatar .mdc-list-item__start{width:var(--mdc-list-list-item-leading-avatar-size);height:var(--mdc-list-list-item-leading-avatar-size)}.mdc-list-item.mdc-list-item--with-trailing-meta .mdc-list-item__end{color:var(--mdc-list-list-item-trailing-supporting-text-color)}.mdc-list-item--with-trailing-meta .mdc-list-item__end{font-family:var(--mdc-list-list-item-trailing-supporting-text-font);line-height:var(--mdc-list-list-item-trailing-supporting-text-line-height);font-size:var(--mdc-list-list-item-trailing-supporting-text-size);font-weight:var(--mdc-list-list-item-trailing-supporting-text-weight);letter-spacing:var(--mdc-list-list-item-trailing-supporting-text-tracking)}.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-trailing-icon-color)}.mdc-list-item--with-trailing-icon .mdc-list-item__end{width:var(--mdc-list-list-item-trailing-icon-size);height:var(--mdc-list-list-item-trailing-icon-size)}.mdc-list-item--with-trailing-icon .mdc-list-item__end>i{font-size:var(--mdc-list-list-item-trailing-icon-size)}.mdc-list-item--with-trailing-icon .mdc-list-item__end .mdc-list-item__icon{font-size:var(--mdc-list-list-item-trailing-icon-size);width:var(--mdc-list-list-item-trailing-icon-size);height:var(--mdc-list-list-item-trailing-icon-size)}.mdc-list-item--with-trailing-icon .mdc-list-item__end .mdc-list-item__icon,.mdc-list-item--with-trailing-icon .mdc-list-item__end .mdc-list-item__icon>.materialdesignWizIconSvgsSvgIcon{display:block}.mdc-list-item--selected.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-selected-trailing-icon-color)}.mdc-list-item--disabled .mdc-list-item__start,.mdc-list-item--disabled .mdc-list-item__content,.mdc-list-item--disabled .mdc-list-item__end{opacity:1}.mdc-list-item--disabled .mdc-list-item__primary-text,.mdc-list-item--disabled .mdc-list-item__secondary-text,.mdc-list-item--disabled .mdc-list-item__overline-text{opacity:var(--mdc-list-list-item-disabled-label-text-opacity)}.mdc-list-item--disabled.mdc-list-item--with-leading-icon .mdc-list-item__start{color:var(--mdc-list-list-item-disabled-leading-icon-color)}.mdc-list-item--disabled.mdc-list-item--with-leading-icon .mdc-list-item__start{opacity:var(--mdc-list-list-item-disabled-leading-icon-opacity)}.mdc-list-item--disabled.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-disabled-trailing-icon-color)}.mdc-list-item--disabled.mdc-list-item--with-trailing-icon .mdc-list-item__end{opacity:var(--mdc-list-list-item-disabled-trailing-icon-opacity)}.mdc-list-item:hover .mdc-list-item__primary-text{color:var(--mdc-list-list-item-hover-label-text-color)}.mdc-list-item--with-leading-icon:hover .mdc-list-item__start{color:var(--mdc-list-list-item-hover-leading-icon-color)}.mdc-list-item--with-trailing-icon:hover .mdc-list-item__end{color:var(--mdc-list-list-item-hover-trailing-icon-color)}.mdc-list-item:focus .mdc-list-item__primary-text{color:var(--mdc-list-list-item-focus-label-text-color)}.mdc-list-item.mdc-list-item--disabled .mdc-list-item__primary-text{color:var(--mdc-list-list-item-disabled-label-text-color)}.mdc-list-item:hover::before{background-color:var(--mdc-list-list-item-hover-state-layer-color);opacity:var(--mdc-list-list-item-hover-state-layer-opacity)}.mdc-list-item.mdc-list-item--disabled::before{background-color:var(--mdc-list-list-item-disabled-state-layer-color);opacity:var(--mdc-list-list-item-disabled-state-layer-opacity)}.mdc-list-item:focus::before{background-color:var(--mdc-list-list-item-focus-state-layer-color);opacity:var(--mdc-list-list-item-focus-state-layer-opacity)}.mdc-list-item--disabled .mdc-radio,.mdc-list-item--disabled .mdc-checkbox{opacity:var(--mdc-list-list-item-disabled-label-text-opacity)}.mdc-list-item--with-leading-avatar .mat-mdc-list-item-avatar{border-radius:var(--mdc-list-list-item-leading-avatar-shape);background-color:var(--mdc-list-list-item-leading-avatar-color)}.mat-mdc-list-base{--mdc-list-list-item-container-shape:0;--mdc-list-list-item-leading-avatar-shape:50%;--mdc-list-list-item-container-color:transparent;--mdc-list-list-item-selected-container-color:transparent;--mdc-list-list-item-leading-avatar-color:transparent;--mdc-list-list-item-leading-icon-size:24px;--mdc-list-list-item-leading-avatar-size:40px;--mdc-list-list-item-trailing-icon-size:24px;--mdc-list-list-item-disabled-state-layer-color:transparent;--mdc-list-list-item-disabled-state-layer-opacity:0;--mdc-list-list-item-disabled-label-text-opacity:0.38;--mdc-list-list-item-disabled-leading-icon-opacity:0.38;--mdc-list-list-item-disabled-trailing-icon-opacity:0.38}.cdk-high-contrast-active a.mdc-list-item--activated::after{content:\\\"\\\";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}.cdk-high-contrast-active a.mdc-list-item--activated [dir=rtl]::after{right:auto;left:16px}.mat-mdc-list-base{display:block}.mat-mdc-list-base .mdc-list-item__start,.mat-mdc-list-base .mdc-list-item__end,.mat-mdc-list-base .mdc-list-item__content{pointer-events:auto}.mat-mdc-list-item,.mat-mdc-list-option{width:100%;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-list-item:not(.mat-mdc-list-item-interactive),.mat-mdc-list-option:not(.mat-mdc-list-item-interactive){cursor:default}.mat-mdc-list-item .mat-divider-inset,.mat-mdc-list-option .mat-divider-inset{position:absolute;left:0;right:0;bottom:0}.mat-mdc-list-item .mat-mdc-list-item-avatar~.mat-divider-inset,.mat-mdc-list-option .mat-mdc-list-item-avatar~.mat-divider-inset{margin-left:72px}[dir=rtl] .mat-mdc-list-item .mat-mdc-list-item-avatar~.mat-divider-inset,[dir=rtl] .mat-mdc-list-option .mat-mdc-list-item-avatar~.mat-divider-inset{margin-right:72px}.mat-mdc-list-item-interactive::before{top:0;left:0;right:0;bottom:0;position:absolute;content:\\\"\\\";opacity:0;pointer-events:none}.mat-mdc-list-item>.mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-mdc-list-item:focus>.mat-mdc-focus-indicator::before{content:\\\"\\\"}.mat-mdc-list-item.mdc-list-item--with-three-lines .mat-mdc-list-item-line.mdc-list-item__secondary-text{white-space:nowrap;line-height:normal}.mat-mdc-list-item.mdc-list-item--with-three-lines .mat-mdc-list-item-unscoped-content.mdc-list-item__secondary-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}mat-action-list button{background:none;color:inherit;border:none;font:inherit;outline:inherit;-webkit-tap-highlight-color:rgba(0,0,0,0);text-align:left}[dir=rtl] mat-action-list button{text-align:right}mat-action-list button::-moz-focus-inner{border:0}\";\nconst _c2 = [\"unscopedContent\"];\nconst _c3 = [\"text\"];\nconst _c4 = [[[\"\", \"matListItemAvatar\", \"\"], [\"\", \"matListItemIcon\", \"\"]], [[\"\", \"matListItemTitle\", \"\"]], [[\"\", \"matListItemLine\", \"\"]], \"*\", [[\"\", \"matListItemMeta\", \"\"]], [[\"mat-divider\"]]];\nconst _c5 = [\"[matListItemAvatar],[matListItemIcon]\", \"[matListItemTitle]\", \"[matListItemLine]\", \"*\", \"[matListItemMeta]\", \"mat-divider\"];\nconst _c6 = [[[\"\", \"matListItemTitle\", \"\"]], [[\"\", \"matListItemLine\", \"\"]], \"*\", [[\"mat-divider\"]], [[\"\", \"matListItemAvatar\", \"\"], [\"\", \"matListItemIcon\", \"\"]]];\nconst _c7 = [\"[matListItemTitle]\", \"[matListItemLine]\", \"*\", \"mat-divider\", \"[matListItemAvatar],[matListItemIcon]\"];\nfunction MatListOption_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojection(0, 4);\n }\n}\nfunction MatListOption_ng_template_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 11);\n i0.ɵɵelement(1, \"input\", 12);\n i0.ɵɵelementStart(2, \"div\", 13);\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(3, \"svg\", 14);\n i0.ɵɵelement(4, \"path\", 15);\n i0.ɵɵelementEnd();\n i0.ɵɵnamespaceHTML();\n i0.ɵɵelement(5, \"div\", 16);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"mdc-checkbox--disabled\", ctx_r1.disabled);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"checked\", ctx_r1.selected)(\"disabled\", ctx_r1.disabled);\n }\n}\nfunction MatListOption_ng_template_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 17);\n i0.ɵɵelement(1, \"input\", 18);\n i0.ɵɵelementStart(2, \"div\", 19);\n i0.ɵɵelement(3, \"div\", 20)(4, \"div\", 21);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"mdc-radio--disabled\", ctx_r1.disabled);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"checked\", ctx_r1.selected)(\"disabled\", ctx_r1.disabled);\n }\n}\nfunction MatListOption_span_6_ng_template_1_Template(rf, ctx) {}\nfunction MatListOption_span_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 22);\n i0.ɵɵtemplate(1, MatListOption_span_6_ng_template_1_Template, 0, 0, \"ng-template\", 23);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵnextContext();\n const checkbox_r3 = i0.ɵɵreference(3);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", checkbox_r3);\n }\n}\nfunction MatListOption_span_7_ng_template_1_Template(rf, ctx) {}\nfunction MatListOption_span_7_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 24);\n i0.ɵɵtemplate(1, MatListOption_span_7_ng_template_1_Template, 0, 0, \"ng-template\", 23);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵnextContext();\n const radio_r4 = i0.ɵɵreference(5);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", radio_r4);\n }\n}\nfunction MatListOption_ng_template_8_ng_template_0_Template(rf, ctx) {}\nfunction MatListOption_ng_template_8_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, MatListOption_ng_template_8_ng_template_0_Template, 0, 0, \"ng-template\", 23);\n }\n if (rf & 2) {\n i0.ɵɵnextContext();\n const icons_r5 = i0.ɵɵreference(1);\n i0.ɵɵproperty(\"ngTemplateOutlet\", icons_r5);\n }\n}\nfunction MatListOption_span_15_ng_template_1_Template(rf, ctx) {}\nfunction MatListOption_span_15_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 25);\n i0.ɵɵtemplate(1, MatListOption_span_15_ng_template_1_Template, 0, 0, \"ng-template\", 23);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵnextContext();\n const checkbox_r3 = i0.ɵɵreference(3);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", checkbox_r3);\n }\n}\nfunction MatListOption_span_16_ng_template_1_Template(rf, ctx) {}\nfunction MatListOption_span_16_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 25);\n i0.ɵɵtemplate(1, MatListOption_span_16_ng_template_1_Template, 0, 0, \"ng-template\", 23);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵnextContext();\n const radio_r4 = i0.ɵɵreference(5);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", radio_r4);\n }\n}\nfunction MatListOption_ng_template_17_ng_template_0_Template(rf, ctx) {}\nfunction MatListOption_ng_template_17_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, MatListOption_ng_template_17_ng_template_0_Template, 0, 0, \"ng-template\", 23);\n }\n if (rf & 2) {\n i0.ɵɵnextContext();\n const icons_r5 = i0.ɵɵreference(1);\n i0.ɵɵproperty(\"ngTemplateOutlet\", icons_r5);\n }\n}\nconst LIST_OPTION = new InjectionToken('ListOption');\n\n/**\n * Directive capturing the title of a list item. A list item usually consists of a\n * title and optional secondary or tertiary lines.\n *\n * Text content for the title never wraps. There can only be a single title per list item.\n */\nclass MatListItemTitle {\n constructor(_elementRef) {\n this._elementRef = _elementRef;\n }\n static {\n this.ɵfac = function MatListItemTitle_Factory(ɵt) {\n return new (ɵt || MatListItemTitle)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatListItemTitle,\n selectors: [[\"\", \"matListItemTitle\", \"\"]],\n hostAttrs: [1, \"mat-mdc-list-item-title\", \"mdc-list-item__primary-text\"]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatListItemTitle, [{\n type: Directive,\n args: [{\n selector: '[matListItemTitle]',\n host: {\n 'class': 'mat-mdc-list-item-title mdc-list-item__primary-text'\n }\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }];\n }, null);\n})();\n/**\n * Directive capturing a line in a list item. A list item usually consists of a\n * title and optional secondary or tertiary lines.\n *\n * Text content inside a line never wraps. There can be at maximum two lines per list item.\n */\nclass MatListItemLine {\n constructor(_elementRef) {\n this._elementRef = _elementRef;\n }\n static {\n this.ɵfac = function MatListItemLine_Factory(ɵt) {\n return new (ɵt || MatListItemLine)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatListItemLine,\n selectors: [[\"\", \"matListItemLine\", \"\"]],\n hostAttrs: [1, \"mat-mdc-list-item-line\", \"mdc-list-item__secondary-text\"]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatListItemLine, [{\n type: Directive,\n args: [{\n selector: '[matListItemLine]',\n host: {\n 'class': 'mat-mdc-list-item-line mdc-list-item__secondary-text'\n }\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }];\n }, null);\n})();\n/**\n * Directive matching an optional meta section for list items.\n *\n * List items can reserve space at the end of an item to display a control,\n * button or additional text content.\n */\nclass MatListItemMeta {\n static {\n this.ɵfac = function MatListItemMeta_Factory(ɵt) {\n return new (ɵt || MatListItemMeta)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatListItemMeta,\n selectors: [[\"\", \"matListItemMeta\", \"\"]],\n hostAttrs: [1, \"mat-mdc-list-item-meta\", \"mdc-list-item__end\"]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatListItemMeta, [{\n type: Directive,\n args: [{\n selector: '[matListItemMeta]',\n host: {\n 'class': 'mat-mdc-list-item-meta mdc-list-item__end'\n }\n }]\n }], null, null);\n})();\n/**\n * @docs-private\n *\n * MDC uses the very intuitively named classes `.mdc-list-item__start` and `.mat-list-item__end` to\n * position content such as icons or checkboxes/radios that comes either before or after the text\n * content respectively. This directive detects the placement of the checkbox/radio and applies the\n * correct MDC class to position the icon/avatar on the opposite side.\n */\nclass _MatListItemGraphicBase {\n constructor(_listOption) {\n this._listOption = _listOption;\n }\n _isAlignedAtStart() {\n // By default, in all list items the graphic is aligned at start. In list options,\n // the graphic is only aligned at start if the checkbox/radio is at the end.\n return !this._listOption || this._listOption?._getTogglePosition() === 'after';\n }\n static {\n this.ɵfac = function _MatListItemGraphicBase_Factory(ɵt) {\n return new (ɵt || _MatListItemGraphicBase)(i0.ɵɵdirectiveInject(LIST_OPTION, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: _MatListItemGraphicBase,\n hostVars: 4,\n hostBindings: function _MatListItemGraphicBase_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"mdc-list-item__start\", ctx._isAlignedAtStart())(\"mdc-list-item__end\", !ctx._isAlignedAtStart());\n }\n }\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(_MatListItemGraphicBase, [{\n type: Directive,\n args: [{\n host: {\n // MDC uses intuitively named classes `.mdc-list-item__start` and `.mat-list-item__end` to\n // position content such as icons or checkboxes/radios that comes either before or after the\n // text content respectively. This directive detects the placement of the checkbox/radio and\n // applies the correct MDC class to position the icon/avatar on the opposite side.\n '[class.mdc-list-item__start]': '_isAlignedAtStart()',\n '[class.mdc-list-item__end]': '!_isAlignedAtStart()'\n }\n }]\n }], function () {\n return [{\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [LIST_OPTION]\n }]\n }];\n }, null);\n})();\n/**\n * Directive matching an optional avatar within a list item.\n *\n * List items can reserve space at the beginning of an item to display an avatar.\n */\nclass MatListItemAvatar extends _MatListItemGraphicBase {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatListItemAvatar_BaseFactory;\n return function MatListItemAvatar_Factory(ɵt) {\n return (ɵMatListItemAvatar_BaseFactory || (ɵMatListItemAvatar_BaseFactory = i0.ɵɵgetInheritedFactory(MatListItemAvatar)))(ɵt || MatListItemAvatar);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatListItemAvatar,\n selectors: [[\"\", \"matListItemAvatar\", \"\"]],\n hostAttrs: [1, \"mat-mdc-list-item-avatar\"],\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatListItemAvatar, [{\n type: Directive,\n args: [{\n selector: '[matListItemAvatar]',\n host: {\n 'class': 'mat-mdc-list-item-avatar'\n }\n }]\n }], null, null);\n})();\n/**\n * Directive matching an optional icon within a list item.\n *\n * List items can reserve space at the beginning of an item to display an icon.\n */\nclass MatListItemIcon extends _MatListItemGraphicBase {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatListItemIcon_BaseFactory;\n return function MatListItemIcon_Factory(ɵt) {\n return (ɵMatListItemIcon_BaseFactory || (ɵMatListItemIcon_BaseFactory = i0.ɵɵgetInheritedFactory(MatListItemIcon)))(ɵt || MatListItemIcon);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatListItemIcon,\n selectors: [[\"\", \"matListItemIcon\", \"\"]],\n hostAttrs: [1, \"mat-mdc-list-item-icon\"],\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatListItemIcon, [{\n type: Directive,\n args: [{\n selector: '[matListItemIcon]',\n host: {\n 'class': 'mat-mdc-list-item-icon'\n }\n }]\n }], null, null);\n})();\n\n/** Injection token that can be used to provide the default options the list module. */\nconst MAT_LIST_CONFIG = new InjectionToken('MAT_LIST_CONFIG');\n\n/** @docs-private */\nclass MatListBase {\n constructor() {\n this._isNonInteractive = true;\n this._disableRipple = false;\n this._disabled = false;\n this._defaultOptions = inject(MAT_LIST_CONFIG, {\n optional: true\n });\n }\n /** Whether ripples for all list items is disabled. */\n get disableRipple() {\n return this._disableRipple;\n }\n set disableRipple(value) {\n this._disableRipple = coerceBooleanProperty(value);\n }\n /**\n * Whether the entire list is disabled. When disabled, the list itself and each of its list items\n * are disabled.\n */\n get disabled() {\n return this._disabled;\n }\n set disabled(value) {\n this._disabled = coerceBooleanProperty(value);\n }\n static {\n this.ɵfac = function MatListBase_Factory(ɵt) {\n return new (ɵt || MatListBase)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatListBase,\n hostVars: 1,\n hostBindings: function MatListBase_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-disabled\", ctx.disabled);\n }\n },\n inputs: {\n disableRipple: \"disableRipple\",\n disabled: \"disabled\"\n }\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatListBase, [{\n type: Directive,\n args: [{\n host: {\n '[attr.aria-disabled]': 'disabled'\n }\n }]\n }], null, {\n disableRipple: [{\n type: Input\n }],\n disabled: [{\n type: Input\n }]\n });\n})();\n/** @docs-private */\nclass MatListItemBase {\n /**\n * The number of lines this list item should reserve space for. If not specified,\n * lines are inferred based on the projected content.\n *\n * Explicitly specifying the number of lines is useful if you want to acquire additional\n * space and enable the wrapping of text. The unscoped text content of a list item will\n * always be able to take up the remaining space of the item, unless it represents the title.\n *\n * A maximum of three lines is supported as per the Material Design specification.\n */\n set lines(lines) {\n this._explicitLines = coerceNumberProperty(lines, null);\n this._updateItemLines(false);\n }\n /** Whether ripples for list items are disabled. */\n get disableRipple() {\n return this.disabled || this._disableRipple || this._noopAnimations || !!this._listBase?.disableRipple;\n }\n set disableRipple(value) {\n this._disableRipple = coerceBooleanProperty(value);\n }\n /** Whether the list-item is disabled. */\n get disabled() {\n return this._disabled || !!this._listBase?.disabled;\n }\n set disabled(value) {\n this._disabled = coerceBooleanProperty(value);\n }\n /**\n * Implemented as part of `RippleTarget`.\n * @docs-private\n */\n get rippleDisabled() {\n return this.disableRipple || !!this.rippleConfig.disabled;\n }\n constructor(_elementRef, _ngZone, _listBase, _platform, globalRippleOptions, animationMode) {\n this._elementRef = _elementRef;\n this._ngZone = _ngZone;\n this._listBase = _listBase;\n this._platform = _platform;\n this._explicitLines = null;\n this._disableRipple = false;\n this._disabled = false;\n this._subscriptions = new Subscription();\n this._rippleRenderer = null;\n /** Whether the list item has unscoped text content. */\n this._hasUnscopedTextContent = false;\n this.rippleConfig = globalRippleOptions || {};\n this._hostElement = this._elementRef.nativeElement;\n this._isButtonElement = this._hostElement.nodeName.toLowerCase() === 'button';\n this._noopAnimations = animationMode === 'NoopAnimations';\n if (_listBase && !_listBase._isNonInteractive) {\n this._initInteractiveListItem();\n }\n // If no type attribute is specified for a host `` element, set it to `button`. If a\n // type attribute is already specified, we do nothing. We do this for backwards compatibility.\n // TODO: Determine if we intend to continue doing this for the MDC-based list.\n if (this._isButtonElement && !this._hostElement.hasAttribute('type')) {\n this._hostElement.setAttribute('type', 'button');\n }\n }\n ngAfterViewInit() {\n this._monitorProjectedLinesAndTitle();\n this._updateItemLines(true);\n }\n ngOnDestroy() {\n this._subscriptions.unsubscribe();\n if (this._rippleRenderer !== null) {\n this._rippleRenderer._removeTriggerEvents();\n }\n }\n /** Whether the list item has icons or avatars. */\n _hasIconOrAvatar() {\n return !!(this._avatars.length || this._icons.length);\n }\n _initInteractiveListItem() {\n this._hostElement.classList.add('mat-mdc-list-item-interactive');\n this._rippleRenderer = new RippleRenderer(this, this._ngZone, this._hostElement, this._platform);\n this._rippleRenderer.setupTriggerEvents(this._hostElement);\n }\n /**\n * Subscribes to changes in the projected title and lines. Triggers a\n * item lines update whenever a change occurs.\n */\n _monitorProjectedLinesAndTitle() {\n this._ngZone.runOutsideAngular(() => {\n this._subscriptions.add(merge(this._lines.changes, this._titles.changes).subscribe(() => this._updateItemLines(false)));\n });\n }\n /**\n * Updates the lines of the list item. Based on the projected user content and optional\n * explicit lines setting, the visual appearance of the list item is determined.\n *\n * This method should be invoked whenever the projected user content changes, or\n * when the explicit lines have been updated.\n *\n * @param recheckUnscopedContent Whether the projected unscoped content should be re-checked.\n * The unscoped content is not re-checked for every update as it is a rather expensive check\n * for content that is expected to not change very often.\n */\n _updateItemLines(recheckUnscopedContent) {\n // If the updated is triggered too early before the view and content is initialized,\n // we just skip the update. After view initialization the update is triggered again.\n if (!this._lines || !this._titles || !this._unscopedContent) {\n return;\n }\n // Re-check the DOM for unscoped text content if requested. This needs to\n // happen before any computation or sanity checks run as these rely on the\n // result of whether there is unscoped text content or not.\n if (recheckUnscopedContent) {\n this._checkDomForUnscopedTextContent();\n }\n // Sanity check the list item lines and title in the content. This is a dev-mode only\n // check that can be dead-code eliminated by Terser in production.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n sanityCheckListItemContent(this);\n }\n const numberOfLines = this._explicitLines ?? this._inferLinesFromContent();\n const unscopedContentEl = this._unscopedContent.nativeElement;\n // Update the list item element to reflect the number of lines.\n this._hostElement.classList.toggle('mat-mdc-list-item-single-line', numberOfLines <= 1);\n this._hostElement.classList.toggle('mdc-list-item--with-one-line', numberOfLines <= 1);\n this._hostElement.classList.toggle('mdc-list-item--with-two-lines', numberOfLines === 2);\n this._hostElement.classList.toggle('mdc-list-item--with-three-lines', numberOfLines === 3);\n // If there is no title and the unscoped content is the is the only line, the\n // unscoped text content will be treated as the title of the list-item.\n if (this._hasUnscopedTextContent) {\n const treatAsTitle = this._titles.length === 0 && numberOfLines === 1;\n unscopedContentEl.classList.toggle('mdc-list-item__primary-text', treatAsTitle);\n unscopedContentEl.classList.toggle('mdc-list-item__secondary-text', !treatAsTitle);\n } else {\n unscopedContentEl.classList.remove('mdc-list-item__primary-text');\n unscopedContentEl.classList.remove('mdc-list-item__secondary-text');\n }\n }\n /**\n * Infers the number of lines based on the projected user content. This is useful\n * if no explicit number of lines has been specified on the list item.\n *\n * The number of lines is inferred based on whether there is a title, the number of\n * additional lines (secondary/tertiary). An additional line is acquired if there is\n * unscoped text content.\n */\n _inferLinesFromContent() {\n let numOfLines = this._titles.length + this._lines.length;\n if (this._hasUnscopedTextContent) {\n numOfLines += 1;\n }\n return numOfLines;\n }\n /** Checks whether the list item has unscoped text content. */\n _checkDomForUnscopedTextContent() {\n this._hasUnscopedTextContent = Array.from(this._unscopedContent.nativeElement.childNodes).filter(node => node.nodeType !== node.COMMENT_NODE).some(node => !!(node.textContent && node.textContent.trim()));\n }\n static {\n this.ɵfac = function MatListItemBase_Factory(ɵt) {\n return new (ɵt || MatListItemBase)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(MatListBase, 8), i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(MAT_RIPPLE_GLOBAL_OPTIONS, 8), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatListItemBase,\n contentQueries: function MatListItemBase_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MatListItemAvatar, 4);\n i0.ɵɵcontentQuery(dirIndex, MatListItemIcon, 4);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._avatars = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._icons = _t);\n }\n },\n hostVars: 4,\n hostBindings: function MatListItemBase_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-disabled\", ctx.disabled)(\"disabled\", ctx._isButtonElement && ctx.disabled || null);\n i0.ɵɵclassProp(\"mdc-list-item--disabled\", ctx.disabled);\n }\n },\n inputs: {\n lines: \"lines\",\n disableRipple: \"disableRipple\",\n disabled: \"disabled\"\n }\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatListItemBase, [{\n type: Directive,\n args: [{\n host: {\n '[class.mdc-list-item--disabled]': 'disabled',\n '[attr.aria-disabled]': 'disabled',\n '[attr.disabled]': '(_isButtonElement && disabled) || null'\n }\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i0.NgZone\n }, {\n type: MatListBase,\n decorators: [{\n type: Optional\n }]\n }, {\n type: i1.Platform\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_RIPPLE_GLOBAL_OPTIONS]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }]\n }];\n }, {\n _avatars: [{\n type: ContentChildren,\n args: [MatListItemAvatar, {\n descendants: false\n }]\n }],\n _icons: [{\n type: ContentChildren,\n args: [MatListItemIcon, {\n descendants: false\n }]\n }],\n lines: [{\n type: Input\n }],\n disableRipple: [{\n type: Input\n }],\n disabled: [{\n type: Input\n }]\n });\n})();\n/**\n * Sanity checks the configuration of the list item with respect to the amount\n * of lines, whether there is a title, or if there is unscoped text content.\n *\n * The checks are extracted into a top-level function that can be dead-code\n * eliminated by Terser or other optimizers in production mode.\n */\nfunction sanityCheckListItemContent(item) {\n const numTitles = item._titles.length;\n const numLines = item._titles.length;\n if (numTitles > 1) {\n throw Error('A list item cannot have multiple titles.');\n }\n if (numTitles === 0 && numLines > 0) {\n throw Error('A list item line can only be used if there is a list item title.');\n }\n if (numTitles === 0 && item._hasUnscopedTextContent && item._explicitLines !== null && item._explicitLines > 1) {\n throw Error('A list item cannot have wrapping content without a title.');\n }\n if (numLines > 2 || numLines === 2 && item._hasUnscopedTextContent) {\n throw Error('A list item can have at maximum three lines.');\n }\n}\nclass MatActionList extends MatListBase {\n constructor() {\n super(...arguments);\n // An navigation list is considered interactive, but does not extend the interactive list\n // base class. We do this because as per MDC, items of interactive lists are only reachable\n // through keyboard shortcuts. We want all items for the navigation list to be reachable\n // through tab key as we do not intend to provide any special accessibility treatment. The\n // accessibility treatment depends on how the end-user will interact with it.\n this._isNonInteractive = false;\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatActionList_BaseFactory;\n return function MatActionList_Factory(ɵt) {\n return (ɵMatActionList_BaseFactory || (ɵMatActionList_BaseFactory = i0.ɵɵgetInheritedFactory(MatActionList)))(ɵt || MatActionList);\n };\n })();\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatActionList,\n selectors: [[\"mat-action-list\"]],\n hostAttrs: [\"role\", \"group\", 1, \"mat-mdc-action-list\", \"mat-mdc-list-base\", \"mdc-list\"],\n exportAs: [\"matActionList\"],\n features: [i0.ɵɵProvidersFeature([{\n provide: MatListBase,\n useExisting: MatActionList\n }]), i0.ɵɵInheritDefinitionFeature],\n ngContentSelectors: _c0,\n decls: 1,\n vars: 0,\n template: function MatActionList_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵprojection(0);\n }\n },\n styles: [\"@media screen and (forced-colors: active),(-ms-high-contrast: active){.mdc-list-divider::after{content:\\\"\\\";display:block;border-bottom-width:1px;border-bottom-style:solid}}.mdc-list{margin:0;padding:8px 0;list-style-type:none}.mdc-list:focus{outline:none}.mdc-list-item__wrapper{display:block}.mdc-list-item{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;align-items:stretch;cursor:pointer}.mdc-list-item:focus{outline:none}.mdc-list-item.mdc-list-item--with-one-line{height:48px}.mdc-list-item.mdc-list-item--with-two-lines{height:64px}.mdc-list-item.mdc-list-item--with-three-lines{height:88px}.mdc-list-item.mdc-list-item--with-one-line .mdc-list-item__start{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--with-three-lines .mdc-list-item__start{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--with-one-line .mdc-list-item__end{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-two-lines .mdc-list-item__end{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--disabled,.mdc-list-item.mdc-list-item--non-interactive{cursor:auto}.mdc-list-item:not(.mdc-list-item--selected):focus::before,.mdc-list-item.mdc-ripple-upgraded--background-focused::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:\\\"\\\";pointer-events:none}@media screen and (forced-colors: active){.mdc-list-item:not(.mdc-list-item--selected):focus::before,.mdc-list-item.mdc-ripple-upgraded--background-focused::before{border-color:CanvasText}}.mdc-list-item.mdc-list-item--selected::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:3px double rgba(0,0,0,0);border-radius:inherit;content:\\\"\\\";pointer-events:none}@media screen and (forced-colors: active){.mdc-list-item.mdc-list-item--selected::before{border-color:CanvasText}}.mdc-list-item.mdc-list-item--selected:focus::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:3px solid rgba(0,0,0,0);border-radius:inherit;content:\\\"\\\";pointer-events:none}@media screen and (forced-colors: active){.mdc-list-item.mdc-list-item--selected:focus::before{border-color:CanvasText}}a.mdc-list-item{color:inherit;text-decoration:none}.mdc-list-item__start{fill:currentColor;flex-shrink:0;pointer-events:none}.mdc-list-item__end{flex-shrink:0;pointer-events:none}.mdc-list-item__content{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;align-self:center;flex:1;pointer-events:none}.mdc-list-item--with-two-lines .mdc-list-item__content,.mdc-list-item--with-three-lines .mdc-list-item__content{align-self:stretch}.mdc-list-item__content[for]{pointer-events:none}.mdc-list-item__primary-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-three-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-three-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-three-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item__secondary-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:block;margin-top:0;line-height:normal}.mdc-list-item__secondary-text::before{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-three-lines .mdc-list-item__secondary-text{white-space:normal;line-height:20px}.mdc-list-item--with-overline .mdc-list-item__secondary-text{white-space:nowrap;line-height:auto}.mdc-list-item__overline-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:24px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-three-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-three-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-three-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-avatar.mdc-list-item,.mdc-list-item--with-leading-avatar.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-avatar .mdc-list-item__start{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-avatar .mdc-list-item__start,.mdc-list-item--with-leading-avatar .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-avatar.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-avatar .mdc-list-item__start{border-radius:50%}.mdc-list-item--with-leading-icon.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-icon.mdc-list-item,.mdc-list-item--with-leading-icon.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-icon .mdc-list-item__start{margin-left:16px;margin-right:32px}[dir=rtl] .mdc-list-item--with-leading-icon .mdc-list-item__start,.mdc-list-item--with-leading-icon .mdc-list-item__start[dir=rtl]{margin-left:32px;margin-right:16px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-icon.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-thumbnail.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-thumbnail.mdc-list-item,.mdc-list-item--with-leading-thumbnail.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-thumbnail .mdc-list-item__start{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-thumbnail .mdc-list-item__start,.mdc-list-item--with-leading-thumbnail .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-image.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-image.mdc-list-item,.mdc-list-item--with-leading-image.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-image .mdc-list-item__start{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-image .mdc-list-item__start,.mdc-list-item--with-leading-image .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-image.mdc-list-item--with-one-line{height:72px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:8px}.mdc-list-item--with-leading-video.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-video.mdc-list-item,.mdc-list-item--with-leading-video.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-video .mdc-list-item__start{margin-left:0;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-video .mdc-list-item__start,.mdc-list-item--with-leading-video .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:0}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-video.mdc-list-item--with-one-line{height:72px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-checkbox.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-checkbox.mdc-list-item,.mdc-list-item--with-leading-checkbox.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-checkbox .mdc-list-item__start{margin-left:8px;margin-right:24px}[dir=rtl] .mdc-list-item--with-leading-checkbox .mdc-list-item__start,.mdc-list-item--with-leading-checkbox .mdc-list-item__start[dir=rtl]{margin-left:24px;margin-right:8px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:8px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-radio.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-radio.mdc-list-item,.mdc-list-item--with-leading-radio.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-radio .mdc-list-item__start{margin-left:8px;margin-right:24px}[dir=rtl] .mdc-list-item--with-leading-radio .mdc-list-item__start,.mdc-list-item--with-leading-radio .mdc-list-item__start[dir=rtl]{margin-left:24px;margin-right:8px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:8px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-switch.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-switch.mdc-list-item,.mdc-list-item--with-leading-switch.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-switch .mdc-list-item__start{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-switch .mdc-list-item__start,.mdc-list-item--with-leading-switch .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:16px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-switch.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-trailing-icon.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-icon.mdc-list-item,.mdc-list-item--with-trailing-icon.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-icon .mdc-list-item__end{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-trailing-icon .mdc-list-item__end,.mdc-list-item--with-trailing-icon .mdc-list-item__end[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end{align-self:flex-start;margin-top:0}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:0}.mdc-list-item--with-trailing-meta.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-meta.mdc-list-item,.mdc-list-item--with-trailing-meta.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-meta .mdc-list-item__end{margin-left:28px;margin-right:16px}[dir=rtl] .mdc-list-item--with-trailing-meta .mdc-list-item__end,.mdc-list-item--with-trailing-meta .mdc-list-item__end[dir=rtl]{margin-left:16px;margin-right:28px}.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-trailing-meta .mdc-list-item__end{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-caption-font-family);font-size:var(--mdc-typography-caption-font-size);line-height:var(--mdc-typography-caption-line-height);font-weight:var(--mdc-typography-caption-font-weight);letter-spacing:var(--mdc-typography-caption-letter-spacing);text-decoration:var(--mdc-typography-caption-text-decoration);text-transform:var(--mdc-typography-caption-text-transform)}.mdc-list-item--with-trailing-checkbox.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-checkbox.mdc-list-item,.mdc-list-item--with-trailing-checkbox.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-checkbox .mdc-list-item__end{margin-left:24px;margin-right:8px}[dir=rtl] .mdc-list-item--with-trailing-checkbox .mdc-list-item__end,.mdc-list-item--with-trailing-checkbox .mdc-list-item__end[dir=rtl]{margin-left:8px;margin-right:24px}.mdc-list-item--with-trailing-checkbox.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:8px}.mdc-list-item--with-trailing-radio.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-radio.mdc-list-item,.mdc-list-item--with-trailing-radio.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-radio .mdc-list-item__end{margin-left:24px;margin-right:8px}[dir=rtl] .mdc-list-item--with-trailing-radio .mdc-list-item__end,.mdc-list-item--with-trailing-radio .mdc-list-item__end[dir=rtl]{margin-left:8px;margin-right:24px}.mdc-list-item--with-trailing-radio.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:8px}.mdc-list-item--with-trailing-switch.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-switch.mdc-list-item,.mdc-list-item--with-trailing-switch.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-switch .mdc-list-item__end{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-trailing-switch .mdc-list-item__end,.mdc-list-item--with-trailing-switch .mdc-list-item__end[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-trailing-switch.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:16px}.mdc-list-item--with-overline.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-overline.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-overline.mdc-list-item--with-three-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-overline.mdc-list-item--with-three-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:0}.mdc-list-item{padding-left:16px;padding-right:16px}[dir=rtl] .mdc-list-item,.mdc-list-item[dir=rtl]{padding-left:16px;padding-right:16px}.mdc-list-group .mdc-deprecated-list{padding:0}.mdc-list-group__subheader{margin:calc((3rem - 1.5rem)/2) 16px}.mdc-list-divider{padding:0;background-clip:content-box}.mdc-list-divider.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-text.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-icon.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-image.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-avatar.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-switch.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-radio.mdc-list-divider--with-leading-inset{padding-left:16px;padding-right:auto}[dir=rtl] .mdc-list-divider.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-text.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-icon.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-image.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-avatar.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-switch.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-radio.mdc-list-divider--with-leading-inset,.mdc-list-divider.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-text.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-icon.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-image.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-avatar.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-switch.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-radio.mdc-list-divider--with-leading-inset[dir=rtl]{padding-left:auto;padding-right:16px}.mdc-list-divider.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-text.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-icon.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-image.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-avatar.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-switch.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-radio.mdc-list-divider--with-trailing-inset{padding-left:auto;padding-right:16px}[dir=rtl] .mdc-list-divider.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-text.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-icon.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-image.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-avatar.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-switch.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-radio.mdc-list-divider--with-trailing-inset,.mdc-list-divider.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-text.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-icon.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-image.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-avatar.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-switch.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-radio.mdc-list-divider--with-trailing-inset[dir=rtl]{padding-left:16px;padding-right:auto}.mdc-list-divider--with-leading-video.mdc-list-divider--with-leading-inset{padding-left:0px;padding-right:auto}[dir=rtl] .mdc-list-divider--with-leading-video.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-video.mdc-list-divider--with-leading-inset[dir=rtl]{padding-left:auto;padding-right:0px}[dir=rtl] .mdc-list-divider,.mdc-list-divider[dir=rtl]{padding:0}.mdc-list-item{background-color:var(--mdc-list-list-item-container-color)}.mdc-list-item.mdc-list-item--selected{background-color:var(--mdc-list-list-item-selected-container-color)}.mdc-list-item--with-one-line{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-one-line.mdc-list-item--with-leading-avatar,.mdc-list-item--with-one-line.mdc-list-item--with-leading-icon,.mdc-list-item--with-one-line.mdc-list-item--with-leading-thumbnail,.mdc-list-item--with-one-line.mdc-list-item--with-leading-checkbox,.mdc-list-item--with-one-line.mdc-list-item--with-leading-radio,.mdc-list-item--with-one-line.mdc-list-item--with-leading-switch{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-one-line.mdc-list-item--with-leading-image,.mdc-list-item--with-one-line.mdc-list-item--with-leading-video{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-two-lines{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-two-lines.mdc-list-item--with-leading-avatar,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-icon,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-thumbnail,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-checkbox,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-radio,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-switch,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-image,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-video{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-three-lines{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item.mdc-list-item--with-one-line{height:var(--mdc-list-list-item-one-line-container-height)}.mdc-list-item.mdc-list-item--with-two-lines{height:var(--mdc-list-list-item-two-line-container-height)}.mdc-list-item.mdc-list-item--with-three-lines{height:var(--mdc-list-list-item-three-line-container-height)}.mdc-list-item__primary-text{color:var(--mdc-list-list-item-label-text-color)}.mdc-list-item__primary-text{font-family:var(--mdc-list-list-item-label-text-font);line-height:var(--mdc-list-list-item-label-text-line-height);font-size:var(--mdc-list-list-item-label-text-size);font-weight:var(--mdc-list-list-item-label-text-weight);letter-spacing:var(--mdc-list-list-item-label-text-tracking)}.mdc-list-item__secondary-text{color:var(--mdc-list-list-item-supporting-text-color)}.mdc-list-item__secondary-text{font-family:var(--mdc-list-list-item-supporting-text-font);line-height:var(--mdc-list-list-item-supporting-text-line-height);font-size:var(--mdc-list-list-item-supporting-text-size);font-weight:var(--mdc-list-list-item-supporting-text-weight);letter-spacing:var(--mdc-list-list-item-supporting-text-tracking)}.mdc-list-item--with-leading-icon .mdc-list-item__start{color:var(--mdc-list-list-item-leading-icon-color)}.mdc-list-item--with-leading-icon .mdc-list-item__start{width:var(--mdc-list-list-item-leading-icon-size);height:var(--mdc-list-list-item-leading-icon-size)}.mdc-list-item--with-leading-icon .mdc-list-item__start>i{font-size:var(--mdc-list-list-item-leading-icon-size)}.mdc-list-item--with-leading-icon .mdc-list-item__start .mdc-list-item__icon{font-size:var(--mdc-list-list-item-leading-icon-size);width:var(--mdc-list-list-item-leading-icon-size);height:var(--mdc-list-list-item-leading-icon-size)}.mdc-list-item--with-leading-icon .mdc-list-item__start .mdc-list-item__icon,.mdc-list-item--with-leading-icon .mdc-list-item__start .mdc-list-item__icon>.materialdesignWizIconSvgsSvgIcon{display:block}.mdc-list-item--with-leading-avatar .mdc-list-item__start{width:var(--mdc-list-list-item-leading-avatar-size);height:var(--mdc-list-list-item-leading-avatar-size)}.mdc-list-item.mdc-list-item--with-trailing-meta .mdc-list-item__end{color:var(--mdc-list-list-item-trailing-supporting-text-color)}.mdc-list-item--with-trailing-meta .mdc-list-item__end{font-family:var(--mdc-list-list-item-trailing-supporting-text-font);line-height:var(--mdc-list-list-item-trailing-supporting-text-line-height);font-size:var(--mdc-list-list-item-trailing-supporting-text-size);font-weight:var(--mdc-list-list-item-trailing-supporting-text-weight);letter-spacing:var(--mdc-list-list-item-trailing-supporting-text-tracking)}.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-trailing-icon-color)}.mdc-list-item--with-trailing-icon .mdc-list-item__end{width:var(--mdc-list-list-item-trailing-icon-size);height:var(--mdc-list-list-item-trailing-icon-size)}.mdc-list-item--with-trailing-icon .mdc-list-item__end>i{font-size:var(--mdc-list-list-item-trailing-icon-size)}.mdc-list-item--with-trailing-icon .mdc-list-item__end .mdc-list-item__icon{font-size:var(--mdc-list-list-item-trailing-icon-size);width:var(--mdc-list-list-item-trailing-icon-size);height:var(--mdc-list-list-item-trailing-icon-size)}.mdc-list-item--with-trailing-icon .mdc-list-item__end .mdc-list-item__icon,.mdc-list-item--with-trailing-icon .mdc-list-item__end .mdc-list-item__icon>.materialdesignWizIconSvgsSvgIcon{display:block}.mdc-list-item--selected.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-selected-trailing-icon-color)}.mdc-list-item--disabled .mdc-list-item__start,.mdc-list-item--disabled .mdc-list-item__content,.mdc-list-item--disabled .mdc-list-item__end{opacity:1}.mdc-list-item--disabled .mdc-list-item__primary-text,.mdc-list-item--disabled .mdc-list-item__secondary-text,.mdc-list-item--disabled .mdc-list-item__overline-text{opacity:var(--mdc-list-list-item-disabled-label-text-opacity)}.mdc-list-item--disabled.mdc-list-item--with-leading-icon .mdc-list-item__start{color:var(--mdc-list-list-item-disabled-leading-icon-color)}.mdc-list-item--disabled.mdc-list-item--with-leading-icon .mdc-list-item__start{opacity:var(--mdc-list-list-item-disabled-leading-icon-opacity)}.mdc-list-item--disabled.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-disabled-trailing-icon-color)}.mdc-list-item--disabled.mdc-list-item--with-trailing-icon .mdc-list-item__end{opacity:var(--mdc-list-list-item-disabled-trailing-icon-opacity)}.mdc-list-item:hover .mdc-list-item__primary-text{color:var(--mdc-list-list-item-hover-label-text-color)}.mdc-list-item--with-leading-icon:hover .mdc-list-item__start{color:var(--mdc-list-list-item-hover-leading-icon-color)}.mdc-list-item--with-trailing-icon:hover .mdc-list-item__end{color:var(--mdc-list-list-item-hover-trailing-icon-color)}.mdc-list-item:focus .mdc-list-item__primary-text{color:var(--mdc-list-list-item-focus-label-text-color)}.mdc-list-item.mdc-list-item--disabled .mdc-list-item__primary-text{color:var(--mdc-list-list-item-disabled-label-text-color)}.mdc-list-item:hover::before{background-color:var(--mdc-list-list-item-hover-state-layer-color);opacity:var(--mdc-list-list-item-hover-state-layer-opacity)}.mdc-list-item.mdc-list-item--disabled::before{background-color:var(--mdc-list-list-item-disabled-state-layer-color);opacity:var(--mdc-list-list-item-disabled-state-layer-opacity)}.mdc-list-item:focus::before{background-color:var(--mdc-list-list-item-focus-state-layer-color);opacity:var(--mdc-list-list-item-focus-state-layer-opacity)}.mdc-list-item--disabled .mdc-radio,.mdc-list-item--disabled .mdc-checkbox{opacity:var(--mdc-list-list-item-disabled-label-text-opacity)}.mdc-list-item--with-leading-avatar .mat-mdc-list-item-avatar{border-radius:var(--mdc-list-list-item-leading-avatar-shape);background-color:var(--mdc-list-list-item-leading-avatar-color)}.mat-mdc-list-base{--mdc-list-list-item-container-shape:0;--mdc-list-list-item-leading-avatar-shape:50%;--mdc-list-list-item-container-color:transparent;--mdc-list-list-item-selected-container-color:transparent;--mdc-list-list-item-leading-avatar-color:transparent;--mdc-list-list-item-leading-icon-size:24px;--mdc-list-list-item-leading-avatar-size:40px;--mdc-list-list-item-trailing-icon-size:24px;--mdc-list-list-item-disabled-state-layer-color:transparent;--mdc-list-list-item-disabled-state-layer-opacity:0;--mdc-list-list-item-disabled-label-text-opacity:0.38;--mdc-list-list-item-disabled-leading-icon-opacity:0.38;--mdc-list-list-item-disabled-trailing-icon-opacity:0.38}.cdk-high-contrast-active a.mdc-list-item--activated::after{content:\\\"\\\";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}.cdk-high-contrast-active a.mdc-list-item--activated [dir=rtl]::after{right:auto;left:16px}.mat-mdc-list-base{display:block}.mat-mdc-list-base .mdc-list-item__start,.mat-mdc-list-base .mdc-list-item__end,.mat-mdc-list-base .mdc-list-item__content{pointer-events:auto}.mat-mdc-list-item,.mat-mdc-list-option{width:100%;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-list-item:not(.mat-mdc-list-item-interactive),.mat-mdc-list-option:not(.mat-mdc-list-item-interactive){cursor:default}.mat-mdc-list-item .mat-divider-inset,.mat-mdc-list-option .mat-divider-inset{position:absolute;left:0;right:0;bottom:0}.mat-mdc-list-item .mat-mdc-list-item-avatar~.mat-divider-inset,.mat-mdc-list-option .mat-mdc-list-item-avatar~.mat-divider-inset{margin-left:72px}[dir=rtl] .mat-mdc-list-item .mat-mdc-list-item-avatar~.mat-divider-inset,[dir=rtl] .mat-mdc-list-option .mat-mdc-list-item-avatar~.mat-divider-inset{margin-right:72px}.mat-mdc-list-item-interactive::before{top:0;left:0;right:0;bottom:0;position:absolute;content:\\\"\\\";opacity:0;pointer-events:none}.mat-mdc-list-item>.mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-mdc-list-item:focus>.mat-mdc-focus-indicator::before{content:\\\"\\\"}.mat-mdc-list-item.mdc-list-item--with-three-lines .mat-mdc-list-item-line.mdc-list-item__secondary-text{white-space:nowrap;line-height:normal}.mat-mdc-list-item.mdc-list-item--with-three-lines .mat-mdc-list-item-unscoped-content.mdc-list-item__secondary-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}mat-action-list button{background:none;color:inherit;border:none;font:inherit;outline:inherit;-webkit-tap-highlight-color:rgba(0,0,0,0);text-align:left}[dir=rtl] mat-action-list button{text-align:right}mat-action-list button::-moz-focus-inner{border:0}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatActionList, [{\n type: Component,\n args: [{\n selector: 'mat-action-list',\n exportAs: 'matActionList',\n template: '',\n host: {\n 'class': 'mat-mdc-action-list mat-mdc-list-base mdc-list',\n 'role': 'group'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{\n provide: MatListBase,\n useExisting: MatActionList\n }],\n styles: [\"@media screen and (forced-colors: active),(-ms-high-contrast: active){.mdc-list-divider::after{content:\\\"\\\";display:block;border-bottom-width:1px;border-bottom-style:solid}}.mdc-list{margin:0;padding:8px 0;list-style-type:none}.mdc-list:focus{outline:none}.mdc-list-item__wrapper{display:block}.mdc-list-item{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;align-items:stretch;cursor:pointer}.mdc-list-item:focus{outline:none}.mdc-list-item.mdc-list-item--with-one-line{height:48px}.mdc-list-item.mdc-list-item--with-two-lines{height:64px}.mdc-list-item.mdc-list-item--with-three-lines{height:88px}.mdc-list-item.mdc-list-item--with-one-line .mdc-list-item__start{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--with-three-lines .mdc-list-item__start{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--with-one-line .mdc-list-item__end{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-two-lines .mdc-list-item__end{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--disabled,.mdc-list-item.mdc-list-item--non-interactive{cursor:auto}.mdc-list-item:not(.mdc-list-item--selected):focus::before,.mdc-list-item.mdc-ripple-upgraded--background-focused::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:\\\"\\\";pointer-events:none}@media screen and (forced-colors: active){.mdc-list-item:not(.mdc-list-item--selected):focus::before,.mdc-list-item.mdc-ripple-upgraded--background-focused::before{border-color:CanvasText}}.mdc-list-item.mdc-list-item--selected::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:3px double rgba(0,0,0,0);border-radius:inherit;content:\\\"\\\";pointer-events:none}@media screen and (forced-colors: active){.mdc-list-item.mdc-list-item--selected::before{border-color:CanvasText}}.mdc-list-item.mdc-list-item--selected:focus::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:3px solid rgba(0,0,0,0);border-radius:inherit;content:\\\"\\\";pointer-events:none}@media screen and (forced-colors: active){.mdc-list-item.mdc-list-item--selected:focus::before{border-color:CanvasText}}a.mdc-list-item{color:inherit;text-decoration:none}.mdc-list-item__start{fill:currentColor;flex-shrink:0;pointer-events:none}.mdc-list-item__end{flex-shrink:0;pointer-events:none}.mdc-list-item__content{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;align-self:center;flex:1;pointer-events:none}.mdc-list-item--with-two-lines .mdc-list-item__content,.mdc-list-item--with-three-lines .mdc-list-item__content{align-self:stretch}.mdc-list-item__content[for]{pointer-events:none}.mdc-list-item__primary-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-three-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-three-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-three-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item__secondary-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:block;margin-top:0;line-height:normal}.mdc-list-item__secondary-text::before{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-three-lines .mdc-list-item__secondary-text{white-space:normal;line-height:20px}.mdc-list-item--with-overline .mdc-list-item__secondary-text{white-space:nowrap;line-height:auto}.mdc-list-item__overline-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:24px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-three-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-three-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-three-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-avatar.mdc-list-item,.mdc-list-item--with-leading-avatar.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-avatar .mdc-list-item__start{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-avatar .mdc-list-item__start,.mdc-list-item--with-leading-avatar .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-avatar.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-avatar .mdc-list-item__start{border-radius:50%}.mdc-list-item--with-leading-icon.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-icon.mdc-list-item,.mdc-list-item--with-leading-icon.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-icon .mdc-list-item__start{margin-left:16px;margin-right:32px}[dir=rtl] .mdc-list-item--with-leading-icon .mdc-list-item__start,.mdc-list-item--with-leading-icon .mdc-list-item__start[dir=rtl]{margin-left:32px;margin-right:16px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-icon.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-thumbnail.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-thumbnail.mdc-list-item,.mdc-list-item--with-leading-thumbnail.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-thumbnail .mdc-list-item__start{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-thumbnail .mdc-list-item__start,.mdc-list-item--with-leading-thumbnail .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-image.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-image.mdc-list-item,.mdc-list-item--with-leading-image.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-image .mdc-list-item__start{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-image .mdc-list-item__start,.mdc-list-item--with-leading-image .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-image.mdc-list-item--with-one-line{height:72px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:8px}.mdc-list-item--with-leading-video.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-video.mdc-list-item,.mdc-list-item--with-leading-video.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-video .mdc-list-item__start{margin-left:0;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-video .mdc-list-item__start,.mdc-list-item--with-leading-video .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:0}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-video.mdc-list-item--with-one-line{height:72px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-checkbox.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-checkbox.mdc-list-item,.mdc-list-item--with-leading-checkbox.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-checkbox .mdc-list-item__start{margin-left:8px;margin-right:24px}[dir=rtl] .mdc-list-item--with-leading-checkbox .mdc-list-item__start,.mdc-list-item--with-leading-checkbox .mdc-list-item__start[dir=rtl]{margin-left:24px;margin-right:8px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:8px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-radio.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-radio.mdc-list-item,.mdc-list-item--with-leading-radio.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-radio .mdc-list-item__start{margin-left:8px;margin-right:24px}[dir=rtl] .mdc-list-item--with-leading-radio .mdc-list-item__start,.mdc-list-item--with-leading-radio .mdc-list-item__start[dir=rtl]{margin-left:24px;margin-right:8px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:8px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-switch.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-switch.mdc-list-item,.mdc-list-item--with-leading-switch.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-switch .mdc-list-item__start{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-switch .mdc-list-item__start,.mdc-list-item--with-leading-switch .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:16px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-switch.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-trailing-icon.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-icon.mdc-list-item,.mdc-list-item--with-trailing-icon.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-icon .mdc-list-item__end{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-trailing-icon .mdc-list-item__end,.mdc-list-item--with-trailing-icon .mdc-list-item__end[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end{align-self:flex-start;margin-top:0}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:0}.mdc-list-item--with-trailing-meta.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-meta.mdc-list-item,.mdc-list-item--with-trailing-meta.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-meta .mdc-list-item__end{margin-left:28px;margin-right:16px}[dir=rtl] .mdc-list-item--with-trailing-meta .mdc-list-item__end,.mdc-list-item--with-trailing-meta .mdc-list-item__end[dir=rtl]{margin-left:16px;margin-right:28px}.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-trailing-meta .mdc-list-item__end{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-caption-font-family);font-size:var(--mdc-typography-caption-font-size);line-height:var(--mdc-typography-caption-line-height);font-weight:var(--mdc-typography-caption-font-weight);letter-spacing:var(--mdc-typography-caption-letter-spacing);text-decoration:var(--mdc-typography-caption-text-decoration);text-transform:var(--mdc-typography-caption-text-transform)}.mdc-list-item--with-trailing-checkbox.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-checkbox.mdc-list-item,.mdc-list-item--with-trailing-checkbox.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-checkbox .mdc-list-item__end{margin-left:24px;margin-right:8px}[dir=rtl] .mdc-list-item--with-trailing-checkbox .mdc-list-item__end,.mdc-list-item--with-trailing-checkbox .mdc-list-item__end[dir=rtl]{margin-left:8px;margin-right:24px}.mdc-list-item--with-trailing-checkbox.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:8px}.mdc-list-item--with-trailing-radio.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-radio.mdc-list-item,.mdc-list-item--with-trailing-radio.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-radio .mdc-list-item__end{margin-left:24px;margin-right:8px}[dir=rtl] .mdc-list-item--with-trailing-radio .mdc-list-item__end,.mdc-list-item--with-trailing-radio .mdc-list-item__end[dir=rtl]{margin-left:8px;margin-right:24px}.mdc-list-item--with-trailing-radio.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:8px}.mdc-list-item--with-trailing-switch.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-switch.mdc-list-item,.mdc-list-item--with-trailing-switch.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-switch .mdc-list-item__end{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-trailing-switch .mdc-list-item__end,.mdc-list-item--with-trailing-switch .mdc-list-item__end[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-trailing-switch.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:16px}.mdc-list-item--with-overline.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-overline.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-overline.mdc-list-item--with-three-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-overline.mdc-list-item--with-three-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:0}.mdc-list-item{padding-left:16px;padding-right:16px}[dir=rtl] .mdc-list-item,.mdc-list-item[dir=rtl]{padding-left:16px;padding-right:16px}.mdc-list-group .mdc-deprecated-list{padding:0}.mdc-list-group__subheader{margin:calc((3rem - 1.5rem)/2) 16px}.mdc-list-divider{padding:0;background-clip:content-box}.mdc-list-divider.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-text.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-icon.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-image.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-avatar.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-switch.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-radio.mdc-list-divider--with-leading-inset{padding-left:16px;padding-right:auto}[dir=rtl] .mdc-list-divider.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-text.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-icon.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-image.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-avatar.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-switch.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-radio.mdc-list-divider--with-leading-inset,.mdc-list-divider.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-text.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-icon.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-image.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-avatar.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-switch.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-radio.mdc-list-divider--with-leading-inset[dir=rtl]{padding-left:auto;padding-right:16px}.mdc-list-divider.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-text.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-icon.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-image.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-avatar.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-switch.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-radio.mdc-list-divider--with-trailing-inset{padding-left:auto;padding-right:16px}[dir=rtl] .mdc-list-divider.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-text.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-icon.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-image.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-avatar.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-switch.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-radio.mdc-list-divider--with-trailing-inset,.mdc-list-divider.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-text.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-icon.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-image.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-avatar.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-switch.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-radio.mdc-list-divider--with-trailing-inset[dir=rtl]{padding-left:16px;padding-right:auto}.mdc-list-divider--with-leading-video.mdc-list-divider--with-leading-inset{padding-left:0px;padding-right:auto}[dir=rtl] .mdc-list-divider--with-leading-video.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-video.mdc-list-divider--with-leading-inset[dir=rtl]{padding-left:auto;padding-right:0px}[dir=rtl] .mdc-list-divider,.mdc-list-divider[dir=rtl]{padding:0}.mdc-list-item{background-color:var(--mdc-list-list-item-container-color)}.mdc-list-item.mdc-list-item--selected{background-color:var(--mdc-list-list-item-selected-container-color)}.mdc-list-item--with-one-line{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-one-line.mdc-list-item--with-leading-avatar,.mdc-list-item--with-one-line.mdc-list-item--with-leading-icon,.mdc-list-item--with-one-line.mdc-list-item--with-leading-thumbnail,.mdc-list-item--with-one-line.mdc-list-item--with-leading-checkbox,.mdc-list-item--with-one-line.mdc-list-item--with-leading-radio,.mdc-list-item--with-one-line.mdc-list-item--with-leading-switch{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-one-line.mdc-list-item--with-leading-image,.mdc-list-item--with-one-line.mdc-list-item--with-leading-video{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-two-lines{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-two-lines.mdc-list-item--with-leading-avatar,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-icon,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-thumbnail,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-checkbox,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-radio,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-switch,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-image,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-video{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-three-lines{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item.mdc-list-item--with-one-line{height:var(--mdc-list-list-item-one-line-container-height)}.mdc-list-item.mdc-list-item--with-two-lines{height:var(--mdc-list-list-item-two-line-container-height)}.mdc-list-item.mdc-list-item--with-three-lines{height:var(--mdc-list-list-item-three-line-container-height)}.mdc-list-item__primary-text{color:var(--mdc-list-list-item-label-text-color)}.mdc-list-item__primary-text{font-family:var(--mdc-list-list-item-label-text-font);line-height:var(--mdc-list-list-item-label-text-line-height);font-size:var(--mdc-list-list-item-label-text-size);font-weight:var(--mdc-list-list-item-label-text-weight);letter-spacing:var(--mdc-list-list-item-label-text-tracking)}.mdc-list-item__secondary-text{color:var(--mdc-list-list-item-supporting-text-color)}.mdc-list-item__secondary-text{font-family:var(--mdc-list-list-item-supporting-text-font);line-height:var(--mdc-list-list-item-supporting-text-line-height);font-size:var(--mdc-list-list-item-supporting-text-size);font-weight:var(--mdc-list-list-item-supporting-text-weight);letter-spacing:var(--mdc-list-list-item-supporting-text-tracking)}.mdc-list-item--with-leading-icon .mdc-list-item__start{color:var(--mdc-list-list-item-leading-icon-color)}.mdc-list-item--with-leading-icon .mdc-list-item__start{width:var(--mdc-list-list-item-leading-icon-size);height:var(--mdc-list-list-item-leading-icon-size)}.mdc-list-item--with-leading-icon .mdc-list-item__start>i{font-size:var(--mdc-list-list-item-leading-icon-size)}.mdc-list-item--with-leading-icon .mdc-list-item__start .mdc-list-item__icon{font-size:var(--mdc-list-list-item-leading-icon-size);width:var(--mdc-list-list-item-leading-icon-size);height:var(--mdc-list-list-item-leading-icon-size)}.mdc-list-item--with-leading-icon .mdc-list-item__start .mdc-list-item__icon,.mdc-list-item--with-leading-icon .mdc-list-item__start .mdc-list-item__icon>.materialdesignWizIconSvgsSvgIcon{display:block}.mdc-list-item--with-leading-avatar .mdc-list-item__start{width:var(--mdc-list-list-item-leading-avatar-size);height:var(--mdc-list-list-item-leading-avatar-size)}.mdc-list-item.mdc-list-item--with-trailing-meta .mdc-list-item__end{color:var(--mdc-list-list-item-trailing-supporting-text-color)}.mdc-list-item--with-trailing-meta .mdc-list-item__end{font-family:var(--mdc-list-list-item-trailing-supporting-text-font);line-height:var(--mdc-list-list-item-trailing-supporting-text-line-height);font-size:var(--mdc-list-list-item-trailing-supporting-text-size);font-weight:var(--mdc-list-list-item-trailing-supporting-text-weight);letter-spacing:var(--mdc-list-list-item-trailing-supporting-text-tracking)}.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-trailing-icon-color)}.mdc-list-item--with-trailing-icon .mdc-list-item__end{width:var(--mdc-list-list-item-trailing-icon-size);height:var(--mdc-list-list-item-trailing-icon-size)}.mdc-list-item--with-trailing-icon .mdc-list-item__end>i{font-size:var(--mdc-list-list-item-trailing-icon-size)}.mdc-list-item--with-trailing-icon .mdc-list-item__end .mdc-list-item__icon{font-size:var(--mdc-list-list-item-trailing-icon-size);width:var(--mdc-list-list-item-trailing-icon-size);height:var(--mdc-list-list-item-trailing-icon-size)}.mdc-list-item--with-trailing-icon .mdc-list-item__end .mdc-list-item__icon,.mdc-list-item--with-trailing-icon .mdc-list-item__end .mdc-list-item__icon>.materialdesignWizIconSvgsSvgIcon{display:block}.mdc-list-item--selected.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-selected-trailing-icon-color)}.mdc-list-item--disabled .mdc-list-item__start,.mdc-list-item--disabled .mdc-list-item__content,.mdc-list-item--disabled .mdc-list-item__end{opacity:1}.mdc-list-item--disabled .mdc-list-item__primary-text,.mdc-list-item--disabled .mdc-list-item__secondary-text,.mdc-list-item--disabled .mdc-list-item__overline-text{opacity:var(--mdc-list-list-item-disabled-label-text-opacity)}.mdc-list-item--disabled.mdc-list-item--with-leading-icon .mdc-list-item__start{color:var(--mdc-list-list-item-disabled-leading-icon-color)}.mdc-list-item--disabled.mdc-list-item--with-leading-icon .mdc-list-item__start{opacity:var(--mdc-list-list-item-disabled-leading-icon-opacity)}.mdc-list-item--disabled.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-disabled-trailing-icon-color)}.mdc-list-item--disabled.mdc-list-item--with-trailing-icon .mdc-list-item__end{opacity:var(--mdc-list-list-item-disabled-trailing-icon-opacity)}.mdc-list-item:hover .mdc-list-item__primary-text{color:var(--mdc-list-list-item-hover-label-text-color)}.mdc-list-item--with-leading-icon:hover .mdc-list-item__start{color:var(--mdc-list-list-item-hover-leading-icon-color)}.mdc-list-item--with-trailing-icon:hover .mdc-list-item__end{color:var(--mdc-list-list-item-hover-trailing-icon-color)}.mdc-list-item:focus .mdc-list-item__primary-text{color:var(--mdc-list-list-item-focus-label-text-color)}.mdc-list-item.mdc-list-item--disabled .mdc-list-item__primary-text{color:var(--mdc-list-list-item-disabled-label-text-color)}.mdc-list-item:hover::before{background-color:var(--mdc-list-list-item-hover-state-layer-color);opacity:var(--mdc-list-list-item-hover-state-layer-opacity)}.mdc-list-item.mdc-list-item--disabled::before{background-color:var(--mdc-list-list-item-disabled-state-layer-color);opacity:var(--mdc-list-list-item-disabled-state-layer-opacity)}.mdc-list-item:focus::before{background-color:var(--mdc-list-list-item-focus-state-layer-color);opacity:var(--mdc-list-list-item-focus-state-layer-opacity)}.mdc-list-item--disabled .mdc-radio,.mdc-list-item--disabled .mdc-checkbox{opacity:var(--mdc-list-list-item-disabled-label-text-opacity)}.mdc-list-item--with-leading-avatar .mat-mdc-list-item-avatar{border-radius:var(--mdc-list-list-item-leading-avatar-shape);background-color:var(--mdc-list-list-item-leading-avatar-color)}.mat-mdc-list-base{--mdc-list-list-item-container-shape:0;--mdc-list-list-item-leading-avatar-shape:50%;--mdc-list-list-item-container-color:transparent;--mdc-list-list-item-selected-container-color:transparent;--mdc-list-list-item-leading-avatar-color:transparent;--mdc-list-list-item-leading-icon-size:24px;--mdc-list-list-item-leading-avatar-size:40px;--mdc-list-list-item-trailing-icon-size:24px;--mdc-list-list-item-disabled-state-layer-color:transparent;--mdc-list-list-item-disabled-state-layer-opacity:0;--mdc-list-list-item-disabled-label-text-opacity:0.38;--mdc-list-list-item-disabled-leading-icon-opacity:0.38;--mdc-list-list-item-disabled-trailing-icon-opacity:0.38}.cdk-high-contrast-active a.mdc-list-item--activated::after{content:\\\"\\\";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}.cdk-high-contrast-active a.mdc-list-item--activated [dir=rtl]::after{right:auto;left:16px}.mat-mdc-list-base{display:block}.mat-mdc-list-base .mdc-list-item__start,.mat-mdc-list-base .mdc-list-item__end,.mat-mdc-list-base .mdc-list-item__content{pointer-events:auto}.mat-mdc-list-item,.mat-mdc-list-option{width:100%;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-list-item:not(.mat-mdc-list-item-interactive),.mat-mdc-list-option:not(.mat-mdc-list-item-interactive){cursor:default}.mat-mdc-list-item .mat-divider-inset,.mat-mdc-list-option .mat-divider-inset{position:absolute;left:0;right:0;bottom:0}.mat-mdc-list-item .mat-mdc-list-item-avatar~.mat-divider-inset,.mat-mdc-list-option .mat-mdc-list-item-avatar~.mat-divider-inset{margin-left:72px}[dir=rtl] .mat-mdc-list-item .mat-mdc-list-item-avatar~.mat-divider-inset,[dir=rtl] .mat-mdc-list-option .mat-mdc-list-item-avatar~.mat-divider-inset{margin-right:72px}.mat-mdc-list-item-interactive::before{top:0;left:0;right:0;bottom:0;position:absolute;content:\\\"\\\";opacity:0;pointer-events:none}.mat-mdc-list-item>.mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-mdc-list-item:focus>.mat-mdc-focus-indicator::before{content:\\\"\\\"}.mat-mdc-list-item.mdc-list-item--with-three-lines .mat-mdc-list-item-line.mdc-list-item__secondary-text{white-space:nowrap;line-height:normal}.mat-mdc-list-item.mdc-list-item--with-three-lines .mat-mdc-list-item-unscoped-content.mdc-list-item__secondary-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}mat-action-list button{background:none;color:inherit;border:none;font:inherit;outline:inherit;-webkit-tap-highlight-color:rgba(0,0,0,0);text-align:left}[dir=rtl] mat-action-list button{text-align:right}mat-action-list button::-moz-focus-inner{border:0}\"]\n }]\n }], null, null);\n})();\n\n/**\n * Injection token that can be used to inject instances of `MatList`. It serves as\n * alternative token to the actual `MatList` class which could cause unnecessary\n * retention of the class and its component metadata.\n */\nconst MAT_LIST = new InjectionToken('MatList');\nclass MatList extends MatListBase {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatList_BaseFactory;\n return function MatList_Factory(ɵt) {\n return (ɵMatList_BaseFactory || (ɵMatList_BaseFactory = i0.ɵɵgetInheritedFactory(MatList)))(ɵt || MatList);\n };\n })();\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatList,\n selectors: [[\"mat-list\"]],\n hostAttrs: [1, \"mat-mdc-list\", \"mat-mdc-list-base\", \"mdc-list\"],\n exportAs: [\"matList\"],\n features: [i0.ɵɵProvidersFeature([{\n provide: MatListBase,\n useExisting: MatList\n }]), i0.ɵɵInheritDefinitionFeature],\n ngContentSelectors: _c0,\n decls: 1,\n vars: 0,\n template: function MatList_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵprojection(0);\n }\n },\n styles: [_c1],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatList, [{\n type: Component,\n args: [{\n selector: 'mat-list',\n exportAs: 'matList',\n template: '',\n host: {\n 'class': 'mat-mdc-list mat-mdc-list-base mdc-list'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{\n provide: MatListBase,\n useExisting: MatList\n }],\n styles: [\"@media screen and (forced-colors: active),(-ms-high-contrast: active){.mdc-list-divider::after{content:\\\"\\\";display:block;border-bottom-width:1px;border-bottom-style:solid}}.mdc-list{margin:0;padding:8px 0;list-style-type:none}.mdc-list:focus{outline:none}.mdc-list-item__wrapper{display:block}.mdc-list-item{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;align-items:stretch;cursor:pointer}.mdc-list-item:focus{outline:none}.mdc-list-item.mdc-list-item--with-one-line{height:48px}.mdc-list-item.mdc-list-item--with-two-lines{height:64px}.mdc-list-item.mdc-list-item--with-three-lines{height:88px}.mdc-list-item.mdc-list-item--with-one-line .mdc-list-item__start{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--with-three-lines .mdc-list-item__start{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--with-one-line .mdc-list-item__end{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-two-lines .mdc-list-item__end{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--disabled,.mdc-list-item.mdc-list-item--non-interactive{cursor:auto}.mdc-list-item:not(.mdc-list-item--selected):focus::before,.mdc-list-item.mdc-ripple-upgraded--background-focused::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:\\\"\\\";pointer-events:none}@media screen and (forced-colors: active){.mdc-list-item:not(.mdc-list-item--selected):focus::before,.mdc-list-item.mdc-ripple-upgraded--background-focused::before{border-color:CanvasText}}.mdc-list-item.mdc-list-item--selected::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:3px double rgba(0,0,0,0);border-radius:inherit;content:\\\"\\\";pointer-events:none}@media screen and (forced-colors: active){.mdc-list-item.mdc-list-item--selected::before{border-color:CanvasText}}.mdc-list-item.mdc-list-item--selected:focus::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:3px solid rgba(0,0,0,0);border-radius:inherit;content:\\\"\\\";pointer-events:none}@media screen and (forced-colors: active){.mdc-list-item.mdc-list-item--selected:focus::before{border-color:CanvasText}}a.mdc-list-item{color:inherit;text-decoration:none}.mdc-list-item__start{fill:currentColor;flex-shrink:0;pointer-events:none}.mdc-list-item__end{flex-shrink:0;pointer-events:none}.mdc-list-item__content{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;align-self:center;flex:1;pointer-events:none}.mdc-list-item--with-two-lines .mdc-list-item__content,.mdc-list-item--with-three-lines .mdc-list-item__content{align-self:stretch}.mdc-list-item__content[for]{pointer-events:none}.mdc-list-item__primary-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-three-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-three-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-three-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item__secondary-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:block;margin-top:0;line-height:normal}.mdc-list-item__secondary-text::before{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-three-lines .mdc-list-item__secondary-text{white-space:normal;line-height:20px}.mdc-list-item--with-overline .mdc-list-item__secondary-text{white-space:nowrap;line-height:auto}.mdc-list-item__overline-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:24px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-three-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-three-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-three-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-avatar.mdc-list-item,.mdc-list-item--with-leading-avatar.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-avatar .mdc-list-item__start{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-avatar .mdc-list-item__start,.mdc-list-item--with-leading-avatar .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-avatar.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-avatar .mdc-list-item__start{border-radius:50%}.mdc-list-item--with-leading-icon.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-icon.mdc-list-item,.mdc-list-item--with-leading-icon.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-icon .mdc-list-item__start{margin-left:16px;margin-right:32px}[dir=rtl] .mdc-list-item--with-leading-icon .mdc-list-item__start,.mdc-list-item--with-leading-icon .mdc-list-item__start[dir=rtl]{margin-left:32px;margin-right:16px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-icon.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-thumbnail.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-thumbnail.mdc-list-item,.mdc-list-item--with-leading-thumbnail.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-thumbnail .mdc-list-item__start{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-thumbnail .mdc-list-item__start,.mdc-list-item--with-leading-thumbnail .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-image.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-image.mdc-list-item,.mdc-list-item--with-leading-image.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-image .mdc-list-item__start{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-image .mdc-list-item__start,.mdc-list-item--with-leading-image .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-image.mdc-list-item--with-one-line{height:72px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:8px}.mdc-list-item--with-leading-video.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-video.mdc-list-item,.mdc-list-item--with-leading-video.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-video .mdc-list-item__start{margin-left:0;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-video .mdc-list-item__start,.mdc-list-item--with-leading-video .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:0}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-video.mdc-list-item--with-one-line{height:72px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-checkbox.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-checkbox.mdc-list-item,.mdc-list-item--with-leading-checkbox.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-checkbox .mdc-list-item__start{margin-left:8px;margin-right:24px}[dir=rtl] .mdc-list-item--with-leading-checkbox .mdc-list-item__start,.mdc-list-item--with-leading-checkbox .mdc-list-item__start[dir=rtl]{margin-left:24px;margin-right:8px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:8px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-radio.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-radio.mdc-list-item,.mdc-list-item--with-leading-radio.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-radio .mdc-list-item__start{margin-left:8px;margin-right:24px}[dir=rtl] .mdc-list-item--with-leading-radio .mdc-list-item__start,.mdc-list-item--with-leading-radio .mdc-list-item__start[dir=rtl]{margin-left:24px;margin-right:8px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:8px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-switch.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-switch.mdc-list-item,.mdc-list-item--with-leading-switch.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-switch .mdc-list-item__start{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-switch .mdc-list-item__start,.mdc-list-item--with-leading-switch .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:16px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-switch.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-trailing-icon.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-icon.mdc-list-item,.mdc-list-item--with-trailing-icon.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-icon .mdc-list-item__end{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-trailing-icon .mdc-list-item__end,.mdc-list-item--with-trailing-icon .mdc-list-item__end[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end{align-self:flex-start;margin-top:0}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:0}.mdc-list-item--with-trailing-meta.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-meta.mdc-list-item,.mdc-list-item--with-trailing-meta.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-meta .mdc-list-item__end{margin-left:28px;margin-right:16px}[dir=rtl] .mdc-list-item--with-trailing-meta .mdc-list-item__end,.mdc-list-item--with-trailing-meta .mdc-list-item__end[dir=rtl]{margin-left:16px;margin-right:28px}.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-trailing-meta .mdc-list-item__end{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-caption-font-family);font-size:var(--mdc-typography-caption-font-size);line-height:var(--mdc-typography-caption-line-height);font-weight:var(--mdc-typography-caption-font-weight);letter-spacing:var(--mdc-typography-caption-letter-spacing);text-decoration:var(--mdc-typography-caption-text-decoration);text-transform:var(--mdc-typography-caption-text-transform)}.mdc-list-item--with-trailing-checkbox.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-checkbox.mdc-list-item,.mdc-list-item--with-trailing-checkbox.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-checkbox .mdc-list-item__end{margin-left:24px;margin-right:8px}[dir=rtl] .mdc-list-item--with-trailing-checkbox .mdc-list-item__end,.mdc-list-item--with-trailing-checkbox .mdc-list-item__end[dir=rtl]{margin-left:8px;margin-right:24px}.mdc-list-item--with-trailing-checkbox.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:8px}.mdc-list-item--with-trailing-radio.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-radio.mdc-list-item,.mdc-list-item--with-trailing-radio.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-radio .mdc-list-item__end{margin-left:24px;margin-right:8px}[dir=rtl] .mdc-list-item--with-trailing-radio .mdc-list-item__end,.mdc-list-item--with-trailing-radio .mdc-list-item__end[dir=rtl]{margin-left:8px;margin-right:24px}.mdc-list-item--with-trailing-radio.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:8px}.mdc-list-item--with-trailing-switch.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-switch.mdc-list-item,.mdc-list-item--with-trailing-switch.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-switch .mdc-list-item__end{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-trailing-switch .mdc-list-item__end,.mdc-list-item--with-trailing-switch .mdc-list-item__end[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-trailing-switch.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:16px}.mdc-list-item--with-overline.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-overline.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-overline.mdc-list-item--with-three-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-overline.mdc-list-item--with-three-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:0}.mdc-list-item{padding-left:16px;padding-right:16px}[dir=rtl] .mdc-list-item,.mdc-list-item[dir=rtl]{padding-left:16px;padding-right:16px}.mdc-list-group .mdc-deprecated-list{padding:0}.mdc-list-group__subheader{margin:calc((3rem - 1.5rem)/2) 16px}.mdc-list-divider{padding:0;background-clip:content-box}.mdc-list-divider.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-text.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-icon.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-image.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-avatar.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-switch.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-radio.mdc-list-divider--with-leading-inset{padding-left:16px;padding-right:auto}[dir=rtl] .mdc-list-divider.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-text.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-icon.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-image.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-avatar.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-switch.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-radio.mdc-list-divider--with-leading-inset,.mdc-list-divider.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-text.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-icon.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-image.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-avatar.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-switch.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-radio.mdc-list-divider--with-leading-inset[dir=rtl]{padding-left:auto;padding-right:16px}.mdc-list-divider.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-text.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-icon.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-image.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-avatar.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-switch.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-radio.mdc-list-divider--with-trailing-inset{padding-left:auto;padding-right:16px}[dir=rtl] .mdc-list-divider.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-text.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-icon.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-image.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-avatar.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-switch.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-radio.mdc-list-divider--with-trailing-inset,.mdc-list-divider.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-text.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-icon.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-image.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-avatar.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-switch.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-radio.mdc-list-divider--with-trailing-inset[dir=rtl]{padding-left:16px;padding-right:auto}.mdc-list-divider--with-leading-video.mdc-list-divider--with-leading-inset{padding-left:0px;padding-right:auto}[dir=rtl] .mdc-list-divider--with-leading-video.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-video.mdc-list-divider--with-leading-inset[dir=rtl]{padding-left:auto;padding-right:0px}[dir=rtl] .mdc-list-divider,.mdc-list-divider[dir=rtl]{padding:0}.mdc-list-item{background-color:var(--mdc-list-list-item-container-color)}.mdc-list-item.mdc-list-item--selected{background-color:var(--mdc-list-list-item-selected-container-color)}.mdc-list-item--with-one-line{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-one-line.mdc-list-item--with-leading-avatar,.mdc-list-item--with-one-line.mdc-list-item--with-leading-icon,.mdc-list-item--with-one-line.mdc-list-item--with-leading-thumbnail,.mdc-list-item--with-one-line.mdc-list-item--with-leading-checkbox,.mdc-list-item--with-one-line.mdc-list-item--with-leading-radio,.mdc-list-item--with-one-line.mdc-list-item--with-leading-switch{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-one-line.mdc-list-item--with-leading-image,.mdc-list-item--with-one-line.mdc-list-item--with-leading-video{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-two-lines{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-two-lines.mdc-list-item--with-leading-avatar,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-icon,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-thumbnail,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-checkbox,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-radio,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-switch,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-image,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-video{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-three-lines{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item.mdc-list-item--with-one-line{height:var(--mdc-list-list-item-one-line-container-height)}.mdc-list-item.mdc-list-item--with-two-lines{height:var(--mdc-list-list-item-two-line-container-height)}.mdc-list-item.mdc-list-item--with-three-lines{height:var(--mdc-list-list-item-three-line-container-height)}.mdc-list-item__primary-text{color:var(--mdc-list-list-item-label-text-color)}.mdc-list-item__primary-text{font-family:var(--mdc-list-list-item-label-text-font);line-height:var(--mdc-list-list-item-label-text-line-height);font-size:var(--mdc-list-list-item-label-text-size);font-weight:var(--mdc-list-list-item-label-text-weight);letter-spacing:var(--mdc-list-list-item-label-text-tracking)}.mdc-list-item__secondary-text{color:var(--mdc-list-list-item-supporting-text-color)}.mdc-list-item__secondary-text{font-family:var(--mdc-list-list-item-supporting-text-font);line-height:var(--mdc-list-list-item-supporting-text-line-height);font-size:var(--mdc-list-list-item-supporting-text-size);font-weight:var(--mdc-list-list-item-supporting-text-weight);letter-spacing:var(--mdc-list-list-item-supporting-text-tracking)}.mdc-list-item--with-leading-icon .mdc-list-item__start{color:var(--mdc-list-list-item-leading-icon-color)}.mdc-list-item--with-leading-icon .mdc-list-item__start{width:var(--mdc-list-list-item-leading-icon-size);height:var(--mdc-list-list-item-leading-icon-size)}.mdc-list-item--with-leading-icon .mdc-list-item__start>i{font-size:var(--mdc-list-list-item-leading-icon-size)}.mdc-list-item--with-leading-icon .mdc-list-item__start .mdc-list-item__icon{font-size:var(--mdc-list-list-item-leading-icon-size);width:var(--mdc-list-list-item-leading-icon-size);height:var(--mdc-list-list-item-leading-icon-size)}.mdc-list-item--with-leading-icon .mdc-list-item__start .mdc-list-item__icon,.mdc-list-item--with-leading-icon .mdc-list-item__start .mdc-list-item__icon>.materialdesignWizIconSvgsSvgIcon{display:block}.mdc-list-item--with-leading-avatar .mdc-list-item__start{width:var(--mdc-list-list-item-leading-avatar-size);height:var(--mdc-list-list-item-leading-avatar-size)}.mdc-list-item.mdc-list-item--with-trailing-meta .mdc-list-item__end{color:var(--mdc-list-list-item-trailing-supporting-text-color)}.mdc-list-item--with-trailing-meta .mdc-list-item__end{font-family:var(--mdc-list-list-item-trailing-supporting-text-font);line-height:var(--mdc-list-list-item-trailing-supporting-text-line-height);font-size:var(--mdc-list-list-item-trailing-supporting-text-size);font-weight:var(--mdc-list-list-item-trailing-supporting-text-weight);letter-spacing:var(--mdc-list-list-item-trailing-supporting-text-tracking)}.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-trailing-icon-color)}.mdc-list-item--with-trailing-icon .mdc-list-item__end{width:var(--mdc-list-list-item-trailing-icon-size);height:var(--mdc-list-list-item-trailing-icon-size)}.mdc-list-item--with-trailing-icon .mdc-list-item__end>i{font-size:var(--mdc-list-list-item-trailing-icon-size)}.mdc-list-item--with-trailing-icon .mdc-list-item__end .mdc-list-item__icon{font-size:var(--mdc-list-list-item-trailing-icon-size);width:var(--mdc-list-list-item-trailing-icon-size);height:var(--mdc-list-list-item-trailing-icon-size)}.mdc-list-item--with-trailing-icon .mdc-list-item__end .mdc-list-item__icon,.mdc-list-item--with-trailing-icon .mdc-list-item__end .mdc-list-item__icon>.materialdesignWizIconSvgsSvgIcon{display:block}.mdc-list-item--selected.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-selected-trailing-icon-color)}.mdc-list-item--disabled .mdc-list-item__start,.mdc-list-item--disabled .mdc-list-item__content,.mdc-list-item--disabled .mdc-list-item__end{opacity:1}.mdc-list-item--disabled .mdc-list-item__primary-text,.mdc-list-item--disabled .mdc-list-item__secondary-text,.mdc-list-item--disabled .mdc-list-item__overline-text{opacity:var(--mdc-list-list-item-disabled-label-text-opacity)}.mdc-list-item--disabled.mdc-list-item--with-leading-icon .mdc-list-item__start{color:var(--mdc-list-list-item-disabled-leading-icon-color)}.mdc-list-item--disabled.mdc-list-item--with-leading-icon .mdc-list-item__start{opacity:var(--mdc-list-list-item-disabled-leading-icon-opacity)}.mdc-list-item--disabled.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-disabled-trailing-icon-color)}.mdc-list-item--disabled.mdc-list-item--with-trailing-icon .mdc-list-item__end{opacity:var(--mdc-list-list-item-disabled-trailing-icon-opacity)}.mdc-list-item:hover .mdc-list-item__primary-text{color:var(--mdc-list-list-item-hover-label-text-color)}.mdc-list-item--with-leading-icon:hover .mdc-list-item__start{color:var(--mdc-list-list-item-hover-leading-icon-color)}.mdc-list-item--with-trailing-icon:hover .mdc-list-item__end{color:var(--mdc-list-list-item-hover-trailing-icon-color)}.mdc-list-item:focus .mdc-list-item__primary-text{color:var(--mdc-list-list-item-focus-label-text-color)}.mdc-list-item.mdc-list-item--disabled .mdc-list-item__primary-text{color:var(--mdc-list-list-item-disabled-label-text-color)}.mdc-list-item:hover::before{background-color:var(--mdc-list-list-item-hover-state-layer-color);opacity:var(--mdc-list-list-item-hover-state-layer-opacity)}.mdc-list-item.mdc-list-item--disabled::before{background-color:var(--mdc-list-list-item-disabled-state-layer-color);opacity:var(--mdc-list-list-item-disabled-state-layer-opacity)}.mdc-list-item:focus::before{background-color:var(--mdc-list-list-item-focus-state-layer-color);opacity:var(--mdc-list-list-item-focus-state-layer-opacity)}.mdc-list-item--disabled .mdc-radio,.mdc-list-item--disabled .mdc-checkbox{opacity:var(--mdc-list-list-item-disabled-label-text-opacity)}.mdc-list-item--with-leading-avatar .mat-mdc-list-item-avatar{border-radius:var(--mdc-list-list-item-leading-avatar-shape);background-color:var(--mdc-list-list-item-leading-avatar-color)}.mat-mdc-list-base{--mdc-list-list-item-container-shape:0;--mdc-list-list-item-leading-avatar-shape:50%;--mdc-list-list-item-container-color:transparent;--mdc-list-list-item-selected-container-color:transparent;--mdc-list-list-item-leading-avatar-color:transparent;--mdc-list-list-item-leading-icon-size:24px;--mdc-list-list-item-leading-avatar-size:40px;--mdc-list-list-item-trailing-icon-size:24px;--mdc-list-list-item-disabled-state-layer-color:transparent;--mdc-list-list-item-disabled-state-layer-opacity:0;--mdc-list-list-item-disabled-label-text-opacity:0.38;--mdc-list-list-item-disabled-leading-icon-opacity:0.38;--mdc-list-list-item-disabled-trailing-icon-opacity:0.38}.cdk-high-contrast-active a.mdc-list-item--activated::after{content:\\\"\\\";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}.cdk-high-contrast-active a.mdc-list-item--activated [dir=rtl]::after{right:auto;left:16px}.mat-mdc-list-base{display:block}.mat-mdc-list-base .mdc-list-item__start,.mat-mdc-list-base .mdc-list-item__end,.mat-mdc-list-base .mdc-list-item__content{pointer-events:auto}.mat-mdc-list-item,.mat-mdc-list-option{width:100%;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-list-item:not(.mat-mdc-list-item-interactive),.mat-mdc-list-option:not(.mat-mdc-list-item-interactive){cursor:default}.mat-mdc-list-item .mat-divider-inset,.mat-mdc-list-option .mat-divider-inset{position:absolute;left:0;right:0;bottom:0}.mat-mdc-list-item .mat-mdc-list-item-avatar~.mat-divider-inset,.mat-mdc-list-option .mat-mdc-list-item-avatar~.mat-divider-inset{margin-left:72px}[dir=rtl] .mat-mdc-list-item .mat-mdc-list-item-avatar~.mat-divider-inset,[dir=rtl] .mat-mdc-list-option .mat-mdc-list-item-avatar~.mat-divider-inset{margin-right:72px}.mat-mdc-list-item-interactive::before{top:0;left:0;right:0;bottom:0;position:absolute;content:\\\"\\\";opacity:0;pointer-events:none}.mat-mdc-list-item>.mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-mdc-list-item:focus>.mat-mdc-focus-indicator::before{content:\\\"\\\"}.mat-mdc-list-item.mdc-list-item--with-three-lines .mat-mdc-list-item-line.mdc-list-item__secondary-text{white-space:nowrap;line-height:normal}.mat-mdc-list-item.mdc-list-item--with-three-lines .mat-mdc-list-item-unscoped-content.mdc-list-item__secondary-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}mat-action-list button{background:none;color:inherit;border:none;font:inherit;outline:inherit;-webkit-tap-highlight-color:rgba(0,0,0,0);text-align:left}[dir=rtl] mat-action-list button{text-align:right}mat-action-list button::-moz-focus-inner{border:0}\"]\n }]\n }], null, null);\n})();\nclass MatListItem extends MatListItemBase {\n /** Indicates whether an item in a `` is the currently active page. */\n get activated() {\n return this._activated;\n }\n set activated(activated) {\n this._activated = coerceBooleanProperty(activated);\n }\n constructor(element, ngZone, listBase, platform, globalRippleOptions, animationMode) {\n super(element, ngZone, listBase, platform, globalRippleOptions, animationMode);\n this._activated = false;\n }\n /**\n * Determine the value of `aria-current`. Return 'page' if this item is an activated anchor tag.\n * Otherwise, return `null`. This method is safe to use with server-side rendering.\n */\n _getAriaCurrent() {\n return this._hostElement.nodeName === 'A' && this._activated ? 'page' : null;\n }\n static {\n this.ɵfac = function MatListItem_Factory(ɵt) {\n return new (ɵt || MatListItem)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(MatListBase, 8), i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(MAT_RIPPLE_GLOBAL_OPTIONS, 8), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatListItem,\n selectors: [[\"mat-list-item\"], [\"a\", \"mat-list-item\", \"\"], [\"button\", \"mat-list-item\", \"\"]],\n contentQueries: function MatListItem_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MatListItemLine, 5);\n i0.ɵɵcontentQuery(dirIndex, MatListItemTitle, 5);\n i0.ɵɵcontentQuery(dirIndex, MatListItemMeta, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._lines = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._titles = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._meta = _t);\n }\n },\n viewQuery: function MatListItem_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c2, 5);\n i0.ɵɵviewQuery(_c3, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._unscopedContent = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._itemText = _t.first);\n }\n },\n hostAttrs: [1, \"mat-mdc-list-item\", \"mdc-list-item\"],\n hostVars: 11,\n hostBindings: function MatListItem_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-current\", ctx._getAriaCurrent());\n i0.ɵɵclassProp(\"mdc-list-item--activated\", ctx.activated)(\"mdc-list-item--with-leading-avatar\", ctx._avatars.length !== 0)(\"mdc-list-item--with-leading-icon\", ctx._icons.length !== 0)(\"mdc-list-item--with-trailing-meta\", ctx._meta.length !== 0)(\"_mat-animation-noopable\", ctx._noopAnimations);\n }\n },\n inputs: {\n activated: \"activated\"\n },\n exportAs: [\"matListItem\"],\n features: [i0.ɵɵInheritDefinitionFeature],\n ngContentSelectors: _c5,\n decls: 10,\n vars: 0,\n consts: [[\"unscopedContent\", \"\"], [1, \"mdc-list-item__content\"], [1, \"mat-mdc-list-item-unscoped-content\", 3, \"cdkObserveContent\"], [1, \"mat-mdc-focus-indicator\"]],\n template: function MatListItem_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵprojectionDef(_c4);\n i0.ɵɵprojection(0);\n i0.ɵɵelementStart(1, \"span\", 1);\n i0.ɵɵprojection(2, 1);\n i0.ɵɵprojection(3, 2);\n i0.ɵɵelementStart(4, \"span\", 2, 0);\n i0.ɵɵlistener(\"cdkObserveContent\", function MatListItem_Template_span_cdkObserveContent_4_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._updateItemLines(true));\n });\n i0.ɵɵprojection(6, 3);\n i0.ɵɵelementEnd()();\n i0.ɵɵprojection(7, 4);\n i0.ɵɵprojection(8, 5);\n i0.ɵɵelement(9, \"div\", 3);\n }\n },\n dependencies: [i3.CdkObserveContent],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatListItem, [{\n type: Component,\n args: [{\n selector: 'mat-list-item, a[mat-list-item], button[mat-list-item]',\n exportAs: 'matListItem',\n host: {\n 'class': 'mat-mdc-list-item mdc-list-item',\n '[class.mdc-list-item--activated]': 'activated',\n '[class.mdc-list-item--with-leading-avatar]': '_avatars.length !== 0',\n '[class.mdc-list-item--with-leading-icon]': '_icons.length !== 0',\n '[class.mdc-list-item--with-trailing-meta]': '_meta.length !== 0',\n '[class._mat-animation-noopable]': '_noopAnimations',\n '[attr.aria-current]': '_getAriaCurrent()'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: \"\\n\\n\\n \\n \\n \\n \\n \\n\\n\\n\\n\\n\\n\\n\\n\\n\"\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i0.NgZone\n }, {\n type: MatListBase,\n decorators: [{\n type: Optional\n }]\n }, {\n type: i1.Platform\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_RIPPLE_GLOBAL_OPTIONS]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }]\n }];\n }, {\n _lines: [{\n type: ContentChildren,\n args: [MatListItemLine, {\n descendants: true\n }]\n }],\n _titles: [{\n type: ContentChildren,\n args: [MatListItemTitle, {\n descendants: true\n }]\n }],\n _meta: [{\n type: ContentChildren,\n args: [MatListItemMeta, {\n descendants: true\n }]\n }],\n _unscopedContent: [{\n type: ViewChild,\n args: ['unscopedContent']\n }],\n _itemText: [{\n type: ViewChild,\n args: ['text']\n }],\n activated: [{\n type: Input\n }]\n });\n})();\n\n/**\n * Injection token that can be used to reference instances of an `SelectionList`. It serves\n * as alternative token to an actual implementation which would result in circular references.\n * @docs-private\n */\nconst SELECTION_LIST = new InjectionToken('SelectionList');\nclass MatListOption extends MatListItemBase {\n /**\n * Whether the label should appear before or after the checkbox/radio. Defaults to 'after'\n *\n * @deprecated Use `togglePosition` instead.\n * @breaking-change 17.0.0\n */\n get checkboxPosition() {\n return this.togglePosition;\n }\n set checkboxPosition(value) {\n this.togglePosition = value;\n }\n /** Theme color of the list option. This sets the color of the checkbox/radio. */\n get color() {\n return this._color || this._selectionList.color;\n }\n set color(newValue) {\n this._color = newValue;\n }\n /** Value of the option */\n get value() {\n return this._value;\n }\n set value(newValue) {\n if (this.selected && newValue !== this.value && this._inputsInitialized) {\n this.selected = false;\n }\n this._value = newValue;\n }\n /** Whether the option is selected. */\n get selected() {\n return this._selectionList.selectedOptions.isSelected(this);\n }\n set selected(value) {\n const isSelected = coerceBooleanProperty(value);\n if (isSelected !== this._selected) {\n this._setSelected(isSelected);\n if (isSelected || this._selectionList.multiple) {\n this._selectionList._reportValueChange();\n }\n }\n }\n constructor(elementRef, ngZone, _selectionList, platform, _changeDetectorRef, globalRippleOptions, animationMode) {\n super(elementRef, ngZone, _selectionList, platform, globalRippleOptions, animationMode);\n this._selectionList = _selectionList;\n this._changeDetectorRef = _changeDetectorRef;\n /**\n * Emits when the selected state of the option has changed.\n * Use to facilitate two-data binding to the `selected` property.\n * @docs-private\n */\n this.selectedChange = new EventEmitter();\n /** Whether the label should appear before or after the checkbox/radio. Defaults to 'after' */\n this.togglePosition = 'after';\n this._selected = false;\n /**\n * This is set to true after the first OnChanges cycle so we don't\n * clear the value of `selected` in the first cycle.\n */\n this._inputsInitialized = false;\n }\n ngOnInit() {\n const list = this._selectionList;\n if (list._value && list._value.some(value => list.compareWith(this._value, value))) {\n this._setSelected(true);\n }\n const wasSelected = this._selected;\n // List options that are selected at initialization can't be reported properly to the form\n // control. This is because it takes some time until the selection-list knows about all\n // available options. Also it can happen that the ControlValueAccessor has an initial value\n // that should be used instead. Deferring the value change report to the next tick ensures\n // that the form control value is not being overwritten.\n Promise.resolve().then(() => {\n if (this._selected || wasSelected) {\n this.selected = true;\n this._changeDetectorRef.markForCheck();\n }\n });\n this._inputsInitialized = true;\n }\n ngOnDestroy() {\n super.ngOnDestroy();\n if (this.selected) {\n // We have to delay this until the next tick in order\n // to avoid changed after checked errors.\n Promise.resolve().then(() => {\n this.selected = false;\n });\n }\n }\n /** Toggles the selection state of the option. */\n toggle() {\n this.selected = !this.selected;\n }\n /** Allows for programmatic focusing of the option. */\n focus() {\n this._hostElement.focus();\n }\n /** Gets the text label of the list option. Used for the typeahead functionality in the list. */\n getLabel() {\n const titleElement = this._titles?.get(0)?._elementRef.nativeElement;\n // If there is no explicit title element, the unscoped text content\n // is treated as the list item title.\n const labelEl = titleElement || this._unscopedContent?.nativeElement;\n return labelEl?.textContent || '';\n }\n /** Whether a checkbox is shown at the given position. */\n _hasCheckboxAt(position) {\n return this._selectionList.multiple && this._getTogglePosition() === position;\n }\n /** Where a radio indicator is shown at the given position. */\n _hasRadioAt(position) {\n return !this._selectionList.multiple && this._getTogglePosition() === position && !this._selectionList.hideSingleSelectionIndicator;\n }\n /** Whether icons or avatars are shown at the given position. */\n _hasIconsOrAvatarsAt(position) {\n return this._hasProjected('icons', position) || this._hasProjected('avatars', position);\n }\n /** Gets whether the given type of element is projected at the specified position. */\n _hasProjected(type, position) {\n // If the checkbox/radio is shown at the specified position, neither icons or\n // avatars can be shown at the position.\n return this._getTogglePosition() !== position && (type === 'avatars' ? this._avatars.length !== 0 : this._icons.length !== 0);\n }\n _handleBlur() {\n this._selectionList._onTouched();\n }\n /** Gets the current position of the checkbox/radio. */\n _getTogglePosition() {\n return this.togglePosition || 'after';\n }\n /**\n * Sets the selected state of the option.\n * @returns Whether the value has changed.\n */\n _setSelected(selected) {\n if (selected === this._selected) {\n return false;\n }\n this._selected = selected;\n if (selected) {\n this._selectionList.selectedOptions.select(this);\n } else {\n this._selectionList.selectedOptions.deselect(this);\n }\n this.selectedChange.emit(selected);\n this._changeDetectorRef.markForCheck();\n return true;\n }\n /**\n * Notifies Angular that the option needs to be checked in the next change detection run.\n * Mainly used to trigger an update of the list option if the disabled state of the selection\n * list changed.\n */\n _markForCheck() {\n this._changeDetectorRef.markForCheck();\n }\n /** Toggles the option's value based on a user interaction. */\n _toggleOnInteraction() {\n if (!this.disabled) {\n if (this._selectionList.multiple) {\n this.selected = !this.selected;\n this._selectionList._emitChangeEvent([this]);\n } else if (!this.selected) {\n this.selected = true;\n this._selectionList._emitChangeEvent([this]);\n }\n }\n }\n /** Sets the tabindex of the list option. */\n _setTabindex(value) {\n this._hostElement.setAttribute('tabindex', value + '');\n }\n static {\n this.ɵfac = function MatListOption_Factory(ɵt) {\n return new (ɵt || MatListOption)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(SELECTION_LIST), i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(MAT_RIPPLE_GLOBAL_OPTIONS, 8), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE$1, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatListOption,\n selectors: [[\"mat-list-option\"]],\n contentQueries: function MatListOption_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MatListItemLine, 5);\n i0.ɵɵcontentQuery(dirIndex, MatListItemTitle, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._lines = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._titles = _t);\n }\n },\n viewQuery: function MatListOption_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c2, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._unscopedContent = _t.first);\n }\n },\n hostAttrs: [\"role\", \"option\", 1, \"mat-mdc-list-item\", \"mat-mdc-list-option\", \"mdc-list-item\"],\n hostVars: 25,\n hostBindings: function MatListOption_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"blur\", function MatListOption_blur_HostBindingHandler() {\n return ctx._handleBlur();\n })(\"click\", function MatListOption_click_HostBindingHandler() {\n return ctx._toggleOnInteraction();\n });\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-selected\", ctx.selected);\n i0.ɵɵclassProp(\"mdc-list-item--selected\", ctx.selected && !ctx._selectionList.multiple && ctx._selectionList.hideSingleSelectionIndicator)(\"mdc-list-item--with-leading-avatar\", ctx._hasProjected(\"avatars\", \"before\"))(\"mdc-list-item--with-leading-icon\", ctx._hasProjected(\"icons\", \"before\"))(\"mdc-list-item--with-trailing-icon\", ctx._hasProjected(\"icons\", \"after\"))(\"mat-mdc-list-option-with-trailing-avatar\", ctx._hasProjected(\"avatars\", \"after\"))(\"mdc-list-item--with-leading-checkbox\", ctx._hasCheckboxAt(\"before\"))(\"mdc-list-item--with-trailing-checkbox\", ctx._hasCheckboxAt(\"after\"))(\"mdc-list-item--with-leading-radio\", ctx._hasRadioAt(\"before\"))(\"mdc-list-item--with-trailing-radio\", ctx._hasRadioAt(\"after\"))(\"mat-accent\", ctx.color !== \"primary\" && ctx.color !== \"warn\")(\"mat-warn\", ctx.color === \"warn\")(\"_mat-animation-noopable\", ctx._noopAnimations);\n }\n },\n inputs: {\n togglePosition: \"togglePosition\",\n checkboxPosition: \"checkboxPosition\",\n color: \"color\",\n value: \"value\",\n selected: \"selected\"\n },\n outputs: {\n selectedChange: \"selectedChange\"\n },\n exportAs: [\"matListOption\"],\n features: [i0.ɵɵProvidersFeature([{\n provide: MatListItemBase,\n useExisting: MatListOption\n }, {\n provide: LIST_OPTION,\n useExisting: MatListOption\n }]), i0.ɵɵInheritDefinitionFeature],\n ngContentSelectors: _c7,\n decls: 20,\n vars: 6,\n consts: [[\"icons\", \"\"], [\"checkbox\", \"\"], [\"radio\", \"\"], [\"unscopedContent\", \"\"], [\"class\", \"mdc-list-item__start mat-mdc-list-option-checkbox-before\", 4, \"ngIf\"], [\"class\", \"mdc-list-item__start mat-mdc-list-option-radio-before\", 4, \"ngIf\"], [3, \"ngIf\"], [1, \"mdc-list-item__content\"], [1, \"mat-mdc-list-item-unscoped-content\", 3, \"cdkObserveContent\"], [\"class\", \"mdc-list-item__end\", 4, \"ngIf\"], [1, \"mat-mdc-focus-indicator\"], [1, \"mdc-checkbox\"], [\"type\", \"checkbox\", 1, \"mdc-checkbox__native-control\", 3, \"checked\", \"disabled\"], [1, \"mdc-checkbox__background\"], [\"viewBox\", \"0 0 24 24\", \"aria-hidden\", \"true\", 1, \"mdc-checkbox__checkmark\"], [\"fill\", \"none\", \"d\", \"M1.73,12.91 8.1,19.28 22.79,4.59\", 1, \"mdc-checkbox__checkmark-path\"], [1, \"mdc-checkbox__mixedmark\"], [1, \"mdc-radio\"], [\"type\", \"radio\", 1, \"mdc-radio__native-control\", 3, \"checked\", \"disabled\"], [1, \"mdc-radio__background\"], [1, \"mdc-radio__outer-circle\"], [1, \"mdc-radio__inner-circle\"], [1, \"mdc-list-item__start\", \"mat-mdc-list-option-checkbox-before\"], [3, \"ngTemplateOutlet\"], [1, \"mdc-list-item__start\", \"mat-mdc-list-option-radio-before\"], [1, \"mdc-list-item__end\"]],\n template: function MatListOption_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵprojectionDef(_c6);\n i0.ɵɵtemplate(0, MatListOption_ng_template_0_Template, 1, 0, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor)(2, MatListOption_ng_template_2_Template, 6, 4, \"ng-template\", null, 1, i0.ɵɵtemplateRefExtractor)(4, MatListOption_ng_template_4_Template, 5, 4, \"ng-template\", null, 2, i0.ɵɵtemplateRefExtractor)(6, MatListOption_span_6_Template, 2, 1, \"span\", 4)(7, MatListOption_span_7_Template, 2, 1, \"span\", 5)(8, MatListOption_ng_template_8_Template, 1, 1, \"ng-template\", 6);\n i0.ɵɵelementStart(9, \"span\", 7);\n i0.ɵɵprojection(10);\n i0.ɵɵprojection(11, 1);\n i0.ɵɵelementStart(12, \"span\", 8, 3);\n i0.ɵɵlistener(\"cdkObserveContent\", function MatListOption_Template_span_cdkObserveContent_12_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._updateItemLines(true));\n });\n i0.ɵɵprojection(14, 2);\n i0.ɵɵelementEnd()();\n i0.ɵɵtemplate(15, MatListOption_span_15_Template, 2, 1, \"span\", 9)(16, MatListOption_span_16_Template, 2, 1, \"span\", 9)(17, MatListOption_ng_template_17_Template, 1, 1, \"ng-template\", 6);\n i0.ɵɵprojection(18, 3);\n i0.ɵɵelement(19, \"div\", 10);\n }\n if (rf & 2) {\n i0.ɵɵadvance(6);\n i0.ɵɵproperty(\"ngIf\", ctx._hasCheckboxAt(\"before\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx._hasRadioAt(\"before\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx._hasIconsOrAvatarsAt(\"before\"));\n i0.ɵɵadvance(7);\n i0.ɵɵproperty(\"ngIf\", ctx._hasCheckboxAt(\"after\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx._hasRadioAt(\"after\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx._hasIconsOrAvatarsAt(\"after\"));\n }\n },\n dependencies: [i3.CdkObserveContent, i3$1.NgIf, i3$1.NgTemplateOutlet],\n styles: [\".mat-mdc-list-option-with-trailing-avatar.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mat-mdc-list-option-with-trailing-avatar.mdc-list-item,.mat-mdc-list-option-with-trailing-avatar.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mat-mdc-list-option-with-trailing-avatar .mdc-list-item__end{margin-left:16px;margin-right:16px}[dir=rtl] .mat-mdc-list-option-with-trailing-avatar .mdc-list-item__end,.mat-mdc-list-option-with-trailing-avatar .mdc-list-item__end[dir=rtl]{margin-left:16px;margin-right:16px}.mat-mdc-list-option-with-trailing-avatar .mdc-list-item__end{width:40px;height:40px}.mat-mdc-list-option-with-trailing-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mat-mdc-list-option-with-trailing-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mat-mdc-list-option-with-trailing-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mat-mdc-list-option-with-trailing-avatar .mdc-list-item__end{border-radius:50%}.mat-mdc-list-option .mdc-touch-target-wrapper{display:inline}.mat-mdc-list-option .mdc-checkbox{display:inline-block;position:relative;flex:0 0 18px;box-sizing:content-box;width:18px;height:18px;line-height:0;white-space:nowrap;cursor:pointer;vertical-align:bottom}.mat-mdc-list-option .mdc-checkbox[hidden]{display:none}.mat-mdc-list-option .mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring,.mat-mdc-list-option .mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:100%;width:100%}@media screen and (forced-colors: active){.mat-mdc-list-option .mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring,.mat-mdc-list-option .mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring{border-color:CanvasText}}.mat-mdc-list-option .mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring::after,.mat-mdc-list-option .mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring::after{content:\\\"\\\";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mat-mdc-list-option .mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring::after,.mat-mdc-list-option .mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring::after{border-color:CanvasText}}@media all and (-ms-high-contrast: none){.mat-mdc-list-option .mdc-checkbox .mdc-checkbox__focus-ring{display:none}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-list-option .mdc-checkbox__mixedmark{margin:0 1px}}.mat-mdc-list-option .mdc-checkbox--disabled{cursor:default;pointer-events:none}.mat-mdc-list-option .mdc-checkbox__background{display:inline-flex;position:absolute;align-items:center;justify-content:center;box-sizing:border-box;width:18px;height:18px;border:2px solid currentColor;border-radius:2px;background-color:rgba(0,0,0,0);pointer-events:none;will-change:background-color,border-color}.mat-mdc-list-option .mdc-checkbox__checkmark{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;opacity:0}.mdc-checkbox--upgraded .mat-mdc-list-option .mdc-checkbox__checkmark{opacity:1}.mat-mdc-list-option .mdc-checkbox__checkmark-path{stroke:currentColor;stroke-width:3.12px;stroke-dashoffset:29.7833385;stroke-dasharray:29.7833385}.mat-mdc-list-option .mdc-checkbox__mixedmark{width:100%;height:0;transform:scaleX(0) rotate(0deg);border-width:1px;border-style:solid;opacity:0}.mat-mdc-list-option .mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark-path,.mat-mdc-list-option .mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__checkmark-path,.mat-mdc-list-option .mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__checkmark-path{stroke-dashoffset:0}.mat-mdc-list-option .mdc-checkbox__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit}.mat-mdc-list-option .mdc-checkbox__native-control:disabled{cursor:default;pointer-events:none}.mat-mdc-list-option .mdc-checkbox--touch{margin:calc((var(--mdc-checkbox-state-layer-size, 48px) - var(--mdc-checkbox-state-layer-size, 40px)) / 2)}.mat-mdc-list-option .mdc-checkbox--touch .mdc-checkbox__native-control{top:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 48px)) / 2);right:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 48px)) / 2);left:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 48px)) / 2);width:var(--mdc-checkbox-state-layer-size, 48px);height:var(--mdc-checkbox-state-layer-size, 48px)}.mat-mdc-list-option .mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark{opacity:1}.mat-mdc-list-option .mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__mixedmark{transform:scaleX(1) rotate(-45deg)}.mat-mdc-list-option .mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__checkmark,.mat-mdc-list-option .mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__checkmark{transform:rotate(45deg);opacity:0}.mat-mdc-list-option .mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__mixedmark,.mat-mdc-list-option .mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__mixedmark{transform:scaleX(1) rotate(0deg);opacity:1}.mat-mdc-list-option .mdc-radio{display:inline-block;position:relative;flex:0 0 auto;box-sizing:content-box;width:20px;height:20px;cursor:pointer;will-change:opacity,transform,border-color,color}.mat-mdc-list-option .mdc-radio[hidden]{display:none}.mat-mdc-list-option .mdc-radio__background{display:inline-block;position:relative;box-sizing:border-box;width:20px;height:20px}.mat-mdc-list-option .mdc-radio__background::before{position:absolute;transform:scale(0, 0);border-radius:50%;opacity:0;pointer-events:none;content:\\\"\\\"}.mat-mdc-list-option .mdc-radio__outer-circle{position:absolute;top:0;left:0;box-sizing:border-box;width:100%;height:100%;border-width:2px;border-style:solid;border-radius:50%}.mat-mdc-list-option .mdc-radio__inner-circle{position:absolute;top:0;left:0;box-sizing:border-box;width:100%;height:100%;transform:scale(0, 0);border-width:10px;border-style:solid;border-radius:50%}.mat-mdc-list-option .mdc-radio__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit;z-index:1}.mat-mdc-list-option .mdc-radio--touch{margin-top:4px;margin-bottom:4px;margin-right:4px;margin-left:4px}.mat-mdc-list-option .mdc-radio--touch .mdc-radio__native-control{top:calc((40px - 48px) / 2);right:calc((40px - 48px) / 2);left:calc((40px - 48px) / 2);width:48px;height:48px}.mat-mdc-list-option .mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__focus-ring,.mat-mdc-list-option .mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:100%;width:100%}@media screen and (forced-colors: active){.mat-mdc-list-option .mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__focus-ring,.mat-mdc-list-option .mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__focus-ring{border-color:CanvasText}}.mat-mdc-list-option .mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__focus-ring::after,.mat-mdc-list-option .mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__focus-ring::after{content:\\\"\\\";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mat-mdc-list-option .mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__focus-ring::after,.mat-mdc-list-option .mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__focus-ring::after{border-color:CanvasText}}.mat-mdc-list-option .mdc-radio--disabled{cursor:default;pointer-events:none}.mat-mdc-list-option .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__inner-circle{transform:scale(0.5)}.mat-mdc-list-option .mdc-radio__native-control:disabled+.mdc-radio__background,.mat-mdc-list-option [aria-disabled=true] .mdc-radio__native-control+.mdc-radio__background{cursor:default}.mat-mdc-list-option .mdc-radio__native-control:focus+.mdc-radio__background::before{transform:scale(1);opacity:.12}@keyframes mdc-checkbox-unchecked-checked-checkmark-path{0%,50%{stroke-dashoffset:29.7833385}50%{animation-timing-function:cubic-bezier(0, 0, 0.2, 1)}100%{stroke-dashoffset:0}}@keyframes mdc-checkbox-unchecked-indeterminate-mixedmark{0%,68.2%{transform:scaleX(0)}68.2%{animation-timing-function:cubic-bezier(0, 0, 0, 1)}100%{transform:scaleX(1)}}@keyframes mdc-checkbox-checked-unchecked-checkmark-path{from{animation-timing-function:cubic-bezier(0.4, 0, 1, 1);opacity:1;stroke-dashoffset:0}to{opacity:0;stroke-dashoffset:-29.7833385}}@keyframes mdc-checkbox-checked-indeterminate-checkmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(45deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-checked-checkmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(45deg);opacity:0}to{transform:rotate(360deg);opacity:1}}@keyframes mdc-checkbox-checked-indeterminate-mixedmark{from{animation-timing-function:mdc-animation-deceleration-curve-timing-function;transform:rotate(-45deg);opacity:0}to{transform:rotate(0deg);opacity:1}}@keyframes mdc-checkbox-indeterminate-checked-mixedmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(315deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-unchecked-mixedmark{0%{animation-timing-function:linear;transform:scaleX(1);opacity:1}32.8%,100%{transform:scaleX(0);opacity:0}}@media all and (-ms-high-contrast: none){.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox .mdc-checkbox__focus-ring{display:none}}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox__background{transition:background-color 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),border-color 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox__checkmark{transition:opacity 180ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox__checkmark-path{transition:stroke-dashoffset 180ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox__mixedmark{transition:opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox--anim-unchecked-checked .mdc-checkbox__background,.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__background,.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox--anim-checked-unchecked .mdc-checkbox__background,.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__background{animation-duration:180ms;animation-timing-function:linear}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox--anim-unchecked-checked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-unchecked-checked-checkmark-path 180ms linear 0s;transition:none}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear 0s;transition:none}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox--anim-checked-unchecked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-checked-unchecked-checkmark-path 90ms linear 0s;transition:none}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__checkmark{animation:mdc-checkbox-checked-indeterminate-checkmark 90ms linear 0s;transition:none}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-checked-indeterminate-mixedmark 90ms linear 0s;transition:none}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__checkmark{animation:mdc-checkbox-indeterminate-checked-checkmark 500ms linear 0s;transition:none}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-checked-mixedmark 500ms linear 0s;transition:none}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-unchecked-mixedmark 300ms linear 0s;transition:none}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background,.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background{transition:border-color 90ms 0ms cubic-bezier(0, 0, 0.2, 1),background-color 90ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark{transition:opacity 180ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 180ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__checkmark,.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__checkmark{transition:opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__background,.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__checkmark,.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__checkmark-path,.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__mixedmark{transition:none}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-radio__background::before{transition:opacity 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1),transform 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-radio__outer-circle{transition:border-color 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-radio__inner-circle{transition:transform 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1),border-color 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-radio__native-control:checked+.mdc-radio__background,.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-radio__native-control:disabled+.mdc-radio__background{transition:opacity 120ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__outer-circle{transition:border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__inner-circle{transition:transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1),border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__inner-circle{transition:transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1),border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-radio__native-control:focus+.mdc-radio__background::before{transition:opacity 120ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-list-option .mdc-checkbox{padding:calc((40px - 18px) / 2);padding:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px) / 2);margin:calc((40px - 40px) / 2);margin:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px)) / 2)}.mat-mdc-list-option .mdc-checkbox .mdc-checkbox__native-control[disabled]:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:rgba(0, 0, 0, 0.38);border-color:var(--mdc-checkbox-disabled-unselected-icon-color, rgba(0, 0, 0, 0.38));background-color:transparent}.mat-mdc-list-option .mdc-checkbox .mdc-checkbox__native-control[disabled]:checked~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox .mdc-checkbox__native-control[disabled]:indeterminate~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox .mdc-checkbox__native-control[data-indeterminate=true][disabled]~.mdc-checkbox__background{border-color:transparent;background-color:rgba(0, 0, 0, 0.38);background-color:var(--mdc-checkbox-disabled-selected-icon-color, rgba(0, 0, 0, 0.38))}.mat-mdc-list-option .mdc-checkbox .mdc-checkbox__native-control:enabled~.mdc-checkbox__background .mdc-checkbox__checkmark{color:#fff;color:var(--mdc-checkbox-selected-checkmark-color, \\\"#fff\\\")}.mat-mdc-list-option .mdc-checkbox .mdc-checkbox__native-control:enabled~.mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:#fff;border-color:var(--mdc-checkbox-selected-checkmark-color, \\\"#fff\\\")}.mat-mdc-list-option .mdc-checkbox .mdc-checkbox__native-control:disabled~.mdc-checkbox__background .mdc-checkbox__checkmark{color:#fff;color:var(--mdc-checkbox-disabled-selected-checkmark-color, #fff)}.mat-mdc-list-option .mdc-checkbox .mdc-checkbox__native-control:disabled~.mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:#fff;border-color:var(--mdc-checkbox-disabled-selected-checkmark-color, #fff)}.mat-mdc-list-option .mdc-checkbox .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:rgba(0, 0, 0, 0.54);border-color:var(--mdc-checkbox-unselected-icon-color, rgba(0, 0, 0, 0.54));background-color:transparent}.mat-mdc-list-option .mdc-checkbox .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:#f44336;border-color:var(--mdc-checkbox-selected-icon-color, #f44336);background-color:#f44336;background-color:var(--mdc-checkbox-selected-icon-color, #f44336)}@keyframes mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336{0%{border-color:rgba(0, 0, 0, 0.54);border-color:var(--mdc-checkbox-unselected-icon-color, rgba(0, 0, 0, 0.54));background-color:transparent}50%{border-color:#f44336;border-color:var(--mdc-checkbox-selected-icon-color, #f44336);background-color:#f44336;background-color:var(--mdc-checkbox-selected-icon-color, #f44336)}}@keyframes mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336{0%,80%{border-color:#f44336;border-color:var(--mdc-checkbox-selected-icon-color, #f44336);background-color:#f44336;background-color:var(--mdc-checkbox-selected-icon-color, #f44336)}100%{border-color:rgba(0, 0, 0, 0.54);border-color:var(--mdc-checkbox-unselected-icon-color, rgba(0, 0, 0, 0.54));background-color:transparent}}.mat-mdc-list-option .mdc-checkbox.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336}.mat-mdc-list-option .mdc-checkbox.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336}.mat-mdc-list-option .mdc-checkbox:hover .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:#212121;border-color:var(--mdc-checkbox-unselected-hover-icon-color, #212121);background-color:transparent}.mat-mdc-list-option .mdc-checkbox:hover .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox:hover .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox:hover .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:#f44336;border-color:var(--mdc-checkbox-selected-hover-icon-color, #f44336);background-color:#f44336;background-color:var(--mdc-checkbox-selected-hover-icon-color, #f44336)}@keyframes mdc-checkbox-fade-in-background-FF212121FFF4433600000000FFF44336{0%{border-color:#212121;border-color:var(--mdc-checkbox-unselected-hover-icon-color, #212121);background-color:transparent}50%{border-color:#f44336;border-color:var(--mdc-checkbox-selected-hover-icon-color, #f44336);background-color:#f44336;background-color:var(--mdc-checkbox-selected-hover-icon-color, #f44336)}}@keyframes mdc-checkbox-fade-out-background-FF212121FFF4433600000000FFF44336{0%,80%{border-color:#f44336;border-color:var(--mdc-checkbox-selected-hover-icon-color, #f44336);background-color:#f44336;background-color:var(--mdc-checkbox-selected-hover-icon-color, #f44336)}100%{border-color:#212121;border-color:var(--mdc-checkbox-unselected-hover-icon-color, #212121);background-color:transparent}}.mat-mdc-list-option .mdc-checkbox:hover.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox:hover.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-FF212121FFF4433600000000FFF44336}.mat-mdc-list-option .mdc-checkbox:hover.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox:hover.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-FF212121FFF4433600000000FFF44336}.mat-mdc-list-option .mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:#212121;border-color:var(--mdc-checkbox-unselected-focus-icon-color, #212121);background-color:transparent}.mat-mdc-list-option .mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:#f44336;border-color:var(--mdc-checkbox-selected-focus-icon-color, #f44336);background-color:#f44336;background-color:var(--mdc-checkbox-selected-focus-icon-color, #f44336)}@keyframes mdc-checkbox-fade-in-background-FF212121FFF4433600000000FFF44336{0%{border-color:#212121;border-color:var(--mdc-checkbox-unselected-focus-icon-color, #212121);background-color:transparent}50%{border-color:#f44336;border-color:var(--mdc-checkbox-selected-focus-icon-color, #f44336);background-color:#f44336;background-color:var(--mdc-checkbox-selected-focus-icon-color, #f44336)}}@keyframes mdc-checkbox-fade-out-background-FF212121FFF4433600000000FFF44336{0%,80%{border-color:#f44336;border-color:var(--mdc-checkbox-selected-focus-icon-color, #f44336);background-color:#f44336;background-color:var(--mdc-checkbox-selected-focus-icon-color, #f44336)}100%{border-color:#212121;border-color:var(--mdc-checkbox-unselected-focus-icon-color, #212121);background-color:transparent}}.mat-mdc-list-option .mdc-checkbox.mdc-ripple-upgraded--background-focused.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox.mdc-ripple-upgraded--background-focused.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox:not(.mdc-ripple-upgraded):focus.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox:not(.mdc-ripple-upgraded):focus.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-FF212121FFF4433600000000FFF44336}.mat-mdc-list-option .mdc-checkbox.mdc-ripple-upgraded--background-focused.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox.mdc-ripple-upgraded--background-focused.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox:not(.mdc-ripple-upgraded):focus.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox:not(.mdc-ripple-upgraded):focus.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-FF212121FFF4433600000000FFF44336}.mat-mdc-list-option .mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:rgba(0, 0, 0, 0.54);border-color:var(--mdc-checkbox-unselected-pressed-icon-color, rgba(0, 0, 0, 0.54));background-color:transparent}.mat-mdc-list-option .mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:#f44336;border-color:var(--mdc-checkbox-selected-pressed-icon-color, #f44336);background-color:#f44336;background-color:var(--mdc-checkbox-selected-pressed-icon-color, #f44336)}@keyframes mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336{0%{border-color:rgba(0, 0, 0, 0.54);border-color:var(--mdc-checkbox-unselected-pressed-icon-color, rgba(0, 0, 0, 0.54));background-color:transparent}50%{border-color:#f44336;border-color:var(--mdc-checkbox-selected-pressed-icon-color, #f44336);background-color:#f44336;background-color:var(--mdc-checkbox-selected-pressed-icon-color, #f44336)}}@keyframes mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336{0%,80%{border-color:#f44336;border-color:var(--mdc-checkbox-selected-pressed-icon-color, #f44336);background-color:#f44336;background-color:var(--mdc-checkbox-selected-pressed-icon-color, #f44336)}100%{border-color:rgba(0, 0, 0, 0.54);border-color:var(--mdc-checkbox-unselected-pressed-icon-color, rgba(0, 0, 0, 0.54));background-color:transparent}}.mat-mdc-list-option .mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336}.mat-mdc-list-option .mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336}.mat-mdc-list-option .mdc-checkbox .mdc-checkbox__ripple::before,.mat-mdc-list-option .mdc-checkbox .mdc-checkbox__ripple::after{background-color:black;background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, black)}.mat-mdc-list-option .mdc-checkbox:hover .mdc-checkbox__ripple::before,.mat-mdc-list-option .mdc-checkbox.mdc-ripple-surface--hover .mdc-checkbox__ripple::before{opacity:0.04;opacity:var(--mdc-checkbox-unselected-hover-state-layer-opacity, 0.04)}.mat-mdc-list-option .mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__ripple::before,.mat-mdc-list-option .mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__ripple::before{transition-duration:75ms;opacity:0.16;opacity:var(--mdc-checkbox-unselected-focus-state-layer-opacity, 0.16)}.mat-mdc-list-option .mdc-checkbox:not(.mdc-ripple-upgraded) .mdc-checkbox__ripple::after{transition:opacity 150ms linear}.mat-mdc-list-option .mdc-checkbox:not(.mdc-ripple-upgraded):active .mdc-checkbox__ripple::after{transition-duration:75ms;opacity:0.16;opacity:var(--mdc-checkbox-unselected-pressed-state-layer-opacity, 0.16)}.mat-mdc-list-option .mdc-checkbox.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-checkbox-unselected-pressed-state-layer-opacity, 0.16)}.mat-mdc-list-option .mdc-checkbox.mdc-checkbox--selected .mdc-checkbox__ripple::before,.mat-mdc-list-option .mdc-checkbox.mdc-checkbox--selected .mdc-checkbox__ripple::after{background-color:#f44336;background-color:var(--mdc-checkbox-selected-hover-state-layer-color, #f44336)}.mat-mdc-list-option .mdc-checkbox.mdc-checkbox--selected:hover .mdc-checkbox__ripple::before,.mat-mdc-list-option .mdc-checkbox.mdc-checkbox--selected.mdc-ripple-surface--hover .mdc-checkbox__ripple::before{opacity:0.04;opacity:var(--mdc-checkbox-selected-hover-state-layer-opacity, 0.04)}.mat-mdc-list-option .mdc-checkbox.mdc-checkbox--selected.mdc-ripple-upgraded--background-focused .mdc-checkbox__ripple::before,.mat-mdc-list-option .mdc-checkbox.mdc-checkbox--selected:not(.mdc-ripple-upgraded):focus .mdc-checkbox__ripple::before{transition-duration:75ms;opacity:0.16;opacity:var(--mdc-checkbox-selected-focus-state-layer-opacity, 0.16)}.mat-mdc-list-option .mdc-checkbox.mdc-checkbox--selected:not(.mdc-ripple-upgraded) .mdc-checkbox__ripple::after{transition:opacity 150ms linear}.mat-mdc-list-option .mdc-checkbox.mdc-checkbox--selected:not(.mdc-ripple-upgraded):active .mdc-checkbox__ripple::after{transition-duration:75ms;opacity:0.16;opacity:var(--mdc-checkbox-selected-pressed-state-layer-opacity, 0.16)}.mat-mdc-list-option .mdc-checkbox.mdc-checkbox--selected.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-checkbox-selected-pressed-state-layer-opacity, 0.16)}.mat-mdc-list-option .mdc-checkbox.mdc-ripple-upgraded--background-focused.mdc-checkbox--selected .mdc-checkbox__ripple::before,.mat-mdc-list-option .mdc-checkbox.mdc-ripple-upgraded--background-focused.mdc-checkbox--selected .mdc-checkbox__ripple::after{background-color:#f44336;background-color:var(--mdc-checkbox-selected-hover-state-layer-color, #f44336)}.mat-mdc-list-option .mdc-checkbox .mdc-checkbox__background{top:calc((40px - 18px) / 2);top:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px) / 2);left:calc((40px - 18px) / 2);left:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px) / 2)}.mat-mdc-list-option .mdc-checkbox .mdc-checkbox__native-control{top:calc((40px - 40px) / 2);top:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px)) / 2);right:calc((40px - 40px) / 2);right:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px)) / 2);left:calc((40px - 40px) / 2);left:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px)) / 2);width:40px;width:var(--mdc-checkbox-state-layer-size, 40px);height:40px;height:var(--mdc-checkbox-state-layer-size, 40px)}.mat-mdc-list-option .mdc-radio{padding:calc((40px - 20px) / 2);padding:calc((var(--mdc-radio-state-layer-size, 40px) - 20px) / 2)}.mat-mdc-list-option .mdc-radio [aria-disabled=true] .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-list-option .mdc-radio .mdc-radio__native-control:disabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:#000;border-color:var(--mdc-radio-disabled-selected-icon-color, #000)}.mat-mdc-list-option .mdc-radio [aria-disabled=true] .mdc-radio__native-control+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-list-option .mdc-radio .mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:#000;border-color:var(--mdc-radio-disabled-selected-icon-color, #000)}.mat-mdc-list-option .mdc-radio [aria-disabled=true] .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-list-option .mdc-radio .mdc-radio__native-control:disabled:checked+.mdc-radio__background .mdc-radio__outer-circle{opacity:0.38;opacity:var(--mdc-radio-disabled-selected-icon-opacity, 0.38)}.mat-mdc-list-option .mdc-radio [aria-disabled=true] .mdc-radio__native-control+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-list-option .mdc-radio .mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__inner-circle{opacity:0.38;opacity:var(--mdc-radio-disabled-selected-icon-opacity, 0.38)}.mat-mdc-list-option .mdc-radio [aria-disabled=true] .mdc-radio__native-control:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-list-option .mdc-radio .mdc-radio__native-control:disabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:#000;border-color:var(--mdc-radio-disabled-unselected-icon-color, #000)}.mat-mdc-list-option .mdc-radio [aria-disabled=true] .mdc-radio__native-control:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-list-option .mdc-radio .mdc-radio__native-control:disabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{opacity:0.38;opacity:var(--mdc-radio-disabled-unselected-icon-opacity, 0.38)}.mat-mdc-list-option .mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-list-option .mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:#f44336;border-color:var(--mdc-radio-selected-focus-icon-color, #f44336)}.mat-mdc-list-option .mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-list-option .mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:#f44336;border-color:var(--mdc-radio-selected-focus-icon-color, #f44336)}.mat-mdc-list-option .mdc-radio:hover .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:#f44336;border-color:var(--mdc-radio-selected-hover-icon-color, #f44336)}.mat-mdc-list-option .mdc-radio:hover .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:#f44336;border-color:var(--mdc-radio-selected-hover-icon-color, #f44336)}.mat-mdc-list-option .mdc-radio .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:#f44336;border-color:var(--mdc-radio-selected-icon-color, #f44336)}.mat-mdc-list-option .mdc-radio .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:#f44336;border-color:var(--mdc-radio-selected-icon-color, #f44336)}.mat-mdc-list-option .mdc-radio:not(:disabled):active .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:#f44336;border-color:var(--mdc-radio-selected-pressed-icon-color, #f44336)}.mat-mdc-list-option .mdc-radio:not(:disabled):active .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:#f44336;border-color:var(--mdc-radio-selected-pressed-icon-color, #f44336)}.mat-mdc-list-option .mdc-radio:hover .mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:#212121;border-color:var(--mdc-radio-unselected-hover-icon-color, #212121)}.mat-mdc-list-option .mdc-radio .mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:rgba(0, 0, 0, 0.54);border-color:var(--mdc-radio-unselected-icon-color, rgba(0, 0, 0, 0.54))}.mat-mdc-list-option .mdc-radio:not(:disabled):active .mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:rgba(0, 0, 0, 0.54);border-color:var(--mdc-radio-unselected-pressed-icon-color, rgba(0, 0, 0, 0.54))}.mat-mdc-list-option .mdc-radio .mdc-radio__background::before{top:calc(-1 * (40px - 20px) / 2);top:calc(-1 * (var(--mdc-radio-state-layer-size, 40px) - 20px) / 2);left:calc(-1 * (40px - 20px) / 2);left:calc(-1 * (var(--mdc-radio-state-layer-size, 40px) - 20px) / 2);width:40px;width:var(--mdc-radio-state-layer-size, 40px);height:40px;height:var(--mdc-radio-state-layer-size, 40px)}.mat-mdc-list-option .mdc-radio .mdc-radio__native-control{top:calc((40px - 40px) / 2);top:calc((var(--mdc-radio-state-layer-size, 40px) - var(--mdc-radio-state-layer-size, 40px)) / 2);right:calc((40px - 40px) / 2);right:calc((var(--mdc-radio-state-layer-size, 40px) - var(--mdc-radio-state-layer-size, 40px)) / 2);left:calc((40px - 40px) / 2);left:calc((var(--mdc-radio-state-layer-size, 40px) - var(--mdc-radio-state-layer-size, 40px)) / 2);width:40px;width:var(--mdc-radio-state-layer-size, 40px);height:40px;height:var(--mdc-radio-state-layer-size, 40px)}.mat-mdc-list-option .mdc-checkbox__native-control,.mat-mdc-list-option .mdc-radio__native-control{display:none}.cdk-high-contrast-active .mat-mdc-list-option.mdc-list-item--selected::after{content:\\\"\\\";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}.cdk-high-contrast-active .mat-mdc-list-option.mdc-list-item--selected [dir=rtl]::after{right:auto;left:16px}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatListOption, [{\n type: Component,\n args: [{\n selector: 'mat-list-option',\n exportAs: 'matListOption',\n host: {\n 'class': 'mat-mdc-list-item mat-mdc-list-option mdc-list-item',\n 'role': 'option',\n // As per MDC, only list items without checkbox or radio indicator should receive the\n // `--selected` class.\n '[class.mdc-list-item--selected]': 'selected && !_selectionList.multiple && _selectionList.hideSingleSelectionIndicator',\n // Based on the checkbox/radio position and whether there are icons or avatars, we apply MDC's\n // list-item `--leading` and `--trailing` classes.\n '[class.mdc-list-item--with-leading-avatar]': '_hasProjected(\"avatars\", \"before\")',\n '[class.mdc-list-item--with-leading-icon]': '_hasProjected(\"icons\", \"before\")',\n '[class.mdc-list-item--with-trailing-icon]': '_hasProjected(\"icons\", \"after\")',\n '[class.mat-mdc-list-option-with-trailing-avatar]': '_hasProjected(\"avatars\", \"after\")',\n // Based on the checkbox/radio position, we apply the `--leading` or `--trailing` MDC classes\n // which ensure that the checkbox/radio is positioned correctly within the list item.\n '[class.mdc-list-item--with-leading-checkbox]': '_hasCheckboxAt(\"before\")',\n '[class.mdc-list-item--with-trailing-checkbox]': '_hasCheckboxAt(\"after\")',\n '[class.mdc-list-item--with-leading-radio]': '_hasRadioAt(\"before\")',\n '[class.mdc-list-item--with-trailing-radio]': '_hasRadioAt(\"after\")',\n '[class.mat-accent]': 'color !== \"primary\" && color !== \"warn\"',\n '[class.mat-warn]': 'color === \"warn\"',\n '[class._mat-animation-noopable]': '_noopAnimations',\n '[attr.aria-selected]': 'selected',\n '(blur)': '_handleBlur()',\n '(click)': '_toggleOnInteraction()'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{\n provide: MatListItemBase,\n useExisting: MatListOption\n }, {\n provide: LIST_OPTION,\n useExisting: MatListOption\n }],\n template: \"\\n\\n \\n \\n\\n\\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n\\n\\n \\n \\n \\n \\n \\n \\n \\n\\n\\n\\n\\n \\n\\n\\n\\n \\n\\n\\n\\n \\n\\n\\n\\n\\n \\n \\n \\n \\n \\n\\n\\n\\n\\n \\n\\n\\n\\n \\n\\n\\n\\n \\n\\n\\n\\n\\n\\n\\n\\n\",\n styles: [\".mat-mdc-list-option-with-trailing-avatar.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mat-mdc-list-option-with-trailing-avatar.mdc-list-item,.mat-mdc-list-option-with-trailing-avatar.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mat-mdc-list-option-with-trailing-avatar .mdc-list-item__end{margin-left:16px;margin-right:16px}[dir=rtl] .mat-mdc-list-option-with-trailing-avatar .mdc-list-item__end,.mat-mdc-list-option-with-trailing-avatar .mdc-list-item__end[dir=rtl]{margin-left:16px;margin-right:16px}.mat-mdc-list-option-with-trailing-avatar .mdc-list-item__end{width:40px;height:40px}.mat-mdc-list-option-with-trailing-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mat-mdc-list-option-with-trailing-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mat-mdc-list-option-with-trailing-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mat-mdc-list-option-with-trailing-avatar .mdc-list-item__end{border-radius:50%}.mat-mdc-list-option .mdc-touch-target-wrapper{display:inline}.mat-mdc-list-option .mdc-checkbox{display:inline-block;position:relative;flex:0 0 18px;box-sizing:content-box;width:18px;height:18px;line-height:0;white-space:nowrap;cursor:pointer;vertical-align:bottom}.mat-mdc-list-option .mdc-checkbox[hidden]{display:none}.mat-mdc-list-option .mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring,.mat-mdc-list-option .mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:100%;width:100%}@media screen and (forced-colors: active){.mat-mdc-list-option .mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring,.mat-mdc-list-option .mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring{border-color:CanvasText}}.mat-mdc-list-option .mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring::after,.mat-mdc-list-option .mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring::after{content:\\\"\\\";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mat-mdc-list-option .mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__focus-ring::after,.mat-mdc-list-option .mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__focus-ring::after{border-color:CanvasText}}@media all and (-ms-high-contrast: none){.mat-mdc-list-option .mdc-checkbox .mdc-checkbox__focus-ring{display:none}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-list-option .mdc-checkbox__mixedmark{margin:0 1px}}.mat-mdc-list-option .mdc-checkbox--disabled{cursor:default;pointer-events:none}.mat-mdc-list-option .mdc-checkbox__background{display:inline-flex;position:absolute;align-items:center;justify-content:center;box-sizing:border-box;width:18px;height:18px;border:2px solid currentColor;border-radius:2px;background-color:rgba(0,0,0,0);pointer-events:none;will-change:background-color,border-color}.mat-mdc-list-option .mdc-checkbox__checkmark{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;opacity:0}.mdc-checkbox--upgraded .mat-mdc-list-option .mdc-checkbox__checkmark{opacity:1}.mat-mdc-list-option .mdc-checkbox__checkmark-path{stroke:currentColor;stroke-width:3.12px;stroke-dashoffset:29.7833385;stroke-dasharray:29.7833385}.mat-mdc-list-option .mdc-checkbox__mixedmark{width:100%;height:0;transform:scaleX(0) rotate(0deg);border-width:1px;border-style:solid;opacity:0}.mat-mdc-list-option .mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark-path,.mat-mdc-list-option .mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__checkmark-path,.mat-mdc-list-option .mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__checkmark-path{stroke-dashoffset:0}.mat-mdc-list-option .mdc-checkbox__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit}.mat-mdc-list-option .mdc-checkbox__native-control:disabled{cursor:default;pointer-events:none}.mat-mdc-list-option .mdc-checkbox--touch{margin:calc((var(--mdc-checkbox-state-layer-size, 48px) - var(--mdc-checkbox-state-layer-size, 40px)) / 2)}.mat-mdc-list-option .mdc-checkbox--touch .mdc-checkbox__native-control{top:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 48px)) / 2);right:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 48px)) / 2);left:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 48px)) / 2);width:var(--mdc-checkbox-state-layer-size, 48px);height:var(--mdc-checkbox-state-layer-size, 48px)}.mat-mdc-list-option .mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark{opacity:1}.mat-mdc-list-option .mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__mixedmark{transform:scaleX(1) rotate(-45deg)}.mat-mdc-list-option .mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__checkmark,.mat-mdc-list-option .mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__checkmark{transform:rotate(45deg);opacity:0}.mat-mdc-list-option .mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__mixedmark,.mat-mdc-list-option .mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__mixedmark{transform:scaleX(1) rotate(0deg);opacity:1}.mat-mdc-list-option .mdc-radio{display:inline-block;position:relative;flex:0 0 auto;box-sizing:content-box;width:20px;height:20px;cursor:pointer;will-change:opacity,transform,border-color,color}.mat-mdc-list-option .mdc-radio[hidden]{display:none}.mat-mdc-list-option .mdc-radio__background{display:inline-block;position:relative;box-sizing:border-box;width:20px;height:20px}.mat-mdc-list-option .mdc-radio__background::before{position:absolute;transform:scale(0, 0);border-radius:50%;opacity:0;pointer-events:none;content:\\\"\\\"}.mat-mdc-list-option .mdc-radio__outer-circle{position:absolute;top:0;left:0;box-sizing:border-box;width:100%;height:100%;border-width:2px;border-style:solid;border-radius:50%}.mat-mdc-list-option .mdc-radio__inner-circle{position:absolute;top:0;left:0;box-sizing:border-box;width:100%;height:100%;transform:scale(0, 0);border-width:10px;border-style:solid;border-radius:50%}.mat-mdc-list-option .mdc-radio__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit;z-index:1}.mat-mdc-list-option .mdc-radio--touch{margin-top:4px;margin-bottom:4px;margin-right:4px;margin-left:4px}.mat-mdc-list-option .mdc-radio--touch .mdc-radio__native-control{top:calc((40px - 48px) / 2);right:calc((40px - 48px) / 2);left:calc((40px - 48px) / 2);width:48px;height:48px}.mat-mdc-list-option .mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__focus-ring,.mat-mdc-list-option .mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:100%;width:100%}@media screen and (forced-colors: active){.mat-mdc-list-option .mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__focus-ring,.mat-mdc-list-option .mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__focus-ring{border-color:CanvasText}}.mat-mdc-list-option .mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__focus-ring::after,.mat-mdc-list-option .mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__focus-ring::after{content:\\\"\\\";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mat-mdc-list-option .mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__focus-ring::after,.mat-mdc-list-option .mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__focus-ring::after{border-color:CanvasText}}.mat-mdc-list-option .mdc-radio--disabled{cursor:default;pointer-events:none}.mat-mdc-list-option .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__inner-circle{transform:scale(0.5)}.mat-mdc-list-option .mdc-radio__native-control:disabled+.mdc-radio__background,.mat-mdc-list-option [aria-disabled=true] .mdc-radio__native-control+.mdc-radio__background{cursor:default}.mat-mdc-list-option .mdc-radio__native-control:focus+.mdc-radio__background::before{transform:scale(1);opacity:.12}@keyframes mdc-checkbox-unchecked-checked-checkmark-path{0%,50%{stroke-dashoffset:29.7833385}50%{animation-timing-function:cubic-bezier(0, 0, 0.2, 1)}100%{stroke-dashoffset:0}}@keyframes mdc-checkbox-unchecked-indeterminate-mixedmark{0%,68.2%{transform:scaleX(0)}68.2%{animation-timing-function:cubic-bezier(0, 0, 0, 1)}100%{transform:scaleX(1)}}@keyframes mdc-checkbox-checked-unchecked-checkmark-path{from{animation-timing-function:cubic-bezier(0.4, 0, 1, 1);opacity:1;stroke-dashoffset:0}to{opacity:0;stroke-dashoffset:-29.7833385}}@keyframes mdc-checkbox-checked-indeterminate-checkmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(45deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-checked-checkmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(45deg);opacity:0}to{transform:rotate(360deg);opacity:1}}@keyframes mdc-checkbox-checked-indeterminate-mixedmark{from{animation-timing-function:mdc-animation-deceleration-curve-timing-function;transform:rotate(-45deg);opacity:0}to{transform:rotate(0deg);opacity:1}}@keyframes mdc-checkbox-indeterminate-checked-mixedmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(315deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-unchecked-mixedmark{0%{animation-timing-function:linear;transform:scaleX(1);opacity:1}32.8%,100%{transform:scaleX(0);opacity:0}}@media all and (-ms-high-contrast: none){.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox .mdc-checkbox__focus-ring{display:none}}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox__background{transition:background-color 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),border-color 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox__checkmark{transition:opacity 180ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox__checkmark-path{transition:stroke-dashoffset 180ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox__mixedmark{transition:opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox--anim-unchecked-checked .mdc-checkbox__background,.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__background,.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox--anim-checked-unchecked .mdc-checkbox__background,.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__background{animation-duration:180ms;animation-timing-function:linear}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox--anim-unchecked-checked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-unchecked-checked-checkmark-path 180ms linear 0s;transition:none}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear 0s;transition:none}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox--anim-checked-unchecked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-checked-unchecked-checkmark-path 90ms linear 0s;transition:none}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__checkmark{animation:mdc-checkbox-checked-indeterminate-checkmark 90ms linear 0s;transition:none}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-checked-indeterminate-mixedmark 90ms linear 0s;transition:none}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__checkmark{animation:mdc-checkbox-indeterminate-checked-checkmark 500ms linear 0s;transition:none}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-checked-mixedmark 500ms linear 0s;transition:none}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-unchecked-mixedmark 300ms linear 0s;transition:none}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background,.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background{transition:border-color 90ms 0ms cubic-bezier(0, 0, 0.2, 1),background-color 90ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox__native-control:checked~.mdc-checkbox__background .mdc-checkbox__checkmark{transition:opacity 180ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 180ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background .mdc-checkbox__checkmark,.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox__native-control[data-indeterminate=true]~.mdc-checkbox__background .mdc-checkbox__checkmark{transition:opacity 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__background,.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__checkmark,.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__checkmark-path,.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-checkbox.mdc-checkbox--upgraded .mdc-checkbox__mixedmark{transition:none}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-radio__background::before{transition:opacity 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1),transform 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-radio__outer-circle{transition:border-color 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-radio__inner-circle{transition:transform 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1),border-color 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-radio__native-control:checked+.mdc-radio__background,.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-radio__native-control:disabled+.mdc-radio__background{transition:opacity 120ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__outer-circle{transition:border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__inner-circle{transition:transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1),border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__inner-circle{transition:transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1),border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-list-option:not(._mat-animation-noopable) .mdc-radio__native-control:focus+.mdc-radio__background::before{transition:opacity 120ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-list-option .mdc-checkbox{padding:calc((40px - 18px) / 2);padding:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px) / 2);margin:calc((40px - 40px) / 2);margin:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px)) / 2)}.mat-mdc-list-option .mdc-checkbox .mdc-checkbox__native-control[disabled]:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:rgba(0, 0, 0, 0.38);border-color:var(--mdc-checkbox-disabled-unselected-icon-color, rgba(0, 0, 0, 0.38));background-color:transparent}.mat-mdc-list-option .mdc-checkbox .mdc-checkbox__native-control[disabled]:checked~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox .mdc-checkbox__native-control[disabled]:indeterminate~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox .mdc-checkbox__native-control[data-indeterminate=true][disabled]~.mdc-checkbox__background{border-color:transparent;background-color:rgba(0, 0, 0, 0.38);background-color:var(--mdc-checkbox-disabled-selected-icon-color, rgba(0, 0, 0, 0.38))}.mat-mdc-list-option .mdc-checkbox .mdc-checkbox__native-control:enabled~.mdc-checkbox__background .mdc-checkbox__checkmark{color:#fff;color:var(--mdc-checkbox-selected-checkmark-color, \\\"#fff\\\")}.mat-mdc-list-option .mdc-checkbox .mdc-checkbox__native-control:enabled~.mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:#fff;border-color:var(--mdc-checkbox-selected-checkmark-color, \\\"#fff\\\")}.mat-mdc-list-option .mdc-checkbox .mdc-checkbox__native-control:disabled~.mdc-checkbox__background .mdc-checkbox__checkmark{color:#fff;color:var(--mdc-checkbox-disabled-selected-checkmark-color, #fff)}.mat-mdc-list-option .mdc-checkbox .mdc-checkbox__native-control:disabled~.mdc-checkbox__background .mdc-checkbox__mixedmark{border-color:#fff;border-color:var(--mdc-checkbox-disabled-selected-checkmark-color, #fff)}.mat-mdc-list-option .mdc-checkbox .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:rgba(0, 0, 0, 0.54);border-color:var(--mdc-checkbox-unselected-icon-color, rgba(0, 0, 0, 0.54));background-color:transparent}.mat-mdc-list-option .mdc-checkbox .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:#f44336;border-color:var(--mdc-checkbox-selected-icon-color, #f44336);background-color:#f44336;background-color:var(--mdc-checkbox-selected-icon-color, #f44336)}@keyframes mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336{0%{border-color:rgba(0, 0, 0, 0.54);border-color:var(--mdc-checkbox-unselected-icon-color, rgba(0, 0, 0, 0.54));background-color:transparent}50%{border-color:#f44336;border-color:var(--mdc-checkbox-selected-icon-color, #f44336);background-color:#f44336;background-color:var(--mdc-checkbox-selected-icon-color, #f44336)}}@keyframes mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336{0%,80%{border-color:#f44336;border-color:var(--mdc-checkbox-selected-icon-color, #f44336);background-color:#f44336;background-color:var(--mdc-checkbox-selected-icon-color, #f44336)}100%{border-color:rgba(0, 0, 0, 0.54);border-color:var(--mdc-checkbox-unselected-icon-color, rgba(0, 0, 0, 0.54));background-color:transparent}}.mat-mdc-list-option .mdc-checkbox.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336}.mat-mdc-list-option .mdc-checkbox.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336}.mat-mdc-list-option .mdc-checkbox:hover .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:#212121;border-color:var(--mdc-checkbox-unselected-hover-icon-color, #212121);background-color:transparent}.mat-mdc-list-option .mdc-checkbox:hover .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox:hover .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox:hover .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:#f44336;border-color:var(--mdc-checkbox-selected-hover-icon-color, #f44336);background-color:#f44336;background-color:var(--mdc-checkbox-selected-hover-icon-color, #f44336)}@keyframes mdc-checkbox-fade-in-background-FF212121FFF4433600000000FFF44336{0%{border-color:#212121;border-color:var(--mdc-checkbox-unselected-hover-icon-color, #212121);background-color:transparent}50%{border-color:#f44336;border-color:var(--mdc-checkbox-selected-hover-icon-color, #f44336);background-color:#f44336;background-color:var(--mdc-checkbox-selected-hover-icon-color, #f44336)}}@keyframes mdc-checkbox-fade-out-background-FF212121FFF4433600000000FFF44336{0%,80%{border-color:#f44336;border-color:var(--mdc-checkbox-selected-hover-icon-color, #f44336);background-color:#f44336;background-color:var(--mdc-checkbox-selected-hover-icon-color, #f44336)}100%{border-color:#212121;border-color:var(--mdc-checkbox-unselected-hover-icon-color, #212121);background-color:transparent}}.mat-mdc-list-option .mdc-checkbox:hover.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox:hover.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-FF212121FFF4433600000000FFF44336}.mat-mdc-list-option .mdc-checkbox:hover.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox:hover.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-FF212121FFF4433600000000FFF44336}.mat-mdc-list-option .mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:#212121;border-color:var(--mdc-checkbox-unselected-focus-icon-color, #212121);background-color:transparent}.mat-mdc-list-option .mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:#f44336;border-color:var(--mdc-checkbox-selected-focus-icon-color, #f44336);background-color:#f44336;background-color:var(--mdc-checkbox-selected-focus-icon-color, #f44336)}@keyframes mdc-checkbox-fade-in-background-FF212121FFF4433600000000FFF44336{0%{border-color:#212121;border-color:var(--mdc-checkbox-unselected-focus-icon-color, #212121);background-color:transparent}50%{border-color:#f44336;border-color:var(--mdc-checkbox-selected-focus-icon-color, #f44336);background-color:#f44336;background-color:var(--mdc-checkbox-selected-focus-icon-color, #f44336)}}@keyframes mdc-checkbox-fade-out-background-FF212121FFF4433600000000FFF44336{0%,80%{border-color:#f44336;border-color:var(--mdc-checkbox-selected-focus-icon-color, #f44336);background-color:#f44336;background-color:var(--mdc-checkbox-selected-focus-icon-color, #f44336)}100%{border-color:#212121;border-color:var(--mdc-checkbox-unselected-focus-icon-color, #212121);background-color:transparent}}.mat-mdc-list-option .mdc-checkbox.mdc-ripple-upgraded--background-focused.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox.mdc-ripple-upgraded--background-focused.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox:not(.mdc-ripple-upgraded):focus.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox:not(.mdc-ripple-upgraded):focus.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-FF212121FFF4433600000000FFF44336}.mat-mdc-list-option .mdc-checkbox.mdc-ripple-upgraded--background-focused.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox.mdc-ripple-upgraded--background-focused.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox:not(.mdc-ripple-upgraded):focus.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox:not(.mdc-ripple-upgraded):focus.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-FF212121FFF4433600000000FFF44336}.mat-mdc-list-option .mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background{border-color:rgba(0, 0, 0, 0.54);border-color:var(--mdc-checkbox-unselected-pressed-icon-color, rgba(0, 0, 0, 0.54));background-color:transparent}.mat-mdc-list-option .mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox:not(:disabled):active .mdc-checkbox__native-control[data-indeterminate=true]:enabled~.mdc-checkbox__background{border-color:#f44336;border-color:var(--mdc-checkbox-selected-pressed-icon-color, #f44336);background-color:#f44336;background-color:var(--mdc-checkbox-selected-pressed-icon-color, #f44336)}@keyframes mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336{0%{border-color:rgba(0, 0, 0, 0.54);border-color:var(--mdc-checkbox-unselected-pressed-icon-color, rgba(0, 0, 0, 0.54));background-color:transparent}50%{border-color:#f44336;border-color:var(--mdc-checkbox-selected-pressed-icon-color, #f44336);background-color:#f44336;background-color:var(--mdc-checkbox-selected-pressed-icon-color, #f44336)}}@keyframes mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336{0%,80%{border-color:#f44336;border-color:var(--mdc-checkbox-selected-pressed-icon-color, #f44336);background-color:#f44336;background-color:var(--mdc-checkbox-selected-pressed-icon-color, #f44336)}100%{border-color:rgba(0, 0, 0, 0.54);border-color:var(--mdc-checkbox-unselected-pressed-icon-color, rgba(0, 0, 0, 0.54));background-color:transparent}}.mat-mdc-list-option .mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-in-background-8A000000FFF4433600000000FFF44336}.mat-mdc-list-option .mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background,.mat-mdc-list-option .mdc-checkbox:not(:disabled):active.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__native-control:enabled~.mdc-checkbox__background{animation-name:mdc-checkbox-fade-out-background-8A000000FFF4433600000000FFF44336}.mat-mdc-list-option .mdc-checkbox .mdc-checkbox__ripple::before,.mat-mdc-list-option .mdc-checkbox .mdc-checkbox__ripple::after{background-color:black;background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, black)}.mat-mdc-list-option .mdc-checkbox:hover .mdc-checkbox__ripple::before,.mat-mdc-list-option .mdc-checkbox.mdc-ripple-surface--hover .mdc-checkbox__ripple::before{opacity:0.04;opacity:var(--mdc-checkbox-unselected-hover-state-layer-opacity, 0.04)}.mat-mdc-list-option .mdc-checkbox.mdc-ripple-upgraded--background-focused .mdc-checkbox__ripple::before,.mat-mdc-list-option .mdc-checkbox:not(.mdc-ripple-upgraded):focus .mdc-checkbox__ripple::before{transition-duration:75ms;opacity:0.16;opacity:var(--mdc-checkbox-unselected-focus-state-layer-opacity, 0.16)}.mat-mdc-list-option .mdc-checkbox:not(.mdc-ripple-upgraded) .mdc-checkbox__ripple::after{transition:opacity 150ms linear}.mat-mdc-list-option .mdc-checkbox:not(.mdc-ripple-upgraded):active .mdc-checkbox__ripple::after{transition-duration:75ms;opacity:0.16;opacity:var(--mdc-checkbox-unselected-pressed-state-layer-opacity, 0.16)}.mat-mdc-list-option .mdc-checkbox.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-checkbox-unselected-pressed-state-layer-opacity, 0.16)}.mat-mdc-list-option .mdc-checkbox.mdc-checkbox--selected .mdc-checkbox__ripple::before,.mat-mdc-list-option .mdc-checkbox.mdc-checkbox--selected .mdc-checkbox__ripple::after{background-color:#f44336;background-color:var(--mdc-checkbox-selected-hover-state-layer-color, #f44336)}.mat-mdc-list-option .mdc-checkbox.mdc-checkbox--selected:hover .mdc-checkbox__ripple::before,.mat-mdc-list-option .mdc-checkbox.mdc-checkbox--selected.mdc-ripple-surface--hover .mdc-checkbox__ripple::before{opacity:0.04;opacity:var(--mdc-checkbox-selected-hover-state-layer-opacity, 0.04)}.mat-mdc-list-option .mdc-checkbox.mdc-checkbox--selected.mdc-ripple-upgraded--background-focused .mdc-checkbox__ripple::before,.mat-mdc-list-option .mdc-checkbox.mdc-checkbox--selected:not(.mdc-ripple-upgraded):focus .mdc-checkbox__ripple::before{transition-duration:75ms;opacity:0.16;opacity:var(--mdc-checkbox-selected-focus-state-layer-opacity, 0.16)}.mat-mdc-list-option .mdc-checkbox.mdc-checkbox--selected:not(.mdc-ripple-upgraded) .mdc-checkbox__ripple::after{transition:opacity 150ms linear}.mat-mdc-list-option .mdc-checkbox.mdc-checkbox--selected:not(.mdc-ripple-upgraded):active .mdc-checkbox__ripple::after{transition-duration:75ms;opacity:0.16;opacity:var(--mdc-checkbox-selected-pressed-state-layer-opacity, 0.16)}.mat-mdc-list-option .mdc-checkbox.mdc-checkbox--selected.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-checkbox-selected-pressed-state-layer-opacity, 0.16)}.mat-mdc-list-option .mdc-checkbox.mdc-ripple-upgraded--background-focused.mdc-checkbox--selected .mdc-checkbox__ripple::before,.mat-mdc-list-option .mdc-checkbox.mdc-ripple-upgraded--background-focused.mdc-checkbox--selected .mdc-checkbox__ripple::after{background-color:#f44336;background-color:var(--mdc-checkbox-selected-hover-state-layer-color, #f44336)}.mat-mdc-list-option .mdc-checkbox .mdc-checkbox__background{top:calc((40px - 18px) / 2);top:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px) / 2);left:calc((40px - 18px) / 2);left:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px) / 2)}.mat-mdc-list-option .mdc-checkbox .mdc-checkbox__native-control{top:calc((40px - 40px) / 2);top:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px)) / 2);right:calc((40px - 40px) / 2);right:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px)) / 2);left:calc((40px - 40px) / 2);left:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px)) / 2);width:40px;width:var(--mdc-checkbox-state-layer-size, 40px);height:40px;height:var(--mdc-checkbox-state-layer-size, 40px)}.mat-mdc-list-option .mdc-radio{padding:calc((40px - 20px) / 2);padding:calc((var(--mdc-radio-state-layer-size, 40px) - 20px) / 2)}.mat-mdc-list-option .mdc-radio [aria-disabled=true] .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-list-option .mdc-radio .mdc-radio__native-control:disabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:#000;border-color:var(--mdc-radio-disabled-selected-icon-color, #000)}.mat-mdc-list-option .mdc-radio [aria-disabled=true] .mdc-radio__native-control+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-list-option .mdc-radio .mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:#000;border-color:var(--mdc-radio-disabled-selected-icon-color, #000)}.mat-mdc-list-option .mdc-radio [aria-disabled=true] .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-list-option .mdc-radio .mdc-radio__native-control:disabled:checked+.mdc-radio__background .mdc-radio__outer-circle{opacity:0.38;opacity:var(--mdc-radio-disabled-selected-icon-opacity, 0.38)}.mat-mdc-list-option .mdc-radio [aria-disabled=true] .mdc-radio__native-control+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-list-option .mdc-radio .mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__inner-circle{opacity:0.38;opacity:var(--mdc-radio-disabled-selected-icon-opacity, 0.38)}.mat-mdc-list-option .mdc-radio [aria-disabled=true] .mdc-radio__native-control:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-list-option .mdc-radio .mdc-radio__native-control:disabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:#000;border-color:var(--mdc-radio-disabled-unselected-icon-color, #000)}.mat-mdc-list-option .mdc-radio [aria-disabled=true] .mdc-radio__native-control:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-list-option .mdc-radio .mdc-radio__native-control:disabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{opacity:0.38;opacity:var(--mdc-radio-disabled-unselected-icon-opacity, 0.38)}.mat-mdc-list-option .mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-list-option .mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:#f44336;border-color:var(--mdc-radio-selected-focus-icon-color, #f44336)}.mat-mdc-list-option .mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-list-option .mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:#f44336;border-color:var(--mdc-radio-selected-focus-icon-color, #f44336)}.mat-mdc-list-option .mdc-radio:hover .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:#f44336;border-color:var(--mdc-radio-selected-hover-icon-color, #f44336)}.mat-mdc-list-option .mdc-radio:hover .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:#f44336;border-color:var(--mdc-radio-selected-hover-icon-color, #f44336)}.mat-mdc-list-option .mdc-radio .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:#f44336;border-color:var(--mdc-radio-selected-icon-color, #f44336)}.mat-mdc-list-option .mdc-radio .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:#f44336;border-color:var(--mdc-radio-selected-icon-color, #f44336)}.mat-mdc-list-option .mdc-radio:not(:disabled):active .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:#f44336;border-color:var(--mdc-radio-selected-pressed-icon-color, #f44336)}.mat-mdc-list-option .mdc-radio:not(:disabled):active .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:#f44336;border-color:var(--mdc-radio-selected-pressed-icon-color, #f44336)}.mat-mdc-list-option .mdc-radio:hover .mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:#212121;border-color:var(--mdc-radio-unselected-hover-icon-color, #212121)}.mat-mdc-list-option .mdc-radio .mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:rgba(0, 0, 0, 0.54);border-color:var(--mdc-radio-unselected-icon-color, rgba(0, 0, 0, 0.54))}.mat-mdc-list-option .mdc-radio:not(:disabled):active .mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:rgba(0, 0, 0, 0.54);border-color:var(--mdc-radio-unselected-pressed-icon-color, rgba(0, 0, 0, 0.54))}.mat-mdc-list-option .mdc-radio .mdc-radio__background::before{top:calc(-1 * (40px - 20px) / 2);top:calc(-1 * (var(--mdc-radio-state-layer-size, 40px) - 20px) / 2);left:calc(-1 * (40px - 20px) / 2);left:calc(-1 * (var(--mdc-radio-state-layer-size, 40px) - 20px) / 2);width:40px;width:var(--mdc-radio-state-layer-size, 40px);height:40px;height:var(--mdc-radio-state-layer-size, 40px)}.mat-mdc-list-option .mdc-radio .mdc-radio__native-control{top:calc((40px - 40px) / 2);top:calc((var(--mdc-radio-state-layer-size, 40px) - var(--mdc-radio-state-layer-size, 40px)) / 2);right:calc((40px - 40px) / 2);right:calc((var(--mdc-radio-state-layer-size, 40px) - var(--mdc-radio-state-layer-size, 40px)) / 2);left:calc((40px - 40px) / 2);left:calc((var(--mdc-radio-state-layer-size, 40px) - var(--mdc-radio-state-layer-size, 40px)) / 2);width:40px;width:var(--mdc-radio-state-layer-size, 40px);height:40px;height:var(--mdc-radio-state-layer-size, 40px)}.mat-mdc-list-option .mdc-checkbox__native-control,.mat-mdc-list-option .mdc-radio__native-control{display:none}.cdk-high-contrast-active .mat-mdc-list-option.mdc-list-item--selected::after{content:\\\"\\\";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}.cdk-high-contrast-active .mat-mdc-list-option.mdc-list-item--selected [dir=rtl]::after{right:auto;left:16px}\"]\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i0.NgZone\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [SELECTION_LIST]\n }]\n }, {\n type: i1.Platform\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_RIPPLE_GLOBAL_OPTIONS]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE$1]\n }]\n }];\n }, {\n _lines: [{\n type: ContentChildren,\n args: [MatListItemLine, {\n descendants: true\n }]\n }],\n _titles: [{\n type: ContentChildren,\n args: [MatListItemTitle, {\n descendants: true\n }]\n }],\n _unscopedContent: [{\n type: ViewChild,\n args: ['unscopedContent']\n }],\n selectedChange: [{\n type: Output\n }],\n togglePosition: [{\n type: Input\n }],\n checkboxPosition: [{\n type: Input\n }],\n color: [{\n type: Input\n }],\n value: [{\n type: Input\n }],\n selected: [{\n type: Input\n }]\n });\n})();\n\n/**\n * Directive whose purpose is to add the mat- CSS styling to this selector.\n * @docs-private\n */\nclass MatListSubheaderCssMatStyler {\n static {\n this.ɵfac = function MatListSubheaderCssMatStyler_Factory(ɵt) {\n return new (ɵt || MatListSubheaderCssMatStyler)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatListSubheaderCssMatStyler,\n selectors: [[\"\", \"mat-subheader\", \"\"], [\"\", \"matSubheader\", \"\"]],\n hostAttrs: [1, \"mat-mdc-subheader\", \"mdc-list-group__subheader\"]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatListSubheaderCssMatStyler, [{\n type: Directive,\n args: [{\n selector: '[mat-subheader], [matSubheader]',\n // TODO(mmalerba): MDC's subheader font looks identical to the list item font, figure out why and\n // make a change in one of the repos to visually distinguish.\n host: {\n 'class': 'mat-mdc-subheader mdc-list-group__subheader'\n }\n }]\n }], null, null);\n})();\n\n/**\n * Injection token that can be used to inject instances of `MatNavList`. It serves as\n * alternative token to the actual `MatNavList` class which could cause unnecessary\n * retention of the class and its component metadata.\n */\nconst MAT_NAV_LIST = new InjectionToken('MatNavList');\nclass MatNavList extends MatListBase {\n constructor() {\n super(...arguments);\n // An navigation list is considered interactive, but does not extend the interactive list\n // base class. We do this because as per MDC, items of interactive lists are only reachable\n // through keyboard shortcuts. We want all items for the navigation list to be reachable\n // through tab key as we do not intend to provide any special accessibility treatment. The\n // accessibility treatment depends on how the end-user will interact with it.\n this._isNonInteractive = false;\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatNavList_BaseFactory;\n return function MatNavList_Factory(ɵt) {\n return (ɵMatNavList_BaseFactory || (ɵMatNavList_BaseFactory = i0.ɵɵgetInheritedFactory(MatNavList)))(ɵt || MatNavList);\n };\n })();\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatNavList,\n selectors: [[\"mat-nav-list\"]],\n hostAttrs: [\"role\", \"navigation\", 1, \"mat-mdc-nav-list\", \"mat-mdc-list-base\", \"mdc-list\"],\n exportAs: [\"matNavList\"],\n features: [i0.ɵɵProvidersFeature([{\n provide: MatListBase,\n useExisting: MatNavList\n }]), i0.ɵɵInheritDefinitionFeature],\n ngContentSelectors: _c0,\n decls: 1,\n vars: 0,\n template: function MatNavList_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵprojection(0);\n }\n },\n styles: [_c1],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatNavList, [{\n type: Component,\n args: [{\n selector: 'mat-nav-list',\n exportAs: 'matNavList',\n template: '',\n host: {\n 'class': 'mat-mdc-nav-list mat-mdc-list-base mdc-list',\n 'role': 'navigation'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{\n provide: MatListBase,\n useExisting: MatNavList\n }],\n styles: [\"@media screen and (forced-colors: active),(-ms-high-contrast: active){.mdc-list-divider::after{content:\\\"\\\";display:block;border-bottom-width:1px;border-bottom-style:solid}}.mdc-list{margin:0;padding:8px 0;list-style-type:none}.mdc-list:focus{outline:none}.mdc-list-item__wrapper{display:block}.mdc-list-item{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;align-items:stretch;cursor:pointer}.mdc-list-item:focus{outline:none}.mdc-list-item.mdc-list-item--with-one-line{height:48px}.mdc-list-item.mdc-list-item--with-two-lines{height:64px}.mdc-list-item.mdc-list-item--with-three-lines{height:88px}.mdc-list-item.mdc-list-item--with-one-line .mdc-list-item__start{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--with-three-lines .mdc-list-item__start{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--with-one-line .mdc-list-item__end{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-two-lines .mdc-list-item__end{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--disabled,.mdc-list-item.mdc-list-item--non-interactive{cursor:auto}.mdc-list-item:not(.mdc-list-item--selected):focus::before,.mdc-list-item.mdc-ripple-upgraded--background-focused::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:\\\"\\\";pointer-events:none}@media screen and (forced-colors: active){.mdc-list-item:not(.mdc-list-item--selected):focus::before,.mdc-list-item.mdc-ripple-upgraded--background-focused::before{border-color:CanvasText}}.mdc-list-item.mdc-list-item--selected::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:3px double rgba(0,0,0,0);border-radius:inherit;content:\\\"\\\";pointer-events:none}@media screen and (forced-colors: active){.mdc-list-item.mdc-list-item--selected::before{border-color:CanvasText}}.mdc-list-item.mdc-list-item--selected:focus::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:3px solid rgba(0,0,0,0);border-radius:inherit;content:\\\"\\\";pointer-events:none}@media screen and (forced-colors: active){.mdc-list-item.mdc-list-item--selected:focus::before{border-color:CanvasText}}a.mdc-list-item{color:inherit;text-decoration:none}.mdc-list-item__start{fill:currentColor;flex-shrink:0;pointer-events:none}.mdc-list-item__end{flex-shrink:0;pointer-events:none}.mdc-list-item__content{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;align-self:center;flex:1;pointer-events:none}.mdc-list-item--with-two-lines .mdc-list-item__content,.mdc-list-item--with-three-lines .mdc-list-item__content{align-self:stretch}.mdc-list-item__content[for]{pointer-events:none}.mdc-list-item__primary-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-three-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-three-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-three-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item__secondary-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:block;margin-top:0;line-height:normal}.mdc-list-item__secondary-text::before{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-three-lines .mdc-list-item__secondary-text{white-space:normal;line-height:20px}.mdc-list-item--with-overline .mdc-list-item__secondary-text{white-space:nowrap;line-height:auto}.mdc-list-item__overline-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:24px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-three-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-three-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-three-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-avatar.mdc-list-item,.mdc-list-item--with-leading-avatar.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-avatar .mdc-list-item__start{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-avatar .mdc-list-item__start,.mdc-list-item--with-leading-avatar .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-avatar.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-avatar .mdc-list-item__start{border-radius:50%}.mdc-list-item--with-leading-icon.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-icon.mdc-list-item,.mdc-list-item--with-leading-icon.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-icon .mdc-list-item__start{margin-left:16px;margin-right:32px}[dir=rtl] .mdc-list-item--with-leading-icon .mdc-list-item__start,.mdc-list-item--with-leading-icon .mdc-list-item__start[dir=rtl]{margin-left:32px;margin-right:16px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-icon.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-thumbnail.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-thumbnail.mdc-list-item,.mdc-list-item--with-leading-thumbnail.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-thumbnail .mdc-list-item__start{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-thumbnail .mdc-list-item__start,.mdc-list-item--with-leading-thumbnail .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-image.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-image.mdc-list-item,.mdc-list-item--with-leading-image.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-image .mdc-list-item__start{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-image .mdc-list-item__start,.mdc-list-item--with-leading-image .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-image.mdc-list-item--with-one-line{height:72px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:8px}.mdc-list-item--with-leading-video.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-video.mdc-list-item,.mdc-list-item--with-leading-video.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-video .mdc-list-item__start{margin-left:0;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-video .mdc-list-item__start,.mdc-list-item--with-leading-video .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:0}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-video.mdc-list-item--with-one-line{height:72px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-checkbox.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-checkbox.mdc-list-item,.mdc-list-item--with-leading-checkbox.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-checkbox .mdc-list-item__start{margin-left:8px;margin-right:24px}[dir=rtl] .mdc-list-item--with-leading-checkbox .mdc-list-item__start,.mdc-list-item--with-leading-checkbox .mdc-list-item__start[dir=rtl]{margin-left:24px;margin-right:8px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:8px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-radio.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-radio.mdc-list-item,.mdc-list-item--with-leading-radio.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-radio .mdc-list-item__start{margin-left:8px;margin-right:24px}[dir=rtl] .mdc-list-item--with-leading-radio .mdc-list-item__start,.mdc-list-item--with-leading-radio .mdc-list-item__start[dir=rtl]{margin-left:24px;margin-right:8px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:8px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-switch.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-switch.mdc-list-item,.mdc-list-item--with-leading-switch.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-switch .mdc-list-item__start{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-switch .mdc-list-item__start,.mdc-list-item--with-leading-switch .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:16px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-switch.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-trailing-icon.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-icon.mdc-list-item,.mdc-list-item--with-trailing-icon.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-icon .mdc-list-item__end{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-trailing-icon .mdc-list-item__end,.mdc-list-item--with-trailing-icon .mdc-list-item__end[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end{align-self:flex-start;margin-top:0}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:0}.mdc-list-item--with-trailing-meta.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-meta.mdc-list-item,.mdc-list-item--with-trailing-meta.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-meta .mdc-list-item__end{margin-left:28px;margin-right:16px}[dir=rtl] .mdc-list-item--with-trailing-meta .mdc-list-item__end,.mdc-list-item--with-trailing-meta .mdc-list-item__end[dir=rtl]{margin-left:16px;margin-right:28px}.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-trailing-meta .mdc-list-item__end{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-caption-font-family);font-size:var(--mdc-typography-caption-font-size);line-height:var(--mdc-typography-caption-line-height);font-weight:var(--mdc-typography-caption-font-weight);letter-spacing:var(--mdc-typography-caption-letter-spacing);text-decoration:var(--mdc-typography-caption-text-decoration);text-transform:var(--mdc-typography-caption-text-transform)}.mdc-list-item--with-trailing-checkbox.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-checkbox.mdc-list-item,.mdc-list-item--with-trailing-checkbox.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-checkbox .mdc-list-item__end{margin-left:24px;margin-right:8px}[dir=rtl] .mdc-list-item--with-trailing-checkbox .mdc-list-item__end,.mdc-list-item--with-trailing-checkbox .mdc-list-item__end[dir=rtl]{margin-left:8px;margin-right:24px}.mdc-list-item--with-trailing-checkbox.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:8px}.mdc-list-item--with-trailing-radio.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-radio.mdc-list-item,.mdc-list-item--with-trailing-radio.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-radio .mdc-list-item__end{margin-left:24px;margin-right:8px}[dir=rtl] .mdc-list-item--with-trailing-radio .mdc-list-item__end,.mdc-list-item--with-trailing-radio .mdc-list-item__end[dir=rtl]{margin-left:8px;margin-right:24px}.mdc-list-item--with-trailing-radio.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:8px}.mdc-list-item--with-trailing-switch.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-switch.mdc-list-item,.mdc-list-item--with-trailing-switch.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-switch .mdc-list-item__end{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-trailing-switch .mdc-list-item__end,.mdc-list-item--with-trailing-switch .mdc-list-item__end[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-trailing-switch.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:16px}.mdc-list-item--with-overline.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-overline.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-overline.mdc-list-item--with-three-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-overline.mdc-list-item--with-three-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:0}.mdc-list-item{padding-left:16px;padding-right:16px}[dir=rtl] .mdc-list-item,.mdc-list-item[dir=rtl]{padding-left:16px;padding-right:16px}.mdc-list-group .mdc-deprecated-list{padding:0}.mdc-list-group__subheader{margin:calc((3rem - 1.5rem)/2) 16px}.mdc-list-divider{padding:0;background-clip:content-box}.mdc-list-divider.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-text.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-icon.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-image.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-avatar.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-switch.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-radio.mdc-list-divider--with-leading-inset{padding-left:16px;padding-right:auto}[dir=rtl] .mdc-list-divider.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-text.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-icon.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-image.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-avatar.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-switch.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-radio.mdc-list-divider--with-leading-inset,.mdc-list-divider.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-text.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-icon.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-image.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-avatar.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-switch.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-radio.mdc-list-divider--with-leading-inset[dir=rtl]{padding-left:auto;padding-right:16px}.mdc-list-divider.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-text.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-icon.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-image.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-avatar.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-switch.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-radio.mdc-list-divider--with-trailing-inset{padding-left:auto;padding-right:16px}[dir=rtl] .mdc-list-divider.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-text.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-icon.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-image.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-avatar.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-switch.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-radio.mdc-list-divider--with-trailing-inset,.mdc-list-divider.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-text.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-icon.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-image.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-avatar.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-switch.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-radio.mdc-list-divider--with-trailing-inset[dir=rtl]{padding-left:16px;padding-right:auto}.mdc-list-divider--with-leading-video.mdc-list-divider--with-leading-inset{padding-left:0px;padding-right:auto}[dir=rtl] .mdc-list-divider--with-leading-video.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-video.mdc-list-divider--with-leading-inset[dir=rtl]{padding-left:auto;padding-right:0px}[dir=rtl] .mdc-list-divider,.mdc-list-divider[dir=rtl]{padding:0}.mdc-list-item{background-color:var(--mdc-list-list-item-container-color)}.mdc-list-item.mdc-list-item--selected{background-color:var(--mdc-list-list-item-selected-container-color)}.mdc-list-item--with-one-line{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-one-line.mdc-list-item--with-leading-avatar,.mdc-list-item--with-one-line.mdc-list-item--with-leading-icon,.mdc-list-item--with-one-line.mdc-list-item--with-leading-thumbnail,.mdc-list-item--with-one-line.mdc-list-item--with-leading-checkbox,.mdc-list-item--with-one-line.mdc-list-item--with-leading-radio,.mdc-list-item--with-one-line.mdc-list-item--with-leading-switch{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-one-line.mdc-list-item--with-leading-image,.mdc-list-item--with-one-line.mdc-list-item--with-leading-video{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-two-lines{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-two-lines.mdc-list-item--with-leading-avatar,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-icon,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-thumbnail,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-checkbox,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-radio,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-switch,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-image,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-video{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-three-lines{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item.mdc-list-item--with-one-line{height:var(--mdc-list-list-item-one-line-container-height)}.mdc-list-item.mdc-list-item--with-two-lines{height:var(--mdc-list-list-item-two-line-container-height)}.mdc-list-item.mdc-list-item--with-three-lines{height:var(--mdc-list-list-item-three-line-container-height)}.mdc-list-item__primary-text{color:var(--mdc-list-list-item-label-text-color)}.mdc-list-item__primary-text{font-family:var(--mdc-list-list-item-label-text-font);line-height:var(--mdc-list-list-item-label-text-line-height);font-size:var(--mdc-list-list-item-label-text-size);font-weight:var(--mdc-list-list-item-label-text-weight);letter-spacing:var(--mdc-list-list-item-label-text-tracking)}.mdc-list-item__secondary-text{color:var(--mdc-list-list-item-supporting-text-color)}.mdc-list-item__secondary-text{font-family:var(--mdc-list-list-item-supporting-text-font);line-height:var(--mdc-list-list-item-supporting-text-line-height);font-size:var(--mdc-list-list-item-supporting-text-size);font-weight:var(--mdc-list-list-item-supporting-text-weight);letter-spacing:var(--mdc-list-list-item-supporting-text-tracking)}.mdc-list-item--with-leading-icon .mdc-list-item__start{color:var(--mdc-list-list-item-leading-icon-color)}.mdc-list-item--with-leading-icon .mdc-list-item__start{width:var(--mdc-list-list-item-leading-icon-size);height:var(--mdc-list-list-item-leading-icon-size)}.mdc-list-item--with-leading-icon .mdc-list-item__start>i{font-size:var(--mdc-list-list-item-leading-icon-size)}.mdc-list-item--with-leading-icon .mdc-list-item__start .mdc-list-item__icon{font-size:var(--mdc-list-list-item-leading-icon-size);width:var(--mdc-list-list-item-leading-icon-size);height:var(--mdc-list-list-item-leading-icon-size)}.mdc-list-item--with-leading-icon .mdc-list-item__start .mdc-list-item__icon,.mdc-list-item--with-leading-icon .mdc-list-item__start .mdc-list-item__icon>.materialdesignWizIconSvgsSvgIcon{display:block}.mdc-list-item--with-leading-avatar .mdc-list-item__start{width:var(--mdc-list-list-item-leading-avatar-size);height:var(--mdc-list-list-item-leading-avatar-size)}.mdc-list-item.mdc-list-item--with-trailing-meta .mdc-list-item__end{color:var(--mdc-list-list-item-trailing-supporting-text-color)}.mdc-list-item--with-trailing-meta .mdc-list-item__end{font-family:var(--mdc-list-list-item-trailing-supporting-text-font);line-height:var(--mdc-list-list-item-trailing-supporting-text-line-height);font-size:var(--mdc-list-list-item-trailing-supporting-text-size);font-weight:var(--mdc-list-list-item-trailing-supporting-text-weight);letter-spacing:var(--mdc-list-list-item-trailing-supporting-text-tracking)}.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-trailing-icon-color)}.mdc-list-item--with-trailing-icon .mdc-list-item__end{width:var(--mdc-list-list-item-trailing-icon-size);height:var(--mdc-list-list-item-trailing-icon-size)}.mdc-list-item--with-trailing-icon .mdc-list-item__end>i{font-size:var(--mdc-list-list-item-trailing-icon-size)}.mdc-list-item--with-trailing-icon .mdc-list-item__end .mdc-list-item__icon{font-size:var(--mdc-list-list-item-trailing-icon-size);width:var(--mdc-list-list-item-trailing-icon-size);height:var(--mdc-list-list-item-trailing-icon-size)}.mdc-list-item--with-trailing-icon .mdc-list-item__end .mdc-list-item__icon,.mdc-list-item--with-trailing-icon .mdc-list-item__end .mdc-list-item__icon>.materialdesignWizIconSvgsSvgIcon{display:block}.mdc-list-item--selected.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-selected-trailing-icon-color)}.mdc-list-item--disabled .mdc-list-item__start,.mdc-list-item--disabled .mdc-list-item__content,.mdc-list-item--disabled .mdc-list-item__end{opacity:1}.mdc-list-item--disabled .mdc-list-item__primary-text,.mdc-list-item--disabled .mdc-list-item__secondary-text,.mdc-list-item--disabled .mdc-list-item__overline-text{opacity:var(--mdc-list-list-item-disabled-label-text-opacity)}.mdc-list-item--disabled.mdc-list-item--with-leading-icon .mdc-list-item__start{color:var(--mdc-list-list-item-disabled-leading-icon-color)}.mdc-list-item--disabled.mdc-list-item--with-leading-icon .mdc-list-item__start{opacity:var(--mdc-list-list-item-disabled-leading-icon-opacity)}.mdc-list-item--disabled.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-disabled-trailing-icon-color)}.mdc-list-item--disabled.mdc-list-item--with-trailing-icon .mdc-list-item__end{opacity:var(--mdc-list-list-item-disabled-trailing-icon-opacity)}.mdc-list-item:hover .mdc-list-item__primary-text{color:var(--mdc-list-list-item-hover-label-text-color)}.mdc-list-item--with-leading-icon:hover .mdc-list-item__start{color:var(--mdc-list-list-item-hover-leading-icon-color)}.mdc-list-item--with-trailing-icon:hover .mdc-list-item__end{color:var(--mdc-list-list-item-hover-trailing-icon-color)}.mdc-list-item:focus .mdc-list-item__primary-text{color:var(--mdc-list-list-item-focus-label-text-color)}.mdc-list-item.mdc-list-item--disabled .mdc-list-item__primary-text{color:var(--mdc-list-list-item-disabled-label-text-color)}.mdc-list-item:hover::before{background-color:var(--mdc-list-list-item-hover-state-layer-color);opacity:var(--mdc-list-list-item-hover-state-layer-opacity)}.mdc-list-item.mdc-list-item--disabled::before{background-color:var(--mdc-list-list-item-disabled-state-layer-color);opacity:var(--mdc-list-list-item-disabled-state-layer-opacity)}.mdc-list-item:focus::before{background-color:var(--mdc-list-list-item-focus-state-layer-color);opacity:var(--mdc-list-list-item-focus-state-layer-opacity)}.mdc-list-item--disabled .mdc-radio,.mdc-list-item--disabled .mdc-checkbox{opacity:var(--mdc-list-list-item-disabled-label-text-opacity)}.mdc-list-item--with-leading-avatar .mat-mdc-list-item-avatar{border-radius:var(--mdc-list-list-item-leading-avatar-shape);background-color:var(--mdc-list-list-item-leading-avatar-color)}.mat-mdc-list-base{--mdc-list-list-item-container-shape:0;--mdc-list-list-item-leading-avatar-shape:50%;--mdc-list-list-item-container-color:transparent;--mdc-list-list-item-selected-container-color:transparent;--mdc-list-list-item-leading-avatar-color:transparent;--mdc-list-list-item-leading-icon-size:24px;--mdc-list-list-item-leading-avatar-size:40px;--mdc-list-list-item-trailing-icon-size:24px;--mdc-list-list-item-disabled-state-layer-color:transparent;--mdc-list-list-item-disabled-state-layer-opacity:0;--mdc-list-list-item-disabled-label-text-opacity:0.38;--mdc-list-list-item-disabled-leading-icon-opacity:0.38;--mdc-list-list-item-disabled-trailing-icon-opacity:0.38}.cdk-high-contrast-active a.mdc-list-item--activated::after{content:\\\"\\\";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}.cdk-high-contrast-active a.mdc-list-item--activated [dir=rtl]::after{right:auto;left:16px}.mat-mdc-list-base{display:block}.mat-mdc-list-base .mdc-list-item__start,.mat-mdc-list-base .mdc-list-item__end,.mat-mdc-list-base .mdc-list-item__content{pointer-events:auto}.mat-mdc-list-item,.mat-mdc-list-option{width:100%;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-list-item:not(.mat-mdc-list-item-interactive),.mat-mdc-list-option:not(.mat-mdc-list-item-interactive){cursor:default}.mat-mdc-list-item .mat-divider-inset,.mat-mdc-list-option .mat-divider-inset{position:absolute;left:0;right:0;bottom:0}.mat-mdc-list-item .mat-mdc-list-item-avatar~.mat-divider-inset,.mat-mdc-list-option .mat-mdc-list-item-avatar~.mat-divider-inset{margin-left:72px}[dir=rtl] .mat-mdc-list-item .mat-mdc-list-item-avatar~.mat-divider-inset,[dir=rtl] .mat-mdc-list-option .mat-mdc-list-item-avatar~.mat-divider-inset{margin-right:72px}.mat-mdc-list-item-interactive::before{top:0;left:0;right:0;bottom:0;position:absolute;content:\\\"\\\";opacity:0;pointer-events:none}.mat-mdc-list-item>.mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-mdc-list-item:focus>.mat-mdc-focus-indicator::before{content:\\\"\\\"}.mat-mdc-list-item.mdc-list-item--with-three-lines .mat-mdc-list-item-line.mdc-list-item__secondary-text{white-space:nowrap;line-height:normal}.mat-mdc-list-item.mdc-list-item--with-three-lines .mat-mdc-list-item-unscoped-content.mdc-list-item__secondary-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}mat-action-list button{background:none;color:inherit;border:none;font:inherit;outline:inherit;-webkit-tap-highlight-color:rgba(0,0,0,0);text-align:left}[dir=rtl] mat-action-list button{text-align:right}mat-action-list button::-moz-focus-inner{border:0}\"]\n }]\n }], null, null);\n})();\nconst MAT_SELECTION_LIST_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MatSelectionList),\n multi: true\n};\n/** Change event that is being fired whenever the selected state of an option changes. */\nclass MatSelectionListChange {\n constructor( /** Reference to the selection list that emitted the event. */\n source, /** Reference to the options that have been changed. */\n options) {\n this.source = source;\n this.options = options;\n }\n}\nclass MatSelectionList extends MatListBase {\n /** Whether selection is limited to one or multiple items (default multiple). */\n get multiple() {\n return this._multiple;\n }\n set multiple(value) {\n const newValue = coerceBooleanProperty(value);\n if (newValue !== this._multiple) {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && this._initialized) {\n throw new Error('Cannot change `multiple` mode of mat-selection-list after initialization.');\n }\n this._multiple = newValue;\n this.selectedOptions = new SelectionModel(this._multiple, this.selectedOptions.selected);\n }\n }\n /** Whether radio indicator for all list items is hidden. */\n get hideSingleSelectionIndicator() {\n return this._hideSingleSelectionIndicator;\n }\n set hideSingleSelectionIndicator(value) {\n this._hideSingleSelectionIndicator = coerceBooleanProperty(value);\n }\n constructor(_element, _ngZone) {\n super();\n this._element = _element;\n this._ngZone = _ngZone;\n this._initialized = false;\n /** Emits when the list has been destroyed. */\n this._destroyed = new Subject();\n /** View to model callback that should be called whenever the selected options change. */\n this._onChange = _ => {};\n /** Emits a change event whenever the selected state of an option changes. */\n this.selectionChange = new EventEmitter();\n /** Theme color of the selection list. This sets the checkbox color for all list options. */\n this.color = 'accent';\n /**\n * Function used for comparing an option against the selected value when determining which\n * options should appear as selected. The first argument is the value of an options. The second\n * one is a value from the selected value. A boolean must be returned.\n */\n this.compareWith = (a1, a2) => a1 === a2;\n this._multiple = true;\n this._hideSingleSelectionIndicator = this._defaultOptions?.hideSingleSelectionIndicator ?? false;\n /** The currently selected options. */\n this.selectedOptions = new SelectionModel(this._multiple);\n /** View to model callback that should be called if the list or its options lost focus. */\n this._onTouched = () => {};\n this._selectionListDisabled = false;\n /** Handles focusout events within the list. */\n this._handleFocusout = () => {\n // Focus takes a while to update so we have to wrap our call in a timeout.\n setTimeout(() => {\n if (!this._containsFocus()) {\n this._resetActiveOption();\n }\n });\n };\n /** Handles focusin events within the list. */\n this._handleFocusin = event => {\n if (this.disabled) {\n return;\n }\n const activeIndex = this._items.toArray().findIndex(item => item._elementRef.nativeElement.contains(event.target));\n if (activeIndex > -1) {\n this._setActiveOption(activeIndex);\n } else {\n this._resetActiveOption();\n }\n };\n this._isNonInteractive = false;\n }\n ngAfterViewInit() {\n // Mark the selection list as initialized so that the `multiple`\n // binding can no longer be changed.\n this._initialized = true;\n this._setupRovingTabindex();\n // These events are bound outside the zone, because they don't change\n // any change-detected properties and they can trigger timeouts.\n this._ngZone.runOutsideAngular(() => {\n this._element.nativeElement.addEventListener('focusin', this._handleFocusin);\n this._element.nativeElement.addEventListener('focusout', this._handleFocusout);\n });\n if (this._value) {\n this._setOptionsFromValues(this._value);\n }\n this._watchForSelectionChange();\n }\n ngOnChanges(changes) {\n const disabledChanges = changes['disabled'];\n const disableRippleChanges = changes['disableRipple'];\n const hideSingleSelectionIndicatorChanges = changes['hideSingleSelectionIndicator'];\n if (disableRippleChanges && !disableRippleChanges.firstChange || disabledChanges && !disabledChanges.firstChange || hideSingleSelectionIndicatorChanges && !hideSingleSelectionIndicatorChanges.firstChange) {\n this._markOptionsForCheck();\n }\n }\n ngOnDestroy() {\n this._keyManager?.destroy();\n this._element.nativeElement.removeEventListener('focusin', this._handleFocusin);\n this._element.nativeElement.removeEventListener('focusout', this._handleFocusout);\n this._destroyed.next();\n this._destroyed.complete();\n this._isDestroyed = true;\n }\n /** Focuses the selection list. */\n focus(options) {\n this._element.nativeElement.focus(options);\n }\n /** Selects all of the options. Returns the options that changed as a result. */\n selectAll() {\n return this._setAllOptionsSelected(true);\n }\n /** Deselects all of the options. Returns the options that changed as a result. */\n deselectAll() {\n return this._setAllOptionsSelected(false);\n }\n /** Reports a value change to the ControlValueAccessor */\n _reportValueChange() {\n // Stop reporting value changes after the list has been destroyed. This avoids\n // cases where the list might wrongly reset its value once it is removed, but\n // the form control is still live.\n if (this.options && !this._isDestroyed) {\n const value = this._getSelectedOptionValues();\n this._onChange(value);\n this._value = value;\n }\n }\n /** Emits a change event if the selected state of an option changed. */\n _emitChangeEvent(options) {\n this.selectionChange.emit(new MatSelectionListChange(this, options));\n }\n /** Implemented as part of ControlValueAccessor. */\n writeValue(values) {\n this._value = values;\n if (this.options) {\n this._setOptionsFromValues(values || []);\n }\n }\n /** Implemented as a part of ControlValueAccessor. */\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n }\n /**\n * Whether the *entire* selection list is disabled. When true, each list item is also disabled\n * and each list item is removed from the tab order (has tabindex=\"-1\").\n */\n get disabled() {\n return this._selectionListDisabled;\n }\n set disabled(value) {\n // Update the disabled state of this list. Write to `this._selectionListDisabled` instead of\n // `super.disabled`. That is to avoid closure compiler compatibility issues with assigning to\n // a super property.\n this._selectionListDisabled = coerceBooleanProperty(value);\n if (this._selectionListDisabled) {\n this._keyManager?.setActiveItem(-1);\n }\n }\n /** Implemented as part of ControlValueAccessor. */\n registerOnChange(fn) {\n this._onChange = fn;\n }\n /** Implemented as part of ControlValueAccessor. */\n registerOnTouched(fn) {\n this._onTouched = fn;\n }\n /** Watches for changes in the selected state of the options and updates the list accordingly. */\n _watchForSelectionChange() {\n this.selectedOptions.changed.pipe(takeUntil(this._destroyed)).subscribe(event => {\n // Sync external changes to the model back to the options.\n for (let item of event.added) {\n item.selected = true;\n }\n for (let item of event.removed) {\n item.selected = false;\n }\n if (!this._containsFocus()) {\n this._resetActiveOption();\n }\n });\n }\n /** Sets the selected options based on the specified values. */\n _setOptionsFromValues(values) {\n this.options.forEach(option => option._setSelected(false));\n values.forEach(value => {\n const correspondingOption = this.options.find(option => {\n // Skip options that are already in the model. This allows us to handle cases\n // where the same primitive value is selected multiple times.\n return option.selected ? false : this.compareWith(option.value, value);\n });\n if (correspondingOption) {\n correspondingOption._setSelected(true);\n }\n });\n }\n /** Returns the values of the selected options. */\n _getSelectedOptionValues() {\n return this.options.filter(option => option.selected).map(option => option.value);\n }\n /** Marks all the options to be checked in the next change detection run. */\n _markOptionsForCheck() {\n if (this.options) {\n this.options.forEach(option => option._markForCheck());\n }\n }\n /**\n * Sets the selected state on all of the options\n * and emits an event if anything changed.\n */\n _setAllOptionsSelected(isSelected, skipDisabled) {\n // Keep track of whether anything changed, because we only want to\n // emit the changed event when something actually changed.\n const changedOptions = [];\n this.options.forEach(option => {\n if ((!skipDisabled || !option.disabled) && option._setSelected(isSelected)) {\n changedOptions.push(option);\n }\n });\n if (changedOptions.length) {\n this._reportValueChange();\n }\n return changedOptions;\n }\n // Note: This getter exists for backwards compatibility. The `_items` query list\n // cannot be named `options` as it will be picked up by the interactive list base.\n /** The option components contained within this selection-list. */\n get options() {\n return this._items;\n }\n /** Handles keydown events within the list. */\n _handleKeydown(event) {\n const activeItem = this._keyManager.activeItem;\n if ((event.keyCode === ENTER || event.keyCode === SPACE) && !this._keyManager.isTyping() && activeItem && !activeItem.disabled) {\n event.preventDefault();\n activeItem._toggleOnInteraction();\n } else if (event.keyCode === A && this.multiple && !this._keyManager.isTyping() && hasModifierKey(event, 'ctrlKey')) {\n const shouldSelect = this.options.some(option => !option.disabled && !option.selected);\n event.preventDefault();\n this._emitChangeEvent(this._setAllOptionsSelected(shouldSelect, true));\n } else {\n this._keyManager.onKeydown(event);\n }\n }\n /**\n * Sets up the logic for maintaining the roving tabindex.\n *\n * `skipPredicate` determines if key manager should avoid putting a given list item in the tab\n * index. Allow disabled list items to receive focus to align with WAI ARIA recommendation.\n * Normally WAI ARIA's instructions are to exclude disabled items from the tab order, but it\n * makes a few exceptions for compound widgets.\n *\n * From [Developing a Keyboard Interface](\n * https://www.w3.org/WAI/ARIA/apg/practices/keyboard-interface/):\n * \"For the following composite widget elements, keep them focusable when disabled: Options in a\n * Listbox...\"\n */\n _setupRovingTabindex() {\n this._keyManager = new FocusKeyManager(this._items).withHomeAndEnd().withTypeAhead().withWrap().skipPredicate(() => this.disabled);\n // Set the initial focus.\n this._resetActiveOption();\n // Move the tabindex to the currently-focused list item.\n this._keyManager.change.subscribe(activeItemIndex => this._setActiveOption(activeItemIndex));\n // If the active item is removed from the list, reset back to the first one.\n this._items.changes.pipe(takeUntil(this._destroyed)).subscribe(() => {\n const activeItem = this._keyManager.activeItem;\n if (!activeItem || !this._items.toArray().indexOf(activeItem)) {\n this._resetActiveOption();\n }\n });\n }\n /**\n * Sets an option as active.\n * @param index Index of the active option. If set to -1, no option will be active.\n */\n _setActiveOption(index) {\n this._items.forEach((item, itemIndex) => item._setTabindex(itemIndex === index ? 0 : -1));\n this._keyManager.updateActiveItem(index);\n }\n /**\n * Resets the active option. When the list is disabled, remove all options from to the tab order.\n * Otherwise, focus the first selected option.\n */\n _resetActiveOption() {\n if (this.disabled) {\n this._setActiveOption(-1);\n return;\n }\n const activeItem = this._items.find(item => item.selected && !item.disabled) || this._items.first;\n this._setActiveOption(activeItem ? this._items.toArray().indexOf(activeItem) : -1);\n }\n /** Returns whether the focus is currently within the list. */\n _containsFocus() {\n const activeElement = _getFocusedElementPierceShadowDom();\n return activeElement && this._element.nativeElement.contains(activeElement);\n }\n static {\n this.ɵfac = function MatSelectionList_Factory(ɵt) {\n return new (ɵt || MatSelectionList)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatSelectionList,\n selectors: [[\"mat-selection-list\"]],\n contentQueries: function MatSelectionList_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MatListOption, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._items = _t);\n }\n },\n hostAttrs: [\"role\", \"listbox\", 1, \"mat-mdc-selection-list\", \"mat-mdc-list-base\", \"mdc-list\"],\n hostVars: 1,\n hostBindings: function MatSelectionList_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"keydown\", function MatSelectionList_keydown_HostBindingHandler($event) {\n return ctx._handleKeydown($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-multiselectable\", ctx.multiple);\n }\n },\n inputs: {\n color: \"color\",\n compareWith: \"compareWith\",\n multiple: \"multiple\",\n hideSingleSelectionIndicator: \"hideSingleSelectionIndicator\",\n disabled: \"disabled\"\n },\n outputs: {\n selectionChange: \"selectionChange\"\n },\n exportAs: [\"matSelectionList\"],\n features: [i0.ɵɵProvidersFeature([MAT_SELECTION_LIST_VALUE_ACCESSOR, {\n provide: MatListBase,\n useExisting: MatSelectionList\n }, {\n provide: SELECTION_LIST,\n useExisting: MatSelectionList\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature],\n ngContentSelectors: _c0,\n decls: 1,\n vars: 0,\n template: function MatSelectionList_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵprojection(0);\n }\n },\n styles: [_c1],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatSelectionList, [{\n type: Component,\n args: [{\n selector: 'mat-selection-list',\n exportAs: 'matSelectionList',\n host: {\n 'class': 'mat-mdc-selection-list mat-mdc-list-base mdc-list',\n 'role': 'listbox',\n '[attr.aria-multiselectable]': 'multiple',\n '(keydown)': '_handleKeydown($event)'\n },\n template: '',\n encapsulation: ViewEncapsulation.None,\n providers: [MAT_SELECTION_LIST_VALUE_ACCESSOR, {\n provide: MatListBase,\n useExisting: MatSelectionList\n }, {\n provide: SELECTION_LIST,\n useExisting: MatSelectionList\n }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n styles: [\"@media screen and (forced-colors: active),(-ms-high-contrast: active){.mdc-list-divider::after{content:\\\"\\\";display:block;border-bottom-width:1px;border-bottom-style:solid}}.mdc-list{margin:0;padding:8px 0;list-style-type:none}.mdc-list:focus{outline:none}.mdc-list-item__wrapper{display:block}.mdc-list-item{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;align-items:stretch;cursor:pointer}.mdc-list-item:focus{outline:none}.mdc-list-item.mdc-list-item--with-one-line{height:48px}.mdc-list-item.mdc-list-item--with-two-lines{height:64px}.mdc-list-item.mdc-list-item--with-three-lines{height:88px}.mdc-list-item.mdc-list-item--with-one-line .mdc-list-item__start{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--with-three-lines .mdc-list-item__start{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--with-one-line .mdc-list-item__end{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-two-lines .mdc-list-item__end{align-self:center;margin-top:0}.mdc-list-item.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:16px}.mdc-list-item.mdc-list-item--disabled,.mdc-list-item.mdc-list-item--non-interactive{cursor:auto}.mdc-list-item:not(.mdc-list-item--selected):focus::before,.mdc-list-item.mdc-ripple-upgraded--background-focused::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:\\\"\\\";pointer-events:none}@media screen and (forced-colors: active){.mdc-list-item:not(.mdc-list-item--selected):focus::before,.mdc-list-item.mdc-ripple-upgraded--background-focused::before{border-color:CanvasText}}.mdc-list-item.mdc-list-item--selected::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:3px double rgba(0,0,0,0);border-radius:inherit;content:\\\"\\\";pointer-events:none}@media screen and (forced-colors: active){.mdc-list-item.mdc-list-item--selected::before{border-color:CanvasText}}.mdc-list-item.mdc-list-item--selected:focus::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:3px solid rgba(0,0,0,0);border-radius:inherit;content:\\\"\\\";pointer-events:none}@media screen and (forced-colors: active){.mdc-list-item.mdc-list-item--selected:focus::before{border-color:CanvasText}}a.mdc-list-item{color:inherit;text-decoration:none}.mdc-list-item__start{fill:currentColor;flex-shrink:0;pointer-events:none}.mdc-list-item__end{flex-shrink:0;pointer-events:none}.mdc-list-item__content{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;align-self:center;flex:1;pointer-events:none}.mdc-list-item--with-two-lines .mdc-list-item__content,.mdc-list-item--with-three-lines .mdc-list-item__content{align-self:stretch}.mdc-list-item__content[for]{pointer-events:none}.mdc-list-item__primary-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mdc-list-item--with-two-lines .mdc-list-item__primary-text,.mdc-list-item--with-three-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before,.mdc-list-item--with-three-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after,.mdc-list-item--with-three-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item__secondary-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:block;margin-top:0;line-height:normal}.mdc-list-item__secondary-text::before{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-three-lines .mdc-list-item__secondary-text{white-space:normal;line-height:20px}.mdc-list-item--with-overline .mdc-list-item__secondary-text{white-space:nowrap;line-height:auto}.mdc-list-item__overline-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:24px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-three-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-three-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-three-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-avatar.mdc-list-item,.mdc-list-item--with-leading-avatar.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-avatar .mdc-list-item__start{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-avatar .mdc-list-item__start,.mdc-list-item--with-leading-avatar .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-avatar.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-avatar.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-avatar .mdc-list-item__start{border-radius:50%}.mdc-list-item--with-leading-icon.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-icon.mdc-list-item,.mdc-list-item--with-leading-icon.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-icon .mdc-list-item__start{margin-left:16px;margin-right:32px}[dir=rtl] .mdc-list-item--with-leading-icon .mdc-list-item__start,.mdc-list-item--with-leading-icon .mdc-list-item__start[dir=rtl]{margin-left:32px;margin-right:16px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-icon.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-icon.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-thumbnail.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-thumbnail.mdc-list-item,.mdc-list-item--with-leading-thumbnail.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-thumbnail .mdc-list-item__start{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-thumbnail .mdc-list-item__start,.mdc-list-item--with-leading-thumbnail .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-thumbnail.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-image.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-image.mdc-list-item,.mdc-list-item--with-leading-image.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-image .mdc-list-item__start{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-image .mdc-list-item__start,.mdc-list-item--with-leading-image .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-image.mdc-list-item--with-one-line{height:72px}.mdc-list-item--with-leading-image.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:8px}.mdc-list-item--with-leading-video.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-video.mdc-list-item,.mdc-list-item--with-leading-video.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-video .mdc-list-item__start{margin-left:0;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-video .mdc-list-item__start,.mdc-list-item--with-leading-video .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:0}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-video.mdc-list-item--with-one-line{height:72px}.mdc-list-item--with-leading-video.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-checkbox.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-checkbox.mdc-list-item,.mdc-list-item--with-leading-checkbox.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-checkbox .mdc-list-item__start{margin-left:8px;margin-right:24px}[dir=rtl] .mdc-list-item--with-leading-checkbox .mdc-list-item__start,.mdc-list-item--with-leading-checkbox .mdc-list-item__start[dir=rtl]{margin-left:24px;margin-right:8px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:8px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-checkbox.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-radio.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-radio.mdc-list-item,.mdc-list-item--with-leading-radio.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-radio .mdc-list-item__start{margin-left:8px;margin-right:24px}[dir=rtl] .mdc-list-item--with-leading-radio .mdc-list-item__start,.mdc-list-item--with-leading-radio .mdc-list-item__start[dir=rtl]{margin-left:24px;margin-right:8px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:8px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-radio.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-radio.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-leading-switch.mdc-list-item{padding-left:0;padding-right:auto}[dir=rtl] .mdc-list-item--with-leading-switch.mdc-list-item,.mdc-list-item--with-leading-switch.mdc-list-item[dir=rtl]{padding-left:auto;padding-right:0}.mdc-list-item--with-leading-switch .mdc-list-item__start{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-leading-switch .mdc-list-item__start,.mdc-list-item--with-leading-switch .mdc-list-item__start[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__start{align-self:flex-start;margin-top:16px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__primary-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__overline-text{display:block;margin-top:0;line-height:normal;margin-bottom:-20px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__overline-text::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines .mdc-list-item__overline-text::after{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:-20px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines.mdc-list-item--with-trailing-meta .mdc-list-item__end::before{display:inline-block;width:0;height:32px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-leading-switch.mdc-list-item--with-one-line{height:56px}.mdc-list-item--with-leading-switch.mdc-list-item--with-two-lines{height:72px}.mdc-list-item--with-trailing-icon.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-icon.mdc-list-item,.mdc-list-item--with-trailing-icon.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-icon .mdc-list-item__end{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-trailing-icon .mdc-list-item__end,.mdc-list-item--with-trailing-icon .mdc-list-item__end[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end{align-self:flex-start;margin-top:0}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:0}.mdc-list-item--with-trailing-meta.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-meta.mdc-list-item,.mdc-list-item--with-trailing-meta.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-meta .mdc-list-item__end{margin-left:28px;margin-right:16px}[dir=rtl] .mdc-list-item--with-trailing-meta .mdc-list-item__end,.mdc-list-item--with-trailing-meta .mdc-list-item__end[dir=rtl]{margin-left:16px;margin-right:28px}.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-trailing-meta.mdc-list-item--with-two-lines .mdc-list-item__end::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-trailing-meta.mdc-list-item--with-three-lines .mdc-list-item__end::before{display:inline-block;width:0;height:28px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-trailing-meta .mdc-list-item__end{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-caption-font-family);font-size:var(--mdc-typography-caption-font-size);line-height:var(--mdc-typography-caption-line-height);font-weight:var(--mdc-typography-caption-font-weight);letter-spacing:var(--mdc-typography-caption-letter-spacing);text-decoration:var(--mdc-typography-caption-text-decoration);text-transform:var(--mdc-typography-caption-text-transform)}.mdc-list-item--with-trailing-checkbox.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-checkbox.mdc-list-item,.mdc-list-item--with-trailing-checkbox.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-checkbox .mdc-list-item__end{margin-left:24px;margin-right:8px}[dir=rtl] .mdc-list-item--with-trailing-checkbox .mdc-list-item__end,.mdc-list-item--with-trailing-checkbox .mdc-list-item__end[dir=rtl]{margin-left:8px;margin-right:24px}.mdc-list-item--with-trailing-checkbox.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:8px}.mdc-list-item--with-trailing-radio.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-radio.mdc-list-item,.mdc-list-item--with-trailing-radio.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-radio .mdc-list-item__end{margin-left:24px;margin-right:8px}[dir=rtl] .mdc-list-item--with-trailing-radio .mdc-list-item__end,.mdc-list-item--with-trailing-radio .mdc-list-item__end[dir=rtl]{margin-left:8px;margin-right:24px}.mdc-list-item--with-trailing-radio.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:8px}.mdc-list-item--with-trailing-switch.mdc-list-item{padding-left:auto;padding-right:0}[dir=rtl] .mdc-list-item--with-trailing-switch.mdc-list-item,.mdc-list-item--with-trailing-switch.mdc-list-item[dir=rtl]{padding-left:0;padding-right:auto}.mdc-list-item--with-trailing-switch .mdc-list-item__end{margin-left:16px;margin-right:16px}[dir=rtl] .mdc-list-item--with-trailing-switch .mdc-list-item__end,.mdc-list-item--with-trailing-switch .mdc-list-item__end[dir=rtl]{margin-left:16px;margin-right:16px}.mdc-list-item--with-trailing-switch.mdc-list-item--with-three-lines .mdc-list-item__end{align-self:flex-start;margin-top:16px}.mdc-list-item--with-overline.mdc-list-item--with-two-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-overline.mdc-list-item--with-two-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:0}.mdc-list-item--with-overline.mdc-list-item--with-three-lines .mdc-list-item__primary-text{display:block;margin-top:0;line-height:normal}.mdc-list-item--with-overline.mdc-list-item--with-three-lines .mdc-list-item__primary-text::before{display:inline-block;width:0;height:20px;content:\\\"\\\";vertical-align:0}.mdc-list-item{padding-left:16px;padding-right:16px}[dir=rtl] .mdc-list-item,.mdc-list-item[dir=rtl]{padding-left:16px;padding-right:16px}.mdc-list-group .mdc-deprecated-list{padding:0}.mdc-list-group__subheader{margin:calc((3rem - 1.5rem)/2) 16px}.mdc-list-divider{padding:0;background-clip:content-box}.mdc-list-divider.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-text.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-icon.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-image.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-avatar.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-switch.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-radio.mdc-list-divider--with-leading-inset{padding-left:16px;padding-right:auto}[dir=rtl] .mdc-list-divider.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-text.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-icon.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-image.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-avatar.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-switch.mdc-list-divider--with-leading-inset,[dir=rtl] .mdc-list-divider--with-leading-radio.mdc-list-divider--with-leading-inset,.mdc-list-divider.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-text.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-icon.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-image.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-avatar.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-switch.mdc-list-divider--with-leading-inset[dir=rtl],.mdc-list-divider--with-leading-radio.mdc-list-divider--with-leading-inset[dir=rtl]{padding-left:auto;padding-right:16px}.mdc-list-divider.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-text.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-icon.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-image.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-avatar.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-switch.mdc-list-divider--with-trailing-inset,.mdc-list-divider--with-leading-radio.mdc-list-divider--with-trailing-inset{padding-left:auto;padding-right:16px}[dir=rtl] .mdc-list-divider.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-text.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-icon.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-image.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-avatar.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-switch.mdc-list-divider--with-trailing-inset,[dir=rtl] .mdc-list-divider--with-leading-radio.mdc-list-divider--with-trailing-inset,.mdc-list-divider.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-text.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-icon.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-image.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-thumbnail.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-avatar.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-checkbox.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-switch.mdc-list-divider--with-trailing-inset[dir=rtl],.mdc-list-divider--with-leading-radio.mdc-list-divider--with-trailing-inset[dir=rtl]{padding-left:16px;padding-right:auto}.mdc-list-divider--with-leading-video.mdc-list-divider--with-leading-inset{padding-left:0px;padding-right:auto}[dir=rtl] .mdc-list-divider--with-leading-video.mdc-list-divider--with-leading-inset,.mdc-list-divider--with-leading-video.mdc-list-divider--with-leading-inset[dir=rtl]{padding-left:auto;padding-right:0px}[dir=rtl] .mdc-list-divider,.mdc-list-divider[dir=rtl]{padding:0}.mdc-list-item{background-color:var(--mdc-list-list-item-container-color)}.mdc-list-item.mdc-list-item--selected{background-color:var(--mdc-list-list-item-selected-container-color)}.mdc-list-item--with-one-line{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-one-line.mdc-list-item--with-leading-avatar,.mdc-list-item--with-one-line.mdc-list-item--with-leading-icon,.mdc-list-item--with-one-line.mdc-list-item--with-leading-thumbnail,.mdc-list-item--with-one-line.mdc-list-item--with-leading-checkbox,.mdc-list-item--with-one-line.mdc-list-item--with-leading-radio,.mdc-list-item--with-one-line.mdc-list-item--with-leading-switch{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-one-line.mdc-list-item--with-leading-image,.mdc-list-item--with-one-line.mdc-list-item--with-leading-video{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-two-lines{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-two-lines.mdc-list-item--with-leading-avatar,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-icon,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-thumbnail,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-checkbox,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-radio,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-switch,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-image,.mdc-list-item--with-two-lines.mdc-list-item--with-leading-video{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item--with-three-lines{border-radius:var(--mdc-list-list-item-container-shape)}.mdc-list-item.mdc-list-item--with-one-line{height:var(--mdc-list-list-item-one-line-container-height)}.mdc-list-item.mdc-list-item--with-two-lines{height:var(--mdc-list-list-item-two-line-container-height)}.mdc-list-item.mdc-list-item--with-three-lines{height:var(--mdc-list-list-item-three-line-container-height)}.mdc-list-item__primary-text{color:var(--mdc-list-list-item-label-text-color)}.mdc-list-item__primary-text{font-family:var(--mdc-list-list-item-label-text-font);line-height:var(--mdc-list-list-item-label-text-line-height);font-size:var(--mdc-list-list-item-label-text-size);font-weight:var(--mdc-list-list-item-label-text-weight);letter-spacing:var(--mdc-list-list-item-label-text-tracking)}.mdc-list-item__secondary-text{color:var(--mdc-list-list-item-supporting-text-color)}.mdc-list-item__secondary-text{font-family:var(--mdc-list-list-item-supporting-text-font);line-height:var(--mdc-list-list-item-supporting-text-line-height);font-size:var(--mdc-list-list-item-supporting-text-size);font-weight:var(--mdc-list-list-item-supporting-text-weight);letter-spacing:var(--mdc-list-list-item-supporting-text-tracking)}.mdc-list-item--with-leading-icon .mdc-list-item__start{color:var(--mdc-list-list-item-leading-icon-color)}.mdc-list-item--with-leading-icon .mdc-list-item__start{width:var(--mdc-list-list-item-leading-icon-size);height:var(--mdc-list-list-item-leading-icon-size)}.mdc-list-item--with-leading-icon .mdc-list-item__start>i{font-size:var(--mdc-list-list-item-leading-icon-size)}.mdc-list-item--with-leading-icon .mdc-list-item__start .mdc-list-item__icon{font-size:var(--mdc-list-list-item-leading-icon-size);width:var(--mdc-list-list-item-leading-icon-size);height:var(--mdc-list-list-item-leading-icon-size)}.mdc-list-item--with-leading-icon .mdc-list-item__start .mdc-list-item__icon,.mdc-list-item--with-leading-icon .mdc-list-item__start .mdc-list-item__icon>.materialdesignWizIconSvgsSvgIcon{display:block}.mdc-list-item--with-leading-avatar .mdc-list-item__start{width:var(--mdc-list-list-item-leading-avatar-size);height:var(--mdc-list-list-item-leading-avatar-size)}.mdc-list-item.mdc-list-item--with-trailing-meta .mdc-list-item__end{color:var(--mdc-list-list-item-trailing-supporting-text-color)}.mdc-list-item--with-trailing-meta .mdc-list-item__end{font-family:var(--mdc-list-list-item-trailing-supporting-text-font);line-height:var(--mdc-list-list-item-trailing-supporting-text-line-height);font-size:var(--mdc-list-list-item-trailing-supporting-text-size);font-weight:var(--mdc-list-list-item-trailing-supporting-text-weight);letter-spacing:var(--mdc-list-list-item-trailing-supporting-text-tracking)}.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-trailing-icon-color)}.mdc-list-item--with-trailing-icon .mdc-list-item__end{width:var(--mdc-list-list-item-trailing-icon-size);height:var(--mdc-list-list-item-trailing-icon-size)}.mdc-list-item--with-trailing-icon .mdc-list-item__end>i{font-size:var(--mdc-list-list-item-trailing-icon-size)}.mdc-list-item--with-trailing-icon .mdc-list-item__end .mdc-list-item__icon{font-size:var(--mdc-list-list-item-trailing-icon-size);width:var(--mdc-list-list-item-trailing-icon-size);height:var(--mdc-list-list-item-trailing-icon-size)}.mdc-list-item--with-trailing-icon .mdc-list-item__end .mdc-list-item__icon,.mdc-list-item--with-trailing-icon .mdc-list-item__end .mdc-list-item__icon>.materialdesignWizIconSvgsSvgIcon{display:block}.mdc-list-item--selected.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-selected-trailing-icon-color)}.mdc-list-item--disabled .mdc-list-item__start,.mdc-list-item--disabled .mdc-list-item__content,.mdc-list-item--disabled .mdc-list-item__end{opacity:1}.mdc-list-item--disabled .mdc-list-item__primary-text,.mdc-list-item--disabled .mdc-list-item__secondary-text,.mdc-list-item--disabled .mdc-list-item__overline-text{opacity:var(--mdc-list-list-item-disabled-label-text-opacity)}.mdc-list-item--disabled.mdc-list-item--with-leading-icon .mdc-list-item__start{color:var(--mdc-list-list-item-disabled-leading-icon-color)}.mdc-list-item--disabled.mdc-list-item--with-leading-icon .mdc-list-item__start{opacity:var(--mdc-list-list-item-disabled-leading-icon-opacity)}.mdc-list-item--disabled.mdc-list-item--with-trailing-icon .mdc-list-item__end{color:var(--mdc-list-list-item-disabled-trailing-icon-color)}.mdc-list-item--disabled.mdc-list-item--with-trailing-icon .mdc-list-item__end{opacity:var(--mdc-list-list-item-disabled-trailing-icon-opacity)}.mdc-list-item:hover .mdc-list-item__primary-text{color:var(--mdc-list-list-item-hover-label-text-color)}.mdc-list-item--with-leading-icon:hover .mdc-list-item__start{color:var(--mdc-list-list-item-hover-leading-icon-color)}.mdc-list-item--with-trailing-icon:hover .mdc-list-item__end{color:var(--mdc-list-list-item-hover-trailing-icon-color)}.mdc-list-item:focus .mdc-list-item__primary-text{color:var(--mdc-list-list-item-focus-label-text-color)}.mdc-list-item.mdc-list-item--disabled .mdc-list-item__primary-text{color:var(--mdc-list-list-item-disabled-label-text-color)}.mdc-list-item:hover::before{background-color:var(--mdc-list-list-item-hover-state-layer-color);opacity:var(--mdc-list-list-item-hover-state-layer-opacity)}.mdc-list-item.mdc-list-item--disabled::before{background-color:var(--mdc-list-list-item-disabled-state-layer-color);opacity:var(--mdc-list-list-item-disabled-state-layer-opacity)}.mdc-list-item:focus::before{background-color:var(--mdc-list-list-item-focus-state-layer-color);opacity:var(--mdc-list-list-item-focus-state-layer-opacity)}.mdc-list-item--disabled .mdc-radio,.mdc-list-item--disabled .mdc-checkbox{opacity:var(--mdc-list-list-item-disabled-label-text-opacity)}.mdc-list-item--with-leading-avatar .mat-mdc-list-item-avatar{border-radius:var(--mdc-list-list-item-leading-avatar-shape);background-color:var(--mdc-list-list-item-leading-avatar-color)}.mat-mdc-list-base{--mdc-list-list-item-container-shape:0;--mdc-list-list-item-leading-avatar-shape:50%;--mdc-list-list-item-container-color:transparent;--mdc-list-list-item-selected-container-color:transparent;--mdc-list-list-item-leading-avatar-color:transparent;--mdc-list-list-item-leading-icon-size:24px;--mdc-list-list-item-leading-avatar-size:40px;--mdc-list-list-item-trailing-icon-size:24px;--mdc-list-list-item-disabled-state-layer-color:transparent;--mdc-list-list-item-disabled-state-layer-opacity:0;--mdc-list-list-item-disabled-label-text-opacity:0.38;--mdc-list-list-item-disabled-leading-icon-opacity:0.38;--mdc-list-list-item-disabled-trailing-icon-opacity:0.38}.cdk-high-contrast-active a.mdc-list-item--activated::after{content:\\\"\\\";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}.cdk-high-contrast-active a.mdc-list-item--activated [dir=rtl]::after{right:auto;left:16px}.mat-mdc-list-base{display:block}.mat-mdc-list-base .mdc-list-item__start,.mat-mdc-list-base .mdc-list-item__end,.mat-mdc-list-base .mdc-list-item__content{pointer-events:auto}.mat-mdc-list-item,.mat-mdc-list-option{width:100%;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-list-item:not(.mat-mdc-list-item-interactive),.mat-mdc-list-option:not(.mat-mdc-list-item-interactive){cursor:default}.mat-mdc-list-item .mat-divider-inset,.mat-mdc-list-option .mat-divider-inset{position:absolute;left:0;right:0;bottom:0}.mat-mdc-list-item .mat-mdc-list-item-avatar~.mat-divider-inset,.mat-mdc-list-option .mat-mdc-list-item-avatar~.mat-divider-inset{margin-left:72px}[dir=rtl] .mat-mdc-list-item .mat-mdc-list-item-avatar~.mat-divider-inset,[dir=rtl] .mat-mdc-list-option .mat-mdc-list-item-avatar~.mat-divider-inset{margin-right:72px}.mat-mdc-list-item-interactive::before{top:0;left:0;right:0;bottom:0;position:absolute;content:\\\"\\\";opacity:0;pointer-events:none}.mat-mdc-list-item>.mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-mdc-list-item:focus>.mat-mdc-focus-indicator::before{content:\\\"\\\"}.mat-mdc-list-item.mdc-list-item--with-three-lines .mat-mdc-list-item-line.mdc-list-item__secondary-text{white-space:nowrap;line-height:normal}.mat-mdc-list-item.mdc-list-item--with-three-lines .mat-mdc-list-item-unscoped-content.mdc-list-item__secondary-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}mat-action-list button{background:none;color:inherit;border:none;font:inherit;outline:inherit;-webkit-tap-highlight-color:rgba(0,0,0,0);text-align:left}[dir=rtl] mat-action-list button{text-align:right}mat-action-list button::-moz-focus-inner{border:0}\"]\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i0.NgZone\n }];\n }, {\n _items: [{\n type: ContentChildren,\n args: [MatListOption, {\n descendants: true\n }]\n }],\n selectionChange: [{\n type: Output\n }],\n color: [{\n type: Input\n }],\n compareWith: [{\n type: Input\n }],\n multiple: [{\n type: Input\n }],\n hideSingleSelectionIndicator: [{\n type: Input\n }],\n disabled: [{\n type: Input\n }]\n });\n})();\nclass MatListModule {\n static {\n this.ɵfac = function MatListModule_Factory(ɵt) {\n return new (ɵt || MatListModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatListModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [ObserversModule, CommonModule, MatCommonModule, MatRippleModule, MatPseudoCheckboxModule, MatDividerModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatListModule, [{\n type: NgModule,\n args: [{\n imports: [ObserversModule, CommonModule, MatCommonModule, MatRippleModule, MatPseudoCheckboxModule],\n exports: [MatList, MatActionList, MatNavList, MatSelectionList, MatListItem, MatListOption, MatListItemAvatar, MatListItemIcon, MatListSubheaderCssMatStyler, MatDividerModule, MatListItemLine, MatListItemTitle, MatListItemMeta],\n declarations: [MatList, MatActionList, MatNavList, MatSelectionList, MatListItem, MatListOption, MatListSubheaderCssMatStyler, MatListItemAvatar, MatListItemIcon, MatListItemLine, MatListItemTitle, MatListItemMeta]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_LIST, MAT_LIST_CONFIG, MAT_NAV_LIST, MAT_SELECTION_LIST_VALUE_ACCESSOR, MatActionList, MatList, MatListItem, MatListItemAvatar, MatListItemIcon, MatListItemLine, MatListItemMeta, MatListItemTitle, MatListModule, MatListOption, MatListSubheaderCssMatStyler, MatNavList, MatSelectionList, MatSelectionListChange, SELECTION_LIST, _MatListItemGraphicBase };\n","import * as i2 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Component, ViewEncapsulation, ChangeDetectionStrategy, Directive, Optional, Inject, ContentChildren, ContentChild, Input, forwardRef, EventEmitter, Output, ViewChild, NgModule } from '@angular/core';\nimport * as i1 from '@angular/material/core';\nimport { mixinDisabled, mixinDisableRipple, setLines, MatLine, MatLineModule, MatRippleModule, MatCommonModule, MatPseudoCheckboxModule } from '@angular/material/core';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { MAT_NAV_LIST, MAT_LIST } from '@angular/material/list';\nconst _c0 = [\"*\"];\nconst _c1 = \".mat-subheader{display:flex;box-sizing:border-box;padding:16px;align-items:center}.mat-list-base .mat-subheader{margin:0}button.mat-list-item,button.mat-list-option{padding:0;width:100%;background:none;color:inherit;border:none;outline:inherit;-webkit-tap-highlight-color:rgba(0,0,0,0);text-align:left}[dir=rtl] button.mat-list-item,[dir=rtl] button.mat-list-option{text-align:right}button.mat-list-item::-moz-focus-inner,button.mat-list-option::-moz-focus-inner{border:0}.mat-list-base{padding-top:8px;display:block;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-list-base .mat-subheader{height:48px;line-height:16px}.mat-list-base .mat-subheader:first-child{margin-top:-8px}.mat-list-base .mat-list-item,.mat-list-base .mat-list-option{display:block;height:48px;-webkit-tap-highlight-color:rgba(0,0,0,0);width:100%;padding:0}.mat-list-base .mat-list-item .mat-list-item-content,.mat-list-base .mat-list-option .mat-list-item-content{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:0 16px;position:relative;height:inherit}.mat-list-base .mat-list-item .mat-list-item-content-reverse,.mat-list-base .mat-list-option .mat-list-item-content-reverse{display:flex;align-items:center;padding:0 16px;flex-direction:row-reverse;justify-content:space-around}.mat-list-base .mat-list-item .mat-list-item-ripple,.mat-list-base .mat-list-option .mat-list-item-ripple{display:block;top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-list-base .mat-list-item.mat-list-item-with-avatar,.mat-list-base .mat-list-option.mat-list-item-with-avatar{height:56px}.mat-list-base .mat-list-item.mat-2-line,.mat-list-base .mat-list-option.mat-2-line{height:72px}.mat-list-base .mat-list-item.mat-3-line,.mat-list-base .mat-list-option.mat-3-line{height:88px}.mat-list-base .mat-list-item.mat-multi-line,.mat-list-base .mat-list-option.mat-multi-line{height:auto}.mat-list-base .mat-list-item.mat-multi-line .mat-list-item-content,.mat-list-base .mat-list-option.mat-multi-line .mat-list-item-content{padding-top:16px;padding-bottom:16px}.mat-list-base .mat-list-item .mat-list-text,.mat-list-base .mat-list-option .mat-list-text{display:flex;flex-direction:column;flex:auto;box-sizing:border-box;overflow:hidden;padding:0}.mat-list-base .mat-list-item .mat-list-text>*,.mat-list-base .mat-list-option .mat-list-text>*{margin:0;padding:0;font-weight:normal;font-size:inherit}.mat-list-base .mat-list-item .mat-list-text:empty,.mat-list-base .mat-list-option .mat-list-text:empty{display:none}.mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:0;padding-left:16px}[dir=rtl] .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:0}.mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-left:0;padding-right:16px}[dir=rtl] .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:0;padding-left:16px}.mat-list-base .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:16px}.mat-list-base .mat-list-item .mat-list-avatar,.mat-list-base .mat-list-option .mat-list-avatar{flex-shrink:0;width:40px;height:40px;border-radius:50%;object-fit:cover}.mat-list-base .mat-list-item .mat-list-avatar~.mat-divider-inset,.mat-list-base .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:72px;width:calc(100% - 72px)}[dir=rtl] .mat-list-base .mat-list-item .mat-list-avatar~.mat-divider-inset,[dir=rtl] .mat-list-base .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:auto;margin-right:72px}.mat-list-base .mat-list-item .mat-list-icon,.mat-list-base .mat-list-option .mat-list-icon{flex-shrink:0;width:24px;height:24px;font-size:24px;box-sizing:content-box;border-radius:50%;padding:4px}.mat-list-base .mat-list-item .mat-list-icon~.mat-divider-inset,.mat-list-base .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:64px;width:calc(100% - 64px)}[dir=rtl] .mat-list-base .mat-list-item .mat-list-icon~.mat-divider-inset,[dir=rtl] .mat-list-base .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:auto;margin-right:64px}.mat-list-base .mat-list-item .mat-divider,.mat-list-base .mat-list-option .mat-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mat-list-base .mat-list-item .mat-divider,[dir=rtl] .mat-list-base .mat-list-option .mat-divider{margin-left:auto;margin-right:0}.mat-list-base .mat-list-item .mat-divider.mat-divider-inset,.mat-list-base .mat-list-option .mat-divider.mat-divider-inset{position:absolute}.mat-list-base[dense]{padding-top:4px;display:block}.mat-list-base[dense] .mat-subheader{height:40px;line-height:8px}.mat-list-base[dense] .mat-subheader:first-child{margin-top:-4px}.mat-list-base[dense] .mat-list-item,.mat-list-base[dense] .mat-list-option{display:block;height:40px;-webkit-tap-highlight-color:rgba(0,0,0,0);width:100%;padding:0}.mat-list-base[dense] .mat-list-item .mat-list-item-content,.mat-list-base[dense] .mat-list-option .mat-list-item-content{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:0 16px;position:relative;height:inherit}.mat-list-base[dense] .mat-list-item .mat-list-item-content-reverse,.mat-list-base[dense] .mat-list-option .mat-list-item-content-reverse{display:flex;align-items:center;padding:0 16px;flex-direction:row-reverse;justify-content:space-around}.mat-list-base[dense] .mat-list-item .mat-list-item-ripple,.mat-list-base[dense] .mat-list-option .mat-list-item-ripple{display:block;top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar{height:48px}.mat-list-base[dense] .mat-list-item.mat-2-line,.mat-list-base[dense] .mat-list-option.mat-2-line{height:60px}.mat-list-base[dense] .mat-list-item.mat-3-line,.mat-list-base[dense] .mat-list-option.mat-3-line{height:76px}.mat-list-base[dense] .mat-list-item.mat-multi-line,.mat-list-base[dense] .mat-list-option.mat-multi-line{height:auto}.mat-list-base[dense] .mat-list-item.mat-multi-line .mat-list-item-content,.mat-list-base[dense] .mat-list-option.mat-multi-line .mat-list-item-content{padding-top:16px;padding-bottom:16px}.mat-list-base[dense] .mat-list-item .mat-list-text,.mat-list-base[dense] .mat-list-option .mat-list-text{display:flex;flex-direction:column;flex:auto;box-sizing:border-box;overflow:hidden;padding:0}.mat-list-base[dense] .mat-list-item .mat-list-text>*,.mat-list-base[dense] .mat-list-option .mat-list-text>*{margin:0;padding:0;font-weight:normal;font-size:inherit}.mat-list-base[dense] .mat-list-item .mat-list-text:empty,.mat-list-base[dense] .mat-list-option .mat-list-text:empty{display:none}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:0;padding-left:16px}[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:0}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-left:0;padding-right:16px}[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:0;padding-left:16px}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:16px}.mat-list-base[dense] .mat-list-item .mat-list-avatar,.mat-list-base[dense] .mat-list-option .mat-list-avatar{flex-shrink:0;width:36px;height:36px;border-radius:50%;object-fit:cover}.mat-list-base[dense] .mat-list-item .mat-list-avatar~.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:68px;width:calc(100% - 68px)}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-list-avatar~.mat-divider-inset,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:auto;margin-right:68px}.mat-list-base[dense] .mat-list-item .mat-list-icon,.mat-list-base[dense] .mat-list-option .mat-list-icon{flex-shrink:0;width:20px;height:20px;font-size:20px;box-sizing:content-box;border-radius:50%;padding:4px}.mat-list-base[dense] .mat-list-item .mat-list-icon~.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:60px;width:calc(100% - 60px)}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-list-icon~.mat-divider-inset,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:auto;margin-right:60px}.mat-list-base[dense] .mat-list-item .mat-divider,.mat-list-base[dense] .mat-list-option .mat-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-divider,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-divider{margin-left:auto;margin-right:0}.mat-list-base[dense] .mat-list-item .mat-divider.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-divider.mat-divider-inset{position:absolute}.mat-nav-list a{text-decoration:none;color:inherit}.mat-nav-list .mat-list-item{cursor:pointer;outline:none}mat-action-list .mat-list-item{cursor:pointer;outline:inherit}.mat-list-option:not(.mat-list-item-disabled){cursor:pointer;outline:none}.mat-list-item-disabled{pointer-events:none}.cdk-high-contrast-active .mat-list-item-disabled{opacity:.5}.cdk-high-contrast-active :host .mat-list-item-disabled{opacity:.5}.cdk-high-contrast-active .mat-list-option:hover,.cdk-high-contrast-active .mat-nav-list .mat-list-item:hover,.cdk-high-contrast-active mat-action-list .mat-list-item:hover{outline:dotted 1px;z-index:1}.cdk-high-contrast-active .mat-list-single-selected-option::after{content:\\\"\\\";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}.cdk-high-contrast-active [dir=rtl] .mat-list-single-selected-option::after{right:auto;left:16px}@media(hover: none){.mat-list-option:not(.mat-list-single-selected-option):not(.mat-list-item-disabled):hover,.mat-nav-list .mat-list-item:not(.mat-list-item-disabled):hover,.mat-action-list .mat-list-item:not(.mat-list-item-disabled):hover{background:none}}\";\nconst _c2 = [[[\"\", \"mat-list-avatar\", \"\"], [\"\", \"mat-list-icon\", \"\"], [\"\", \"matListAvatar\", \"\"], [\"\", \"matListIcon\", \"\"]], [[\"\", \"mat-line\", \"\"], [\"\", \"matLine\", \"\"]], \"*\"];\nconst _c3 = [\"[mat-list-avatar], [mat-list-icon], [matListAvatar], [matListIcon]\", \"[mat-line], [matLine]\", \"*\"];\nconst _c4 = [\"text\"];\nconst _c5 = [\"*\", [[\"\", \"mat-list-avatar\", \"\"], [\"\", \"mat-list-icon\", \"\"], [\"\", \"matListAvatar\", \"\"], [\"\", \"matListIcon\", \"\"]]];\nconst _c6 = [\"*\", \"[mat-list-avatar], [mat-list-icon], [matListAvatar], [matListIcon]\"];\nfunction MatLegacyListOption_mat_pseudo_checkbox_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"mat-pseudo-checkbox\", 5);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"state\", ctx_r0.selected ? \"checked\" : \"unchecked\")(\"disabled\", ctx_r0.disabled);\n }\n}\nexport { MAT_LIST as MAT_LEGACY_LIST, MAT_NAV_LIST as MAT_LEGACY_NAV_LIST } from '@angular/material/list';\nimport { Subject } from 'rxjs';\nimport { takeUntil, startWith } from 'rxjs/operators';\nimport * as i3 from '@angular/cdk/a11y';\nimport { FocusKeyManager } from '@angular/cdk/a11y';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { hasModifierKey, A, ENTER, SPACE, UP_ARROW, DOWN_ARROW } from '@angular/cdk/keycodes';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { MatDividerModule } from '@angular/material/divider';\n\n// Boilerplate for applying mixins to MatList.\n/** @docs-private */\nconst _MatListBase = mixinDisabled(mixinDisableRipple(class {}));\n// Boilerplate for applying mixins to MatListItem.\n/** @docs-private */\nconst _MatListItemMixinBase = mixinDisableRipple(class {});\n/**\n * @deprecated Use `MatNavList` from `@angular/material/list` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyNavList extends _MatListBase {\n constructor() {\n super(...arguments);\n /** Emits when the state of the list changes. */\n this._stateChanges = new Subject();\n }\n ngOnChanges() {\n this._stateChanges.next();\n }\n ngOnDestroy() {\n this._stateChanges.complete();\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatLegacyNavList_BaseFactory;\n return function MatLegacyNavList_Factory(ɵt) {\n return (ɵMatLegacyNavList_BaseFactory || (ɵMatLegacyNavList_BaseFactory = i0.ɵɵgetInheritedFactory(MatLegacyNavList)))(ɵt || MatLegacyNavList);\n };\n })();\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatLegacyNavList,\n selectors: [[\"mat-nav-list\"]],\n hostAttrs: [\"role\", \"navigation\", 1, \"mat-nav-list\", \"mat-list-base\"],\n inputs: {\n disableRipple: \"disableRipple\",\n disabled: \"disabled\"\n },\n exportAs: [\"matNavList\"],\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_NAV_LIST,\n useExisting: MatLegacyNavList\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature],\n ngContentSelectors: _c0,\n decls: 1,\n vars: 0,\n template: function MatLegacyNavList_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵprojection(0);\n }\n },\n styles: [\".mat-subheader{display:flex;box-sizing:border-box;padding:16px;align-items:center}.mat-list-base .mat-subheader{margin:0}button.mat-list-item,button.mat-list-option{padding:0;width:100%;background:none;color:inherit;border:none;outline:inherit;-webkit-tap-highlight-color:rgba(0,0,0,0);text-align:left}[dir=rtl] button.mat-list-item,[dir=rtl] button.mat-list-option{text-align:right}button.mat-list-item::-moz-focus-inner,button.mat-list-option::-moz-focus-inner{border:0}.mat-list-base{padding-top:8px;display:block;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-list-base .mat-subheader{height:48px;line-height:16px}.mat-list-base .mat-subheader:first-child{margin-top:-8px}.mat-list-base .mat-list-item,.mat-list-base .mat-list-option{display:block;height:48px;-webkit-tap-highlight-color:rgba(0,0,0,0);width:100%;padding:0}.mat-list-base .mat-list-item .mat-list-item-content,.mat-list-base .mat-list-option .mat-list-item-content{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:0 16px;position:relative;height:inherit}.mat-list-base .mat-list-item .mat-list-item-content-reverse,.mat-list-base .mat-list-option .mat-list-item-content-reverse{display:flex;align-items:center;padding:0 16px;flex-direction:row-reverse;justify-content:space-around}.mat-list-base .mat-list-item .mat-list-item-ripple,.mat-list-base .mat-list-option .mat-list-item-ripple{display:block;top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-list-base .mat-list-item.mat-list-item-with-avatar,.mat-list-base .mat-list-option.mat-list-item-with-avatar{height:56px}.mat-list-base .mat-list-item.mat-2-line,.mat-list-base .mat-list-option.mat-2-line{height:72px}.mat-list-base .mat-list-item.mat-3-line,.mat-list-base .mat-list-option.mat-3-line{height:88px}.mat-list-base .mat-list-item.mat-multi-line,.mat-list-base .mat-list-option.mat-multi-line{height:auto}.mat-list-base .mat-list-item.mat-multi-line .mat-list-item-content,.mat-list-base .mat-list-option.mat-multi-line .mat-list-item-content{padding-top:16px;padding-bottom:16px}.mat-list-base .mat-list-item .mat-list-text,.mat-list-base .mat-list-option .mat-list-text{display:flex;flex-direction:column;flex:auto;box-sizing:border-box;overflow:hidden;padding:0}.mat-list-base .mat-list-item .mat-list-text>*,.mat-list-base .mat-list-option .mat-list-text>*{margin:0;padding:0;font-weight:normal;font-size:inherit}.mat-list-base .mat-list-item .mat-list-text:empty,.mat-list-base .mat-list-option .mat-list-text:empty{display:none}.mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:0;padding-left:16px}[dir=rtl] .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:0}.mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-left:0;padding-right:16px}[dir=rtl] .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:0;padding-left:16px}.mat-list-base .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:16px}.mat-list-base .mat-list-item .mat-list-avatar,.mat-list-base .mat-list-option .mat-list-avatar{flex-shrink:0;width:40px;height:40px;border-radius:50%;object-fit:cover}.mat-list-base .mat-list-item .mat-list-avatar~.mat-divider-inset,.mat-list-base .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:72px;width:calc(100% - 72px)}[dir=rtl] .mat-list-base .mat-list-item .mat-list-avatar~.mat-divider-inset,[dir=rtl] .mat-list-base .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:auto;margin-right:72px}.mat-list-base .mat-list-item .mat-list-icon,.mat-list-base .mat-list-option .mat-list-icon{flex-shrink:0;width:24px;height:24px;font-size:24px;box-sizing:content-box;border-radius:50%;padding:4px}.mat-list-base .mat-list-item .mat-list-icon~.mat-divider-inset,.mat-list-base .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:64px;width:calc(100% - 64px)}[dir=rtl] .mat-list-base .mat-list-item .mat-list-icon~.mat-divider-inset,[dir=rtl] .mat-list-base .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:auto;margin-right:64px}.mat-list-base .mat-list-item .mat-divider,.mat-list-base .mat-list-option .mat-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mat-list-base .mat-list-item .mat-divider,[dir=rtl] .mat-list-base .mat-list-option .mat-divider{margin-left:auto;margin-right:0}.mat-list-base .mat-list-item .mat-divider.mat-divider-inset,.mat-list-base .mat-list-option .mat-divider.mat-divider-inset{position:absolute}.mat-list-base[dense]{padding-top:4px;display:block}.mat-list-base[dense] .mat-subheader{height:40px;line-height:8px}.mat-list-base[dense] .mat-subheader:first-child{margin-top:-4px}.mat-list-base[dense] .mat-list-item,.mat-list-base[dense] .mat-list-option{display:block;height:40px;-webkit-tap-highlight-color:rgba(0,0,0,0);width:100%;padding:0}.mat-list-base[dense] .mat-list-item .mat-list-item-content,.mat-list-base[dense] .mat-list-option .mat-list-item-content{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:0 16px;position:relative;height:inherit}.mat-list-base[dense] .mat-list-item .mat-list-item-content-reverse,.mat-list-base[dense] .mat-list-option .mat-list-item-content-reverse{display:flex;align-items:center;padding:0 16px;flex-direction:row-reverse;justify-content:space-around}.mat-list-base[dense] .mat-list-item .mat-list-item-ripple,.mat-list-base[dense] .mat-list-option .mat-list-item-ripple{display:block;top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar{height:48px}.mat-list-base[dense] .mat-list-item.mat-2-line,.mat-list-base[dense] .mat-list-option.mat-2-line{height:60px}.mat-list-base[dense] .mat-list-item.mat-3-line,.mat-list-base[dense] .mat-list-option.mat-3-line{height:76px}.mat-list-base[dense] .mat-list-item.mat-multi-line,.mat-list-base[dense] .mat-list-option.mat-multi-line{height:auto}.mat-list-base[dense] .mat-list-item.mat-multi-line .mat-list-item-content,.mat-list-base[dense] .mat-list-option.mat-multi-line .mat-list-item-content{padding-top:16px;padding-bottom:16px}.mat-list-base[dense] .mat-list-item .mat-list-text,.mat-list-base[dense] .mat-list-option .mat-list-text{display:flex;flex-direction:column;flex:auto;box-sizing:border-box;overflow:hidden;padding:0}.mat-list-base[dense] .mat-list-item .mat-list-text>*,.mat-list-base[dense] .mat-list-option .mat-list-text>*{margin:0;padding:0;font-weight:normal;font-size:inherit}.mat-list-base[dense] .mat-list-item .mat-list-text:empty,.mat-list-base[dense] .mat-list-option .mat-list-text:empty{display:none}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:0;padding-left:16px}[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:0}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-left:0;padding-right:16px}[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:0;padding-left:16px}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:16px}.mat-list-base[dense] .mat-list-item .mat-list-avatar,.mat-list-base[dense] .mat-list-option .mat-list-avatar{flex-shrink:0;width:36px;height:36px;border-radius:50%;object-fit:cover}.mat-list-base[dense] .mat-list-item .mat-list-avatar~.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:68px;width:calc(100% - 68px)}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-list-avatar~.mat-divider-inset,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:auto;margin-right:68px}.mat-list-base[dense] .mat-list-item .mat-list-icon,.mat-list-base[dense] .mat-list-option .mat-list-icon{flex-shrink:0;width:20px;height:20px;font-size:20px;box-sizing:content-box;border-radius:50%;padding:4px}.mat-list-base[dense] .mat-list-item .mat-list-icon~.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:60px;width:calc(100% - 60px)}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-list-icon~.mat-divider-inset,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:auto;margin-right:60px}.mat-list-base[dense] .mat-list-item .mat-divider,.mat-list-base[dense] .mat-list-option .mat-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-divider,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-divider{margin-left:auto;margin-right:0}.mat-list-base[dense] .mat-list-item .mat-divider.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-divider.mat-divider-inset{position:absolute}.mat-nav-list a{text-decoration:none;color:inherit}.mat-nav-list .mat-list-item{cursor:pointer;outline:none}mat-action-list .mat-list-item{cursor:pointer;outline:inherit}.mat-list-option:not(.mat-list-item-disabled){cursor:pointer;outline:none}.mat-list-item-disabled{pointer-events:none}.cdk-high-contrast-active .mat-list-item-disabled{opacity:.5}.cdk-high-contrast-active :host .mat-list-item-disabled{opacity:.5}.cdk-high-contrast-active .mat-list-option:hover,.cdk-high-contrast-active .mat-nav-list .mat-list-item:hover,.cdk-high-contrast-active mat-action-list .mat-list-item:hover{outline:dotted 1px;z-index:1}.cdk-high-contrast-active .mat-list-single-selected-option::after{content:\\\"\\\";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}.cdk-high-contrast-active [dir=rtl] .mat-list-single-selected-option::after{right:auto;left:16px}@media(hover: none){.mat-list-option:not(.mat-list-single-selected-option):not(.mat-list-item-disabled):hover,.mat-nav-list .mat-list-item:not(.mat-list-item-disabled):hover,.mat-action-list .mat-list-item:not(.mat-list-item-disabled):hover{background:none}}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyNavList, [{\n type: Component,\n args: [{\n selector: 'mat-nav-list',\n exportAs: 'matNavList',\n host: {\n 'role': 'navigation',\n 'class': 'mat-nav-list mat-list-base'\n },\n inputs: ['disableRipple', 'disabled'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{\n provide: MAT_NAV_LIST,\n useExisting: MatLegacyNavList\n }],\n template: \"\\n\\n\",\n styles: [\".mat-subheader{display:flex;box-sizing:border-box;padding:16px;align-items:center}.mat-list-base .mat-subheader{margin:0}button.mat-list-item,button.mat-list-option{padding:0;width:100%;background:none;color:inherit;border:none;outline:inherit;-webkit-tap-highlight-color:rgba(0,0,0,0);text-align:left}[dir=rtl] button.mat-list-item,[dir=rtl] button.mat-list-option{text-align:right}button.mat-list-item::-moz-focus-inner,button.mat-list-option::-moz-focus-inner{border:0}.mat-list-base{padding-top:8px;display:block;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-list-base .mat-subheader{height:48px;line-height:16px}.mat-list-base .mat-subheader:first-child{margin-top:-8px}.mat-list-base .mat-list-item,.mat-list-base .mat-list-option{display:block;height:48px;-webkit-tap-highlight-color:rgba(0,0,0,0);width:100%;padding:0}.mat-list-base .mat-list-item .mat-list-item-content,.mat-list-base .mat-list-option .mat-list-item-content{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:0 16px;position:relative;height:inherit}.mat-list-base .mat-list-item .mat-list-item-content-reverse,.mat-list-base .mat-list-option .mat-list-item-content-reverse{display:flex;align-items:center;padding:0 16px;flex-direction:row-reverse;justify-content:space-around}.mat-list-base .mat-list-item .mat-list-item-ripple,.mat-list-base .mat-list-option .mat-list-item-ripple{display:block;top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-list-base .mat-list-item.mat-list-item-with-avatar,.mat-list-base .mat-list-option.mat-list-item-with-avatar{height:56px}.mat-list-base .mat-list-item.mat-2-line,.mat-list-base .mat-list-option.mat-2-line{height:72px}.mat-list-base .mat-list-item.mat-3-line,.mat-list-base .mat-list-option.mat-3-line{height:88px}.mat-list-base .mat-list-item.mat-multi-line,.mat-list-base .mat-list-option.mat-multi-line{height:auto}.mat-list-base .mat-list-item.mat-multi-line .mat-list-item-content,.mat-list-base .mat-list-option.mat-multi-line .mat-list-item-content{padding-top:16px;padding-bottom:16px}.mat-list-base .mat-list-item .mat-list-text,.mat-list-base .mat-list-option .mat-list-text{display:flex;flex-direction:column;flex:auto;box-sizing:border-box;overflow:hidden;padding:0}.mat-list-base .mat-list-item .mat-list-text>*,.mat-list-base .mat-list-option .mat-list-text>*{margin:0;padding:0;font-weight:normal;font-size:inherit}.mat-list-base .mat-list-item .mat-list-text:empty,.mat-list-base .mat-list-option .mat-list-text:empty{display:none}.mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:0;padding-left:16px}[dir=rtl] .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:0}.mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-left:0;padding-right:16px}[dir=rtl] .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:0;padding-left:16px}.mat-list-base .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:16px}.mat-list-base .mat-list-item .mat-list-avatar,.mat-list-base .mat-list-option .mat-list-avatar{flex-shrink:0;width:40px;height:40px;border-radius:50%;object-fit:cover}.mat-list-base .mat-list-item .mat-list-avatar~.mat-divider-inset,.mat-list-base .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:72px;width:calc(100% - 72px)}[dir=rtl] .mat-list-base .mat-list-item .mat-list-avatar~.mat-divider-inset,[dir=rtl] .mat-list-base .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:auto;margin-right:72px}.mat-list-base .mat-list-item .mat-list-icon,.mat-list-base .mat-list-option .mat-list-icon{flex-shrink:0;width:24px;height:24px;font-size:24px;box-sizing:content-box;border-radius:50%;padding:4px}.mat-list-base .mat-list-item .mat-list-icon~.mat-divider-inset,.mat-list-base .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:64px;width:calc(100% - 64px)}[dir=rtl] .mat-list-base .mat-list-item .mat-list-icon~.mat-divider-inset,[dir=rtl] .mat-list-base .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:auto;margin-right:64px}.mat-list-base .mat-list-item .mat-divider,.mat-list-base .mat-list-option .mat-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mat-list-base .mat-list-item .mat-divider,[dir=rtl] .mat-list-base .mat-list-option .mat-divider{margin-left:auto;margin-right:0}.mat-list-base .mat-list-item .mat-divider.mat-divider-inset,.mat-list-base .mat-list-option .mat-divider.mat-divider-inset{position:absolute}.mat-list-base[dense]{padding-top:4px;display:block}.mat-list-base[dense] .mat-subheader{height:40px;line-height:8px}.mat-list-base[dense] .mat-subheader:first-child{margin-top:-4px}.mat-list-base[dense] .mat-list-item,.mat-list-base[dense] .mat-list-option{display:block;height:40px;-webkit-tap-highlight-color:rgba(0,0,0,0);width:100%;padding:0}.mat-list-base[dense] .mat-list-item .mat-list-item-content,.mat-list-base[dense] .mat-list-option .mat-list-item-content{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:0 16px;position:relative;height:inherit}.mat-list-base[dense] .mat-list-item .mat-list-item-content-reverse,.mat-list-base[dense] .mat-list-option .mat-list-item-content-reverse{display:flex;align-items:center;padding:0 16px;flex-direction:row-reverse;justify-content:space-around}.mat-list-base[dense] .mat-list-item .mat-list-item-ripple,.mat-list-base[dense] .mat-list-option .mat-list-item-ripple{display:block;top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar{height:48px}.mat-list-base[dense] .mat-list-item.mat-2-line,.mat-list-base[dense] .mat-list-option.mat-2-line{height:60px}.mat-list-base[dense] .mat-list-item.mat-3-line,.mat-list-base[dense] .mat-list-option.mat-3-line{height:76px}.mat-list-base[dense] .mat-list-item.mat-multi-line,.mat-list-base[dense] .mat-list-option.mat-multi-line{height:auto}.mat-list-base[dense] .mat-list-item.mat-multi-line .mat-list-item-content,.mat-list-base[dense] .mat-list-option.mat-multi-line .mat-list-item-content{padding-top:16px;padding-bottom:16px}.mat-list-base[dense] .mat-list-item .mat-list-text,.mat-list-base[dense] .mat-list-option .mat-list-text{display:flex;flex-direction:column;flex:auto;box-sizing:border-box;overflow:hidden;padding:0}.mat-list-base[dense] .mat-list-item .mat-list-text>*,.mat-list-base[dense] .mat-list-option .mat-list-text>*{margin:0;padding:0;font-weight:normal;font-size:inherit}.mat-list-base[dense] .mat-list-item .mat-list-text:empty,.mat-list-base[dense] .mat-list-option .mat-list-text:empty{display:none}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:0;padding-left:16px}[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:0}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-left:0;padding-right:16px}[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:0;padding-left:16px}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:16px}.mat-list-base[dense] .mat-list-item .mat-list-avatar,.mat-list-base[dense] .mat-list-option .mat-list-avatar{flex-shrink:0;width:36px;height:36px;border-radius:50%;object-fit:cover}.mat-list-base[dense] .mat-list-item .mat-list-avatar~.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:68px;width:calc(100% - 68px)}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-list-avatar~.mat-divider-inset,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:auto;margin-right:68px}.mat-list-base[dense] .mat-list-item .mat-list-icon,.mat-list-base[dense] .mat-list-option .mat-list-icon{flex-shrink:0;width:20px;height:20px;font-size:20px;box-sizing:content-box;border-radius:50%;padding:4px}.mat-list-base[dense] .mat-list-item .mat-list-icon~.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:60px;width:calc(100% - 60px)}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-list-icon~.mat-divider-inset,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:auto;margin-right:60px}.mat-list-base[dense] .mat-list-item .mat-divider,.mat-list-base[dense] .mat-list-option .mat-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-divider,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-divider{margin-left:auto;margin-right:0}.mat-list-base[dense] .mat-list-item .mat-divider.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-divider.mat-divider-inset{position:absolute}.mat-nav-list a{text-decoration:none;color:inherit}.mat-nav-list .mat-list-item{cursor:pointer;outline:none}mat-action-list .mat-list-item{cursor:pointer;outline:inherit}.mat-list-option:not(.mat-list-item-disabled){cursor:pointer;outline:none}.mat-list-item-disabled{pointer-events:none}.cdk-high-contrast-active .mat-list-item-disabled{opacity:.5}.cdk-high-contrast-active :host .mat-list-item-disabled{opacity:.5}.cdk-high-contrast-active .mat-list-option:hover,.cdk-high-contrast-active .mat-nav-list .mat-list-item:hover,.cdk-high-contrast-active mat-action-list .mat-list-item:hover{outline:dotted 1px;z-index:1}.cdk-high-contrast-active .mat-list-single-selected-option::after{content:\\\"\\\";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}.cdk-high-contrast-active [dir=rtl] .mat-list-single-selected-option::after{right:auto;left:16px}@media(hover: none){.mat-list-option:not(.mat-list-single-selected-option):not(.mat-list-item-disabled):hover,.mat-nav-list .mat-list-item:not(.mat-list-item-disabled):hover,.mat-action-list .mat-list-item:not(.mat-list-item-disabled):hover{background:none}}\"]\n }]\n }], null, null);\n})();\n/**\n * @deprecated Use `MatList` from `@angular/material/list` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyList extends _MatListBase {\n constructor(_elementRef) {\n super();\n this._elementRef = _elementRef;\n /** Emits when the state of the list changes. */\n this._stateChanges = new Subject();\n if (this._getListType() === 'action-list') {\n _elementRef.nativeElement.classList.add('mat-action-list');\n _elementRef.nativeElement.setAttribute('role', 'group');\n }\n }\n _getListType() {\n const nodeName = this._elementRef.nativeElement.nodeName.toLowerCase();\n if (nodeName === 'mat-list') {\n return 'list';\n }\n if (nodeName === 'mat-action-list') {\n return 'action-list';\n }\n return null;\n }\n ngOnChanges() {\n this._stateChanges.next();\n }\n ngOnDestroy() {\n this._stateChanges.complete();\n }\n static {\n this.ɵfac = function MatLegacyList_Factory(ɵt) {\n return new (ɵt || MatLegacyList)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatLegacyList,\n selectors: [[\"mat-list\"], [\"mat-action-list\"]],\n hostAttrs: [1, \"mat-list\", \"mat-list-base\"],\n inputs: {\n disableRipple: \"disableRipple\",\n disabled: \"disabled\"\n },\n exportAs: [\"matList\"],\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_LIST,\n useExisting: MatLegacyList\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature],\n ngContentSelectors: _c0,\n decls: 1,\n vars: 0,\n template: function MatLegacyList_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵprojection(0);\n }\n },\n styles: [_c1],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyList, [{\n type: Component,\n args: [{\n selector: 'mat-list, mat-action-list',\n exportAs: 'matList',\n host: {\n 'class': 'mat-list mat-list-base'\n },\n inputs: ['disableRipple', 'disabled'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{\n provide: MAT_LIST,\n useExisting: MatLegacyList\n }],\n template: \"\\n\\n\",\n styles: [\".mat-subheader{display:flex;box-sizing:border-box;padding:16px;align-items:center}.mat-list-base .mat-subheader{margin:0}button.mat-list-item,button.mat-list-option{padding:0;width:100%;background:none;color:inherit;border:none;outline:inherit;-webkit-tap-highlight-color:rgba(0,0,0,0);text-align:left}[dir=rtl] button.mat-list-item,[dir=rtl] button.mat-list-option{text-align:right}button.mat-list-item::-moz-focus-inner,button.mat-list-option::-moz-focus-inner{border:0}.mat-list-base{padding-top:8px;display:block;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-list-base .mat-subheader{height:48px;line-height:16px}.mat-list-base .mat-subheader:first-child{margin-top:-8px}.mat-list-base .mat-list-item,.mat-list-base .mat-list-option{display:block;height:48px;-webkit-tap-highlight-color:rgba(0,0,0,0);width:100%;padding:0}.mat-list-base .mat-list-item .mat-list-item-content,.mat-list-base .mat-list-option .mat-list-item-content{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:0 16px;position:relative;height:inherit}.mat-list-base .mat-list-item .mat-list-item-content-reverse,.mat-list-base .mat-list-option .mat-list-item-content-reverse{display:flex;align-items:center;padding:0 16px;flex-direction:row-reverse;justify-content:space-around}.mat-list-base .mat-list-item .mat-list-item-ripple,.mat-list-base .mat-list-option .mat-list-item-ripple{display:block;top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-list-base .mat-list-item.mat-list-item-with-avatar,.mat-list-base .mat-list-option.mat-list-item-with-avatar{height:56px}.mat-list-base .mat-list-item.mat-2-line,.mat-list-base .mat-list-option.mat-2-line{height:72px}.mat-list-base .mat-list-item.mat-3-line,.mat-list-base .mat-list-option.mat-3-line{height:88px}.mat-list-base .mat-list-item.mat-multi-line,.mat-list-base .mat-list-option.mat-multi-line{height:auto}.mat-list-base .mat-list-item.mat-multi-line .mat-list-item-content,.mat-list-base .mat-list-option.mat-multi-line .mat-list-item-content{padding-top:16px;padding-bottom:16px}.mat-list-base .mat-list-item .mat-list-text,.mat-list-base .mat-list-option .mat-list-text{display:flex;flex-direction:column;flex:auto;box-sizing:border-box;overflow:hidden;padding:0}.mat-list-base .mat-list-item .mat-list-text>*,.mat-list-base .mat-list-option .mat-list-text>*{margin:0;padding:0;font-weight:normal;font-size:inherit}.mat-list-base .mat-list-item .mat-list-text:empty,.mat-list-base .mat-list-option .mat-list-text:empty{display:none}.mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:0;padding-left:16px}[dir=rtl] .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:0}.mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-left:0;padding-right:16px}[dir=rtl] .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:0;padding-left:16px}.mat-list-base .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:16px}.mat-list-base .mat-list-item .mat-list-avatar,.mat-list-base .mat-list-option .mat-list-avatar{flex-shrink:0;width:40px;height:40px;border-radius:50%;object-fit:cover}.mat-list-base .mat-list-item .mat-list-avatar~.mat-divider-inset,.mat-list-base .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:72px;width:calc(100% - 72px)}[dir=rtl] .mat-list-base .mat-list-item .mat-list-avatar~.mat-divider-inset,[dir=rtl] .mat-list-base .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:auto;margin-right:72px}.mat-list-base .mat-list-item .mat-list-icon,.mat-list-base .mat-list-option .mat-list-icon{flex-shrink:0;width:24px;height:24px;font-size:24px;box-sizing:content-box;border-radius:50%;padding:4px}.mat-list-base .mat-list-item .mat-list-icon~.mat-divider-inset,.mat-list-base .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:64px;width:calc(100% - 64px)}[dir=rtl] .mat-list-base .mat-list-item .mat-list-icon~.mat-divider-inset,[dir=rtl] .mat-list-base .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:auto;margin-right:64px}.mat-list-base .mat-list-item .mat-divider,.mat-list-base .mat-list-option .mat-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mat-list-base .mat-list-item .mat-divider,[dir=rtl] .mat-list-base .mat-list-option .mat-divider{margin-left:auto;margin-right:0}.mat-list-base .mat-list-item .mat-divider.mat-divider-inset,.mat-list-base .mat-list-option .mat-divider.mat-divider-inset{position:absolute}.mat-list-base[dense]{padding-top:4px;display:block}.mat-list-base[dense] .mat-subheader{height:40px;line-height:8px}.mat-list-base[dense] .mat-subheader:first-child{margin-top:-4px}.mat-list-base[dense] .mat-list-item,.mat-list-base[dense] .mat-list-option{display:block;height:40px;-webkit-tap-highlight-color:rgba(0,0,0,0);width:100%;padding:0}.mat-list-base[dense] .mat-list-item .mat-list-item-content,.mat-list-base[dense] .mat-list-option .mat-list-item-content{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:0 16px;position:relative;height:inherit}.mat-list-base[dense] .mat-list-item .mat-list-item-content-reverse,.mat-list-base[dense] .mat-list-option .mat-list-item-content-reverse{display:flex;align-items:center;padding:0 16px;flex-direction:row-reverse;justify-content:space-around}.mat-list-base[dense] .mat-list-item .mat-list-item-ripple,.mat-list-base[dense] .mat-list-option .mat-list-item-ripple{display:block;top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar{height:48px}.mat-list-base[dense] .mat-list-item.mat-2-line,.mat-list-base[dense] .mat-list-option.mat-2-line{height:60px}.mat-list-base[dense] .mat-list-item.mat-3-line,.mat-list-base[dense] .mat-list-option.mat-3-line{height:76px}.mat-list-base[dense] .mat-list-item.mat-multi-line,.mat-list-base[dense] .mat-list-option.mat-multi-line{height:auto}.mat-list-base[dense] .mat-list-item.mat-multi-line .mat-list-item-content,.mat-list-base[dense] .mat-list-option.mat-multi-line .mat-list-item-content{padding-top:16px;padding-bottom:16px}.mat-list-base[dense] .mat-list-item .mat-list-text,.mat-list-base[dense] .mat-list-option .mat-list-text{display:flex;flex-direction:column;flex:auto;box-sizing:border-box;overflow:hidden;padding:0}.mat-list-base[dense] .mat-list-item .mat-list-text>*,.mat-list-base[dense] .mat-list-option .mat-list-text>*{margin:0;padding:0;font-weight:normal;font-size:inherit}.mat-list-base[dense] .mat-list-item .mat-list-text:empty,.mat-list-base[dense] .mat-list-option .mat-list-text:empty{display:none}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:0;padding-left:16px}[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:0}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-left:0;padding-right:16px}[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:0;padding-left:16px}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:16px}.mat-list-base[dense] .mat-list-item .mat-list-avatar,.mat-list-base[dense] .mat-list-option .mat-list-avatar{flex-shrink:0;width:36px;height:36px;border-radius:50%;object-fit:cover}.mat-list-base[dense] .mat-list-item .mat-list-avatar~.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:68px;width:calc(100% - 68px)}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-list-avatar~.mat-divider-inset,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:auto;margin-right:68px}.mat-list-base[dense] .mat-list-item .mat-list-icon,.mat-list-base[dense] .mat-list-option .mat-list-icon{flex-shrink:0;width:20px;height:20px;font-size:20px;box-sizing:content-box;border-radius:50%;padding:4px}.mat-list-base[dense] .mat-list-item .mat-list-icon~.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:60px;width:calc(100% - 60px)}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-list-icon~.mat-divider-inset,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:auto;margin-right:60px}.mat-list-base[dense] .mat-list-item .mat-divider,.mat-list-base[dense] .mat-list-option .mat-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-divider,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-divider{margin-left:auto;margin-right:0}.mat-list-base[dense] .mat-list-item .mat-divider.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-divider.mat-divider-inset{position:absolute}.mat-nav-list a{text-decoration:none;color:inherit}.mat-nav-list .mat-list-item{cursor:pointer;outline:none}mat-action-list .mat-list-item{cursor:pointer;outline:inherit}.mat-list-option:not(.mat-list-item-disabled){cursor:pointer;outline:none}.mat-list-item-disabled{pointer-events:none}.cdk-high-contrast-active .mat-list-item-disabled{opacity:.5}.cdk-high-contrast-active :host .mat-list-item-disabled{opacity:.5}.cdk-high-contrast-active .mat-list-option:hover,.cdk-high-contrast-active .mat-nav-list .mat-list-item:hover,.cdk-high-contrast-active mat-action-list .mat-list-item:hover{outline:dotted 1px;z-index:1}.cdk-high-contrast-active .mat-list-single-selected-option::after{content:\\\"\\\";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}.cdk-high-contrast-active [dir=rtl] .mat-list-single-selected-option::after{right:auto;left:16px}@media(hover: none){.mat-list-option:not(.mat-list-single-selected-option):not(.mat-list-item-disabled):hover,.mat-nav-list .mat-list-item:not(.mat-list-item-disabled):hover,.mat-action-list .mat-list-item:not(.mat-list-item-disabled):hover{background:none}}\"]\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }];\n }, null);\n})();\n/**\n * Directive whose purpose is to add the mat- CSS styling to this selector.\n * @docs-private\n * @deprecated Use `MatListAvatarCssMatStyler` from `@angular/material/list` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyListAvatarCssMatStyler {\n static {\n this.ɵfac = function MatLegacyListAvatarCssMatStyler_Factory(ɵt) {\n return new (ɵt || MatLegacyListAvatarCssMatStyler)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyListAvatarCssMatStyler,\n selectors: [[\"\", \"mat-list-avatar\", \"\"], [\"\", \"matListAvatar\", \"\"]],\n hostAttrs: [1, \"mat-list-avatar\"]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyListAvatarCssMatStyler, [{\n type: Directive,\n args: [{\n selector: '[mat-list-avatar], [matListAvatar]',\n host: {\n 'class': 'mat-list-avatar'\n }\n }]\n }], null, null);\n})();\n/**\n * Directive whose purpose is to add the mat- CSS styling to this selector.\n * @docs-private\n * @deprecated Use `MatListIconCssMatStyler` from `@angular/material/list` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyListIconCssMatStyler {\n static {\n this.ɵfac = function MatLegacyListIconCssMatStyler_Factory(ɵt) {\n return new (ɵt || MatLegacyListIconCssMatStyler)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyListIconCssMatStyler,\n selectors: [[\"\", \"mat-list-icon\", \"\"], [\"\", \"matListIcon\", \"\"]],\n hostAttrs: [1, \"mat-list-icon\"]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyListIconCssMatStyler, [{\n type: Directive,\n args: [{\n selector: '[mat-list-icon], [matListIcon]',\n host: {\n 'class': 'mat-list-icon'\n }\n }]\n }], null, null);\n})();\n/**\n * Directive whose purpose is to add the mat- CSS styling to this selector.\n * @docs-private\n * @deprecated Use `MatListSubheaderCssMatStyler` from `@angular/material/list` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyListSubheaderCssMatStyler {\n static {\n this.ɵfac = function MatLegacyListSubheaderCssMatStyler_Factory(ɵt) {\n return new (ɵt || MatLegacyListSubheaderCssMatStyler)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyListSubheaderCssMatStyler,\n selectors: [[\"\", \"mat-subheader\", \"\"], [\"\", \"matSubheader\", \"\"]],\n hostAttrs: [1, \"mat-subheader\"]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyListSubheaderCssMatStyler, [{\n type: Directive,\n args: [{\n selector: '[mat-subheader], [matSubheader]',\n host: {\n 'class': 'mat-subheader'\n }\n }]\n }], null, null);\n})();\n/**\n * An item within a Material Design list.\n * @deprecated Use `MatListItem` from `@angular/material/list` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyListItem extends _MatListItemMixinBase {\n constructor(_element, _changeDetectorRef, navList, list) {\n super();\n this._element = _element;\n this._isInteractiveList = false;\n this._destroyed = new Subject();\n this._disabled = false;\n this._isInteractiveList = !!(navList || list && list._getListType() === 'action-list');\n this._list = navList || list;\n // If no type attribute is specified for , set it to \"button\".\n // If a type attribute is already specified, do nothing.\n const element = this._getHostElement();\n if (element.nodeName.toLowerCase() === 'button' && !element.hasAttribute('type')) {\n element.setAttribute('type', 'button');\n }\n if (this._list) {\n // React to changes in the state of the parent list since\n // some of the item's properties depend on it (e.g. `disableRipple`).\n this._list._stateChanges.pipe(takeUntil(this._destroyed)).subscribe(() => {\n _changeDetectorRef.markForCheck();\n });\n }\n }\n /** Whether the option is disabled. */\n get disabled() {\n return this._disabled || !!(this._list && this._list.disabled);\n }\n set disabled(value) {\n this._disabled = coerceBooleanProperty(value);\n }\n ngAfterContentInit() {\n setLines(this._lines, this._element);\n }\n ngOnDestroy() {\n this._destroyed.next();\n this._destroyed.complete();\n }\n /** Whether this list item should show a ripple effect when clicked. */\n _isRippleDisabled() {\n return !this._isInteractiveList || this.disableRipple || !!(this._list && this._list.disableRipple);\n }\n /** Retrieves the DOM element of the component host. */\n _getHostElement() {\n return this._element.nativeElement;\n }\n static {\n this.ɵfac = function MatLegacyListItem_Factory(ɵt) {\n return new (ɵt || MatLegacyListItem)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(MAT_NAV_LIST, 8), i0.ɵɵdirectiveInject(MAT_LIST, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatLegacyListItem,\n selectors: [[\"mat-list-item\"], [\"a\", \"mat-list-item\", \"\"], [\"button\", \"mat-list-item\", \"\"]],\n contentQueries: function MatLegacyListItem_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MatLegacyListAvatarCssMatStyler, 5);\n i0.ɵɵcontentQuery(dirIndex, MatLegacyListIconCssMatStyler, 5);\n i0.ɵɵcontentQuery(dirIndex, MatLine, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._avatar = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._icon = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._lines = _t);\n }\n },\n hostAttrs: [1, \"mat-list-item\", \"mat-focus-indicator\"],\n hostVars: 4,\n hostBindings: function MatLegacyListItem_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"mat-list-item-disabled\", ctx.disabled)(\"mat-list-item-with-avatar\", ctx._avatar || ctx._icon);\n }\n },\n inputs: {\n disableRipple: \"disableRipple\",\n disabled: \"disabled\"\n },\n exportAs: [\"matListItem\"],\n features: [i0.ɵɵInheritDefinitionFeature],\n ngContentSelectors: _c3,\n decls: 6,\n vars: 2,\n consts: [[1, \"mat-list-item-content\"], [\"mat-ripple\", \"\", 1, \"mat-list-item-ripple\", 3, \"matRippleTrigger\", \"matRippleDisabled\"], [1, \"mat-list-text\"]],\n template: function MatLegacyListItem_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c2);\n i0.ɵɵelementStart(0, \"span\", 0);\n i0.ɵɵelement(1, \"span\", 1);\n i0.ɵɵprojection(2);\n i0.ɵɵelementStart(3, \"span\", 2);\n i0.ɵɵprojection(4, 1);\n i0.ɵɵelementEnd();\n i0.ɵɵprojection(5, 2);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"matRippleTrigger\", ctx._getHostElement())(\"matRippleDisabled\", ctx._isRippleDisabled());\n }\n },\n dependencies: [i1.MatRipple],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyListItem, [{\n type: Component,\n args: [{\n selector: 'mat-list-item, a[mat-list-item], button[mat-list-item]',\n exportAs: 'matListItem',\n host: {\n 'class': 'mat-list-item mat-focus-indicator',\n '[class.mat-list-item-disabled]': 'disabled',\n '[class.mat-list-item-with-avatar]': '_avatar || _icon'\n },\n inputs: ['disableRipple'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: \"\\n \\n \\n\\n \\n \\n\\n \\n\\n \\n\\n\"\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: MatLegacyNavList,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_NAV_LIST]\n }]\n }, {\n type: MatLegacyList,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_LIST]\n }]\n }];\n }, {\n _lines: [{\n type: ContentChildren,\n args: [MatLine, {\n descendants: true\n }]\n }],\n _avatar: [{\n type: ContentChild,\n args: [MatLegacyListAvatarCssMatStyler]\n }],\n _icon: [{\n type: ContentChild,\n args: [MatLegacyListIconCssMatStyler]\n }],\n disabled: [{\n type: Input\n }]\n });\n})();\nconst _MatSelectionListBase = mixinDisableRipple(class {});\nconst _MatListOptionBase = mixinDisableRipple(class {});\n/**\n * @docs-private\n * @deprecated Use `MAT_SELECTION_LIST_VALUE_ACCESSOR` from `@angular/material/list` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nconst MAT_LEGACY_SELECTION_LIST_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MatLegacySelectionList),\n multi: true\n};\n/**\n * Change event that is being fired whenever the selected state of an option changes.\n * @deprecated Use `MatSelectionListChange` from `@angular/material/list` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacySelectionListChange {\n constructor( /** Reference to the selection list that emitted the event. */\n source, /** Reference to the options that have been changed. */\n options) {\n this.source = source;\n this.options = options;\n }\n}\n/**\n * Component for list-options of selection-list. Each list-option can automatically\n * generate a checkbox and can put current item into the selectionModel of selection-list\n * if the current item is selected.\n * @deprecated Use `MatListOption` from `@angular/material/list` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyListOption extends _MatListOptionBase {\n /** Theme color of the list option. This sets the color of the checkbox. */\n get color() {\n return this._color || this.selectionList.color;\n }\n set color(newValue) {\n this._color = newValue;\n }\n /** Value of the option */\n get value() {\n return this._value;\n }\n set value(newValue) {\n if (this.selected && !this.selectionList.compareWith(newValue, this.value) && this._inputsInitialized) {\n this.selected = false;\n }\n this._value = newValue;\n }\n /** Whether the option is disabled. */\n get disabled() {\n return this._disabled || this.selectionList && this.selectionList.disabled;\n }\n set disabled(value) {\n const newValue = coerceBooleanProperty(value);\n if (newValue !== this._disabled) {\n this._disabled = newValue;\n this._changeDetector.markForCheck();\n }\n }\n /** Whether the option is selected. */\n get selected() {\n return this.selectionList.selectedOptions.isSelected(this);\n }\n set selected(value) {\n const isSelected = coerceBooleanProperty(value);\n if (isSelected !== this._selected) {\n this._setSelected(isSelected);\n if (isSelected || this.selectionList.multiple) {\n this.selectionList._reportValueChange();\n }\n }\n }\n constructor(_element, _changeDetector, /** @docs-private */\n selectionList) {\n super();\n this._element = _element;\n this._changeDetector = _changeDetector;\n this.selectionList = selectionList;\n this._selected = false;\n this._disabled = false;\n this._hasFocus = false;\n /**\n * Emits when the selected state of the option has changed.\n * Use to facilitate two-data binding to the `selected` property.\n * @docs-private\n */\n this.selectedChange = new EventEmitter();\n /** Whether the label should appear before or after the checkbox. Defaults to 'after' */\n this.checkboxPosition = 'after';\n /**\n * This is set to true after the first OnChanges cycle so we don't clear the value of `selected`\n * in the first cycle.\n */\n this._inputsInitialized = false;\n }\n ngOnInit() {\n const list = this.selectionList;\n if (list._value && list._value.some(value => list.compareWith(this._value, value))) {\n this._setSelected(true);\n }\n const wasSelected = this._selected;\n // List options that are selected at initialization can't be reported properly to the form\n // control. This is because it takes some time until the selection-list knows about all\n // available options. Also it can happen that the ControlValueAccessor has an initial value\n // that should be used instead. Deferring the value change report to the next tick ensures\n // that the form control value is not being overwritten.\n Promise.resolve().then(() => {\n if (this._selected || wasSelected) {\n this.selected = true;\n this._changeDetector.markForCheck();\n }\n });\n this._inputsInitialized = true;\n }\n ngAfterContentInit() {\n setLines(this._lines, this._element);\n }\n ngOnDestroy() {\n if (this.selected) {\n // We have to delay this until the next tick in order\n // to avoid changed after checked errors.\n Promise.resolve().then(() => {\n this.selected = false;\n });\n }\n const hadFocus = this._hasFocus;\n const newActiveItem = this.selectionList._removeOptionFromList(this);\n // Only move focus if this option was focused at the time it was destroyed.\n if (hadFocus && newActiveItem) {\n newActiveItem.focus();\n }\n }\n /** Toggles the selection state of the option. */\n toggle() {\n this.selected = !this.selected;\n }\n /** Allows for programmatic focusing of the option. */\n focus() {\n this._element.nativeElement.focus();\n }\n /**\n * Returns the list item's text label. Implemented as a part of the FocusKeyManager.\n * @docs-private\n */\n getLabel() {\n return this._text ? this._text.nativeElement.textContent || '' : '';\n }\n /** Whether this list item should show a ripple effect when clicked. */\n _isRippleDisabled() {\n return this.disabled || this.disableRipple || this.selectionList.disableRipple;\n }\n _handleClick() {\n if (!this.disabled && (this.selectionList.multiple || !this.selected)) {\n this.toggle();\n // Emit a change event if the selected state of the option changed through user interaction.\n this.selectionList._emitChangeEvent([this]);\n }\n }\n _handleFocus() {\n this.selectionList._setFocusedOption(this);\n this._hasFocus = true;\n }\n _handleBlur() {\n this.selectionList._onTouched();\n this._hasFocus = false;\n }\n /** Retrieves the DOM element of the component host. */\n _getHostElement() {\n return this._element.nativeElement;\n }\n /** Sets the selected state of the option. Returns whether the value has changed. */\n _setSelected(selected) {\n if (selected === this._selected) {\n return false;\n }\n this._selected = selected;\n if (selected) {\n this.selectionList.selectedOptions.select(this);\n } else {\n this.selectionList.selectedOptions.deselect(this);\n }\n this.selectedChange.emit(selected);\n this._changeDetector.markForCheck();\n return true;\n }\n /**\n * Notifies Angular that the option needs to be checked in the next change detection run. Mainly\n * used to trigger an update of the list option if the disabled state of the selection list\n * changed.\n */\n _markForCheck() {\n this._changeDetector.markForCheck();\n }\n static {\n this.ɵfac = function MatLegacyListOption_Factory(ɵt) {\n return new (ɵt || MatLegacyListOption)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(forwardRef(() => MatLegacySelectionList)));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatLegacyListOption,\n selectors: [[\"mat-list-option\"]],\n contentQueries: function MatLegacyListOption_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MatLegacyListAvatarCssMatStyler, 5);\n i0.ɵɵcontentQuery(dirIndex, MatLegacyListIconCssMatStyler, 5);\n i0.ɵɵcontentQuery(dirIndex, MatLine, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._avatar = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._icon = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._lines = _t);\n }\n },\n viewQuery: function MatLegacyListOption_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c4, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._text = _t.first);\n }\n },\n hostAttrs: [\"role\", \"option\", 1, \"mat-list-item\", \"mat-list-option\", \"mat-focus-indicator\"],\n hostVars: 15,\n hostBindings: function MatLegacyListOption_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"focus\", function MatLegacyListOption_focus_HostBindingHandler() {\n return ctx._handleFocus();\n })(\"blur\", function MatLegacyListOption_blur_HostBindingHandler() {\n return ctx._handleBlur();\n })(\"click\", function MatLegacyListOption_click_HostBindingHandler() {\n return ctx._handleClick();\n });\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-selected\", ctx.selected)(\"aria-disabled\", ctx.disabled)(\"tabindex\", -1);\n i0.ɵɵclassProp(\"mat-list-item-disabled\", ctx.disabled)(\"mat-list-item-with-avatar\", ctx._avatar || ctx._icon)(\"mat-primary\", ctx.color === \"primary\")(\"mat-accent\", ctx.color !== \"primary\" && ctx.color !== \"warn\")(\"mat-warn\", ctx.color === \"warn\")(\"mat-list-single-selected-option\", ctx.selected && !ctx.selectionList.multiple);\n }\n },\n inputs: {\n disableRipple: \"disableRipple\",\n checkboxPosition: \"checkboxPosition\",\n color: \"color\",\n value: \"value\",\n disabled: \"disabled\",\n selected: \"selected\"\n },\n outputs: {\n selectedChange: \"selectedChange\"\n },\n exportAs: [\"matListOption\"],\n features: [i0.ɵɵInheritDefinitionFeature],\n ngContentSelectors: _c6,\n decls: 7,\n vars: 5,\n consts: [[\"text\", \"\"], [1, \"mat-list-item-content\"], [\"mat-ripple\", \"\", 1, \"mat-list-item-ripple\", 3, \"matRippleTrigger\", \"matRippleDisabled\"], [3, \"state\", \"disabled\", 4, \"ngIf\"], [1, \"mat-list-text\"], [3, \"state\", \"disabled\"]],\n template: function MatLegacyListOption_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c5);\n i0.ɵɵelementStart(0, \"div\", 1);\n i0.ɵɵelement(1, \"div\", 2);\n i0.ɵɵtemplate(2, MatLegacyListOption_mat_pseudo_checkbox_2_Template, 1, 2, \"mat-pseudo-checkbox\", 3);\n i0.ɵɵelementStart(3, \"div\", 4, 0);\n i0.ɵɵprojection(5);\n i0.ɵɵelementEnd();\n i0.ɵɵprojection(6, 1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"mat-list-item-content-reverse\", ctx.checkboxPosition == \"after\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"matRippleTrigger\", ctx._getHostElement())(\"matRippleDisabled\", ctx._isRippleDisabled());\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.selectionList.multiple);\n }\n },\n dependencies: [i1.MatRipple, i1.MatPseudoCheckbox, i2.NgIf],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyListOption, [{\n type: Component,\n args: [{\n selector: 'mat-list-option',\n exportAs: 'matListOption',\n inputs: ['disableRipple'],\n host: {\n 'role': 'option',\n 'class': 'mat-list-item mat-list-option mat-focus-indicator',\n '(focus)': '_handleFocus()',\n '(blur)': '_handleBlur()',\n '(click)': '_handleClick()',\n '[class.mat-list-item-disabled]': 'disabled',\n '[class.mat-list-item-with-avatar]': '_avatar || _icon',\n // Manually set the \"primary\" or \"warn\" class if the color has been explicitly\n // set to \"primary\" or \"warn\". The pseudo checkbox picks up these classes for\n // its theme.\n '[class.mat-primary]': 'color === \"primary\"',\n // Even though accent is the default, we need to set this class anyway, because the list might\n // be placed inside a parent that has one of the other colors with a higher specificity.\n '[class.mat-accent]': 'color !== \"primary\" && color !== \"warn\"',\n '[class.mat-warn]': 'color === \"warn\"',\n '[class.mat-list-single-selected-option]': 'selected && !selectionList.multiple',\n '[attr.aria-selected]': 'selected',\n '[attr.aria-disabled]': 'disabled',\n '[attr.tabindex]': '-1'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: \"\\n\\n \\n\\n \\n\\n \\n\\n \\n \\n\\n\\n\"\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: MatLegacySelectionList,\n decorators: [{\n type: Inject,\n args: [forwardRef(() => MatLegacySelectionList)]\n }]\n }];\n }, {\n _avatar: [{\n type: ContentChild,\n args: [MatLegacyListAvatarCssMatStyler]\n }],\n _icon: [{\n type: ContentChild,\n args: [MatLegacyListIconCssMatStyler]\n }],\n _lines: [{\n type: ContentChildren,\n args: [MatLine, {\n descendants: true\n }]\n }],\n selectedChange: [{\n type: Output\n }],\n _text: [{\n type: ViewChild,\n args: ['text']\n }],\n checkboxPosition: [{\n type: Input\n }],\n color: [{\n type: Input\n }],\n value: [{\n type: Input\n }],\n disabled: [{\n type: Input\n }],\n selected: [{\n type: Input\n }]\n });\n})();\n/**\n * Material Design list component where each item is a selectable option. Behaves as a listbox.\n * @deprecated Use `MatSelectionList` from `@angular/material/list` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacySelectionList extends _MatSelectionListBase {\n /** Whether the selection list is disabled. */\n get disabled() {\n return this._disabled;\n }\n set disabled(value) {\n this._disabled = coerceBooleanProperty(value);\n // The `MatSelectionList` and `MatListOption` are using the `OnPush` change detection\n // strategy. Therefore the options will not check for any changes if the `MatSelectionList`\n // changed its state. Since we know that a change to `disabled` property of the list affects\n // the state of the options, we manually mark each option for check.\n this._markOptionsForCheck();\n }\n /** Whether selection is limited to one or multiple items (default multiple). */\n get multiple() {\n return this._multiple;\n }\n set multiple(value) {\n const newValue = coerceBooleanProperty(value);\n if (newValue !== this._multiple) {\n if (this._contentInitialized && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw new Error('Cannot change `multiple` mode of mat-selection-list after initialization.');\n }\n this._multiple = newValue;\n this.selectedOptions = new SelectionModel(this._multiple, this.selectedOptions.selected);\n }\n }\n constructor(_element, _changeDetector, _focusMonitor) {\n super();\n this._element = _element;\n this._changeDetector = _changeDetector;\n this._focusMonitor = _focusMonitor;\n this._multiple = true;\n this._contentInitialized = false;\n /** Emits a change event whenever the selected state of an option changes. */\n this.selectionChange = new EventEmitter();\n /** Theme color of the selection list. This sets the checkbox color for all list options. */\n this.color = 'accent';\n /**\n * Function used for comparing an option against the selected value when determining which\n * options should appear as selected. The first argument is the value of an options. The second\n * one is a value from the selected value. A boolean must be returned.\n */\n this.compareWith = (a1, a2) => a1 === a2;\n this._disabled = false;\n /** The currently selected options. */\n this.selectedOptions = new SelectionModel(this._multiple);\n /** The tabindex of the selection list. */\n this._tabIndex = -1;\n /** View to model callback that should be called whenever the selected options change. */\n this._onChange = _ => {};\n /** Emits when the list has been destroyed. */\n this._destroyed = new Subject();\n /** View to model callback that should be called if the list or its options lost focus. */\n this._onTouched = () => {};\n }\n ngAfterContentInit() {\n this._contentInitialized = true;\n this._keyManager = new FocusKeyManager(this.options).withWrap().withTypeAhead().withHomeAndEnd()\n // Allow disabled items to be focusable. For accessibility reasons, there must be a way for\n // screen reader users, that allows reading the different options of the list.\n .skipPredicate(() => false).withAllowedModifierKeys(['shiftKey']);\n if (this._value) {\n this._setOptionsFromValues(this._value);\n }\n // If the user attempts to tab out of the selection list, allow focus to escape.\n this._keyManager.tabOut.subscribe(() => this._allowFocusEscape());\n // When the number of options change, update the tabindex of the selection list.\n this.options.changes.pipe(startWith(null), takeUntil(this._destroyed)).subscribe(() => {\n this._updateTabIndex();\n });\n // Sync external changes to the model back to the options.\n this.selectedOptions.changed.pipe(takeUntil(this._destroyed)).subscribe(event => {\n if (event.added) {\n for (let item of event.added) {\n item.selected = true;\n }\n }\n if (event.removed) {\n for (let item of event.removed) {\n item.selected = false;\n }\n }\n });\n this._focusMonitor.monitor(this._element).pipe(takeUntil(this._destroyed)).subscribe(origin => {\n if (origin === 'keyboard' || origin === 'program') {\n let toFocus = 0;\n for (let i = 0; i < this.options.length; i++) {\n if (this.options.get(i)?.selected) {\n toFocus = i;\n break;\n }\n }\n this._keyManager.setActiveItem(toFocus);\n }\n });\n }\n ngOnChanges(changes) {\n const disableRippleChanges = changes['disableRipple'];\n const colorChanges = changes['color'];\n if (disableRippleChanges && !disableRippleChanges.firstChange || colorChanges && !colorChanges.firstChange) {\n this._markOptionsForCheck();\n }\n }\n ngOnDestroy() {\n this._keyManager?.destroy();\n this._focusMonitor.stopMonitoring(this._element);\n this._destroyed.next();\n this._destroyed.complete();\n this._isDestroyed = true;\n }\n /** Focuses the selection list. */\n focus(options) {\n this._element.nativeElement.focus(options);\n }\n /** Selects all of the options. Returns the options that changed as a result. */\n selectAll() {\n return this._setAllOptionsSelected(true);\n }\n /** Deselects all of the options. Returns the options that changed as a result. */\n deselectAll() {\n return this._setAllOptionsSelected(false);\n }\n /** Sets the focused option of the selection-list. */\n _setFocusedOption(option) {\n this._keyManager.updateActiveItem(option);\n }\n /**\n * Removes an option from the selection list and updates the active item.\n * @returns Currently-active item.\n */\n _removeOptionFromList(option) {\n const optionIndex = this._getOptionIndex(option);\n if (optionIndex > -1 && this._keyManager.activeItemIndex === optionIndex) {\n // Check whether the option is the last item\n if (optionIndex > 0) {\n this._keyManager.updateActiveItem(optionIndex - 1);\n } else if (optionIndex === 0 && this.options.length > 1) {\n this._keyManager.updateActiveItem(Math.min(optionIndex + 1, this.options.length - 1));\n }\n }\n return this._keyManager.activeItem;\n }\n /** Passes relevant key presses to our key manager. */\n _keydown(event) {\n const keyCode = event.keyCode;\n const manager = this._keyManager;\n const previousFocusIndex = manager.activeItemIndex;\n const hasModifier = hasModifierKey(event);\n switch (keyCode) {\n case SPACE:\n case ENTER:\n if (!hasModifier && !manager.isTyping()) {\n this._toggleFocusedOption();\n // Always prevent space from scrolling the page since the list has focus\n event.preventDefault();\n }\n break;\n default:\n // The \"A\" key gets special treatment, because it's used for the \"select all\" functionality.\n if (keyCode === A && this.multiple && hasModifierKey(event, 'ctrlKey') && !manager.isTyping()) {\n const shouldSelect = this.options.some(option => !option.disabled && !option.selected);\n this._setAllOptionsSelected(shouldSelect, true, true);\n event.preventDefault();\n } else {\n manager.onKeydown(event);\n }\n }\n if (this.multiple && (keyCode === UP_ARROW || keyCode === DOWN_ARROW) && event.shiftKey && manager.activeItemIndex !== previousFocusIndex) {\n this._toggleFocusedOption();\n }\n }\n /** Reports a value change to the ControlValueAccessor */\n _reportValueChange() {\n // Stop reporting value changes after the list has been destroyed. This avoids\n // cases where the list might wrongly reset its value once it is removed, but\n // the form control is still live.\n if (this.options && !this._isDestroyed) {\n const value = this._getSelectedOptionValues();\n this._onChange(value);\n this._value = value;\n }\n }\n /** Emits a change event if the selected state of an option changed. */\n _emitChangeEvent(options) {\n this.selectionChange.emit(new MatLegacySelectionListChange(this, options));\n }\n /** Implemented as part of ControlValueAccessor. */\n writeValue(values) {\n this._value = values;\n if (this.options) {\n this._setOptionsFromValues(values || []);\n }\n }\n /** Implemented as a part of ControlValueAccessor. */\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n }\n /** Implemented as part of ControlValueAccessor. */\n registerOnChange(fn) {\n this._onChange = fn;\n }\n /** Implemented as part of ControlValueAccessor. */\n registerOnTouched(fn) {\n this._onTouched = fn;\n }\n /** Sets the selected options based on the specified values. */\n _setOptionsFromValues(values) {\n this.options.forEach(option => option._setSelected(false));\n values.forEach(value => {\n const correspondingOption = this.options.find(option => {\n // Skip options that are already in the model. This allows us to handle cases\n // where the same primitive value is selected multiple times.\n return option.selected ? false : this.compareWith(option.value, value);\n });\n if (correspondingOption) {\n correspondingOption._setSelected(true);\n }\n });\n }\n /** Returns the values of the selected options. */\n _getSelectedOptionValues() {\n return this.options.filter(option => option.selected).map(option => option.value);\n }\n /** Toggles the state of the currently focused option if enabled. */\n _toggleFocusedOption() {\n let focusedIndex = this._keyManager.activeItemIndex;\n if (focusedIndex != null && this._isValidIndex(focusedIndex)) {\n let focusedOption = this.options.toArray()[focusedIndex];\n if (focusedOption && !focusedOption.disabled && (this._multiple || !focusedOption.selected)) {\n focusedOption.toggle();\n // Emit a change event because the focused option changed its state through user\n // interaction.\n this._emitChangeEvent([focusedOption]);\n }\n }\n }\n /**\n * Sets the selected state on all of the options\n * and emits an event if anything changed.\n */\n _setAllOptionsSelected(isSelected, skipDisabled, isUserInput) {\n // Keep track of whether anything changed, because we only want to\n // emit the changed event when something actually changed.\n const changedOptions = [];\n this.options.forEach(option => {\n if ((!skipDisabled || !option.disabled) && option._setSelected(isSelected)) {\n changedOptions.push(option);\n }\n });\n if (changedOptions.length) {\n this._reportValueChange();\n if (isUserInput) {\n this._emitChangeEvent(changedOptions);\n }\n }\n return changedOptions;\n }\n /**\n * Utility to ensure all indexes are valid.\n * @param index The index to be checked.\n * @returns True if the index is valid for our list of options.\n */\n _isValidIndex(index) {\n return index >= 0 && index < this.options.length;\n }\n /** Returns the index of the specified list option. */\n _getOptionIndex(option) {\n return this.options.toArray().indexOf(option);\n }\n /** Marks all the options to be checked in the next change detection run. */\n _markOptionsForCheck() {\n if (this.options) {\n this.options.forEach(option => option._markForCheck());\n }\n }\n /**\n * Removes the tabindex from the selection list and resets it back afterwards, allowing the user\n * to tab out of it. This prevents the list from capturing focus and redirecting it back within\n * the list, creating a focus trap if it user tries to tab away.\n */\n _allowFocusEscape() {\n this._tabIndex = -1;\n setTimeout(() => {\n this._tabIndex = 0;\n this._changeDetector.markForCheck();\n });\n }\n /** Updates the tabindex based upon if the selection list is empty. */\n _updateTabIndex() {\n this._tabIndex = this.options.length === 0 ? -1 : 0;\n }\n static {\n this.ɵfac = function MatLegacySelectionList_Factory(ɵt) {\n return new (ɵt || MatLegacySelectionList)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i3.FocusMonitor));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatLegacySelectionList,\n selectors: [[\"mat-selection-list\"]],\n contentQueries: function MatLegacySelectionList_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MatLegacyListOption, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.options = _t);\n }\n },\n hostAttrs: [\"role\", \"listbox\", 1, \"mat-selection-list\", \"mat-list-base\"],\n hostVars: 3,\n hostBindings: function MatLegacySelectionList_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"keydown\", function MatLegacySelectionList_keydown_HostBindingHandler($event) {\n return ctx._keydown($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-multiselectable\", ctx.multiple)(\"aria-disabled\", ctx.disabled.toString())(\"tabindex\", ctx._tabIndex);\n }\n },\n inputs: {\n disableRipple: \"disableRipple\",\n color: \"color\",\n compareWith: \"compareWith\",\n disabled: \"disabled\",\n multiple: \"multiple\"\n },\n outputs: {\n selectionChange: \"selectionChange\"\n },\n exportAs: [\"matSelectionList\"],\n features: [i0.ɵɵProvidersFeature([MAT_LEGACY_SELECTION_LIST_VALUE_ACCESSOR]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature],\n ngContentSelectors: _c0,\n decls: 1,\n vars: 0,\n template: function MatLegacySelectionList_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵprojection(0);\n }\n },\n styles: [_c1],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacySelectionList, [{\n type: Component,\n args: [{\n selector: 'mat-selection-list',\n exportAs: 'matSelectionList',\n inputs: ['disableRipple'],\n host: {\n 'role': 'listbox',\n 'class': 'mat-selection-list mat-list-base',\n '(keydown)': '_keydown($event)',\n '[attr.aria-multiselectable]': 'multiple',\n '[attr.aria-disabled]': 'disabled.toString()',\n '[attr.tabindex]': '_tabIndex'\n },\n template: '',\n encapsulation: ViewEncapsulation.None,\n providers: [MAT_LEGACY_SELECTION_LIST_VALUE_ACCESSOR],\n changeDetection: ChangeDetectionStrategy.OnPush,\n styles: [\".mat-subheader{display:flex;box-sizing:border-box;padding:16px;align-items:center}.mat-list-base .mat-subheader{margin:0}button.mat-list-item,button.mat-list-option{padding:0;width:100%;background:none;color:inherit;border:none;outline:inherit;-webkit-tap-highlight-color:rgba(0,0,0,0);text-align:left}[dir=rtl] button.mat-list-item,[dir=rtl] button.mat-list-option{text-align:right}button.mat-list-item::-moz-focus-inner,button.mat-list-option::-moz-focus-inner{border:0}.mat-list-base{padding-top:8px;display:block;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-list-base .mat-subheader{height:48px;line-height:16px}.mat-list-base .mat-subheader:first-child{margin-top:-8px}.mat-list-base .mat-list-item,.mat-list-base .mat-list-option{display:block;height:48px;-webkit-tap-highlight-color:rgba(0,0,0,0);width:100%;padding:0}.mat-list-base .mat-list-item .mat-list-item-content,.mat-list-base .mat-list-option .mat-list-item-content{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:0 16px;position:relative;height:inherit}.mat-list-base .mat-list-item .mat-list-item-content-reverse,.mat-list-base .mat-list-option .mat-list-item-content-reverse{display:flex;align-items:center;padding:0 16px;flex-direction:row-reverse;justify-content:space-around}.mat-list-base .mat-list-item .mat-list-item-ripple,.mat-list-base .mat-list-option .mat-list-item-ripple{display:block;top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-list-base .mat-list-item.mat-list-item-with-avatar,.mat-list-base .mat-list-option.mat-list-item-with-avatar{height:56px}.mat-list-base .mat-list-item.mat-2-line,.mat-list-base .mat-list-option.mat-2-line{height:72px}.mat-list-base .mat-list-item.mat-3-line,.mat-list-base .mat-list-option.mat-3-line{height:88px}.mat-list-base .mat-list-item.mat-multi-line,.mat-list-base .mat-list-option.mat-multi-line{height:auto}.mat-list-base .mat-list-item.mat-multi-line .mat-list-item-content,.mat-list-base .mat-list-option.mat-multi-line .mat-list-item-content{padding-top:16px;padding-bottom:16px}.mat-list-base .mat-list-item .mat-list-text,.mat-list-base .mat-list-option .mat-list-text{display:flex;flex-direction:column;flex:auto;box-sizing:border-box;overflow:hidden;padding:0}.mat-list-base .mat-list-item .mat-list-text>*,.mat-list-base .mat-list-option .mat-list-text>*{margin:0;padding:0;font-weight:normal;font-size:inherit}.mat-list-base .mat-list-item .mat-list-text:empty,.mat-list-base .mat-list-option .mat-list-text:empty{display:none}.mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:0;padding-left:16px}[dir=rtl] .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:0}.mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-left:0;padding-right:16px}[dir=rtl] .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:0;padding-left:16px}.mat-list-base .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:16px}.mat-list-base .mat-list-item .mat-list-avatar,.mat-list-base .mat-list-option .mat-list-avatar{flex-shrink:0;width:40px;height:40px;border-radius:50%;object-fit:cover}.mat-list-base .mat-list-item .mat-list-avatar~.mat-divider-inset,.mat-list-base .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:72px;width:calc(100% - 72px)}[dir=rtl] .mat-list-base .mat-list-item .mat-list-avatar~.mat-divider-inset,[dir=rtl] .mat-list-base .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:auto;margin-right:72px}.mat-list-base .mat-list-item .mat-list-icon,.mat-list-base .mat-list-option .mat-list-icon{flex-shrink:0;width:24px;height:24px;font-size:24px;box-sizing:content-box;border-radius:50%;padding:4px}.mat-list-base .mat-list-item .mat-list-icon~.mat-divider-inset,.mat-list-base .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:64px;width:calc(100% - 64px)}[dir=rtl] .mat-list-base .mat-list-item .mat-list-icon~.mat-divider-inset,[dir=rtl] .mat-list-base .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:auto;margin-right:64px}.mat-list-base .mat-list-item .mat-divider,.mat-list-base .mat-list-option .mat-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mat-list-base .mat-list-item .mat-divider,[dir=rtl] .mat-list-base .mat-list-option .mat-divider{margin-left:auto;margin-right:0}.mat-list-base .mat-list-item .mat-divider.mat-divider-inset,.mat-list-base .mat-list-option .mat-divider.mat-divider-inset{position:absolute}.mat-list-base[dense]{padding-top:4px;display:block}.mat-list-base[dense] .mat-subheader{height:40px;line-height:8px}.mat-list-base[dense] .mat-subheader:first-child{margin-top:-4px}.mat-list-base[dense] .mat-list-item,.mat-list-base[dense] .mat-list-option{display:block;height:40px;-webkit-tap-highlight-color:rgba(0,0,0,0);width:100%;padding:0}.mat-list-base[dense] .mat-list-item .mat-list-item-content,.mat-list-base[dense] .mat-list-option .mat-list-item-content{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:0 16px;position:relative;height:inherit}.mat-list-base[dense] .mat-list-item .mat-list-item-content-reverse,.mat-list-base[dense] .mat-list-option .mat-list-item-content-reverse{display:flex;align-items:center;padding:0 16px;flex-direction:row-reverse;justify-content:space-around}.mat-list-base[dense] .mat-list-item .mat-list-item-ripple,.mat-list-base[dense] .mat-list-option .mat-list-item-ripple{display:block;top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar{height:48px}.mat-list-base[dense] .mat-list-item.mat-2-line,.mat-list-base[dense] .mat-list-option.mat-2-line{height:60px}.mat-list-base[dense] .mat-list-item.mat-3-line,.mat-list-base[dense] .mat-list-option.mat-3-line{height:76px}.mat-list-base[dense] .mat-list-item.mat-multi-line,.mat-list-base[dense] .mat-list-option.mat-multi-line{height:auto}.mat-list-base[dense] .mat-list-item.mat-multi-line .mat-list-item-content,.mat-list-base[dense] .mat-list-option.mat-multi-line .mat-list-item-content{padding-top:16px;padding-bottom:16px}.mat-list-base[dense] .mat-list-item .mat-list-text,.mat-list-base[dense] .mat-list-option .mat-list-text{display:flex;flex-direction:column;flex:auto;box-sizing:border-box;overflow:hidden;padding:0}.mat-list-base[dense] .mat-list-item .mat-list-text>*,.mat-list-base[dense] .mat-list-option .mat-list-text>*{margin:0;padding:0;font-weight:normal;font-size:inherit}.mat-list-base[dense] .mat-list-item .mat-list-text:empty,.mat-list-base[dense] .mat-list-option .mat-list-text:empty{display:none}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:0;padding-left:16px}[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:0}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-left:0;padding-right:16px}[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:0;padding-left:16px}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:16px}.mat-list-base[dense] .mat-list-item .mat-list-avatar,.mat-list-base[dense] .mat-list-option .mat-list-avatar{flex-shrink:0;width:36px;height:36px;border-radius:50%;object-fit:cover}.mat-list-base[dense] .mat-list-item .mat-list-avatar~.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:68px;width:calc(100% - 68px)}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-list-avatar~.mat-divider-inset,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:auto;margin-right:68px}.mat-list-base[dense] .mat-list-item .mat-list-icon,.mat-list-base[dense] .mat-list-option .mat-list-icon{flex-shrink:0;width:20px;height:20px;font-size:20px;box-sizing:content-box;border-radius:50%;padding:4px}.mat-list-base[dense] .mat-list-item .mat-list-icon~.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:60px;width:calc(100% - 60px)}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-list-icon~.mat-divider-inset,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:auto;margin-right:60px}.mat-list-base[dense] .mat-list-item .mat-divider,.mat-list-base[dense] .mat-list-option .mat-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-divider,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-divider{margin-left:auto;margin-right:0}.mat-list-base[dense] .mat-list-item .mat-divider.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-divider.mat-divider-inset{position:absolute}.mat-nav-list a{text-decoration:none;color:inherit}.mat-nav-list .mat-list-item{cursor:pointer;outline:none}mat-action-list .mat-list-item{cursor:pointer;outline:inherit}.mat-list-option:not(.mat-list-item-disabled){cursor:pointer;outline:none}.mat-list-item-disabled{pointer-events:none}.cdk-high-contrast-active .mat-list-item-disabled{opacity:.5}.cdk-high-contrast-active :host .mat-list-item-disabled{opacity:.5}.cdk-high-contrast-active .mat-list-option:hover,.cdk-high-contrast-active .mat-nav-list .mat-list-item:hover,.cdk-high-contrast-active mat-action-list .mat-list-item:hover{outline:dotted 1px;z-index:1}.cdk-high-contrast-active .mat-list-single-selected-option::after{content:\\\"\\\";position:absolute;top:50%;right:16px;transform:translateY(-50%);width:10px;height:0;border-bottom:solid 10px;border-radius:10px}.cdk-high-contrast-active [dir=rtl] .mat-list-single-selected-option::after{right:auto;left:16px}@media(hover: none){.mat-list-option:not(.mat-list-single-selected-option):not(.mat-list-item-disabled):hover,.mat-nav-list .mat-list-item:not(.mat-list-item-disabled):hover,.mat-action-list .mat-list-item:not(.mat-list-item-disabled):hover{background:none}}\"]\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: i3.FocusMonitor\n }];\n }, {\n options: [{\n type: ContentChildren,\n args: [MatLegacyListOption, {\n descendants: true\n }]\n }],\n selectionChange: [{\n type: Output\n }],\n color: [{\n type: Input\n }],\n compareWith: [{\n type: Input\n }],\n disabled: [{\n type: Input\n }],\n multiple: [{\n type: Input\n }]\n });\n})();\n\n/**\n * @deprecated Use `MatListModule` from `@angular/material/list` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyListModule {\n static {\n this.ɵfac = function MatLegacyListModule_Factory(ɵt) {\n return new (ɵt || MatLegacyListModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatLegacyListModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [MatLineModule, MatRippleModule, MatCommonModule, MatPseudoCheckboxModule, CommonModule, MatLineModule, MatCommonModule, MatPseudoCheckboxModule, MatDividerModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyListModule, [{\n type: NgModule,\n args: [{\n imports: [MatLineModule, MatRippleModule, MatCommonModule, MatPseudoCheckboxModule, CommonModule],\n exports: [MatLegacyList, MatLegacyNavList, MatLegacyListItem, MatLegacyListAvatarCssMatStyler, MatLineModule, MatCommonModule, MatLegacyListIconCssMatStyler, MatLegacyListSubheaderCssMatStyler, MatPseudoCheckboxModule, MatLegacySelectionList, MatLegacyListOption, MatDividerModule],\n declarations: [MatLegacyList, MatLegacyNavList, MatLegacyListItem, MatLegacyListAvatarCssMatStyler, MatLegacyListIconCssMatStyler, MatLegacyListSubheaderCssMatStyler, MatLegacySelectionList, MatLegacyListOption]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_LEGACY_SELECTION_LIST_VALUE_ACCESSOR, MatLegacyList, MatLegacyListAvatarCssMatStyler, MatLegacyListIconCssMatStyler, MatLegacyListItem, MatLegacyListModule, MatLegacyListOption, MatLegacyListSubheaderCssMatStyler, MatLegacyNavList, MatLegacySelectionList, MatLegacySelectionListChange };\n","import * as i0 from '@angular/core';\nimport { InjectionToken, Component, ChangeDetectionStrategy, ViewEncapsulation, Inject, Optional, Input, Directive, QueryList, EventEmitter, TemplateRef, ContentChildren, ViewChild, ContentChild, Output, inject, ChangeDetectorRef, Self, NgModule } from '@angular/core';\nimport * as i1 from '@angular/cdk/a11y';\nimport { FocusKeyManager, isFakeTouchstartFromScreenReader, isFakeMousedownFromScreenReader } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { UP_ARROW, DOWN_ARROW, RIGHT_ARROW, LEFT_ARROW, ESCAPE, hasModifierKey, ENTER, SPACE } from '@angular/cdk/keycodes';\nimport { Subject, merge, Subscription, of, asapScheduler } from 'rxjs';\nimport { startWith, switchMap, take, takeUntil, filter, delay } from 'rxjs/operators';\nimport * as i3 from '@angular/material/core';\nimport { mixinDisableRipple, mixinDisabled, MatRippleModule, MatCommonModule } from '@angular/material/core';\nimport * as i2 from '@angular/common';\nimport { DOCUMENT, CommonModule } from '@angular/common';\nimport { TemplatePortal, DomPortalOutlet } from '@angular/cdk/portal';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\nimport * as i3$1 from '@angular/cdk/bidi';\nimport * as i1$1 from '@angular/cdk/overlay';\nimport { Overlay, OverlayConfig, OverlayModule } from '@angular/cdk/overlay';\nimport { normalizePassiveListenerOptions } from '@angular/cdk/platform';\nimport { CdkScrollableModule } from '@angular/cdk/scrolling';\n\n/**\n * Injection token used to provide the parent menu to menu-specific components.\n * @docs-private\n */\nconst _c0 = [\"mat-menu-item\", \"\"];\nconst _c1 = [[[\"mat-icon\"], [\"\", \"matMenuItemIcon\", \"\"]], \"*\"];\nconst _c2 = [\"mat-icon, [matMenuItemIcon]\", \"*\"];\nfunction MatMenuItem__svg_svg_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 3);\n i0.ɵɵelement(1, \"polygon\", 4);\n i0.ɵɵelementEnd();\n }\n}\nconst _c3 = [\"*\"];\nfunction MatMenu_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵlistener(\"keydown\", function MatMenu_ng_template_0_Template_div_keydown_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1._handleKeydown($event));\n })(\"click\", function MatMenu_ng_template_0_Template_div_click_0_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.closed.emit(\"click\"));\n })(\"@transformMenu.start\", function MatMenu_ng_template_0_Template_div_animation_transformMenu_start_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1._onAnimationStart($event));\n })(\"@transformMenu.done\", function MatMenu_ng_template_0_Template_div_animation_transformMenu_done_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1._onAnimationDone($event));\n });\n i0.ɵɵelementStart(1, \"div\", 1);\n i0.ɵɵprojection(2);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"id\", ctx_r1.panelId)(\"ngClass\", ctx_r1._classList)(\"@transformMenu\", ctx_r1._panelAnimationState);\n i0.ɵɵattribute(\"aria-label\", ctx_r1.ariaLabel || null)(\"aria-labelledby\", ctx_r1.ariaLabelledby || null)(\"aria-describedby\", ctx_r1.ariaDescribedby || null);\n }\n}\nconst MAT_MENU_PANEL = new InjectionToken('MAT_MENU_PANEL');\n\n// Boilerplate for applying mixins to MatMenuItem.\n/** @docs-private */\nconst _MatMenuItemBase = mixinDisableRipple(mixinDisabled(class {}));\n/**\n * Single item inside a `mat-menu`. Provides the menu item styling and accessibility treatment.\n */\nclass MatMenuItem extends _MatMenuItemBase {\n constructor(_elementRef, _document, _focusMonitor, _parentMenu, _changeDetectorRef) {\n super();\n this._elementRef = _elementRef;\n this._document = _document;\n this._focusMonitor = _focusMonitor;\n this._parentMenu = _parentMenu;\n this._changeDetectorRef = _changeDetectorRef;\n /** ARIA role for the menu item. */\n this.role = 'menuitem';\n /** Stream that emits when the menu item is hovered. */\n this._hovered = new Subject();\n /** Stream that emits when the menu item is focused. */\n this._focused = new Subject();\n /** Whether the menu item is highlighted. */\n this._highlighted = false;\n /** Whether the menu item acts as a trigger for a sub-menu. */\n this._triggersSubmenu = false;\n _parentMenu?.addItem?.(this);\n }\n /** Focuses the menu item. */\n focus(origin, options) {\n if (this._focusMonitor && origin) {\n this._focusMonitor.focusVia(this._getHostElement(), origin, options);\n } else {\n this._getHostElement().focus(options);\n }\n this._focused.next(this);\n }\n ngAfterViewInit() {\n if (this._focusMonitor) {\n // Start monitoring the element, so it gets the appropriate focused classes. We want\n // to show the focus style for menu items only when the focus was not caused by a\n // mouse or touch interaction.\n this._focusMonitor.monitor(this._elementRef, false);\n }\n }\n ngOnDestroy() {\n if (this._focusMonitor) {\n this._focusMonitor.stopMonitoring(this._elementRef);\n }\n if (this._parentMenu && this._parentMenu.removeItem) {\n this._parentMenu.removeItem(this);\n }\n this._hovered.complete();\n this._focused.complete();\n }\n /** Used to set the `tabindex`. */\n _getTabIndex() {\n return this.disabled ? '-1' : '0';\n }\n /** Returns the host DOM element. */\n _getHostElement() {\n return this._elementRef.nativeElement;\n }\n /** Prevents the default element actions if it is disabled. */\n _checkDisabled(event) {\n if (this.disabled) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n /** Emits to the hover stream. */\n _handleMouseEnter() {\n this._hovered.next(this);\n }\n /** Gets the label to be used when determining whether the option should be focused. */\n getLabel() {\n const clone = this._elementRef.nativeElement.cloneNode(true);\n const icons = clone.querySelectorAll('mat-icon, .material-icons');\n // Strip away icons, so they don't show up in the text.\n for (let i = 0; i < icons.length; i++) {\n icons[i].remove();\n }\n return clone.textContent?.trim() || '';\n }\n _setHighlighted(isHighlighted) {\n // We need to mark this for check for the case where the content is coming from a\n // `matMenuContent` whose change detection tree is at the declaration position,\n // not the insertion position. See #23175.\n // @breaking-change 12.0.0 Remove null check for `_changeDetectorRef`.\n this._highlighted = isHighlighted;\n this._changeDetectorRef?.markForCheck();\n }\n _setTriggersSubmenu(triggersSubmenu) {\n // @breaking-change 12.0.0 Remove null check for `_changeDetectorRef`.\n this._triggersSubmenu = triggersSubmenu;\n this._changeDetectorRef?.markForCheck();\n }\n _hasFocus() {\n return this._document && this._document.activeElement === this._getHostElement();\n }\n static {\n this.ɵfac = function MatMenuItem_Factory(ɵt) {\n return new (ɵt || MatMenuItem)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(DOCUMENT), i0.ɵɵdirectiveInject(i1.FocusMonitor), i0.ɵɵdirectiveInject(MAT_MENU_PANEL, 8), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatMenuItem,\n selectors: [[\"\", \"mat-menu-item\", \"\"]],\n hostAttrs: [1, \"mat-mdc-menu-item\", \"mat-mdc-focus-indicator\"],\n hostVars: 8,\n hostBindings: function MatMenuItem_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function MatMenuItem_click_HostBindingHandler($event) {\n return ctx._checkDisabled($event);\n })(\"mouseenter\", function MatMenuItem_mouseenter_HostBindingHandler() {\n return ctx._handleMouseEnter();\n });\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"role\", ctx.role)(\"tabindex\", ctx._getTabIndex())(\"aria-disabled\", ctx.disabled)(\"disabled\", ctx.disabled || null);\n i0.ɵɵclassProp(\"mat-mdc-menu-item-highlighted\", ctx._highlighted)(\"mat-mdc-menu-item-submenu-trigger\", ctx._triggersSubmenu);\n }\n },\n inputs: {\n disabled: \"disabled\",\n disableRipple: \"disableRipple\",\n role: \"role\"\n },\n exportAs: [\"matMenuItem\"],\n features: [i0.ɵɵInheritDefinitionFeature],\n attrs: _c0,\n ngContentSelectors: _c2,\n decls: 5,\n vars: 3,\n consts: [[1, \"mat-mdc-menu-item-text\"], [\"matRipple\", \"\", 1, \"mat-mdc-menu-ripple\", 3, \"matRippleDisabled\", \"matRippleTrigger\"], [\"class\", \"mat-mdc-menu-submenu-icon\", \"viewBox\", \"0 0 5 10\", \"focusable\", \"false\", \"aria-hidden\", \"true\", 4, \"ngIf\"], [\"viewBox\", \"0 0 5 10\", \"focusable\", \"false\", \"aria-hidden\", \"true\", 1, \"mat-mdc-menu-submenu-icon\"], [\"points\", \"0,0 5,5 0,10\"]],\n template: function MatMenuItem_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c1);\n i0.ɵɵprojection(0);\n i0.ɵɵelementStart(1, \"span\", 0);\n i0.ɵɵprojection(2, 1);\n i0.ɵɵelementEnd();\n i0.ɵɵelement(3, \"div\", 1);\n i0.ɵɵtemplate(4, MatMenuItem__svg_svg_4_Template, 2, 0, \"svg\", 2);\n }\n if (rf & 2) {\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"matRippleDisabled\", ctx.disableRipple || ctx.disabled)(\"matRippleTrigger\", ctx._getHostElement());\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx._triggersSubmenu);\n }\n },\n dependencies: [i2.NgIf, i3.MatRipple],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatMenuItem, [{\n type: Component,\n args: [{\n selector: '[mat-menu-item]',\n exportAs: 'matMenuItem',\n inputs: ['disabled', 'disableRipple'],\n host: {\n '[attr.role]': 'role',\n 'class': 'mat-mdc-menu-item mat-mdc-focus-indicator',\n '[class.mat-mdc-menu-item-highlighted]': '_highlighted',\n '[class.mat-mdc-menu-item-submenu-trigger]': '_triggersSubmenu',\n '[attr.tabindex]': '_getTabIndex()',\n '[attr.aria-disabled]': 'disabled',\n '[attr.disabled]': 'disabled || null',\n '(click)': '_checkDisabled($event)',\n '(mouseenter)': '_handleMouseEnter()'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: \"\\n\\n\\n\\n\\n\"\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }, {\n type: i1.FocusMonitor\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [MAT_MENU_PANEL]\n }, {\n type: Optional\n }]\n }, {\n type: i0.ChangeDetectorRef\n }];\n }, {\n role: [{\n type: Input\n }]\n });\n})();\n\n/**\n * Throws an exception for the case when menu's x-position value isn't valid.\n * In other words, it doesn't match 'before' or 'after'.\n * @docs-private\n */\nfunction throwMatMenuInvalidPositionX() {\n throw Error(`xPosition value must be either 'before' or after'.\n Example: `);\n}\n/**\n * Throws an exception for the case when menu's y-position value isn't valid.\n * In other words, it doesn't match 'above' or 'below'.\n * @docs-private\n */\nfunction throwMatMenuInvalidPositionY() {\n throw Error(`yPosition value must be either 'above' or below'.\n Example: `);\n}\n/**\n * Throws an exception for the case when a menu is assigned\n * to a trigger that is placed inside the same menu.\n * @docs-private\n */\nfunction throwMatMenuRecursiveError() {\n throw Error(`matMenuTriggerFor: menu cannot contain its own trigger. Assign a menu that is ` + `not a parent of the trigger or move the trigger outside of the menu.`);\n}\n\n/**\n * Injection token that can be used to reference instances of `MatMenuContent`. It serves\n * as alternative token to the actual `MatMenuContent` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nconst MAT_MENU_CONTENT = new InjectionToken('MatMenuContent');\nclass _MatMenuContentBase {\n constructor(_template, _componentFactoryResolver, _appRef, _injector, _viewContainerRef, _document, _changeDetectorRef) {\n this._template = _template;\n this._componentFactoryResolver = _componentFactoryResolver;\n this._appRef = _appRef;\n this._injector = _injector;\n this._viewContainerRef = _viewContainerRef;\n this._document = _document;\n this._changeDetectorRef = _changeDetectorRef;\n /** Emits when the menu content has been attached. */\n this._attached = new Subject();\n }\n /**\n * Attaches the content with a particular context.\n * @docs-private\n */\n attach(context = {}) {\n if (!this._portal) {\n this._portal = new TemplatePortal(this._template, this._viewContainerRef);\n }\n this.detach();\n if (!this._outlet) {\n this._outlet = new DomPortalOutlet(this._document.createElement('div'), this._componentFactoryResolver, this._appRef, this._injector);\n }\n const element = this._template.elementRef.nativeElement;\n // Because we support opening the same menu from different triggers (which in turn have their\n // own `OverlayRef` panel), we have to re-insert the host element every time, otherwise we\n // risk it staying attached to a pane that's no longer in the DOM.\n element.parentNode.insertBefore(this._outlet.outletElement, element);\n // When `MatMenuContent` is used in an `OnPush` component, the insertion of the menu\n // content via `createEmbeddedView` does not cause the content to be seen as \"dirty\"\n // by Angular. This causes the `@ContentChildren` for menu items within the menu to\n // not be updated by Angular. By explicitly marking for check here, we tell Angular that\n // it needs to check for new menu items and update the `@ContentChild` in `MatMenu`.\n // @breaking-change 9.0.0 Make change detector ref required\n this._changeDetectorRef?.markForCheck();\n this._portal.attach(this._outlet, context);\n this._attached.next();\n }\n /**\n * Detaches the content.\n * @docs-private\n */\n detach() {\n if (this._portal.isAttached) {\n this._portal.detach();\n }\n }\n ngOnDestroy() {\n if (this._outlet) {\n this._outlet.dispose();\n }\n }\n static {\n this.ɵfac = function _MatMenuContentBase_Factory(ɵt) {\n return new (ɵt || _MatMenuContentBase)(i0.ɵɵdirectiveInject(i0.TemplateRef), i0.ɵɵdirectiveInject(i0.ComponentFactoryResolver), i0.ɵɵdirectiveInject(i0.ApplicationRef), i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(DOCUMENT), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: _MatMenuContentBase\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(_MatMenuContentBase, [{\n type: Directive\n }], function () {\n return [{\n type: i0.TemplateRef\n }, {\n type: i0.ComponentFactoryResolver\n }, {\n type: i0.ApplicationRef\n }, {\n type: i0.Injector\n }, {\n type: i0.ViewContainerRef\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }, {\n type: i0.ChangeDetectorRef\n }];\n }, null);\n})();\n/** Menu content that will be rendered lazily once the menu is opened. */\nclass MatMenuContent extends _MatMenuContentBase {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatMenuContent_BaseFactory;\n return function MatMenuContent_Factory(ɵt) {\n return (ɵMatMenuContent_BaseFactory || (ɵMatMenuContent_BaseFactory = i0.ɵɵgetInheritedFactory(MatMenuContent)))(ɵt || MatMenuContent);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatMenuContent,\n selectors: [[\"ng-template\", \"matMenuContent\", \"\"]],\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_MENU_CONTENT,\n useExisting: MatMenuContent\n }]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatMenuContent, [{\n type: Directive,\n args: [{\n selector: 'ng-template[matMenuContent]',\n providers: [{\n provide: MAT_MENU_CONTENT,\n useExisting: MatMenuContent\n }]\n }]\n }], null, null);\n})();\n\n/**\n * Animations used by the mat-menu component.\n * Animation duration and timing values are based on:\n * https://material.io/guidelines/components/menus.html#menus-usage\n * @docs-private\n */\nconst matMenuAnimations = {\n /**\n * This animation controls the menu panel's entry and exit from the page.\n *\n * When the menu panel is added to the DOM, it scales in and fades in its border.\n *\n * When the menu panel is removed from the DOM, it simply fades out after a brief\n * delay to display the ripple.\n */\n transformMenu: trigger('transformMenu', [state('void', style({\n opacity: 0,\n transform: 'scale(0.8)'\n })), transition('void => enter', animate('120ms cubic-bezier(0, 0, 0.2, 1)', style({\n opacity: 1,\n transform: 'scale(1)'\n }))), transition('* => void', animate('100ms 25ms linear', style({\n opacity: 0\n })))]),\n /**\n * This animation fades in the background color and content of the menu panel\n * after its containing element is scaled in.\n */\n fadeInItems: trigger('fadeInItems', [\n // TODO(crisbeto): this is inside the `transformMenu`\n // now. Remove next time we do breaking changes.\n state('showing', style({\n opacity: 1\n })), transition('void => *', [style({\n opacity: 0\n }), animate('400ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)')])])\n};\n/**\n * @deprecated\n * @breaking-change 8.0.0\n * @docs-private\n */\nconst fadeInItems = matMenuAnimations.fadeInItems;\n/**\n * @deprecated\n * @breaking-change 8.0.0\n * @docs-private\n */\nconst transformMenu = matMenuAnimations.transformMenu;\nlet menuPanelUid = 0;\n/** Injection token to be used to override the default options for `mat-menu`. */\nconst MAT_MENU_DEFAULT_OPTIONS = new InjectionToken('mat-menu-default-options', {\n providedIn: 'root',\n factory: MAT_MENU_DEFAULT_OPTIONS_FACTORY\n});\n/** @docs-private */\nfunction MAT_MENU_DEFAULT_OPTIONS_FACTORY() {\n return {\n overlapTrigger: false,\n xPosition: 'after',\n yPosition: 'below',\n backdropClass: 'cdk-overlay-transparent-backdrop'\n };\n}\n/** Base class with all of the `MatMenu` functionality. */\nclass _MatMenuBase {\n /** Position of the menu in the X axis. */\n get xPosition() {\n return this._xPosition;\n }\n set xPosition(value) {\n if (value !== 'before' && value !== 'after' && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throwMatMenuInvalidPositionX();\n }\n this._xPosition = value;\n this.setPositionClasses();\n }\n /** Position of the menu in the Y axis. */\n get yPosition() {\n return this._yPosition;\n }\n set yPosition(value) {\n if (value !== 'above' && value !== 'below' && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throwMatMenuInvalidPositionY();\n }\n this._yPosition = value;\n this.setPositionClasses();\n }\n /** Whether the menu should overlap its trigger. */\n get overlapTrigger() {\n return this._overlapTrigger;\n }\n set overlapTrigger(value) {\n this._overlapTrigger = coerceBooleanProperty(value);\n }\n /** Whether the menu has a backdrop. */\n get hasBackdrop() {\n return this._hasBackdrop;\n }\n set hasBackdrop(value) {\n this._hasBackdrop = coerceBooleanProperty(value);\n }\n /**\n * This method takes classes set on the host mat-menu element and applies them on the\n * menu template that displays in the overlay container. Otherwise, it's difficult\n * to style the containing menu from outside the component.\n * @param classes list of class names\n */\n set panelClass(classes) {\n const previousPanelClass = this._previousPanelClass;\n if (previousPanelClass && previousPanelClass.length) {\n previousPanelClass.split(' ').forEach(className => {\n this._classList[className] = false;\n });\n }\n this._previousPanelClass = classes;\n if (classes && classes.length) {\n classes.split(' ').forEach(className => {\n this._classList[className] = true;\n });\n this._elementRef.nativeElement.className = '';\n }\n }\n /**\n * This method takes classes set on the host mat-menu element and applies them on the\n * menu template that displays in the overlay container. Otherwise, it's difficult\n * to style the containing menu from outside the component.\n * @deprecated Use `panelClass` instead.\n * @breaking-change 8.0.0\n */\n get classList() {\n return this.panelClass;\n }\n set classList(classes) {\n this.panelClass = classes;\n }\n constructor(_elementRef, _ngZone, defaultOptions,\n // @breaking-change 15.0.0 `_changeDetectorRef` to become a required parameter.\n _changeDetectorRef) {\n this._elementRef = _elementRef;\n this._ngZone = _ngZone;\n this._changeDetectorRef = _changeDetectorRef;\n /** Only the direct descendant menu items. */\n this._directDescendantItems = new QueryList();\n /** Config object to be passed into the menu's ngClass */\n this._classList = {};\n /** Current state of the panel animation. */\n this._panelAnimationState = 'void';\n /** Emits whenever an animation on the menu completes. */\n this._animationDone = new Subject();\n /** Event emitted when the menu is closed. */\n this.closed = new EventEmitter();\n /**\n * Event emitted when the menu is closed.\n * @deprecated Switch to `closed` instead\n * @breaking-change 8.0.0\n */\n this.close = this.closed;\n this.panelId = `mat-menu-panel-${menuPanelUid++}`;\n this.overlayPanelClass = defaultOptions.overlayPanelClass || '';\n this._xPosition = defaultOptions.xPosition;\n this._yPosition = defaultOptions.yPosition;\n this.backdropClass = defaultOptions.backdropClass;\n this._overlapTrigger = defaultOptions.overlapTrigger;\n this._hasBackdrop = defaultOptions.hasBackdrop;\n }\n ngOnInit() {\n this.setPositionClasses();\n }\n ngAfterContentInit() {\n this._updateDirectDescendants();\n this._keyManager = new FocusKeyManager(this._directDescendantItems).withWrap().withTypeAhead().withHomeAndEnd();\n this._keyManager.tabOut.subscribe(() => this.closed.emit('tab'));\n // If a user manually (programmatically) focuses a menu item, we need to reflect that focus\n // change back to the key manager. Note that we don't need to unsubscribe here because _focused\n // is internal and we know that it gets completed on destroy.\n this._directDescendantItems.changes.pipe(startWith(this._directDescendantItems), switchMap(items => merge(...items.map(item => item._focused)))).subscribe(focusedItem => this._keyManager.updateActiveItem(focusedItem));\n this._directDescendantItems.changes.subscribe(itemsList => {\n // Move focus to another item, if the active item is removed from the list.\n // We need to debounce the callback, because multiple items might be removed\n // in quick succession.\n const manager = this._keyManager;\n if (this._panelAnimationState === 'enter' && manager.activeItem?._hasFocus()) {\n const items = itemsList.toArray();\n const index = Math.max(0, Math.min(items.length - 1, manager.activeItemIndex || 0));\n if (items[index] && !items[index].disabled) {\n manager.setActiveItem(index);\n } else {\n manager.setNextItemActive();\n }\n }\n });\n }\n ngOnDestroy() {\n this._keyManager?.destroy();\n this._directDescendantItems.destroy();\n this.closed.complete();\n this._firstItemFocusSubscription?.unsubscribe();\n }\n /** Stream that emits whenever the hovered menu item changes. */\n _hovered() {\n // Coerce the `changes` property because Angular types it as `Observable`\n const itemChanges = this._directDescendantItems.changes;\n return itemChanges.pipe(startWith(this._directDescendantItems), switchMap(items => merge(...items.map(item => item._hovered))));\n }\n /*\n * Registers a menu item with the menu.\n * @docs-private\n * @deprecated No longer being used. To be removed.\n * @breaking-change 9.0.0\n */\n addItem(_item) {}\n /**\n * Removes an item from the menu.\n * @docs-private\n * @deprecated No longer being used. To be removed.\n * @breaking-change 9.0.0\n */\n removeItem(_item) {}\n /** Handle a keyboard event from the menu, delegating to the appropriate action. */\n _handleKeydown(event) {\n const keyCode = event.keyCode;\n const manager = this._keyManager;\n switch (keyCode) {\n case ESCAPE:\n if (!hasModifierKey(event)) {\n event.preventDefault();\n this.closed.emit('keydown');\n }\n break;\n case LEFT_ARROW:\n if (this.parentMenu && this.direction === 'ltr') {\n this.closed.emit('keydown');\n }\n break;\n case RIGHT_ARROW:\n if (this.parentMenu && this.direction === 'rtl') {\n this.closed.emit('keydown');\n }\n break;\n default:\n if (keyCode === UP_ARROW || keyCode === DOWN_ARROW) {\n manager.setFocusOrigin('keyboard');\n }\n manager.onKeydown(event);\n return;\n }\n // Don't allow the event to propagate if we've already handled it, or it may\n // end up reaching other overlays that were opened earlier (see #22694).\n event.stopPropagation();\n }\n /**\n * Focus the first item in the menu.\n * @param origin Action from which the focus originated. Used to set the correct styling.\n */\n focusFirstItem(origin = 'program') {\n // Wait for `onStable` to ensure iOS VoiceOver screen reader focuses the first item (#24735).\n this._firstItemFocusSubscription?.unsubscribe();\n this._firstItemFocusSubscription = this._ngZone.onStable.pipe(take(1)).subscribe(() => {\n let menuPanel = null;\n if (this._directDescendantItems.length) {\n // Because the `mat-menuPanel` is at the DOM insertion point, not inside the overlay, we don't\n // have a nice way of getting a hold of the menuPanel panel. We can't use a `ViewChild` either\n // because the panel is inside an `ng-template`. We work around it by starting from one of\n // the items and walking up the DOM.\n menuPanel = this._directDescendantItems.first._getHostElement().closest('[role=\"menu\"]');\n }\n // If an item in the menuPanel is already focused, avoid overriding the focus.\n if (!menuPanel || !menuPanel.contains(document.activeElement)) {\n const manager = this._keyManager;\n manager.setFocusOrigin(origin).setFirstItemActive();\n // If there's no active item at this point, it means that all the items are disabled.\n // Move focus to the menuPanel panel so keyboard events like Escape still work. Also this will\n // give _some_ feedback to screen readers.\n if (!manager.activeItem && menuPanel) {\n menuPanel.focus();\n }\n }\n });\n }\n /**\n * Resets the active item in the menu. This is used when the menu is opened, allowing\n * the user to start from the first option when pressing the down arrow.\n */\n resetActiveItem() {\n this._keyManager.setActiveItem(-1);\n }\n /**\n * Sets the menu panel elevation.\n * @param depth Number of parent menus that come before the menu.\n */\n setElevation(depth) {\n // The elevation starts at the base and increases by one for each level.\n // Capped at 24 because that's the maximum elevation defined in the Material design spec.\n const elevation = Math.min(this._baseElevation + depth, 24);\n const newElevation = `${this._elevationPrefix}${elevation}`;\n const customElevation = Object.keys(this._classList).find(className => {\n return className.startsWith(this._elevationPrefix);\n });\n if (!customElevation || customElevation === this._previousElevation) {\n if (this._previousElevation) {\n this._classList[this._previousElevation] = false;\n }\n this._classList[newElevation] = true;\n this._previousElevation = newElevation;\n }\n }\n /**\n * Adds classes to the menu panel based on its position. Can be used by\n * consumers to add specific styling based on the position.\n * @param posX Position of the menu along the x axis.\n * @param posY Position of the menu along the y axis.\n * @docs-private\n */\n setPositionClasses(posX = this.xPosition, posY = this.yPosition) {\n const classes = this._classList;\n classes['mat-menu-before'] = posX === 'before';\n classes['mat-menu-after'] = posX === 'after';\n classes['mat-menu-above'] = posY === 'above';\n classes['mat-menu-below'] = posY === 'below';\n // @breaking-change 15.0.0 Remove null check for `_changeDetectorRef`.\n this._changeDetectorRef?.markForCheck();\n }\n /** Starts the enter animation. */\n _startAnimation() {\n // @breaking-change 8.0.0 Combine with _resetAnimation.\n this._panelAnimationState = 'enter';\n }\n /** Resets the panel animation to its initial state. */\n _resetAnimation() {\n // @breaking-change 8.0.0 Combine with _startAnimation.\n this._panelAnimationState = 'void';\n }\n /** Callback that is invoked when the panel animation completes. */\n _onAnimationDone(event) {\n this._animationDone.next(event);\n this._isAnimating = false;\n }\n _onAnimationStart(event) {\n this._isAnimating = true;\n // Scroll the content element to the top as soon as the animation starts. This is necessary,\n // because we move focus to the first item while it's still being animated, which can throw\n // the browser off when it determines the scroll position. Alternatively we can move focus\n // when the animation is done, however moving focus asynchronously will interrupt screen\n // readers which are in the process of reading out the menu already. We take the `element`\n // from the `event` since we can't use a `ViewChild` to access the pane.\n if (event.toState === 'enter' && this._keyManager.activeItemIndex === 0) {\n event.element.scrollTop = 0;\n }\n }\n /**\n * Sets up a stream that will keep track of any newly-added menu items and will update the list\n * of direct descendants. We collect the descendants this way, because `_allItems` can include\n * items that are part of child menus, and using a custom way of registering items is unreliable\n * when it comes to maintaining the item order.\n */\n _updateDirectDescendants() {\n this._allItems.changes.pipe(startWith(this._allItems)).subscribe(items => {\n this._directDescendantItems.reset(items.filter(item => item._parentMenu === this));\n this._directDescendantItems.notifyOnChanges();\n });\n }\n static {\n this.ɵfac = function _MatMenuBase_Factory(ɵt) {\n return new (ɵt || _MatMenuBase)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(MAT_MENU_DEFAULT_OPTIONS), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: _MatMenuBase,\n contentQueries: function _MatMenuBase_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MAT_MENU_CONTENT, 5);\n i0.ɵɵcontentQuery(dirIndex, MatMenuItem, 5);\n i0.ɵɵcontentQuery(dirIndex, MatMenuItem, 4);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.lazyContent = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._allItems = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.items = _t);\n }\n },\n viewQuery: function _MatMenuBase_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(TemplateRef, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templateRef = _t.first);\n }\n },\n inputs: {\n backdropClass: \"backdropClass\",\n ariaLabel: [0, \"aria-label\", \"ariaLabel\"],\n ariaLabelledby: [0, \"aria-labelledby\", \"ariaLabelledby\"],\n ariaDescribedby: [0, \"aria-describedby\", \"ariaDescribedby\"],\n xPosition: \"xPosition\",\n yPosition: \"yPosition\",\n overlapTrigger: \"overlapTrigger\",\n hasBackdrop: \"hasBackdrop\",\n panelClass: [0, \"class\", \"panelClass\"],\n classList: \"classList\"\n },\n outputs: {\n closed: \"closed\",\n close: \"close\"\n }\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(_MatMenuBase, [{\n type: Directive\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i0.NgZone\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [MAT_MENU_DEFAULT_OPTIONS]\n }]\n }, {\n type: i0.ChangeDetectorRef\n }];\n }, {\n _allItems: [{\n type: ContentChildren,\n args: [MatMenuItem, {\n descendants: true\n }]\n }],\n backdropClass: [{\n type: Input\n }],\n ariaLabel: [{\n type: Input,\n args: ['aria-label']\n }],\n ariaLabelledby: [{\n type: Input,\n args: ['aria-labelledby']\n }],\n ariaDescribedby: [{\n type: Input,\n args: ['aria-describedby']\n }],\n xPosition: [{\n type: Input\n }],\n yPosition: [{\n type: Input\n }],\n templateRef: [{\n type: ViewChild,\n args: [TemplateRef]\n }],\n items: [{\n type: ContentChildren,\n args: [MatMenuItem, {\n descendants: false\n }]\n }],\n lazyContent: [{\n type: ContentChild,\n args: [MAT_MENU_CONTENT]\n }],\n overlapTrigger: [{\n type: Input\n }],\n hasBackdrop: [{\n type: Input\n }],\n panelClass: [{\n type: Input,\n args: ['class']\n }],\n classList: [{\n type: Input\n }],\n closed: [{\n type: Output\n }],\n close: [{\n type: Output\n }]\n });\n})();\nclass MatMenu extends _MatMenuBase {\n constructor(_elementRef, _ngZone, _defaultOptions, changeDetectorRef) {\n super(_elementRef, _ngZone, _defaultOptions, changeDetectorRef);\n this._elevationPrefix = 'mat-elevation-z';\n this._baseElevation = 8;\n }\n static {\n this.ɵfac = function MatMenu_Factory(ɵt) {\n return new (ɵt || MatMenu)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(MAT_MENU_DEFAULT_OPTIONS), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatMenu,\n selectors: [[\"mat-menu\"]],\n hostAttrs: [\"ngSkipHydration\", \"\"],\n hostVars: 3,\n hostBindings: function MatMenu_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-label\", null)(\"aria-labelledby\", null)(\"aria-describedby\", null);\n }\n },\n exportAs: [\"matMenu\"],\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_MENU_PANEL,\n useExisting: MatMenu\n }]), i0.ɵɵInheritDefinitionFeature],\n ngContentSelectors: _c3,\n decls: 1,\n vars: 0,\n consts: [[\"tabindex\", \"-1\", \"role\", \"menu\", 1, \"mat-mdc-menu-panel\", \"mat-mdc-elevation-specific\", 3, \"keydown\", \"click\", \"id\", \"ngClass\"], [1, \"mat-mdc-menu-content\"]],\n template: function MatMenu_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵtemplate(0, MatMenu_ng_template_0_Template, 3, 6, \"ng-template\");\n }\n },\n dependencies: [i2.NgClass],\n styles: [\"mat-menu{display:none}.mat-mdc-menu-content{margin:0;padding:8px 0;list-style-type:none}.mat-mdc-menu-content:focus{outline:none}.mat-mdc-menu-content,.mat-mdc-menu-content .mat-mdc-menu-item .mat-mdc-menu-item-text{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;white-space:normal;font-family:var(--mat-menu-item-label-text-font);line-height:var(--mat-menu-item-label-text-line-height);font-size:var(--mat-menu-item-label-text-size);letter-spacing:var(--mat-menu-item-label-text-tracking);font-weight:var(--mat-menu-item-label-text-weight)}.mat-mdc-menu-panel{--mat-menu-container-shape:4px;min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;box-sizing:border-box;outline:0;border-radius:var(--mat-menu-container-shape);background-color:var(--mat-menu-container-color);will-change:transform,opacity}.mat-mdc-menu-panel.ng-animating{pointer-events:none}.cdk-high-contrast-active .mat-mdc-menu-panel{outline:solid 1px}.mat-mdc-menu-item{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;padding-left:16px;padding-right:16px;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);cursor:pointer;width:100%;text-align:left;box-sizing:border-box;color:inherit;font-size:inherit;background:none;text-decoration:none;margin:0;align-items:center;min-height:48px}.mat-mdc-menu-item:focus{outline:none}[dir=rtl] .mat-mdc-menu-item,.mat-mdc-menu-item[dir=rtl]{padding-left:16px;padding-right:16px}.mat-mdc-menu-item::-moz-focus-inner{border:0}.mat-mdc-menu-item,.mat-mdc-menu-item:visited,.mat-mdc-menu-item:link{color:var(--mat-menu-item-label-text-color)}.mat-mdc-menu-item .mat-icon-no-color,.mat-mdc-menu-item .mat-mdc-menu-submenu-icon{color:var(--mat-menu-item-icon-color)}.mat-mdc-menu-item[disabled]{cursor:default;opacity:.38}.mat-mdc-menu-item[disabled]::after{display:block;position:absolute;content:\\\"\\\";top:0;left:0;bottom:0;right:0}.mat-mdc-menu-item .mat-icon{margin-right:16px}[dir=rtl] .mat-mdc-menu-item{text-align:right}[dir=rtl] .mat-mdc-menu-item .mat-icon{margin-right:0;margin-left:16px}.mat-mdc-menu-item.mat-mdc-menu-item-submenu-trigger{padding-right:32px}[dir=rtl] .mat-mdc-menu-item.mat-mdc-menu-item-submenu-trigger{padding-right:16px;padding-left:32px}.mat-mdc-menu-item:not([disabled]):hover{background-color:var(--mat-menu-item-hover-state-layer-color)}.mat-mdc-menu-item:not([disabled]).cdk-program-focused,.mat-mdc-menu-item:not([disabled]).cdk-keyboard-focused,.mat-mdc-menu-item:not([disabled]).mat-mdc-menu-item-highlighted{background-color:var(--mat-menu-item-focus-state-layer-color)}.cdk-high-contrast-active .mat-mdc-menu-item{margin-top:1px}.mat-mdc-menu-submenu-icon{position:absolute;top:50%;right:16px;transform:translateY(-50%);width:5px;height:10px;fill:currentColor}[dir=rtl] .mat-mdc-menu-submenu-icon{right:auto;left:16px;transform:translateY(-50%) scaleX(-1)}.cdk-high-contrast-active .mat-mdc-menu-submenu-icon{fill:CanvasText}.mat-mdc-menu-item .mat-mdc-menu-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}\"],\n encapsulation: 2,\n data: {\n animation: [matMenuAnimations.transformMenu, matMenuAnimations.fadeInItems]\n },\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatMenu, [{\n type: Component,\n args: [{\n selector: 'mat-menu',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'matMenu',\n host: {\n '[attr.aria-label]': 'null',\n '[attr.aria-labelledby]': 'null',\n '[attr.aria-describedby]': 'null',\n 'ngSkipHydration': ''\n },\n animations: [matMenuAnimations.transformMenu, matMenuAnimations.fadeInItems],\n providers: [{\n provide: MAT_MENU_PANEL,\n useExisting: MatMenu\n }],\n template: \"\\n \\n \\n \\n \\n \\n\\n\",\n styles: [\"mat-menu{display:none}.mat-mdc-menu-content{margin:0;padding:8px 0;list-style-type:none}.mat-mdc-menu-content:focus{outline:none}.mat-mdc-menu-content,.mat-mdc-menu-content .mat-mdc-menu-item .mat-mdc-menu-item-text{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;white-space:normal;font-family:var(--mat-menu-item-label-text-font);line-height:var(--mat-menu-item-label-text-line-height);font-size:var(--mat-menu-item-label-text-size);letter-spacing:var(--mat-menu-item-label-text-tracking);font-weight:var(--mat-menu-item-label-text-weight)}.mat-mdc-menu-panel{--mat-menu-container-shape:4px;min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;box-sizing:border-box;outline:0;border-radius:var(--mat-menu-container-shape);background-color:var(--mat-menu-container-color);will-change:transform,opacity}.mat-mdc-menu-panel.ng-animating{pointer-events:none}.cdk-high-contrast-active .mat-mdc-menu-panel{outline:solid 1px}.mat-mdc-menu-item{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;padding-left:16px;padding-right:16px;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);cursor:pointer;width:100%;text-align:left;box-sizing:border-box;color:inherit;font-size:inherit;background:none;text-decoration:none;margin:0;align-items:center;min-height:48px}.mat-mdc-menu-item:focus{outline:none}[dir=rtl] .mat-mdc-menu-item,.mat-mdc-menu-item[dir=rtl]{padding-left:16px;padding-right:16px}.mat-mdc-menu-item::-moz-focus-inner{border:0}.mat-mdc-menu-item,.mat-mdc-menu-item:visited,.mat-mdc-menu-item:link{color:var(--mat-menu-item-label-text-color)}.mat-mdc-menu-item .mat-icon-no-color,.mat-mdc-menu-item .mat-mdc-menu-submenu-icon{color:var(--mat-menu-item-icon-color)}.mat-mdc-menu-item[disabled]{cursor:default;opacity:.38}.mat-mdc-menu-item[disabled]::after{display:block;position:absolute;content:\\\"\\\";top:0;left:0;bottom:0;right:0}.mat-mdc-menu-item .mat-icon{margin-right:16px}[dir=rtl] .mat-mdc-menu-item{text-align:right}[dir=rtl] .mat-mdc-menu-item .mat-icon{margin-right:0;margin-left:16px}.mat-mdc-menu-item.mat-mdc-menu-item-submenu-trigger{padding-right:32px}[dir=rtl] .mat-mdc-menu-item.mat-mdc-menu-item-submenu-trigger{padding-right:16px;padding-left:32px}.mat-mdc-menu-item:not([disabled]):hover{background-color:var(--mat-menu-item-hover-state-layer-color)}.mat-mdc-menu-item:not([disabled]).cdk-program-focused,.mat-mdc-menu-item:not([disabled]).cdk-keyboard-focused,.mat-mdc-menu-item:not([disabled]).mat-mdc-menu-item-highlighted{background-color:var(--mat-menu-item-focus-state-layer-color)}.cdk-high-contrast-active .mat-mdc-menu-item{margin-top:1px}.mat-mdc-menu-submenu-icon{position:absolute;top:50%;right:16px;transform:translateY(-50%);width:5px;height:10px;fill:currentColor}[dir=rtl] .mat-mdc-menu-submenu-icon{right:auto;left:16px;transform:translateY(-50%) scaleX(-1)}.cdk-high-contrast-active .mat-mdc-menu-submenu-icon{fill:CanvasText}.mat-mdc-menu-item .mat-mdc-menu-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}\"]\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i0.NgZone\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [MAT_MENU_DEFAULT_OPTIONS]\n }]\n }, {\n type: i0.ChangeDetectorRef\n }];\n }, null);\n})();\n\n/** Injection token that determines the scroll handling while the menu is open. */\nconst MAT_MENU_SCROLL_STRATEGY = new InjectionToken('mat-menu-scroll-strategy');\n/** @docs-private */\nfunction MAT_MENU_SCROLL_STRATEGY_FACTORY(overlay) {\n return () => overlay.scrollStrategies.reposition();\n}\n/** @docs-private */\nconst MAT_MENU_SCROLL_STRATEGY_FACTORY_PROVIDER = {\n provide: MAT_MENU_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: MAT_MENU_SCROLL_STRATEGY_FACTORY\n};\n/** Options for binding a passive event listener. */\nconst passiveEventListenerOptions = normalizePassiveListenerOptions({\n passive: true\n});\n/**\n * Default top padding of the menu panel.\n * @deprecated No longer being used. Will be removed.\n * @breaking-change 15.0.0\n */\nconst MENU_PANEL_TOP_PADDING = 8;\nclass _MatMenuTriggerBase {\n /**\n * @deprecated\n * @breaking-change 8.0.0\n */\n get _deprecatedMatMenuTriggerFor() {\n return this.menu;\n }\n set _deprecatedMatMenuTriggerFor(v) {\n this.menu = v;\n }\n /** References the menu instance that the trigger is associated with. */\n get menu() {\n return this._menu;\n }\n set menu(menu) {\n if (menu === this._menu) {\n return;\n }\n this._menu = menu;\n this._menuCloseSubscription.unsubscribe();\n if (menu) {\n if (menu === this._parentMaterialMenu && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throwMatMenuRecursiveError();\n }\n this._menuCloseSubscription = menu.close.subscribe(reason => {\n this._destroyMenu(reason);\n // If a click closed the menu, we should close the entire chain of nested menus.\n if ((reason === 'click' || reason === 'tab') && this._parentMaterialMenu) {\n this._parentMaterialMenu.closed.emit(reason);\n }\n });\n }\n this._menuItemInstance?._setTriggersSubmenu(this.triggersSubmenu());\n }\n constructor(_overlay, _element, _viewContainerRef, scrollStrategy, parentMenu,\n // `MatMenuTrigger` is commonly used in combination with a `MatMenuItem`.\n // tslint:disable-next-line: lightweight-tokens\n _menuItemInstance, _dir, _focusMonitor, _ngZone) {\n this._overlay = _overlay;\n this._element = _element;\n this._viewContainerRef = _viewContainerRef;\n this._menuItemInstance = _menuItemInstance;\n this._dir = _dir;\n this._focusMonitor = _focusMonitor;\n this._ngZone = _ngZone;\n this._overlayRef = null;\n this._menuOpen = false;\n this._closingActionsSubscription = Subscription.EMPTY;\n this._hoverSubscription = Subscription.EMPTY;\n this._menuCloseSubscription = Subscription.EMPTY;\n this._changeDetectorRef = inject(ChangeDetectorRef);\n /**\n * Handles touch start events on the trigger.\n * Needs to be an arrow function so we can easily use addEventListener and removeEventListener.\n */\n this._handleTouchStart = event => {\n if (!isFakeTouchstartFromScreenReader(event)) {\n this._openedBy = 'touch';\n }\n };\n // Tracking input type is necessary so it's possible to only auto-focus\n // the first item of the list when the menu is opened via the keyboard\n this._openedBy = undefined;\n /**\n * Whether focus should be restored when the menu is closed.\n * Note that disabling this option can have accessibility implications\n * and it's up to you to manage focus, if you decide to turn it off.\n */\n this.restoreFocus = true;\n /** Event emitted when the associated menu is opened. */\n this.menuOpened = new EventEmitter();\n /**\n * Event emitted when the associated menu is opened.\n * @deprecated Switch to `menuOpened` instead\n * @breaking-change 8.0.0\n */\n // tslint:disable-next-line:no-output-on-prefix\n this.onMenuOpen = this.menuOpened;\n /** Event emitted when the associated menu is closed. */\n this.menuClosed = new EventEmitter();\n /**\n * Event emitted when the associated menu is closed.\n * @deprecated Switch to `menuClosed` instead\n * @breaking-change 8.0.0\n */\n // tslint:disable-next-line:no-output-on-prefix\n this.onMenuClose = this.menuClosed;\n this._scrollStrategy = scrollStrategy;\n this._parentMaterialMenu = parentMenu instanceof _MatMenuBase ? parentMenu : undefined;\n _element.nativeElement.addEventListener('touchstart', this._handleTouchStart, passiveEventListenerOptions);\n }\n ngAfterContentInit() {\n this._handleHover();\n }\n ngOnDestroy() {\n if (this._overlayRef) {\n this._overlayRef.dispose();\n this._overlayRef = null;\n }\n this._element.nativeElement.removeEventListener('touchstart', this._handleTouchStart, passiveEventListenerOptions);\n this._menuCloseSubscription.unsubscribe();\n this._closingActionsSubscription.unsubscribe();\n this._hoverSubscription.unsubscribe();\n }\n /** Whether the menu is open. */\n get menuOpen() {\n return this._menuOpen;\n }\n /** The text direction of the containing app. */\n get dir() {\n return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';\n }\n /** Whether the menu triggers a sub-menu or a top-level one. */\n triggersSubmenu() {\n return !!(this._menuItemInstance && this._parentMaterialMenu && this.menu);\n }\n /** Toggles the menu between the open and closed states. */\n toggleMenu() {\n return this._menuOpen ? this.closeMenu() : this.openMenu();\n }\n /** Opens the menu. */\n openMenu() {\n const menu = this.menu;\n if (this._menuOpen || !menu) {\n return;\n }\n const overlayRef = this._createOverlay(menu);\n const overlayConfig = overlayRef.getConfig();\n const positionStrategy = overlayConfig.positionStrategy;\n this._setPosition(menu, positionStrategy);\n overlayConfig.hasBackdrop = menu.hasBackdrop == null ? !this.triggersSubmenu() : menu.hasBackdrop;\n overlayRef.attach(this._getPortal(menu));\n if (menu.lazyContent) {\n menu.lazyContent.attach(this.menuData);\n }\n this._closingActionsSubscription = this._menuClosingActions().subscribe(() => this.closeMenu());\n this._initMenu(menu);\n if (menu instanceof _MatMenuBase) {\n menu._startAnimation();\n menu._directDescendantItems.changes.pipe(takeUntil(menu.close)).subscribe(() => {\n // Re-adjust the position without locking when the amount of items\n // changes so that the overlay is allowed to pick a new optimal position.\n positionStrategy.withLockedPosition(false).reapplyLastPosition();\n positionStrategy.withLockedPosition(true);\n });\n }\n }\n /** Closes the menu. */\n closeMenu() {\n this.menu?.close.emit();\n }\n /**\n * Focuses the menu trigger.\n * @param origin Source of the menu trigger's focus.\n */\n focus(origin, options) {\n if (this._focusMonitor && origin) {\n this._focusMonitor.focusVia(this._element, origin, options);\n } else {\n this._element.nativeElement.focus(options);\n }\n }\n /**\n * Updates the position of the menu to ensure that it fits all options within the viewport.\n */\n updatePosition() {\n this._overlayRef?.updatePosition();\n }\n /** Closes the menu and does the necessary cleanup. */\n _destroyMenu(reason) {\n if (!this._overlayRef || !this.menuOpen) {\n return;\n }\n const menu = this.menu;\n this._closingActionsSubscription.unsubscribe();\n this._overlayRef.detach();\n // Always restore focus if the user is navigating using the keyboard or the menu was opened\n // programmatically. We don't restore for non-root triggers, because it can prevent focus\n // from making it back to the root trigger when closing a long chain of menus by clicking\n // on the backdrop.\n if (this.restoreFocus && (reason === 'keydown' || !this._openedBy || !this.triggersSubmenu())) {\n this.focus(this._openedBy);\n }\n this._openedBy = undefined;\n if (menu instanceof _MatMenuBase) {\n menu._resetAnimation();\n if (menu.lazyContent) {\n // Wait for the exit animation to finish before detaching the content.\n menu._animationDone.pipe(filter(event => event.toState === 'void'), take(1),\n // Interrupt if the content got re-attached.\n takeUntil(menu.lazyContent._attached)).subscribe({\n next: () => menu.lazyContent.detach(),\n // No matter whether the content got re-attached, reset the menu.\n complete: () => this._setIsMenuOpen(false)\n });\n } else {\n this._setIsMenuOpen(false);\n }\n } else {\n this._setIsMenuOpen(false);\n menu?.lazyContent?.detach();\n }\n }\n /**\n * This method sets the menu state to open and focuses the first item if\n * the menu was opened via the keyboard.\n */\n _initMenu(menu) {\n menu.parentMenu = this.triggersSubmenu() ? this._parentMaterialMenu : undefined;\n menu.direction = this.dir;\n this._setMenuElevation(menu);\n menu.focusFirstItem(this._openedBy || 'program');\n this._setIsMenuOpen(true);\n }\n /** Updates the menu elevation based on the amount of parent menus that it has. */\n _setMenuElevation(menu) {\n if (menu.setElevation) {\n let depth = 0;\n let parentMenu = menu.parentMenu;\n while (parentMenu) {\n depth++;\n parentMenu = parentMenu.parentMenu;\n }\n menu.setElevation(depth);\n }\n }\n // set state rather than toggle to support triggers sharing a menu\n _setIsMenuOpen(isOpen) {\n if (isOpen !== this._menuOpen) {\n this._menuOpen = isOpen;\n this._menuOpen ? this.menuOpened.emit() : this.menuClosed.emit();\n if (this.triggersSubmenu()) {\n this._menuItemInstance._setHighlighted(isOpen);\n }\n this._changeDetectorRef.markForCheck();\n }\n }\n /**\n * This method creates the overlay from the provided menu's template and saves its\n * OverlayRef so that it can be attached to the DOM when openMenu is called.\n */\n _createOverlay(menu) {\n if (!this._overlayRef) {\n const config = this._getOverlayConfig(menu);\n this._subscribeToPositions(menu, config.positionStrategy);\n this._overlayRef = this._overlay.create(config);\n // Consume the `keydownEvents` in order to prevent them from going to another overlay.\n // Ideally we'd also have our keyboard event logic in here, however doing so will\n // break anybody that may have implemented the `MatMenuPanel` themselves.\n this._overlayRef.keydownEvents().subscribe();\n }\n return this._overlayRef;\n }\n /**\n * This method builds the configuration object needed to create the overlay, the OverlayState.\n * @returns OverlayConfig\n */\n _getOverlayConfig(menu) {\n return new OverlayConfig({\n positionStrategy: this._overlay.position().flexibleConnectedTo(this._element).withLockedPosition().withGrowAfterOpen().withTransformOriginOn('.mat-menu-panel, .mat-mdc-menu-panel'),\n backdropClass: menu.backdropClass || 'cdk-overlay-transparent-backdrop',\n panelClass: menu.overlayPanelClass,\n scrollStrategy: this._scrollStrategy(),\n direction: this._dir\n });\n }\n /**\n * Listens to changes in the position of the overlay and sets the correct classes\n * on the menu based on the new position. This ensures the animation origin is always\n * correct, even if a fallback position is used for the overlay.\n */\n _subscribeToPositions(menu, position) {\n if (menu.setPositionClasses) {\n position.positionChanges.subscribe(change => {\n const posX = change.connectionPair.overlayX === 'start' ? 'after' : 'before';\n const posY = change.connectionPair.overlayY === 'top' ? 'below' : 'above';\n // @breaking-change 15.0.0 Remove null check for `ngZone`.\n // `positionChanges` fires outside of the `ngZone` and `setPositionClasses` might be\n // updating something in the view so we need to bring it back in.\n if (this._ngZone) {\n this._ngZone.run(() => menu.setPositionClasses(posX, posY));\n } else {\n menu.setPositionClasses(posX, posY);\n }\n });\n }\n }\n /**\n * Sets the appropriate positions on a position strategy\n * so the overlay connects with the trigger correctly.\n * @param positionStrategy Strategy whose position to update.\n */\n _setPosition(menu, positionStrategy) {\n let [originX, originFallbackX] = menu.xPosition === 'before' ? ['end', 'start'] : ['start', 'end'];\n let [overlayY, overlayFallbackY] = menu.yPosition === 'above' ? ['bottom', 'top'] : ['top', 'bottom'];\n let [originY, originFallbackY] = [overlayY, overlayFallbackY];\n let [overlayX, overlayFallbackX] = [originX, originFallbackX];\n let offsetY = 0;\n if (this.triggersSubmenu()) {\n // When the menu is a sub-menu, it should always align itself\n // to the edges of the trigger, instead of overlapping it.\n overlayFallbackX = originX = menu.xPosition === 'before' ? 'start' : 'end';\n originFallbackX = overlayX = originX === 'end' ? 'start' : 'end';\n if (this._parentMaterialMenu) {\n if (this._parentInnerPadding == null) {\n const firstItem = this._parentMaterialMenu.items.first;\n this._parentInnerPadding = firstItem ? firstItem._getHostElement().offsetTop : 0;\n }\n offsetY = overlayY === 'bottom' ? this._parentInnerPadding : -this._parentInnerPadding;\n }\n } else if (!menu.overlapTrigger) {\n originY = overlayY === 'top' ? 'bottom' : 'top';\n originFallbackY = overlayFallbackY === 'top' ? 'bottom' : 'top';\n }\n positionStrategy.withPositions([{\n originX,\n originY,\n overlayX,\n overlayY,\n offsetY\n }, {\n originX: originFallbackX,\n originY,\n overlayX: overlayFallbackX,\n overlayY,\n offsetY\n }, {\n originX,\n originY: originFallbackY,\n overlayX,\n overlayY: overlayFallbackY,\n offsetY: -offsetY\n }, {\n originX: originFallbackX,\n originY: originFallbackY,\n overlayX: overlayFallbackX,\n overlayY: overlayFallbackY,\n offsetY: -offsetY\n }]);\n }\n /** Returns a stream that emits whenever an action that should close the menu occurs. */\n _menuClosingActions() {\n const backdrop = this._overlayRef.backdropClick();\n const detachments = this._overlayRef.detachments();\n const parentClose = this._parentMaterialMenu ? this._parentMaterialMenu.closed : of();\n const hover = this._parentMaterialMenu ? this._parentMaterialMenu._hovered().pipe(filter(active => active !== this._menuItemInstance), filter(() => this._menuOpen)) : of();\n return merge(backdrop, parentClose, hover, detachments);\n }\n /** Handles mouse presses on the trigger. */\n _handleMousedown(event) {\n if (!isFakeMousedownFromScreenReader(event)) {\n // Since right or middle button clicks won't trigger the `click` event,\n // we shouldn't consider the menu as opened by mouse in those cases.\n this._openedBy = event.button === 0 ? 'mouse' : undefined;\n // Since clicking on the trigger won't close the menu if it opens a sub-menu,\n // we should prevent focus from moving onto it via click to avoid the\n // highlight from lingering on the menu item.\n if (this.triggersSubmenu()) {\n event.preventDefault();\n }\n }\n }\n /** Handles key presses on the trigger. */\n _handleKeydown(event) {\n const keyCode = event.keyCode;\n // Pressing enter on the trigger will trigger the click handler later.\n if (keyCode === ENTER || keyCode === SPACE) {\n this._openedBy = 'keyboard';\n }\n if (this.triggersSubmenu() && (keyCode === RIGHT_ARROW && this.dir === 'ltr' || keyCode === LEFT_ARROW && this.dir === 'rtl')) {\n this._openedBy = 'keyboard';\n this.openMenu();\n }\n }\n /** Handles click events on the trigger. */\n _handleClick(event) {\n if (this.triggersSubmenu()) {\n // Stop event propagation to avoid closing the parent menu.\n event.stopPropagation();\n this.openMenu();\n } else {\n this.toggleMenu();\n }\n }\n /** Handles the cases where the user hovers over the trigger. */\n _handleHover() {\n // Subscribe to changes in the hovered item in order to toggle the panel.\n if (!this.triggersSubmenu() || !this._parentMaterialMenu) {\n return;\n }\n this._hoverSubscription = this._parentMaterialMenu._hovered()\n // Since we might have multiple competing triggers for the same menu (e.g. a sub-menu\n // with different data and triggers), we have to delay it by a tick to ensure that\n // it won't be closed immediately after it is opened.\n .pipe(filter(active => active === this._menuItemInstance && !active.disabled), delay(0, asapScheduler)).subscribe(() => {\n this._openedBy = 'mouse';\n // If the same menu is used between multiple triggers, it might still be animating\n // while the new trigger tries to re-open it. Wait for the animation to finish\n // before doing so. Also interrupt if the user moves to another item.\n if (this.menu instanceof _MatMenuBase && this.menu._isAnimating) {\n // We need the `delay(0)` here in order to avoid\n // 'changed after checked' errors in some cases. See #12194.\n this.menu._animationDone.pipe(take(1), delay(0, asapScheduler), takeUntil(this._parentMaterialMenu._hovered())).subscribe(() => this.openMenu());\n } else {\n this.openMenu();\n }\n });\n }\n /** Gets the portal that should be attached to the overlay. */\n _getPortal(menu) {\n // Note that we can avoid this check by keeping the portal on the menu panel.\n // While it would be cleaner, we'd have to introduce another required method on\n // `MatMenuPanel`, making it harder to consume.\n if (!this._portal || this._portal.templateRef !== menu.templateRef) {\n this._portal = new TemplatePortal(menu.templateRef, this._viewContainerRef);\n }\n return this._portal;\n }\n static {\n this.ɵfac = function _MatMenuTriggerBase_Factory(ɵt) {\n return new (ɵt || _MatMenuTriggerBase)(i0.ɵɵdirectiveInject(i1$1.Overlay), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(MAT_MENU_SCROLL_STRATEGY), i0.ɵɵdirectiveInject(MAT_MENU_PANEL, 8), i0.ɵɵdirectiveInject(MatMenuItem, 10), i0.ɵɵdirectiveInject(i3$1.Directionality, 8), i0.ɵɵdirectiveInject(i1.FocusMonitor), i0.ɵɵdirectiveInject(i0.NgZone));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: _MatMenuTriggerBase,\n hostVars: 3,\n hostBindings: function _MatMenuTriggerBase_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function _MatMenuTriggerBase_click_HostBindingHandler($event) {\n return ctx._handleClick($event);\n })(\"mousedown\", function _MatMenuTriggerBase_mousedown_HostBindingHandler($event) {\n return ctx._handleMousedown($event);\n })(\"keydown\", function _MatMenuTriggerBase_keydown_HostBindingHandler($event) {\n return ctx._handleKeydown($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-haspopup\", ctx.menu ? \"menu\" : null)(\"aria-expanded\", ctx.menuOpen)(\"aria-controls\", ctx.menuOpen ? ctx.menu.panelId : null);\n }\n },\n inputs: {\n _deprecatedMatMenuTriggerFor: [0, \"mat-menu-trigger-for\", \"_deprecatedMatMenuTriggerFor\"],\n menu: [0, \"matMenuTriggerFor\", \"menu\"],\n menuData: [0, \"matMenuTriggerData\", \"menuData\"],\n restoreFocus: [0, \"matMenuTriggerRestoreFocus\", \"restoreFocus\"]\n },\n outputs: {\n menuOpened: \"menuOpened\",\n onMenuOpen: \"onMenuOpen\",\n menuClosed: \"menuClosed\",\n onMenuClose: \"onMenuClose\"\n }\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(_MatMenuTriggerBase, [{\n type: Directive,\n args: [{\n host: {\n '[attr.aria-haspopup]': 'menu ? \"menu\" : null',\n '[attr.aria-expanded]': 'menuOpen',\n '[attr.aria-controls]': 'menuOpen ? menu.panelId : null',\n '(click)': '_handleClick($event)',\n '(mousedown)': '_handleMousedown($event)',\n '(keydown)': '_handleKeydown($event)'\n }\n }]\n }], function () {\n return [{\n type: i1$1.Overlay\n }, {\n type: i0.ElementRef\n }, {\n type: i0.ViewContainerRef\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [MAT_MENU_SCROLL_STRATEGY]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [MAT_MENU_PANEL]\n }, {\n type: Optional\n }]\n }, {\n type: MatMenuItem,\n decorators: [{\n type: Optional\n }, {\n type: Self\n }]\n }, {\n type: i3$1.Directionality,\n decorators: [{\n type: Optional\n }]\n }, {\n type: i1.FocusMonitor\n }, {\n type: i0.NgZone\n }];\n }, {\n _deprecatedMatMenuTriggerFor: [{\n type: Input,\n args: ['mat-menu-trigger-for']\n }],\n menu: [{\n type: Input,\n args: ['matMenuTriggerFor']\n }],\n menuData: [{\n type: Input,\n args: ['matMenuTriggerData']\n }],\n restoreFocus: [{\n type: Input,\n args: ['matMenuTriggerRestoreFocus']\n }],\n menuOpened: [{\n type: Output\n }],\n onMenuOpen: [{\n type: Output\n }],\n menuClosed: [{\n type: Output\n }],\n onMenuClose: [{\n type: Output\n }]\n });\n})();\n/** Directive applied to an element that should trigger a `mat-menu`. */\nclass MatMenuTrigger extends _MatMenuTriggerBase {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatMenuTrigger_BaseFactory;\n return function MatMenuTrigger_Factory(ɵt) {\n return (ɵMatMenuTrigger_BaseFactory || (ɵMatMenuTrigger_BaseFactory = i0.ɵɵgetInheritedFactory(MatMenuTrigger)))(ɵt || MatMenuTrigger);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatMenuTrigger,\n selectors: [[\"\", \"mat-menu-trigger-for\", \"\"], [\"\", \"matMenuTriggerFor\", \"\"]],\n hostAttrs: [1, \"mat-mdc-menu-trigger\"],\n exportAs: [\"matMenuTrigger\"],\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatMenuTrigger, [{\n type: Directive,\n args: [{\n selector: `[mat-menu-trigger-for], [matMenuTriggerFor]`,\n host: {\n 'class': 'mat-mdc-menu-trigger'\n },\n exportAs: 'matMenuTrigger'\n }]\n }], null, null);\n})();\nclass MatMenuModule {\n static {\n this.ɵfac = function MatMenuModule_Factory(ɵt) {\n return new (ɵt || MatMenuModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatMenuModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [MAT_MENU_SCROLL_STRATEGY_FACTORY_PROVIDER],\n imports: [CommonModule, MatRippleModule, MatCommonModule, OverlayModule, CdkScrollableModule, MatCommonModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatMenuModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule, MatRippleModule, MatCommonModule, OverlayModule],\n exports: [CdkScrollableModule, MatMenu, MatCommonModule, MatMenuItem, MatMenuContent, MatMenuTrigger],\n declarations: [MatMenu, MatMenuItem, MatMenuContent, MatMenuTrigger],\n providers: [MAT_MENU_SCROLL_STRATEGY_FACTORY_PROVIDER]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_MENU_CONTENT, MAT_MENU_DEFAULT_OPTIONS, MAT_MENU_PANEL, MAT_MENU_SCROLL_STRATEGY, MAT_MENU_SCROLL_STRATEGY_FACTORY_PROVIDER, MENU_PANEL_TOP_PADDING, MatMenu, MatMenuContent, MatMenuItem, MatMenuModule, MatMenuTrigger, _MatMenuBase, _MatMenuContentBase, _MatMenuTriggerBase, fadeInItems, matMenuAnimations, transformMenu };\n","import * as i0 from '@angular/core';\nimport { Component, ChangeDetectionStrategy, ViewEncapsulation, Inject, Directive, NgModule } from '@angular/core';\nimport { _MatMenuBase, MAT_MENU_DEFAULT_OPTIONS, MAT_MENU_PANEL, matMenuAnimations, MatMenuItem, _MatMenuTriggerBase, _MatMenuContentBase, MAT_MENU_CONTENT, MAT_MENU_SCROLL_STRATEGY_FACTORY_PROVIDER } from '@angular/material/menu';\nconst _c0 = [\"*\"];\nfunction MatLegacyMenu_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵlistener(\"keydown\", function MatLegacyMenu_ng_template_0_Template_div_keydown_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1._handleKeydown($event));\n })(\"click\", function MatLegacyMenu_ng_template_0_Template_div_click_0_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.closed.emit(\"click\"));\n })(\"@transformMenu.start\", function MatLegacyMenu_ng_template_0_Template_div_animation_transformMenu_start_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1._onAnimationStart($event));\n })(\"@transformMenu.done\", function MatLegacyMenu_ng_template_0_Template_div_animation_transformMenu_done_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1._onAnimationDone($event));\n });\n i0.ɵɵelementStart(1, \"div\", 1);\n i0.ɵɵprojection(2);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"id\", ctx_r1.panelId)(\"ngClass\", ctx_r1._classList)(\"@transformMenu\", ctx_r1._panelAnimationState);\n i0.ɵɵattribute(\"aria-label\", ctx_r1.ariaLabel || null)(\"aria-labelledby\", ctx_r1.ariaLabelledby || null)(\"aria-describedby\", ctx_r1.ariaDescribedby || null);\n }\n}\nconst _c1 = [\"mat-menu-item\", \"\"];\nfunction MatLegacyMenuItem__svg_svg_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 2);\n i0.ɵɵelement(1, \"polygon\", 3);\n i0.ɵɵelementEnd();\n }\n}\nexport { MAT_MENU_CONTENT as MAT_LEGACY_MENU_CONTENT, MAT_MENU_DEFAULT_OPTIONS as MAT_LEGACY_MENU_DEFAULT_OPTIONS, MAT_MENU_PANEL as MAT_LEGACY_MENU_PANEL, MAT_MENU_SCROLL_STRATEGY as MAT_LEGACY_MENU_SCROLL_STRATEGY, fadeInItems as fadeInLegacyItems, matMenuAnimations as matLegacyMenuAnimations, transformMenu as transformLegacyMenu } from '@angular/material/menu';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i2 from '@angular/material/core';\nimport { MatCommonModule, MatRippleModule } from '@angular/material/core';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { CdkScrollableModule } from '@angular/cdk/scrolling';\n\n/**\n * @docs-public MatMenu\n * @deprecated Use `MatMenu` from `@angular/material/menu` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyMenu extends _MatMenuBase {\n constructor(elementRef, ngZone, defaultOptions, changeDetectorRef) {\n super(elementRef, ngZone, defaultOptions, changeDetectorRef);\n this._elevationPrefix = 'mat-elevation-z';\n this._baseElevation = 4;\n }\n static {\n this.ɵfac = function MatLegacyMenu_Factory(ɵt) {\n return new (ɵt || MatLegacyMenu)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(MAT_MENU_DEFAULT_OPTIONS), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatLegacyMenu,\n selectors: [[\"mat-menu\"]],\n hostAttrs: [\"ngSkipHydration\", \"\"],\n hostVars: 4,\n hostBindings: function MatLegacyMenu_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-label\", null)(\"aria-labelledby\", null)(\"aria-describedby\", null)(\"mat-id-collision\", null);\n }\n },\n exportAs: [\"matMenu\"],\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_MENU_PANEL,\n useExisting: MatLegacyMenu\n }]), i0.ɵɵInheritDefinitionFeature],\n ngContentSelectors: _c0,\n decls: 1,\n vars: 0,\n consts: [[\"tabindex\", \"-1\", \"role\", \"menu\", 1, \"mat-menu-panel\", 3, \"keydown\", \"click\", \"id\", \"ngClass\"], [1, \"mat-menu-content\"]],\n template: function MatLegacyMenu_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵtemplate(0, MatLegacyMenu_ng_template_0_Template, 3, 6, \"ng-template\");\n }\n },\n dependencies: [i1.NgClass],\n styles: [\"mat-menu{display:none}.mat-menu-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;max-height:calc(100vh - 48px);border-radius:4px;outline:0;min-height:64px;position:relative}.mat-menu-panel.ng-animating{pointer-events:none}.cdk-high-contrast-active .mat-menu-panel{outline:solid 1px}.mat-menu-content:not(:empty){padding-top:8px;padding-bottom:8px}.mat-menu-item{-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:48px;height:48px;padding:0 16px;text-align:left;text-decoration:none;max-width:100%;position:relative}.mat-menu-item::-moz-focus-inner{border:0}.mat-menu-item[disabled]{cursor:default}[dir=rtl] .mat-menu-item{text-align:right}.mat-menu-item .mat-icon{margin-right:16px;vertical-align:middle}.mat-menu-item .mat-icon svg{vertical-align:top}[dir=rtl] .mat-menu-item .mat-icon{margin-left:16px;margin-right:0}.mat-menu-item[disabled]::after{display:block;position:absolute;content:\\\"\\\";top:0;left:0;bottom:0;right:0}.cdk-high-contrast-active .mat-menu-item{margin-top:1px}.mat-menu-item-submenu-trigger{padding-right:32px}[dir=rtl] .mat-menu-item-submenu-trigger{padding-right:16px;padding-left:32px}.mat-menu-submenu-icon{position:absolute;top:50%;right:16px;transform:translateY(-50%);width:5px;height:10px;fill:currentColor}[dir=rtl] .mat-menu-submenu-icon{right:auto;left:16px;transform:translateY(-50%) scaleX(-1)}.cdk-high-contrast-active .mat-menu-submenu-icon{fill:CanvasText}button.mat-menu-item{width:100%}.mat-menu-item .mat-menu-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}\"],\n encapsulation: 2,\n data: {\n animation: [matMenuAnimations.transformMenu, matMenuAnimations.fadeInItems]\n },\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyMenu, [{\n type: Component,\n args: [{\n selector: 'mat-menu',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'matMenu',\n host: {\n '[attr.aria-label]': 'null',\n '[attr.aria-labelledby]': 'null',\n '[attr.aria-describedby]': 'null',\n 'ngSkipHydration': '',\n // This binding is used to ensure that the component ID doesn't clash with the `MatMenu`.\n '[attr.mat-id-collision]': 'null'\n },\n animations: [matMenuAnimations.transformMenu, matMenuAnimations.fadeInItems],\n providers: [{\n provide: MAT_MENU_PANEL,\n useExisting: MatLegacyMenu\n }],\n template: \"\\n \\n \\n \\n \\n \\n\\n\",\n styles: [\"mat-menu{display:none}.mat-menu-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;max-height:calc(100vh - 48px);border-radius:4px;outline:0;min-height:64px;position:relative}.mat-menu-panel.ng-animating{pointer-events:none}.cdk-high-contrast-active .mat-menu-panel{outline:solid 1px}.mat-menu-content:not(:empty){padding-top:8px;padding-bottom:8px}.mat-menu-item{-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:48px;height:48px;padding:0 16px;text-align:left;text-decoration:none;max-width:100%;position:relative}.mat-menu-item::-moz-focus-inner{border:0}.mat-menu-item[disabled]{cursor:default}[dir=rtl] .mat-menu-item{text-align:right}.mat-menu-item .mat-icon{margin-right:16px;vertical-align:middle}.mat-menu-item .mat-icon svg{vertical-align:top}[dir=rtl] .mat-menu-item .mat-icon{margin-left:16px;margin-right:0}.mat-menu-item[disabled]::after{display:block;position:absolute;content:\\\"\\\";top:0;left:0;bottom:0;right:0}.cdk-high-contrast-active .mat-menu-item{margin-top:1px}.mat-menu-item-submenu-trigger{padding-right:32px}[dir=rtl] .mat-menu-item-submenu-trigger{padding-right:16px;padding-left:32px}.mat-menu-submenu-icon{position:absolute;top:50%;right:16px;transform:translateY(-50%);width:5px;height:10px;fill:currentColor}[dir=rtl] .mat-menu-submenu-icon{right:auto;left:16px;transform:translateY(-50%) scaleX(-1)}.cdk-high-contrast-active .mat-menu-submenu-icon{fill:CanvasText}button.mat-menu-item{width:100%}.mat-menu-item .mat-menu-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}\"]\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i0.NgZone\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [MAT_MENU_DEFAULT_OPTIONS]\n }]\n }, {\n type: i0.ChangeDetectorRef\n }];\n }, null);\n})();\n\n/**\n * Single item inside of a `mat-menu`. Provides the menu item styling and accessibility treatment.\n * @deprecated Use `MatMenuItem` from `@angular/material/menu` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyMenuItem extends MatMenuItem {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatLegacyMenuItem_BaseFactory;\n return function MatLegacyMenuItem_Factory(ɵt) {\n return (ɵMatLegacyMenuItem_BaseFactory || (ɵMatLegacyMenuItem_BaseFactory = i0.ɵɵgetInheritedFactory(MatLegacyMenuItem)))(ɵt || MatLegacyMenuItem);\n };\n })();\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatLegacyMenuItem,\n selectors: [[\"\", \"mat-menu-item\", \"\"]],\n hostAttrs: [1, \"mat-focus-indicator\"],\n hostVars: 20,\n hostBindings: function MatLegacyMenuItem_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"role\", ctx.role)(\"tabindex\", ctx._getTabIndex())(\"aria-disabled\", ctx.disabled.toString())(\"disabled\", ctx.disabled || null);\n i0.ɵɵclassProp(\"mat-menu-item\", true)(\"mat-menu-item-highlighted\", ctx._highlighted)(\"mat-menu-item-submenu-trigger\", ctx._triggersSubmenu)(\"mat-mdc-menu-item\", false)(\"mat-mdc-focus-indicator\", false)(\"mdc-list-item\", false)(\"mat-mdc-menu-item-highlighted\", false)(\"mat-mdc-menu-item-submenu-trigger\", false);\n }\n },\n inputs: {\n disabled: \"disabled\",\n disableRipple: \"disableRipple\"\n },\n exportAs: [\"matMenuItem\"],\n features: [i0.ɵɵProvidersFeature([{\n provide: MatMenuItem,\n useExisting: MatLegacyMenuItem\n }]), i0.ɵɵInheritDefinitionFeature],\n attrs: _c1,\n ngContentSelectors: _c0,\n decls: 3,\n vars: 3,\n consts: [[\"matRipple\", \"\", 1, \"mat-menu-ripple\", 3, \"matRippleDisabled\", \"matRippleTrigger\"], [\"class\", \"mat-menu-submenu-icon\", \"viewBox\", \"0 0 5 10\", \"focusable\", \"false\", \"aria-hidden\", \"true\", 4, \"ngIf\"], [\"viewBox\", \"0 0 5 10\", \"focusable\", \"false\", \"aria-hidden\", \"true\", 1, \"mat-menu-submenu-icon\"], [\"points\", \"0,0 5,5 0,10\"]],\n template: function MatLegacyMenuItem_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵprojection(0);\n i0.ɵɵelement(1, \"div\", 0);\n i0.ɵɵtemplate(2, MatLegacyMenuItem__svg_svg_2_Template, 2, 0, \"svg\", 1);\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"matRippleDisabled\", ctx.disableRipple || ctx.disabled)(\"matRippleTrigger\", ctx._getHostElement());\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx._triggersSubmenu);\n }\n },\n dependencies: [i1.NgIf, i2.MatRipple],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyMenuItem, [{\n type: Component,\n args: [{\n selector: '[mat-menu-item]',\n exportAs: 'matMenuItem',\n inputs: ['disabled', 'disableRipple'],\n host: {\n '[attr.role]': 'role',\n '[class.mat-menu-item]': 'true',\n '[class.mat-menu-item-highlighted]': '_highlighted',\n '[class.mat-menu-item-submenu-trigger]': '_triggersSubmenu',\n '[attr.tabindex]': '_getTabIndex()',\n '[attr.aria-disabled]': 'disabled.toString()',\n '[attr.disabled]': 'disabled || null',\n 'class': 'mat-focus-indicator',\n // Classes added by the base class that should be removed.\n '[class.mat-mdc-menu-item]': 'false',\n '[class.mat-mdc-focus-indicator]': 'false',\n '[class.mdc-list-item]': 'false',\n '[class.mat-mdc-menu-item-highlighted]': 'false',\n '[class.mat-mdc-menu-item-submenu-trigger]': 'false'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [{\n provide: MatMenuItem,\n useExisting: MatLegacyMenuItem\n }],\n template: \"\\n\\n\\n\\n\\n\"\n }]\n }], null, null);\n})();\n\n// TODO(andrewseguin): Remove the kebab versions in favor of camelCased attribute selectors\n/**\n * Directive applied to an element that should trigger a `mat-menu`.\n * @deprecated Use `MatMenuTrigger` from `@angular/material/menu` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyMenuTrigger extends _MatMenuTriggerBase {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatLegacyMenuTrigger_BaseFactory;\n return function MatLegacyMenuTrigger_Factory(ɵt) {\n return (ɵMatLegacyMenuTrigger_BaseFactory || (ɵMatLegacyMenuTrigger_BaseFactory = i0.ɵɵgetInheritedFactory(MatLegacyMenuTrigger)))(ɵt || MatLegacyMenuTrigger);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyMenuTrigger,\n selectors: [[\"\", \"mat-menu-trigger-for\", \"\"], [\"\", \"matMenuTriggerFor\", \"\"]],\n hostAttrs: [1, \"mat-menu-trigger\"],\n exportAs: [\"matMenuTrigger\"],\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyMenuTrigger, [{\n type: Directive,\n args: [{\n selector: `[mat-menu-trigger-for], [matMenuTriggerFor]`,\n host: {\n 'class': 'mat-menu-trigger'\n },\n exportAs: 'matMenuTrigger'\n }]\n }], null, null);\n})();\n\n/**\n * Menu content that will be rendered lazily once the menu is opened.\n * @deprecated Use `MatMenuContent` from `@angular/material/menu` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyMenuContent extends _MatMenuContentBase {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatLegacyMenuContent_BaseFactory;\n return function MatLegacyMenuContent_Factory(ɵt) {\n return (ɵMatLegacyMenuContent_BaseFactory || (ɵMatLegacyMenuContent_BaseFactory = i0.ɵɵgetInheritedFactory(MatLegacyMenuContent)))(ɵt || MatLegacyMenuContent);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyMenuContent,\n selectors: [[\"ng-template\", \"matMenuContent\", \"\"]],\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_MENU_CONTENT,\n useExisting: MatLegacyMenuContent\n }]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyMenuContent, [{\n type: Directive,\n args: [{\n selector: 'ng-template[matMenuContent]',\n providers: [{\n provide: MAT_MENU_CONTENT,\n useExisting: MatLegacyMenuContent\n }]\n }]\n }], null, null);\n})();\n\n/**\n * @deprecated Use `MatMenuModule` from `@angular/material/menu` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyMenuModule {\n static {\n this.ɵfac = function MatLegacyMenuModule_Factory(ɵt) {\n return new (ɵt || MatLegacyMenuModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatLegacyMenuModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [MAT_MENU_SCROLL_STRATEGY_FACTORY_PROVIDER],\n imports: [CommonModule, MatCommonModule, MatRippleModule, OverlayModule, CdkScrollableModule, MatCommonModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyMenuModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule, MatCommonModule, MatRippleModule, OverlayModule],\n exports: [CdkScrollableModule, MatCommonModule, MatLegacyMenu, MatLegacyMenuItem, MatLegacyMenuTrigger, MatLegacyMenuContent],\n declarations: [MatLegacyMenu, MatLegacyMenuItem, MatLegacyMenuTrigger, MatLegacyMenuContent],\n providers: [MAT_MENU_SCROLL_STRATEGY_FACTORY_PROVIDER]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MatLegacyMenu, MatLegacyMenuContent, MatLegacyMenuItem, MatLegacyMenuModule, MatLegacyMenuTrigger };\n","import { takeUntil, take } from 'rxjs/operators';\nimport { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';\nimport { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, ElementRef, Directive, Inject, Input, Optional, Component, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, NgModule } from '@angular/core';\nimport * as i5 from '@angular/common';\nimport { DOCUMENT, CommonModule } from '@angular/common';\nimport * as i2 from '@angular/cdk/platform';\nimport { normalizePassiveListenerOptions } from '@angular/cdk/platform';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\nimport * as i3 from '@angular/cdk/a11y';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport * as i4 from '@angular/cdk/bidi';\nimport * as i1 from '@angular/cdk/overlay';\nimport { Overlay, OverlayModule } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { Subject } from 'rxjs';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\nimport { CdkScrollableModule } from '@angular/cdk/scrolling';\nimport { MatCommonModule } from '@angular/material/core';\n\n/** Time in ms to throttle repositioning after scroll events. */\nconst _c0 = [\"tooltip\"];\nconst SCROLL_THROTTLE_MS = 20;\n/**\n * Creates an error to be thrown if the user supplied an invalid tooltip position.\n * @docs-private\n */\nfunction getMatTooltipInvalidPositionError(position) {\n return Error(`Tooltip position \"${position}\" is invalid.`);\n}\n/** Injection token that determines the scroll handling while a tooltip is visible. */\nconst MAT_TOOLTIP_SCROLL_STRATEGY = new InjectionToken('mat-tooltip-scroll-strategy');\n/** @docs-private */\nfunction MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY(overlay) {\n return () => overlay.scrollStrategies.reposition({\n scrollThrottle: SCROLL_THROTTLE_MS\n });\n}\n/** @docs-private */\nconst MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER = {\n provide: MAT_TOOLTIP_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY\n};\n/** @docs-private */\nfunction MAT_TOOLTIP_DEFAULT_OPTIONS_FACTORY() {\n return {\n showDelay: 0,\n hideDelay: 0,\n touchendHideDelay: 1500\n };\n}\n/** Injection token to be used to override the default options for `matTooltip`. */\nconst MAT_TOOLTIP_DEFAULT_OPTIONS = new InjectionToken('mat-tooltip-default-options', {\n providedIn: 'root',\n factory: MAT_TOOLTIP_DEFAULT_OPTIONS_FACTORY\n});\n/**\n * CSS class that will be attached to the overlay panel.\n * @deprecated\n * @breaking-change 13.0.0 remove this variable\n */\nconst TOOLTIP_PANEL_CLASS = 'mat-mdc-tooltip-panel';\nconst PANEL_CLASS = 'tooltip-panel';\n/** Options used to bind passive event listeners. */\nconst passiveListenerOptions = normalizePassiveListenerOptions({\n passive: true\n});\n/**\n * Time between the user putting the pointer on a tooltip\n * trigger and the long press event being fired.\n */\nconst LONGPRESS_DELAY = 500;\n// These constants were taken from MDC's `numbers` object. We can't import them from MDC,\n// because they have some top-level references to `window` which break during SSR.\nconst MIN_VIEWPORT_TOOLTIP_THRESHOLD = 8;\nconst UNBOUNDED_ANCHOR_GAP = 8;\nconst MIN_HEIGHT = 24;\nconst MAX_WIDTH = 200;\nclass _MatTooltipBase {\n /** Allows the user to define the position of the tooltip relative to the parent element */\n get position() {\n return this._position;\n }\n set position(value) {\n if (value !== this._position) {\n this._position = value;\n if (this._overlayRef) {\n this._updatePosition(this._overlayRef);\n this._tooltipInstance?.show(0);\n this._overlayRef.updatePosition();\n }\n }\n }\n /**\n * Whether tooltip should be relative to the click or touch origin\n * instead of outside the element bounding box.\n */\n get positionAtOrigin() {\n return this._positionAtOrigin;\n }\n set positionAtOrigin(value) {\n this._positionAtOrigin = coerceBooleanProperty(value);\n this._detach();\n this._overlayRef = null;\n }\n /** Disables the display of the tooltip. */\n get disabled() {\n return this._disabled;\n }\n set disabled(value) {\n this._disabled = coerceBooleanProperty(value);\n // If tooltip is disabled, hide immediately.\n if (this._disabled) {\n this.hide(0);\n } else {\n this._setupPointerEnterEventsIfNeeded();\n }\n }\n /** The default delay in ms before showing the tooltip after show is called */\n get showDelay() {\n return this._showDelay;\n }\n set showDelay(value) {\n this._showDelay = coerceNumberProperty(value);\n }\n /** The default delay in ms before hiding the tooltip after hide is called */\n get hideDelay() {\n return this._hideDelay;\n }\n set hideDelay(value) {\n this._hideDelay = coerceNumberProperty(value);\n if (this._tooltipInstance) {\n this._tooltipInstance._mouseLeaveHideDelay = this._hideDelay;\n }\n }\n /** The message to be displayed in the tooltip */\n get message() {\n return this._message;\n }\n set message(value) {\n this._ariaDescriber.removeDescription(this._elementRef.nativeElement, this._message, 'tooltip');\n // If the message is not a string (e.g. number), convert it to a string and trim it.\n // Must convert with `String(value)`, not `${value}`, otherwise Closure Compiler optimises\n // away the string-conversion: https://github.com/angular/components/issues/20684\n this._message = value != null ? String(value).trim() : '';\n if (!this._message && this._isTooltipVisible()) {\n this.hide(0);\n } else {\n this._setupPointerEnterEventsIfNeeded();\n this._updateTooltipMessage();\n this._ngZone.runOutsideAngular(() => {\n // The `AriaDescriber` has some functionality that avoids adding a description if it's the\n // same as the `aria-label` of an element, however we can't know whether the tooltip trigger\n // has a data-bound `aria-label` or when it'll be set for the first time. We can avoid the\n // issue by deferring the description by a tick so Angular has time to set the `aria-label`.\n Promise.resolve().then(() => {\n this._ariaDescriber.describe(this._elementRef.nativeElement, this.message, 'tooltip');\n });\n });\n }\n }\n /** Classes to be passed to the tooltip. Supports the same syntax as `ngClass`. */\n get tooltipClass() {\n return this._tooltipClass;\n }\n set tooltipClass(value) {\n this._tooltipClass = value;\n if (this._tooltipInstance) {\n this._setTooltipClass(this._tooltipClass);\n }\n }\n constructor(_overlay, _elementRef, _scrollDispatcher, _viewContainerRef, _ngZone, _platform, _ariaDescriber, _focusMonitor, scrollStrategy, _dir, _defaultOptions, _document) {\n this._overlay = _overlay;\n this._elementRef = _elementRef;\n this._scrollDispatcher = _scrollDispatcher;\n this._viewContainerRef = _viewContainerRef;\n this._ngZone = _ngZone;\n this._platform = _platform;\n this._ariaDescriber = _ariaDescriber;\n this._focusMonitor = _focusMonitor;\n this._dir = _dir;\n this._defaultOptions = _defaultOptions;\n this._position = 'below';\n this._positionAtOrigin = false;\n this._disabled = false;\n this._viewInitialized = false;\n this._pointerExitEventsInitialized = false;\n this._viewportMargin = 8;\n this._cssClassPrefix = 'mat';\n /**\n * How touch gestures should be handled by the tooltip. On touch devices the tooltip directive\n * uses a long press gesture to show and hide, however it can conflict with the native browser\n * gestures. To work around the conflict, Angular Material disables native gestures on the\n * trigger, but that might not be desirable on particular elements (e.g. inputs and draggable\n * elements). The different values for this option configure the touch event handling as follows:\n * - `auto` - Enables touch gestures for all elements, but tries to avoid conflicts with native\n * browser gestures on particular elements. In particular, it allows text selection on inputs\n * and textareas, and preserves the native browser dragging on elements marked as `draggable`.\n * - `on` - Enables touch gestures for all elements and disables native\n * browser gestures with no exceptions.\n * - `off` - Disables touch gestures. Note that this will prevent the tooltip from\n * showing on touch devices.\n */\n this.touchGestures = 'auto';\n this._message = '';\n /** Manually-bound passive event listeners. */\n this._passiveListeners = [];\n /** Emits when the component is destroyed. */\n this._destroyed = new Subject();\n this._scrollStrategy = scrollStrategy;\n this._document = _document;\n if (_defaultOptions) {\n this._showDelay = _defaultOptions.showDelay;\n this._hideDelay = _defaultOptions.hideDelay;\n if (_defaultOptions.position) {\n this.position = _defaultOptions.position;\n }\n if (_defaultOptions.positionAtOrigin) {\n this.positionAtOrigin = _defaultOptions.positionAtOrigin;\n }\n if (_defaultOptions.touchGestures) {\n this.touchGestures = _defaultOptions.touchGestures;\n }\n }\n _dir.change.pipe(takeUntil(this._destroyed)).subscribe(() => {\n if (this._overlayRef) {\n this._updatePosition(this._overlayRef);\n }\n });\n }\n ngAfterViewInit() {\n // This needs to happen after view init so the initial values for all inputs have been set.\n this._viewInitialized = true;\n this._setupPointerEnterEventsIfNeeded();\n this._focusMonitor.monitor(this._elementRef).pipe(takeUntil(this._destroyed)).subscribe(origin => {\n // Note that the focus monitor runs outside the Angular zone.\n if (!origin) {\n this._ngZone.run(() => this.hide(0));\n } else if (origin === 'keyboard') {\n this._ngZone.run(() => this.show());\n }\n });\n }\n /**\n * Dispose the tooltip when destroyed.\n */\n ngOnDestroy() {\n const nativeElement = this._elementRef.nativeElement;\n clearTimeout(this._touchstartTimeout);\n if (this._overlayRef) {\n this._overlayRef.dispose();\n this._tooltipInstance = null;\n }\n // Clean up the event listeners set in the constructor\n this._passiveListeners.forEach(([event, listener]) => {\n nativeElement.removeEventListener(event, listener, passiveListenerOptions);\n });\n this._passiveListeners.length = 0;\n this._destroyed.next();\n this._destroyed.complete();\n this._ariaDescriber.removeDescription(nativeElement, this.message, 'tooltip');\n this._focusMonitor.stopMonitoring(nativeElement);\n }\n /** Shows the tooltip after the delay in ms, defaults to tooltip-delay-show or 0ms if no input */\n show(delay = this.showDelay, origin) {\n if (this.disabled || !this.message || this._isTooltipVisible()) {\n this._tooltipInstance?._cancelPendingAnimations();\n return;\n }\n const overlayRef = this._createOverlay(origin);\n this._detach();\n this._portal = this._portal || new ComponentPortal(this._tooltipComponent, this._viewContainerRef);\n const instance = this._tooltipInstance = overlayRef.attach(this._portal).instance;\n instance._triggerElement = this._elementRef.nativeElement;\n instance._mouseLeaveHideDelay = this._hideDelay;\n instance.afterHidden().pipe(takeUntil(this._destroyed)).subscribe(() => this._detach());\n this._setTooltipClass(this._tooltipClass);\n this._updateTooltipMessage();\n instance.show(delay);\n }\n /** Hides the tooltip after the delay in ms, defaults to tooltip-delay-hide or 0ms if no input */\n hide(delay = this.hideDelay) {\n const instance = this._tooltipInstance;\n if (instance) {\n if (instance.isVisible()) {\n instance.hide(delay);\n } else {\n instance._cancelPendingAnimations();\n this._detach();\n }\n }\n }\n /** Shows/hides the tooltip */\n toggle(origin) {\n this._isTooltipVisible() ? this.hide() : this.show(undefined, origin);\n }\n /** Returns true if the tooltip is currently visible to the user */\n _isTooltipVisible() {\n return !!this._tooltipInstance && this._tooltipInstance.isVisible();\n }\n /** Create the overlay config and position strategy */\n _createOverlay(origin) {\n if (this._overlayRef) {\n const existingStrategy = this._overlayRef.getConfig().positionStrategy;\n if ((!this.positionAtOrigin || !origin) && existingStrategy._origin instanceof ElementRef) {\n return this._overlayRef;\n }\n this._detach();\n }\n const scrollableAncestors = this._scrollDispatcher.getAncestorScrollContainers(this._elementRef);\n // Create connected position strategy that listens for scroll events to reposition.\n const strategy = this._overlay.position().flexibleConnectedTo(this.positionAtOrigin ? origin || this._elementRef : this._elementRef).withTransformOriginOn(`.${this._cssClassPrefix}-tooltip`).withFlexibleDimensions(false).withViewportMargin(this._viewportMargin).withScrollableContainers(scrollableAncestors);\n strategy.positionChanges.pipe(takeUntil(this._destroyed)).subscribe(change => {\n this._updateCurrentPositionClass(change.connectionPair);\n if (this._tooltipInstance) {\n if (change.scrollableViewProperties.isOverlayClipped && this._tooltipInstance.isVisible()) {\n // After position changes occur and the overlay is clipped by\n // a parent scrollable then close the tooltip.\n this._ngZone.run(() => this.hide(0));\n }\n }\n });\n this._overlayRef = this._overlay.create({\n direction: this._dir,\n positionStrategy: strategy,\n panelClass: `${this._cssClassPrefix}-${PANEL_CLASS}`,\n scrollStrategy: this._scrollStrategy()\n });\n this._updatePosition(this._overlayRef);\n this._overlayRef.detachments().pipe(takeUntil(this._destroyed)).subscribe(() => this._detach());\n this._overlayRef.outsidePointerEvents().pipe(takeUntil(this._destroyed)).subscribe(() => this._tooltipInstance?._handleBodyInteraction());\n this._overlayRef.keydownEvents().pipe(takeUntil(this._destroyed)).subscribe(event => {\n if (this._isTooltipVisible() && event.keyCode === ESCAPE && !hasModifierKey(event)) {\n event.preventDefault();\n event.stopPropagation();\n this._ngZone.run(() => this.hide(0));\n }\n });\n if (this._defaultOptions?.disableTooltipInteractivity) {\n this._overlayRef.addPanelClass(`${this._cssClassPrefix}-tooltip-panel-non-interactive`);\n }\n return this._overlayRef;\n }\n /** Detaches the currently-attached tooltip. */\n _detach() {\n if (this._overlayRef && this._overlayRef.hasAttached()) {\n this._overlayRef.detach();\n }\n this._tooltipInstance = null;\n }\n /** Updates the position of the current tooltip. */\n _updatePosition(overlayRef) {\n const position = overlayRef.getConfig().positionStrategy;\n const origin = this._getOrigin();\n const overlay = this._getOverlayPosition();\n position.withPositions([this._addOffset({\n ...origin.main,\n ...overlay.main\n }), this._addOffset({\n ...origin.fallback,\n ...overlay.fallback\n })]);\n }\n /** Adds the configured offset to a position. Used as a hook for child classes. */\n _addOffset(position) {\n return position;\n }\n /**\n * Returns the origin position and a fallback position based on the user's position preference.\n * The fallback position is the inverse of the origin (e.g. `'below' -> 'above'`).\n */\n _getOrigin() {\n const isLtr = !this._dir || this._dir.value == 'ltr';\n const position = this.position;\n let originPosition;\n if (position == 'above' || position == 'below') {\n originPosition = {\n originX: 'center',\n originY: position == 'above' ? 'top' : 'bottom'\n };\n } else if (position == 'before' || position == 'left' && isLtr || position == 'right' && !isLtr) {\n originPosition = {\n originX: 'start',\n originY: 'center'\n };\n } else if (position == 'after' || position == 'right' && isLtr || position == 'left' && !isLtr) {\n originPosition = {\n originX: 'end',\n originY: 'center'\n };\n } else if (typeof ngDevMode === 'undefined' || ngDevMode) {\n throw getMatTooltipInvalidPositionError(position);\n }\n const {\n x,\n y\n } = this._invertPosition(originPosition.originX, originPosition.originY);\n return {\n main: originPosition,\n fallback: {\n originX: x,\n originY: y\n }\n };\n }\n /** Returns the overlay position and a fallback position based on the user's preference */\n _getOverlayPosition() {\n const isLtr = !this._dir || this._dir.value == 'ltr';\n const position = this.position;\n let overlayPosition;\n if (position == 'above') {\n overlayPosition = {\n overlayX: 'center',\n overlayY: 'bottom'\n };\n } else if (position == 'below') {\n overlayPosition = {\n overlayX: 'center',\n overlayY: 'top'\n };\n } else if (position == 'before' || position == 'left' && isLtr || position == 'right' && !isLtr) {\n overlayPosition = {\n overlayX: 'end',\n overlayY: 'center'\n };\n } else if (position == 'after' || position == 'right' && isLtr || position == 'left' && !isLtr) {\n overlayPosition = {\n overlayX: 'start',\n overlayY: 'center'\n };\n } else if (typeof ngDevMode === 'undefined' || ngDevMode) {\n throw getMatTooltipInvalidPositionError(position);\n }\n const {\n x,\n y\n } = this._invertPosition(overlayPosition.overlayX, overlayPosition.overlayY);\n return {\n main: overlayPosition,\n fallback: {\n overlayX: x,\n overlayY: y\n }\n };\n }\n /** Updates the tooltip message and repositions the overlay according to the new message length */\n _updateTooltipMessage() {\n // Must wait for the message to be painted to the tooltip so that the overlay can properly\n // calculate the correct positioning based on the size of the text.\n if (this._tooltipInstance) {\n this._tooltipInstance.message = this.message;\n this._tooltipInstance._markForCheck();\n this._ngZone.onMicrotaskEmpty.pipe(take(1), takeUntil(this._destroyed)).subscribe(() => {\n if (this._tooltipInstance) {\n this._overlayRef.updatePosition();\n }\n });\n }\n }\n /** Updates the tooltip class */\n _setTooltipClass(tooltipClass) {\n if (this._tooltipInstance) {\n this._tooltipInstance.tooltipClass = tooltipClass;\n this._tooltipInstance._markForCheck();\n }\n }\n /** Inverts an overlay position. */\n _invertPosition(x, y) {\n if (this.position === 'above' || this.position === 'below') {\n if (y === 'top') {\n y = 'bottom';\n } else if (y === 'bottom') {\n y = 'top';\n }\n } else {\n if (x === 'end') {\n x = 'start';\n } else if (x === 'start') {\n x = 'end';\n }\n }\n return {\n x,\n y\n };\n }\n /** Updates the class on the overlay panel based on the current position of the tooltip. */\n _updateCurrentPositionClass(connectionPair) {\n const {\n overlayY,\n originX,\n originY\n } = connectionPair;\n let newPosition;\n // If the overlay is in the middle along the Y axis,\n // it means that it's either before or after.\n if (overlayY === 'center') {\n // Note that since this information is used for styling, we want to\n // resolve `start` and `end` to their real values, otherwise consumers\n // would have to remember to do it themselves on each consumption.\n if (this._dir && this._dir.value === 'rtl') {\n newPosition = originX === 'end' ? 'left' : 'right';\n } else {\n newPosition = originX === 'start' ? 'left' : 'right';\n }\n } else {\n newPosition = overlayY === 'bottom' && originY === 'top' ? 'above' : 'below';\n }\n if (newPosition !== this._currentPosition) {\n const overlayRef = this._overlayRef;\n if (overlayRef) {\n const classPrefix = `${this._cssClassPrefix}-${PANEL_CLASS}-`;\n overlayRef.removePanelClass(classPrefix + this._currentPosition);\n overlayRef.addPanelClass(classPrefix + newPosition);\n }\n this._currentPosition = newPosition;\n }\n }\n /** Binds the pointer events to the tooltip trigger. */\n _setupPointerEnterEventsIfNeeded() {\n // Optimization: Defer hooking up events if there's no message or the tooltip is disabled.\n if (this._disabled || !this.message || !this._viewInitialized || this._passiveListeners.length) {\n return;\n }\n // The mouse events shouldn't be bound on mobile devices, because they can prevent the\n // first tap from firing its click event or can cause the tooltip to open for clicks.\n if (this._platformSupportsMouseEvents()) {\n this._passiveListeners.push(['mouseenter', event => {\n this._setupPointerExitEventsIfNeeded();\n let point = undefined;\n if (event.x !== undefined && event.y !== undefined) {\n point = event;\n }\n this.show(undefined, point);\n }]);\n } else if (this.touchGestures !== 'off') {\n this._disableNativeGesturesIfNecessary();\n this._passiveListeners.push(['touchstart', event => {\n const touch = event.targetTouches?.[0];\n const origin = touch ? {\n x: touch.clientX,\n y: touch.clientY\n } : undefined;\n // Note that it's important that we don't `preventDefault` here,\n // because it can prevent click events from firing on the element.\n this._setupPointerExitEventsIfNeeded();\n clearTimeout(this._touchstartTimeout);\n this._touchstartTimeout = setTimeout(() => this.show(undefined, origin), LONGPRESS_DELAY);\n }]);\n }\n this._addListeners(this._passiveListeners);\n }\n _setupPointerExitEventsIfNeeded() {\n if (this._pointerExitEventsInitialized) {\n return;\n }\n this._pointerExitEventsInitialized = true;\n const exitListeners = [];\n if (this._platformSupportsMouseEvents()) {\n exitListeners.push(['mouseleave', event => {\n const newTarget = event.relatedTarget;\n if (!newTarget || !this._overlayRef?.overlayElement.contains(newTarget)) {\n this.hide();\n }\n }], ['wheel', event => this._wheelListener(event)]);\n } else if (this.touchGestures !== 'off') {\n this._disableNativeGesturesIfNecessary();\n const touchendListener = () => {\n clearTimeout(this._touchstartTimeout);\n this.hide(this._defaultOptions.touchendHideDelay);\n };\n exitListeners.push(['touchend', touchendListener], ['touchcancel', touchendListener]);\n }\n this._addListeners(exitListeners);\n this._passiveListeners.push(...exitListeners);\n }\n _addListeners(listeners) {\n listeners.forEach(([event, listener]) => {\n this._elementRef.nativeElement.addEventListener(event, listener, passiveListenerOptions);\n });\n }\n _platformSupportsMouseEvents() {\n return !this._platform.IOS && !this._platform.ANDROID;\n }\n /** Listener for the `wheel` event on the element. */\n _wheelListener(event) {\n if (this._isTooltipVisible()) {\n const elementUnderPointer = this._document.elementFromPoint(event.clientX, event.clientY);\n const element = this._elementRef.nativeElement;\n // On non-touch devices we depend on the `mouseleave` event to close the tooltip, but it\n // won't fire if the user scrolls away using the wheel without moving their cursor. We\n // work around it by finding the element under the user's cursor and closing the tooltip\n // if it's not the trigger.\n if (elementUnderPointer !== element && !element.contains(elementUnderPointer)) {\n this.hide();\n }\n }\n }\n /** Disables the native browser gestures, based on how the tooltip has been configured. */\n _disableNativeGesturesIfNecessary() {\n const gestures = this.touchGestures;\n if (gestures !== 'off') {\n const element = this._elementRef.nativeElement;\n const style = element.style;\n // If gestures are set to `auto`, we don't disable text selection on inputs and\n // textareas, because it prevents the user from typing into them on iOS Safari.\n if (gestures === 'on' || element.nodeName !== 'INPUT' && element.nodeName !== 'TEXTAREA') {\n style.userSelect = style.msUserSelect = style.webkitUserSelect = style.MozUserSelect = 'none';\n }\n // If we have `auto` gestures and the element uses native HTML dragging,\n // we don't set `-webkit-user-drag` because it prevents the native behavior.\n if (gestures === 'on' || !element.draggable) {\n style.webkitUserDrag = 'none';\n }\n style.touchAction = 'none';\n style.webkitTapHighlightColor = 'transparent';\n }\n }\n static {\n this.ɵfac = function _MatTooltipBase_Factory(ɵt) {\n i0.ɵɵinvalidFactory();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: _MatTooltipBase,\n inputs: {\n position: [0, \"matTooltipPosition\", \"position\"],\n positionAtOrigin: [0, \"matTooltipPositionAtOrigin\", \"positionAtOrigin\"],\n disabled: [0, \"matTooltipDisabled\", \"disabled\"],\n showDelay: [0, \"matTooltipShowDelay\", \"showDelay\"],\n hideDelay: [0, \"matTooltipHideDelay\", \"hideDelay\"],\n touchGestures: [0, \"matTooltipTouchGestures\", \"touchGestures\"],\n message: [0, \"matTooltip\", \"message\"],\n tooltipClass: [0, \"matTooltipClass\", \"tooltipClass\"]\n }\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(_MatTooltipBase, [{\n type: Directive\n }], function () {\n return [{\n type: i1.Overlay\n }, {\n type: i0.ElementRef\n }, {\n type: i1.ScrollDispatcher\n }, {\n type: i0.ViewContainerRef\n }, {\n type: i0.NgZone\n }, {\n type: i2.Platform\n }, {\n type: i3.AriaDescriber\n }, {\n type: i3.FocusMonitor\n }, {\n type: undefined\n }, {\n type: i4.Directionality\n }, {\n type: undefined\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }];\n }, {\n position: [{\n type: Input,\n args: ['matTooltipPosition']\n }],\n positionAtOrigin: [{\n type: Input,\n args: ['matTooltipPositionAtOrigin']\n }],\n disabled: [{\n type: Input,\n args: ['matTooltipDisabled']\n }],\n showDelay: [{\n type: Input,\n args: ['matTooltipShowDelay']\n }],\n hideDelay: [{\n type: Input,\n args: ['matTooltipHideDelay']\n }],\n touchGestures: [{\n type: Input,\n args: ['matTooltipTouchGestures']\n }],\n message: [{\n type: Input,\n args: ['matTooltip']\n }],\n tooltipClass: [{\n type: Input,\n args: ['matTooltipClass']\n }]\n });\n})();\n/**\n * Directive that attaches a material design tooltip to the host element. Animates the showing and\n * hiding of a tooltip provided position (defaults to below the element).\n *\n * https://material.io/design/components/tooltips.html\n */\nclass MatTooltip extends _MatTooltipBase {\n constructor(overlay, elementRef, scrollDispatcher, viewContainerRef, ngZone, platform, ariaDescriber, focusMonitor, scrollStrategy, dir, defaultOptions, _document) {\n super(overlay, elementRef, scrollDispatcher, viewContainerRef, ngZone, platform, ariaDescriber, focusMonitor, scrollStrategy, dir, defaultOptions, _document);\n this._tooltipComponent = TooltipComponent;\n this._cssClassPrefix = 'mat-mdc';\n this._viewportMargin = MIN_VIEWPORT_TOOLTIP_THRESHOLD;\n }\n _addOffset(position) {\n const offset = UNBOUNDED_ANCHOR_GAP;\n const isLtr = !this._dir || this._dir.value == 'ltr';\n if (position.originY === 'top') {\n position.offsetY = -offset;\n } else if (position.originY === 'bottom') {\n position.offsetY = offset;\n } else if (position.originX === 'start') {\n position.offsetX = isLtr ? -offset : offset;\n } else if (position.originX === 'end') {\n position.offsetX = isLtr ? offset : -offset;\n }\n return position;\n }\n static {\n this.ɵfac = function MatTooltip_Factory(ɵt) {\n return new (ɵt || MatTooltip)(i0.ɵɵdirectiveInject(i1.Overlay), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.ScrollDispatcher), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i2.Platform), i0.ɵɵdirectiveInject(i3.AriaDescriber), i0.ɵɵdirectiveInject(i3.FocusMonitor), i0.ɵɵdirectiveInject(MAT_TOOLTIP_SCROLL_STRATEGY), i0.ɵɵdirectiveInject(i4.Directionality, 8), i0.ɵɵdirectiveInject(MAT_TOOLTIP_DEFAULT_OPTIONS, 8), i0.ɵɵdirectiveInject(DOCUMENT));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatTooltip,\n selectors: [[\"\", \"matTooltip\", \"\"]],\n hostAttrs: [1, \"mat-mdc-tooltip-trigger\"],\n hostVars: 2,\n hostBindings: function MatTooltip_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"mat-mdc-tooltip-disabled\", ctx.disabled);\n }\n },\n exportAs: [\"matTooltip\"],\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatTooltip, [{\n type: Directive,\n args: [{\n selector: '[matTooltip]',\n exportAs: 'matTooltip',\n host: {\n 'class': 'mat-mdc-tooltip-trigger',\n '[class.mat-mdc-tooltip-disabled]': 'disabled'\n }\n }]\n }], function () {\n return [{\n type: i1.Overlay\n }, {\n type: i0.ElementRef\n }, {\n type: i1.ScrollDispatcher\n }, {\n type: i0.ViewContainerRef\n }, {\n type: i0.NgZone\n }, {\n type: i2.Platform\n }, {\n type: i3.AriaDescriber\n }, {\n type: i3.FocusMonitor\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [MAT_TOOLTIP_SCROLL_STRATEGY]\n }]\n }, {\n type: i4.Directionality,\n decorators: [{\n type: Optional\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_TOOLTIP_DEFAULT_OPTIONS]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }];\n }, null);\n})();\nclass _TooltipComponentBase {\n constructor(_changeDetectorRef, animationMode) {\n this._changeDetectorRef = _changeDetectorRef;\n /** Whether interactions on the page should close the tooltip */\n this._closeOnInteraction = false;\n /** Whether the tooltip is currently visible. */\n this._isVisible = false;\n /** Subject for notifying that the tooltip has been hidden from the view */\n this._onHide = new Subject();\n this._animationsDisabled = animationMode === 'NoopAnimations';\n }\n /**\n * Shows the tooltip with an animation originating from the provided origin\n * @param delay Amount of milliseconds to the delay showing the tooltip.\n */\n show(delay) {\n // Cancel the delayed hide if it is scheduled\n if (this._hideTimeoutId != null) {\n clearTimeout(this._hideTimeoutId);\n }\n this._showTimeoutId = setTimeout(() => {\n this._toggleVisibility(true);\n this._showTimeoutId = undefined;\n }, delay);\n }\n /**\n * Begins the animation to hide the tooltip after the provided delay in ms.\n * @param delay Amount of milliseconds to delay showing the tooltip.\n */\n hide(delay) {\n // Cancel the delayed show if it is scheduled\n if (this._showTimeoutId != null) {\n clearTimeout(this._showTimeoutId);\n }\n this._hideTimeoutId = setTimeout(() => {\n this._toggleVisibility(false);\n this._hideTimeoutId = undefined;\n }, delay);\n }\n /** Returns an observable that notifies when the tooltip has been hidden from view. */\n afterHidden() {\n return this._onHide;\n }\n /** Whether the tooltip is being displayed. */\n isVisible() {\n return this._isVisible;\n }\n ngOnDestroy() {\n this._cancelPendingAnimations();\n this._onHide.complete();\n this._triggerElement = null;\n }\n /**\n * Interactions on the HTML body should close the tooltip immediately as defined in the\n * material design spec.\n * https://material.io/design/components/tooltips.html#behavior\n */\n _handleBodyInteraction() {\n if (this._closeOnInteraction) {\n this.hide(0);\n }\n }\n /**\n * Marks that the tooltip needs to be checked in the next change detection run.\n * Mainly used for rendering the initial text before positioning a tooltip, which\n * can be problematic in components with OnPush change detection.\n */\n _markForCheck() {\n this._changeDetectorRef.markForCheck();\n }\n _handleMouseLeave({\n relatedTarget\n }) {\n if (!relatedTarget || !this._triggerElement.contains(relatedTarget)) {\n if (this.isVisible()) {\n this.hide(this._mouseLeaveHideDelay);\n } else {\n this._finalizeAnimation(false);\n }\n }\n }\n /**\n * Callback for when the timeout in this.show() gets completed.\n * This method is only needed by the mdc-tooltip, and so it is only implemented\n * in the mdc-tooltip, not here.\n */\n _onShow() {}\n /** Event listener dispatched when an animation on the tooltip finishes. */\n _handleAnimationEnd({\n animationName\n }) {\n if (animationName === this._showAnimation || animationName === this._hideAnimation) {\n this._finalizeAnimation(animationName === this._showAnimation);\n }\n }\n /** Cancels any pending animation sequences. */\n _cancelPendingAnimations() {\n if (this._showTimeoutId != null) {\n clearTimeout(this._showTimeoutId);\n }\n if (this._hideTimeoutId != null) {\n clearTimeout(this._hideTimeoutId);\n }\n this._showTimeoutId = this._hideTimeoutId = undefined;\n }\n /** Handles the cleanup after an animation has finished. */\n _finalizeAnimation(toVisible) {\n if (toVisible) {\n this._closeOnInteraction = true;\n } else if (!this.isVisible()) {\n this._onHide.next();\n }\n }\n /** Toggles the visibility of the tooltip element. */\n _toggleVisibility(isVisible) {\n // We set the classes directly here ourselves so that toggling the tooltip state\n // isn't bound by change detection. This allows us to hide it even if the\n // view ref has been detached from the CD tree.\n const tooltip = this._tooltip.nativeElement;\n const showClass = this._showAnimation;\n const hideClass = this._hideAnimation;\n tooltip.classList.remove(isVisible ? hideClass : showClass);\n tooltip.classList.add(isVisible ? showClass : hideClass);\n this._isVisible = isVisible;\n // It's common for internal apps to disable animations using `* { animation: none !important }`\n // which can break the opening sequence. Try to detect such cases and work around them.\n if (isVisible && !this._animationsDisabled && typeof getComputedStyle === 'function') {\n const styles = getComputedStyle(tooltip);\n // Use `getPropertyValue` to avoid issues with property renaming.\n if (styles.getPropertyValue('animation-duration') === '0s' || styles.getPropertyValue('animation-name') === 'none') {\n this._animationsDisabled = true;\n }\n }\n if (isVisible) {\n this._onShow();\n }\n if (this._animationsDisabled) {\n tooltip.classList.add('_mat-animation-noopable');\n this._finalizeAnimation(isVisible);\n }\n }\n static {\n this.ɵfac = function _TooltipComponentBase_Factory(ɵt) {\n return new (ɵt || _TooltipComponentBase)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: _TooltipComponentBase\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(_TooltipComponentBase, [{\n type: Directive\n }], function () {\n return [{\n type: i0.ChangeDetectorRef\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }]\n }];\n }, null);\n})();\n/**\n * Internal component that wraps the tooltip's content.\n * @docs-private\n */\nclass TooltipComponent extends _TooltipComponentBase {\n constructor(changeDetectorRef, _elementRef, animationMode) {\n super(changeDetectorRef, animationMode);\n this._elementRef = _elementRef;\n /* Whether the tooltip text overflows to multiple lines */\n this._isMultiline = false;\n this._showAnimation = 'mat-mdc-tooltip-show';\n this._hideAnimation = 'mat-mdc-tooltip-hide';\n }\n _onShow() {\n this._isMultiline = this._isTooltipMultiline();\n this._markForCheck();\n }\n /** Whether the tooltip text has overflown to the next line */\n _isTooltipMultiline() {\n const rect = this._elementRef.nativeElement.getBoundingClientRect();\n return rect.height > MIN_HEIGHT && rect.width >= MAX_WIDTH;\n }\n static {\n this.ɵfac = function TooltipComponent_Factory(ɵt) {\n return new (ɵt || TooltipComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: TooltipComponent,\n selectors: [[\"mat-tooltip-component\"]],\n viewQuery: function TooltipComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._tooltip = _t.first);\n }\n },\n hostAttrs: [\"aria-hidden\", \"true\"],\n hostVars: 2,\n hostBindings: function TooltipComponent_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"mouseleave\", function TooltipComponent_mouseleave_HostBindingHandler($event) {\n return ctx._handleMouseLeave($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵstyleProp(\"zoom\", ctx.isVisible() ? 1 : null);\n }\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 4,\n vars: 4,\n consts: [[\"tooltip\", \"\"], [1, \"mdc-tooltip\", \"mdc-tooltip--shown\", \"mat-mdc-tooltip\", 3, \"animationend\", \"ngClass\"], [1, \"mdc-tooltip__surface\", \"mdc-tooltip__surface-animation\"]],\n template: function TooltipComponent_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 1, 0);\n i0.ɵɵlistener(\"animationend\", function TooltipComponent_Template_div_animationend_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._handleAnimationEnd($event));\n });\n i0.ɵɵelementStart(2, \"div\", 2);\n i0.ɵɵtext(3);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"mdc-tooltip--multiline\", ctx._isMultiline);\n i0.ɵɵproperty(\"ngClass\", ctx.tooltipClass);\n i0.ɵɵadvance(3);\n i0.ɵɵtextInterpolate(ctx.message);\n }\n },\n dependencies: [i5.NgClass],\n styles: [\".mdc-tooltip__surface{word-break:break-all;word-break:var(--mdc-tooltip-word-break, normal);overflow-wrap:anywhere}.mdc-tooltip--showing-transition .mdc-tooltip__surface-animation{transition:opacity 150ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-tooltip--hide-transition .mdc-tooltip__surface-animation{transition:opacity 75ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-tooltip{position:fixed;display:none;z-index:9}.mdc-tooltip-wrapper--rich{position:relative}.mdc-tooltip--shown,.mdc-tooltip--showing,.mdc-tooltip--hide{display:inline-flex}.mdc-tooltip--shown.mdc-tooltip--rich,.mdc-tooltip--showing.mdc-tooltip--rich,.mdc-tooltip--hide.mdc-tooltip--rich{display:inline-block;left:-320px;position:absolute}.mdc-tooltip__surface{line-height:16px;padding:4px 8px;min-width:40px;max-width:200px;min-height:24px;max-height:40vh;box-sizing:border-box;overflow:hidden;text-align:center}.mdc-tooltip__surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:\\\"\\\";pointer-events:none}@media screen and (forced-colors: active){.mdc-tooltip__surface::before{border-color:CanvasText}}.mdc-tooltip--rich .mdc-tooltip__surface{align-items:flex-start;display:flex;flex-direction:column;min-height:24px;min-width:40px;max-width:320px;position:relative}.mdc-tooltip--multiline .mdc-tooltip__surface{text-align:left}[dir=rtl] .mdc-tooltip--multiline .mdc-tooltip__surface,.mdc-tooltip--multiline .mdc-tooltip__surface[dir=rtl]{text-align:right}.mdc-tooltip__surface .mdc-tooltip__title{margin:0 8px}.mdc-tooltip__surface .mdc-tooltip__content{max-width:calc(200px - (2 * 8px));margin:8px;text-align:left}[dir=rtl] .mdc-tooltip__surface .mdc-tooltip__content,.mdc-tooltip__surface .mdc-tooltip__content[dir=rtl]{text-align:right}.mdc-tooltip--rich .mdc-tooltip__surface .mdc-tooltip__content{max-width:calc(320px - (2 * 8px));align-self:stretch}.mdc-tooltip__surface .mdc-tooltip__content-link{text-decoration:none}.mdc-tooltip--rich-actions,.mdc-tooltip__content,.mdc-tooltip__title{z-index:1}.mdc-tooltip__surface-animation{opacity:0;transform:scale(0.8);will-change:transform,opacity}.mdc-tooltip--shown .mdc-tooltip__surface-animation{transform:scale(1);opacity:1}.mdc-tooltip--hide .mdc-tooltip__surface-animation{transform:scale(1)}.mdc-tooltip__caret-surface-top,.mdc-tooltip__caret-surface-bottom{position:absolute;height:24px;width:24px;transform:rotate(35deg) skewY(20deg) scaleX(0.9396926208)}.mdc-tooltip__caret-surface-top .mdc-elevation-overlay,.mdc-tooltip__caret-surface-bottom .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-tooltip__caret-surface-bottom{box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);outline:1px solid rgba(0,0,0,0);z-index:-1}@media screen and (forced-colors: active){.mdc-tooltip__caret-surface-bottom{outline-color:CanvasText}}.mat-mdc-tooltip{--mdc-plain-tooltip-container-shape:4px;--mdc-plain-tooltip-supporting-text-line-height:16px}.mat-mdc-tooltip .mdc-tooltip__surface{background-color:var(--mdc-plain-tooltip-container-color)}.mat-mdc-tooltip .mdc-tooltip__surface{border-radius:var(--mdc-plain-tooltip-container-shape)}.mat-mdc-tooltip .mdc-tooltip__caret-surface-top,.mat-mdc-tooltip .mdc-tooltip__caret-surface-bottom{border-radius:var(--mdc-plain-tooltip-container-shape)}.mat-mdc-tooltip .mdc-tooltip__surface{color:var(--mdc-plain-tooltip-supporting-text-color)}.mat-mdc-tooltip .mdc-tooltip__surface{font-family:var(--mdc-plain-tooltip-supporting-text-font);line-height:var(--mdc-plain-tooltip-supporting-text-line-height);font-size:var(--mdc-plain-tooltip-supporting-text-size);font-weight:var(--mdc-plain-tooltip-supporting-text-weight);letter-spacing:var(--mdc-plain-tooltip-supporting-text-tracking)}.mat-mdc-tooltip{position:relative;transform:scale(0)}.mat-mdc-tooltip::before{content:\\\"\\\";top:0;right:0;bottom:0;left:0;z-index:-1;position:absolute}.mat-mdc-tooltip-panel-below .mat-mdc-tooltip::before{top:-8px}.mat-mdc-tooltip-panel-above .mat-mdc-tooltip::before{bottom:-8px}.mat-mdc-tooltip-panel-right .mat-mdc-tooltip::before{left:-8px}.mat-mdc-tooltip-panel-left .mat-mdc-tooltip::before{right:-8px}.mat-mdc-tooltip._mat-animation-noopable{animation:none;transform:scale(1)}.mat-mdc-tooltip-panel-non-interactive{pointer-events:none}@keyframes mat-mdc-tooltip-show{0%{opacity:0;transform:scale(0.8)}100%{opacity:1;transform:scale(1)}}@keyframes mat-mdc-tooltip-hide{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(0.8)}}.mat-mdc-tooltip-show{animation:mat-mdc-tooltip-show 150ms cubic-bezier(0, 0, 0.2, 1) forwards}.mat-mdc-tooltip-hide{animation:mat-mdc-tooltip-hide 75ms cubic-bezier(0.4, 0, 1, 1) forwards}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TooltipComponent, [{\n type: Component,\n args: [{\n selector: 'mat-tooltip-component',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n // Forces the element to have a layout in IE and Edge. This fixes issues where the element\n // won't be rendered if the animations are disabled or there is no web animations polyfill.\n '[style.zoom]': 'isVisible() ? 1 : null',\n '(mouseleave)': '_handleMouseLeave($event)',\n 'aria-hidden': 'true'\n },\n template: \"\\n {{message}}\\n\\n\",\n styles: [\".mdc-tooltip__surface{word-break:break-all;word-break:var(--mdc-tooltip-word-break, normal);overflow-wrap:anywhere}.mdc-tooltip--showing-transition .mdc-tooltip__surface-animation{transition:opacity 150ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-tooltip--hide-transition .mdc-tooltip__surface-animation{transition:opacity 75ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-tooltip{position:fixed;display:none;z-index:9}.mdc-tooltip-wrapper--rich{position:relative}.mdc-tooltip--shown,.mdc-tooltip--showing,.mdc-tooltip--hide{display:inline-flex}.mdc-tooltip--shown.mdc-tooltip--rich,.mdc-tooltip--showing.mdc-tooltip--rich,.mdc-tooltip--hide.mdc-tooltip--rich{display:inline-block;left:-320px;position:absolute}.mdc-tooltip__surface{line-height:16px;padding:4px 8px;min-width:40px;max-width:200px;min-height:24px;max-height:40vh;box-sizing:border-box;overflow:hidden;text-align:center}.mdc-tooltip__surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:\\\"\\\";pointer-events:none}@media screen and (forced-colors: active){.mdc-tooltip__surface::before{border-color:CanvasText}}.mdc-tooltip--rich .mdc-tooltip__surface{align-items:flex-start;display:flex;flex-direction:column;min-height:24px;min-width:40px;max-width:320px;position:relative}.mdc-tooltip--multiline .mdc-tooltip__surface{text-align:left}[dir=rtl] .mdc-tooltip--multiline .mdc-tooltip__surface,.mdc-tooltip--multiline .mdc-tooltip__surface[dir=rtl]{text-align:right}.mdc-tooltip__surface .mdc-tooltip__title{margin:0 8px}.mdc-tooltip__surface .mdc-tooltip__content{max-width:calc(200px - (2 * 8px));margin:8px;text-align:left}[dir=rtl] .mdc-tooltip__surface .mdc-tooltip__content,.mdc-tooltip__surface .mdc-tooltip__content[dir=rtl]{text-align:right}.mdc-tooltip--rich .mdc-tooltip__surface .mdc-tooltip__content{max-width:calc(320px - (2 * 8px));align-self:stretch}.mdc-tooltip__surface .mdc-tooltip__content-link{text-decoration:none}.mdc-tooltip--rich-actions,.mdc-tooltip__content,.mdc-tooltip__title{z-index:1}.mdc-tooltip__surface-animation{opacity:0;transform:scale(0.8);will-change:transform,opacity}.mdc-tooltip--shown .mdc-tooltip__surface-animation{transform:scale(1);opacity:1}.mdc-tooltip--hide .mdc-tooltip__surface-animation{transform:scale(1)}.mdc-tooltip__caret-surface-top,.mdc-tooltip__caret-surface-bottom{position:absolute;height:24px;width:24px;transform:rotate(35deg) skewY(20deg) scaleX(0.9396926208)}.mdc-tooltip__caret-surface-top .mdc-elevation-overlay,.mdc-tooltip__caret-surface-bottom .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-tooltip__caret-surface-bottom{box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);outline:1px solid rgba(0,0,0,0);z-index:-1}@media screen and (forced-colors: active){.mdc-tooltip__caret-surface-bottom{outline-color:CanvasText}}.mat-mdc-tooltip{--mdc-plain-tooltip-container-shape:4px;--mdc-plain-tooltip-supporting-text-line-height:16px}.mat-mdc-tooltip .mdc-tooltip__surface{background-color:var(--mdc-plain-tooltip-container-color)}.mat-mdc-tooltip .mdc-tooltip__surface{border-radius:var(--mdc-plain-tooltip-container-shape)}.mat-mdc-tooltip .mdc-tooltip__caret-surface-top,.mat-mdc-tooltip .mdc-tooltip__caret-surface-bottom{border-radius:var(--mdc-plain-tooltip-container-shape)}.mat-mdc-tooltip .mdc-tooltip__surface{color:var(--mdc-plain-tooltip-supporting-text-color)}.mat-mdc-tooltip .mdc-tooltip__surface{font-family:var(--mdc-plain-tooltip-supporting-text-font);line-height:var(--mdc-plain-tooltip-supporting-text-line-height);font-size:var(--mdc-plain-tooltip-supporting-text-size);font-weight:var(--mdc-plain-tooltip-supporting-text-weight);letter-spacing:var(--mdc-plain-tooltip-supporting-text-tracking)}.mat-mdc-tooltip{position:relative;transform:scale(0)}.mat-mdc-tooltip::before{content:\\\"\\\";top:0;right:0;bottom:0;left:0;z-index:-1;position:absolute}.mat-mdc-tooltip-panel-below .mat-mdc-tooltip::before{top:-8px}.mat-mdc-tooltip-panel-above .mat-mdc-tooltip::before{bottom:-8px}.mat-mdc-tooltip-panel-right .mat-mdc-tooltip::before{left:-8px}.mat-mdc-tooltip-panel-left .mat-mdc-tooltip::before{right:-8px}.mat-mdc-tooltip._mat-animation-noopable{animation:none;transform:scale(1)}.mat-mdc-tooltip-panel-non-interactive{pointer-events:none}@keyframes mat-mdc-tooltip-show{0%{opacity:0;transform:scale(0.8)}100%{opacity:1;transform:scale(1)}}@keyframes mat-mdc-tooltip-hide{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(0.8)}}.mat-mdc-tooltip-show{animation:mat-mdc-tooltip-show 150ms cubic-bezier(0, 0, 0.2, 1) forwards}.mat-mdc-tooltip-hide{animation:mat-mdc-tooltip-hide 75ms cubic-bezier(0.4, 0, 1, 1) forwards}\"]\n }]\n }], function () {\n return [{\n type: i0.ChangeDetectorRef\n }, {\n type: i0.ElementRef\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }]\n }];\n }, {\n _tooltip: [{\n type: ViewChild,\n args: ['tooltip', {\n // Use a static query here since we interact directly with\n // the DOM which can happen before `ngAfterViewInit`.\n static: true\n }]\n }]\n });\n})();\n\n/**\n * Animations used by MatTooltip.\n * @docs-private\n */\nconst matTooltipAnimations = {\n /** Animation that transitions a tooltip in and out. */\n tooltipState: trigger('state', [\n // TODO(crisbeto): these values are based on MDC's CSS.\n // We should be able to use their styles directly once we land #19432.\n state('initial, void, hidden', style({\n opacity: 0,\n transform: 'scale(0.8)'\n })), state('visible', style({\n transform: 'scale(1)'\n })), transition('* => visible', animate('150ms cubic-bezier(0, 0, 0.2, 1)')), transition('* => hidden', animate('75ms cubic-bezier(0.4, 0, 1, 1)'))])\n};\nclass MatTooltipModule {\n static {\n this.ɵfac = function MatTooltipModule_Factory(ɵt) {\n return new (ɵt || MatTooltipModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatTooltipModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER],\n imports: [A11yModule, CommonModule, OverlayModule, MatCommonModule, MatCommonModule, CdkScrollableModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatTooltipModule, [{\n type: NgModule,\n args: [{\n imports: [A11yModule, CommonModule, OverlayModule, MatCommonModule],\n exports: [MatTooltip, TooltipComponent, MatCommonModule, CdkScrollableModule],\n declarations: [MatTooltip, TooltipComponent],\n providers: [MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_TOOLTIP_DEFAULT_OPTIONS, MAT_TOOLTIP_DEFAULT_OPTIONS_FACTORY, MAT_TOOLTIP_SCROLL_STRATEGY, MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY, MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER, MatTooltip, MatTooltipModule, SCROLL_THROTTLE_MS, TOOLTIP_PANEL_CLASS, TooltipComponent, _MatTooltipBase, _TooltipComponentBase, getMatTooltipInvalidPositionError, matTooltipAnimations };\n","import * as i1 from '@angular/cdk/overlay';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport * as i4 from '@angular/cdk/a11y';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport * as i7 from '@angular/common';\nimport { DOCUMENT, CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Directive, Inject, Optional, Component, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, NgModule } from '@angular/core';\nimport { MatCommonModule } from '@angular/material/core';\nimport * as i2 from '@angular/cdk/scrolling';\nimport { CdkScrollableModule } from '@angular/cdk/scrolling';\nimport * as i5 from '@angular/cdk/bidi';\nimport * as i6 from '@angular/cdk/layout';\nimport { Breakpoints } from '@angular/cdk/layout';\nimport * as i3 from '@angular/cdk/platform';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\nimport { _MatTooltipBase, MAT_TOOLTIP_SCROLL_STRATEGY, MAT_TOOLTIP_DEFAULT_OPTIONS, _TooltipComponentBase, MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER } from '@angular/material/tooltip';\nconst _c0 = [\"tooltip\"];\nexport { SCROLL_THROTTLE_MS as LEGACY_SCROLL_THROTTLE_MS, MAT_TOOLTIP_DEFAULT_OPTIONS as MAT_LEGACY_TOOLTIP_DEFAULT_OPTIONS, MAT_TOOLTIP_DEFAULT_OPTIONS_FACTORY as MAT_LEGACY_TOOLTIP_DEFAULT_OPTIONS_FACTORY, MAT_TOOLTIP_SCROLL_STRATEGY as MAT_LEGACY_TOOLTIP_SCROLL_STRATEGY, MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY as MAT_LEGACY_TOOLTIP_SCROLL_STRATEGY_FACTORY, MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER as MAT_LEGACY_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER, getMatTooltipInvalidPositionError as getMatLegacyTooltipInvalidPositionError } from '@angular/material/tooltip';\nimport { trigger, state, style, transition, animate, keyframes } from '@angular/animations';\n\n/**\n * Directive that attaches a material design tooltip to the host element. Animates the showing and\n * hiding of a tooltip provided position (defaults to below the element).\n *\n * https://material.io/design/components/tooltips.html\n *\n * @deprecated Use `MatTooltip` from `@angular/material/tooltip` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyTooltip extends _MatTooltipBase {\n constructor(overlay, elementRef, scrollDispatcher, viewContainerRef, ngZone, platform, ariaDescriber, focusMonitor, scrollStrategy, dir, defaultOptions, _document) {\n super(overlay, elementRef, scrollDispatcher, viewContainerRef, ngZone, platform, ariaDescriber, focusMonitor, scrollStrategy, dir, defaultOptions, _document);\n this._tooltipComponent = LegacyTooltipComponent;\n }\n static {\n this.ɵfac = function MatLegacyTooltip_Factory(ɵt) {\n return new (ɵt || MatLegacyTooltip)(i0.ɵɵdirectiveInject(i1.Overlay), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i2.ScrollDispatcher), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i3.Platform), i0.ɵɵdirectiveInject(i4.AriaDescriber), i0.ɵɵdirectiveInject(i4.FocusMonitor), i0.ɵɵdirectiveInject(MAT_TOOLTIP_SCROLL_STRATEGY), i0.ɵɵdirectiveInject(i5.Directionality, 8), i0.ɵɵdirectiveInject(MAT_TOOLTIP_DEFAULT_OPTIONS, 8), i0.ɵɵdirectiveInject(DOCUMENT));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyTooltip,\n selectors: [[\"\", \"matTooltip\", \"\"]],\n hostAttrs: [1, \"mat-tooltip-trigger\"],\n hostVars: 2,\n hostBindings: function MatLegacyTooltip_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"mat-tooltip-disabled\", ctx.disabled);\n }\n },\n exportAs: [\"matTooltip\"],\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyTooltip, [{\n type: Directive,\n args: [{\n selector: '[matTooltip]',\n exportAs: 'matTooltip',\n host: {\n 'class': 'mat-tooltip-trigger',\n '[class.mat-tooltip-disabled]': 'disabled'\n }\n }]\n }], function () {\n return [{\n type: i1.Overlay\n }, {\n type: i0.ElementRef\n }, {\n type: i2.ScrollDispatcher\n }, {\n type: i0.ViewContainerRef\n }, {\n type: i0.NgZone\n }, {\n type: i3.Platform\n }, {\n type: i4.AriaDescriber\n }, {\n type: i4.FocusMonitor\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [MAT_TOOLTIP_SCROLL_STRATEGY]\n }]\n }, {\n type: i5.Directionality,\n decorators: [{\n type: Optional\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_TOOLTIP_DEFAULT_OPTIONS]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }];\n }, null);\n})();\n/**\n * Internal component that wraps the tooltip's content.\n * @docs-private\n * @deprecated Use `TooltipComponent` from `@angular/material/tooltip` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass LegacyTooltipComponent extends _TooltipComponentBase {\n constructor(changeDetectorRef, breakpointObserver, animationMode) {\n super(changeDetectorRef, animationMode);\n this._showAnimation = 'mat-tooltip-show';\n this._hideAnimation = 'mat-tooltip-hide';\n this._isHandset = breakpointObserver.observe(Breakpoints.Handset);\n }\n static {\n this.ɵfac = function LegacyTooltipComponent_Factory(ɵt) {\n return new (ɵt || LegacyTooltipComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i6.BreakpointObserver), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: LegacyTooltipComponent,\n selectors: [[\"mat-tooltip-component\"]],\n viewQuery: function LegacyTooltipComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._tooltip = _t.first);\n }\n },\n hostAttrs: [\"aria-hidden\", \"true\"],\n hostVars: 3,\n hostBindings: function LegacyTooltipComponent_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"mouseleave\", function LegacyTooltipComponent_mouseleave_HostBindingHandler($event) {\n return ctx._handleMouseLeave($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"mat-id-collision\", null);\n i0.ɵɵstyleProp(\"zoom\", ctx.isVisible() ? 1 : null);\n }\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 4,\n vars: 6,\n consts: [[\"tooltip\", \"\"], [1, \"mat-tooltip\", 3, \"animationend\", \"ngClass\"]],\n template: function LegacyTooltipComponent_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 1, 0);\n i0.ɵɵpipe(2, \"async\");\n i0.ɵɵlistener(\"animationend\", function LegacyTooltipComponent_Template_div_animationend_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._handleAnimationEnd($event));\n });\n i0.ɵɵtext(3);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n let tmp_1_0;\n i0.ɵɵclassProp(\"mat-tooltip-handset\", (tmp_1_0 = i0.ɵɵpipeBind1(2, 4, ctx._isHandset)) == null ? null : tmp_1_0.matches);\n i0.ɵɵproperty(\"ngClass\", ctx.tooltipClass);\n i0.ɵɵadvance(3);\n i0.ɵɵtextInterpolate(ctx.message);\n }\n },\n dependencies: [i7.NgClass, i7.AsyncPipe],\n styles: [\".mat-tooltip{color:#fff;border-radius:4px;margin:14px;max-width:250px;padding-left:8px;padding-right:8px;overflow:hidden;text-overflow:ellipsis;transform:scale(0)}.mat-tooltip._mat-animation-noopable{animation:none;transform:scale(1)}.cdk-high-contrast-active .mat-tooltip{outline:solid 1px}.mat-tooltip-handset{margin:24px;padding-left:16px;padding-right:16px}.mat-tooltip-panel-non-interactive{pointer-events:none}@keyframes mat-tooltip-show{0%{opacity:0;transform:scale(0)}50%{opacity:.5;transform:scale(0.99)}100%{opacity:1;transform:scale(1)}}@keyframes mat-tooltip-hide{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1)}}.mat-tooltip-show{animation:mat-tooltip-show 200ms cubic-bezier(0, 0, 0.2, 1) forwards}.mat-tooltip-hide{animation:mat-tooltip-hide 100ms cubic-bezier(0, 0, 0.2, 1) forwards}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(LegacyTooltipComponent, [{\n type: Component,\n args: [{\n selector: 'mat-tooltip-component',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n // Forces the element to have a layout in IE and Edge. This fixes issues where the element\n // won't be rendered if the animations are disabled or there is no web animations polyfill.\n '[style.zoom]': 'isVisible() ? 1 : null',\n '(mouseleave)': '_handleMouseLeave($event)',\n 'aria-hidden': 'true',\n // This binding is used to ensure that the component\n // ID doesn't clash with the `TooltipComponent`.\n '[attr.mat-id-collision]': 'null'\n },\n template: \"{{message}}\\n\",\n styles: [\".mat-tooltip{color:#fff;border-radius:4px;margin:14px;max-width:250px;padding-left:8px;padding-right:8px;overflow:hidden;text-overflow:ellipsis;transform:scale(0)}.mat-tooltip._mat-animation-noopable{animation:none;transform:scale(1)}.cdk-high-contrast-active .mat-tooltip{outline:solid 1px}.mat-tooltip-handset{margin:24px;padding-left:16px;padding-right:16px}.mat-tooltip-panel-non-interactive{pointer-events:none}@keyframes mat-tooltip-show{0%{opacity:0;transform:scale(0)}50%{opacity:.5;transform:scale(0.99)}100%{opacity:1;transform:scale(1)}}@keyframes mat-tooltip-hide{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1)}}.mat-tooltip-show{animation:mat-tooltip-show 200ms cubic-bezier(0, 0, 0.2, 1) forwards}.mat-tooltip-hide{animation:mat-tooltip-hide 100ms cubic-bezier(0, 0, 0.2, 1) forwards}\"]\n }]\n }], function () {\n return [{\n type: i0.ChangeDetectorRef\n }, {\n type: i6.BreakpointObserver\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }]\n }];\n }, {\n _tooltip: [{\n type: ViewChild,\n args: ['tooltip', {\n // Use a static query here since we interact directly with\n // the DOM which can happen before `ngAfterViewInit`.\n static: true\n }]\n }]\n });\n})();\n\n/**\n * @deprecated Use `MatTooltipModule` from `@angular/material/tooltip` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyTooltipModule {\n static {\n this.ɵfac = function MatLegacyTooltipModule_Factory(ɵt) {\n return new (ɵt || MatLegacyTooltipModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatLegacyTooltipModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER],\n imports: [A11yModule, CommonModule, OverlayModule, MatCommonModule, MatCommonModule, CdkScrollableModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyTooltipModule, [{\n type: NgModule,\n args: [{\n imports: [A11yModule, CommonModule, OverlayModule, MatCommonModule],\n exports: [MatLegacyTooltip, LegacyTooltipComponent, MatCommonModule, CdkScrollableModule],\n declarations: [MatLegacyTooltip, LegacyTooltipComponent],\n providers: [MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER]\n }]\n }], null, null);\n})();\n\n/**\n * Animations used by MatTooltip.\n * @docs-private\n * @deprecated Use `matTooltipAnimations` from `@angular/material/tooltip` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nconst matLegacyTooltipAnimations = {\n /** Animation that transitions a tooltip in and out. */\n tooltipState: trigger('state', [state('initial, void, hidden', style({\n opacity: 0,\n transform: 'scale(0)'\n })), state('visible', style({\n transform: 'scale(1)'\n })), transition('* => visible', animate('200ms cubic-bezier(0, 0, 0.2, 1)', keyframes([style({\n opacity: 0,\n transform: 'scale(0)',\n offset: 0\n }), style({\n opacity: 0.5,\n transform: 'scale(0.99)',\n offset: 0.5\n }), style({\n opacity: 1,\n transform: 'scale(1)',\n offset: 1\n })]))), transition('* => hidden', animate('100ms cubic-bezier(0, 0, 0.2, 1)', style({\n opacity: 0\n })))])\n};\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { LegacyTooltipComponent, MatLegacyTooltip, MatLegacyTooltipModule, matLegacyTooltipAnimations };\n","import * as i1 from '@angular/cdk/platform';\nimport * as i0 from '@angular/core';\nimport { inject, Directive, Component, ViewEncapsulation, ChangeDetectionStrategy, Optional, Inject, InjectionToken, NgModule } from '@angular/core';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { mixinColor, mixinDisabled, mixinDisableRipple, MatRippleLoader, MatCommonModule, MatRippleModule } from '@angular/material/core';\n\n/** Inputs common to all buttons. */\nconst _c0 = [\"mat-button\", \"\"];\nconst _c1 = [[[\"\", 8, \"material-icons\", 3, \"iconPositionEnd\", \"\"], [\"mat-icon\", 3, \"iconPositionEnd\", \"\"], [\"\", \"matButtonIcon\", \"\", 3, \"iconPositionEnd\", \"\"]], \"*\", [[\"\", \"iconPositionEnd\", \"\", 8, \"material-icons\"], [\"mat-icon\", \"iconPositionEnd\", \"\"], [\"\", \"matButtonIcon\", \"\", \"iconPositionEnd\", \"\"]]];\nconst _c2 = [\".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])\", \"*\", \".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]\"];\nconst _c3 = \".mdc-touch-target-wrapper{display:inline}.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity, 0);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button{position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;user-select:none;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0)}.mdc-button .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{cursor:default;pointer-events:none}.mdc-button[hidden]{display:none}.mdc-button .mdc-button__icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top}[dir=rtl] .mdc-button .mdc-button__icon,.mdc-button .mdc-button__icon[dir=rtl]{margin-left:8px;margin-right:0}.mdc-button .mdc-button__progress-indicator{font-size:0;position:absolute;transform:translate(-50%, -50%);top:50%;left:50%;line-height:initial}.mdc-button .mdc-button__label{position:relative}.mdc-button .mdc-button__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(\\n 100% + 4px\\n );width:calc(\\n 100% + 4px\\n );display:none}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring{border-color:CanvasText}}.mdc-button .mdc-button__focus-ring::after{content:\\\"\\\";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring::after{border-color:CanvasText}}@media screen and (forced-colors: active){.mdc-button.mdc-ripple-upgraded--background-focused .mdc-button__focus-ring,.mdc-button:not(.mdc-ripple-upgraded):focus .mdc-button__focus-ring{display:block}}.mdc-button .mdc-button__touch{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mdc-button__label+.mdc-button__icon{margin-left:8px;margin-right:0}[dir=rtl] .mdc-button__label+.mdc-button__icon,.mdc-button__label+.mdc-button__icon[dir=rtl]{margin-left:0;margin-right:8px}svg.mdc-button__icon{fill:currentColor}.mdc-button--touch{margin-top:6px;margin-bottom:6px}.mdc-button{padding:0 8px 0 8px}.mdc-button--unelevated{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--unelevated.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--unelevated.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--raised{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--raised.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--raised.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--outlined{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button--outlined .mdc-button__ripple{border-style:solid;border-color:rgba(0,0,0,0)}.mat-mdc-button{height:var(--mdc-text-button-container-height, 36px);border-radius:var(--mdc-text-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color, inherit)}.mat-mdc-button:disabled{color:var(--mdc-text-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-button .mdc-button__ripple{border-radius:var(--mdc-text-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-unelevated-button{height:var(--mdc-filled-button-container-height, 36px);border-radius:var(--mdc-filled-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-unelevated-button:not(:disabled){background-color:var(--mdc-filled-button-container-color, transparent)}.mat-mdc-unelevated-button:disabled{background-color:var(--mdc-filled-button-disabled-container-color, rgba(0, 0, 0, 0.12))}.mat-mdc-unelevated-button:not(:disabled){color:var(--mdc-filled-button-label-text-color, inherit)}.mat-mdc-unelevated-button:disabled{color:var(--mdc-filled-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mdc-filled-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-raised-button{height:var(--mdc-protected-button-container-height, 36px);border-radius:var(--mdc-protected-button-container-shape, var(--mdc-shape-small, 4px));box-shadow:var(--mdc-protected-button-container-elevation, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled){background-color:var(--mdc-protected-button-container-color, transparent)}.mat-mdc-raised-button:disabled{background-color:var(--mdc-protected-button-disabled-container-color, rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled){color:var(--mdc-protected-button-label-text-color, inherit)}.mat-mdc-raised-button:disabled{color:var(--mdc-protected-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mdc-protected-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-raised-button.mdc-ripple-upgraded--background-focused,.mat-mdc-raised-button:not(.mdc-ripple-upgraded):focus{box-shadow:var(--mdc-protected-button-focus-container-elevation, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:hover{box-shadow:var(--mdc-protected-button-hover-container-elevation, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled):active{box-shadow:var(--mdc-protected-button-pressed-container-elevation, 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:disabled{box-shadow:var(--mdc-protected-button-disabled-container-elevation, 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button{height:var(--mdc-outlined-button-container-height, 36px);border-radius:var(--mdc-outlined-button-container-shape, var(--mdc-shape-small, 4px));padding:0 15px 0 15px;border-width:var(--mdc-outlined-button-outline-width, 1px)}.mat-mdc-outlined-button:not(:disabled){color:var(--mdc-outlined-button-label-text-color, inherit)}.mat-mdc-outlined-button:disabled{color:var(--mdc-outlined-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-outlined-button .mdc-button__ripple{border-radius:var(--mdc-outlined-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-outlined-button:not(:disabled){border-color:var(--mdc-outlined-button-outline-color, rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button:disabled{border-color:var(--mdc-outlined-button-disabled-outline-color, rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button.mdc-button--icon-trailing{padding:0 11px 0 15px}.mat-mdc-outlined-button.mdc-button--icon-leading{padding:0 15px 0 11px}.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:var(--mdc-outlined-button-outline-width, 1px)}.mat-mdc-outlined-button .mdc-button__touch{left:calc(-1 * var(--mdc-outlined-button-outline-width, 1px));width:calc(100% + 2 * var(--mdc-outlined-button-outline-width, 1px))}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{content:\\\"\\\";opacity:0;background-color:var(--mat-mdc-button-persistent-ripple-color)}.mat-mdc-button .mat-ripple-element,.mat-mdc-unelevated-button .mat-ripple-element,.mat-mdc-raised-button .mat-ripple-element,.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-mdc-button-ripple-color)}.mat-mdc-button .mdc-button__label,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-outlined-button .mdc-button__label{z-index:1}.mat-mdc-button .mat-mdc-focus-indicator,.mat-mdc-unelevated-button .mat-mdc-focus-indicator,.mat-mdc-raised-button .mat-mdc-focus-indicator,.mat-mdc-outlined-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-unelevated-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-raised-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-outlined-button:focus .mat-mdc-focus-indicator::before{content:\\\"\\\"}.mat-mdc-button[disabled],.mat-mdc-unelevated-button[disabled],.mat-mdc-raised-button[disabled],.mat-mdc-outlined-button[disabled]{cursor:default;pointer-events:none}.mat-mdc-button .mat-mdc-button-touch-target,.mat-mdc-unelevated-button .mat-mdc-button-touch-target,.mat-mdc-raised-button .mat-mdc-button-touch-target,.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mat-mdc-button._mat-animation-noopable,.mat-mdc-unelevated-button._mat-animation-noopable,.mat-mdc-raised-button._mat-animation-noopable,.mat-mdc-outlined-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}[dir=rtl] .mat-mdc-button>.mat-icon,.mat-mdc-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:0}.mat-mdc-button .mdc-button__label+.mat-icon{margin-left:8px;margin-right:0}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon,.mat-mdc-button .mdc-button__label+.mat-icon[dir=rtl]{margin-left:0;margin-right:8px}.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem;margin-left:-4px;margin-right:8px}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon,[dir=rtl] .mat-mdc-raised-button>.mat-icon,[dir=rtl] .mat-mdc-outlined-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon[dir=rtl],.mat-mdc-raised-button>.mat-icon[dir=rtl],.mat-mdc-outlined-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:0}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon,[dir=rtl] .mat-mdc-raised-button>.mat-icon,[dir=rtl] .mat-mdc-outlined-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon[dir=rtl],.mat-mdc-raised-button>.mat-icon[dir=rtl],.mat-mdc-outlined-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:-4px}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon,.mat-mdc-raised-button .mdc-button__label+.mat-icon,.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-left:8px;margin-right:-4px}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon,.mat-mdc-unelevated-button .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-raised-button .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-outlined-button .mdc-button__label+.mat-icon[dir=rtl]{margin-left:-4px;margin-right:8px}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:-1px}.mat-mdc-unelevated-button .mat-mdc-focus-indicator::before,.mat-mdc-raised-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-mdc-outlined-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 3px) * -1)}\";\nconst _c4 = \".cdk-high-contrast-active .mat-mdc-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-unelevated-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-raised-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-outlined-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-icon-button{outline:solid 1px}\";\nconst _c5 = [\"mat-fab\", \"\"];\nconst _c6 = [\"mat-mini-fab\", \"\"];\nconst _c7 = \".mdc-touch-target-wrapper{display:inline}.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1);background-color:var(--mdc-elevation-overlay-color)}.mdc-fab{position:relative;display:inline-flex;position:relative;align-items:center;justify-content:center;box-sizing:border-box;width:56px;height:56px;padding:0;border:none;fill:currentColor;text-decoration:none;cursor:pointer;user-select:none;-moz-appearance:none;-webkit-appearance:none;overflow:visible;transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1),opacity 15ms linear 30ms,transform 270ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-fab .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-fab[hidden]{display:none}.mdc-fab::-moz-focus-inner{padding:0;border:0}.mdc-fab:hover{box-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12)}.mdc-fab.mdc-ripple-upgraded--background-focused,.mdc-fab:not(.mdc-ripple-upgraded):focus{box-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12)}.mdc-fab .mdc-fab__focus-ring{position:absolute}.mdc-fab.mdc-ripple-upgraded--background-focused .mdc-fab__focus-ring,.mdc-fab:not(.mdc-ripple-upgraded):focus .mdc-fab__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(\\n 100% + 4px\\n );width:calc(\\n 100% + 4px\\n )}@media screen and (forced-colors: active){.mdc-fab.mdc-ripple-upgraded--background-focused .mdc-fab__focus-ring,.mdc-fab:not(.mdc-ripple-upgraded):focus .mdc-fab__focus-ring{border-color:CanvasText}}.mdc-fab.mdc-ripple-upgraded--background-focused .mdc-fab__focus-ring::after,.mdc-fab:not(.mdc-ripple-upgraded):focus .mdc-fab__focus-ring::after{content:\\\"\\\";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-fab.mdc-ripple-upgraded--background-focused .mdc-fab__focus-ring::after,.mdc-fab:not(.mdc-ripple-upgraded):focus .mdc-fab__focus-ring::after{border-color:CanvasText}}.mdc-fab:active,.mdc-fab:focus:active{box-shadow:0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12)}.mdc-fab:active,.mdc-fab:focus{outline:none}.mdc-fab:hover{cursor:pointer}.mdc-fab>svg{width:100%}.mdc-fab--mini{width:40px;height:40px}.mdc-fab--extended{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-button-font-family);font-size:var(--mdc-typography-button-font-size);line-height:var(--mdc-typography-button-line-height);font-weight:var(--mdc-typography-button-font-weight);letter-spacing:var(--mdc-typography-button-letter-spacing);text-decoration:var(--mdc-typography-button-text-decoration);text-transform:var(--mdc-typography-button-text-transform);border-radius:24px;padding-left:20px;padding-right:20px;width:auto;max-width:100%;height:48px;line-height:normal}.mdc-fab--extended .mdc-fab__ripple{border-radius:24px}.mdc-fab--extended .mdc-fab__icon{margin-left:calc(12px - 20px);margin-right:12px}[dir=rtl] .mdc-fab--extended .mdc-fab__icon,.mdc-fab--extended .mdc-fab__icon[dir=rtl]{margin-left:12px;margin-right:calc(12px - 20px)}.mdc-fab--extended .mdc-fab__label+.mdc-fab__icon{margin-left:12px;margin-right:calc(12px - 20px)}[dir=rtl] .mdc-fab--extended .mdc-fab__label+.mdc-fab__icon,.mdc-fab--extended .mdc-fab__label+.mdc-fab__icon[dir=rtl]{margin-left:calc(12px - 20px);margin-right:12px}.mdc-fab--touch{margin-top:4px;margin-bottom:4px;margin-right:4px;margin-left:4px}.mdc-fab--touch .mdc-fab__touch{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}.mdc-fab::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:\\\"\\\";pointer-events:none}@media screen and (forced-colors: active){.mdc-fab::before{border-color:CanvasText}}.mdc-fab__label{justify-content:flex-start;text-overflow:ellipsis;white-space:nowrap;overflow-x:hidden;overflow-y:visible}.mdc-fab__icon{transition:transform 180ms 90ms cubic-bezier(0, 0, 0.2, 1);fill:currentColor;will-change:transform}.mdc-fab .mdc-fab__icon{display:inline-flex;align-items:center;justify-content:center}.mdc-fab--exited{transform:scale(0);opacity:0;transition:opacity 15ms linear 150ms,transform 180ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-fab--exited .mdc-fab__icon{transform:scale(0);transition:transform 135ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mat-mdc-fab,.mat-mdc-mini-fab{background-color:var(--mdc-fab-container-color);--mdc-fab-container-shape:50%;--mdc-fab-icon-size:24px}.mat-mdc-fab .mdc-fab__icon,.mat-mdc-mini-fab .mdc-fab__icon{width:var(--mdc-fab-icon-size);height:var(--mdc-fab-icon-size);font-size:var(--mdc-fab-icon-size)}.mat-mdc-fab:not(:disabled) .mdc-fab__icon,.mat-mdc-mini-fab:not(:disabled) .mdc-fab__icon{color:var(--mdc-fab-icon-color)}.mat-mdc-fab:not(.mdc-fab--extended),.mat-mdc-mini-fab:not(.mdc-fab--extended){border-radius:var(--mdc-fab-container-shape)}.mat-mdc-fab:not(.mdc-fab--extended) .mdc-fab__ripple,.mat-mdc-mini-fab:not(.mdc-fab--extended) .mdc-fab__ripple{border-radius:var(--mdc-fab-container-shape)}.mat-mdc-extended-fab{font-family:var(--mdc-extended-fab-label-text-font);font-size:var(--mdc-extended-fab-label-text-size);font-weight:var(--mdc-extended-fab-label-text-weight);letter-spacing:var(--mdc-extended-fab-label-text-tracking)}.mat-mdc-fab,.mat-mdc-mini-fab{-webkit-tap-highlight-color:rgba(0,0,0,0);box-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);color:var(--mat-mdc-fab-color, inherit);flex-shrink:0}.mat-mdc-fab .mat-mdc-button-ripple,.mat-mdc-fab .mat-mdc-button-persistent-ripple,.mat-mdc-fab .mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab .mat-mdc-button-ripple,.mat-mdc-mini-fab .mat-mdc-button-persistent-ripple,.mat-mdc-mini-fab .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-fab .mat-mdc-button-ripple,.mat-mdc-mini-fab .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-fab .mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab .mat-mdc-button-persistent-ripple::before{content:\\\"\\\";opacity:0;background-color:var(--mat-mdc-button-persistent-ripple-color)}.mat-mdc-fab .mat-ripple-element,.mat-mdc-mini-fab .mat-ripple-element{background-color:var(--mat-mdc-button-ripple-color)}.mat-mdc-fab .mdc-button__label,.mat-mdc-mini-fab .mdc-button__label{z-index:1}.mat-mdc-fab .mat-mdc-focus-indicator,.mat-mdc-mini-fab .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-fab:focus .mat-mdc-focus-indicator::before,.mat-mdc-mini-fab:focus .mat-mdc-focus-indicator::before{content:\\\"\\\"}.mat-mdc-fab .mat-mdc-button-touch-target,.mat-mdc-mini-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}.mat-mdc-fab._mat-animation-noopable,.mat-mdc-mini-fab._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-fab:hover,.mat-mdc-fab:focus,.mat-mdc-mini-fab:hover,.mat-mdc-mini-fab:focus{box-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12)}.mat-mdc-fab:active,.mat-mdc-fab:focus:active,.mat-mdc-mini-fab:active,.mat-mdc-mini-fab:focus:active{box-shadow:0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12)}.mat-mdc-fab[disabled],.mat-mdc-mini-fab[disabled]{cursor:default;pointer-events:none;box-shadow:0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12)}.mat-mdc-fab:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-mini-fab:not(.mdc-ripple-upgraded):focus::before{background:rgba(0,0,0,0);opacity:1}.mat-mdc-fab .mat-icon,.mat-mdc-fab .material-icons,.mat-mdc-mini-fab .mat-icon,.mat-mdc-mini-fab .material-icons{transition:transform 180ms 90ms cubic-bezier(0, 0, 0.2, 1);fill:currentColor;will-change:transform}.mat-mdc-fab .mat-mdc-focus-indicator::before,.mat-mdc-mini-fab .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-mdc-extended-fab>.mat-icon,.mat-mdc-extended-fab>.material-icons{margin-left:calc(12px - 20px);margin-right:12px}[dir=rtl] .mat-mdc-extended-fab>.mat-icon,[dir=rtl] .mat-mdc-extended-fab>.material-icons,.mat-mdc-extended-fab>.mat-icon[dir=rtl],.mat-mdc-extended-fab>.material-icons[dir=rtl]{margin-left:12px;margin-right:calc(12px - 20px)}.mat-mdc-extended-fab .mdc-button__label+.mat-icon,.mat-mdc-extended-fab .mdc-button__label+.material-icons{margin-left:12px;margin-right:calc(12px - 20px)}[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.material-icons,.mat-mdc-extended-fab .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-extended-fab .mdc-button__label+.material-icons[dir=rtl]{margin-left:calc(12px - 20px);margin-right:12px}.mat-mdc-extended-fab .mat-mdc-button-touch-target{width:100%}\";\nconst _c8 = [\"mat-icon-button\", \"\"];\nconst _c9 = [\"*\"];\nconst _c10 = \".mdc-icon-button{display:inline-block;position:relative;box-sizing:border-box;border:none;outline:none;background-color:rgba(0,0,0,0);fill:currentColor;color:inherit;text-decoration:none;cursor:pointer;user-select:none;z-index:0;overflow:visible}.mdc-icon-button .mdc-icon-button__touch{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}@media screen and (forced-colors: active){.mdc-icon-button.mdc-ripple-upgraded--background-focused .mdc-icon-button__focus-ring,.mdc-icon-button:not(.mdc-ripple-upgraded):focus .mdc-icon-button__focus-ring{display:block}}.mdc-icon-button:disabled{cursor:default;pointer-events:none}.mdc-icon-button[hidden]{display:none}.mdc-icon-button--display-flex{align-items:center;display:inline-flex;justify-content:center}.mdc-icon-button__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:100%;width:100%;display:none}@media screen and (forced-colors: active){.mdc-icon-button__focus-ring{border-color:CanvasText}}.mdc-icon-button__focus-ring::after{content:\\\"\\\";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-icon-button__focus-ring::after{border-color:CanvasText}}.mdc-icon-button__icon{display:inline-block}.mdc-icon-button__icon.mdc-icon-button__icon--on{display:none}.mdc-icon-button--on .mdc-icon-button__icon{display:none}.mdc-icon-button--on .mdc-icon-button__icon.mdc-icon-button__icon--on{display:inline-block}.mdc-icon-button__link{height:100%;left:0;outline:none;position:absolute;top:0;width:100%}.mat-mdc-icon-button{height:var(--mdc-icon-button-state-layer-size);width:var(--mdc-icon-button-state-layer-size);color:var(--mdc-icon-button-icon-color);--mdc-icon-button-state-layer-size:48px;--mdc-icon-button-icon-size:24px;--mdc-icon-button-disabled-icon-color:black;--mdc-icon-button-disabled-icon-opacity:0.38}.mat-mdc-icon-button .mdc-button__icon{font-size:var(--mdc-icon-button-icon-size)}.mat-mdc-icon-button svg,.mat-mdc-icon-button img{width:var(--mdc-icon-button-icon-size);height:var(--mdc-icon-button-icon-size)}.mat-mdc-icon-button:disabled{opacity:var(--mdc-icon-button-disabled-icon-opacity)}.mat-mdc-icon-button:disabled{color:var(--mdc-icon-button-disabled-icon-color)}.mat-mdc-icon-button{padding:12px;font-size:var(--mdc-icon-button-icon-size);border-radius:50%;flex-shrink:0;text-align:center;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-icon-button svg{vertical-align:baseline}.mat-mdc-icon-button[disabled]{cursor:default;pointer-events:none;opacity:1}.mat-mdc-icon-button .mat-mdc-button-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-icon-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{content:\\\"\\\";opacity:0;background-color:var(--mat-mdc-button-persistent-ripple-color)}.mat-mdc-icon-button .mat-ripple-element{background-color:var(--mat-mdc-button-ripple-color)}.mat-mdc-icon-button .mdc-button__label{z-index:1}.mat-mdc-icon-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-icon-button:focus .mat-mdc-focus-indicator::before{content:\\\"\\\"}.mat-mdc-icon-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}.mat-mdc-icon-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple{border-radius:50%}.mat-mdc-icon-button.mat-unthemed:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-primary:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-accent:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-warn:not(.mdc-ripple-upgraded):focus::before{background:rgba(0,0,0,0);opacity:1}\";\nconst MAT_BUTTON_INPUTS = ['disabled', 'disableRipple', 'color'];\n/** Shared host configuration for all buttons */\nconst MAT_BUTTON_HOST = {\n '[attr.disabled]': 'disabled || null',\n '[class._mat-animation-noopable]': '_animationMode === \"NoopAnimations\"',\n // MDC automatically applies the primary theme color to the button, but we want to support\n // an unthemed version. If color is undefined, apply a CSS class that makes it easy to\n // select and style this \"theme\".\n '[class.mat-unthemed]': '!color',\n // Add a class that applies to all buttons. This makes it easier to target if somebody\n // wants to target all Material buttons.\n '[class.mat-mdc-button-base]': 'true'\n};\n/** List of classes to add to buttons instances based on host attribute selector. */\nconst HOST_SELECTOR_MDC_CLASS_PAIR = [{\n selector: 'mat-button',\n mdcClasses: ['mdc-button', 'mat-mdc-button']\n}, {\n selector: 'mat-flat-button',\n mdcClasses: ['mdc-button', 'mdc-button--unelevated', 'mat-mdc-unelevated-button']\n}, {\n selector: 'mat-raised-button',\n mdcClasses: ['mdc-button', 'mdc-button--raised', 'mat-mdc-raised-button']\n}, {\n selector: 'mat-stroked-button',\n mdcClasses: ['mdc-button', 'mdc-button--outlined', 'mat-mdc-outlined-button']\n}, {\n selector: 'mat-fab',\n mdcClasses: ['mdc-fab', 'mat-mdc-fab']\n}, {\n selector: 'mat-mini-fab',\n mdcClasses: ['mdc-fab', 'mdc-fab--mini', 'mat-mdc-mini-fab']\n}, {\n selector: 'mat-icon-button',\n mdcClasses: ['mdc-icon-button', 'mat-mdc-icon-button']\n}];\n// Boilerplate for applying mixins to MatButton.\n/** @docs-private */\nconst _MatButtonMixin = mixinColor(mixinDisabled(mixinDisableRipple(class {\n constructor(_elementRef) {\n this._elementRef = _elementRef;\n }\n})));\n/** Base class for all buttons. */\nclass MatButtonBase extends _MatButtonMixin {\n /**\n * Reference to the MatRipple instance of the button.\n * @deprecated Considered an implementation detail. To be removed.\n * @breaking-change 17.0.0\n */\n get ripple() {\n return this._rippleLoader?.getRipple(this._elementRef.nativeElement);\n }\n set ripple(v) {\n this._rippleLoader?.attachRipple(this._elementRef.nativeElement, v);\n }\n // We override `disableRipple` and `disabled` so we can hook into\n // their setters and update the ripple disabled state accordingly.\n /** Whether the ripple effect is disabled or not. */\n get disableRipple() {\n return this._disableRipple;\n }\n set disableRipple(value) {\n this._disableRipple = coerceBooleanProperty(value);\n this._updateRippleDisabled();\n }\n get disabled() {\n return this._disabled;\n }\n set disabled(value) {\n this._disabled = coerceBooleanProperty(value);\n this._updateRippleDisabled();\n }\n constructor(elementRef, _platform, _ngZone, _animationMode) {\n super(elementRef);\n this._platform = _platform;\n this._ngZone = _ngZone;\n this._animationMode = _animationMode;\n this._focusMonitor = inject(FocusMonitor);\n /**\n * Handles the lazy creation of the MatButton ripple.\n * Used to improve initial load time of large applications.\n */\n this._rippleLoader = inject(MatRippleLoader);\n /** Whether this button is a FAB. Used to apply the correct class on the ripple. */\n this._isFab = false;\n this._disableRipple = false;\n this._disabled = false;\n this._rippleLoader?.configureRipple(this._elementRef.nativeElement, {\n className: 'mat-mdc-button-ripple'\n });\n const classList = elementRef.nativeElement.classList;\n // For each of the variant selectors that is present in the button's host\n // attributes, add the correct corresponding MDC classes.\n for (const pair of HOST_SELECTOR_MDC_CLASS_PAIR) {\n if (this._hasHostAttributes(pair.selector)) {\n pair.mdcClasses.forEach(className => {\n classList.add(className);\n });\n }\n }\n }\n ngAfterViewInit() {\n this._focusMonitor.monitor(this._elementRef, true);\n }\n ngOnDestroy() {\n this._focusMonitor.stopMonitoring(this._elementRef);\n this._rippleLoader?.destroyRipple(this._elementRef.nativeElement);\n }\n /** Focuses the button. */\n focus(_origin = 'program', options) {\n if (_origin) {\n this._focusMonitor.focusVia(this._elementRef.nativeElement, _origin, options);\n } else {\n this._elementRef.nativeElement.focus(options);\n }\n }\n /** Gets whether the button has one of the given attributes. */\n _hasHostAttributes(...attributes) {\n return attributes.some(attribute => this._elementRef.nativeElement.hasAttribute(attribute));\n }\n _updateRippleDisabled() {\n this._rippleLoader?.setDisabled(this._elementRef.nativeElement, this.disableRipple || this.disabled);\n }\n static {\n this.ɵfac = function MatButtonBase_Factory(ɵt) {\n i0.ɵɵinvalidFactory();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatButtonBase,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatButtonBase, [{\n type: Directive\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i1.Platform\n }, {\n type: i0.NgZone\n }, {\n type: undefined\n }];\n }, null);\n})();\n/** Shared inputs by buttons using the `` tag */\nconst MAT_ANCHOR_INPUTS = ['disabled', 'disableRipple', 'color', 'tabIndex'];\n/** Shared host configuration for buttons using the `` tag. */\nconst MAT_ANCHOR_HOST = {\n '[attr.disabled]': 'disabled || null',\n '[class._mat-animation-noopable]': '_animationMode === \"NoopAnimations\"',\n // Note that we ignore the user-specified tabindex when it's disabled for\n // consistency with the `mat-button` applied on native buttons where even\n // though they have an index, they're not tabbable.\n '[attr.tabindex]': 'disabled ? -1 : tabIndex',\n '[attr.aria-disabled]': 'disabled.toString()',\n // MDC automatically applies the primary theme color to the button, but we want to support\n // an unthemed version. If color is undefined, apply a CSS class that makes it easy to\n // select and style this \"theme\".\n '[class.mat-unthemed]': '!color',\n // Add a class that applies to all buttons. This makes it easier to target if somebody\n // wants to target all Material buttons.\n '[class.mat-mdc-button-base]': 'true'\n};\n/**\n * Anchor button base.\n */\nclass MatAnchorBase extends MatButtonBase {\n constructor(elementRef, platform, ngZone, animationMode) {\n super(elementRef, platform, ngZone, animationMode);\n this._haltDisabledEvents = event => {\n // A disabled button shouldn't apply any actions\n if (this.disabled) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n };\n }\n ngOnInit() {\n this._ngZone.runOutsideAngular(() => {\n this._elementRef.nativeElement.addEventListener('click', this._haltDisabledEvents);\n });\n }\n ngOnDestroy() {\n super.ngOnDestroy();\n this._elementRef.nativeElement.removeEventListener('click', this._haltDisabledEvents);\n }\n static {\n this.ɵfac = function MatAnchorBase_Factory(ɵt) {\n i0.ɵɵinvalidFactory();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatAnchorBase,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatAnchorBase, [{\n type: Directive\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i1.Platform\n }, {\n type: i0.NgZone\n }, {\n type: undefined\n }];\n }, null);\n})();\n\n/**\n * Material Design button component. Users interact with a button to perform an action.\n * See https://material.io/components/buttons\n *\n * The `MatButton` class applies to native button elements and captures the appearances for\n * \"text button\", \"outlined button\", and \"contained button\" per the Material Design\n * specification. `MatButton` additionally captures an additional \"flat\" appearance, which matches\n * \"contained\" but without elevation.\n */\nclass MatButton extends MatButtonBase {\n constructor(elementRef, platform, ngZone, animationMode) {\n super(elementRef, platform, ngZone, animationMode);\n }\n static {\n this.ɵfac = function MatButton_Factory(ɵt) {\n return new (ɵt || MatButton)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatButton,\n selectors: [[\"button\", \"mat-button\", \"\"], [\"button\", \"mat-raised-button\", \"\"], [\"button\", \"mat-flat-button\", \"\"], [\"button\", \"mat-stroked-button\", \"\"]],\n hostVars: 7,\n hostBindings: function MatButton_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"disabled\", ctx.disabled || null);\n i0.ɵɵclassProp(\"_mat-animation-noopable\", ctx._animationMode === \"NoopAnimations\")(\"mat-unthemed\", !ctx.color)(\"mat-mdc-button-base\", true);\n }\n },\n inputs: {\n disabled: \"disabled\",\n disableRipple: \"disableRipple\",\n color: \"color\"\n },\n exportAs: [\"matButton\"],\n features: [i0.ɵɵInheritDefinitionFeature],\n attrs: _c0,\n ngContentSelectors: _c2,\n decls: 7,\n vars: 4,\n consts: [[1, \"mat-mdc-button-persistent-ripple\"], [1, \"mdc-button__label\"], [1, \"mat-mdc-focus-indicator\"], [1, \"mat-mdc-button-touch-target\"]],\n template: function MatButton_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c1);\n i0.ɵɵelement(0, \"span\", 0);\n i0.ɵɵprojection(1);\n i0.ɵɵelementStart(2, \"span\", 1);\n i0.ɵɵprojection(3, 1);\n i0.ɵɵelementEnd();\n i0.ɵɵprojection(4, 2);\n i0.ɵɵelement(5, \"span\", 2)(6, \"span\", 3);\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"mdc-button__ripple\", !ctx._isFab)(\"mdc-fab__ripple\", ctx._isFab);\n }\n },\n styles: [\".mdc-touch-target-wrapper{display:inline}.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity, 0);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button{position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;user-select:none;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0)}.mdc-button .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{cursor:default;pointer-events:none}.mdc-button[hidden]{display:none}.mdc-button .mdc-button__icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top}[dir=rtl] .mdc-button .mdc-button__icon,.mdc-button .mdc-button__icon[dir=rtl]{margin-left:8px;margin-right:0}.mdc-button .mdc-button__progress-indicator{font-size:0;position:absolute;transform:translate(-50%, -50%);top:50%;left:50%;line-height:initial}.mdc-button .mdc-button__label{position:relative}.mdc-button .mdc-button__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(\\n 100% + 4px\\n );width:calc(\\n 100% + 4px\\n );display:none}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring{border-color:CanvasText}}.mdc-button .mdc-button__focus-ring::after{content:\\\"\\\";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring::after{border-color:CanvasText}}@media screen and (forced-colors: active){.mdc-button.mdc-ripple-upgraded--background-focused .mdc-button__focus-ring,.mdc-button:not(.mdc-ripple-upgraded):focus .mdc-button__focus-ring{display:block}}.mdc-button .mdc-button__touch{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mdc-button__label+.mdc-button__icon{margin-left:8px;margin-right:0}[dir=rtl] .mdc-button__label+.mdc-button__icon,.mdc-button__label+.mdc-button__icon[dir=rtl]{margin-left:0;margin-right:8px}svg.mdc-button__icon{fill:currentColor}.mdc-button--touch{margin-top:6px;margin-bottom:6px}.mdc-button{padding:0 8px 0 8px}.mdc-button--unelevated{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--unelevated.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--unelevated.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--raised{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--raised.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--raised.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--outlined{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button--outlined .mdc-button__ripple{border-style:solid;border-color:rgba(0,0,0,0)}.mat-mdc-button{height:var(--mdc-text-button-container-height, 36px);border-radius:var(--mdc-text-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color, inherit)}.mat-mdc-button:disabled{color:var(--mdc-text-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-button .mdc-button__ripple{border-radius:var(--mdc-text-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-unelevated-button{height:var(--mdc-filled-button-container-height, 36px);border-radius:var(--mdc-filled-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-unelevated-button:not(:disabled){background-color:var(--mdc-filled-button-container-color, transparent)}.mat-mdc-unelevated-button:disabled{background-color:var(--mdc-filled-button-disabled-container-color, rgba(0, 0, 0, 0.12))}.mat-mdc-unelevated-button:not(:disabled){color:var(--mdc-filled-button-label-text-color, inherit)}.mat-mdc-unelevated-button:disabled{color:var(--mdc-filled-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mdc-filled-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-raised-button{height:var(--mdc-protected-button-container-height, 36px);border-radius:var(--mdc-protected-button-container-shape, var(--mdc-shape-small, 4px));box-shadow:var(--mdc-protected-button-container-elevation, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled){background-color:var(--mdc-protected-button-container-color, transparent)}.mat-mdc-raised-button:disabled{background-color:var(--mdc-protected-button-disabled-container-color, rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled){color:var(--mdc-protected-button-label-text-color, inherit)}.mat-mdc-raised-button:disabled{color:var(--mdc-protected-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mdc-protected-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-raised-button.mdc-ripple-upgraded--background-focused,.mat-mdc-raised-button:not(.mdc-ripple-upgraded):focus{box-shadow:var(--mdc-protected-button-focus-container-elevation, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:hover{box-shadow:var(--mdc-protected-button-hover-container-elevation, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled):active{box-shadow:var(--mdc-protected-button-pressed-container-elevation, 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:disabled{box-shadow:var(--mdc-protected-button-disabled-container-elevation, 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button{height:var(--mdc-outlined-button-container-height, 36px);border-radius:var(--mdc-outlined-button-container-shape, var(--mdc-shape-small, 4px));padding:0 15px 0 15px;border-width:var(--mdc-outlined-button-outline-width, 1px)}.mat-mdc-outlined-button:not(:disabled){color:var(--mdc-outlined-button-label-text-color, inherit)}.mat-mdc-outlined-button:disabled{color:var(--mdc-outlined-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-outlined-button .mdc-button__ripple{border-radius:var(--mdc-outlined-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-outlined-button:not(:disabled){border-color:var(--mdc-outlined-button-outline-color, rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button:disabled{border-color:var(--mdc-outlined-button-disabled-outline-color, rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button.mdc-button--icon-trailing{padding:0 11px 0 15px}.mat-mdc-outlined-button.mdc-button--icon-leading{padding:0 15px 0 11px}.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:var(--mdc-outlined-button-outline-width, 1px)}.mat-mdc-outlined-button .mdc-button__touch{left:calc(-1 * var(--mdc-outlined-button-outline-width, 1px));width:calc(100% + 2 * var(--mdc-outlined-button-outline-width, 1px))}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{content:\\\"\\\";opacity:0;background-color:var(--mat-mdc-button-persistent-ripple-color)}.mat-mdc-button .mat-ripple-element,.mat-mdc-unelevated-button .mat-ripple-element,.mat-mdc-raised-button .mat-ripple-element,.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-mdc-button-ripple-color)}.mat-mdc-button .mdc-button__label,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-outlined-button .mdc-button__label{z-index:1}.mat-mdc-button .mat-mdc-focus-indicator,.mat-mdc-unelevated-button .mat-mdc-focus-indicator,.mat-mdc-raised-button .mat-mdc-focus-indicator,.mat-mdc-outlined-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-unelevated-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-raised-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-outlined-button:focus .mat-mdc-focus-indicator::before{content:\\\"\\\"}.mat-mdc-button[disabled],.mat-mdc-unelevated-button[disabled],.mat-mdc-raised-button[disabled],.mat-mdc-outlined-button[disabled]{cursor:default;pointer-events:none}.mat-mdc-button .mat-mdc-button-touch-target,.mat-mdc-unelevated-button .mat-mdc-button-touch-target,.mat-mdc-raised-button .mat-mdc-button-touch-target,.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mat-mdc-button._mat-animation-noopable,.mat-mdc-unelevated-button._mat-animation-noopable,.mat-mdc-raised-button._mat-animation-noopable,.mat-mdc-outlined-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}[dir=rtl] .mat-mdc-button>.mat-icon,.mat-mdc-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:0}.mat-mdc-button .mdc-button__label+.mat-icon{margin-left:8px;margin-right:0}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon,.mat-mdc-button .mdc-button__label+.mat-icon[dir=rtl]{margin-left:0;margin-right:8px}.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem;margin-left:-4px;margin-right:8px}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon,[dir=rtl] .mat-mdc-raised-button>.mat-icon,[dir=rtl] .mat-mdc-outlined-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon[dir=rtl],.mat-mdc-raised-button>.mat-icon[dir=rtl],.mat-mdc-outlined-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:0}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon,[dir=rtl] .mat-mdc-raised-button>.mat-icon,[dir=rtl] .mat-mdc-outlined-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon[dir=rtl],.mat-mdc-raised-button>.mat-icon[dir=rtl],.mat-mdc-outlined-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:-4px}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon,.mat-mdc-raised-button .mdc-button__label+.mat-icon,.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-left:8px;margin-right:-4px}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon,.mat-mdc-unelevated-button .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-raised-button .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-outlined-button .mdc-button__label+.mat-icon[dir=rtl]{margin-left:-4px;margin-right:8px}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:-1px}.mat-mdc-unelevated-button .mat-mdc-focus-indicator::before,.mat-mdc-raised-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-mdc-outlined-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 3px) * -1)}\", \".cdk-high-contrast-active .mat-mdc-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-unelevated-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-raised-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-outlined-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-icon-button{outline:solid 1px}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatButton, [{\n type: Component,\n args: [{\n selector: `\n button[mat-button], button[mat-raised-button], button[mat-flat-button],\n button[mat-stroked-button]\n `,\n inputs: MAT_BUTTON_INPUTS,\n host: MAT_BUTTON_HOST,\n exportAs: 'matButton',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: \"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\",\n styles: [\".mdc-touch-target-wrapper{display:inline}.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity, 0);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button{position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;user-select:none;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0)}.mdc-button .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{cursor:default;pointer-events:none}.mdc-button[hidden]{display:none}.mdc-button .mdc-button__icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top}[dir=rtl] .mdc-button .mdc-button__icon,.mdc-button .mdc-button__icon[dir=rtl]{margin-left:8px;margin-right:0}.mdc-button .mdc-button__progress-indicator{font-size:0;position:absolute;transform:translate(-50%, -50%);top:50%;left:50%;line-height:initial}.mdc-button .mdc-button__label{position:relative}.mdc-button .mdc-button__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(\\n 100% + 4px\\n );width:calc(\\n 100% + 4px\\n );display:none}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring{border-color:CanvasText}}.mdc-button .mdc-button__focus-ring::after{content:\\\"\\\";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring::after{border-color:CanvasText}}@media screen and (forced-colors: active){.mdc-button.mdc-ripple-upgraded--background-focused .mdc-button__focus-ring,.mdc-button:not(.mdc-ripple-upgraded):focus .mdc-button__focus-ring{display:block}}.mdc-button .mdc-button__touch{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mdc-button__label+.mdc-button__icon{margin-left:8px;margin-right:0}[dir=rtl] .mdc-button__label+.mdc-button__icon,.mdc-button__label+.mdc-button__icon[dir=rtl]{margin-left:0;margin-right:8px}svg.mdc-button__icon{fill:currentColor}.mdc-button--touch{margin-top:6px;margin-bottom:6px}.mdc-button{padding:0 8px 0 8px}.mdc-button--unelevated{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--unelevated.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--unelevated.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--raised{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--raised.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--raised.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--outlined{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button--outlined .mdc-button__ripple{border-style:solid;border-color:rgba(0,0,0,0)}.mat-mdc-button{height:var(--mdc-text-button-container-height, 36px);border-radius:var(--mdc-text-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color, inherit)}.mat-mdc-button:disabled{color:var(--mdc-text-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-button .mdc-button__ripple{border-radius:var(--mdc-text-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-unelevated-button{height:var(--mdc-filled-button-container-height, 36px);border-radius:var(--mdc-filled-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-unelevated-button:not(:disabled){background-color:var(--mdc-filled-button-container-color, transparent)}.mat-mdc-unelevated-button:disabled{background-color:var(--mdc-filled-button-disabled-container-color, rgba(0, 0, 0, 0.12))}.mat-mdc-unelevated-button:not(:disabled){color:var(--mdc-filled-button-label-text-color, inherit)}.mat-mdc-unelevated-button:disabled{color:var(--mdc-filled-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mdc-filled-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-raised-button{height:var(--mdc-protected-button-container-height, 36px);border-radius:var(--mdc-protected-button-container-shape, var(--mdc-shape-small, 4px));box-shadow:var(--mdc-protected-button-container-elevation, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled){background-color:var(--mdc-protected-button-container-color, transparent)}.mat-mdc-raised-button:disabled{background-color:var(--mdc-protected-button-disabled-container-color, rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled){color:var(--mdc-protected-button-label-text-color, inherit)}.mat-mdc-raised-button:disabled{color:var(--mdc-protected-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mdc-protected-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-raised-button.mdc-ripple-upgraded--background-focused,.mat-mdc-raised-button:not(.mdc-ripple-upgraded):focus{box-shadow:var(--mdc-protected-button-focus-container-elevation, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:hover{box-shadow:var(--mdc-protected-button-hover-container-elevation, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled):active{box-shadow:var(--mdc-protected-button-pressed-container-elevation, 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:disabled{box-shadow:var(--mdc-protected-button-disabled-container-elevation, 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button{height:var(--mdc-outlined-button-container-height, 36px);border-radius:var(--mdc-outlined-button-container-shape, var(--mdc-shape-small, 4px));padding:0 15px 0 15px;border-width:var(--mdc-outlined-button-outline-width, 1px)}.mat-mdc-outlined-button:not(:disabled){color:var(--mdc-outlined-button-label-text-color, inherit)}.mat-mdc-outlined-button:disabled{color:var(--mdc-outlined-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-outlined-button .mdc-button__ripple{border-radius:var(--mdc-outlined-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-outlined-button:not(:disabled){border-color:var(--mdc-outlined-button-outline-color, rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button:disabled{border-color:var(--mdc-outlined-button-disabled-outline-color, rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button.mdc-button--icon-trailing{padding:0 11px 0 15px}.mat-mdc-outlined-button.mdc-button--icon-leading{padding:0 15px 0 11px}.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:var(--mdc-outlined-button-outline-width, 1px)}.mat-mdc-outlined-button .mdc-button__touch{left:calc(-1 * var(--mdc-outlined-button-outline-width, 1px));width:calc(100% + 2 * var(--mdc-outlined-button-outline-width, 1px))}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{content:\\\"\\\";opacity:0;background-color:var(--mat-mdc-button-persistent-ripple-color)}.mat-mdc-button .mat-ripple-element,.mat-mdc-unelevated-button .mat-ripple-element,.mat-mdc-raised-button .mat-ripple-element,.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-mdc-button-ripple-color)}.mat-mdc-button .mdc-button__label,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-outlined-button .mdc-button__label{z-index:1}.mat-mdc-button .mat-mdc-focus-indicator,.mat-mdc-unelevated-button .mat-mdc-focus-indicator,.mat-mdc-raised-button .mat-mdc-focus-indicator,.mat-mdc-outlined-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-unelevated-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-raised-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-outlined-button:focus .mat-mdc-focus-indicator::before{content:\\\"\\\"}.mat-mdc-button[disabled],.mat-mdc-unelevated-button[disabled],.mat-mdc-raised-button[disabled],.mat-mdc-outlined-button[disabled]{cursor:default;pointer-events:none}.mat-mdc-button .mat-mdc-button-touch-target,.mat-mdc-unelevated-button .mat-mdc-button-touch-target,.mat-mdc-raised-button .mat-mdc-button-touch-target,.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mat-mdc-button._mat-animation-noopable,.mat-mdc-unelevated-button._mat-animation-noopable,.mat-mdc-raised-button._mat-animation-noopable,.mat-mdc-outlined-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}[dir=rtl] .mat-mdc-button>.mat-icon,.mat-mdc-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:0}.mat-mdc-button .mdc-button__label+.mat-icon{margin-left:8px;margin-right:0}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon,.mat-mdc-button .mdc-button__label+.mat-icon[dir=rtl]{margin-left:0;margin-right:8px}.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem;margin-left:-4px;margin-right:8px}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon,[dir=rtl] .mat-mdc-raised-button>.mat-icon,[dir=rtl] .mat-mdc-outlined-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon[dir=rtl],.mat-mdc-raised-button>.mat-icon[dir=rtl],.mat-mdc-outlined-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:0}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon,[dir=rtl] .mat-mdc-raised-button>.mat-icon,[dir=rtl] .mat-mdc-outlined-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon[dir=rtl],.mat-mdc-raised-button>.mat-icon[dir=rtl],.mat-mdc-outlined-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:-4px}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon,.mat-mdc-raised-button .mdc-button__label+.mat-icon,.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-left:8px;margin-right:-4px}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon,.mat-mdc-unelevated-button .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-raised-button .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-outlined-button .mdc-button__label+.mat-icon[dir=rtl]{margin-left:-4px;margin-right:8px}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:-1px}.mat-mdc-unelevated-button .mat-mdc-focus-indicator::before,.mat-mdc-raised-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-mdc-outlined-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 3px) * -1)}\", \".cdk-high-contrast-active .mat-mdc-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-unelevated-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-raised-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-outlined-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-icon-button{outline:solid 1px}\"]\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i1.Platform\n }, {\n type: i0.NgZone\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }]\n }];\n }, null);\n})();\n/**\n * Material Design button component for anchor elements. Anchor elements are used to provide\n * links for the user to navigate across different routes or pages.\n * See https://material.io/components/buttons\n *\n * The `MatAnchor` class applies to native anchor elements and captures the appearances for\n * \"text button\", \"outlined button\", and \"contained button\" per the Material Design\n * specification. `MatAnchor` additionally captures an additional \"flat\" appearance, which matches\n * \"contained\" but without elevation.\n */\nclass MatAnchor extends MatAnchorBase {\n constructor(elementRef, platform, ngZone, animationMode) {\n super(elementRef, platform, ngZone, animationMode);\n }\n static {\n this.ɵfac = function MatAnchor_Factory(ɵt) {\n return new (ɵt || MatAnchor)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatAnchor,\n selectors: [[\"a\", \"mat-button\", \"\"], [\"a\", \"mat-raised-button\", \"\"], [\"a\", \"mat-flat-button\", \"\"], [\"a\", \"mat-stroked-button\", \"\"]],\n hostVars: 9,\n hostBindings: function MatAnchor_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"disabled\", ctx.disabled || null)(\"tabindex\", ctx.disabled ? -1 : ctx.tabIndex)(\"aria-disabled\", ctx.disabled.toString());\n i0.ɵɵclassProp(\"_mat-animation-noopable\", ctx._animationMode === \"NoopAnimations\")(\"mat-unthemed\", !ctx.color)(\"mat-mdc-button-base\", true);\n }\n },\n inputs: {\n disabled: \"disabled\",\n disableRipple: \"disableRipple\",\n color: \"color\",\n tabIndex: \"tabIndex\"\n },\n exportAs: [\"matButton\", \"matAnchor\"],\n features: [i0.ɵɵInheritDefinitionFeature],\n attrs: _c0,\n ngContentSelectors: _c2,\n decls: 7,\n vars: 4,\n consts: [[1, \"mat-mdc-button-persistent-ripple\"], [1, \"mdc-button__label\"], [1, \"mat-mdc-focus-indicator\"], [1, \"mat-mdc-button-touch-target\"]],\n template: function MatAnchor_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c1);\n i0.ɵɵelement(0, \"span\", 0);\n i0.ɵɵprojection(1);\n i0.ɵɵelementStart(2, \"span\", 1);\n i0.ɵɵprojection(3, 1);\n i0.ɵɵelementEnd();\n i0.ɵɵprojection(4, 2);\n i0.ɵɵelement(5, \"span\", 2)(6, \"span\", 3);\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"mdc-button__ripple\", !ctx._isFab)(\"mdc-fab__ripple\", ctx._isFab);\n }\n },\n styles: [_c3, _c4],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatAnchor, [{\n type: Component,\n args: [{\n selector: `a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]`,\n exportAs: 'matButton, matAnchor',\n host: MAT_ANCHOR_HOST,\n inputs: MAT_ANCHOR_INPUTS,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: \"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\",\n styles: [\".mdc-touch-target-wrapper{display:inline}.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity, 0);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button{position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;user-select:none;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0)}.mdc-button .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{cursor:default;pointer-events:none}.mdc-button[hidden]{display:none}.mdc-button .mdc-button__icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top}[dir=rtl] .mdc-button .mdc-button__icon,.mdc-button .mdc-button__icon[dir=rtl]{margin-left:8px;margin-right:0}.mdc-button .mdc-button__progress-indicator{font-size:0;position:absolute;transform:translate(-50%, -50%);top:50%;left:50%;line-height:initial}.mdc-button .mdc-button__label{position:relative}.mdc-button .mdc-button__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(\\n 100% + 4px\\n );width:calc(\\n 100% + 4px\\n );display:none}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring{border-color:CanvasText}}.mdc-button .mdc-button__focus-ring::after{content:\\\"\\\";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-button .mdc-button__focus-ring::after{border-color:CanvasText}}@media screen and (forced-colors: active){.mdc-button.mdc-ripple-upgraded--background-focused .mdc-button__focus-ring,.mdc-button:not(.mdc-ripple-upgraded):focus .mdc-button__focus-ring{display:block}}.mdc-button .mdc-button__touch{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mdc-button__label+.mdc-button__icon{margin-left:8px;margin-right:0}[dir=rtl] .mdc-button__label+.mdc-button__icon,.mdc-button__label+.mdc-button__icon[dir=rtl]{margin-left:0;margin-right:8px}svg.mdc-button__icon{fill:currentColor}.mdc-button--touch{margin-top:6px;margin-bottom:6px}.mdc-button{padding:0 8px 0 8px}.mdc-button--unelevated{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--unelevated.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--unelevated.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--raised{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 16px 0 16px}.mdc-button--raised.mdc-button--icon-trailing{padding:0 12px 0 16px}.mdc-button--raised.mdc-button--icon-leading{padding:0 16px 0 12px}.mdc-button--outlined{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-button--outlined .mdc-button__ripple{border-style:solid;border-color:rgba(0,0,0,0)}.mat-mdc-button{height:var(--mdc-text-button-container-height, 36px);border-radius:var(--mdc-text-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color, inherit)}.mat-mdc-button:disabled{color:var(--mdc-text-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-button .mdc-button__ripple{border-radius:var(--mdc-text-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-unelevated-button{height:var(--mdc-filled-button-container-height, 36px);border-radius:var(--mdc-filled-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-unelevated-button:not(:disabled){background-color:var(--mdc-filled-button-container-color, transparent)}.mat-mdc-unelevated-button:disabled{background-color:var(--mdc-filled-button-disabled-container-color, rgba(0, 0, 0, 0.12))}.mat-mdc-unelevated-button:not(:disabled){color:var(--mdc-filled-button-label-text-color, inherit)}.mat-mdc-unelevated-button:disabled{color:var(--mdc-filled-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mdc-filled-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-raised-button{height:var(--mdc-protected-button-container-height, 36px);border-radius:var(--mdc-protected-button-container-shape, var(--mdc-shape-small, 4px));box-shadow:var(--mdc-protected-button-container-elevation, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled){background-color:var(--mdc-protected-button-container-color, transparent)}.mat-mdc-raised-button:disabled{background-color:var(--mdc-protected-button-disabled-container-color, rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled){color:var(--mdc-protected-button-label-text-color, inherit)}.mat-mdc-raised-button:disabled{color:var(--mdc-protected-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mdc-protected-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-raised-button.mdc-ripple-upgraded--background-focused,.mat-mdc-raised-button:not(.mdc-ripple-upgraded):focus{box-shadow:var(--mdc-protected-button-focus-container-elevation, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:hover{box-shadow:var(--mdc-protected-button-hover-container-elevation, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:not(:disabled):active{box-shadow:var(--mdc-protected-button-pressed-container-elevation, 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12))}.mat-mdc-raised-button:disabled{box-shadow:var(--mdc-protected-button-disabled-container-elevation, 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button{height:var(--mdc-outlined-button-container-height, 36px);border-radius:var(--mdc-outlined-button-container-shape, var(--mdc-shape-small, 4px));padding:0 15px 0 15px;border-width:var(--mdc-outlined-button-outline-width, 1px)}.mat-mdc-outlined-button:not(:disabled){color:var(--mdc-outlined-button-label-text-color, inherit)}.mat-mdc-outlined-button:disabled{color:var(--mdc-outlined-button-disabled-label-text-color, rgba(0, 0, 0, 0.38))}.mat-mdc-outlined-button .mdc-button__ripple{border-radius:var(--mdc-outlined-button-container-shape, var(--mdc-shape-small, 4px))}.mat-mdc-outlined-button:not(:disabled){border-color:var(--mdc-outlined-button-outline-color, rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button:disabled{border-color:var(--mdc-outlined-button-disabled-outline-color, rgba(0, 0, 0, 0.12))}.mat-mdc-outlined-button.mdc-button--icon-trailing{padding:0 11px 0 15px}.mat-mdc-outlined-button.mdc-button--icon-leading{padding:0 15px 0 11px}.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:var(--mdc-outlined-button-outline-width, 1px)}.mat-mdc-outlined-button .mdc-button__touch{left:calc(-1 * var(--mdc-outlined-button-outline-width, 1px));width:calc(100% + 2 * var(--mdc-outlined-button-outline-width, 1px))}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{content:\\\"\\\";opacity:0;background-color:var(--mat-mdc-button-persistent-ripple-color)}.mat-mdc-button .mat-ripple-element,.mat-mdc-unelevated-button .mat-ripple-element,.mat-mdc-raised-button .mat-ripple-element,.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-mdc-button-ripple-color)}.mat-mdc-button .mdc-button__label,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-outlined-button .mdc-button__label{z-index:1}.mat-mdc-button .mat-mdc-focus-indicator,.mat-mdc-unelevated-button .mat-mdc-focus-indicator,.mat-mdc-raised-button .mat-mdc-focus-indicator,.mat-mdc-outlined-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-unelevated-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-raised-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-outlined-button:focus .mat-mdc-focus-indicator::before{content:\\\"\\\"}.mat-mdc-button[disabled],.mat-mdc-unelevated-button[disabled],.mat-mdc-raised-button[disabled],.mat-mdc-outlined-button[disabled]{cursor:default;pointer-events:none}.mat-mdc-button .mat-mdc-button-touch-target,.mat-mdc-unelevated-button .mat-mdc-button-touch-target,.mat-mdc-raised-button .mat-mdc-button-touch-target,.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%)}.mat-mdc-button._mat-animation-noopable,.mat-mdc-unelevated-button._mat-animation-noopable,.mat-mdc-raised-button._mat-animation-noopable,.mat-mdc-outlined-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}[dir=rtl] .mat-mdc-button>.mat-icon,.mat-mdc-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:0}.mat-mdc-button .mdc-button__label+.mat-icon{margin-left:8px;margin-right:0}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon,.mat-mdc-button .mdc-button__label+.mat-icon[dir=rtl]{margin-left:0;margin-right:8px}.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon{margin-left:0;margin-right:8px;display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem;margin-left:-4px;margin-right:8px}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon,[dir=rtl] .mat-mdc-raised-button>.mat-icon,[dir=rtl] .mat-mdc-outlined-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon[dir=rtl],.mat-mdc-raised-button>.mat-icon[dir=rtl],.mat-mdc-outlined-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:0}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon,[dir=rtl] .mat-mdc-raised-button>.mat-icon,[dir=rtl] .mat-mdc-outlined-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon[dir=rtl],.mat-mdc-raised-button>.mat-icon[dir=rtl],.mat-mdc-outlined-button>.mat-icon[dir=rtl]{margin-left:8px;margin-right:-4px}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon,.mat-mdc-raised-button .mdc-button__label+.mat-icon,.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-left:8px;margin-right:-4px}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon,.mat-mdc-unelevated-button .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-raised-button .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-outlined-button .mdc-button__label+.mat-icon[dir=rtl]{margin-left:-4px;margin-right:8px}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:-1px}.mat-mdc-unelevated-button .mat-mdc-focus-indicator::before,.mat-mdc-raised-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-mdc-outlined-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 3px) * -1)}\", \".cdk-high-contrast-active .mat-mdc-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-unelevated-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-raised-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-outlined-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-icon-button{outline:solid 1px}\"]\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i1.Platform\n }, {\n type: i0.NgZone\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }]\n }];\n }, null);\n})();\n\n/** Injection token to be used to override the default options for FAB. */\nconst MAT_FAB_DEFAULT_OPTIONS = new InjectionToken('mat-mdc-fab-default-options', {\n providedIn: 'root',\n factory: MAT_FAB_DEFAULT_OPTIONS_FACTORY\n});\n/** @docs-private */\nfunction MAT_FAB_DEFAULT_OPTIONS_FACTORY() {\n return {\n // The FAB by default has its color set to accent.\n color: 'accent'\n };\n}\n// Default FAB configuration.\nconst defaults = MAT_FAB_DEFAULT_OPTIONS_FACTORY();\nlet buttonInputs = [...MAT_ANCHOR_INPUTS, 'extended'];\n/**\n * Material Design floating action button (FAB) component. These buttons represent the primary\n * or most common action for users to interact with.\n * See https://material.io/components/buttons-floating-action-button/\n *\n * The `MatFabButton` class has two appearances: normal and extended.\n */\nclass MatFabButton extends MatButtonBase {\n get extended() {\n return this._extended;\n }\n set extended(value) {\n this._extended = coerceBooleanProperty(value);\n }\n constructor(elementRef, platform, ngZone, animationMode, _options) {\n super(elementRef, platform, ngZone, animationMode);\n this._options = _options;\n this._isFab = true;\n this._options = this._options || defaults;\n this.color = this.defaultColor = this._options.color || defaults.color;\n }\n static {\n this.ɵfac = function MatFabButton_Factory(ɵt) {\n return new (ɵt || MatFabButton)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8), i0.ɵɵdirectiveInject(MAT_FAB_DEFAULT_OPTIONS, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatFabButton,\n selectors: [[\"button\", \"mat-fab\", \"\"]],\n hostVars: 11,\n hostBindings: function MatFabButton_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"disabled\", ctx.disabled || null);\n i0.ɵɵclassProp(\"_mat-animation-noopable\", ctx._animationMode === \"NoopAnimations\")(\"mat-unthemed\", !ctx.color)(\"mat-mdc-button-base\", true)(\"mdc-fab--extended\", ctx.extended)(\"mat-mdc-extended-fab\", ctx.extended);\n }\n },\n inputs: {\n disabled: \"disabled\",\n disableRipple: \"disableRipple\",\n color: \"color\",\n tabIndex: \"tabIndex\",\n extended: \"extended\"\n },\n exportAs: [\"matButton\"],\n features: [i0.ɵɵInheritDefinitionFeature],\n attrs: _c5,\n ngContentSelectors: _c2,\n decls: 7,\n vars: 4,\n consts: [[1, \"mat-mdc-button-persistent-ripple\"], [1, \"mdc-button__label\"], [1, \"mat-mdc-focus-indicator\"], [1, \"mat-mdc-button-touch-target\"]],\n template: function MatFabButton_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c1);\n i0.ɵɵelement(0, \"span\", 0);\n i0.ɵɵprojection(1);\n i0.ɵɵelementStart(2, \"span\", 1);\n i0.ɵɵprojection(3, 1);\n i0.ɵɵelementEnd();\n i0.ɵɵprojection(4, 2);\n i0.ɵɵelement(5, \"span\", 2)(6, \"span\", 3);\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"mdc-button__ripple\", !ctx._isFab)(\"mdc-fab__ripple\", ctx._isFab);\n }\n },\n styles: [\".mdc-touch-target-wrapper{display:inline}.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1);background-color:var(--mdc-elevation-overlay-color)}.mdc-fab{position:relative;display:inline-flex;position:relative;align-items:center;justify-content:center;box-sizing:border-box;width:56px;height:56px;padding:0;border:none;fill:currentColor;text-decoration:none;cursor:pointer;user-select:none;-moz-appearance:none;-webkit-appearance:none;overflow:visible;transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1),opacity 15ms linear 30ms,transform 270ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-fab .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-fab[hidden]{display:none}.mdc-fab::-moz-focus-inner{padding:0;border:0}.mdc-fab:hover{box-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12)}.mdc-fab.mdc-ripple-upgraded--background-focused,.mdc-fab:not(.mdc-ripple-upgraded):focus{box-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12)}.mdc-fab .mdc-fab__focus-ring{position:absolute}.mdc-fab.mdc-ripple-upgraded--background-focused .mdc-fab__focus-ring,.mdc-fab:not(.mdc-ripple-upgraded):focus .mdc-fab__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(\\n 100% + 4px\\n );width:calc(\\n 100% + 4px\\n )}@media screen and (forced-colors: active){.mdc-fab.mdc-ripple-upgraded--background-focused .mdc-fab__focus-ring,.mdc-fab:not(.mdc-ripple-upgraded):focus .mdc-fab__focus-ring{border-color:CanvasText}}.mdc-fab.mdc-ripple-upgraded--background-focused .mdc-fab__focus-ring::after,.mdc-fab:not(.mdc-ripple-upgraded):focus .mdc-fab__focus-ring::after{content:\\\"\\\";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-fab.mdc-ripple-upgraded--background-focused .mdc-fab__focus-ring::after,.mdc-fab:not(.mdc-ripple-upgraded):focus .mdc-fab__focus-ring::after{border-color:CanvasText}}.mdc-fab:active,.mdc-fab:focus:active{box-shadow:0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12)}.mdc-fab:active,.mdc-fab:focus{outline:none}.mdc-fab:hover{cursor:pointer}.mdc-fab>svg{width:100%}.mdc-fab--mini{width:40px;height:40px}.mdc-fab--extended{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-button-font-family);font-size:var(--mdc-typography-button-font-size);line-height:var(--mdc-typography-button-line-height);font-weight:var(--mdc-typography-button-font-weight);letter-spacing:var(--mdc-typography-button-letter-spacing);text-decoration:var(--mdc-typography-button-text-decoration);text-transform:var(--mdc-typography-button-text-transform);border-radius:24px;padding-left:20px;padding-right:20px;width:auto;max-width:100%;height:48px;line-height:normal}.mdc-fab--extended .mdc-fab__ripple{border-radius:24px}.mdc-fab--extended .mdc-fab__icon{margin-left:calc(12px - 20px);margin-right:12px}[dir=rtl] .mdc-fab--extended .mdc-fab__icon,.mdc-fab--extended .mdc-fab__icon[dir=rtl]{margin-left:12px;margin-right:calc(12px - 20px)}.mdc-fab--extended .mdc-fab__label+.mdc-fab__icon{margin-left:12px;margin-right:calc(12px - 20px)}[dir=rtl] .mdc-fab--extended .mdc-fab__label+.mdc-fab__icon,.mdc-fab--extended .mdc-fab__label+.mdc-fab__icon[dir=rtl]{margin-left:calc(12px - 20px);margin-right:12px}.mdc-fab--touch{margin-top:4px;margin-bottom:4px;margin-right:4px;margin-left:4px}.mdc-fab--touch .mdc-fab__touch{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}.mdc-fab::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:\\\"\\\";pointer-events:none}@media screen and (forced-colors: active){.mdc-fab::before{border-color:CanvasText}}.mdc-fab__label{justify-content:flex-start;text-overflow:ellipsis;white-space:nowrap;overflow-x:hidden;overflow-y:visible}.mdc-fab__icon{transition:transform 180ms 90ms cubic-bezier(0, 0, 0.2, 1);fill:currentColor;will-change:transform}.mdc-fab .mdc-fab__icon{display:inline-flex;align-items:center;justify-content:center}.mdc-fab--exited{transform:scale(0);opacity:0;transition:opacity 15ms linear 150ms,transform 180ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-fab--exited .mdc-fab__icon{transform:scale(0);transition:transform 135ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mat-mdc-fab,.mat-mdc-mini-fab{background-color:var(--mdc-fab-container-color);--mdc-fab-container-shape:50%;--mdc-fab-icon-size:24px}.mat-mdc-fab .mdc-fab__icon,.mat-mdc-mini-fab .mdc-fab__icon{width:var(--mdc-fab-icon-size);height:var(--mdc-fab-icon-size);font-size:var(--mdc-fab-icon-size)}.mat-mdc-fab:not(:disabled) .mdc-fab__icon,.mat-mdc-mini-fab:not(:disabled) .mdc-fab__icon{color:var(--mdc-fab-icon-color)}.mat-mdc-fab:not(.mdc-fab--extended),.mat-mdc-mini-fab:not(.mdc-fab--extended){border-radius:var(--mdc-fab-container-shape)}.mat-mdc-fab:not(.mdc-fab--extended) .mdc-fab__ripple,.mat-mdc-mini-fab:not(.mdc-fab--extended) .mdc-fab__ripple{border-radius:var(--mdc-fab-container-shape)}.mat-mdc-extended-fab{font-family:var(--mdc-extended-fab-label-text-font);font-size:var(--mdc-extended-fab-label-text-size);font-weight:var(--mdc-extended-fab-label-text-weight);letter-spacing:var(--mdc-extended-fab-label-text-tracking)}.mat-mdc-fab,.mat-mdc-mini-fab{-webkit-tap-highlight-color:rgba(0,0,0,0);box-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);color:var(--mat-mdc-fab-color, inherit);flex-shrink:0}.mat-mdc-fab .mat-mdc-button-ripple,.mat-mdc-fab .mat-mdc-button-persistent-ripple,.mat-mdc-fab .mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab .mat-mdc-button-ripple,.mat-mdc-mini-fab .mat-mdc-button-persistent-ripple,.mat-mdc-mini-fab .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-fab .mat-mdc-button-ripple,.mat-mdc-mini-fab .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-fab .mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab .mat-mdc-button-persistent-ripple::before{content:\\\"\\\";opacity:0;background-color:var(--mat-mdc-button-persistent-ripple-color)}.mat-mdc-fab .mat-ripple-element,.mat-mdc-mini-fab .mat-ripple-element{background-color:var(--mat-mdc-button-ripple-color)}.mat-mdc-fab .mdc-button__label,.mat-mdc-mini-fab .mdc-button__label{z-index:1}.mat-mdc-fab .mat-mdc-focus-indicator,.mat-mdc-mini-fab .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-fab:focus .mat-mdc-focus-indicator::before,.mat-mdc-mini-fab:focus .mat-mdc-focus-indicator::before{content:\\\"\\\"}.mat-mdc-fab .mat-mdc-button-touch-target,.mat-mdc-mini-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}.mat-mdc-fab._mat-animation-noopable,.mat-mdc-mini-fab._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-fab:hover,.mat-mdc-fab:focus,.mat-mdc-mini-fab:hover,.mat-mdc-mini-fab:focus{box-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12)}.mat-mdc-fab:active,.mat-mdc-fab:focus:active,.mat-mdc-mini-fab:active,.mat-mdc-mini-fab:focus:active{box-shadow:0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12)}.mat-mdc-fab[disabled],.mat-mdc-mini-fab[disabled]{cursor:default;pointer-events:none;box-shadow:0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12)}.mat-mdc-fab:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-mini-fab:not(.mdc-ripple-upgraded):focus::before{background:rgba(0,0,0,0);opacity:1}.mat-mdc-fab .mat-icon,.mat-mdc-fab .material-icons,.mat-mdc-mini-fab .mat-icon,.mat-mdc-mini-fab .material-icons{transition:transform 180ms 90ms cubic-bezier(0, 0, 0.2, 1);fill:currentColor;will-change:transform}.mat-mdc-fab .mat-mdc-focus-indicator::before,.mat-mdc-mini-fab .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-mdc-extended-fab>.mat-icon,.mat-mdc-extended-fab>.material-icons{margin-left:calc(12px - 20px);margin-right:12px}[dir=rtl] .mat-mdc-extended-fab>.mat-icon,[dir=rtl] .mat-mdc-extended-fab>.material-icons,.mat-mdc-extended-fab>.mat-icon[dir=rtl],.mat-mdc-extended-fab>.material-icons[dir=rtl]{margin-left:12px;margin-right:calc(12px - 20px)}.mat-mdc-extended-fab .mdc-button__label+.mat-icon,.mat-mdc-extended-fab .mdc-button__label+.material-icons{margin-left:12px;margin-right:calc(12px - 20px)}[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.material-icons,.mat-mdc-extended-fab .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-extended-fab .mdc-button__label+.material-icons[dir=rtl]{margin-left:calc(12px - 20px);margin-right:12px}.mat-mdc-extended-fab .mat-mdc-button-touch-target{width:100%}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatFabButton, [{\n type: Component,\n args: [{\n selector: `button[mat-fab]`,\n inputs: buttonInputs,\n host: {\n ...MAT_BUTTON_HOST,\n '[class.mdc-fab--extended]': 'extended',\n '[class.mat-mdc-extended-fab]': 'extended'\n },\n exportAs: 'matButton',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: \"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\",\n styles: [\".mdc-touch-target-wrapper{display:inline}.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1);background-color:var(--mdc-elevation-overlay-color)}.mdc-fab{position:relative;display:inline-flex;position:relative;align-items:center;justify-content:center;box-sizing:border-box;width:56px;height:56px;padding:0;border:none;fill:currentColor;text-decoration:none;cursor:pointer;user-select:none;-moz-appearance:none;-webkit-appearance:none;overflow:visible;transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1),opacity 15ms linear 30ms,transform 270ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-fab .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-fab[hidden]{display:none}.mdc-fab::-moz-focus-inner{padding:0;border:0}.mdc-fab:hover{box-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12)}.mdc-fab.mdc-ripple-upgraded--background-focused,.mdc-fab:not(.mdc-ripple-upgraded):focus{box-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12)}.mdc-fab .mdc-fab__focus-ring{position:absolute}.mdc-fab.mdc-ripple-upgraded--background-focused .mdc-fab__focus-ring,.mdc-fab:not(.mdc-ripple-upgraded):focus .mdc-fab__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(\\n 100% + 4px\\n );width:calc(\\n 100% + 4px\\n )}@media screen and (forced-colors: active){.mdc-fab.mdc-ripple-upgraded--background-focused .mdc-fab__focus-ring,.mdc-fab:not(.mdc-ripple-upgraded):focus .mdc-fab__focus-ring{border-color:CanvasText}}.mdc-fab.mdc-ripple-upgraded--background-focused .mdc-fab__focus-ring::after,.mdc-fab:not(.mdc-ripple-upgraded):focus .mdc-fab__focus-ring::after{content:\\\"\\\";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-fab.mdc-ripple-upgraded--background-focused .mdc-fab__focus-ring::after,.mdc-fab:not(.mdc-ripple-upgraded):focus .mdc-fab__focus-ring::after{border-color:CanvasText}}.mdc-fab:active,.mdc-fab:focus:active{box-shadow:0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12)}.mdc-fab:active,.mdc-fab:focus{outline:none}.mdc-fab:hover{cursor:pointer}.mdc-fab>svg{width:100%}.mdc-fab--mini{width:40px;height:40px}.mdc-fab--extended{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-button-font-family);font-size:var(--mdc-typography-button-font-size);line-height:var(--mdc-typography-button-line-height);font-weight:var(--mdc-typography-button-font-weight);letter-spacing:var(--mdc-typography-button-letter-spacing);text-decoration:var(--mdc-typography-button-text-decoration);text-transform:var(--mdc-typography-button-text-transform);border-radius:24px;padding-left:20px;padding-right:20px;width:auto;max-width:100%;height:48px;line-height:normal}.mdc-fab--extended .mdc-fab__ripple{border-radius:24px}.mdc-fab--extended .mdc-fab__icon{margin-left:calc(12px - 20px);margin-right:12px}[dir=rtl] .mdc-fab--extended .mdc-fab__icon,.mdc-fab--extended .mdc-fab__icon[dir=rtl]{margin-left:12px;margin-right:calc(12px - 20px)}.mdc-fab--extended .mdc-fab__label+.mdc-fab__icon{margin-left:12px;margin-right:calc(12px - 20px)}[dir=rtl] .mdc-fab--extended .mdc-fab__label+.mdc-fab__icon,.mdc-fab--extended .mdc-fab__label+.mdc-fab__icon[dir=rtl]{margin-left:calc(12px - 20px);margin-right:12px}.mdc-fab--touch{margin-top:4px;margin-bottom:4px;margin-right:4px;margin-left:4px}.mdc-fab--touch .mdc-fab__touch{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}.mdc-fab::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:\\\"\\\";pointer-events:none}@media screen and (forced-colors: active){.mdc-fab::before{border-color:CanvasText}}.mdc-fab__label{justify-content:flex-start;text-overflow:ellipsis;white-space:nowrap;overflow-x:hidden;overflow-y:visible}.mdc-fab__icon{transition:transform 180ms 90ms cubic-bezier(0, 0, 0.2, 1);fill:currentColor;will-change:transform}.mdc-fab .mdc-fab__icon{display:inline-flex;align-items:center;justify-content:center}.mdc-fab--exited{transform:scale(0);opacity:0;transition:opacity 15ms linear 150ms,transform 180ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-fab--exited .mdc-fab__icon{transform:scale(0);transition:transform 135ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mat-mdc-fab,.mat-mdc-mini-fab{background-color:var(--mdc-fab-container-color);--mdc-fab-container-shape:50%;--mdc-fab-icon-size:24px}.mat-mdc-fab .mdc-fab__icon,.mat-mdc-mini-fab .mdc-fab__icon{width:var(--mdc-fab-icon-size);height:var(--mdc-fab-icon-size);font-size:var(--mdc-fab-icon-size)}.mat-mdc-fab:not(:disabled) .mdc-fab__icon,.mat-mdc-mini-fab:not(:disabled) .mdc-fab__icon{color:var(--mdc-fab-icon-color)}.mat-mdc-fab:not(.mdc-fab--extended),.mat-mdc-mini-fab:not(.mdc-fab--extended){border-radius:var(--mdc-fab-container-shape)}.mat-mdc-fab:not(.mdc-fab--extended) .mdc-fab__ripple,.mat-mdc-mini-fab:not(.mdc-fab--extended) .mdc-fab__ripple{border-radius:var(--mdc-fab-container-shape)}.mat-mdc-extended-fab{font-family:var(--mdc-extended-fab-label-text-font);font-size:var(--mdc-extended-fab-label-text-size);font-weight:var(--mdc-extended-fab-label-text-weight);letter-spacing:var(--mdc-extended-fab-label-text-tracking)}.mat-mdc-fab,.mat-mdc-mini-fab{-webkit-tap-highlight-color:rgba(0,0,0,0);box-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);color:var(--mat-mdc-fab-color, inherit);flex-shrink:0}.mat-mdc-fab .mat-mdc-button-ripple,.mat-mdc-fab .mat-mdc-button-persistent-ripple,.mat-mdc-fab .mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab .mat-mdc-button-ripple,.mat-mdc-mini-fab .mat-mdc-button-persistent-ripple,.mat-mdc-mini-fab .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-fab .mat-mdc-button-ripple,.mat-mdc-mini-fab .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-fab .mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab .mat-mdc-button-persistent-ripple::before{content:\\\"\\\";opacity:0;background-color:var(--mat-mdc-button-persistent-ripple-color)}.mat-mdc-fab .mat-ripple-element,.mat-mdc-mini-fab .mat-ripple-element{background-color:var(--mat-mdc-button-ripple-color)}.mat-mdc-fab .mdc-button__label,.mat-mdc-mini-fab .mdc-button__label{z-index:1}.mat-mdc-fab .mat-mdc-focus-indicator,.mat-mdc-mini-fab .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-fab:focus .mat-mdc-focus-indicator::before,.mat-mdc-mini-fab:focus .mat-mdc-focus-indicator::before{content:\\\"\\\"}.mat-mdc-fab .mat-mdc-button-touch-target,.mat-mdc-mini-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}.mat-mdc-fab._mat-animation-noopable,.mat-mdc-mini-fab._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-fab:hover,.mat-mdc-fab:focus,.mat-mdc-mini-fab:hover,.mat-mdc-mini-fab:focus{box-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12)}.mat-mdc-fab:active,.mat-mdc-fab:focus:active,.mat-mdc-mini-fab:active,.mat-mdc-mini-fab:focus:active{box-shadow:0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12)}.mat-mdc-fab[disabled],.mat-mdc-mini-fab[disabled]{cursor:default;pointer-events:none;box-shadow:0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12)}.mat-mdc-fab:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-mini-fab:not(.mdc-ripple-upgraded):focus::before{background:rgba(0,0,0,0);opacity:1}.mat-mdc-fab .mat-icon,.mat-mdc-fab .material-icons,.mat-mdc-mini-fab .mat-icon,.mat-mdc-mini-fab .material-icons{transition:transform 180ms 90ms cubic-bezier(0, 0, 0.2, 1);fill:currentColor;will-change:transform}.mat-mdc-fab .mat-mdc-focus-indicator::before,.mat-mdc-mini-fab .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-mdc-extended-fab>.mat-icon,.mat-mdc-extended-fab>.material-icons{margin-left:calc(12px - 20px);margin-right:12px}[dir=rtl] .mat-mdc-extended-fab>.mat-icon,[dir=rtl] .mat-mdc-extended-fab>.material-icons,.mat-mdc-extended-fab>.mat-icon[dir=rtl],.mat-mdc-extended-fab>.material-icons[dir=rtl]{margin-left:12px;margin-right:calc(12px - 20px)}.mat-mdc-extended-fab .mdc-button__label+.mat-icon,.mat-mdc-extended-fab .mdc-button__label+.material-icons{margin-left:12px;margin-right:calc(12px - 20px)}[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.material-icons,.mat-mdc-extended-fab .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-extended-fab .mdc-button__label+.material-icons[dir=rtl]{margin-left:calc(12px - 20px);margin-right:12px}.mat-mdc-extended-fab .mat-mdc-button-touch-target{width:100%}\"]\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i1.Platform\n }, {\n type: i0.NgZone\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_FAB_DEFAULT_OPTIONS]\n }]\n }];\n }, null);\n})();\n/**\n * Material Design mini floating action button (FAB) component. These buttons represent the primary\n * or most common action for users to interact with.\n * See https://material.io/components/buttons-floating-action-button/\n */\nclass MatMiniFabButton extends MatButtonBase {\n constructor(elementRef, platform, ngZone, animationMode, _options) {\n super(elementRef, platform, ngZone, animationMode);\n this._options = _options;\n this._isFab = true;\n this._options = this._options || defaults;\n this.color = this.defaultColor = this._options.color || defaults.color;\n }\n static {\n this.ɵfac = function MatMiniFabButton_Factory(ɵt) {\n return new (ɵt || MatMiniFabButton)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8), i0.ɵɵdirectiveInject(MAT_FAB_DEFAULT_OPTIONS, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatMiniFabButton,\n selectors: [[\"button\", \"mat-mini-fab\", \"\"]],\n hostVars: 7,\n hostBindings: function MatMiniFabButton_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"disabled\", ctx.disabled || null);\n i0.ɵɵclassProp(\"_mat-animation-noopable\", ctx._animationMode === \"NoopAnimations\")(\"mat-unthemed\", !ctx.color)(\"mat-mdc-button-base\", true);\n }\n },\n inputs: {\n disabled: \"disabled\",\n disableRipple: \"disableRipple\",\n color: \"color\"\n },\n exportAs: [\"matButton\"],\n features: [i0.ɵɵInheritDefinitionFeature],\n attrs: _c6,\n ngContentSelectors: _c2,\n decls: 7,\n vars: 4,\n consts: [[1, \"mat-mdc-button-persistent-ripple\"], [1, \"mdc-button__label\"], [1, \"mat-mdc-focus-indicator\"], [1, \"mat-mdc-button-touch-target\"]],\n template: function MatMiniFabButton_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c1);\n i0.ɵɵelement(0, \"span\", 0);\n i0.ɵɵprojection(1);\n i0.ɵɵelementStart(2, \"span\", 1);\n i0.ɵɵprojection(3, 1);\n i0.ɵɵelementEnd();\n i0.ɵɵprojection(4, 2);\n i0.ɵɵelement(5, \"span\", 2)(6, \"span\", 3);\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"mdc-button__ripple\", !ctx._isFab)(\"mdc-fab__ripple\", ctx._isFab);\n }\n },\n styles: [_c7],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatMiniFabButton, [{\n type: Component,\n args: [{\n selector: `button[mat-mini-fab]`,\n inputs: MAT_BUTTON_INPUTS,\n host: MAT_BUTTON_HOST,\n exportAs: 'matButton',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: \"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\",\n styles: [\".mdc-touch-target-wrapper{display:inline}.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1);background-color:var(--mdc-elevation-overlay-color)}.mdc-fab{position:relative;display:inline-flex;position:relative;align-items:center;justify-content:center;box-sizing:border-box;width:56px;height:56px;padding:0;border:none;fill:currentColor;text-decoration:none;cursor:pointer;user-select:none;-moz-appearance:none;-webkit-appearance:none;overflow:visible;transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1),opacity 15ms linear 30ms,transform 270ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-fab .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-fab[hidden]{display:none}.mdc-fab::-moz-focus-inner{padding:0;border:0}.mdc-fab:hover{box-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12)}.mdc-fab.mdc-ripple-upgraded--background-focused,.mdc-fab:not(.mdc-ripple-upgraded):focus{box-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12)}.mdc-fab .mdc-fab__focus-ring{position:absolute}.mdc-fab.mdc-ripple-upgraded--background-focused .mdc-fab__focus-ring,.mdc-fab:not(.mdc-ripple-upgraded):focus .mdc-fab__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(\\n 100% + 4px\\n );width:calc(\\n 100% + 4px\\n )}@media screen and (forced-colors: active){.mdc-fab.mdc-ripple-upgraded--background-focused .mdc-fab__focus-ring,.mdc-fab:not(.mdc-ripple-upgraded):focus .mdc-fab__focus-ring{border-color:CanvasText}}.mdc-fab.mdc-ripple-upgraded--background-focused .mdc-fab__focus-ring::after,.mdc-fab:not(.mdc-ripple-upgraded):focus .mdc-fab__focus-ring::after{content:\\\"\\\";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-fab.mdc-ripple-upgraded--background-focused .mdc-fab__focus-ring::after,.mdc-fab:not(.mdc-ripple-upgraded):focus .mdc-fab__focus-ring::after{border-color:CanvasText}}.mdc-fab:active,.mdc-fab:focus:active{box-shadow:0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12)}.mdc-fab:active,.mdc-fab:focus{outline:none}.mdc-fab:hover{cursor:pointer}.mdc-fab>svg{width:100%}.mdc-fab--mini{width:40px;height:40px}.mdc-fab--extended{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-button-font-family);font-size:var(--mdc-typography-button-font-size);line-height:var(--mdc-typography-button-line-height);font-weight:var(--mdc-typography-button-font-weight);letter-spacing:var(--mdc-typography-button-letter-spacing);text-decoration:var(--mdc-typography-button-text-decoration);text-transform:var(--mdc-typography-button-text-transform);border-radius:24px;padding-left:20px;padding-right:20px;width:auto;max-width:100%;height:48px;line-height:normal}.mdc-fab--extended .mdc-fab__ripple{border-radius:24px}.mdc-fab--extended .mdc-fab__icon{margin-left:calc(12px - 20px);margin-right:12px}[dir=rtl] .mdc-fab--extended .mdc-fab__icon,.mdc-fab--extended .mdc-fab__icon[dir=rtl]{margin-left:12px;margin-right:calc(12px - 20px)}.mdc-fab--extended .mdc-fab__label+.mdc-fab__icon{margin-left:12px;margin-right:calc(12px - 20px)}[dir=rtl] .mdc-fab--extended .mdc-fab__label+.mdc-fab__icon,.mdc-fab--extended .mdc-fab__label+.mdc-fab__icon[dir=rtl]{margin-left:calc(12px - 20px);margin-right:12px}.mdc-fab--touch{margin-top:4px;margin-bottom:4px;margin-right:4px;margin-left:4px}.mdc-fab--touch .mdc-fab__touch{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}.mdc-fab::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:\\\"\\\";pointer-events:none}@media screen and (forced-colors: active){.mdc-fab::before{border-color:CanvasText}}.mdc-fab__label{justify-content:flex-start;text-overflow:ellipsis;white-space:nowrap;overflow-x:hidden;overflow-y:visible}.mdc-fab__icon{transition:transform 180ms 90ms cubic-bezier(0, 0, 0.2, 1);fill:currentColor;will-change:transform}.mdc-fab .mdc-fab__icon{display:inline-flex;align-items:center;justify-content:center}.mdc-fab--exited{transform:scale(0);opacity:0;transition:opacity 15ms linear 150ms,transform 180ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-fab--exited .mdc-fab__icon{transform:scale(0);transition:transform 135ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mat-mdc-fab,.mat-mdc-mini-fab{background-color:var(--mdc-fab-container-color);--mdc-fab-container-shape:50%;--mdc-fab-icon-size:24px}.mat-mdc-fab .mdc-fab__icon,.mat-mdc-mini-fab .mdc-fab__icon{width:var(--mdc-fab-icon-size);height:var(--mdc-fab-icon-size);font-size:var(--mdc-fab-icon-size)}.mat-mdc-fab:not(:disabled) .mdc-fab__icon,.mat-mdc-mini-fab:not(:disabled) .mdc-fab__icon{color:var(--mdc-fab-icon-color)}.mat-mdc-fab:not(.mdc-fab--extended),.mat-mdc-mini-fab:not(.mdc-fab--extended){border-radius:var(--mdc-fab-container-shape)}.mat-mdc-fab:not(.mdc-fab--extended) .mdc-fab__ripple,.mat-mdc-mini-fab:not(.mdc-fab--extended) .mdc-fab__ripple{border-radius:var(--mdc-fab-container-shape)}.mat-mdc-extended-fab{font-family:var(--mdc-extended-fab-label-text-font);font-size:var(--mdc-extended-fab-label-text-size);font-weight:var(--mdc-extended-fab-label-text-weight);letter-spacing:var(--mdc-extended-fab-label-text-tracking)}.mat-mdc-fab,.mat-mdc-mini-fab{-webkit-tap-highlight-color:rgba(0,0,0,0);box-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);color:var(--mat-mdc-fab-color, inherit);flex-shrink:0}.mat-mdc-fab .mat-mdc-button-ripple,.mat-mdc-fab .mat-mdc-button-persistent-ripple,.mat-mdc-fab .mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab .mat-mdc-button-ripple,.mat-mdc-mini-fab .mat-mdc-button-persistent-ripple,.mat-mdc-mini-fab .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-fab .mat-mdc-button-ripple,.mat-mdc-mini-fab .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-fab .mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab .mat-mdc-button-persistent-ripple::before{content:\\\"\\\";opacity:0;background-color:var(--mat-mdc-button-persistent-ripple-color)}.mat-mdc-fab .mat-ripple-element,.mat-mdc-mini-fab .mat-ripple-element{background-color:var(--mat-mdc-button-ripple-color)}.mat-mdc-fab .mdc-button__label,.mat-mdc-mini-fab .mdc-button__label{z-index:1}.mat-mdc-fab .mat-mdc-focus-indicator,.mat-mdc-mini-fab .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-fab:focus .mat-mdc-focus-indicator::before,.mat-mdc-mini-fab:focus .mat-mdc-focus-indicator::before{content:\\\"\\\"}.mat-mdc-fab .mat-mdc-button-touch-target,.mat-mdc-mini-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}.mat-mdc-fab._mat-animation-noopable,.mat-mdc-mini-fab._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-fab:hover,.mat-mdc-fab:focus,.mat-mdc-mini-fab:hover,.mat-mdc-mini-fab:focus{box-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12)}.mat-mdc-fab:active,.mat-mdc-fab:focus:active,.mat-mdc-mini-fab:active,.mat-mdc-mini-fab:focus:active{box-shadow:0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12)}.mat-mdc-fab[disabled],.mat-mdc-mini-fab[disabled]{cursor:default;pointer-events:none;box-shadow:0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12)}.mat-mdc-fab:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-mini-fab:not(.mdc-ripple-upgraded):focus::before{background:rgba(0,0,0,0);opacity:1}.mat-mdc-fab .mat-icon,.mat-mdc-fab .material-icons,.mat-mdc-mini-fab .mat-icon,.mat-mdc-mini-fab .material-icons{transition:transform 180ms 90ms cubic-bezier(0, 0, 0.2, 1);fill:currentColor;will-change:transform}.mat-mdc-fab .mat-mdc-focus-indicator::before,.mat-mdc-mini-fab .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-mdc-extended-fab>.mat-icon,.mat-mdc-extended-fab>.material-icons{margin-left:calc(12px - 20px);margin-right:12px}[dir=rtl] .mat-mdc-extended-fab>.mat-icon,[dir=rtl] .mat-mdc-extended-fab>.material-icons,.mat-mdc-extended-fab>.mat-icon[dir=rtl],.mat-mdc-extended-fab>.material-icons[dir=rtl]{margin-left:12px;margin-right:calc(12px - 20px)}.mat-mdc-extended-fab .mdc-button__label+.mat-icon,.mat-mdc-extended-fab .mdc-button__label+.material-icons{margin-left:12px;margin-right:calc(12px - 20px)}[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.material-icons,.mat-mdc-extended-fab .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-extended-fab .mdc-button__label+.material-icons[dir=rtl]{margin-left:calc(12px - 20px);margin-right:12px}.mat-mdc-extended-fab .mat-mdc-button-touch-target{width:100%}\"]\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i1.Platform\n }, {\n type: i0.NgZone\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_FAB_DEFAULT_OPTIONS]\n }]\n }];\n }, null);\n})();\n/**\n * Material Design floating action button (FAB) component for anchor elements. Anchor elements\n * are used to provide links for the user to navigate across different routes or pages.\n * See https://material.io/components/buttons-floating-action-button/\n *\n * The `MatFabAnchor` class has two appearances: normal and extended.\n */\nclass MatFabAnchor extends MatAnchor {\n get extended() {\n return this._extended;\n }\n set extended(value) {\n this._extended = coerceBooleanProperty(value);\n }\n constructor(elementRef, platform, ngZone, animationMode, _options) {\n super(elementRef, platform, ngZone, animationMode);\n this._options = _options;\n this._isFab = true;\n this._options = this._options || defaults;\n this.color = this.defaultColor = this._options.color || defaults.color;\n }\n static {\n this.ɵfac = function MatFabAnchor_Factory(ɵt) {\n return new (ɵt || MatFabAnchor)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8), i0.ɵɵdirectiveInject(MAT_FAB_DEFAULT_OPTIONS, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatFabAnchor,\n selectors: [[\"a\", \"mat-fab\", \"\"]],\n hostVars: 13,\n hostBindings: function MatFabAnchor_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"disabled\", ctx.disabled || null)(\"tabindex\", ctx.disabled ? -1 : ctx.tabIndex)(\"aria-disabled\", ctx.disabled.toString());\n i0.ɵɵclassProp(\"_mat-animation-noopable\", ctx._animationMode === \"NoopAnimations\")(\"mat-unthemed\", !ctx.color)(\"mat-mdc-button-base\", true)(\"mdc-fab--extended\", ctx.extended)(\"mat-mdc-extended-fab\", ctx.extended);\n }\n },\n inputs: {\n disabled: \"disabled\",\n disableRipple: \"disableRipple\",\n color: \"color\",\n tabIndex: \"tabIndex\",\n extended: \"extended\"\n },\n exportAs: [\"matButton\", \"matAnchor\"],\n features: [i0.ɵɵInheritDefinitionFeature],\n attrs: _c5,\n ngContentSelectors: _c2,\n decls: 7,\n vars: 4,\n consts: [[1, \"mat-mdc-button-persistent-ripple\"], [1, \"mdc-button__label\"], [1, \"mat-mdc-focus-indicator\"], [1, \"mat-mdc-button-touch-target\"]],\n template: function MatFabAnchor_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c1);\n i0.ɵɵelement(0, \"span\", 0);\n i0.ɵɵprojection(1);\n i0.ɵɵelementStart(2, \"span\", 1);\n i0.ɵɵprojection(3, 1);\n i0.ɵɵelementEnd();\n i0.ɵɵprojection(4, 2);\n i0.ɵɵelement(5, \"span\", 2)(6, \"span\", 3);\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"mdc-button__ripple\", !ctx._isFab)(\"mdc-fab__ripple\", ctx._isFab);\n }\n },\n styles: [_c7],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatFabAnchor, [{\n type: Component,\n args: [{\n selector: `a[mat-fab]`,\n inputs: buttonInputs,\n host: {\n ...MAT_ANCHOR_HOST,\n '[class.mdc-fab--extended]': 'extended',\n '[class.mat-mdc-extended-fab]': 'extended'\n },\n exportAs: 'matButton, matAnchor',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: \"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\",\n styles: [\".mdc-touch-target-wrapper{display:inline}.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1);background-color:var(--mdc-elevation-overlay-color)}.mdc-fab{position:relative;display:inline-flex;position:relative;align-items:center;justify-content:center;box-sizing:border-box;width:56px;height:56px;padding:0;border:none;fill:currentColor;text-decoration:none;cursor:pointer;user-select:none;-moz-appearance:none;-webkit-appearance:none;overflow:visible;transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1),opacity 15ms linear 30ms,transform 270ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-fab .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-fab[hidden]{display:none}.mdc-fab::-moz-focus-inner{padding:0;border:0}.mdc-fab:hover{box-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12)}.mdc-fab.mdc-ripple-upgraded--background-focused,.mdc-fab:not(.mdc-ripple-upgraded):focus{box-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12)}.mdc-fab .mdc-fab__focus-ring{position:absolute}.mdc-fab.mdc-ripple-upgraded--background-focused .mdc-fab__focus-ring,.mdc-fab:not(.mdc-ripple-upgraded):focus .mdc-fab__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(\\n 100% + 4px\\n );width:calc(\\n 100% + 4px\\n )}@media screen and (forced-colors: active){.mdc-fab.mdc-ripple-upgraded--background-focused .mdc-fab__focus-ring,.mdc-fab:not(.mdc-ripple-upgraded):focus .mdc-fab__focus-ring{border-color:CanvasText}}.mdc-fab.mdc-ripple-upgraded--background-focused .mdc-fab__focus-ring::after,.mdc-fab:not(.mdc-ripple-upgraded):focus .mdc-fab__focus-ring::after{content:\\\"\\\";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-fab.mdc-ripple-upgraded--background-focused .mdc-fab__focus-ring::after,.mdc-fab:not(.mdc-ripple-upgraded):focus .mdc-fab__focus-ring::after{border-color:CanvasText}}.mdc-fab:active,.mdc-fab:focus:active{box-shadow:0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12)}.mdc-fab:active,.mdc-fab:focus{outline:none}.mdc-fab:hover{cursor:pointer}.mdc-fab>svg{width:100%}.mdc-fab--mini{width:40px;height:40px}.mdc-fab--extended{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-button-font-family);font-size:var(--mdc-typography-button-font-size);line-height:var(--mdc-typography-button-line-height);font-weight:var(--mdc-typography-button-font-weight);letter-spacing:var(--mdc-typography-button-letter-spacing);text-decoration:var(--mdc-typography-button-text-decoration);text-transform:var(--mdc-typography-button-text-transform);border-radius:24px;padding-left:20px;padding-right:20px;width:auto;max-width:100%;height:48px;line-height:normal}.mdc-fab--extended .mdc-fab__ripple{border-radius:24px}.mdc-fab--extended .mdc-fab__icon{margin-left:calc(12px - 20px);margin-right:12px}[dir=rtl] .mdc-fab--extended .mdc-fab__icon,.mdc-fab--extended .mdc-fab__icon[dir=rtl]{margin-left:12px;margin-right:calc(12px - 20px)}.mdc-fab--extended .mdc-fab__label+.mdc-fab__icon{margin-left:12px;margin-right:calc(12px - 20px)}[dir=rtl] .mdc-fab--extended .mdc-fab__label+.mdc-fab__icon,.mdc-fab--extended .mdc-fab__label+.mdc-fab__icon[dir=rtl]{margin-left:calc(12px - 20px);margin-right:12px}.mdc-fab--touch{margin-top:4px;margin-bottom:4px;margin-right:4px;margin-left:4px}.mdc-fab--touch .mdc-fab__touch{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}.mdc-fab::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:\\\"\\\";pointer-events:none}@media screen and (forced-colors: active){.mdc-fab::before{border-color:CanvasText}}.mdc-fab__label{justify-content:flex-start;text-overflow:ellipsis;white-space:nowrap;overflow-x:hidden;overflow-y:visible}.mdc-fab__icon{transition:transform 180ms 90ms cubic-bezier(0, 0, 0.2, 1);fill:currentColor;will-change:transform}.mdc-fab .mdc-fab__icon{display:inline-flex;align-items:center;justify-content:center}.mdc-fab--exited{transform:scale(0);opacity:0;transition:opacity 15ms linear 150ms,transform 180ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-fab--exited .mdc-fab__icon{transform:scale(0);transition:transform 135ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mat-mdc-fab,.mat-mdc-mini-fab{background-color:var(--mdc-fab-container-color);--mdc-fab-container-shape:50%;--mdc-fab-icon-size:24px}.mat-mdc-fab .mdc-fab__icon,.mat-mdc-mini-fab .mdc-fab__icon{width:var(--mdc-fab-icon-size);height:var(--mdc-fab-icon-size);font-size:var(--mdc-fab-icon-size)}.mat-mdc-fab:not(:disabled) .mdc-fab__icon,.mat-mdc-mini-fab:not(:disabled) .mdc-fab__icon{color:var(--mdc-fab-icon-color)}.mat-mdc-fab:not(.mdc-fab--extended),.mat-mdc-mini-fab:not(.mdc-fab--extended){border-radius:var(--mdc-fab-container-shape)}.mat-mdc-fab:not(.mdc-fab--extended) .mdc-fab__ripple,.mat-mdc-mini-fab:not(.mdc-fab--extended) .mdc-fab__ripple{border-radius:var(--mdc-fab-container-shape)}.mat-mdc-extended-fab{font-family:var(--mdc-extended-fab-label-text-font);font-size:var(--mdc-extended-fab-label-text-size);font-weight:var(--mdc-extended-fab-label-text-weight);letter-spacing:var(--mdc-extended-fab-label-text-tracking)}.mat-mdc-fab,.mat-mdc-mini-fab{-webkit-tap-highlight-color:rgba(0,0,0,0);box-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);color:var(--mat-mdc-fab-color, inherit);flex-shrink:0}.mat-mdc-fab .mat-mdc-button-ripple,.mat-mdc-fab .mat-mdc-button-persistent-ripple,.mat-mdc-fab .mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab .mat-mdc-button-ripple,.mat-mdc-mini-fab .mat-mdc-button-persistent-ripple,.mat-mdc-mini-fab .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-fab .mat-mdc-button-ripple,.mat-mdc-mini-fab .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-fab .mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab .mat-mdc-button-persistent-ripple::before{content:\\\"\\\";opacity:0;background-color:var(--mat-mdc-button-persistent-ripple-color)}.mat-mdc-fab .mat-ripple-element,.mat-mdc-mini-fab .mat-ripple-element{background-color:var(--mat-mdc-button-ripple-color)}.mat-mdc-fab .mdc-button__label,.mat-mdc-mini-fab .mdc-button__label{z-index:1}.mat-mdc-fab .mat-mdc-focus-indicator,.mat-mdc-mini-fab .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-fab:focus .mat-mdc-focus-indicator::before,.mat-mdc-mini-fab:focus .mat-mdc-focus-indicator::before{content:\\\"\\\"}.mat-mdc-fab .mat-mdc-button-touch-target,.mat-mdc-mini-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}.mat-mdc-fab._mat-animation-noopable,.mat-mdc-mini-fab._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-fab:hover,.mat-mdc-fab:focus,.mat-mdc-mini-fab:hover,.mat-mdc-mini-fab:focus{box-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12)}.mat-mdc-fab:active,.mat-mdc-fab:focus:active,.mat-mdc-mini-fab:active,.mat-mdc-mini-fab:focus:active{box-shadow:0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12)}.mat-mdc-fab[disabled],.mat-mdc-mini-fab[disabled]{cursor:default;pointer-events:none;box-shadow:0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12)}.mat-mdc-fab:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-mini-fab:not(.mdc-ripple-upgraded):focus::before{background:rgba(0,0,0,0);opacity:1}.mat-mdc-fab .mat-icon,.mat-mdc-fab .material-icons,.mat-mdc-mini-fab .mat-icon,.mat-mdc-mini-fab .material-icons{transition:transform 180ms 90ms cubic-bezier(0, 0, 0.2, 1);fill:currentColor;will-change:transform}.mat-mdc-fab .mat-mdc-focus-indicator::before,.mat-mdc-mini-fab .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-mdc-extended-fab>.mat-icon,.mat-mdc-extended-fab>.material-icons{margin-left:calc(12px - 20px);margin-right:12px}[dir=rtl] .mat-mdc-extended-fab>.mat-icon,[dir=rtl] .mat-mdc-extended-fab>.material-icons,.mat-mdc-extended-fab>.mat-icon[dir=rtl],.mat-mdc-extended-fab>.material-icons[dir=rtl]{margin-left:12px;margin-right:calc(12px - 20px)}.mat-mdc-extended-fab .mdc-button__label+.mat-icon,.mat-mdc-extended-fab .mdc-button__label+.material-icons{margin-left:12px;margin-right:calc(12px - 20px)}[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.material-icons,.mat-mdc-extended-fab .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-extended-fab .mdc-button__label+.material-icons[dir=rtl]{margin-left:calc(12px - 20px);margin-right:12px}.mat-mdc-extended-fab .mat-mdc-button-touch-target{width:100%}\"]\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i1.Platform\n }, {\n type: i0.NgZone\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_FAB_DEFAULT_OPTIONS]\n }]\n }];\n }, null);\n})();\n/**\n * Material Design mini floating action button (FAB) component for anchor elements. Anchor elements\n * are used to provide links for the user to navigate across different routes or pages.\n * See https://material.io/components/buttons-floating-action-button/\n */\nclass MatMiniFabAnchor extends MatAnchor {\n constructor(elementRef, platform, ngZone, animationMode, _options) {\n super(elementRef, platform, ngZone, animationMode);\n this._options = _options;\n this._isFab = true;\n this._options = this._options || defaults;\n this.color = this.defaultColor = this._options.color || defaults.color;\n }\n static {\n this.ɵfac = function MatMiniFabAnchor_Factory(ɵt) {\n return new (ɵt || MatMiniFabAnchor)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8), i0.ɵɵdirectiveInject(MAT_FAB_DEFAULT_OPTIONS, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatMiniFabAnchor,\n selectors: [[\"a\", \"mat-mini-fab\", \"\"]],\n hostVars: 9,\n hostBindings: function MatMiniFabAnchor_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"disabled\", ctx.disabled || null)(\"tabindex\", ctx.disabled ? -1 : ctx.tabIndex)(\"aria-disabled\", ctx.disabled.toString());\n i0.ɵɵclassProp(\"_mat-animation-noopable\", ctx._animationMode === \"NoopAnimations\")(\"mat-unthemed\", !ctx.color)(\"mat-mdc-button-base\", true);\n }\n },\n inputs: {\n disabled: \"disabled\",\n disableRipple: \"disableRipple\",\n color: \"color\",\n tabIndex: \"tabIndex\"\n },\n exportAs: [\"matButton\", \"matAnchor\"],\n features: [i0.ɵɵInheritDefinitionFeature],\n attrs: _c6,\n ngContentSelectors: _c2,\n decls: 7,\n vars: 4,\n consts: [[1, \"mat-mdc-button-persistent-ripple\"], [1, \"mdc-button__label\"], [1, \"mat-mdc-focus-indicator\"], [1, \"mat-mdc-button-touch-target\"]],\n template: function MatMiniFabAnchor_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c1);\n i0.ɵɵelement(0, \"span\", 0);\n i0.ɵɵprojection(1);\n i0.ɵɵelementStart(2, \"span\", 1);\n i0.ɵɵprojection(3, 1);\n i0.ɵɵelementEnd();\n i0.ɵɵprojection(4, 2);\n i0.ɵɵelement(5, \"span\", 2)(6, \"span\", 3);\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"mdc-button__ripple\", !ctx._isFab)(\"mdc-fab__ripple\", ctx._isFab);\n }\n },\n styles: [_c7],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatMiniFabAnchor, [{\n type: Component,\n args: [{\n selector: `a[mat-mini-fab]`,\n inputs: MAT_ANCHOR_INPUTS,\n host: MAT_ANCHOR_HOST,\n exportAs: 'matButton, matAnchor',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: \"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\",\n styles: [\".mdc-touch-target-wrapper{display:inline}.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1);background-color:var(--mdc-elevation-overlay-color)}.mdc-fab{position:relative;display:inline-flex;position:relative;align-items:center;justify-content:center;box-sizing:border-box;width:56px;height:56px;padding:0;border:none;fill:currentColor;text-decoration:none;cursor:pointer;user-select:none;-moz-appearance:none;-webkit-appearance:none;overflow:visible;transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1),opacity 15ms linear 30ms,transform 270ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-fab .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-fab[hidden]{display:none}.mdc-fab::-moz-focus-inner{padding:0;border:0}.mdc-fab:hover{box-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12)}.mdc-fab.mdc-ripple-upgraded--background-focused,.mdc-fab:not(.mdc-ripple-upgraded):focus{box-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12)}.mdc-fab .mdc-fab__focus-ring{position:absolute}.mdc-fab.mdc-ripple-upgraded--background-focused .mdc-fab__focus-ring,.mdc-fab:not(.mdc-ripple-upgraded):focus .mdc-fab__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(\\n 100% + 4px\\n );width:calc(\\n 100% + 4px\\n )}@media screen and (forced-colors: active){.mdc-fab.mdc-ripple-upgraded--background-focused .mdc-fab__focus-ring,.mdc-fab:not(.mdc-ripple-upgraded):focus .mdc-fab__focus-ring{border-color:CanvasText}}.mdc-fab.mdc-ripple-upgraded--background-focused .mdc-fab__focus-ring::after,.mdc-fab:not(.mdc-ripple-upgraded):focus .mdc-fab__focus-ring::after{content:\\\"\\\";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-fab.mdc-ripple-upgraded--background-focused .mdc-fab__focus-ring::after,.mdc-fab:not(.mdc-ripple-upgraded):focus .mdc-fab__focus-ring::after{border-color:CanvasText}}.mdc-fab:active,.mdc-fab:focus:active{box-shadow:0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12)}.mdc-fab:active,.mdc-fab:focus{outline:none}.mdc-fab:hover{cursor:pointer}.mdc-fab>svg{width:100%}.mdc-fab--mini{width:40px;height:40px}.mdc-fab--extended{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mdc-typography-button-font-family);font-size:var(--mdc-typography-button-font-size);line-height:var(--mdc-typography-button-line-height);font-weight:var(--mdc-typography-button-font-weight);letter-spacing:var(--mdc-typography-button-letter-spacing);text-decoration:var(--mdc-typography-button-text-decoration);text-transform:var(--mdc-typography-button-text-transform);border-radius:24px;padding-left:20px;padding-right:20px;width:auto;max-width:100%;height:48px;line-height:normal}.mdc-fab--extended .mdc-fab__ripple{border-radius:24px}.mdc-fab--extended .mdc-fab__icon{margin-left:calc(12px - 20px);margin-right:12px}[dir=rtl] .mdc-fab--extended .mdc-fab__icon,.mdc-fab--extended .mdc-fab__icon[dir=rtl]{margin-left:12px;margin-right:calc(12px - 20px)}.mdc-fab--extended .mdc-fab__label+.mdc-fab__icon{margin-left:12px;margin-right:calc(12px - 20px)}[dir=rtl] .mdc-fab--extended .mdc-fab__label+.mdc-fab__icon,.mdc-fab--extended .mdc-fab__label+.mdc-fab__icon[dir=rtl]{margin-left:calc(12px - 20px);margin-right:12px}.mdc-fab--touch{margin-top:4px;margin-bottom:4px;margin-right:4px;margin-left:4px}.mdc-fab--touch .mdc-fab__touch{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}.mdc-fab::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:\\\"\\\";pointer-events:none}@media screen and (forced-colors: active){.mdc-fab::before{border-color:CanvasText}}.mdc-fab__label{justify-content:flex-start;text-overflow:ellipsis;white-space:nowrap;overflow-x:hidden;overflow-y:visible}.mdc-fab__icon{transition:transform 180ms 90ms cubic-bezier(0, 0, 0.2, 1);fill:currentColor;will-change:transform}.mdc-fab .mdc-fab__icon{display:inline-flex;align-items:center;justify-content:center}.mdc-fab--exited{transform:scale(0);opacity:0;transition:opacity 15ms linear 150ms,transform 180ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-fab--exited .mdc-fab__icon{transform:scale(0);transition:transform 135ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mat-mdc-fab,.mat-mdc-mini-fab{background-color:var(--mdc-fab-container-color);--mdc-fab-container-shape:50%;--mdc-fab-icon-size:24px}.mat-mdc-fab .mdc-fab__icon,.mat-mdc-mini-fab .mdc-fab__icon{width:var(--mdc-fab-icon-size);height:var(--mdc-fab-icon-size);font-size:var(--mdc-fab-icon-size)}.mat-mdc-fab:not(:disabled) .mdc-fab__icon,.mat-mdc-mini-fab:not(:disabled) .mdc-fab__icon{color:var(--mdc-fab-icon-color)}.mat-mdc-fab:not(.mdc-fab--extended),.mat-mdc-mini-fab:not(.mdc-fab--extended){border-radius:var(--mdc-fab-container-shape)}.mat-mdc-fab:not(.mdc-fab--extended) .mdc-fab__ripple,.mat-mdc-mini-fab:not(.mdc-fab--extended) .mdc-fab__ripple{border-radius:var(--mdc-fab-container-shape)}.mat-mdc-extended-fab{font-family:var(--mdc-extended-fab-label-text-font);font-size:var(--mdc-extended-fab-label-text-size);font-weight:var(--mdc-extended-fab-label-text-weight);letter-spacing:var(--mdc-extended-fab-label-text-tracking)}.mat-mdc-fab,.mat-mdc-mini-fab{-webkit-tap-highlight-color:rgba(0,0,0,0);box-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);color:var(--mat-mdc-fab-color, inherit);flex-shrink:0}.mat-mdc-fab .mat-mdc-button-ripple,.mat-mdc-fab .mat-mdc-button-persistent-ripple,.mat-mdc-fab .mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab .mat-mdc-button-ripple,.mat-mdc-mini-fab .mat-mdc-button-persistent-ripple,.mat-mdc-mini-fab .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-fab .mat-mdc-button-ripple,.mat-mdc-mini-fab .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-fab .mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab .mat-mdc-button-persistent-ripple::before{content:\\\"\\\";opacity:0;background-color:var(--mat-mdc-button-persistent-ripple-color)}.mat-mdc-fab .mat-ripple-element,.mat-mdc-mini-fab .mat-ripple-element{background-color:var(--mat-mdc-button-ripple-color)}.mat-mdc-fab .mdc-button__label,.mat-mdc-mini-fab .mdc-button__label{z-index:1}.mat-mdc-fab .mat-mdc-focus-indicator,.mat-mdc-mini-fab .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-fab:focus .mat-mdc-focus-indicator::before,.mat-mdc-mini-fab:focus .mat-mdc-focus-indicator::before{content:\\\"\\\"}.mat-mdc-fab .mat-mdc-button-touch-target,.mat-mdc-mini-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}.mat-mdc-fab._mat-animation-noopable,.mat-mdc-mini-fab._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-fab:hover,.mat-mdc-fab:focus,.mat-mdc-mini-fab:hover,.mat-mdc-mini-fab:focus{box-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12)}.mat-mdc-fab:active,.mat-mdc-fab:focus:active,.mat-mdc-mini-fab:active,.mat-mdc-mini-fab:focus:active{box-shadow:0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12)}.mat-mdc-fab[disabled],.mat-mdc-mini-fab[disabled]{cursor:default;pointer-events:none;box-shadow:0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12)}.mat-mdc-fab:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-mini-fab:not(.mdc-ripple-upgraded):focus::before{background:rgba(0,0,0,0);opacity:1}.mat-mdc-fab .mat-icon,.mat-mdc-fab .material-icons,.mat-mdc-mini-fab .mat-icon,.mat-mdc-mini-fab .material-icons{transition:transform 180ms 90ms cubic-bezier(0, 0, 0.2, 1);fill:currentColor;will-change:transform}.mat-mdc-fab .mat-mdc-focus-indicator::before,.mat-mdc-mini-fab .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-mdc-extended-fab>.mat-icon,.mat-mdc-extended-fab>.material-icons{margin-left:calc(12px - 20px);margin-right:12px}[dir=rtl] .mat-mdc-extended-fab>.mat-icon,[dir=rtl] .mat-mdc-extended-fab>.material-icons,.mat-mdc-extended-fab>.mat-icon[dir=rtl],.mat-mdc-extended-fab>.material-icons[dir=rtl]{margin-left:12px;margin-right:calc(12px - 20px)}.mat-mdc-extended-fab .mdc-button__label+.mat-icon,.mat-mdc-extended-fab .mdc-button__label+.material-icons{margin-left:12px;margin-right:calc(12px - 20px)}[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.material-icons,.mat-mdc-extended-fab .mdc-button__label+.mat-icon[dir=rtl],.mat-mdc-extended-fab .mdc-button__label+.material-icons[dir=rtl]{margin-left:calc(12px - 20px);margin-right:12px}.mat-mdc-extended-fab .mat-mdc-button-touch-target{width:100%}\"]\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i1.Platform\n }, {\n type: i0.NgZone\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_FAB_DEFAULT_OPTIONS]\n }]\n }];\n }, null);\n})();\n\n/**\n * Material Design icon button component. This type of button displays a single interactive icon for\n * users to perform an action.\n * See https://material.io/develop/web/components/buttons/icon-buttons/\n */\nclass MatIconButton extends MatButtonBase {\n constructor(elementRef, platform, ngZone, animationMode) {\n super(elementRef, platform, ngZone, animationMode);\n this._rippleLoader.configureRipple(this._elementRef.nativeElement, {\n centered: true\n });\n }\n static {\n this.ɵfac = function MatIconButton_Factory(ɵt) {\n return new (ɵt || MatIconButton)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatIconButton,\n selectors: [[\"button\", \"mat-icon-button\", \"\"]],\n hostVars: 7,\n hostBindings: function MatIconButton_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"disabled\", ctx.disabled || null);\n i0.ɵɵclassProp(\"_mat-animation-noopable\", ctx._animationMode === \"NoopAnimations\")(\"mat-unthemed\", !ctx.color)(\"mat-mdc-button-base\", true);\n }\n },\n inputs: {\n disabled: \"disabled\",\n disableRipple: \"disableRipple\",\n color: \"color\"\n },\n exportAs: [\"matButton\"],\n features: [i0.ɵɵInheritDefinitionFeature],\n attrs: _c8,\n ngContentSelectors: _c9,\n decls: 4,\n vars: 0,\n consts: [[1, \"mat-mdc-button-persistent-ripple\", \"mdc-icon-button__ripple\"], [1, \"mat-mdc-focus-indicator\"], [1, \"mat-mdc-button-touch-target\"]],\n template: function MatIconButton_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelement(0, \"span\", 0);\n i0.ɵɵprojection(1);\n i0.ɵɵelement(2, \"span\", 1)(3, \"span\", 2);\n }\n },\n styles: [\".mdc-icon-button{display:inline-block;position:relative;box-sizing:border-box;border:none;outline:none;background-color:rgba(0,0,0,0);fill:currentColor;color:inherit;text-decoration:none;cursor:pointer;user-select:none;z-index:0;overflow:visible}.mdc-icon-button .mdc-icon-button__touch{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}@media screen and (forced-colors: active){.mdc-icon-button.mdc-ripple-upgraded--background-focused .mdc-icon-button__focus-ring,.mdc-icon-button:not(.mdc-ripple-upgraded):focus .mdc-icon-button__focus-ring{display:block}}.mdc-icon-button:disabled{cursor:default;pointer-events:none}.mdc-icon-button[hidden]{display:none}.mdc-icon-button--display-flex{align-items:center;display:inline-flex;justify-content:center}.mdc-icon-button__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:100%;width:100%;display:none}@media screen and (forced-colors: active){.mdc-icon-button__focus-ring{border-color:CanvasText}}.mdc-icon-button__focus-ring::after{content:\\\"\\\";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-icon-button__focus-ring::after{border-color:CanvasText}}.mdc-icon-button__icon{display:inline-block}.mdc-icon-button__icon.mdc-icon-button__icon--on{display:none}.mdc-icon-button--on .mdc-icon-button__icon{display:none}.mdc-icon-button--on .mdc-icon-button__icon.mdc-icon-button__icon--on{display:inline-block}.mdc-icon-button__link{height:100%;left:0;outline:none;position:absolute;top:0;width:100%}.mat-mdc-icon-button{height:var(--mdc-icon-button-state-layer-size);width:var(--mdc-icon-button-state-layer-size);color:var(--mdc-icon-button-icon-color);--mdc-icon-button-state-layer-size:48px;--mdc-icon-button-icon-size:24px;--mdc-icon-button-disabled-icon-color:black;--mdc-icon-button-disabled-icon-opacity:0.38}.mat-mdc-icon-button .mdc-button__icon{font-size:var(--mdc-icon-button-icon-size)}.mat-mdc-icon-button svg,.mat-mdc-icon-button img{width:var(--mdc-icon-button-icon-size);height:var(--mdc-icon-button-icon-size)}.mat-mdc-icon-button:disabled{opacity:var(--mdc-icon-button-disabled-icon-opacity)}.mat-mdc-icon-button:disabled{color:var(--mdc-icon-button-disabled-icon-color)}.mat-mdc-icon-button{padding:12px;font-size:var(--mdc-icon-button-icon-size);border-radius:50%;flex-shrink:0;text-align:center;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-icon-button svg{vertical-align:baseline}.mat-mdc-icon-button[disabled]{cursor:default;pointer-events:none;opacity:1}.mat-mdc-icon-button .mat-mdc-button-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-icon-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{content:\\\"\\\";opacity:0;background-color:var(--mat-mdc-button-persistent-ripple-color)}.mat-mdc-icon-button .mat-ripple-element{background-color:var(--mat-mdc-button-ripple-color)}.mat-mdc-icon-button .mdc-button__label{z-index:1}.mat-mdc-icon-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-icon-button:focus .mat-mdc-focus-indicator::before{content:\\\"\\\"}.mat-mdc-icon-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}.mat-mdc-icon-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple{border-radius:50%}.mat-mdc-icon-button.mat-unthemed:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-primary:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-accent:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-warn:not(.mdc-ripple-upgraded):focus::before{background:rgba(0,0,0,0);opacity:1}\", _c4],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatIconButton, [{\n type: Component,\n args: [{\n selector: `button[mat-icon-button]`,\n inputs: MAT_BUTTON_INPUTS,\n host: MAT_BUTTON_HOST,\n exportAs: 'matButton',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: \"\\n\\n\\n\\n\\n\\n\\n\\n\",\n styles: [\".mdc-icon-button{display:inline-block;position:relative;box-sizing:border-box;border:none;outline:none;background-color:rgba(0,0,0,0);fill:currentColor;color:inherit;text-decoration:none;cursor:pointer;user-select:none;z-index:0;overflow:visible}.mdc-icon-button .mdc-icon-button__touch{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}@media screen and (forced-colors: active){.mdc-icon-button.mdc-ripple-upgraded--background-focused .mdc-icon-button__focus-ring,.mdc-icon-button:not(.mdc-ripple-upgraded):focus .mdc-icon-button__focus-ring{display:block}}.mdc-icon-button:disabled{cursor:default;pointer-events:none}.mdc-icon-button[hidden]{display:none}.mdc-icon-button--display-flex{align-items:center;display:inline-flex;justify-content:center}.mdc-icon-button__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:100%;width:100%;display:none}@media screen and (forced-colors: active){.mdc-icon-button__focus-ring{border-color:CanvasText}}.mdc-icon-button__focus-ring::after{content:\\\"\\\";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-icon-button__focus-ring::after{border-color:CanvasText}}.mdc-icon-button__icon{display:inline-block}.mdc-icon-button__icon.mdc-icon-button__icon--on{display:none}.mdc-icon-button--on .mdc-icon-button__icon{display:none}.mdc-icon-button--on .mdc-icon-button__icon.mdc-icon-button__icon--on{display:inline-block}.mdc-icon-button__link{height:100%;left:0;outline:none;position:absolute;top:0;width:100%}.mat-mdc-icon-button{height:var(--mdc-icon-button-state-layer-size);width:var(--mdc-icon-button-state-layer-size);color:var(--mdc-icon-button-icon-color);--mdc-icon-button-state-layer-size:48px;--mdc-icon-button-icon-size:24px;--mdc-icon-button-disabled-icon-color:black;--mdc-icon-button-disabled-icon-opacity:0.38}.mat-mdc-icon-button .mdc-button__icon{font-size:var(--mdc-icon-button-icon-size)}.mat-mdc-icon-button svg,.mat-mdc-icon-button img{width:var(--mdc-icon-button-icon-size);height:var(--mdc-icon-button-icon-size)}.mat-mdc-icon-button:disabled{opacity:var(--mdc-icon-button-disabled-icon-opacity)}.mat-mdc-icon-button:disabled{color:var(--mdc-icon-button-disabled-icon-color)}.mat-mdc-icon-button{padding:12px;font-size:var(--mdc-icon-button-icon-size);border-radius:50%;flex-shrink:0;text-align:center;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-icon-button svg{vertical-align:baseline}.mat-mdc-icon-button[disabled]{cursor:default;pointer-events:none;opacity:1}.mat-mdc-icon-button .mat-mdc-button-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-icon-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{content:\\\"\\\";opacity:0;background-color:var(--mat-mdc-button-persistent-ripple-color)}.mat-mdc-icon-button .mat-ripple-element{background-color:var(--mat-mdc-button-ripple-color)}.mat-mdc-icon-button .mdc-button__label{z-index:1}.mat-mdc-icon-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-icon-button:focus .mat-mdc-focus-indicator::before{content:\\\"\\\"}.mat-mdc-icon-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}.mat-mdc-icon-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple{border-radius:50%}.mat-mdc-icon-button.mat-unthemed:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-primary:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-accent:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-warn:not(.mdc-ripple-upgraded):focus::before{background:rgba(0,0,0,0);opacity:1}\", \".cdk-high-contrast-active .mat-mdc-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-unelevated-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-raised-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-outlined-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-icon-button{outline:solid 1px}\"]\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i1.Platform\n }, {\n type: i0.NgZone\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }]\n }];\n }, null);\n})();\n/**\n * Material Design icon button component for anchor elements. This button displays a single\n * interaction icon that allows users to navigate across different routes or pages.\n * See https://material.io/develop/web/components/buttons/icon-buttons/\n */\nclass MatIconAnchor extends MatAnchorBase {\n constructor(elementRef, platform, ngZone, animationMode) {\n super(elementRef, platform, ngZone, animationMode);\n }\n static {\n this.ɵfac = function MatIconAnchor_Factory(ɵt) {\n return new (ɵt || MatIconAnchor)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatIconAnchor,\n selectors: [[\"a\", \"mat-icon-button\", \"\"]],\n hostVars: 9,\n hostBindings: function MatIconAnchor_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"disabled\", ctx.disabled || null)(\"tabindex\", ctx.disabled ? -1 : ctx.tabIndex)(\"aria-disabled\", ctx.disabled.toString());\n i0.ɵɵclassProp(\"_mat-animation-noopable\", ctx._animationMode === \"NoopAnimations\")(\"mat-unthemed\", !ctx.color)(\"mat-mdc-button-base\", true);\n }\n },\n inputs: {\n disabled: \"disabled\",\n disableRipple: \"disableRipple\",\n color: \"color\",\n tabIndex: \"tabIndex\"\n },\n exportAs: [\"matButton\", \"matAnchor\"],\n features: [i0.ɵɵInheritDefinitionFeature],\n attrs: _c8,\n ngContentSelectors: _c2,\n decls: 7,\n vars: 4,\n consts: [[1, \"mat-mdc-button-persistent-ripple\"], [1, \"mdc-button__label\"], [1, \"mat-mdc-focus-indicator\"], [1, \"mat-mdc-button-touch-target\"]],\n template: function MatIconAnchor_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c1);\n i0.ɵɵelement(0, \"span\", 0);\n i0.ɵɵprojection(1);\n i0.ɵɵelementStart(2, \"span\", 1);\n i0.ɵɵprojection(3, 1);\n i0.ɵɵelementEnd();\n i0.ɵɵprojection(4, 2);\n i0.ɵɵelement(5, \"span\", 2)(6, \"span\", 3);\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"mdc-button__ripple\", !ctx._isFab)(\"mdc-fab__ripple\", ctx._isFab);\n }\n },\n styles: [_c10, _c4],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatIconAnchor, [{\n type: Component,\n args: [{\n selector: `a[mat-icon-button]`,\n inputs: MAT_ANCHOR_INPUTS,\n host: MAT_ANCHOR_HOST,\n exportAs: 'matButton, matAnchor',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: \"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\",\n styles: [\".mdc-icon-button{display:inline-block;position:relative;box-sizing:border-box;border:none;outline:none;background-color:rgba(0,0,0,0);fill:currentColor;color:inherit;text-decoration:none;cursor:pointer;user-select:none;z-index:0;overflow:visible}.mdc-icon-button .mdc-icon-button__touch{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}@media screen and (forced-colors: active){.mdc-icon-button.mdc-ripple-upgraded--background-focused .mdc-icon-button__focus-ring,.mdc-icon-button:not(.mdc-ripple-upgraded):focus .mdc-icon-button__focus-ring{display:block}}.mdc-icon-button:disabled{cursor:default;pointer-events:none}.mdc-icon-button[hidden]{display:none}.mdc-icon-button--display-flex{align-items:center;display:inline-flex;justify-content:center}.mdc-icon-button__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:100%;width:100%;display:none}@media screen and (forced-colors: active){.mdc-icon-button__focus-ring{border-color:CanvasText}}.mdc-icon-button__focus-ring::after{content:\\\"\\\";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-icon-button__focus-ring::after{border-color:CanvasText}}.mdc-icon-button__icon{display:inline-block}.mdc-icon-button__icon.mdc-icon-button__icon--on{display:none}.mdc-icon-button--on .mdc-icon-button__icon{display:none}.mdc-icon-button--on .mdc-icon-button__icon.mdc-icon-button__icon--on{display:inline-block}.mdc-icon-button__link{height:100%;left:0;outline:none;position:absolute;top:0;width:100%}.mat-mdc-icon-button{height:var(--mdc-icon-button-state-layer-size);width:var(--mdc-icon-button-state-layer-size);color:var(--mdc-icon-button-icon-color);--mdc-icon-button-state-layer-size:48px;--mdc-icon-button-icon-size:24px;--mdc-icon-button-disabled-icon-color:black;--mdc-icon-button-disabled-icon-opacity:0.38}.mat-mdc-icon-button .mdc-button__icon{font-size:var(--mdc-icon-button-icon-size)}.mat-mdc-icon-button svg,.mat-mdc-icon-button img{width:var(--mdc-icon-button-icon-size);height:var(--mdc-icon-button-icon-size)}.mat-mdc-icon-button:disabled{opacity:var(--mdc-icon-button-disabled-icon-opacity)}.mat-mdc-icon-button:disabled{color:var(--mdc-icon-button-disabled-icon-color)}.mat-mdc-icon-button{padding:12px;font-size:var(--mdc-icon-button-icon-size);border-radius:50%;flex-shrink:0;text-align:center;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-icon-button svg{vertical-align:baseline}.mat-mdc-icon-button[disabled]{cursor:default;pointer-events:none;opacity:1}.mat-mdc-icon-button .mat-mdc-button-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-icon-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{content:\\\"\\\";opacity:0;background-color:var(--mat-mdc-button-persistent-ripple-color)}.mat-mdc-icon-button .mat-ripple-element{background-color:var(--mat-mdc-button-ripple-color)}.mat-mdc-icon-button .mdc-button__label{z-index:1}.mat-mdc-icon-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-icon-button:focus .mat-mdc-focus-indicator::before{content:\\\"\\\"}.mat-mdc-icon-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}.mat-mdc-icon-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple{border-radius:50%}.mat-mdc-icon-button.mat-unthemed:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-primary:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-accent:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-warn:not(.mdc-ripple-upgraded):focus::before{background:rgba(0,0,0,0);opacity:1}\", \".cdk-high-contrast-active .mat-mdc-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-unelevated-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-raised-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-outlined-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-icon-button{outline:solid 1px}\"]\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i1.Platform\n }, {\n type: i0.NgZone\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }]\n }];\n }, null);\n})();\nclass MatButtonModule {\n static {\n this.ɵfac = function MatButtonModule_Factory(ɵt) {\n return new (ɵt || MatButtonModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatButtonModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [MatCommonModule, MatRippleModule, MatCommonModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatButtonModule, [{\n type: NgModule,\n args: [{\n imports: [MatCommonModule, MatRippleModule],\n exports: [MatAnchor, MatButton, MatIconAnchor, MatIconButton, MatMiniFabAnchor, MatMiniFabButton, MatFabAnchor, MatFabButton, MatCommonModule],\n declarations: [MatAnchor, MatButton, MatIconAnchor, MatMiniFabAnchor, MatMiniFabButton, MatIconButton, MatFabAnchor, MatFabButton]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_FAB_DEFAULT_OPTIONS, MAT_FAB_DEFAULT_OPTIONS_FACTORY, MatAnchor, MatButton, MatButtonModule, MatFabAnchor, MatFabButton, MatIconAnchor, MatIconButton, MatMiniFabAnchor, MatMiniFabButton };\n","import * as i2 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, Optional, SkipSelf, InjectionToken, EventEmitter, Directive, Input, Output, Component, ChangeDetectionStrategy, ViewEncapsulation, Inject, NgModule } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport * as i3 from '@angular/material/button';\nimport { MatButtonModule } from '@angular/material/button';\nimport * as i5 from '@angular/material/select';\nimport { MatSelectModule } from '@angular/material/select';\nimport * as i7 from '@angular/material/tooltip';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport * as i6 from '@angular/material/core';\nimport { mixinDisabled, mixinInitialized } from '@angular/material/core';\nimport { coerceNumberProperty, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport * as i4 from '@angular/material/form-field';\n\n/**\n * To modify the labels and text displayed, create a new instance of MatPaginatorIntl and\n * include it in a custom provider\n */\nfunction MatPaginator_div_2_mat_form_field_3_mat_option_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"mat-option\", 19);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const pageSizeOption_r3 = ctx.$implicit;\n i0.ɵɵproperty(\"value\", pageSizeOption_r3);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", pageSizeOption_r3, \" \");\n }\n}\nfunction MatPaginator_div_2_mat_form_field_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"mat-form-field\", 16)(1, \"mat-select\", 17);\n i0.ɵɵlistener(\"selectionChange\", function MatPaginator_div_2_mat_form_field_3_Template_mat_select_selectionChange_1_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1._changePageSize($event.value));\n });\n i0.ɵɵtemplate(2, MatPaginator_div_2_mat_form_field_3_mat_option_2_Template, 2, 2, \"mat-option\", 18);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"appearance\", ctx_r1._formFieldAppearance)(\"color\", ctx_r1.color);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"value\", ctx_r1.pageSize)(\"disabled\", ctx_r1.disabled)(\"aria-labelledby\", ctx_r1._pageSizeLabelId)(\"panelClass\", ctx_r1.selectConfig.panelClass || \"\")(\"disableOptionCentering\", ctx_r1.selectConfig.disableOptionCentering);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r1._displayedPageSizeOptions);\n }\n}\nfunction MatPaginator_div_2_div_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 20);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r1.pageSize);\n }\n}\nfunction MatPaginator_div_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 12)(1, \"div\", 13);\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(3, MatPaginator_div_2_mat_form_field_3_Template, 3, 8, \"mat-form-field\", 14)(4, MatPaginator_div_2_div_4_Template, 2, 1, \"div\", 15);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵpropertyInterpolate(\"id\", ctx_r1._pageSizeLabelId);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r1._intl.itemsPerPageLabel, \" \");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1._displayedPageSizeOptions.length > 1);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1._displayedPageSizeOptions.length <= 1);\n }\n}\nfunction MatPaginator_button_6_Template(rf, ctx) {\n if (rf & 1) {\n const _r4 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 21);\n i0.ɵɵlistener(\"click\", function MatPaginator_button_6_Template_button_click_0_listener() {\n i0.ɵɵrestoreView(_r4);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.firstPage());\n });\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(1, \"svg\", 7);\n i0.ɵɵelement(2, \"path\", 22);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"matTooltip\", ctx_r1._intl.firstPageLabel)(\"matTooltipDisabled\", ctx_r1._previousButtonsDisabled())(\"matTooltipPosition\", \"above\")(\"disabled\", ctx_r1._previousButtonsDisabled());\n i0.ɵɵattribute(\"aria-label\", ctx_r1._intl.firstPageLabel);\n }\n}\nfunction MatPaginator_button_13_Template(rf, ctx) {\n if (rf & 1) {\n const _r5 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 23);\n i0.ɵɵlistener(\"click\", function MatPaginator_button_13_Template_button_click_0_listener() {\n i0.ɵɵrestoreView(_r5);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.lastPage());\n });\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(1, \"svg\", 7);\n i0.ɵɵelement(2, \"path\", 24);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"matTooltip\", ctx_r1._intl.lastPageLabel)(\"matTooltipDisabled\", ctx_r1._nextButtonsDisabled())(\"matTooltipPosition\", \"above\")(\"disabled\", ctx_r1._nextButtonsDisabled());\n i0.ɵɵattribute(\"aria-label\", ctx_r1._intl.lastPageLabel);\n }\n}\nclass MatPaginatorIntl {\n constructor() {\n /**\n * Stream to emit from when labels are changed. Use this to notify components when the labels have\n * changed after initialization.\n */\n this.changes = new Subject();\n /** A label for the page size selector. */\n this.itemsPerPageLabel = 'Items per page:';\n /** A label for the button that increments the current page. */\n this.nextPageLabel = 'Next page';\n /** A label for the button that decrements the current page. */\n this.previousPageLabel = 'Previous page';\n /** A label for the button that moves to the first page. */\n this.firstPageLabel = 'First page';\n /** A label for the button that moves to the last page. */\n this.lastPageLabel = 'Last page';\n /** A label for the range of items within the current page and the length of the whole list. */\n this.getRangeLabel = (page, pageSize, length) => {\n if (length == 0 || pageSize == 0) {\n return `0 of ${length}`;\n }\n length = Math.max(length, 0);\n const startIndex = page * pageSize;\n // If the start index exceeds the list length, do not try and fix the end index to the end.\n const endIndex = startIndex < length ? Math.min(startIndex + pageSize, length) : startIndex + pageSize;\n return `${startIndex + 1} – ${endIndex} of ${length}`;\n };\n }\n static {\n this.ɵfac = function MatPaginatorIntl_Factory(ɵt) {\n return new (ɵt || MatPaginatorIntl)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: MatPaginatorIntl,\n factory: MatPaginatorIntl.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatPaginatorIntl, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\n/** @docs-private */\nfunction MAT_PAGINATOR_INTL_PROVIDER_FACTORY(parentIntl) {\n return parentIntl || new MatPaginatorIntl();\n}\n/** @docs-private */\nconst MAT_PAGINATOR_INTL_PROVIDER = {\n // If there is already an MatPaginatorIntl available, use that. Otherwise, provide a new one.\n provide: MatPaginatorIntl,\n deps: [[new Optional(), new SkipSelf(), MatPaginatorIntl]],\n useFactory: MAT_PAGINATOR_INTL_PROVIDER_FACTORY\n};\n\n/** The default page size if there is no page size and there are no provided page size options. */\nconst DEFAULT_PAGE_SIZE = 50;\n/**\n * Change event object that is emitted when the user selects a\n * different page size or navigates to another page.\n */\nclass PageEvent {}\n/** Injection token that can be used to provide the default options for the paginator module. */\nconst MAT_PAGINATOR_DEFAULT_OPTIONS = new InjectionToken('MAT_PAGINATOR_DEFAULT_OPTIONS');\n// Boilerplate for applying mixins to _MatPaginatorBase.\n/** @docs-private */\nconst _MatPaginatorMixinBase = mixinDisabled(mixinInitialized(class {}));\n/**\n * Base class with all of the `MatPaginator` functionality.\n * @docs-private\n */\nclass _MatPaginatorBase extends _MatPaginatorMixinBase {\n /** The zero-based page index of the displayed list of items. Defaulted to 0. */\n get pageIndex() {\n return this._pageIndex;\n }\n set pageIndex(value) {\n this._pageIndex = Math.max(coerceNumberProperty(value), 0);\n this._changeDetectorRef.markForCheck();\n }\n /** The length of the total number of items that are being paginated. Defaulted to 0. */\n get length() {\n return this._length;\n }\n set length(value) {\n this._length = coerceNumberProperty(value);\n this._changeDetectorRef.markForCheck();\n }\n /** Number of items to display on a page. By default set to 50. */\n get pageSize() {\n return this._pageSize;\n }\n set pageSize(value) {\n this._pageSize = Math.max(coerceNumberProperty(value), 0);\n this._updateDisplayedPageSizeOptions();\n }\n /** The set of provided page size options to display to the user. */\n get pageSizeOptions() {\n return this._pageSizeOptions;\n }\n set pageSizeOptions(value) {\n this._pageSizeOptions = (value || []).map(p => coerceNumberProperty(p));\n this._updateDisplayedPageSizeOptions();\n }\n /** Whether to hide the page size selection UI from the user. */\n get hidePageSize() {\n return this._hidePageSize;\n }\n set hidePageSize(value) {\n this._hidePageSize = coerceBooleanProperty(value);\n }\n /** Whether to show the first/last buttons UI to the user. */\n get showFirstLastButtons() {\n return this._showFirstLastButtons;\n }\n set showFirstLastButtons(value) {\n this._showFirstLastButtons = coerceBooleanProperty(value);\n }\n constructor(_intl, _changeDetectorRef, defaults) {\n super();\n this._intl = _intl;\n this._changeDetectorRef = _changeDetectorRef;\n this._pageIndex = 0;\n this._length = 0;\n this._pageSizeOptions = [];\n this._hidePageSize = false;\n this._showFirstLastButtons = false;\n /** Used to configure the underlying `MatSelect` inside the paginator. */\n this.selectConfig = {};\n /** Event emitted when the paginator changes the page size or page index. */\n this.page = new EventEmitter();\n this._intlChanges = _intl.changes.subscribe(() => this._changeDetectorRef.markForCheck());\n if (defaults) {\n const {\n pageSize,\n pageSizeOptions,\n hidePageSize,\n showFirstLastButtons\n } = defaults;\n if (pageSize != null) {\n this._pageSize = pageSize;\n }\n if (pageSizeOptions != null) {\n this._pageSizeOptions = pageSizeOptions;\n }\n if (hidePageSize != null) {\n this._hidePageSize = hidePageSize;\n }\n if (showFirstLastButtons != null) {\n this._showFirstLastButtons = showFirstLastButtons;\n }\n }\n }\n ngOnInit() {\n this._initialized = true;\n this._updateDisplayedPageSizeOptions();\n this._markInitialized();\n }\n ngOnDestroy() {\n this._intlChanges.unsubscribe();\n }\n /** Advances to the next page if it exists. */\n nextPage() {\n if (!this.hasNextPage()) {\n return;\n }\n const previousPageIndex = this.pageIndex;\n this.pageIndex = this.pageIndex + 1;\n this._emitPageEvent(previousPageIndex);\n }\n /** Move back to the previous page if it exists. */\n previousPage() {\n if (!this.hasPreviousPage()) {\n return;\n }\n const previousPageIndex = this.pageIndex;\n this.pageIndex = this.pageIndex - 1;\n this._emitPageEvent(previousPageIndex);\n }\n /** Move to the first page if not already there. */\n firstPage() {\n // hasPreviousPage being false implies at the start\n if (!this.hasPreviousPage()) {\n return;\n }\n const previousPageIndex = this.pageIndex;\n this.pageIndex = 0;\n this._emitPageEvent(previousPageIndex);\n }\n /** Move to the last page if not already there. */\n lastPage() {\n // hasNextPage being false implies at the end\n if (!this.hasNextPage()) {\n return;\n }\n const previousPageIndex = this.pageIndex;\n this.pageIndex = this.getNumberOfPages() - 1;\n this._emitPageEvent(previousPageIndex);\n }\n /** Whether there is a previous page. */\n hasPreviousPage() {\n return this.pageIndex >= 1 && this.pageSize != 0;\n }\n /** Whether there is a next page. */\n hasNextPage() {\n const maxPageIndex = this.getNumberOfPages() - 1;\n return this.pageIndex < maxPageIndex && this.pageSize != 0;\n }\n /** Calculate the number of pages */\n getNumberOfPages() {\n if (!this.pageSize) {\n return 0;\n }\n return Math.ceil(this.length / this.pageSize);\n }\n /**\n * Changes the page size so that the first item displayed on the page will still be\n * displayed using the new page size.\n *\n * For example, if the page size is 10 and on the second page (items indexed 10-19) then\n * switching so that the page size is 5 will set the third page as the current page so\n * that the 10th item will still be displayed.\n */\n _changePageSize(pageSize) {\n // Current page needs to be updated to reflect the new page size. Navigate to the page\n // containing the previous page's first item.\n const startIndex = this.pageIndex * this.pageSize;\n const previousPageIndex = this.pageIndex;\n this.pageIndex = Math.floor(startIndex / pageSize) || 0;\n this.pageSize = pageSize;\n this._emitPageEvent(previousPageIndex);\n }\n /** Checks whether the buttons for going forwards should be disabled. */\n _nextButtonsDisabled() {\n return this.disabled || !this.hasNextPage();\n }\n /** Checks whether the buttons for going backwards should be disabled. */\n _previousButtonsDisabled() {\n return this.disabled || !this.hasPreviousPage();\n }\n /**\n * Updates the list of page size options to display to the user. Includes making sure that\n * the page size is an option and that the list is sorted.\n */\n _updateDisplayedPageSizeOptions() {\n if (!this._initialized) {\n return;\n }\n // If no page size is provided, use the first page size option or the default page size.\n if (!this.pageSize) {\n this._pageSize = this.pageSizeOptions.length != 0 ? this.pageSizeOptions[0] : DEFAULT_PAGE_SIZE;\n }\n this._displayedPageSizeOptions = this.pageSizeOptions.slice();\n if (this._displayedPageSizeOptions.indexOf(this.pageSize) === -1) {\n this._displayedPageSizeOptions.push(this.pageSize);\n }\n // Sort the numbers using a number-specific sort function.\n this._displayedPageSizeOptions.sort((a, b) => a - b);\n this._changeDetectorRef.markForCheck();\n }\n /** Emits an event notifying that a change of the paginator's properties has been triggered. */\n _emitPageEvent(previousPageIndex) {\n this.page.emit({\n previousPageIndex,\n pageIndex: this.pageIndex,\n pageSize: this.pageSize,\n length: this.length\n });\n }\n static {\n this.ɵfac = function _MatPaginatorBase_Factory(ɵt) {\n i0.ɵɵinvalidFactory();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: _MatPaginatorBase,\n inputs: {\n color: \"color\",\n pageIndex: \"pageIndex\",\n length: \"length\",\n pageSize: \"pageSize\",\n pageSizeOptions: \"pageSizeOptions\",\n hidePageSize: \"hidePageSize\",\n showFirstLastButtons: \"showFirstLastButtons\",\n selectConfig: \"selectConfig\"\n },\n outputs: {\n page: \"page\"\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(_MatPaginatorBase, [{\n type: Directive\n }], function () {\n return [{\n type: MatPaginatorIntl\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: undefined\n }];\n }, {\n color: [{\n type: Input\n }],\n pageIndex: [{\n type: Input\n }],\n length: [{\n type: Input\n }],\n pageSize: [{\n type: Input\n }],\n pageSizeOptions: [{\n type: Input\n }],\n hidePageSize: [{\n type: Input\n }],\n showFirstLastButtons: [{\n type: Input\n }],\n selectConfig: [{\n type: Input\n }],\n page: [{\n type: Output\n }]\n });\n})();\nlet nextUniqueId = 0;\n/**\n * Component to provide navigation between paged information. Displays the size of the current\n * page, user-selectable options to change that size, what items are being shown, and\n * navigational button to go to the previous or next page.\n */\nclass MatPaginator extends _MatPaginatorBase {\n constructor(intl, changeDetectorRef, defaults) {\n super(intl, changeDetectorRef, defaults);\n /** ID for the DOM node containing the paginator's items per page label. */\n this._pageSizeLabelId = `mat-paginator-page-size-label-${nextUniqueId++}`;\n this._formFieldAppearance = defaults?.formFieldAppearance || 'outline';\n }\n static {\n this.ɵfac = function MatPaginator_Factory(ɵt) {\n return new (ɵt || MatPaginator)(i0.ɵɵdirectiveInject(MatPaginatorIntl), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(MAT_PAGINATOR_DEFAULT_OPTIONS, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatPaginator,\n selectors: [[\"mat-paginator\"]],\n hostAttrs: [\"role\", \"group\", 1, \"mat-mdc-paginator\"],\n inputs: {\n disabled: \"disabled\"\n },\n exportAs: [\"matPaginator\"],\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 14,\n vars: 14,\n consts: [[1, \"mat-mdc-paginator-outer-container\"], [1, \"mat-mdc-paginator-container\"], [\"class\", \"mat-mdc-paginator-page-size\", 4, \"ngIf\"], [1, \"mat-mdc-paginator-range-actions\"], [\"aria-live\", \"polite\", 1, \"mat-mdc-paginator-range-label\"], [\"mat-icon-button\", \"\", \"type\", \"button\", \"class\", \"mat-mdc-paginator-navigation-first\", 3, \"matTooltip\", \"matTooltipDisabled\", \"matTooltipPosition\", \"disabled\", \"click\", 4, \"ngIf\"], [\"mat-icon-button\", \"\", \"type\", \"button\", 1, \"mat-mdc-paginator-navigation-previous\", 3, \"click\", \"matTooltip\", \"matTooltipDisabled\", \"matTooltipPosition\", \"disabled\"], [\"viewBox\", \"0 0 24 24\", \"focusable\", \"false\", \"aria-hidden\", \"true\", 1, \"mat-mdc-paginator-icon\"], [\"d\", \"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z\"], [\"mat-icon-button\", \"\", \"type\", \"button\", 1, \"mat-mdc-paginator-navigation-next\", 3, \"click\", \"matTooltip\", \"matTooltipDisabled\", \"matTooltipPosition\", \"disabled\"], [\"d\", \"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"], [\"mat-icon-button\", \"\", \"type\", \"button\", \"class\", \"mat-mdc-paginator-navigation-last\", 3, \"matTooltip\", \"matTooltipDisabled\", \"matTooltipPosition\", \"disabled\", \"click\", 4, \"ngIf\"], [1, \"mat-mdc-paginator-page-size\"], [1, \"mat-mdc-paginator-page-size-label\", 3, \"id\"], [\"class\", \"mat-mdc-paginator-page-size-select\", 3, \"appearance\", \"color\", 4, \"ngIf\"], [\"class\", \"mat-mdc-paginator-page-size-value\", 4, \"ngIf\"], [1, \"mat-mdc-paginator-page-size-select\", 3, \"appearance\", \"color\"], [\"hideSingleSelectionIndicator\", \"\", 3, \"selectionChange\", \"value\", \"disabled\", \"aria-labelledby\", \"panelClass\", \"disableOptionCentering\"], [3, \"value\", 4, \"ngFor\", \"ngForOf\"], [3, \"value\"], [1, \"mat-mdc-paginator-page-size-value\"], [\"mat-icon-button\", \"\", \"type\", \"button\", 1, \"mat-mdc-paginator-navigation-first\", 3, \"click\", \"matTooltip\", \"matTooltipDisabled\", \"matTooltipPosition\", \"disabled\"], [\"d\", \"M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z\"], [\"mat-icon-button\", \"\", \"type\", \"button\", 1, \"mat-mdc-paginator-navigation-last\", 3, \"click\", \"matTooltip\", \"matTooltipDisabled\", \"matTooltipPosition\", \"disabled\"], [\"d\", \"M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z\"]],\n template: function MatPaginator_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0)(1, \"div\", 1);\n i0.ɵɵtemplate(2, MatPaginator_div_2_Template, 5, 4, \"div\", 2);\n i0.ɵɵelementStart(3, \"div\", 3)(4, \"div\", 4);\n i0.ɵɵtext(5);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(6, MatPaginator_button_6_Template, 3, 5, \"button\", 5);\n i0.ɵɵelementStart(7, \"button\", 6);\n i0.ɵɵlistener(\"click\", function MatPaginator_Template_button_click_7_listener() {\n return ctx.previousPage();\n });\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(8, \"svg\", 7);\n i0.ɵɵelement(9, \"path\", 8);\n i0.ɵɵelementEnd()();\n i0.ɵɵnamespaceHTML();\n i0.ɵɵelementStart(10, \"button\", 9);\n i0.ɵɵlistener(\"click\", function MatPaginator_Template_button_click_10_listener() {\n return ctx.nextPage();\n });\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(11, \"svg\", 7);\n i0.ɵɵelement(12, \"path\", 10);\n i0.ɵɵelementEnd()();\n i0.ɵɵtemplate(13, MatPaginator_button_13_Template, 3, 5, \"button\", 11);\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", !ctx.hidePageSize);\n i0.ɵɵadvance(3);\n i0.ɵɵtextInterpolate1(\" \", ctx._intl.getRangeLabel(ctx.pageIndex, ctx.pageSize, ctx.length), \" \");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.showFirstLastButtons);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"matTooltip\", ctx._intl.previousPageLabel)(\"matTooltipDisabled\", ctx._previousButtonsDisabled())(\"matTooltipPosition\", \"above\")(\"disabled\", ctx._previousButtonsDisabled());\n i0.ɵɵattribute(\"aria-label\", ctx._intl.previousPageLabel);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"matTooltip\", ctx._intl.nextPageLabel)(\"matTooltipDisabled\", ctx._nextButtonsDisabled())(\"matTooltipPosition\", \"above\")(\"disabled\", ctx._nextButtonsDisabled());\n i0.ɵɵattribute(\"aria-label\", ctx._intl.nextPageLabel);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngIf\", ctx.showFirstLastButtons);\n }\n },\n dependencies: [i2.NgForOf, i2.NgIf, i3.MatIconButton, i4.MatFormField, i5.MatSelect, i6.MatOption, i7.MatTooltip],\n styles: [\".mat-mdc-paginator{display:block;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:var(--mat-paginator-container-text-color);background-color:var(--mat-paginator-container-background-color);font-family:var(--mat-paginator-container-text-font);line-height:var(--mat-paginator-container-text-line-height);font-size:var(--mat-paginator-container-text-size);font-weight:var(--mat-paginator-container-text-weight);letter-spacing:var(--mat-paginator-container-text-tracking)}.mat-mdc-paginator .mat-mdc-select-value{font-size:var(--mat-paginator-select-trigger-text-size)}.mat-mdc-paginator .mat-mdc-form-field-subscript-wrapper{display:none}.mat-mdc-paginator .mat-mdc-select{line-height:1.5}.mat-mdc-paginator-outer-container{display:flex}.mat-mdc-paginator-container{display:flex;align-items:center;justify-content:flex-end;padding:0 8px;flex-wrap:wrap-reverse;width:100%;min-height:var(--mat-paginator-container-size)}.mat-mdc-paginator-page-size{display:flex;align-items:baseline;margin-right:8px}[dir=rtl] .mat-mdc-paginator-page-size{margin-right:0;margin-left:8px}.mat-mdc-paginator-page-size-label{margin:0 4px}.mat-mdc-paginator-page-size-select{margin:0 4px;width:84px}.mat-mdc-paginator-range-label{margin:0 32px 0 24px}.mat-mdc-paginator-range-actions{display:flex;align-items:center}.mat-mdc-paginator-icon{display:inline-block;width:28px;fill:var(--mat-paginator-enabled-icon-color)}.mat-mdc-icon-button[disabled] .mat-mdc-paginator-icon{fill:var(--mat-paginator-disabled-icon-color)}[dir=rtl] .mat-mdc-paginator-icon{transform:rotate(180deg)}.cdk-high-contrast-active .mat-mdc-icon-button[disabled] .mat-mdc-paginator-icon,.cdk-high-contrast-active .mat-mdc-paginator-icon{fill:currentColor;fill:CanvasText}.cdk-high-contrast-active .mat-mdc-paginator-range-actions .mat-mdc-icon-button{outline:solid 1px}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatPaginator, [{\n type: Component,\n args: [{\n selector: 'mat-paginator',\n exportAs: 'matPaginator',\n inputs: ['disabled'],\n host: {\n 'class': 'mat-mdc-paginator',\n 'role': 'group'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: \"\\n \\n \\n \\n {{_intl.itemsPerPageLabel}}\\n \\n\\n 1\\\"\\n [appearance]=\\\"_formFieldAppearance!\\\"\\n [color]=\\\"color\\\"\\n class=\\\"mat-mdc-paginator-page-size-select\\\">\\n \\n \\n {{pageSizeOption}}\\n \\n \\n \\n\\n {{pageSize}}\\n \\n\\n \\n \\n {{_intl.getRangeLabel(pageIndex, pageSize, length)}}\\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n\",\n styles: [\".mat-mdc-paginator{display:block;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:var(--mat-paginator-container-text-color);background-color:var(--mat-paginator-container-background-color);font-family:var(--mat-paginator-container-text-font);line-height:var(--mat-paginator-container-text-line-height);font-size:var(--mat-paginator-container-text-size);font-weight:var(--mat-paginator-container-text-weight);letter-spacing:var(--mat-paginator-container-text-tracking)}.mat-mdc-paginator .mat-mdc-select-value{font-size:var(--mat-paginator-select-trigger-text-size)}.mat-mdc-paginator .mat-mdc-form-field-subscript-wrapper{display:none}.mat-mdc-paginator .mat-mdc-select{line-height:1.5}.mat-mdc-paginator-outer-container{display:flex}.mat-mdc-paginator-container{display:flex;align-items:center;justify-content:flex-end;padding:0 8px;flex-wrap:wrap-reverse;width:100%;min-height:var(--mat-paginator-container-size)}.mat-mdc-paginator-page-size{display:flex;align-items:baseline;margin-right:8px}[dir=rtl] .mat-mdc-paginator-page-size{margin-right:0;margin-left:8px}.mat-mdc-paginator-page-size-label{margin:0 4px}.mat-mdc-paginator-page-size-select{margin:0 4px;width:84px}.mat-mdc-paginator-range-label{margin:0 32px 0 24px}.mat-mdc-paginator-range-actions{display:flex;align-items:center}.mat-mdc-paginator-icon{display:inline-block;width:28px;fill:var(--mat-paginator-enabled-icon-color)}.mat-mdc-icon-button[disabled] .mat-mdc-paginator-icon{fill:var(--mat-paginator-disabled-icon-color)}[dir=rtl] .mat-mdc-paginator-icon{transform:rotate(180deg)}.cdk-high-contrast-active .mat-mdc-icon-button[disabled] .mat-mdc-paginator-icon,.cdk-high-contrast-active .mat-mdc-paginator-icon{fill:currentColor;fill:CanvasText}.cdk-high-contrast-active .mat-mdc-paginator-range-actions .mat-mdc-icon-button{outline:solid 1px}\"]\n }]\n }], function () {\n return [{\n type: MatPaginatorIntl\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_PAGINATOR_DEFAULT_OPTIONS]\n }]\n }];\n }, null);\n})();\nclass MatPaginatorModule {\n static {\n this.ɵfac = function MatPaginatorModule_Factory(ɵt) {\n return new (ɵt || MatPaginatorModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatPaginatorModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [MAT_PAGINATOR_INTL_PROVIDER],\n imports: [CommonModule, MatButtonModule, MatSelectModule, MatTooltipModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatPaginatorModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule, MatButtonModule, MatSelectModule, MatTooltipModule],\n exports: [MatPaginator],\n declarations: [MatPaginator],\n providers: [MAT_PAGINATOR_INTL_PROVIDER]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_PAGINATOR_DEFAULT_OPTIONS, MAT_PAGINATOR_INTL_PROVIDER, MAT_PAGINATOR_INTL_PROVIDER_FACTORY, MatPaginator, MatPaginatorIntl, MatPaginatorModule, PageEvent, _MatPaginatorBase };\n","import * as i2 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, Component, ChangeDetectionStrategy, ViewEncapsulation, Optional, Inject, NgModule } from '@angular/core';\nimport { MatCommonModule } from '@angular/material/core';\nimport * as i3 from '@angular/material/legacy-button';\nimport { MatLegacyButtonModule } from '@angular/material/legacy-button';\nimport * as i5 from '@angular/material/legacy-select';\nimport { MatLegacySelectModule } from '@angular/material/legacy-select';\nimport * as i7 from '@angular/material/legacy-tooltip';\nimport { MatLegacyTooltipModule } from '@angular/material/legacy-tooltip';\nimport * as i1 from '@angular/material/paginator';\nimport { _MatPaginatorBase, MAT_PAGINATOR_INTL_PROVIDER } from '@angular/material/paginator';\nfunction MatLegacyPaginator_div_2_mat_form_field_3_mat_option_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"mat-option\", 19);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const pageSizeOption_r3 = ctx.$implicit;\n i0.ɵɵproperty(\"value\", pageSizeOption_r3);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", pageSizeOption_r3, \" \");\n }\n}\nfunction MatLegacyPaginator_div_2_mat_form_field_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"mat-form-field\", 16)(1, \"mat-select\", 17);\n i0.ɵɵlistener(\"selectionChange\", function MatLegacyPaginator_div_2_mat_form_field_3_Template_mat_select_selectionChange_1_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1._changePageSize($event.value));\n });\n i0.ɵɵtemplate(2, MatLegacyPaginator_div_2_mat_form_field_3_mat_option_2_Template, 2, 2, \"mat-option\", 18);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"appearance\", ctx_r1._formFieldAppearance)(\"color\", ctx_r1.color);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"value\", ctx_r1.pageSize)(\"disabled\", ctx_r1.disabled)(\"panelClass\", ctx_r1.selectConfig.panelClass || \"\")(\"disableOptionCentering\", ctx_r1.selectConfig.disableOptionCentering)(\"aria-label\", ctx_r1._intl.itemsPerPageLabel);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r1._displayedPageSizeOptions);\n }\n}\nfunction MatLegacyPaginator_div_2_div_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 20);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r1.pageSize);\n }\n}\nfunction MatLegacyPaginator_div_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 12)(1, \"div\", 13);\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(3, MatLegacyPaginator_div_2_mat_form_field_3_Template, 3, 8, \"mat-form-field\", 14)(4, MatLegacyPaginator_div_2_div_4_Template, 2, 1, \"div\", 15);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate1(\" \", ctx_r1._intl.itemsPerPageLabel, \" \");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1._displayedPageSizeOptions.length > 1);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1._displayedPageSizeOptions.length <= 1);\n }\n}\nfunction MatLegacyPaginator_button_6_Template(rf, ctx) {\n if (rf & 1) {\n const _r4 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 21);\n i0.ɵɵlistener(\"click\", function MatLegacyPaginator_button_6_Template_button_click_0_listener() {\n i0.ɵɵrestoreView(_r4);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.firstPage());\n });\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(1, \"svg\", 7);\n i0.ɵɵelement(2, \"path\", 22);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"matTooltip\", ctx_r1._intl.firstPageLabel)(\"matTooltipDisabled\", ctx_r1._previousButtonsDisabled())(\"matTooltipPosition\", \"above\")(\"disabled\", ctx_r1._previousButtonsDisabled());\n i0.ɵɵattribute(\"aria-label\", ctx_r1._intl.firstPageLabel);\n }\n}\nfunction MatLegacyPaginator_button_13_Template(rf, ctx) {\n if (rf & 1) {\n const _r5 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 23);\n i0.ɵɵlistener(\"click\", function MatLegacyPaginator_button_13_Template_button_click_0_listener() {\n i0.ɵɵrestoreView(_r5);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.lastPage());\n });\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(1, \"svg\", 7);\n i0.ɵɵelement(2, \"path\", 24);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"matTooltip\", ctx_r1._intl.lastPageLabel)(\"matTooltipDisabled\", ctx_r1._nextButtonsDisabled())(\"matTooltipPosition\", \"above\")(\"disabled\", ctx_r1._nextButtonsDisabled());\n i0.ɵɵattribute(\"aria-label\", ctx_r1._intl.lastPageLabel);\n }\n}\nexport { PageEvent as LegacyPageEvent, MAT_PAGINATOR_INTL_PROVIDER as MAT_LEGACY_PAGINATOR_INTL_PROVIDER, MAT_PAGINATOR_INTL_PROVIDER_FACTORY as MAT_LEGACY_PAGINATOR_INTL_PROVIDER_FACTORY, MatPaginatorIntl as MatLegacyPaginatorIntl, _MatPaginatorBase as _MatLegacyPaginatorBase } from '@angular/material/paginator';\nimport * as i4 from '@angular/material/legacy-form-field';\nimport * as i6 from '@angular/material/legacy-core';\n\n/**\n * Injection token that can be used to provide the default options for the paginator module.\n * @deprecated Use `MAT_PAGINATOR_DEFAULT_OPTIONS` from `@angular/material/paginator` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nconst MAT_LEGACY_PAGINATOR_DEFAULT_OPTIONS = new InjectionToken('MAT_LEGACY_PAGINATOR_DEFAULT_OPTIONS');\n/**\n * Component to provide navigation between paged information. Displays the size of the current\n * page, user-selectable options to change that size, what items are being shown, and\n * navigational button to go to the previous or next page.\n * @deprecated Use `MatPaginator` from `@angular/material/paginator` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyPaginator extends _MatPaginatorBase {\n constructor(intl, changeDetectorRef, defaults) {\n super(intl, changeDetectorRef, defaults);\n if (defaults && defaults.formFieldAppearance != null) {\n this._formFieldAppearance = defaults.formFieldAppearance;\n }\n }\n static {\n this.ɵfac = function MatLegacyPaginator_Factory(ɵt) {\n return new (ɵt || MatLegacyPaginator)(i0.ɵɵdirectiveInject(i1.MatPaginatorIntl), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(MAT_LEGACY_PAGINATOR_DEFAULT_OPTIONS, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatLegacyPaginator,\n selectors: [[\"mat-paginator\"]],\n hostAttrs: [\"role\", \"group\", 1, \"mat-paginator\"],\n inputs: {\n disabled: \"disabled\"\n },\n exportAs: [\"matPaginator\"],\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 14,\n vars: 14,\n consts: [[1, \"mat-paginator-outer-container\"], [1, \"mat-paginator-container\"], [\"class\", \"mat-paginator-page-size\", 4, \"ngIf\"], [1, \"mat-paginator-range-actions\"], [1, \"mat-paginator-range-label\"], [\"mat-icon-button\", \"\", \"type\", \"button\", \"class\", \"mat-paginator-navigation-first\", 3, \"matTooltip\", \"matTooltipDisabled\", \"matTooltipPosition\", \"disabled\", \"click\", 4, \"ngIf\"], [\"mat-icon-button\", \"\", \"type\", \"button\", 1, \"mat-paginator-navigation-previous\", 3, \"click\", \"matTooltip\", \"matTooltipDisabled\", \"matTooltipPosition\", \"disabled\"], [\"viewBox\", \"0 0 24 24\", \"focusable\", \"false\", \"aria-hidden\", \"true\", 1, \"mat-paginator-icon\"], [\"d\", \"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z\"], [\"mat-icon-button\", \"\", \"type\", \"button\", 1, \"mat-paginator-navigation-next\", 3, \"click\", \"matTooltip\", \"matTooltipDisabled\", \"matTooltipPosition\", \"disabled\"], [\"d\", \"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"], [\"mat-icon-button\", \"\", \"type\", \"button\", \"class\", \"mat-paginator-navigation-last\", 3, \"matTooltip\", \"matTooltipDisabled\", \"matTooltipPosition\", \"disabled\", \"click\", 4, \"ngIf\"], [1, \"mat-paginator-page-size\"], [1, \"mat-paginator-page-size-label\"], [\"class\", \"mat-paginator-page-size-select\", 3, \"appearance\", \"color\", 4, \"ngIf\"], [\"class\", \"mat-paginator-page-size-value\", 4, \"ngIf\"], [1, \"mat-paginator-page-size-select\", 3, \"appearance\", \"color\"], [3, \"selectionChange\", \"value\", \"disabled\", \"panelClass\", \"disableOptionCentering\", \"aria-label\"], [3, \"value\", 4, \"ngFor\", \"ngForOf\"], [3, \"value\"], [1, \"mat-paginator-page-size-value\"], [\"mat-icon-button\", \"\", \"type\", \"button\", 1, \"mat-paginator-navigation-first\", 3, \"click\", \"matTooltip\", \"matTooltipDisabled\", \"matTooltipPosition\", \"disabled\"], [\"d\", \"M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z\"], [\"mat-icon-button\", \"\", \"type\", \"button\", 1, \"mat-paginator-navigation-last\", 3, \"click\", \"matTooltip\", \"matTooltipDisabled\", \"matTooltipPosition\", \"disabled\"], [\"d\", \"M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z\"]],\n template: function MatLegacyPaginator_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0)(1, \"div\", 1);\n i0.ɵɵtemplate(2, MatLegacyPaginator_div_2_Template, 5, 3, \"div\", 2);\n i0.ɵɵelementStart(3, \"div\", 3)(4, \"div\", 4);\n i0.ɵɵtext(5);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(6, MatLegacyPaginator_button_6_Template, 3, 5, \"button\", 5);\n i0.ɵɵelementStart(7, \"button\", 6);\n i0.ɵɵlistener(\"click\", function MatLegacyPaginator_Template_button_click_7_listener() {\n return ctx.previousPage();\n });\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(8, \"svg\", 7);\n i0.ɵɵelement(9, \"path\", 8);\n i0.ɵɵelementEnd()();\n i0.ɵɵnamespaceHTML();\n i0.ɵɵelementStart(10, \"button\", 9);\n i0.ɵɵlistener(\"click\", function MatLegacyPaginator_Template_button_click_10_listener() {\n return ctx.nextPage();\n });\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(11, \"svg\", 7);\n i0.ɵɵelement(12, \"path\", 10);\n i0.ɵɵelementEnd()();\n i0.ɵɵtemplate(13, MatLegacyPaginator_button_13_Template, 3, 5, \"button\", 11);\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", !ctx.hidePageSize);\n i0.ɵɵadvance(3);\n i0.ɵɵtextInterpolate1(\" \", ctx._intl.getRangeLabel(ctx.pageIndex, ctx.pageSize, ctx.length), \" \");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.showFirstLastButtons);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"matTooltip\", ctx._intl.previousPageLabel)(\"matTooltipDisabled\", ctx._previousButtonsDisabled())(\"matTooltipPosition\", \"above\")(\"disabled\", ctx._previousButtonsDisabled());\n i0.ɵɵattribute(\"aria-label\", ctx._intl.previousPageLabel);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"matTooltip\", ctx._intl.nextPageLabel)(\"matTooltipDisabled\", ctx._nextButtonsDisabled())(\"matTooltipPosition\", \"above\")(\"disabled\", ctx._nextButtonsDisabled());\n i0.ɵɵattribute(\"aria-label\", ctx._intl.nextPageLabel);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngIf\", ctx.showFirstLastButtons);\n }\n },\n dependencies: [i2.NgForOf, i2.NgIf, i3.MatLegacyButton, i4.MatLegacyFormField, i5.MatLegacySelect, i6.MatLegacyOption, i7.MatLegacyTooltip],\n styles: [\".mat-paginator{display:block}.mat-paginator-outer-container{display:flex}.mat-paginator-container{display:flex;align-items:center;justify-content:flex-end;padding:0 8px;flex-wrap:wrap-reverse;width:100%}.mat-paginator-page-size{display:flex;align-items:baseline;margin-right:8px}[dir=rtl] .mat-paginator-page-size{margin-right:0;margin-left:8px}.mat-paginator-page-size-label{margin:0 4px}.mat-paginator-page-size-select{margin:6px 4px 0 4px;width:56px}.mat-paginator-page-size-select.mat-form-field-appearance-outline{width:64px}.mat-paginator-page-size-select.mat-form-field-appearance-fill{width:64px}.mat-paginator-range-label{margin:0 32px 0 24px}.mat-paginator-range-actions{display:flex;align-items:center}.mat-paginator-icon{display:inline-block;width:28px;fill:currentColor}[dir=rtl] .mat-paginator-icon{transform:rotate(180deg)}.cdk-high-contrast-active .mat-paginator-icon{fill:CanvasText}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyPaginator, [{\n type: Component,\n args: [{\n selector: 'mat-paginator',\n exportAs: 'matPaginator',\n inputs: ['disabled'],\n host: {\n 'class': 'mat-paginator',\n 'role': 'group'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: \"\\n \\n \\n \\n {{_intl.itemsPerPageLabel}}\\n \\n\\n 1\\\"\\n [appearance]=\\\"_formFieldAppearance!\\\"\\n [color]=\\\"color\\\"\\n class=\\\"mat-paginator-page-size-select\\\">\\n \\n \\n {{pageSizeOption}}\\n \\n \\n \\n\\n {{pageSize}}\\n \\n\\n \\n \\n {{_intl.getRangeLabel(pageIndex, pageSize, length)}}\\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n\",\n styles: [\".mat-paginator{display:block}.mat-paginator-outer-container{display:flex}.mat-paginator-container{display:flex;align-items:center;justify-content:flex-end;padding:0 8px;flex-wrap:wrap-reverse;width:100%}.mat-paginator-page-size{display:flex;align-items:baseline;margin-right:8px}[dir=rtl] .mat-paginator-page-size{margin-right:0;margin-left:8px}.mat-paginator-page-size-label{margin:0 4px}.mat-paginator-page-size-select{margin:6px 4px 0 4px;width:56px}.mat-paginator-page-size-select.mat-form-field-appearance-outline{width:64px}.mat-paginator-page-size-select.mat-form-field-appearance-fill{width:64px}.mat-paginator-range-label{margin:0 32px 0 24px}.mat-paginator-range-actions{display:flex;align-items:center}.mat-paginator-icon{display:inline-block;width:28px;fill:currentColor}[dir=rtl] .mat-paginator-icon{transform:rotate(180deg)}.cdk-high-contrast-active .mat-paginator-icon{fill:CanvasText}\"]\n }]\n }], function () {\n return [{\n type: i1.MatPaginatorIntl\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_LEGACY_PAGINATOR_DEFAULT_OPTIONS]\n }]\n }];\n }, null);\n})();\n\n/**\n * @deprecated Use `MatPaginatorModule` from `@angular/material/paginator` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyPaginatorModule {\n static {\n this.ɵfac = function MatLegacyPaginatorModule_Factory(ɵt) {\n return new (ɵt || MatLegacyPaginatorModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatLegacyPaginatorModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [MAT_PAGINATOR_INTL_PROVIDER],\n imports: [CommonModule, MatLegacyButtonModule, MatLegacySelectModule, MatLegacyTooltipModule, MatCommonModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyPaginatorModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule, MatLegacyButtonModule, MatLegacySelectModule, MatLegacyTooltipModule, MatCommonModule],\n exports: [MatLegacyPaginator],\n declarations: [MatLegacyPaginator],\n providers: [MAT_PAGINATOR_INTL_PROVIDER]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_LEGACY_PAGINATOR_DEFAULT_OPTIONS, MatLegacyPaginator, MatLegacyPaginatorModule };\n","import * as i0 from '@angular/core';\nimport { InjectionToken, forwardRef, EventEmitter, Directive, Input, Output, Component, ViewEncapsulation, ChangeDetectionStrategy, Attribute, Inject, Optional, ViewChild, NgModule } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, NG_VALIDATORS, CheckboxRequiredValidator } from '@angular/forms';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\nimport * as i1 from '@angular/cdk/a11y';\nimport * as i2 from '@angular/material/core';\nimport { mixinTabIndex, mixinColor, mixinDisableRipple, mixinDisabled, MatCommonModule, MatRippleModule } from '@angular/material/core';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport * as i3 from '@angular/common';\nimport { CommonModule } from '@angular/common';\n\n/** Injection token to be used to override the default options for `mat-slide-toggle`. */\nconst _c0 = [\"switch\"];\nconst _c1 = [\"*\"];\nfunction MatSlideToggle_div_10_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 12);\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(1, \"svg\", 13);\n i0.ɵɵelement(2, \"path\", 14);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"svg\", 15);\n i0.ɵɵelement(4, \"path\", 16);\n i0.ɵɵelementEnd()();\n }\n}\nconst MAT_SLIDE_TOGGLE_DEFAULT_OPTIONS = new InjectionToken('mat-slide-toggle-default-options', {\n providedIn: 'root',\n factory: () => ({\n disableToggleValue: false,\n hideIcon: false\n })\n});\n\n/** @docs-private */\nconst MAT_SLIDE_TOGGLE_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MatSlideToggle),\n multi: true\n};\n/** Change event object emitted by a slide toggle. */\nclass MatSlideToggleChange {\n constructor( /** The source slide toggle of the event. */\n source, /** The new `checked` value of the slide toggle. */\n checked) {\n this.source = source;\n this.checked = checked;\n }\n}\n// Increasing integer for generating unique ids for slide-toggle components.\nlet nextUniqueId = 0;\n// Boilerplate for applying mixins to MatSlideToggle.\n/** @docs-private */\nconst _MatSlideToggleMixinBase = mixinTabIndex(mixinColor(mixinDisableRipple(mixinDisabled(class {\n constructor(_elementRef) {\n this._elementRef = _elementRef;\n }\n}))));\nclass _MatSlideToggleBase extends _MatSlideToggleMixinBase {\n /** Whether the slide-toggle is required. */\n get required() {\n return this._required;\n }\n set required(value) {\n this._required = coerceBooleanProperty(value);\n }\n /** Whether the slide-toggle element is checked or not. */\n get checked() {\n return this._checked;\n }\n set checked(value) {\n this._checked = coerceBooleanProperty(value);\n this._changeDetectorRef.markForCheck();\n }\n /** Whether to hide the icon inside of the slide toggle. */\n get hideIcon() {\n return this._hideIcon;\n }\n set hideIcon(value) {\n this._hideIcon = coerceBooleanProperty(value);\n }\n /** Returns the unique id for the visual hidden input. */\n get inputId() {\n return `${this.id || this._uniqueId}-input`;\n }\n constructor(elementRef, _focusMonitor, _changeDetectorRef, tabIndex, defaults, animationMode, idPrefix) {\n super(elementRef);\n this._focusMonitor = _focusMonitor;\n this._changeDetectorRef = _changeDetectorRef;\n this.defaults = defaults;\n this._onChange = _ => {};\n this._onTouched = () => {};\n this._required = false;\n this._checked = false;\n /** Name value will be applied to the input element if present. */\n this.name = null;\n /** Whether the label should appear after or before the slide-toggle. Defaults to 'after'. */\n this.labelPosition = 'after';\n /** Used to set the aria-label attribute on the underlying input element. */\n this.ariaLabel = null;\n /** Used to set the aria-labelledby attribute on the underlying input element. */\n this.ariaLabelledby = null;\n this._hideIcon = false;\n /** An event will be dispatched each time the slide-toggle changes its value. */\n this.change = new EventEmitter();\n /**\n * An event will be dispatched each time the slide-toggle input is toggled.\n * This event is always emitted when the user toggles the slide toggle, but this does not mean\n * the slide toggle's value has changed.\n */\n this.toggleChange = new EventEmitter();\n this.tabIndex = parseInt(tabIndex) || 0;\n this.color = this.defaultColor = defaults.color || 'accent';\n this._noopAnimations = animationMode === 'NoopAnimations';\n this.id = this._uniqueId = `${idPrefix}${++nextUniqueId}`;\n this._hideIcon = defaults.hideIcon ?? false;\n }\n ngAfterContentInit() {\n this._focusMonitor.monitor(this._elementRef, true).subscribe(focusOrigin => {\n if (focusOrigin === 'keyboard' || focusOrigin === 'program') {\n this._focused = true;\n this._changeDetectorRef.markForCheck();\n } else if (!focusOrigin) {\n // When a focused element becomes disabled, the browser *immediately* fires a blur event.\n // Angular does not expect events to be raised during change detection, so any state\n // change (such as a form control's ng-touched) will cause a changed-after-checked error.\n // See https://github.com/angular/angular/issues/17793. To work around this, we defer\n // telling the form control it has been touched until the next tick.\n Promise.resolve().then(() => {\n this._focused = false;\n this._onTouched();\n this._changeDetectorRef.markForCheck();\n });\n }\n });\n }\n ngOnDestroy() {\n this._focusMonitor.stopMonitoring(this._elementRef);\n }\n /** Implemented as part of ControlValueAccessor. */\n writeValue(value) {\n this.checked = !!value;\n }\n /** Implemented as part of ControlValueAccessor. */\n registerOnChange(fn) {\n this._onChange = fn;\n }\n /** Implemented as part of ControlValueAccessor. */\n registerOnTouched(fn) {\n this._onTouched = fn;\n }\n /** Implemented as a part of ControlValueAccessor. */\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n this._changeDetectorRef.markForCheck();\n }\n /** Toggles the checked state of the slide-toggle. */\n toggle() {\n this.checked = !this.checked;\n this._onChange(this.checked);\n }\n /**\n * Emits a change event on the `change` output. Also notifies the FormControl about the change.\n */\n _emitChangeEvent() {\n this._onChange(this.checked);\n this.change.emit(this._createChangeEvent(this.checked));\n }\n static {\n this.ɵfac = function _MatSlideToggleBase_Factory(ɵt) {\n i0.ɵɵinvalidFactory();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: _MatSlideToggleBase,\n inputs: {\n name: \"name\",\n id: \"id\",\n labelPosition: \"labelPosition\",\n ariaLabel: [0, \"aria-label\", \"ariaLabel\"],\n ariaLabelledby: [0, \"aria-labelledby\", \"ariaLabelledby\"],\n ariaDescribedby: [0, \"aria-describedby\", \"ariaDescribedby\"],\n required: \"required\",\n checked: \"checked\",\n hideIcon: \"hideIcon\"\n },\n outputs: {\n change: \"change\",\n toggleChange: \"toggleChange\"\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(_MatSlideToggleBase, [{\n type: Directive\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i1.FocusMonitor\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: undefined\n }, {\n type: undefined\n }, {\n type: undefined\n }, {\n type: undefined\n }];\n }, {\n name: [{\n type: Input\n }],\n id: [{\n type: Input\n }],\n labelPosition: [{\n type: Input\n }],\n ariaLabel: [{\n type: Input,\n args: ['aria-label']\n }],\n ariaLabelledby: [{\n type: Input,\n args: ['aria-labelledby']\n }],\n ariaDescribedby: [{\n type: Input,\n args: ['aria-describedby']\n }],\n required: [{\n type: Input\n }],\n checked: [{\n type: Input\n }],\n hideIcon: [{\n type: Input\n }],\n change: [{\n type: Output\n }],\n toggleChange: [{\n type: Output\n }]\n });\n})();\nclass MatSlideToggle extends _MatSlideToggleBase {\n /** Returns the unique id for the visual hidden button. */\n get buttonId() {\n return `${this.id || this._uniqueId}-button`;\n }\n constructor(elementRef, focusMonitor, changeDetectorRef, tabIndex, defaults, animationMode) {\n super(elementRef, focusMonitor, changeDetectorRef, tabIndex, defaults, animationMode, 'mat-mdc-slide-toggle-');\n this._labelId = this._uniqueId + '-label';\n }\n /** Method being called whenever the underlying button is clicked. */\n _handleClick() {\n this.toggleChange.emit();\n if (!this.defaults.disableToggleValue) {\n this.checked = !this.checked;\n this._onChange(this.checked);\n this.change.emit(new MatSlideToggleChange(this, this.checked));\n }\n }\n /** Focuses the slide-toggle. */\n focus() {\n this._switchElement.nativeElement.focus();\n }\n _createChangeEvent(isChecked) {\n return new MatSlideToggleChange(this, isChecked);\n }\n _getAriaLabelledBy() {\n if (this.ariaLabelledby) {\n return this.ariaLabelledby;\n }\n // Even though we have a `label` element with a `for` pointing to the button, we need the\n // `aria-labelledby`, because the button gets flagged as not having a label by tools like axe.\n return this.ariaLabel ? null : this._labelId;\n }\n static {\n this.ɵfac = function MatSlideToggle_Factory(ɵt) {\n return new (ɵt || MatSlideToggle)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.FocusMonitor), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵinjectAttribute('tabindex'), i0.ɵɵdirectiveInject(MAT_SLIDE_TOGGLE_DEFAULT_OPTIONS), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatSlideToggle,\n selectors: [[\"mat-slide-toggle\"]],\n viewQuery: function MatSlideToggle_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._switchElement = _t.first);\n }\n },\n hostAttrs: [1, \"mat-mdc-slide-toggle\"],\n hostVars: 11,\n hostBindings: function MatSlideToggle_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵhostProperty(\"id\", ctx.id);\n i0.ɵɵattribute(\"tabindex\", null)(\"aria-label\", null)(\"name\", null)(\"aria-labelledby\", null);\n i0.ɵɵclassProp(\"mat-mdc-slide-toggle-focused\", ctx._focused)(\"mat-mdc-slide-toggle-checked\", ctx.checked)(\"_mat-animation-noopable\", ctx._noopAnimations);\n }\n },\n inputs: {\n disabled: \"disabled\",\n disableRipple: \"disableRipple\",\n color: \"color\",\n tabIndex: \"tabIndex\"\n },\n exportAs: [\"matSlideToggle\"],\n features: [i0.ɵɵProvidersFeature([MAT_SLIDE_TOGGLE_VALUE_ACCESSOR]), i0.ɵɵInheritDefinitionFeature],\n ngContentSelectors: _c1,\n decls: 13,\n vars: 25,\n consts: [[\"switch\", \"\"], [1, \"mdc-form-field\"], [\"role\", \"switch\", \"type\", \"button\", 1, \"mdc-switch\", 3, \"click\", \"tabIndex\", \"disabled\"], [1, \"mdc-switch__track\"], [1, \"mdc-switch__handle-track\"], [1, \"mdc-switch__handle\"], [1, \"mdc-switch__shadow\"], [1, \"mdc-elevation-overlay\"], [1, \"mdc-switch__ripple\"], [\"mat-ripple\", \"\", 1, \"mat-mdc-slide-toggle-ripple\", \"mat-mdc-focus-indicator\", 3, \"matRippleTrigger\", \"matRippleDisabled\", \"matRippleCentered\"], [\"class\", \"mdc-switch__icons\", 4, \"ngIf\"], [1, \"mdc-label\", 3, \"click\", \"for\"], [1, \"mdc-switch__icons\"], [\"viewBox\", \"0 0 24 24\", \"aria-hidden\", \"true\", 1, \"mdc-switch__icon\", \"mdc-switch__icon--on\"], [\"d\", \"M19.69,5.23L8.96,15.96l-4.23-4.23L2.96,13.5l6,6L21.46,7L19.69,5.23z\"], [\"viewBox\", \"0 0 24 24\", \"aria-hidden\", \"true\", 1, \"mdc-switch__icon\", \"mdc-switch__icon--off\"], [\"d\", \"M20 13H4v-2h16v2z\"]],\n template: function MatSlideToggle_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"div\", 1)(1, \"button\", 2, 0);\n i0.ɵɵlistener(\"click\", function MatSlideToggle_Template_button_click_1_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._handleClick());\n });\n i0.ɵɵelement(3, \"div\", 3);\n i0.ɵɵelementStart(4, \"div\", 4)(5, \"div\", 5)(6, \"div\", 6);\n i0.ɵɵelement(7, \"div\", 7);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(8, \"div\", 8);\n i0.ɵɵelement(9, \"div\", 9);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(10, MatSlideToggle_div_10_Template, 5, 0, \"div\", 10);\n i0.ɵɵelementEnd()()();\n i0.ɵɵelementStart(11, \"label\", 11);\n i0.ɵɵlistener(\"click\", function MatSlideToggle_Template_label_click_11_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView($event.stopPropagation());\n });\n i0.ɵɵprojection(12);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const switch_r2 = i0.ɵɵreference(2);\n i0.ɵɵclassProp(\"mdc-form-field--align-end\", ctx.labelPosition == \"before\");\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"mdc-switch--selected\", ctx.checked)(\"mdc-switch--unselected\", !ctx.checked)(\"mdc-switch--checked\", ctx.checked)(\"mdc-switch--disabled\", ctx.disabled);\n i0.ɵɵproperty(\"tabIndex\", ctx.tabIndex)(\"disabled\", ctx.disabled);\n i0.ɵɵattribute(\"id\", ctx.buttonId)(\"name\", ctx.name)(\"aria-label\", ctx.ariaLabel)(\"aria-labelledby\", ctx._getAriaLabelledBy())(\"aria-describedby\", ctx.ariaDescribedby)(\"aria-required\", ctx.required || null)(\"aria-checked\", ctx.checked);\n i0.ɵɵadvance(8);\n i0.ɵɵproperty(\"matRippleTrigger\", switch_r2)(\"matRippleDisabled\", ctx.disableRipple || ctx.disabled)(\"matRippleCentered\", true);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx.hideIcon);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"for\", ctx.buttonId);\n i0.ɵɵattribute(\"id\", ctx._labelId);\n }\n },\n dependencies: [i2.MatRipple, i3.NgIf],\n styles: [\".mdc-form-field{display:inline-flex;align-items:center;vertical-align:middle}.mdc-form-field[hidden]{display:none}.mdc-form-field>label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0;order:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{margin-left:auto;margin-right:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{padding-left:0;padding-right:4px}.mdc-form-field--nowrap>label{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.mdc-form-field--align-end>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px;order:-1}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{margin-left:0;margin-right:auto}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{padding-left:4px;padding-right:0}.mdc-form-field--space-between{justify-content:space-between}.mdc-form-field--space-between>label{margin:0}[dir=rtl] .mdc-form-field--space-between>label,.mdc-form-field--space-between>label[dir=rtl]{margin:0}.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1);background-color:var(--mdc-elevation-overlay-color)}.mdc-switch{align-items:center;background:none;border:none;cursor:pointer;display:inline-flex;flex-shrink:0;margin:0;outline:none;overflow:visible;padding:0;position:relative}.mdc-switch[hidden]{display:none}.mdc-switch:disabled{cursor:default;pointer-events:none}.mdc-switch__track{overflow:hidden;position:relative;width:100%}.mdc-switch__track::before,.mdc-switch__track::after{border:1px solid rgba(0,0,0,0);border-radius:inherit;box-sizing:border-box;content:\\\"\\\";height:100%;left:0;position:absolute;width:100%}@media screen and (forced-colors: active){.mdc-switch__track::before,.mdc-switch__track::after{border-color:currentColor}}.mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0, 0, 0.2, 1);transform:translateX(0)}.mdc-switch__track::after{transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.6, 1);transform:translateX(-100%)}[dir=rtl] .mdc-switch__track::after,.mdc-switch__track[dir=rtl]::after{transform:translateX(100%)}.mdc-switch--selected .mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.6, 1);transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch__track::before,.mdc-switch--selected .mdc-switch__track[dir=rtl]::before{transform:translateX(-100%)}.mdc-switch--selected .mdc-switch__track::after{transition:transform 75ms 0ms cubic-bezier(0, 0, 0.2, 1);transform:translateX(0)}.mdc-switch__handle-track{height:100%;pointer-events:none;position:absolute;top:0;transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);left:0;right:auto;transform:translateX(0)}[dir=rtl] .mdc-switch__handle-track,.mdc-switch__handle-track[dir=rtl]{left:auto;right:0}.mdc-switch--selected .mdc-switch__handle-track{transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch__handle-track,.mdc-switch--selected .mdc-switch__handle-track[dir=rtl]{transform:translateX(-100%)}.mdc-switch__handle{display:flex;pointer-events:auto;position:absolute;top:50%;transform:translateY(-50%);left:0;right:auto}[dir=rtl] .mdc-switch__handle,.mdc-switch__handle[dir=rtl]{left:auto;right:0}.mdc-switch__handle::before,.mdc-switch__handle::after{border:1px solid rgba(0,0,0,0);border-radius:inherit;box-sizing:border-box;content:\\\"\\\";width:100%;height:100%;left:0;position:absolute;top:0;transition:background-color 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1),border-color 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);z-index:-1}@media screen and (forced-colors: active){.mdc-switch__handle::before,.mdc-switch__handle::after{border-color:currentColor}}.mdc-switch__shadow{border-radius:inherit;bottom:0;left:0;position:absolute;right:0;top:0}.mdc-elevation-overlay{bottom:0;left:0;right:0;top:0}.mdc-switch__ripple{left:50%;position:absolute;top:50%;transform:translate(-50%, -50%);z-index:-1}.mdc-switch:disabled .mdc-switch__ripple{display:none}.mdc-switch__icons{height:100%;position:relative;width:100%;z-index:1}.mdc-switch__icon{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0;opacity:0;transition:opacity 30ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-switch--selected .mdc-switch__icon--on,.mdc-switch--unselected .mdc-switch__icon--off{opacity:1;transition:opacity 45ms 30ms cubic-bezier(0, 0, 0.2, 1)}.mdc-switch{width:var(--mdc-switch-track-width);--mdc-switch-disabled-handle-opacity:0.38;--mdc-switch-disabled-selected-icon-opacity:0.38;--mdc-switch-disabled-track-opacity:0.12;--mdc-switch-disabled-unselected-icon-opacity:0.38;--mdc-switch-handle-height:20px;--mdc-switch-handle-shape:10px;--mdc-switch-handle-width:20px;--mdc-switch-selected-icon-size:18px;--mdc-switch-track-height:14px;--mdc-switch-track-shape:7px;--mdc-switch-track-width:36px;--mdc-switch-unselected-icon-size:18px;--mdc-switch-state-layer-size:40px;--mdc-switch-selected-focus-state-layer-opacity:0.12;--mdc-switch-selected-hover-state-layer-opacity:0.04;--mdc-switch-selected-pressed-state-layer-opacity:0.1;--mdc-switch-unselected-focus-state-layer-opacity:0.12;--mdc-switch-unselected-hover-state-layer-opacity:0.04;--mdc-switch-unselected-pressed-state-layer-opacity:0.1}.mdc-switch.mdc-switch--selected:enabled .mdc-switch__handle::after{background:var(--mdc-switch-selected-handle-color)}.mdc-switch.mdc-switch--selected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-selected-hover-handle-color)}.mdc-switch.mdc-switch--selected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-selected-focus-handle-color)}.mdc-switch.mdc-switch--selected:enabled:active .mdc-switch__handle::after{background:var(--mdc-switch-selected-pressed-handle-color)}.mdc-switch.mdc-switch--selected:disabled .mdc-switch__handle::after{background:var(--mdc-switch-disabled-selected-handle-color)}.mdc-switch.mdc-switch--unselected:enabled .mdc-switch__handle::after{background:var(--mdc-switch-unselected-handle-color)}.mdc-switch.mdc-switch--unselected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-unselected-hover-handle-color)}.mdc-switch.mdc-switch--unselected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-unselected-focus-handle-color)}.mdc-switch.mdc-switch--unselected:enabled:active .mdc-switch__handle::after{background:var(--mdc-switch-unselected-pressed-handle-color)}.mdc-switch.mdc-switch--unselected:disabled .mdc-switch__handle::after{background:var(--mdc-switch-disabled-unselected-handle-color)}.mdc-switch .mdc-switch__handle::before{background:var(--mdc-switch-handle-surface-color)}.mdc-switch:enabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-handle-elevation)}.mdc-switch:disabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-disabled-handle-elevation)}.mdc-switch .mdc-switch__focus-ring-wrapper,.mdc-switch .mdc-switch__handle{height:var(--mdc-switch-handle-height)}.mdc-switch:disabled .mdc-switch__handle::after{opacity:var(--mdc-switch-disabled-handle-opacity)}.mdc-switch .mdc-switch__handle{border-radius:var(--mdc-switch-handle-shape)}.mdc-switch .mdc-switch__handle{width:var(--mdc-switch-handle-width)}.mdc-switch .mdc-switch__handle-track{width:calc(100% - var(--mdc-switch-handle-width))}.mdc-switch.mdc-switch--selected:enabled .mdc-switch__icon{fill:var(--mdc-switch-selected-icon-color)}.mdc-switch.mdc-switch--selected:disabled .mdc-switch__icon{fill:var(--mdc-switch-disabled-selected-icon-color)}.mdc-switch.mdc-switch--unselected:enabled .mdc-switch__icon{fill:var(--mdc-switch-unselected-icon-color)}.mdc-switch.mdc-switch--unselected:disabled .mdc-switch__icon{fill:var(--mdc-switch-disabled-unselected-icon-color)}.mdc-switch.mdc-switch--selected:disabled .mdc-switch__icons{opacity:var(--mdc-switch-disabled-selected-icon-opacity)}.mdc-switch.mdc-switch--unselected:disabled .mdc-switch__icons{opacity:var(--mdc-switch-disabled-unselected-icon-opacity)}.mdc-switch.mdc-switch--selected .mdc-switch__icon{width:var(--mdc-switch-selected-icon-size);height:var(--mdc-switch-selected-icon-size)}.mdc-switch.mdc-switch--unselected .mdc-switch__icon{width:var(--mdc-switch-unselected-icon-size);height:var(--mdc-switch-unselected-icon-size)}.mdc-switch.mdc-switch--selected:enabled:hover:not(:focus) .mdc-switch__ripple::before,.mdc-switch.mdc-switch--selected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background-color:var(--mdc-switch-selected-hover-state-layer-color)}.mdc-switch.mdc-switch--selected:enabled:focus .mdc-switch__ripple::before,.mdc-switch.mdc-switch--selected:enabled:focus .mdc-switch__ripple::after{background-color:var(--mdc-switch-selected-focus-state-layer-color)}.mdc-switch.mdc-switch--selected:enabled:active .mdc-switch__ripple::before,.mdc-switch.mdc-switch--selected:enabled:active .mdc-switch__ripple::after{background-color:var(--mdc-switch-selected-pressed-state-layer-color)}.mdc-switch.mdc-switch--unselected:enabled:hover:not(:focus) .mdc-switch__ripple::before,.mdc-switch.mdc-switch--unselected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background-color:var(--mdc-switch-unselected-hover-state-layer-color)}.mdc-switch.mdc-switch--unselected:enabled:focus .mdc-switch__ripple::before,.mdc-switch.mdc-switch--unselected:enabled:focus .mdc-switch__ripple::after{background-color:var(--mdc-switch-unselected-focus-state-layer-color)}.mdc-switch.mdc-switch--unselected:enabled:active .mdc-switch__ripple::before,.mdc-switch.mdc-switch--unselected:enabled:active .mdc-switch__ripple::after{background-color:var(--mdc-switch-unselected-pressed-state-layer-color)}.mdc-switch.mdc-switch--selected:enabled:hover:not(:focus):hover .mdc-switch__ripple::before,.mdc-switch.mdc-switch--selected:enabled:hover:not(:focus).mdc-ripple-surface--hover .mdc-switch__ripple::before{opacity:var(--mdc-switch-selected-hover-state-layer-opacity)}.mdc-switch.mdc-switch--selected:enabled:focus.mdc-ripple-upgraded--background-focused .mdc-switch__ripple::before,.mdc-switch.mdc-switch--selected:enabled:focus:not(.mdc-ripple-upgraded):focus .mdc-switch__ripple::before{transition-duration:75ms;opacity:var(--mdc-switch-selected-focus-state-layer-opacity)}.mdc-switch.mdc-switch--selected:enabled:active:not(.mdc-ripple-upgraded) .mdc-switch__ripple::after{transition:opacity 150ms linear}.mdc-switch.mdc-switch--selected:enabled:active:not(.mdc-ripple-upgraded):active .mdc-switch__ripple::after{transition-duration:75ms;opacity:var(--mdc-switch-selected-pressed-state-layer-opacity)}.mdc-switch.mdc-switch--selected:enabled:active.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-switch-selected-pressed-state-layer-opacity)}.mdc-switch.mdc-switch--unselected:enabled:hover:not(:focus):hover .mdc-switch__ripple::before,.mdc-switch.mdc-switch--unselected:enabled:hover:not(:focus).mdc-ripple-surface--hover .mdc-switch__ripple::before{opacity:var(--mdc-switch-unselected-hover-state-layer-opacity)}.mdc-switch.mdc-switch--unselected:enabled:focus.mdc-ripple-upgraded--background-focused .mdc-switch__ripple::before,.mdc-switch.mdc-switch--unselected:enabled:focus:not(.mdc-ripple-upgraded):focus .mdc-switch__ripple::before{transition-duration:75ms;opacity:var(--mdc-switch-unselected-focus-state-layer-opacity)}.mdc-switch.mdc-switch--unselected:enabled:active:not(.mdc-ripple-upgraded) .mdc-switch__ripple::after{transition:opacity 150ms linear}.mdc-switch.mdc-switch--unselected:enabled:active:not(.mdc-ripple-upgraded):active .mdc-switch__ripple::after{transition-duration:75ms;opacity:var(--mdc-switch-unselected-pressed-state-layer-opacity)}.mdc-switch.mdc-switch--unselected:enabled:active.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-switch-unselected-pressed-state-layer-opacity)}.mdc-switch .mdc-switch__ripple{height:var(--mdc-switch-state-layer-size);width:var(--mdc-switch-state-layer-size)}.mdc-switch .mdc-switch__track{height:var(--mdc-switch-track-height)}.mdc-switch:disabled .mdc-switch__track{opacity:var(--mdc-switch-disabled-track-opacity)}.mdc-switch:enabled .mdc-switch__track::after{background:var(--mdc-switch-selected-track-color)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::after{background:var(--mdc-switch-selected-hover-track-color)}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::after{background:var(--mdc-switch-selected-focus-track-color)}.mdc-switch:enabled:active .mdc-switch__track::after{background:var(--mdc-switch-selected-pressed-track-color)}.mdc-switch:disabled .mdc-switch__track::after{background:var(--mdc-switch-disabled-selected-track-color)}.mdc-switch:enabled .mdc-switch__track::before{background:var(--mdc-switch-unselected-track-color)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::before{background:var(--mdc-switch-unselected-hover-track-color)}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::before{background:var(--mdc-switch-unselected-focus-track-color)}.mdc-switch:enabled:active .mdc-switch__track::before{background:var(--mdc-switch-unselected-pressed-track-color)}.mdc-switch:disabled .mdc-switch__track::before{background:var(--mdc-switch-disabled-unselected-track-color)}.mdc-switch .mdc-switch__track{border-radius:var(--mdc-switch-track-shape)}.mdc-switch:enabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-handle-elevation-shadow)}.mdc-switch:disabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-disabled-handle-elevation-shadow)}.mat-mdc-slide-toggle .mdc-label{font-family:var(--mat-slide-toggle-label-text-font);font-size:var(--mat-slide-toggle-label-text-size);letter-spacing:var(--mat-slide-toggle-label-text-tracking);line-height:var(--mat-slide-toggle-label-text-line-height);font-weight:var(--mat-slide-toggle-label-text-weight)}.mat-mdc-slide-toggle{display:inline-block;-webkit-tap-highlight-color:rgba(0,0,0,0);outline:0}.mat-mdc-slide-toggle .mat-mdc-slide-toggle-ripple,.mat-mdc-slide-toggle .mdc-switch__ripple::after{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-slide-toggle .mat-mdc-slide-toggle-ripple:not(:empty),.mat-mdc-slide-toggle .mdc-switch__ripple::after:not(:empty){transform:translateZ(0)}.mat-mdc-slide-toggle .mdc-switch__ripple::after{content:\\\"\\\";opacity:0}.mat-mdc-slide-toggle .mdc-switch:hover .mdc-switch__ripple::after{opacity:.04;transition:opacity 75ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-slide-toggle.mat-mdc-slide-toggle-focused .mdc-switch .mdc-switch__ripple::after{opacity:.12}.mat-mdc-slide-toggle.mat-mdc-slide-toggle-focused .mat-mdc-focus-indicator::before{content:\\\"\\\"}.mat-mdc-slide-toggle .mat-ripple-element{opacity:.12}.mat-mdc-slide-toggle .mat-mdc-focus-indicator::before{border-radius:50%}.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle-track,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-elevation-overlay,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__icon,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle::before,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle::after,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__track::before,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__track::after{transition:none}.mat-mdc-slide-toggle .mdc-switch:enabled+.mdc-label{cursor:pointer}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatSlideToggle, [{\n type: Component,\n args: [{\n selector: 'mat-slide-toggle',\n inputs: ['disabled', 'disableRipple', 'color', 'tabIndex'],\n host: {\n 'class': 'mat-mdc-slide-toggle',\n '[id]': 'id',\n // Needs to be removed since it causes some a11y issues (see #21266).\n '[attr.tabindex]': 'null',\n '[attr.aria-label]': 'null',\n '[attr.name]': 'null',\n '[attr.aria-labelledby]': 'null',\n '[class.mat-mdc-slide-toggle-focused]': '_focused',\n '[class.mat-mdc-slide-toggle-checked]': 'checked',\n '[class._mat-animation-noopable]': '_noopAnimations'\n },\n exportAs: 'matSlideToggle',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [MAT_SLIDE_TOGGLE_VALUE_ACCESSOR],\n template: \"\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n\",\n styles: [\".mdc-form-field{display:inline-flex;align-items:center;vertical-align:middle}.mdc-form-field[hidden]{display:none}.mdc-form-field>label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0;order:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{margin-left:auto;margin-right:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{padding-left:0;padding-right:4px}.mdc-form-field--nowrap>label{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.mdc-form-field--align-end>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px;order:-1}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{margin-left:0;margin-right:auto}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{padding-left:4px;padding-right:0}.mdc-form-field--space-between{justify-content:space-between}.mdc-form-field--space-between>label{margin:0}[dir=rtl] .mdc-form-field--space-between>label,.mdc-form-field--space-between>label[dir=rtl]{margin:0}.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:var(--mdc-elevation-overlay-opacity);transition:opacity 280ms cubic-bezier(0.4, 0, 0.2, 1);background-color:var(--mdc-elevation-overlay-color)}.mdc-switch{align-items:center;background:none;border:none;cursor:pointer;display:inline-flex;flex-shrink:0;margin:0;outline:none;overflow:visible;padding:0;position:relative}.mdc-switch[hidden]{display:none}.mdc-switch:disabled{cursor:default;pointer-events:none}.mdc-switch__track{overflow:hidden;position:relative;width:100%}.mdc-switch__track::before,.mdc-switch__track::after{border:1px solid rgba(0,0,0,0);border-radius:inherit;box-sizing:border-box;content:\\\"\\\";height:100%;left:0;position:absolute;width:100%}@media screen and (forced-colors: active){.mdc-switch__track::before,.mdc-switch__track::after{border-color:currentColor}}.mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0, 0, 0.2, 1);transform:translateX(0)}.mdc-switch__track::after{transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.6, 1);transform:translateX(-100%)}[dir=rtl] .mdc-switch__track::after,.mdc-switch__track[dir=rtl]::after{transform:translateX(100%)}.mdc-switch--selected .mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.6, 1);transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch__track::before,.mdc-switch--selected .mdc-switch__track[dir=rtl]::before{transform:translateX(-100%)}.mdc-switch--selected .mdc-switch__track::after{transition:transform 75ms 0ms cubic-bezier(0, 0, 0.2, 1);transform:translateX(0)}.mdc-switch__handle-track{height:100%;pointer-events:none;position:absolute;top:0;transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);left:0;right:auto;transform:translateX(0)}[dir=rtl] .mdc-switch__handle-track,.mdc-switch__handle-track[dir=rtl]{left:auto;right:0}.mdc-switch--selected .mdc-switch__handle-track{transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch__handle-track,.mdc-switch--selected .mdc-switch__handle-track[dir=rtl]{transform:translateX(-100%)}.mdc-switch__handle{display:flex;pointer-events:auto;position:absolute;top:50%;transform:translateY(-50%);left:0;right:auto}[dir=rtl] .mdc-switch__handle,.mdc-switch__handle[dir=rtl]{left:auto;right:0}.mdc-switch__handle::before,.mdc-switch__handle::after{border:1px solid rgba(0,0,0,0);border-radius:inherit;box-sizing:border-box;content:\\\"\\\";width:100%;height:100%;left:0;position:absolute;top:0;transition:background-color 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1),border-color 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);z-index:-1}@media screen and (forced-colors: active){.mdc-switch__handle::before,.mdc-switch__handle::after{border-color:currentColor}}.mdc-switch__shadow{border-radius:inherit;bottom:0;left:0;position:absolute;right:0;top:0}.mdc-elevation-overlay{bottom:0;left:0;right:0;top:0}.mdc-switch__ripple{left:50%;position:absolute;top:50%;transform:translate(-50%, -50%);z-index:-1}.mdc-switch:disabled .mdc-switch__ripple{display:none}.mdc-switch__icons{height:100%;position:relative;width:100%;z-index:1}.mdc-switch__icon{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0;opacity:0;transition:opacity 30ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-switch--selected .mdc-switch__icon--on,.mdc-switch--unselected .mdc-switch__icon--off{opacity:1;transition:opacity 45ms 30ms cubic-bezier(0, 0, 0.2, 1)}.mdc-switch{width:var(--mdc-switch-track-width);--mdc-switch-disabled-handle-opacity:0.38;--mdc-switch-disabled-selected-icon-opacity:0.38;--mdc-switch-disabled-track-opacity:0.12;--mdc-switch-disabled-unselected-icon-opacity:0.38;--mdc-switch-handle-height:20px;--mdc-switch-handle-shape:10px;--mdc-switch-handle-width:20px;--mdc-switch-selected-icon-size:18px;--mdc-switch-track-height:14px;--mdc-switch-track-shape:7px;--mdc-switch-track-width:36px;--mdc-switch-unselected-icon-size:18px;--mdc-switch-state-layer-size:40px;--mdc-switch-selected-focus-state-layer-opacity:0.12;--mdc-switch-selected-hover-state-layer-opacity:0.04;--mdc-switch-selected-pressed-state-layer-opacity:0.1;--mdc-switch-unselected-focus-state-layer-opacity:0.12;--mdc-switch-unselected-hover-state-layer-opacity:0.04;--mdc-switch-unselected-pressed-state-layer-opacity:0.1}.mdc-switch.mdc-switch--selected:enabled .mdc-switch__handle::after{background:var(--mdc-switch-selected-handle-color)}.mdc-switch.mdc-switch--selected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-selected-hover-handle-color)}.mdc-switch.mdc-switch--selected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-selected-focus-handle-color)}.mdc-switch.mdc-switch--selected:enabled:active .mdc-switch__handle::after{background:var(--mdc-switch-selected-pressed-handle-color)}.mdc-switch.mdc-switch--selected:disabled .mdc-switch__handle::after{background:var(--mdc-switch-disabled-selected-handle-color)}.mdc-switch.mdc-switch--unselected:enabled .mdc-switch__handle::after{background:var(--mdc-switch-unselected-handle-color)}.mdc-switch.mdc-switch--unselected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-unselected-hover-handle-color)}.mdc-switch.mdc-switch--unselected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-unselected-focus-handle-color)}.mdc-switch.mdc-switch--unselected:enabled:active .mdc-switch__handle::after{background:var(--mdc-switch-unselected-pressed-handle-color)}.mdc-switch.mdc-switch--unselected:disabled .mdc-switch__handle::after{background:var(--mdc-switch-disabled-unselected-handle-color)}.mdc-switch .mdc-switch__handle::before{background:var(--mdc-switch-handle-surface-color)}.mdc-switch:enabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-handle-elevation)}.mdc-switch:disabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-disabled-handle-elevation)}.mdc-switch .mdc-switch__focus-ring-wrapper,.mdc-switch .mdc-switch__handle{height:var(--mdc-switch-handle-height)}.mdc-switch:disabled .mdc-switch__handle::after{opacity:var(--mdc-switch-disabled-handle-opacity)}.mdc-switch .mdc-switch__handle{border-radius:var(--mdc-switch-handle-shape)}.mdc-switch .mdc-switch__handle{width:var(--mdc-switch-handle-width)}.mdc-switch .mdc-switch__handle-track{width:calc(100% - var(--mdc-switch-handle-width))}.mdc-switch.mdc-switch--selected:enabled .mdc-switch__icon{fill:var(--mdc-switch-selected-icon-color)}.mdc-switch.mdc-switch--selected:disabled .mdc-switch__icon{fill:var(--mdc-switch-disabled-selected-icon-color)}.mdc-switch.mdc-switch--unselected:enabled .mdc-switch__icon{fill:var(--mdc-switch-unselected-icon-color)}.mdc-switch.mdc-switch--unselected:disabled .mdc-switch__icon{fill:var(--mdc-switch-disabled-unselected-icon-color)}.mdc-switch.mdc-switch--selected:disabled .mdc-switch__icons{opacity:var(--mdc-switch-disabled-selected-icon-opacity)}.mdc-switch.mdc-switch--unselected:disabled .mdc-switch__icons{opacity:var(--mdc-switch-disabled-unselected-icon-opacity)}.mdc-switch.mdc-switch--selected .mdc-switch__icon{width:var(--mdc-switch-selected-icon-size);height:var(--mdc-switch-selected-icon-size)}.mdc-switch.mdc-switch--unselected .mdc-switch__icon{width:var(--mdc-switch-unselected-icon-size);height:var(--mdc-switch-unselected-icon-size)}.mdc-switch.mdc-switch--selected:enabled:hover:not(:focus) .mdc-switch__ripple::before,.mdc-switch.mdc-switch--selected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background-color:var(--mdc-switch-selected-hover-state-layer-color)}.mdc-switch.mdc-switch--selected:enabled:focus .mdc-switch__ripple::before,.mdc-switch.mdc-switch--selected:enabled:focus .mdc-switch__ripple::after{background-color:var(--mdc-switch-selected-focus-state-layer-color)}.mdc-switch.mdc-switch--selected:enabled:active .mdc-switch__ripple::before,.mdc-switch.mdc-switch--selected:enabled:active .mdc-switch__ripple::after{background-color:var(--mdc-switch-selected-pressed-state-layer-color)}.mdc-switch.mdc-switch--unselected:enabled:hover:not(:focus) .mdc-switch__ripple::before,.mdc-switch.mdc-switch--unselected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background-color:var(--mdc-switch-unselected-hover-state-layer-color)}.mdc-switch.mdc-switch--unselected:enabled:focus .mdc-switch__ripple::before,.mdc-switch.mdc-switch--unselected:enabled:focus .mdc-switch__ripple::after{background-color:var(--mdc-switch-unselected-focus-state-layer-color)}.mdc-switch.mdc-switch--unselected:enabled:active .mdc-switch__ripple::before,.mdc-switch.mdc-switch--unselected:enabled:active .mdc-switch__ripple::after{background-color:var(--mdc-switch-unselected-pressed-state-layer-color)}.mdc-switch.mdc-switch--selected:enabled:hover:not(:focus):hover .mdc-switch__ripple::before,.mdc-switch.mdc-switch--selected:enabled:hover:not(:focus).mdc-ripple-surface--hover .mdc-switch__ripple::before{opacity:var(--mdc-switch-selected-hover-state-layer-opacity)}.mdc-switch.mdc-switch--selected:enabled:focus.mdc-ripple-upgraded--background-focused .mdc-switch__ripple::before,.mdc-switch.mdc-switch--selected:enabled:focus:not(.mdc-ripple-upgraded):focus .mdc-switch__ripple::before{transition-duration:75ms;opacity:var(--mdc-switch-selected-focus-state-layer-opacity)}.mdc-switch.mdc-switch--selected:enabled:active:not(.mdc-ripple-upgraded) .mdc-switch__ripple::after{transition:opacity 150ms linear}.mdc-switch.mdc-switch--selected:enabled:active:not(.mdc-ripple-upgraded):active .mdc-switch__ripple::after{transition-duration:75ms;opacity:var(--mdc-switch-selected-pressed-state-layer-opacity)}.mdc-switch.mdc-switch--selected:enabled:active.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-switch-selected-pressed-state-layer-opacity)}.mdc-switch.mdc-switch--unselected:enabled:hover:not(:focus):hover .mdc-switch__ripple::before,.mdc-switch.mdc-switch--unselected:enabled:hover:not(:focus).mdc-ripple-surface--hover .mdc-switch__ripple::before{opacity:var(--mdc-switch-unselected-hover-state-layer-opacity)}.mdc-switch.mdc-switch--unselected:enabled:focus.mdc-ripple-upgraded--background-focused .mdc-switch__ripple::before,.mdc-switch.mdc-switch--unselected:enabled:focus:not(.mdc-ripple-upgraded):focus .mdc-switch__ripple::before{transition-duration:75ms;opacity:var(--mdc-switch-unselected-focus-state-layer-opacity)}.mdc-switch.mdc-switch--unselected:enabled:active:not(.mdc-ripple-upgraded) .mdc-switch__ripple::after{transition:opacity 150ms linear}.mdc-switch.mdc-switch--unselected:enabled:active:not(.mdc-ripple-upgraded):active .mdc-switch__ripple::after{transition-duration:75ms;opacity:var(--mdc-switch-unselected-pressed-state-layer-opacity)}.mdc-switch.mdc-switch--unselected:enabled:active.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-switch-unselected-pressed-state-layer-opacity)}.mdc-switch .mdc-switch__ripple{height:var(--mdc-switch-state-layer-size);width:var(--mdc-switch-state-layer-size)}.mdc-switch .mdc-switch__track{height:var(--mdc-switch-track-height)}.mdc-switch:disabled .mdc-switch__track{opacity:var(--mdc-switch-disabled-track-opacity)}.mdc-switch:enabled .mdc-switch__track::after{background:var(--mdc-switch-selected-track-color)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::after{background:var(--mdc-switch-selected-hover-track-color)}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::after{background:var(--mdc-switch-selected-focus-track-color)}.mdc-switch:enabled:active .mdc-switch__track::after{background:var(--mdc-switch-selected-pressed-track-color)}.mdc-switch:disabled .mdc-switch__track::after{background:var(--mdc-switch-disabled-selected-track-color)}.mdc-switch:enabled .mdc-switch__track::before{background:var(--mdc-switch-unselected-track-color)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::before{background:var(--mdc-switch-unselected-hover-track-color)}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::before{background:var(--mdc-switch-unselected-focus-track-color)}.mdc-switch:enabled:active .mdc-switch__track::before{background:var(--mdc-switch-unselected-pressed-track-color)}.mdc-switch:disabled .mdc-switch__track::before{background:var(--mdc-switch-disabled-unselected-track-color)}.mdc-switch .mdc-switch__track{border-radius:var(--mdc-switch-track-shape)}.mdc-switch:enabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-handle-elevation-shadow)}.mdc-switch:disabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-disabled-handle-elevation-shadow)}.mat-mdc-slide-toggle .mdc-label{font-family:var(--mat-slide-toggle-label-text-font);font-size:var(--mat-slide-toggle-label-text-size);letter-spacing:var(--mat-slide-toggle-label-text-tracking);line-height:var(--mat-slide-toggle-label-text-line-height);font-weight:var(--mat-slide-toggle-label-text-weight)}.mat-mdc-slide-toggle{display:inline-block;-webkit-tap-highlight-color:rgba(0,0,0,0);outline:0}.mat-mdc-slide-toggle .mat-mdc-slide-toggle-ripple,.mat-mdc-slide-toggle .mdc-switch__ripple::after{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-slide-toggle .mat-mdc-slide-toggle-ripple:not(:empty),.mat-mdc-slide-toggle .mdc-switch__ripple::after:not(:empty){transform:translateZ(0)}.mat-mdc-slide-toggle .mdc-switch__ripple::after{content:\\\"\\\";opacity:0}.mat-mdc-slide-toggle .mdc-switch:hover .mdc-switch__ripple::after{opacity:.04;transition:opacity 75ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-slide-toggle.mat-mdc-slide-toggle-focused .mdc-switch .mdc-switch__ripple::after{opacity:.12}.mat-mdc-slide-toggle.mat-mdc-slide-toggle-focused .mat-mdc-focus-indicator::before{content:\\\"\\\"}.mat-mdc-slide-toggle .mat-ripple-element{opacity:.12}.mat-mdc-slide-toggle .mat-mdc-focus-indicator::before{border-radius:50%}.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle-track,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-elevation-overlay,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__icon,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle::before,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle::after,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__track::before,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__track::after{transition:none}.mat-mdc-slide-toggle .mdc-switch:enabled+.mdc-label{cursor:pointer}\"]\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i1.FocusMonitor\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: undefined,\n decorators: [{\n type: Attribute,\n args: ['tabindex']\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [MAT_SLIDE_TOGGLE_DEFAULT_OPTIONS]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }]\n }];\n }, {\n _switchElement: [{\n type: ViewChild,\n args: ['switch']\n }]\n });\n})();\nconst MAT_SLIDE_TOGGLE_REQUIRED_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => MatSlideToggleRequiredValidator),\n multi: true\n};\n/**\n * Validator for Material slide-toggle components with the required attribute in a\n * template-driven form. The default validator for required form controls asserts\n * that the control value is not undefined but that is not appropriate for a slide-toggle\n * where the value is always defined.\n *\n * Required slide-toggle form controls are valid when checked.\n */\nclass MatSlideToggleRequiredValidator extends CheckboxRequiredValidator {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatSlideToggleRequiredValidator_BaseFactory;\n return function MatSlideToggleRequiredValidator_Factory(ɵt) {\n return (ɵMatSlideToggleRequiredValidator_BaseFactory || (ɵMatSlideToggleRequiredValidator_BaseFactory = i0.ɵɵgetInheritedFactory(MatSlideToggleRequiredValidator)))(ɵt || MatSlideToggleRequiredValidator);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatSlideToggleRequiredValidator,\n selectors: [[\"mat-slide-toggle\", \"required\", \"\", \"formControlName\", \"\"], [\"mat-slide-toggle\", \"required\", \"\", \"formControl\", \"\"], [\"mat-slide-toggle\", \"required\", \"\", \"ngModel\", \"\"]],\n features: [i0.ɵɵProvidersFeature([MAT_SLIDE_TOGGLE_REQUIRED_VALIDATOR]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatSlideToggleRequiredValidator, [{\n type: Directive,\n args: [{\n selector: `mat-slide-toggle[required][formControlName],\n mat-slide-toggle[required][formControl], mat-slide-toggle[required][ngModel]`,\n providers: [MAT_SLIDE_TOGGLE_REQUIRED_VALIDATOR]\n }]\n }], null, null);\n})();\n\n/** This module is used by both original and MDC-based slide-toggle implementations. */\nclass _MatSlideToggleRequiredValidatorModule {\n static {\n this.ɵfac = function _MatSlideToggleRequiredValidatorModule_Factory(ɵt) {\n return new (ɵt || _MatSlideToggleRequiredValidatorModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: _MatSlideToggleRequiredValidatorModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(_MatSlideToggleRequiredValidatorModule, [{\n type: NgModule,\n args: [{\n exports: [MatSlideToggleRequiredValidator],\n declarations: [MatSlideToggleRequiredValidator]\n }]\n }], null, null);\n})();\nclass MatSlideToggleModule {\n static {\n this.ɵfac = function MatSlideToggleModule_Factory(ɵt) {\n return new (ɵt || MatSlideToggleModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatSlideToggleModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [_MatSlideToggleRequiredValidatorModule, MatCommonModule, MatRippleModule, CommonModule, _MatSlideToggleRequiredValidatorModule, MatCommonModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatSlideToggleModule, [{\n type: NgModule,\n args: [{\n imports: [_MatSlideToggleRequiredValidatorModule, MatCommonModule, MatRippleModule, CommonModule],\n exports: [_MatSlideToggleRequiredValidatorModule, MatSlideToggle, MatCommonModule],\n declarations: [MatSlideToggle]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_SLIDE_TOGGLE_DEFAULT_OPTIONS, MAT_SLIDE_TOGGLE_REQUIRED_VALIDATOR, MAT_SLIDE_TOGGLE_VALUE_ACCESSOR, MatSlideToggle, MatSlideToggleChange, MatSlideToggleModule, MatSlideToggleRequiredValidator, _MatSlideToggleBase, _MatSlideToggleRequiredValidatorModule };\n","import * as i3 from '@angular/cdk/observers';\nimport { ObserversModule } from '@angular/cdk/observers';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, forwardRef, Component, ViewEncapsulation, ChangeDetectionStrategy, Attribute, Inject, Optional, ViewChild, NgModule } from '@angular/core';\nimport * as i2 from '@angular/material/core';\nimport { MatRippleModule, MatCommonModule } from '@angular/material/core';\nimport * as i1 from '@angular/cdk/a11y';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\nimport { _MatSlideToggleBase, _MatSlideToggleRequiredValidatorModule } from '@angular/material/slide-toggle';\nconst _c0 = [\"input\"];\nconst _c1 = [\"*\"];\nconst _c2 = a0 => ({\n enterDuration: a0\n});\nexport { MAT_SLIDE_TOGGLE_REQUIRED_VALIDATOR as MAT_LEGACY_SLIDE_TOGGLE_REQUIRED_VALIDATOR, MatSlideToggleRequiredValidator as MatLegacySlideToggleRequiredValidator, _MatSlideToggleBase as _MatLegacySlideToggleBase, _MatSlideToggleRequiredValidatorModule as _MatLegacySlideToggleRequiredValidatorModule } from '@angular/material/slide-toggle';\n\n/**\n * Injection token to be used to override the default options for `mat-slide-toggle`\n * @deprecated Use `MAT_SLIDE_TOGGLE_DEFAULT_OPTIONS` from `@angular/material/slide-toggle` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nconst MAT_LEGACY_SLIDE_TOGGLE_DEFAULT_OPTIONS = new InjectionToken('mat-slide-toggle-default-options', {\n providedIn: 'root',\n factory: () => ({\n disableToggleValue: false\n })\n});\n\n/**\n * @docs-private\n * @deprecated Use `MAT_SLIDE_TOGGLE_VALUE_ACCESSOR` from `@angular/material/slide-toggle` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nconst MAT_LEGACY_SLIDE_TOGGLE_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MatLegacySlideToggle),\n multi: true\n};\n/**\n * Change event object emitted by a slide toggle.\n * @deprecated Use `MatSlideToggleChange` from `@angular/material/slide-toggle` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacySlideToggleChange {\n constructor( /** The source slide toggle of the event. */\n source, /** The new `checked` value of the slide toggle. */\n checked) {\n this.source = source;\n this.checked = checked;\n }\n}\n/**\n * Represents a slidable \"switch\" toggle that can be moved between on and off.\n * @deprecated Use `MatSlideToggle` from `@angular/material/slide-toggle` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacySlideToggle extends _MatSlideToggleBase {\n constructor(elementRef, focusMonitor, changeDetectorRef, tabIndex, defaults, animationMode) {\n super(elementRef, focusMonitor, changeDetectorRef, tabIndex, defaults, animationMode, 'mat-slide-toggle-');\n }\n _createChangeEvent(isChecked) {\n return new MatLegacySlideToggleChange(this, isChecked);\n }\n /** Method being called whenever the underlying input emits a change event. */\n _onChangeEvent(event) {\n // We always have to stop propagation on the change event.\n // Otherwise the change event, from the input element, will bubble up and\n // emit its event object to the component's `change` output.\n event.stopPropagation();\n this.toggleChange.emit();\n // When the slide toggle's config disables toggle change event by setting\n // `disableToggleValue: true`, the slide toggle's value does not change, and the\n // checked state of the underlying input needs to be changed back.\n if (this.defaults.disableToggleValue) {\n this._inputElement.nativeElement.checked = this.checked;\n return;\n }\n // Sync the value from the underlying input element with the component instance.\n this.checked = this._inputElement.nativeElement.checked;\n // Emit our custom change event only if the underlying input emitted one. This ensures that\n // there is no change event, when the checked state changes programmatically.\n this._emitChangeEvent();\n }\n /** Method being called whenever the slide-toggle has been clicked. */\n _onInputClick(event) {\n // We have to stop propagation for click events on the visual hidden input element.\n // By default, when a user clicks on a label element, a generated click event will be\n // dispatched on the associated input element. Since we are using a label element as our\n // root container, the click event on the `slide-toggle` will be executed twice.\n // The real click event will bubble up, and the generated click event also tries to bubble up.\n // This will lead to multiple click events.\n // Preventing bubbling for the second event will solve that issue.\n event.stopPropagation();\n }\n /** Focuses the slide-toggle. */\n focus(options, origin) {\n if (origin) {\n this._focusMonitor.focusVia(this._inputElement, origin, options);\n } else {\n this._inputElement.nativeElement.focus(options);\n }\n }\n /** Method being called whenever the label text changes. */\n _onLabelTextChange() {\n // Since the event of the `cdkObserveContent` directive runs outside of the zone, the\n // slide-toggle component will be only marked for check, but no actual change detection runs\n // automatically. Instead of going back into the zone in order to trigger a change detection\n // which causes *all* components to be checked (if explicitly marked or not using OnPush),\n // we only trigger an explicit change detection for the slide-toggle view and its children.\n this._changeDetectorRef.detectChanges();\n }\n static {\n this.ɵfac = function MatLegacySlideToggle_Factory(ɵt) {\n return new (ɵt || MatLegacySlideToggle)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.FocusMonitor), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵinjectAttribute('tabindex'), i0.ɵɵdirectiveInject(MAT_LEGACY_SLIDE_TOGGLE_DEFAULT_OPTIONS), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatLegacySlideToggle,\n selectors: [[\"mat-slide-toggle\"]],\n viewQuery: function MatLegacySlideToggle_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._inputElement = _t.first);\n }\n },\n hostAttrs: [1, \"mat-slide-toggle\"],\n hostVars: 13,\n hostBindings: function MatLegacySlideToggle_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵhostProperty(\"id\", ctx.id);\n i0.ɵɵattribute(\"tabindex\", null)(\"aria-label\", null)(\"aria-labelledby\", null)(\"name\", null);\n i0.ɵɵclassProp(\"mat-checked\", ctx.checked)(\"mat-disabled\", ctx.disabled)(\"mat-slide-toggle-label-before\", ctx.labelPosition == \"before\")(\"_mat-animation-noopable\", ctx._noopAnimations);\n }\n },\n inputs: {\n disabled: \"disabled\",\n disableRipple: \"disableRipple\",\n color: \"color\",\n tabIndex: \"tabIndex\"\n },\n exportAs: [\"matSlideToggle\"],\n features: [i0.ɵɵProvidersFeature([MAT_LEGACY_SLIDE_TOGGLE_VALUE_ACCESSOR]), i0.ɵɵInheritDefinitionFeature],\n ngContentSelectors: _c1,\n decls: 14,\n vars: 20,\n consts: [[\"label\", \"\"], [\"input\", \"\"], [\"labelContent\", \"\"], [1, \"mat-slide-toggle-label\"], [1, \"mat-slide-toggle-bar\"], [\"type\", \"checkbox\", \"role\", \"switch\", 1, \"mat-slide-toggle-input\", \"cdk-visually-hidden\", 3, \"change\", \"click\", \"id\", \"required\", \"tabIndex\", \"checked\", \"disabled\"], [1, \"mat-slide-toggle-thumb-container\"], [1, \"mat-slide-toggle-thumb\"], [\"mat-ripple\", \"\", 1, \"mat-slide-toggle-ripple\", \"mat-focus-indicator\", 3, \"matRippleTrigger\", \"matRippleDisabled\", \"matRippleCentered\", \"matRippleRadius\", \"matRippleAnimation\"], [1, \"mat-ripple-element\", \"mat-slide-toggle-persistent-ripple\"], [1, \"mat-slide-toggle-content\", 3, \"cdkObserveContent\"], [2, \"display\", \"none\"]],\n template: function MatLegacySlideToggle_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"label\", 3, 0)(2, \"span\", 4)(3, \"input\", 5, 1);\n i0.ɵɵlistener(\"change\", function MatLegacySlideToggle_Template_input_change_3_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._onChangeEvent($event));\n })(\"click\", function MatLegacySlideToggle_Template_input_click_3_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._onInputClick($event));\n });\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(5, \"span\", 6);\n i0.ɵɵelement(6, \"span\", 7);\n i0.ɵɵelementStart(7, \"span\", 8);\n i0.ɵɵelement(8, \"span\", 9);\n i0.ɵɵelementEnd()()();\n i0.ɵɵelementStart(9, \"span\", 10, 2);\n i0.ɵɵlistener(\"cdkObserveContent\", function MatLegacySlideToggle_Template_span_cdkObserveContent_9_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._onLabelTextChange());\n });\n i0.ɵɵelementStart(11, \"span\", 11);\n i0.ɵɵtext(12, \"\\xA0\");\n i0.ɵɵelementEnd();\n i0.ɵɵprojection(13);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const label_r2 = i0.ɵɵreference(1);\n const labelContent_r3 = i0.ɵɵreference(10);\n i0.ɵɵattribute(\"for\", ctx.inputId);\n i0.ɵɵadvance(2);\n i0.ɵɵclassProp(\"mat-slide-toggle-bar-no-side-margin\", !labelContent_r3.textContent || !labelContent_r3.textContent.trim());\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"id\", ctx.inputId)(\"required\", ctx.required)(\"tabIndex\", ctx.tabIndex)(\"checked\", ctx.checked)(\"disabled\", ctx.disabled);\n i0.ɵɵattribute(\"name\", ctx.name)(\"aria-checked\", ctx.checked)(\"aria-label\", ctx.ariaLabel)(\"aria-labelledby\", ctx.ariaLabelledby)(\"aria-describedby\", ctx.ariaDescribedby);\n i0.ɵɵadvance(4);\n i0.ɵɵproperty(\"matRippleTrigger\", label_r2)(\"matRippleDisabled\", ctx.disableRipple || ctx.disabled)(\"matRippleCentered\", true)(\"matRippleRadius\", 20)(\"matRippleAnimation\", i0.ɵɵpureFunction1(18, _c2, ctx._noopAnimations ? 0 : 150));\n }\n },\n dependencies: [i2.MatRipple, i3.CdkObserveContent],\n styles: [\".mat-slide-toggle{display:inline-block;height:24px;max-width:100%;line-height:24px;white-space:nowrap;outline:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-slide-toggle.mat-checked .mat-slide-toggle-thumb-container{transform:translate3d(16px, 0, 0)}[dir=rtl] .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb-container{transform:translate3d(-16px, 0, 0)}.mat-slide-toggle.mat-disabled{opacity:.38}.mat-slide-toggle.mat-disabled .mat-slide-toggle-label,.mat-slide-toggle.mat-disabled .mat-slide-toggle-thumb-container{cursor:default}.mat-slide-toggle-label{-webkit-user-select:none;user-select:none;display:flex;flex:1;flex-direction:row;align-items:center;height:inherit;cursor:pointer}.mat-slide-toggle-content{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-slide-toggle-label-before .mat-slide-toggle-label{order:1}.mat-slide-toggle-label-before .mat-slide-toggle-bar{order:2}[dir=rtl] .mat-slide-toggle-label-before .mat-slide-toggle-bar,.mat-slide-toggle-bar{margin-right:8px;margin-left:0}[dir=rtl] .mat-slide-toggle-bar,.mat-slide-toggle-label-before .mat-slide-toggle-bar{margin-left:8px;margin-right:0}.mat-slide-toggle-bar-no-side-margin{margin-left:0;margin-right:0}.mat-slide-toggle-thumb-container{position:absolute;z-index:1;width:20px;height:20px;top:-3px;left:0;transform:translate3d(0, 0, 0);transition:all 80ms linear;transition-property:transform}._mat-animation-noopable .mat-slide-toggle-thumb-container{transition:none}[dir=rtl] .mat-slide-toggle-thumb-container{left:auto;right:0}.mat-slide-toggle-thumb{height:20px;width:20px;border-radius:50%;display:block}.mat-slide-toggle-bar{position:relative;width:36px;height:14px;flex-shrink:0;border-radius:8px}.mat-slide-toggle-input{bottom:0;left:10px}[dir=rtl] .mat-slide-toggle-input{left:auto;right:10px}.mat-slide-toggle-bar,.mat-slide-toggle-thumb{transition:all 80ms linear;transition-property:background-color;transition-delay:50ms}._mat-animation-noopable .mat-slide-toggle-bar,._mat-animation-noopable .mat-slide-toggle-thumb{transition:none}.mat-slide-toggle .mat-slide-toggle-ripple{position:absolute;top:calc(50% - 20px);left:calc(50% - 20px);height:40px;width:40px;z-index:1;pointer-events:none}.mat-slide-toggle .mat-slide-toggle-ripple .mat-ripple-element:not(.mat-slide-toggle-persistent-ripple){opacity:.12}.mat-slide-toggle-persistent-ripple{width:100%;height:100%;transform:none}.mat-slide-toggle-bar:hover .mat-slide-toggle-persistent-ripple{opacity:.04}.mat-slide-toggle:not(.mat-disabled).cdk-keyboard-focused .mat-slide-toggle-persistent-ripple{opacity:.12}.mat-slide-toggle-persistent-ripple,.mat-slide-toggle.mat-disabled .mat-slide-toggle-bar:hover .mat-slide-toggle-persistent-ripple{opacity:0}@media(hover: none){.mat-slide-toggle-bar:hover .mat-slide-toggle-persistent-ripple{display:none}}.mat-slide-toggle-input:focus~.mat-slide-toggle-thumb-container .mat-focus-indicator::before{content:\\\"\\\"}.cdk-high-contrast-active .mat-slide-toggle-thumb,.cdk-high-contrast-active .mat-slide-toggle-bar{border:1px solid}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacySlideToggle, [{\n type: Component,\n args: [{\n selector: 'mat-slide-toggle',\n exportAs: 'matSlideToggle',\n host: {\n 'class': 'mat-slide-toggle',\n '[id]': 'id',\n // Needs to be removed since it causes some a11y issues (see #21266).\n '[attr.tabindex]': 'null',\n '[attr.aria-label]': 'null',\n '[attr.aria-labelledby]': 'null',\n '[attr.name]': 'null',\n '[class.mat-checked]': 'checked',\n '[class.mat-disabled]': 'disabled',\n '[class.mat-slide-toggle-label-before]': 'labelPosition == \"before\"',\n '[class._mat-animation-noopable]': '_noopAnimations'\n },\n providers: [MAT_LEGACY_SLIDE_TOGGLE_VALUE_ACCESSOR],\n inputs: ['disabled', 'disableRipple', 'color', 'tabIndex'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: \"\\n \\n\\n \\n\\n \\n \\n \\n\\n \\n \\n \\n\\n \\n\\n \\n \\n \\n \\n \\n\\n\",\n styles: [\".mat-slide-toggle{display:inline-block;height:24px;max-width:100%;line-height:24px;white-space:nowrap;outline:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-slide-toggle.mat-checked .mat-slide-toggle-thumb-container{transform:translate3d(16px, 0, 0)}[dir=rtl] .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb-container{transform:translate3d(-16px, 0, 0)}.mat-slide-toggle.mat-disabled{opacity:.38}.mat-slide-toggle.mat-disabled .mat-slide-toggle-label,.mat-slide-toggle.mat-disabled .mat-slide-toggle-thumb-container{cursor:default}.mat-slide-toggle-label{-webkit-user-select:none;user-select:none;display:flex;flex:1;flex-direction:row;align-items:center;height:inherit;cursor:pointer}.mat-slide-toggle-content{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-slide-toggle-label-before .mat-slide-toggle-label{order:1}.mat-slide-toggle-label-before .mat-slide-toggle-bar{order:2}[dir=rtl] .mat-slide-toggle-label-before .mat-slide-toggle-bar,.mat-slide-toggle-bar{margin-right:8px;margin-left:0}[dir=rtl] .mat-slide-toggle-bar,.mat-slide-toggle-label-before .mat-slide-toggle-bar{margin-left:8px;margin-right:0}.mat-slide-toggle-bar-no-side-margin{margin-left:0;margin-right:0}.mat-slide-toggle-thumb-container{position:absolute;z-index:1;width:20px;height:20px;top:-3px;left:0;transform:translate3d(0, 0, 0);transition:all 80ms linear;transition-property:transform}._mat-animation-noopable .mat-slide-toggle-thumb-container{transition:none}[dir=rtl] .mat-slide-toggle-thumb-container{left:auto;right:0}.mat-slide-toggle-thumb{height:20px;width:20px;border-radius:50%;display:block}.mat-slide-toggle-bar{position:relative;width:36px;height:14px;flex-shrink:0;border-radius:8px}.mat-slide-toggle-input{bottom:0;left:10px}[dir=rtl] .mat-slide-toggle-input{left:auto;right:10px}.mat-slide-toggle-bar,.mat-slide-toggle-thumb{transition:all 80ms linear;transition-property:background-color;transition-delay:50ms}._mat-animation-noopable .mat-slide-toggle-bar,._mat-animation-noopable .mat-slide-toggle-thumb{transition:none}.mat-slide-toggle .mat-slide-toggle-ripple{position:absolute;top:calc(50% - 20px);left:calc(50% - 20px);height:40px;width:40px;z-index:1;pointer-events:none}.mat-slide-toggle .mat-slide-toggle-ripple .mat-ripple-element:not(.mat-slide-toggle-persistent-ripple){opacity:.12}.mat-slide-toggle-persistent-ripple{width:100%;height:100%;transform:none}.mat-slide-toggle-bar:hover .mat-slide-toggle-persistent-ripple{opacity:.04}.mat-slide-toggle:not(.mat-disabled).cdk-keyboard-focused .mat-slide-toggle-persistent-ripple{opacity:.12}.mat-slide-toggle-persistent-ripple,.mat-slide-toggle.mat-disabled .mat-slide-toggle-bar:hover .mat-slide-toggle-persistent-ripple{opacity:0}@media(hover: none){.mat-slide-toggle-bar:hover .mat-slide-toggle-persistent-ripple{display:none}}.mat-slide-toggle-input:focus~.mat-slide-toggle-thumb-container .mat-focus-indicator::before{content:\\\"\\\"}.cdk-high-contrast-active .mat-slide-toggle-thumb,.cdk-high-contrast-active .mat-slide-toggle-bar{border:1px solid}\"]\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i1.FocusMonitor\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: undefined,\n decorators: [{\n type: Attribute,\n args: ['tabindex']\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [MAT_LEGACY_SLIDE_TOGGLE_DEFAULT_OPTIONS]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }]\n }];\n }, {\n _inputElement: [{\n type: ViewChild,\n args: ['input']\n }]\n });\n})();\n\n/**\n * @deprecated Use `MatSlideToggleModule` from `@angular/material/slide-toggle` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacySlideToggleModule {\n static {\n this.ɵfac = function MatLegacySlideToggleModule_Factory(ɵt) {\n return new (ɵt || MatLegacySlideToggleModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatLegacySlideToggleModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [_MatSlideToggleRequiredValidatorModule, MatRippleModule, MatCommonModule, ObserversModule, _MatSlideToggleRequiredValidatorModule, MatCommonModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacySlideToggleModule, [{\n type: NgModule,\n args: [{\n imports: [_MatSlideToggleRequiredValidatorModule, MatRippleModule, MatCommonModule, ObserversModule],\n exports: [_MatSlideToggleRequiredValidatorModule, MatLegacySlideToggle, MatCommonModule],\n declarations: [MatLegacySlideToggle]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_LEGACY_SLIDE_TOGGLE_DEFAULT_OPTIONS, MAT_LEGACY_SLIDE_TOGGLE_VALUE_ACCESSOR, MatLegacySlideToggle, MatLegacySlideToggleChange, MatLegacySlideToggleModule };\n","import * as i0 from '@angular/core';\nimport { InjectionToken, Directive, Component, ViewEncapsulation, ChangeDetectionStrategy, Inject, inject, ViewChild, NgModule, Injector, TemplateRef, Injectable, Optional, SkipSelf } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport * as i2 from '@angular/common';\nimport { DOCUMENT, CommonModule } from '@angular/common';\nimport * as i3 from '@angular/material/button';\nimport { MatButtonModule } from '@angular/material/button';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\nimport * as i3$1 from '@angular/cdk/portal';\nimport { BasePortalOutlet, CdkPortalOutlet, PortalModule, ComponentPortal, TemplatePortal } from '@angular/cdk/portal';\nimport * as i1 from '@angular/cdk/platform';\nimport { take, takeUntil } from 'rxjs/operators';\nimport * as i2$1 from '@angular/cdk/a11y';\nimport * as i3$2 from '@angular/cdk/layout';\nimport { Breakpoints } from '@angular/cdk/layout';\nimport * as i1$1 from '@angular/cdk/overlay';\nimport { OverlayModule, OverlayConfig } from '@angular/cdk/overlay';\nimport { MatCommonModule } from '@angular/material/core';\n\n/** Maximum amount of milliseconds that can be passed into setTimeout. */\nfunction SimpleSnackBar_div_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 2)(1, \"button\", 3);\n i0.ɵɵlistener(\"click\", function SimpleSnackBar_div_2_Template_button_click_1_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.action());\n });\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate1(\" \", ctx_r1.data.action, \" \");\n }\n}\nconst _c0 = [\"label\"];\nfunction MatSnackBarContainer_ng_template_4_Template(rf, ctx) {}\nconst MAX_TIMEOUT = Math.pow(2, 31) - 1;\n/**\n * Reference to a snack bar dispatched from the snack bar service.\n */\nclass MatSnackBarRef {\n constructor(containerInstance, _overlayRef) {\n this._overlayRef = _overlayRef;\n /** Subject for notifying the user that the snack bar has been dismissed. */\n this._afterDismissed = new Subject();\n /** Subject for notifying the user that the snack bar has opened and appeared. */\n this._afterOpened = new Subject();\n /** Subject for notifying the user that the snack bar action was called. */\n this._onAction = new Subject();\n /** Whether the snack bar was dismissed using the action button. */\n this._dismissedByAction = false;\n this.containerInstance = containerInstance;\n containerInstance._onExit.subscribe(() => this._finishDismiss());\n }\n /** Dismisses the snack bar. */\n dismiss() {\n if (!this._afterDismissed.closed) {\n this.containerInstance.exit();\n }\n clearTimeout(this._durationTimeoutId);\n }\n /** Marks the snackbar action clicked. */\n dismissWithAction() {\n if (!this._onAction.closed) {\n this._dismissedByAction = true;\n this._onAction.next();\n this._onAction.complete();\n this.dismiss();\n }\n clearTimeout(this._durationTimeoutId);\n }\n /**\n * Marks the snackbar action clicked.\n * @deprecated Use `dismissWithAction` instead.\n * @breaking-change 8.0.0\n */\n closeWithAction() {\n this.dismissWithAction();\n }\n /** Dismisses the snack bar after some duration */\n _dismissAfter(duration) {\n // Note that we need to cap the duration to the maximum value for setTimeout, because\n // it'll revert to 1 if somebody passes in something greater (e.g. `Infinity`). See #17234.\n this._durationTimeoutId = setTimeout(() => this.dismiss(), Math.min(duration, MAX_TIMEOUT));\n }\n /** Marks the snackbar as opened */\n _open() {\n if (!this._afterOpened.closed) {\n this._afterOpened.next();\n this._afterOpened.complete();\n }\n }\n /** Cleans up the DOM after closing. */\n _finishDismiss() {\n this._overlayRef.dispose();\n if (!this._onAction.closed) {\n this._onAction.complete();\n }\n this._afterDismissed.next({\n dismissedByAction: this._dismissedByAction\n });\n this._afterDismissed.complete();\n this._dismissedByAction = false;\n }\n /** Gets an observable that is notified when the snack bar is finished closing. */\n afterDismissed() {\n return this._afterDismissed;\n }\n /** Gets an observable that is notified when the snack bar has opened and appeared. */\n afterOpened() {\n return this.containerInstance._onEnter;\n }\n /** Gets an observable that is notified when the snack bar action is called. */\n onAction() {\n return this._onAction;\n }\n}\n\n/** Injection token that can be used to access the data that was passed in to a snack bar. */\nconst MAT_SNACK_BAR_DATA = new InjectionToken('MatSnackBarData');\n/**\n * Configuration used when opening a snack-bar.\n */\nclass MatSnackBarConfig {\n constructor() {\n /** The politeness level for the MatAriaLiveAnnouncer announcement. */\n this.politeness = 'assertive';\n /**\n * Message to be announced by the LiveAnnouncer. When opening a snackbar without a custom\n * component or template, the announcement message will default to the specified message.\n */\n this.announcementMessage = '';\n /** The length of time in milliseconds to wait before automatically dismissing the snack bar. */\n this.duration = 0;\n /** Data being injected into the child component. */\n this.data = null;\n /** The horizontal position to place the snack bar. */\n this.horizontalPosition = 'center';\n /** The vertical position to place the snack bar. */\n this.verticalPosition = 'bottom';\n }\n}\n\n/** Directive that should be applied to the text element to be rendered in the snack bar. */\nclass MatSnackBarLabel {\n static {\n this.ɵfac = function MatSnackBarLabel_Factory(ɵt) {\n return new (ɵt || MatSnackBarLabel)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatSnackBarLabel,\n selectors: [[\"\", \"matSnackBarLabel\", \"\"]],\n hostAttrs: [1, \"mat-mdc-snack-bar-label\", \"mdc-snackbar__label\"]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatSnackBarLabel, [{\n type: Directive,\n args: [{\n selector: `[matSnackBarLabel]`,\n host: {\n 'class': 'mat-mdc-snack-bar-label mdc-snackbar__label'\n }\n }]\n }], null, null);\n})();\n/** Directive that should be applied to the element containing the snack bar's action buttons. */\nclass MatSnackBarActions {\n static {\n this.ɵfac = function MatSnackBarActions_Factory(ɵt) {\n return new (ɵt || MatSnackBarActions)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatSnackBarActions,\n selectors: [[\"\", \"matSnackBarActions\", \"\"]],\n hostAttrs: [1, \"mat-mdc-snack-bar-actions\", \"mdc-snackbar__actions\"]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatSnackBarActions, [{\n type: Directive,\n args: [{\n selector: `[matSnackBarActions]`,\n host: {\n 'class': 'mat-mdc-snack-bar-actions mdc-snackbar__actions'\n }\n }]\n }], null, null);\n})();\n/** Directive that should be applied to each of the snack bar's action buttons. */\nclass MatSnackBarAction {\n static {\n this.ɵfac = function MatSnackBarAction_Factory(ɵt) {\n return new (ɵt || MatSnackBarAction)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatSnackBarAction,\n selectors: [[\"\", \"matSnackBarAction\", \"\"]],\n hostAttrs: [1, \"mat-mdc-snack-bar-action\", \"mdc-snackbar__action\"]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatSnackBarAction, [{\n type: Directive,\n args: [{\n selector: `[matSnackBarAction]`,\n host: {\n 'class': 'mat-mdc-snack-bar-action mdc-snackbar__action'\n }\n }]\n }], null, null);\n})();\nclass SimpleSnackBar {\n constructor(snackBarRef, data) {\n this.snackBarRef = snackBarRef;\n this.data = data;\n }\n /** Performs the action on the snack bar. */\n action() {\n this.snackBarRef.dismissWithAction();\n }\n /** If the action button should be shown. */\n get hasAction() {\n return !!this.data.action;\n }\n static {\n this.ɵfac = function SimpleSnackBar_Factory(ɵt) {\n return new (ɵt || SimpleSnackBar)(i0.ɵɵdirectiveInject(MatSnackBarRef), i0.ɵɵdirectiveInject(MAT_SNACK_BAR_DATA));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: SimpleSnackBar,\n selectors: [[\"simple-snack-bar\"]],\n hostAttrs: [1, \"mat-mdc-simple-snack-bar\"],\n exportAs: [\"matSnackBar\"],\n decls: 3,\n vars: 2,\n consts: [[\"matSnackBarLabel\", \"\"], [\"matSnackBarActions\", \"\", 4, \"ngIf\"], [\"matSnackBarActions\", \"\"], [\"mat-button\", \"\", \"matSnackBarAction\", \"\", 3, \"click\"]],\n template: function SimpleSnackBar_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(2, SimpleSnackBar_div_2_Template, 3, 1, \"div\", 1);\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx.data.message, \"\\n\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.hasAction);\n }\n },\n dependencies: [i2.NgIf, i3.MatButton, MatSnackBarLabel, MatSnackBarActions, MatSnackBarAction],\n styles: [\".mat-mdc-simple-snack-bar{display:flex}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SimpleSnackBar, [{\n type: Component,\n args: [{\n selector: 'simple-snack-bar',\n exportAs: 'matSnackBar',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'mat-mdc-simple-snack-bar'\n },\n template: \"\\n {{data.message}}\\n\\n\\n\\n \\n {{data.action}}\\n \\n\\n\",\n styles: [\".mat-mdc-simple-snack-bar{display:flex}\"]\n }]\n }], function () {\n return [{\n type: MatSnackBarRef\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [MAT_SNACK_BAR_DATA]\n }]\n }];\n }, null);\n})();\n\n/**\n * Animations used by the Material snack bar.\n * @docs-private\n */\nconst matSnackBarAnimations = {\n /** Animation that shows and hides a snack bar. */\n snackBarState: trigger('state', [state('void, hidden', style({\n transform: 'scale(0.8)',\n opacity: 0\n })), state('visible', style({\n transform: 'scale(1)',\n opacity: 1\n })), transition('* => visible', animate('150ms cubic-bezier(0, 0, 0.2, 1)')), transition('* => void, * => hidden', animate('75ms cubic-bezier(0.4, 0.0, 1, 1)', style({\n opacity: 0\n })))])\n};\nlet uniqueId = 0;\n/**\n * Base class for snack bar containers.\n * @docs-private\n */\nclass _MatSnackBarContainerBase extends BasePortalOutlet {\n constructor(_ngZone, _elementRef, _changeDetectorRef, _platform, /** The snack bar configuration. */\n snackBarConfig) {\n super();\n this._ngZone = _ngZone;\n this._elementRef = _elementRef;\n this._changeDetectorRef = _changeDetectorRef;\n this._platform = _platform;\n this.snackBarConfig = snackBarConfig;\n this._document = inject(DOCUMENT);\n this._trackedModals = new Set();\n /** The number of milliseconds to wait before announcing the snack bar's content. */\n this._announceDelay = 150;\n /** Whether the component has been destroyed. */\n this._destroyed = false;\n /** Subject for notifying that the snack bar has announced to screen readers. */\n this._onAnnounce = new Subject();\n /** Subject for notifying that the snack bar has exited from view. */\n this._onExit = new Subject();\n /** Subject for notifying that the snack bar has finished entering the view. */\n this._onEnter = new Subject();\n /** The state of the snack bar animations. */\n this._animationState = 'void';\n /** Unique ID of the aria-live element. */\n this._liveElementId = `mat-snack-bar-container-live-${uniqueId++}`;\n /**\n * Attaches a DOM portal to the snack bar container.\n * @deprecated To be turned into a method.\n * @breaking-change 10.0.0\n */\n this.attachDomPortal = portal => {\n this._assertNotAttached();\n const result = this._portalOutlet.attachDomPortal(portal);\n this._afterPortalAttached();\n return result;\n };\n // Use aria-live rather than a live role like 'alert' or 'status'\n // because NVDA and JAWS have show inconsistent behavior with live roles.\n if (snackBarConfig.politeness === 'assertive' && !snackBarConfig.announcementMessage) {\n this._live = 'assertive';\n } else if (snackBarConfig.politeness === 'off') {\n this._live = 'off';\n } else {\n this._live = 'polite';\n }\n // Only set role for Firefox. Set role based on aria-live because setting role=\"alert\" implies\n // aria-live=\"assertive\" which may cause issues if aria-live is set to \"polite\" above.\n if (this._platform.FIREFOX) {\n if (this._live === 'polite') {\n this._role = 'status';\n }\n if (this._live === 'assertive') {\n this._role = 'alert';\n }\n }\n }\n /** Attach a component portal as content to this snack bar container. */\n attachComponentPortal(portal) {\n this._assertNotAttached();\n const result = this._portalOutlet.attachComponentPortal(portal);\n this._afterPortalAttached();\n return result;\n }\n /** Attach a template portal as content to this snack bar container. */\n attachTemplatePortal(portal) {\n this._assertNotAttached();\n const result = this._portalOutlet.attachTemplatePortal(portal);\n this._afterPortalAttached();\n return result;\n }\n /** Handle end of animations, updating the state of the snackbar. */\n onAnimationEnd(event) {\n const {\n fromState,\n toState\n } = event;\n if (toState === 'void' && fromState !== 'void' || toState === 'hidden') {\n this._completeExit();\n }\n if (toState === 'visible') {\n // Note: we shouldn't use `this` inside the zone callback,\n // because it can cause a memory leak.\n const onEnter = this._onEnter;\n this._ngZone.run(() => {\n onEnter.next();\n onEnter.complete();\n });\n }\n }\n /** Begin animation of snack bar entrance into view. */\n enter() {\n if (!this._destroyed) {\n this._animationState = 'visible';\n this._changeDetectorRef.detectChanges();\n this._screenReaderAnnounce();\n }\n }\n /** Begin animation of the snack bar exiting from view. */\n exit() {\n // It's common for snack bars to be opened by random outside calls like HTTP requests or\n // errors. Run inside the NgZone to ensure that it functions correctly.\n this._ngZone.run(() => {\n // Note: this one transitions to `hidden`, rather than `void`, in order to handle the case\n // where multiple snack bars are opened in quick succession (e.g. two consecutive calls to\n // `MatSnackBar.open`).\n this._animationState = 'hidden';\n // Mark this element with an 'exit' attribute to indicate that the snackbar has\n // been dismissed and will soon be removed from the DOM. This is used by the snackbar\n // test harness.\n this._elementRef.nativeElement.setAttribute('mat-exit', '');\n // If the snack bar hasn't been announced by the time it exits it wouldn't have been open\n // long enough to visually read it either, so clear the timeout for announcing.\n clearTimeout(this._announceTimeoutId);\n });\n return this._onExit;\n }\n /** Makes sure the exit callbacks have been invoked when the element is destroyed. */\n ngOnDestroy() {\n this._destroyed = true;\n this._clearFromModals();\n this._completeExit();\n }\n /**\n * Waits for the zone to settle before removing the element. Helps prevent\n * errors where we end up removing an element which is in the middle of an animation.\n */\n _completeExit() {\n this._ngZone.onMicrotaskEmpty.pipe(take(1)).subscribe(() => {\n this._ngZone.run(() => {\n this._onExit.next();\n this._onExit.complete();\n });\n });\n }\n /**\n * Called after the portal contents have been attached. Can be\n * used to modify the DOM once it's guaranteed to be in place.\n */\n _afterPortalAttached() {\n const element = this._elementRef.nativeElement;\n const panelClasses = this.snackBarConfig.panelClass;\n if (panelClasses) {\n if (Array.isArray(panelClasses)) {\n // Note that we can't use a spread here, because IE doesn't support multiple arguments.\n panelClasses.forEach(cssClass => element.classList.add(cssClass));\n } else {\n element.classList.add(panelClasses);\n }\n }\n this._exposeToModals();\n }\n /**\n * Some browsers won't expose the accessibility node of the live element if there is an\n * `aria-modal` and the live element is outside of it. This method works around the issue by\n * pointing the `aria-owns` of all modals to the live element.\n */\n _exposeToModals() {\n // TODO(http://github.com/angular/components/issues/26853): consider de-duplicating this with the\n // `LiveAnnouncer` and any other usages.\n //\n // Note that the selector here is limited to CDK overlays at the moment in order to reduce the\n // section of the DOM we need to look through. This should cover all the cases we support, but\n // the selector can be expanded if it turns out to be too narrow.\n const id = this._liveElementId;\n const modals = this._document.querySelectorAll('body > .cdk-overlay-container [aria-modal=\"true\"]');\n for (let i = 0; i < modals.length; i++) {\n const modal = modals[i];\n const ariaOwns = modal.getAttribute('aria-owns');\n this._trackedModals.add(modal);\n if (!ariaOwns) {\n modal.setAttribute('aria-owns', id);\n } else if (ariaOwns.indexOf(id) === -1) {\n modal.setAttribute('aria-owns', ariaOwns + ' ' + id);\n }\n }\n }\n /** Clears the references to the live element from any modals it was added to. */\n _clearFromModals() {\n this._trackedModals.forEach(modal => {\n const ariaOwns = modal.getAttribute('aria-owns');\n if (ariaOwns) {\n const newValue = ariaOwns.replace(this._liveElementId, '').trim();\n if (newValue.length > 0) {\n modal.setAttribute('aria-owns', newValue);\n } else {\n modal.removeAttribute('aria-owns');\n }\n }\n });\n this._trackedModals.clear();\n }\n /** Asserts that no content is already attached to the container. */\n _assertNotAttached() {\n if (this._portalOutlet.hasAttached() && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('Attempting to attach snack bar content after content is already attached');\n }\n }\n /**\n * Starts a timeout to move the snack bar content to the live region so screen readers will\n * announce it.\n */\n _screenReaderAnnounce() {\n if (!this._announceTimeoutId) {\n this._ngZone.runOutsideAngular(() => {\n this._announceTimeoutId = setTimeout(() => {\n const inertElement = this._elementRef.nativeElement.querySelector('[aria-hidden]');\n const liveElement = this._elementRef.nativeElement.querySelector('[aria-live]');\n if (inertElement && liveElement) {\n // If an element in the snack bar content is focused before being moved\n // track it and restore focus after moving to the live region.\n let focusedElement = null;\n if (this._platform.isBrowser && document.activeElement instanceof HTMLElement && inertElement.contains(document.activeElement)) {\n focusedElement = document.activeElement;\n }\n inertElement.removeAttribute('aria-hidden');\n liveElement.appendChild(inertElement);\n focusedElement?.focus();\n this._onAnnounce.next();\n this._onAnnounce.complete();\n }\n }, this._announceDelay);\n });\n }\n }\n static {\n this.ɵfac = function _MatSnackBarContainerBase_Factory(ɵt) {\n return new (ɵt || _MatSnackBarContainerBase)(i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(MatSnackBarConfig));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: _MatSnackBarContainerBase,\n viewQuery: function _MatSnackBarContainerBase_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(CdkPortalOutlet, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._portalOutlet = _t.first);\n }\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(_MatSnackBarContainerBase, [{\n type: Directive\n }], function () {\n return [{\n type: i0.NgZone\n }, {\n type: i0.ElementRef\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: i1.Platform\n }, {\n type: MatSnackBarConfig\n }];\n }, {\n _portalOutlet: [{\n type: ViewChild,\n args: [CdkPortalOutlet, {\n static: true\n }]\n }]\n });\n})();\n/**\n * Internal component that wraps user-provided snack bar content.\n * @docs-private\n */\nclass MatSnackBarContainer extends _MatSnackBarContainerBase {\n /** Applies the correct CSS class to the label based on its content. */\n _afterPortalAttached() {\n super._afterPortalAttached();\n // Check to see if the attached component or template uses the MDC template structure,\n // specifically the MDC label. If not, the container should apply the MDC label class to this\n // component's label container, which will apply MDC's label styles to the attached view.\n const label = this._label.nativeElement;\n const labelClass = 'mdc-snackbar__label';\n label.classList.toggle(labelClass, !label.querySelector(`.${labelClass}`));\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatSnackBarContainer_BaseFactory;\n return function MatSnackBarContainer_Factory(ɵt) {\n return (ɵMatSnackBarContainer_BaseFactory || (ɵMatSnackBarContainer_BaseFactory = i0.ɵɵgetInheritedFactory(MatSnackBarContainer)))(ɵt || MatSnackBarContainer);\n };\n })();\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatSnackBarContainer,\n selectors: [[\"mat-snack-bar-container\"]],\n viewQuery: function MatSnackBarContainer_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._label = _t.first);\n }\n },\n hostAttrs: [1, \"mdc-snackbar\", \"mat-mdc-snack-bar-container\", \"mdc-snackbar--open\"],\n hostVars: 1,\n hostBindings: function MatSnackBarContainer_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵsyntheticHostListener(\"@state.done\", function MatSnackBarContainer_animation_state_done_HostBindingHandler($event) {\n return ctx.onAnimationEnd($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵsyntheticHostProperty(\"@state\", ctx._animationState);\n }\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 6,\n vars: 3,\n consts: [[\"label\", \"\"], [1, \"mdc-snackbar__surface\"], [1, \"mat-mdc-snack-bar-label\"], [\"aria-hidden\", \"true\"], [\"cdkPortalOutlet\", \"\"]],\n template: function MatSnackBarContainer_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 1)(1, \"div\", 2, 0)(3, \"div\", 3);\n i0.ɵɵtemplate(4, MatSnackBarContainer_ng_template_4_Template, 0, 0, \"ng-template\", 4);\n i0.ɵɵelementEnd();\n i0.ɵɵelement(5, \"div\");\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵadvance(5);\n i0.ɵɵattribute(\"aria-live\", ctx._live)(\"role\", ctx._role)(\"id\", ctx._liveElementId);\n }\n },\n dependencies: [i3$1.CdkPortalOutlet],\n styles: [\".mdc-snackbar{display:none;position:fixed;right:0;bottom:0;left:0;align-items:center;justify-content:center;box-sizing:border-box;pointer-events:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mdc-snackbar--opening,.mdc-snackbar--open,.mdc-snackbar--closing{display:flex}.mdc-snackbar--open .mdc-snackbar__label,.mdc-snackbar--open .mdc-snackbar__actions{visibility:visible}.mdc-snackbar__surface{padding-left:0;padding-right:8px;display:flex;align-items:center;justify-content:flex-start;box-sizing:border-box;transform:scale(0.8);opacity:0}.mdc-snackbar__surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:\\\"\\\";pointer-events:none}@media screen and (forced-colors: active){.mdc-snackbar__surface::before{border-color:CanvasText}}[dir=rtl] .mdc-snackbar__surface,.mdc-snackbar__surface[dir=rtl]{padding-left:8px;padding-right:0}.mdc-snackbar--open .mdc-snackbar__surface{transform:scale(1);opacity:1;pointer-events:auto}.mdc-snackbar--closing .mdc-snackbar__surface{transform:scale(1)}.mdc-snackbar__label{padding-left:16px;padding-right:8px;width:100%;flex-grow:1;box-sizing:border-box;margin:0;visibility:hidden;padding-top:14px;padding-bottom:14px}[dir=rtl] .mdc-snackbar__label,.mdc-snackbar__label[dir=rtl]{padding-left:8px;padding-right:16px}.mdc-snackbar__label::before{display:inline;content:attr(data-mdc-snackbar-label-text)}.mdc-snackbar__actions{display:flex;flex-shrink:0;align-items:center;box-sizing:border-box;visibility:hidden}.mdc-snackbar__action+.mdc-snackbar__dismiss{margin-left:8px;margin-right:0}[dir=rtl] .mdc-snackbar__action+.mdc-snackbar__dismiss,.mdc-snackbar__action+.mdc-snackbar__dismiss[dir=rtl]{margin-left:0;margin-right:8px}.mat-mdc-snack-bar-container{margin:8px;--mdc-snackbar-container-shape:4px;position:static}.mat-mdc-snack-bar-container .mdc-snackbar__surface{min-width:344px}@media(max-width: 480px),(max-width: 344px){.mat-mdc-snack-bar-container .mdc-snackbar__surface{min-width:100%}}@media(max-width: 480px),(max-width: 344px){.mat-mdc-snack-bar-container{width:100vw}}.mat-mdc-snack-bar-container .mdc-snackbar__surface{max-width:672px}.mat-mdc-snack-bar-container .mdc-snackbar__surface{box-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12)}.mat-mdc-snack-bar-container .mdc-snackbar__surface{background-color:var(--mdc-snackbar-container-color)}.mat-mdc-snack-bar-container .mdc-snackbar__surface{border-radius:var(--mdc-snackbar-container-shape)}.mat-mdc-snack-bar-container .mdc-snackbar__label{color:var(--mdc-snackbar-supporting-text-color)}.mat-mdc-snack-bar-container .mdc-snackbar__label{font-size:var(--mdc-snackbar-supporting-text-size);font-family:var(--mdc-snackbar-supporting-text-font);font-weight:var(--mdc-snackbar-supporting-text-weight);line-height:var(--mdc-snackbar-supporting-text-line-height)}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled){color:var(--mat-snack-bar-button-color);--mat-mdc-button-persistent-ripple-color: currentColor}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled) .mat-ripple-element{background-color:currentColor;opacity:.1}.mat-mdc-snack-bar-container .mdc-snackbar__label::before{display:none}.mat-mdc-snack-bar-handset,.mat-mdc-snack-bar-container,.mat-mdc-snack-bar-label{flex:1 1 auto}.mat-mdc-snack-bar-handset .mdc-snackbar__surface{width:100%}\"],\n encapsulation: 2,\n data: {\n animation: [matSnackBarAnimations.snackBarState]\n }\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatSnackBarContainer, [{\n type: Component,\n args: [{\n selector: 'mat-snack-bar-container',\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n animations: [matSnackBarAnimations.snackBarState],\n host: {\n 'class': 'mdc-snackbar mat-mdc-snack-bar-container mdc-snackbar--open',\n '[@state]': '_animationState',\n '(@state.done)': 'onAnimationEnd($event)'\n },\n template: \"\\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n\\n\",\n styles: [\".mdc-snackbar{display:none;position:fixed;right:0;bottom:0;left:0;align-items:center;justify-content:center;box-sizing:border-box;pointer-events:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mdc-snackbar--opening,.mdc-snackbar--open,.mdc-snackbar--closing{display:flex}.mdc-snackbar--open .mdc-snackbar__label,.mdc-snackbar--open .mdc-snackbar__actions{visibility:visible}.mdc-snackbar__surface{padding-left:0;padding-right:8px;display:flex;align-items:center;justify-content:flex-start;box-sizing:border-box;transform:scale(0.8);opacity:0}.mdc-snackbar__surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:\\\"\\\";pointer-events:none}@media screen and (forced-colors: active){.mdc-snackbar__surface::before{border-color:CanvasText}}[dir=rtl] .mdc-snackbar__surface,.mdc-snackbar__surface[dir=rtl]{padding-left:8px;padding-right:0}.mdc-snackbar--open .mdc-snackbar__surface{transform:scale(1);opacity:1;pointer-events:auto}.mdc-snackbar--closing .mdc-snackbar__surface{transform:scale(1)}.mdc-snackbar__label{padding-left:16px;padding-right:8px;width:100%;flex-grow:1;box-sizing:border-box;margin:0;visibility:hidden;padding-top:14px;padding-bottom:14px}[dir=rtl] .mdc-snackbar__label,.mdc-snackbar__label[dir=rtl]{padding-left:8px;padding-right:16px}.mdc-snackbar__label::before{display:inline;content:attr(data-mdc-snackbar-label-text)}.mdc-snackbar__actions{display:flex;flex-shrink:0;align-items:center;box-sizing:border-box;visibility:hidden}.mdc-snackbar__action+.mdc-snackbar__dismiss{margin-left:8px;margin-right:0}[dir=rtl] .mdc-snackbar__action+.mdc-snackbar__dismiss,.mdc-snackbar__action+.mdc-snackbar__dismiss[dir=rtl]{margin-left:0;margin-right:8px}.mat-mdc-snack-bar-container{margin:8px;--mdc-snackbar-container-shape:4px;position:static}.mat-mdc-snack-bar-container .mdc-snackbar__surface{min-width:344px}@media(max-width: 480px),(max-width: 344px){.mat-mdc-snack-bar-container .mdc-snackbar__surface{min-width:100%}}@media(max-width: 480px),(max-width: 344px){.mat-mdc-snack-bar-container{width:100vw}}.mat-mdc-snack-bar-container .mdc-snackbar__surface{max-width:672px}.mat-mdc-snack-bar-container .mdc-snackbar__surface{box-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12)}.mat-mdc-snack-bar-container .mdc-snackbar__surface{background-color:var(--mdc-snackbar-container-color)}.mat-mdc-snack-bar-container .mdc-snackbar__surface{border-radius:var(--mdc-snackbar-container-shape)}.mat-mdc-snack-bar-container .mdc-snackbar__label{color:var(--mdc-snackbar-supporting-text-color)}.mat-mdc-snack-bar-container .mdc-snackbar__label{font-size:var(--mdc-snackbar-supporting-text-size);font-family:var(--mdc-snackbar-supporting-text-font);font-weight:var(--mdc-snackbar-supporting-text-weight);line-height:var(--mdc-snackbar-supporting-text-line-height)}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled){color:var(--mat-snack-bar-button-color);--mat-mdc-button-persistent-ripple-color: currentColor}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled) .mat-ripple-element{background-color:currentColor;opacity:.1}.mat-mdc-snack-bar-container .mdc-snackbar__label::before{display:none}.mat-mdc-snack-bar-handset,.mat-mdc-snack-bar-container,.mat-mdc-snack-bar-label{flex:1 1 auto}.mat-mdc-snack-bar-handset .mdc-snackbar__surface{width:100%}\"]\n }]\n }], null, {\n _label: [{\n type: ViewChild,\n args: ['label', {\n static: true\n }]\n }]\n });\n})();\nclass MatSnackBarModule {\n static {\n this.ɵfac = function MatSnackBarModule_Factory(ɵt) {\n return new (ɵt || MatSnackBarModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatSnackBarModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [OverlayModule, PortalModule, CommonModule, MatButtonModule, MatCommonModule, MatCommonModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatSnackBarModule, [{\n type: NgModule,\n args: [{\n imports: [OverlayModule, PortalModule, CommonModule, MatButtonModule, MatCommonModule],\n exports: [MatCommonModule, MatSnackBarContainer, MatSnackBarLabel, MatSnackBarActions, MatSnackBarAction],\n declarations: [SimpleSnackBar, MatSnackBarContainer, MatSnackBarLabel, MatSnackBarActions, MatSnackBarAction]\n }]\n }], null, null);\n})();\n\n/** @docs-private */\nfunction MAT_SNACK_BAR_DEFAULT_OPTIONS_FACTORY() {\n return new MatSnackBarConfig();\n}\n/** Injection token that can be used to specify default snack bar. */\nconst MAT_SNACK_BAR_DEFAULT_OPTIONS = new InjectionToken('mat-snack-bar-default-options', {\n providedIn: 'root',\n factory: MAT_SNACK_BAR_DEFAULT_OPTIONS_FACTORY\n});\nclass _MatSnackBarBase {\n /** Reference to the currently opened snackbar at *any* level. */\n get _openedSnackBarRef() {\n const parent = this._parentSnackBar;\n return parent ? parent._openedSnackBarRef : this._snackBarRefAtThisLevel;\n }\n set _openedSnackBarRef(value) {\n if (this._parentSnackBar) {\n this._parentSnackBar._openedSnackBarRef = value;\n } else {\n this._snackBarRefAtThisLevel = value;\n }\n }\n constructor(_overlay, _live, _injector, _breakpointObserver, _parentSnackBar, _defaultConfig) {\n this._overlay = _overlay;\n this._live = _live;\n this._injector = _injector;\n this._breakpointObserver = _breakpointObserver;\n this._parentSnackBar = _parentSnackBar;\n this._defaultConfig = _defaultConfig;\n /**\n * Reference to the current snack bar in the view *at this level* (in the Angular injector tree).\n * If there is a parent snack-bar service, all operations should delegate to that parent\n * via `_openedSnackBarRef`.\n */\n this._snackBarRefAtThisLevel = null;\n }\n /**\n * Creates and dispatches a snack bar with a custom component for the content, removing any\n * currently opened snack bars.\n *\n * @param component Component to be instantiated.\n * @param config Extra configuration for the snack bar.\n */\n openFromComponent(component, config) {\n return this._attach(component, config);\n }\n /**\n * Creates and dispatches a snack bar with a custom template for the content, removing any\n * currently opened snack bars.\n *\n * @param template Template to be instantiated.\n * @param config Extra configuration for the snack bar.\n */\n openFromTemplate(template, config) {\n return this._attach(template, config);\n }\n /**\n * Opens a snackbar with a message and an optional action.\n * @param message The message to show in the snackbar.\n * @param action The label for the snackbar action.\n * @param config Additional configuration options for the snackbar.\n */\n open(message, action = '', config) {\n const _config = {\n ...this._defaultConfig,\n ...config\n };\n // Since the user doesn't have access to the component, we can\n // override the data to pass in our own message and action.\n _config.data = {\n message,\n action\n };\n // Since the snack bar has `role=\"alert\"`, we don't\n // want to announce the same message twice.\n if (_config.announcementMessage === message) {\n _config.announcementMessage = undefined;\n }\n return this.openFromComponent(this.simpleSnackBarComponent, _config);\n }\n /**\n * Dismisses the currently-visible snack bar.\n */\n dismiss() {\n if (this._openedSnackBarRef) {\n this._openedSnackBarRef.dismiss();\n }\n }\n ngOnDestroy() {\n // Only dismiss the snack bar at the current level on destroy.\n if (this._snackBarRefAtThisLevel) {\n this._snackBarRefAtThisLevel.dismiss();\n }\n }\n /**\n * Attaches the snack bar container component to the overlay.\n */\n _attachSnackBarContainer(overlayRef, config) {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n const injector = Injector.create({\n parent: userInjector || this._injector,\n providers: [{\n provide: MatSnackBarConfig,\n useValue: config\n }]\n });\n const containerPortal = new ComponentPortal(this.snackBarContainerComponent, config.viewContainerRef, injector);\n const containerRef = overlayRef.attach(containerPortal);\n containerRef.instance.snackBarConfig = config;\n return containerRef.instance;\n }\n /**\n * Places a new component or a template as the content of the snack bar container.\n */\n _attach(content, userConfig) {\n const config = {\n ...new MatSnackBarConfig(),\n ...this._defaultConfig,\n ...userConfig\n };\n const overlayRef = this._createOverlay(config);\n const container = this._attachSnackBarContainer(overlayRef, config);\n const snackBarRef = new MatSnackBarRef(container, overlayRef);\n if (content instanceof TemplateRef) {\n const portal = new TemplatePortal(content, null, {\n $implicit: config.data,\n snackBarRef\n });\n snackBarRef.instance = container.attachTemplatePortal(portal);\n } else {\n const injector = this._createInjector(config, snackBarRef);\n const portal = new ComponentPortal(content, undefined, injector);\n const contentRef = container.attachComponentPortal(portal);\n // We can't pass this via the injector, because the injector is created earlier.\n snackBarRef.instance = contentRef.instance;\n }\n // Subscribe to the breakpoint observer and attach the mat-snack-bar-handset class as\n // appropriate. This class is applied to the overlay element because the overlay must expand to\n // fill the width of the screen for full width snackbars.\n this._breakpointObserver.observe(Breakpoints.HandsetPortrait).pipe(takeUntil(overlayRef.detachments())).subscribe(state => {\n overlayRef.overlayElement.classList.toggle(this.handsetCssClass, state.matches);\n });\n if (config.announcementMessage) {\n // Wait until the snack bar contents have been announced then deliver this message.\n container._onAnnounce.subscribe(() => {\n this._live.announce(config.announcementMessage, config.politeness);\n });\n }\n this._animateSnackBar(snackBarRef, config);\n this._openedSnackBarRef = snackBarRef;\n return this._openedSnackBarRef;\n }\n /** Animates the old snack bar out and the new one in. */\n _animateSnackBar(snackBarRef, config) {\n // When the snackbar is dismissed, clear the reference to it.\n snackBarRef.afterDismissed().subscribe(() => {\n // Clear the snackbar ref if it hasn't already been replaced by a newer snackbar.\n if (this._openedSnackBarRef == snackBarRef) {\n this._openedSnackBarRef = null;\n }\n if (config.announcementMessage) {\n this._live.clear();\n }\n });\n if (this._openedSnackBarRef) {\n // If a snack bar is already in view, dismiss it and enter the\n // new snack bar after exit animation is complete.\n this._openedSnackBarRef.afterDismissed().subscribe(() => {\n snackBarRef.containerInstance.enter();\n });\n this._openedSnackBarRef.dismiss();\n } else {\n // If no snack bar is in view, enter the new snack bar.\n snackBarRef.containerInstance.enter();\n }\n // If a dismiss timeout is provided, set up dismiss based on after the snackbar is opened.\n if (config.duration && config.duration > 0) {\n snackBarRef.afterOpened().subscribe(() => snackBarRef._dismissAfter(config.duration));\n }\n }\n /**\n * Creates a new overlay and places it in the correct location.\n * @param config The user-specified snack bar config.\n */\n _createOverlay(config) {\n const overlayConfig = new OverlayConfig();\n overlayConfig.direction = config.direction;\n let positionStrategy = this._overlay.position().global();\n // Set horizontal position.\n const isRtl = config.direction === 'rtl';\n const isLeft = config.horizontalPosition === 'left' || config.horizontalPosition === 'start' && !isRtl || config.horizontalPosition === 'end' && isRtl;\n const isRight = !isLeft && config.horizontalPosition !== 'center';\n if (isLeft) {\n positionStrategy.left('0');\n } else if (isRight) {\n positionStrategy.right('0');\n } else {\n positionStrategy.centerHorizontally();\n }\n // Set horizontal position.\n if (config.verticalPosition === 'top') {\n positionStrategy.top('0');\n } else {\n positionStrategy.bottom('0');\n }\n overlayConfig.positionStrategy = positionStrategy;\n return this._overlay.create(overlayConfig);\n }\n /**\n * Creates an injector to be used inside of a snack bar component.\n * @param config Config that was used to create the snack bar.\n * @param snackBarRef Reference to the snack bar.\n */\n _createInjector(config, snackBarRef) {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n return Injector.create({\n parent: userInjector || this._injector,\n providers: [{\n provide: MatSnackBarRef,\n useValue: snackBarRef\n }, {\n provide: MAT_SNACK_BAR_DATA,\n useValue: config.data\n }]\n });\n }\n static {\n this.ɵfac = function _MatSnackBarBase_Factory(ɵt) {\n return new (ɵt || _MatSnackBarBase)(i0.ɵɵinject(i1$1.Overlay), i0.ɵɵinject(i2$1.LiveAnnouncer), i0.ɵɵinject(i0.Injector), i0.ɵɵinject(i3$2.BreakpointObserver), i0.ɵɵinject(_MatSnackBarBase, 12), i0.ɵɵinject(MAT_SNACK_BAR_DEFAULT_OPTIONS));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: _MatSnackBarBase,\n factory: _MatSnackBarBase.ɵfac\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(_MatSnackBarBase, [{\n type: Injectable\n }], function () {\n return [{\n type: i1$1.Overlay\n }, {\n type: i2$1.LiveAnnouncer\n }, {\n type: i0.Injector\n }, {\n type: i3$2.BreakpointObserver\n }, {\n type: _MatSnackBarBase,\n decorators: [{\n type: Optional\n }, {\n type: SkipSelf\n }]\n }, {\n type: MatSnackBarConfig,\n decorators: [{\n type: Inject,\n args: [MAT_SNACK_BAR_DEFAULT_OPTIONS]\n }]\n }];\n }, null);\n})();\n/**\n * Service to dispatch Material Design snack bar messages.\n */\nclass MatSnackBar extends _MatSnackBarBase {\n constructor(overlay, live, injector, breakpointObserver, parentSnackBar, defaultConfig) {\n super(overlay, live, injector, breakpointObserver, parentSnackBar, defaultConfig);\n this.simpleSnackBarComponent = SimpleSnackBar;\n this.snackBarContainerComponent = MatSnackBarContainer;\n this.handsetCssClass = 'mat-mdc-snack-bar-handset';\n }\n static {\n this.ɵfac = function MatSnackBar_Factory(ɵt) {\n return new (ɵt || MatSnackBar)(i0.ɵɵinject(i1$1.Overlay), i0.ɵɵinject(i2$1.LiveAnnouncer), i0.ɵɵinject(i0.Injector), i0.ɵɵinject(i3$2.BreakpointObserver), i0.ɵɵinject(MatSnackBar, 12), i0.ɵɵinject(MAT_SNACK_BAR_DEFAULT_OPTIONS));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: MatSnackBar,\n factory: MatSnackBar.ɵfac,\n providedIn: MatSnackBarModule\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatSnackBar, [{\n type: Injectable,\n args: [{\n providedIn: MatSnackBarModule\n }]\n }], function () {\n return [{\n type: i1$1.Overlay\n }, {\n type: i2$1.LiveAnnouncer\n }, {\n type: i0.Injector\n }, {\n type: i3$2.BreakpointObserver\n }, {\n type: MatSnackBar,\n decorators: [{\n type: Optional\n }, {\n type: SkipSelf\n }]\n }, {\n type: MatSnackBarConfig,\n decorators: [{\n type: Inject,\n args: [MAT_SNACK_BAR_DEFAULT_OPTIONS]\n }]\n }];\n }, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_SNACK_BAR_DATA, MAT_SNACK_BAR_DEFAULT_OPTIONS, MAT_SNACK_BAR_DEFAULT_OPTIONS_FACTORY, MatSnackBar, MatSnackBarAction, MatSnackBarActions, MatSnackBarConfig, MatSnackBarContainer, MatSnackBarLabel, MatSnackBarModule, MatSnackBarRef, SimpleSnackBar, _MatSnackBarBase, _MatSnackBarContainerBase, matSnackBarAnimations };\n","import * as i1$2 from '@angular/cdk/overlay';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport * as i1$1 from '@angular/cdk/portal';\nimport { PortalModule } from '@angular/cdk/portal';\nimport * as i2 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Component, ViewEncapsulation, ChangeDetectionStrategy, Inject, NgModule, Injectable, Optional, SkipSelf } from '@angular/core';\nimport { MatCommonModule } from '@angular/material/core';\nimport * as i3 from '@angular/material/legacy-button';\nimport { MatLegacyButtonModule } from '@angular/material/legacy-button';\nimport * as i1 from '@angular/material/snack-bar';\nimport { MAT_SNACK_BAR_DATA, _MatSnackBarContainerBase, matSnackBarAnimations, _MatSnackBarBase, MAT_SNACK_BAR_DEFAULT_OPTIONS } from '@angular/material/snack-bar';\nfunction LegacySimpleSnackBar_div_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 2)(1, \"button\", 3);\n i0.ɵɵlistener(\"click\", function LegacySimpleSnackBar_div_2_Template_button_click_1_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.action());\n });\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(ctx_r1.data.action);\n }\n}\nfunction MatLegacySnackBarContainer_ng_template_1_Template(rf, ctx) {}\nexport { MAT_SNACK_BAR_DATA as MAT_LEGACY_SNACK_BAR_DATA, MAT_SNACK_BAR_DEFAULT_OPTIONS as MAT_LEGACY_SNACK_BAR_DEFAULT_OPTIONS, MAT_SNACK_BAR_DEFAULT_OPTIONS_FACTORY as MAT_LEGACY_SNACK_BAR_DEFAULT_OPTIONS_FACTORY, MatSnackBarConfig as MatLegacySnackBarConfig, MatSnackBarRef as MatLegacySnackBarRef, _MatSnackBarBase as _MatLegacySnackBarBase, _MatSnackBarContainerBase as _MatLegacySnackBarContainerBase, matSnackBarAnimations as matLegacySnackBarAnimations } from '@angular/material/snack-bar';\nimport * as i2$1 from '@angular/cdk/a11y';\nimport * as i3$1 from '@angular/cdk/layout';\n\n/**\n * A component used to open as the default snack bar, matching material spec.\n * This should only be used internally by the snack bar service.\n * @deprecated Use `SimpleSnackBar` from `@angular/material/snack-bar` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass LegacySimpleSnackBar {\n constructor(snackBarRef, data) {\n this.snackBarRef = snackBarRef;\n this.data = data;\n }\n /** Performs the action on the snack bar. */\n action() {\n this.snackBarRef.dismissWithAction();\n }\n /** If the action button should be shown. */\n get hasAction() {\n return !!this.data.action;\n }\n static {\n this.ɵfac = function LegacySimpleSnackBar_Factory(ɵt) {\n return new (ɵt || LegacySimpleSnackBar)(i0.ɵɵdirectiveInject(i1.MatSnackBarRef), i0.ɵɵdirectiveInject(MAT_SNACK_BAR_DATA));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: LegacySimpleSnackBar,\n selectors: [[\"simple-snack-bar\"]],\n hostAttrs: [1, \"mat-simple-snackbar\"],\n decls: 3,\n vars: 2,\n consts: [[1, \"mat-simple-snack-bar-content\"], [\"class\", \"mat-simple-snackbar-action\", 4, \"ngIf\"], [1, \"mat-simple-snackbar-action\"], [\"mat-button\", \"\", 3, \"click\"]],\n template: function LegacySimpleSnackBar_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 0);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(2, LegacySimpleSnackBar_div_2_Template, 3, 1, \"div\", 1);\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx.data.message);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.hasAction);\n }\n },\n dependencies: [i2.NgIf, i3.MatLegacyButton],\n styles: [\".mat-simple-snackbar{display:flex;justify-content:space-between;align-items:center;line-height:20px;opacity:1}.mat-simple-snackbar-action{flex-shrink:0;margin:-8px -8px -8px 8px}.mat-simple-snackbar-action button{max-height:36px;min-width:0}[dir=rtl] .mat-simple-snackbar-action{margin-left:-8px;margin-right:8px}.mat-simple-snack-bar-content{overflow:hidden;text-overflow:ellipsis}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(LegacySimpleSnackBar, [{\n type: Component,\n args: [{\n selector: 'simple-snack-bar',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'mat-simple-snackbar'\n },\n template: \"{{data.message}}\\n\\n {{data.action}}\\n\\n\",\n styles: [\".mat-simple-snackbar{display:flex;justify-content:space-between;align-items:center;line-height:20px;opacity:1}.mat-simple-snackbar-action{flex-shrink:0;margin:-8px -8px -8px 8px}.mat-simple-snackbar-action button{max-height:36px;min-width:0}[dir=rtl] .mat-simple-snackbar-action{margin-left:-8px;margin-right:8px}.mat-simple-snack-bar-content{overflow:hidden;text-overflow:ellipsis}\"]\n }]\n }], function () {\n return [{\n type: i1.MatSnackBarRef\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [MAT_SNACK_BAR_DATA]\n }]\n }];\n }, null);\n})();\n\n/**\n * Internal component that wraps user-provided snack bar content.\n * @docs-private\n * @deprecated Use `MatSnackBarContainer` from `@angular/material/snack-bar` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacySnackBarContainer extends _MatSnackBarContainerBase {\n _afterPortalAttached() {\n super._afterPortalAttached();\n if (this.snackBarConfig.horizontalPosition === 'center') {\n this._elementRef.nativeElement.classList.add('mat-snack-bar-center');\n }\n if (this.snackBarConfig.verticalPosition === 'top') {\n this._elementRef.nativeElement.classList.add('mat-snack-bar-top');\n }\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatLegacySnackBarContainer_BaseFactory;\n return function MatLegacySnackBarContainer_Factory(ɵt) {\n return (ɵMatLegacySnackBarContainer_BaseFactory || (ɵMatLegacySnackBarContainer_BaseFactory = i0.ɵɵgetInheritedFactory(MatLegacySnackBarContainer)))(ɵt || MatLegacySnackBarContainer);\n };\n })();\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatLegacySnackBarContainer,\n selectors: [[\"snack-bar-container\"]],\n hostAttrs: [1, \"mat-snack-bar-container\"],\n hostVars: 1,\n hostBindings: function MatLegacySnackBarContainer_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵsyntheticHostListener(\"@state.done\", function MatLegacySnackBarContainer_animation_state_done_HostBindingHandler($event) {\n return ctx.onAnimationEnd($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵsyntheticHostProperty(\"@state\", ctx._animationState);\n }\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 3,\n vars: 3,\n consts: [[\"aria-hidden\", \"true\"], [\"cdkPortalOutlet\", \"\"]],\n template: function MatLegacySnackBarContainer_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵtemplate(1, MatLegacySnackBarContainer_ng_template_1_Template, 0, 0, \"ng-template\", 1);\n i0.ɵɵelementEnd();\n i0.ɵɵelement(2, \"div\");\n }\n if (rf & 2) {\n i0.ɵɵadvance(2);\n i0.ɵɵattribute(\"aria-live\", ctx._live)(\"role\", ctx._role)(\"id\", ctx._liveElementId);\n }\n },\n dependencies: [i1$1.CdkPortalOutlet],\n styles: [\".mat-snack-bar-container{border-radius:4px;box-sizing:border-box;display:block;margin:24px;max-width:33vw;min-width:344px;padding:14px 16px;min-height:48px;transform-origin:center}.cdk-high-contrast-active .mat-snack-bar-container{border:solid 1px}.mat-snack-bar-handset{width:100%}.mat-snack-bar-handset .mat-snack-bar-container{margin:8px;max-width:100%;min-width:0;width:100%}\"],\n encapsulation: 2,\n data: {\n animation: [matSnackBarAnimations.snackBarState]\n }\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacySnackBarContainer, [{\n type: Component,\n args: [{\n selector: 'snack-bar-container',\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n animations: [matSnackBarAnimations.snackBarState],\n host: {\n 'class': 'mat-snack-bar-container',\n '[@state]': '_animationState',\n '(@state.done)': 'onAnimationEnd($event)'\n },\n template: \"\\n\\n \\n\\n\\n\\n\\n\",\n styles: [\".mat-snack-bar-container{border-radius:4px;box-sizing:border-box;display:block;margin:24px;max-width:33vw;min-width:344px;padding:14px 16px;min-height:48px;transform-origin:center}.cdk-high-contrast-active .mat-snack-bar-container{border:solid 1px}.mat-snack-bar-handset{width:100%}.mat-snack-bar-handset .mat-snack-bar-container{margin:8px;max-width:100%;min-width:0;width:100%}\"]\n }]\n }], null, null);\n})();\n\n/**\n * @deprecated Use `MatSnackBarModule` from `@angular/material/snack-bar` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacySnackBarModule {\n static {\n this.ɵfac = function MatLegacySnackBarModule_Factory(ɵt) {\n return new (ɵt || MatLegacySnackBarModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatLegacySnackBarModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [OverlayModule, PortalModule, CommonModule, MatLegacyButtonModule, MatCommonModule, MatCommonModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacySnackBarModule, [{\n type: NgModule,\n args: [{\n imports: [OverlayModule, PortalModule, CommonModule, MatLegacyButtonModule, MatCommonModule],\n exports: [MatLegacySnackBarContainer, MatCommonModule],\n declarations: [MatLegacySnackBarContainer, LegacySimpleSnackBar]\n }]\n }], null, null);\n})();\n\n/**\n * Service to dispatch Material Design snack bar messages.\n * @deprecated Use `MatSnackBar` from `@angular/material/snack-bar` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacySnackBar extends _MatSnackBarBase {\n constructor(overlay, live, injector, breakpointObserver, parentSnackBar, defaultConfig) {\n super(overlay, live, injector, breakpointObserver, parentSnackBar, defaultConfig);\n this.simpleSnackBarComponent = LegacySimpleSnackBar;\n this.snackBarContainerComponent = MatLegacySnackBarContainer;\n this.handsetCssClass = 'mat-snack-bar-handset';\n }\n static {\n this.ɵfac = function MatLegacySnackBar_Factory(ɵt) {\n return new (ɵt || MatLegacySnackBar)(i0.ɵɵinject(i1$2.Overlay), i0.ɵɵinject(i2$1.LiveAnnouncer), i0.ɵɵinject(i0.Injector), i0.ɵɵinject(i3$1.BreakpointObserver), i0.ɵɵinject(MatLegacySnackBar, 12), i0.ɵɵinject(MAT_SNACK_BAR_DEFAULT_OPTIONS));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: MatLegacySnackBar,\n factory: MatLegacySnackBar.ɵfac,\n providedIn: MatLegacySnackBarModule\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacySnackBar, [{\n type: Injectable,\n args: [{\n providedIn: MatLegacySnackBarModule\n }]\n }], function () {\n return [{\n type: i1$2.Overlay\n }, {\n type: i2$1.LiveAnnouncer\n }, {\n type: i0.Injector\n }, {\n type: i3$1.BreakpointObserver\n }, {\n type: MatLegacySnackBar,\n decorators: [{\n type: Optional\n }, {\n type: SkipSelf\n }]\n }, {\n type: i1.MatSnackBarConfig,\n decorators: [{\n type: Inject,\n args: [MAT_SNACK_BAR_DEFAULT_OPTIONS]\n }]\n }];\n }, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { LegacySimpleSnackBar, MatLegacySnackBar, MatLegacySnackBarContainer, MatLegacySnackBarModule };\n","import * as i1 from '@angular/cdk/bidi';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { _VIEW_REPEATER_STRATEGY, _RecycleViewRepeaterStrategy, isDataSource, _DisposeViewRepeaterStrategy } from '@angular/cdk/collections';\nconst _c0 = [[[\"caption\"]], [[\"colgroup\"], [\"col\"]]];\nconst _c1 = [\"caption\", \"colgroup, col\"];\nfunction CdkTextColumn_th_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"th\", 3);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵstyleProp(\"text-align\", ctx_r0.justify);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r0.headerText, \" \");\n }\n}\nfunction CdkTextColumn_td_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"td\", 4);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const data_r2 = ctx.$implicit;\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵstyleProp(\"text-align\", ctx_r0.justify);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r0.dataAccessor(data_r2, ctx_r0.name), \" \");\n }\n}\nexport { DataSource } from '@angular/cdk/collections';\nimport * as i2 from '@angular/cdk/platform';\nimport * as i3 from '@angular/cdk/scrolling';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { DOCUMENT } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, Directive, Inject, Optional, Input, ContentChild, Injectable, Component, ChangeDetectionStrategy, ViewEncapsulation, EmbeddedViewRef, EventEmitter, NgZone, Attribute, SkipSelf, Output, ViewChild, ContentChildren, NgModule } from '@angular/core';\nimport { Subject, from, BehaviorSubject, isObservable, of } from 'rxjs';\nimport { takeUntil, take } from 'rxjs/operators';\n\n/**\n * Mixin to provide a directive with a function that checks if the sticky input has been\n * changed since the last time the function was called. Essentially adds a dirty-check to the\n * sticky value.\n * @docs-private\n */\nfunction mixinHasStickyInput(base) {\n return class extends base {\n /** Whether sticky positioning should be applied. */\n get sticky() {\n return this._sticky;\n }\n set sticky(v) {\n const prevValue = this._sticky;\n this._sticky = coerceBooleanProperty(v);\n this._hasStickyChanged = prevValue !== this._sticky;\n }\n /** Whether the sticky value has changed since this was last called. */\n hasStickyChanged() {\n const hasStickyChanged = this._hasStickyChanged;\n this._hasStickyChanged = false;\n return hasStickyChanged;\n }\n /** Resets the dirty check for cases where the sticky state has been used without checking. */\n resetStickyChanged() {\n this._hasStickyChanged = false;\n }\n constructor(...args) {\n super(...args);\n this._sticky = false;\n /** Whether the sticky input has changed since it was last checked. */\n this._hasStickyChanged = false;\n }\n };\n}\n\n/**\n * Used to provide a table to some of the sub-components without causing a circular dependency.\n * @docs-private\n */\nconst CDK_TABLE = new InjectionToken('CDK_TABLE');\n/** Injection token that can be used to specify the text column options. */\nconst TEXT_COLUMN_OPTIONS = new InjectionToken('text-column-options');\n\n/**\n * Cell definition for a CDK table.\n * Captures the template of a column's data row cell as well as cell-specific properties.\n */\nclass CdkCellDef {\n constructor( /** @docs-private */template) {\n this.template = template;\n }\n static {\n this.ɵfac = function CdkCellDef_Factory(ɵt) {\n return new (ɵt || CdkCellDef)(i0.ɵɵdirectiveInject(i0.TemplateRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkCellDef,\n selectors: [[\"\", \"cdkCellDef\", \"\"]]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkCellDef, [{\n type: Directive,\n args: [{\n selector: '[cdkCellDef]'\n }]\n }], function () {\n return [{\n type: i0.TemplateRef\n }];\n }, null);\n})();\n/**\n * Header cell definition for a CDK table.\n * Captures the template of a column's header cell and as well as cell-specific properties.\n */\nclass CdkHeaderCellDef {\n constructor( /** @docs-private */template) {\n this.template = template;\n }\n static {\n this.ɵfac = function CdkHeaderCellDef_Factory(ɵt) {\n return new (ɵt || CdkHeaderCellDef)(i0.ɵɵdirectiveInject(i0.TemplateRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkHeaderCellDef,\n selectors: [[\"\", \"cdkHeaderCellDef\", \"\"]]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkHeaderCellDef, [{\n type: Directive,\n args: [{\n selector: '[cdkHeaderCellDef]'\n }]\n }], function () {\n return [{\n type: i0.TemplateRef\n }];\n }, null);\n})();\n/**\n * Footer cell definition for a CDK table.\n * Captures the template of a column's footer cell and as well as cell-specific properties.\n */\nclass CdkFooterCellDef {\n constructor( /** @docs-private */template) {\n this.template = template;\n }\n static {\n this.ɵfac = function CdkFooterCellDef_Factory(ɵt) {\n return new (ɵt || CdkFooterCellDef)(i0.ɵɵdirectiveInject(i0.TemplateRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkFooterCellDef,\n selectors: [[\"\", \"cdkFooterCellDef\", \"\"]]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkFooterCellDef, [{\n type: Directive,\n args: [{\n selector: '[cdkFooterCellDef]'\n }]\n }], function () {\n return [{\n type: i0.TemplateRef\n }];\n }, null);\n})();\n// Boilerplate for applying mixins to CdkColumnDef.\n/** @docs-private */\nclass CdkColumnDefBase {}\nconst _CdkColumnDefBase = mixinHasStickyInput(CdkColumnDefBase);\n/**\n * Column definition for the CDK table.\n * Defines a set of cells available for a table column.\n */\nclass CdkColumnDef extends _CdkColumnDefBase {\n /** Unique name for this column. */\n get name() {\n return this._name;\n }\n set name(name) {\n this._setNameInput(name);\n }\n /**\n * Whether this column should be sticky positioned on the end of the row. Should make sure\n * that it mimics the `CanStick` mixin such that `_hasStickyChanged` is set to true if the value\n * has been changed.\n */\n get stickyEnd() {\n return this._stickyEnd;\n }\n set stickyEnd(v) {\n const prevValue = this._stickyEnd;\n this._stickyEnd = coerceBooleanProperty(v);\n this._hasStickyChanged = prevValue !== this._stickyEnd;\n }\n constructor(_table) {\n super();\n this._table = _table;\n this._stickyEnd = false;\n }\n /**\n * Overridable method that sets the css classes that will be added to every cell in this\n * column.\n * In the future, columnCssClassName will change from type string[] to string and this\n * will set a single string value.\n * @docs-private\n */\n _updateColumnCssClassName() {\n this._columnCssClassName = [`cdk-column-${this.cssClassFriendlyName}`];\n }\n /**\n * This has been extracted to a util because of TS 4 and VE.\n * View Engine doesn't support property rename inheritance.\n * TS 4.0 doesn't allow properties to override accessors or vice-versa.\n * @docs-private\n */\n _setNameInput(value) {\n // If the directive is set without a name (updated programmatically), then this setter will\n // trigger with an empty string and should not overwrite the programmatically set value.\n if (value) {\n this._name = value;\n this.cssClassFriendlyName = value.replace(/[^a-z0-9_-]/gi, '-');\n this._updateColumnCssClassName();\n }\n }\n static {\n this.ɵfac = function CdkColumnDef_Factory(ɵt) {\n return new (ɵt || CdkColumnDef)(i0.ɵɵdirectiveInject(CDK_TABLE, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkColumnDef,\n selectors: [[\"\", \"cdkColumnDef\", \"\"]],\n contentQueries: function CdkColumnDef_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, CdkCellDef, 5);\n i0.ɵɵcontentQuery(dirIndex, CdkHeaderCellDef, 5);\n i0.ɵɵcontentQuery(dirIndex, CdkFooterCellDef, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.cell = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.headerCell = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.footerCell = _t.first);\n }\n },\n inputs: {\n sticky: \"sticky\",\n name: [0, \"cdkColumnDef\", \"name\"],\n stickyEnd: \"stickyEnd\"\n },\n features: [i0.ɵɵProvidersFeature([{\n provide: 'MAT_SORT_HEADER_COLUMN_DEF',\n useExisting: CdkColumnDef\n }]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkColumnDef, [{\n type: Directive,\n args: [{\n selector: '[cdkColumnDef]',\n inputs: ['sticky'],\n providers: [{\n provide: 'MAT_SORT_HEADER_COLUMN_DEF',\n useExisting: CdkColumnDef\n }]\n }]\n }], function () {\n return [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [CDK_TABLE]\n }, {\n type: Optional\n }]\n }];\n }, {\n name: [{\n type: Input,\n args: ['cdkColumnDef']\n }],\n stickyEnd: [{\n type: Input,\n args: ['stickyEnd']\n }],\n cell: [{\n type: ContentChild,\n args: [CdkCellDef]\n }],\n headerCell: [{\n type: ContentChild,\n args: [CdkHeaderCellDef]\n }],\n footerCell: [{\n type: ContentChild,\n args: [CdkFooterCellDef]\n }]\n });\n})();\n/** Base class for the cells. Adds a CSS classname that identifies the column it renders in. */\nclass BaseCdkCell {\n constructor(columnDef, elementRef) {\n elementRef.nativeElement.classList.add(...columnDef._columnCssClassName);\n }\n}\n/** Header cell template container that adds the right classes and role. */\nclass CdkHeaderCell extends BaseCdkCell {\n constructor(columnDef, elementRef) {\n super(columnDef, elementRef);\n }\n static {\n this.ɵfac = function CdkHeaderCell_Factory(ɵt) {\n return new (ɵt || CdkHeaderCell)(i0.ɵɵdirectiveInject(CdkColumnDef), i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkHeaderCell,\n selectors: [[\"cdk-header-cell\"], [\"th\", \"cdk-header-cell\", \"\"]],\n hostAttrs: [\"role\", \"columnheader\", 1, \"cdk-header-cell\"],\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkHeaderCell, [{\n type: Directive,\n args: [{\n selector: 'cdk-header-cell, th[cdk-header-cell]',\n host: {\n 'class': 'cdk-header-cell',\n 'role': 'columnheader'\n }\n }]\n }], function () {\n return [{\n type: CdkColumnDef\n }, {\n type: i0.ElementRef\n }];\n }, null);\n})();\n/** Footer cell template container that adds the right classes and role. */\nclass CdkFooterCell extends BaseCdkCell {\n constructor(columnDef, elementRef) {\n super(columnDef, elementRef);\n if (columnDef._table?._elementRef.nativeElement.nodeType === 1) {\n const tableRole = columnDef._table._elementRef.nativeElement.getAttribute('role');\n const role = tableRole === 'grid' || tableRole === 'treegrid' ? 'gridcell' : 'cell';\n elementRef.nativeElement.setAttribute('role', role);\n }\n }\n static {\n this.ɵfac = function CdkFooterCell_Factory(ɵt) {\n return new (ɵt || CdkFooterCell)(i0.ɵɵdirectiveInject(CdkColumnDef), i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkFooterCell,\n selectors: [[\"cdk-footer-cell\"], [\"td\", \"cdk-footer-cell\", \"\"]],\n hostAttrs: [1, \"cdk-footer-cell\"],\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkFooterCell, [{\n type: Directive,\n args: [{\n selector: 'cdk-footer-cell, td[cdk-footer-cell]',\n host: {\n 'class': 'cdk-footer-cell'\n }\n }]\n }], function () {\n return [{\n type: CdkColumnDef\n }, {\n type: i0.ElementRef\n }];\n }, null);\n})();\n/** Cell template container that adds the right classes and role. */\nclass CdkCell extends BaseCdkCell {\n constructor(columnDef, elementRef) {\n super(columnDef, elementRef);\n if (columnDef._table?._elementRef.nativeElement.nodeType === 1) {\n const tableRole = columnDef._table._elementRef.nativeElement.getAttribute('role');\n const role = tableRole === 'grid' || tableRole === 'treegrid' ? 'gridcell' : 'cell';\n elementRef.nativeElement.setAttribute('role', role);\n }\n }\n static {\n this.ɵfac = function CdkCell_Factory(ɵt) {\n return new (ɵt || CdkCell)(i0.ɵɵdirectiveInject(CdkColumnDef), i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkCell,\n selectors: [[\"cdk-cell\"], [\"td\", \"cdk-cell\", \"\"]],\n hostAttrs: [1, \"cdk-cell\"],\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkCell, [{\n type: Directive,\n args: [{\n selector: 'cdk-cell, td[cdk-cell]',\n host: {\n 'class': 'cdk-cell'\n }\n }]\n }], function () {\n return [{\n type: CdkColumnDef\n }, {\n type: i0.ElementRef\n }];\n }, null);\n})();\n\n/**\n * @docs-private\n */\nclass _Schedule {\n constructor() {\n this.tasks = [];\n this.endTasks = [];\n }\n}\n/** Injection token used to provide a coalesced style scheduler. */\nconst _COALESCED_STYLE_SCHEDULER = new InjectionToken('_COALESCED_STYLE_SCHEDULER');\n/**\n * Allows grouping up CSSDom mutations after the current execution context.\n * This can significantly improve performance when separate consecutive functions are\n * reading from the CSSDom and then mutating it.\n *\n * @docs-private\n */\nclass _CoalescedStyleScheduler {\n constructor(_ngZone) {\n this._ngZone = _ngZone;\n this._currentSchedule = null;\n this._destroyed = new Subject();\n }\n /**\n * Schedules the specified task to run at the end of the current VM turn.\n */\n schedule(task) {\n this._createScheduleIfNeeded();\n this._currentSchedule.tasks.push(task);\n }\n /**\n * Schedules the specified task to run after other scheduled tasks at the end of the current\n * VM turn.\n */\n scheduleEnd(task) {\n this._createScheduleIfNeeded();\n this._currentSchedule.endTasks.push(task);\n }\n /** Prevent any further tasks from running. */\n ngOnDestroy() {\n this._destroyed.next();\n this._destroyed.complete();\n }\n _createScheduleIfNeeded() {\n if (this._currentSchedule) {\n return;\n }\n this._currentSchedule = new _Schedule();\n this._getScheduleObservable().pipe(takeUntil(this._destroyed)).subscribe(() => {\n while (this._currentSchedule.tasks.length || this._currentSchedule.endTasks.length) {\n const schedule = this._currentSchedule;\n // Capture new tasks scheduled by the current set of tasks.\n this._currentSchedule = new _Schedule();\n for (const task of schedule.tasks) {\n task();\n }\n for (const task of schedule.endTasks) {\n task();\n }\n }\n this._currentSchedule = null;\n });\n }\n _getScheduleObservable() {\n // Use onStable when in the context of an ongoing change detection cycle so that we\n // do not accidentally trigger additional cycles.\n return this._ngZone.isStable ? from(Promise.resolve(undefined)) : this._ngZone.onStable.pipe(take(1));\n }\n static {\n this.ɵfac = function _CoalescedStyleScheduler_Factory(ɵt) {\n return new (ɵt || _CoalescedStyleScheduler)(i0.ɵɵinject(i0.NgZone));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: _CoalescedStyleScheduler,\n factory: _CoalescedStyleScheduler.ɵfac\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(_CoalescedStyleScheduler, [{\n type: Injectable\n }], function () {\n return [{\n type: i0.NgZone\n }];\n }, null);\n})();\n\n/**\n * The row template that can be used by the mat-table. Should not be used outside of the\n * material library.\n */\nconst CDK_ROW_TEMPLATE = ``;\n/**\n * Base class for the CdkHeaderRowDef and CdkRowDef that handles checking their columns inputs\n * for changes and notifying the table.\n */\nclass BaseRowDef {\n constructor( /** @docs-private */template, _differs) {\n this.template = template;\n this._differs = _differs;\n }\n ngOnChanges(changes) {\n // Create a new columns differ if one does not yet exist. Initialize it based on initial value\n // of the columns property or an empty array if none is provided.\n if (!this._columnsDiffer) {\n const columns = changes['columns'] && changes['columns'].currentValue || [];\n this._columnsDiffer = this._differs.find(columns).create();\n this._columnsDiffer.diff(columns);\n }\n }\n /**\n * Returns the difference between the current columns and the columns from the last diff, or null\n * if there is no difference.\n */\n getColumnsDiff() {\n return this._columnsDiffer.diff(this.columns);\n }\n /** Gets this row def's relevant cell template from the provided column def. */\n extractCellTemplate(column) {\n if (this instanceof CdkHeaderRowDef) {\n return column.headerCell.template;\n }\n if (this instanceof CdkFooterRowDef) {\n return column.footerCell.template;\n } else {\n return column.cell.template;\n }\n }\n static {\n this.ɵfac = function BaseRowDef_Factory(ɵt) {\n return new (ɵt || BaseRowDef)(i0.ɵɵdirectiveInject(i0.TemplateRef), i0.ɵɵdirectiveInject(i0.IterableDiffers));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: BaseRowDef,\n features: [i0.ɵɵNgOnChangesFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(BaseRowDef, [{\n type: Directive\n }], function () {\n return [{\n type: i0.TemplateRef\n }, {\n type: i0.IterableDiffers\n }];\n }, null);\n})();\n// Boilerplate for applying mixins to CdkHeaderRowDef.\n/** @docs-private */\nclass CdkHeaderRowDefBase extends BaseRowDef {}\nconst _CdkHeaderRowDefBase = mixinHasStickyInput(CdkHeaderRowDefBase);\n/**\n * Header row definition for the CDK table.\n * Captures the header row's template and other header properties such as the columns to display.\n */\nclass CdkHeaderRowDef extends _CdkHeaderRowDefBase {\n constructor(template, _differs, _table) {\n super(template, _differs);\n this._table = _table;\n }\n // Prerender fails to recognize that ngOnChanges in a part of this class through inheritance.\n // Explicitly define it so that the method is called as part of the Angular lifecycle.\n ngOnChanges(changes) {\n super.ngOnChanges(changes);\n }\n static {\n this.ɵfac = function CdkHeaderRowDef_Factory(ɵt) {\n return new (ɵt || CdkHeaderRowDef)(i0.ɵɵdirectiveInject(i0.TemplateRef), i0.ɵɵdirectiveInject(i0.IterableDiffers), i0.ɵɵdirectiveInject(CDK_TABLE, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkHeaderRowDef,\n selectors: [[\"\", \"cdkHeaderRowDef\", \"\"]],\n inputs: {\n columns: [0, \"cdkHeaderRowDef\", \"columns\"],\n sticky: [0, \"cdkHeaderRowDefSticky\", \"sticky\"]\n },\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkHeaderRowDef, [{\n type: Directive,\n args: [{\n selector: '[cdkHeaderRowDef]',\n inputs: ['columns: cdkHeaderRowDef', 'sticky: cdkHeaderRowDefSticky']\n }]\n }], function () {\n return [{\n type: i0.TemplateRef\n }, {\n type: i0.IterableDiffers\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [CDK_TABLE]\n }, {\n type: Optional\n }]\n }];\n }, null);\n})();\n// Boilerplate for applying mixins to CdkFooterRowDef.\n/** @docs-private */\nclass CdkFooterRowDefBase extends BaseRowDef {}\nconst _CdkFooterRowDefBase = mixinHasStickyInput(CdkFooterRowDefBase);\n/**\n * Footer row definition for the CDK table.\n * Captures the footer row's template and other footer properties such as the columns to display.\n */\nclass CdkFooterRowDef extends _CdkFooterRowDefBase {\n constructor(template, _differs, _table) {\n super(template, _differs);\n this._table = _table;\n }\n // Prerender fails to recognize that ngOnChanges in a part of this class through inheritance.\n // Explicitly define it so that the method is called as part of the Angular lifecycle.\n ngOnChanges(changes) {\n super.ngOnChanges(changes);\n }\n static {\n this.ɵfac = function CdkFooterRowDef_Factory(ɵt) {\n return new (ɵt || CdkFooterRowDef)(i0.ɵɵdirectiveInject(i0.TemplateRef), i0.ɵɵdirectiveInject(i0.IterableDiffers), i0.ɵɵdirectiveInject(CDK_TABLE, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkFooterRowDef,\n selectors: [[\"\", \"cdkFooterRowDef\", \"\"]],\n inputs: {\n columns: [0, \"cdkFooterRowDef\", \"columns\"],\n sticky: [0, \"cdkFooterRowDefSticky\", \"sticky\"]\n },\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkFooterRowDef, [{\n type: Directive,\n args: [{\n selector: '[cdkFooterRowDef]',\n inputs: ['columns: cdkFooterRowDef', 'sticky: cdkFooterRowDefSticky']\n }]\n }], function () {\n return [{\n type: i0.TemplateRef\n }, {\n type: i0.IterableDiffers\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [CDK_TABLE]\n }, {\n type: Optional\n }]\n }];\n }, null);\n})();\n/**\n * Data row definition for the CDK table.\n * Captures the header row's template and other row properties such as the columns to display and\n * a when predicate that describes when this row should be used.\n */\nclass CdkRowDef extends BaseRowDef {\n // TODO(andrewseguin): Add an input for providing a switch function to determine\n // if this template should be used.\n constructor(template, _differs, _table) {\n super(template, _differs);\n this._table = _table;\n }\n static {\n this.ɵfac = function CdkRowDef_Factory(ɵt) {\n return new (ɵt || CdkRowDef)(i0.ɵɵdirectiveInject(i0.TemplateRef), i0.ɵɵdirectiveInject(i0.IterableDiffers), i0.ɵɵdirectiveInject(CDK_TABLE, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkRowDef,\n selectors: [[\"\", \"cdkRowDef\", \"\"]],\n inputs: {\n columns: [0, \"cdkRowDefColumns\", \"columns\"],\n when: [0, \"cdkRowDefWhen\", \"when\"]\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkRowDef, [{\n type: Directive,\n args: [{\n selector: '[cdkRowDef]',\n inputs: ['columns: cdkRowDefColumns', 'when: cdkRowDefWhen']\n }]\n }], function () {\n return [{\n type: i0.TemplateRef\n }, {\n type: i0.IterableDiffers\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [CDK_TABLE]\n }, {\n type: Optional\n }]\n }];\n }, null);\n})();\n/**\n * Outlet for rendering cells inside of a row or header row.\n * @docs-private\n */\nclass CdkCellOutlet {\n /**\n * Static property containing the latest constructed instance of this class.\n * Used by the CDK table when each CdkHeaderRow and CdkRow component is created using\n * createEmbeddedView. After one of these components are created, this property will provide\n * a handle to provide that component's cells and context. After init, the CdkCellOutlet will\n * construct the cells with the provided context.\n */\n static {\n this.mostRecentCellOutlet = null;\n }\n constructor(_viewContainer) {\n this._viewContainer = _viewContainer;\n CdkCellOutlet.mostRecentCellOutlet = this;\n }\n ngOnDestroy() {\n // If this was the last outlet being rendered in the view, remove the reference\n // from the static property after it has been destroyed to avoid leaking memory.\n if (CdkCellOutlet.mostRecentCellOutlet === this) {\n CdkCellOutlet.mostRecentCellOutlet = null;\n }\n }\n static {\n this.ɵfac = function CdkCellOutlet_Factory(ɵt) {\n return new (ɵt || CdkCellOutlet)(i0.ɵɵdirectiveInject(i0.ViewContainerRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkCellOutlet,\n selectors: [[\"\", \"cdkCellOutlet\", \"\"]]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkCellOutlet, [{\n type: Directive,\n args: [{\n selector: '[cdkCellOutlet]'\n }]\n }], function () {\n return [{\n type: i0.ViewContainerRef\n }];\n }, null);\n})();\n/** Header template container that contains the cell outlet. Adds the right class and role. */\nclass CdkHeaderRow {\n static {\n this.ɵfac = function CdkHeaderRow_Factory(ɵt) {\n return new (ɵt || CdkHeaderRow)();\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: CdkHeaderRow,\n selectors: [[\"cdk-header-row\"], [\"tr\", \"cdk-header-row\", \"\"]],\n hostAttrs: [\"role\", \"row\", 1, \"cdk-header-row\"],\n decls: 1,\n vars: 0,\n consts: [[\"cdkCellOutlet\", \"\"]],\n template: function CdkHeaderRow_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0, 0);\n }\n },\n dependencies: [CdkCellOutlet],\n encapsulation: 2\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkHeaderRow, [{\n type: Component,\n args: [{\n selector: 'cdk-header-row, tr[cdk-header-row]',\n template: CDK_ROW_TEMPLATE,\n host: {\n 'class': 'cdk-header-row',\n 'role': 'row'\n },\n // See note on CdkTable for explanation on why this uses the default change detection strategy.\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None\n }]\n }], null, null);\n})();\n/** Footer template container that contains the cell outlet. Adds the right class and role. */\nclass CdkFooterRow {\n static {\n this.ɵfac = function CdkFooterRow_Factory(ɵt) {\n return new (ɵt || CdkFooterRow)();\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: CdkFooterRow,\n selectors: [[\"cdk-footer-row\"], [\"tr\", \"cdk-footer-row\", \"\"]],\n hostAttrs: [\"role\", \"row\", 1, \"cdk-footer-row\"],\n decls: 1,\n vars: 0,\n consts: [[\"cdkCellOutlet\", \"\"]],\n template: function CdkFooterRow_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0, 0);\n }\n },\n dependencies: [CdkCellOutlet],\n encapsulation: 2\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkFooterRow, [{\n type: Component,\n args: [{\n selector: 'cdk-footer-row, tr[cdk-footer-row]',\n template: CDK_ROW_TEMPLATE,\n host: {\n 'class': 'cdk-footer-row',\n 'role': 'row'\n },\n // See note on CdkTable for explanation on why this uses the default change detection strategy.\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None\n }]\n }], null, null);\n})();\n/** Data row template container that contains the cell outlet. Adds the right class and role. */\nclass CdkRow {\n static {\n this.ɵfac = function CdkRow_Factory(ɵt) {\n return new (ɵt || CdkRow)();\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: CdkRow,\n selectors: [[\"cdk-row\"], [\"tr\", \"cdk-row\", \"\"]],\n hostAttrs: [\"role\", \"row\", 1, \"cdk-row\"],\n decls: 1,\n vars: 0,\n consts: [[\"cdkCellOutlet\", \"\"]],\n template: function CdkRow_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0, 0);\n }\n },\n dependencies: [CdkCellOutlet],\n encapsulation: 2\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkRow, [{\n type: Component,\n args: [{\n selector: 'cdk-row, tr[cdk-row]',\n template: CDK_ROW_TEMPLATE,\n host: {\n 'class': 'cdk-row',\n 'role': 'row'\n },\n // See note on CdkTable for explanation on why this uses the default change detection strategy.\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None\n }]\n }], null, null);\n})();\n/** Row that can be used to display a message when no data is shown in the table. */\nclass CdkNoDataRow {\n constructor(templateRef) {\n this.templateRef = templateRef;\n this._contentClassName = 'cdk-no-data-row';\n }\n static {\n this.ɵfac = function CdkNoDataRow_Factory(ɵt) {\n return new (ɵt || CdkNoDataRow)(i0.ɵɵdirectiveInject(i0.TemplateRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkNoDataRow,\n selectors: [[\"ng-template\", \"cdkNoDataRow\", \"\"]]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkNoDataRow, [{\n type: Directive,\n args: [{\n selector: 'ng-template[cdkNoDataRow]'\n }]\n }], function () {\n return [{\n type: i0.TemplateRef\n }];\n }, null);\n})();\n\n/**\n * List of all possible directions that can be used for sticky positioning.\n * @docs-private\n */\nconst STICKY_DIRECTIONS = ['top', 'bottom', 'left', 'right'];\n/**\n * Applies and removes sticky positioning styles to the `CdkTable` rows and columns cells.\n * @docs-private\n */\nclass StickyStyler {\n /**\n * @param _isNativeHtmlTable Whether the sticky logic should be based on a table\n * that uses the native `` element.\n * @param _stickCellCss The CSS class that will be applied to every row/cell that has\n * sticky positioning applied.\n * @param direction The directionality context of the table (ltr/rtl); affects column positioning\n * by reversing left/right positions.\n * @param _isBrowser Whether the table is currently being rendered on the server or the client.\n * @param _needsPositionStickyOnElement Whether we need to specify position: sticky on cells\n * using inline styles. If false, it is assumed that position: sticky is included in\n * the component stylesheet for _stickCellCss.\n * @param _positionListener A listener that is notified of changes to sticky rows/columns\n * and their dimensions.\n */\n constructor(_isNativeHtmlTable, _stickCellCss, direction, _coalescedStyleScheduler, _isBrowser = true, _needsPositionStickyOnElement = true, _positionListener) {\n this._isNativeHtmlTable = _isNativeHtmlTable;\n this._stickCellCss = _stickCellCss;\n this.direction = direction;\n this._coalescedStyleScheduler = _coalescedStyleScheduler;\n this._isBrowser = _isBrowser;\n this._needsPositionStickyOnElement = _needsPositionStickyOnElement;\n this._positionListener = _positionListener;\n this._cachedCellWidths = [];\n this._borderCellCss = {\n 'top': `${_stickCellCss}-border-elem-top`,\n 'bottom': `${_stickCellCss}-border-elem-bottom`,\n 'left': `${_stickCellCss}-border-elem-left`,\n 'right': `${_stickCellCss}-border-elem-right`\n };\n }\n /**\n * Clears the sticky positioning styles from the row and its cells by resetting the `position`\n * style, setting the zIndex to 0, and unsetting each provided sticky direction.\n * @param rows The list of rows that should be cleared from sticking in the provided directions\n * @param stickyDirections The directions that should no longer be set as sticky on the rows.\n */\n clearStickyPositioning(rows, stickyDirections) {\n const elementsToClear = [];\n for (const row of rows) {\n // If the row isn't an element (e.g. if it's an `ng-container`),\n // it won't have inline styles or `children` so we skip it.\n if (row.nodeType !== row.ELEMENT_NODE) {\n continue;\n }\n elementsToClear.push(row);\n for (let i = 0; i < row.children.length; i++) {\n elementsToClear.push(row.children[i]);\n }\n }\n // Coalesce with sticky row/column updates (and potentially other changes like column resize).\n this._coalescedStyleScheduler.schedule(() => {\n for (const element of elementsToClear) {\n this._removeStickyStyle(element, stickyDirections);\n }\n });\n }\n /**\n * Applies sticky left and right positions to the cells of each row according to the sticky\n * states of the rendered column definitions.\n * @param rows The rows that should have its set of cells stuck according to the sticky states.\n * @param stickyStartStates A list of boolean states where each state represents whether the cell\n * in this index position should be stuck to the start of the row.\n * @param stickyEndStates A list of boolean states where each state represents whether the cell\n * in this index position should be stuck to the end of the row.\n * @param recalculateCellWidths Whether the sticky styler should recalculate the width of each\n * column cell. If `false` cached widths will be used instead.\n */\n updateStickyColumns(rows, stickyStartStates, stickyEndStates, recalculateCellWidths = true) {\n if (!rows.length || !this._isBrowser || !(stickyStartStates.some(state => state) || stickyEndStates.some(state => state))) {\n if (this._positionListener) {\n this._positionListener.stickyColumnsUpdated({\n sizes: []\n });\n this._positionListener.stickyEndColumnsUpdated({\n sizes: []\n });\n }\n return;\n }\n const firstRow = rows[0];\n const numCells = firstRow.children.length;\n const cellWidths = this._getCellWidths(firstRow, recalculateCellWidths);\n const startPositions = this._getStickyStartColumnPositions(cellWidths, stickyStartStates);\n const endPositions = this._getStickyEndColumnPositions(cellWidths, stickyEndStates);\n const lastStickyStart = stickyStartStates.lastIndexOf(true);\n const firstStickyEnd = stickyEndStates.indexOf(true);\n // Coalesce with sticky row updates (and potentially other changes like column resize).\n this._coalescedStyleScheduler.schedule(() => {\n const isRtl = this.direction === 'rtl';\n const start = isRtl ? 'right' : 'left';\n const end = isRtl ? 'left' : 'right';\n for (const row of rows) {\n for (let i = 0; i < numCells; i++) {\n const cell = row.children[i];\n if (stickyStartStates[i]) {\n this._addStickyStyle(cell, start, startPositions[i], i === lastStickyStart);\n }\n if (stickyEndStates[i]) {\n this._addStickyStyle(cell, end, endPositions[i], i === firstStickyEnd);\n }\n }\n }\n if (this._positionListener) {\n this._positionListener.stickyColumnsUpdated({\n sizes: lastStickyStart === -1 ? [] : cellWidths.slice(0, lastStickyStart + 1).map((width, index) => stickyStartStates[index] ? width : null)\n });\n this._positionListener.stickyEndColumnsUpdated({\n sizes: firstStickyEnd === -1 ? [] : cellWidths.slice(firstStickyEnd).map((width, index) => stickyEndStates[index + firstStickyEnd] ? width : null).reverse()\n });\n }\n });\n }\n /**\n * Applies sticky positioning to the row's cells if using the native table layout, and to the\n * row itself otherwise.\n * @param rowsToStick The list of rows that should be stuck according to their corresponding\n * sticky state and to the provided top or bottom position.\n * @param stickyStates A list of boolean states where each state represents whether the row\n * should be stuck in the particular top or bottom position.\n * @param position The position direction in which the row should be stuck if that row should be\n * sticky.\n *\n */\n stickRows(rowsToStick, stickyStates, position) {\n // Since we can't measure the rows on the server, we can't stick the rows properly.\n if (!this._isBrowser) {\n return;\n }\n // If positioning the rows to the bottom, reverse their order when evaluating the sticky\n // position such that the last row stuck will be \"bottom: 0px\" and so on. Note that the\n // sticky states need to be reversed as well.\n const rows = position === 'bottom' ? rowsToStick.slice().reverse() : rowsToStick;\n const states = position === 'bottom' ? stickyStates.slice().reverse() : stickyStates;\n // Measure row heights all at once before adding sticky styles to reduce layout thrashing.\n const stickyOffsets = [];\n const stickyCellHeights = [];\n const elementsToStick = [];\n for (let rowIndex = 0, stickyOffset = 0; rowIndex < rows.length; rowIndex++) {\n if (!states[rowIndex]) {\n continue;\n }\n stickyOffsets[rowIndex] = stickyOffset;\n const row = rows[rowIndex];\n elementsToStick[rowIndex] = this._isNativeHtmlTable ? Array.from(row.children) : [row];\n const height = row.getBoundingClientRect().height;\n stickyOffset += height;\n stickyCellHeights[rowIndex] = height;\n }\n const borderedRowIndex = states.lastIndexOf(true);\n // Coalesce with other sticky row updates (top/bottom), sticky columns updates\n // (and potentially other changes like column resize).\n this._coalescedStyleScheduler.schedule(() => {\n for (let rowIndex = 0; rowIndex < rows.length; rowIndex++) {\n if (!states[rowIndex]) {\n continue;\n }\n const offset = stickyOffsets[rowIndex];\n const isBorderedRowIndex = rowIndex === borderedRowIndex;\n for (const element of elementsToStick[rowIndex]) {\n this._addStickyStyle(element, position, offset, isBorderedRowIndex);\n }\n }\n if (position === 'top') {\n this._positionListener?.stickyHeaderRowsUpdated({\n sizes: stickyCellHeights,\n offsets: stickyOffsets,\n elements: elementsToStick\n });\n } else {\n this._positionListener?.stickyFooterRowsUpdated({\n sizes: stickyCellHeights,\n offsets: stickyOffsets,\n elements: elementsToStick\n });\n }\n });\n }\n /**\n * When using the native table in Safari, sticky footer cells do not stick. The only way to stick\n * footer rows is to apply sticky styling to the tfoot container. This should only be done if\n * all footer rows are sticky. If not all footer rows are sticky, remove sticky positioning from\n * the tfoot element.\n */\n updateStickyFooterContainer(tableElement, stickyStates) {\n if (!this._isNativeHtmlTable) {\n return;\n }\n const tfoot = tableElement.querySelector('tfoot');\n // Coalesce with other sticky updates (and potentially other changes like column resize).\n this._coalescedStyleScheduler.schedule(() => {\n if (stickyStates.some(state => !state)) {\n this._removeStickyStyle(tfoot, ['bottom']);\n } else {\n this._addStickyStyle(tfoot, 'bottom', 0, false);\n }\n });\n }\n /**\n * Removes the sticky style on the element by removing the sticky cell CSS class, re-evaluating\n * the zIndex, removing each of the provided sticky directions, and removing the\n * sticky position if there are no more directions.\n */\n _removeStickyStyle(element, stickyDirections) {\n for (const dir of stickyDirections) {\n element.style[dir] = '';\n element.classList.remove(this._borderCellCss[dir]);\n }\n // If the element no longer has any more sticky directions, remove sticky positioning and\n // the sticky CSS class.\n // Short-circuit checking element.style[dir] for stickyDirections as they\n // were already removed above.\n const hasDirection = STICKY_DIRECTIONS.some(dir => stickyDirections.indexOf(dir) === -1 && element.style[dir]);\n if (hasDirection) {\n element.style.zIndex = this._getCalculatedZIndex(element);\n } else {\n // When not hasDirection, _getCalculatedZIndex will always return ''.\n element.style.zIndex = '';\n if (this._needsPositionStickyOnElement) {\n element.style.position = '';\n }\n element.classList.remove(this._stickCellCss);\n }\n }\n /**\n * Adds the sticky styling to the element by adding the sticky style class, changing position\n * to be sticky (and -webkit-sticky), setting the appropriate zIndex, and adding a sticky\n * direction and value.\n */\n _addStickyStyle(element, dir, dirValue, isBorderElement) {\n element.classList.add(this._stickCellCss);\n if (isBorderElement) {\n element.classList.add(this._borderCellCss[dir]);\n }\n element.style[dir] = `${dirValue}px`;\n element.style.zIndex = this._getCalculatedZIndex(element);\n if (this._needsPositionStickyOnElement) {\n element.style.cssText += 'position: -webkit-sticky; position: sticky; ';\n }\n }\n /**\n * Calculate what the z-index should be for the element, depending on what directions (top,\n * bottom, left, right) have been set. It should be true that elements with a top direction\n * should have the highest index since these are elements like a table header. If any of those\n * elements are also sticky in another direction, then they should appear above other elements\n * that are only sticky top (e.g. a sticky column on a sticky header). Bottom-sticky elements\n * (e.g. footer rows) should then be next in the ordering such that they are below the header\n * but above any non-sticky elements. Finally, left/right sticky elements (e.g. sticky columns)\n * should minimally increment so that they are above non-sticky elements but below top and bottom\n * elements.\n */\n _getCalculatedZIndex(element) {\n const zIndexIncrements = {\n top: 100,\n bottom: 10,\n left: 1,\n right: 1\n };\n let zIndex = 0;\n // Use `Iterable` instead of `Array` because TypeScript, as of 3.6.3,\n // loses the array generic type in the `for of`. But we *also* have to use `Array` because\n // typescript won't iterate over an `Iterable` unless you compile with `--downlevelIteration`\n for (const dir of STICKY_DIRECTIONS) {\n if (element.style[dir]) {\n zIndex += zIndexIncrements[dir];\n }\n }\n return zIndex ? `${zIndex}` : '';\n }\n /** Gets the widths for each cell in the provided row. */\n _getCellWidths(row, recalculateCellWidths = true) {\n if (!recalculateCellWidths && this._cachedCellWidths.length) {\n return this._cachedCellWidths;\n }\n const cellWidths = [];\n const firstRowCells = row.children;\n for (let i = 0; i < firstRowCells.length; i++) {\n let cell = firstRowCells[i];\n cellWidths.push(cell.getBoundingClientRect().width);\n }\n this._cachedCellWidths = cellWidths;\n return cellWidths;\n }\n /**\n * Determines the left and right positions of each sticky column cell, which will be the\n * accumulation of all sticky column cell widths to the left and right, respectively.\n * Non-sticky cells do not need to have a value set since their positions will not be applied.\n */\n _getStickyStartColumnPositions(widths, stickyStates) {\n const positions = [];\n let nextPosition = 0;\n for (let i = 0; i < widths.length; i++) {\n if (stickyStates[i]) {\n positions[i] = nextPosition;\n nextPosition += widths[i];\n }\n }\n return positions;\n }\n /**\n * Determines the left and right positions of each sticky column cell, which will be the\n * accumulation of all sticky column cell widths to the left and right, respectively.\n * Non-sticky cells do not need to have a value set since their positions will not be applied.\n */\n _getStickyEndColumnPositions(widths, stickyStates) {\n const positions = [];\n let nextPosition = 0;\n for (let i = widths.length; i > 0; i--) {\n if (stickyStates[i]) {\n positions[i] = nextPosition;\n nextPosition += widths[i];\n }\n }\n return positions;\n }\n}\n\n/**\n * Returns an error to be thrown when attempting to find an nonexistent column.\n * @param id Id whose lookup failed.\n * @docs-private\n */\nfunction getTableUnknownColumnError(id) {\n return Error(`Could not find column with id \"${id}\".`);\n}\n/**\n * Returns an error to be thrown when two column definitions have the same name.\n * @docs-private\n */\nfunction getTableDuplicateColumnNameError(name) {\n return Error(`Duplicate column definition name provided: \"${name}\".`);\n}\n/**\n * Returns an error to be thrown when there are multiple rows that are missing a when function.\n * @docs-private\n */\nfunction getTableMultipleDefaultRowDefsError() {\n return Error(`There can only be one default row without a when predicate function.`);\n}\n/**\n * Returns an error to be thrown when there are no matching row defs for a particular set of data.\n * @docs-private\n */\nfunction getTableMissingMatchingRowDefError(data) {\n return Error(`Could not find a matching row definition for the` + `provided row data: ${JSON.stringify(data)}`);\n}\n/**\n * Returns an error to be thrown when there is no row definitions present in the content.\n * @docs-private\n */\nfunction getTableMissingRowDefsError() {\n return Error('Missing definitions for header, footer, and row; ' + 'cannot determine which columns should be rendered.');\n}\n/**\n * Returns an error to be thrown when the data source does not match the compatible types.\n * @docs-private\n */\nfunction getTableUnknownDataSourceError() {\n return Error(`Provided data source did not match an array, Observable, or DataSource`);\n}\n/**\n * Returns an error to be thrown when the text column cannot find a parent table to inject.\n * @docs-private\n */\nfunction getTableTextColumnMissingParentTableError() {\n return Error(`Text column could not find a parent table for registration.`);\n}\n/**\n * Returns an error to be thrown when a table text column doesn't have a name.\n * @docs-private\n */\nfunction getTableTextColumnMissingNameError() {\n return Error(`Table text column must have a name.`);\n}\n\n/** The injection token used to specify the StickyPositioningListener. */\nconst STICKY_POSITIONING_LISTENER = new InjectionToken('CDK_SPL');\n\n/**\n * Enables the recycle view repeater strategy, which reduces rendering latency. Not compatible with\n * tables that animate rows.\n */\nclass CdkRecycleRows {\n static {\n this.ɵfac = function CdkRecycleRows_Factory(ɵt) {\n return new (ɵt || CdkRecycleRows)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkRecycleRows,\n selectors: [[\"cdk-table\", \"recycleRows\", \"\"], [\"table\", \"cdk-table\", \"\", \"recycleRows\", \"\"]],\n features: [i0.ɵɵProvidersFeature([{\n provide: _VIEW_REPEATER_STRATEGY,\n useClass: _RecycleViewRepeaterStrategy\n }])]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkRecycleRows, [{\n type: Directive,\n args: [{\n selector: 'cdk-table[recycleRows], table[cdk-table][recycleRows]',\n providers: [{\n provide: _VIEW_REPEATER_STRATEGY,\n useClass: _RecycleViewRepeaterStrategy\n }]\n }]\n }], null, null);\n})();\n/**\n * Provides a handle for the table to grab the view container's ng-container to insert data rows.\n * @docs-private\n */\nclass DataRowOutlet {\n constructor(viewContainer, elementRef) {\n this.viewContainer = viewContainer;\n this.elementRef = elementRef;\n }\n static {\n this.ɵfac = function DataRowOutlet_Factory(ɵt) {\n return new (ɵt || DataRowOutlet)(i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: DataRowOutlet,\n selectors: [[\"\", \"rowOutlet\", \"\"]]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DataRowOutlet, [{\n type: Directive,\n args: [{\n selector: '[rowOutlet]'\n }]\n }], function () {\n return [{\n type: i0.ViewContainerRef\n }, {\n type: i0.ElementRef\n }];\n }, null);\n})();\n/**\n * Provides a handle for the table to grab the view container's ng-container to insert the header.\n * @docs-private\n */\nclass HeaderRowOutlet {\n constructor(viewContainer, elementRef) {\n this.viewContainer = viewContainer;\n this.elementRef = elementRef;\n }\n static {\n this.ɵfac = function HeaderRowOutlet_Factory(ɵt) {\n return new (ɵt || HeaderRowOutlet)(i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: HeaderRowOutlet,\n selectors: [[\"\", \"headerRowOutlet\", \"\"]]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(HeaderRowOutlet, [{\n type: Directive,\n args: [{\n selector: '[headerRowOutlet]'\n }]\n }], function () {\n return [{\n type: i0.ViewContainerRef\n }, {\n type: i0.ElementRef\n }];\n }, null);\n})();\n/**\n * Provides a handle for the table to grab the view container's ng-container to insert the footer.\n * @docs-private\n */\nclass FooterRowOutlet {\n constructor(viewContainer, elementRef) {\n this.viewContainer = viewContainer;\n this.elementRef = elementRef;\n }\n static {\n this.ɵfac = function FooterRowOutlet_Factory(ɵt) {\n return new (ɵt || FooterRowOutlet)(i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: FooterRowOutlet,\n selectors: [[\"\", \"footerRowOutlet\", \"\"]]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FooterRowOutlet, [{\n type: Directive,\n args: [{\n selector: '[footerRowOutlet]'\n }]\n }], function () {\n return [{\n type: i0.ViewContainerRef\n }, {\n type: i0.ElementRef\n }];\n }, null);\n})();\n/**\n * Provides a handle for the table to grab the view\n * container's ng-container to insert the no data row.\n * @docs-private\n */\nclass NoDataRowOutlet {\n constructor(viewContainer, elementRef) {\n this.viewContainer = viewContainer;\n this.elementRef = elementRef;\n }\n static {\n this.ɵfac = function NoDataRowOutlet_Factory(ɵt) {\n return new (ɵt || NoDataRowOutlet)(i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NoDataRowOutlet,\n selectors: [[\"\", \"noDataRowOutlet\", \"\"]]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NoDataRowOutlet, [{\n type: Directive,\n args: [{\n selector: '[noDataRowOutlet]'\n }]\n }], function () {\n return [{\n type: i0.ViewContainerRef\n }, {\n type: i0.ElementRef\n }];\n }, null);\n})();\n/**\n * The table template that can be used by the mat-table. Should not be used outside of the\n * material library.\n * @docs-private\n */\nconst CDK_TABLE_TEMPLATE =\n// Note that according to MDN, the `caption` element has to be projected as the **first**\n// element in the table. See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/caption\n`\n \n \n \n \n \n \n`;\n/**\n * Class used to conveniently type the embedded view ref for rows with a context.\n * @docs-private\n */\nclass RowViewRef extends EmbeddedViewRef {}\n/**\n * A data table that can render a header row, data rows, and a footer row.\n * Uses the dataSource input to determine the data to be rendered. The data can be provided either\n * as a data array, an Observable stream that emits the data array to render, or a DataSource with a\n * connect function that will return an Observable stream that emits the data array to render.\n */\nclass CdkTable {\n /**\n * Tracking function that will be used to check the differences in data changes. Used similarly\n * to `ngFor` `trackBy` function. Optimize row operations by identifying a row based on its data\n * relative to the function to know if a row should be added/removed/moved.\n * Accepts a function that takes two parameters, `index` and `item`.\n */\n get trackBy() {\n return this._trackByFn;\n }\n set trackBy(fn) {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && fn != null && typeof fn !== 'function') {\n console.warn(`trackBy must be a function, but received ${JSON.stringify(fn)}.`);\n }\n this._trackByFn = fn;\n }\n /**\n * The table's source of data, which can be provided in three ways (in order of complexity):\n * - Simple data array (each object represents one table row)\n * - Stream that emits a data array each time the array changes\n * - `DataSource` object that implements the connect/disconnect interface.\n *\n * If a data array is provided, the table must be notified when the array's objects are\n * added, removed, or moved. This can be done by calling the `renderRows()` function which will\n * render the diff since the last table render. If the data array reference is changed, the table\n * will automatically trigger an update to the rows.\n *\n * When providing an Observable stream, the table will trigger an update automatically when the\n * stream emits a new array of data.\n *\n * Finally, when providing a `DataSource` object, the table will use the Observable stream\n * provided by the connect function and trigger updates when that stream emits new data array\n * values. During the table's ngOnDestroy or when the data source is removed from the table, the\n * table will call the DataSource's `disconnect` function (may be useful for cleaning up any\n * subscriptions registered during the connect process).\n */\n get dataSource() {\n return this._dataSource;\n }\n set dataSource(dataSource) {\n if (this._dataSource !== dataSource) {\n this._switchDataSource(dataSource);\n }\n }\n /**\n * Whether to allow multiple rows per data object by evaluating which rows evaluate their 'when'\n * predicate to true. If `multiTemplateDataRows` is false, which is the default value, then each\n * dataobject will render the first row that evaluates its when predicate to true, in the order\n * defined in the table, or otherwise the default row which does not have a when predicate.\n */\n get multiTemplateDataRows() {\n return this._multiTemplateDataRows;\n }\n set multiTemplateDataRows(v) {\n this._multiTemplateDataRows = coerceBooleanProperty(v);\n // In Ivy if this value is set via a static attribute (e.g. ),\n // this setter will be invoked before the row outlet has been defined hence the null check.\n if (this._rowOutlet && this._rowOutlet.viewContainer.length) {\n this._forceRenderDataRows();\n this.updateStickyColumnStyles();\n }\n }\n /**\n * Whether to use a fixed table layout. Enabling this option will enforce consistent column widths\n * and optimize rendering sticky styles for native tables. No-op for flex tables.\n */\n get fixedLayout() {\n return this._fixedLayout;\n }\n set fixedLayout(v) {\n this._fixedLayout = coerceBooleanProperty(v);\n // Toggling `fixedLayout` may change column widths. Sticky column styles should be recalculated.\n this._forceRecalculateCellWidths = true;\n this._stickyColumnStylesNeedReset = true;\n }\n constructor(_differs, _changeDetectorRef, _elementRef, role, _dir, _document, _platform, _viewRepeater, _coalescedStyleScheduler, _viewportRuler,\n /**\n * @deprecated `_stickyPositioningListener` parameter to become required.\n * @breaking-change 13.0.0\n */\n _stickyPositioningListener,\n /**\n * @deprecated `_ngZone` parameter to become required.\n * @breaking-change 14.0.0\n */\n _ngZone) {\n this._differs = _differs;\n this._changeDetectorRef = _changeDetectorRef;\n this._elementRef = _elementRef;\n this._dir = _dir;\n this._platform = _platform;\n this._viewRepeater = _viewRepeater;\n this._coalescedStyleScheduler = _coalescedStyleScheduler;\n this._viewportRuler = _viewportRuler;\n this._stickyPositioningListener = _stickyPositioningListener;\n this._ngZone = _ngZone;\n /** Subject that emits when the component has been destroyed. */\n this._onDestroy = new Subject();\n /**\n * Map of all the user's defined columns (header, data, and footer cell template) identified by\n * name. Collection populated by the column definitions gathered by `ContentChildren` as well as\n * any custom column definitions added to `_customColumnDefs`.\n */\n this._columnDefsByName = new Map();\n /**\n * Column definitions that were defined outside of the direct content children of the table.\n * These will be defined when, e.g., creating a wrapper around the cdkTable that has\n * column definitions as *its* content child.\n */\n this._customColumnDefs = new Set();\n /**\n * Data row definitions that were defined outside of the direct content children of the table.\n * These will be defined when, e.g., creating a wrapper around the cdkTable that has\n * built-in data rows as *its* content child.\n */\n this._customRowDefs = new Set();\n /**\n * Header row definitions that were defined outside of the direct content children of the table.\n * These will be defined when, e.g., creating a wrapper around the cdkTable that has\n * built-in header rows as *its* content child.\n */\n this._customHeaderRowDefs = new Set();\n /**\n * Footer row definitions that were defined outside of the direct content children of the table.\n * These will be defined when, e.g., creating a wrapper around the cdkTable that has a\n * built-in footer row as *its* content child.\n */\n this._customFooterRowDefs = new Set();\n /**\n * Whether the header row definition has been changed. Triggers an update to the header row after\n * content is checked. Initialized as true so that the table renders the initial set of rows.\n */\n this._headerRowDefChanged = true;\n /**\n * Whether the footer row definition has been changed. Triggers an update to the footer row after\n * content is checked. Initialized as true so that the table renders the initial set of rows.\n */\n this._footerRowDefChanged = true;\n /**\n * Whether the sticky column styles need to be updated. Set to `true` when the visible columns\n * change.\n */\n this._stickyColumnStylesNeedReset = true;\n /**\n * Whether the sticky styler should recalculate cell widths when applying sticky styles. If\n * `false`, cached values will be used instead. This is only applicable to tables with\n * {@link fixedLayout} enabled. For other tables, cell widths will always be recalculated.\n */\n this._forceRecalculateCellWidths = true;\n /**\n * Cache of the latest rendered `RenderRow` objects as a map for easy retrieval when constructing\n * a new list of `RenderRow` objects for rendering rows. Since the new list is constructed with\n * the cached `RenderRow` objects when possible, the row identity is preserved when the data\n * and row template matches, which allows the `IterableDiffer` to check rows by reference\n * and understand which rows are added/moved/removed.\n *\n * Implemented as a map of maps where the first key is the `data: T` object and the second is the\n * `CdkRowDef` object. With the two keys, the cache points to a `RenderRow` object that\n * contains an array of created pairs. The array is necessary to handle cases where the data\n * array contains multiple duplicate data objects and each instantiated `RenderRow` must be\n * stored.\n */\n this._cachedRenderRowsMap = new Map();\n /**\n * CSS class added to any row or cell that has sticky positioning applied. May be overridden by\n * table subclasses.\n */\n this.stickyCssClass = 'cdk-table-sticky';\n /**\n * Whether to manually add position: sticky to all sticky cell elements. Not needed if\n * the position is set in a selector associated with the value of stickyCssClass. May be\n * overridden by table subclasses\n */\n this.needsPositionStickyOnElement = true;\n /** Whether the no data row is currently showing anything. */\n this._isShowingNoDataRow = false;\n this._multiTemplateDataRows = false;\n this._fixedLayout = false;\n /**\n * Emits when the table completes rendering a set of data rows based on the latest data from the\n * data source, even if the set of rows is empty.\n */\n this.contentChanged = new EventEmitter();\n // TODO(andrewseguin): Remove max value as the end index\n // and instead calculate the view on init and scroll.\n /**\n * Stream containing the latest information on what rows are being displayed on screen.\n * Can be used by the data source to as a heuristic of what data should be provided.\n *\n * @docs-private\n */\n this.viewChange = new BehaviorSubject({\n start: 0,\n end: Number.MAX_VALUE\n });\n if (!role) {\n this._elementRef.nativeElement.setAttribute('role', 'table');\n }\n this._document = _document;\n this._isNativeHtmlTable = this._elementRef.nativeElement.nodeName === 'TABLE';\n }\n ngOnInit() {\n this._setupStickyStyler();\n if (this._isNativeHtmlTable) {\n this._applyNativeTableSections();\n }\n // Set up the trackBy function so that it uses the `RenderRow` as its identity by default. If\n // the user has provided a custom trackBy, return the result of that function as evaluated\n // with the values of the `RenderRow`'s data and index.\n this._dataDiffer = this._differs.find([]).create((_i, dataRow) => {\n return this.trackBy ? this.trackBy(dataRow.dataIndex, dataRow.data) : dataRow;\n });\n this._viewportRuler.change().pipe(takeUntil(this._onDestroy)).subscribe(() => {\n this._forceRecalculateCellWidths = true;\n });\n }\n ngAfterContentChecked() {\n // Cache the row and column definitions gathered by ContentChildren and programmatic injection.\n this._cacheRowDefs();\n this._cacheColumnDefs();\n // Make sure that the user has at least added header, footer, or data row def.\n if (!this._headerRowDefs.length && !this._footerRowDefs.length && !this._rowDefs.length && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getTableMissingRowDefsError();\n }\n // Render updates if the list of columns have been changed for the header, row, or footer defs.\n const columnsChanged = this._renderUpdatedColumns();\n const rowDefsChanged = columnsChanged || this._headerRowDefChanged || this._footerRowDefChanged;\n // Ensure sticky column styles are reset if set to `true` elsewhere.\n this._stickyColumnStylesNeedReset = this._stickyColumnStylesNeedReset || rowDefsChanged;\n this._forceRecalculateCellWidths = rowDefsChanged;\n // If the header row definition has been changed, trigger a render to the header row.\n if (this._headerRowDefChanged) {\n this._forceRenderHeaderRows();\n this._headerRowDefChanged = false;\n }\n // If the footer row definition has been changed, trigger a render to the footer row.\n if (this._footerRowDefChanged) {\n this._forceRenderFooterRows();\n this._footerRowDefChanged = false;\n }\n // If there is a data source and row definitions, connect to the data source unless a\n // connection has already been made.\n if (this.dataSource && this._rowDefs.length > 0 && !this._renderChangeSubscription) {\n this._observeRenderChanges();\n } else if (this._stickyColumnStylesNeedReset) {\n // In the above case, _observeRenderChanges will result in updateStickyColumnStyles being\n // called when it row data arrives. Otherwise, we need to call it proactively.\n this.updateStickyColumnStyles();\n }\n this._checkStickyStates();\n }\n ngOnDestroy() {\n [this._rowOutlet.viewContainer, this._headerRowOutlet.viewContainer, this._footerRowOutlet.viewContainer, this._cachedRenderRowsMap, this._customColumnDefs, this._customRowDefs, this._customHeaderRowDefs, this._customFooterRowDefs, this._columnDefsByName].forEach(def => {\n def.clear();\n });\n this._headerRowDefs = [];\n this._footerRowDefs = [];\n this._defaultRowDef = null;\n this._onDestroy.next();\n this._onDestroy.complete();\n if (isDataSource(this.dataSource)) {\n this.dataSource.disconnect(this);\n }\n }\n /**\n * Renders rows based on the table's latest set of data, which was either provided directly as an\n * input or retrieved through an Observable stream (directly or from a DataSource).\n * Checks for differences in the data since the last diff to perform only the necessary\n * changes (add/remove/move rows).\n *\n * If the table's data source is a DataSource or Observable, this will be invoked automatically\n * each time the provided Observable stream emits a new data array. Otherwise if your data is\n * an array, this function will need to be called to render any changes.\n */\n renderRows() {\n this._renderRows = this._getAllRenderRows();\n const changes = this._dataDiffer.diff(this._renderRows);\n if (!changes) {\n this._updateNoDataRow();\n this.contentChanged.next();\n return;\n }\n const viewContainer = this._rowOutlet.viewContainer;\n this._viewRepeater.applyChanges(changes, viewContainer, (record, _adjustedPreviousIndex, currentIndex) => this._getEmbeddedViewArgs(record.item, currentIndex), record => record.item.data, change => {\n if (change.operation === 1 /* _ViewRepeaterOperation.INSERTED */ && change.context) {\n this._renderCellTemplateForItem(change.record.item.rowDef, change.context);\n }\n });\n // Update the meta context of a row's context data (index, count, first, last, ...)\n this._updateRowIndexContext();\n // Update rows that did not get added/removed/moved but may have had their identity changed,\n // e.g. if trackBy matched data on some property but the actual data reference changed.\n changes.forEachIdentityChange(record => {\n const rowView = viewContainer.get(record.currentIndex);\n rowView.context.$implicit = record.item.data;\n });\n this._updateNoDataRow();\n // Allow the new row data to render before measuring it.\n // @breaking-change 14.0.0 Remove undefined check once _ngZone is required.\n if (this._ngZone && NgZone.isInAngularZone()) {\n this._ngZone.onStable.pipe(take(1), takeUntil(this._onDestroy)).subscribe(() => {\n this.updateStickyColumnStyles();\n });\n } else {\n this.updateStickyColumnStyles();\n }\n this.contentChanged.next();\n }\n /** Adds a column definition that was not included as part of the content children. */\n addColumnDef(columnDef) {\n this._customColumnDefs.add(columnDef);\n }\n /** Removes a column definition that was not included as part of the content children. */\n removeColumnDef(columnDef) {\n this._customColumnDefs.delete(columnDef);\n }\n /** Adds a row definition that was not included as part of the content children. */\n addRowDef(rowDef) {\n this._customRowDefs.add(rowDef);\n }\n /** Removes a row definition that was not included as part of the content children. */\n removeRowDef(rowDef) {\n this._customRowDefs.delete(rowDef);\n }\n /** Adds a header row definition that was not included as part of the content children. */\n addHeaderRowDef(headerRowDef) {\n this._customHeaderRowDefs.add(headerRowDef);\n this._headerRowDefChanged = true;\n }\n /** Removes a header row definition that was not included as part of the content children. */\n removeHeaderRowDef(headerRowDef) {\n this._customHeaderRowDefs.delete(headerRowDef);\n this._headerRowDefChanged = true;\n }\n /** Adds a footer row definition that was not included as part of the content children. */\n addFooterRowDef(footerRowDef) {\n this._customFooterRowDefs.add(footerRowDef);\n this._footerRowDefChanged = true;\n }\n /** Removes a footer row definition that was not included as part of the content children. */\n removeFooterRowDef(footerRowDef) {\n this._customFooterRowDefs.delete(footerRowDef);\n this._footerRowDefChanged = true;\n }\n /** Sets a no data row definition that was not included as a part of the content children. */\n setNoDataRow(noDataRow) {\n this._customNoDataRow = noDataRow;\n }\n /**\n * Updates the header sticky styles. First resets all applied styles with respect to the cells\n * sticking to the top. Then, evaluating which cells need to be stuck to the top. This is\n * automatically called when the header row changes its displayed set of columns, or if its\n * sticky input changes. May be called manually for cases where the cell content changes outside\n * of these events.\n */\n updateStickyHeaderRowStyles() {\n const headerRows = this._getRenderedRows(this._headerRowOutlet);\n const tableElement = this._elementRef.nativeElement;\n // Hide the thead element if there are no header rows. This is necessary to satisfy\n // overzealous a11y checkers that fail because the `rowgroup` element does not contain\n // required child `row`.\n const thead = tableElement.querySelector('thead');\n if (thead) {\n thead.style.display = headerRows.length ? '' : 'none';\n }\n const stickyStates = this._headerRowDefs.map(def => def.sticky);\n this._stickyStyler.clearStickyPositioning(headerRows, ['top']);\n this._stickyStyler.stickRows(headerRows, stickyStates, 'top');\n // Reset the dirty state of the sticky input change since it has been used.\n this._headerRowDefs.forEach(def => def.resetStickyChanged());\n }\n /**\n * Updates the footer sticky styles. First resets all applied styles with respect to the cells\n * sticking to the bottom. Then, evaluating which cells need to be stuck to the bottom. This is\n * automatically called when the footer row changes its displayed set of columns, or if its\n * sticky input changes. May be called manually for cases where the cell content changes outside\n * of these events.\n */\n updateStickyFooterRowStyles() {\n const footerRows = this._getRenderedRows(this._footerRowOutlet);\n const tableElement = this._elementRef.nativeElement;\n // Hide the tfoot element if there are no footer rows. This is necessary to satisfy\n // overzealous a11y checkers that fail because the `rowgroup` element does not contain\n // required child `row`.\n const tfoot = tableElement.querySelector('tfoot');\n if (tfoot) {\n tfoot.style.display = footerRows.length ? '' : 'none';\n }\n const stickyStates = this._footerRowDefs.map(def => def.sticky);\n this._stickyStyler.clearStickyPositioning(footerRows, ['bottom']);\n this._stickyStyler.stickRows(footerRows, stickyStates, 'bottom');\n this._stickyStyler.updateStickyFooterContainer(this._elementRef.nativeElement, stickyStates);\n // Reset the dirty state of the sticky input change since it has been used.\n this._footerRowDefs.forEach(def => def.resetStickyChanged());\n }\n /**\n * Updates the column sticky styles. First resets all applied styles with respect to the cells\n * sticking to the left and right. Then sticky styles are added for the left and right according\n * to the column definitions for each cell in each row. This is automatically called when\n * the data source provides a new set of data or when a column definition changes its sticky\n * input. May be called manually for cases where the cell content changes outside of these events.\n */\n updateStickyColumnStyles() {\n const headerRows = this._getRenderedRows(this._headerRowOutlet);\n const dataRows = this._getRenderedRows(this._rowOutlet);\n const footerRows = this._getRenderedRows(this._footerRowOutlet);\n // For tables not using a fixed layout, the column widths may change when new rows are rendered.\n // In a table using a fixed layout, row content won't affect column width, so sticky styles\n // don't need to be cleared unless either the sticky column config changes or one of the row\n // defs change.\n if (this._isNativeHtmlTable && !this._fixedLayout || this._stickyColumnStylesNeedReset) {\n // Clear the left and right positioning from all columns in the table across all rows since\n // sticky columns span across all table sections (header, data, footer)\n this._stickyStyler.clearStickyPositioning([...headerRows, ...dataRows, ...footerRows], ['left', 'right']);\n this._stickyColumnStylesNeedReset = false;\n }\n // Update the sticky styles for each header row depending on the def's sticky state\n headerRows.forEach((headerRow, i) => {\n this._addStickyColumnStyles([headerRow], this._headerRowDefs[i]);\n });\n // Update the sticky styles for each data row depending on its def's sticky state\n this._rowDefs.forEach(rowDef => {\n // Collect all the rows rendered with this row definition.\n const rows = [];\n for (let i = 0; i < dataRows.length; i++) {\n if (this._renderRows[i].rowDef === rowDef) {\n rows.push(dataRows[i]);\n }\n }\n this._addStickyColumnStyles(rows, rowDef);\n });\n // Update the sticky styles for each footer row depending on the def's sticky state\n footerRows.forEach((footerRow, i) => {\n this._addStickyColumnStyles([footerRow], this._footerRowDefs[i]);\n });\n // Reset the dirty state of the sticky input change since it has been used.\n Array.from(this._columnDefsByName.values()).forEach(def => def.resetStickyChanged());\n }\n /**\n * Get the list of RenderRow objects to render according to the current list of data and defined\n * row definitions. If the previous list already contained a particular pair, it should be reused\n * so that the differ equates their references.\n */\n _getAllRenderRows() {\n const renderRows = [];\n // Store the cache and create a new one. Any re-used RenderRow objects will be moved into the\n // new cache while unused ones can be picked up by garbage collection.\n const prevCachedRenderRows = this._cachedRenderRowsMap;\n this._cachedRenderRowsMap = new Map();\n // For each data object, get the list of rows that should be rendered, represented by the\n // respective `RenderRow` object which is the pair of `data` and `CdkRowDef`.\n for (let i = 0; i < this._data.length; i++) {\n let data = this._data[i];\n const renderRowsForData = this._getRenderRowsForData(data, i, prevCachedRenderRows.get(data));\n if (!this._cachedRenderRowsMap.has(data)) {\n this._cachedRenderRowsMap.set(data, new WeakMap());\n }\n for (let j = 0; j < renderRowsForData.length; j++) {\n let renderRow = renderRowsForData[j];\n const cache = this._cachedRenderRowsMap.get(renderRow.data);\n if (cache.has(renderRow.rowDef)) {\n cache.get(renderRow.rowDef).push(renderRow);\n } else {\n cache.set(renderRow.rowDef, [renderRow]);\n }\n renderRows.push(renderRow);\n }\n }\n return renderRows;\n }\n /**\n * Gets a list of `RenderRow` for the provided data object and any `CdkRowDef` objects that\n * should be rendered for this data. Reuses the cached RenderRow objects if they match the same\n * `(T, CdkRowDef)` pair.\n */\n _getRenderRowsForData(data, dataIndex, cache) {\n const rowDefs = this._getRowDefs(data, dataIndex);\n return rowDefs.map(rowDef => {\n const cachedRenderRows = cache && cache.has(rowDef) ? cache.get(rowDef) : [];\n if (cachedRenderRows.length) {\n const dataRow = cachedRenderRows.shift();\n dataRow.dataIndex = dataIndex;\n return dataRow;\n } else {\n return {\n data,\n rowDef,\n dataIndex\n };\n }\n });\n }\n /** Update the map containing the content's column definitions. */\n _cacheColumnDefs() {\n this._columnDefsByName.clear();\n const columnDefs = mergeArrayAndSet(this._getOwnDefs(this._contentColumnDefs), this._customColumnDefs);\n columnDefs.forEach(columnDef => {\n if (this._columnDefsByName.has(columnDef.name) && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getTableDuplicateColumnNameError(columnDef.name);\n }\n this._columnDefsByName.set(columnDef.name, columnDef);\n });\n }\n /** Update the list of all available row definitions that can be used. */\n _cacheRowDefs() {\n this._headerRowDefs = mergeArrayAndSet(this._getOwnDefs(this._contentHeaderRowDefs), this._customHeaderRowDefs);\n this._footerRowDefs = mergeArrayAndSet(this._getOwnDefs(this._contentFooterRowDefs), this._customFooterRowDefs);\n this._rowDefs = mergeArrayAndSet(this._getOwnDefs(this._contentRowDefs), this._customRowDefs);\n // After all row definitions are determined, find the row definition to be considered default.\n const defaultRowDefs = this._rowDefs.filter(def => !def.when);\n if (!this.multiTemplateDataRows && defaultRowDefs.length > 1 && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getTableMultipleDefaultRowDefsError();\n }\n this._defaultRowDef = defaultRowDefs[0];\n }\n /**\n * Check if the header, data, or footer rows have changed what columns they want to display or\n * whether the sticky states have changed for the header or footer. If there is a diff, then\n * re-render that section.\n */\n _renderUpdatedColumns() {\n const columnsDiffReducer = (acc, def) => acc || !!def.getColumnsDiff();\n // Force re-render data rows if the list of column definitions have changed.\n const dataColumnsChanged = this._rowDefs.reduce(columnsDiffReducer, false);\n if (dataColumnsChanged) {\n this._forceRenderDataRows();\n }\n // Force re-render header/footer rows if the list of column definitions have changed.\n const headerColumnsChanged = this._headerRowDefs.reduce(columnsDiffReducer, false);\n if (headerColumnsChanged) {\n this._forceRenderHeaderRows();\n }\n const footerColumnsChanged = this._footerRowDefs.reduce(columnsDiffReducer, false);\n if (footerColumnsChanged) {\n this._forceRenderFooterRows();\n }\n return dataColumnsChanged || headerColumnsChanged || footerColumnsChanged;\n }\n /**\n * Switch to the provided data source by resetting the data and unsubscribing from the current\n * render change subscription if one exists. If the data source is null, interpret this by\n * clearing the row outlet. Otherwise start listening for new data.\n */\n _switchDataSource(dataSource) {\n this._data = [];\n if (isDataSource(this.dataSource)) {\n this.dataSource.disconnect(this);\n }\n // Stop listening for data from the previous data source.\n if (this._renderChangeSubscription) {\n this._renderChangeSubscription.unsubscribe();\n this._renderChangeSubscription = null;\n }\n if (!dataSource) {\n if (this._dataDiffer) {\n this._dataDiffer.diff([]);\n }\n this._rowOutlet.viewContainer.clear();\n }\n this._dataSource = dataSource;\n }\n /** Set up a subscription for the data provided by the data source. */\n _observeRenderChanges() {\n // If no data source has been set, there is nothing to observe for changes.\n if (!this.dataSource) {\n return;\n }\n let dataStream;\n if (isDataSource(this.dataSource)) {\n dataStream = this.dataSource.connect(this);\n } else if (isObservable(this.dataSource)) {\n dataStream = this.dataSource;\n } else if (Array.isArray(this.dataSource)) {\n dataStream = of(this.dataSource);\n }\n if (dataStream === undefined && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getTableUnknownDataSourceError();\n }\n this._renderChangeSubscription = dataStream.pipe(takeUntil(this._onDestroy)).subscribe(data => {\n this._data = data || [];\n this.renderRows();\n });\n }\n /**\n * Clears any existing content in the header row outlet and creates a new embedded view\n * in the outlet using the header row definition.\n */\n _forceRenderHeaderRows() {\n // Clear the header row outlet if any content exists.\n if (this._headerRowOutlet.viewContainer.length > 0) {\n this._headerRowOutlet.viewContainer.clear();\n }\n this._headerRowDefs.forEach((def, i) => this._renderRow(this._headerRowOutlet, def, i));\n this.updateStickyHeaderRowStyles();\n }\n /**\n * Clears any existing content in the footer row outlet and creates a new embedded view\n * in the outlet using the footer row definition.\n */\n _forceRenderFooterRows() {\n // Clear the footer row outlet if any content exists.\n if (this._footerRowOutlet.viewContainer.length > 0) {\n this._footerRowOutlet.viewContainer.clear();\n }\n this._footerRowDefs.forEach((def, i) => this._renderRow(this._footerRowOutlet, def, i));\n this.updateStickyFooterRowStyles();\n }\n /** Adds the sticky column styles for the rows according to the columns' stick states. */\n _addStickyColumnStyles(rows, rowDef) {\n const columnDefs = Array.from(rowDef.columns || []).map(columnName => {\n const columnDef = this._columnDefsByName.get(columnName);\n if (!columnDef && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getTableUnknownColumnError(columnName);\n }\n return columnDef;\n });\n const stickyStartStates = columnDefs.map(columnDef => columnDef.sticky);\n const stickyEndStates = columnDefs.map(columnDef => columnDef.stickyEnd);\n this._stickyStyler.updateStickyColumns(rows, stickyStartStates, stickyEndStates, !this._fixedLayout || this._forceRecalculateCellWidths);\n }\n /** Gets the list of rows that have been rendered in the row outlet. */\n _getRenderedRows(rowOutlet) {\n const renderedRows = [];\n for (let i = 0; i < rowOutlet.viewContainer.length; i++) {\n const viewRef = rowOutlet.viewContainer.get(i);\n renderedRows.push(viewRef.rootNodes[0]);\n }\n return renderedRows;\n }\n /**\n * Get the matching row definitions that should be used for this row data. If there is only\n * one row definition, it is returned. Otherwise, find the row definitions that has a when\n * predicate that returns true with the data. If none return true, return the default row\n * definition.\n */\n _getRowDefs(data, dataIndex) {\n if (this._rowDefs.length == 1) {\n return [this._rowDefs[0]];\n }\n let rowDefs = [];\n if (this.multiTemplateDataRows) {\n rowDefs = this._rowDefs.filter(def => !def.when || def.when(dataIndex, data));\n } else {\n let rowDef = this._rowDefs.find(def => def.when && def.when(dataIndex, data)) || this._defaultRowDef;\n if (rowDef) {\n rowDefs.push(rowDef);\n }\n }\n if (!rowDefs.length && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getTableMissingMatchingRowDefError(data);\n }\n return rowDefs;\n }\n _getEmbeddedViewArgs(renderRow, index) {\n const rowDef = renderRow.rowDef;\n const context = {\n $implicit: renderRow.data\n };\n return {\n templateRef: rowDef.template,\n context,\n index\n };\n }\n /**\n * Creates a new row template in the outlet and fills it with the set of cell templates.\n * Optionally takes a context to provide to the row and cells, as well as an optional index\n * of where to place the new row template in the outlet.\n */\n _renderRow(outlet, rowDef, index, context = {}) {\n // TODO(andrewseguin): enforce that one outlet was instantiated from createEmbeddedView\n const view = outlet.viewContainer.createEmbeddedView(rowDef.template, context, index);\n this._renderCellTemplateForItem(rowDef, context);\n return view;\n }\n _renderCellTemplateForItem(rowDef, context) {\n for (let cellTemplate of this._getCellTemplates(rowDef)) {\n if (CdkCellOutlet.mostRecentCellOutlet) {\n CdkCellOutlet.mostRecentCellOutlet._viewContainer.createEmbeddedView(cellTemplate, context);\n }\n }\n this._changeDetectorRef.markForCheck();\n }\n /**\n * Updates the index-related context for each row to reflect any changes in the index of the rows,\n * e.g. first/last/even/odd.\n */\n _updateRowIndexContext() {\n const viewContainer = this._rowOutlet.viewContainer;\n for (let renderIndex = 0, count = viewContainer.length; renderIndex < count; renderIndex++) {\n const viewRef = viewContainer.get(renderIndex);\n const context = viewRef.context;\n context.count = count;\n context.first = renderIndex === 0;\n context.last = renderIndex === count - 1;\n context.even = renderIndex % 2 === 0;\n context.odd = !context.even;\n if (this.multiTemplateDataRows) {\n context.dataIndex = this._renderRows[renderIndex].dataIndex;\n context.renderIndex = renderIndex;\n } else {\n context.index = this._renderRows[renderIndex].dataIndex;\n }\n }\n }\n /** Gets the column definitions for the provided row def. */\n _getCellTemplates(rowDef) {\n if (!rowDef || !rowDef.columns) {\n return [];\n }\n return Array.from(rowDef.columns, columnId => {\n const column = this._columnDefsByName.get(columnId);\n if (!column && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getTableUnknownColumnError(columnId);\n }\n return rowDef.extractCellTemplate(column);\n });\n }\n /** Adds native table sections (e.g. tbody) and moves the row outlets into them. */\n _applyNativeTableSections() {\n const documentFragment = this._document.createDocumentFragment();\n const sections = [{\n tag: 'thead',\n outlets: [this._headerRowOutlet]\n }, {\n tag: 'tbody',\n outlets: [this._rowOutlet, this._noDataRowOutlet]\n }, {\n tag: 'tfoot',\n outlets: [this._footerRowOutlet]\n }];\n for (const section of sections) {\n const element = this._document.createElement(section.tag);\n element.setAttribute('role', 'rowgroup');\n for (const outlet of section.outlets) {\n element.appendChild(outlet.elementRef.nativeElement);\n }\n documentFragment.appendChild(element);\n }\n // Use a DocumentFragment so we don't hit the DOM on each iteration.\n this._elementRef.nativeElement.appendChild(documentFragment);\n }\n /**\n * Forces a re-render of the data rows. Should be called in cases where there has been an input\n * change that affects the evaluation of which rows should be rendered, e.g. toggling\n * `multiTemplateDataRows` or adding/removing row definitions.\n */\n _forceRenderDataRows() {\n this._dataDiffer.diff([]);\n this._rowOutlet.viewContainer.clear();\n this.renderRows();\n }\n /**\n * Checks if there has been a change in sticky states since last check and applies the correct\n * sticky styles. Since checking resets the \"dirty\" state, this should only be performed once\n * during a change detection and after the inputs are settled (after content check).\n */\n _checkStickyStates() {\n const stickyCheckReducer = (acc, d) => {\n return acc || d.hasStickyChanged();\n };\n // Note that the check needs to occur for every definition since it notifies the definition\n // that it can reset its dirty state. Using another operator like `some` may short-circuit\n // remaining definitions and leave them in an unchecked state.\n if (this._headerRowDefs.reduce(stickyCheckReducer, false)) {\n this.updateStickyHeaderRowStyles();\n }\n if (this._footerRowDefs.reduce(stickyCheckReducer, false)) {\n this.updateStickyFooterRowStyles();\n }\n if (Array.from(this._columnDefsByName.values()).reduce(stickyCheckReducer, false)) {\n this._stickyColumnStylesNeedReset = true;\n this.updateStickyColumnStyles();\n }\n }\n /**\n * Creates the sticky styler that will be used for sticky rows and columns. Listens\n * for directionality changes and provides the latest direction to the styler. Re-applies column\n * stickiness when directionality changes.\n */\n _setupStickyStyler() {\n const direction = this._dir ? this._dir.value : 'ltr';\n this._stickyStyler = new StickyStyler(this._isNativeHtmlTable, this.stickyCssClass, direction, this._coalescedStyleScheduler, this._platform.isBrowser, this.needsPositionStickyOnElement, this._stickyPositioningListener);\n (this._dir ? this._dir.change : of()).pipe(takeUntil(this._onDestroy)).subscribe(value => {\n this._stickyStyler.direction = value;\n this.updateStickyColumnStyles();\n });\n }\n /** Filters definitions that belong to this table from a QueryList. */\n _getOwnDefs(items) {\n return items.filter(item => !item._table || item._table === this);\n }\n /** Creates or removes the no data row, depending on whether any data is being shown. */\n _updateNoDataRow() {\n const noDataRow = this._customNoDataRow || this._noDataRow;\n if (!noDataRow) {\n return;\n }\n const shouldShow = this._rowOutlet.viewContainer.length === 0;\n if (shouldShow === this._isShowingNoDataRow) {\n return;\n }\n const container = this._noDataRowOutlet.viewContainer;\n if (shouldShow) {\n const view = container.createEmbeddedView(noDataRow.templateRef);\n const rootNode = view.rootNodes[0];\n // Only add the attributes if we have a single root node since it's hard\n // to figure out which one to add it to when there are multiple.\n if (view.rootNodes.length === 1 && rootNode?.nodeType === this._document.ELEMENT_NODE) {\n rootNode.setAttribute('role', 'row');\n rootNode.classList.add(noDataRow._contentClassName);\n }\n } else {\n container.clear();\n }\n this._isShowingNoDataRow = shouldShow;\n this._changeDetectorRef.markForCheck();\n }\n static {\n this.ɵfac = function CdkTable_Factory(ɵt) {\n return new (ɵt || CdkTable)(i0.ɵɵdirectiveInject(i0.IterableDiffers), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵinjectAttribute('role'), i0.ɵɵdirectiveInject(i1.Directionality, 8), i0.ɵɵdirectiveInject(DOCUMENT), i0.ɵɵdirectiveInject(i2.Platform), i0.ɵɵdirectiveInject(_VIEW_REPEATER_STRATEGY), i0.ɵɵdirectiveInject(_COALESCED_STYLE_SCHEDULER), i0.ɵɵdirectiveInject(i3.ViewportRuler), i0.ɵɵdirectiveInject(STICKY_POSITIONING_LISTENER, 12), i0.ɵɵdirectiveInject(i0.NgZone, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: CdkTable,\n selectors: [[\"cdk-table\"], [\"table\", \"cdk-table\", \"\"]],\n contentQueries: function CdkTable_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, CdkNoDataRow, 5);\n i0.ɵɵcontentQuery(dirIndex, CdkColumnDef, 5);\n i0.ɵɵcontentQuery(dirIndex, CdkRowDef, 5);\n i0.ɵɵcontentQuery(dirIndex, CdkHeaderRowDef, 5);\n i0.ɵɵcontentQuery(dirIndex, CdkFooterRowDef, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._noDataRow = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._contentColumnDefs = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._contentRowDefs = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._contentHeaderRowDefs = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._contentFooterRowDefs = _t);\n }\n },\n viewQuery: function CdkTable_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(DataRowOutlet, 7);\n i0.ɵɵviewQuery(HeaderRowOutlet, 7);\n i0.ɵɵviewQuery(FooterRowOutlet, 7);\n i0.ɵɵviewQuery(NoDataRowOutlet, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._rowOutlet = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._headerRowOutlet = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._footerRowOutlet = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._noDataRowOutlet = _t.first);\n }\n },\n hostAttrs: [\"ngSkipHydration\", \"\", 1, \"cdk-table\"],\n hostVars: 2,\n hostBindings: function CdkTable_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"cdk-table-fixed-layout\", ctx.fixedLayout);\n }\n },\n inputs: {\n trackBy: \"trackBy\",\n dataSource: \"dataSource\",\n multiTemplateDataRows: \"multiTemplateDataRows\",\n fixedLayout: \"fixedLayout\"\n },\n outputs: {\n contentChanged: \"contentChanged\"\n },\n exportAs: [\"cdkTable\"],\n features: [i0.ɵɵProvidersFeature([{\n provide: CDK_TABLE,\n useExisting: CdkTable\n }, {\n provide: _VIEW_REPEATER_STRATEGY,\n useClass: _DisposeViewRepeaterStrategy\n }, {\n provide: _COALESCED_STYLE_SCHEDULER,\n useClass: _CoalescedStyleScheduler\n },\n // Prevent nested tables from seeing this table's StickyPositioningListener.\n {\n provide: STICKY_POSITIONING_LISTENER,\n useValue: null\n }])],\n ngContentSelectors: _c1,\n decls: 6,\n vars: 0,\n consts: [[\"headerRowOutlet\", \"\"], [\"rowOutlet\", \"\"], [\"noDataRowOutlet\", \"\"], [\"footerRowOutlet\", \"\"]],\n template: function CdkTable_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c0);\n i0.ɵɵprojection(0);\n i0.ɵɵprojection(1, 1);\n i0.ɵɵelementContainer(2, 0)(3, 1)(4, 2)(5, 3);\n }\n },\n dependencies: [DataRowOutlet, HeaderRowOutlet, FooterRowOutlet, NoDataRowOutlet],\n styles: [\".cdk-table-fixed-layout{table-layout:fixed}\"],\n encapsulation: 2\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkTable, [{\n type: Component,\n args: [{\n selector: 'cdk-table, table[cdk-table]',\n exportAs: 'cdkTable',\n template: CDK_TABLE_TEMPLATE,\n host: {\n 'class': 'cdk-table',\n '[class.cdk-table-fixed-layout]': 'fixedLayout',\n 'ngSkipHydration': ''\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Default,\n providers: [{\n provide: CDK_TABLE,\n useExisting: CdkTable\n }, {\n provide: _VIEW_REPEATER_STRATEGY,\n useClass: _DisposeViewRepeaterStrategy\n }, {\n provide: _COALESCED_STYLE_SCHEDULER,\n useClass: _CoalescedStyleScheduler\n },\n // Prevent nested tables from seeing this table's StickyPositioningListener.\n {\n provide: STICKY_POSITIONING_LISTENER,\n useValue: null\n }],\n styles: [\".cdk-table-fixed-layout{table-layout:fixed}\"]\n }]\n }], function () {\n return [{\n type: i0.IterableDiffers\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: i0.ElementRef\n }, {\n type: undefined,\n decorators: [{\n type: Attribute,\n args: ['role']\n }]\n }, {\n type: i1.Directionality,\n decorators: [{\n type: Optional\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }, {\n type: i2.Platform\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [_VIEW_REPEATER_STRATEGY]\n }]\n }, {\n type: _CoalescedStyleScheduler,\n decorators: [{\n type: Inject,\n args: [_COALESCED_STYLE_SCHEDULER]\n }]\n }, {\n type: i3.ViewportRuler\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: SkipSelf\n }, {\n type: Inject,\n args: [STICKY_POSITIONING_LISTENER]\n }]\n }, {\n type: i0.NgZone,\n decorators: [{\n type: Optional\n }]\n }];\n }, {\n trackBy: [{\n type: Input\n }],\n dataSource: [{\n type: Input\n }],\n multiTemplateDataRows: [{\n type: Input\n }],\n fixedLayout: [{\n type: Input\n }],\n contentChanged: [{\n type: Output\n }],\n _rowOutlet: [{\n type: ViewChild,\n args: [DataRowOutlet, {\n static: true\n }]\n }],\n _headerRowOutlet: [{\n type: ViewChild,\n args: [HeaderRowOutlet, {\n static: true\n }]\n }],\n _footerRowOutlet: [{\n type: ViewChild,\n args: [FooterRowOutlet, {\n static: true\n }]\n }],\n _noDataRowOutlet: [{\n type: ViewChild,\n args: [NoDataRowOutlet, {\n static: true\n }]\n }],\n _contentColumnDefs: [{\n type: ContentChildren,\n args: [CdkColumnDef, {\n descendants: true\n }]\n }],\n _contentRowDefs: [{\n type: ContentChildren,\n args: [CdkRowDef, {\n descendants: true\n }]\n }],\n _contentHeaderRowDefs: [{\n type: ContentChildren,\n args: [CdkHeaderRowDef, {\n descendants: true\n }]\n }],\n _contentFooterRowDefs: [{\n type: ContentChildren,\n args: [CdkFooterRowDef, {\n descendants: true\n }]\n }],\n _noDataRow: [{\n type: ContentChild,\n args: [CdkNoDataRow]\n }]\n });\n})();\n/** Utility function that gets a merged list of the entries in an array and values of a Set. */\nfunction mergeArrayAndSet(array, set) {\n return array.concat(Array.from(set));\n}\n\n/**\n * Column that simply shows text content for the header and row cells. Assumes that the table\n * is using the native table implementation (``).\n *\n * By default, the name of this column will be the header text and data property accessor.\n * The header text can be overridden with the `headerText` input. Cell values can be overridden with\n * the `dataAccessor` input. Change the text justification to the start or end using the `justify`\n * input.\n */\nclass CdkTextColumn {\n /** Column name that should be used to reference this column. */\n get name() {\n return this._name;\n }\n set name(name) {\n this._name = name;\n // With Ivy, inputs can be initialized before static query results are\n // available. In that case, we defer the synchronization until \"ngOnInit\" fires.\n this._syncColumnDefName();\n }\n constructor(\n // `CdkTextColumn` is always requiring a table, but we just assert it manually\n // for better error reporting.\n // tslint:disable-next-line: lightweight-tokens\n _table, _options) {\n this._table = _table;\n this._options = _options;\n /** Alignment of the cell values. */\n this.justify = 'start';\n this._options = _options || {};\n }\n ngOnInit() {\n this._syncColumnDefName();\n if (this.headerText === undefined) {\n this.headerText = this._createDefaultHeaderText();\n }\n if (!this.dataAccessor) {\n this.dataAccessor = this._options.defaultDataAccessor || ((data, name) => data[name]);\n }\n if (this._table) {\n // Provide the cell and headerCell directly to the table with the static `ViewChild` query,\n // since the columnDef will not pick up its content by the time the table finishes checking\n // its content and initializing the rows.\n this.columnDef.cell = this.cell;\n this.columnDef.headerCell = this.headerCell;\n this._table.addColumnDef(this.columnDef);\n } else if (typeof ngDevMode === 'undefined' || ngDevMode) {\n throw getTableTextColumnMissingParentTableError();\n }\n }\n ngOnDestroy() {\n if (this._table) {\n this._table.removeColumnDef(this.columnDef);\n }\n }\n /**\n * Creates a default header text. Use the options' header text transformation function if one\n * has been provided. Otherwise simply capitalize the column name.\n */\n _createDefaultHeaderText() {\n const name = this.name;\n if (!name && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getTableTextColumnMissingNameError();\n }\n if (this._options && this._options.defaultHeaderTextTransform) {\n return this._options.defaultHeaderTextTransform(name);\n }\n return name[0].toUpperCase() + name.slice(1);\n }\n /** Synchronizes the column definition name with the text column name. */\n _syncColumnDefName() {\n if (this.columnDef) {\n this.columnDef.name = this.name;\n }\n }\n static {\n this.ɵfac = function CdkTextColumn_Factory(ɵt) {\n return new (ɵt || CdkTextColumn)(i0.ɵɵdirectiveInject(CdkTable, 8), i0.ɵɵdirectiveInject(TEXT_COLUMN_OPTIONS, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: CdkTextColumn,\n selectors: [[\"cdk-text-column\"]],\n viewQuery: function CdkTextColumn_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(CdkColumnDef, 7);\n i0.ɵɵviewQuery(CdkCellDef, 7);\n i0.ɵɵviewQuery(CdkHeaderCellDef, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.columnDef = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.cell = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.headerCell = _t.first);\n }\n },\n inputs: {\n name: \"name\",\n headerText: \"headerText\",\n dataAccessor: \"dataAccessor\",\n justify: \"justify\"\n },\n decls: 3,\n vars: 0,\n consts: [[\"cdkColumnDef\", \"\"], [\"cdk-header-cell\", \"\", 3, \"text-align\", 4, \"cdkHeaderCellDef\"], [\"cdk-cell\", \"\", 3, \"text-align\", 4, \"cdkCellDef\"], [\"cdk-header-cell\", \"\"], [\"cdk-cell\", \"\"]],\n template: function CdkTextColumn_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0, 0);\n i0.ɵɵtemplate(1, CdkTextColumn_th_1_Template, 2, 3, \"th\", 1)(2, CdkTextColumn_td_2_Template, 2, 3, \"td\", 2);\n i0.ɵɵelementContainerEnd();\n }\n },\n dependencies: [CdkCellDef, CdkHeaderCellDef, CdkColumnDef, CdkCell, CdkHeaderCell],\n encapsulation: 2\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkTextColumn, [{\n type: Component,\n args: [{\n selector: 'cdk-text-column',\n template: `\n \n \n {{headerText}}\n \n \n {{dataAccessor(data, name)}}\n \n \n `,\n encapsulation: ViewEncapsulation.None,\n // Change detection is intentionally not set to OnPush. This component's template will be provided\n // to the table to be inserted into its view. This is problematic when change detection runs since\n // the bindings in this template will be evaluated _after_ the table's view is evaluated, which\n // mean's the template in the table's view will not have the updated value (and in fact will cause\n // an ExpressionChangedAfterItHasBeenCheckedError).\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default\n }]\n }], function () {\n return [{\n type: CdkTable,\n decorators: [{\n type: Optional\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [TEXT_COLUMN_OPTIONS]\n }]\n }];\n }, {\n name: [{\n type: Input\n }],\n headerText: [{\n type: Input\n }],\n dataAccessor: [{\n type: Input\n }],\n justify: [{\n type: Input\n }],\n columnDef: [{\n type: ViewChild,\n args: [CdkColumnDef, {\n static: true\n }]\n }],\n cell: [{\n type: ViewChild,\n args: [CdkCellDef, {\n static: true\n }]\n }],\n headerCell: [{\n type: ViewChild,\n args: [CdkHeaderCellDef, {\n static: true\n }]\n }]\n });\n})();\nconst EXPORTED_DECLARATIONS = [CdkTable, CdkRowDef, CdkCellDef, CdkCellOutlet, CdkHeaderCellDef, CdkFooterCellDef, CdkColumnDef, CdkCell, CdkRow, CdkHeaderCell, CdkFooterCell, CdkHeaderRow, CdkHeaderRowDef, CdkFooterRow, CdkFooterRowDef, DataRowOutlet, HeaderRowOutlet, FooterRowOutlet, CdkTextColumn, CdkNoDataRow, CdkRecycleRows, NoDataRowOutlet];\nclass CdkTableModule {\n static {\n this.ɵfac = function CdkTableModule_Factory(ɵt) {\n return new (ɵt || CdkTableModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: CdkTableModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [ScrollingModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkTableModule, [{\n type: NgModule,\n args: [{\n exports: EXPORTED_DECLARATIONS,\n declarations: EXPORTED_DECLARATIONS,\n imports: [ScrollingModule]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BaseCdkCell, BaseRowDef, CDK_ROW_TEMPLATE, CDK_TABLE, CDK_TABLE_TEMPLATE, CdkCell, CdkCellDef, CdkCellOutlet, CdkColumnDef, CdkFooterCell, CdkFooterCellDef, CdkFooterRow, CdkFooterRowDef, CdkHeaderCell, CdkHeaderCellDef, CdkHeaderRow, CdkHeaderRowDef, CdkNoDataRow, CdkRecycleRows, CdkRow, CdkRowDef, CdkTable, CdkTableModule, CdkTextColumn, DataRowOutlet, FooterRowOutlet, HeaderRowOutlet, NoDataRowOutlet, STICKY_DIRECTIONS, STICKY_POSITIONING_LISTENER, StickyStyler, TEXT_COLUMN_OPTIONS, _COALESCED_STYLE_SCHEDULER, _CoalescedStyleScheduler, _Schedule, mixinHasStickyInput };\n","import * as i0 from '@angular/core';\nimport { Directive, Component, ViewEncapsulation, ChangeDetectionStrategy, Input, NgModule } from '@angular/core';\nimport * as i1 from '@angular/cdk/table';\nimport { CdkTable, CDK_TABLE, _COALESCED_STYLE_SCHEDULER, _CoalescedStyleScheduler, STICKY_POSITIONING_LISTENER, CdkCellDef, CdkHeaderCellDef, CdkFooterCellDef, CdkColumnDef, CdkHeaderCell, CdkFooterCell, CdkCell, CdkHeaderRowDef, CdkFooterRowDef, CdkRowDef, CdkHeaderRow, CdkFooterRow, CdkRow, CdkNoDataRow, CdkTextColumn, CdkTableModule } from '@angular/cdk/table';\nimport { _VIEW_REPEATER_STRATEGY, _RecycleViewRepeaterStrategy, _DisposeViewRepeaterStrategy, DataSource } from '@angular/cdk/collections';\nimport { MatCommonModule } from '@angular/material/core';\nimport { BehaviorSubject, Subject, merge, of, combineLatest } from 'rxjs';\nimport { _isNumberValue } from '@angular/cdk/coercion';\nimport { map } from 'rxjs/operators';\n\n/**\n * Enables the recycle view repeater strategy, which reduces rendering latency. Not compatible with\n * tables that animate rows.\n */\nconst _c0 = [[[\"caption\"]], [[\"colgroup\"], [\"col\"]]];\nconst _c1 = [\"caption\", \"colgroup, col\"];\nfunction MatTextColumn_th_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"th\", 3);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵstyleProp(\"text-align\", ctx_r0.justify);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r0.headerText, \" \");\n }\n}\nfunction MatTextColumn_td_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"td\", 4);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const data_r2 = ctx.$implicit;\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵstyleProp(\"text-align\", ctx_r0.justify);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r0.dataAccessor(data_r2, ctx_r0.name), \" \");\n }\n}\nclass MatRecycleRows {\n static {\n this.ɵfac = function MatRecycleRows_Factory(ɵt) {\n return new (ɵt || MatRecycleRows)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatRecycleRows,\n selectors: [[\"mat-table\", \"recycleRows\", \"\"], [\"table\", \"mat-table\", \"\", \"recycleRows\", \"\"]],\n features: [i0.ɵɵProvidersFeature([{\n provide: _VIEW_REPEATER_STRATEGY,\n useClass: _RecycleViewRepeaterStrategy\n }])]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatRecycleRows, [{\n type: Directive,\n args: [{\n selector: 'mat-table[recycleRows], table[mat-table][recycleRows]',\n providers: [{\n provide: _VIEW_REPEATER_STRATEGY,\n useClass: _RecycleViewRepeaterStrategy\n }]\n }]\n }], null, null);\n})();\nclass MatTable extends CdkTable {\n constructor() {\n super(...arguments);\n /** Overrides the sticky CSS class set by the `CdkTable`. */\n this.stickyCssClass = 'mat-mdc-table-sticky';\n /** Overrides the need to add position: sticky on every sticky cell element in `CdkTable`. */\n this.needsPositionStickyOnElement = false;\n }\n ngOnInit() {\n super.ngOnInit();\n // After ngOnInit, the `CdkTable` has created and inserted the table sections (thead, tbody,\n // tfoot). MDC requires the `mdc-data-table__content` class to be added to the body. Note that\n // this only applies to native tables, because we don't wrap the content of flexbox-based ones.\n if (this._isNativeHtmlTable) {\n const tbody = this._elementRef.nativeElement.querySelector('tbody');\n tbody.classList.add('mdc-data-table__content');\n }\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatTable_BaseFactory;\n return function MatTable_Factory(ɵt) {\n return (ɵMatTable_BaseFactory || (ɵMatTable_BaseFactory = i0.ɵɵgetInheritedFactory(MatTable)))(ɵt || MatTable);\n };\n })();\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatTable,\n selectors: [[\"mat-table\"], [\"table\", \"mat-table\", \"\"]],\n hostAttrs: [\"ngSkipHydration\", \"\", 1, \"mat-mdc-table\", \"mdc-data-table__table\"],\n hostVars: 2,\n hostBindings: function MatTable_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"mdc-table-fixed-layout\", ctx.fixedLayout);\n }\n },\n exportAs: [\"matTable\"],\n features: [i0.ɵɵProvidersFeature([{\n provide: CdkTable,\n useExisting: MatTable\n }, {\n provide: CDK_TABLE,\n useExisting: MatTable\n }, {\n provide: _COALESCED_STYLE_SCHEDULER,\n useClass: _CoalescedStyleScheduler\n },\n // TODO(michaeljamesparsons) Abstract the view repeater strategy to a directive API so this code\n // is only included in the build if used.\n {\n provide: _VIEW_REPEATER_STRATEGY,\n useClass: _DisposeViewRepeaterStrategy\n },\n // Prevent nested tables from seeing this table's StickyPositioningListener.\n {\n provide: STICKY_POSITIONING_LISTENER,\n useValue: null\n }]), i0.ɵɵInheritDefinitionFeature],\n ngContentSelectors: _c1,\n decls: 6,\n vars: 0,\n consts: [[\"headerRowOutlet\", \"\"], [\"rowOutlet\", \"\"], [\"noDataRowOutlet\", \"\"], [\"footerRowOutlet\", \"\"]],\n template: function MatTable_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c0);\n i0.ɵɵprojection(0);\n i0.ɵɵprojection(1, 1);\n i0.ɵɵelementContainer(2, 0)(3, 1)(4, 2)(5, 3);\n }\n },\n dependencies: [i1.DataRowOutlet, i1.HeaderRowOutlet, i1.FooterRowOutlet, i1.NoDataRowOutlet],\n styles: [\".mat-mdc-table-sticky{position:sticky !important}.mdc-data-table{-webkit-overflow-scrolling:touch;display:inline-flex;flex-direction:column;box-sizing:border-box;position:relative}.mdc-data-table__table-container{-webkit-overflow-scrolling:touch;overflow-x:auto;width:100%}.mdc-data-table__table{min-width:100%;border:0;white-space:nowrap;border-spacing:0;table-layout:fixed}.mdc-data-table__cell{box-sizing:border-box;overflow:hidden;text-align:left;text-overflow:ellipsis}[dir=rtl] .mdc-data-table__cell,.mdc-data-table__cell[dir=rtl]{text-align:right}.mdc-data-table__cell--numeric{text-align:right}[dir=rtl] .mdc-data-table__cell--numeric,.mdc-data-table__cell--numeric[dir=rtl]{text-align:left}.mdc-data-table__header-cell{box-sizing:border-box;text-overflow:ellipsis;overflow:hidden;outline:none;text-align:left}[dir=rtl] .mdc-data-table__header-cell,.mdc-data-table__header-cell[dir=rtl]{text-align:right}.mdc-data-table__header-cell--numeric{text-align:right}[dir=rtl] .mdc-data-table__header-cell--numeric,.mdc-data-table__header-cell--numeric[dir=rtl]{text-align:left}.mdc-data-table__header-cell-wrapper{align-items:center;display:inline-flex;vertical-align:middle}.mdc-data-table__cell,.mdc-data-table__header-cell{padding:0 16px 0 16px}.mdc-data-table__header-cell--checkbox,.mdc-data-table__cell--checkbox{padding-left:4px;padding-right:0}[dir=rtl] .mdc-data-table__header-cell--checkbox,[dir=rtl] .mdc-data-table__cell--checkbox,.mdc-data-table__header-cell--checkbox[dir=rtl],.mdc-data-table__cell--checkbox[dir=rtl]{padding-left:0;padding-right:4px}mat-table{display:block}mat-header-row{min-height:56px}mat-row,mat-footer-row{min-height:48px}mat-row,mat-header-row,mat-footer-row{display:flex;border-width:0;border-bottom-width:1px;border-style:solid;align-items:center;box-sizing:border-box}mat-cell:first-of-type,mat-header-cell:first-of-type,mat-footer-cell:first-of-type{padding-left:24px}[dir=rtl] mat-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:first-of-type:not(:only-of-type){padding-left:0;padding-right:24px}mat-cell:last-of-type,mat-header-cell:last-of-type,mat-footer-cell:last-of-type{padding-right:24px}[dir=rtl] mat-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:last-of-type:not(:only-of-type){padding-right:0;padding-left:24px}mat-cell,mat-header-cell,mat-footer-cell{flex:1;display:flex;align-items:center;overflow:hidden;word-wrap:break-word;min-height:inherit}.mat-mdc-table{--mat-table-row-item-outline-width:1px;table-layout:auto;white-space:normal;background-color:var(--mat-table-background-color)}.mat-mdc-header-row{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;height:var(--mat-table-header-container-height, 56px);color:var(--mat-table-header-headline-color, rgba(0, 0, 0, 0.87));font-family:var(--mat-table-header-headline-font, Roboto, sans-serif);line-height:var(--mat-table-header-headline-line-height);font-size:var(--mat-table-header-headline-size, 14px);font-weight:var(--mat-table-header-headline-weight, 500)}.mat-mdc-row{height:var(--mat-table-row-item-container-height, 52px);color:var(--mat-table-row-item-label-text-color, rgba(0, 0, 0, 0.87))}.mat-mdc-row,.mdc-data-table__content{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-table-row-item-label-text-font, Roboto, sans-serif);line-height:var(--mat-table-row-item-label-text-line-height);font-size:var(--mat-table-row-item-label-text-size, 14px);font-weight:var(--mat-table-row-item-label-text-weight)}.mat-mdc-footer-row{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;height:var(--mat-table-footer-container-height, 52px);color:var(--mat-table-row-item-label-text-color, rgba(0, 0, 0, 0.87));font-family:var(--mat-table-footer-supporting-text-font, Roboto, sans-serif);line-height:var(--mat-table-footer-supporting-text-line-height);font-size:var(--mat-table-footer-supporting-text-size, 14px);font-weight:var(--mat-table-footer-supporting-text-weight);letter-spacing:var(--mat-table-footer-supporting-text-tracking)}.mat-mdc-header-cell{border-bottom-color:var(--mat-table-row-item-outline-color, rgba(0, 0, 0, 0.12));border-bottom-width:var(--mat-table-row-item-outline-width, 1px);border-bottom-style:solid;letter-spacing:var(--mat-table-header-headline-tracking);font-weight:inherit;line-height:inherit}.mat-mdc-cell{border-bottom-color:var(--mat-table-row-item-outline-color, rgba(0, 0, 0, 0.12));border-bottom-width:var(--mat-table-row-item-outline-width, 1px);border-bottom-style:solid;letter-spacing:var(--mat-table-row-item-label-text-tracking);line-height:inherit}.mdc-data-table__row:last-child .mat-mdc-cell{border-bottom:none}.mat-mdc-footer-cell{letter-spacing:var(--mat-table-row-item-label-text-tracking)}mat-row.mat-mdc-row,mat-header-row.mat-mdc-header-row,mat-footer-row.mat-mdc-footer-row{border-bottom:none}.mat-mdc-table tbody,.mat-mdc-table tfoot,.mat-mdc-table thead,.mat-mdc-cell,.mat-mdc-footer-cell,.mat-mdc-header-row,.mat-mdc-row,.mat-mdc-footer-row,.mat-mdc-table .mat-mdc-header-cell{background:inherit}.mat-mdc-table mat-header-row.mat-mdc-header-row,.mat-mdc-table mat-row.mat-mdc-row,.mat-mdc-table mat-footer-row.mat-mdc-footer-cell{height:unset}mat-header-cell.mat-mdc-header-cell,mat-cell.mat-mdc-cell,mat-footer-cell.mat-mdc-footer-cell{align-self:stretch}\"],\n encapsulation: 2\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatTable, [{\n type: Component,\n args: [{\n selector: 'mat-table, table[mat-table]',\n exportAs: 'matTable',\n template: `\n \n \n \n \n \n \n `,\n host: {\n 'class': 'mat-mdc-table mdc-data-table__table',\n '[class.mdc-table-fixed-layout]': 'fixedLayout',\n 'ngSkipHydration': ''\n },\n providers: [{\n provide: CdkTable,\n useExisting: MatTable\n }, {\n provide: CDK_TABLE,\n useExisting: MatTable\n }, {\n provide: _COALESCED_STYLE_SCHEDULER,\n useClass: _CoalescedStyleScheduler\n },\n // TODO(michaeljamesparsons) Abstract the view repeater strategy to a directive API so this code\n // is only included in the build if used.\n {\n provide: _VIEW_REPEATER_STRATEGY,\n useClass: _DisposeViewRepeaterStrategy\n },\n // Prevent nested tables from seeing this table's StickyPositioningListener.\n {\n provide: STICKY_POSITIONING_LISTENER,\n useValue: null\n }],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Default,\n styles: [\".mat-mdc-table-sticky{position:sticky !important}.mdc-data-table{-webkit-overflow-scrolling:touch;display:inline-flex;flex-direction:column;box-sizing:border-box;position:relative}.mdc-data-table__table-container{-webkit-overflow-scrolling:touch;overflow-x:auto;width:100%}.mdc-data-table__table{min-width:100%;border:0;white-space:nowrap;border-spacing:0;table-layout:fixed}.mdc-data-table__cell{box-sizing:border-box;overflow:hidden;text-align:left;text-overflow:ellipsis}[dir=rtl] .mdc-data-table__cell,.mdc-data-table__cell[dir=rtl]{text-align:right}.mdc-data-table__cell--numeric{text-align:right}[dir=rtl] .mdc-data-table__cell--numeric,.mdc-data-table__cell--numeric[dir=rtl]{text-align:left}.mdc-data-table__header-cell{box-sizing:border-box;text-overflow:ellipsis;overflow:hidden;outline:none;text-align:left}[dir=rtl] .mdc-data-table__header-cell,.mdc-data-table__header-cell[dir=rtl]{text-align:right}.mdc-data-table__header-cell--numeric{text-align:right}[dir=rtl] .mdc-data-table__header-cell--numeric,.mdc-data-table__header-cell--numeric[dir=rtl]{text-align:left}.mdc-data-table__header-cell-wrapper{align-items:center;display:inline-flex;vertical-align:middle}.mdc-data-table__cell,.mdc-data-table__header-cell{padding:0 16px 0 16px}.mdc-data-table__header-cell--checkbox,.mdc-data-table__cell--checkbox{padding-left:4px;padding-right:0}[dir=rtl] .mdc-data-table__header-cell--checkbox,[dir=rtl] .mdc-data-table__cell--checkbox,.mdc-data-table__header-cell--checkbox[dir=rtl],.mdc-data-table__cell--checkbox[dir=rtl]{padding-left:0;padding-right:4px}mat-table{display:block}mat-header-row{min-height:56px}mat-row,mat-footer-row{min-height:48px}mat-row,mat-header-row,mat-footer-row{display:flex;border-width:0;border-bottom-width:1px;border-style:solid;align-items:center;box-sizing:border-box}mat-cell:first-of-type,mat-header-cell:first-of-type,mat-footer-cell:first-of-type{padding-left:24px}[dir=rtl] mat-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:first-of-type:not(:only-of-type){padding-left:0;padding-right:24px}mat-cell:last-of-type,mat-header-cell:last-of-type,mat-footer-cell:last-of-type{padding-right:24px}[dir=rtl] mat-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:last-of-type:not(:only-of-type){padding-right:0;padding-left:24px}mat-cell,mat-header-cell,mat-footer-cell{flex:1;display:flex;align-items:center;overflow:hidden;word-wrap:break-word;min-height:inherit}.mat-mdc-table{--mat-table-row-item-outline-width:1px;table-layout:auto;white-space:normal;background-color:var(--mat-table-background-color)}.mat-mdc-header-row{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;height:var(--mat-table-header-container-height, 56px);color:var(--mat-table-header-headline-color, rgba(0, 0, 0, 0.87));font-family:var(--mat-table-header-headline-font, Roboto, sans-serif);line-height:var(--mat-table-header-headline-line-height);font-size:var(--mat-table-header-headline-size, 14px);font-weight:var(--mat-table-header-headline-weight, 500)}.mat-mdc-row{height:var(--mat-table-row-item-container-height, 52px);color:var(--mat-table-row-item-label-text-color, rgba(0, 0, 0, 0.87))}.mat-mdc-row,.mdc-data-table__content{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-table-row-item-label-text-font, Roboto, sans-serif);line-height:var(--mat-table-row-item-label-text-line-height);font-size:var(--mat-table-row-item-label-text-size, 14px);font-weight:var(--mat-table-row-item-label-text-weight)}.mat-mdc-footer-row{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;height:var(--mat-table-footer-container-height, 52px);color:var(--mat-table-row-item-label-text-color, rgba(0, 0, 0, 0.87));font-family:var(--mat-table-footer-supporting-text-font, Roboto, sans-serif);line-height:var(--mat-table-footer-supporting-text-line-height);font-size:var(--mat-table-footer-supporting-text-size, 14px);font-weight:var(--mat-table-footer-supporting-text-weight);letter-spacing:var(--mat-table-footer-supporting-text-tracking)}.mat-mdc-header-cell{border-bottom-color:var(--mat-table-row-item-outline-color, rgba(0, 0, 0, 0.12));border-bottom-width:var(--mat-table-row-item-outline-width, 1px);border-bottom-style:solid;letter-spacing:var(--mat-table-header-headline-tracking);font-weight:inherit;line-height:inherit}.mat-mdc-cell{border-bottom-color:var(--mat-table-row-item-outline-color, rgba(0, 0, 0, 0.12));border-bottom-width:var(--mat-table-row-item-outline-width, 1px);border-bottom-style:solid;letter-spacing:var(--mat-table-row-item-label-text-tracking);line-height:inherit}.mdc-data-table__row:last-child .mat-mdc-cell{border-bottom:none}.mat-mdc-footer-cell{letter-spacing:var(--mat-table-row-item-label-text-tracking)}mat-row.mat-mdc-row,mat-header-row.mat-mdc-header-row,mat-footer-row.mat-mdc-footer-row{border-bottom:none}.mat-mdc-table tbody,.mat-mdc-table tfoot,.mat-mdc-table thead,.mat-mdc-cell,.mat-mdc-footer-cell,.mat-mdc-header-row,.mat-mdc-row,.mat-mdc-footer-row,.mat-mdc-table .mat-mdc-header-cell{background:inherit}.mat-mdc-table mat-header-row.mat-mdc-header-row,.mat-mdc-table mat-row.mat-mdc-row,.mat-mdc-table mat-footer-row.mat-mdc-footer-cell{height:unset}mat-header-cell.mat-mdc-header-cell,mat-cell.mat-mdc-cell,mat-footer-cell.mat-mdc-footer-cell{align-self:stretch}\"]\n }]\n }], null, null);\n})();\n\n/**\n * Cell definition for the mat-table.\n * Captures the template of a column's data row cell as well as cell-specific properties.\n */\nclass MatCellDef extends CdkCellDef {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatCellDef_BaseFactory;\n return function MatCellDef_Factory(ɵt) {\n return (ɵMatCellDef_BaseFactory || (ɵMatCellDef_BaseFactory = i0.ɵɵgetInheritedFactory(MatCellDef)))(ɵt || MatCellDef);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatCellDef,\n selectors: [[\"\", \"matCellDef\", \"\"]],\n features: [i0.ɵɵProvidersFeature([{\n provide: CdkCellDef,\n useExisting: MatCellDef\n }]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatCellDef, [{\n type: Directive,\n args: [{\n selector: '[matCellDef]',\n providers: [{\n provide: CdkCellDef,\n useExisting: MatCellDef\n }]\n }]\n }], null, null);\n})();\n/**\n * Header cell definition for the mat-table.\n * Captures the template of a column's header cell and as well as cell-specific properties.\n */\nclass MatHeaderCellDef extends CdkHeaderCellDef {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatHeaderCellDef_BaseFactory;\n return function MatHeaderCellDef_Factory(ɵt) {\n return (ɵMatHeaderCellDef_BaseFactory || (ɵMatHeaderCellDef_BaseFactory = i0.ɵɵgetInheritedFactory(MatHeaderCellDef)))(ɵt || MatHeaderCellDef);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatHeaderCellDef,\n selectors: [[\"\", \"matHeaderCellDef\", \"\"]],\n features: [i0.ɵɵProvidersFeature([{\n provide: CdkHeaderCellDef,\n useExisting: MatHeaderCellDef\n }]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatHeaderCellDef, [{\n type: Directive,\n args: [{\n selector: '[matHeaderCellDef]',\n providers: [{\n provide: CdkHeaderCellDef,\n useExisting: MatHeaderCellDef\n }]\n }]\n }], null, null);\n})();\n/**\n * Footer cell definition for the mat-table.\n * Captures the template of a column's footer cell and as well as cell-specific properties.\n */\nclass MatFooterCellDef extends CdkFooterCellDef {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatFooterCellDef_BaseFactory;\n return function MatFooterCellDef_Factory(ɵt) {\n return (ɵMatFooterCellDef_BaseFactory || (ɵMatFooterCellDef_BaseFactory = i0.ɵɵgetInheritedFactory(MatFooterCellDef)))(ɵt || MatFooterCellDef);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatFooterCellDef,\n selectors: [[\"\", \"matFooterCellDef\", \"\"]],\n features: [i0.ɵɵProvidersFeature([{\n provide: CdkFooterCellDef,\n useExisting: MatFooterCellDef\n }]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatFooterCellDef, [{\n type: Directive,\n args: [{\n selector: '[matFooterCellDef]',\n providers: [{\n provide: CdkFooterCellDef,\n useExisting: MatFooterCellDef\n }]\n }]\n }], null, null);\n})();\n/**\n * Column definition for the mat-table.\n * Defines a set of cells available for a table column.\n */\nclass MatColumnDef extends CdkColumnDef {\n /** Unique name for this column. */\n get name() {\n return this._name;\n }\n set name(name) {\n this._setNameInput(name);\n }\n /**\n * Add \"mat-column-\" prefix in addition to \"cdk-column-\" prefix.\n * In the future, this will only add \"mat-column-\" and columnCssClassName\n * will change from type string[] to string.\n * @docs-private\n */\n _updateColumnCssClassName() {\n super._updateColumnCssClassName();\n this._columnCssClassName.push(`mat-column-${this.cssClassFriendlyName}`);\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatColumnDef_BaseFactory;\n return function MatColumnDef_Factory(ɵt) {\n return (ɵMatColumnDef_BaseFactory || (ɵMatColumnDef_BaseFactory = i0.ɵɵgetInheritedFactory(MatColumnDef)))(ɵt || MatColumnDef);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatColumnDef,\n selectors: [[\"\", \"matColumnDef\", \"\"]],\n inputs: {\n sticky: \"sticky\",\n name: [0, \"matColumnDef\", \"name\"]\n },\n features: [i0.ɵɵProvidersFeature([{\n provide: CdkColumnDef,\n useExisting: MatColumnDef\n }, {\n provide: 'MAT_SORT_HEADER_COLUMN_DEF',\n useExisting: MatColumnDef\n }]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatColumnDef, [{\n type: Directive,\n args: [{\n selector: '[matColumnDef]',\n inputs: ['sticky'],\n providers: [{\n provide: CdkColumnDef,\n useExisting: MatColumnDef\n }, {\n provide: 'MAT_SORT_HEADER_COLUMN_DEF',\n useExisting: MatColumnDef\n }]\n }]\n }], null, {\n name: [{\n type: Input,\n args: ['matColumnDef']\n }]\n });\n})();\n/** Header cell template container that adds the right classes and role. */\nclass MatHeaderCell extends CdkHeaderCell {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatHeaderCell_BaseFactory;\n return function MatHeaderCell_Factory(ɵt) {\n return (ɵMatHeaderCell_BaseFactory || (ɵMatHeaderCell_BaseFactory = i0.ɵɵgetInheritedFactory(MatHeaderCell)))(ɵt || MatHeaderCell);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatHeaderCell,\n selectors: [[\"mat-header-cell\"], [\"th\", \"mat-header-cell\", \"\"]],\n hostAttrs: [\"role\", \"columnheader\", 1, \"mat-mdc-header-cell\", \"mdc-data-table__header-cell\"],\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatHeaderCell, [{\n type: Directive,\n args: [{\n selector: 'mat-header-cell, th[mat-header-cell]',\n host: {\n 'class': 'mat-mdc-header-cell mdc-data-table__header-cell',\n 'role': 'columnheader'\n }\n }]\n }], null, null);\n})();\n/** Footer cell template container that adds the right classes and role. */\nclass MatFooterCell extends CdkFooterCell {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatFooterCell_BaseFactory;\n return function MatFooterCell_Factory(ɵt) {\n return (ɵMatFooterCell_BaseFactory || (ɵMatFooterCell_BaseFactory = i0.ɵɵgetInheritedFactory(MatFooterCell)))(ɵt || MatFooterCell);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatFooterCell,\n selectors: [[\"mat-footer-cell\"], [\"td\", \"mat-footer-cell\", \"\"]],\n hostAttrs: [1, \"mat-mdc-footer-cell\", \"mdc-data-table__cell\"],\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatFooterCell, [{\n type: Directive,\n args: [{\n selector: 'mat-footer-cell, td[mat-footer-cell]',\n host: {\n 'class': 'mat-mdc-footer-cell mdc-data-table__cell'\n }\n }]\n }], null, null);\n})();\n/** Cell template container that adds the right classes and role. */\nclass MatCell extends CdkCell {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatCell_BaseFactory;\n return function MatCell_Factory(ɵt) {\n return (ɵMatCell_BaseFactory || (ɵMatCell_BaseFactory = i0.ɵɵgetInheritedFactory(MatCell)))(ɵt || MatCell);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatCell,\n selectors: [[\"mat-cell\"], [\"td\", \"mat-cell\", \"\"]],\n hostAttrs: [1, \"mat-mdc-cell\", \"mdc-data-table__cell\"],\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatCell, [{\n type: Directive,\n args: [{\n selector: 'mat-cell, td[mat-cell]',\n host: {\n 'class': 'mat-mdc-cell mdc-data-table__cell'\n }\n }]\n }], null, null);\n})();\n\n// We can't reuse `CDK_ROW_TEMPLATE` because it's incompatible with local compilation mode.\nconst ROW_TEMPLATE = ``;\n/**\n * Header row definition for the mat-table.\n * Captures the header row's template and other header properties such as the columns to display.\n */\nclass MatHeaderRowDef extends CdkHeaderRowDef {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatHeaderRowDef_BaseFactory;\n return function MatHeaderRowDef_Factory(ɵt) {\n return (ɵMatHeaderRowDef_BaseFactory || (ɵMatHeaderRowDef_BaseFactory = i0.ɵɵgetInheritedFactory(MatHeaderRowDef)))(ɵt || MatHeaderRowDef);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatHeaderRowDef,\n selectors: [[\"\", \"matHeaderRowDef\", \"\"]],\n inputs: {\n columns: [0, \"matHeaderRowDef\", \"columns\"],\n sticky: [0, \"matHeaderRowDefSticky\", \"sticky\"]\n },\n features: [i0.ɵɵProvidersFeature([{\n provide: CdkHeaderRowDef,\n useExisting: MatHeaderRowDef\n }]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatHeaderRowDef, [{\n type: Directive,\n args: [{\n selector: '[matHeaderRowDef]',\n providers: [{\n provide: CdkHeaderRowDef,\n useExisting: MatHeaderRowDef\n }],\n inputs: ['columns: matHeaderRowDef', 'sticky: matHeaderRowDefSticky']\n }]\n }], null, null);\n})();\n/**\n * Footer row definition for the mat-table.\n * Captures the footer row's template and other footer properties such as the columns to display.\n */\nclass MatFooterRowDef extends CdkFooterRowDef {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatFooterRowDef_BaseFactory;\n return function MatFooterRowDef_Factory(ɵt) {\n return (ɵMatFooterRowDef_BaseFactory || (ɵMatFooterRowDef_BaseFactory = i0.ɵɵgetInheritedFactory(MatFooterRowDef)))(ɵt || MatFooterRowDef);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatFooterRowDef,\n selectors: [[\"\", \"matFooterRowDef\", \"\"]],\n inputs: {\n columns: [0, \"matFooterRowDef\", \"columns\"],\n sticky: [0, \"matFooterRowDefSticky\", \"sticky\"]\n },\n features: [i0.ɵɵProvidersFeature([{\n provide: CdkFooterRowDef,\n useExisting: MatFooterRowDef\n }]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatFooterRowDef, [{\n type: Directive,\n args: [{\n selector: '[matFooterRowDef]',\n providers: [{\n provide: CdkFooterRowDef,\n useExisting: MatFooterRowDef\n }],\n inputs: ['columns: matFooterRowDef', 'sticky: matFooterRowDefSticky']\n }]\n }], null, null);\n})();\n/**\n * Data row definition for the mat-table.\n * Captures the data row's template and other properties such as the columns to display and\n * a when predicate that describes when this row should be used.\n */\nclass MatRowDef extends CdkRowDef {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatRowDef_BaseFactory;\n return function MatRowDef_Factory(ɵt) {\n return (ɵMatRowDef_BaseFactory || (ɵMatRowDef_BaseFactory = i0.ɵɵgetInheritedFactory(MatRowDef)))(ɵt || MatRowDef);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatRowDef,\n selectors: [[\"\", \"matRowDef\", \"\"]],\n inputs: {\n columns: [0, \"matRowDefColumns\", \"columns\"],\n when: [0, \"matRowDefWhen\", \"when\"]\n },\n features: [i0.ɵɵProvidersFeature([{\n provide: CdkRowDef,\n useExisting: MatRowDef\n }]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatRowDef, [{\n type: Directive,\n args: [{\n selector: '[matRowDef]',\n providers: [{\n provide: CdkRowDef,\n useExisting: MatRowDef\n }],\n inputs: ['columns: matRowDefColumns', 'when: matRowDefWhen']\n }]\n }], null, null);\n})();\n/** Header template container that contains the cell outlet. Adds the right class and role. */\nclass MatHeaderRow extends CdkHeaderRow {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatHeaderRow_BaseFactory;\n return function MatHeaderRow_Factory(ɵt) {\n return (ɵMatHeaderRow_BaseFactory || (ɵMatHeaderRow_BaseFactory = i0.ɵɵgetInheritedFactory(MatHeaderRow)))(ɵt || MatHeaderRow);\n };\n })();\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatHeaderRow,\n selectors: [[\"mat-header-row\"], [\"tr\", \"mat-header-row\", \"\"]],\n hostAttrs: [\"role\", \"row\", 1, \"mat-mdc-header-row\", \"mdc-data-table__header-row\"],\n exportAs: [\"matHeaderRow\"],\n features: [i0.ɵɵProvidersFeature([{\n provide: CdkHeaderRow,\n useExisting: MatHeaderRow\n }]), i0.ɵɵInheritDefinitionFeature],\n decls: 1,\n vars: 0,\n consts: [[\"cdkCellOutlet\", \"\"]],\n template: function MatHeaderRow_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0, 0);\n }\n },\n dependencies: [i1.CdkCellOutlet],\n encapsulation: 2\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatHeaderRow, [{\n type: Component,\n args: [{\n selector: 'mat-header-row, tr[mat-header-row]',\n template: ROW_TEMPLATE,\n host: {\n 'class': 'mat-mdc-header-row mdc-data-table__header-row',\n 'role': 'row'\n },\n // See note on CdkTable for explanation on why this uses the default change detection strategy.\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'matHeaderRow',\n providers: [{\n provide: CdkHeaderRow,\n useExisting: MatHeaderRow\n }]\n }]\n }], null, null);\n})();\n/** Footer template container that contains the cell outlet. Adds the right class and role. */\nclass MatFooterRow extends CdkFooterRow {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatFooterRow_BaseFactory;\n return function MatFooterRow_Factory(ɵt) {\n return (ɵMatFooterRow_BaseFactory || (ɵMatFooterRow_BaseFactory = i0.ɵɵgetInheritedFactory(MatFooterRow)))(ɵt || MatFooterRow);\n };\n })();\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatFooterRow,\n selectors: [[\"mat-footer-row\"], [\"tr\", \"mat-footer-row\", \"\"]],\n hostAttrs: [\"role\", \"row\", 1, \"mat-mdc-footer-row\", \"mdc-data-table__row\"],\n exportAs: [\"matFooterRow\"],\n features: [i0.ɵɵProvidersFeature([{\n provide: CdkFooterRow,\n useExisting: MatFooterRow\n }]), i0.ɵɵInheritDefinitionFeature],\n decls: 1,\n vars: 0,\n consts: [[\"cdkCellOutlet\", \"\"]],\n template: function MatFooterRow_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0, 0);\n }\n },\n dependencies: [i1.CdkCellOutlet],\n encapsulation: 2\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatFooterRow, [{\n type: Component,\n args: [{\n selector: 'mat-footer-row, tr[mat-footer-row]',\n template: ROW_TEMPLATE,\n host: {\n 'class': 'mat-mdc-footer-row mdc-data-table__row',\n 'role': 'row'\n },\n // See note on CdkTable for explanation on why this uses the default change detection strategy.\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'matFooterRow',\n providers: [{\n provide: CdkFooterRow,\n useExisting: MatFooterRow\n }]\n }]\n }], null, null);\n})();\n/** Data row template container that contains the cell outlet. Adds the right class and role. */\nclass MatRow extends CdkRow {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatRow_BaseFactory;\n return function MatRow_Factory(ɵt) {\n return (ɵMatRow_BaseFactory || (ɵMatRow_BaseFactory = i0.ɵɵgetInheritedFactory(MatRow)))(ɵt || MatRow);\n };\n })();\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatRow,\n selectors: [[\"mat-row\"], [\"tr\", \"mat-row\", \"\"]],\n hostAttrs: [\"role\", \"row\", 1, \"mat-mdc-row\", \"mdc-data-table__row\"],\n exportAs: [\"matRow\"],\n features: [i0.ɵɵProvidersFeature([{\n provide: CdkRow,\n useExisting: MatRow\n }]), i0.ɵɵInheritDefinitionFeature],\n decls: 1,\n vars: 0,\n consts: [[\"cdkCellOutlet\", \"\"]],\n template: function MatRow_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0, 0);\n }\n },\n dependencies: [i1.CdkCellOutlet],\n encapsulation: 2\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatRow, [{\n type: Component,\n args: [{\n selector: 'mat-row, tr[mat-row]',\n template: ROW_TEMPLATE,\n host: {\n 'class': 'mat-mdc-row mdc-data-table__row',\n 'role': 'row'\n },\n // See note on CdkTable for explanation on why this uses the default change detection strategy.\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'matRow',\n providers: [{\n provide: CdkRow,\n useExisting: MatRow\n }]\n }]\n }], null, null);\n})();\n/** Row that can be used to display a message when no data is shown in the table. */\nclass MatNoDataRow extends CdkNoDataRow {\n constructor() {\n super(...arguments);\n this._contentClassName = 'mat-mdc-no-data-row';\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatNoDataRow_BaseFactory;\n return function MatNoDataRow_Factory(ɵt) {\n return (ɵMatNoDataRow_BaseFactory || (ɵMatNoDataRow_BaseFactory = i0.ɵɵgetInheritedFactory(MatNoDataRow)))(ɵt || MatNoDataRow);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatNoDataRow,\n selectors: [[\"ng-template\", \"matNoDataRow\", \"\"]],\n features: [i0.ɵɵProvidersFeature([{\n provide: CdkNoDataRow,\n useExisting: MatNoDataRow\n }]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatNoDataRow, [{\n type: Directive,\n args: [{\n selector: 'ng-template[matNoDataRow]',\n providers: [{\n provide: CdkNoDataRow,\n useExisting: MatNoDataRow\n }]\n }]\n }], null, null);\n})();\n\n/**\n * Column that simply shows text content for the header and row cells. Assumes that the table\n * is using the native table implementation (``).\n *\n * By default, the name of this column will be the header text and data property accessor.\n * The header text can be overridden with the `headerText` input. Cell values can be overridden with\n * the `dataAccessor` input. Change the text justification to the start or end using the `justify`\n * input.\n */\nclass MatTextColumn extends CdkTextColumn {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatTextColumn_BaseFactory;\n return function MatTextColumn_Factory(ɵt) {\n return (ɵMatTextColumn_BaseFactory || (ɵMatTextColumn_BaseFactory = i0.ɵɵgetInheritedFactory(MatTextColumn)))(ɵt || MatTextColumn);\n };\n })();\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatTextColumn,\n selectors: [[\"mat-text-column\"]],\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 3,\n vars: 0,\n consts: [[\"matColumnDef\", \"\"], [\"mat-header-cell\", \"\", 3, \"text-align\", 4, \"matHeaderCellDef\"], [\"mat-cell\", \"\", 3, \"text-align\", 4, \"matCellDef\"], [\"mat-header-cell\", \"\"], [\"mat-cell\", \"\"]],\n template: function MatTextColumn_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0, 0);\n i0.ɵɵtemplate(1, MatTextColumn_th_1_Template, 2, 3, \"th\", 1)(2, MatTextColumn_td_2_Template, 2, 3, \"td\", 2);\n i0.ɵɵelementContainerEnd();\n }\n },\n dependencies: [MatHeaderCellDef, MatColumnDef, MatCellDef, MatHeaderCell, MatCell],\n encapsulation: 2\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatTextColumn, [{\n type: Component,\n args: [{\n selector: 'mat-text-column',\n template: `\n \n \n {{headerText}}\n \n \n {{dataAccessor(data, name)}}\n \n \n `,\n encapsulation: ViewEncapsulation.None,\n // Change detection is intentionally not set to OnPush. This component's template will be provided\n // to the table to be inserted into its view. This is problematic when change detection runs since\n // the bindings in this template will be evaluated _after_ the table's view is evaluated, which\n // mean's the template in the table's view will not have the updated value (and in fact will cause\n // an ExpressionChangedAfterItHasBeenCheckedError).\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default\n }]\n }], null, null);\n})();\nconst EXPORTED_DECLARATIONS = [\n// Table\nMatTable, MatRecycleRows,\n// Template defs\nMatHeaderCellDef, MatHeaderRowDef, MatColumnDef, MatCellDef, MatRowDef, MatFooterCellDef, MatFooterRowDef,\n// Cell directives\nMatHeaderCell, MatCell, MatFooterCell,\n// Row directives\nMatHeaderRow, MatRow, MatFooterRow, MatNoDataRow, MatTextColumn];\nclass MatTableModule {\n static {\n this.ɵfac = function MatTableModule_Factory(ɵt) {\n return new (ɵt || MatTableModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatTableModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [MatCommonModule, CdkTableModule, MatCommonModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatTableModule, [{\n type: NgModule,\n args: [{\n imports: [MatCommonModule, CdkTableModule],\n exports: [MatCommonModule, EXPORTED_DECLARATIONS],\n declarations: EXPORTED_DECLARATIONS\n }]\n }], null, null);\n})();\n\n/**\n * Corresponds to `Number.MAX_SAFE_INTEGER`. Moved out into a variable here due to\n * flaky browser support and the value not being defined in Closure's typings.\n */\nconst MAX_SAFE_INTEGER = 9007199254740991;\n/** Shared base class with MDC-based implementation. */\nclass _MatTableDataSource extends DataSource {\n /** Array of data that should be rendered by the table, where each object represents one row. */\n get data() {\n return this._data.value;\n }\n set data(data) {\n data = Array.isArray(data) ? data : [];\n this._data.next(data);\n // Normally the `filteredData` is updated by the re-render\n // subscription, but that won't happen if it's inactive.\n if (!this._renderChangesSubscription) {\n this._filterData(data);\n }\n }\n /**\n * Filter term that should be used to filter out objects from the data array. To override how\n * data objects match to this filter string, provide a custom function for filterPredicate.\n */\n get filter() {\n return this._filter.value;\n }\n set filter(filter) {\n this._filter.next(filter);\n // Normally the `filteredData` is updated by the re-render\n // subscription, but that won't happen if it's inactive.\n if (!this._renderChangesSubscription) {\n this._filterData(this.data);\n }\n }\n /**\n * Instance of the MatSort directive used by the table to control its sorting. Sort changes\n * emitted by the MatSort will trigger an update to the table's rendered data.\n */\n get sort() {\n return this._sort;\n }\n set sort(sort) {\n this._sort = sort;\n this._updateChangeSubscription();\n }\n /**\n * Instance of the paginator component used by the table to control what page of the data is\n * displayed. Page changes emitted by the paginator will trigger an update to the\n * table's rendered data.\n *\n * Note that the data source uses the paginator's properties to calculate which page of data\n * should be displayed. If the paginator receives its properties as template inputs,\n * e.g. `[pageLength]=100` or `[pageIndex]=1`, then be sure that the paginator's view has been\n * initialized before assigning it to this data source.\n */\n get paginator() {\n return this._paginator;\n }\n set paginator(paginator) {\n this._paginator = paginator;\n this._updateChangeSubscription();\n }\n constructor(initialData = []) {\n super();\n /** Stream emitting render data to the table (depends on ordered data changes). */\n this._renderData = new BehaviorSubject([]);\n /** Stream that emits when a new filter string is set on the data source. */\n this._filter = new BehaviorSubject('');\n /** Used to react to internal changes of the paginator that are made by the data source itself. */\n this._internalPageChanges = new Subject();\n /**\n * Subscription to the changes that should trigger an update to the table's rendered rows, such\n * as filtering, sorting, pagination, or base data changes.\n */\n this._renderChangesSubscription = null;\n /**\n * Data accessor function that is used for accessing data properties for sorting through\n * the default sortData function.\n * This default function assumes that the sort header IDs (which defaults to the column name)\n * matches the data's properties (e.g. column Xyz represents data['Xyz']).\n * May be set to a custom function for different behavior.\n * @param data Data object that is being accessed.\n * @param sortHeaderId The name of the column that represents the data.\n */\n this.sortingDataAccessor = (data, sortHeaderId) => {\n const value = data[sortHeaderId];\n if (_isNumberValue(value)) {\n const numberValue = Number(value);\n // Numbers beyond `MAX_SAFE_INTEGER` can't be compared reliably so we\n // leave them as strings. For more info: https://goo.gl/y5vbSg\n return numberValue < MAX_SAFE_INTEGER ? numberValue : value;\n }\n return value;\n };\n /**\n * Gets a sorted copy of the data array based on the state of the MatSort. Called\n * after changes are made to the filtered data or when sort changes are emitted from MatSort.\n * By default, the function retrieves the active sort and its direction and compares data\n * by retrieving data using the sortingDataAccessor. May be overridden for a custom implementation\n * of data ordering.\n * @param data The array of data that should be sorted.\n * @param sort The connected MatSort that holds the current sort state.\n */\n this.sortData = (data, sort) => {\n const active = sort.active;\n const direction = sort.direction;\n if (!active || direction == '') {\n return data;\n }\n return data.sort((a, b) => {\n let valueA = this.sortingDataAccessor(a, active);\n let valueB = this.sortingDataAccessor(b, active);\n // If there are data in the column that can be converted to a number,\n // it must be ensured that the rest of the data\n // is of the same type so as not to order incorrectly.\n const valueAType = typeof valueA;\n const valueBType = typeof valueB;\n if (valueAType !== valueBType) {\n if (valueAType === 'number') {\n valueA += '';\n }\n if (valueBType === 'number') {\n valueB += '';\n }\n }\n // If both valueA and valueB exist (truthy), then compare the two. Otherwise, check if\n // one value exists while the other doesn't. In this case, existing value should come last.\n // This avoids inconsistent results when comparing values to undefined/null.\n // If neither value exists, return 0 (equal).\n let comparatorResult = 0;\n if (valueA != null && valueB != null) {\n // Check if one value is greater than the other; if equal, comparatorResult should remain 0.\n if (valueA > valueB) {\n comparatorResult = 1;\n } else if (valueA < valueB) {\n comparatorResult = -1;\n }\n } else if (valueA != null) {\n comparatorResult = 1;\n } else if (valueB != null) {\n comparatorResult = -1;\n }\n return comparatorResult * (direction == 'asc' ? 1 : -1);\n });\n };\n /**\n * Checks if a data object matches the data source's filter string. By default, each data object\n * is converted to a string of its properties and returns true if the filter has\n * at least one occurrence in that string. By default, the filter string has its whitespace\n * trimmed and the match is case-insensitive. May be overridden for a custom implementation of\n * filter matching.\n * @param data Data object used to check against the filter.\n * @param filter Filter string that has been set on the data source.\n * @returns Whether the filter matches against the data\n */\n this.filterPredicate = (data, filter) => {\n // Transform the data into a lowercase string of all property values.\n const dataStr = Object.keys(data).reduce((currentTerm, key) => {\n // Use an obscure Unicode character to delimit the words in the concatenated string.\n // This avoids matches where the values of two columns combined will match the user's query\n // (e.g. `Flute` and `Stop` will match `Test`). The character is intended to be something\n // that has a very low chance of being typed in by somebody in a text field. This one in\n // particular is \"White up-pointing triangle with dot\" from\n // https://en.wikipedia.org/wiki/List_of_Unicode_characters\n return currentTerm + data[key] + '◬';\n }, '').toLowerCase();\n // Transform the filter by converting it to lowercase and removing whitespace.\n const transformedFilter = filter.trim().toLowerCase();\n return dataStr.indexOf(transformedFilter) != -1;\n };\n this._data = new BehaviorSubject(initialData);\n this._updateChangeSubscription();\n }\n /**\n * Subscribe to changes that should trigger an update to the table's rendered rows. When the\n * changes occur, process the current state of the filter, sort, and pagination along with\n * the provided base data and send it to the table for rendering.\n */\n _updateChangeSubscription() {\n // Sorting and/or pagination should be watched if sort and/or paginator are provided.\n // The events should emit whenever the component emits a change or initializes, or if no\n // component is provided, a stream with just a null event should be provided.\n // The `sortChange` and `pageChange` acts as a signal to the combineLatests below so that the\n // pipeline can progress to the next step. Note that the value from these streams are not used,\n // they purely act as a signal to progress in the pipeline.\n const sortChange = this._sort ? merge(this._sort.sortChange, this._sort.initialized) : of(null);\n const pageChange = this._paginator ? merge(this._paginator.page, this._internalPageChanges, this._paginator.initialized) : of(null);\n const dataStream = this._data;\n // Watch for base data or filter changes to provide a filtered set of data.\n const filteredData = combineLatest([dataStream, this._filter]).pipe(map(([data]) => this._filterData(data)));\n // Watch for filtered data or sort changes to provide an ordered set of data.\n const orderedData = combineLatest([filteredData, sortChange]).pipe(map(([data]) => this._orderData(data)));\n // Watch for ordered data or page changes to provide a paged set of data.\n const paginatedData = combineLatest([orderedData, pageChange]).pipe(map(([data]) => this._pageData(data)));\n // Watched for paged data changes and send the result to the table to render.\n this._renderChangesSubscription?.unsubscribe();\n this._renderChangesSubscription = paginatedData.subscribe(data => this._renderData.next(data));\n }\n /**\n * Returns a filtered data array where each filter object contains the filter string within\n * the result of the filterPredicate function. If no filter is set, returns the data array\n * as provided.\n */\n _filterData(data) {\n // If there is a filter string, filter out data that does not contain it.\n // Each data object is converted to a string using the function defined by filterPredicate.\n // May be overridden for customization.\n this.filteredData = this.filter == null || this.filter === '' ? data : data.filter(obj => this.filterPredicate(obj, this.filter));\n if (this.paginator) {\n this._updatePaginator(this.filteredData.length);\n }\n return this.filteredData;\n }\n /**\n * Returns a sorted copy of the data if MatSort has a sort applied, otherwise just returns the\n * data array as provided. Uses the default data accessor for data lookup, unless a\n * sortDataAccessor function is defined.\n */\n _orderData(data) {\n // If there is no active sort or direction, return the data without trying to sort.\n if (!this.sort) {\n return data;\n }\n return this.sortData(data.slice(), this.sort);\n }\n /**\n * Returns a paged slice of the provided data array according to the provided paginator's page\n * index and length. If there is no paginator provided, returns the data array as provided.\n */\n _pageData(data) {\n if (!this.paginator) {\n return data;\n }\n const startIndex = this.paginator.pageIndex * this.paginator.pageSize;\n return data.slice(startIndex, startIndex + this.paginator.pageSize);\n }\n /**\n * Updates the paginator to reflect the length of the filtered data, and makes sure that the page\n * index does not exceed the paginator's last page. Values are changed in a resolved promise to\n * guard against making property changes within a round of change detection.\n */\n _updatePaginator(filteredDataLength) {\n Promise.resolve().then(() => {\n const paginator = this.paginator;\n if (!paginator) {\n return;\n }\n paginator.length = filteredDataLength;\n // If the page index is set beyond the page, reduce it to the last page.\n if (paginator.pageIndex > 0) {\n const lastPageIndex = Math.ceil(paginator.length / paginator.pageSize) - 1 || 0;\n const newPageIndex = Math.min(paginator.pageIndex, lastPageIndex);\n if (newPageIndex !== paginator.pageIndex) {\n paginator.pageIndex = newPageIndex;\n // Since the paginator only emits after user-generated changes,\n // we need our own stream so we know to should re-render the data.\n this._internalPageChanges.next();\n }\n }\n });\n }\n /**\n * Used by the MatTable. Called when it connects to the data source.\n * @docs-private\n */\n connect() {\n if (!this._renderChangesSubscription) {\n this._updateChangeSubscription();\n }\n return this._renderData;\n }\n /**\n * Used by the MatTable. Called when it disconnects from the data source.\n * @docs-private\n */\n disconnect() {\n this._renderChangesSubscription?.unsubscribe();\n this._renderChangesSubscription = null;\n }\n}\n/**\n * Data source that accepts a client-side data array and includes native support of filtering,\n * sorting (using MatSort), and pagination (using MatPaginator).\n *\n * Allows for sort customization by overriding sortingDataAccessor, which defines how data\n * properties are accessed. Also allows for filter customization by overriding filterPredicate,\n * which defines how row data is converted to a string for filter matching.\n *\n * **Note:** This class is meant to be a simple data source to help you get started. As such\n * it isn't equipped to handle some more advanced cases like robust i18n support or server-side\n * interactions. If your app needs to support more advanced use cases, consider implementing your\n * own `DataSource`.\n */\nclass MatTableDataSource extends _MatTableDataSource {}\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MatCell, MatCellDef, MatColumnDef, MatFooterCell, MatFooterCellDef, MatFooterRow, MatFooterRowDef, MatHeaderCell, MatHeaderCellDef, MatHeaderRow, MatHeaderRowDef, MatNoDataRow, MatRecycleRows, MatRow, MatRowDef, MatTable, MatTableDataSource, MatTableModule, MatTextColumn, _MatTableDataSource };\n","import * as i0 from '@angular/core';\nimport { Directive, Component, ViewEncapsulation, ChangeDetectionStrategy, Input, NgModule } from '@angular/core';\nimport * as i1 from '@angular/cdk/table';\nimport { CdkTable, CDK_TABLE, _COALESCED_STYLE_SCHEDULER, _CoalescedStyleScheduler, STICKY_POSITIONING_LISTENER, CDK_TABLE_TEMPLATE, CdkCellDef, CdkHeaderCellDef, CdkFooterCellDef, CdkColumnDef, CdkHeaderCell, CdkFooterCell, CdkCell, CdkHeaderRowDef, CdkFooterRowDef, CdkRowDef, CdkHeaderRow, CDK_ROW_TEMPLATE, CdkFooterRow, CdkRow, CdkNoDataRow, CdkTextColumn, CdkTableModule } from '@angular/cdk/table';\nimport { _VIEW_REPEATER_STRATEGY, _RecycleViewRepeaterStrategy, _DisposeViewRepeaterStrategy } from '@angular/cdk/collections';\nimport { MatCommonModule } from '@angular/material/core';\nimport { _MatTableDataSource } from '@angular/material/table';\nconst _c0 = [[[\"caption\"]], [[\"colgroup\"], [\"col\"]]];\nconst _c1 = [\"caption\", \"colgroup, col\"];\nfunction MatLegacyTextColumn_th_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"th\", 3);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵstyleProp(\"text-align\", ctx_r0.justify);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r0.headerText, \" \");\n }\n}\nfunction MatLegacyTextColumn_td_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"td\", 4);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const data_r2 = ctx.$implicit;\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵstyleProp(\"text-align\", ctx_r0.justify);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r0.dataAccessor(data_r2, ctx_r0.name), \" \");\n }\n}\nexport { _MatTableDataSource as _MatLegacyTableDataSource } from '@angular/material/table';\n\n/**\n * Enables the recycle view repeater strategy, which reduces rendering latency. Not compatible with\n * tables that animate rows.\n * @deprecated Use `MatRecycleRows` from `@angular/material/table` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyRecycleRows {\n static {\n this.ɵfac = function MatLegacyRecycleRows_Factory(ɵt) {\n return new (ɵt || MatLegacyRecycleRows)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyRecycleRows,\n selectors: [[\"mat-table\", \"recycleRows\", \"\"], [\"table\", \"mat-table\", \"\", \"recycleRows\", \"\"]],\n features: [i0.ɵɵProvidersFeature([{\n provide: _VIEW_REPEATER_STRATEGY,\n useClass: _RecycleViewRepeaterStrategy\n }])]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyRecycleRows, [{\n type: Directive,\n args: [{\n selector: 'mat-table[recycleRows], table[mat-table][recycleRows]',\n providers: [{\n provide: _VIEW_REPEATER_STRATEGY,\n useClass: _RecycleViewRepeaterStrategy\n }]\n }]\n }], null, null);\n})();\n/**\n * Wrapper for the CdkTable with Material design styles.\n * @deprecated Use `MatTable` from `@angular/material/table` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyTable extends CdkTable {\n constructor() {\n super(...arguments);\n /** Overrides the sticky CSS class set by the `CdkTable`. */\n this.stickyCssClass = 'mat-table-sticky';\n /** Overrides the need to add position: sticky on every sticky cell element in `CdkTable`. */\n this.needsPositionStickyOnElement = false;\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatLegacyTable_BaseFactory;\n return function MatLegacyTable_Factory(ɵt) {\n return (ɵMatLegacyTable_BaseFactory || (ɵMatLegacyTable_BaseFactory = i0.ɵɵgetInheritedFactory(MatLegacyTable)))(ɵt || MatLegacyTable);\n };\n })();\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatLegacyTable,\n selectors: [[\"mat-table\"], [\"table\", \"mat-table\", \"\"]],\n hostAttrs: [\"ngSkipHydration\", \"\", 1, \"mat-table\"],\n hostVars: 2,\n hostBindings: function MatLegacyTable_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"mat-table-fixed-layout\", ctx.fixedLayout);\n }\n },\n exportAs: [\"matTable\"],\n features: [i0.ɵɵProvidersFeature([\n // TODO(michaeljamesparsons) Abstract the view repeater strategy to a directive API so this code\n // is only included in the build if used.\n {\n provide: _VIEW_REPEATER_STRATEGY,\n useClass: _DisposeViewRepeaterStrategy\n }, {\n provide: CdkTable,\n useExisting: MatLegacyTable\n }, {\n provide: CDK_TABLE,\n useExisting: MatLegacyTable\n }, {\n provide: _COALESCED_STYLE_SCHEDULER,\n useClass: _CoalescedStyleScheduler\n },\n // Prevent nested tables from seeing this table's StickyPositioningListener.\n {\n provide: STICKY_POSITIONING_LISTENER,\n useValue: null\n }]), i0.ɵɵInheritDefinitionFeature],\n ngContentSelectors: _c1,\n decls: 6,\n vars: 0,\n consts: [[\"headerRowOutlet\", \"\"], [\"rowOutlet\", \"\"], [\"noDataRowOutlet\", \"\"], [\"footerRowOutlet\", \"\"]],\n template: function MatLegacyTable_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c0);\n i0.ɵɵprojection(0);\n i0.ɵɵprojection(1, 1);\n i0.ɵɵelementContainer(2, 0)(3, 1)(4, 2)(5, 3);\n }\n },\n dependencies: [i1.DataRowOutlet, i1.HeaderRowOutlet, i1.FooterRowOutlet, i1.NoDataRowOutlet],\n styles: [\"mat-table{display:block}mat-header-row{min-height:56px}mat-row,mat-footer-row{min-height:48px}mat-row,mat-header-row,mat-footer-row{display:flex;border-width:0;border-bottom-width:1px;border-style:solid;align-items:center;box-sizing:border-box}mat-cell:first-of-type,mat-header-cell:first-of-type,mat-footer-cell:first-of-type{padding-left:24px}[dir=rtl] mat-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:first-of-type:not(:only-of-type){padding-left:0;padding-right:24px}mat-cell:last-of-type,mat-header-cell:last-of-type,mat-footer-cell:last-of-type{padding-right:24px}[dir=rtl] mat-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:last-of-type:not(:only-of-type){padding-right:0;padding-left:24px}mat-cell,mat-header-cell,mat-footer-cell{flex:1;display:flex;align-items:center;overflow:hidden;word-wrap:break-word;min-height:inherit}table.mat-table{border-spacing:0}tr.mat-header-row{height:56px}tr.mat-row,tr.mat-footer-row{height:48px}th.mat-header-cell{text-align:left}[dir=rtl] th.mat-header-cell{text-align:right}th.mat-header-cell,td.mat-cell,td.mat-footer-cell{padding:0;border-bottom-width:1px;border-bottom-style:solid}th.mat-header-cell:first-of-type,td.mat-cell:first-of-type,td.mat-footer-cell:first-of-type{padding-left:24px}[dir=rtl] th.mat-header-cell:first-of-type:not(:only-of-type),[dir=rtl] td.mat-cell:first-of-type:not(:only-of-type),[dir=rtl] td.mat-footer-cell:first-of-type:not(:only-of-type){padding-left:0;padding-right:24px}th.mat-header-cell:last-of-type,td.mat-cell:last-of-type,td.mat-footer-cell:last-of-type{padding-right:24px}[dir=rtl] th.mat-header-cell:last-of-type:not(:only-of-type),[dir=rtl] td.mat-cell:last-of-type:not(:only-of-type),[dir=rtl] td.mat-footer-cell:last-of-type:not(:only-of-type){padding-right:0;padding-left:24px}.mat-table-sticky{position:sticky !important}.mat-table-fixed-layout{table-layout:fixed}\"],\n encapsulation: 2\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyTable, [{\n type: Component,\n args: [{\n selector: 'mat-table, table[mat-table]',\n exportAs: 'matTable',\n template: CDK_TABLE_TEMPLATE,\n host: {\n 'class': 'mat-table',\n '[class.mat-table-fixed-layout]': 'fixedLayout',\n 'ngSkipHydration': ''\n },\n providers: [\n // TODO(michaeljamesparsons) Abstract the view repeater strategy to a directive API so this code\n // is only included in the build if used.\n {\n provide: _VIEW_REPEATER_STRATEGY,\n useClass: _DisposeViewRepeaterStrategy\n }, {\n provide: CdkTable,\n useExisting: MatLegacyTable\n }, {\n provide: CDK_TABLE,\n useExisting: MatLegacyTable\n }, {\n provide: _COALESCED_STYLE_SCHEDULER,\n useClass: _CoalescedStyleScheduler\n },\n // Prevent nested tables from seeing this table's StickyPositioningListener.\n {\n provide: STICKY_POSITIONING_LISTENER,\n useValue: null\n }],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Default,\n styles: [\"mat-table{display:block}mat-header-row{min-height:56px}mat-row,mat-footer-row{min-height:48px}mat-row,mat-header-row,mat-footer-row{display:flex;border-width:0;border-bottom-width:1px;border-style:solid;align-items:center;box-sizing:border-box}mat-cell:first-of-type,mat-header-cell:first-of-type,mat-footer-cell:first-of-type{padding-left:24px}[dir=rtl] mat-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:first-of-type:not(:only-of-type){padding-left:0;padding-right:24px}mat-cell:last-of-type,mat-header-cell:last-of-type,mat-footer-cell:last-of-type{padding-right:24px}[dir=rtl] mat-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:last-of-type:not(:only-of-type){padding-right:0;padding-left:24px}mat-cell,mat-header-cell,mat-footer-cell{flex:1;display:flex;align-items:center;overflow:hidden;word-wrap:break-word;min-height:inherit}table.mat-table{border-spacing:0}tr.mat-header-row{height:56px}tr.mat-row,tr.mat-footer-row{height:48px}th.mat-header-cell{text-align:left}[dir=rtl] th.mat-header-cell{text-align:right}th.mat-header-cell,td.mat-cell,td.mat-footer-cell{padding:0;border-bottom-width:1px;border-bottom-style:solid}th.mat-header-cell:first-of-type,td.mat-cell:first-of-type,td.mat-footer-cell:first-of-type{padding-left:24px}[dir=rtl] th.mat-header-cell:first-of-type:not(:only-of-type),[dir=rtl] td.mat-cell:first-of-type:not(:only-of-type),[dir=rtl] td.mat-footer-cell:first-of-type:not(:only-of-type){padding-left:0;padding-right:24px}th.mat-header-cell:last-of-type,td.mat-cell:last-of-type,td.mat-footer-cell:last-of-type{padding-right:24px}[dir=rtl] th.mat-header-cell:last-of-type:not(:only-of-type),[dir=rtl] td.mat-cell:last-of-type:not(:only-of-type),[dir=rtl] td.mat-footer-cell:last-of-type:not(:only-of-type){padding-right:0;padding-left:24px}.mat-table-sticky{position:sticky !important}.mat-table-fixed-layout{table-layout:fixed}\"]\n }]\n }], null, null);\n})();\n\n/**\n * Cell definition for the mat-table.\n * Captures the template of a column's data row cell as well as cell-specific properties.\n * @deprecated Use `MatCellDef` from `@angular/material/table` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyCellDef extends CdkCellDef {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatLegacyCellDef_BaseFactory;\n return function MatLegacyCellDef_Factory(ɵt) {\n return (ɵMatLegacyCellDef_BaseFactory || (ɵMatLegacyCellDef_BaseFactory = i0.ɵɵgetInheritedFactory(MatLegacyCellDef)))(ɵt || MatLegacyCellDef);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyCellDef,\n selectors: [[\"\", \"matCellDef\", \"\"]],\n features: [i0.ɵɵProvidersFeature([{\n provide: CdkCellDef,\n useExisting: MatLegacyCellDef\n }]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyCellDef, [{\n type: Directive,\n args: [{\n selector: '[matCellDef]',\n providers: [{\n provide: CdkCellDef,\n useExisting: MatLegacyCellDef\n }]\n }]\n }], null, null);\n})();\n/**\n * Header cell definition for the mat-table.\n * Captures the template of a column's header cell and as well as cell-specific properties.\n * @deprecated Use `MatHeaderCellDef` from `@angular/material/table` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyHeaderCellDef extends CdkHeaderCellDef {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatLegacyHeaderCellDef_BaseFactory;\n return function MatLegacyHeaderCellDef_Factory(ɵt) {\n return (ɵMatLegacyHeaderCellDef_BaseFactory || (ɵMatLegacyHeaderCellDef_BaseFactory = i0.ɵɵgetInheritedFactory(MatLegacyHeaderCellDef)))(ɵt || MatLegacyHeaderCellDef);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyHeaderCellDef,\n selectors: [[\"\", \"matHeaderCellDef\", \"\"]],\n features: [i0.ɵɵProvidersFeature([{\n provide: CdkHeaderCellDef,\n useExisting: MatLegacyHeaderCellDef\n }]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyHeaderCellDef, [{\n type: Directive,\n args: [{\n selector: '[matHeaderCellDef]',\n providers: [{\n provide: CdkHeaderCellDef,\n useExisting: MatLegacyHeaderCellDef\n }]\n }]\n }], null, null);\n})();\n/**\n * Footer cell definition for the mat-table.\n * Captures the template of a column's footer cell and as well as cell-specific properties.\n * @deprecated Use `MatFooterCellDef` from `@angular/material/table` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyFooterCellDef extends CdkFooterCellDef {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatLegacyFooterCellDef_BaseFactory;\n return function MatLegacyFooterCellDef_Factory(ɵt) {\n return (ɵMatLegacyFooterCellDef_BaseFactory || (ɵMatLegacyFooterCellDef_BaseFactory = i0.ɵɵgetInheritedFactory(MatLegacyFooterCellDef)))(ɵt || MatLegacyFooterCellDef);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyFooterCellDef,\n selectors: [[\"\", \"matFooterCellDef\", \"\"]],\n features: [i0.ɵɵProvidersFeature([{\n provide: CdkFooterCellDef,\n useExisting: MatLegacyFooterCellDef\n }]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyFooterCellDef, [{\n type: Directive,\n args: [{\n selector: '[matFooterCellDef]',\n providers: [{\n provide: CdkFooterCellDef,\n useExisting: MatLegacyFooterCellDef\n }]\n }]\n }], null, null);\n})();\n/**\n * Column definition for the mat-table.\n * Defines a set of cells available for a table column.\n * @deprecated Use `MatColumnDef` from `@angular/material/table` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyColumnDef extends CdkColumnDef {\n /** Unique name for this column. */\n get name() {\n return this._name;\n }\n set name(name) {\n this._setNameInput(name);\n }\n /**\n * Add \"mat-column-\" prefix in addition to \"cdk-column-\" prefix.\n * In the future, this will only add \"mat-column-\" and columnCssClassName\n * will change from type string[] to string.\n * @docs-private\n */\n _updateColumnCssClassName() {\n super._updateColumnCssClassName();\n this._columnCssClassName.push(`mat-column-${this.cssClassFriendlyName}`);\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatLegacyColumnDef_BaseFactory;\n return function MatLegacyColumnDef_Factory(ɵt) {\n return (ɵMatLegacyColumnDef_BaseFactory || (ɵMatLegacyColumnDef_BaseFactory = i0.ɵɵgetInheritedFactory(MatLegacyColumnDef)))(ɵt || MatLegacyColumnDef);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyColumnDef,\n selectors: [[\"\", \"matColumnDef\", \"\"]],\n inputs: {\n sticky: \"sticky\",\n name: [0, \"matColumnDef\", \"name\"]\n },\n features: [i0.ɵɵProvidersFeature([{\n provide: CdkColumnDef,\n useExisting: MatLegacyColumnDef\n }, {\n provide: 'MAT_SORT_HEADER_COLUMN_DEF',\n useExisting: MatLegacyColumnDef\n }]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyColumnDef, [{\n type: Directive,\n args: [{\n selector: '[matColumnDef]',\n inputs: ['sticky'],\n providers: [{\n provide: CdkColumnDef,\n useExisting: MatLegacyColumnDef\n }, {\n provide: 'MAT_SORT_HEADER_COLUMN_DEF',\n useExisting: MatLegacyColumnDef\n }]\n }]\n }], null, {\n name: [{\n type: Input,\n args: ['matColumnDef']\n }]\n });\n})();\n/**\n * Header cell template container that adds the right classes and role.\n * @deprecated Use `MatHeaderCell` from `@angular/material/table` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyHeaderCell extends CdkHeaderCell {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatLegacyHeaderCell_BaseFactory;\n return function MatLegacyHeaderCell_Factory(ɵt) {\n return (ɵMatLegacyHeaderCell_BaseFactory || (ɵMatLegacyHeaderCell_BaseFactory = i0.ɵɵgetInheritedFactory(MatLegacyHeaderCell)))(ɵt || MatLegacyHeaderCell);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyHeaderCell,\n selectors: [[\"mat-header-cell\"], [\"th\", \"mat-header-cell\", \"\"]],\n hostAttrs: [\"role\", \"columnheader\", 1, \"mat-header-cell\"],\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyHeaderCell, [{\n type: Directive,\n args: [{\n selector: 'mat-header-cell, th[mat-header-cell]',\n host: {\n 'class': 'mat-header-cell',\n 'role': 'columnheader'\n }\n }]\n }], null, null);\n})();\n/**\n * Footer cell template container that adds the right classes and role.\n * @deprecated Use `MatFooterCell` from `@angular/material/table` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyFooterCell extends CdkFooterCell {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatLegacyFooterCell_BaseFactory;\n return function MatLegacyFooterCell_Factory(ɵt) {\n return (ɵMatLegacyFooterCell_BaseFactory || (ɵMatLegacyFooterCell_BaseFactory = i0.ɵɵgetInheritedFactory(MatLegacyFooterCell)))(ɵt || MatLegacyFooterCell);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyFooterCell,\n selectors: [[\"mat-footer-cell\"], [\"td\", \"mat-footer-cell\", \"\"]],\n hostAttrs: [\"role\", \"gridcell\", 1, \"mat-footer-cell\"],\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyFooterCell, [{\n type: Directive,\n args: [{\n selector: 'mat-footer-cell, td[mat-footer-cell]',\n host: {\n 'class': 'mat-footer-cell',\n 'role': 'gridcell'\n }\n }]\n }], null, null);\n})();\n/**\n * Cell template container that adds the right classes and role.\n * @deprecated Use `MatCell` from `@angular/material/table` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyCell extends CdkCell {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatLegacyCell_BaseFactory;\n return function MatLegacyCell_Factory(ɵt) {\n return (ɵMatLegacyCell_BaseFactory || (ɵMatLegacyCell_BaseFactory = i0.ɵɵgetInheritedFactory(MatLegacyCell)))(ɵt || MatLegacyCell);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyCell,\n selectors: [[\"mat-cell\"], [\"td\", \"mat-cell\", \"\"]],\n hostAttrs: [\"role\", \"gridcell\", 1, \"mat-cell\"],\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyCell, [{\n type: Directive,\n args: [{\n selector: 'mat-cell, td[mat-cell]',\n host: {\n 'class': 'mat-cell',\n 'role': 'gridcell'\n }\n }]\n }], null, null);\n})();\n\n/**\n * Header row definition for the mat-table.\n * Captures the header row's template and other header properties such as the columns to display.\n * @deprecated Use `MatHeaderRowDef` from `@angular/material/table` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyHeaderRowDef extends CdkHeaderRowDef {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatLegacyHeaderRowDef_BaseFactory;\n return function MatLegacyHeaderRowDef_Factory(ɵt) {\n return (ɵMatLegacyHeaderRowDef_BaseFactory || (ɵMatLegacyHeaderRowDef_BaseFactory = i0.ɵɵgetInheritedFactory(MatLegacyHeaderRowDef)))(ɵt || MatLegacyHeaderRowDef);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyHeaderRowDef,\n selectors: [[\"\", \"matHeaderRowDef\", \"\"]],\n inputs: {\n columns: [0, \"matHeaderRowDef\", \"columns\"],\n sticky: [0, \"matHeaderRowDefSticky\", \"sticky\"]\n },\n features: [i0.ɵɵProvidersFeature([{\n provide: CdkHeaderRowDef,\n useExisting: MatLegacyHeaderRowDef\n }]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyHeaderRowDef, [{\n type: Directive,\n args: [{\n selector: '[matHeaderRowDef]',\n providers: [{\n provide: CdkHeaderRowDef,\n useExisting: MatLegacyHeaderRowDef\n }],\n inputs: ['columns: matHeaderRowDef', 'sticky: matHeaderRowDefSticky']\n }]\n }], null, null);\n})();\n/**\n * Footer row definition for the mat-table.\n * Captures the footer row's template and other footer properties such as the columns to display.\n * @deprecated Use `MatFooterRowDef` from `@angular/material/table` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyFooterRowDef extends CdkFooterRowDef {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatLegacyFooterRowDef_BaseFactory;\n return function MatLegacyFooterRowDef_Factory(ɵt) {\n return (ɵMatLegacyFooterRowDef_BaseFactory || (ɵMatLegacyFooterRowDef_BaseFactory = i0.ɵɵgetInheritedFactory(MatLegacyFooterRowDef)))(ɵt || MatLegacyFooterRowDef);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyFooterRowDef,\n selectors: [[\"\", \"matFooterRowDef\", \"\"]],\n inputs: {\n columns: [0, \"matFooterRowDef\", \"columns\"],\n sticky: [0, \"matFooterRowDefSticky\", \"sticky\"]\n },\n features: [i0.ɵɵProvidersFeature([{\n provide: CdkFooterRowDef,\n useExisting: MatLegacyFooterRowDef\n }]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyFooterRowDef, [{\n type: Directive,\n args: [{\n selector: '[matFooterRowDef]',\n providers: [{\n provide: CdkFooterRowDef,\n useExisting: MatLegacyFooterRowDef\n }],\n inputs: ['columns: matFooterRowDef', 'sticky: matFooterRowDefSticky']\n }]\n }], null, null);\n})();\n/**\n * Data row definition for the mat-table.\n * Captures the data row's template and other properties such as the columns to display and\n * a when predicate that describes when this row should be used.\n * @deprecated Use `MatRowDef` from `@angular/material/table` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyRowDef extends CdkRowDef {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatLegacyRowDef_BaseFactory;\n return function MatLegacyRowDef_Factory(ɵt) {\n return (ɵMatLegacyRowDef_BaseFactory || (ɵMatLegacyRowDef_BaseFactory = i0.ɵɵgetInheritedFactory(MatLegacyRowDef)))(ɵt || MatLegacyRowDef);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyRowDef,\n selectors: [[\"\", \"matRowDef\", \"\"]],\n inputs: {\n columns: [0, \"matRowDefColumns\", \"columns\"],\n when: [0, \"matRowDefWhen\", \"when\"]\n },\n features: [i0.ɵɵProvidersFeature([{\n provide: CdkRowDef,\n useExisting: MatLegacyRowDef\n }]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyRowDef, [{\n type: Directive,\n args: [{\n selector: '[matRowDef]',\n providers: [{\n provide: CdkRowDef,\n useExisting: MatLegacyRowDef\n }],\n inputs: ['columns: matRowDefColumns', 'when: matRowDefWhen']\n }]\n }], null, null);\n})();\n/**\n * Header template container that contains the cell outlet. Adds the right class and role.\n * @deprecated Use `MatHeaderRow` from `@angular/material/table` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyHeaderRow extends CdkHeaderRow {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatLegacyHeaderRow_BaseFactory;\n return function MatLegacyHeaderRow_Factory(ɵt) {\n return (ɵMatLegacyHeaderRow_BaseFactory || (ɵMatLegacyHeaderRow_BaseFactory = i0.ɵɵgetInheritedFactory(MatLegacyHeaderRow)))(ɵt || MatLegacyHeaderRow);\n };\n })();\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatLegacyHeaderRow,\n selectors: [[\"mat-header-row\"], [\"tr\", \"mat-header-row\", \"\"]],\n hostAttrs: [\"role\", \"row\", 1, \"mat-header-row\"],\n exportAs: [\"matHeaderRow\"],\n features: [i0.ɵɵProvidersFeature([{\n provide: CdkHeaderRow,\n useExisting: MatLegacyHeaderRow\n }]), i0.ɵɵInheritDefinitionFeature],\n decls: 1,\n vars: 0,\n consts: [[\"cdkCellOutlet\", \"\"]],\n template: function MatLegacyHeaderRow_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0, 0);\n }\n },\n dependencies: [i1.CdkCellOutlet],\n encapsulation: 2\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyHeaderRow, [{\n type: Component,\n args: [{\n selector: 'mat-header-row, tr[mat-header-row]',\n template: CDK_ROW_TEMPLATE,\n host: {\n 'class': 'mat-header-row',\n 'role': 'row'\n },\n // See note on CdkTable for explanation on why this uses the default change detection strategy.\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'matHeaderRow',\n providers: [{\n provide: CdkHeaderRow,\n useExisting: MatLegacyHeaderRow\n }]\n }]\n }], null, null);\n})();\n/**\n * Footer template container that contains the cell outlet. Adds the right class and role.\n * @deprecated Use `MatFooterRow` from `@angular/material/table` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyFooterRow extends CdkFooterRow {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatLegacyFooterRow_BaseFactory;\n return function MatLegacyFooterRow_Factory(ɵt) {\n return (ɵMatLegacyFooterRow_BaseFactory || (ɵMatLegacyFooterRow_BaseFactory = i0.ɵɵgetInheritedFactory(MatLegacyFooterRow)))(ɵt || MatLegacyFooterRow);\n };\n })();\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatLegacyFooterRow,\n selectors: [[\"mat-footer-row\"], [\"tr\", \"mat-footer-row\", \"\"]],\n hostAttrs: [\"role\", \"row\", 1, \"mat-footer-row\"],\n exportAs: [\"matFooterRow\"],\n features: [i0.ɵɵProvidersFeature([{\n provide: CdkFooterRow,\n useExisting: MatLegacyFooterRow\n }]), i0.ɵɵInheritDefinitionFeature],\n decls: 1,\n vars: 0,\n consts: [[\"cdkCellOutlet\", \"\"]],\n template: function MatLegacyFooterRow_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0, 0);\n }\n },\n dependencies: [i1.CdkCellOutlet],\n encapsulation: 2\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyFooterRow, [{\n type: Component,\n args: [{\n selector: 'mat-footer-row, tr[mat-footer-row]',\n template: CDK_ROW_TEMPLATE,\n host: {\n 'class': 'mat-footer-row',\n 'role': 'row'\n },\n // See note on CdkTable for explanation on why this uses the default change detection strategy.\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'matFooterRow',\n providers: [{\n provide: CdkFooterRow,\n useExisting: MatLegacyFooterRow\n }]\n }]\n }], null, null);\n})();\n/**\n * Data row template container that contains the cell outlet. Adds the right class and role.\n * @deprecated Use `MatRow` from `@angular/material/table` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyRow extends CdkRow {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatLegacyRow_BaseFactory;\n return function MatLegacyRow_Factory(ɵt) {\n return (ɵMatLegacyRow_BaseFactory || (ɵMatLegacyRow_BaseFactory = i0.ɵɵgetInheritedFactory(MatLegacyRow)))(ɵt || MatLegacyRow);\n };\n })();\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatLegacyRow,\n selectors: [[\"mat-row\"], [\"tr\", \"mat-row\", \"\"]],\n hostAttrs: [\"role\", \"row\", 1, \"mat-row\"],\n exportAs: [\"matRow\"],\n features: [i0.ɵɵProvidersFeature([{\n provide: CdkRow,\n useExisting: MatLegacyRow\n }]), i0.ɵɵInheritDefinitionFeature],\n decls: 1,\n vars: 0,\n consts: [[\"cdkCellOutlet\", \"\"]],\n template: function MatLegacyRow_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0, 0);\n }\n },\n dependencies: [i1.CdkCellOutlet],\n encapsulation: 2\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyRow, [{\n type: Component,\n args: [{\n selector: 'mat-row, tr[mat-row]',\n template: CDK_ROW_TEMPLATE,\n host: {\n 'class': 'mat-row',\n 'role': 'row'\n },\n // See note on CdkTable for explanation on why this uses the default change detection strategy.\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'matRow',\n providers: [{\n provide: CdkRow,\n useExisting: MatLegacyRow\n }]\n }]\n }], null, null);\n})();\n/**\n * Row that can be used to display a message when no data is shown in the table.\n * @deprecated Use `MatNoDataRow` from `@angular/material/table` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyNoDataRow extends CdkNoDataRow {\n constructor() {\n super(...arguments);\n this._contentClassName = 'mat-no-data-row';\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatLegacyNoDataRow_BaseFactory;\n return function MatLegacyNoDataRow_Factory(ɵt) {\n return (ɵMatLegacyNoDataRow_BaseFactory || (ɵMatLegacyNoDataRow_BaseFactory = i0.ɵɵgetInheritedFactory(MatLegacyNoDataRow)))(ɵt || MatLegacyNoDataRow);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyNoDataRow,\n selectors: [[\"ng-template\", \"matNoDataRow\", \"\"]],\n features: [i0.ɵɵProvidersFeature([{\n provide: CdkNoDataRow,\n useExisting: MatLegacyNoDataRow\n }]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyNoDataRow, [{\n type: Directive,\n args: [{\n selector: 'ng-template[matNoDataRow]',\n providers: [{\n provide: CdkNoDataRow,\n useExisting: MatLegacyNoDataRow\n }]\n }]\n }], null, null);\n})();\n\n/**\n * Column that simply shows text content for the header and row cells. Assumes that the table\n * is using the native table implementation (``).\n *\n * By default, the name of this column will be the header text and data property accessor.\n * The header text can be overridden with the `headerText` input. Cell values can be overridden with\n * the `dataAccessor` input. Change the text justification to the start or end using the `justify`\n * input.\n *\n * @deprecated Use `MatTextColumn` from `@angular/material/table` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyTextColumn extends CdkTextColumn {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatLegacyTextColumn_BaseFactory;\n return function MatLegacyTextColumn_Factory(ɵt) {\n return (ɵMatLegacyTextColumn_BaseFactory || (ɵMatLegacyTextColumn_BaseFactory = i0.ɵɵgetInheritedFactory(MatLegacyTextColumn)))(ɵt || MatLegacyTextColumn);\n };\n })();\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatLegacyTextColumn,\n selectors: [[\"mat-text-column\"]],\n hostVars: 1,\n hostBindings: function MatLegacyTextColumn_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"mat-id-collision\", null);\n }\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 3,\n vars: 0,\n consts: [[\"matColumnDef\", \"\"], [\"mat-header-cell\", \"\", 3, \"text-align\", 4, \"matHeaderCellDef\"], [\"mat-cell\", \"\", 3, \"text-align\", 4, \"matCellDef\"], [\"mat-header-cell\", \"\"], [\"mat-cell\", \"\"]],\n template: function MatLegacyTextColumn_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0, 0);\n i0.ɵɵtemplate(1, MatLegacyTextColumn_th_1_Template, 2, 3, \"th\", 1)(2, MatLegacyTextColumn_td_2_Template, 2, 3, \"td\", 2);\n i0.ɵɵelementContainerEnd();\n }\n },\n dependencies: [MatLegacyHeaderCellDef, MatLegacyColumnDef, MatLegacyCellDef, MatLegacyHeaderCell, MatLegacyCell],\n encapsulation: 2\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyTextColumn, [{\n type: Component,\n args: [{\n selector: 'mat-text-column',\n template: `\n \n \n {{headerText}}\n \n \n {{dataAccessor(data, name)}}\n \n \n `,\n encapsulation: ViewEncapsulation.None,\n host: {\n // This binding is used to ensure that the component ID doesn't clash with the `MatTextColumn`.\n '[attr.mat-id-collision]': 'null'\n },\n // Change detection is intentionally not set to OnPush. This component's template will be provided\n // to the table to be inserted into its view. This is problematic when change detection runs since\n // the bindings in this template will be evaluated _after_ the table's view is evaluated, which\n // mean's the template in the table's view will not have the updated value (and in fact will cause\n // an ExpressionChangedAfterItHasBeenCheckedError).\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default\n }]\n }], null, null);\n})();\nconst EXPORTED_DECLARATIONS = [\n// Table\nMatLegacyTable, MatLegacyRecycleRows,\n// Template defs\nMatLegacyHeaderCellDef, MatLegacyHeaderRowDef, MatLegacyColumnDef, MatLegacyCellDef, MatLegacyRowDef, MatLegacyFooterCellDef, MatLegacyFooterRowDef,\n// Cell directives\nMatLegacyHeaderCell, MatLegacyCell, MatLegacyFooterCell,\n// Row directives\nMatLegacyHeaderRow, MatLegacyRow, MatLegacyFooterRow, MatLegacyNoDataRow, MatLegacyTextColumn];\n/**\n * @deprecated Use `MatTableModule` from `@angular/material/table` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyTableModule {\n static {\n this.ɵfac = function MatLegacyTableModule_Factory(ɵt) {\n return new (ɵt || MatLegacyTableModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatLegacyTableModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CdkTableModule, MatCommonModule, MatCommonModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyTableModule, [{\n type: NgModule,\n args: [{\n imports: [CdkTableModule, MatCommonModule],\n exports: [MatCommonModule, EXPORTED_DECLARATIONS],\n declarations: EXPORTED_DECLARATIONS\n }]\n }], null, null);\n})();\n\n/**\n * Data source that accepts a client-side data array and includes native support of filtering,\n * sorting (using MatSort), and pagination (using paginator).\n *\n * Allows for sort customization by overriding sortingDataAccessor, which defines how data\n * properties are accessed. Also allows for filter customization by overriding filterPredicate,\n * which defines how row data is converted to a string for filter matching.\n *\n * **Note:** This class is meant to be a simple data source to help you get started. As such\n * it isn't equipped to handle some more advanced cases like robust i18n support or server-side\n * interactions. If your app needs to support more advanced use cases, consider implementing your\n * own `DataSource`.\n *\n * @deprecated Use `MatTableDataSource` from `@angular/material/table` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyTableDataSource extends _MatTableDataSource {}\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MatLegacyCell, MatLegacyCellDef, MatLegacyColumnDef, MatLegacyFooterCell, MatLegacyFooterCellDef, MatLegacyFooterRow, MatLegacyFooterRowDef, MatLegacyHeaderCell, MatLegacyHeaderCellDef, MatLegacyHeaderRow, MatLegacyHeaderRowDef, MatLegacyNoDataRow, MatLegacyRecycleRows, MatLegacyRow, MatLegacyRowDef, MatLegacyTable, MatLegacyTableDataSource, MatLegacyTableModule, MatLegacyTextColumn };\n","import * as i1$2 from '@angular/common';\nimport { DOCUMENT, CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { forwardRef, Directive, Inject, EventEmitter, Optional, Output, Input, Component, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, InjectionToken, TemplateRef, ContentChild, ContentChildren, QueryList, Attribute, NgModule } from '@angular/core';\nimport * as i5 from '@angular/material/core';\nimport { mixinDisabled, mixinColor, mixinDisableRipple, mixinTabIndex, MAT_RIPPLE_GLOBAL_OPTIONS, MatCommonModule, MatRippleModule } from '@angular/material/core';\nimport * as i2 from '@angular/cdk/portal';\nimport { CdkPortalOutlet, CdkPortal, TemplatePortal, PortalModule } from '@angular/cdk/portal';\nimport * as i5$1 from '@angular/cdk/observers';\nimport { ObserversModule } from '@angular/cdk/observers';\nimport * as i4 from '@angular/cdk/a11y';\nimport { FocusKeyManager, A11yModule } from '@angular/cdk/a11y';\nimport * as i1 from '@angular/cdk/bidi';\nimport { Subscription, Subject, fromEvent, of, merge, EMPTY, Observable, timer, BehaviorSubject } from 'rxjs';\nimport { startWith, distinctUntilChanged, takeUntil, take, switchMap, skip, filter } from 'rxjs/operators';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\nimport { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';\nimport * as i1$1 from '@angular/cdk/scrolling';\nimport * as i3 from '@angular/cdk/platform';\nimport { normalizePassiveListenerOptions } from '@angular/cdk/platform';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\nimport { hasModifierKey, SPACE, ENTER } from '@angular/cdk/keycodes';\n\n/**\n * Animations used by the Material tabs.\n * @docs-private\n */\nconst _c0 = a0 => ({\n animationDuration: a0\n});\nconst _c1 = (a0, a1) => ({\n value: a0,\n params: a1\n});\nfunction MatTabBody_ng_template_2_Template(rf, ctx) {}\nconst _c2 = [\"*\"];\nfunction MatTab_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojection(0);\n }\n}\nconst _c3 = [\"tabListContainer\"];\nconst _c4 = [\"tabList\"];\nconst _c5 = [\"tabListInner\"];\nconst _c6 = [\"nextPaginator\"];\nconst _c7 = [\"previousPaginator\"];\nconst _c8 = [\"tabBodyWrapper\"];\nconst _c9 = [\"tabHeader\"];\nfunction MatTabGroup_div_2_ng_template_6_ng_template_0_Template(rf, ctx) {}\nfunction MatTabGroup_div_2_ng_template_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, MatTabGroup_div_2_ng_template_6_ng_template_0_Template, 0, 0, \"ng-template\", 14);\n }\n if (rf & 2) {\n const tab_r4 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵproperty(\"cdkPortalOutlet\", tab_r4.templateLabel);\n }\n}\nfunction MatTabGroup_div_2_ng_template_7_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtext(0);\n }\n if (rf & 2) {\n const tab_r4 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵtextInterpolate(tab_r4.textLabel);\n }\n}\nfunction MatTabGroup_div_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r2 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 8, 2);\n i0.ɵɵlistener(\"click\", function MatTabGroup_div_2_Template_div_click_0_listener() {\n const ctx_r2 = i0.ɵɵrestoreView(_r2);\n const tab_r4 = ctx_r2.$implicit;\n const i_r5 = ctx_r2.index;\n const ctx_r5 = i0.ɵɵnextContext();\n const tabHeader_r7 = i0.ɵɵreference(1);\n return i0.ɵɵresetView(ctx_r5._handleClick(tab_r4, tabHeader_r7, i_r5));\n })(\"cdkFocusChange\", function MatTabGroup_div_2_Template_div_cdkFocusChange_0_listener($event) {\n const i_r5 = i0.ɵɵrestoreView(_r2).index;\n const ctx_r5 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r5._tabFocusChanged($event, i_r5));\n });\n i0.ɵɵelement(2, \"span\", 9)(3, \"div\", 10);\n i0.ɵɵelementStart(4, \"span\", 11)(5, \"span\", 12);\n i0.ɵɵtemplate(6, MatTabGroup_div_2_ng_template_6_Template, 1, 1, \"ng-template\", 13)(7, MatTabGroup_div_2_ng_template_7_Template, 1, 1, \"ng-template\", null, 3, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n const tab_r4 = ctx.$implicit;\n const i_r5 = ctx.index;\n const tabNode_r8 = i0.ɵɵreference(1);\n const tabTextLabel_r9 = i0.ɵɵreference(8);\n const ctx_r5 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"mdc-tab--active\", ctx_r5.selectedIndex === i_r5);\n i0.ɵɵproperty(\"id\", ctx_r5._getTabLabelId(i_r5))(\"ngClass\", tab_r4.labelClass)(\"disabled\", tab_r4.disabled)(\"fitInkBarToContent\", ctx_r5.fitInkBarToContent);\n i0.ɵɵattribute(\"tabIndex\", ctx_r5._getTabIndex(i_r5))(\"aria-posinset\", i_r5 + 1)(\"aria-setsize\", ctx_r5._tabs.length)(\"aria-controls\", ctx_r5._getTabContentId(i_r5))(\"aria-selected\", ctx_r5.selectedIndex === i_r5)(\"aria-label\", tab_r4.ariaLabel || null)(\"aria-labelledby\", !tab_r4.ariaLabel && tab_r4.ariaLabelledby ? tab_r4.ariaLabelledby : null);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"matRippleTrigger\", tabNode_r8)(\"matRippleDisabled\", tab_r4.disabled || ctx_r5.disableRipple);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngIf\", tab_r4.templateLabel)(\"ngIfElse\", tabTextLabel_r9);\n }\n}\nfunction MatTabGroup_mat_tab_body_5_Template(rf, ctx) {\n if (rf & 1) {\n const _r10 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"mat-tab-body\", 15);\n i0.ɵɵlistener(\"_onCentered\", function MatTabGroup_mat_tab_body_5_Template_mat_tab_body__onCentered_0_listener() {\n i0.ɵɵrestoreView(_r10);\n const ctx_r5 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r5._removeTabBodyWrapperHeight());\n })(\"_onCentering\", function MatTabGroup_mat_tab_body_5_Template_mat_tab_body__onCentering_0_listener($event) {\n i0.ɵɵrestoreView(_r10);\n const ctx_r5 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r5._setTabBodyWrapperHeight($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const tab_r11 = ctx.$implicit;\n const i_r12 = ctx.index;\n const ctx_r5 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"mat-mdc-tab-body-active\", ctx_r5.selectedIndex === i_r12);\n i0.ɵɵproperty(\"id\", ctx_r5._getTabContentId(i_r12))(\"ngClass\", tab_r11.bodyClass)(\"content\", tab_r11.content)(\"position\", tab_r11.position)(\"origin\", tab_r11.origin)(\"animationDuration\", ctx_r5.animationDuration)(\"preserveContent\", ctx_r5.preserveContent);\n i0.ɵɵattribute(\"tabindex\", ctx_r5.contentTabIndex != null && ctx_r5.selectedIndex === i_r12 ? ctx_r5.contentTabIndex : null)(\"aria-labelledby\", ctx_r5._getTabLabelId(i_r12))(\"aria-hidden\", ctx_r5.selectedIndex !== i_r12);\n }\n}\nconst _c10 = [\"mat-tab-nav-bar\", \"\"];\nconst _c11 = [\"mat-tab-link\", \"\"];\nconst matTabsAnimations = {\n /** Animation translates a tab along the X axis. */\n translateTab: trigger('translateTab', [\n // Transitions to `none` instead of 0, because some browsers might blur the content.\n state('center, void, left-origin-center, right-origin-center', style({\n transform: 'none'\n })),\n // If the tab is either on the left or right, we additionally add a `min-height` of 1px\n // in order to ensure that the element has a height before its state changes. This is\n // necessary because Chrome does seem to skip the transition in RTL mode if the element does\n // not have a static height and is not rendered. See related issue: #9465\n state('left', style({\n transform: 'translate3d(-100%, 0, 0)',\n minHeight: '1px',\n // Normally this is redundant since we detach the content from the DOM, but if the user\n // opted into keeping the content in the DOM, we have to hide it so it isn't focusable.\n visibility: 'hidden'\n })), state('right', style({\n transform: 'translate3d(100%, 0, 0)',\n minHeight: '1px',\n visibility: 'hidden'\n })), transition('* => left, * => right, left => center, right => center', animate('{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)')), transition('void => left-origin-center', [style({\n transform: 'translate3d(-100%, 0, 0)',\n visibility: 'hidden'\n }), animate('{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)')]), transition('void => right-origin-center', [style({\n transform: 'translate3d(100%, 0, 0)',\n visibility: 'hidden'\n }), animate('{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)')])])\n};\n\n/**\n * The portal host directive for the contents of the tab.\n * @docs-private\n */\nclass MatTabBodyPortal extends CdkPortalOutlet {\n constructor(componentFactoryResolver, viewContainerRef, _host, _document) {\n super(componentFactoryResolver, viewContainerRef, _document);\n this._host = _host;\n /** Subscription to events for when the tab body begins centering. */\n this._centeringSub = Subscription.EMPTY;\n /** Subscription to events for when the tab body finishes leaving from center position. */\n this._leavingSub = Subscription.EMPTY;\n }\n /** Set initial visibility or set up subscription for changing visibility. */\n ngOnInit() {\n super.ngOnInit();\n this._centeringSub = this._host._beforeCentering.pipe(startWith(this._host._isCenterPosition(this._host._position))).subscribe(isCentering => {\n if (isCentering && !this.hasAttached()) {\n this.attach(this._host._content);\n }\n });\n this._leavingSub = this._host._afterLeavingCenter.subscribe(() => {\n if (!this._host.preserveContent) {\n this.detach();\n }\n });\n }\n /** Clean up centering subscription. */\n ngOnDestroy() {\n super.ngOnDestroy();\n this._centeringSub.unsubscribe();\n this._leavingSub.unsubscribe();\n }\n static {\n this.ɵfac = function MatTabBodyPortal_Factory(ɵt) {\n return new (ɵt || MatTabBodyPortal)(i0.ɵɵdirectiveInject(i0.ComponentFactoryResolver), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(forwardRef(() => MatTabBody)), i0.ɵɵdirectiveInject(DOCUMENT));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatTabBodyPortal,\n selectors: [[\"\", \"matTabBodyHost\", \"\"]],\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatTabBodyPortal, [{\n type: Directive,\n args: [{\n selector: '[matTabBodyHost]'\n }]\n }], function () {\n return [{\n type: i0.ComponentFactoryResolver\n }, {\n type: i0.ViewContainerRef\n }, {\n type: MatTabBody,\n decorators: [{\n type: Inject,\n args: [forwardRef(() => MatTabBody)]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }];\n }, null);\n})();\n/**\n * Base class with all of the `MatTabBody` functionality.\n * @docs-private\n */\nclass _MatTabBodyBase {\n /** The shifted index position of the tab body, where zero represents the active center tab. */\n set position(position) {\n this._positionIndex = position;\n this._computePositionAnimationState();\n }\n constructor(_elementRef, _dir, changeDetectorRef) {\n this._elementRef = _elementRef;\n this._dir = _dir;\n /** Subscription to the directionality change observable. */\n this._dirChangeSubscription = Subscription.EMPTY;\n /** Emits when an animation on the tab is complete. */\n this._translateTabComplete = new Subject();\n /** Event emitted when the tab begins to animate towards the center as the active tab. */\n this._onCentering = new EventEmitter();\n /** Event emitted before the centering of the tab begins. */\n this._beforeCentering = new EventEmitter();\n /** Event emitted before the centering of the tab begins. */\n this._afterLeavingCenter = new EventEmitter();\n /** Event emitted when the tab completes its animation towards the center. */\n this._onCentered = new EventEmitter(true);\n // Note that the default value will always be overwritten by `MatTabBody`, but we need one\n // anyway to prevent the animations module from throwing an error if the body is used on its own.\n /** Duration for the tab's animation. */\n this.animationDuration = '500ms';\n /** Whether the tab's content should be kept in the DOM while it's off-screen. */\n this.preserveContent = false;\n if (_dir) {\n this._dirChangeSubscription = _dir.change.subscribe(dir => {\n this._computePositionAnimationState(dir);\n changeDetectorRef.markForCheck();\n });\n }\n // Ensure that we get unique animation events, because the `.done` callback can get\n // invoked twice in some browsers. See https://github.com/angular/angular/issues/24084.\n this._translateTabComplete.pipe(distinctUntilChanged((x, y) => {\n return x.fromState === y.fromState && x.toState === y.toState;\n })).subscribe(event => {\n // If the transition to the center is complete, emit an event.\n if (this._isCenterPosition(event.toState) && this._isCenterPosition(this._position)) {\n this._onCentered.emit();\n }\n if (this._isCenterPosition(event.fromState) && !this._isCenterPosition(this._position)) {\n this._afterLeavingCenter.emit();\n }\n });\n }\n /**\n * After initialized, check if the content is centered and has an origin. If so, set the\n * special position states that transition the tab from the left or right before centering.\n */\n ngOnInit() {\n if (this._position == 'center' && this.origin != null) {\n this._position = this._computePositionFromOrigin(this.origin);\n }\n }\n ngOnDestroy() {\n this._dirChangeSubscription.unsubscribe();\n this._translateTabComplete.complete();\n }\n _onTranslateTabStarted(event) {\n const isCentering = this._isCenterPosition(event.toState);\n this._beforeCentering.emit(isCentering);\n if (isCentering) {\n this._onCentering.emit(this._elementRef.nativeElement.clientHeight);\n }\n }\n /** The text direction of the containing app. */\n _getLayoutDirection() {\n return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';\n }\n /** Whether the provided position state is considered center, regardless of origin. */\n _isCenterPosition(position) {\n return position == 'center' || position == 'left-origin-center' || position == 'right-origin-center';\n }\n /** Computes the position state that will be used for the tab-body animation trigger. */\n _computePositionAnimationState(dir = this._getLayoutDirection()) {\n if (this._positionIndex < 0) {\n this._position = dir == 'ltr' ? 'left' : 'right';\n } else if (this._positionIndex > 0) {\n this._position = dir == 'ltr' ? 'right' : 'left';\n } else {\n this._position = 'center';\n }\n }\n /**\n * Computes the position state based on the specified origin position. This is used if the\n * tab is becoming visible immediately after creation.\n */\n _computePositionFromOrigin(origin) {\n const dir = this._getLayoutDirection();\n if (dir == 'ltr' && origin <= 0 || dir == 'rtl' && origin > 0) {\n return 'left-origin-center';\n }\n return 'right-origin-center';\n }\n static {\n this.ɵfac = function _MatTabBodyBase_Factory(ɵt) {\n return new (ɵt || _MatTabBodyBase)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Directionality, 8), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: _MatTabBodyBase,\n inputs: {\n _content: [0, \"content\", \"_content\"],\n origin: \"origin\",\n animationDuration: \"animationDuration\",\n preserveContent: \"preserveContent\",\n position: \"position\"\n },\n outputs: {\n _onCentering: \"_onCentering\",\n _beforeCentering: \"_beforeCentering\",\n _afterLeavingCenter: \"_afterLeavingCenter\",\n _onCentered: \"_onCentered\"\n }\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(_MatTabBodyBase, [{\n type: Directive\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i1.Directionality,\n decorators: [{\n type: Optional\n }]\n }, {\n type: i0.ChangeDetectorRef\n }];\n }, {\n _onCentering: [{\n type: Output\n }],\n _beforeCentering: [{\n type: Output\n }],\n _afterLeavingCenter: [{\n type: Output\n }],\n _onCentered: [{\n type: Output\n }],\n _content: [{\n type: Input,\n args: ['content']\n }],\n origin: [{\n type: Input\n }],\n animationDuration: [{\n type: Input\n }],\n preserveContent: [{\n type: Input\n }],\n position: [{\n type: Input\n }]\n });\n})();\n/**\n * Wrapper for the contents of a tab.\n * @docs-private\n */\nclass MatTabBody extends _MatTabBodyBase {\n constructor(elementRef, dir, changeDetectorRef) {\n super(elementRef, dir, changeDetectorRef);\n }\n static {\n this.ɵfac = function MatTabBody_Factory(ɵt) {\n return new (ɵt || MatTabBody)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Directionality, 8), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatTabBody,\n selectors: [[\"mat-tab-body\"]],\n viewQuery: function MatTabBody_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(CdkPortalOutlet, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._portalHost = _t.first);\n }\n },\n hostAttrs: [1, \"mat-mdc-tab-body\"],\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 3,\n vars: 6,\n consts: [[\"content\", \"\"], [\"cdkScrollable\", \"\", 1, \"mat-mdc-tab-body-content\"], [\"matTabBodyHost\", \"\"]],\n template: function MatTabBody_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 1, 0);\n i0.ɵɵlistener(\"@translateTab.start\", function MatTabBody_Template_div_animation_translateTab_start_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._onTranslateTabStarted($event));\n })(\"@translateTab.done\", function MatTabBody_Template_div_animation_translateTab_done_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._translateTabComplete.next($event));\n });\n i0.ɵɵtemplate(2, MatTabBody_ng_template_2_Template, 0, 0, \"ng-template\", 2);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"@translateTab\", i0.ɵɵpureFunction2(3, _c1, ctx._position, i0.ɵɵpureFunction1(1, _c0, ctx.animationDuration)));\n }\n },\n dependencies: [MatTabBodyPortal],\n styles: [\".mat-mdc-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;outline:0;flex-basis:100%}.mat-mdc-tab-body.mat-mdc-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-mdc-tab-group.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body.mat-mdc-tab-body-active{overflow-y:hidden}.mat-mdc-tab-body-content{height:100%;overflow:auto}.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body-content{overflow:hidden}.mat-mdc-tab-body-content[style*=\\\"visibility: hidden\\\"]{display:none}\"],\n encapsulation: 2,\n data: {\n animation: [matTabsAnimations.translateTab]\n }\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatTabBody, [{\n type: Component,\n args: [{\n selector: 'mat-tab-body',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Default,\n animations: [matTabsAnimations.translateTab],\n host: {\n 'class': 'mat-mdc-tab-body'\n },\n template: \"\\n \\n\\n\",\n styles: [\".mat-mdc-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;outline:0;flex-basis:100%}.mat-mdc-tab-body.mat-mdc-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-mdc-tab-group.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body.mat-mdc-tab-body-active{overflow-y:hidden}.mat-mdc-tab-body-content{height:100%;overflow:auto}.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body-content{overflow:hidden}.mat-mdc-tab-body-content[style*=\\\"visibility: hidden\\\"]{display:none}\"]\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i1.Directionality,\n decorators: [{\n type: Optional\n }]\n }, {\n type: i0.ChangeDetectorRef\n }];\n }, {\n _portalHost: [{\n type: ViewChild,\n args: [CdkPortalOutlet]\n }]\n });\n})();\n\n/**\n * Injection token that can be used to reference instances of `MatTabContent`. It serves as\n * alternative token to the actual `MatTabContent` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nconst MAT_TAB_CONTENT = new InjectionToken('MatTabContent');\n/** Decorates the `ng-template` tags and reads out the template from it. */\nclass MatTabContent {\n constructor( /** Content for the tab. */template) {\n this.template = template;\n }\n static {\n this.ɵfac = function MatTabContent_Factory(ɵt) {\n return new (ɵt || MatTabContent)(i0.ɵɵdirectiveInject(i0.TemplateRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatTabContent,\n selectors: [[\"\", \"matTabContent\", \"\"]],\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_TAB_CONTENT,\n useExisting: MatTabContent\n }])]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatTabContent, [{\n type: Directive,\n args: [{\n selector: '[matTabContent]',\n providers: [{\n provide: MAT_TAB_CONTENT,\n useExisting: MatTabContent\n }]\n }]\n }], function () {\n return [{\n type: i0.TemplateRef\n }];\n }, null);\n})();\n\n/**\n * Injection token that can be used to reference instances of `MatTabLabel`. It serves as\n * alternative token to the actual `MatTabLabel` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nconst MAT_TAB_LABEL = new InjectionToken('MatTabLabel');\n/**\n * Used to provide a tab label to a tab without causing a circular dependency.\n * @docs-private\n */\nconst MAT_TAB = new InjectionToken('MAT_TAB');\n/** Used to flag tab labels for use with the portal directive */\nclass MatTabLabel extends CdkPortal {\n constructor(templateRef, viewContainerRef, _closestTab) {\n super(templateRef, viewContainerRef);\n this._closestTab = _closestTab;\n }\n static {\n this.ɵfac = function MatTabLabel_Factory(ɵt) {\n return new (ɵt || MatTabLabel)(i0.ɵɵdirectiveInject(i0.TemplateRef), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(MAT_TAB, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatTabLabel,\n selectors: [[\"\", \"mat-tab-label\", \"\"], [\"\", \"matTabLabel\", \"\"]],\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_TAB_LABEL,\n useExisting: MatTabLabel\n }]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatTabLabel, [{\n type: Directive,\n args: [{\n selector: '[mat-tab-label], [matTabLabel]',\n providers: [{\n provide: MAT_TAB_LABEL,\n useExisting: MatTabLabel\n }]\n }]\n }], function () {\n return [{\n type: i0.TemplateRef\n }, {\n type: i0.ViewContainerRef\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [MAT_TAB]\n }, {\n type: Optional\n }]\n }];\n }, null);\n})();\n\n/** Class that is applied when a tab indicator is active. */\nconst ACTIVE_CLASS = 'mdc-tab-indicator--active';\n/** Class that is applied when the tab indicator should not transition. */\nconst NO_TRANSITION_CLASS = 'mdc-tab-indicator--no-transition';\n/**\n * Abstraction around the MDC tab indicator that acts as the tab header's ink bar.\n * @docs-private\n */\nclass MatInkBar {\n constructor(_items) {\n this._items = _items;\n }\n /** Hides the ink bar. */\n hide() {\n this._items.forEach(item => item.deactivateInkBar());\n }\n /** Aligns the ink bar to a DOM node. */\n alignToElement(element) {\n const correspondingItem = this._items.find(item => item.elementRef.nativeElement === element);\n const currentItem = this._currentItem;\n if (correspondingItem === currentItem) {\n return;\n }\n currentItem?.deactivateInkBar();\n if (correspondingItem) {\n const clientRect = currentItem?.elementRef.nativeElement.getBoundingClientRect?.();\n // The ink bar won't animate unless we give it the `ClientRect` of the previous item.\n correspondingItem.activateInkBar(clientRect);\n this._currentItem = correspondingItem;\n }\n }\n}\n/**\n * Mixin that can be used to apply the `MatInkBarItem` behavior to a class.\n * Base on MDC's `MDCSlidingTabIndicatorFoundation`:\n * https://github.com/material-components/material-components-web/blob/c0a11ef0d000a098fd0c372be8f12d6a99302855/packages/mdc-tab-indicator/sliding-foundation.ts\n * @docs-private\n */\nfunction mixinInkBarItem(base) {\n return class extends base {\n constructor(...args) {\n super(...args);\n this._fitToContent = false;\n }\n /** Whether the ink bar should fit to the entire tab or just its content. */\n get fitInkBarToContent() {\n return this._fitToContent;\n }\n set fitInkBarToContent(v) {\n const newValue = coerceBooleanProperty(v);\n if (this._fitToContent !== newValue) {\n this._fitToContent = newValue;\n if (this._inkBarElement) {\n this._appendInkBarElement();\n }\n }\n }\n /** Aligns the ink bar to the current item. */\n activateInkBar(previousIndicatorClientRect) {\n const element = this.elementRef.nativeElement;\n // Early exit if no indicator is present to handle cases where an indicator\n // may be activated without a prior indicator state\n if (!previousIndicatorClientRect || !element.getBoundingClientRect || !this._inkBarContentElement) {\n element.classList.add(ACTIVE_CLASS);\n return;\n }\n // This animation uses the FLIP approach. You can read more about it at the link below:\n // https://aerotwist.com/blog/flip-your-animations/\n // Calculate the dimensions based on the dimensions of the previous indicator\n const currentClientRect = element.getBoundingClientRect();\n const widthDelta = previousIndicatorClientRect.width / currentClientRect.width;\n const xPosition = previousIndicatorClientRect.left - currentClientRect.left;\n element.classList.add(NO_TRANSITION_CLASS);\n this._inkBarContentElement.style.setProperty('transform', `translateX(${xPosition}px) scaleX(${widthDelta})`);\n // Force repaint before updating classes and transform to ensure the transform properly takes effect\n element.getBoundingClientRect();\n element.classList.remove(NO_TRANSITION_CLASS);\n element.classList.add(ACTIVE_CLASS);\n this._inkBarContentElement.style.setProperty('transform', '');\n }\n /** Removes the ink bar from the current item. */\n deactivateInkBar() {\n this.elementRef.nativeElement.classList.remove(ACTIVE_CLASS);\n }\n /** Initializes the foundation. */\n ngOnInit() {\n this._createInkBarElement();\n }\n /** Destroys the foundation. */\n ngOnDestroy() {\n this._inkBarElement?.remove();\n this._inkBarElement = this._inkBarContentElement = null;\n }\n /** Creates and appends the ink bar element. */\n _createInkBarElement() {\n const documentNode = this.elementRef.nativeElement.ownerDocument || document;\n this._inkBarElement = documentNode.createElement('span');\n this._inkBarContentElement = documentNode.createElement('span');\n this._inkBarElement.className = 'mdc-tab-indicator';\n this._inkBarContentElement.className = 'mdc-tab-indicator__content mdc-tab-indicator__content--underline';\n this._inkBarElement.appendChild(this._inkBarContentElement);\n this._appendInkBarElement();\n }\n /**\n * Appends the ink bar to the tab host element or content, depending on whether\n * the ink bar should fit to content.\n */\n _appendInkBarElement() {\n if (!this._inkBarElement && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('Ink bar element has not been created and cannot be appended');\n }\n const parentElement = this._fitToContent ? this.elementRef.nativeElement.querySelector('.mdc-tab__content') : this.elementRef.nativeElement;\n if (!parentElement && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('Missing element to host the ink bar');\n }\n parentElement.appendChild(this._inkBarElement);\n }\n };\n}\n/**\n * The default positioner function for the MatInkBar.\n * @docs-private\n */\nfunction _MAT_INK_BAR_POSITIONER_FACTORY() {\n const method = element => ({\n left: element ? (element.offsetLeft || 0) + 'px' : '0',\n width: element ? (element.offsetWidth || 0) + 'px' : '0'\n });\n return method;\n}\n/** Injection token for the MatInkBar's Positioner. */\nconst _MAT_INK_BAR_POSITIONER = new InjectionToken('MatInkBarPositioner', {\n providedIn: 'root',\n factory: _MAT_INK_BAR_POSITIONER_FACTORY\n});\n\n// Boilerplate for applying mixins to MatTabLabelWrapper.\n/** @docs-private */\nconst _MatTabLabelWrapperMixinBase = mixinDisabled(class {});\n/**\n * Used in the `mat-tab-group` view to display tab labels.\n * @docs-private\n */\nclass _MatTabLabelWrapperBase extends _MatTabLabelWrapperMixinBase {\n constructor(elementRef) {\n super();\n this.elementRef = elementRef;\n }\n /** Sets focus on the wrapper element */\n focus() {\n this.elementRef.nativeElement.focus();\n }\n getOffsetLeft() {\n return this.elementRef.nativeElement.offsetLeft;\n }\n getOffsetWidth() {\n return this.elementRef.nativeElement.offsetWidth;\n }\n static {\n this.ɵfac = function _MatTabLabelWrapperBase_Factory(ɵt) {\n return new (ɵt || _MatTabLabelWrapperBase)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: _MatTabLabelWrapperBase,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(_MatTabLabelWrapperBase, [{\n type: Directive\n }], function () {\n return [{\n type: i0.ElementRef\n }];\n }, null);\n})();\nconst _MatTabLabelWrapperBaseWithInkBarItem = mixinInkBarItem(_MatTabLabelWrapperBase);\n/**\n * Used in the `mat-tab-group` view to display tab labels.\n * @docs-private\n */\nclass MatTabLabelWrapper extends _MatTabLabelWrapperBaseWithInkBarItem {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatTabLabelWrapper_BaseFactory;\n return function MatTabLabelWrapper_Factory(ɵt) {\n return (ɵMatTabLabelWrapper_BaseFactory || (ɵMatTabLabelWrapper_BaseFactory = i0.ɵɵgetInheritedFactory(MatTabLabelWrapper)))(ɵt || MatTabLabelWrapper);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatTabLabelWrapper,\n selectors: [[\"\", \"matTabLabelWrapper\", \"\"]],\n hostVars: 3,\n hostBindings: function MatTabLabelWrapper_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-disabled\", !!ctx.disabled);\n i0.ɵɵclassProp(\"mat-mdc-tab-disabled\", ctx.disabled);\n }\n },\n inputs: {\n disabled: \"disabled\",\n fitInkBarToContent: \"fitInkBarToContent\"\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatTabLabelWrapper, [{\n type: Directive,\n args: [{\n selector: '[matTabLabelWrapper]',\n inputs: ['disabled', 'fitInkBarToContent'],\n host: {\n '[class.mat-mdc-tab-disabled]': 'disabled',\n '[attr.aria-disabled]': '!!disabled'\n }\n }]\n }], null, null);\n})();\n\n// Boilerplate for applying mixins to MatTab.\n/** @docs-private */\nconst _MatTabMixinBase = mixinDisabled(class {});\n/**\n * Used to provide a tab group to a tab without causing a circular dependency.\n * @docs-private\n */\nconst MAT_TAB_GROUP = new InjectionToken('MAT_TAB_GROUP');\n/** @docs-private */\nclass _MatTabBase extends _MatTabMixinBase {\n /** @docs-private */\n get content() {\n return this._contentPortal;\n }\n constructor(_viewContainerRef, _closestTabGroup) {\n super();\n this._viewContainerRef = _viewContainerRef;\n this._closestTabGroup = _closestTabGroup;\n /** Plain text label for the tab, used when there is no template label. */\n this.textLabel = '';\n /** Portal that will be the hosted content of the tab */\n this._contentPortal = null;\n /** Emits whenever the internal state of the tab changes. */\n this._stateChanges = new Subject();\n /**\n * The relatively indexed position where 0 represents the center, negative is left, and positive\n * represents the right.\n */\n this.position = null;\n /**\n * The initial relatively index origin of the tab if it was created and selected after there\n * was already a selected tab. Provides context of what position the tab should originate from.\n */\n this.origin = null;\n /**\n * Whether the tab is currently active.\n */\n this.isActive = false;\n }\n ngOnChanges(changes) {\n if (changes.hasOwnProperty('textLabel') || changes.hasOwnProperty('disabled')) {\n this._stateChanges.next();\n }\n }\n ngOnDestroy() {\n this._stateChanges.complete();\n }\n ngOnInit() {\n this._contentPortal = new TemplatePortal(this._explicitContent || this._implicitContent, this._viewContainerRef);\n }\n /**\n * This has been extracted to a util because of TS 4 and VE.\n * View Engine doesn't support property rename inheritance.\n * TS 4.0 doesn't allow properties to override accessors or vice-versa.\n * @docs-private\n */\n _setTemplateLabelInput(value) {\n // Only update the label if the query managed to find one. This works around an issue where a\n // user may have manually set `templateLabel` during creation mode, which would then get\n // clobbered by `undefined` when the query resolves. Also note that we check that the closest\n // tab matches the current one so that we don't pick up labels from nested tabs.\n if (value && value._closestTab === this) {\n this._templateLabel = value;\n }\n }\n static {\n this.ɵfac = function _MatTabBase_Factory(ɵt) {\n return new (ɵt || _MatTabBase)(i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(MAT_TAB_GROUP, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: _MatTabBase,\n viewQuery: function _MatTabBase_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(TemplateRef, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._implicitContent = _t.first);\n }\n },\n inputs: {\n textLabel: [0, \"label\", \"textLabel\"],\n ariaLabel: [0, \"aria-label\", \"ariaLabel\"],\n ariaLabelledby: [0, \"aria-labelledby\", \"ariaLabelledby\"],\n labelClass: \"labelClass\",\n bodyClass: \"bodyClass\"\n },\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(_MatTabBase, [{\n type: Directive\n }], function () {\n return [{\n type: i0.ViewContainerRef\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [MAT_TAB_GROUP]\n }, {\n type: Optional\n }]\n }];\n }, {\n _implicitContent: [{\n type: ViewChild,\n args: [TemplateRef, {\n static: true\n }]\n }],\n textLabel: [{\n type: Input,\n args: ['label']\n }],\n ariaLabel: [{\n type: Input,\n args: ['aria-label']\n }],\n ariaLabelledby: [{\n type: Input,\n args: ['aria-labelledby']\n }],\n labelClass: [{\n type: Input\n }],\n bodyClass: [{\n type: Input\n }]\n });\n})();\nclass MatTab extends _MatTabBase {\n constructor() {\n super(...arguments);\n /**\n * Template provided in the tab content that will be used if present, used to enable lazy-loading\n */\n this._explicitContent = undefined;\n }\n /** Content for the tab label given by ``. */\n get templateLabel() {\n return this._templateLabel;\n }\n set templateLabel(value) {\n this._setTemplateLabelInput(value);\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatTab_BaseFactory;\n return function MatTab_Factory(ɵt) {\n return (ɵMatTab_BaseFactory || (ɵMatTab_BaseFactory = i0.ɵɵgetInheritedFactory(MatTab)))(ɵt || MatTab);\n };\n })();\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatTab,\n selectors: [[\"mat-tab\"]],\n contentQueries: function MatTab_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MatTabContent, 7, TemplateRef);\n i0.ɵɵcontentQuery(dirIndex, MatTabLabel, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._explicitContent = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templateLabel = _t.first);\n }\n },\n inputs: {\n disabled: \"disabled\"\n },\n exportAs: [\"matTab\"],\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_TAB,\n useExisting: MatTab\n }]), i0.ɵɵInheritDefinitionFeature],\n ngContentSelectors: _c2,\n decls: 1,\n vars: 0,\n template: function MatTab_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵtemplate(0, MatTab_ng_template_0_Template, 1, 0, \"ng-template\");\n }\n },\n encapsulation: 2\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatTab, [{\n type: Component,\n args: [{\n selector: 'mat-tab',\n inputs: ['disabled'],\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'matTab',\n providers: [{\n provide: MAT_TAB,\n useExisting: MatTab\n }],\n template: \"\\n\\n\"\n }]\n }], null, {\n _explicitContent: [{\n type: ContentChild,\n args: [MatTabContent, {\n read: TemplateRef,\n static: true\n }]\n }],\n templateLabel: [{\n type: ContentChild,\n args: [MatTabLabel]\n }]\n });\n})();\n\n/** Config used to bind passive event listeners */\nconst passiveEventListenerOptions = normalizePassiveListenerOptions({\n passive: true\n});\n/**\n * Amount of milliseconds to wait before starting to scroll the header automatically.\n * Set a little conservatively in order to handle fake events dispatched on touch devices.\n */\nconst HEADER_SCROLL_DELAY = 650;\n/**\n * Interval in milliseconds at which to scroll the header\n * while the user is holding their pointer.\n */\nconst HEADER_SCROLL_INTERVAL = 100;\n/**\n * Base class for a tab header that supported pagination.\n * @docs-private\n */\nclass MatPaginatedTabHeader {\n /**\n * Whether pagination should be disabled. This can be used to avoid unnecessary\n * layout recalculations if it's known that pagination won't be required.\n */\n get disablePagination() {\n return this._disablePagination;\n }\n set disablePagination(value) {\n this._disablePagination = coerceBooleanProperty(value);\n }\n /** The index of the active tab. */\n get selectedIndex() {\n return this._selectedIndex;\n }\n set selectedIndex(value) {\n value = coerceNumberProperty(value);\n if (this._selectedIndex != value) {\n this._selectedIndexChanged = true;\n this._selectedIndex = value;\n if (this._keyManager) {\n this._keyManager.updateActiveItem(value);\n }\n }\n }\n constructor(_elementRef, _changeDetectorRef, _viewportRuler, _dir, _ngZone, _platform, _animationMode) {\n this._elementRef = _elementRef;\n this._changeDetectorRef = _changeDetectorRef;\n this._viewportRuler = _viewportRuler;\n this._dir = _dir;\n this._ngZone = _ngZone;\n this._platform = _platform;\n this._animationMode = _animationMode;\n /** The distance in pixels that the tab labels should be translated to the left. */\n this._scrollDistance = 0;\n /** Whether the header should scroll to the selected index after the view has been checked. */\n this._selectedIndexChanged = false;\n /** Emits when the component is destroyed. */\n this._destroyed = new Subject();\n /** Whether the controls for pagination should be displayed */\n this._showPaginationControls = false;\n /** Whether the tab list can be scrolled more towards the end of the tab label list. */\n this._disableScrollAfter = true;\n /** Whether the tab list can be scrolled more towards the beginning of the tab label list. */\n this._disableScrollBefore = true;\n /** Stream that will stop the automated scrolling. */\n this._stopScrolling = new Subject();\n this._disablePagination = false;\n this._selectedIndex = 0;\n /** Event emitted when the option is selected. */\n this.selectFocusedIndex = new EventEmitter();\n /** Event emitted when a label is focused. */\n this.indexFocused = new EventEmitter();\n // Bind the `mouseleave` event on the outside since it doesn't change anything in the view.\n _ngZone.runOutsideAngular(() => {\n fromEvent(_elementRef.nativeElement, 'mouseleave').pipe(takeUntil(this._destroyed)).subscribe(() => {\n this._stopInterval();\n });\n });\n }\n ngAfterViewInit() {\n // We need to handle these events manually, because we want to bind passive event listeners.\n fromEvent(this._previousPaginator.nativeElement, 'touchstart', passiveEventListenerOptions).pipe(takeUntil(this._destroyed)).subscribe(() => {\n this._handlePaginatorPress('before');\n });\n fromEvent(this._nextPaginator.nativeElement, 'touchstart', passiveEventListenerOptions).pipe(takeUntil(this._destroyed)).subscribe(() => {\n this._handlePaginatorPress('after');\n });\n }\n ngAfterContentInit() {\n const dirChange = this._dir ? this._dir.change : of('ltr');\n const resize = this._viewportRuler.change(150);\n const realign = () => {\n this.updatePagination();\n this._alignInkBarToSelectedTab();\n };\n this._keyManager = new FocusKeyManager(this._items).withHorizontalOrientation(this._getLayoutDirection()).withHomeAndEnd().withWrap()\n // Allow focus to land on disabled tabs, as per https://w3c.github.io/aria-practices/#kbd_disabled_controls\n .skipPredicate(() => false);\n this._keyManager.updateActiveItem(this._selectedIndex);\n // Defer the first call in order to allow for slower browsers to lay out the elements.\n // This helps in cases where the user lands directly on a page with paginated tabs.\n // Note that we use `onStable` instead of `requestAnimationFrame`, because the latter\n // can hold up tests that are in a background tab.\n this._ngZone.onStable.pipe(take(1)).subscribe(realign);\n // On dir change or window resize, realign the ink bar and update the orientation of\n // the key manager if the direction has changed.\n merge(dirChange, resize, this._items.changes, this._itemsResized()).pipe(takeUntil(this._destroyed)).subscribe(() => {\n // We need to defer this to give the browser some time to recalculate\n // the element dimensions. The call has to be wrapped in `NgZone.run`,\n // because the viewport change handler runs outside of Angular.\n this._ngZone.run(() => {\n Promise.resolve().then(() => {\n // Clamp the scroll distance, because it can change with the number of tabs.\n this._scrollDistance = Math.max(0, Math.min(this._getMaxScrollDistance(), this._scrollDistance));\n realign();\n });\n });\n this._keyManager.withHorizontalOrientation(this._getLayoutDirection());\n });\n // If there is a change in the focus key manager we need to emit the `indexFocused`\n // event in order to provide a public event that notifies about focus changes. Also we realign\n // the tabs container by scrolling the new focused tab into the visible section.\n this._keyManager.change.subscribe(newFocusIndex => {\n this.indexFocused.emit(newFocusIndex);\n this._setTabFocus(newFocusIndex);\n });\n }\n /** Sends any changes that could affect the layout of the items. */\n _itemsResized() {\n if (typeof ResizeObserver !== 'function') {\n return EMPTY;\n }\n return this._items.changes.pipe(startWith(this._items), switchMap(tabItems => new Observable(observer => this._ngZone.runOutsideAngular(() => {\n const resizeObserver = new ResizeObserver(entries => observer.next(entries));\n tabItems.forEach(item => resizeObserver.observe(item.elementRef.nativeElement));\n return () => {\n resizeObserver.disconnect();\n };\n }))),\n // Skip the first emit since the resize observer emits when an item\n // is observed for new items when the tab is already inserted\n skip(1),\n // Skip emissions where all the elements are invisible since we don't want\n // the header to try and re-render with invalid measurements. See #25574.\n filter(entries => entries.some(e => e.contentRect.width > 0 && e.contentRect.height > 0)));\n }\n ngAfterContentChecked() {\n // If the number of tab labels have changed, check if scrolling should be enabled\n if (this._tabLabelCount != this._items.length) {\n this.updatePagination();\n this._tabLabelCount = this._items.length;\n this._changeDetectorRef.markForCheck();\n }\n // If the selected index has changed, scroll to the label and check if the scrolling controls\n // should be disabled.\n if (this._selectedIndexChanged) {\n this._scrollToLabel(this._selectedIndex);\n this._checkScrollingControls();\n this._alignInkBarToSelectedTab();\n this._selectedIndexChanged = false;\n this._changeDetectorRef.markForCheck();\n }\n // If the scroll distance has been changed (tab selected, focused, scroll controls activated),\n // then translate the header to reflect this.\n if (this._scrollDistanceChanged) {\n this._updateTabScrollPosition();\n this._scrollDistanceChanged = false;\n this._changeDetectorRef.markForCheck();\n }\n }\n ngOnDestroy() {\n this._keyManager?.destroy();\n this._destroyed.next();\n this._destroyed.complete();\n this._stopScrolling.complete();\n }\n /** Handles keyboard events on the header. */\n _handleKeydown(event) {\n // We don't handle any key bindings with a modifier key.\n if (hasModifierKey(event)) {\n return;\n }\n switch (event.keyCode) {\n case ENTER:\n case SPACE:\n if (this.focusIndex !== this.selectedIndex) {\n const item = this._items.get(this.focusIndex);\n if (item && !item.disabled) {\n this.selectFocusedIndex.emit(this.focusIndex);\n this._itemSelected(event);\n }\n }\n break;\n default:\n this._keyManager.onKeydown(event);\n }\n }\n /**\n * Callback for when the MutationObserver detects that the content has changed.\n */\n _onContentChanges() {\n const textContent = this._elementRef.nativeElement.textContent;\n // We need to diff the text content of the header, because the MutationObserver callback\n // will fire even if the text content didn't change which is inefficient and is prone\n // to infinite loops if a poorly constructed expression is passed in (see #14249).\n if (textContent !== this._currentTextContent) {\n this._currentTextContent = textContent || '';\n // The content observer runs outside the `NgZone` by default, which\n // means that we need to bring the callback back in ourselves.\n this._ngZone.run(() => {\n this.updatePagination();\n this._alignInkBarToSelectedTab();\n this._changeDetectorRef.markForCheck();\n });\n }\n }\n /**\n * Updates the view whether pagination should be enabled or not.\n *\n * WARNING: Calling this method can be very costly in terms of performance. It should be called\n * as infrequently as possible from outside of the Tabs component as it causes a reflow of the\n * page.\n */\n updatePagination() {\n this._checkPaginationEnabled();\n this._checkScrollingControls();\n this._updateTabScrollPosition();\n }\n /** Tracks which element has focus; used for keyboard navigation */\n get focusIndex() {\n return this._keyManager ? this._keyManager.activeItemIndex : 0;\n }\n /** When the focus index is set, we must manually send focus to the correct label */\n set focusIndex(value) {\n if (!this._isValidIndex(value) || this.focusIndex === value || !this._keyManager) {\n return;\n }\n this._keyManager.setActiveItem(value);\n }\n /**\n * Determines if an index is valid. If the tabs are not ready yet, we assume that the user is\n * providing a valid index and return true.\n */\n _isValidIndex(index) {\n return this._items ? !!this._items.toArray()[index] : true;\n }\n /**\n * Sets focus on the HTML element for the label wrapper and scrolls it into the view if\n * scrolling is enabled.\n */\n _setTabFocus(tabIndex) {\n if (this._showPaginationControls) {\n this._scrollToLabel(tabIndex);\n }\n if (this._items && this._items.length) {\n this._items.toArray()[tabIndex].focus();\n // Do not let the browser manage scrolling to focus the element, this will be handled\n // by using translation. In LTR, the scroll left should be 0. In RTL, the scroll width\n // should be the full width minus the offset width.\n const containerEl = this._tabListContainer.nativeElement;\n const dir = this._getLayoutDirection();\n if (dir == 'ltr') {\n containerEl.scrollLeft = 0;\n } else {\n containerEl.scrollLeft = containerEl.scrollWidth - containerEl.offsetWidth;\n }\n }\n }\n /** The layout direction of the containing app. */\n _getLayoutDirection() {\n return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';\n }\n /** Performs the CSS transformation on the tab list that will cause the list to scroll. */\n _updateTabScrollPosition() {\n if (this.disablePagination) {\n return;\n }\n const scrollDistance = this.scrollDistance;\n const translateX = this._getLayoutDirection() === 'ltr' ? -scrollDistance : scrollDistance;\n // Don't use `translate3d` here because we don't want to create a new layer. A new layer\n // seems to cause flickering and overflow in Internet Explorer. For example, the ink bar\n // and ripples will exceed the boundaries of the visible tab bar.\n // See: https://github.com/angular/components/issues/10276\n // We round the `transform` here, because transforms with sub-pixel precision cause some\n // browsers to blur the content of the element.\n this._tabList.nativeElement.style.transform = `translateX(${Math.round(translateX)}px)`;\n // Setting the `transform` on IE will change the scroll offset of the parent, causing the\n // position to be thrown off in some cases. We have to reset it ourselves to ensure that\n // it doesn't get thrown off. Note that we scope it only to IE and Edge, because messing\n // with the scroll position throws off Chrome 71+ in RTL mode (see #14689).\n if (this._platform.TRIDENT || this._platform.EDGE) {\n this._tabListContainer.nativeElement.scrollLeft = 0;\n }\n }\n /** Sets the distance in pixels that the tab header should be transformed in the X-axis. */\n get scrollDistance() {\n return this._scrollDistance;\n }\n set scrollDistance(value) {\n this._scrollTo(value);\n }\n /**\n * Moves the tab list in the 'before' or 'after' direction (towards the beginning of the list or\n * the end of the list, respectively). The distance to scroll is computed to be a third of the\n * length of the tab list view window.\n *\n * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n * should be called sparingly.\n */\n _scrollHeader(direction) {\n const viewLength = this._tabListContainer.nativeElement.offsetWidth;\n // Move the scroll distance one-third the length of the tab list's viewport.\n const scrollAmount = (direction == 'before' ? -1 : 1) * viewLength / 3;\n return this._scrollTo(this._scrollDistance + scrollAmount);\n }\n /** Handles click events on the pagination arrows. */\n _handlePaginatorClick(direction) {\n this._stopInterval();\n this._scrollHeader(direction);\n }\n /**\n * Moves the tab list such that the desired tab label (marked by index) is moved into view.\n *\n * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n * should be called sparingly.\n */\n _scrollToLabel(labelIndex) {\n if (this.disablePagination) {\n return;\n }\n const selectedLabel = this._items ? this._items.toArray()[labelIndex] : null;\n if (!selectedLabel) {\n return;\n }\n // The view length is the visible width of the tab labels.\n const viewLength = this._tabListContainer.nativeElement.offsetWidth;\n const {\n offsetLeft,\n offsetWidth\n } = selectedLabel.elementRef.nativeElement;\n let labelBeforePos, labelAfterPos;\n if (this._getLayoutDirection() == 'ltr') {\n labelBeforePos = offsetLeft;\n labelAfterPos = labelBeforePos + offsetWidth;\n } else {\n labelAfterPos = this._tabListInner.nativeElement.offsetWidth - offsetLeft;\n labelBeforePos = labelAfterPos - offsetWidth;\n }\n const beforeVisiblePos = this.scrollDistance;\n const afterVisiblePos = this.scrollDistance + viewLength;\n if (labelBeforePos < beforeVisiblePos) {\n // Scroll header to move label to the before direction\n this.scrollDistance -= beforeVisiblePos - labelBeforePos;\n } else if (labelAfterPos > afterVisiblePos) {\n // Scroll header to move label to the after direction\n this.scrollDistance += Math.min(labelAfterPos - afterVisiblePos, labelBeforePos - beforeVisiblePos);\n }\n }\n /**\n * Evaluate whether the pagination controls should be displayed. If the scroll width of the\n * tab list is wider than the size of the header container, then the pagination controls should\n * be shown.\n *\n * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n * should be called sparingly.\n */\n _checkPaginationEnabled() {\n if (this.disablePagination) {\n this._showPaginationControls = false;\n } else {\n const isEnabled = this._tabListInner.nativeElement.scrollWidth > this._elementRef.nativeElement.offsetWidth;\n if (!isEnabled) {\n this.scrollDistance = 0;\n }\n if (isEnabled !== this._showPaginationControls) {\n this._changeDetectorRef.markForCheck();\n }\n this._showPaginationControls = isEnabled;\n }\n }\n /**\n * Evaluate whether the before and after controls should be enabled or disabled.\n * If the header is at the beginning of the list (scroll distance is equal to 0) then disable the\n * before button. If the header is at the end of the list (scroll distance is equal to the\n * maximum distance we can scroll), then disable the after button.\n *\n * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n * should be called sparingly.\n */\n _checkScrollingControls() {\n if (this.disablePagination) {\n this._disableScrollAfter = this._disableScrollBefore = true;\n } else {\n // Check if the pagination arrows should be activated.\n this._disableScrollBefore = this.scrollDistance == 0;\n this._disableScrollAfter = this.scrollDistance == this._getMaxScrollDistance();\n this._changeDetectorRef.markForCheck();\n }\n }\n /**\n * Determines what is the maximum length in pixels that can be set for the scroll distance. This\n * is equal to the difference in width between the tab list container and tab header container.\n *\n * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n * should be called sparingly.\n */\n _getMaxScrollDistance() {\n const lengthOfTabList = this._tabListInner.nativeElement.scrollWidth;\n const viewLength = this._tabListContainer.nativeElement.offsetWidth;\n return lengthOfTabList - viewLength || 0;\n }\n /** Tells the ink-bar to align itself to the current label wrapper */\n _alignInkBarToSelectedTab() {\n const selectedItem = this._items && this._items.length ? this._items.toArray()[this.selectedIndex] : null;\n const selectedLabelWrapper = selectedItem ? selectedItem.elementRef.nativeElement : null;\n if (selectedLabelWrapper) {\n this._inkBar.alignToElement(selectedLabelWrapper);\n } else {\n this._inkBar.hide();\n }\n }\n /** Stops the currently-running paginator interval. */\n _stopInterval() {\n this._stopScrolling.next();\n }\n /**\n * Handles the user pressing down on one of the paginators.\n * Starts scrolling the header after a certain amount of time.\n * @param direction In which direction the paginator should be scrolled.\n */\n _handlePaginatorPress(direction, mouseEvent) {\n // Don't start auto scrolling for right mouse button clicks. Note that we shouldn't have to\n // null check the `button`, but we do it so we don't break tests that use fake events.\n if (mouseEvent && mouseEvent.button != null && mouseEvent.button !== 0) {\n return;\n }\n // Avoid overlapping timers.\n this._stopInterval();\n // Start a timer after the delay and keep firing based on the interval.\n timer(HEADER_SCROLL_DELAY, HEADER_SCROLL_INTERVAL)\n // Keep the timer going until something tells it to stop or the component is destroyed.\n .pipe(takeUntil(merge(this._stopScrolling, this._destroyed))).subscribe(() => {\n const {\n maxScrollDistance,\n distance\n } = this._scrollHeader(direction);\n // Stop the timer if we've reached the start or the end.\n if (distance === 0 || distance >= maxScrollDistance) {\n this._stopInterval();\n }\n });\n }\n /**\n * Scrolls the header to a given position.\n * @param position Position to which to scroll.\n * @returns Information on the current scroll distance and the maximum.\n */\n _scrollTo(position) {\n if (this.disablePagination) {\n return {\n maxScrollDistance: 0,\n distance: 0\n };\n }\n const maxScrollDistance = this._getMaxScrollDistance();\n this._scrollDistance = Math.max(0, Math.min(maxScrollDistance, position));\n // Mark that the scroll distance has changed so that after the view is checked, the CSS\n // transformation can move the header.\n this._scrollDistanceChanged = true;\n this._checkScrollingControls();\n return {\n maxScrollDistance,\n distance: this._scrollDistance\n };\n }\n static {\n this.ɵfac = function MatPaginatedTabHeader_Factory(ɵt) {\n return new (ɵt || MatPaginatedTabHeader)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1$1.ViewportRuler), i0.ɵɵdirectiveInject(i1.Directionality, 8), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i3.Platform), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatPaginatedTabHeader,\n inputs: {\n disablePagination: \"disablePagination\"\n }\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatPaginatedTabHeader, [{\n type: Directive\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: i1$1.ViewportRuler\n }, {\n type: i1.Directionality,\n decorators: [{\n type: Optional\n }]\n }, {\n type: i0.NgZone\n }, {\n type: i3.Platform\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }]\n }];\n }, {\n disablePagination: [{\n type: Input\n }]\n });\n})();\n\n/**\n * Base class with all of the `MatTabHeader` functionality.\n * @docs-private\n */\nclass _MatTabHeaderBase extends MatPaginatedTabHeader {\n /** Whether the ripple effect is disabled or not. */\n get disableRipple() {\n return this._disableRipple;\n }\n set disableRipple(value) {\n this._disableRipple = coerceBooleanProperty(value);\n }\n constructor(elementRef, changeDetectorRef, viewportRuler, dir, ngZone, platform, animationMode) {\n super(elementRef, changeDetectorRef, viewportRuler, dir, ngZone, platform, animationMode);\n this._disableRipple = false;\n }\n _itemSelected(event) {\n event.preventDefault();\n }\n static {\n this.ɵfac = function _MatTabHeaderBase_Factory(ɵt) {\n return new (ɵt || _MatTabHeaderBase)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1$1.ViewportRuler), i0.ɵɵdirectiveInject(i1.Directionality, 8), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i3.Platform), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: _MatTabHeaderBase,\n inputs: {\n disableRipple: \"disableRipple\"\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(_MatTabHeaderBase, [{\n type: Directive\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: i1$1.ViewportRuler\n }, {\n type: i1.Directionality,\n decorators: [{\n type: Optional\n }]\n }, {\n type: i0.NgZone\n }, {\n type: i3.Platform\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }]\n }];\n }, {\n disableRipple: [{\n type: Input\n }]\n });\n})();\n/**\n * The header of the tab group which displays a list of all the tabs in the tab group. Includes\n * an ink bar that follows the currently selected tab. When the tabs list's width exceeds the\n * width of the header container, then arrows will be displayed to allow the user to scroll\n * left and right across the header.\n * @docs-private\n */\nclass MatTabHeader extends _MatTabHeaderBase {\n constructor(elementRef, changeDetectorRef, viewportRuler, dir, ngZone, platform, animationMode) {\n super(elementRef, changeDetectorRef, viewportRuler, dir, ngZone, platform, animationMode);\n }\n ngAfterContentInit() {\n this._inkBar = new MatInkBar(this._items);\n super.ngAfterContentInit();\n }\n static {\n this.ɵfac = function MatTabHeader_Factory(ɵt) {\n return new (ɵt || MatTabHeader)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1$1.ViewportRuler), i0.ɵɵdirectiveInject(i1.Directionality, 8), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i3.Platform), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatTabHeader,\n selectors: [[\"mat-tab-header\"]],\n contentQueries: function MatTabHeader_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MatTabLabelWrapper, 4);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._items = _t);\n }\n },\n viewQuery: function MatTabHeader_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c3, 7);\n i0.ɵɵviewQuery(_c4, 7);\n i0.ɵɵviewQuery(_c5, 7);\n i0.ɵɵviewQuery(_c6, 5);\n i0.ɵɵviewQuery(_c7, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._tabListContainer = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._tabList = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._tabListInner = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._nextPaginator = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._previousPaginator = _t.first);\n }\n },\n hostAttrs: [1, \"mat-mdc-tab-header\"],\n hostVars: 4,\n hostBindings: function MatTabHeader_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"mat-mdc-tab-header-pagination-controls-enabled\", ctx._showPaginationControls)(\"mat-mdc-tab-header-rtl\", ctx._getLayoutDirection() == \"rtl\");\n }\n },\n inputs: {\n selectedIndex: \"selectedIndex\"\n },\n outputs: {\n selectFocusedIndex: \"selectFocusedIndex\",\n indexFocused: \"indexFocused\"\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n ngContentSelectors: _c2,\n decls: 13,\n vars: 10,\n consts: [[\"previousPaginator\", \"\"], [\"tabListContainer\", \"\"], [\"tabList\", \"\"], [\"tabListInner\", \"\"], [\"nextPaginator\", \"\"], [\"aria-hidden\", \"true\", \"type\", \"button\", \"mat-ripple\", \"\", \"tabindex\", \"-1\", 1, \"mat-mdc-tab-header-pagination\", \"mat-mdc-tab-header-pagination-before\", 3, \"click\", \"mousedown\", \"touchend\", \"matRippleDisabled\", \"disabled\"], [1, \"mat-mdc-tab-header-pagination-chevron\"], [1, \"mat-mdc-tab-label-container\", 3, \"keydown\"], [\"role\", \"tablist\", 1, \"mat-mdc-tab-list\", 3, \"cdkObserveContent\"], [1, \"mat-mdc-tab-labels\"], [\"aria-hidden\", \"true\", \"type\", \"button\", \"mat-ripple\", \"\", \"tabindex\", \"-1\", 1, \"mat-mdc-tab-header-pagination\", \"mat-mdc-tab-header-pagination-after\", 3, \"mousedown\", \"click\", \"touchend\", \"matRippleDisabled\", \"disabled\"]],\n template: function MatTabHeader_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"button\", 5, 0);\n i0.ɵɵlistener(\"click\", function MatTabHeader_Template_button_click_0_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._handlePaginatorClick(\"before\"));\n })(\"mousedown\", function MatTabHeader_Template_button_mousedown_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._handlePaginatorPress(\"before\", $event));\n })(\"touchend\", function MatTabHeader_Template_button_touchend_0_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._stopInterval());\n });\n i0.ɵɵelement(2, \"div\", 6);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"div\", 7, 1);\n i0.ɵɵlistener(\"keydown\", function MatTabHeader_Template_div_keydown_3_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._handleKeydown($event));\n });\n i0.ɵɵelementStart(5, \"div\", 8, 2);\n i0.ɵɵlistener(\"cdkObserveContent\", function MatTabHeader_Template_div_cdkObserveContent_5_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._onContentChanges());\n });\n i0.ɵɵelementStart(7, \"div\", 9, 3);\n i0.ɵɵprojection(9);\n i0.ɵɵelementEnd()()();\n i0.ɵɵelementStart(10, \"button\", 10, 4);\n i0.ɵɵlistener(\"mousedown\", function MatTabHeader_Template_button_mousedown_10_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._handlePaginatorPress(\"after\", $event));\n })(\"click\", function MatTabHeader_Template_button_click_10_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._handlePaginatorClick(\"after\"));\n })(\"touchend\", function MatTabHeader_Template_button_touchend_10_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._stopInterval());\n });\n i0.ɵɵelement(12, \"div\", 6);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"mat-mdc-tab-header-pagination-disabled\", ctx._disableScrollBefore);\n i0.ɵɵproperty(\"matRippleDisabled\", ctx._disableScrollBefore || ctx.disableRipple)(\"disabled\", ctx._disableScrollBefore || null);\n i0.ɵɵadvance(3);\n i0.ɵɵclassProp(\"_mat-animation-noopable\", ctx._animationMode === \"NoopAnimations\");\n i0.ɵɵadvance(7);\n i0.ɵɵclassProp(\"mat-mdc-tab-header-pagination-disabled\", ctx._disableScrollAfter);\n i0.ɵɵproperty(\"matRippleDisabled\", ctx._disableScrollAfter || ctx.disableRipple)(\"disabled\", ctx._disableScrollAfter || null);\n }\n },\n dependencies: [i5.MatRipple, i5$1.CdkObserveContent],\n styles: [\".mat-mdc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0;--mdc-tab-indicator-active-indicator-height:2px;--mdc-tab-indicator-active-indicator-shape:0;--mdc-secondary-navigation-tab-container-height:48px}.mdc-tab-indicator .mdc-tab-indicator__content{transition-duration:var(--mat-tab-animation-duration, 250ms)}.mat-mdc-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:none;box-sizing:content-box;background:none;border:none;outline:0;padding:0}.mat-mdc-tab-header-pagination::-moz-focus-inner{border:0}.mat-mdc-tab-header-pagination .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-header-pagination{display:flex}.mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after{padding-left:4px}.mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-pagination-after{padding-right:4px}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-mdc-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px;border-color:var(--mat-tab-header-pagination-icon-color)}.mat-mdc-tab-header-pagination-disabled{box-shadow:none;cursor:default;pointer-events:none}.mat-mdc-tab-header-pagination-disabled .mat-mdc-tab-header-pagination-chevron{opacity:.4}.mat-mdc-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-mdc-tab-list{transition:none}._mat-animation-noopable span.mdc-tab-indicator__content,._mat-animation-noopable span.mdc-tab__text-label{transition:none}.mat-mdc-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-mdc-tab-labels{display:flex;flex:1 0 auto}[mat-align-tabs=center]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:flex-end}.mat-mdc-tab::before{margin:5px}.cdk-high-contrast-active .mat-mdc-tab[aria-disabled=true]{color:GrayText}\"],\n encapsulation: 2\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatTabHeader, [{\n type: Component,\n args: [{\n selector: 'mat-tab-header',\n inputs: ['selectedIndex'],\n outputs: ['selectFocusedIndex', 'indexFocused'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Default,\n host: {\n 'class': 'mat-mdc-tab-header',\n '[class.mat-mdc-tab-header-pagination-controls-enabled]': '_showPaginationControls',\n '[class.mat-mdc-tab-header-rtl]': \"_getLayoutDirection() == 'rtl'\"\n },\n template: \"\\n\\n \\n\\n\\n\\n \\n \\n \\n \\n \\n\\n\\n\\n\\n \\n\\n\",\n styles: [\".mat-mdc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0;--mdc-tab-indicator-active-indicator-height:2px;--mdc-tab-indicator-active-indicator-shape:0;--mdc-secondary-navigation-tab-container-height:48px}.mdc-tab-indicator .mdc-tab-indicator__content{transition-duration:var(--mat-tab-animation-duration, 250ms)}.mat-mdc-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:none;box-sizing:content-box;background:none;border:none;outline:0;padding:0}.mat-mdc-tab-header-pagination::-moz-focus-inner{border:0}.mat-mdc-tab-header-pagination .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-header-pagination{display:flex}.mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after{padding-left:4px}.mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-pagination-after{padding-right:4px}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-mdc-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px;border-color:var(--mat-tab-header-pagination-icon-color)}.mat-mdc-tab-header-pagination-disabled{box-shadow:none;cursor:default;pointer-events:none}.mat-mdc-tab-header-pagination-disabled .mat-mdc-tab-header-pagination-chevron{opacity:.4}.mat-mdc-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-mdc-tab-list{transition:none}._mat-animation-noopable span.mdc-tab-indicator__content,._mat-animation-noopable span.mdc-tab__text-label{transition:none}.mat-mdc-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-mdc-tab-labels{display:flex;flex:1 0 auto}[mat-align-tabs=center]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:flex-end}.mat-mdc-tab::before{margin:5px}.cdk-high-contrast-active .mat-mdc-tab[aria-disabled=true]{color:GrayText}\"]\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: i1$1.ViewportRuler\n }, {\n type: i1.Directionality,\n decorators: [{\n type: Optional\n }]\n }, {\n type: i0.NgZone\n }, {\n type: i3.Platform\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }]\n }];\n }, {\n _items: [{\n type: ContentChildren,\n args: [MatTabLabelWrapper, {\n descendants: false\n }]\n }],\n _tabListContainer: [{\n type: ViewChild,\n args: ['tabListContainer', {\n static: true\n }]\n }],\n _tabList: [{\n type: ViewChild,\n args: ['tabList', {\n static: true\n }]\n }],\n _tabListInner: [{\n type: ViewChild,\n args: ['tabListInner', {\n static: true\n }]\n }],\n _nextPaginator: [{\n type: ViewChild,\n args: ['nextPaginator']\n }],\n _previousPaginator: [{\n type: ViewChild,\n args: ['previousPaginator']\n }]\n });\n})();\n\n/** Injection token that can be used to provide the default options the tabs module. */\nconst MAT_TABS_CONFIG = new InjectionToken('MAT_TABS_CONFIG');\n\n/** Used to generate unique ID's for each tab component */\nlet nextId = 0;\n// Boilerplate for applying mixins to MatTabGroup.\n/** @docs-private */\nconst _MatTabGroupMixinBase = mixinColor(mixinDisableRipple(class {\n constructor(_elementRef) {\n this._elementRef = _elementRef;\n }\n}), 'primary');\n/**\n * Base class with all of the `MatTabGroupBase` functionality.\n * @docs-private\n */\nclass _MatTabGroupBase extends _MatTabGroupMixinBase {\n /** Whether the tab group should grow to the size of the active tab. */\n get dynamicHeight() {\n return this._dynamicHeight;\n }\n set dynamicHeight(value) {\n this._dynamicHeight = coerceBooleanProperty(value);\n }\n /** The index of the active tab. */\n get selectedIndex() {\n return this._selectedIndex;\n }\n set selectedIndex(value) {\n this._indexToSelect = coerceNumberProperty(value, null);\n }\n /** Duration for the tab animation. Will be normalized to milliseconds if no units are set. */\n get animationDuration() {\n return this._animationDuration;\n }\n set animationDuration(value) {\n this._animationDuration = /^\\d+$/.test(value + '') ? value + 'ms' : value;\n }\n /**\n * `tabindex` to be set on the inner element that wraps the tab content. Can be used for improved\n * accessibility when the tab does not have focusable elements or if it has scrollable content.\n * The `tabindex` will be removed automatically for inactive tabs.\n * Read more at https://www.w3.org/TR/wai-aria-practices/examples/tabs/tabs-2/tabs.html\n */\n get contentTabIndex() {\n return this._contentTabIndex;\n }\n set contentTabIndex(value) {\n this._contentTabIndex = coerceNumberProperty(value, null);\n }\n /**\n * Whether pagination should be disabled. This can be used to avoid unnecessary\n * layout recalculations if it's known that pagination won't be required.\n */\n get disablePagination() {\n return this._disablePagination;\n }\n set disablePagination(value) {\n this._disablePagination = coerceBooleanProperty(value);\n }\n /**\n * By default tabs remove their content from the DOM while it's off-screen.\n * Setting this to `true` will keep it in the DOM which will prevent elements\n * like iframes and videos from reloading next time it comes back into the view.\n */\n get preserveContent() {\n return this._preserveContent;\n }\n set preserveContent(value) {\n this._preserveContent = coerceBooleanProperty(value);\n }\n /** Background color of the tab group. */\n get backgroundColor() {\n return this._backgroundColor;\n }\n set backgroundColor(value) {\n const classList = this._elementRef.nativeElement.classList;\n classList.remove('mat-tabs-with-background', `mat-background-${this.backgroundColor}`);\n if (value) {\n classList.add('mat-tabs-with-background', `mat-background-${value}`);\n }\n this._backgroundColor = value;\n }\n constructor(elementRef, _changeDetectorRef, defaultConfig, _animationMode) {\n super(elementRef);\n this._changeDetectorRef = _changeDetectorRef;\n this._animationMode = _animationMode;\n /** All of the tabs that belong to the group. */\n this._tabs = new QueryList();\n /** The tab index that should be selected after the content has been checked. */\n this._indexToSelect = 0;\n /** Index of the tab that was focused last. */\n this._lastFocusedTabIndex = null;\n /** Snapshot of the height of the tab body wrapper before another tab is activated. */\n this._tabBodyWrapperHeight = 0;\n /** Subscription to tabs being added/removed. */\n this._tabsSubscription = Subscription.EMPTY;\n /** Subscription to changes in the tab labels. */\n this._tabLabelSubscription = Subscription.EMPTY;\n this._dynamicHeight = false;\n this._selectedIndex = null;\n /** Position of the tab header. */\n this.headerPosition = 'above';\n this._disablePagination = false;\n this._preserveContent = false;\n /** Output to enable support for two-way binding on `[(selectedIndex)]` */\n this.selectedIndexChange = new EventEmitter();\n /** Event emitted when focus has changed within a tab group. */\n this.focusChange = new EventEmitter();\n /** Event emitted when the body animation has completed */\n this.animationDone = new EventEmitter();\n /** Event emitted when the tab selection has changed. */\n this.selectedTabChange = new EventEmitter(true);\n this._groupId = nextId++;\n this.animationDuration = defaultConfig && defaultConfig.animationDuration ? defaultConfig.animationDuration : '500ms';\n this.disablePagination = defaultConfig && defaultConfig.disablePagination != null ? defaultConfig.disablePagination : false;\n this.dynamicHeight = defaultConfig && defaultConfig.dynamicHeight != null ? defaultConfig.dynamicHeight : false;\n this.contentTabIndex = defaultConfig?.contentTabIndex ?? null;\n this.preserveContent = !!defaultConfig?.preserveContent;\n }\n /**\n * After the content is checked, this component knows what tabs have been defined\n * and what the selected index should be. This is where we can know exactly what position\n * each tab should be in according to the new selected index, and additionally we know how\n * a new selected tab should transition in (from the left or right).\n */\n ngAfterContentChecked() {\n // Don't clamp the `indexToSelect` immediately in the setter because it can happen that\n // the amount of tabs changes before the actual change detection runs.\n const indexToSelect = this._indexToSelect = this._clampTabIndex(this._indexToSelect);\n // If there is a change in selected index, emit a change event. Should not trigger if\n // the selected index has not yet been initialized.\n if (this._selectedIndex != indexToSelect) {\n const isFirstRun = this._selectedIndex == null;\n if (!isFirstRun) {\n this.selectedTabChange.emit(this._createChangeEvent(indexToSelect));\n // Preserve the height so page doesn't scroll up during tab change.\n // Fixes https://stackblitz.com/edit/mat-tabs-scroll-page-top-on-tab-change\n const wrapper = this._tabBodyWrapper.nativeElement;\n wrapper.style.minHeight = wrapper.clientHeight + 'px';\n }\n // Changing these values after change detection has run\n // since the checked content may contain references to them.\n Promise.resolve().then(() => {\n this._tabs.forEach((tab, index) => tab.isActive = index === indexToSelect);\n if (!isFirstRun) {\n this.selectedIndexChange.emit(indexToSelect);\n // Clear the min-height, this was needed during tab change to avoid\n // unnecessary scrolling.\n this._tabBodyWrapper.nativeElement.style.minHeight = '';\n }\n });\n }\n // Setup the position for each tab and optionally setup an origin on the next selected tab.\n this._tabs.forEach((tab, index) => {\n tab.position = index - indexToSelect;\n // If there is already a selected tab, then set up an origin for the next selected tab\n // if it doesn't have one already.\n if (this._selectedIndex != null && tab.position == 0 && !tab.origin) {\n tab.origin = indexToSelect - this._selectedIndex;\n }\n });\n if (this._selectedIndex !== indexToSelect) {\n this._selectedIndex = indexToSelect;\n this._lastFocusedTabIndex = null;\n this._changeDetectorRef.markForCheck();\n }\n }\n ngAfterContentInit() {\n this._subscribeToAllTabChanges();\n this._subscribeToTabLabels();\n // Subscribe to changes in the amount of tabs, in order to be\n // able to re-render the content as new tabs are added or removed.\n this._tabsSubscription = this._tabs.changes.subscribe(() => {\n const indexToSelect = this._clampTabIndex(this._indexToSelect);\n // Maintain the previously-selected tab if a new tab is added or removed and there is no\n // explicit change that selects a different tab.\n if (indexToSelect === this._selectedIndex) {\n const tabs = this._tabs.toArray();\n let selectedTab;\n for (let i = 0; i < tabs.length; i++) {\n if (tabs[i].isActive) {\n // Assign both to the `_indexToSelect` and `_selectedIndex` so we don't fire a changed\n // event, otherwise the consumer may end up in an infinite loop in some edge cases like\n // adding a tab within the `selectedIndexChange` event.\n this._indexToSelect = this._selectedIndex = i;\n this._lastFocusedTabIndex = null;\n selectedTab = tabs[i];\n break;\n }\n }\n // If we haven't found an active tab and a tab exists at the selected index, it means\n // that the active tab was swapped out. Since this won't be picked up by the rendering\n // loop in `ngAfterContentChecked`, we need to sync it up manually.\n if (!selectedTab && tabs[indexToSelect]) {\n Promise.resolve().then(() => {\n tabs[indexToSelect].isActive = true;\n this.selectedTabChange.emit(this._createChangeEvent(indexToSelect));\n });\n }\n }\n this._changeDetectorRef.markForCheck();\n });\n }\n /** Listens to changes in all of the tabs. */\n _subscribeToAllTabChanges() {\n // Since we use a query with `descendants: true` to pick up the tabs, we may end up catching\n // some that are inside of nested tab groups. We filter them out manually by checking that\n // the closest group to the tab is the current one.\n this._allTabs.changes.pipe(startWith(this._allTabs)).subscribe(tabs => {\n this._tabs.reset(tabs.filter(tab => {\n return tab._closestTabGroup === this || !tab._closestTabGroup;\n }));\n this._tabs.notifyOnChanges();\n });\n }\n ngOnDestroy() {\n this._tabs.destroy();\n this._tabsSubscription.unsubscribe();\n this._tabLabelSubscription.unsubscribe();\n }\n /** Re-aligns the ink bar to the selected tab element. */\n realignInkBar() {\n if (this._tabHeader) {\n this._tabHeader._alignInkBarToSelectedTab();\n }\n }\n /**\n * Recalculates the tab group's pagination dimensions.\n *\n * WARNING: Calling this method can be very costly in terms of performance. It should be called\n * as infrequently as possible from outside of the Tabs component as it causes a reflow of the\n * page.\n */\n updatePagination() {\n if (this._tabHeader) {\n this._tabHeader.updatePagination();\n }\n }\n /**\n * Sets focus to a particular tab.\n * @param index Index of the tab to be focused.\n */\n focusTab(index) {\n const header = this._tabHeader;\n if (header) {\n header.focusIndex = index;\n }\n }\n _focusChanged(index) {\n this._lastFocusedTabIndex = index;\n this.focusChange.emit(this._createChangeEvent(index));\n }\n _createChangeEvent(index) {\n const event = new MatTabChangeEvent();\n event.index = index;\n if (this._tabs && this._tabs.length) {\n event.tab = this._tabs.toArray()[index];\n }\n return event;\n }\n /**\n * Subscribes to changes in the tab labels. This is needed, because the @Input for the label is\n * on the MatTab component, whereas the data binding is inside the MatTabGroup. In order for the\n * binding to be updated, we need to subscribe to changes in it and trigger change detection\n * manually.\n */\n _subscribeToTabLabels() {\n if (this._tabLabelSubscription) {\n this._tabLabelSubscription.unsubscribe();\n }\n this._tabLabelSubscription = merge(...this._tabs.map(tab => tab._stateChanges)).subscribe(() => this._changeDetectorRef.markForCheck());\n }\n /** Clamps the given index to the bounds of 0 and the tabs length. */\n _clampTabIndex(index) {\n // Note the `|| 0`, which ensures that values like NaN can't get through\n // and which would otherwise throw the component into an infinite loop\n // (since Math.max(NaN, 0) === NaN).\n return Math.min(this._tabs.length - 1, Math.max(index || 0, 0));\n }\n /** Returns a unique id for each tab label element */\n _getTabLabelId(i) {\n return `mat-tab-label-${this._groupId}-${i}`;\n }\n /** Returns a unique id for each tab content element */\n _getTabContentId(i) {\n return `mat-tab-content-${this._groupId}-${i}`;\n }\n /**\n * Sets the height of the body wrapper to the height of the activating tab if dynamic\n * height property is true.\n */\n _setTabBodyWrapperHeight(tabHeight) {\n if (!this._dynamicHeight || !this._tabBodyWrapperHeight) {\n return;\n }\n const wrapper = this._tabBodyWrapper.nativeElement;\n wrapper.style.height = this._tabBodyWrapperHeight + 'px';\n // This conditional forces the browser to paint the height so that\n // the animation to the new height can have an origin.\n if (this._tabBodyWrapper.nativeElement.offsetHeight) {\n wrapper.style.height = tabHeight + 'px';\n }\n }\n /** Removes the height of the tab body wrapper. */\n _removeTabBodyWrapperHeight() {\n const wrapper = this._tabBodyWrapper.nativeElement;\n this._tabBodyWrapperHeight = wrapper.clientHeight;\n wrapper.style.height = '';\n this.animationDone.emit();\n }\n /** Handle click events, setting new selected index if appropriate. */\n _handleClick(tab, tabHeader, index) {\n tabHeader.focusIndex = index;\n if (!tab.disabled) {\n this.selectedIndex = index;\n }\n }\n /** Retrieves the tabindex for the tab. */\n _getTabIndex(index) {\n const targetIndex = this._lastFocusedTabIndex ?? this.selectedIndex;\n return index === targetIndex ? 0 : -1;\n }\n /** Callback for when the focused state of a tab has changed. */\n _tabFocusChanged(focusOrigin, index) {\n // Mouse/touch focus happens during the `mousedown`/`touchstart` phase which\n // can cause the tab to be moved out from under the pointer, interrupting the\n // click sequence (see #21898). We don't need to scroll the tab into view for\n // such cases anyway, because it will be done when the tab becomes selected.\n if (focusOrigin && focusOrigin !== 'mouse' && focusOrigin !== 'touch') {\n this._tabHeader.focusIndex = index;\n }\n }\n static {\n this.ɵfac = function _MatTabGroupBase_Factory(ɵt) {\n return new (ɵt || _MatTabGroupBase)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(MAT_TABS_CONFIG, 8), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: _MatTabGroupBase,\n inputs: {\n dynamicHeight: \"dynamicHeight\",\n selectedIndex: \"selectedIndex\",\n headerPosition: \"headerPosition\",\n animationDuration: \"animationDuration\",\n contentTabIndex: \"contentTabIndex\",\n disablePagination: \"disablePagination\",\n preserveContent: \"preserveContent\",\n backgroundColor: \"backgroundColor\"\n },\n outputs: {\n selectedIndexChange: \"selectedIndexChange\",\n focusChange: \"focusChange\",\n animationDone: \"animationDone\",\n selectedTabChange: \"selectedTabChange\"\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(_MatTabGroupBase, [{\n type: Directive\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [MAT_TABS_CONFIG]\n }, {\n type: Optional\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }]\n }];\n }, {\n dynamicHeight: [{\n type: Input\n }],\n selectedIndex: [{\n type: Input\n }],\n headerPosition: [{\n type: Input\n }],\n animationDuration: [{\n type: Input\n }],\n contentTabIndex: [{\n type: Input\n }],\n disablePagination: [{\n type: Input\n }],\n preserveContent: [{\n type: Input\n }],\n backgroundColor: [{\n type: Input\n }],\n selectedIndexChange: [{\n type: Output\n }],\n focusChange: [{\n type: Output\n }],\n animationDone: [{\n type: Output\n }],\n selectedTabChange: [{\n type: Output\n }]\n });\n})();\n/**\n * Material design tab-group component. Supports basic tab pairs (label + content) and includes\n * animated ink-bar, keyboard navigation, and screen reader.\n * See: https://material.io/design/components/tabs.html\n */\nclass MatTabGroup extends _MatTabGroupBase {\n /** Whether the ink bar should fit its width to the size of the tab label content. */\n get fitInkBarToContent() {\n return this._fitInkBarToContent;\n }\n set fitInkBarToContent(v) {\n this._fitInkBarToContent = coerceBooleanProperty(v);\n this._changeDetectorRef.markForCheck();\n }\n /** Whether tabs should be stretched to fill the header. */\n get stretchTabs() {\n return this._stretchTabs;\n }\n set stretchTabs(v) {\n this._stretchTabs = coerceBooleanProperty(v);\n }\n constructor(elementRef, changeDetectorRef, defaultConfig, animationMode) {\n super(elementRef, changeDetectorRef, defaultConfig, animationMode);\n this._fitInkBarToContent = false;\n this._stretchTabs = true;\n this.fitInkBarToContent = defaultConfig && defaultConfig.fitInkBarToContent != null ? defaultConfig.fitInkBarToContent : false;\n this.stretchTabs = defaultConfig && defaultConfig.stretchTabs != null ? defaultConfig.stretchTabs : true;\n }\n static {\n this.ɵfac = function MatTabGroup_Factory(ɵt) {\n return new (ɵt || MatTabGroup)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(MAT_TABS_CONFIG, 8), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatTabGroup,\n selectors: [[\"mat-tab-group\"]],\n contentQueries: function MatTabGroup_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MatTab, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._allTabs = _t);\n }\n },\n viewQuery: function MatTabGroup_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c8, 5);\n i0.ɵɵviewQuery(_c9, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._tabBodyWrapper = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._tabHeader = _t.first);\n }\n },\n hostAttrs: [\"ngSkipHydration\", \"\", 1, \"mat-mdc-tab-group\"],\n hostVars: 8,\n hostBindings: function MatTabGroup_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵstyleProp(\"--mat-tab-animation-duration\", ctx.animationDuration);\n i0.ɵɵclassProp(\"mat-mdc-tab-group-dynamic-height\", ctx.dynamicHeight)(\"mat-mdc-tab-group-inverted-header\", ctx.headerPosition === \"below\")(\"mat-mdc-tab-group-stretch-tabs\", ctx.stretchTabs);\n }\n },\n inputs: {\n color: \"color\",\n disableRipple: \"disableRipple\",\n fitInkBarToContent: \"fitInkBarToContent\",\n stretchTabs: [0, \"mat-stretch-tabs\", \"stretchTabs\"]\n },\n exportAs: [\"matTabGroup\"],\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_TAB_GROUP,\n useExisting: MatTabGroup\n }]), i0.ɵɵInheritDefinitionFeature],\n decls: 6,\n vars: 7,\n consts: [[\"tabHeader\", \"\"], [\"tabBodyWrapper\", \"\"], [\"tabNode\", \"\"], [\"tabTextLabel\", \"\"], [3, \"indexFocused\", \"selectFocusedIndex\", \"selectedIndex\", \"disableRipple\", \"disablePagination\"], [\"class\", \"mdc-tab mat-mdc-tab mat-mdc-focus-indicator\", \"role\", \"tab\", \"matTabLabelWrapper\", \"\", \"cdkMonitorElementFocus\", \"\", 3, \"id\", \"mdc-tab--active\", \"ngClass\", \"disabled\", \"fitInkBarToContent\", \"click\", \"cdkFocusChange\", 4, \"ngFor\", \"ngForOf\"], [1, \"mat-mdc-tab-body-wrapper\"], [\"role\", \"tabpanel\", 3, \"id\", \"mat-mdc-tab-body-active\", \"ngClass\", \"content\", \"position\", \"origin\", \"animationDuration\", \"preserveContent\", \"_onCentered\", \"_onCentering\", 4, \"ngFor\", \"ngForOf\"], [\"role\", \"tab\", \"matTabLabelWrapper\", \"\", \"cdkMonitorElementFocus\", \"\", 1, \"mdc-tab\", \"mat-mdc-tab\", \"mat-mdc-focus-indicator\", 3, \"click\", \"cdkFocusChange\", \"id\", \"ngClass\", \"disabled\", \"fitInkBarToContent\"], [1, \"mdc-tab__ripple\"], [\"mat-ripple\", \"\", 1, \"mat-mdc-tab-ripple\", 3, \"matRippleTrigger\", \"matRippleDisabled\"], [1, \"mdc-tab__content\"], [1, \"mdc-tab__text-label\"], [3, \"ngIf\", \"ngIfElse\"], [3, \"cdkPortalOutlet\"], [\"role\", \"tabpanel\", 3, \"_onCentered\", \"_onCentering\", \"id\", \"ngClass\", \"content\", \"position\", \"origin\", \"animationDuration\", \"preserveContent\"]],\n template: function MatTabGroup_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"mat-tab-header\", 4, 0);\n i0.ɵɵlistener(\"indexFocused\", function MatTabGroup_Template_mat_tab_header_indexFocused_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._focusChanged($event));\n })(\"selectFocusedIndex\", function MatTabGroup_Template_mat_tab_header_selectFocusedIndex_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.selectedIndex = $event);\n });\n i0.ɵɵtemplate(2, MatTabGroup_div_2_Template, 9, 17, \"div\", 5);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"div\", 6, 1);\n i0.ɵɵtemplate(5, MatTabGroup_mat_tab_body_5_Template, 1, 12, \"mat-tab-body\", 7);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"selectedIndex\", ctx.selectedIndex || 0)(\"disableRipple\", ctx.disableRipple)(\"disablePagination\", ctx.disablePagination);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", ctx._tabs);\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"_mat-animation-noopable\", ctx._animationMode === \"NoopAnimations\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", ctx._tabs);\n }\n },\n dependencies: [i1$2.NgClass, i1$2.NgForOf, i1$2.NgIf, i2.CdkPortalOutlet, i5.MatRipple, i4.CdkMonitorFocus, MatTabBody, MatTabLabelWrapper, MatTabHeader],\n styles: [\".mdc-tab{min-width:90px;padding-right:24px;padding-left:24px;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;margin:0;padding-top:0;padding-bottom:0;border:none;outline:none;text-align:center;white-space:nowrap;cursor:pointer;-webkit-appearance:none;z-index:1}.mdc-tab::-moz-focus-inner{padding:0;border:0}.mdc-tab[hidden]{display:none}.mdc-tab--min-width{flex:0 1 auto}.mdc-tab__content{display:flex;align-items:center;justify-content:center;height:inherit;pointer-events:none}.mdc-tab__text-label{transition:150ms color linear;display:inline-block;line-height:1;z-index:2}.mdc-tab__icon{transition:150ms color linear;z-index:2}.mdc-tab--stacked .mdc-tab__content{flex-direction:column;align-items:center;justify-content:center}.mdc-tab--stacked .mdc-tab__text-label{padding-top:6px;padding-bottom:4px}.mdc-tab--active .mdc-tab__text-label,.mdc-tab--active .mdc-tab__icon{transition-delay:100ms}.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label{padding-left:8px;padding-right:0}[dir=rtl] .mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label,.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label[dir=rtl]{padding-left:0;padding-right:8px}.mdc-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.mdc-tab-indicator__content{transform-origin:left;opacity:0}.mdc-tab-indicator__content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.mdc-tab-indicator__content--icon{align-self:center;margin:0 auto}.mdc-tab-indicator--active .mdc-tab-indicator__content{opacity:1}.mdc-tab-indicator .mdc-tab-indicator__content{transition:250ms transform cubic-bezier(0.4, 0, 0.2, 1)}.mdc-tab-indicator--no-transition .mdc-tab-indicator__content{transition:none}.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition:150ms opacity linear}.mdc-tab-indicator--active.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition-delay:100ms}.mat-mdc-tab-ripple{position:absolute;top:0;left:0;bottom:0;right:0;pointer-events:none}.mat-mdc-tab{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none;background:none;font-family:var(--mat-tab-header-label-text-font);font-size:var(--mat-tab-header-label-text-size);letter-spacing:var(--mat-tab-header-label-text-tracking);line-height:var(--mat-tab-header-label-text-line-height);font-weight:var(--mat-tab-header-label-text-weight)}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-color:var(--mdc-tab-indicator-active-indicator-color)}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-top-width:var(--mdc-tab-indicator-active-indicator-height)}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-radius:var(--mdc-tab-indicator-active-indicator-shape)}.mat-mdc-tab:not(.mdc-tab--stacked){height:var(--mdc-secondary-navigation-tab-container-height)}.mat-mdc-tab:not(:disabled).mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):hover.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):focus.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):active.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:disabled.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):hover:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):focus:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):active:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:disabled:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab.mdc-tab{flex-grow:0}.mat-mdc-tab:hover .mdc-tab__text-label{color:var(--mat-tab-header-inactive-hover-label-text-color)}.mat-mdc-tab:focus .mdc-tab__text-label{color:var(--mat-tab-header-inactive-focus-label-text-color)}.mat-mdc-tab.mdc-tab--active .mdc-tab__text-label{color:var(--mat-tab-header-active-label-text-color)}.mat-mdc-tab.mdc-tab--active .mdc-tab__ripple::before,.mat-mdc-tab.mdc-tab--active .mat-ripple-element{background-color:var(--mat-tab-header-active-ripple-color)}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab__text-label{color:var(--mat-tab-header-active-hover-label-text-color)}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-hover-indicator-color)}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab__text-label{color:var(--mat-tab-header-active-focus-label-text-color)}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-focus-indicator-color)}.mat-mdc-tab.mat-mdc-tab-disabled{opacity:.4;pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__content{pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__ripple::before,.mat-mdc-tab.mat-mdc-tab-disabled .mat-ripple-element{background-color:var(--mat-tab-header-disabled-ripple-color)}.mat-mdc-tab .mdc-tab__ripple::before{content:\\\"\\\";display:block;position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;pointer-events:none;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-inactive-label-text-color);display:inline-flex;align-items:center}.mat-mdc-tab .mdc-tab__content{position:relative;pointer-events:auto}.mat-mdc-tab:hover .mdc-tab__ripple::before{opacity:.04}.mat-mdc-tab.cdk-program-focused .mdc-tab__ripple::before,.mat-mdc-tab.cdk-keyboard-focused .mdc-tab__ripple::before{opacity:.12}.mat-mdc-tab .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab-group.mat-mdc-tab-group-stretch-tabs>.mat-mdc-tab-header .mat-mdc-tab{flex-grow:1}.mat-mdc-tab-group{display:flex;flex-direction:column;max-width:100%}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination{background-color:var(--mat-tab-header-with-background-background-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-focus-indicator::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-focus-indicator::before{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mdc-tab__ripple::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mdc-tab__ripple::before{background-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header{flex-direction:column-reverse}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header .mdc-tab-indicator__content--underline{align-self:flex-start}.mat-mdc-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-mdc-tab-body-wrapper._mat-animation-noopable{transition:none !important;animation:none !important}\"],\n encapsulation: 2\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatTabGroup, [{\n type: Component,\n args: [{\n selector: 'mat-tab-group',\n exportAs: 'matTabGroup',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Default,\n inputs: ['color', 'disableRipple'],\n providers: [{\n provide: MAT_TAB_GROUP,\n useExisting: MatTabGroup\n }],\n host: {\n 'ngSkipHydration': '',\n 'class': 'mat-mdc-tab-group',\n '[class.mat-mdc-tab-group-dynamic-height]': 'dynamicHeight',\n '[class.mat-mdc-tab-group-inverted-header]': 'headerPosition === \"below\"',\n '[class.mat-mdc-tab-group-stretch-tabs]': 'stretchTabs',\n '[style.--mat-tab-animation-duration]': 'animationDuration'\n },\n template: \"\\n\\n \\n \\n\\n \\n \\n\\n \\n \\n \\n \\n \\n \\n\\n \\n {{tab.textLabel}}\\n \\n \\n \\n\\n\\n\\n \\n \\n\\n\",\n styles: [\".mdc-tab{min-width:90px;padding-right:24px;padding-left:24px;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;margin:0;padding-top:0;padding-bottom:0;border:none;outline:none;text-align:center;white-space:nowrap;cursor:pointer;-webkit-appearance:none;z-index:1}.mdc-tab::-moz-focus-inner{padding:0;border:0}.mdc-tab[hidden]{display:none}.mdc-tab--min-width{flex:0 1 auto}.mdc-tab__content{display:flex;align-items:center;justify-content:center;height:inherit;pointer-events:none}.mdc-tab__text-label{transition:150ms color linear;display:inline-block;line-height:1;z-index:2}.mdc-tab__icon{transition:150ms color linear;z-index:2}.mdc-tab--stacked .mdc-tab__content{flex-direction:column;align-items:center;justify-content:center}.mdc-tab--stacked .mdc-tab__text-label{padding-top:6px;padding-bottom:4px}.mdc-tab--active .mdc-tab__text-label,.mdc-tab--active .mdc-tab__icon{transition-delay:100ms}.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label{padding-left:8px;padding-right:0}[dir=rtl] .mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label,.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label[dir=rtl]{padding-left:0;padding-right:8px}.mdc-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.mdc-tab-indicator__content{transform-origin:left;opacity:0}.mdc-tab-indicator__content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.mdc-tab-indicator__content--icon{align-self:center;margin:0 auto}.mdc-tab-indicator--active .mdc-tab-indicator__content{opacity:1}.mdc-tab-indicator .mdc-tab-indicator__content{transition:250ms transform cubic-bezier(0.4, 0, 0.2, 1)}.mdc-tab-indicator--no-transition .mdc-tab-indicator__content{transition:none}.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition:150ms opacity linear}.mdc-tab-indicator--active.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition-delay:100ms}.mat-mdc-tab-ripple{position:absolute;top:0;left:0;bottom:0;right:0;pointer-events:none}.mat-mdc-tab{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none;background:none;font-family:var(--mat-tab-header-label-text-font);font-size:var(--mat-tab-header-label-text-size);letter-spacing:var(--mat-tab-header-label-text-tracking);line-height:var(--mat-tab-header-label-text-line-height);font-weight:var(--mat-tab-header-label-text-weight)}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-color:var(--mdc-tab-indicator-active-indicator-color)}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-top-width:var(--mdc-tab-indicator-active-indicator-height)}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-radius:var(--mdc-tab-indicator-active-indicator-shape)}.mat-mdc-tab:not(.mdc-tab--stacked){height:var(--mdc-secondary-navigation-tab-container-height)}.mat-mdc-tab:not(:disabled).mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):hover.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):focus.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):active.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:disabled.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):hover:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):focus:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):active:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:disabled:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab.mdc-tab{flex-grow:0}.mat-mdc-tab:hover .mdc-tab__text-label{color:var(--mat-tab-header-inactive-hover-label-text-color)}.mat-mdc-tab:focus .mdc-tab__text-label{color:var(--mat-tab-header-inactive-focus-label-text-color)}.mat-mdc-tab.mdc-tab--active .mdc-tab__text-label{color:var(--mat-tab-header-active-label-text-color)}.mat-mdc-tab.mdc-tab--active .mdc-tab__ripple::before,.mat-mdc-tab.mdc-tab--active .mat-ripple-element{background-color:var(--mat-tab-header-active-ripple-color)}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab__text-label{color:var(--mat-tab-header-active-hover-label-text-color)}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-hover-indicator-color)}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab__text-label{color:var(--mat-tab-header-active-focus-label-text-color)}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-focus-indicator-color)}.mat-mdc-tab.mat-mdc-tab-disabled{opacity:.4;pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__content{pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__ripple::before,.mat-mdc-tab.mat-mdc-tab-disabled .mat-ripple-element{background-color:var(--mat-tab-header-disabled-ripple-color)}.mat-mdc-tab .mdc-tab__ripple::before{content:\\\"\\\";display:block;position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;pointer-events:none;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-inactive-label-text-color);display:inline-flex;align-items:center}.mat-mdc-tab .mdc-tab__content{position:relative;pointer-events:auto}.mat-mdc-tab:hover .mdc-tab__ripple::before{opacity:.04}.mat-mdc-tab.cdk-program-focused .mdc-tab__ripple::before,.mat-mdc-tab.cdk-keyboard-focused .mdc-tab__ripple::before{opacity:.12}.mat-mdc-tab .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab-group.mat-mdc-tab-group-stretch-tabs>.mat-mdc-tab-header .mat-mdc-tab{flex-grow:1}.mat-mdc-tab-group{display:flex;flex-direction:column;max-width:100%}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination{background-color:var(--mat-tab-header-with-background-background-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-focus-indicator::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-focus-indicator::before{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mdc-tab__ripple::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mdc-tab__ripple::before{background-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header{flex-direction:column-reverse}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header .mdc-tab-indicator__content--underline{align-self:flex-start}.mat-mdc-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-mdc-tab-body-wrapper._mat-animation-noopable{transition:none !important;animation:none !important}\"]\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [MAT_TABS_CONFIG]\n }, {\n type: Optional\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }]\n }];\n }, {\n _allTabs: [{\n type: ContentChildren,\n args: [MatTab, {\n descendants: true\n }]\n }],\n _tabBodyWrapper: [{\n type: ViewChild,\n args: ['tabBodyWrapper']\n }],\n _tabHeader: [{\n type: ViewChild,\n args: ['tabHeader']\n }],\n fitInkBarToContent: [{\n type: Input\n }],\n stretchTabs: [{\n type: Input,\n args: ['mat-stretch-tabs']\n }]\n });\n})();\n/** A simple change event emitted on focus or selection changes. */\nclass MatTabChangeEvent {}\n\n// Increasing integer for generating unique ids for tab nav components.\nlet nextUniqueId = 0;\n/**\n * Base class with all of the `MatTabNav` functionality.\n * @docs-private\n */\nclass _MatTabNavBase extends MatPaginatedTabHeader {\n /** Background color of the tab nav. */\n get backgroundColor() {\n return this._backgroundColor;\n }\n set backgroundColor(value) {\n const classList = this._elementRef.nativeElement.classList;\n classList.remove('mat-tabs-with-background', `mat-background-${this.backgroundColor}`);\n if (value) {\n classList.add('mat-tabs-with-background', `mat-background-${value}`);\n }\n this._backgroundColor = value;\n }\n /** Whether the ripple effect is disabled or not. */\n get disableRipple() {\n return this._disableRipple;\n }\n set disableRipple(value) {\n this._disableRipple = coerceBooleanProperty(value);\n }\n constructor(elementRef, dir, ngZone, changeDetectorRef, viewportRuler, platform, animationMode) {\n super(elementRef, changeDetectorRef, viewportRuler, dir, ngZone, platform, animationMode);\n this._disableRipple = false;\n /** Theme color of the nav bar. */\n this.color = 'primary';\n }\n _itemSelected() {\n // noop\n }\n ngAfterContentInit() {\n // We need this to run before the `changes` subscription in parent to ensure that the\n // selectedIndex is up-to-date by the time the super class starts looking for it.\n this._items.changes.pipe(startWith(null), takeUntil(this._destroyed)).subscribe(() => {\n this.updateActiveLink();\n });\n super.ngAfterContentInit();\n }\n /** Notifies the component that the active link has been changed. */\n updateActiveLink() {\n if (!this._items) {\n return;\n }\n const items = this._items.toArray();\n for (let i = 0; i < items.length; i++) {\n if (items[i].active) {\n this.selectedIndex = i;\n this._changeDetectorRef.markForCheck();\n if (this.tabPanel) {\n this.tabPanel._activeTabId = items[i].id;\n }\n return;\n }\n }\n // The ink bar should hide itself if no items are active.\n this.selectedIndex = -1;\n this._inkBar.hide();\n }\n _getRole() {\n return this.tabPanel ? 'tablist' : this._elementRef.nativeElement.getAttribute('role');\n }\n static {\n this.ɵfac = function _MatTabNavBase_Factory(ɵt) {\n return new (ɵt || _MatTabNavBase)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Directionality, 8), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1$1.ViewportRuler), i0.ɵɵdirectiveInject(i3.Platform), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: _MatTabNavBase,\n inputs: {\n backgroundColor: \"backgroundColor\",\n disableRipple: \"disableRipple\",\n color: \"color\",\n tabPanel: \"tabPanel\"\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(_MatTabNavBase, [{\n type: Directive\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i1.Directionality,\n decorators: [{\n type: Optional\n }]\n }, {\n type: i0.NgZone\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: i1$1.ViewportRuler\n }, {\n type: i3.Platform\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }]\n }];\n }, {\n backgroundColor: [{\n type: Input\n }],\n disableRipple: [{\n type: Input\n }],\n color: [{\n type: Input\n }],\n tabPanel: [{\n type: Input\n }]\n });\n})();\n// Boilerplate for applying mixins to MatTabLink.\nconst _MatTabLinkMixinBase = mixinTabIndex(mixinDisableRipple(mixinDisabled(class {})));\n/** Base class with all of the `MatTabLink` functionality. */\nclass _MatTabLinkBase extends _MatTabLinkMixinBase {\n /** Whether the link is active. */\n get active() {\n return this._isActive;\n }\n set active(value) {\n const newValue = coerceBooleanProperty(value);\n if (newValue !== this._isActive) {\n this._isActive = newValue;\n this._tabNavBar.updateActiveLink();\n }\n }\n /**\n * Whether ripples are disabled on interaction.\n * @docs-private\n */\n get rippleDisabled() {\n return this.disabled || this.disableRipple || this._tabNavBar.disableRipple || !!this.rippleConfig.disabled;\n }\n constructor(_tabNavBar, /** @docs-private */elementRef, globalRippleOptions, tabIndex, _focusMonitor, animationMode) {\n super();\n this._tabNavBar = _tabNavBar;\n this.elementRef = elementRef;\n this._focusMonitor = _focusMonitor;\n /** Whether the tab link is active or not. */\n this._isActive = false;\n /** Unique id for the tab. */\n this.id = `mat-tab-link-${nextUniqueId++}`;\n this.rippleConfig = globalRippleOptions || {};\n this.tabIndex = parseInt(tabIndex) || 0;\n if (animationMode === 'NoopAnimations') {\n this.rippleConfig.animation = {\n enterDuration: 0,\n exitDuration: 0\n };\n }\n }\n /** Focuses the tab link. */\n focus() {\n this.elementRef.nativeElement.focus();\n }\n ngAfterViewInit() {\n this._focusMonitor.monitor(this.elementRef);\n }\n ngOnDestroy() {\n this._focusMonitor.stopMonitoring(this.elementRef);\n }\n _handleFocus() {\n // Since we allow navigation through tabbing in the nav bar, we\n // have to update the focused index whenever the link receives focus.\n this._tabNavBar.focusIndex = this._tabNavBar._items.toArray().indexOf(this);\n }\n _handleKeydown(event) {\n if (event.keyCode === SPACE || event.keyCode === ENTER) {\n if (this.disabled) {\n event.preventDefault();\n } else if (this._tabNavBar.tabPanel) {\n this.elementRef.nativeElement.click();\n }\n }\n }\n _getAriaControls() {\n return this._tabNavBar.tabPanel ? this._tabNavBar.tabPanel?.id : this.elementRef.nativeElement.getAttribute('aria-controls');\n }\n _getAriaSelected() {\n if (this._tabNavBar.tabPanel) {\n return this.active ? 'true' : 'false';\n } else {\n return this.elementRef.nativeElement.getAttribute('aria-selected');\n }\n }\n _getAriaCurrent() {\n return this.active && !this._tabNavBar.tabPanel ? 'page' : null;\n }\n _getRole() {\n return this._tabNavBar.tabPanel ? 'tab' : this.elementRef.nativeElement.getAttribute('role');\n }\n _getTabIndex() {\n if (this._tabNavBar.tabPanel) {\n return this._isActive && !this.disabled ? 0 : -1;\n } else {\n return this.tabIndex;\n }\n }\n static {\n this.ɵfac = function _MatTabLinkBase_Factory(ɵt) {\n return new (ɵt || _MatTabLinkBase)(i0.ɵɵdirectiveInject(_MatTabNavBase), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(MAT_RIPPLE_GLOBAL_OPTIONS, 8), i0.ɵɵinjectAttribute('tabindex'), i0.ɵɵdirectiveInject(i4.FocusMonitor), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: _MatTabLinkBase,\n inputs: {\n active: \"active\",\n id: \"id\"\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(_MatTabLinkBase, [{\n type: Directive\n }], function () {\n return [{\n type: _MatTabNavBase\n }, {\n type: i0.ElementRef\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_RIPPLE_GLOBAL_OPTIONS]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Attribute,\n args: ['tabindex']\n }]\n }, {\n type: i4.FocusMonitor\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }]\n }];\n }, {\n active: [{\n type: Input\n }],\n id: [{\n type: Input\n }]\n });\n})();\nconst _MatTabLinkBaseWithInkBarItem = mixinInkBarItem(_MatTabLinkBase);\n/**\n * Navigation component matching the styles of the tab group header.\n * Provides anchored navigation with animated ink bar.\n */\nclass MatTabNav extends _MatTabNavBase {\n /** Whether the ink bar should fit its width to the size of the tab label content. */\n get fitInkBarToContent() {\n return this._fitInkBarToContent.value;\n }\n set fitInkBarToContent(v) {\n this._fitInkBarToContent.next(coerceBooleanProperty(v));\n this._changeDetectorRef.markForCheck();\n }\n /** Whether tabs should be stretched to fill the header. */\n get stretchTabs() {\n return this._stretchTabs;\n }\n set stretchTabs(v) {\n this._stretchTabs = coerceBooleanProperty(v);\n }\n get animationDuration() {\n return this._animationDuration;\n }\n set animationDuration(value) {\n this._animationDuration = /^\\d+$/.test(value + '') ? value + 'ms' : value;\n }\n constructor(elementRef, dir, ngZone, changeDetectorRef, viewportRuler, platform, animationMode, defaultConfig) {\n super(elementRef, dir, ngZone, changeDetectorRef, viewportRuler, platform, animationMode);\n this._fitInkBarToContent = new BehaviorSubject(false);\n this._stretchTabs = true;\n this.disablePagination = defaultConfig && defaultConfig.disablePagination != null ? defaultConfig.disablePagination : false;\n this.fitInkBarToContent = defaultConfig && defaultConfig.fitInkBarToContent != null ? defaultConfig.fitInkBarToContent : false;\n this.stretchTabs = defaultConfig && defaultConfig.stretchTabs != null ? defaultConfig.stretchTabs : true;\n }\n ngAfterContentInit() {\n this._inkBar = new MatInkBar(this._items);\n super.ngAfterContentInit();\n }\n ngAfterViewInit() {\n if (!this.tabPanel && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw new Error('A mat-tab-nav-panel must be specified via [tabPanel].');\n }\n super.ngAfterViewInit();\n }\n static {\n this.ɵfac = function MatTabNav_Factory(ɵt) {\n return new (ɵt || MatTabNav)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Directionality, 8), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1$1.ViewportRuler), i0.ɵɵdirectiveInject(i3.Platform), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8), i0.ɵɵdirectiveInject(MAT_TABS_CONFIG, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatTabNav,\n selectors: [[\"\", \"mat-tab-nav-bar\", \"\"]],\n contentQueries: function MatTabNav_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MatTabLink, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._items = _t);\n }\n },\n viewQuery: function MatTabNav_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c3, 7);\n i0.ɵɵviewQuery(_c4, 7);\n i0.ɵɵviewQuery(_c5, 7);\n i0.ɵɵviewQuery(_c6, 5);\n i0.ɵɵviewQuery(_c7, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._tabListContainer = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._tabList = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._tabListInner = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._nextPaginator = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._previousPaginator = _t.first);\n }\n },\n hostAttrs: [1, \"mat-mdc-tab-nav-bar\", \"mat-mdc-tab-header\"],\n hostVars: 17,\n hostBindings: function MatTabNav_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"role\", ctx._getRole());\n i0.ɵɵstyleProp(\"--mat-tab-animation-duration\", ctx.animationDuration);\n i0.ɵɵclassProp(\"mat-mdc-tab-header-pagination-controls-enabled\", ctx._showPaginationControls)(\"mat-mdc-tab-header-rtl\", ctx._getLayoutDirection() == \"rtl\")(\"mat-mdc-tab-nav-bar-stretch-tabs\", ctx.stretchTabs)(\"mat-primary\", ctx.color !== \"warn\" && ctx.color !== \"accent\")(\"mat-accent\", ctx.color === \"accent\")(\"mat-warn\", ctx.color === \"warn\")(\"_mat-animation-noopable\", ctx._animationMode === \"NoopAnimations\");\n }\n },\n inputs: {\n color: \"color\",\n fitInkBarToContent: \"fitInkBarToContent\",\n stretchTabs: [0, \"mat-stretch-tabs\", \"stretchTabs\"],\n animationDuration: \"animationDuration\"\n },\n exportAs: [\"matTabNavBar\", \"matTabNav\"],\n features: [i0.ɵɵInheritDefinitionFeature],\n attrs: _c10,\n ngContentSelectors: _c2,\n decls: 13,\n vars: 8,\n consts: [[\"previousPaginator\", \"\"], [\"tabListContainer\", \"\"], [\"tabList\", \"\"], [\"tabListInner\", \"\"], [\"nextPaginator\", \"\"], [\"aria-hidden\", \"true\", \"type\", \"button\", \"mat-ripple\", \"\", \"tabindex\", \"-1\", 1, \"mat-mdc-tab-header-pagination\", \"mat-mdc-tab-header-pagination-before\", 3, \"click\", \"mousedown\", \"touchend\", \"matRippleDisabled\", \"disabled\"], [1, \"mat-mdc-tab-header-pagination-chevron\"], [1, \"mat-mdc-tab-link-container\", 3, \"keydown\"], [1, \"mat-mdc-tab-list\", 3, \"cdkObserveContent\"], [1, \"mat-mdc-tab-links\"], [\"aria-hidden\", \"true\", \"type\", \"button\", \"mat-ripple\", \"\", \"tabindex\", \"-1\", 1, \"mat-mdc-tab-header-pagination\", \"mat-mdc-tab-header-pagination-after\", 3, \"mousedown\", \"click\", \"touchend\", \"matRippleDisabled\", \"disabled\"]],\n template: function MatTabNav_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"button\", 5, 0);\n i0.ɵɵlistener(\"click\", function MatTabNav_Template_button_click_0_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._handlePaginatorClick(\"before\"));\n })(\"mousedown\", function MatTabNav_Template_button_mousedown_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._handlePaginatorPress(\"before\", $event));\n })(\"touchend\", function MatTabNav_Template_button_touchend_0_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._stopInterval());\n });\n i0.ɵɵelement(2, \"div\", 6);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"div\", 7, 1);\n i0.ɵɵlistener(\"keydown\", function MatTabNav_Template_div_keydown_3_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._handleKeydown($event));\n });\n i0.ɵɵelementStart(5, \"div\", 8, 2);\n i0.ɵɵlistener(\"cdkObserveContent\", function MatTabNav_Template_div_cdkObserveContent_5_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._onContentChanges());\n });\n i0.ɵɵelementStart(7, \"div\", 9, 3);\n i0.ɵɵprojection(9);\n i0.ɵɵelementEnd()()();\n i0.ɵɵelementStart(10, \"button\", 10, 4);\n i0.ɵɵlistener(\"mousedown\", function MatTabNav_Template_button_mousedown_10_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._handlePaginatorPress(\"after\", $event));\n })(\"click\", function MatTabNav_Template_button_click_10_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._handlePaginatorClick(\"after\"));\n })(\"touchend\", function MatTabNav_Template_button_touchend_10_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._stopInterval());\n });\n i0.ɵɵelement(12, \"div\", 6);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"mat-mdc-tab-header-pagination-disabled\", ctx._disableScrollBefore);\n i0.ɵɵproperty(\"matRippleDisabled\", ctx._disableScrollBefore || ctx.disableRipple)(\"disabled\", ctx._disableScrollBefore || null);\n i0.ɵɵadvance(10);\n i0.ɵɵclassProp(\"mat-mdc-tab-header-pagination-disabled\", ctx._disableScrollAfter);\n i0.ɵɵproperty(\"matRippleDisabled\", ctx._disableScrollAfter || ctx.disableRipple)(\"disabled\", ctx._disableScrollAfter || null);\n }\n },\n dependencies: [i5.MatRipple, i5$1.CdkObserveContent],\n styles: [\".mdc-tab{min-width:90px;padding-right:24px;padding-left:24px;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;margin:0;padding-top:0;padding-bottom:0;border:none;outline:none;text-align:center;white-space:nowrap;cursor:pointer;-webkit-appearance:none;z-index:1}.mdc-tab::-moz-focus-inner{padding:0;border:0}.mdc-tab[hidden]{display:none}.mdc-tab--min-width{flex:0 1 auto}.mdc-tab__content{display:flex;align-items:center;justify-content:center;height:inherit;pointer-events:none}.mdc-tab__text-label{transition:150ms color linear;display:inline-block;line-height:1;z-index:2}.mdc-tab__icon{transition:150ms color linear;z-index:2}.mdc-tab--stacked .mdc-tab__content{flex-direction:column;align-items:center;justify-content:center}.mdc-tab--stacked .mdc-tab__text-label{padding-top:6px;padding-bottom:4px}.mdc-tab--active .mdc-tab__text-label,.mdc-tab--active .mdc-tab__icon{transition-delay:100ms}.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label{padding-left:8px;padding-right:0}[dir=rtl] .mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label,.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label[dir=rtl]{padding-left:0;padding-right:8px}.mdc-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.mdc-tab-indicator__content{transform-origin:left;opacity:0}.mdc-tab-indicator__content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.mdc-tab-indicator__content--icon{align-self:center;margin:0 auto}.mdc-tab-indicator--active .mdc-tab-indicator__content{opacity:1}.mdc-tab-indicator .mdc-tab-indicator__content{transition:250ms transform cubic-bezier(0.4, 0, 0.2, 1)}.mdc-tab-indicator--no-transition .mdc-tab-indicator__content{transition:none}.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition:150ms opacity linear}.mdc-tab-indicator--active.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition-delay:100ms}.mat-mdc-tab-ripple{position:absolute;top:0;left:0;bottom:0;right:0;pointer-events:none}.mat-mdc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0;--mdc-tab-indicator-active-indicator-height:2px;--mdc-tab-indicator-active-indicator-shape:0;--mdc-secondary-navigation-tab-container-height:48px}.mdc-tab-indicator .mdc-tab-indicator__content{transition-duration:var(--mat-tab-animation-duration, 250ms)}.mat-mdc-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:none;box-sizing:content-box;background:none;border:none;outline:0;padding:0}.mat-mdc-tab-header-pagination::-moz-focus-inner{border:0}.mat-mdc-tab-header-pagination .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-header-pagination{display:flex}.mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after{padding-left:4px}.mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-pagination-after{padding-right:4px}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-mdc-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px;border-color:var(--mat-tab-header-pagination-icon-color)}.mat-mdc-tab-header-pagination-disabled{box-shadow:none;cursor:default;pointer-events:none}.mat-mdc-tab-header-pagination-disabled .mat-mdc-tab-header-pagination-chevron{opacity:.4}.mat-mdc-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-mdc-tab-list{transition:none}._mat-animation-noopable span.mdc-tab-indicator__content,._mat-animation-noopable span.mdc-tab__text-label{transition:none}.mat-mdc-tab-links{display:flex;flex:1 0 auto}[mat-align-tabs=center]>.mat-mdc-tab-link-container .mat-mdc-tab-links{justify-content:center}[mat-align-tabs=end]>.mat-mdc-tab-link-container .mat-mdc-tab-links{justify-content:flex-end}.mat-mdc-tab-link-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination{background-color:var(--mat-tab-header-with-background-background-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background.mat-primary>.mat-mdc-tab-link-container .mat-mdc-tab-link .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background.mat-primary>.mat-mdc-tab-link-container .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-link-container .mat-mdc-tab-link:not(.mdc-tab--active) .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-link-container .mat-mdc-tab-link:not(.mdc-tab--active) .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mat-mdc-focus-indicator::before,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-focus-indicator::before{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mat-ripple-element,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mdc-tab__ripple::before,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-ripple-element,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mdc-tab__ripple::before{background-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron{color:var(--mat-tab-header-with-background-foreground-color)}\"],\n encapsulation: 2\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatTabNav, [{\n type: Component,\n args: [{\n selector: '[mat-tab-nav-bar]',\n exportAs: 'matTabNavBar, matTabNav',\n inputs: ['color'],\n host: {\n '[attr.role]': '_getRole()',\n 'class': 'mat-mdc-tab-nav-bar mat-mdc-tab-header',\n '[class.mat-mdc-tab-header-pagination-controls-enabled]': '_showPaginationControls',\n '[class.mat-mdc-tab-header-rtl]': \"_getLayoutDirection() == 'rtl'\",\n '[class.mat-mdc-tab-nav-bar-stretch-tabs]': 'stretchTabs',\n '[class.mat-primary]': 'color !== \"warn\" && color !== \"accent\"',\n '[class.mat-accent]': 'color === \"accent\"',\n '[class.mat-warn]': 'color === \"warn\"',\n '[class._mat-animation-noopable]': '_animationMode === \"NoopAnimations\"',\n '[style.--mat-tab-animation-duration]': 'animationDuration'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Default,\n template: \"\\n\\n \\n\\n\\n\\n \\n \\n \\n \\n \\n\\n\\n\\n\\n \\n\\n\",\n styles: [\".mdc-tab{min-width:90px;padding-right:24px;padding-left:24px;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;margin:0;padding-top:0;padding-bottom:0;border:none;outline:none;text-align:center;white-space:nowrap;cursor:pointer;-webkit-appearance:none;z-index:1}.mdc-tab::-moz-focus-inner{padding:0;border:0}.mdc-tab[hidden]{display:none}.mdc-tab--min-width{flex:0 1 auto}.mdc-tab__content{display:flex;align-items:center;justify-content:center;height:inherit;pointer-events:none}.mdc-tab__text-label{transition:150ms color linear;display:inline-block;line-height:1;z-index:2}.mdc-tab__icon{transition:150ms color linear;z-index:2}.mdc-tab--stacked .mdc-tab__content{flex-direction:column;align-items:center;justify-content:center}.mdc-tab--stacked .mdc-tab__text-label{padding-top:6px;padding-bottom:4px}.mdc-tab--active .mdc-tab__text-label,.mdc-tab--active .mdc-tab__icon{transition-delay:100ms}.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label{padding-left:8px;padding-right:0}[dir=rtl] .mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label,.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label[dir=rtl]{padding-left:0;padding-right:8px}.mdc-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.mdc-tab-indicator__content{transform-origin:left;opacity:0}.mdc-tab-indicator__content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.mdc-tab-indicator__content--icon{align-self:center;margin:0 auto}.mdc-tab-indicator--active .mdc-tab-indicator__content{opacity:1}.mdc-tab-indicator .mdc-tab-indicator__content{transition:250ms transform cubic-bezier(0.4, 0, 0.2, 1)}.mdc-tab-indicator--no-transition .mdc-tab-indicator__content{transition:none}.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition:150ms opacity linear}.mdc-tab-indicator--active.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition-delay:100ms}.mat-mdc-tab-ripple{position:absolute;top:0;left:0;bottom:0;right:0;pointer-events:none}.mat-mdc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0;--mdc-tab-indicator-active-indicator-height:2px;--mdc-tab-indicator-active-indicator-shape:0;--mdc-secondary-navigation-tab-container-height:48px}.mdc-tab-indicator .mdc-tab-indicator__content{transition-duration:var(--mat-tab-animation-duration, 250ms)}.mat-mdc-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:none;box-sizing:content-box;background:none;border:none;outline:0;padding:0}.mat-mdc-tab-header-pagination::-moz-focus-inner{border:0}.mat-mdc-tab-header-pagination .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-header-pagination{display:flex}.mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after{padding-left:4px}.mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-pagination-after{padding-right:4px}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-mdc-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px;border-color:var(--mat-tab-header-pagination-icon-color)}.mat-mdc-tab-header-pagination-disabled{box-shadow:none;cursor:default;pointer-events:none}.mat-mdc-tab-header-pagination-disabled .mat-mdc-tab-header-pagination-chevron{opacity:.4}.mat-mdc-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-mdc-tab-list{transition:none}._mat-animation-noopable span.mdc-tab-indicator__content,._mat-animation-noopable span.mdc-tab__text-label{transition:none}.mat-mdc-tab-links{display:flex;flex:1 0 auto}[mat-align-tabs=center]>.mat-mdc-tab-link-container .mat-mdc-tab-links{justify-content:center}[mat-align-tabs=end]>.mat-mdc-tab-link-container .mat-mdc-tab-links{justify-content:flex-end}.mat-mdc-tab-link-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination{background-color:var(--mat-tab-header-with-background-background-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background.mat-primary>.mat-mdc-tab-link-container .mat-mdc-tab-link .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background.mat-primary>.mat-mdc-tab-link-container .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-link-container .mat-mdc-tab-link:not(.mdc-tab--active) .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-link-container .mat-mdc-tab-link:not(.mdc-tab--active) .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mat-mdc-focus-indicator::before,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-focus-indicator::before{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mat-ripple-element,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mdc-tab__ripple::before,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-ripple-element,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mdc-tab__ripple::before{background-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron{color:var(--mat-tab-header-with-background-foreground-color)}\"]\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i1.Directionality,\n decorators: [{\n type: Optional\n }]\n }, {\n type: i0.NgZone\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: i1$1.ViewportRuler\n }, {\n type: i3.Platform\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_TABS_CONFIG]\n }]\n }];\n }, {\n fitInkBarToContent: [{\n type: Input\n }],\n stretchTabs: [{\n type: Input,\n args: ['mat-stretch-tabs']\n }],\n animationDuration: [{\n type: Input\n }],\n _items: [{\n type: ContentChildren,\n args: [forwardRef(() => MatTabLink), {\n descendants: true\n }]\n }],\n _tabListContainer: [{\n type: ViewChild,\n args: ['tabListContainer', {\n static: true\n }]\n }],\n _tabList: [{\n type: ViewChild,\n args: ['tabList', {\n static: true\n }]\n }],\n _tabListInner: [{\n type: ViewChild,\n args: ['tabListInner', {\n static: true\n }]\n }],\n _nextPaginator: [{\n type: ViewChild,\n args: ['nextPaginator']\n }],\n _previousPaginator: [{\n type: ViewChild,\n args: ['previousPaginator']\n }]\n });\n})();\n/**\n * Link inside of a `mat-tab-nav-bar`.\n */\nclass MatTabLink extends _MatTabLinkBaseWithInkBarItem {\n constructor(tabNavBar, elementRef, globalRippleOptions, tabIndex, focusMonitor, animationMode) {\n super(tabNavBar, elementRef, globalRippleOptions, tabIndex, focusMonitor, animationMode);\n this._destroyed = new Subject();\n tabNavBar._fitInkBarToContent.pipe(takeUntil(this._destroyed)).subscribe(fitInkBarToContent => {\n this.fitInkBarToContent = fitInkBarToContent;\n });\n }\n ngOnDestroy() {\n this._destroyed.next();\n this._destroyed.complete();\n super.ngOnDestroy();\n }\n static {\n this.ɵfac = function MatTabLink_Factory(ɵt) {\n return new (ɵt || MatTabLink)(i0.ɵɵdirectiveInject(MatTabNav), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(MAT_RIPPLE_GLOBAL_OPTIONS, 8), i0.ɵɵinjectAttribute('tabindex'), i0.ɵɵdirectiveInject(i4.FocusMonitor), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatTabLink,\n selectors: [[\"\", \"mat-tab-link\", \"\"], [\"\", \"matTabLink\", \"\"]],\n hostAttrs: [1, \"mdc-tab\", \"mat-mdc-tab-link\", \"mat-mdc-focus-indicator\"],\n hostVars: 11,\n hostBindings: function MatTabLink_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"focus\", function MatTabLink_focus_HostBindingHandler() {\n return ctx._handleFocus();\n })(\"keydown\", function MatTabLink_keydown_HostBindingHandler($event) {\n return ctx._handleKeydown($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-controls\", ctx._getAriaControls())(\"aria-current\", ctx._getAriaCurrent())(\"aria-disabled\", ctx.disabled)(\"aria-selected\", ctx._getAriaSelected())(\"id\", ctx.id)(\"tabIndex\", ctx._getTabIndex())(\"role\", ctx._getRole());\n i0.ɵɵclassProp(\"mat-mdc-tab-disabled\", ctx.disabled)(\"mdc-tab--active\", ctx.active);\n }\n },\n inputs: {\n disabled: \"disabled\",\n disableRipple: \"disableRipple\",\n tabIndex: \"tabIndex\",\n active: \"active\",\n id: \"id\"\n },\n exportAs: [\"matTabLink\"],\n features: [i0.ɵɵInheritDefinitionFeature],\n attrs: _c11,\n ngContentSelectors: _c2,\n decls: 5,\n vars: 2,\n consts: [[1, \"mdc-tab__ripple\"], [\"mat-ripple\", \"\", 1, \"mat-mdc-tab-ripple\", 3, \"matRippleTrigger\", \"matRippleDisabled\"], [1, \"mdc-tab__content\"], [1, \"mdc-tab__text-label\"]],\n template: function MatTabLink_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelement(0, \"span\", 0)(1, \"div\", 1);\n i0.ɵɵelementStart(2, \"span\", 2)(3, \"span\", 3);\n i0.ɵɵprojection(4);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"matRippleTrigger\", ctx.elementRef.nativeElement)(\"matRippleDisabled\", ctx.rippleDisabled);\n }\n },\n dependencies: [i5.MatRipple],\n styles: [\".mat-mdc-tab-link{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none;background:none;font-family:var(--mat-tab-header-label-text-font);font-size:var(--mat-tab-header-label-text-size);letter-spacing:var(--mat-tab-header-label-text-tracking);line-height:var(--mat-tab-header-label-text-line-height);font-weight:var(--mat-tab-header-label-text-weight)}.mat-mdc-tab-link .mdc-tab-indicator__content--underline{border-color:var(--mdc-tab-indicator-active-indicator-color)}.mat-mdc-tab-link .mdc-tab-indicator__content--underline{border-top-width:var(--mdc-tab-indicator-active-indicator-height)}.mat-mdc-tab-link .mdc-tab-indicator__content--underline{border-radius:var(--mdc-tab-indicator-active-indicator-shape)}.mat-mdc-tab-link:not(.mdc-tab--stacked){height:var(--mdc-secondary-navigation-tab-container-height)}.mat-mdc-tab-link:not(:disabled).mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link:not(:disabled):hover.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link:not(:disabled):focus.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link:not(:disabled):active.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link:disabled.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link:not(:disabled):not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link:not(:disabled):hover:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link:not(:disabled):focus:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link:not(:disabled):active:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link:disabled:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link.mdc-tab{flex-grow:0}.mat-mdc-tab-link:hover .mdc-tab__text-label{color:var(--mat-tab-header-inactive-hover-label-text-color)}.mat-mdc-tab-link:focus .mdc-tab__text-label{color:var(--mat-tab-header-inactive-focus-label-text-color)}.mat-mdc-tab-link.mdc-tab--active .mdc-tab__text-label{color:var(--mat-tab-header-active-label-text-color)}.mat-mdc-tab-link.mdc-tab--active .mdc-tab__ripple::before,.mat-mdc-tab-link.mdc-tab--active .mat-ripple-element{background-color:var(--mat-tab-header-active-ripple-color)}.mat-mdc-tab-link.mdc-tab--active:hover .mdc-tab__text-label{color:var(--mat-tab-header-active-hover-label-text-color)}.mat-mdc-tab-link.mdc-tab--active:hover .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-hover-indicator-color)}.mat-mdc-tab-link.mdc-tab--active:focus .mdc-tab__text-label{color:var(--mat-tab-header-active-focus-label-text-color)}.mat-mdc-tab-link.mdc-tab--active:focus .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-focus-indicator-color)}.mat-mdc-tab-link.mat-mdc-tab-disabled{opacity:.4;pointer-events:none}.mat-mdc-tab-link.mat-mdc-tab-disabled .mdc-tab__content{pointer-events:none}.mat-mdc-tab-link.mat-mdc-tab-disabled .mdc-tab__ripple::before,.mat-mdc-tab-link.mat-mdc-tab-disabled .mat-ripple-element{background-color:var(--mat-tab-header-disabled-ripple-color)}.mat-mdc-tab-link .mdc-tab__ripple::before{content:\\\"\\\";display:block;position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;pointer-events:none;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab-link .mdc-tab__text-label{color:var(--mat-tab-header-inactive-label-text-color);display:inline-flex;align-items:center}.mat-mdc-tab-link .mdc-tab__content{position:relative;pointer-events:auto}.mat-mdc-tab-link:hover .mdc-tab__ripple::before{opacity:.04}.mat-mdc-tab-link.cdk-program-focused .mdc-tab__ripple::before,.mat-mdc-tab-link.cdk-keyboard-focused .mdc-tab__ripple::before{opacity:.12}.mat-mdc-tab-link .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab-header.mat-mdc-tab-nav-bar-stretch-tabs .mat-mdc-tab-link{flex-grow:1}.mat-mdc-tab-link::before{margin:5px}@media(max-width: 599px){.mat-mdc-tab-link{min-width:72px}}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatTabLink, [{\n type: Component,\n args: [{\n selector: '[mat-tab-link], [matTabLink]',\n exportAs: 'matTabLink',\n inputs: ['disabled', 'disableRipple', 'tabIndex', 'active', 'id'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'mdc-tab mat-mdc-tab-link mat-mdc-focus-indicator',\n '[attr.aria-controls]': '_getAriaControls()',\n '[attr.aria-current]': '_getAriaCurrent()',\n '[attr.aria-disabled]': 'disabled',\n '[attr.aria-selected]': '_getAriaSelected()',\n '[attr.id]': 'id',\n '[attr.tabIndex]': '_getTabIndex()',\n '[attr.role]': '_getRole()',\n '[class.mat-mdc-tab-disabled]': 'disabled',\n '[class.mdc-tab--active]': 'active',\n '(focus)': '_handleFocus()',\n '(keydown)': '_handleKeydown($event)'\n },\n template: \"\\n\\n\\n\\n\\n \\n \\n \\n\\n\\n\",\n styles: [\".mat-mdc-tab-link{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none;background:none;font-family:var(--mat-tab-header-label-text-font);font-size:var(--mat-tab-header-label-text-size);letter-spacing:var(--mat-tab-header-label-text-tracking);line-height:var(--mat-tab-header-label-text-line-height);font-weight:var(--mat-tab-header-label-text-weight)}.mat-mdc-tab-link .mdc-tab-indicator__content--underline{border-color:var(--mdc-tab-indicator-active-indicator-color)}.mat-mdc-tab-link .mdc-tab-indicator__content--underline{border-top-width:var(--mdc-tab-indicator-active-indicator-height)}.mat-mdc-tab-link .mdc-tab-indicator__content--underline{border-radius:var(--mdc-tab-indicator-active-indicator-shape)}.mat-mdc-tab-link:not(.mdc-tab--stacked){height:var(--mdc-secondary-navigation-tab-container-height)}.mat-mdc-tab-link:not(:disabled).mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link:not(:disabled):hover.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link:not(:disabled):focus.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link:not(:disabled):active.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link:disabled.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link:not(:disabled):not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link:not(:disabled):hover:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link:not(:disabled):focus:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link:not(:disabled):active:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link:disabled:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link.mdc-tab{flex-grow:0}.mat-mdc-tab-link:hover .mdc-tab__text-label{color:var(--mat-tab-header-inactive-hover-label-text-color)}.mat-mdc-tab-link:focus .mdc-tab__text-label{color:var(--mat-tab-header-inactive-focus-label-text-color)}.mat-mdc-tab-link.mdc-tab--active .mdc-tab__text-label{color:var(--mat-tab-header-active-label-text-color)}.mat-mdc-tab-link.mdc-tab--active .mdc-tab__ripple::before,.mat-mdc-tab-link.mdc-tab--active .mat-ripple-element{background-color:var(--mat-tab-header-active-ripple-color)}.mat-mdc-tab-link.mdc-tab--active:hover .mdc-tab__text-label{color:var(--mat-tab-header-active-hover-label-text-color)}.mat-mdc-tab-link.mdc-tab--active:hover .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-hover-indicator-color)}.mat-mdc-tab-link.mdc-tab--active:focus .mdc-tab__text-label{color:var(--mat-tab-header-active-focus-label-text-color)}.mat-mdc-tab-link.mdc-tab--active:focus .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-focus-indicator-color)}.mat-mdc-tab-link.mat-mdc-tab-disabled{opacity:.4;pointer-events:none}.mat-mdc-tab-link.mat-mdc-tab-disabled .mdc-tab__content{pointer-events:none}.mat-mdc-tab-link.mat-mdc-tab-disabled .mdc-tab__ripple::before,.mat-mdc-tab-link.mat-mdc-tab-disabled .mat-ripple-element{background-color:var(--mat-tab-header-disabled-ripple-color)}.mat-mdc-tab-link .mdc-tab__ripple::before{content:\\\"\\\";display:block;position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;pointer-events:none;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab-link .mdc-tab__text-label{color:var(--mat-tab-header-inactive-label-text-color);display:inline-flex;align-items:center}.mat-mdc-tab-link .mdc-tab__content{position:relative;pointer-events:auto}.mat-mdc-tab-link:hover .mdc-tab__ripple::before{opacity:.04}.mat-mdc-tab-link.cdk-program-focused .mdc-tab__ripple::before,.mat-mdc-tab-link.cdk-keyboard-focused .mdc-tab__ripple::before{opacity:.12}.mat-mdc-tab-link .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab-header.mat-mdc-tab-nav-bar-stretch-tabs .mat-mdc-tab-link{flex-grow:1}.mat-mdc-tab-link::before{margin:5px}@media(max-width: 599px){.mat-mdc-tab-link{min-width:72px}}\"]\n }]\n }], function () {\n return [{\n type: MatTabNav\n }, {\n type: i0.ElementRef\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_RIPPLE_GLOBAL_OPTIONS]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Attribute,\n args: ['tabindex']\n }]\n }, {\n type: i4.FocusMonitor\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }]\n }];\n }, null);\n})();\n/**\n * Tab panel component associated with MatTabNav.\n */\nclass MatTabNavPanel {\n constructor() {\n /** Unique id for the tab panel. */\n this.id = `mat-tab-nav-panel-${nextUniqueId++}`;\n }\n static {\n this.ɵfac = function MatTabNavPanel_Factory(ɵt) {\n return new (ɵt || MatTabNavPanel)();\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatTabNavPanel,\n selectors: [[\"mat-tab-nav-panel\"]],\n hostAttrs: [\"role\", \"tabpanel\", 1, \"mat-mdc-tab-nav-panel\"],\n hostVars: 2,\n hostBindings: function MatTabNavPanel_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-labelledby\", ctx._activeTabId)(\"id\", ctx.id);\n }\n },\n inputs: {\n id: \"id\"\n },\n exportAs: [\"matTabNavPanel\"],\n ngContentSelectors: _c2,\n decls: 1,\n vars: 0,\n template: function MatTabNavPanel_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵprojection(0);\n }\n },\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatTabNavPanel, [{\n type: Component,\n args: [{\n selector: 'mat-tab-nav-panel',\n exportAs: 'matTabNavPanel',\n template: '',\n host: {\n '[attr.aria-labelledby]': '_activeTabId',\n '[attr.id]': 'id',\n 'class': 'mat-mdc-tab-nav-panel',\n 'role': 'tabpanel'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], null, {\n id: [{\n type: Input\n }]\n });\n})();\nclass MatTabsModule {\n static {\n this.ɵfac = function MatTabsModule_Factory(ɵt) {\n return new (ɵt || MatTabsModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatTabsModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule, MatCommonModule, PortalModule, MatRippleModule, ObserversModule, A11yModule, MatCommonModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatTabsModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule, MatCommonModule, PortalModule, MatRippleModule, ObserversModule, A11yModule],\n exports: [MatCommonModule, MatTabContent, MatTabLabel, MatTab, MatTabGroup, MatTabNav, MatTabNavPanel, MatTabLink],\n declarations: [MatTabContent, MatTabLabel, MatTab, MatTabGroup, MatTabNav, MatTabNavPanel, MatTabLink,\n // Private directives, should not be exported.\n MatTabBody, MatTabBodyPortal, MatTabLabelWrapper, MatTabHeader]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_TAB, MAT_TABS_CONFIG, MAT_TAB_CONTENT, MAT_TAB_GROUP, MAT_TAB_LABEL, MatInkBar, MatPaginatedTabHeader, MatTab, MatTabBody, MatTabBodyPortal, MatTabChangeEvent, MatTabContent, MatTabGroup, MatTabHeader, MatTabLabel, MatTabLabelWrapper, MatTabLink, MatTabNav, MatTabNavPanel, MatTabsModule, _MAT_INK_BAR_POSITIONER, _MAT_INK_BAR_POSITIONER_FACTORY, _MatTabBase, _MatTabBodyBase, _MatTabGroupBase, _MatTabHeaderBase, _MatTabLabelWrapperBase, _MatTabLinkBase, _MatTabNavBase, matTabsAnimations };\n","import * as i7 from '@angular/cdk/a11y';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport * as i5 from '@angular/cdk/observers';\nimport { ObserversModule } from '@angular/cdk/observers';\nimport * as i2 from '@angular/cdk/portal';\nimport { CdkPortalOutlet, PortalModule } from '@angular/cdk/portal';\nimport * as i1$2 from '@angular/common';\nimport { DOCUMENT, CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Directive, Inject, Optional, TemplateRef, Component, ChangeDetectionStrategy, ViewEncapsulation, ContentChild, forwardRef, ViewChild, ContentChildren, Attribute, Input, NgModule } from '@angular/core';\nimport * as i4 from '@angular/material/core';\nimport { RippleRenderer, MAT_RIPPLE_GLOBAL_OPTIONS, MatCommonModule, MatRippleModule } from '@angular/material/core';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\nimport { take } from 'rxjs/operators';\nimport { _MAT_INK_BAR_POSITIONER, _MatTabBase, MAT_TAB, MAT_TAB_LABEL, MAT_TAB_CONTENT, MatTabBodyPortal, _MatTabBodyBase, matTabsAnimations, _MatTabLabelWrapperBase, _MatTabHeaderBase, _MatTabGroupBase, MAT_TABS_CONFIG, MAT_TAB_GROUP, _MatTabNavBase, _MatTabLinkBase, MatTabLabel, MatTabContent } from '@angular/material/tabs';\nconst _c0 = [\"*\"];\nfunction MatLegacyTab_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojection(0);\n }\n}\nconst _c1 = a0 => ({\n animationDuration: a0\n});\nconst _c2 = (a0, a1) => ({\n value: a0,\n params: a1\n});\nfunction MatLegacyTabBody_ng_template_2_Template(rf, ctx) {}\nconst _c3 = [\"tabListContainer\"];\nconst _c4 = [\"tabList\"];\nconst _c5 = [\"tabListInner\"];\nconst _c6 = [\"nextPaginator\"];\nconst _c7 = [\"previousPaginator\"];\nconst _c8 = [\"tabBodyWrapper\"];\nconst _c9 = [\"tabHeader\"];\nfunction MatLegacyTabGroup_div_2_ng_template_2_ng_template_0_Template(rf, ctx) {}\nfunction MatLegacyTabGroup_div_2_ng_template_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, MatLegacyTabGroup_div_2_ng_template_2_ng_template_0_Template, 0, 0, \"ng-template\", 10);\n }\n if (rf & 2) {\n const tab_r4 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵproperty(\"cdkPortalOutlet\", tab_r4.templateLabel);\n }\n}\nfunction MatLegacyTabGroup_div_2_ng_template_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtext(0);\n }\n if (rf & 2) {\n const tab_r4 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵtextInterpolate(tab_r4.textLabel);\n }\n}\nfunction MatLegacyTabGroup_div_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r2 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 7);\n i0.ɵɵlistener(\"click\", function MatLegacyTabGroup_div_2_Template_div_click_0_listener() {\n const ctx_r2 = i0.ɵɵrestoreView(_r2);\n const tab_r4 = ctx_r2.$implicit;\n const i_r5 = ctx_r2.index;\n const ctx_r5 = i0.ɵɵnextContext();\n const tabHeader_r7 = i0.ɵɵreference(1);\n return i0.ɵɵresetView(ctx_r5._handleClick(tab_r4, tabHeader_r7, i_r5));\n })(\"cdkFocusChange\", function MatLegacyTabGroup_div_2_Template_div_cdkFocusChange_0_listener($event) {\n const i_r5 = i0.ɵɵrestoreView(_r2).index;\n const ctx_r5 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r5._tabFocusChanged($event, i_r5));\n });\n i0.ɵɵelementStart(1, \"div\", 8);\n i0.ɵɵtemplate(2, MatLegacyTabGroup_div_2_ng_template_2_Template, 1, 1, \"ng-template\", 9)(3, MatLegacyTabGroup_div_2_ng_template_3_Template, 1, 1, \"ng-template\", null, 2, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const tab_r4 = ctx.$implicit;\n const i_r5 = ctx.index;\n const tabTextLabel_r8 = i0.ɵɵreference(4);\n const ctx_r5 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"mat-tab-label-active\", ctx_r5.selectedIndex === i_r5);\n i0.ɵɵproperty(\"id\", ctx_r5._getTabLabelId(i_r5))(\"ngClass\", tab_r4.labelClass)(\"disabled\", tab_r4.disabled)(\"matRippleDisabled\", tab_r4.disabled || ctx_r5.disableRipple);\n i0.ɵɵattribute(\"tabIndex\", ctx_r5._getTabIndex(i_r5))(\"aria-posinset\", i_r5 + 1)(\"aria-setsize\", ctx_r5._tabs.length)(\"aria-controls\", ctx_r5._getTabContentId(i_r5))(\"aria-selected\", ctx_r5.selectedIndex === i_r5)(\"aria-label\", tab_r4.ariaLabel || null)(\"aria-labelledby\", !tab_r4.ariaLabel && tab_r4.ariaLabelledby ? tab_r4.ariaLabelledby : null);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", tab_r4.templateLabel)(\"ngIfElse\", tabTextLabel_r8);\n }\n}\nfunction MatLegacyTabGroup_mat_tab_body_5_Template(rf, ctx) {\n if (rf & 1) {\n const _r9 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"mat-tab-body\", 11);\n i0.ɵɵlistener(\"_onCentered\", function MatLegacyTabGroup_mat_tab_body_5_Template_mat_tab_body__onCentered_0_listener() {\n i0.ɵɵrestoreView(_r9);\n const ctx_r5 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r5._removeTabBodyWrapperHeight());\n })(\"_onCentering\", function MatLegacyTabGroup_mat_tab_body_5_Template_mat_tab_body__onCentering_0_listener($event) {\n i0.ɵɵrestoreView(_r9);\n const ctx_r5 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r5._setTabBodyWrapperHeight($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const tab_r10 = ctx.$implicit;\n const i_r11 = ctx.index;\n const ctx_r5 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"mat-tab-body-active\", ctx_r5.selectedIndex === i_r11);\n i0.ɵɵproperty(\"id\", ctx_r5._getTabContentId(i_r11))(\"ngClass\", tab_r10.bodyClass)(\"content\", tab_r10.content)(\"position\", tab_r10.position)(\"origin\", tab_r10.origin)(\"animationDuration\", ctx_r5.animationDuration)(\"preserveContent\", ctx_r5.preserveContent);\n i0.ɵɵattribute(\"tabindex\", ctx_r5.contentTabIndex != null && ctx_r5.selectedIndex === i_r11 ? ctx_r5.contentTabIndex : null)(\"aria-labelledby\", ctx_r5._getTabLabelId(i_r11));\n }\n}\nconst _c10 = [\"mat-tab-nav-bar\", \"\"];\nexport { MAT_TAB as MAT_LEGACY_TAB, MAT_TABS_CONFIG as MAT_LEGACY_TABS_CONFIG, MAT_TAB_CONTENT as MAT_LEGACY_TAB_CONTENT, MAT_TAB_GROUP as MAT_LEGACY_TAB_GROUP, MatPaginatedTabHeader as MatLegacyPaginatedTabHeader, MatTabChangeEvent as MatLegacyTabChangeEvent, _MAT_INK_BAR_POSITIONER as _MAT_LEGACY_INK_BAR_POSITIONER, _MAT_INK_BAR_POSITIONER_FACTORY as _MAT_LEGACY_INK_BAR_POSITIONER_FACTORY, _MatTabBase as _MatLegacyTabBase, _MatTabBodyBase as _MatLegacyTabBodyBase, _MatTabGroupBase as _MatLegacyTabGroupBase, _MatTabHeaderBase as _MatLegacyTabHeaderBase, _MatTabLinkBase as _MatLegacyTabLinkBase, _MatTabNavBase as _MatLegacyTabNavBase, matTabsAnimations as matLegacyTabsAnimations } from '@angular/material/tabs';\nimport * as i1 from '@angular/cdk/bidi';\nimport * as i1$1 from '@angular/cdk/scrolling';\nimport * as i3 from '@angular/cdk/platform';\n\n/**\n * The ink-bar is used to display and animate the line underneath the current active tab label.\n * @docs-private\n * @deprecated Use `MatInkBar` from `@angular/material/tabs` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyInkBar {\n constructor(_elementRef, _ngZone, _inkBarPositioner, _animationMode) {\n this._elementRef = _elementRef;\n this._ngZone = _ngZone;\n this._inkBarPositioner = _inkBarPositioner;\n this._animationMode = _animationMode;\n }\n /**\n * Calculates the styles from the provided element in order to align the ink-bar to that element.\n * Shows the ink bar if previously set as hidden.\n * @param element\n */\n alignToElement(element) {\n this.show();\n // `onStable` might not run for a while if the zone has already stabilized.\n // Wrap the call in `NgZone.run` to ensure that it runs relatively soon.\n this._ngZone.run(() => {\n this._ngZone.onStable.pipe(take(1)).subscribe(() => {\n const positions = this._inkBarPositioner(element);\n const inkBar = this._elementRef.nativeElement;\n inkBar.style.left = positions.left;\n inkBar.style.width = positions.width;\n });\n });\n }\n /** Shows the ink bar. */\n show() {\n this._elementRef.nativeElement.style.visibility = 'visible';\n }\n /** Hides the ink bar. */\n hide() {\n this._elementRef.nativeElement.style.visibility = 'hidden';\n }\n static {\n this.ɵfac = function MatLegacyInkBar_Factory(ɵt) {\n return new (ɵt || MatLegacyInkBar)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(_MAT_INK_BAR_POSITIONER), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyInkBar,\n selectors: [[\"mat-ink-bar\"]],\n hostAttrs: [1, \"mat-ink-bar\"],\n hostVars: 2,\n hostBindings: function MatLegacyInkBar_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"_mat-animation-noopable\", ctx._animationMode === \"NoopAnimations\");\n }\n }\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyInkBar, [{\n type: Directive,\n args: [{\n selector: 'mat-ink-bar',\n host: {\n 'class': 'mat-ink-bar',\n '[class._mat-animation-noopable]': `_animationMode === 'NoopAnimations'`\n }\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i0.NgZone\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [_MAT_INK_BAR_POSITIONER]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }]\n }];\n }, null);\n})();\n\n/**\n * @deprecated Use `MatTab` from `@angular/material/tabs` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyTab extends _MatTabBase {\n constructor() {\n super(...arguments);\n /**\n * Template provided in the tab content that will be used if present, used to enable lazy-loading\n */\n this._explicitContent = undefined;\n }\n /** Content for the tab label given by ``. */\n get templateLabel() {\n return this._templateLabel;\n }\n set templateLabel(value) {\n this._setTemplateLabelInput(value);\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatLegacyTab_BaseFactory;\n return function MatLegacyTab_Factory(ɵt) {\n return (ɵMatLegacyTab_BaseFactory || (ɵMatLegacyTab_BaseFactory = i0.ɵɵgetInheritedFactory(MatLegacyTab)))(ɵt || MatLegacyTab);\n };\n })();\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatLegacyTab,\n selectors: [[\"mat-tab\"]],\n contentQueries: function MatLegacyTab_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MAT_TAB_LABEL, 5);\n i0.ɵɵcontentQuery(dirIndex, MAT_TAB_CONTENT, 7, TemplateRef);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templateLabel = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._explicitContent = _t.first);\n }\n },\n hostVars: 1,\n hostBindings: function MatLegacyTab_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"mat-id-collision\", null);\n }\n },\n inputs: {\n disabled: \"disabled\"\n },\n exportAs: [\"matTab\"],\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_TAB,\n useExisting: MatLegacyTab\n }]), i0.ɵɵInheritDefinitionFeature],\n ngContentSelectors: _c0,\n decls: 1,\n vars: 0,\n template: function MatLegacyTab_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵtemplate(0, MatLegacyTab_ng_template_0_Template, 1, 0, \"ng-template\");\n }\n },\n encapsulation: 2\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyTab, [{\n type: Component,\n args: [{\n selector: 'mat-tab',\n inputs: ['disabled'],\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'matTab',\n providers: [{\n provide: MAT_TAB,\n useExisting: MatLegacyTab\n }],\n host: {\n // This binding is used to ensure that the component ID doesn't clash with the `MatTab`.\n '[attr.mat-id-collision]': 'null'\n },\n template: \"\\n\\n\"\n }]\n }], null, {\n templateLabel: [{\n type: ContentChild,\n args: [MAT_TAB_LABEL]\n }],\n _explicitContent: [{\n type: ContentChild,\n args: [MAT_TAB_CONTENT, {\n read: TemplateRef,\n static: true\n }]\n }]\n });\n})();\n\n/**\n * The portal host directive for the contents of the tab.\n * @docs-private\n * @deprecated Use `MatTabBodyPortal` from `@angular/material/tabs` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyTabBodyPortal extends MatTabBodyPortal {\n constructor(componentFactoryResolver, viewContainerRef, host, _document) {\n super(componentFactoryResolver, viewContainerRef, host, _document);\n }\n static {\n this.ɵfac = function MatLegacyTabBodyPortal_Factory(ɵt) {\n return new (ɵt || MatLegacyTabBodyPortal)(i0.ɵɵdirectiveInject(i0.ComponentFactoryResolver), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(forwardRef(() => MatLegacyTabBody)), i0.ɵɵdirectiveInject(DOCUMENT));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyTabBodyPortal,\n selectors: [[\"\", \"matTabBodyHost\", \"\"]],\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyTabBodyPortal, [{\n type: Directive,\n args: [{\n selector: '[matTabBodyHost]'\n }]\n }], function () {\n return [{\n type: i0.ComponentFactoryResolver\n }, {\n type: i0.ViewContainerRef\n }, {\n type: MatLegacyTabBody,\n decorators: [{\n type: Inject,\n args: [forwardRef(() => MatLegacyTabBody)]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }];\n }, null);\n})();\n/**\n * Wrapper for the contents of a tab.\n * @docs-private\n * @deprecated Use `MatTabBody` from `@angular/material/tabs` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyTabBody extends _MatTabBodyBase {\n constructor(elementRef, dir, changeDetectorRef) {\n super(elementRef, dir, changeDetectorRef);\n }\n static {\n this.ɵfac = function MatLegacyTabBody_Factory(ɵt) {\n return new (ɵt || MatLegacyTabBody)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Directionality, 8), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatLegacyTabBody,\n selectors: [[\"mat-tab-body\"]],\n viewQuery: function MatLegacyTabBody_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(CdkPortalOutlet, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._portalHost = _t.first);\n }\n },\n hostAttrs: [1, \"mat-tab-body\"],\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 3,\n vars: 6,\n consts: [[\"content\", \"\"], [\"cdkScrollable\", \"\", 1, \"mat-tab-body-content\"], [\"matTabBodyHost\", \"\"]],\n template: function MatLegacyTabBody_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 1, 0);\n i0.ɵɵlistener(\"@translateTab.start\", function MatLegacyTabBody_Template_div_animation_translateTab_start_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._onTranslateTabStarted($event));\n })(\"@translateTab.done\", function MatLegacyTabBody_Template_div_animation_translateTab_done_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._translateTabComplete.next($event));\n });\n i0.ɵɵtemplate(2, MatLegacyTabBody_ng_template_2_Template, 0, 0, \"ng-template\", 2);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"@translateTab\", i0.ɵɵpureFunction2(3, _c2, ctx._position, i0.ɵɵpureFunction1(1, _c1, ctx.animationDuration)));\n }\n },\n dependencies: [MatLegacyTabBodyPortal],\n styles: [\".mat-tab-body-content{height:100%;overflow:auto}.mat-tab-group-dynamic-height .mat-tab-body-content{overflow:hidden}.mat-tab-body-content[style*=\\\"visibility: hidden\\\"]{display:none}\"],\n encapsulation: 2,\n data: {\n animation: [matTabsAnimations.translateTab]\n }\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyTabBody, [{\n type: Component,\n args: [{\n selector: 'mat-tab-body',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Default,\n animations: [matTabsAnimations.translateTab],\n host: {\n 'class': 'mat-tab-body'\n },\n template: \"\\n \\n\\n\",\n styles: [\".mat-tab-body-content{height:100%;overflow:auto}.mat-tab-group-dynamic-height .mat-tab-body-content{overflow:hidden}.mat-tab-body-content[style*=\\\"visibility: hidden\\\"]{display:none}\"]\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i1.Directionality,\n decorators: [{\n type: Optional\n }]\n }, {\n type: i0.ChangeDetectorRef\n }];\n }, {\n _portalHost: [{\n type: ViewChild,\n args: [CdkPortalOutlet]\n }]\n });\n})();\n\n/**\n * @deprecated Use `MatTabLabelWrapper` from `@angular/material/tabs` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyTabLabelWrapper extends _MatTabLabelWrapperBase {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatLegacyTabLabelWrapper_BaseFactory;\n return function MatLegacyTabLabelWrapper_Factory(ɵt) {\n return (ɵMatLegacyTabLabelWrapper_BaseFactory || (ɵMatLegacyTabLabelWrapper_BaseFactory = i0.ɵɵgetInheritedFactory(MatLegacyTabLabelWrapper)))(ɵt || MatLegacyTabLabelWrapper);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyTabLabelWrapper,\n selectors: [[\"\", \"matTabLabelWrapper\", \"\"]],\n hostVars: 3,\n hostBindings: function MatLegacyTabLabelWrapper_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-disabled\", !!ctx.disabled);\n i0.ɵɵclassProp(\"mat-tab-disabled\", ctx.disabled);\n }\n },\n inputs: {\n disabled: \"disabled\"\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyTabLabelWrapper, [{\n type: Directive,\n args: [{\n selector: '[matTabLabelWrapper]',\n inputs: ['disabled'],\n host: {\n '[class.mat-tab-disabled]': 'disabled',\n '[attr.aria-disabled]': '!!disabled'\n }\n }]\n }], null, null);\n})();\n\n/**\n * The header of the tab group which displays a list of all the tabs in the tab group. Includes\n * an ink bar that follows the currently selected tab. When the tabs list's width exceeds the\n * width of the header container, then arrows will be displayed to allow the user to scroll\n * left and right across the header.\n * @docs-private\n * @deprecated Use `MatTabHeader` from `@angular/material/tabs` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyTabHeader extends _MatTabHeaderBase {\n constructor(elementRef, changeDetectorRef, viewportRuler, dir, ngZone, platform, animationMode) {\n super(elementRef, changeDetectorRef, viewportRuler, dir, ngZone, platform, animationMode);\n }\n static {\n this.ɵfac = function MatLegacyTabHeader_Factory(ɵt) {\n return new (ɵt || MatLegacyTabHeader)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1$1.ViewportRuler), i0.ɵɵdirectiveInject(i1.Directionality, 8), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i3.Platform), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatLegacyTabHeader,\n selectors: [[\"mat-tab-header\"]],\n contentQueries: function MatLegacyTabHeader_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MatLegacyTabLabelWrapper, 4);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._items = _t);\n }\n },\n viewQuery: function MatLegacyTabHeader_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(MatLegacyInkBar, 7);\n i0.ɵɵviewQuery(_c3, 7);\n i0.ɵɵviewQuery(_c4, 7);\n i0.ɵɵviewQuery(_c5, 7);\n i0.ɵɵviewQuery(_c6, 5);\n i0.ɵɵviewQuery(_c7, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._inkBar = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._tabListContainer = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._tabList = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._tabListInner = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._nextPaginator = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._previousPaginator = _t.first);\n }\n },\n hostAttrs: [1, \"mat-tab-header\"],\n hostVars: 4,\n hostBindings: function MatLegacyTabHeader_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"mat-tab-header-pagination-controls-enabled\", ctx._showPaginationControls)(\"mat-tab-header-rtl\", ctx._getLayoutDirection() == \"rtl\");\n }\n },\n inputs: {\n selectedIndex: \"selectedIndex\"\n },\n outputs: {\n selectFocusedIndex: \"selectFocusedIndex\",\n indexFocused: \"indexFocused\"\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n ngContentSelectors: _c0,\n decls: 14,\n vars: 10,\n consts: [[\"previousPaginator\", \"\"], [\"tabListContainer\", \"\"], [\"tabList\", \"\"], [\"tabListInner\", \"\"], [\"nextPaginator\", \"\"], [\"aria-hidden\", \"true\", \"type\", \"button\", \"mat-ripple\", \"\", \"tabindex\", \"-1\", 1, \"mat-tab-header-pagination\", \"mat-tab-header-pagination-before\", \"mat-elevation-z4\", 3, \"click\", \"mousedown\", \"touchend\", \"matRippleDisabled\", \"disabled\"], [1, \"mat-tab-header-pagination-chevron\"], [1, \"mat-tab-label-container\", 3, \"keydown\"], [\"role\", \"tablist\", 1, \"mat-tab-list\", 3, \"cdkObserveContent\"], [1, \"mat-tab-labels\"], [\"aria-hidden\", \"true\", \"type\", \"button\", \"mat-ripple\", \"\", \"tabindex\", \"-1\", 1, \"mat-tab-header-pagination\", \"mat-tab-header-pagination-after\", \"mat-elevation-z4\", 3, \"mousedown\", \"click\", \"touchend\", \"matRippleDisabled\", \"disabled\"]],\n template: function MatLegacyTabHeader_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"button\", 5, 0);\n i0.ɵɵlistener(\"click\", function MatLegacyTabHeader_Template_button_click_0_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._handlePaginatorClick(\"before\"));\n })(\"mousedown\", function MatLegacyTabHeader_Template_button_mousedown_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._handlePaginatorPress(\"before\", $event));\n })(\"touchend\", function MatLegacyTabHeader_Template_button_touchend_0_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._stopInterval());\n });\n i0.ɵɵelement(2, \"div\", 6);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"div\", 7, 1);\n i0.ɵɵlistener(\"keydown\", function MatLegacyTabHeader_Template_div_keydown_3_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._handleKeydown($event));\n });\n i0.ɵɵelementStart(5, \"div\", 8, 2);\n i0.ɵɵlistener(\"cdkObserveContent\", function MatLegacyTabHeader_Template_div_cdkObserveContent_5_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._onContentChanges());\n });\n i0.ɵɵelementStart(7, \"div\", 9, 3);\n i0.ɵɵprojection(9);\n i0.ɵɵelementEnd();\n i0.ɵɵelement(10, \"mat-ink-bar\");\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(11, \"button\", 10, 4);\n i0.ɵɵlistener(\"mousedown\", function MatLegacyTabHeader_Template_button_mousedown_11_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._handlePaginatorPress(\"after\", $event));\n })(\"click\", function MatLegacyTabHeader_Template_button_click_11_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._handlePaginatorClick(\"after\"));\n })(\"touchend\", function MatLegacyTabHeader_Template_button_touchend_11_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._stopInterval());\n });\n i0.ɵɵelement(13, \"div\", 6);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"mat-tab-header-pagination-disabled\", ctx._disableScrollBefore);\n i0.ɵɵproperty(\"matRippleDisabled\", ctx._disableScrollBefore || ctx.disableRipple)(\"disabled\", ctx._disableScrollBefore || null);\n i0.ɵɵadvance(5);\n i0.ɵɵclassProp(\"_mat-animation-noopable\", ctx._animationMode === \"NoopAnimations\");\n i0.ɵɵadvance(6);\n i0.ɵɵclassProp(\"mat-tab-header-pagination-disabled\", ctx._disableScrollAfter);\n i0.ɵɵproperty(\"matRippleDisabled\", ctx._disableScrollAfter || ctx.disableRipple)(\"disabled\", ctx._disableScrollAfter || null);\n }\n },\n dependencies: [i4.MatRipple, i5.CdkObserveContent, MatLegacyInkBar],\n styles: [\".mat-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mat-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:none;box-sizing:content-box;background:none;border:none;outline:0;padding:0}.mat-tab-header-pagination::-moz-focus-inner{border:0}.mat-tab-header-pagination-controls-enabled .mat-tab-header-pagination{display:flex}.mat-tab-header-pagination-before,.mat-tab-header-rtl .mat-tab-header-pagination-after{padding-left:4px}.mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-rtl .mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-tab-header-rtl .mat-tab-header-pagination-before,.mat-tab-header-pagination-after{padding-right:4px}.mat-tab-header-rtl .mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px}.mat-tab-header-pagination-disabled{box-shadow:none;cursor:default}.mat-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-ink-bar{position:absolute;bottom:0;height:2px;transition:500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-ink-bar._mat-animation-noopable{transition:none !important;animation:none !important}.mat-tab-group-inverted-header .mat-ink-bar{bottom:auto;top:0}.cdk-high-contrast-active .mat-ink-bar{outline:solid 2px;height:0}.mat-tab-labels{display:flex}[mat-align-tabs=center]>.mat-tab-header .mat-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-tab-header .mat-tab-labels{justify-content:flex-end}.mat-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-tab-list._mat-animation-noopable{transition:none !important;animation:none !important}.mat-tab-label{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;position:relative}.mat-tab-label:focus{outline:none}.mat-tab-label:focus:not(.mat-tab-disabled){opacity:1}.mat-tab-label.mat-tab-disabled{cursor:default}.cdk-high-contrast-active .mat-tab-label.mat-tab-disabled{opacity:.5}.mat-tab-label .mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}.cdk-high-contrast-active .mat-tab-label{opacity:1}.mat-tab-label::before{margin:5px}@media(max-width: 599px){.mat-tab-label{min-width:72px}}\"],\n encapsulation: 2\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyTabHeader, [{\n type: Component,\n args: [{\n selector: 'mat-tab-header',\n inputs: ['selectedIndex'],\n outputs: ['selectFocusedIndex', 'indexFocused'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Default,\n host: {\n 'class': 'mat-tab-header',\n '[class.mat-tab-header-pagination-controls-enabled]': '_showPaginationControls',\n '[class.mat-tab-header-rtl]': \"_getLayoutDirection() == 'rtl'\"\n },\n template: \"\\n \\n\\n\\n\\n \\n \\n \\n \\n \\n \\n\\n\\n\\n \\n\\n\",\n styles: [\".mat-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mat-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:none;box-sizing:content-box;background:none;border:none;outline:0;padding:0}.mat-tab-header-pagination::-moz-focus-inner{border:0}.mat-tab-header-pagination-controls-enabled .mat-tab-header-pagination{display:flex}.mat-tab-header-pagination-before,.mat-tab-header-rtl .mat-tab-header-pagination-after{padding-left:4px}.mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-rtl .mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-tab-header-rtl .mat-tab-header-pagination-before,.mat-tab-header-pagination-after{padding-right:4px}.mat-tab-header-rtl .mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px}.mat-tab-header-pagination-disabled{box-shadow:none;cursor:default}.mat-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-ink-bar{position:absolute;bottom:0;height:2px;transition:500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-ink-bar._mat-animation-noopable{transition:none !important;animation:none !important}.mat-tab-group-inverted-header .mat-ink-bar{bottom:auto;top:0}.cdk-high-contrast-active .mat-ink-bar{outline:solid 2px;height:0}.mat-tab-labels{display:flex}[mat-align-tabs=center]>.mat-tab-header .mat-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-tab-header .mat-tab-labels{justify-content:flex-end}.mat-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-tab-list._mat-animation-noopable{transition:none !important;animation:none !important}.mat-tab-label{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;position:relative}.mat-tab-label:focus{outline:none}.mat-tab-label:focus:not(.mat-tab-disabled){opacity:1}.mat-tab-label.mat-tab-disabled{cursor:default}.cdk-high-contrast-active .mat-tab-label.mat-tab-disabled{opacity:.5}.mat-tab-label .mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}.cdk-high-contrast-active .mat-tab-label{opacity:1}.mat-tab-label::before{margin:5px}@media(max-width: 599px){.mat-tab-label{min-width:72px}}\"]\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: i1$1.ViewportRuler\n }, {\n type: i1.Directionality,\n decorators: [{\n type: Optional\n }]\n }, {\n type: i0.NgZone\n }, {\n type: i3.Platform\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }]\n }];\n }, {\n _items: [{\n type: ContentChildren,\n args: [MatLegacyTabLabelWrapper, {\n descendants: false\n }]\n }],\n _inkBar: [{\n type: ViewChild,\n args: [MatLegacyInkBar, {\n static: true\n }]\n }],\n _tabListContainer: [{\n type: ViewChild,\n args: ['tabListContainer', {\n static: true\n }]\n }],\n _tabList: [{\n type: ViewChild,\n args: ['tabList', {\n static: true\n }]\n }],\n _tabListInner: [{\n type: ViewChild,\n args: ['tabListInner', {\n static: true\n }]\n }],\n _nextPaginator: [{\n type: ViewChild,\n args: ['nextPaginator']\n }],\n _previousPaginator: [{\n type: ViewChild,\n args: ['previousPaginator']\n }]\n });\n})();\n\n/**\n * Material design tab-group component. Supports basic tab pairs (label + content) and includes\n * animated ink-bar, keyboard navigation, and screen reader.\n * See: https://material.io/design/components/tabs.html\n * @deprecated Use `MatTabGroup` from `@angular/material/tabs` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyTabGroup extends _MatTabGroupBase {\n constructor(elementRef, changeDetectorRef, defaultConfig, animationMode) {\n super(elementRef, changeDetectorRef, defaultConfig, animationMode);\n }\n static {\n this.ɵfac = function MatLegacyTabGroup_Factory(ɵt) {\n return new (ɵt || MatLegacyTabGroup)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(MAT_TABS_CONFIG, 8), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatLegacyTabGroup,\n selectors: [[\"mat-tab-group\"]],\n contentQueries: function MatLegacyTabGroup_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MatLegacyTab, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._allTabs = _t);\n }\n },\n viewQuery: function MatLegacyTabGroup_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c8, 5);\n i0.ɵɵviewQuery(_c9, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._tabBodyWrapper = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._tabHeader = _t.first);\n }\n },\n hostAttrs: [\"ngSkipHydration\", \"\", 1, \"mat-tab-group\"],\n hostVars: 4,\n hostBindings: function MatLegacyTabGroup_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"mat-tab-group-dynamic-height\", ctx.dynamicHeight)(\"mat-tab-group-inverted-header\", ctx.headerPosition === \"below\");\n }\n },\n inputs: {\n color: \"color\",\n disableRipple: \"disableRipple\"\n },\n exportAs: [\"matTabGroup\"],\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_TAB_GROUP,\n useExisting: MatLegacyTabGroup\n }]), i0.ɵɵInheritDefinitionFeature],\n decls: 6,\n vars: 7,\n consts: [[\"tabHeader\", \"\"], [\"tabBodyWrapper\", \"\"], [\"tabTextLabel\", \"\"], [3, \"indexFocused\", \"selectFocusedIndex\", \"selectedIndex\", \"disableRipple\", \"disablePagination\"], [\"class\", \"mat-tab-label mat-focus-indicator\", \"role\", \"tab\", \"matTabLabelWrapper\", \"\", \"mat-ripple\", \"\", \"cdkMonitorElementFocus\", \"\", 3, \"id\", \"mat-tab-label-active\", \"ngClass\", \"disabled\", \"matRippleDisabled\", \"click\", \"cdkFocusChange\", 4, \"ngFor\", \"ngForOf\"], [1, \"mat-tab-body-wrapper\"], [\"role\", \"tabpanel\", 3, \"id\", \"mat-tab-body-active\", \"ngClass\", \"content\", \"position\", \"origin\", \"animationDuration\", \"preserveContent\", \"_onCentered\", \"_onCentering\", 4, \"ngFor\", \"ngForOf\"], [\"role\", \"tab\", \"matTabLabelWrapper\", \"\", \"mat-ripple\", \"\", \"cdkMonitorElementFocus\", \"\", 1, \"mat-tab-label\", \"mat-focus-indicator\", 3, \"click\", \"cdkFocusChange\", \"id\", \"ngClass\", \"disabled\", \"matRippleDisabled\"], [1, \"mat-tab-label-content\"], [3, \"ngIf\", \"ngIfElse\"], [3, \"cdkPortalOutlet\"], [\"role\", \"tabpanel\", 3, \"_onCentered\", \"_onCentering\", \"id\", \"ngClass\", \"content\", \"position\", \"origin\", \"animationDuration\", \"preserveContent\"]],\n template: function MatLegacyTabGroup_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"mat-tab-header\", 3, 0);\n i0.ɵɵlistener(\"indexFocused\", function MatLegacyTabGroup_Template_mat_tab_header_indexFocused_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._focusChanged($event));\n })(\"selectFocusedIndex\", function MatLegacyTabGroup_Template_mat_tab_header_selectFocusedIndex_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.selectedIndex = $event);\n });\n i0.ɵɵtemplate(2, MatLegacyTabGroup_div_2_Template, 5, 15, \"div\", 4);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"div\", 5, 1);\n i0.ɵɵtemplate(5, MatLegacyTabGroup_mat_tab_body_5_Template, 1, 11, \"mat-tab-body\", 6);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"selectedIndex\", ctx.selectedIndex || 0)(\"disableRipple\", ctx.disableRipple)(\"disablePagination\", ctx.disablePagination);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", ctx._tabs);\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"_mat-animation-noopable\", ctx._animationMode === \"NoopAnimations\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", ctx._tabs);\n }\n },\n dependencies: [i1$2.NgClass, i1$2.NgForOf, i1$2.NgIf, i2.CdkPortalOutlet, i4.MatRipple, i7.CdkMonitorFocus, MatLegacyTabLabelWrapper, MatLegacyTabBody, MatLegacyTabHeader],\n styles: [\".mat-tab-group{display:flex;flex-direction:column;max-width:100%}.mat-tab-group.mat-tab-group-inverted-header{flex-direction:column-reverse}.mat-tab-label{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;position:relative}.mat-tab-label:focus{outline:none}.mat-tab-label:focus:not(.mat-tab-disabled){opacity:1}.mat-tab-label.mat-tab-disabled{cursor:default}.cdk-high-contrast-active .mat-tab-label.mat-tab-disabled{opacity:.5}.mat-tab-label .mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}.cdk-high-contrast-active .mat-tab-label{opacity:1}@media(max-width: 599px){.mat-tab-label{padding:0 12px}}@media(max-width: 959px){.mat-tab-label{padding:0 12px}}.mat-tab-group[mat-stretch-tabs]>.mat-tab-header .mat-tab-label{flex-basis:0;flex-grow:1}.mat-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-tab-body-wrapper._mat-animation-noopable{transition:none !important;animation:none !important}.mat-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;outline:0;flex-basis:100%}.mat-tab-body.mat-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-tab-group.mat-tab-group-dynamic-height .mat-tab-body.mat-tab-body-active{overflow-y:hidden}\"],\n encapsulation: 2\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyTabGroup, [{\n type: Component,\n args: [{\n selector: 'mat-tab-group',\n exportAs: 'matTabGroup',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Default,\n inputs: ['color', 'disableRipple'],\n providers: [{\n provide: MAT_TAB_GROUP,\n useExisting: MatLegacyTabGroup\n }],\n host: {\n 'class': 'mat-tab-group',\n '[class.mat-tab-group-dynamic-height]': 'dynamicHeight',\n '[class.mat-tab-group-inverted-header]': 'headerPosition === \"below\"',\n 'ngSkipHydration': ''\n },\n template: \"\\n \\n\\n\\n \\n \\n \\n \\n \\n\\n \\n {{tab.textLabel}}\\n \\n \\n\\n\\n\\n \\n \\n\\n\",\n styles: [\".mat-tab-group{display:flex;flex-direction:column;max-width:100%}.mat-tab-group.mat-tab-group-inverted-header{flex-direction:column-reverse}.mat-tab-label{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;position:relative}.mat-tab-label:focus{outline:none}.mat-tab-label:focus:not(.mat-tab-disabled){opacity:1}.mat-tab-label.mat-tab-disabled{cursor:default}.cdk-high-contrast-active .mat-tab-label.mat-tab-disabled{opacity:.5}.mat-tab-label .mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}.cdk-high-contrast-active .mat-tab-label{opacity:1}@media(max-width: 599px){.mat-tab-label{padding:0 12px}}@media(max-width: 959px){.mat-tab-label{padding:0 12px}}.mat-tab-group[mat-stretch-tabs]>.mat-tab-header .mat-tab-label{flex-basis:0;flex-grow:1}.mat-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-tab-body-wrapper._mat-animation-noopable{transition:none !important;animation:none !important}.mat-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;outline:0;flex-basis:100%}.mat-tab-body.mat-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-tab-group.mat-tab-group-dynamic-height .mat-tab-body.mat-tab-body-active{overflow-y:hidden}\"]\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [MAT_TABS_CONFIG]\n }, {\n type: Optional\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }]\n }];\n }, {\n _allTabs: [{\n type: ContentChildren,\n args: [MatLegacyTab, {\n descendants: true\n }]\n }],\n _tabBodyWrapper: [{\n type: ViewChild,\n args: ['tabBodyWrapper']\n }],\n _tabHeader: [{\n type: ViewChild,\n args: ['tabHeader']\n }]\n });\n})();\n\n// Increasing integer for generating unique ids for tab nav components.\nlet nextUniqueId = 0;\n/**\n * Navigation component matching the styles of the tab group header.\n * Provides anchored navigation with animated ink bar.\n * @deprecated Use `MatTabNav` from `@angular/material/tabs` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyTabNav extends _MatTabNavBase {\n constructor(elementRef, dir, ngZone, changeDetectorRef, viewportRuler, platform, animationMode) {\n super(elementRef, dir, ngZone, changeDetectorRef, viewportRuler, platform, animationMode);\n }\n static {\n this.ɵfac = function MatLegacyTabNav_Factory(ɵt) {\n return new (ɵt || MatLegacyTabNav)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Directionality, 8), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1$1.ViewportRuler), i0.ɵɵdirectiveInject(i3.Platform), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatLegacyTabNav,\n selectors: [[\"\", \"mat-tab-nav-bar\", \"\"]],\n contentQueries: function MatLegacyTabNav_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MatLegacyTabLink, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._items = _t);\n }\n },\n viewQuery: function MatLegacyTabNav_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(MatLegacyInkBar, 7);\n i0.ɵɵviewQuery(_c3, 7);\n i0.ɵɵviewQuery(_c4, 7);\n i0.ɵɵviewQuery(_c5, 7);\n i0.ɵɵviewQuery(_c6, 5);\n i0.ɵɵviewQuery(_c7, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._inkBar = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._tabListContainer = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._tabList = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._tabListInner = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._nextPaginator = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._previousPaginator = _t.first);\n }\n },\n hostAttrs: [1, \"mat-tab-nav-bar\", \"mat-tab-header\"],\n hostVars: 11,\n hostBindings: function MatLegacyTabNav_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"role\", ctx._getRole());\n i0.ɵɵclassProp(\"mat-tab-header-pagination-controls-enabled\", ctx._showPaginationControls)(\"mat-tab-header-rtl\", ctx._getLayoutDirection() == \"rtl\")(\"mat-primary\", ctx.color !== \"warn\" && ctx.color !== \"accent\")(\"mat-accent\", ctx.color === \"accent\")(\"mat-warn\", ctx.color === \"warn\");\n }\n },\n inputs: {\n color: \"color\"\n },\n exportAs: [\"matTabNavBar\", \"matTabNav\"],\n features: [i0.ɵɵInheritDefinitionFeature],\n attrs: _c10,\n ngContentSelectors: _c0,\n decls: 14,\n vars: 10,\n consts: [[\"previousPaginator\", \"\"], [\"tabListContainer\", \"\"], [\"tabList\", \"\"], [\"tabListInner\", \"\"], [\"nextPaginator\", \"\"], [\"aria-hidden\", \"true\", \"type\", \"button\", \"mat-ripple\", \"\", \"tabindex\", \"-1\", 1, \"mat-tab-header-pagination\", \"mat-tab-header-pagination-before\", \"mat-elevation-z4\", 3, \"click\", \"mousedown\", \"touchend\", \"matRippleDisabled\", \"disabled\"], [1, \"mat-tab-header-pagination-chevron\"], [1, \"mat-tab-link-container\", 3, \"keydown\"], [1, \"mat-tab-list\", 3, \"cdkObserveContent\"], [1, \"mat-tab-links\"], [\"aria-hidden\", \"true\", \"type\", \"button\", \"mat-ripple\", \"\", \"tabindex\", \"-1\", 1, \"mat-tab-header-pagination\", \"mat-tab-header-pagination-after\", \"mat-elevation-z4\", 3, \"mousedown\", \"click\", \"touchend\", \"matRippleDisabled\", \"disabled\"]],\n template: function MatLegacyTabNav_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"button\", 5, 0);\n i0.ɵɵlistener(\"click\", function MatLegacyTabNav_Template_button_click_0_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._handlePaginatorClick(\"before\"));\n })(\"mousedown\", function MatLegacyTabNav_Template_button_mousedown_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._handlePaginatorPress(\"before\", $event));\n })(\"touchend\", function MatLegacyTabNav_Template_button_touchend_0_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._stopInterval());\n });\n i0.ɵɵelement(2, \"div\", 6);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"div\", 7, 1);\n i0.ɵɵlistener(\"keydown\", function MatLegacyTabNav_Template_div_keydown_3_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._handleKeydown($event));\n });\n i0.ɵɵelementStart(5, \"div\", 8, 2);\n i0.ɵɵlistener(\"cdkObserveContent\", function MatLegacyTabNav_Template_div_cdkObserveContent_5_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._onContentChanges());\n });\n i0.ɵɵelementStart(7, \"div\", 9, 3);\n i0.ɵɵprojection(9);\n i0.ɵɵelementEnd();\n i0.ɵɵelement(10, \"mat-ink-bar\");\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(11, \"button\", 10, 4);\n i0.ɵɵlistener(\"mousedown\", function MatLegacyTabNav_Template_button_mousedown_11_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._handlePaginatorPress(\"after\", $event));\n })(\"click\", function MatLegacyTabNav_Template_button_click_11_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._handlePaginatorClick(\"after\"));\n })(\"touchend\", function MatLegacyTabNav_Template_button_touchend_11_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._stopInterval());\n });\n i0.ɵɵelement(13, \"div\", 6);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"mat-tab-header-pagination-disabled\", ctx._disableScrollBefore);\n i0.ɵɵproperty(\"matRippleDisabled\", ctx._disableScrollBefore || ctx.disableRipple)(\"disabled\", ctx._disableScrollBefore || null);\n i0.ɵɵadvance(5);\n i0.ɵɵclassProp(\"_mat-animation-noopable\", ctx._animationMode === \"NoopAnimations\");\n i0.ɵɵadvance(6);\n i0.ɵɵclassProp(\"mat-tab-header-pagination-disabled\", ctx._disableScrollAfter);\n i0.ɵɵproperty(\"matRippleDisabled\", ctx._disableScrollAfter || ctx.disableRipple)(\"disabled\", ctx._disableScrollAfter || null);\n }\n },\n dependencies: [i4.MatRipple, i5.CdkObserveContent, MatLegacyInkBar],\n styles: [\".mat-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mat-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:none;box-sizing:content-box;background:none;border:none;outline:0;padding:0}.mat-tab-header-pagination::-moz-focus-inner{border:0}.mat-tab-header-pagination-controls-enabled .mat-tab-header-pagination{display:flex}.mat-tab-header-pagination-before,.mat-tab-header-rtl .mat-tab-header-pagination-after{padding-left:4px}.mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-rtl .mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-tab-header-rtl .mat-tab-header-pagination-before,.mat-tab-header-pagination-after{padding-right:4px}.mat-tab-header-rtl .mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px}.mat-tab-header-pagination-disabled{box-shadow:none;cursor:default}.mat-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-tab-links{display:flex}[mat-align-tabs=center]>.mat-tab-link-container .mat-tab-links{justify-content:center}[mat-align-tabs=end]>.mat-tab-link-container .mat-tab-links{justify-content:flex-end}.mat-ink-bar{position:absolute;bottom:0;height:2px;transition:500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-ink-bar._mat-animation-noopable{transition:none !important;animation:none !important}.mat-tab-group-inverted-header .mat-ink-bar{bottom:auto;top:0}.cdk-high-contrast-active .mat-ink-bar{outline:solid 2px;height:0}.mat-tab-link-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-tab-link{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;vertical-align:top;text-decoration:none;position:relative;overflow:hidden;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-tab-link:focus{outline:none}.mat-tab-link:focus:not(.mat-tab-disabled){opacity:1}.mat-tab-link.mat-tab-disabled{cursor:default}.cdk-high-contrast-active .mat-tab-link.mat-tab-disabled{opacity:.5}.mat-tab-link .mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}.cdk-high-contrast-active .mat-tab-link{opacity:1}[mat-stretch-tabs] .mat-tab-link{flex-basis:0;flex-grow:1}.mat-tab-link.mat-tab-disabled{pointer-events:none}.mat-tab-link::before{margin:5px}@media(max-width: 599px){.mat-tab-link{min-width:72px}}\"],\n encapsulation: 2\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyTabNav, [{\n type: Component,\n args: [{\n selector: '[mat-tab-nav-bar]',\n exportAs: 'matTabNavBar, matTabNav',\n inputs: ['color'],\n host: {\n '[attr.role]': '_getRole()',\n 'class': 'mat-tab-nav-bar mat-tab-header',\n '[class.mat-tab-header-pagination-controls-enabled]': '_showPaginationControls',\n '[class.mat-tab-header-rtl]': \"_getLayoutDirection() == 'rtl'\",\n '[class.mat-primary]': 'color !== \"warn\" && color !== \"accent\"',\n '[class.mat-accent]': 'color === \"accent\"',\n '[class.mat-warn]': 'color === \"warn\"'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Default,\n template: \"\\n \\n\\n\\n\\n \\n \\n \\n \\n \\n \\n\\n\\n\\n \\n\\n\",\n styles: [\".mat-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mat-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:none;box-sizing:content-box;background:none;border:none;outline:0;padding:0}.mat-tab-header-pagination::-moz-focus-inner{border:0}.mat-tab-header-pagination-controls-enabled .mat-tab-header-pagination{display:flex}.mat-tab-header-pagination-before,.mat-tab-header-rtl .mat-tab-header-pagination-after{padding-left:4px}.mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-rtl .mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-tab-header-rtl .mat-tab-header-pagination-before,.mat-tab-header-pagination-after{padding-right:4px}.mat-tab-header-rtl .mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px}.mat-tab-header-pagination-disabled{box-shadow:none;cursor:default}.mat-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-tab-links{display:flex}[mat-align-tabs=center]>.mat-tab-link-container .mat-tab-links{justify-content:center}[mat-align-tabs=end]>.mat-tab-link-container .mat-tab-links{justify-content:flex-end}.mat-ink-bar{position:absolute;bottom:0;height:2px;transition:500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-ink-bar._mat-animation-noopable{transition:none !important;animation:none !important}.mat-tab-group-inverted-header .mat-ink-bar{bottom:auto;top:0}.cdk-high-contrast-active .mat-ink-bar{outline:solid 2px;height:0}.mat-tab-link-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-tab-link{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;vertical-align:top;text-decoration:none;position:relative;overflow:hidden;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-tab-link:focus{outline:none}.mat-tab-link:focus:not(.mat-tab-disabled){opacity:1}.mat-tab-link.mat-tab-disabled{cursor:default}.cdk-high-contrast-active .mat-tab-link.mat-tab-disabled{opacity:.5}.mat-tab-link .mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}.cdk-high-contrast-active .mat-tab-link{opacity:1}[mat-stretch-tabs] .mat-tab-link{flex-basis:0;flex-grow:1}.mat-tab-link.mat-tab-disabled{pointer-events:none}.mat-tab-link::before{margin:5px}@media(max-width: 599px){.mat-tab-link{min-width:72px}}\"]\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i1.Directionality,\n decorators: [{\n type: Optional\n }]\n }, {\n type: i0.NgZone\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: i1$1.ViewportRuler\n }, {\n type: i3.Platform\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }]\n }];\n }, {\n _items: [{\n type: ContentChildren,\n args: [forwardRef(() => MatLegacyTabLink), {\n descendants: true\n }]\n }],\n _inkBar: [{\n type: ViewChild,\n args: [MatLegacyInkBar, {\n static: true\n }]\n }],\n _tabListContainer: [{\n type: ViewChild,\n args: ['tabListContainer', {\n static: true\n }]\n }],\n _tabList: [{\n type: ViewChild,\n args: ['tabList', {\n static: true\n }]\n }],\n _tabListInner: [{\n type: ViewChild,\n args: ['tabListInner', {\n static: true\n }]\n }],\n _nextPaginator: [{\n type: ViewChild,\n args: ['nextPaginator']\n }],\n _previousPaginator: [{\n type: ViewChild,\n args: ['previousPaginator']\n }]\n });\n})();\n/**\n * Link inside of a `mat-tab-nav-bar`.\n * @deprecated Use `MatTabLink` from `@angular/material/tabs` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyTabLink extends _MatTabLinkBase {\n constructor(tabNavBar, elementRef, ngZone, platform, globalRippleOptions, tabIndex, focusMonitor, animationMode) {\n super(tabNavBar, elementRef, globalRippleOptions, tabIndex, focusMonitor, animationMode);\n this._tabLinkRipple = new RippleRenderer(this, ngZone, elementRef, platform);\n this._tabLinkRipple.setupTriggerEvents(elementRef.nativeElement);\n }\n ngOnDestroy() {\n super.ngOnDestroy();\n this._tabLinkRipple._removeTriggerEvents();\n }\n static {\n this.ɵfac = function MatLegacyTabLink_Factory(ɵt) {\n return new (ɵt || MatLegacyTabLink)(i0.ɵɵdirectiveInject(MatLegacyTabNav), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i3.Platform), i0.ɵɵdirectiveInject(MAT_RIPPLE_GLOBAL_OPTIONS, 8), i0.ɵɵinjectAttribute('tabindex'), i0.ɵɵdirectiveInject(i7.FocusMonitor), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyTabLink,\n selectors: [[\"\", \"mat-tab-link\", \"\"], [\"\", \"matTabLink\", \"\"]],\n hostAttrs: [1, \"mat-tab-link\", \"mat-focus-indicator\"],\n hostVars: 11,\n hostBindings: function MatLegacyTabLink_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"focus\", function MatLegacyTabLink_focus_HostBindingHandler() {\n return ctx._handleFocus();\n })(\"keydown\", function MatLegacyTabLink_keydown_HostBindingHandler($event) {\n return ctx._handleKeydown($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-controls\", ctx._getAriaControls())(\"aria-current\", ctx._getAriaCurrent())(\"aria-disabled\", ctx.disabled)(\"aria-selected\", ctx._getAriaSelected())(\"id\", ctx.id)(\"tabIndex\", ctx._getTabIndex())(\"role\", ctx._getRole());\n i0.ɵɵclassProp(\"mat-tab-disabled\", ctx.disabled)(\"mat-tab-label-active\", ctx.active);\n }\n },\n inputs: {\n disabled: \"disabled\",\n disableRipple: \"disableRipple\",\n tabIndex: \"tabIndex\"\n },\n exportAs: [\"matTabLink\"],\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyTabLink, [{\n type: Directive,\n args: [{\n selector: '[mat-tab-link], [matTabLink]',\n exportAs: 'matTabLink',\n inputs: ['disabled', 'disableRipple', 'tabIndex'],\n host: {\n 'class': 'mat-tab-link mat-focus-indicator',\n '[attr.aria-controls]': '_getAriaControls()',\n '[attr.aria-current]': '_getAriaCurrent()',\n '[attr.aria-disabled]': 'disabled',\n '[attr.aria-selected]': '_getAriaSelected()',\n '[attr.id]': 'id',\n '[attr.tabIndex]': '_getTabIndex()',\n '[attr.role]': '_getRole()',\n '[class.mat-tab-disabled]': 'disabled',\n '[class.mat-tab-label-active]': 'active',\n '(focus)': '_handleFocus()',\n '(keydown)': '_handleKeydown($event)'\n }\n }]\n }], function () {\n return [{\n type: MatLegacyTabNav\n }, {\n type: i0.ElementRef\n }, {\n type: i0.NgZone\n }, {\n type: i3.Platform\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_RIPPLE_GLOBAL_OPTIONS]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Attribute,\n args: ['tabindex']\n }]\n }, {\n type: i7.FocusMonitor\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }]\n }];\n }, null);\n})();\n/**\n * Tab panel component associated with MatTabNav.\n * @deprecated Use `MatTabNavPanel` from `@angular/material/tabs` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyTabNavPanel {\n constructor() {\n /** Unique id for the tab panel. */\n this.id = `mat-tab-nav-panel-${nextUniqueId++}`;\n }\n static {\n this.ɵfac = function MatLegacyTabNavPanel_Factory(ɵt) {\n return new (ɵt || MatLegacyTabNavPanel)();\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatLegacyTabNavPanel,\n selectors: [[\"mat-tab-nav-panel\"]],\n hostAttrs: [\"role\", \"tabpanel\", 1, \"mat-tab-nav-panel\"],\n hostVars: 2,\n hostBindings: function MatLegacyTabNavPanel_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-labelledby\", ctx._activeTabId)(\"id\", ctx.id);\n }\n },\n inputs: {\n id: \"id\"\n },\n exportAs: [\"matTabNavPanel\"],\n ngContentSelectors: _c0,\n decls: 1,\n vars: 0,\n template: function MatLegacyTabNavPanel_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵprojection(0);\n }\n },\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyTabNavPanel, [{\n type: Component,\n args: [{\n selector: 'mat-tab-nav-panel',\n exportAs: 'matTabNavPanel',\n template: '',\n host: {\n '[attr.aria-labelledby]': '_activeTabId',\n '[attr.id]': 'id',\n 'class': 'mat-tab-nav-panel',\n 'role': 'tabpanel'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], null, {\n id: [{\n type: Input\n }]\n });\n})();\n\n/**\n * Used to flag tab labels for use with the portal directive\n * @deprecated Use `MatTabLabel` from `@angular/material/tabs` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyTabLabel extends MatTabLabel {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatLegacyTabLabel_BaseFactory;\n return function MatLegacyTabLabel_Factory(ɵt) {\n return (ɵMatLegacyTabLabel_BaseFactory || (ɵMatLegacyTabLabel_BaseFactory = i0.ɵɵgetInheritedFactory(MatLegacyTabLabel)))(ɵt || MatLegacyTabLabel);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyTabLabel,\n selectors: [[\"\", \"mat-tab-label\", \"\"], [\"\", \"matTabLabel\", \"\"]],\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_TAB_LABEL,\n useExisting: MatLegacyTabLabel\n }]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyTabLabel, [{\n type: Directive,\n args: [{\n selector: '[mat-tab-label], [matTabLabel]',\n providers: [{\n provide: MAT_TAB_LABEL,\n useExisting: MatLegacyTabLabel\n }]\n }]\n }], null, null);\n})();\n\n/**\n * Decorates the `ng-template` tags and reads out the template from it.\n * @deprecated Use `MatTabContent` from `@angular/material/tabs` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyTabContent extends MatTabContent {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatLegacyTabContent_BaseFactory;\n return function MatLegacyTabContent_Factory(ɵt) {\n return (ɵMatLegacyTabContent_BaseFactory || (ɵMatLegacyTabContent_BaseFactory = i0.ɵɵgetInheritedFactory(MatLegacyTabContent)))(ɵt || MatLegacyTabContent);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLegacyTabContent,\n selectors: [[\"\", \"matTabContent\", \"\"]],\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_TAB_CONTENT,\n useExisting: MatLegacyTabContent\n }]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyTabContent, [{\n type: Directive,\n args: [{\n selector: '[matTabContent]',\n providers: [{\n provide: MAT_TAB_CONTENT,\n useExisting: MatLegacyTabContent\n }]\n }]\n }], null, null);\n})();\n\n/**\n * @deprecated Use `MatTabsModule` from `@angular/material/tabs` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyTabsModule {\n static {\n this.ɵfac = function MatLegacyTabsModule_Factory(ɵt) {\n return new (ɵt || MatLegacyTabsModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatLegacyTabsModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule, MatCommonModule, PortalModule, MatRippleModule, ObserversModule, A11yModule, MatCommonModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatLegacyTabsModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule, MatCommonModule, PortalModule, MatRippleModule, ObserversModule, A11yModule],\n // Don't export all components because some are only to be used internally.\n exports: [MatCommonModule, MatLegacyTabGroup, MatLegacyTabLabel, MatLegacyTab, MatLegacyTabNav, MatLegacyTabNavPanel, MatLegacyTabLink, MatLegacyTabContent],\n declarations: [MatLegacyTabGroup, MatLegacyTabLabel, MatLegacyTab, MatLegacyInkBar, MatLegacyTabLabelWrapper, MatLegacyTabNav, MatLegacyTabNavPanel, MatLegacyTabLink, MatLegacyTabBody, MatLegacyTabBodyPortal, MatLegacyTabHeader, MatLegacyTabContent]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MatLegacyInkBar, MatLegacyTab, MatLegacyTabBody, MatLegacyTabBodyPortal, MatLegacyTabContent, MatLegacyTabGroup, MatLegacyTabHeader, MatLegacyTabLabel, MatLegacyTabLabelWrapper, MatLegacyTabLink, MatLegacyTabNav, MatLegacyTabNavPanel, MatLegacyTabsModule };\n","import * as i1 from '@angular/cdk/scrolling';\nimport { CdkScrollable, CdkScrollableModule } from '@angular/cdk/scrolling';\nimport * as i5 from '@angular/common';\nimport { DOCUMENT, CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, forwardRef, Component, ChangeDetectionStrategy, ViewEncapsulation, Inject, EventEmitter, Optional, Input, Output, ViewChild, QueryList, ContentChildren, ContentChild, NgModule } from '@angular/core';\nimport { MatCommonModule } from '@angular/material/core';\nimport * as i2 from '@angular/cdk/a11y';\nimport * as i4 from '@angular/cdk/bidi';\nimport { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';\nimport { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';\nimport * as i3 from '@angular/cdk/platform';\nimport { Subject, fromEvent, merge } from 'rxjs';\nimport { filter, map, mapTo, takeUntil, distinctUntilChanged, take, startWith, debounceTime } from 'rxjs/operators';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\n\n/**\n * Animations used by the Material drawers.\n * @docs-private\n */\nconst _c0 = [\"*\"];\nconst _c1 = [\"content\"];\nconst _c2 = [[[\"mat-drawer\"]], [[\"mat-drawer-content\"]], \"*\"];\nconst _c3 = [\"mat-drawer\", \"mat-drawer-content\", \"*\"];\nfunction MatDrawerContainer_div_0_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 2);\n i0.ɵɵlistener(\"click\", function MatDrawerContainer_div_0_Template_div_click_0_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1._onBackdropClicked());\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"mat-drawer-shown\", ctx_r1._isShowingBackdrop());\n }\n}\nfunction MatDrawerContainer_mat_drawer_content_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"mat-drawer-content\");\n i0.ɵɵprojection(1, 2);\n i0.ɵɵelementEnd();\n }\n}\nconst _c4 = [[[\"mat-sidenav\"]], [[\"mat-sidenav-content\"]], \"*\"];\nconst _c5 = [\"mat-sidenav\", \"mat-sidenav-content\", \"*\"];\nfunction MatSidenavContainer_div_0_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 2);\n i0.ɵɵlistener(\"click\", function MatSidenavContainer_div_0_Template_div_click_0_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1._onBackdropClicked());\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"mat-drawer-shown\", ctx_r1._isShowingBackdrop());\n }\n}\nfunction MatSidenavContainer_mat_sidenav_content_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"mat-sidenav-content\");\n i0.ɵɵprojection(1, 2);\n i0.ɵɵelementEnd();\n }\n}\nconst _c6 = \".mat-drawer-container{position:relative;z-index:1;color:var(--mat-sidenav-content-text-color);background-color:var(--mat-sidenav-content-background-color);box-sizing:border-box;-webkit-overflow-scrolling:touch;display:block;overflow:hidden}.mat-drawer-container[fullscreen]{top:0;left:0;right:0;bottom:0;position:absolute}.mat-drawer-container[fullscreen].mat-drawer-container-has-open{overflow:hidden}.mat-drawer-container.mat-drawer-container-explicit-backdrop .mat-drawer-side{z-index:3}.mat-drawer-container.ng-animate-disabled .mat-drawer-backdrop,.mat-drawer-container.ng-animate-disabled .mat-drawer-content,.ng-animate-disabled .mat-drawer-container .mat-drawer-backdrop,.ng-animate-disabled .mat-drawer-container .mat-drawer-content{transition:none}.mat-drawer-backdrop{top:0;left:0;right:0;bottom:0;position:absolute;display:block;z-index:3;visibility:hidden}.mat-drawer-backdrop.mat-drawer-shown{visibility:visible;background-color:var(--mat-sidenav-scrim-color)}.mat-drawer-transition .mat-drawer-backdrop{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:background-color,visibility}.cdk-high-contrast-active .mat-drawer-backdrop{opacity:.5}.mat-drawer-content{position:relative;z-index:1;display:block;height:100%;overflow:auto}.mat-drawer-transition .mat-drawer-content{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:transform,margin-left,margin-right}.mat-drawer{box-shadow:0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);position:relative;z-index:4;--mat-sidenav-container-shape:0;color:var(--mat-sidenav-container-text-color);background-color:var(--mat-sidenav-container-background-color);border-top-right-radius:var(--mat-sidenav-container-shape);border-bottom-right-radius:var(--mat-sidenav-container-shape);display:block;position:absolute;top:0;bottom:0;z-index:3;outline:0;box-sizing:border-box;overflow-y:auto;transform:translate3d(-100%, 0, 0)}.cdk-high-contrast-active .mat-drawer,.cdk-high-contrast-active [dir=rtl] .mat-drawer.mat-drawer-end{border-right:solid 1px currentColor}.cdk-high-contrast-active [dir=rtl] .mat-drawer,.cdk-high-contrast-active .mat-drawer.mat-drawer-end{border-left:solid 1px currentColor;border-right:none}.mat-drawer.mat-drawer-side{z-index:2}.mat-drawer.mat-drawer-end{right:0;transform:translate3d(100%, 0, 0);border-top-left-radius:var(--mat-sidenav-container-shape);border-bottom-left-radius:var(--mat-sidenav-container-shape);border-top-right-radius:0;border-bottom-right-radius:0}[dir=rtl] .mat-drawer{border-top-left-radius:var(--mat-sidenav-container-shape);border-bottom-left-radius:var(--mat-sidenav-container-shape);border-top-right-radius:0;border-bottom-right-radius:0;transform:translate3d(100%, 0, 0)}[dir=rtl] .mat-drawer.mat-drawer-end{border-top-right-radius:var(--mat-sidenav-container-shape);border-bottom-right-radius:var(--mat-sidenav-container-shape);border-top-left-radius:0;border-bottom-left-radius:0;left:0;right:auto;transform:translate3d(-100%, 0, 0)}.mat-drawer[style*=\\\"visibility: hidden\\\"]{display:none}.mat-drawer-side{box-shadow:none;border-right-color:var(--mat-sidenav-container-divider-color);border-right-width:1px;border-right-style:solid}.mat-drawer-side.mat-drawer-end{border-left-color:var(--mat-sidenav-container-divider-color);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side{border-left-color:var(--mat-sidenav-container-divider-color);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side.mat-drawer-end{border-right-color:var(--mat-sidenav-container-divider-color);border-right-width:1px;border-right-style:solid;border-left:none}.mat-drawer-inner-container{width:100%;height:100%;overflow:auto;-webkit-overflow-scrolling:touch}.mat-sidenav-fixed{position:fixed}\";\nconst matDrawerAnimations = {\n /** Animation that slides a drawer in and out. */\n transformDrawer: trigger('transform', [\n // We remove the `transform` here completely, rather than setting it to zero, because:\n // 1. Having a transform can cause elements with ripples or an animated\n // transform to shift around in Chrome with an RTL layout (see #10023).\n // 2. 3d transforms causes text to appear blurry on IE and Edge.\n state('open, open-instant', style({\n 'transform': 'none',\n 'visibility': 'visible'\n })), state('void', style({\n // Avoids the shadow showing up when closed in SSR.\n 'box-shadow': 'none',\n 'visibility': 'hidden'\n })), transition('void => open-instant', animate('0ms')), transition('void <=> open, open-instant => void', animate('400ms cubic-bezier(0.25, 0.8, 0.25, 1)'))])\n};\n\n/**\n * Throws an exception when two MatDrawer are matching the same position.\n * @docs-private\n */\nfunction throwMatDuplicatedDrawerError(position) {\n throw Error(`A drawer was already declared for 'position=\"${position}\"'`);\n}\n/** Configures whether drawers should use auto sizing by default. */\nconst MAT_DRAWER_DEFAULT_AUTOSIZE = new InjectionToken('MAT_DRAWER_DEFAULT_AUTOSIZE', {\n providedIn: 'root',\n factory: MAT_DRAWER_DEFAULT_AUTOSIZE_FACTORY\n});\n/**\n * Used to provide a drawer container to a drawer while avoiding circular references.\n * @docs-private\n */\nconst MAT_DRAWER_CONTAINER = new InjectionToken('MAT_DRAWER_CONTAINER');\n/** @docs-private */\nfunction MAT_DRAWER_DEFAULT_AUTOSIZE_FACTORY() {\n return false;\n}\nclass MatDrawerContent extends CdkScrollable {\n constructor(_changeDetectorRef, _container, elementRef, scrollDispatcher, ngZone) {\n super(elementRef, scrollDispatcher, ngZone);\n this._changeDetectorRef = _changeDetectorRef;\n this._container = _container;\n }\n ngAfterContentInit() {\n this._container._contentMarginChanges.subscribe(() => {\n this._changeDetectorRef.markForCheck();\n });\n }\n static {\n this.ɵfac = function MatDrawerContent_Factory(ɵt) {\n return new (ɵt || MatDrawerContent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(forwardRef(() => MatDrawerContainer)), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.ScrollDispatcher), i0.ɵɵdirectiveInject(i0.NgZone));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatDrawerContent,\n selectors: [[\"mat-drawer-content\"]],\n hostAttrs: [\"ngSkipHydration\", \"\", 1, \"mat-drawer-content\"],\n hostVars: 4,\n hostBindings: function MatDrawerContent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵstyleProp(\"margin-left\", ctx._container._contentMargins.left, \"px\")(\"margin-right\", ctx._container._contentMargins.right, \"px\");\n }\n },\n features: [i0.ɵɵProvidersFeature([{\n provide: CdkScrollable,\n useExisting: MatDrawerContent\n }]), i0.ɵɵInheritDefinitionFeature],\n ngContentSelectors: _c0,\n decls: 1,\n vars: 0,\n template: function MatDrawerContent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵprojection(0);\n }\n },\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatDrawerContent, [{\n type: Component,\n args: [{\n selector: 'mat-drawer-content',\n template: '',\n host: {\n 'class': 'mat-drawer-content',\n '[style.margin-left.px]': '_container._contentMargins.left',\n '[style.margin-right.px]': '_container._contentMargins.right',\n 'ngSkipHydration': ''\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [{\n provide: CdkScrollable,\n useExisting: MatDrawerContent\n }]\n }]\n }], function () {\n return [{\n type: i0.ChangeDetectorRef\n }, {\n type: MatDrawerContainer,\n decorators: [{\n type: Inject,\n args: [forwardRef(() => MatDrawerContainer)]\n }]\n }, {\n type: i0.ElementRef\n }, {\n type: i1.ScrollDispatcher\n }, {\n type: i0.NgZone\n }];\n }, null);\n})();\n/**\n * This component corresponds to a drawer that can be opened on the drawer container.\n */\nclass MatDrawer {\n /** The side that the drawer is attached to. */\n get position() {\n return this._position;\n }\n set position(value) {\n // Make sure we have a valid value.\n value = value === 'end' ? 'end' : 'start';\n if (value !== this._position) {\n // Static inputs in Ivy are set before the element is in the DOM.\n if (this._isAttached) {\n this._updatePositionInParent(value);\n }\n this._position = value;\n this.onPositionChanged.emit();\n }\n }\n /** Mode of the drawer; one of 'over', 'push' or 'side'. */\n get mode() {\n return this._mode;\n }\n set mode(value) {\n this._mode = value;\n this._updateFocusTrapState();\n this._modeChanged.next();\n }\n /** Whether the drawer can be closed with the escape key or by clicking on the backdrop. */\n get disableClose() {\n return this._disableClose;\n }\n set disableClose(value) {\n this._disableClose = coerceBooleanProperty(value);\n }\n /**\n * Whether the drawer should focus the first focusable element automatically when opened.\n * Defaults to false in when `mode` is set to `side`, otherwise defaults to `true`. If explicitly\n * enabled, focus will be moved into the sidenav in `side` mode as well.\n * @breaking-change 14.0.0 Remove boolean option from autoFocus. Use string or AutoFocusTarget\n * instead.\n */\n get autoFocus() {\n const value = this._autoFocus;\n // Note that usually we don't allow autoFocus to be set to `first-tabbable` in `side` mode,\n // because we don't know how the sidenav is being used, but in some cases it still makes\n // sense to do it. The consumer can explicitly set `autoFocus`.\n if (value == null) {\n if (this.mode === 'side') {\n return 'dialog';\n } else {\n return 'first-tabbable';\n }\n }\n return value;\n }\n set autoFocus(value) {\n if (value === 'true' || value === 'false' || value == null) {\n value = coerceBooleanProperty(value);\n }\n this._autoFocus = value;\n }\n /**\n * Whether the drawer is opened. We overload this because we trigger an event when it\n * starts or end.\n */\n get opened() {\n return this._opened;\n }\n set opened(value) {\n this.toggle(coerceBooleanProperty(value));\n }\n constructor(_elementRef, _focusTrapFactory, _focusMonitor, _platform, _ngZone, _interactivityChecker, _doc, _container) {\n this._elementRef = _elementRef;\n this._focusTrapFactory = _focusTrapFactory;\n this._focusMonitor = _focusMonitor;\n this._platform = _platform;\n this._ngZone = _ngZone;\n this._interactivityChecker = _interactivityChecker;\n this._doc = _doc;\n this._container = _container;\n this._elementFocusedBeforeDrawerWasOpened = null;\n /** Whether the drawer is initialized. Used for disabling the initial animation. */\n this._enableAnimations = false;\n this._position = 'start';\n this._mode = 'over';\n this._disableClose = false;\n this._opened = false;\n /** Emits whenever the drawer has started animating. */\n this._animationStarted = new Subject();\n /** Emits whenever the drawer is done animating. */\n this._animationEnd = new Subject();\n /** Current state of the sidenav animation. */\n this._animationState = 'void';\n /** Event emitted when the drawer open state is changed. */\n this.openedChange =\n // Note this has to be async in order to avoid some issues with two-bindings (see #8872).\n new EventEmitter( /* isAsync */true);\n /** Event emitted when the drawer has been opened. */\n this._openedStream = this.openedChange.pipe(filter(o => o), map(() => {}));\n /** Event emitted when the drawer has started opening. */\n this.openedStart = this._animationStarted.pipe(filter(e => e.fromState !== e.toState && e.toState.indexOf('open') === 0), mapTo(undefined));\n /** Event emitted when the drawer has been closed. */\n this._closedStream = this.openedChange.pipe(filter(o => !o), map(() => {}));\n /** Event emitted when the drawer has started closing. */\n this.closedStart = this._animationStarted.pipe(filter(e => e.fromState !== e.toState && e.toState === 'void'), mapTo(undefined));\n /** Emits when the component is destroyed. */\n this._destroyed = new Subject();\n /** Event emitted when the drawer's position changes. */\n // tslint:disable-next-line:no-output-on-prefix\n this.onPositionChanged = new EventEmitter();\n /**\n * An observable that emits when the drawer mode changes. This is used by the drawer container to\n * to know when to when the mode changes so it can adapt the margins on the content.\n */\n this._modeChanged = new Subject();\n this.openedChange.subscribe(opened => {\n if (opened) {\n if (this._doc) {\n this._elementFocusedBeforeDrawerWasOpened = this._doc.activeElement;\n }\n this._takeFocus();\n } else if (this._isFocusWithinDrawer()) {\n this._restoreFocus(this._openedVia || 'program');\n }\n });\n /**\n * Listen to `keydown` events outside the zone so that change detection is not run every\n * time a key is pressed. Instead we re-enter the zone only if the `ESC` key is pressed\n * and we don't have close disabled.\n */\n this._ngZone.runOutsideAngular(() => {\n fromEvent(this._elementRef.nativeElement, 'keydown').pipe(filter(event => {\n return event.keyCode === ESCAPE && !this.disableClose && !hasModifierKey(event);\n }), takeUntil(this._destroyed)).subscribe(event => this._ngZone.run(() => {\n this.close();\n event.stopPropagation();\n event.preventDefault();\n }));\n });\n // We need a Subject with distinctUntilChanged, because the `done` event\n // fires twice on some browsers. See https://github.com/angular/angular/issues/24084\n this._animationEnd.pipe(distinctUntilChanged((x, y) => {\n return x.fromState === y.fromState && x.toState === y.toState;\n })).subscribe(event => {\n const {\n fromState,\n toState\n } = event;\n if (toState.indexOf('open') === 0 && fromState === 'void' || toState === 'void' && fromState.indexOf('open') === 0) {\n this.openedChange.emit(this._opened);\n }\n });\n }\n /**\n * Focuses the provided element. If the element is not focusable, it will add a tabIndex\n * attribute to forcefully focus it. The attribute is removed after focus is moved.\n * @param element The element to focus.\n */\n _forceFocus(element, options) {\n if (!this._interactivityChecker.isFocusable(element)) {\n element.tabIndex = -1;\n // The tabindex attribute should be removed to avoid navigating to that element again\n this._ngZone.runOutsideAngular(() => {\n const callback = () => {\n element.removeEventListener('blur', callback);\n element.removeEventListener('mousedown', callback);\n element.removeAttribute('tabindex');\n };\n element.addEventListener('blur', callback);\n element.addEventListener('mousedown', callback);\n });\n }\n element.focus(options);\n }\n /**\n * Focuses the first element that matches the given selector within the focus trap.\n * @param selector The CSS selector for the element to set focus to.\n */\n _focusByCssSelector(selector, options) {\n let elementToFocus = this._elementRef.nativeElement.querySelector(selector);\n if (elementToFocus) {\n this._forceFocus(elementToFocus, options);\n }\n }\n /**\n * Moves focus into the drawer. Note that this works even if\n * the focus trap is disabled in `side` mode.\n */\n _takeFocus() {\n if (!this._focusTrap) {\n return;\n }\n const element = this._elementRef.nativeElement;\n // When autoFocus is not on the sidenav, if the element cannot be focused or does\n // not exist, focus the sidenav itself so the keyboard navigation still works.\n // We need to check that `focus` is a function due to Universal.\n switch (this.autoFocus) {\n case false:\n case 'dialog':\n return;\n case true:\n case 'first-tabbable':\n this._focusTrap.focusInitialElementWhenReady().then(hasMovedFocus => {\n if (!hasMovedFocus && typeof this._elementRef.nativeElement.focus === 'function') {\n element.focus();\n }\n });\n break;\n case 'first-heading':\n this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role=\"heading\"]');\n break;\n default:\n this._focusByCssSelector(this.autoFocus);\n break;\n }\n }\n /**\n * Restores focus to the element that was originally focused when the drawer opened.\n * If no element was focused at that time, the focus will be restored to the drawer.\n */\n _restoreFocus(focusOrigin) {\n if (this.autoFocus === 'dialog') {\n return;\n }\n if (this._elementFocusedBeforeDrawerWasOpened) {\n this._focusMonitor.focusVia(this._elementFocusedBeforeDrawerWasOpened, focusOrigin);\n } else {\n this._elementRef.nativeElement.blur();\n }\n this._elementFocusedBeforeDrawerWasOpened = null;\n }\n /** Whether focus is currently within the drawer. */\n _isFocusWithinDrawer() {\n const activeEl = this._doc.activeElement;\n return !!activeEl && this._elementRef.nativeElement.contains(activeEl);\n }\n ngAfterViewInit() {\n this._isAttached = true;\n this._focusTrap = this._focusTrapFactory.create(this._elementRef.nativeElement);\n this._updateFocusTrapState();\n // Only update the DOM position when the sidenav is positioned at\n // the end since we project the sidenav before the content by default.\n if (this._position === 'end') {\n this._updatePositionInParent('end');\n }\n }\n ngAfterContentChecked() {\n // Enable the animations after the lifecycle hooks have run, in order to avoid animating\n // drawers that are open by default. When we're on the server, we shouldn't enable the\n // animations, because we don't want the drawer to animate the first time the user sees\n // the page.\n if (this._platform.isBrowser) {\n this._enableAnimations = true;\n }\n }\n ngOnDestroy() {\n if (this._focusTrap) {\n this._focusTrap.destroy();\n }\n this._anchor?.remove();\n this._anchor = null;\n this._animationStarted.complete();\n this._animationEnd.complete();\n this._modeChanged.complete();\n this._destroyed.next();\n this._destroyed.complete();\n }\n /**\n * Open the drawer.\n * @param openedVia Whether the drawer was opened by a key press, mouse click or programmatically.\n * Used for focus management after the sidenav is closed.\n */\n open(openedVia) {\n return this.toggle(true, openedVia);\n }\n /** Close the drawer. */\n close() {\n return this.toggle(false);\n }\n /** Closes the drawer with context that the backdrop was clicked. */\n _closeViaBackdropClick() {\n // If the drawer is closed upon a backdrop click, we always want to restore focus. We\n // don't need to check whether focus is currently in the drawer, as clicking on the\n // backdrop causes blurs the active element.\n return this._setOpen( /* isOpen */false, /* restoreFocus */true, 'mouse');\n }\n /**\n * Toggle this drawer.\n * @param isOpen Whether the drawer should be open.\n * @param openedVia Whether the drawer was opened by a key press, mouse click or programmatically.\n * Used for focus management after the sidenav is closed.\n */\n toggle(isOpen = !this.opened, openedVia) {\n // If the focus is currently inside the drawer content and we are closing the drawer,\n // restore the focus to the initially focused element (when the drawer opened).\n if (isOpen && openedVia) {\n this._openedVia = openedVia;\n }\n const result = this._setOpen(isOpen, /* restoreFocus */!isOpen && this._isFocusWithinDrawer(), this._openedVia || 'program');\n if (!isOpen) {\n this._openedVia = null;\n }\n return result;\n }\n /**\n * Toggles the opened state of the drawer.\n * @param isOpen Whether the drawer should open or close.\n * @param restoreFocus Whether focus should be restored on close.\n * @param focusOrigin Origin to use when restoring focus.\n */\n _setOpen(isOpen, restoreFocus, focusOrigin) {\n this._opened = isOpen;\n if (isOpen) {\n this._animationState = this._enableAnimations ? 'open' : 'open-instant';\n } else {\n this._animationState = 'void';\n if (restoreFocus) {\n this._restoreFocus(focusOrigin);\n }\n }\n this._updateFocusTrapState();\n return new Promise(resolve => {\n this.openedChange.pipe(take(1)).subscribe(open => resolve(open ? 'open' : 'close'));\n });\n }\n _getWidth() {\n return this._elementRef.nativeElement ? this._elementRef.nativeElement.offsetWidth || 0 : 0;\n }\n /** Updates the enabled state of the focus trap. */\n _updateFocusTrapState() {\n if (this._focusTrap) {\n // Trap focus only if the backdrop is enabled. Otherwise, allow end user to interact with the\n // sidenav content.\n this._focusTrap.enabled = !!this._container?.hasBackdrop;\n }\n }\n /**\n * Updates the position of the drawer in the DOM. We need to move the element around ourselves\n * when it's in the `end` position so that it comes after the content and the visual order\n * matches the tab order. We also need to be able to move it back to `start` if the sidenav\n * started off as `end` and was changed to `start`.\n */\n _updatePositionInParent(newPosition) {\n const element = this._elementRef.nativeElement;\n const parent = element.parentNode;\n if (newPosition === 'end') {\n if (!this._anchor) {\n this._anchor = this._doc.createComment('mat-drawer-anchor');\n parent.insertBefore(this._anchor, element);\n }\n parent.appendChild(element);\n } else if (this._anchor) {\n this._anchor.parentNode.insertBefore(element, this._anchor);\n }\n }\n static {\n this.ɵfac = function MatDrawer_Factory(ɵt) {\n return new (ɵt || MatDrawer)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i2.FocusTrapFactory), i0.ɵɵdirectiveInject(i2.FocusMonitor), i0.ɵɵdirectiveInject(i3.Platform), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i2.InteractivityChecker), i0.ɵɵdirectiveInject(DOCUMENT, 8), i0.ɵɵdirectiveInject(MAT_DRAWER_CONTAINER, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatDrawer,\n selectors: [[\"mat-drawer\"]],\n viewQuery: function MatDrawer_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c1, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._content = _t.first);\n }\n },\n hostAttrs: [\"tabIndex\", \"-1\", \"ngSkipHydration\", \"\", 1, \"mat-drawer\"],\n hostVars: 12,\n hostBindings: function MatDrawer_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵsyntheticHostListener(\"@transform.start\", function MatDrawer_animation_transform_start_HostBindingHandler($event) {\n return ctx._animationStarted.next($event);\n })(\"@transform.done\", function MatDrawer_animation_transform_done_HostBindingHandler($event) {\n return ctx._animationEnd.next($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵsyntheticHostProperty(\"@transform\", ctx._animationState);\n i0.ɵɵattribute(\"align\", null);\n i0.ɵɵclassProp(\"mat-drawer-end\", ctx.position === \"end\")(\"mat-drawer-over\", ctx.mode === \"over\")(\"mat-drawer-push\", ctx.mode === \"push\")(\"mat-drawer-side\", ctx.mode === \"side\")(\"mat-drawer-opened\", ctx.opened);\n }\n },\n inputs: {\n position: \"position\",\n mode: \"mode\",\n disableClose: \"disableClose\",\n autoFocus: \"autoFocus\",\n opened: \"opened\"\n },\n outputs: {\n openedChange: \"openedChange\",\n _openedStream: \"opened\",\n openedStart: \"openedStart\",\n _closedStream: \"closed\",\n closedStart: \"closedStart\",\n onPositionChanged: \"positionChanged\"\n },\n exportAs: [\"matDrawer\"],\n ngContentSelectors: _c0,\n decls: 3,\n vars: 0,\n consts: [[\"content\", \"\"], [\"cdkScrollable\", \"\", 1, \"mat-drawer-inner-container\"]],\n template: function MatDrawer_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"div\", 1, 0);\n i0.ɵɵprojection(2);\n i0.ɵɵelementEnd();\n }\n },\n dependencies: [i1.CdkScrollable],\n encapsulation: 2,\n data: {\n animation: [matDrawerAnimations.transformDrawer]\n },\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatDrawer, [{\n type: Component,\n args: [{\n selector: 'mat-drawer',\n exportAs: 'matDrawer',\n animations: [matDrawerAnimations.transformDrawer],\n host: {\n 'class': 'mat-drawer',\n // must prevent the browser from aligning text based on value\n '[attr.align]': 'null',\n '[class.mat-drawer-end]': 'position === \"end\"',\n '[class.mat-drawer-over]': 'mode === \"over\"',\n '[class.mat-drawer-push]': 'mode === \"push\"',\n '[class.mat-drawer-side]': 'mode === \"side\"',\n '[class.mat-drawer-opened]': 'opened',\n 'tabIndex': '-1',\n '[@transform]': '_animationState',\n '(@transform.start)': '_animationStarted.next($event)',\n '(@transform.done)': '_animationEnd.next($event)',\n 'ngSkipHydration': ''\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: \"\\r\\n \\r\\n\\r\\n\"\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i2.FocusTrapFactory\n }, {\n type: i2.FocusMonitor\n }, {\n type: i3.Platform\n }, {\n type: i0.NgZone\n }, {\n type: i2.InteractivityChecker\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [DOCUMENT]\n }]\n }, {\n type: MatDrawerContainer,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_DRAWER_CONTAINER]\n }]\n }];\n }, {\n position: [{\n type: Input\n }],\n mode: [{\n type: Input\n }],\n disableClose: [{\n type: Input\n }],\n autoFocus: [{\n type: Input\n }],\n opened: [{\n type: Input\n }],\n openedChange: [{\n type: Output\n }],\n _openedStream: [{\n type: Output,\n args: ['opened']\n }],\n openedStart: [{\n type: Output\n }],\n _closedStream: [{\n type: Output,\n args: ['closed']\n }],\n closedStart: [{\n type: Output\n }],\n onPositionChanged: [{\n type: Output,\n args: ['positionChanged']\n }],\n _content: [{\n type: ViewChild,\n args: ['content']\n }]\n });\n})();\n/**\n * `` component.\n *\n * This is the parent component to one or two ``s that validates the state internally\n * and coordinates the backdrop and content styling.\n */\nclass MatDrawerContainer {\n /** The drawer child with the `start` position. */\n get start() {\n return this._start;\n }\n /** The drawer child with the `end` position. */\n get end() {\n return this._end;\n }\n /**\n * Whether to automatically resize the container whenever\n * the size of any of its drawers changes.\n *\n * **Use at your own risk!** Enabling this option can cause layout thrashing by measuring\n * the drawers on every change detection cycle. Can be configured globally via the\n * `MAT_DRAWER_DEFAULT_AUTOSIZE` token.\n */\n get autosize() {\n return this._autosize;\n }\n set autosize(value) {\n this._autosize = coerceBooleanProperty(value);\n }\n /**\n * Whether the drawer container should have a backdrop while one of the sidenavs is open.\n * If explicitly set to `true`, the backdrop will be enabled for drawers in the `side`\n * mode as well.\n */\n get hasBackdrop() {\n return this._drawerHasBackdrop(this._start) || this._drawerHasBackdrop(this._end);\n }\n set hasBackdrop(value) {\n this._backdropOverride = value == null ? null : coerceBooleanProperty(value);\n }\n /** Reference to the CdkScrollable instance that wraps the scrollable content. */\n get scrollable() {\n return this._userContent || this._content;\n }\n constructor(_dir, _element, _ngZone, _changeDetectorRef, viewportRuler, defaultAutosize = false, _animationMode) {\n this._dir = _dir;\n this._element = _element;\n this._ngZone = _ngZone;\n this._changeDetectorRef = _changeDetectorRef;\n this._animationMode = _animationMode;\n /** Drawers that belong to this container. */\n this._drawers = new QueryList();\n /** Event emitted when the drawer backdrop is clicked. */\n this.backdropClick = new EventEmitter();\n /** Emits when the component is destroyed. */\n this._destroyed = new Subject();\n /** Emits on every ngDoCheck. Used for debouncing reflows. */\n this._doCheckSubject = new Subject();\n /**\n * Margins to be applied to the content. These are used to push / shrink the drawer content when a\n * drawer is open. We use margin rather than transform even for push mode because transform breaks\n * fixed position elements inside of the transformed element.\n */\n this._contentMargins = {\n left: null,\n right: null\n };\n this._contentMarginChanges = new Subject();\n // If a `Dir` directive exists up the tree, listen direction changes\n // and update the left/right properties to point to the proper start/end.\n if (_dir) {\n _dir.change.pipe(takeUntil(this._destroyed)).subscribe(() => {\n this._validateDrawers();\n this.updateContentMargins();\n });\n }\n // Since the minimum width of the sidenav depends on the viewport width,\n // we need to recompute the margins if the viewport changes.\n viewportRuler.change().pipe(takeUntil(this._destroyed)).subscribe(() => this.updateContentMargins());\n this._autosize = defaultAutosize;\n }\n ngAfterContentInit() {\n this._allDrawers.changes.pipe(startWith(this._allDrawers), takeUntil(this._destroyed)).subscribe(drawer => {\n this._drawers.reset(drawer.filter(item => !item._container || item._container === this));\n this._drawers.notifyOnChanges();\n });\n this._drawers.changes.pipe(startWith(null)).subscribe(() => {\n this._validateDrawers();\n this._drawers.forEach(drawer => {\n this._watchDrawerToggle(drawer);\n this._watchDrawerPosition(drawer);\n this._watchDrawerMode(drawer);\n });\n if (!this._drawers.length || this._isDrawerOpen(this._start) || this._isDrawerOpen(this._end)) {\n this.updateContentMargins();\n }\n this._changeDetectorRef.markForCheck();\n });\n // Avoid hitting the NgZone through the debounce timeout.\n this._ngZone.runOutsideAngular(() => {\n this._doCheckSubject.pipe(debounceTime(10),\n // Arbitrary debounce time, less than a frame at 60fps\n takeUntil(this._destroyed)).subscribe(() => this.updateContentMargins());\n });\n }\n ngOnDestroy() {\n this._contentMarginChanges.complete();\n this._doCheckSubject.complete();\n this._drawers.destroy();\n this._destroyed.next();\n this._destroyed.complete();\n }\n /** Calls `open` of both start and end drawers */\n open() {\n this._drawers.forEach(drawer => drawer.open());\n }\n /** Calls `close` of both start and end drawers */\n close() {\n this._drawers.forEach(drawer => drawer.close());\n }\n /**\n * Recalculates and updates the inline styles for the content. Note that this should be used\n * sparingly, because it causes a reflow.\n */\n updateContentMargins() {\n // 1. For drawers in `over` mode, they don't affect the content.\n // 2. For drawers in `side` mode they should shrink the content. We do this by adding to the\n // left margin (for left drawer) or right margin (for right the drawer).\n // 3. For drawers in `push` mode the should shift the content without resizing it. We do this by\n // adding to the left or right margin and simultaneously subtracting the same amount of\n // margin from the other side.\n let left = 0;\n let right = 0;\n if (this._left && this._left.opened) {\n if (this._left.mode == 'side') {\n left += this._left._getWidth();\n } else if (this._left.mode == 'push') {\n const width = this._left._getWidth();\n left += width;\n right -= width;\n }\n }\n if (this._right && this._right.opened) {\n if (this._right.mode == 'side') {\n right += this._right._getWidth();\n } else if (this._right.mode == 'push') {\n const width = this._right._getWidth();\n right += width;\n left -= width;\n }\n }\n // If either `right` or `left` is zero, don't set a style to the element. This\n // allows users to specify a custom size via CSS class in SSR scenarios where the\n // measured widths will always be zero. Note that we reset to `null` here, rather\n // than below, in order to ensure that the types in the `if` below are consistent.\n left = left || null;\n right = right || null;\n if (left !== this._contentMargins.left || right !== this._contentMargins.right) {\n this._contentMargins = {\n left,\n right\n };\n // Pull back into the NgZone since in some cases we could be outside. We need to be careful\n // to do it only when something changed, otherwise we can end up hitting the zone too often.\n this._ngZone.run(() => this._contentMarginChanges.next(this._contentMargins));\n }\n }\n ngDoCheck() {\n // If users opted into autosizing, do a check every change detection cycle.\n if (this._autosize && this._isPushed()) {\n // Run outside the NgZone, otherwise the debouncer will throw us into an infinite loop.\n this._ngZone.runOutsideAngular(() => this._doCheckSubject.next());\n }\n }\n /**\n * Subscribes to drawer events in order to set a class on the main container element when the\n * drawer is open and the backdrop is visible. This ensures any overflow on the container element\n * is properly hidden.\n */\n _watchDrawerToggle(drawer) {\n drawer._animationStarted.pipe(filter(event => event.fromState !== event.toState), takeUntil(this._drawers.changes)).subscribe(event => {\n // Set the transition class on the container so that the animations occur. This should not\n // be set initially because animations should only be triggered via a change in state.\n if (event.toState !== 'open-instant' && this._animationMode !== 'NoopAnimations') {\n this._element.nativeElement.classList.add('mat-drawer-transition');\n }\n this.updateContentMargins();\n this._changeDetectorRef.markForCheck();\n });\n if (drawer.mode !== 'side') {\n drawer.openedChange.pipe(takeUntil(this._drawers.changes)).subscribe(() => this._setContainerClass(drawer.opened));\n }\n }\n /**\n * Subscribes to drawer onPositionChanged event in order to\n * re-validate drawers when the position changes.\n */\n _watchDrawerPosition(drawer) {\n if (!drawer) {\n return;\n }\n // NOTE: We need to wait for the microtask queue to be empty before validating,\n // since both drawers may be swapping positions at the same time.\n drawer.onPositionChanged.pipe(takeUntil(this._drawers.changes)).subscribe(() => {\n this._ngZone.onMicrotaskEmpty.pipe(take(1)).subscribe(() => {\n this._validateDrawers();\n });\n });\n }\n /** Subscribes to changes in drawer mode so we can run change detection. */\n _watchDrawerMode(drawer) {\n if (drawer) {\n drawer._modeChanged.pipe(takeUntil(merge(this._drawers.changes, this._destroyed))).subscribe(() => {\n this.updateContentMargins();\n this._changeDetectorRef.markForCheck();\n });\n }\n }\n /** Toggles the 'mat-drawer-opened' class on the main 'mat-drawer-container' element. */\n _setContainerClass(isAdd) {\n const classList = this._element.nativeElement.classList;\n const className = 'mat-drawer-container-has-open';\n if (isAdd) {\n classList.add(className);\n } else {\n classList.remove(className);\n }\n }\n /** Validate the state of the drawer children components. */\n _validateDrawers() {\n this._start = this._end = null;\n // Ensure that we have at most one start and one end drawer.\n this._drawers.forEach(drawer => {\n if (drawer.position == 'end') {\n if (this._end != null && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throwMatDuplicatedDrawerError('end');\n }\n this._end = drawer;\n } else {\n if (this._start != null && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throwMatDuplicatedDrawerError('start');\n }\n this._start = drawer;\n }\n });\n this._right = this._left = null;\n // Detect if we're LTR or RTL.\n if (this._dir && this._dir.value === 'rtl') {\n this._left = this._end;\n this._right = this._start;\n } else {\n this._left = this._start;\n this._right = this._end;\n }\n }\n /** Whether the container is being pushed to the side by one of the drawers. */\n _isPushed() {\n return this._isDrawerOpen(this._start) && this._start.mode != 'over' || this._isDrawerOpen(this._end) && this._end.mode != 'over';\n }\n _onBackdropClicked() {\n this.backdropClick.emit();\n this._closeModalDrawersViaBackdrop();\n }\n _closeModalDrawersViaBackdrop() {\n // Close all open drawers where closing is not disabled and the mode is not `side`.\n [this._start, this._end].filter(drawer => drawer && !drawer.disableClose && this._drawerHasBackdrop(drawer)).forEach(drawer => drawer._closeViaBackdropClick());\n }\n _isShowingBackdrop() {\n return this._isDrawerOpen(this._start) && this._drawerHasBackdrop(this._start) || this._isDrawerOpen(this._end) && this._drawerHasBackdrop(this._end);\n }\n _isDrawerOpen(drawer) {\n return drawer != null && drawer.opened;\n }\n // Whether argument drawer should have a backdrop when it opens\n _drawerHasBackdrop(drawer) {\n if (this._backdropOverride == null) {\n return !!drawer && drawer.mode !== 'side';\n }\n return this._backdropOverride;\n }\n static {\n this.ɵfac = function MatDrawerContainer_Factory(ɵt) {\n return new (ɵt || MatDrawerContainer)(i0.ɵɵdirectiveInject(i4.Directionality, 8), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.ViewportRuler), i0.ɵɵdirectiveInject(MAT_DRAWER_DEFAULT_AUTOSIZE), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatDrawerContainer,\n selectors: [[\"mat-drawer-container\"]],\n contentQueries: function MatDrawerContainer_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MatDrawerContent, 5);\n i0.ɵɵcontentQuery(dirIndex, MatDrawer, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._content = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._allDrawers = _t);\n }\n },\n viewQuery: function MatDrawerContainer_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(MatDrawerContent, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._userContent = _t.first);\n }\n },\n hostAttrs: [\"ngSkipHydration\", \"\", 1, \"mat-drawer-container\"],\n hostVars: 2,\n hostBindings: function MatDrawerContainer_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"mat-drawer-container-explicit-backdrop\", ctx._backdropOverride);\n }\n },\n inputs: {\n autosize: \"autosize\",\n hasBackdrop: \"hasBackdrop\"\n },\n outputs: {\n backdropClick: \"backdropClick\"\n },\n exportAs: [\"matDrawerContainer\"],\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_DRAWER_CONTAINER,\n useExisting: MatDrawerContainer\n }])],\n ngContentSelectors: _c3,\n decls: 4,\n vars: 2,\n consts: [[\"class\", \"mat-drawer-backdrop\", 3, \"mat-drawer-shown\", \"click\", 4, \"ngIf\"], [4, \"ngIf\"], [1, \"mat-drawer-backdrop\", 3, \"click\"]],\n template: function MatDrawerContainer_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c2);\n i0.ɵɵtemplate(0, MatDrawerContainer_div_0_Template, 1, 2, \"div\", 0);\n i0.ɵɵprojection(1);\n i0.ɵɵprojection(2, 1);\n i0.ɵɵtemplate(3, MatDrawerContainer_mat_drawer_content_3_Template, 2, 0, \"mat-drawer-content\", 1);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", ctx.hasBackdrop);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngIf\", !ctx._content);\n }\n },\n dependencies: [i5.NgIf, MatDrawerContent],\n styles: [\".mat-drawer-container{position:relative;z-index:1;color:var(--mat-sidenav-content-text-color);background-color:var(--mat-sidenav-content-background-color);box-sizing:border-box;-webkit-overflow-scrolling:touch;display:block;overflow:hidden}.mat-drawer-container[fullscreen]{top:0;left:0;right:0;bottom:0;position:absolute}.mat-drawer-container[fullscreen].mat-drawer-container-has-open{overflow:hidden}.mat-drawer-container.mat-drawer-container-explicit-backdrop .mat-drawer-side{z-index:3}.mat-drawer-container.ng-animate-disabled .mat-drawer-backdrop,.mat-drawer-container.ng-animate-disabled .mat-drawer-content,.ng-animate-disabled .mat-drawer-container .mat-drawer-backdrop,.ng-animate-disabled .mat-drawer-container .mat-drawer-content{transition:none}.mat-drawer-backdrop{top:0;left:0;right:0;bottom:0;position:absolute;display:block;z-index:3;visibility:hidden}.mat-drawer-backdrop.mat-drawer-shown{visibility:visible;background-color:var(--mat-sidenav-scrim-color)}.mat-drawer-transition .mat-drawer-backdrop{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:background-color,visibility}.cdk-high-contrast-active .mat-drawer-backdrop{opacity:.5}.mat-drawer-content{position:relative;z-index:1;display:block;height:100%;overflow:auto}.mat-drawer-transition .mat-drawer-content{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:transform,margin-left,margin-right}.mat-drawer{box-shadow:0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);position:relative;z-index:4;--mat-sidenav-container-shape:0;color:var(--mat-sidenav-container-text-color);background-color:var(--mat-sidenav-container-background-color);border-top-right-radius:var(--mat-sidenav-container-shape);border-bottom-right-radius:var(--mat-sidenav-container-shape);display:block;position:absolute;top:0;bottom:0;z-index:3;outline:0;box-sizing:border-box;overflow-y:auto;transform:translate3d(-100%, 0, 0)}.cdk-high-contrast-active .mat-drawer,.cdk-high-contrast-active [dir=rtl] .mat-drawer.mat-drawer-end{border-right:solid 1px currentColor}.cdk-high-contrast-active [dir=rtl] .mat-drawer,.cdk-high-contrast-active .mat-drawer.mat-drawer-end{border-left:solid 1px currentColor;border-right:none}.mat-drawer.mat-drawer-side{z-index:2}.mat-drawer.mat-drawer-end{right:0;transform:translate3d(100%, 0, 0);border-top-left-radius:var(--mat-sidenav-container-shape);border-bottom-left-radius:var(--mat-sidenav-container-shape);border-top-right-radius:0;border-bottom-right-radius:0}[dir=rtl] .mat-drawer{border-top-left-radius:var(--mat-sidenav-container-shape);border-bottom-left-radius:var(--mat-sidenav-container-shape);border-top-right-radius:0;border-bottom-right-radius:0;transform:translate3d(100%, 0, 0)}[dir=rtl] .mat-drawer.mat-drawer-end{border-top-right-radius:var(--mat-sidenav-container-shape);border-bottom-right-radius:var(--mat-sidenav-container-shape);border-top-left-radius:0;border-bottom-left-radius:0;left:0;right:auto;transform:translate3d(-100%, 0, 0)}.mat-drawer[style*=\\\"visibility: hidden\\\"]{display:none}.mat-drawer-side{box-shadow:none;border-right-color:var(--mat-sidenav-container-divider-color);border-right-width:1px;border-right-style:solid}.mat-drawer-side.mat-drawer-end{border-left-color:var(--mat-sidenav-container-divider-color);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side{border-left-color:var(--mat-sidenav-container-divider-color);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side.mat-drawer-end{border-right-color:var(--mat-sidenav-container-divider-color);border-right-width:1px;border-right-style:solid;border-left:none}.mat-drawer-inner-container{width:100%;height:100%;overflow:auto;-webkit-overflow-scrolling:touch}.mat-sidenav-fixed{position:fixed}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatDrawerContainer, [{\n type: Component,\n args: [{\n selector: 'mat-drawer-container',\n exportAs: 'matDrawerContainer',\n host: {\n 'class': 'mat-drawer-container',\n '[class.mat-drawer-container-explicit-backdrop]': '_backdropOverride',\n 'ngSkipHydration': ''\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [{\n provide: MAT_DRAWER_CONTAINER,\n useExisting: MatDrawerContainer\n }],\n template: \"\\n\\n\\n\\n\\n\\n\\n \\n\\n\",\n styles: [\".mat-drawer-container{position:relative;z-index:1;color:var(--mat-sidenav-content-text-color);background-color:var(--mat-sidenav-content-background-color);box-sizing:border-box;-webkit-overflow-scrolling:touch;display:block;overflow:hidden}.mat-drawer-container[fullscreen]{top:0;left:0;right:0;bottom:0;position:absolute}.mat-drawer-container[fullscreen].mat-drawer-container-has-open{overflow:hidden}.mat-drawer-container.mat-drawer-container-explicit-backdrop .mat-drawer-side{z-index:3}.mat-drawer-container.ng-animate-disabled .mat-drawer-backdrop,.mat-drawer-container.ng-animate-disabled .mat-drawer-content,.ng-animate-disabled .mat-drawer-container .mat-drawer-backdrop,.ng-animate-disabled .mat-drawer-container .mat-drawer-content{transition:none}.mat-drawer-backdrop{top:0;left:0;right:0;bottom:0;position:absolute;display:block;z-index:3;visibility:hidden}.mat-drawer-backdrop.mat-drawer-shown{visibility:visible;background-color:var(--mat-sidenav-scrim-color)}.mat-drawer-transition .mat-drawer-backdrop{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:background-color,visibility}.cdk-high-contrast-active .mat-drawer-backdrop{opacity:.5}.mat-drawer-content{position:relative;z-index:1;display:block;height:100%;overflow:auto}.mat-drawer-transition .mat-drawer-content{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:transform,margin-left,margin-right}.mat-drawer{box-shadow:0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);position:relative;z-index:4;--mat-sidenav-container-shape:0;color:var(--mat-sidenav-container-text-color);background-color:var(--mat-sidenav-container-background-color);border-top-right-radius:var(--mat-sidenav-container-shape);border-bottom-right-radius:var(--mat-sidenav-container-shape);display:block;position:absolute;top:0;bottom:0;z-index:3;outline:0;box-sizing:border-box;overflow-y:auto;transform:translate3d(-100%, 0, 0)}.cdk-high-contrast-active .mat-drawer,.cdk-high-contrast-active [dir=rtl] .mat-drawer.mat-drawer-end{border-right:solid 1px currentColor}.cdk-high-contrast-active [dir=rtl] .mat-drawer,.cdk-high-contrast-active .mat-drawer.mat-drawer-end{border-left:solid 1px currentColor;border-right:none}.mat-drawer.mat-drawer-side{z-index:2}.mat-drawer.mat-drawer-end{right:0;transform:translate3d(100%, 0, 0);border-top-left-radius:var(--mat-sidenav-container-shape);border-bottom-left-radius:var(--mat-sidenav-container-shape);border-top-right-radius:0;border-bottom-right-radius:0}[dir=rtl] .mat-drawer{border-top-left-radius:var(--mat-sidenav-container-shape);border-bottom-left-radius:var(--mat-sidenav-container-shape);border-top-right-radius:0;border-bottom-right-radius:0;transform:translate3d(100%, 0, 0)}[dir=rtl] .mat-drawer.mat-drawer-end{border-top-right-radius:var(--mat-sidenav-container-shape);border-bottom-right-radius:var(--mat-sidenav-container-shape);border-top-left-radius:0;border-bottom-left-radius:0;left:0;right:auto;transform:translate3d(-100%, 0, 0)}.mat-drawer[style*=\\\"visibility: hidden\\\"]{display:none}.mat-drawer-side{box-shadow:none;border-right-color:var(--mat-sidenav-container-divider-color);border-right-width:1px;border-right-style:solid}.mat-drawer-side.mat-drawer-end{border-left-color:var(--mat-sidenav-container-divider-color);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side{border-left-color:var(--mat-sidenav-container-divider-color);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side.mat-drawer-end{border-right-color:var(--mat-sidenav-container-divider-color);border-right-width:1px;border-right-style:solid;border-left:none}.mat-drawer-inner-container{width:100%;height:100%;overflow:auto;-webkit-overflow-scrolling:touch}.mat-sidenav-fixed{position:fixed}\"]\n }]\n }], function () {\n return [{\n type: i4.Directionality,\n decorators: [{\n type: Optional\n }]\n }, {\n type: i0.ElementRef\n }, {\n type: i0.NgZone\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: i1.ViewportRuler\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [MAT_DRAWER_DEFAULT_AUTOSIZE]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }]\n }];\n }, {\n _allDrawers: [{\n type: ContentChildren,\n args: [MatDrawer, {\n // We need to use `descendants: true`, because Ivy will no longer match\n // indirect descendants if it's left as false.\n descendants: true\n }]\n }],\n _content: [{\n type: ContentChild,\n args: [MatDrawerContent]\n }],\n _userContent: [{\n type: ViewChild,\n args: [MatDrawerContent]\n }],\n autosize: [{\n type: Input\n }],\n hasBackdrop: [{\n type: Input\n }],\n backdropClick: [{\n type: Output\n }]\n });\n})();\nclass MatSidenavContent extends MatDrawerContent {\n constructor(changeDetectorRef, container, elementRef, scrollDispatcher, ngZone) {\n super(changeDetectorRef, container, elementRef, scrollDispatcher, ngZone);\n }\n static {\n this.ɵfac = function MatSidenavContent_Factory(ɵt) {\n return new (ɵt || MatSidenavContent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(forwardRef(() => MatSidenavContainer)), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.ScrollDispatcher), i0.ɵɵdirectiveInject(i0.NgZone));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatSidenavContent,\n selectors: [[\"mat-sidenav-content\"]],\n hostAttrs: [\"ngSkipHydration\", \"\", 1, \"mat-drawer-content\", \"mat-sidenav-content\"],\n hostVars: 4,\n hostBindings: function MatSidenavContent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵstyleProp(\"margin-left\", ctx._container._contentMargins.left, \"px\")(\"margin-right\", ctx._container._contentMargins.right, \"px\");\n }\n },\n features: [i0.ɵɵProvidersFeature([{\n provide: CdkScrollable,\n useExisting: MatSidenavContent\n }]), i0.ɵɵInheritDefinitionFeature],\n ngContentSelectors: _c0,\n decls: 1,\n vars: 0,\n template: function MatSidenavContent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵprojection(0);\n }\n },\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatSidenavContent, [{\n type: Component,\n args: [{\n selector: 'mat-sidenav-content',\n template: '',\n host: {\n 'class': 'mat-drawer-content mat-sidenav-content',\n '[style.margin-left.px]': '_container._contentMargins.left',\n '[style.margin-right.px]': '_container._contentMargins.right',\n 'ngSkipHydration': ''\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [{\n provide: CdkScrollable,\n useExisting: MatSidenavContent\n }]\n }]\n }], function () {\n return [{\n type: i0.ChangeDetectorRef\n }, {\n type: MatSidenavContainer,\n decorators: [{\n type: Inject,\n args: [forwardRef(() => MatSidenavContainer)]\n }]\n }, {\n type: i0.ElementRef\n }, {\n type: i1.ScrollDispatcher\n }, {\n type: i0.NgZone\n }];\n }, null);\n})();\nclass MatSidenav extends MatDrawer {\n constructor() {\n super(...arguments);\n this._fixedInViewport = false;\n this._fixedTopGap = 0;\n this._fixedBottomGap = 0;\n }\n /** Whether the sidenav is fixed in the viewport. */\n get fixedInViewport() {\n return this._fixedInViewport;\n }\n set fixedInViewport(value) {\n this._fixedInViewport = coerceBooleanProperty(value);\n }\n /**\n * The gap between the top of the sidenav and the top of the viewport when the sidenav is in fixed\n * mode.\n */\n get fixedTopGap() {\n return this._fixedTopGap;\n }\n set fixedTopGap(value) {\n this._fixedTopGap = coerceNumberProperty(value);\n }\n /**\n * The gap between the bottom of the sidenav and the bottom of the viewport when the sidenav is in\n * fixed mode.\n */\n get fixedBottomGap() {\n return this._fixedBottomGap;\n }\n set fixedBottomGap(value) {\n this._fixedBottomGap = coerceNumberProperty(value);\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatSidenav_BaseFactory;\n return function MatSidenav_Factory(ɵt) {\n return (ɵMatSidenav_BaseFactory || (ɵMatSidenav_BaseFactory = i0.ɵɵgetInheritedFactory(MatSidenav)))(ɵt || MatSidenav);\n };\n })();\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatSidenav,\n selectors: [[\"mat-sidenav\"]],\n hostAttrs: [\"tabIndex\", \"-1\", \"ngSkipHydration\", \"\", 1, \"mat-drawer\", \"mat-sidenav\"],\n hostVars: 17,\n hostBindings: function MatSidenav_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"align\", null);\n i0.ɵɵstyleProp(\"top\", ctx.fixedInViewport ? ctx.fixedTopGap : null, \"px\")(\"bottom\", ctx.fixedInViewport ? ctx.fixedBottomGap : null, \"px\");\n i0.ɵɵclassProp(\"mat-drawer-end\", ctx.position === \"end\")(\"mat-drawer-over\", ctx.mode === \"over\")(\"mat-drawer-push\", ctx.mode === \"push\")(\"mat-drawer-side\", ctx.mode === \"side\")(\"mat-drawer-opened\", ctx.opened)(\"mat-sidenav-fixed\", ctx.fixedInViewport);\n }\n },\n inputs: {\n fixedInViewport: \"fixedInViewport\",\n fixedTopGap: \"fixedTopGap\",\n fixedBottomGap: \"fixedBottomGap\"\n },\n exportAs: [\"matSidenav\"],\n features: [i0.ɵɵInheritDefinitionFeature],\n ngContentSelectors: _c0,\n decls: 3,\n vars: 0,\n consts: [[\"content\", \"\"], [\"cdkScrollable\", \"\", 1, \"mat-drawer-inner-container\"]],\n template: function MatSidenav_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"div\", 1, 0);\n i0.ɵɵprojection(2);\n i0.ɵɵelementEnd();\n }\n },\n dependencies: [i1.CdkScrollable],\n encapsulation: 2,\n data: {\n animation: [matDrawerAnimations.transformDrawer]\n },\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatSidenav, [{\n type: Component,\n args: [{\n selector: 'mat-sidenav',\n exportAs: 'matSidenav',\n animations: [matDrawerAnimations.transformDrawer],\n host: {\n 'class': 'mat-drawer mat-sidenav',\n 'tabIndex': '-1',\n // must prevent the browser from aligning text based on value\n '[attr.align]': 'null',\n '[class.mat-drawer-end]': 'position === \"end\"',\n '[class.mat-drawer-over]': 'mode === \"over\"',\n '[class.mat-drawer-push]': 'mode === \"push\"',\n '[class.mat-drawer-side]': 'mode === \"side\"',\n '[class.mat-drawer-opened]': 'opened',\n '[class.mat-sidenav-fixed]': 'fixedInViewport',\n '[style.top.px]': 'fixedInViewport ? fixedTopGap : null',\n '[style.bottom.px]': 'fixedInViewport ? fixedBottomGap : null',\n 'ngSkipHydration': ''\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: \"\\r\\n \\r\\n\\r\\n\"\n }]\n }], null, {\n fixedInViewport: [{\n type: Input\n }],\n fixedTopGap: [{\n type: Input\n }],\n fixedBottomGap: [{\n type: Input\n }]\n });\n})();\nclass MatSidenavContainer extends MatDrawerContainer {\n constructor() {\n super(...arguments);\n this._allDrawers = undefined;\n // We need an initializer here to avoid a TS error.\n this._content = undefined;\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatSidenavContainer_BaseFactory;\n return function MatSidenavContainer_Factory(ɵt) {\n return (ɵMatSidenavContainer_BaseFactory || (ɵMatSidenavContainer_BaseFactory = i0.ɵɵgetInheritedFactory(MatSidenavContainer)))(ɵt || MatSidenavContainer);\n };\n })();\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatSidenavContainer,\n selectors: [[\"mat-sidenav-container\"]],\n contentQueries: function MatSidenavContainer_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MatSidenavContent, 5);\n i0.ɵɵcontentQuery(dirIndex, MatSidenav, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._content = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._allDrawers = _t);\n }\n },\n hostAttrs: [\"ngSkipHydration\", \"\", 1, \"mat-drawer-container\", \"mat-sidenav-container\"],\n hostVars: 2,\n hostBindings: function MatSidenavContainer_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"mat-drawer-container-explicit-backdrop\", ctx._backdropOverride);\n }\n },\n exportAs: [\"matSidenavContainer\"],\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_DRAWER_CONTAINER,\n useExisting: MatSidenavContainer\n }]), i0.ɵɵInheritDefinitionFeature],\n ngContentSelectors: _c5,\n decls: 4,\n vars: 2,\n consts: [[\"class\", \"mat-drawer-backdrop\", 3, \"mat-drawer-shown\", \"click\", 4, \"ngIf\"], [4, \"ngIf\"], [1, \"mat-drawer-backdrop\", 3, \"click\"]],\n template: function MatSidenavContainer_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c4);\n i0.ɵɵtemplate(0, MatSidenavContainer_div_0_Template, 1, 2, \"div\", 0);\n i0.ɵɵprojection(1);\n i0.ɵɵprojection(2, 1);\n i0.ɵɵtemplate(3, MatSidenavContainer_mat_sidenav_content_3_Template, 2, 0, \"mat-sidenav-content\", 1);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", ctx.hasBackdrop);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngIf\", !ctx._content);\n }\n },\n dependencies: [i5.NgIf, MatSidenavContent],\n styles: [_c6],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatSidenavContainer, [{\n type: Component,\n args: [{\n selector: 'mat-sidenav-container',\n exportAs: 'matSidenavContainer',\n host: {\n 'class': 'mat-drawer-container mat-sidenav-container',\n '[class.mat-drawer-container-explicit-backdrop]': '_backdropOverride',\n 'ngSkipHydration': ''\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [{\n provide: MAT_DRAWER_CONTAINER,\n useExisting: MatSidenavContainer\n }],\n template: \"\\n\\n\\n\\n\\n\\n\\n \\n\\n\",\n styles: [\".mat-drawer-container{position:relative;z-index:1;color:var(--mat-sidenav-content-text-color);background-color:var(--mat-sidenav-content-background-color);box-sizing:border-box;-webkit-overflow-scrolling:touch;display:block;overflow:hidden}.mat-drawer-container[fullscreen]{top:0;left:0;right:0;bottom:0;position:absolute}.mat-drawer-container[fullscreen].mat-drawer-container-has-open{overflow:hidden}.mat-drawer-container.mat-drawer-container-explicit-backdrop .mat-drawer-side{z-index:3}.mat-drawer-container.ng-animate-disabled .mat-drawer-backdrop,.mat-drawer-container.ng-animate-disabled .mat-drawer-content,.ng-animate-disabled .mat-drawer-container .mat-drawer-backdrop,.ng-animate-disabled .mat-drawer-container .mat-drawer-content{transition:none}.mat-drawer-backdrop{top:0;left:0;right:0;bottom:0;position:absolute;display:block;z-index:3;visibility:hidden}.mat-drawer-backdrop.mat-drawer-shown{visibility:visible;background-color:var(--mat-sidenav-scrim-color)}.mat-drawer-transition .mat-drawer-backdrop{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:background-color,visibility}.cdk-high-contrast-active .mat-drawer-backdrop{opacity:.5}.mat-drawer-content{position:relative;z-index:1;display:block;height:100%;overflow:auto}.mat-drawer-transition .mat-drawer-content{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:transform,margin-left,margin-right}.mat-drawer{box-shadow:0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);position:relative;z-index:4;--mat-sidenav-container-shape:0;color:var(--mat-sidenav-container-text-color);background-color:var(--mat-sidenav-container-background-color);border-top-right-radius:var(--mat-sidenav-container-shape);border-bottom-right-radius:var(--mat-sidenav-container-shape);display:block;position:absolute;top:0;bottom:0;z-index:3;outline:0;box-sizing:border-box;overflow-y:auto;transform:translate3d(-100%, 0, 0)}.cdk-high-contrast-active .mat-drawer,.cdk-high-contrast-active [dir=rtl] .mat-drawer.mat-drawer-end{border-right:solid 1px currentColor}.cdk-high-contrast-active [dir=rtl] .mat-drawer,.cdk-high-contrast-active .mat-drawer.mat-drawer-end{border-left:solid 1px currentColor;border-right:none}.mat-drawer.mat-drawer-side{z-index:2}.mat-drawer.mat-drawer-end{right:0;transform:translate3d(100%, 0, 0);border-top-left-radius:var(--mat-sidenav-container-shape);border-bottom-left-radius:var(--mat-sidenav-container-shape);border-top-right-radius:0;border-bottom-right-radius:0}[dir=rtl] .mat-drawer{border-top-left-radius:var(--mat-sidenav-container-shape);border-bottom-left-radius:var(--mat-sidenav-container-shape);border-top-right-radius:0;border-bottom-right-radius:0;transform:translate3d(100%, 0, 0)}[dir=rtl] .mat-drawer.mat-drawer-end{border-top-right-radius:var(--mat-sidenav-container-shape);border-bottom-right-radius:var(--mat-sidenav-container-shape);border-top-left-radius:0;border-bottom-left-radius:0;left:0;right:auto;transform:translate3d(-100%, 0, 0)}.mat-drawer[style*=\\\"visibility: hidden\\\"]{display:none}.mat-drawer-side{box-shadow:none;border-right-color:var(--mat-sidenav-container-divider-color);border-right-width:1px;border-right-style:solid}.mat-drawer-side.mat-drawer-end{border-left-color:var(--mat-sidenav-container-divider-color);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side{border-left-color:var(--mat-sidenav-container-divider-color);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side.mat-drawer-end{border-right-color:var(--mat-sidenav-container-divider-color);border-right-width:1px;border-right-style:solid;border-left:none}.mat-drawer-inner-container{width:100%;height:100%;overflow:auto;-webkit-overflow-scrolling:touch}.mat-sidenav-fixed{position:fixed}\"]\n }]\n }], null, {\n _allDrawers: [{\n type: ContentChildren,\n args: [MatSidenav, {\n // We need to use `descendants: true`, because Ivy will no longer match\n // indirect descendants if it's left as false.\n descendants: true\n }]\n }],\n _content: [{\n type: ContentChild,\n args: [MatSidenavContent]\n }]\n });\n})();\nclass MatSidenavModule {\n static {\n this.ɵfac = function MatSidenavModule_Factory(ɵt) {\n return new (ɵt || MatSidenavModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatSidenavModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule, MatCommonModule, CdkScrollableModule, CdkScrollableModule, MatCommonModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatSidenavModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule, MatCommonModule, CdkScrollableModule],\n exports: [CdkScrollableModule, MatCommonModule, MatDrawer, MatDrawerContainer, MatDrawerContent, MatSidenav, MatSidenavContainer, MatSidenavContent],\n declarations: [MatDrawer, MatDrawerContainer, MatDrawerContent, MatSidenav, MatSidenavContainer, MatSidenavContent]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_DRAWER_DEFAULT_AUTOSIZE, MAT_DRAWER_DEFAULT_AUTOSIZE_FACTORY, MatDrawer, MatDrawerContainer, MatDrawerContent, MatSidenav, MatSidenavContainer, MatSidenavContent, MatSidenavModule, matDrawerAnimations, throwMatDuplicatedDrawerError };\n","import { FocusKeyManager } from '@angular/cdk/a11y';\nimport * as i1 from '@angular/cdk/bidi';\nimport { BidiModule } from '@angular/cdk/bidi';\nimport { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';\nimport { hasModifierKey, SPACE, ENTER } from '@angular/cdk/keycodes';\nimport * as i0 from '@angular/core';\nimport { Directive, InjectionToken, EventEmitter, forwardRef, TemplateRef, Component, ViewEncapsulation, ChangeDetectionStrategy, Inject, Optional, ContentChild, ViewChild, Input, Output, QueryList, ContentChildren, NgModule } from '@angular/core';\nimport { _getFocusedElementPierceShadowDom } from '@angular/cdk/platform';\nimport { Subject, of } from 'rxjs';\nimport { startWith, takeUntil } from 'rxjs/operators';\nconst _c0 = [\"*\"];\nfunction CdkStep_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojection(0);\n }\n}\nclass CdkStepHeader {\n constructor(_elementRef) {\n this._elementRef = _elementRef;\n }\n /** Focuses the step header. */\n focus() {\n this._elementRef.nativeElement.focus();\n }\n static {\n this.ɵfac = function CdkStepHeader_Factory(ɵt) {\n return new (ɵt || CdkStepHeader)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkStepHeader,\n selectors: [[\"\", \"cdkStepHeader\", \"\"]],\n hostAttrs: [\"role\", \"tab\"]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkStepHeader, [{\n type: Directive,\n args: [{\n selector: '[cdkStepHeader]',\n host: {\n 'role': 'tab'\n }\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }];\n }, null);\n})();\nclass CdkStepLabel {\n constructor( /** @docs-private */template) {\n this.template = template;\n }\n static {\n this.ɵfac = function CdkStepLabel_Factory(ɵt) {\n return new (ɵt || CdkStepLabel)(i0.ɵɵdirectiveInject(i0.TemplateRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkStepLabel,\n selectors: [[\"\", \"cdkStepLabel\", \"\"]]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkStepLabel, [{\n type: Directive,\n args: [{\n selector: '[cdkStepLabel]'\n }]\n }], function () {\n return [{\n type: i0.TemplateRef\n }];\n }, null);\n})();\n\n/** Used to generate unique ID for each stepper component. */\nlet nextId = 0;\n/** Change event emitted on selection changes. */\nclass StepperSelectionEvent {}\n/** Enum to represent the different states of the steps. */\nconst STEP_STATE = {\n NUMBER: 'number',\n EDIT: 'edit',\n DONE: 'done',\n ERROR: 'error'\n};\n/** InjectionToken that can be used to specify the global stepper options. */\nconst STEPPER_GLOBAL_OPTIONS = new InjectionToken('STEPPER_GLOBAL_OPTIONS');\nclass CdkStep {\n /** Whether the user can return to this step once it has been marked as completed. */\n get editable() {\n return this._editable;\n }\n set editable(value) {\n this._editable = coerceBooleanProperty(value);\n }\n /** Whether the completion of step is optional. */\n get optional() {\n return this._optional;\n }\n set optional(value) {\n this._optional = coerceBooleanProperty(value);\n }\n /** Whether step is marked as completed. */\n get completed() {\n return this._completedOverride == null ? this._getDefaultCompleted() : this._completedOverride;\n }\n set completed(value) {\n this._completedOverride = coerceBooleanProperty(value);\n }\n _getDefaultCompleted() {\n return this.stepControl ? this.stepControl.valid && this.interacted : this.interacted;\n }\n /** Whether step has an error. */\n get hasError() {\n return this._customError == null ? this._getDefaultError() : this._customError;\n }\n set hasError(value) {\n this._customError = coerceBooleanProperty(value);\n }\n _getDefaultError() {\n return this.stepControl && this.stepControl.invalid && this.interacted;\n }\n constructor(_stepper, stepperOptions) {\n this._stepper = _stepper;\n /** Whether user has attempted to move away from the step. */\n this.interacted = false;\n /** Emits when the user has attempted to move away from the step. */\n this.interactedStream = new EventEmitter();\n this._editable = true;\n this._optional = false;\n this._completedOverride = null;\n this._customError = null;\n this._stepperOptions = stepperOptions ? stepperOptions : {};\n this._displayDefaultIndicatorType = this._stepperOptions.displayDefaultIndicatorType !== false;\n }\n /** Selects this step component. */\n select() {\n this._stepper.selected = this;\n }\n /** Resets the step to its initial state. Note that this includes resetting form data. */\n reset() {\n this.interacted = false;\n if (this._completedOverride != null) {\n this._completedOverride = false;\n }\n if (this._customError != null) {\n this._customError = false;\n }\n if (this.stepControl) {\n this.stepControl.reset();\n }\n }\n ngOnChanges() {\n // Since basically all inputs of the MatStep get proxied through the view down to the\n // underlying MatStepHeader, we have to make sure that change detection runs correctly.\n this._stepper._stateChanged();\n }\n _markAsInteracted() {\n if (!this.interacted) {\n this.interacted = true;\n this.interactedStream.emit(this);\n }\n }\n /** Determines whether the error state can be shown. */\n _showError() {\n // We want to show the error state either if the user opted into/out of it using the\n // global options, or if they've explicitly set it through the `hasError` input.\n return this._stepperOptions.showError ?? this._customError != null;\n }\n static {\n this.ɵfac = function CdkStep_Factory(ɵt) {\n return new (ɵt || CdkStep)(i0.ɵɵdirectiveInject(forwardRef(() => CdkStepper)), i0.ɵɵdirectiveInject(STEPPER_GLOBAL_OPTIONS, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: CdkStep,\n selectors: [[\"cdk-step\"]],\n contentQueries: function CdkStep_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, CdkStepLabel, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.stepLabel = _t.first);\n }\n },\n viewQuery: function CdkStep_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(TemplateRef, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.content = _t.first);\n }\n },\n inputs: {\n stepControl: \"stepControl\",\n label: \"label\",\n errorMessage: \"errorMessage\",\n ariaLabel: [0, \"aria-label\", \"ariaLabel\"],\n ariaLabelledby: [0, \"aria-labelledby\", \"ariaLabelledby\"],\n state: \"state\",\n editable: \"editable\",\n optional: \"optional\",\n completed: \"completed\",\n hasError: \"hasError\"\n },\n outputs: {\n interactedStream: \"interacted\"\n },\n exportAs: [\"cdkStep\"],\n features: [i0.ɵɵNgOnChangesFeature],\n ngContentSelectors: _c0,\n decls: 1,\n vars: 0,\n template: function CdkStep_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵtemplate(0, CdkStep_ng_template_0_Template, 1, 0, \"ng-template\");\n }\n },\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkStep, [{\n type: Component,\n args: [{\n selector: 'cdk-step',\n exportAs: 'cdkStep',\n template: '',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], function () {\n return [{\n type: CdkStepper,\n decorators: [{\n type: Inject,\n args: [forwardRef(() => CdkStepper)]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [STEPPER_GLOBAL_OPTIONS]\n }]\n }];\n }, {\n stepLabel: [{\n type: ContentChild,\n args: [CdkStepLabel]\n }],\n content: [{\n type: ViewChild,\n args: [TemplateRef, {\n static: true\n }]\n }],\n stepControl: [{\n type: Input\n }],\n interactedStream: [{\n type: Output,\n args: ['interacted']\n }],\n label: [{\n type: Input\n }],\n errorMessage: [{\n type: Input\n }],\n ariaLabel: [{\n type: Input,\n args: ['aria-label']\n }],\n ariaLabelledby: [{\n type: Input,\n args: ['aria-labelledby']\n }],\n state: [{\n type: Input\n }],\n editable: [{\n type: Input\n }],\n optional: [{\n type: Input\n }],\n completed: [{\n type: Input\n }],\n hasError: [{\n type: Input\n }]\n });\n})();\nclass CdkStepper {\n /** Whether the validity of previous steps should be checked or not. */\n get linear() {\n return this._linear;\n }\n set linear(value) {\n this._linear = coerceBooleanProperty(value);\n }\n /** The index of the selected step. */\n get selectedIndex() {\n return this._selectedIndex;\n }\n set selectedIndex(index) {\n const newIndex = coerceNumberProperty(index);\n if (this.steps && this._steps) {\n // Ensure that the index can't be out of bounds.\n if (!this._isValidIndex(newIndex) && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('cdkStepper: Cannot assign out-of-bounds value to `selectedIndex`.');\n }\n this.selected?._markAsInteracted();\n if (this._selectedIndex !== newIndex && !this._anyControlsInvalidOrPending(newIndex) && (newIndex >= this._selectedIndex || this.steps.toArray()[newIndex].editable)) {\n this._updateSelectedItemIndex(newIndex);\n }\n } else {\n this._selectedIndex = newIndex;\n }\n }\n /** The step that is selected. */\n get selected() {\n return this.steps ? this.steps.toArray()[this.selectedIndex] : undefined;\n }\n set selected(step) {\n this.selectedIndex = step && this.steps ? this.steps.toArray().indexOf(step) : -1;\n }\n /** Orientation of the stepper. */\n get orientation() {\n return this._orientation;\n }\n set orientation(value) {\n // This is a protected method so that `MatStepper` can hook into it.\n this._orientation = value;\n if (this._keyManager) {\n this._keyManager.withVerticalOrientation(value === 'vertical');\n }\n }\n constructor(_dir, _changeDetectorRef, _elementRef) {\n this._dir = _dir;\n this._changeDetectorRef = _changeDetectorRef;\n this._elementRef = _elementRef;\n /** Emits when the component is destroyed. */\n this._destroyed = new Subject();\n /** Steps that belong to the current stepper, excluding ones from nested steppers. */\n this.steps = new QueryList();\n /** List of step headers sorted based on their DOM order. */\n this._sortedHeaders = new QueryList();\n this._linear = false;\n this._selectedIndex = 0;\n /** Event emitted when the selected step has changed. */\n this.selectionChange = new EventEmitter();\n /** Output to support two-way binding on `[(selectedIndex)]` */\n this.selectedIndexChange = new EventEmitter();\n this._orientation = 'horizontal';\n this._groupId = nextId++;\n }\n ngAfterContentInit() {\n this._steps.changes.pipe(startWith(this._steps), takeUntil(this._destroyed)).subscribe(steps => {\n this.steps.reset(steps.filter(step => step._stepper === this));\n this.steps.notifyOnChanges();\n });\n }\n ngAfterViewInit() {\n // If the step headers are defined outside of the `ngFor` that renders the steps, like in the\n // Material stepper, they won't appear in the `QueryList` in the same order as they're\n // rendered in the DOM which will lead to incorrect keyboard navigation. We need to sort\n // them manually to ensure that they're correct. Alternatively, we can change the Material\n // template to inline the headers in the `ngFor`, but that'll result in a lot of\n // code duplication. See #23539.\n this._stepHeader.changes.pipe(startWith(this._stepHeader), takeUntil(this._destroyed)).subscribe(headers => {\n this._sortedHeaders.reset(headers.toArray().sort((a, b) => {\n const documentPosition = a._elementRef.nativeElement.compareDocumentPosition(b._elementRef.nativeElement);\n // `compareDocumentPosition` returns a bitmask so we have to use a bitwise operator.\n // https://developer.mozilla.org/en-US/docs/Web/API/Node/compareDocumentPosition\n // tslint:disable-next-line:no-bitwise\n return documentPosition & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1;\n }));\n this._sortedHeaders.notifyOnChanges();\n });\n // Note that while the step headers are content children by default, any components that\n // extend this one might have them as view children. We initialize the keyboard handling in\n // AfterViewInit so we're guaranteed for both view and content children to be defined.\n this._keyManager = new FocusKeyManager(this._sortedHeaders).withWrap().withHomeAndEnd().withVerticalOrientation(this._orientation === 'vertical');\n (this._dir ? this._dir.change : of()).pipe(startWith(this._layoutDirection()), takeUntil(this._destroyed)).subscribe(direction => this._keyManager.withHorizontalOrientation(direction));\n this._keyManager.updateActiveItem(this._selectedIndex);\n // No need to `takeUntil` here, because we're the ones destroying `steps`.\n this.steps.changes.subscribe(() => {\n if (!this.selected) {\n this._selectedIndex = Math.max(this._selectedIndex - 1, 0);\n }\n });\n // The logic which asserts that the selected index is within bounds doesn't run before the\n // steps are initialized, because we don't how many steps there are yet so we may have an\n // invalid index on init. If that's the case, auto-correct to the default so we don't throw.\n if (!this._isValidIndex(this._selectedIndex)) {\n this._selectedIndex = 0;\n }\n }\n ngOnDestroy() {\n this._keyManager?.destroy();\n this.steps.destroy();\n this._sortedHeaders.destroy();\n this._destroyed.next();\n this._destroyed.complete();\n }\n /** Selects and focuses the next step in list. */\n next() {\n this.selectedIndex = Math.min(this._selectedIndex + 1, this.steps.length - 1);\n }\n /** Selects and focuses the previous step in list. */\n previous() {\n this.selectedIndex = Math.max(this._selectedIndex - 1, 0);\n }\n /** Resets the stepper to its initial state. Note that this includes clearing form data. */\n reset() {\n this._updateSelectedItemIndex(0);\n this.steps.forEach(step => step.reset());\n this._stateChanged();\n }\n /** Returns a unique id for each step label element. */\n _getStepLabelId(i) {\n return `cdk-step-label-${this._groupId}-${i}`;\n }\n /** Returns unique id for each step content element. */\n _getStepContentId(i) {\n return `cdk-step-content-${this._groupId}-${i}`;\n }\n /** Marks the component to be change detected. */\n _stateChanged() {\n this._changeDetectorRef.markForCheck();\n }\n /** Returns position state of the step with the given index. */\n _getAnimationDirection(index) {\n const position = index - this._selectedIndex;\n if (position < 0) {\n return this._layoutDirection() === 'rtl' ? 'next' : 'previous';\n } else if (position > 0) {\n return this._layoutDirection() === 'rtl' ? 'previous' : 'next';\n }\n return 'current';\n }\n /** Returns the type of icon to be displayed. */\n _getIndicatorType(index, state = STEP_STATE.NUMBER) {\n const step = this.steps.toArray()[index];\n const isCurrentStep = this._isCurrentStep(index);\n return step._displayDefaultIndicatorType ? this._getDefaultIndicatorLogic(step, isCurrentStep) : this._getGuidelineLogic(step, isCurrentStep, state);\n }\n _getDefaultIndicatorLogic(step, isCurrentStep) {\n if (step._showError() && step.hasError && !isCurrentStep) {\n return STEP_STATE.ERROR;\n } else if (!step.completed || isCurrentStep) {\n return STEP_STATE.NUMBER;\n } else {\n return step.editable ? STEP_STATE.EDIT : STEP_STATE.DONE;\n }\n }\n _getGuidelineLogic(step, isCurrentStep, state = STEP_STATE.NUMBER) {\n if (step._showError() && step.hasError && !isCurrentStep) {\n return STEP_STATE.ERROR;\n } else if (step.completed && !isCurrentStep) {\n return STEP_STATE.DONE;\n } else if (step.completed && isCurrentStep) {\n return state;\n } else if (step.editable && isCurrentStep) {\n return STEP_STATE.EDIT;\n } else {\n return state;\n }\n }\n _isCurrentStep(index) {\n return this._selectedIndex === index;\n }\n /** Returns the index of the currently-focused step header. */\n _getFocusIndex() {\n return this._keyManager ? this._keyManager.activeItemIndex : this._selectedIndex;\n }\n _updateSelectedItemIndex(newIndex) {\n const stepsArray = this.steps.toArray();\n this.selectionChange.emit({\n selectedIndex: newIndex,\n previouslySelectedIndex: this._selectedIndex,\n selectedStep: stepsArray[newIndex],\n previouslySelectedStep: stepsArray[this._selectedIndex]\n });\n // If focus is inside the stepper, move it to the next header, otherwise it may become\n // lost when the active step content is hidden. We can't be more granular with the check\n // (e.g. checking whether focus is inside the active step), because we don't have a\n // reference to the elements that are rendering out the content.\n this._containsFocus() ? this._keyManager.setActiveItem(newIndex) : this._keyManager.updateActiveItem(newIndex);\n this._selectedIndex = newIndex;\n this.selectedIndexChange.emit(this._selectedIndex);\n this._stateChanged();\n }\n _onKeydown(event) {\n const hasModifier = hasModifierKey(event);\n const keyCode = event.keyCode;\n const manager = this._keyManager;\n if (manager.activeItemIndex != null && !hasModifier && (keyCode === SPACE || keyCode === ENTER)) {\n this.selectedIndex = manager.activeItemIndex;\n event.preventDefault();\n } else {\n manager.setFocusOrigin('keyboard').onKeydown(event);\n }\n }\n _anyControlsInvalidOrPending(index) {\n if (this._linear && index >= 0) {\n return this.steps.toArray().slice(0, index).some(step => {\n const control = step.stepControl;\n const isIncomplete = control ? control.invalid || control.pending || !step.interacted : !step.completed;\n return isIncomplete && !step.optional && !step._completedOverride;\n });\n }\n return false;\n }\n _layoutDirection() {\n return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';\n }\n /** Checks whether the stepper contains the focused element. */\n _containsFocus() {\n const stepperElement = this._elementRef.nativeElement;\n const focusedElement = _getFocusedElementPierceShadowDom();\n return stepperElement === focusedElement || stepperElement.contains(focusedElement);\n }\n /** Checks whether the passed-in index is a valid step index. */\n _isValidIndex(index) {\n return index > -1 && (!this.steps || index < this.steps.length);\n }\n static {\n this.ɵfac = function CdkStepper_Factory(ɵt) {\n return new (ɵt || CdkStepper)(i0.ɵɵdirectiveInject(i1.Directionality, 8), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkStepper,\n selectors: [[\"\", \"cdkStepper\", \"\"]],\n contentQueries: function CdkStepper_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, CdkStep, 5);\n i0.ɵɵcontentQuery(dirIndex, CdkStepHeader, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._steps = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._stepHeader = _t);\n }\n },\n inputs: {\n linear: \"linear\",\n selectedIndex: \"selectedIndex\",\n selected: \"selected\",\n orientation: \"orientation\"\n },\n outputs: {\n selectionChange: \"selectionChange\",\n selectedIndexChange: \"selectedIndexChange\"\n },\n exportAs: [\"cdkStepper\"]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkStepper, [{\n type: Directive,\n args: [{\n selector: '[cdkStepper]',\n exportAs: 'cdkStepper'\n }]\n }], function () {\n return [{\n type: i1.Directionality,\n decorators: [{\n type: Optional\n }]\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: i0.ElementRef\n }];\n }, {\n _steps: [{\n type: ContentChildren,\n args: [CdkStep, {\n descendants: true\n }]\n }],\n _stepHeader: [{\n type: ContentChildren,\n args: [CdkStepHeader, {\n descendants: true\n }]\n }],\n linear: [{\n type: Input\n }],\n selectedIndex: [{\n type: Input\n }],\n selected: [{\n type: Input\n }],\n selectionChange: [{\n type: Output\n }],\n selectedIndexChange: [{\n type: Output\n }],\n orientation: [{\n type: Input\n }]\n });\n})();\n\n/** Button that moves to the next step in a stepper workflow. */\nclass CdkStepperNext {\n constructor(_stepper) {\n this._stepper = _stepper;\n /** Type of the next button. Defaults to \"submit\" if not specified. */\n this.type = 'submit';\n }\n static {\n this.ɵfac = function CdkStepperNext_Factory(ɵt) {\n return new (ɵt || CdkStepperNext)(i0.ɵɵdirectiveInject(CdkStepper));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkStepperNext,\n selectors: [[\"button\", \"cdkStepperNext\", \"\"]],\n hostVars: 1,\n hostBindings: function CdkStepperNext_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function CdkStepperNext_click_HostBindingHandler() {\n return ctx._stepper.next();\n });\n }\n if (rf & 2) {\n i0.ɵɵhostProperty(\"type\", ctx.type);\n }\n },\n inputs: {\n type: \"type\"\n }\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkStepperNext, [{\n type: Directive,\n args: [{\n selector: 'button[cdkStepperNext]',\n host: {\n '[type]': 'type',\n '(click)': '_stepper.next()'\n }\n }]\n }], function () {\n return [{\n type: CdkStepper\n }];\n }, {\n type: [{\n type: Input\n }]\n });\n})();\n/** Button that moves to the previous step in a stepper workflow. */\nclass CdkStepperPrevious {\n constructor(_stepper) {\n this._stepper = _stepper;\n /** Type of the previous button. Defaults to \"button\" if not specified. */\n this.type = 'button';\n }\n static {\n this.ɵfac = function CdkStepperPrevious_Factory(ɵt) {\n return new (ɵt || CdkStepperPrevious)(i0.ɵɵdirectiveInject(CdkStepper));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkStepperPrevious,\n selectors: [[\"button\", \"cdkStepperPrevious\", \"\"]],\n hostVars: 1,\n hostBindings: function CdkStepperPrevious_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function CdkStepperPrevious_click_HostBindingHandler() {\n return ctx._stepper.previous();\n });\n }\n if (rf & 2) {\n i0.ɵɵhostProperty(\"type\", ctx.type);\n }\n },\n inputs: {\n type: \"type\"\n }\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkStepperPrevious, [{\n type: Directive,\n args: [{\n selector: 'button[cdkStepperPrevious]',\n host: {\n '[type]': 'type',\n '(click)': '_stepper.previous()'\n }\n }]\n }], function () {\n return [{\n type: CdkStepper\n }];\n }, {\n type: [{\n type: Input\n }]\n });\n})();\nclass CdkStepperModule {\n static {\n this.ɵfac = function CdkStepperModule_Factory(ɵt) {\n return new (ɵt || CdkStepperModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: CdkStepperModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [BidiModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkStepperModule, [{\n type: NgModule,\n args: [{\n imports: [BidiModule],\n exports: [CdkStep, CdkStepper, CdkStepHeader, CdkStepLabel, CdkStepperNext, CdkStepperPrevious],\n declarations: [CdkStep, CdkStepper, CdkStepHeader, CdkStepLabel, CdkStepperNext, CdkStepperPrevious]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CdkStep, CdkStepHeader, CdkStepLabel, CdkStepper, CdkStepperModule, CdkStepperNext, CdkStepperPrevious, STEPPER_GLOBAL_OPTIONS, STEP_STATE, StepperSelectionEvent };\n","import * as i2$1 from '@angular/cdk/portal';\nimport { TemplatePortal, PortalModule } from '@angular/cdk/portal';\nimport { CdkStepLabel, CdkStepHeader, CdkStep, STEPPER_GLOBAL_OPTIONS, CdkStepper, CdkStepperNext, CdkStepperPrevious, CdkStepperModule } from '@angular/cdk/stepper';\nimport * as i3 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Directive, Injectable, Optional, SkipSelf, Component, ViewEncapsulation, ChangeDetectionStrategy, Input, forwardRef, Inject, ContentChild, QueryList, EventEmitter, ViewChildren, ContentChildren, Output, NgModule } from '@angular/core';\nimport * as i1 from '@angular/material/core';\nimport { mixinColor, ErrorStateMatcher, MatCommonModule, MatRippleModule } from '@angular/material/core';\nimport * as i4 from '@angular/material/icon';\nimport { MatIconModule } from '@angular/material/icon';\nimport * as i2 from '@angular/cdk/a11y';\nimport { Subject, Subscription } from 'rxjs';\nimport * as i3$1 from '@angular/cdk/bidi';\nimport { switchMap, map, startWith, takeUntil, distinctUntilChanged } from 'rxjs/operators';\nimport { trigger, state, style, transition, group, animate, query, animateChild } from '@angular/animations';\nfunction MatStepHeader_ng_container_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0, 8);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.iconOverrides[ctx_r0.state])(\"ngTemplateOutletContext\", ctx_r0._getIconContext());\n }\n}\nfunction MatStepHeader_ng_container_4_span_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 13);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r0._getDefaultTextForState(ctx_r0.state));\n }\n}\nfunction MatStepHeader_ng_container_4_span_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 14);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r0._intl.completedLabel);\n }\n}\nfunction MatStepHeader_ng_container_4_span_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 14);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r0._intl.editableLabel);\n }\n}\nfunction MatStepHeader_ng_container_4_mat_icon_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"mat-icon\", 13);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r0._getDefaultTextForState(ctx_r0.state));\n }\n}\nfunction MatStepHeader_ng_container_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0, 9);\n i0.ɵɵtemplate(1, MatStepHeader_ng_container_4_span_1_Template, 2, 1, \"span\", 10)(2, MatStepHeader_ng_container_4_span_2_Template, 2, 1, \"span\", 11)(3, MatStepHeader_ng_container_4_span_3_Template, 2, 1, \"span\", 11)(4, MatStepHeader_ng_container_4_mat_icon_4_Template, 2, 1, \"mat-icon\", 12);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngSwitch\", ctx_r0.state);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngSwitchCase\", \"number\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.state === \"done\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.state === \"edit\");\n }\n}\nfunction MatStepHeader_div_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 15);\n i0.ɵɵelementContainer(1, 16);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0._templateLabel().template);\n }\n}\nfunction MatStepHeader_div_7_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 15);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r0.label);\n }\n}\nfunction MatStepHeader_div_8_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 17);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r0._intl.optionalLabel);\n }\n}\nfunction MatStepHeader_div_9_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 18);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r0.errorMessage);\n }\n}\nconst _c0 = [\"*\"];\nfunction MatStep_ng_template_0_ng_template_1_Template(rf, ctx) {}\nfunction MatStep_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojection(0);\n i0.ɵɵtemplate(1, MatStep_ng_template_0_ng_template_1_Template, 0, 0, \"ng-template\", 0);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"cdkPortalOutlet\", ctx_r0._portal);\n }\n}\nconst _c1 = (a0, a1) => ({\n step: a0,\n i: a1\n});\nconst _c2 = a0 => ({\n \"animationDuration\": a0\n});\nconst _c3 = (a0, a1) => ({\n \"value\": a0,\n \"params\": a1\n});\nfunction MatStepper_div_1_ng_container_2_div_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 11);\n }\n}\nfunction MatStepper_div_1_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementContainer(1, 9);\n i0.ɵɵtemplate(2, MatStepper_div_1_ng_container_2_div_2_Template, 1, 0, \"div\", 10);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const step_r1 = ctx.$implicit;\n const i_r2 = ctx.index;\n const isLast_r3 = ctx.last;\n i0.ɵɵnextContext(2);\n const stepTemplate_r4 = i0.ɵɵreference(4);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", stepTemplate_r4)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction2(3, _c1, step_r1, i_r2));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !isLast_r3);\n }\n}\nfunction MatStepper_div_1_div_4_Template(rf, ctx) {\n if (rf & 1) {\n const _r5 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 12);\n i0.ɵɵlistener(\"@horizontalStepTransition.done\", function MatStepper_div_1_div_4_Template_div_animation_horizontalStepTransition_done_0_listener($event) {\n i0.ɵɵrestoreView(_r5);\n const ctx_r5 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r5._animationDone.next($event));\n });\n i0.ɵɵelementContainer(1, 13);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const step_r7 = ctx.$implicit;\n const i_r8 = ctx.index;\n const ctx_r5 = i0.ɵɵnextContext(2);\n i0.ɵɵclassProp(\"mat-horizontal-stepper-content-inactive\", ctx_r5.selectedIndex !== i_r8);\n i0.ɵɵproperty(\"@horizontalStepTransition\", i0.ɵɵpureFunction2(8, _c3, ctx_r5._getAnimationDirection(i_r8), i0.ɵɵpureFunction1(6, _c2, ctx_r5._getAnimationDuration())))(\"id\", ctx_r5._getStepContentId(i_r8));\n i0.ɵɵattribute(\"aria-labelledby\", ctx_r5._getStepLabelId(i_r8));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", step_r7.content);\n }\n}\nfunction MatStepper_div_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 4)(1, \"div\", 5);\n i0.ɵɵtemplate(2, MatStepper_div_1_ng_container_2_Template, 3, 6, \"ng-container\", 6);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"div\", 7);\n i0.ɵɵtemplate(4, MatStepper_div_1_div_4_Template, 2, 11, \"div\", 8);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r5 = i0.ɵɵnextContext();\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", ctx_r5.steps);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", ctx_r5.steps);\n }\n}\nfunction MatStepper_ng_container_2_div_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r9 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 15);\n i0.ɵɵelementContainer(1, 9);\n i0.ɵɵelementStart(2, \"div\", 16)(3, \"div\", 17);\n i0.ɵɵlistener(\"@verticalStepTransition.done\", function MatStepper_ng_container_2_div_1_Template_div_animation_verticalStepTransition_done_3_listener($event) {\n i0.ɵɵrestoreView(_r9);\n const ctx_r5 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r5._animationDone.next($event));\n });\n i0.ɵɵelementStart(4, \"div\", 18);\n i0.ɵɵelementContainer(5, 13);\n i0.ɵɵelementEnd()()()();\n }\n if (rf & 2) {\n const step_r10 = ctx.$implicit;\n const i_r11 = ctx.index;\n const isLast_r12 = ctx.last;\n const ctx_r5 = i0.ɵɵnextContext(2);\n const stepTemplate_r4 = i0.ɵɵreference(4);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", stepTemplate_r4)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction2(10, _c1, step_r10, i_r11));\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"mat-stepper-vertical-line\", !isLast_r12);\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"mat-vertical-stepper-content-inactive\", ctx_r5.selectedIndex !== i_r11);\n i0.ɵɵproperty(\"@verticalStepTransition\", i0.ɵɵpureFunction2(15, _c3, ctx_r5._getAnimationDirection(i_r11), i0.ɵɵpureFunction1(13, _c2, ctx_r5._getAnimationDuration())))(\"id\", ctx_r5._getStepContentId(i_r11));\n i0.ɵɵattribute(\"aria-labelledby\", ctx_r5._getStepLabelId(i_r11));\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", step_r10.content);\n }\n}\nfunction MatStepper_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, MatStepper_ng_container_2_div_1_Template, 6, 18, \"div\", 14);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r5 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r5.steps);\n }\n}\nfunction MatStepper_ng_template_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r13 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"mat-step-header\", 19);\n i0.ɵɵlistener(\"click\", function MatStepper_ng_template_3_Template_mat_step_header_click_0_listener() {\n const step_r14 = i0.ɵɵrestoreView(_r13).step;\n return i0.ɵɵresetView(step_r14.select());\n })(\"keydown\", function MatStepper_ng_template_3_Template_mat_step_header_keydown_0_listener($event) {\n i0.ɵɵrestoreView(_r13);\n const ctx_r5 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r5._onKeydown($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const step_r14 = ctx.step;\n const i_r15 = ctx.i;\n const ctx_r5 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"mat-horizontal-stepper-header\", ctx_r5.orientation === \"horizontal\")(\"mat-vertical-stepper-header\", ctx_r5.orientation === \"vertical\");\n i0.ɵɵproperty(\"tabIndex\", ctx_r5._getFocusIndex() === i_r15 ? 0 : -1)(\"id\", ctx_r5._getStepLabelId(i_r15))(\"index\", i_r15)(\"state\", ctx_r5._getIndicatorType(i_r15, step_r14.state))(\"label\", step_r14.stepLabel || step_r14.label)(\"selected\", ctx_r5.selectedIndex === i_r15)(\"active\", ctx_r5._stepIsNavigable(i_r15, step_r14))(\"optional\", step_r14.optional)(\"errorMessage\", step_r14.errorMessage)(\"iconOverrides\", ctx_r5._iconOverrides)(\"disableRipple\", ctx_r5.disableRipple || !ctx_r5._stepIsNavigable(i_r15, step_r14))(\"color\", step_r14.color || ctx_r5.color);\n i0.ɵɵattribute(\"aria-posinset\", i_r15 + 1)(\"aria-setsize\", ctx_r5.steps.length)(\"aria-controls\", ctx_r5._getStepContentId(i_r15))(\"aria-selected\", ctx_r5.selectedIndex == i_r15)(\"aria-label\", step_r14.ariaLabel || null)(\"aria-labelledby\", !step_r14.ariaLabel && step_r14.ariaLabelledby ? step_r14.ariaLabelledby : null)(\"aria-disabled\", ctx_r5._stepIsNavigable(i_r15, step_r14) ? null : true);\n }\n}\nclass MatStepLabel extends CdkStepLabel {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatStepLabel_BaseFactory;\n return function MatStepLabel_Factory(ɵt) {\n return (ɵMatStepLabel_BaseFactory || (ɵMatStepLabel_BaseFactory = i0.ɵɵgetInheritedFactory(MatStepLabel)))(ɵt || MatStepLabel);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatStepLabel,\n selectors: [[\"\", \"matStepLabel\", \"\"]],\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatStepLabel, [{\n type: Directive,\n args: [{\n selector: '[matStepLabel]'\n }]\n }], null, null);\n})();\n\n/** Stepper data that is required for internationalization. */\nclass MatStepperIntl {\n constructor() {\n /**\n * Stream that emits whenever the labels here are changed. Use this to notify\n * components if the labels have changed after initialization.\n */\n this.changes = new Subject();\n /** Label that is rendered below optional steps. */\n this.optionalLabel = 'Optional';\n /** Label that is used to indicate step as completed to screen readers. */\n this.completedLabel = 'Completed';\n /** Label that is used to indicate step as editable to screen readers. */\n this.editableLabel = 'Editable';\n }\n static {\n this.ɵfac = function MatStepperIntl_Factory(ɵt) {\n return new (ɵt || MatStepperIntl)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: MatStepperIntl,\n factory: MatStepperIntl.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatStepperIntl, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\n/** @docs-private */\nfunction MAT_STEPPER_INTL_PROVIDER_FACTORY(parentIntl) {\n return parentIntl || new MatStepperIntl();\n}\n/** @docs-private */\nconst MAT_STEPPER_INTL_PROVIDER = {\n provide: MatStepperIntl,\n deps: [[new Optional(), new SkipSelf(), MatStepperIntl]],\n useFactory: MAT_STEPPER_INTL_PROVIDER_FACTORY\n};\n\n// Boilerplate for applying mixins to MatStepHeader.\n/** @docs-private */\nconst _MatStepHeaderBase = mixinColor(class MatStepHeaderBase extends CdkStepHeader {\n constructor(elementRef) {\n super(elementRef);\n }\n}, 'primary');\nclass MatStepHeader extends _MatStepHeaderBase {\n constructor(_intl, _focusMonitor, _elementRef, changeDetectorRef) {\n super(_elementRef);\n this._intl = _intl;\n this._focusMonitor = _focusMonitor;\n this._intlSubscription = _intl.changes.subscribe(() => changeDetectorRef.markForCheck());\n }\n ngAfterViewInit() {\n this._focusMonitor.monitor(this._elementRef, true);\n }\n ngOnDestroy() {\n this._intlSubscription.unsubscribe();\n this._focusMonitor.stopMonitoring(this._elementRef);\n }\n /** Focuses the step header. */\n focus(origin, options) {\n if (origin) {\n this._focusMonitor.focusVia(this._elementRef, origin, options);\n } else {\n this._elementRef.nativeElement.focus(options);\n }\n }\n /** Returns string label of given step if it is a text label. */\n _stringLabel() {\n return this.label instanceof MatStepLabel ? null : this.label;\n }\n /** Returns MatStepLabel if the label of given step is a template label. */\n _templateLabel() {\n return this.label instanceof MatStepLabel ? this.label : null;\n }\n /** Returns the host HTML element. */\n _getHostElement() {\n return this._elementRef.nativeElement;\n }\n /** Template context variables that are exposed to the `matStepperIcon` instances. */\n _getIconContext() {\n return {\n index: this.index,\n active: this.active,\n optional: this.optional\n };\n }\n _getDefaultTextForState(state) {\n if (state == 'number') {\n return `${this.index + 1}`;\n }\n if (state == 'edit') {\n return 'create';\n }\n if (state == 'error') {\n return 'warning';\n }\n return state;\n }\n static {\n this.ɵfac = function MatStepHeader_Factory(ɵt) {\n return new (ɵt || MatStepHeader)(i0.ɵɵdirectiveInject(MatStepperIntl), i0.ɵɵdirectiveInject(i2.FocusMonitor), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatStepHeader,\n selectors: [[\"mat-step-header\"]],\n hostAttrs: [\"role\", \"tab\", 1, \"mat-step-header\"],\n inputs: {\n color: \"color\",\n state: \"state\",\n label: \"label\",\n errorMessage: \"errorMessage\",\n iconOverrides: \"iconOverrides\",\n index: \"index\",\n selected: \"selected\",\n active: \"active\",\n optional: \"optional\",\n disableRipple: \"disableRipple\"\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 10,\n vars: 19,\n consts: [[\"matRipple\", \"\", 1, \"mat-step-header-ripple\", \"mat-focus-indicator\", 3, \"matRippleTrigger\", \"matRippleDisabled\"], [1, \"mat-step-icon-content\", 3, \"ngSwitch\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\", 4, \"ngSwitchCase\"], [3, \"ngSwitch\", 4, \"ngSwitchDefault\"], [1, \"mat-step-label\"], [\"class\", \"mat-step-text-label\", 4, \"ngIf\"], [\"class\", \"mat-step-optional\", 4, \"ngIf\"], [\"class\", \"mat-step-sub-label-error\", 4, \"ngIf\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [3, \"ngSwitch\"], [\"aria-hidden\", \"true\", 4, \"ngSwitchCase\"], [\"class\", \"cdk-visually-hidden\", 4, \"ngIf\"], [\"aria-hidden\", \"true\", 4, \"ngSwitchDefault\"], [\"aria-hidden\", \"true\"], [1, \"cdk-visually-hidden\"], [1, \"mat-step-text-label\"], [3, \"ngTemplateOutlet\"], [1, \"mat-step-optional\"], [1, \"mat-step-sub-label-error\"]],\n template: function MatStepHeader_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 0);\n i0.ɵɵelementStart(1, \"div\")(2, \"div\", 1);\n i0.ɵɵtemplate(3, MatStepHeader_ng_container_3_Template, 1, 2, \"ng-container\", 2)(4, MatStepHeader_ng_container_4_Template, 5, 4, \"ng-container\", 3);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(5, \"div\", 4);\n i0.ɵɵtemplate(6, MatStepHeader_div_6_Template, 2, 1, \"div\", 5)(7, MatStepHeader_div_7_Template, 2, 1, \"div\", 5)(8, MatStepHeader_div_8_Template, 2, 1, \"div\", 6)(9, MatStepHeader_div_9_Template, 2, 1, \"div\", 7);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"matRippleTrigger\", ctx._getHostElement())(\"matRippleDisabled\", ctx.disableRipple);\n i0.ɵɵadvance();\n i0.ɵɵclassMapInterpolate1(\"mat-step-icon-state-\", ctx.state, \" mat-step-icon\");\n i0.ɵɵclassProp(\"mat-step-icon-selected\", ctx.selected);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngSwitch\", !!(ctx.iconOverrides && ctx.iconOverrides[ctx.state]));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngSwitchCase\", true);\n i0.ɵɵadvance(2);\n i0.ɵɵclassProp(\"mat-step-label-active\", ctx.active)(\"mat-step-label-selected\", ctx.selected)(\"mat-step-label-error\", ctx.state == \"error\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx._templateLabel());\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx._stringLabel());\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.optional && ctx.state != \"error\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.state == \"error\");\n }\n },\n dependencies: [i3.NgIf, i3.NgTemplateOutlet, i3.NgSwitch, i3.NgSwitchCase, i3.NgSwitchDefault, i4.MatIcon, i1.MatRipple],\n styles: [\".mat-step-header{overflow:hidden;outline:none;cursor:pointer;position:relative;box-sizing:content-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-step-header:focus .mat-focus-indicator::before{content:\\\"\\\"}.mat-step-header:hover[aria-disabled=true]{cursor:default}.mat-step-header:hover:not([aria-disabled]),.mat-step-header:hover[aria-disabled=false]{background-color:var(--mat-stepper-header-hover-state-layer-color)}.mat-step-header.cdk-keyboard-focused,.mat-step-header.cdk-program-focused{background-color:var(--mat-stepper-header-focus-state-layer-color)}@media(hover: none){.mat-step-header:hover{background:none}}.cdk-high-contrast-active .mat-step-header{outline:solid 1px}.cdk-high-contrast-active .mat-step-header[aria-selected=true] .mat-step-label{text-decoration:underline}.cdk-high-contrast-active .mat-step-header[aria-disabled=true]{outline-color:GrayText}.cdk-high-contrast-active .mat-step-header[aria-disabled=true] .mat-step-label,.cdk-high-contrast-active .mat-step-header[aria-disabled=true] .mat-step-icon,.cdk-high-contrast-active .mat-step-header[aria-disabled=true] .mat-step-optional{color:GrayText}.mat-step-optional{font-size:12px;color:var(--mat-stepper-header-optional-label-text-color)}.mat-step-sub-label-error{font-size:12px;font-weight:normal}.mat-step-icon{border-radius:50%;height:24px;width:24px;flex-shrink:0;position:relative;color:var(--mat-stepper-header-icon-foreground-color);background-color:var(--mat-stepper-header-icon-background-color)}.mat-step-icon-content{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);display:flex}.mat-step-icon .mat-icon{font-size:16px;height:16px;width:16px}.mat-step-icon-state-error{background-color:var(--mat-stepper-header-error-state-icon-background-color);color:var(--mat-stepper-header-error-state-icon-foreground-color)}.mat-step-icon-state-error .mat-icon{font-size:24px;height:24px;width:24px}.mat-step-label{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:50px;vertical-align:middle;font-family:var(--mat-stepper-header-label-text-font);font-size:var(--mat-stepper-header-label-text-size);font-weight:var(--mat-stepper-header-label-text-weight);color:var(--mat-stepper-header-label-text-color)}.mat-step-label.mat-step-label-active{color:var(--mat-stepper-header-selected-state-label-text-color)}.mat-step-label.mat-step-label-error{color:var(--mat-stepper-header-error-state-label-text-color);font-size:var(--mat-stepper-header-error-state-label-text-size)}.mat-step-label.mat-step-label-selected{font-size:var(--mat-stepper-header-selected-state-label-text-size);font-weight:var(--mat-stepper-header-selected-state-label-text-weight)}.mat-step-text-label{text-overflow:ellipsis;overflow:hidden}.mat-step-header .mat-step-header-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-step-icon-selected{background-color:var(--mat-stepper-header-selected-state-icon-background-color);color:var(--mat-stepper-header-selected-state-icon-foreground-color)}.mat-step-icon-state-done{background-color:var(--mat-stepper-header-done-state-icon-background-color);color:var(--mat-stepper-header-done-state-icon-foreground-color)}.mat-step-icon-state-edit{background-color:var(--mat-stepper-header-edit-state-icon-background-color);color:var(--mat-stepper-header-edit-state-icon-foreground-color)}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatStepHeader, [{\n type: Component,\n args: [{\n selector: 'mat-step-header',\n inputs: ['color'],\n host: {\n 'class': 'mat-step-header',\n 'role': 'tab'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: \"\\n\\n\\n \\n \\n \\n {{_getDefaultTextForState(state)}}\\n {{_intl.completedLabel}}\\n {{_intl.editableLabel}}\\n {{_getDefaultTextForState(state)}}\\n \\n \\n\\n\\n \\n \\n \\n \\n \\n {{label}}\\n\\n {{_intl.optionalLabel}}\\n {{errorMessage}}\\n\\n\\n\",\n styles: [\".mat-step-header{overflow:hidden;outline:none;cursor:pointer;position:relative;box-sizing:content-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-step-header:focus .mat-focus-indicator::before{content:\\\"\\\"}.mat-step-header:hover[aria-disabled=true]{cursor:default}.mat-step-header:hover:not([aria-disabled]),.mat-step-header:hover[aria-disabled=false]{background-color:var(--mat-stepper-header-hover-state-layer-color)}.mat-step-header.cdk-keyboard-focused,.mat-step-header.cdk-program-focused{background-color:var(--mat-stepper-header-focus-state-layer-color)}@media(hover: none){.mat-step-header:hover{background:none}}.cdk-high-contrast-active .mat-step-header{outline:solid 1px}.cdk-high-contrast-active .mat-step-header[aria-selected=true] .mat-step-label{text-decoration:underline}.cdk-high-contrast-active .mat-step-header[aria-disabled=true]{outline-color:GrayText}.cdk-high-contrast-active .mat-step-header[aria-disabled=true] .mat-step-label,.cdk-high-contrast-active .mat-step-header[aria-disabled=true] .mat-step-icon,.cdk-high-contrast-active .mat-step-header[aria-disabled=true] .mat-step-optional{color:GrayText}.mat-step-optional{font-size:12px;color:var(--mat-stepper-header-optional-label-text-color)}.mat-step-sub-label-error{font-size:12px;font-weight:normal}.mat-step-icon{border-radius:50%;height:24px;width:24px;flex-shrink:0;position:relative;color:var(--mat-stepper-header-icon-foreground-color);background-color:var(--mat-stepper-header-icon-background-color)}.mat-step-icon-content{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);display:flex}.mat-step-icon .mat-icon{font-size:16px;height:16px;width:16px}.mat-step-icon-state-error{background-color:var(--mat-stepper-header-error-state-icon-background-color);color:var(--mat-stepper-header-error-state-icon-foreground-color)}.mat-step-icon-state-error .mat-icon{font-size:24px;height:24px;width:24px}.mat-step-label{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:50px;vertical-align:middle;font-family:var(--mat-stepper-header-label-text-font);font-size:var(--mat-stepper-header-label-text-size);font-weight:var(--mat-stepper-header-label-text-weight);color:var(--mat-stepper-header-label-text-color)}.mat-step-label.mat-step-label-active{color:var(--mat-stepper-header-selected-state-label-text-color)}.mat-step-label.mat-step-label-error{color:var(--mat-stepper-header-error-state-label-text-color);font-size:var(--mat-stepper-header-error-state-label-text-size)}.mat-step-label.mat-step-label-selected{font-size:var(--mat-stepper-header-selected-state-label-text-size);font-weight:var(--mat-stepper-header-selected-state-label-text-weight)}.mat-step-text-label{text-overflow:ellipsis;overflow:hidden}.mat-step-header .mat-step-header-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-step-icon-selected{background-color:var(--mat-stepper-header-selected-state-icon-background-color);color:var(--mat-stepper-header-selected-state-icon-foreground-color)}.mat-step-icon-state-done{background-color:var(--mat-stepper-header-done-state-icon-background-color);color:var(--mat-stepper-header-done-state-icon-foreground-color)}.mat-step-icon-state-edit{background-color:var(--mat-stepper-header-edit-state-icon-background-color);color:var(--mat-stepper-header-edit-state-icon-foreground-color)}\"]\n }]\n }], function () {\n return [{\n type: MatStepperIntl\n }, {\n type: i2.FocusMonitor\n }, {\n type: i0.ElementRef\n }, {\n type: i0.ChangeDetectorRef\n }];\n }, {\n state: [{\n type: Input\n }],\n label: [{\n type: Input\n }],\n errorMessage: [{\n type: Input\n }],\n iconOverrides: [{\n type: Input\n }],\n index: [{\n type: Input\n }],\n selected: [{\n type: Input\n }],\n active: [{\n type: Input\n }],\n optional: [{\n type: Input\n }],\n disableRipple: [{\n type: Input\n }]\n });\n})();\nconst DEFAULT_HORIZONTAL_ANIMATION_DURATION = '500ms';\nconst DEFAULT_VERTICAL_ANIMATION_DURATION = '225ms';\n/**\n * Animations used by the Material steppers.\n * @docs-private\n */\nconst matStepperAnimations = {\n /** Animation that transitions the step along the X axis in a horizontal stepper. */\n horizontalStepTransition: trigger('horizontalStepTransition', [state('previous', style({\n transform: 'translate3d(-100%, 0, 0)',\n visibility: 'hidden'\n })),\n // Transition to `inherit`, rather than `visible`,\n // because visibility on a child element the one from the parent,\n // making this element focusable inside of a `hidden` element.\n state('current', style({\n transform: 'none',\n visibility: 'inherit'\n })), state('next', style({\n transform: 'translate3d(100%, 0, 0)',\n visibility: 'hidden'\n })), transition('* => *', group([animate('{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)'), query('@*', animateChild(), {\n optional: true\n })]), {\n params: {\n 'animationDuration': DEFAULT_HORIZONTAL_ANIMATION_DURATION\n }\n })]),\n /** Animation that transitions the step along the Y axis in a vertical stepper. */\n verticalStepTransition: trigger('verticalStepTransition', [state('previous', style({\n height: '0px',\n visibility: 'hidden'\n })), state('next', style({\n height: '0px',\n visibility: 'hidden'\n })),\n // Transition to `inherit`, rather than `visible`,\n // because visibility on a child element the one from the parent,\n // making this element focusable inside of a `hidden` element.\n state('current', style({\n height: '*',\n visibility: 'inherit'\n })), transition('* <=> current', group([animate('{{animationDuration}} cubic-bezier(0.4, 0.0, 0.2, 1)'), query('@*', animateChild(), {\n optional: true\n })]), {\n params: {\n 'animationDuration': DEFAULT_VERTICAL_ANIMATION_DURATION\n }\n })])\n};\n\n/**\n * Template to be used to override the icons inside the step header.\n */\nclass MatStepperIcon {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n static {\n this.ɵfac = function MatStepperIcon_Factory(ɵt) {\n return new (ɵt || MatStepperIcon)(i0.ɵɵdirectiveInject(i0.TemplateRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatStepperIcon,\n selectors: [[\"ng-template\", \"matStepperIcon\", \"\"]],\n inputs: {\n name: [0, \"matStepperIcon\", \"name\"]\n }\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatStepperIcon, [{\n type: Directive,\n args: [{\n selector: 'ng-template[matStepperIcon]'\n }]\n }], function () {\n return [{\n type: i0.TemplateRef\n }];\n }, {\n name: [{\n type: Input,\n args: ['matStepperIcon']\n }]\n });\n})();\n\n/**\n * Content for a `mat-step` that will be rendered lazily.\n */\nclass MatStepContent {\n constructor(_template) {\n this._template = _template;\n }\n static {\n this.ɵfac = function MatStepContent_Factory(ɵt) {\n return new (ɵt || MatStepContent)(i0.ɵɵdirectiveInject(i0.TemplateRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatStepContent,\n selectors: [[\"ng-template\", \"matStepContent\", \"\"]]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatStepContent, [{\n type: Directive,\n args: [{\n selector: 'ng-template[matStepContent]'\n }]\n }], function () {\n return [{\n type: i0.TemplateRef\n }];\n }, null);\n})();\nclass MatStep extends CdkStep {\n constructor(stepper, _errorStateMatcher, _viewContainerRef, stepperOptions) {\n super(stepper, stepperOptions);\n this._errorStateMatcher = _errorStateMatcher;\n this._viewContainerRef = _viewContainerRef;\n this._isSelected = Subscription.EMPTY;\n /** Content for step label given by ``. */\n // We need an initializer here to avoid a TS error.\n this.stepLabel = undefined;\n }\n ngAfterContentInit() {\n this._isSelected = this._stepper.steps.changes.pipe(switchMap(() => {\n return this._stepper.selectionChange.pipe(map(event => event.selectedStep === this), startWith(this._stepper.selected === this));\n })).subscribe(isSelected => {\n if (isSelected && this._lazyContent && !this._portal) {\n this._portal = new TemplatePortal(this._lazyContent._template, this._viewContainerRef);\n }\n });\n }\n ngOnDestroy() {\n this._isSelected.unsubscribe();\n }\n /** Custom error state matcher that additionally checks for validity of interacted form. */\n isErrorState(control, form) {\n const originalErrorState = this._errorStateMatcher.isErrorState(control, form);\n // Custom error state checks for the validity of form that is not submitted or touched\n // since user can trigger a form change by calling for another step without directly\n // interacting with the current form.\n const customErrorState = !!(control && control.invalid && this.interacted);\n return originalErrorState || customErrorState;\n }\n static {\n this.ɵfac = function MatStep_Factory(ɵt) {\n return new (ɵt || MatStep)(i0.ɵɵdirectiveInject(forwardRef(() => MatStepper)), i0.ɵɵdirectiveInject(i1.ErrorStateMatcher, 4), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(STEPPER_GLOBAL_OPTIONS, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatStep,\n selectors: [[\"mat-step\"]],\n contentQueries: function MatStep_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MatStepLabel, 5);\n i0.ɵɵcontentQuery(dirIndex, MatStepContent, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.stepLabel = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._lazyContent = _t.first);\n }\n },\n inputs: {\n color: \"color\"\n },\n exportAs: [\"matStep\"],\n features: [i0.ɵɵProvidersFeature([{\n provide: ErrorStateMatcher,\n useExisting: MatStep\n }, {\n provide: CdkStep,\n useExisting: MatStep\n }]), i0.ɵɵInheritDefinitionFeature],\n ngContentSelectors: _c0,\n decls: 1,\n vars: 0,\n consts: [[3, \"cdkPortalOutlet\"]],\n template: function MatStep_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵtemplate(0, MatStep_ng_template_0_Template, 2, 1, \"ng-template\");\n }\n },\n dependencies: [i2$1.CdkPortalOutlet],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatStep, [{\n type: Component,\n args: [{\n selector: 'mat-step',\n providers: [{\n provide: ErrorStateMatcher,\n useExisting: MatStep\n }, {\n provide: CdkStep,\n useExisting: MatStep\n }],\n encapsulation: ViewEncapsulation.None,\n exportAs: 'matStep',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: \"\\n \\n \\n\\n\"\n }]\n }], function () {\n return [{\n type: MatStepper,\n decorators: [{\n type: Inject,\n args: [forwardRef(() => MatStepper)]\n }]\n }, {\n type: i1.ErrorStateMatcher,\n decorators: [{\n type: SkipSelf\n }]\n }, {\n type: i0.ViewContainerRef\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [STEPPER_GLOBAL_OPTIONS]\n }]\n }];\n }, {\n stepLabel: [{\n type: ContentChild,\n args: [MatStepLabel]\n }],\n color: [{\n type: Input\n }],\n _lazyContent: [{\n type: ContentChild,\n args: [MatStepContent, {\n static: false\n }]\n }]\n });\n})();\nclass MatStepper extends CdkStepper {\n /** Duration for the animation. Will be normalized to milliseconds if no units are set. */\n get animationDuration() {\n return this._animationDuration;\n }\n set animationDuration(value) {\n this._animationDuration = /^\\d+$/.test(value) ? value + 'ms' : value;\n }\n constructor(dir, changeDetectorRef, elementRef) {\n super(dir, changeDetectorRef, elementRef);\n /** The list of step headers of the steps in the stepper. */\n // We need an initializer here to avoid a TS error.\n this._stepHeader = undefined;\n /** Full list of steps inside the stepper, including inside nested steppers. */\n // We need an initializer here to avoid a TS error.\n this._steps = undefined;\n /** Steps that belong to the current stepper, excluding ones from nested steppers. */\n this.steps = new QueryList();\n /** Event emitted when the current step is done transitioning in. */\n this.animationDone = new EventEmitter();\n /**\n * Whether the label should display in bottom or end position.\n * Only applies in the `horizontal` orientation.\n */\n this.labelPosition = 'end';\n /**\n * Position of the stepper's header.\n * Only applies in the `horizontal` orientation.\n */\n this.headerPosition = 'top';\n /** Consumer-specified template-refs to be used to override the header icons. */\n this._iconOverrides = {};\n /** Stream of animation `done` events when the body expands/collapses. */\n this._animationDone = new Subject();\n this._animationDuration = '';\n const nodeName = elementRef.nativeElement.nodeName.toLowerCase();\n this.orientation = nodeName === 'mat-vertical-stepper' ? 'vertical' : 'horizontal';\n }\n ngAfterContentInit() {\n super.ngAfterContentInit();\n this._icons.forEach(({\n name,\n templateRef\n }) => this._iconOverrides[name] = templateRef);\n // Mark the component for change detection whenever the content children query changes\n this.steps.changes.pipe(takeUntil(this._destroyed)).subscribe(() => {\n this._stateChanged();\n });\n this._animationDone.pipe(\n // This needs a `distinctUntilChanged` in order to avoid emitting the same event twice due\n // to a bug in animations where the `.done` callback gets invoked twice on some browsers.\n // See https://github.com/angular/angular/issues/24084\n distinctUntilChanged((x, y) => x.fromState === y.fromState && x.toState === y.toState), takeUntil(this._destroyed)).subscribe(event => {\n if (event.toState === 'current') {\n this.animationDone.emit();\n }\n });\n }\n _stepIsNavigable(index, step) {\n return step.completed || this.selectedIndex === index || !this.linear;\n }\n _getAnimationDuration() {\n if (this.animationDuration) {\n return this.animationDuration;\n }\n return this.orientation === 'horizontal' ? DEFAULT_HORIZONTAL_ANIMATION_DURATION : DEFAULT_VERTICAL_ANIMATION_DURATION;\n }\n static {\n this.ɵfac = function MatStepper_Factory(ɵt) {\n return new (ɵt || MatStepper)(i0.ɵɵdirectiveInject(i3$1.Directionality, 8), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatStepper,\n selectors: [[\"mat-stepper\"], [\"mat-vertical-stepper\"], [\"mat-horizontal-stepper\"], [\"\", \"matStepper\", \"\"]],\n contentQueries: function MatStepper_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MatStep, 5);\n i0.ɵɵcontentQuery(dirIndex, MatStepperIcon, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._steps = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._icons = _t);\n }\n },\n viewQuery: function MatStepper_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(MatStepHeader, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._stepHeader = _t);\n }\n },\n hostAttrs: [\"role\", \"tablist\", \"ngSkipHydration\", \"\"],\n hostVars: 11,\n hostBindings: function MatStepper_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-orientation\", ctx.orientation);\n i0.ɵɵclassProp(\"mat-stepper-horizontal\", ctx.orientation === \"horizontal\")(\"mat-stepper-vertical\", ctx.orientation === \"vertical\")(\"mat-stepper-label-position-end\", ctx.orientation === \"horizontal\" && ctx.labelPosition == \"end\")(\"mat-stepper-label-position-bottom\", ctx.orientation === \"horizontal\" && ctx.labelPosition == \"bottom\")(\"mat-stepper-header-position-bottom\", ctx.headerPosition === \"bottom\");\n }\n },\n inputs: {\n selectedIndex: \"selectedIndex\",\n disableRipple: \"disableRipple\",\n color: \"color\",\n labelPosition: \"labelPosition\",\n headerPosition: \"headerPosition\",\n animationDuration: \"animationDuration\"\n },\n outputs: {\n animationDone: \"animationDone\"\n },\n exportAs: [\"matStepper\", \"matVerticalStepper\", \"matHorizontalStepper\"],\n features: [i0.ɵɵProvidersFeature([{\n provide: CdkStepper,\n useExisting: MatStepper\n }]), i0.ɵɵInheritDefinitionFeature],\n decls: 5,\n vars: 3,\n consts: [[\"stepTemplate\", \"\"], [3, \"ngSwitch\"], [\"class\", \"mat-horizontal-stepper-wrapper\", 4, \"ngSwitchCase\"], [4, \"ngSwitchCase\"], [1, \"mat-horizontal-stepper-wrapper\"], [1, \"mat-horizontal-stepper-header-container\"], [4, \"ngFor\", \"ngForOf\"], [1, \"mat-horizontal-content-container\"], [\"class\", \"mat-horizontal-stepper-content\", \"role\", \"tabpanel\", 3, \"id\", \"mat-horizontal-stepper-content-inactive\", 4, \"ngFor\", \"ngForOf\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [\"class\", \"mat-stepper-horizontal-line\", 4, \"ngIf\"], [1, \"mat-stepper-horizontal-line\"], [\"role\", \"tabpanel\", 1, \"mat-horizontal-stepper-content\", 3, \"id\"], [3, \"ngTemplateOutlet\"], [\"class\", \"mat-step\", 4, \"ngFor\", \"ngForOf\"], [1, \"mat-step\"], [1, \"mat-vertical-content-container\"], [\"role\", \"tabpanel\", 1, \"mat-vertical-stepper-content\", 3, \"id\"], [1, \"mat-vertical-content\"], [3, \"click\", \"keydown\", \"tabIndex\", \"id\", \"index\", \"state\", \"label\", \"selected\", \"active\", \"optional\", \"errorMessage\", \"iconOverrides\", \"disableRipple\", \"color\"]],\n template: function MatStepper_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0, 1);\n i0.ɵɵtemplate(1, MatStepper_div_1_Template, 5, 2, \"div\", 2)(2, MatStepper_ng_container_2_Template, 2, 1, \"ng-container\", 3);\n i0.ɵɵelementContainerEnd();\n i0.ɵɵtemplate(3, MatStepper_ng_template_3_Template, 1, 23, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngSwitch\", ctx.orientation);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngSwitchCase\", \"horizontal\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngSwitchCase\", \"vertical\");\n }\n },\n dependencies: [i3.NgForOf, i3.NgIf, i3.NgTemplateOutlet, i3.NgSwitch, i3.NgSwitchCase, MatStepHeader],\n styles: [\".mat-stepper-vertical,.mat-stepper-horizontal{display:block;font-family:var(--mat-stepper-container-text-font);background:var(--mat-stepper-container-color)}.mat-horizontal-stepper-header-container{white-space:nowrap;display:flex;align-items:center}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header-container{align-items:flex-start}.mat-stepper-header-position-bottom .mat-horizontal-stepper-header-container{order:1}.mat-stepper-horizontal-line{border-top-width:1px;border-top-style:solid;flex:auto;height:0;margin:0 -16px;min-width:32px;border-top-color:var(--mat-stepper-line-color)}.mat-stepper-label-position-bottom .mat-stepper-horizontal-line{margin:0;min-width:0;position:relative;top:calc(calc((var(--mat-stepper-header-height) - 24px) / 2) + 12px)}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::before,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::before,.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::after,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::after{border-top-width:1px;border-top-style:solid;content:\\\"\\\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px)}.mat-horizontal-stepper-header{display:flex;height:72px;overflow:hidden;align-items:center;padding:0 24px;height:var(--mat-stepper-header-height)}.mat-horizontal-stepper-header .mat-step-icon{margin-right:8px;flex:none}[dir=rtl] .mat-horizontal-stepper-header .mat-step-icon{margin-right:0;margin-left:8px}.mat-horizontal-stepper-header::before,.mat-horizontal-stepper-header::after{border-top-color:var(--mat-stepper-line-color)}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header{padding:calc((var(--mat-stepper-header-height) - 24px) / 2) 24px}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header::before,.mat-stepper-label-position-bottom .mat-horizontal-stepper-header::after{top:calc(calc((var(--mat-stepper-header-height) - 24px) / 2) + 12px)}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header{box-sizing:border-box;flex-direction:column;height:auto}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::after,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::after{right:0}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::before,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::before{left:0}[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:last-child::before,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:first-child::after{display:none}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header .mat-step-icon{margin-right:0;margin-left:0}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header .mat-step-label{padding:16px 0 0 0;text-align:center;width:100%}.mat-vertical-stepper-header{display:flex;align-items:center;height:24px;padding:calc((var(--mat-stepper-header-height) - 24px) / 2) 24px}.mat-vertical-stepper-header .mat-step-icon{margin-right:12px}[dir=rtl] .mat-vertical-stepper-header .mat-step-icon{margin-right:0;margin-left:12px}.mat-horizontal-stepper-wrapper{display:flex;flex-direction:column}.mat-horizontal-stepper-content{outline:0}.mat-horizontal-stepper-content.mat-horizontal-stepper-content-inactive{height:0;overflow:hidden}.mat-horizontal-stepper-content:not(.mat-horizontal-stepper-content-inactive){visibility:inherit !important}.mat-horizontal-content-container{overflow:hidden;padding:0 24px 24px 24px}.cdk-high-contrast-active .mat-horizontal-content-container{outline:solid 1px}.mat-stepper-header-position-bottom .mat-horizontal-content-container{padding:24px 24px 0 24px}.mat-vertical-content-container{margin-left:36px;border:0;position:relative}.cdk-high-contrast-active .mat-vertical-content-container{outline:solid 1px}[dir=rtl] .mat-vertical-content-container{margin-left:0;margin-right:36px}.mat-stepper-vertical-line::before{content:\\\"\\\";position:absolute;left:0;border-left-width:1px;border-left-style:solid;border-left-color:var(--mat-stepper-line-color);top:calc(8px - calc((var(--mat-stepper-header-height) - 24px) / 2));bottom:calc(8px - calc((var(--mat-stepper-header-height) - 24px) / 2))}[dir=rtl] .mat-stepper-vertical-line::before{left:auto;right:0}.mat-vertical-stepper-content{overflow:hidden;outline:0}.mat-vertical-stepper-content:not(.mat-vertical-stepper-content-inactive){visibility:inherit !important}.mat-vertical-content{padding:0 24px 24px 24px}.mat-step:last-child .mat-vertical-content-container{border:none}\"],\n encapsulation: 2,\n data: {\n animation: [matStepperAnimations.horizontalStepTransition, matStepperAnimations.verticalStepTransition]\n },\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatStepper, [{\n type: Component,\n args: [{\n selector: 'mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]',\n exportAs: 'matStepper, matVerticalStepper, matHorizontalStepper',\n inputs: ['selectedIndex'],\n host: {\n '[class.mat-stepper-horizontal]': 'orientation === \"horizontal\"',\n '[class.mat-stepper-vertical]': 'orientation === \"vertical\"',\n '[class.mat-stepper-label-position-end]': 'orientation === \"horizontal\" && labelPosition == \"end\"',\n '[class.mat-stepper-label-position-bottom]': 'orientation === \"horizontal\" && labelPosition == \"bottom\"',\n '[class.mat-stepper-header-position-bottom]': 'headerPosition === \"bottom\"',\n '[attr.aria-orientation]': 'orientation',\n 'role': 'tablist',\n 'ngSkipHydration': ''\n },\n animations: [matStepperAnimations.horizontalStepTransition, matStepperAnimations.verticalStepTransition],\n providers: [{\n provide: CdkStepper,\n useExisting: MatStepper\n }],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: \"\\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n\\n\\n\\n\\n \\n\\n\",\n styles: [\".mat-stepper-vertical,.mat-stepper-horizontal{display:block;font-family:var(--mat-stepper-container-text-font);background:var(--mat-stepper-container-color)}.mat-horizontal-stepper-header-container{white-space:nowrap;display:flex;align-items:center}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header-container{align-items:flex-start}.mat-stepper-header-position-bottom .mat-horizontal-stepper-header-container{order:1}.mat-stepper-horizontal-line{border-top-width:1px;border-top-style:solid;flex:auto;height:0;margin:0 -16px;min-width:32px;border-top-color:var(--mat-stepper-line-color)}.mat-stepper-label-position-bottom .mat-stepper-horizontal-line{margin:0;min-width:0;position:relative;top:calc(calc((var(--mat-stepper-header-height) - 24px) / 2) + 12px)}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::before,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::before,.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::after,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::after{border-top-width:1px;border-top-style:solid;content:\\\"\\\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px)}.mat-horizontal-stepper-header{display:flex;height:72px;overflow:hidden;align-items:center;padding:0 24px;height:var(--mat-stepper-header-height)}.mat-horizontal-stepper-header .mat-step-icon{margin-right:8px;flex:none}[dir=rtl] .mat-horizontal-stepper-header .mat-step-icon{margin-right:0;margin-left:8px}.mat-horizontal-stepper-header::before,.mat-horizontal-stepper-header::after{border-top-color:var(--mat-stepper-line-color)}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header{padding:calc((var(--mat-stepper-header-height) - 24px) / 2) 24px}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header::before,.mat-stepper-label-position-bottom .mat-horizontal-stepper-header::after{top:calc(calc((var(--mat-stepper-header-height) - 24px) / 2) + 12px)}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header{box-sizing:border-box;flex-direction:column;height:auto}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::after,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::after{right:0}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::before,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::before{left:0}[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:last-child::before,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:first-child::after{display:none}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header .mat-step-icon{margin-right:0;margin-left:0}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header .mat-step-label{padding:16px 0 0 0;text-align:center;width:100%}.mat-vertical-stepper-header{display:flex;align-items:center;height:24px;padding:calc((var(--mat-stepper-header-height) - 24px) / 2) 24px}.mat-vertical-stepper-header .mat-step-icon{margin-right:12px}[dir=rtl] .mat-vertical-stepper-header .mat-step-icon{margin-right:0;margin-left:12px}.mat-horizontal-stepper-wrapper{display:flex;flex-direction:column}.mat-horizontal-stepper-content{outline:0}.mat-horizontal-stepper-content.mat-horizontal-stepper-content-inactive{height:0;overflow:hidden}.mat-horizontal-stepper-content:not(.mat-horizontal-stepper-content-inactive){visibility:inherit !important}.mat-horizontal-content-container{overflow:hidden;padding:0 24px 24px 24px}.cdk-high-contrast-active .mat-horizontal-content-container{outline:solid 1px}.mat-stepper-header-position-bottom .mat-horizontal-content-container{padding:24px 24px 0 24px}.mat-vertical-content-container{margin-left:36px;border:0;position:relative}.cdk-high-contrast-active .mat-vertical-content-container{outline:solid 1px}[dir=rtl] .mat-vertical-content-container{margin-left:0;margin-right:36px}.mat-stepper-vertical-line::before{content:\\\"\\\";position:absolute;left:0;border-left-width:1px;border-left-style:solid;border-left-color:var(--mat-stepper-line-color);top:calc(8px - calc((var(--mat-stepper-header-height) - 24px) / 2));bottom:calc(8px - calc((var(--mat-stepper-header-height) - 24px) / 2))}[dir=rtl] .mat-stepper-vertical-line::before{left:auto;right:0}.mat-vertical-stepper-content{overflow:hidden;outline:0}.mat-vertical-stepper-content:not(.mat-vertical-stepper-content-inactive){visibility:inherit !important}.mat-vertical-content{padding:0 24px 24px 24px}.mat-step:last-child .mat-vertical-content-container{border:none}\"]\n }]\n }], function () {\n return [{\n type: i3$1.Directionality,\n decorators: [{\n type: Optional\n }]\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: i0.ElementRef\n }];\n }, {\n _stepHeader: [{\n type: ViewChildren,\n args: [MatStepHeader]\n }],\n _steps: [{\n type: ContentChildren,\n args: [MatStep, {\n descendants: true\n }]\n }],\n _icons: [{\n type: ContentChildren,\n args: [MatStepperIcon, {\n descendants: true\n }]\n }],\n animationDone: [{\n type: Output\n }],\n disableRipple: [{\n type: Input\n }],\n color: [{\n type: Input\n }],\n labelPosition: [{\n type: Input\n }],\n headerPosition: [{\n type: Input\n }],\n animationDuration: [{\n type: Input\n }]\n });\n})();\n\n/** Button that moves to the next step in a stepper workflow. */\nclass MatStepperNext extends CdkStepperNext {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatStepperNext_BaseFactory;\n return function MatStepperNext_Factory(ɵt) {\n return (ɵMatStepperNext_BaseFactory || (ɵMatStepperNext_BaseFactory = i0.ɵɵgetInheritedFactory(MatStepperNext)))(ɵt || MatStepperNext);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatStepperNext,\n selectors: [[\"button\", \"matStepperNext\", \"\"]],\n hostAttrs: [1, \"mat-stepper-next\"],\n hostVars: 1,\n hostBindings: function MatStepperNext_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵhostProperty(\"type\", ctx.type);\n }\n },\n inputs: {\n type: \"type\"\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatStepperNext, [{\n type: Directive,\n args: [{\n selector: 'button[matStepperNext]',\n host: {\n 'class': 'mat-stepper-next',\n '[type]': 'type'\n },\n inputs: ['type']\n }]\n }], null, null);\n})();\n/** Button that moves to the previous step in a stepper workflow. */\nclass MatStepperPrevious extends CdkStepperPrevious {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatStepperPrevious_BaseFactory;\n return function MatStepperPrevious_Factory(ɵt) {\n return (ɵMatStepperPrevious_BaseFactory || (ɵMatStepperPrevious_BaseFactory = i0.ɵɵgetInheritedFactory(MatStepperPrevious)))(ɵt || MatStepperPrevious);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatStepperPrevious,\n selectors: [[\"button\", \"matStepperPrevious\", \"\"]],\n hostAttrs: [1, \"mat-stepper-previous\"],\n hostVars: 1,\n hostBindings: function MatStepperPrevious_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵhostProperty(\"type\", ctx.type);\n }\n },\n inputs: {\n type: \"type\"\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatStepperPrevious, [{\n type: Directive,\n args: [{\n selector: 'button[matStepperPrevious]',\n host: {\n 'class': 'mat-stepper-previous',\n '[type]': 'type'\n },\n inputs: ['type']\n }]\n }], null, null);\n})();\nclass MatStepperModule {\n static {\n this.ɵfac = function MatStepperModule_Factory(ɵt) {\n return new (ɵt || MatStepperModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatStepperModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [MAT_STEPPER_INTL_PROVIDER, ErrorStateMatcher],\n imports: [MatCommonModule, CommonModule, PortalModule, CdkStepperModule, MatIconModule, MatRippleModule, MatCommonModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatStepperModule, [{\n type: NgModule,\n args: [{\n imports: [MatCommonModule, CommonModule, PortalModule, CdkStepperModule, MatIconModule, MatRippleModule],\n exports: [MatCommonModule, MatStep, MatStepLabel, MatStepper, MatStepperNext, MatStepperPrevious, MatStepHeader, MatStepperIcon, MatStepContent],\n declarations: [MatStep, MatStepLabel, MatStepper, MatStepperNext, MatStepperPrevious, MatStepHeader, MatStepperIcon, MatStepContent],\n providers: [MAT_STEPPER_INTL_PROVIDER, ErrorStateMatcher]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_STEPPER_INTL_PROVIDER, MAT_STEPPER_INTL_PROVIDER_FACTORY, MatStep, MatStepContent, MatStepHeader, MatStepLabel, MatStepper, MatStepperIcon, MatStepperIntl, MatStepperModule, MatStepperNext, MatStepperPrevious, matStepperAnimations };\n","import * as i0 from '@angular/core';\nimport { Directive, Component, ChangeDetectionStrategy, ViewEncapsulation, Inject, ContentChildren, NgModule } from '@angular/core';\nimport { mixinColor, MatCommonModule } from '@angular/material/core';\nimport * as i1 from '@angular/cdk/platform';\nimport { DOCUMENT } from '@angular/common';\n\n// Boilerplate for applying mixins to MatToolbar.\n/** @docs-private */\nconst _c0 = [\"*\", [[\"mat-toolbar-row\"]]];\nconst _c1 = [\"*\", \"mat-toolbar-row\"];\nconst _MatToolbarBase = mixinColor(class {\n constructor(_elementRef) {\n this._elementRef = _elementRef;\n }\n});\nclass MatToolbarRow {\n static {\n this.ɵfac = function MatToolbarRow_Factory(ɵt) {\n return new (ɵt || MatToolbarRow)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatToolbarRow,\n selectors: [[\"mat-toolbar-row\"]],\n hostAttrs: [1, \"mat-toolbar-row\"],\n exportAs: [\"matToolbarRow\"]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatToolbarRow, [{\n type: Directive,\n args: [{\n selector: 'mat-toolbar-row',\n exportAs: 'matToolbarRow',\n host: {\n 'class': 'mat-toolbar-row'\n }\n }]\n }], null, null);\n})();\nclass MatToolbar extends _MatToolbarBase {\n constructor(elementRef, _platform, document) {\n super(elementRef);\n this._platform = _platform;\n // TODO: make the document a required param when doing breaking changes.\n this._document = document;\n }\n ngAfterViewInit() {\n if (this._platform.isBrowser) {\n this._checkToolbarMixedModes();\n this._toolbarRows.changes.subscribe(() => this._checkToolbarMixedModes());\n }\n }\n /**\n * Throws an exception when developers are attempting to combine the different toolbar row modes.\n */\n _checkToolbarMixedModes() {\n if (this._toolbarRows.length && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n // Check if there are any other DOM nodes that can display content but aren't inside of\n // a element.\n const isCombinedUsage = Array.from(this._elementRef.nativeElement.childNodes).filter(node => !(node.classList && node.classList.contains('mat-toolbar-row'))).filter(node => node.nodeType !== (this._document ? this._document.COMMENT_NODE : 8)).some(node => !!(node.textContent && node.textContent.trim()));\n if (isCombinedUsage) {\n throwToolbarMixedModesError();\n }\n }\n }\n static {\n this.ɵfac = function MatToolbar_Factory(ɵt) {\n return new (ɵt || MatToolbar)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(DOCUMENT));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatToolbar,\n selectors: [[\"mat-toolbar\"]],\n contentQueries: function MatToolbar_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MatToolbarRow, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._toolbarRows = _t);\n }\n },\n hostAttrs: [1, \"mat-toolbar\"],\n hostVars: 4,\n hostBindings: function MatToolbar_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"mat-toolbar-multiple-rows\", ctx._toolbarRows.length > 0)(\"mat-toolbar-single-row\", ctx._toolbarRows.length === 0);\n }\n },\n inputs: {\n color: \"color\"\n },\n exportAs: [\"matToolbar\"],\n features: [i0.ɵɵInheritDefinitionFeature],\n ngContentSelectors: _c1,\n decls: 2,\n vars: 0,\n template: function MatToolbar_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c0);\n i0.ɵɵprojection(0);\n i0.ɵɵprojection(1, 1);\n }\n },\n styles: [\".mat-toolbar{background:var(--mat-toolbar-container-background-color);color:var(--mat-toolbar-container-text-color)}.mat-toolbar,.mat-toolbar h1,.mat-toolbar h2,.mat-toolbar h3,.mat-toolbar h4,.mat-toolbar h5,.mat-toolbar h6{font-family:var(--mat-toolbar-title-text-font);font-size:var(--mat-toolbar-title-text-size);line-height:var(--mat-toolbar-title-text-line-height);font-weight:var(--mat-toolbar-title-text-weight);letter-spacing:var(--mat-toolbar-title-text-tracking);margin:0}.cdk-high-contrast-active .mat-toolbar{outline:solid 1px}.mat-toolbar .mat-form-field-underline,.mat-toolbar .mat-form-field-ripple,.mat-toolbar .mat-focused .mat-form-field-ripple{background-color:currentColor}.mat-toolbar .mat-form-field-label,.mat-toolbar .mat-focused .mat-form-field-label,.mat-toolbar .mat-select-value,.mat-toolbar .mat-select-arrow,.mat-toolbar .mat-form-field.mat-focused .mat-select-arrow{color:inherit}.mat-toolbar .mat-input-element{caret-color:currentColor}.mat-toolbar .mat-mdc-button-base.mat-mdc-button-base.mat-unthemed{--mdc-text-button-label-text-color: inherit;--mdc-outlined-button-label-text-color: inherit}.mat-toolbar-row,.mat-toolbar-single-row{display:flex;box-sizing:border-box;padding:0 16px;width:100%;flex-direction:row;align-items:center;white-space:nowrap;height:var(--mat-toolbar-standard-height)}@media(max-width: 599px){.mat-toolbar-row,.mat-toolbar-single-row{height:var(--mat-toolbar-mobile-height)}}.mat-toolbar-multiple-rows{display:flex;box-sizing:border-box;flex-direction:column;width:100%;min-height:var(--mat-toolbar-standard-height)}@media(max-width: 599px){.mat-toolbar-multiple-rows{min-height:var(--mat-toolbar-mobile-height)}}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatToolbar, [{\n type: Component,\n args: [{\n selector: 'mat-toolbar',\n exportAs: 'matToolbar',\n inputs: ['color'],\n host: {\n 'class': 'mat-toolbar',\n '[class.mat-toolbar-multiple-rows]': '_toolbarRows.length > 0',\n '[class.mat-toolbar-single-row]': '_toolbarRows.length === 0'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: \"\\n\\n\",\n styles: [\".mat-toolbar{background:var(--mat-toolbar-container-background-color);color:var(--mat-toolbar-container-text-color)}.mat-toolbar,.mat-toolbar h1,.mat-toolbar h2,.mat-toolbar h3,.mat-toolbar h4,.mat-toolbar h5,.mat-toolbar h6{font-family:var(--mat-toolbar-title-text-font);font-size:var(--mat-toolbar-title-text-size);line-height:var(--mat-toolbar-title-text-line-height);font-weight:var(--mat-toolbar-title-text-weight);letter-spacing:var(--mat-toolbar-title-text-tracking);margin:0}.cdk-high-contrast-active .mat-toolbar{outline:solid 1px}.mat-toolbar .mat-form-field-underline,.mat-toolbar .mat-form-field-ripple,.mat-toolbar .mat-focused .mat-form-field-ripple{background-color:currentColor}.mat-toolbar .mat-form-field-label,.mat-toolbar .mat-focused .mat-form-field-label,.mat-toolbar .mat-select-value,.mat-toolbar .mat-select-arrow,.mat-toolbar .mat-form-field.mat-focused .mat-select-arrow{color:inherit}.mat-toolbar .mat-input-element{caret-color:currentColor}.mat-toolbar .mat-mdc-button-base.mat-mdc-button-base.mat-unthemed{--mdc-text-button-label-text-color: inherit;--mdc-outlined-button-label-text-color: inherit}.mat-toolbar-row,.mat-toolbar-single-row{display:flex;box-sizing:border-box;padding:0 16px;width:100%;flex-direction:row;align-items:center;white-space:nowrap;height:var(--mat-toolbar-standard-height)}@media(max-width: 599px){.mat-toolbar-row,.mat-toolbar-single-row{height:var(--mat-toolbar-mobile-height)}}.mat-toolbar-multiple-rows{display:flex;box-sizing:border-box;flex-direction:column;width:100%;min-height:var(--mat-toolbar-standard-height)}@media(max-width: 599px){.mat-toolbar-multiple-rows{min-height:var(--mat-toolbar-mobile-height)}}\"]\n }]\n }], function () {\n return [{\n type: i0.ElementRef\n }, {\n type: i1.Platform\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }];\n }, {\n _toolbarRows: [{\n type: ContentChildren,\n args: [MatToolbarRow, {\n descendants: true\n }]\n }]\n });\n})();\n/**\n * Throws an exception when attempting to combine the different toolbar row modes.\n * @docs-private\n */\nfunction throwToolbarMixedModesError() {\n throw Error('MatToolbar: Attempting to combine different toolbar modes. ' + 'Either specify multiple `` elements explicitly or just place content ' + 'inside of a `` for a single row.');\n}\nclass MatToolbarModule {\n static {\n this.ɵfac = function MatToolbarModule_Factory(ɵt) {\n return new (ɵt || MatToolbarModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatToolbarModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [MatCommonModule, MatCommonModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatToolbarModule, [{\n type: NgModule,\n args: [{\n imports: [MatCommonModule],\n exports: [MatToolbar, MatToolbarRow, MatCommonModule],\n declarations: [MatToolbar, MatToolbarRow]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MatToolbar, MatToolbarModule, MatToolbarRow, throwToolbarMixedModesError };\n","import { NgModule } from '@angular/core';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatLegacyAutocompleteModule as MatAutocompleteModule } from '@angular/material/legacy-autocomplete';\nimport { MatLegacyButtonModule as MatButtonModule } from '@angular/material/legacy-button';\nimport { MatLegacyCardModule as MatCardModule } from '@angular/material/legacy-card';\nimport { MatLegacyChipsModule as MatChipsModule } from '@angular/material/legacy-chips';\nimport { MatLegacyDialogModule as MatDialogModule } from '@angular/material/legacy-dialog';\nimport { MatLegacyFormFieldModule as MatFormFieldModule } from '@angular/material/legacy-form-field';\nimport { MatLegacyInputModule as MatInputModule } from '@angular/material/legacy-input';\nimport { MatLegacyListModule as MatListModule } from '@angular/material/legacy-list';\nimport { MatLegacyMenuModule as MatMenuModule } from '@angular/material/legacy-menu';\nimport { MatLegacyPaginatorModule as MatPaginatorModule } from '@angular/material/legacy-paginator';\nimport { MatLegacyProgressBarModule as MatProgressBarModule } from '@angular/material/legacy-progress-bar';\nimport { MatLegacyProgressSpinnerModule as MatProgressSpinnerModule } from '@angular/material/legacy-progress-spinner';\nimport { MatLegacySelectModule as MatSelectModule } from '@angular/material/legacy-select';\nimport { MatLegacySlideToggleModule as MatSlideToggleModule } from '@angular/material/legacy-slide-toggle';\nimport { MatLegacySnackBarModule as MatSnackBarModule } from '@angular/material/legacy-snack-bar';\nimport { MatLegacyTableModule as MatTableModule } from '@angular/material/legacy-table';\nimport { MatLegacyTabsModule as MatTabsModule } from '@angular/material/legacy-tabs';\nimport { MatLegacyTooltipModule as MatTooltipModule } from '@angular/material/legacy-tooltip';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatStepperModule } from '@angular/material/stepper';\nimport { MatToolbarModule } from '@angular/material/toolbar';\n\nconst MODULES = [\n MatAutocompleteModule,\n MatButtonModule,\n MatCardModule,\n MatChipsModule,\n MatDialogModule,\n MatDividerModule,\n MatFormFieldModule,\n MatIconModule,\n MatInputModule,\n MatMenuModule,\n MatNativeDateModule,\n MatPaginatorModule,\n MatProgressBarModule,\n MatProgressSpinnerModule,\n MatSelectModule,\n MatSidenavModule,\n MatSlideToggleModule,\n MatSnackBarModule,\n MatStepperModule,\n MatTableModule,\n MatTabsModule,\n MatToolbarModule,\n MatTooltipModule,\n MatListModule\n];\n\n@NgModule({\n imports: [...MODULES],\n exports: [...MODULES]\n})\nexport class MaterialModule {}\n"],"mappings":"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","names":["group","acc","group","FormControl","VERSION","_c0","_c1","_c2","_c0","_c1","_c2","_c0","_c1","_c2","_c3","_c4","nextUniqueId$2","nextUniqueId$1","nextUniqueId","document","window","nextUniqueId","_c0","_c1","_c2","_c3","nextUniqueId","_c0","_c1","defaults","_c0","_MatProgressBarBase","defaults","clamp","_c0","defaults","BASE_SIZE","BASE_STROKE_WIDTH","_MatProgressSpinnerBase","defaults","_c0","document","defaults","_c0","_c1","window","skip","_c0","_c0","_c1","_c2","_c3","_c4","_c5","_c0","nextUniqueId$1","skip","_c0","nextUniqueId","_c0","_c1","_c2","_c3","_c4","_c5","_c6","_c7","_c0","_c1","_c2","_c3","_c4","_c5","_c6","_MatListBase","_c0","_c1","_c2","_c3","_c0","_c1","_c0","delay","style","_c0","_c0","_c0","_c1","_c2","_c3","_c4","_c5","_c6","_c7","_MatButtonBase","defaults","nextUniqueId","defaults","_c0","_c1","nextUniqueId","defaults","_c0","_c1","_c2","defaults","_c0","state","_c0","_c1","state","_c1","_c0","_c0","_c1","EXPORTED_DECLARATIONS","filter","_c0","_c1","EXPORTED_DECLARATIONS","_c0","_c1","_c2","_c3","_c4","_c5","_c6","_c7","_c8","_c9","_c10","passiveEventListenerOptions","nextUniqueId","_c0","_c1","_c2","_c3","_c4","_c5","_c6","_c7","_c8","_c9","_c10","nextUniqueId","_c0","_c1","_c2","_c3","_c4","_c5","_c6","_c0","nextId","_c0","nextId","state","_c0","_c1","_c2","_c3","state","_c0","_c1","document"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42]}