{"ast":null,"code":"import * as i0 from '@angular/core';\nimport { InjectionToken, Directive, Inject, Optional, booleanAttribute, TemplateRef, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, ContentChild, ViewChild, inject, ElementRef, EventEmitter, ANIMATION_MODULE_TYPE, numberAttribute, Output, ContentChildren, forwardRef, QueryList, Attribute, NgModule } from '@angular/core';\nimport { MatRipple, MAT_RIPPLE_GLOBAL_OPTIONS, MatCommonModule } from '@angular/material/core';\nimport { CdkPortal, TemplatePortal, CdkPortalOutlet } from '@angular/cdk/portal';\nimport { Subject, fromEvent, of, merge, EMPTY, Observable, timer, Subscription, BehaviorSubject } from 'rxjs';\nimport * as i1 from '@angular/cdk/scrolling';\nimport { CdkScrollable } from '@angular/cdk/scrolling';\nimport * as i3 from '@angular/cdk/platform';\nimport { normalizePassiveListenerOptions, Platform } from '@angular/cdk/platform';\nimport * as i2 from '@angular/cdk/bidi';\nimport * as i4 from '@angular/cdk/a11y';\nimport { FocusKeyManager, CdkMonitorFocus } from '@angular/cdk/a11y';\nimport { hasModifierKey, SPACE, ENTER } from '@angular/cdk/keycodes';\nimport { takeUntil, take, startWith, switchMap, skip, filter, distinctUntilChanged } from 'rxjs/operators';\nimport { CdkObserveContent } from '@angular/cdk/observers';\nimport { DOCUMENT, NgClass } from '@angular/common';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\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 _c0 = [\"*\"];\nfunction MatTab_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojection(0);\n }\n}\nconst _c1 = [\"tabListContainer\"];\nconst _c2 = [\"tabList\"];\nconst _c3 = [\"tabListInner\"];\nconst _c4 = [\"nextPaginator\"];\nconst _c5 = [\"previousPaginator\"];\nconst _c6 = a0 => ({\n animationDuration: a0\n});\nconst _c7 = (a0, a1) => ({\n value: a0,\n params: a1\n});\nfunction MatTabBody_ng_template_2_Template(rf, ctx) {}\nconst _c8 = [\"tabBodyWrapper\"];\nconst _c9 = [\"tabHeader\"];\nfunction MatTabGroup_For_3_Conditional_6_ng_template_0_Template(rf, ctx) {}\nfunction MatTabGroup_For_3_Conditional_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, MatTabGroup_For_3_Conditional_6_ng_template_0_Template, 0, 0, \"ng-template\", 12);\n }\n if (rf & 2) {\n const tab_r4 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵproperty(\"cdkPortalOutlet\", tab_r4.templateLabel);\n }\n}\nfunction MatTabGroup_For_3_Conditional_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_For_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r2 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 7, 2);\n i0.ɵɵlistener(\"click\", function MatTabGroup_For_3_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_For_3_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\", 8)(3, \"div\", 9);\n i0.ɵɵelementStart(4, \"span\", 10)(5, \"span\", 11);\n i0.ɵɵtemplate(6, MatTabGroup_For_3_Conditional_6_Template, 1, 1)(7, MatTabGroup_For_3_Conditional_7_Template, 1, 1);\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 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.ɵɵconditional(6, tab_r4.templateLabel ? 6 : 7);\n }\n}\nfunction MatTabGroup_Conditional_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojection(0);\n }\n}\nfunction MatTabGroup_For_8_Template(rf, ctx) {\n if (rf & 1) {\n const _r9 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"mat-tab-body\", 13);\n i0.ɵɵlistener(\"_onCentered\", function MatTabGroup_For_8_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 MatTabGroup_For_8_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-mdc-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))(\"aria-hidden\", ctx_r5.selectedIndex !== i_r11);\n }\n}\nconst _c10 = [\"mat-tab-nav-bar\", \"\"];\nconst _c11 = [\"mat-tab-link\", \"\"];\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 #_ = this.ɵfac = function MatTabContent_Factory(t) {\n return new (t || MatTabContent)(i0.ɵɵdirectiveInject(i0.TemplateRef));\n };\n static #_2 = this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatTabContent,\n selectors: [[\"\", \"matTabContent\", \"\"]],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_TAB_CONTENT,\n useExisting: MatTabContent\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 standalone: true\n }]\n }], () => [{\n type: i0.TemplateRef\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 #_ = 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 static #_2 = this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatTabLabel,\n selectors: [[\"\", \"mat-tab-label\", \"\"], [\"\", \"matTabLabel\", \"\"]],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_TAB_LABEL,\n useExisting: MatTabLabel\n }]), i0.ɵɵInheritDefinitionFeature]\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 standalone: true\n }]\n }], () => [{\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 }], null);\n})();\n\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');\nclass MatTab {\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 /** @docs-private */\n get content() {\n return this._contentPortal;\n }\n constructor(_viewContainerRef, _closestTabGroup) {\n this._viewContainerRef = _viewContainerRef;\n this._closestTabGroup = _closestTabGroup;\n /** whether the tab is disabled. */\n this.disabled = false;\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 /** 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 #_ = this.ɵfac = function MatTab_Factory(t) {\n return new (t || MatTab)(i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(MAT_TAB_GROUP, 8));\n };\n static #_2 = 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, MatTabLabel, 5);\n i0.ɵɵcontentQuery(dirIndex, MatTabContent, 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 viewQuery: function MatTab_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 hostAttrs: [\"hidden\", \"\"],\n inputs: {\n disabled: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"disabled\", \"disabled\", booleanAttribute],\n textLabel: [i0.ɵɵInputFlags.None, \"label\", \"textLabel\"],\n ariaLabel: [i0.ɵɵInputFlags.None, \"aria-label\", \"ariaLabel\"],\n ariaLabelledby: [i0.ɵɵInputFlags.None, \"aria-labelledby\", \"ariaLabelledby\"],\n labelClass: \"labelClass\",\n bodyClass: \"bodyClass\"\n },\n exportAs: [\"matTab\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_TAB,\n useExisting: MatTab\n }]), i0.ɵɵInputTransformsFeature, i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c0,\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 (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatTab, [{\n type: Component,\n args: [{\n selector: 'mat-tab',\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'matTab',\n providers: [{\n provide: MAT_TAB,\n useExisting: MatTab\n }],\n standalone: true,\n host: {\n // This element will be rendered on the server in order to support hydration.\n // Hide it so it doesn't cause a layout shift when it's removed on the client.\n 'hidden': ''\n },\n template: \"\\n\\n\"\n }]\n }], () => [{\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 disabled: [{\n type: Input,\n args: [{\n transform: booleanAttribute\n }]\n }],\n templateLabel: [{\n type: ContentChild,\n args: [MatTabLabel]\n }],\n _explicitContent: [{\n type: ContentChild,\n args: [MatTabContent, {\n read: TemplateRef,\n static: true\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})();\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 domRect = currentItem?.elementRef.nativeElement.getBoundingClientRect?.();\n // The ink bar won't animate unless we give it the `DOMRect` of the previous item.\n correspondingItem.activateInkBar(domRect);\n this._currentItem = correspondingItem;\n }\n }\n}\nclass InkBarItem {\n constructor() {\n this._elementRef = inject(ElementRef);\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(newValue) {\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 const inkBarElement = this._inkBarElement = documentNode.createElement('span');\n const inkBarContentElement = this._inkBarContentElement = documentNode.createElement('span');\n inkBarElement.className = 'mdc-tab-indicator';\n inkBarContentElement.className = 'mdc-tab-indicator__content mdc-tab-indicator__content--underline';\n 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 static #_ = this.ɵfac = function InkBarItem_Factory(t) {\n return new (t || InkBarItem)();\n };\n static #_2 = this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: InkBarItem,\n inputs: {\n fitInkBarToContent: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"fitInkBarToContent\", \"fitInkBarToContent\", booleanAttribute]\n },\n features: [i0.ɵɵInputTransformsFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(InkBarItem, [{\n type: Directive\n }], null, {\n fitInkBarToContent: [{\n type: Input,\n args: [{\n transform: booleanAttribute\n }]\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/**\n * Used in the `mat-tab-group` view to display tab labels.\n * @docs-private\n */\nclass MatTabLabelWrapper extends InkBarItem {\n constructor(elementRef) {\n super();\n this.elementRef = elementRef;\n /** Whether the tab is disabled. */\n this.disabled = false;\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 #_ = this.ɵfac = function MatTabLabelWrapper_Factory(t) {\n return new (t || MatTabLabelWrapper)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n static #_2 = 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: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"disabled\", \"disabled\", booleanAttribute]\n },\n standalone: true,\n features: [i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatTabLabelWrapper, [{\n type: Directive,\n args: [{\n selector: '[matTabLabelWrapper]',\n host: {\n '[class.mat-mdc-tab-disabled]': 'disabled',\n '[attr.aria-disabled]': '!!disabled'\n },\n standalone: true\n }]\n }], () => [{\n type: i0.ElementRef\n }], {\n disabled: [{\n type: Input,\n args: [{\n transform: booleanAttribute\n }]\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 /** The index of the active tab. */\n get selectedIndex() {\n return this._selectedIndex;\n }\n set selectedIndex(v) {\n const value = isNaN(v) ? 0 : v;\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 /**\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 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 #_ = this.ɵfac = function MatPaginatedTabHeader_Factory(t) {\n return new (t || MatPaginatedTabHeader)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.ViewportRuler), i0.ɵɵdirectiveInject(i2.Directionality, 8), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i3.Platform), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n };\n static #_2 = this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatPaginatedTabHeader,\n inputs: {\n disablePagination: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"disablePagination\", \"disablePagination\", booleanAttribute],\n selectedIndex: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"selectedIndex\", \"selectedIndex\", numberAttribute]\n },\n outputs: {\n selectFocusedIndex: \"selectFocusedIndex\",\n indexFocused: \"indexFocused\"\n },\n features: [i0.ɵɵInputTransformsFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatPaginatedTabHeader, [{\n type: Directive\n }], () => [{\n type: i0.ElementRef\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: i1.ViewportRuler\n }, {\n type: i2.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 disablePagination: [{\n type: Input,\n args: [{\n transform: booleanAttribute\n }]\n }],\n selectedIndex: [{\n type: Input,\n args: [{\n transform: numberAttribute\n }]\n }],\n selectFocusedIndex: [{\n type: Output\n }],\n indexFocused: [{\n type: Output\n }]\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 MatPaginatedTabHeader {\n constructor(elementRef, changeDetectorRef, viewportRuler, dir, ngZone, platform, animationMode) {\n super(elementRef, changeDetectorRef, viewportRuler, dir, ngZone, platform, animationMode);\n /** Whether the ripple effect is disabled or not. */\n this.disableRipple = false;\n }\n ngAfterContentInit() {\n this._inkBar = new MatInkBar(this._items);\n super.ngAfterContentInit();\n }\n _itemSelected(event) {\n event.preventDefault();\n }\n static #_ = this.ɵfac = function MatTabHeader_Factory(t) {\n return new (t || MatTabHeader)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.ViewportRuler), i0.ɵɵdirectiveInject(i2.Directionality, 8), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i3.Platform), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n };\n static #_2 = 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(_c1, 7);\n i0.ɵɵviewQuery(_c2, 7);\n i0.ɵɵviewQuery(_c3, 7);\n i0.ɵɵviewQuery(_c4, 5);\n i0.ɵɵviewQuery(_c5, 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 disableRipple: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"disableRipple\", \"disableRipple\", booleanAttribute]\n },\n standalone: true,\n features: [i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c0,\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: [MatRipple, CdkObserveContent],\n styles: [\".mat-mdc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.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;border-bottom-style:solid;border-bottom-width:var(--mat-tab-header-divider-height);border-bottom-color:var(--mat-tab-header-divider-color)}.mat-mdc-tab-group-inverted-header .mat-mdc-tab-label-container{border-bottom:none;border-top-style:solid;border-top-width:var(--mat-tab-header-divider-height);border-top-color:var(--mat-tab-header-divider-color)}.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 (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatTabHeader, [{\n type: Component,\n args: [{\n selector: 'mat-tab-header',\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 standalone: true,\n imports: [MatRipple, CdkObserveContent],\n template: \"\\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 .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;border-bottom-style:solid;border-bottom-width:var(--mat-tab-header-divider-height);border-bottom-color:var(--mat-tab-header-divider-color)}.mat-mdc-tab-group-inverted-header .mat-mdc-tab-label-container{border-bottom:none;border-top-style:solid;border-top-width:var(--mat-tab-header-divider-height);border-top-color:var(--mat-tab-header-divider-color)}.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 }], () => [{\n type: i0.ElementRef\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: i1.ViewportRuler\n }, {\n type: i2.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 _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 disableRipple: [{\n type: Input,\n args: [{\n transform: booleanAttribute\n }]\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/**\n * Animations used by the Material tabs.\n * @docs-private\n */\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 #_ = 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 static #_2 = this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatTabBodyPortal,\n selectors: [[\"\", \"matTabBodyHost\", \"\"]],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatTabBodyPortal, [{\n type: Directive,\n args: [{\n selector: '[matTabBodyHost]',\n standalone: true\n }]\n }], () => [{\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 }], null);\n})();\n/**\n * Wrapper for the contents of a tab.\n * @docs-private\n */\nclass MatTabBody {\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 #_ = this.ɵfac = function MatTabBody_Factory(t) {\n return new (t || MatTabBody)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i2.Directionality, 8), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n static #_2 = 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 inputs: {\n _content: [i0.ɵɵInputFlags.None, \"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 standalone: true,\n features: [i0.ɵɵStandaloneFeature],\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, _c7, ctx._position, i0.ɵɵpureFunction1(1, _c6, ctx.animationDuration)));\n }\n },\n dependencies: [MatTabBodyPortal, CdkScrollable],\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 (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 standalone: true,\n imports: [MatTabBodyPortal, CdkScrollable],\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 }], () => [{\n type: i0.ElementRef\n }, {\n type: i2.Directionality,\n decorators: [{\n type: Optional\n }]\n }, {\n type: i0.ChangeDetectorRef\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 _portalHost: [{\n type: ViewChild,\n args: [CdkPortalOutlet]\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/** Used to generate unique ID's for each tab component */\nlet nextId = 0;\n/** Boolean constant that determines whether the tab group supports the `backgroundColor` input */\nconst ENABLE_BACKGROUND_INPUT = true;\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 {\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(value) {\n this._fitInkBarToContent = value;\n this._changeDetectorRef.markForCheck();\n }\n /** The index of the active tab. */\n get selectedIndex() {\n return this._selectedIndex;\n }\n set selectedIndex(value) {\n this._indexToSelect = isNaN(value) ? null : value;\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 const stringValue = value + '';\n this._animationDuration = /^\\d+$/.test(stringValue) ? value + 'ms' : stringValue;\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 = isNaN(value) ? null : value;\n }\n /**\n * Background color of the tab group.\n * @deprecated The background color should be customized through Sass theming APIs.\n * @breaking-change 20.0.0 Remove this input\n */\n get backgroundColor() {\n return this._backgroundColor;\n }\n set backgroundColor(value) {\n if (!ENABLE_BACKGROUND_INPUT) {\n throw new Error(`mat-tab-group background color must be set through the Sass theming API`);\n }\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 this._elementRef = _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._fitInkBarToContent = false;\n /** Whether tabs should be stretched to fill the header. */\n this.stretchTabs = true;\n /** Whether the tab group should grow to the size of the active tab. */\n this.dynamicHeight = false;\n this._selectedIndex = null;\n /** Position of the tab header. */\n this.headerPosition = 'above';\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 this.disablePagination = false;\n /** Whether ripples in the tab group are disabled. */\n this.disableRipple = false;\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 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 /** Whether the tab group is rendered on the server. */\n this._isServer = !inject(Platform).isBrowser;\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 if (defaultConfig?.contentTabIndex != null) {\n this.contentTabIndex = defaultConfig.contentTabIndex;\n }\n this.preserveContent = !!defaultConfig?.preserveContent;\n this.fitInkBarToContent = defaultConfig && defaultConfig.fitInkBarToContent != null ? defaultConfig.fitInkBarToContent : false;\n this.stretchTabs = defaultConfig && defaultConfig.stretchTabs != null ? defaultConfig.stretchTabs : true;\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 #_ = 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 static #_2 = 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: [1, \"mat-mdc-tab-group\"],\n hostVars: 10,\n hostBindings: function MatTabGroup_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassMap(\"mat-\" + (ctx.color || \"primary\"));\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 fitInkBarToContent: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"fitInkBarToContent\", \"fitInkBarToContent\", booleanAttribute],\n stretchTabs: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"mat-stretch-tabs\", \"stretchTabs\", booleanAttribute],\n dynamicHeight: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"dynamicHeight\", \"dynamicHeight\", booleanAttribute],\n selectedIndex: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"selectedIndex\", \"selectedIndex\", numberAttribute],\n headerPosition: \"headerPosition\",\n animationDuration: \"animationDuration\",\n contentTabIndex: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"contentTabIndex\", \"contentTabIndex\", numberAttribute],\n disablePagination: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"disablePagination\", \"disablePagination\", booleanAttribute],\n disableRipple: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"disableRipple\", \"disableRipple\", booleanAttribute],\n preserveContent: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"preserveContent\", \"preserveContent\", booleanAttribute],\n backgroundColor: \"backgroundColor\"\n },\n outputs: {\n selectedIndexChange: \"selectedIndexChange\",\n focusChange: \"focusChange\",\n animationDone: \"animationDone\",\n selectedTabChange: \"selectedTabChange\"\n },\n exportAs: [\"matTabGroup\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_TAB_GROUP,\n useExisting: MatTabGroup\n }]), i0.ɵɵInputTransformsFeature, i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c0,\n decls: 9,\n vars: 6,\n consts: [[\"tabHeader\", \"\"], [\"tabBodyWrapper\", \"\"], [\"tabNode\", \"\"], [3, \"indexFocused\", \"selectFocusedIndex\", \"selectedIndex\", \"disableRipple\", \"disablePagination\"], [\"role\", \"tab\", \"matTabLabelWrapper\", \"\", \"cdkMonitorElementFocus\", \"\", 1, \"mdc-tab\", \"mat-mdc-tab\", \"mat-mdc-focus-indicator\"], [1, \"mat-mdc-tab-body-wrapper\"], [\"role\", \"tabpanel\"], [\"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, \"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.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"mat-tab-header\", 3, 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.ɵɵrepeaterCreate(2, MatTabGroup_For_3_Template, 8, 16, \"div\", 4, i0.ɵɵrepeaterTrackByIdentity);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(4, MatTabGroup_Conditional_4_Template, 1, 0);\n i0.ɵɵelementStart(5, \"div\", 5, 1);\n i0.ɵɵrepeaterCreate(7, MatTabGroup_For_8_Template, 1, 12, \"mat-tab-body\", 6, i0.ɵɵrepeaterTrackByIdentity);\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.ɵɵrepeater(ctx._tabs);\n i0.ɵɵadvance(2);\n i0.ɵɵconditional(4, ctx._isServer ? 4 : -1);\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"_mat-animation-noopable\", ctx._animationMode === \"NoopAnimations\");\n i0.ɵɵadvance(2);\n i0.ɵɵrepeater(ctx._tabs);\n }\n },\n dependencies: [MatTabHeader, MatTabLabelWrapper, CdkMonitorFocus, NgClass, MatRipple, CdkPortalOutlet, MatTabBody],\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 (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 providers: [{\n provide: MAT_TAB_GROUP,\n useExisting: MatTabGroup\n }],\n host: {\n 'class': 'mat-mdc-tab-group',\n '[class]': '\"mat-\" + (color || \"primary\")',\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 standalone: true,\n imports: [MatTabHeader, MatTabLabelWrapper, CdkMonitorFocus, NgClass, MatRipple, CdkPortalOutlet, MatTabBody],\n template: \"\\n\\n @for (tab of _tabs; track tab; let i = $index) {\\n
\\n \\n\\n \\n
\\n\\n \\n \\n \\n @if (tab.templateLabel) {\\n \\n } @else {{{tab.textLabel}}}\\n \\n \\n \\n }\\n
\\n\\n\\n@if (_isServer) {\\n \\n}\\n\\n\\n @for (tab of _tabs; track tab; let i = $index) {\\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 }], () => [{\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 _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 color: [{\n type: Input\n }],\n fitInkBarToContent: [{\n type: Input,\n args: [{\n transform: booleanAttribute\n }]\n }],\n stretchTabs: [{\n type: Input,\n args: [{\n alias: 'mat-stretch-tabs',\n transform: booleanAttribute\n }]\n }],\n dynamicHeight: [{\n type: Input,\n args: [{\n transform: booleanAttribute\n }]\n }],\n selectedIndex: [{\n type: Input,\n args: [{\n transform: numberAttribute\n }]\n }],\n headerPosition: [{\n type: Input\n }],\n animationDuration: [{\n type: Input\n }],\n contentTabIndex: [{\n type: Input,\n args: [{\n transform: numberAttribute\n }]\n }],\n disablePagination: [{\n type: Input,\n args: [{\n transform: booleanAttribute\n }]\n }],\n disableRipple: [{\n type: Input,\n args: [{\n transform: booleanAttribute\n }]\n }],\n preserveContent: [{\n type: Input,\n args: [{\n transform: booleanAttribute\n }]\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/** 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 * Navigation component matching the styles of the tab group header.\n * Provides anchored navigation with animated ink bar.\n */\nclass MatTabNav extends MatPaginatedTabHeader {\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(value) {\n this._fitInkBarToContent.next(value);\n this._changeDetectorRef.markForCheck();\n }\n get animationDuration() {\n return this._animationDuration;\n }\n set animationDuration(value) {\n const stringValue = value + '';\n this._animationDuration = /^\\d+$/.test(stringValue) ? value + 'ms' : stringValue;\n }\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 constructor(elementRef, dir, ngZone, changeDetectorRef, viewportRuler, platform, animationMode, defaultConfig) {\n super(elementRef, changeDetectorRef, viewportRuler, dir, ngZone, platform, animationMode);\n this._fitInkBarToContent = new BehaviorSubject(false);\n /** Whether tabs should be stretched to fill the header. */\n this.stretchTabs = true;\n /** Whether the ripple effect is disabled or not. */\n this.disableRipple = false;\n /** Theme color of the nav bar. */\n this.color = 'primary';\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 _itemSelected() {\n // noop\n }\n ngAfterContentInit() {\n this._inkBar = new MatInkBar(this._items);\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 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 /** 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 #_ = this.ɵfac = function MatTabNav_Factory(t) {\n return new (t || MatTabNav)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i2.Directionality, 8), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.ViewportRuler), i0.ɵɵdirectiveInject(i3.Platform), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8), i0.ɵɵdirectiveInject(MAT_TABS_CONFIG, 8));\n };\n static #_2 = 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(_c1, 7);\n i0.ɵɵviewQuery(_c2, 7);\n i0.ɵɵviewQuery(_c3, 7);\n i0.ɵɵviewQuery(_c4, 5);\n i0.ɵɵviewQuery(_c5, 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 fitInkBarToContent: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"fitInkBarToContent\", \"fitInkBarToContent\", booleanAttribute],\n stretchTabs: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"mat-stretch-tabs\", \"stretchTabs\", booleanAttribute],\n animationDuration: \"animationDuration\",\n backgroundColor: \"backgroundColor\",\n disableRipple: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"disableRipple\", \"disableRipple\", booleanAttribute],\n color: \"color\",\n tabPanel: \"tabPanel\"\n },\n exportAs: [\"matTabNavBar\", \"matTabNav\"],\n standalone: true,\n features: [i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n attrs: _c10,\n ngContentSelectors: _c0,\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: [MatRipple, 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 .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;border-bottom-style:solid;border-bottom-width:var(--mat-tab-header-divider-height);border-bottom-color:var(--mat-tab-header-divider-color)}.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 (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatTabNav, [{\n type: Component,\n args: [{\n selector: '[mat-tab-nav-bar]',\n exportAs: 'matTabNavBar, matTabNav',\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 standalone: true,\n imports: [MatRipple, CdkObserveContent],\n template: \"\\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 .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;border-bottom-style:solid;border-bottom-width:var(--mat-tab-header-divider-height);border-bottom-color:var(--mat-tab-header-divider-color)}.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 }], () => [{\n type: i0.ElementRef\n }, {\n type: i2.Directionality,\n decorators: [{\n type: Optional\n }]\n }, {\n type: i0.NgZone\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: i1.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 fitInkBarToContent: [{\n type: Input,\n args: [{\n transform: booleanAttribute\n }]\n }],\n stretchTabs: [{\n type: Input,\n args: [{\n alias: 'mat-stretch-tabs',\n transform: booleanAttribute\n }]\n }],\n animationDuration: [{\n type: Input\n }],\n _items: [{\n type: ContentChildren,\n args: [forwardRef(() => MatTabLink), {\n descendants: true\n }]\n }],\n backgroundColor: [{\n type: Input\n }],\n disableRipple: [{\n type: Input,\n args: [{\n transform: booleanAttribute\n }]\n }],\n color: [{\n type: Input\n }],\n tabPanel: [{\n type: Input\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 a `mat-tab-nav-bar`.\n */\nclass MatTabLink extends InkBarItem {\n /** Whether the link is active. */\n get active() {\n return this._isActive;\n }\n set active(value) {\n if (value !== this._isActive) {\n this._isActive = value;\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 this._destroyed = new Subject();\n /** Whether the tab link is active or not. */\n this._isActive = false;\n /** Whether the tab link is disabled. */\n this.disabled = false;\n /** Whether ripples are disabled on the tab link. */\n this.disableRipple = false;\n this.tabIndex = 0;\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 _tabNavBar._fitInkBarToContent.pipe(takeUntil(this._destroyed)).subscribe(fitInkBarToContent => {\n this.fitInkBarToContent = fitInkBarToContent;\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._destroyed.next();\n this._destroyed.complete();\n super.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 // Only prevent the default action on space since it can scroll the page.\n // Don't prevent enter since it can break link navigation.\n if (event.keyCode === SPACE) {\n event.preventDefault();\n }\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.disabled ? -1 : this.tabIndex;\n }\n }\n static #_ = 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 static #_2 = 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 active: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"active\", \"active\", booleanAttribute],\n disabled: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"disabled\", \"disabled\", booleanAttribute],\n disableRipple: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"disableRipple\", \"disableRipple\", booleanAttribute],\n tabIndex: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"tabIndex\", \"tabIndex\", value => value == null ? 0 : numberAttribute(value)],\n id: \"id\"\n },\n exportAs: [\"matTabLink\"],\n standalone: true,\n features: [i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n attrs: _c11,\n ngContentSelectors: _c0,\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: [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 (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatTabLink, [{\n type: Component,\n args: [{\n selector: '[mat-tab-link], [matTabLink]',\n exportAs: 'matTabLink',\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 standalone: true,\n imports: [MatRipple],\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 }], () => [{\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 active: [{\n type: Input,\n args: [{\n transform: booleanAttribute\n }]\n }],\n disabled: [{\n type: Input,\n args: [{\n transform: booleanAttribute\n }]\n }],\n disableRipple: [{\n type: Input,\n args: [{\n transform: booleanAttribute\n }]\n }],\n tabIndex: [{\n type: Input,\n args: [{\n transform: value => value == null ? 0 : numberAttribute(value)\n }]\n }],\n id: [{\n type: Input\n }]\n });\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 #_ = this.ɵfac = function MatTabNavPanel_Factory(t) {\n return new (t || MatTabNavPanel)();\n };\n static #_2 = 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 standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c0,\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 (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 standalone: true\n }]\n }], null, {\n id: [{\n type: Input\n }]\n });\n})();\nclass MatTabsModule {\n static #_ = this.ɵfac = function MatTabsModule_Factory(t) {\n return new (t || MatTabsModule)();\n };\n static #_2 = this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatTabsModule\n });\n static #_3 = this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [MatCommonModule, MatCommonModule]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatTabsModule, [{\n type: NgModule,\n args: [{\n imports: [MatCommonModule, MatTabContent, MatTabLabel, MatTab, MatTabGroup, MatTabNav, MatTabNavPanel, MatTabLink],\n exports: [MatCommonModule, MatTabContent, MatTabLabel, MatTab, MatTabGroup, MatTabNav, MatTabNavPanel, MatTabLink]\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, matTabsAnimations };","map":{"version":3,"names":["i0","InjectionToken","Directive","Inject","Optional","booleanAttribute","TemplateRef","Component","ChangeDetectionStrategy","ViewEncapsulation","Input","ContentChild","ViewChild","inject","ElementRef","EventEmitter","ANIMATION_MODULE_TYPE","numberAttribute","Output","ContentChildren","forwardRef","QueryList","Attribute","NgModule","MatRipple","MAT_RIPPLE_GLOBAL_OPTIONS","MatCommonModule","CdkPortal","TemplatePortal","CdkPortalOutlet","Subject","fromEvent","of","merge","EMPTY","Observable","timer","Subscription","BehaviorSubject","i1","CdkScrollable","i3","normalizePassiveListenerOptions","Platform","i2","i4","FocusKeyManager","CdkMonitorFocus","hasModifierKey","SPACE","ENTER","takeUntil","take","startWith","switchMap","skip","filter","distinctUntilChanged","CdkObserveContent","DOCUMENT","NgClass","trigger","state","style","transition","animate","_c0","MatTab_ng_template_0_Template","rf","ctx","ɵɵprojection","_c1","_c2","_c3","_c4","_c5","_c6","a0","animationDuration","_c7","a1","value","params","MatTabBody_ng_template_2_Template","_c8","_c9","MatTabGroup_For_3_Conditional_6_ng_template_0_Template","MatTabGroup_For_3_Conditional_6_Template","ɵɵtemplate","tab_r4","ɵɵnextContext","$implicit","ɵɵproperty","templateLabel","MatTabGroup_For_3_Conditional_7_Template","ɵɵtext","ɵɵtextInterpolate","textLabel","MatTabGroup_For_3_Template","_r2","ɵɵgetCurrentView","ɵɵelementStart","ɵɵlistener","MatTabGroup_For_3_Template_div_click_0_listener","ctx_r2","ɵɵrestoreView","i_r5","$index","ctx_r5","tabHeader_r7","ɵɵreference","ɵɵresetView","_handleClick","MatTabGroup_For_3_Template_div_cdkFocusChange_0_listener","$event","_tabFocusChanged","ɵɵelement","ɵɵelementEnd","tabNode_r8","ɵɵclassProp","selectedIndex","_getTabLabelId","labelClass","disabled","fitInkBarToContent","ɵɵattribute","_getTabIndex","_tabs","length","_getTabContentId","ariaLabel","ariaLabelledby","ɵɵadvance","disableRipple","ɵɵconditional","MatTabGroup_Conditional_4_Template","MatTabGroup_For_8_Template","_r9","MatTabGroup_For_8_Template_mat_tab_body__onCentered_0_listener","_removeTabBodyWrapperHeight","MatTabGroup_For_8_Template_mat_tab_body__onCentering_0_listener","_setTabBodyWrapperHeight","tab_r10","i_r11","bodyClass","content","position","origin","preserveContent","contentTabIndex","_c10","_c11","MAT_TAB_CONTENT","MatTabContent","constructor","template","_","ɵfac","MatTabContent_Factory","t","ɵɵdirectiveInject","_2","ɵdir","ɵɵdefineDirective","type","selectors","standalone","features","ɵɵProvidersFeature","provide","useExisting","ngDevMode","ɵsetClassMetadata","args","selector","providers","MAT_TAB_LABEL","MAT_TAB","MatTabLabel","templateRef","viewContainerRef","_closestTab","MatTabLabel_Factory","ViewContainerRef","ɵɵInheritDefinitionFeature","undefined","decorators","MAT_TAB_GROUP","MatTab","_templateLabel","_setTemplateLabelInput","_contentPortal","_viewContainerRef","_closestTabGroup","_explicitContent","_stateChanges","isActive","ngOnChanges","changes","hasOwnProperty","next","ngOnDestroy","complete","ngOnInit","_implicitContent","MatTab_Factory","ɵcmp","ɵɵdefineComponent","contentQueries","MatTab_ContentQueries","dirIndex","ɵɵcontentQuery","_t","ɵɵqueryRefresh","ɵɵloadQuery","first","viewQuery","MatTab_Query","ɵɵviewQuery","hostAttrs","inputs","ɵɵInputFlags","HasDecoratorInputTransform","None","exportAs","ɵɵInputTransformsFeature","ɵɵNgOnChangesFeature","ɵɵStandaloneFeature","ngContentSelectors","decls","vars","MatTab_Template","ɵɵprojectionDef","encapsulation","changeDetection","Default","host","transform","read","static","ACTIVE_CLASS","NO_TRANSITION_CLASS","MatInkBar","_items","hide","forEach","item","deactivateInkBar","alignToElement","element","correspondingItem","find","elementRef","nativeElement","currentItem","_currentItem","domRect","getBoundingClientRect","activateInkBar","InkBarItem","_elementRef","_fitToContent","newValue","_inkBarElement","_appendInkBarElement","previousIndicatorClientRect","_inkBarContentElement","classList","add","currentClientRect","widthDelta","width","xPosition","left","setProperty","remove","_createInkBarElement","documentNode","ownerDocument","document","inkBarElement","createElement","inkBarContentElement","className","appendChild","Error","parentElement","querySelector","InkBarItem_Factory","_MAT_INK_BAR_POSITIONER_FACTORY","method","offsetLeft","offsetWidth","_MAT_INK_BAR_POSITIONER","providedIn","factory","MatTabLabelWrapper","focus","getOffsetLeft","getOffsetWidth","MatTabLabelWrapper_Factory","hostVars","hostBindings","MatTabLabelWrapper_HostBindings","passiveEventListenerOptions","passive","HEADER_SCROLL_DELAY","HEADER_SCROLL_INTERVAL","MatPaginatedTabHeader","_selectedIndex","v","isNaN","_selectedIndexChanged","_keyManager","updateActiveItem","_changeDetectorRef","_viewportRuler","_dir","_ngZone","_platform","_animationMode","_scrollDistance","_destroyed","_showPaginationControls","_disableScrollAfter","_disableScrollBefore","_stopScrolling","disablePagination","selectFocusedIndex","indexFocused","runOutsideAngular","pipe","subscribe","_stopInterval","ngAfterViewInit","_previousPaginator","_handlePaginatorPress","_nextPaginator","ngAfterContentInit","dirChange","change","resize","realign","updatePagination","_alignInkBarToSelectedTab","withHorizontalOrientation","_getLayoutDirection","withHomeAndEnd","withWrap","skipPredicate","onStable","_itemsResized","run","Promise","resolve","then","Math","max","min","_getMaxScrollDistance","newFocusIndex","emit","_setTabFocus","ResizeObserver","tabItems","observer","resizeObserver","entries","observe","disconnect","some","e","contentRect","height","ngAfterContentChecked","_tabLabelCount","markForCheck","_scrollToLabel","_checkScrollingControls","_scrollDistanceChanged","_updateTabScrollPosition","destroy","_handleKeydown","event","keyCode","focusIndex","get","_itemSelected","onKeydown","_onContentChanges","textContent","_currentTextContent","_checkPaginationEnabled","activeItemIndex","_isValidIndex","setActiveItem","index","toArray","tabIndex","containerEl","_tabListContainer","dir","scrollLeft","scrollWidth","scrollDistance","translateX","_tabList","round","TRIDENT","EDGE","_scrollTo","_scrollHeader","direction","viewLength","scrollAmount","_handlePaginatorClick","labelIndex","selectedLabel","labelBeforePos","labelAfterPos","_tabListInner","beforeVisiblePos","afterVisiblePos","isEnabled","lengthOfTabList","selectedItem","selectedLabelWrapper","_inkBar","mouseEvent","button","maxScrollDistance","distance","MatPaginatedTabHeader_Factory","ChangeDetectorRef","ViewportRuler","Directionality","NgZone","outputs","MatTabHeader","changeDetectorRef","viewportRuler","ngZone","platform","animationMode","preventDefault","MatTabHeader_Factory","MatTabHeader_ContentQueries","MatTabHeader_Query","MatTabHeader_HostBindings","consts","MatTabHeader_Template","_r1","MatTabHeader_Template_button_click_0_listener","MatTabHeader_Template_button_mousedown_0_listener","MatTabHeader_Template_button_touchend_0_listener","MatTabHeader_Template_div_keydown_3_listener","MatTabHeader_Template_div_cdkObserveContent_5_listener","MatTabHeader_Template_button_mousedown_10_listener","MatTabHeader_Template_button_click_10_listener","MatTabHeader_Template_button_touchend_10_listener","dependencies","styles","imports","descendants","MAT_TABS_CONFIG","matTabsAnimations","translateTab","minHeight","visibility","MatTabBodyPortal","componentFactoryResolver","_host","_document","_centeringSub","_leavingSub","_beforeCentering","_isCenterPosition","_position","isCentering","hasAttached","attach","_content","_afterLeavingCenter","detach","unsubscribe","MatTabBodyPortal_Factory","ComponentFactoryResolver","MatTabBody","_positionIndex","_computePositionAnimationState","_dirChangeSubscription","_translateTabComplete","_onCentering","_onCentered","x","y","fromState","toState","_computePositionFromOrigin","_onTranslateTabStarted","clientHeight","MatTabBody_Factory","MatTabBody_Query","_portalHost","MatTabBody_Template","MatTabBody_Template_div_animation_translateTab_start_0_listener","MatTabBody_Template_div_animation_translateTab_done_0_listener","ɵɵpureFunction2","ɵɵpureFunction1","data","animation","animations","nextId","ENABLE_BACKGROUND_INPUT","MatTabGroup","_fitInkBarToContent","_indexToSelect","_animationDuration","stringValue","test","_contentTabIndex","backgroundColor","_backgroundColor","defaultConfig","_lastFocusedTabIndex","_tabBodyWrapperHeight","_tabsSubscription","_tabLabelSubscription","stretchTabs","dynamicHeight","headerPosition","selectedIndexChange","focusChange","animationDone","selectedTabChange","_isServer","isBrowser","_groupId","indexToSelect","_clampTabIndex","isFirstRun","_createChangeEvent","wrapper","_tabBodyWrapper","tab","_subscribeToAllTabChanges","_subscribeToTabLabels","tabs","selectedTab","i","_allTabs","reset","notifyOnChanges","realignInkBar","_tabHeader","focusTab","header","_focusChanged","MatTabChangeEvent","map","tabHeight","offsetHeight","tabHeader","targetIndex","focusOrigin","MatTabGroup_Factory","MatTabGroup_ContentQueries","MatTabGroup_Query","MatTabGroup_HostBindings","ɵɵclassMap","color","ɵɵstyleProp","MatTabGroup_Template","MatTabGroup_Template_mat_tab_header_indexFocused_0_listener","MatTabGroup_Template_mat_tab_header_selectFocusedIndex_0_listener","ɵɵrepeaterCreate","ɵɵrepeaterTrackByIdentity","ɵɵrepeater","alias","nextUniqueId","MatTabNav","updateActiveLink","tabPanel","items","active","_activeTabId","id","_getRole","getAttribute","MatTabNav_Factory","MatTabNav_ContentQueries","MatTabLink","MatTabNav_Query","MatTabNav_HostBindings","attrs","MatTabNav_Template","MatTabNav_Template_button_click_0_listener","MatTabNav_Template_button_mousedown_0_listener","MatTabNav_Template_button_touchend_0_listener","MatTabNav_Template_div_keydown_3_listener","MatTabNav_Template_div_cdkObserveContent_5_listener","MatTabNav_Template_button_mousedown_10_listener","MatTabNav_Template_button_click_10_listener","MatTabNav_Template_button_touchend_10_listener","_isActive","_tabNavBar","rippleDisabled","rippleConfig","globalRippleOptions","_focusMonitor","parseInt","enterDuration","exitDuration","monitor","stopMonitoring","_handleFocus","indexOf","click","_getAriaControls","_getAriaSelected","_getAriaCurrent","MatTabLink_Factory","ɵɵinjectAttribute","FocusMonitor","MatTabLink_HostBindings","MatTabLink_focus_HostBindingHandler","MatTabLink_keydown_HostBindingHandler","MatTabLink_Template","OnPush","MatTabNavPanel","MatTabNavPanel_Factory","MatTabNavPanel_HostBindings","MatTabNavPanel_Template","MatTabsModule","MatTabsModule_Factory","ɵmod","ɵɵdefineNgModule","_3","ɵinj","ɵɵdefineInjector","exports"],"sources":["E:/TekH/Visual Studio/WebUserManager/DigitalData.UserManager.NgWebUI/ClientApp/node_modules/@angular/material/fesm2022/tabs.mjs"],"sourcesContent":["import * as i0 from '@angular/core';\nimport { InjectionToken, Directive, Inject, Optional, booleanAttribute, TemplateRef, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, ContentChild, ViewChild, inject, ElementRef, EventEmitter, ANIMATION_MODULE_TYPE, numberAttribute, Output, ContentChildren, forwardRef, QueryList, Attribute, NgModule } from '@angular/core';\nimport { MatRipple, MAT_RIPPLE_GLOBAL_OPTIONS, MatCommonModule } from '@angular/material/core';\nimport { CdkPortal, TemplatePortal, CdkPortalOutlet } from '@angular/cdk/portal';\nimport { Subject, fromEvent, of, merge, EMPTY, Observable, timer, Subscription, BehaviorSubject } from 'rxjs';\nimport * as i1 from '@angular/cdk/scrolling';\nimport { CdkScrollable } from '@angular/cdk/scrolling';\nimport * as i3 from '@angular/cdk/platform';\nimport { normalizePassiveListenerOptions, Platform } from '@angular/cdk/platform';\nimport * as i2 from '@angular/cdk/bidi';\nimport * as i4 from '@angular/cdk/a11y';\nimport { FocusKeyManager, CdkMonitorFocus } from '@angular/cdk/a11y';\nimport { hasModifierKey, SPACE, ENTER } from '@angular/cdk/keycodes';\nimport { takeUntil, take, startWith, switchMap, skip, filter, distinctUntilChanged } from 'rxjs/operators';\nimport { CdkObserveContent } from '@angular/cdk/observers';\nimport { DOCUMENT, NgClass } from '@angular/common';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\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 { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: MatTabContent, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.2.0\", type: MatTabContent, isStandalone: true, selector: \"[matTabContent]\", providers: [{ provide: MAT_TAB_CONTENT, useExisting: MatTabContent }], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: MatTabContent, decorators: [{\n type: Directive,\n args: [{\n selector: '[matTabContent]',\n providers: [{ provide: MAT_TAB_CONTENT, useExisting: MatTabContent }],\n standalone: true,\n }]\n }], ctorParameters: () => [{ type: i0.TemplateRef }] });\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 { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: MatTabLabel, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: MAT_TAB, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.2.0\", type: MatTabLabel, isStandalone: true, selector: \"[mat-tab-label], [matTabLabel]\", providers: [{ provide: MAT_TAB_LABEL, useExisting: MatTabLabel }], usesInheritance: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: MatTabLabel, decorators: [{\n type: Directive,\n args: [{\n selector: '[mat-tab-label], [matTabLabel]',\n providers: [{ provide: MAT_TAB_LABEL, useExisting: MatTabLabel }],\n standalone: true,\n }]\n }], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: undefined, decorators: [{\n type: Inject,\n args: [MAT_TAB]\n }, {\n type: Optional\n }] }] });\n\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');\nclass MatTab {\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 /** @docs-private */\n get content() {\n return this._contentPortal;\n }\n constructor(_viewContainerRef, _closestTabGroup) {\n this._viewContainerRef = _viewContainerRef;\n this._closestTabGroup = _closestTabGroup;\n /** whether the tab is disabled. */\n this.disabled = false;\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 /** 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 { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: MatTab, deps: [{ token: i0.ViewContainerRef }, { token: MAT_TAB_GROUP, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"16.1.0\", version: \"17.2.0\", type: MatTab, isStandalone: true, selector: \"mat-tab\", inputs: { disabled: [\"disabled\", \"disabled\", booleanAttribute], textLabel: [\"label\", \"textLabel\"], ariaLabel: [\"aria-label\", \"ariaLabel\"], ariaLabelledby: [\"aria-labelledby\", \"ariaLabelledby\"], labelClass: \"labelClass\", bodyClass: \"bodyClass\" }, host: { attributes: { \"hidden\": \"\" } }, providers: [{ provide: MAT_TAB, useExisting: MatTab }], queries: [{ propertyName: \"templateLabel\", first: true, predicate: MatTabLabel, descendants: true }, { propertyName: \"_explicitContent\", first: true, predicate: MatTabContent, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: \"_implicitContent\", first: true, predicate: TemplateRef, descendants: true, static: true }], exportAs: [\"matTab\"], usesOnChanges: true, ngImport: i0, template: \"\\n\\n\", changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: MatTab, decorators: [{\n type: Component,\n args: [{ selector: 'mat-tab', changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, exportAs: 'matTab', providers: [{ provide: MAT_TAB, useExisting: MatTab }], standalone: true, host: {\n // This element will be rendered on the server in order to support hydration.\n // Hide it so it doesn't cause a layout shift when it's removed on the client.\n 'hidden': '',\n }, template: \"\\n\\n\" }]\n }], ctorParameters: () => [{ type: i0.ViewContainerRef }, { type: undefined, decorators: [{\n type: Inject,\n args: [MAT_TAB_GROUP]\n }, {\n type: Optional\n }] }], propDecorators: { disabled: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], templateLabel: [{\n type: ContentChild,\n args: [MatTabLabel]\n }], _explicitContent: [{\n type: ContentChild,\n args: [MatTabContent, { read: TemplateRef, static: true }]\n }], _implicitContent: [{\n type: ViewChild,\n args: [TemplateRef, { static: true }]\n }], textLabel: [{\n type: Input,\n args: ['label']\n }], ariaLabel: [{\n type: Input,\n args: ['aria-label']\n }], ariaLabelledby: [{\n type: Input,\n args: ['aria-labelledby']\n }], labelClass: [{\n type: Input\n }], bodyClass: [{\n type: Input\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 domRect = currentItem?.elementRef.nativeElement.getBoundingClientRect?.();\n // The ink bar won't animate unless we give it the `DOMRect` of the previous item.\n correspondingItem.activateInkBar(domRect);\n this._currentItem = correspondingItem;\n }\n }\n}\nclass InkBarItem {\n constructor() {\n this._elementRef = inject(ElementRef);\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(newValue) {\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 ||\n !element.getBoundingClientRect ||\n !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 const inkBarElement = (this._inkBarElement = documentNode.createElement('span'));\n const inkBarContentElement = (this._inkBarContentElement = documentNode.createElement('span'));\n inkBarElement.className = 'mdc-tab-indicator';\n inkBarContentElement.className =\n 'mdc-tab-indicator__content mdc-tab-indicator__content--underline';\n 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\n ? this._elementRef.nativeElement.querySelector('.mdc-tab__content')\n : 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 static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: InkBarItem, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"16.1.0\", version: \"17.2.0\", type: InkBarItem, inputs: { fitInkBarToContent: [\"fitInkBarToContent\", \"fitInkBarToContent\", booleanAttribute] }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: InkBarItem, decorators: [{\n type: Directive\n }], propDecorators: { fitInkBarToContent: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\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/**\n * Used in the `mat-tab-group` view to display tab labels.\n * @docs-private\n */\nclass MatTabLabelWrapper extends InkBarItem {\n constructor(elementRef) {\n super();\n this.elementRef = elementRef;\n /** Whether the tab is disabled. */\n this.disabled = false;\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 { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: MatTabLabelWrapper, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"16.1.0\", version: \"17.2.0\", type: MatTabLabelWrapper, isStandalone: true, selector: \"[matTabLabelWrapper]\", inputs: { disabled: [\"disabled\", \"disabled\", booleanAttribute] }, host: { properties: { \"class.mat-mdc-tab-disabled\": \"disabled\", \"attr.aria-disabled\": \"!!disabled\" } }, usesInheritance: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: MatTabLabelWrapper, decorators: [{\n type: Directive,\n args: [{\n selector: '[matTabLabelWrapper]',\n host: {\n '[class.mat-mdc-tab-disabled]': 'disabled',\n '[attr.aria-disabled]': '!!disabled',\n },\n standalone: true,\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { disabled: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\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 /** The index of the active tab. */\n get selectedIndex() {\n return this._selectedIndex;\n }\n set selectedIndex(v) {\n const value = isNaN(v) ? 0 : v;\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 /**\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 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')\n .pipe(takeUntil(this._destroyed))\n .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)\n .pipe(takeUntil(this._destroyed))\n .subscribe(() => {\n this._handlePaginatorPress('before');\n });\n fromEvent(this._nextPaginator.nativeElement, 'touchstart', passiveEventListenerOptions)\n .pipe(takeUntil(this._destroyed))\n .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)\n .withHorizontalOrientation(this._getLayoutDirection())\n .withHomeAndEnd()\n .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())\n .pipe(takeUntil(this._destroyed))\n .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 }\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 { offsetLeft, offsetWidth } = selectedLabel.elementRef.nativeElement;\n let labelBeforePos, labelAfterPos;\n if (this._getLayoutDirection() == 'ltr') {\n labelBeforePos = offsetLeft;\n labelAfterPos = labelBeforePos + offsetWidth;\n }\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 }\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 }\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 }\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 }\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)))\n .subscribe(() => {\n const { maxScrollDistance, distance } = 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 { maxScrollDistance: 0, distance: 0 };\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 { maxScrollDistance, distance: this._scrollDistance };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: MatPaginatedTabHeader, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.ViewportRuler }, { token: i2.Directionality, optional: true }, { token: i0.NgZone }, { token: i3.Platform }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"16.1.0\", version: \"17.2.0\", type: MatPaginatedTabHeader, inputs: { disablePagination: [\"disablePagination\", \"disablePagination\", booleanAttribute], selectedIndex: [\"selectedIndex\", \"selectedIndex\", numberAttribute] }, outputs: { selectFocusedIndex: \"selectFocusedIndex\", indexFocused: \"indexFocused\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: MatPaginatedTabHeader, decorators: [{\n type: Directive\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.ViewportRuler }, { type: i2.Directionality, decorators: [{\n type: Optional\n }] }, { type: i0.NgZone }, { type: i3.Platform }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }] }], propDecorators: { disablePagination: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], selectedIndex: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], selectFocusedIndex: [{\n type: Output\n }], indexFocused: [{\n type: Output\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 MatPaginatedTabHeader {\n constructor(elementRef, changeDetectorRef, viewportRuler, dir, ngZone, platform, animationMode) {\n super(elementRef, changeDetectorRef, viewportRuler, dir, ngZone, platform, animationMode);\n /** Whether the ripple effect is disabled or not. */\n this.disableRipple = false;\n }\n ngAfterContentInit() {\n this._inkBar = new MatInkBar(this._items);\n super.ngAfterContentInit();\n }\n _itemSelected(event) {\n event.preventDefault();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: MatTabHeader, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.ViewportRuler }, { token: i2.Directionality, optional: true }, { token: i0.NgZone }, { token: i3.Platform }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"16.1.0\", version: \"17.2.0\", type: MatTabHeader, isStandalone: true, selector: \"mat-tab-header\", inputs: { disableRipple: [\"disableRipple\", \"disableRipple\", booleanAttribute] }, host: { properties: { \"class.mat-mdc-tab-header-pagination-controls-enabled\": \"_showPaginationControls\", \"class.mat-mdc-tab-header-rtl\": \"_getLayoutDirection() == 'rtl'\" }, classAttribute: \"mat-mdc-tab-header\" }, queries: [{ propertyName: \"_items\", predicate: MatTabLabelWrapper }], viewQueries: [{ propertyName: \"_tabListContainer\", first: true, predicate: [\"tabListContainer\"], descendants: true, static: true }, { propertyName: \"_tabList\", first: true, predicate: [\"tabList\"], descendants: true, static: true }, { propertyName: \"_tabListInner\", first: true, predicate: [\"tabListInner\"], descendants: true, static: true }, { propertyName: \"_nextPaginator\", first: true, predicate: [\"nextPaginator\"], descendants: true }, { propertyName: \"_previousPaginator\", first: true, predicate: [\"previousPaginator\"], descendants: true }], usesInheritance: true, ngImport: i0, template: \"\\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 .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;border-bottom-style:solid;border-bottom-width:var(--mat-tab-header-divider-height);border-bottom-color:var(--mat-tab-header-divider-color)}.mat-mdc-tab-group-inverted-header .mat-mdc-tab-label-container{border-bottom:none;border-top-style:solid;border-top-width:var(--mat-tab-header-divider-height);border-top-color:var(--mat-tab-header-divider-color)}.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}\"], dependencies: [{ kind: \"directive\", type: MatRipple, selector: \"[mat-ripple], [matRipple]\", inputs: [\"matRippleColor\", \"matRippleUnbounded\", \"matRippleCentered\", \"matRippleRadius\", \"matRippleAnimation\", \"matRippleDisabled\", \"matRippleTrigger\"], exportAs: [\"matRipple\"] }, { kind: \"directive\", type: CdkObserveContent, selector: \"[cdkObserveContent]\", inputs: [\"cdkObserveContentDisabled\", \"debounce\"], outputs: [\"cdkObserveContent\"], exportAs: [\"cdkObserveContent\"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: MatTabHeader, decorators: [{\n type: Component,\n args: [{ selector: 'mat-tab-header', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, 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 }, standalone: true, imports: [MatRipple, CdkObserveContent], template: \"\\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 .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;border-bottom-style:solid;border-bottom-width:var(--mat-tab-header-divider-height);border-bottom-color:var(--mat-tab-header-divider-color)}.mat-mdc-tab-group-inverted-header .mat-mdc-tab-label-container{border-bottom:none;border-top-style:solid;border-top-width:var(--mat-tab-header-divider-height);border-top-color:var(--mat-tab-header-divider-color)}.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 }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.ViewportRuler }, { type: i2.Directionality, decorators: [{\n type: Optional\n }] }, { type: i0.NgZone }, { type: i3.Platform }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }] }], propDecorators: { _items: [{\n type: ContentChildren,\n args: [MatTabLabelWrapper, { descendants: false }]\n }], _tabListContainer: [{\n type: ViewChild,\n args: ['tabListContainer', { static: true }]\n }], _tabList: [{\n type: ViewChild,\n args: ['tabList', { static: true }]\n }], _tabListInner: [{\n type: ViewChild,\n args: ['tabListInner', { static: true }]\n }], _nextPaginator: [{\n type: ViewChild,\n args: ['nextPaginator']\n }], _previousPaginator: [{\n type: ViewChild,\n args: ['previousPaginator']\n }], disableRipple: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\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/**\n * Animations used by the Material tabs.\n * @docs-private\n */\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({ transform: 'none' })),\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 })),\n state('right', style({\n transform: 'translate3d(100%, 0, 0)',\n minHeight: '1px',\n visibility: 'hidden',\n })),\n transition('* => left, * => right, left => center, right => center', animate('{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)')),\n transition('void => left-origin-center', [\n style({ transform: 'translate3d(-100%, 0, 0)', visibility: 'hidden' }),\n animate('{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)'),\n ]),\n transition('void => right-origin-center', [\n style({ transform: 'translate3d(100%, 0, 0)', visibility: 'hidden' }),\n animate('{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)'),\n ]),\n ]),\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\n .pipe(startWith(this._host._isCenterPosition(this._host._position)))\n .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 { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: MatTabBodyPortal, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.ViewContainerRef }, { token: forwardRef(() => MatTabBody) }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.2.0\", type: MatTabBodyPortal, isStandalone: true, selector: \"[matTabBodyHost]\", usesInheritance: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: MatTabBodyPortal, decorators: [{\n type: Directive,\n args: [{\n selector: '[matTabBodyHost]',\n standalone: true,\n }]\n }], ctorParameters: () => [{ type: i0.ComponentFactoryResolver }, { type: i0.ViewContainerRef }, { type: MatTabBody, decorators: [{\n type: Inject,\n args: [forwardRef(() => MatTabBody)]\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }] });\n/**\n * Wrapper for the contents of a tab.\n * @docs-private\n */\nclass MatTabBody {\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\n .pipe(distinctUntilChanged((x, y) => {\n return x.fromState === y.fromState && x.toState === y.toState;\n }))\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 }\n else if (this._positionIndex > 0) {\n this._position = dir == 'ltr' ? 'right' : 'left';\n }\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 { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: MatTabBody, deps: [{ token: i0.ElementRef }, { token: i2.Directionality, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.2.0\", type: MatTabBody, isStandalone: true, selector: \"mat-tab-body\", inputs: { _content: [\"content\", \"_content\"], origin: \"origin\", animationDuration: \"animationDuration\", preserveContent: \"preserveContent\", position: \"position\" }, outputs: { _onCentering: \"_onCentering\", _beforeCentering: \"_beforeCentering\", _afterLeavingCenter: \"_afterLeavingCenter\", _onCentered: \"_onCentered\" }, host: { classAttribute: \"mat-mdc-tab-body\" }, viewQueries: [{ propertyName: \"_portalHost\", first: true, predicate: CdkPortalOutlet, descendants: true }], ngImport: i0, template: \"
\\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}\"], dependencies: [{ kind: \"directive\", type: MatTabBodyPortal, selector: \"[matTabBodyHost]\" }, { kind: \"directive\", type: CdkScrollable, selector: \"[cdk-scrollable], [cdkScrollable]\" }], animations: [matTabsAnimations.translateTab], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: MatTabBody, decorators: [{\n type: Component,\n args: [{ selector: 'mat-tab-body', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, animations: [matTabsAnimations.translateTab], host: {\n 'class': 'mat-mdc-tab-body',\n }, standalone: true, imports: [MatTabBodyPortal, CdkScrollable], template: \"
\\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 }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i2.Directionality, decorators: [{\n type: Optional\n }] }, { type: i0.ChangeDetectorRef }], propDecorators: { _onCentering: [{\n type: Output\n }], _beforeCentering: [{\n type: Output\n }], _afterLeavingCenter: [{\n type: Output\n }], _onCentered: [{\n type: Output\n }], _portalHost: [{\n type: ViewChild,\n args: [CdkPortalOutlet]\n }], _content: [{\n type: Input,\n args: ['content']\n }], origin: [{\n type: Input\n }], animationDuration: [{\n type: Input\n }], preserveContent: [{\n type: Input\n }], position: [{\n type: Input\n }] } });\n\n/** Used to generate unique ID's for each tab component */\nlet nextId = 0;\n/** Boolean constant that determines whether the tab group supports the `backgroundColor` input */\nconst ENABLE_BACKGROUND_INPUT = true;\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 {\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(value) {\n this._fitInkBarToContent = value;\n this._changeDetectorRef.markForCheck();\n }\n /** The index of the active tab. */\n get selectedIndex() {\n return this._selectedIndex;\n }\n set selectedIndex(value) {\n this._indexToSelect = isNaN(value) ? null : value;\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 const stringValue = value + '';\n this._animationDuration = /^\\d+$/.test(stringValue) ? value + 'ms' : stringValue;\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 = isNaN(value) ? null : value;\n }\n /**\n * Background color of the tab group.\n * @deprecated The background color should be customized through Sass theming APIs.\n * @breaking-change 20.0.0 Remove this input\n */\n get backgroundColor() {\n return this._backgroundColor;\n }\n set backgroundColor(value) {\n if (!ENABLE_BACKGROUND_INPUT) {\n throw new Error(`mat-tab-group background color must be set through the Sass theming API`);\n }\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 this._elementRef = _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._fitInkBarToContent = false;\n /** Whether tabs should be stretched to fill the header. */\n this.stretchTabs = true;\n /** Whether the tab group should grow to the size of the active tab. */\n this.dynamicHeight = false;\n this._selectedIndex = null;\n /** Position of the tab header. */\n this.headerPosition = 'above';\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 this.disablePagination = false;\n /** Whether ripples in the tab group are disabled. */\n this.disableRipple = false;\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 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 /** Whether the tab group is rendered on the server. */\n this._isServer = !inject(Platform).isBrowser;\n this._groupId = nextId++;\n this.animationDuration =\n defaultConfig && defaultConfig.animationDuration ? defaultConfig.animationDuration : '500ms';\n this.disablePagination =\n defaultConfig && defaultConfig.disablePagination != null\n ? defaultConfig.disablePagination\n : false;\n this.dynamicHeight =\n defaultConfig && defaultConfig.dynamicHeight != null ? defaultConfig.dynamicHeight : false;\n if (defaultConfig?.contentTabIndex != null) {\n this.contentTabIndex = defaultConfig.contentTabIndex;\n }\n this.preserveContent = !!defaultConfig?.preserveContent;\n this.fitInkBarToContent =\n defaultConfig && defaultConfig.fitInkBarToContent != null\n ? defaultConfig.fitInkBarToContent\n : false;\n this.stretchTabs =\n defaultConfig && defaultConfig.stretchTabs != null ? defaultConfig.stretchTabs : true;\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 { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: MatTabGroup, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: MAT_TABS_CONFIG, optional: true }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"17.2.0\", type: MatTabGroup, isStandalone: true, selector: \"mat-tab-group\", inputs: { color: \"color\", fitInkBarToContent: [\"fitInkBarToContent\", \"fitInkBarToContent\", booleanAttribute], stretchTabs: [\"mat-stretch-tabs\", \"stretchTabs\", booleanAttribute], dynamicHeight: [\"dynamicHeight\", \"dynamicHeight\", booleanAttribute], selectedIndex: [\"selectedIndex\", \"selectedIndex\", numberAttribute], headerPosition: \"headerPosition\", animationDuration: \"animationDuration\", contentTabIndex: [\"contentTabIndex\", \"contentTabIndex\", numberAttribute], disablePagination: [\"disablePagination\", \"disablePagination\", booleanAttribute], disableRipple: [\"disableRipple\", \"disableRipple\", booleanAttribute], preserveContent: [\"preserveContent\", \"preserveContent\", booleanAttribute], backgroundColor: \"backgroundColor\" }, outputs: { selectedIndexChange: \"selectedIndexChange\", focusChange: \"focusChange\", animationDone: \"animationDone\", selectedTabChange: \"selectedTabChange\" }, host: { properties: { \"class\": \"\\\"mat-\\\" + (color || \\\"primary\\\")\", \"class.mat-mdc-tab-group-dynamic-height\": \"dynamicHeight\", \"class.mat-mdc-tab-group-inverted-header\": \"headerPosition === \\\"below\\\"\", \"class.mat-mdc-tab-group-stretch-tabs\": \"stretchTabs\", \"style.--mat-tab-animation-duration\": \"animationDuration\" }, classAttribute: \"mat-mdc-tab-group\" }, providers: [\n {\n provide: MAT_TAB_GROUP,\n useExisting: MatTabGroup,\n },\n ], queries: [{ propertyName: \"_allTabs\", predicate: MatTab, descendants: true }], viewQueries: [{ propertyName: \"_tabBodyWrapper\", first: true, predicate: [\"tabBodyWrapper\"], descendants: true }, { propertyName: \"_tabHeader\", first: true, predicate: [\"tabHeader\"], descendants: true }], exportAs: [\"matTabGroup\"], ngImport: i0, template: \"\\n\\n @for (tab of _tabs; track tab; let i = $index) {\\n
\\n \\n\\n \\n
\\n\\n \\n \\n \\n @if (tab.templateLabel) {\\n \\n } @else {{{tab.textLabel}}}\\n \\n \\n \\n }\\n
\\n\\n\\n@if (_isServer) {\\n \\n}\\n\\n\\n @for (tab of _tabs; track tab; let i = $index) {\\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}\"], dependencies: [{ kind: \"component\", type: MatTabHeader, selector: \"mat-tab-header\", inputs: [\"disableRipple\"] }, { kind: \"directive\", type: MatTabLabelWrapper, selector: \"[matTabLabelWrapper]\", inputs: [\"disabled\"] }, { kind: \"directive\", type: CdkMonitorFocus, selector: \"[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]\", outputs: [\"cdkFocusChange\"], exportAs: [\"cdkMonitorFocus\"] }, { kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: MatRipple, selector: \"[mat-ripple], [matRipple]\", inputs: [\"matRippleColor\", \"matRippleUnbounded\", \"matRippleCentered\", \"matRippleRadius\", \"matRippleAnimation\", \"matRippleDisabled\", \"matRippleTrigger\"], exportAs: [\"matRipple\"] }, { kind: \"directive\", type: CdkPortalOutlet, selector: \"[cdkPortalOutlet]\", inputs: [\"cdkPortalOutlet\"], outputs: [\"attached\"], exportAs: [\"cdkPortalOutlet\"] }, { kind: \"component\", type: MatTabBody, selector: \"mat-tab-body\", inputs: [\"content\", \"origin\", \"animationDuration\", \"preserveContent\", \"position\"], outputs: [\"_onCentering\", \"_beforeCentering\", \"_afterLeavingCenter\", \"_onCentered\"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: MatTabGroup, decorators: [{\n type: Component,\n args: [{ selector: 'mat-tab-group', exportAs: 'matTabGroup', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, providers: [\n {\n provide: MAT_TAB_GROUP,\n useExisting: MatTabGroup,\n },\n ], host: {\n 'class': 'mat-mdc-tab-group',\n '[class]': '\"mat-\" + (color || \"primary\")',\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 }, standalone: true, imports: [\n MatTabHeader,\n MatTabLabelWrapper,\n CdkMonitorFocus,\n NgClass,\n MatRipple,\n CdkPortalOutlet,\n MatTabBody,\n ], template: \"\\n\\n @for (tab of _tabs; track tab; let i = $index) {\\n
\\n \\n\\n \\n
\\n\\n \\n \\n \\n @if (tab.templateLabel) {\\n \\n } @else {{{tab.textLabel}}}\\n \\n \\n \\n }\\n
\\n\\n\\n@if (_isServer) {\\n \\n}\\n\\n\\n @for (tab of _tabs; track tab; let i = $index) {\\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 }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{\n type: Inject,\n args: [MAT_TABS_CONFIG]\n }, {\n type: Optional\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }] }], propDecorators: { _allTabs: [{\n type: ContentChildren,\n args: [MatTab, { descendants: true }]\n }], _tabBodyWrapper: [{\n type: ViewChild,\n args: ['tabBodyWrapper']\n }], _tabHeader: [{\n type: ViewChild,\n args: ['tabHeader']\n }], color: [{\n type: Input\n }], fitInkBarToContent: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], stretchTabs: [{\n type: Input,\n args: [{ alias: 'mat-stretch-tabs', transform: booleanAttribute }]\n }], dynamicHeight: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], selectedIndex: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], headerPosition: [{\n type: Input\n }], animationDuration: [{\n type: Input\n }], contentTabIndex: [{\n type: Input,\n args: [{ transform: numberAttribute }]\n }], disablePagination: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], disableRipple: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], preserveContent: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], backgroundColor: [{\n type: Input\n }], selectedIndexChange: [{\n type: Output\n }], focusChange: [{\n type: Output\n }], animationDone: [{\n type: Output\n }], selectedTabChange: [{\n type: Output\n }] } });\n/** A simple change event emitted on focus or selection changes. */\nclass MatTabChangeEvent {\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 */\nclass MatTabNav extends MatPaginatedTabHeader {\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(value) {\n this._fitInkBarToContent.next(value);\n this._changeDetectorRef.markForCheck();\n }\n get animationDuration() {\n return this._animationDuration;\n }\n set animationDuration(value) {\n const stringValue = value + '';\n this._animationDuration = /^\\d+$/.test(stringValue) ? value + 'ms' : stringValue;\n }\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 constructor(elementRef, dir, ngZone, changeDetectorRef, viewportRuler, platform, animationMode, defaultConfig) {\n super(elementRef, changeDetectorRef, viewportRuler, dir, ngZone, platform, animationMode);\n this._fitInkBarToContent = new BehaviorSubject(false);\n /** Whether tabs should be stretched to fill the header. */\n this.stretchTabs = true;\n /** Whether the ripple effect is disabled or not. */\n this.disableRipple = false;\n /** Theme color of the nav bar. */\n this.color = 'primary';\n this.disablePagination =\n defaultConfig && defaultConfig.disablePagination != null\n ? defaultConfig.disablePagination\n : false;\n this.fitInkBarToContent =\n defaultConfig && defaultConfig.fitInkBarToContent != null\n ? defaultConfig.fitInkBarToContent\n : false;\n this.stretchTabs =\n defaultConfig && defaultConfig.stretchTabs != null ? defaultConfig.stretchTabs : true;\n }\n _itemSelected() {\n // noop\n }\n ngAfterContentInit() {\n this._inkBar = new MatInkBar(this._items);\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 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 /** 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 { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: MatTabNav, deps: [{ token: i0.ElementRef }, { token: i2.Directionality, optional: true }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i1.ViewportRuler }, { token: i3.Platform }, { token: ANIMATION_MODULE_TYPE, optional: true }, { token: MAT_TABS_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"16.1.0\", version: \"17.2.0\", type: MatTabNav, isStandalone: true, selector: \"[mat-tab-nav-bar]\", inputs: { fitInkBarToContent: [\"fitInkBarToContent\", \"fitInkBarToContent\", booleanAttribute], stretchTabs: [\"mat-stretch-tabs\", \"stretchTabs\", booleanAttribute], animationDuration: \"animationDuration\", backgroundColor: \"backgroundColor\", disableRipple: [\"disableRipple\", \"disableRipple\", booleanAttribute], color: \"color\", tabPanel: \"tabPanel\" }, host: { properties: { \"attr.role\": \"_getRole()\", \"class.mat-mdc-tab-header-pagination-controls-enabled\": \"_showPaginationControls\", \"class.mat-mdc-tab-header-rtl\": \"_getLayoutDirection() == 'rtl'\", \"class.mat-mdc-tab-nav-bar-stretch-tabs\": \"stretchTabs\", \"class.mat-primary\": \"color !== \\\"warn\\\" && color !== \\\"accent\\\"\", \"class.mat-accent\": \"color === \\\"accent\\\"\", \"class.mat-warn\": \"color === \\\"warn\\\"\", \"class._mat-animation-noopable\": \"_animationMode === \\\"NoopAnimations\\\"\", \"style.--mat-tab-animation-duration\": \"animationDuration\" }, classAttribute: \"mat-mdc-tab-nav-bar mat-mdc-tab-header\" }, queries: [{ propertyName: \"_items\", predicate: i0.forwardRef(() => MatTabLink), descendants: true }], viewQueries: [{ propertyName: \"_tabListContainer\", first: true, predicate: [\"tabListContainer\"], descendants: true, static: true }, { propertyName: \"_tabList\", first: true, predicate: [\"tabList\"], descendants: true, static: true }, { propertyName: \"_tabListInner\", first: true, predicate: [\"tabListInner\"], descendants: true, static: true }, { propertyName: \"_nextPaginator\", first: true, predicate: [\"nextPaginator\"], descendants: true }, { propertyName: \"_previousPaginator\", first: true, predicate: [\"previousPaginator\"], descendants: true }], exportAs: [\"matTabNavBar\", \"matTabNav\"], usesInheritance: true, ngImport: i0, template: \"\\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 .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;border-bottom-style:solid;border-bottom-width:var(--mat-tab-header-divider-height);border-bottom-color:var(--mat-tab-header-divider-color)}.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)}\"], dependencies: [{ kind: \"directive\", type: MatRipple, selector: \"[mat-ripple], [matRipple]\", inputs: [\"matRippleColor\", \"matRippleUnbounded\", \"matRippleCentered\", \"matRippleRadius\", \"matRippleAnimation\", \"matRippleDisabled\", \"matRippleTrigger\"], exportAs: [\"matRipple\"] }, { kind: \"directive\", type: CdkObserveContent, selector: \"[cdkObserveContent]\", inputs: [\"cdkObserveContentDisabled\", \"debounce\"], outputs: [\"cdkObserveContent\"], exportAs: [\"cdkObserveContent\"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: MatTabNav, decorators: [{\n type: Component,\n args: [{ selector: '[mat-tab-nav-bar]', exportAs: 'matTabNavBar, matTabNav', 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 }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, standalone: true, imports: [MatRipple, CdkObserveContent], template: \"\\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 .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;border-bottom-style:solid;border-bottom-width:var(--mat-tab-header-divider-height);border-bottom-color:var(--mat-tab-header-divider-color)}.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 }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i2.Directionality, decorators: [{\n type: Optional\n }] }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i1.ViewportRuler }, { type: i3.Platform }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_TABS_CONFIG]\n }] }], propDecorators: { fitInkBarToContent: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], stretchTabs: [{\n type: Input,\n args: [{ alias: 'mat-stretch-tabs', transform: booleanAttribute }]\n }], animationDuration: [{\n type: Input\n }], _items: [{\n type: ContentChildren,\n args: [forwardRef(() => MatTabLink), { descendants: true }]\n }], backgroundColor: [{\n type: Input\n }], disableRipple: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], color: [{\n type: Input\n }], tabPanel: [{\n type: Input\n }], _tabListContainer: [{\n type: ViewChild,\n args: ['tabListContainer', { static: true }]\n }], _tabList: [{\n type: ViewChild,\n args: ['tabList', { static: true }]\n }], _tabListInner: [{\n type: ViewChild,\n args: ['tabListInner', { static: true }]\n }], _nextPaginator: [{\n type: ViewChild,\n args: ['nextPaginator']\n }], _previousPaginator: [{\n type: ViewChild,\n args: ['previousPaginator']\n }] } });\n/**\n * Link inside a `mat-tab-nav-bar`.\n */\nclass MatTabLink extends InkBarItem {\n /** Whether the link is active. */\n get active() {\n return this._isActive;\n }\n set active(value) {\n if (value !== this._isActive) {\n this._isActive = value;\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 ||\n this.disableRipple ||\n this._tabNavBar.disableRipple ||\n !!this.rippleConfig.disabled);\n }\n constructor(_tabNavBar, \n /** @docs-private */ elementRef, globalRippleOptions, tabIndex, _focusMonitor, animationMode) {\n super();\n this._tabNavBar = _tabNavBar;\n this.elementRef = elementRef;\n this._focusMonitor = _focusMonitor;\n this._destroyed = new Subject();\n /** Whether the tab link is active or not. */\n this._isActive = false;\n /** Whether the tab link is disabled. */\n this.disabled = false;\n /** Whether ripples are disabled on the tab link. */\n this.disableRipple = false;\n this.tabIndex = 0;\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 = { enterDuration: 0, exitDuration: 0 };\n }\n _tabNavBar._fitInkBarToContent\n .pipe(takeUntil(this._destroyed))\n .subscribe(fitInkBarToContent => {\n this.fitInkBarToContent = fitInkBarToContent;\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._destroyed.next();\n this._destroyed.complete();\n super.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 }\n else if (this._tabNavBar.tabPanel) {\n // Only prevent the default action on space since it can scroll the page.\n // Don't prevent enter since it can break link navigation.\n if (event.keyCode === SPACE) {\n event.preventDefault();\n }\n this.elementRef.nativeElement.click();\n }\n }\n }\n _getAriaControls() {\n return this._tabNavBar.tabPanel\n ? this._tabNavBar.tabPanel?.id\n : this.elementRef.nativeElement.getAttribute('aria-controls');\n }\n _getAriaSelected() {\n if (this._tabNavBar.tabPanel) {\n return this.active ? 'true' : 'false';\n }\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 }\n else {\n return this.disabled ? -1 : this.tabIndex;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: MatTabLink, deps: [{ token: MatTabNav }, { token: i0.ElementRef }, { token: MAT_RIPPLE_GLOBAL_OPTIONS, optional: true }, { token: 'tabindex', attribute: true }, { token: i4.FocusMonitor }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"16.1.0\", version: \"17.2.0\", type: MatTabLink, isStandalone: true, selector: \"[mat-tab-link], [matTabLink]\", inputs: { active: [\"active\", \"active\", booleanAttribute], disabled: [\"disabled\", \"disabled\", booleanAttribute], disableRipple: [\"disableRipple\", \"disableRipple\", booleanAttribute], tabIndex: [\"tabIndex\", \"tabIndex\", (value) => (value == null ? 0 : numberAttribute(value))], id: \"id\" }, host: { listeners: { \"focus\": \"_handleFocus()\", \"keydown\": \"_handleKeydown($event)\" }, properties: { \"attr.aria-controls\": \"_getAriaControls()\", \"attr.aria-current\": \"_getAriaCurrent()\", \"attr.aria-disabled\": \"disabled\", \"attr.aria-selected\": \"_getAriaSelected()\", \"attr.id\": \"id\", \"attr.tabIndex\": \"_getTabIndex()\", \"attr.role\": \"_getRole()\", \"class.mat-mdc-tab-disabled\": \"disabled\", \"class.mdc-tab--active\": \"active\" }, classAttribute: \"mdc-tab mat-mdc-tab-link mat-mdc-focus-indicator\" }, exportAs: [\"matTabLink\"], usesInheritance: true, ngImport: i0, template: \"\\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}}\"], dependencies: [{ kind: \"directive\", type: MatRipple, selector: \"[mat-ripple], [matRipple]\", inputs: [\"matRippleColor\", \"matRippleUnbounded\", \"matRippleCentered\", \"matRippleRadius\", \"matRippleAnimation\", \"matRippleDisabled\", \"matRippleTrigger\"], exportAs: [\"matRipple\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: MatTabLink, decorators: [{\n type: Component,\n args: [{ selector: '[mat-tab-link], [matTabLink]', exportAs: 'matTabLink', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, 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 }, standalone: true, imports: [MatRipple], template: \"\\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 }], ctorParameters: () => [{ type: MatTabNav }, { type: i0.ElementRef }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_RIPPLE_GLOBAL_OPTIONS]\n }] }, { type: undefined, decorators: [{\n type: Attribute,\n args: ['tabindex']\n }] }, { type: i4.FocusMonitor }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }] }], propDecorators: { active: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], disabled: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], disableRipple: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], tabIndex: [{\n type: Input,\n args: [{\n transform: (value) => (value == null ? 0 : numberAttribute(value)),\n }]\n }], id: [{\n type: Input\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 { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: MatTabNavPanel, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.2.0\", type: MatTabNavPanel, isStandalone: true, selector: \"mat-tab-nav-panel\", inputs: { id: \"id\" }, host: { attributes: { \"role\": \"tabpanel\" }, properties: { \"attr.aria-labelledby\": \"_activeTabId\", \"attr.id\": \"id\" }, classAttribute: \"mat-mdc-tab-nav-panel\" }, exportAs: [\"matTabNavPanel\"], ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: MatTabNavPanel, decorators: [{\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 standalone: true,\n }]\n }], propDecorators: { id: [{\n type: Input\n }] } });\n\nclass MatTabsModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: MatTabsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.2.0\", ngImport: i0, type: MatTabsModule, imports: [MatCommonModule,\n MatTabContent,\n MatTabLabel,\n MatTab,\n MatTabGroup,\n MatTabNav,\n MatTabNavPanel,\n MatTabLink], exports: [MatCommonModule,\n MatTabContent,\n MatTabLabel,\n MatTab,\n MatTabGroup,\n MatTabNav,\n MatTabNavPanel,\n MatTabLink] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: MatTabsModule, imports: [MatCommonModule, MatCommonModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.2.0\", ngImport: i0, type: MatTabsModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n MatCommonModule,\n MatTabContent,\n MatTabLabel,\n MatTab,\n MatTabGroup,\n MatTabNav,\n MatTabNavPanel,\n MatTabLink,\n ],\n exports: [\n MatCommonModule,\n MatTabContent,\n MatTabLabel,\n MatTab,\n MatTabGroup,\n MatTabNav,\n MatTabNavPanel,\n MatTabLink,\n ],\n }]\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, matTabsAnimations };\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}