{"ast":null,"code":"import * as i1$2 from '@angular/common';\nimport { DOCUMENT, CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { forwardRef, Directive, Inject, EventEmitter, Optional, Output, Input, Component, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, InjectionToken, TemplateRef, ContentChild, ContentChildren, QueryList, Attribute, NgModule } from '@angular/core';\nimport * as i5 from '@angular/material/core';\nimport { mixinDisabled, mixinColor, mixinDisableRipple, mixinTabIndex, MAT_RIPPLE_GLOBAL_OPTIONS, MatCommonModule, MatRippleModule } from '@angular/material/core';\nimport * as i2 from '@angular/cdk/portal';\nimport { CdkPortalOutlet, CdkPortal, TemplatePortal, PortalModule } from '@angular/cdk/portal';\nimport * as i5$1 from '@angular/cdk/observers';\nimport { ObserversModule } from '@angular/cdk/observers';\nimport * as i4 from '@angular/cdk/a11y';\nimport { FocusKeyManager, A11yModule } from '@angular/cdk/a11y';\nimport * as i1 from '@angular/cdk/bidi';\nimport { Subscription, Subject, fromEvent, of, merge, EMPTY, Observable, timer, BehaviorSubject } from 'rxjs';\nimport { startWith, distinctUntilChanged, takeUntil, take, switchMap, skip, filter } from 'rxjs/operators';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\nimport { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';\nimport * as i1$1 from '@angular/cdk/scrolling';\nimport * as i3 from '@angular/cdk/platform';\nimport { normalizePassiveListenerOptions } from '@angular/cdk/platform';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\nimport { hasModifierKey, SPACE, ENTER } from '@angular/cdk/keycodes';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Animations used by the Material tabs.\n * @docs-private\n */\nconst _c0 = a0 => ({\n  animationDuration: a0\n});\nconst _c1 = (a0, a1) => ({\n  value: a0,\n  params: a1\n});\nfunction MatTabBody_ng_template_2_Template(rf, ctx) {}\nconst _c2 = [\"*\"];\nfunction MatTab_ng_template_0_Template(rf, ctx) {\n  if (rf & 1) {\n    i0.ɵɵprojection(0);\n  }\n}\nconst _c3 = [\"tabListContainer\"];\nconst _c4 = [\"tabList\"];\nconst _c5 = [\"tabListInner\"];\nconst _c6 = [\"nextPaginator\"];\nconst _c7 = [\"previousPaginator\"];\nconst _c8 = [\"tabBodyWrapper\"];\nconst _c9 = [\"tabHeader\"];\nfunction MatTabGroup_div_2_ng_template_6_ng_template_0_Template(rf, ctx) {}\nfunction MatTabGroup_div_2_ng_template_6_Template(rf, ctx) {\n  if (rf & 1) {\n    i0.ɵɵtemplate(0, MatTabGroup_div_2_ng_template_6_ng_template_0_Template, 0, 0, \"ng-template\", 14);\n  }\n  if (rf & 2) {\n    const tab_r4 = i0.ɵɵnextContext().$implicit;\n    i0.ɵɵproperty(\"cdkPortalOutlet\", tab_r4.templateLabel);\n  }\n}\nfunction MatTabGroup_div_2_ng_template_7_Template(rf, ctx) {\n  if (rf & 1) {\n    i0.ɵɵtext(0);\n  }\n  if (rf & 2) {\n    const tab_r4 = i0.ɵɵnextContext().$implicit;\n    i0.ɵɵtextInterpolate(tab_r4.textLabel);\n  }\n}\nfunction MatTabGroup_div_2_Template(rf, ctx) {\n  if (rf & 1) {\n    const _r2 = i0.ɵɵgetCurrentView();\n    i0.ɵɵelementStart(0, \"div\", 8, 2);\n    i0.ɵɵlistener(\"click\", function MatTabGroup_div_2_Template_div_click_0_listener() {\n      const ctx_r2 = i0.ɵɵrestoreView(_r2);\n      const tab_r4 = ctx_r2.$implicit;\n      const i_r5 = ctx_r2.index;\n      const ctx_r5 = i0.ɵɵnextContext();\n      const tabHeader_r7 = i0.ɵɵreference(1);\n      return i0.ɵɵresetView(ctx_r5._handleClick(tab_r4, tabHeader_r7, i_r5));\n    })(\"cdkFocusChange\", function MatTabGroup_div_2_Template_div_cdkFocusChange_0_listener($event) {\n      const i_r5 = i0.ɵɵrestoreView(_r2).index;\n      const ctx_r5 = i0.ɵɵnextContext();\n      return i0.ɵɵresetView(ctx_r5._tabFocusChanged($event, i_r5));\n    });\n    i0.ɵɵelement(2, \"span\", 9)(3, \"div\", 10);\n    i0.ɵɵelementStart(4, \"span\", 11)(5, \"span\", 12);\n    i0.ɵɵtemplate(6, MatTabGroup_div_2_ng_template_6_Template, 1, 1, \"ng-template\", 13)(7, MatTabGroup_div_2_ng_template_7_Template, 1, 1, \"ng-template\", null, 3, i0.ɵɵtemplateRefExtractor);\n    i0.ɵɵelementEnd()()();\n  }\n  if (rf & 2) {\n    const tab_r4 = ctx.$implicit;\n    const i_r5 = ctx.index;\n    const tabNode_r8 = i0.ɵɵreference(1);\n    const tabTextLabel_r9 = i0.ɵɵreference(8);\n    const ctx_r5 = i0.ɵɵnextContext();\n    i0.ɵɵclassProp(\"mdc-tab--active\", ctx_r5.selectedIndex === i_r5);\n    i0.ɵɵproperty(\"id\", ctx_r5._getTabLabelId(i_r5))(\"ngClass\", tab_r4.labelClass)(\"disabled\", tab_r4.disabled)(\"fitInkBarToContent\", ctx_r5.fitInkBarToContent);\n    i0.ɵɵattribute(\"tabIndex\", ctx_r5._getTabIndex(i_r5))(\"aria-posinset\", i_r5 + 1)(\"aria-setsize\", ctx_r5._tabs.length)(\"aria-controls\", ctx_r5._getTabContentId(i_r5))(\"aria-selected\", ctx_r5.selectedIndex === i_r5)(\"aria-label\", tab_r4.ariaLabel || null)(\"aria-labelledby\", !tab_r4.ariaLabel && tab_r4.ariaLabelledby ? tab_r4.ariaLabelledby : null);\n    i0.ɵɵadvance(3);\n    i0.ɵɵproperty(\"matRippleTrigger\", tabNode_r8)(\"matRippleDisabled\", tab_r4.disabled || ctx_r5.disableRipple);\n    i0.ɵɵadvance(3);\n    i0.ɵɵproperty(\"ngIf\", tab_r4.templateLabel)(\"ngIfElse\", tabTextLabel_r9);\n  }\n}\nfunction MatTabGroup_mat_tab_body_5_Template(rf, ctx) {\n  if (rf & 1) {\n    const _r10 = i0.ɵɵgetCurrentView();\n    i0.ɵɵelementStart(0, \"mat-tab-body\", 15);\n    i0.ɵɵlistener(\"_onCentered\", function MatTabGroup_mat_tab_body_5_Template_mat_tab_body__onCentered_0_listener() {\n      i0.ɵɵrestoreView(_r10);\n      const ctx_r5 = i0.ɵɵnextContext();\n      return i0.ɵɵresetView(ctx_r5._removeTabBodyWrapperHeight());\n    })(\"_onCentering\", function MatTabGroup_mat_tab_body_5_Template_mat_tab_body__onCentering_0_listener($event) {\n      i0.ɵɵrestoreView(_r10);\n      const ctx_r5 = i0.ɵɵnextContext();\n      return i0.ɵɵresetView(ctx_r5._setTabBodyWrapperHeight($event));\n    });\n    i0.ɵɵelementEnd();\n  }\n  if (rf & 2) {\n    const tab_r11 = ctx.$implicit;\n    const i_r12 = ctx.index;\n    const ctx_r5 = i0.ɵɵnextContext();\n    i0.ɵɵclassProp(\"mat-mdc-tab-body-active\", ctx_r5.selectedIndex === i_r12);\n    i0.ɵɵproperty(\"id\", ctx_r5._getTabContentId(i_r12))(\"ngClass\", tab_r11.bodyClass)(\"content\", tab_r11.content)(\"position\", tab_r11.position)(\"origin\", tab_r11.origin)(\"animationDuration\", ctx_r5.animationDuration)(\"preserveContent\", ctx_r5.preserveContent);\n    i0.ɵɵattribute(\"tabindex\", ctx_r5.contentTabIndex != null && ctx_r5.selectedIndex === i_r12 ? ctx_r5.contentTabIndex : null)(\"aria-labelledby\", ctx_r5._getTabLabelId(i_r12));\n  }\n}\nconst _c10 = [\"mat-tab-nav-bar\", \"\"];\nconst _c11 = [\"mat-tab-link\", \"\"];\nconst matTabsAnimations = {\n  /** Animation translates a tab along the X axis. */\n  translateTab: trigger('translateTab', [\n  // Transitions to `none` instead of 0, because some browsers might blur the content.\n  state('center, void, left-origin-center, right-origin-center', style({\n    transform: 'none'\n  })),\n  // If the tab is either on the left or right, we additionally add a `min-height` of 1px\n  // in order to ensure that the element has a height before its state changes. This is\n  // necessary because Chrome does seem to skip the transition in RTL mode if the element does\n  // not have a static height and is not rendered. See related issue: #9465\n  state('left', style({\n    transform: 'translate3d(-100%, 0, 0)',\n    minHeight: '1px',\n    // Normally this is redundant since we detach the content from the DOM, but if the user\n    // opted into keeping the content in the DOM, we have to hide it so it isn't focusable.\n    visibility: 'hidden'\n  })), state('right', style({\n    transform: 'translate3d(100%, 0, 0)',\n    minHeight: '1px',\n    visibility: 'hidden'\n  })), transition('* => left, * => right, left => center, right => center', animate('{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)')), transition('void => left-origin-center', [style({\n    transform: 'translate3d(-100%, 0, 0)',\n    visibility: 'hidden'\n  }), animate('{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)')]), transition('void => right-origin-center', [style({\n    transform: 'translate3d(100%, 0, 0)',\n    visibility: 'hidden'\n  }), animate('{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)')])])\n};\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\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}\nMatTabBodyPortal.ɵ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};\nMatTabBodyPortal.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n  type: MatTabBodyPortal,\n  selectors: [[\"\", \"matTabBodyHost\", \"\"]],\n  features: [i0.ɵɵInheritDefinitionFeature]\n});\n(() => {\n  (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatTabBodyPortal, [{\n    type: Directive,\n    args: [{\n      selector: '[matTabBodyHost]'\n    }]\n  }], function () {\n    return [{\n      type: i0.ComponentFactoryResolver\n    }, {\n      type: i0.ViewContainerRef\n    }, {\n      type: MatTabBody,\n      decorators: [{\n        type: Inject,\n        args: [forwardRef(() => MatTabBody)]\n      }]\n    }, {\n      type: undefined,\n      decorators: [{\n        type: Inject,\n        args: [DOCUMENT]\n      }]\n    }];\n  }, null);\n})();\n/**\n * Base class with all of the `MatTabBody` functionality.\n * @docs-private\n */\nclass _MatTabBodyBase {\n  /** The shifted index position of the tab body, where zero represents the active center tab. */\n  set position(position) {\n    this._positionIndex = position;\n    this._computePositionAnimationState();\n  }\n  constructor(_elementRef, _dir, changeDetectorRef) {\n    this._elementRef = _elementRef;\n    this._dir = _dir;\n    /** Subscription to the directionality change observable. */\n    this._dirChangeSubscription = Subscription.EMPTY;\n    /** Emits when an animation on the tab is complete. */\n    this._translateTabComplete = new Subject();\n    /** Event emitted when the tab begins to animate towards the center as the active tab. */\n    this._onCentering = new EventEmitter();\n    /** Event emitted before the centering of the tab begins. */\n    this._beforeCentering = new EventEmitter();\n    /** Event emitted before the centering of the tab begins. */\n    this._afterLeavingCenter = new EventEmitter();\n    /** Event emitted when the tab completes its animation towards the center. */\n    this._onCentered = new EventEmitter(true);\n    // Note that the default value will always be overwritten by `MatTabBody`, but we need one\n    // anyway to prevent the animations module from throwing an error if the body is used on its own.\n    /** Duration for the tab's animation. */\n    this.animationDuration = '500ms';\n    /** Whether the tab's content should be kept in the DOM while it's off-screen. */\n    this.preserveContent = false;\n    if (_dir) {\n      this._dirChangeSubscription = _dir.change.subscribe(dir => {\n        this._computePositionAnimationState(dir);\n        changeDetectorRef.markForCheck();\n      });\n    }\n    // Ensure that we get unique animation events, because the `.done` callback can get\n    // invoked twice in some browsers. See https://github.com/angular/angular/issues/24084.\n    this._translateTabComplete.pipe(distinctUntilChanged((x, y) => {\n      return x.fromState === y.fromState && x.toState === y.toState;\n    })).subscribe(event => {\n      // If the transition to the center is complete, emit an event.\n      if (this._isCenterPosition(event.toState) && this._isCenterPosition(this._position)) {\n        this._onCentered.emit();\n      }\n      if (this._isCenterPosition(event.fromState) && !this._isCenterPosition(this._position)) {\n        this._afterLeavingCenter.emit();\n      }\n    });\n  }\n  /**\n   * After initialized, check if the content is centered and has an origin. If so, set the\n   * special position states that transition the tab from the left or right before centering.\n   */\n  ngOnInit() {\n    if (this._position == 'center' && this.origin != null) {\n      this._position = this._computePositionFromOrigin(this.origin);\n    }\n  }\n  ngOnDestroy() {\n    this._dirChangeSubscription.unsubscribe();\n    this._translateTabComplete.complete();\n  }\n  _onTranslateTabStarted(event) {\n    const isCentering = this._isCenterPosition(event.toState);\n    this._beforeCentering.emit(isCentering);\n    if (isCentering) {\n      this._onCentering.emit(this._elementRef.nativeElement.clientHeight);\n    }\n  }\n  /** The text direction of the containing app. */\n  _getLayoutDirection() {\n    return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';\n  }\n  /** Whether the provided position state is considered center, regardless of origin. */\n  _isCenterPosition(position) {\n    return position == 'center' || position == 'left-origin-center' || position == 'right-origin-center';\n  }\n  /** Computes the position state that will be used for the tab-body animation trigger. */\n  _computePositionAnimationState(dir = this._getLayoutDirection()) {\n    if (this._positionIndex < 0) {\n      this._position = dir == 'ltr' ? 'left' : 'right';\n    } else if (this._positionIndex > 0) {\n      this._position = dir == 'ltr' ? 'right' : 'left';\n    } else {\n      this._position = 'center';\n    }\n  }\n  /**\n   * Computes the position state based on the specified origin position. This is used if the\n   * tab is becoming visible immediately after creation.\n   */\n  _computePositionFromOrigin(origin) {\n    const dir = this._getLayoutDirection();\n    if (dir == 'ltr' && origin <= 0 || dir == 'rtl' && origin > 0) {\n      return 'left-origin-center';\n    }\n    return 'right-origin-center';\n  }\n}\n_MatTabBodyBase.ɵfac = function _MatTabBodyBase_Factory(t) {\n  return new (t || _MatTabBodyBase)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Directionality, 8), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n};\n_MatTabBodyBase.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n  type: _MatTabBodyBase,\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});\n(() => {\n  (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(_MatTabBodyBase, [{\n    type: Directive\n  }], function () {\n    return [{\n      type: i0.ElementRef\n    }, {\n      type: i1.Directionality,\n      decorators: [{\n        type: Optional\n      }]\n    }, {\n      type: i0.ChangeDetectorRef\n    }];\n  }, {\n    _onCentering: [{\n      type: Output\n    }],\n    _beforeCentering: [{\n      type: Output\n    }],\n    _afterLeavingCenter: [{\n      type: Output\n    }],\n    _onCentered: [{\n      type: Output\n    }],\n    _content: [{\n      type: Input,\n      args: ['content']\n    }],\n    origin: [{\n      type: Input\n    }],\n    animationDuration: [{\n      type: Input\n    }],\n    preserveContent: [{\n      type: Input\n    }],\n    position: [{\n      type: Input\n    }]\n  });\n})();\n/**\n * Wrapper for the contents of a tab.\n * @docs-private\n */\nclass MatTabBody extends _MatTabBodyBase {\n  constructor(elementRef, dir, changeDetectorRef) {\n    super(elementRef, dir, changeDetectorRef);\n  }\n}\nMatTabBody.ɵfac = function MatTabBody_Factory(t) {\n  return new (t || MatTabBody)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Directionality, 8), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n};\nMatTabBody.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n  type: MatTabBody,\n  selectors: [[\"mat-tab-body\"]],\n  viewQuery: function MatTabBody_Query(rf, ctx) {\n    if (rf & 1) {\n      i0.ɵɵviewQuery(CdkPortalOutlet, 5);\n    }\n    if (rf & 2) {\n      let _t;\n      i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._portalHost = _t.first);\n    }\n  },\n  hostAttrs: [1, \"mat-mdc-tab-body\"],\n  features: [i0.ɵɵInheritDefinitionFeature],\n  decls: 3,\n  vars: 6,\n  consts: [[\"content\", \"\"], [\"cdkScrollable\", \"\", 1, \"mat-mdc-tab-body-content\"], [\"matTabBodyHost\", \"\"]],\n  template: function MatTabBody_Template(rf, ctx) {\n    if (rf & 1) {\n      const _r1 = i0.ɵɵgetCurrentView();\n      i0.ɵɵelementStart(0, \"div\", 1, 0);\n      i0.ɵɵlistener(\"@translateTab.start\", function MatTabBody_Template_div_animation_translateTab_start_0_listener($event) {\n        i0.ɵɵrestoreView(_r1);\n        return i0.ɵɵresetView(ctx._onTranslateTabStarted($event));\n      })(\"@translateTab.done\", function MatTabBody_Template_div_animation_translateTab_done_0_listener($event) {\n        i0.ɵɵrestoreView(_r1);\n        return i0.ɵɵresetView(ctx._translateTabComplete.next($event));\n      });\n      i0.ɵɵtemplate(2, MatTabBody_ng_template_2_Template, 0, 0, \"ng-template\", 2);\n      i0.ɵɵelementEnd();\n    }\n    if (rf & 2) {\n      i0.ɵɵproperty(\"@translateTab\", i0.ɵɵpureFunction2(3, _c1, ctx._position, i0.ɵɵpureFunction1(1, _c0, ctx.animationDuration)));\n    }\n  },\n  dependencies: [MatTabBodyPortal],\n  styles: [\".mat-mdc-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;outline:0;flex-basis:100%}.mat-mdc-tab-body.mat-mdc-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-mdc-tab-group.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body.mat-mdc-tab-body-active{overflow-y:hidden}.mat-mdc-tab-body-content{height:100%;overflow:auto}.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body-content{overflow:hidden}.mat-mdc-tab-body-content[style*=\\\"visibility: hidden\\\"]{display:none}\"],\n  encapsulation: 2,\n  data: {\n    animation: [matTabsAnimations.translateTab]\n  }\n});\n(() => {\n  (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatTabBody, [{\n    type: Component,\n    args: [{\n      selector: 'mat-tab-body',\n      encapsulation: ViewEncapsulation.None,\n      changeDetection: ChangeDetectionStrategy.Default,\n      animations: [matTabsAnimations.translateTab],\n      host: {\n        'class': 'mat-mdc-tab-body'\n      },\n      template: \"<div class=\\\"mat-mdc-tab-body-content\\\" #content\\n     [@translateTab]=\\\"{\\n        value: _position,\\n        params: {animationDuration: animationDuration}\\n     }\\\"\\n     (@translateTab.start)=\\\"_onTranslateTabStarted($event)\\\"\\n     (@translateTab.done)=\\\"_translateTabComplete.next($event)\\\"\\n     cdkScrollable>\\n  <ng-template matTabBodyHost></ng-template>\\n</div>\\n\",\n      styles: [\".mat-mdc-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;outline:0;flex-basis:100%}.mat-mdc-tab-body.mat-mdc-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-mdc-tab-group.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body.mat-mdc-tab-body-active{overflow-y:hidden}.mat-mdc-tab-body-content{height:100%;overflow:auto}.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body-content{overflow:hidden}.mat-mdc-tab-body-content[style*=\\\"visibility: hidden\\\"]{display:none}\"]\n    }]\n  }], function () {\n    return [{\n      type: i0.ElementRef\n    }, {\n      type: i1.Directionality,\n      decorators: [{\n        type: Optional\n      }]\n    }, {\n      type: i0.ChangeDetectorRef\n    }];\n  }, {\n    _portalHost: [{\n      type: ViewChild,\n      args: [CdkPortalOutlet]\n    }]\n  });\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\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}\nMatTabContent.ɵfac = function MatTabContent_Factory(t) {\n  return new (t || MatTabContent)(i0.ɵɵdirectiveInject(i0.TemplateRef));\n};\nMatTabContent.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n  type: MatTabContent,\n  selectors: [[\"\", \"matTabContent\", \"\"]],\n  features: [i0.ɵɵProvidersFeature([{\n    provide: MAT_TAB_CONTENT,\n    useExisting: MatTabContent\n  }])]\n});\n(() => {\n  (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatTabContent, [{\n    type: Directive,\n    args: [{\n      selector: '[matTabContent]',\n      providers: [{\n        provide: MAT_TAB_CONTENT,\n        useExisting: MatTabContent\n      }]\n    }]\n  }], function () {\n    return [{\n      type: i0.TemplateRef\n    }];\n  }, null);\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\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}\nMatTabLabel.ɵfac = function MatTabLabel_Factory(t) {\n  return new (t || MatTabLabel)(i0.ɵɵdirectiveInject(i0.TemplateRef), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(MAT_TAB, 8));\n};\nMatTabLabel.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n  type: MatTabLabel,\n  selectors: [[\"\", \"mat-tab-label\", \"\"], [\"\", \"matTabLabel\", \"\"]],\n  features: [i0.ɵɵProvidersFeature([{\n    provide: MAT_TAB_LABEL,\n    useExisting: MatTabLabel\n  }]), i0.ɵɵInheritDefinitionFeature]\n});\n(() => {\n  (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatTabLabel, [{\n    type: Directive,\n    args: [{\n      selector: '[mat-tab-label], [matTabLabel]',\n      providers: [{\n        provide: MAT_TAB_LABEL,\n        useExisting: MatTabLabel\n      }]\n    }]\n  }], function () {\n    return [{\n      type: i0.TemplateRef\n    }, {\n      type: i0.ViewContainerRef\n    }, {\n      type: undefined,\n      decorators: [{\n        type: Inject,\n        args: [MAT_TAB]\n      }, {\n        type: Optional\n      }]\n    }];\n  }, null);\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\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    currentItem?.deactivateInkBar();\n    if (correspondingItem) {\n      const clientRect = currentItem?.elementRef.nativeElement.getBoundingClientRect?.();\n      // The ink bar won't animate unless we give it the `ClientRect` of the previous item.\n      correspondingItem.activateInkBar(clientRect);\n      this._currentItem = correspondingItem;\n    }\n  }\n}\n/**\n * Mixin that can be used to apply the `MatInkBarItem` behavior to a class.\n * Base on MDC's `MDCSlidingTabIndicatorFoundation`:\n * https://github.com/material-components/material-components-web/blob/c0a11ef0d000a098fd0c372be8f12d6a99302855/packages/mdc-tab-indicator/sliding-foundation.ts\n * @docs-private\n */\nfunction mixinInkBarItem(base) {\n  return class extends base {\n    constructor(...args) {\n      super(...args);\n      this._fitToContent = false;\n    }\n    /** Whether the ink bar should fit to the entire tab or just its content. */\n    get fitInkBarToContent() {\n      return this._fitToContent;\n    }\n    set fitInkBarToContent(v) {\n      const newValue = coerceBooleanProperty(v);\n      if (this._fitToContent !== newValue) {\n        this._fitToContent = newValue;\n        if (this._inkBarElement) {\n          this._appendInkBarElement();\n        }\n      }\n    }\n    /** Aligns the ink bar to the current item. */\n    activateInkBar(previousIndicatorClientRect) {\n      const element = this.elementRef.nativeElement;\n      // Early exit if no indicator is present to handle cases where an indicator\n      // may be activated without a prior indicator state\n      if (!previousIndicatorClientRect || !element.getBoundingClientRect || !this._inkBarContentElement) {\n        element.classList.add(ACTIVE_CLASS);\n        return;\n      }\n      // This animation uses the FLIP approach. You can read more about it at the link below:\n      // https://aerotwist.com/blog/flip-your-animations/\n      // Calculate the dimensions based on the dimensions of the previous indicator\n      const currentClientRect = element.getBoundingClientRect();\n      const widthDelta = previousIndicatorClientRect.width / currentClientRect.width;\n      const xPosition = previousIndicatorClientRect.left - currentClientRect.left;\n      element.classList.add(NO_TRANSITION_CLASS);\n      this._inkBarContentElement.style.setProperty('transform', `translateX(${xPosition}px) scaleX(${widthDelta})`);\n      // Force repaint before updating classes and transform to ensure the transform properly takes effect\n      element.getBoundingClientRect();\n      element.classList.remove(NO_TRANSITION_CLASS);\n      element.classList.add(ACTIVE_CLASS);\n      this._inkBarContentElement.style.setProperty('transform', '');\n    }\n    /** Removes the ink bar from the current item. */\n    deactivateInkBar() {\n      this.elementRef.nativeElement.classList.remove(ACTIVE_CLASS);\n    }\n    /** Initializes the foundation. */\n    ngOnInit() {\n      this._createInkBarElement();\n    }\n    /** Destroys the foundation. */\n    ngOnDestroy() {\n      this._inkBarElement?.remove();\n      this._inkBarElement = this._inkBarContentElement = null;\n    }\n    /** Creates and appends the ink bar element. */\n    _createInkBarElement() {\n      const documentNode = this.elementRef.nativeElement.ownerDocument || document;\n      this._inkBarElement = documentNode.createElement('span');\n      this._inkBarContentElement = documentNode.createElement('span');\n      this._inkBarElement.className = 'mdc-tab-indicator';\n      this._inkBarContentElement.className = 'mdc-tab-indicator__content mdc-tab-indicator__content--underline';\n      this._inkBarElement.appendChild(this._inkBarContentElement);\n      this._appendInkBarElement();\n    }\n    /**\n     * Appends the ink bar to the tab host element or content, depending on whether\n     * the ink bar should fit to content.\n     */\n    _appendInkBarElement() {\n      if (!this._inkBarElement && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n        throw Error('Ink bar element has not been created and cannot be appended');\n      }\n      const parentElement = this._fitToContent ? this.elementRef.nativeElement.querySelector('.mdc-tab__content') : this.elementRef.nativeElement;\n      if (!parentElement && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n        throw Error('Missing element to host the ink bar');\n      }\n      parentElement.appendChild(this._inkBarElement);\n    }\n  };\n}\n/**\n * The default positioner function for the MatInkBar.\n * @docs-private\n */\nfunction _MAT_INK_BAR_POSITIONER_FACTORY() {\n  const method = element => ({\n    left: element ? (element.offsetLeft || 0) + 'px' : '0',\n    width: element ? (element.offsetWidth || 0) + 'px' : '0'\n  });\n  return method;\n}\n/** Injection token for the MatInkBar's Positioner. */\nconst _MAT_INK_BAR_POSITIONER = new InjectionToken('MatInkBarPositioner', {\n  providedIn: 'root',\n  factory: _MAT_INK_BAR_POSITIONER_FACTORY\n});\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// Boilerplate for applying mixins to MatTabLabelWrapper.\n/** @docs-private */\nconst _MatTabLabelWrapperMixinBase = mixinDisabled(class {});\n/**\n * Used in the `mat-tab-group` view to display tab labels.\n * @docs-private\n */\nclass _MatTabLabelWrapperBase extends _MatTabLabelWrapperMixinBase {\n  constructor(elementRef) {\n    super();\n    this.elementRef = elementRef;\n  }\n  /** Sets focus on the wrapper element */\n  focus() {\n    this.elementRef.nativeElement.focus();\n  }\n  getOffsetLeft() {\n    return this.elementRef.nativeElement.offsetLeft;\n  }\n  getOffsetWidth() {\n    return this.elementRef.nativeElement.offsetWidth;\n  }\n}\n_MatTabLabelWrapperBase.ɵfac = function _MatTabLabelWrapperBase_Factory(t) {\n  return new (t || _MatTabLabelWrapperBase)(i0.ɵɵdirectiveInject(i0.ElementRef));\n};\n_MatTabLabelWrapperBase.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n  type: _MatTabLabelWrapperBase,\n  features: [i0.ɵɵInheritDefinitionFeature]\n});\n(() => {\n  (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(_MatTabLabelWrapperBase, [{\n    type: Directive\n  }], function () {\n    return [{\n      type: i0.ElementRef\n    }];\n  }, null);\n})();\nconst _MatTabLabelWrapperBaseWithInkBarItem = mixinInkBarItem(_MatTabLabelWrapperBase);\n/**\n * Used in the `mat-tab-group` view to display tab labels.\n * @docs-private\n */\nclass MatTabLabelWrapper extends _MatTabLabelWrapperBaseWithInkBarItem {}\nMatTabLabelWrapper.ɵfac = /* @__PURE__ */(() => {\n  let ɵMatTabLabelWrapper_BaseFactory;\n  return function MatTabLabelWrapper_Factory(t) {\n    return (ɵMatTabLabelWrapper_BaseFactory || (ɵMatTabLabelWrapper_BaseFactory = i0.ɵɵgetInheritedFactory(MatTabLabelWrapper)))(t || MatTabLabelWrapper);\n  };\n})();\nMatTabLabelWrapper.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n  type: MatTabLabelWrapper,\n  selectors: [[\"\", \"matTabLabelWrapper\", \"\"]],\n  hostVars: 3,\n  hostBindings: function MatTabLabelWrapper_HostBindings(rf, ctx) {\n    if (rf & 2) {\n      i0.ɵɵattribute(\"aria-disabled\", !!ctx.disabled);\n      i0.ɵɵclassProp(\"mat-mdc-tab-disabled\", ctx.disabled);\n    }\n  },\n  inputs: {\n    disabled: \"disabled\",\n    fitInkBarToContent: \"fitInkBarToContent\"\n  },\n  features: [i0.ɵɵInheritDefinitionFeature]\n});\n(() => {\n  (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatTabLabelWrapper, [{\n    type: Directive,\n    args: [{\n      selector: '[matTabLabelWrapper]',\n      inputs: ['disabled', 'fitInkBarToContent'],\n      host: {\n        '[class.mat-mdc-tab-disabled]': 'disabled',\n        '[attr.aria-disabled]': '!!disabled'\n      }\n    }]\n  }], null, null);\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// Boilerplate for applying mixins to MatTab.\n/** @docs-private */\nconst _MatTabMixinBase = mixinDisabled(class {});\n/**\n * Used to provide a tab group to a tab without causing a circular dependency.\n * @docs-private\n */\nconst MAT_TAB_GROUP = new InjectionToken('MAT_TAB_GROUP');\n/** @docs-private */\nclass _MatTabBase extends _MatTabMixinBase {\n  /** @docs-private */\n  get content() {\n    return this._contentPortal;\n  }\n  constructor(_viewContainerRef, _closestTabGroup) {\n    super();\n    this._viewContainerRef = _viewContainerRef;\n    this._closestTabGroup = _closestTabGroup;\n    /** Plain text label for the tab, used when there is no template label. */\n    this.textLabel = '';\n    /** Portal that will be the hosted content of the tab */\n    this._contentPortal = null;\n    /** Emits whenever the internal state of the tab changes. */\n    this._stateChanges = new Subject();\n    /**\n     * The relatively indexed position where 0 represents the center, negative is left, and positive\n     * represents the right.\n     */\n    this.position = null;\n    /**\n     * The initial relatively index origin of the tab if it was created and selected after there\n     * was already a selected tab. Provides context of what position the tab should originate from.\n     */\n    this.origin = null;\n    /**\n     * Whether the tab is currently active.\n     */\n    this.isActive = false;\n  }\n  ngOnChanges(changes) {\n    if (changes.hasOwnProperty('textLabel') || changes.hasOwnProperty('disabled')) {\n      this._stateChanges.next();\n    }\n  }\n  ngOnDestroy() {\n    this._stateChanges.complete();\n  }\n  ngOnInit() {\n    this._contentPortal = new TemplatePortal(this._explicitContent || this._implicitContent, this._viewContainerRef);\n  }\n  /**\n   * This has been extracted to a util because of TS 4 and VE.\n   * View Engine doesn't support property rename inheritance.\n   * TS 4.0 doesn't allow properties to override accessors or vice-versa.\n   * @docs-private\n   */\n  _setTemplateLabelInput(value) {\n    // Only update the label if the query managed to find one. This works around an issue where a\n    // user may have manually set `templateLabel` during creation mode, which would then get\n    // clobbered by `undefined` when the query resolves. Also note that we check that the closest\n    // tab matches the current one so that we don't pick up labels from nested tabs.\n    if (value && value._closestTab === this) {\n      this._templateLabel = value;\n    }\n  }\n}\n_MatTabBase.ɵfac = function _MatTabBase_Factory(t) {\n  return new (t || _MatTabBase)(i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(MAT_TAB_GROUP, 8));\n};\n_MatTabBase.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n  type: _MatTabBase,\n  viewQuery: function _MatTabBase_Query(rf, ctx) {\n    if (rf & 1) {\n      i0.ɵɵviewQuery(TemplateRef, 7);\n    }\n    if (rf & 2) {\n      let _t;\n      i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._implicitContent = _t.first);\n    }\n  },\n  inputs: {\n    textLabel: [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  features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature]\n});\n(() => {\n  (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(_MatTabBase, [{\n    type: Directive\n  }], function () {\n    return [{\n      type: i0.ViewContainerRef\n    }, {\n      type: undefined,\n      decorators: [{\n        type: Inject,\n        args: [MAT_TAB_GROUP]\n      }, {\n        type: Optional\n      }]\n    }];\n  }, {\n    _implicitContent: [{\n      type: ViewChild,\n      args: [TemplateRef, {\n        static: true\n      }]\n    }],\n    textLabel: [{\n      type: Input,\n      args: ['label']\n    }],\n    ariaLabel: [{\n      type: Input,\n      args: ['aria-label']\n    }],\n    ariaLabelledby: [{\n      type: Input,\n      args: ['aria-labelledby']\n    }],\n    labelClass: [{\n      type: Input\n    }],\n    bodyClass: [{\n      type: Input\n    }]\n  });\n})();\nclass MatTab extends _MatTabBase {\n  /** Content for the tab label given by `<ng-template mat-tab-label>`. */\n  get templateLabel() {\n    return this._templateLabel;\n  }\n  set templateLabel(value) {\n    this._setTemplateLabelInput(value);\n  }\n}\nMatTab.ɵfac = /* @__PURE__ */(() => {\n  let ɵMatTab_BaseFactory;\n  return function MatTab_Factory(t) {\n    return (ɵMatTab_BaseFactory || (ɵMatTab_BaseFactory = i0.ɵɵgetInheritedFactory(MatTab)))(t || MatTab);\n  };\n})();\nMatTab.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n  type: MatTab,\n  selectors: [[\"mat-tab\"]],\n  contentQueries: function MatTab_ContentQueries(rf, ctx, dirIndex) {\n    if (rf & 1) {\n      i0.ɵɵcontentQuery(dirIndex, MatTabContent, 7, TemplateRef);\n      i0.ɵɵcontentQuery(dirIndex, MatTabLabel, 5);\n    }\n    if (rf & 2) {\n      let _t;\n      i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._explicitContent = _t.first);\n      i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templateLabel = _t.first);\n    }\n  },\n  inputs: {\n    disabled: \"disabled\"\n  },\n  exportAs: [\"matTab\"],\n  features: [i0.ɵɵProvidersFeature([{\n    provide: MAT_TAB,\n    useExisting: MatTab\n  }]), i0.ɵɵInheritDefinitionFeature],\n  ngContentSelectors: _c2,\n  decls: 1,\n  vars: 0,\n  template: function MatTab_Template(rf, ctx) {\n    if (rf & 1) {\n      i0.ɵɵprojectionDef();\n      i0.ɵɵtemplate(0, MatTab_ng_template_0_Template, 1, 0, \"ng-template\");\n    }\n  },\n  encapsulation: 2\n});\n(() => {\n  (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatTab, [{\n    type: Component,\n    args: [{\n      selector: 'mat-tab',\n      inputs: ['disabled'],\n      changeDetection: ChangeDetectionStrategy.Default,\n      encapsulation: ViewEncapsulation.None,\n      exportAs: 'matTab',\n      providers: [{\n        provide: MAT_TAB,\n        useExisting: MatTab\n      }],\n      template: \"<!-- Create a template for the content of the <mat-tab> so that we can grab a reference to this\\n    TemplateRef and use it in a Portal to render the tab content in the appropriate place in the\\n    tab-group. -->\\n<ng-template><ng-content></ng-content></ng-template>\\n\"\n    }]\n  }], null, {\n    _explicitContent: [{\n      type: ContentChild,\n      args: [MatTabContent, {\n        read: TemplateRef,\n        static: true\n      }]\n    }],\n    templateLabel: [{\n      type: ContentChild,\n      args: [MatTabLabel]\n    }]\n  });\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Config used to bind passive event listeners */\nconst passiveEventListenerOptions = normalizePassiveListenerOptions({\n  passive: true\n});\n/**\n * Amount of milliseconds to wait before starting to scroll the header automatically.\n * Set a little conservatively in order to handle fake events dispatched on touch devices.\n */\nconst HEADER_SCROLL_DELAY = 650;\n/**\n * Interval in milliseconds at which to scroll the header\n * while the user is holding their pointer.\n */\nconst HEADER_SCROLL_INTERVAL = 100;\n/**\n * Base class for a tab header that supported pagination.\n * @docs-private\n */\nclass MatPaginatedTabHeader {\n  /**\n   * Whether pagination should be disabled. This can be used to avoid unnecessary\n   * layout recalculations if it's known that pagination won't be required.\n   */\n  get disablePagination() {\n    return this._disablePagination;\n  }\n  set disablePagination(value) {\n    this._disablePagination = coerceBooleanProperty(value);\n  }\n  /** The index of the active tab. */\n  get selectedIndex() {\n    return this._selectedIndex;\n  }\n  set selectedIndex(value) {\n    value = coerceNumberProperty(value);\n    if (this._selectedIndex != value) {\n      this._selectedIndexChanged = true;\n      this._selectedIndex = value;\n      if (this._keyManager) {\n        this._keyManager.updateActiveItem(value);\n      }\n    }\n  }\n  constructor(_elementRef, _changeDetectorRef, _viewportRuler, _dir, _ngZone, _platform, _animationMode) {\n    this._elementRef = _elementRef;\n    this._changeDetectorRef = _changeDetectorRef;\n    this._viewportRuler = _viewportRuler;\n    this._dir = _dir;\n    this._ngZone = _ngZone;\n    this._platform = _platform;\n    this._animationMode = _animationMode;\n    /** The distance in pixels that the tab labels should be translated to the left. */\n    this._scrollDistance = 0;\n    /** Whether the header should scroll to the selected index after the view has been checked. */\n    this._selectedIndexChanged = false;\n    /** Emits when the component is destroyed. */\n    this._destroyed = new Subject();\n    /** Whether the controls for pagination should be displayed */\n    this._showPaginationControls = false;\n    /** Whether the tab list can be scrolled more towards the end of the tab label list. */\n    this._disableScrollAfter = true;\n    /** Whether the tab list can be scrolled more towards the beginning of the tab label list. */\n    this._disableScrollBefore = true;\n    /** Stream that will stop the automated scrolling. */\n    this._stopScrolling = new Subject();\n    this._disablePagination = false;\n    this._selectedIndex = 0;\n    /** Event emitted when the option is selected. */\n    this.selectFocusedIndex = new EventEmitter();\n    /** Event emitted when a label is focused. */\n    this.indexFocused = new EventEmitter();\n    // Bind the `mouseleave` event on the outside since it doesn't change anything in the view.\n    _ngZone.runOutsideAngular(() => {\n      fromEvent(_elementRef.nativeElement, 'mouseleave').pipe(takeUntil(this._destroyed)).subscribe(() => {\n        this._stopInterval();\n      });\n    });\n  }\n  ngAfterViewInit() {\n    // We need to handle these events manually, because we want to bind passive event listeners.\n    fromEvent(this._previousPaginator.nativeElement, 'touchstart', passiveEventListenerOptions).pipe(takeUntil(this._destroyed)).subscribe(() => {\n      this._handlePaginatorPress('before');\n    });\n    fromEvent(this._nextPaginator.nativeElement, 'touchstart', passiveEventListenerOptions).pipe(takeUntil(this._destroyed)).subscribe(() => {\n      this._handlePaginatorPress('after');\n    });\n  }\n  ngAfterContentInit() {\n    const dirChange = this._dir ? this._dir.change : of('ltr');\n    const resize = this._viewportRuler.change(150);\n    const realign = () => {\n      this.updatePagination();\n      this._alignInkBarToSelectedTab();\n    };\n    this._keyManager = new FocusKeyManager(this._items).withHorizontalOrientation(this._getLayoutDirection()).withHomeAndEnd().withWrap()\n    // Allow focus to land on disabled tabs, as per https://w3c.github.io/aria-practices/#kbd_disabled_controls\n    .skipPredicate(() => false);\n    this._keyManager.updateActiveItem(this._selectedIndex);\n    // Defer the first call in order to allow for slower browsers to lay out the elements.\n    // This helps in cases where the user lands directly on a page with paginated tabs.\n    // Note that we use `onStable` instead of `requestAnimationFrame`, because the latter\n    // can hold up tests that are in a background tab.\n    this._ngZone.onStable.pipe(take(1)).subscribe(realign);\n    // On dir change or window resize, realign the ink bar and update the orientation of\n    // the key manager if the direction has changed.\n    merge(dirChange, resize, this._items.changes, this._itemsResized()).pipe(takeUntil(this._destroyed)).subscribe(() => {\n      // We need to defer this to give the browser some time to recalculate\n      // the element dimensions. The call has to be wrapped in `NgZone.run`,\n      // because the viewport change handler runs outside of Angular.\n      this._ngZone.run(() => {\n        Promise.resolve().then(() => {\n          // Clamp the scroll distance, because it can change with the number of tabs.\n          this._scrollDistance = Math.max(0, Math.min(this._getMaxScrollDistance(), this._scrollDistance));\n          realign();\n        });\n      });\n      this._keyManager.withHorizontalOrientation(this._getLayoutDirection());\n    });\n    // If there is a change in the focus key manager we need to emit the `indexFocused`\n    // event in order to provide a public event that notifies about focus changes. Also we realign\n    // the tabs container by scrolling the new focused tab into the visible section.\n    this._keyManager.change.subscribe(newFocusIndex => {\n      this.indexFocused.emit(newFocusIndex);\n      this._setTabFocus(newFocusIndex);\n    });\n  }\n  /** Sends any changes that could affect the layout of the items. */\n  _itemsResized() {\n    if (typeof ResizeObserver !== 'function') {\n      return EMPTY;\n    }\n    return this._items.changes.pipe(startWith(this._items), switchMap(tabItems => new Observable(observer => this._ngZone.runOutsideAngular(() => {\n      const resizeObserver = new ResizeObserver(entries => observer.next(entries));\n      tabItems.forEach(item => resizeObserver.observe(item.elementRef.nativeElement));\n      return () => {\n        resizeObserver.disconnect();\n      };\n    }))),\n    // Skip the first emit since the resize observer emits when an item\n    // is observed for new items when the tab is already inserted\n    skip(1),\n    // Skip emissions where all the elements are invisible since we don't want\n    // the header to try and re-render with invalid measurements. See #25574.\n    filter(entries => entries.some(e => e.contentRect.width > 0 && e.contentRect.height > 0)));\n  }\n  ngAfterContentChecked() {\n    // If the number of tab labels have changed, check if scrolling should be enabled\n    if (this._tabLabelCount != this._items.length) {\n      this.updatePagination();\n      this._tabLabelCount = this._items.length;\n      this._changeDetectorRef.markForCheck();\n    }\n    // If the selected index has changed, scroll to the label and check if the scrolling controls\n    // should be disabled.\n    if (this._selectedIndexChanged) {\n      this._scrollToLabel(this._selectedIndex);\n      this._checkScrollingControls();\n      this._alignInkBarToSelectedTab();\n      this._selectedIndexChanged = false;\n      this._changeDetectorRef.markForCheck();\n    }\n    // If the scroll distance has been changed (tab selected, focused, scroll controls activated),\n    // then translate the header to reflect this.\n    if (this._scrollDistanceChanged) {\n      this._updateTabScrollPosition();\n      this._scrollDistanceChanged = false;\n      this._changeDetectorRef.markForCheck();\n    }\n  }\n  ngOnDestroy() {\n    this._keyManager?.destroy();\n    this._destroyed.next();\n    this._destroyed.complete();\n    this._stopScrolling.complete();\n  }\n  /** Handles keyboard events on the header. */\n  _handleKeydown(event) {\n    // We don't handle any key bindings with a modifier key.\n    if (hasModifierKey(event)) {\n      return;\n    }\n    switch (event.keyCode) {\n      case ENTER:\n      case SPACE:\n        if (this.focusIndex !== this.selectedIndex) {\n          const item = this._items.get(this.focusIndex);\n          if (item && !item.disabled) {\n            this.selectFocusedIndex.emit(this.focusIndex);\n            this._itemSelected(event);\n          }\n        }\n        break;\n      default:\n        this._keyManager.onKeydown(event);\n    }\n  }\n  /**\n   * Callback for when the MutationObserver detects that the content has changed.\n   */\n  _onContentChanges() {\n    const textContent = this._elementRef.nativeElement.textContent;\n    // We need to diff the text content of the header, because the MutationObserver callback\n    // will fire even if the text content didn't change which is inefficient and is prone\n    // to infinite loops if a poorly constructed expression is passed in (see #14249).\n    if (textContent !== this._currentTextContent) {\n      this._currentTextContent = textContent || '';\n      // The content observer runs outside the `NgZone` by default, which\n      // means that we need to bring the callback back in ourselves.\n      this._ngZone.run(() => {\n        this.updatePagination();\n        this._alignInkBarToSelectedTab();\n        this._changeDetectorRef.markForCheck();\n      });\n    }\n  }\n  /**\n   * Updates the view whether pagination should be enabled or not.\n   *\n   * WARNING: Calling this method can be very costly in terms of performance. It should be called\n   * as infrequently as possible from outside of the Tabs component as it causes a reflow of the\n   * page.\n   */\n  updatePagination() {\n    this._checkPaginationEnabled();\n    this._checkScrollingControls();\n    this._updateTabScrollPosition();\n  }\n  /** Tracks which element has focus; used for keyboard navigation */\n  get focusIndex() {\n    return this._keyManager ? this._keyManager.activeItemIndex : 0;\n  }\n  /** When the focus index is set, we must manually send focus to the correct label */\n  set focusIndex(value) {\n    if (!this._isValidIndex(value) || this.focusIndex === value || !this._keyManager) {\n      return;\n    }\n    this._keyManager.setActiveItem(value);\n  }\n  /**\n   * Determines if an index is valid.  If the tabs are not ready yet, we assume that the user is\n   * providing a valid index and return true.\n   */\n  _isValidIndex(index) {\n    return this._items ? !!this._items.toArray()[index] : true;\n  }\n  /**\n   * Sets focus on the HTML element for the label wrapper and scrolls it into the view if\n   * scrolling is enabled.\n   */\n  _setTabFocus(tabIndex) {\n    if (this._showPaginationControls) {\n      this._scrollToLabel(tabIndex);\n    }\n    if (this._items && this._items.length) {\n      this._items.toArray()[tabIndex].focus();\n      // Do not let the browser manage scrolling to focus the element, this will be handled\n      // by using translation. In LTR, the scroll left should be 0. In RTL, the scroll width\n      // should be the full width minus the offset width.\n      const containerEl = this._tabListContainer.nativeElement;\n      const dir = this._getLayoutDirection();\n      if (dir == 'ltr') {\n        containerEl.scrollLeft = 0;\n      } else {\n        containerEl.scrollLeft = containerEl.scrollWidth - containerEl.offsetWidth;\n      }\n    }\n  }\n  /** The layout direction of the containing app. */\n  _getLayoutDirection() {\n    return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';\n  }\n  /** Performs the CSS transformation on the tab list that will cause the list to scroll. */\n  _updateTabScrollPosition() {\n    if (this.disablePagination) {\n      return;\n    }\n    const scrollDistance = this.scrollDistance;\n    const translateX = this._getLayoutDirection() === 'ltr' ? -scrollDistance : scrollDistance;\n    // Don't use `translate3d` here because we don't want to create a new layer. A new layer\n    // seems to cause flickering and overflow in Internet Explorer. For example, the ink bar\n    // and ripples will exceed the boundaries of the visible tab bar.\n    // See: https://github.com/angular/components/issues/10276\n    // We round the `transform` here, because transforms with sub-pixel precision cause some\n    // browsers to blur the content of the element.\n    this._tabList.nativeElement.style.transform = `translateX(${Math.round(translateX)}px)`;\n    // Setting the `transform` on IE will change the scroll offset of the parent, causing the\n    // position to be thrown off in some cases. We have to reset it ourselves to ensure that\n    // it doesn't get thrown off. Note that we scope it only to IE and Edge, because messing\n    // with the scroll position throws off Chrome 71+ in RTL mode (see #14689).\n    if (this._platform.TRIDENT || this._platform.EDGE) {\n      this._tabListContainer.nativeElement.scrollLeft = 0;\n    }\n  }\n  /** Sets the distance in pixels that the tab header should be transformed in the X-axis. */\n  get scrollDistance() {\n    return this._scrollDistance;\n  }\n  set scrollDistance(value) {\n    this._scrollTo(value);\n  }\n  /**\n   * Moves the tab list in the 'before' or 'after' direction (towards the beginning of the list or\n   * the end of the list, respectively). The distance to scroll is computed to be a third of the\n   * length of the tab list view window.\n   *\n   * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n   * should be called sparingly.\n   */\n  _scrollHeader(direction) {\n    const viewLength = this._tabListContainer.nativeElement.offsetWidth;\n    // Move the scroll distance one-third the length of the tab list's viewport.\n    const scrollAmount = (direction == 'before' ? -1 : 1) * viewLength / 3;\n    return this._scrollTo(this._scrollDistance + scrollAmount);\n  }\n  /** Handles click events on the pagination arrows. */\n  _handlePaginatorClick(direction) {\n    this._stopInterval();\n    this._scrollHeader(direction);\n  }\n  /**\n   * Moves the tab list such that the desired tab label (marked by index) is moved into view.\n   *\n   * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n   * should be called sparingly.\n   */\n  _scrollToLabel(labelIndex) {\n    if (this.disablePagination) {\n      return;\n    }\n    const selectedLabel = this._items ? this._items.toArray()[labelIndex] : null;\n    if (!selectedLabel) {\n      return;\n    }\n    // The view length is the visible width of the tab labels.\n    const viewLength = this._tabListContainer.nativeElement.offsetWidth;\n    const {\n      offsetLeft,\n      offsetWidth\n    } = selectedLabel.elementRef.nativeElement;\n    let labelBeforePos, labelAfterPos;\n    if (this._getLayoutDirection() == 'ltr') {\n      labelBeforePos = offsetLeft;\n      labelAfterPos = labelBeforePos + offsetWidth;\n    } else {\n      labelAfterPos = this._tabListInner.nativeElement.offsetWidth - offsetLeft;\n      labelBeforePos = labelAfterPos - offsetWidth;\n    }\n    const beforeVisiblePos = this.scrollDistance;\n    const afterVisiblePos = this.scrollDistance + viewLength;\n    if (labelBeforePos < beforeVisiblePos) {\n      // Scroll header to move label to the before direction\n      this.scrollDistance -= beforeVisiblePos - labelBeforePos;\n    } else if (labelAfterPos > afterVisiblePos) {\n      // Scroll header to move label to the after direction\n      this.scrollDistance += Math.min(labelAfterPos - afterVisiblePos, labelBeforePos - beforeVisiblePos);\n    }\n  }\n  /**\n   * Evaluate whether the pagination controls should be displayed. If the scroll width of the\n   * tab list is wider than the size of the header container, then the pagination controls should\n   * be shown.\n   *\n   * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n   * should be called sparingly.\n   */\n  _checkPaginationEnabled() {\n    if (this.disablePagination) {\n      this._showPaginationControls = false;\n    } else {\n      const isEnabled = this._tabListInner.nativeElement.scrollWidth > this._elementRef.nativeElement.offsetWidth;\n      if (!isEnabled) {\n        this.scrollDistance = 0;\n      }\n      if (isEnabled !== this._showPaginationControls) {\n        this._changeDetectorRef.markForCheck();\n      }\n      this._showPaginationControls = isEnabled;\n    }\n  }\n  /**\n   * Evaluate whether the before and after controls should be enabled or disabled.\n   * If the header is at the beginning of the list (scroll distance is equal to 0) then disable the\n   * before button. If the header is at the end of the list (scroll distance is equal to the\n   * maximum distance we can scroll), then disable the after button.\n   *\n   * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n   * should be called sparingly.\n   */\n  _checkScrollingControls() {\n    if (this.disablePagination) {\n      this._disableScrollAfter = this._disableScrollBefore = true;\n    } else {\n      // Check if the pagination arrows should be activated.\n      this._disableScrollBefore = this.scrollDistance == 0;\n      this._disableScrollAfter = this.scrollDistance == this._getMaxScrollDistance();\n      this._changeDetectorRef.markForCheck();\n    }\n  }\n  /**\n   * Determines what is the maximum length in pixels that can be set for the scroll distance. This\n   * is equal to the difference in width between the tab list container and tab header container.\n   *\n   * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n   * should be called sparingly.\n   */\n  _getMaxScrollDistance() {\n    const lengthOfTabList = this._tabListInner.nativeElement.scrollWidth;\n    const viewLength = this._tabListContainer.nativeElement.offsetWidth;\n    return lengthOfTabList - viewLength || 0;\n  }\n  /** Tells the ink-bar to align itself to the current label wrapper */\n  _alignInkBarToSelectedTab() {\n    const selectedItem = this._items && this._items.length ? this._items.toArray()[this.selectedIndex] : null;\n    const selectedLabelWrapper = selectedItem ? selectedItem.elementRef.nativeElement : null;\n    if (selectedLabelWrapper) {\n      this._inkBar.alignToElement(selectedLabelWrapper);\n    } else {\n      this._inkBar.hide();\n    }\n  }\n  /** Stops the currently-running paginator interval.  */\n  _stopInterval() {\n    this._stopScrolling.next();\n  }\n  /**\n   * Handles the user pressing down on one of the paginators.\n   * Starts scrolling the header after a certain amount of time.\n   * @param direction In which direction the paginator should be scrolled.\n   */\n  _handlePaginatorPress(direction, mouseEvent) {\n    // Don't start auto scrolling for right mouse button clicks. Note that we shouldn't have to\n    // null check the `button`, but we do it so we don't break tests that use fake events.\n    if (mouseEvent && mouseEvent.button != null && mouseEvent.button !== 0) {\n      return;\n    }\n    // Avoid overlapping timers.\n    this._stopInterval();\n    // Start a timer after the delay and keep firing based on the interval.\n    timer(HEADER_SCROLL_DELAY, HEADER_SCROLL_INTERVAL)\n    // Keep the timer going until something tells it to stop or the component is destroyed.\n    .pipe(takeUntil(merge(this._stopScrolling, this._destroyed))).subscribe(() => {\n      const {\n        maxScrollDistance,\n        distance\n      } = this._scrollHeader(direction);\n      // Stop the timer if we've reached the start or the end.\n      if (distance === 0 || distance >= maxScrollDistance) {\n        this._stopInterval();\n      }\n    });\n  }\n  /**\n   * Scrolls the header to a given position.\n   * @param position Position to which to scroll.\n   * @returns Information on the current scroll distance and the maximum.\n   */\n  _scrollTo(position) {\n    if (this.disablePagination) {\n      return {\n        maxScrollDistance: 0,\n        distance: 0\n      };\n    }\n    const maxScrollDistance = this._getMaxScrollDistance();\n    this._scrollDistance = Math.max(0, Math.min(maxScrollDistance, position));\n    // Mark that the scroll distance has changed so that after the view is checked, the CSS\n    // transformation can move the header.\n    this._scrollDistanceChanged = true;\n    this._checkScrollingControls();\n    return {\n      maxScrollDistance,\n      distance: this._scrollDistance\n    };\n  }\n}\nMatPaginatedTabHeader.ɵfac = function MatPaginatedTabHeader_Factory(t) {\n  return new (t || MatPaginatedTabHeader)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1$1.ViewportRuler), i0.ɵɵdirectiveInject(i1.Directionality, 8), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i3.Platform), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n};\nMatPaginatedTabHeader.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n  type: MatPaginatedTabHeader,\n  inputs: {\n    disablePagination: \"disablePagination\"\n  }\n});\n(() => {\n  (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatPaginatedTabHeader, [{\n    type: Directive\n  }], function () {\n    return [{\n      type: i0.ElementRef\n    }, {\n      type: i0.ChangeDetectorRef\n    }, {\n      type: i1$1.ViewportRuler\n    }, {\n      type: i1.Directionality,\n      decorators: [{\n        type: Optional\n      }]\n    }, {\n      type: i0.NgZone\n    }, {\n      type: i3.Platform\n    }, {\n      type: undefined,\n      decorators: [{\n        type: Optional\n      }, {\n        type: Inject,\n        args: [ANIMATION_MODULE_TYPE]\n      }]\n    }];\n  }, {\n    disablePagination: [{\n      type: Input\n    }]\n  });\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Base class with all of the `MatTabHeader` functionality.\n * @docs-private\n */\nclass _MatTabHeaderBase extends MatPaginatedTabHeader {\n  /** Whether the ripple effect is disabled or not. */\n  get disableRipple() {\n    return this._disableRipple;\n  }\n  set disableRipple(value) {\n    this._disableRipple = coerceBooleanProperty(value);\n  }\n  constructor(elementRef, changeDetectorRef, viewportRuler, dir, ngZone, platform, animationMode) {\n    super(elementRef, changeDetectorRef, viewportRuler, dir, ngZone, platform, animationMode);\n    this._disableRipple = false;\n  }\n  _itemSelected(event) {\n    event.preventDefault();\n  }\n}\n_MatTabHeaderBase.ɵfac = function _MatTabHeaderBase_Factory(t) {\n  return new (t || _MatTabHeaderBase)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1$1.ViewportRuler), i0.ɵɵdirectiveInject(i1.Directionality, 8), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i3.Platform), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n};\n_MatTabHeaderBase.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n  type: _MatTabHeaderBase,\n  inputs: {\n    disableRipple: \"disableRipple\"\n  },\n  features: [i0.ɵɵInheritDefinitionFeature]\n});\n(() => {\n  (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(_MatTabHeaderBase, [{\n    type: Directive\n  }], function () {\n    return [{\n      type: i0.ElementRef\n    }, {\n      type: i0.ChangeDetectorRef\n    }, {\n      type: i1$1.ViewportRuler\n    }, {\n      type: i1.Directionality,\n      decorators: [{\n        type: Optional\n      }]\n    }, {\n      type: i0.NgZone\n    }, {\n      type: i3.Platform\n    }, {\n      type: undefined,\n      decorators: [{\n        type: Optional\n      }, {\n        type: Inject,\n        args: [ANIMATION_MODULE_TYPE]\n      }]\n    }];\n  }, {\n    disableRipple: [{\n      type: Input\n    }]\n  });\n})();\n/**\n * The header of the tab group which displays a list of all the tabs in the tab group. Includes\n * an ink bar that follows the currently selected tab. When the tabs list's width exceeds the\n * width of the header container, then arrows will be displayed to allow the user to scroll\n * left and right across the header.\n * @docs-private\n */\nclass MatTabHeader extends _MatTabHeaderBase {\n  constructor(elementRef, changeDetectorRef, viewportRuler, dir, ngZone, platform, animationMode) {\n    super(elementRef, changeDetectorRef, viewportRuler, dir, ngZone, platform, animationMode);\n  }\n  ngAfterContentInit() {\n    this._inkBar = new MatInkBar(this._items);\n    super.ngAfterContentInit();\n  }\n}\nMatTabHeader.ɵfac = function MatTabHeader_Factory(t) {\n  return new (t || MatTabHeader)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1$1.ViewportRuler), i0.ɵɵdirectiveInject(i1.Directionality, 8), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i3.Platform), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n};\nMatTabHeader.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n  type: MatTabHeader,\n  selectors: [[\"mat-tab-header\"]],\n  contentQueries: function MatTabHeader_ContentQueries(rf, ctx, dirIndex) {\n    if (rf & 1) {\n      i0.ɵɵcontentQuery(dirIndex, MatTabLabelWrapper, 4);\n    }\n    if (rf & 2) {\n      let _t;\n      i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._items = _t);\n    }\n  },\n  viewQuery: function MatTabHeader_Query(rf, ctx) {\n    if (rf & 1) {\n      i0.ɵɵviewQuery(_c3, 7);\n      i0.ɵɵviewQuery(_c4, 7);\n      i0.ɵɵviewQuery(_c5, 7);\n      i0.ɵɵviewQuery(_c6, 5);\n      i0.ɵɵviewQuery(_c7, 5);\n    }\n    if (rf & 2) {\n      let _t;\n      i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._tabListContainer = _t.first);\n      i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._tabList = _t.first);\n      i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._tabListInner = _t.first);\n      i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._nextPaginator = _t.first);\n      i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._previousPaginator = _t.first);\n    }\n  },\n  hostAttrs: [1, \"mat-mdc-tab-header\"],\n  hostVars: 4,\n  hostBindings: function MatTabHeader_HostBindings(rf, ctx) {\n    if (rf & 2) {\n      i0.ɵɵclassProp(\"mat-mdc-tab-header-pagination-controls-enabled\", ctx._showPaginationControls)(\"mat-mdc-tab-header-rtl\", ctx._getLayoutDirection() == \"rtl\");\n    }\n  },\n  inputs: {\n    selectedIndex: \"selectedIndex\"\n  },\n  outputs: {\n    selectFocusedIndex: \"selectFocusedIndex\",\n    indexFocused: \"indexFocused\"\n  },\n  features: [i0.ɵɵInheritDefinitionFeature],\n  ngContentSelectors: _c2,\n  decls: 13,\n  vars: 10,\n  consts: [[\"previousPaginator\", \"\"], [\"tabListContainer\", \"\"], [\"tabList\", \"\"], [\"tabListInner\", \"\"], [\"nextPaginator\", \"\"], [\"aria-hidden\", \"true\", \"type\", \"button\", \"mat-ripple\", \"\", \"tabindex\", \"-1\", 1, \"mat-mdc-tab-header-pagination\", \"mat-mdc-tab-header-pagination-before\", 3, \"click\", \"mousedown\", \"touchend\", \"matRippleDisabled\", \"disabled\"], [1, \"mat-mdc-tab-header-pagination-chevron\"], [1, \"mat-mdc-tab-label-container\", 3, \"keydown\"], [\"role\", \"tablist\", 1, \"mat-mdc-tab-list\", 3, \"cdkObserveContent\"], [1, \"mat-mdc-tab-labels\"], [\"aria-hidden\", \"true\", \"type\", \"button\", \"mat-ripple\", \"\", \"tabindex\", \"-1\", 1, \"mat-mdc-tab-header-pagination\", \"mat-mdc-tab-header-pagination-after\", 3, \"mousedown\", \"click\", \"touchend\", \"matRippleDisabled\", \"disabled\"]],\n  template: function MatTabHeader_Template(rf, ctx) {\n    if (rf & 1) {\n      const _r1 = i0.ɵɵgetCurrentView();\n      i0.ɵɵprojectionDef();\n      i0.ɵɵelementStart(0, \"button\", 5, 0);\n      i0.ɵɵlistener(\"click\", function MatTabHeader_Template_button_click_0_listener() {\n        i0.ɵɵrestoreView(_r1);\n        return i0.ɵɵresetView(ctx._handlePaginatorClick(\"before\"));\n      })(\"mousedown\", function MatTabHeader_Template_button_mousedown_0_listener($event) {\n        i0.ɵɵrestoreView(_r1);\n        return i0.ɵɵresetView(ctx._handlePaginatorPress(\"before\", $event));\n      })(\"touchend\", function MatTabHeader_Template_button_touchend_0_listener() {\n        i0.ɵɵrestoreView(_r1);\n        return i0.ɵɵresetView(ctx._stopInterval());\n      });\n      i0.ɵɵelement(2, \"div\", 6);\n      i0.ɵɵelementEnd();\n      i0.ɵɵelementStart(3, \"div\", 7, 1);\n      i0.ɵɵlistener(\"keydown\", function MatTabHeader_Template_div_keydown_3_listener($event) {\n        i0.ɵɵrestoreView(_r1);\n        return i0.ɵɵresetView(ctx._handleKeydown($event));\n      });\n      i0.ɵɵelementStart(5, \"div\", 8, 2);\n      i0.ɵɵlistener(\"cdkObserveContent\", function MatTabHeader_Template_div_cdkObserveContent_5_listener() {\n        i0.ɵɵrestoreView(_r1);\n        return i0.ɵɵresetView(ctx._onContentChanges());\n      });\n      i0.ɵɵelementStart(7, \"div\", 9, 3);\n      i0.ɵɵprojection(9);\n      i0.ɵɵelementEnd()()();\n      i0.ɵɵelementStart(10, \"button\", 10, 4);\n      i0.ɵɵlistener(\"mousedown\", function MatTabHeader_Template_button_mousedown_10_listener($event) {\n        i0.ɵɵrestoreView(_r1);\n        return i0.ɵɵresetView(ctx._handlePaginatorPress(\"after\", $event));\n      })(\"click\", function MatTabHeader_Template_button_click_10_listener() {\n        i0.ɵɵrestoreView(_r1);\n        return i0.ɵɵresetView(ctx._handlePaginatorClick(\"after\"));\n      })(\"touchend\", function MatTabHeader_Template_button_touchend_10_listener() {\n        i0.ɵɵrestoreView(_r1);\n        return i0.ɵɵresetView(ctx._stopInterval());\n      });\n      i0.ɵɵelement(12, \"div\", 6);\n      i0.ɵɵelementEnd();\n    }\n    if (rf & 2) {\n      i0.ɵɵclassProp(\"mat-mdc-tab-header-pagination-disabled\", ctx._disableScrollBefore);\n      i0.ɵɵproperty(\"matRippleDisabled\", ctx._disableScrollBefore || ctx.disableRipple)(\"disabled\", ctx._disableScrollBefore || null);\n      i0.ɵɵadvance(3);\n      i0.ɵɵclassProp(\"_mat-animation-noopable\", ctx._animationMode === \"NoopAnimations\");\n      i0.ɵɵadvance(7);\n      i0.ɵɵclassProp(\"mat-mdc-tab-header-pagination-disabled\", ctx._disableScrollAfter);\n      i0.ɵɵproperty(\"matRippleDisabled\", ctx._disableScrollAfter || ctx.disableRipple)(\"disabled\", ctx._disableScrollAfter || null);\n    }\n  },\n  dependencies: [i5.MatRipple, i5$1.CdkObserveContent],\n  styles: [\".mat-mdc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.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}.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}.mat-mdc-tab-header-pagination-disabled{box-shadow:none;cursor:default;pointer-events:none}.mat-mdc-tab-header-pagination-disabled .mat-mdc-tab-header-pagination-chevron{opacity:.4}.mat-mdc-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-mdc-tab-list{transition:none}._mat-animation-noopable span.mdc-tab-indicator__content,._mat-animation-noopable span.mdc-tab__text-label{transition:none}.mat-mdc-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-mdc-tab-labels{display:flex;flex:1 0 auto}[mat-align-tabs=center]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:flex-end}.mat-mdc-tab::before{margin:5px}.cdk-high-contrast-active .mat-mdc-tab[aria-disabled=true]{color:GrayText}\"],\n  encapsulation: 2\n});\n(() => {\n  (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatTabHeader, [{\n    type: Component,\n    args: [{\n      selector: 'mat-tab-header',\n      inputs: ['selectedIndex'],\n      outputs: ['selectFocusedIndex', 'indexFocused'],\n      encapsulation: ViewEncapsulation.None,\n      changeDetection: ChangeDetectionStrategy.Default,\n      host: {\n        'class': 'mat-mdc-tab-header',\n        '[class.mat-mdc-tab-header-pagination-controls-enabled]': '_showPaginationControls',\n        '[class.mat-mdc-tab-header-rtl]': \"_getLayoutDirection() == 'rtl'\"\n      },\n      template: \"<!-- TODO: this also had `mat-elevation-z4`. Figure out what we should do with it. -->\\n<button class=\\\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-before\\\"\\n     #previousPaginator\\n     aria-hidden=\\\"true\\\"\\n     type=\\\"button\\\"\\n     mat-ripple\\n     tabindex=\\\"-1\\\"\\n     [matRippleDisabled]=\\\"_disableScrollBefore || disableRipple\\\"\\n     [class.mat-mdc-tab-header-pagination-disabled]=\\\"_disableScrollBefore\\\"\\n     [disabled]=\\\"_disableScrollBefore || null\\\"\\n     (click)=\\\"_handlePaginatorClick('before')\\\"\\n     (mousedown)=\\\"_handlePaginatorPress('before', $event)\\\"\\n     (touchend)=\\\"_stopInterval()\\\">\\n  <div class=\\\"mat-mdc-tab-header-pagination-chevron\\\"></div>\\n</button>\\n\\n<div\\n  class=\\\"mat-mdc-tab-label-container\\\"\\n  #tabListContainer\\n  (keydown)=\\\"_handleKeydown($event)\\\"\\n  [class._mat-animation-noopable]=\\\"_animationMode === 'NoopAnimations'\\\">\\n  <div\\n    #tabList\\n    class=\\\"mat-mdc-tab-list\\\"\\n    role=\\\"tablist\\\"\\n    (cdkObserveContent)=\\\"_onContentChanges()\\\">\\n    <div class=\\\"mat-mdc-tab-labels\\\" #tabListInner>\\n      <ng-content></ng-content>\\n    </div>\\n  </div>\\n</div>\\n\\n<!-- TODO: this also had `mat-elevation-z4`. Figure out what we should do with it. -->\\n<button class=\\\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-after\\\"\\n     #nextPaginator\\n     aria-hidden=\\\"true\\\"\\n     type=\\\"button\\\"\\n     mat-ripple\\n     [matRippleDisabled]=\\\"_disableScrollAfter || disableRipple\\\"\\n     [class.mat-mdc-tab-header-pagination-disabled]=\\\"_disableScrollAfter\\\"\\n     [disabled]=\\\"_disableScrollAfter || null\\\"\\n     tabindex=\\\"-1\\\"\\n     (mousedown)=\\\"_handlePaginatorPress('after', $event)\\\"\\n     (click)=\\\"_handlePaginatorClick('after')\\\"\\n     (touchend)=\\\"_stopInterval()\\\">\\n  <div class=\\\"mat-mdc-tab-header-pagination-chevron\\\"></div>\\n</button>\\n\",\n      styles: [\".mat-mdc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.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}.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}.mat-mdc-tab-header-pagination-disabled{box-shadow:none;cursor:default;pointer-events:none}.mat-mdc-tab-header-pagination-disabled .mat-mdc-tab-header-pagination-chevron{opacity:.4}.mat-mdc-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-mdc-tab-list{transition:none}._mat-animation-noopable span.mdc-tab-indicator__content,._mat-animation-noopable span.mdc-tab__text-label{transition:none}.mat-mdc-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-mdc-tab-labels{display:flex;flex:1 0 auto}[mat-align-tabs=center]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:flex-end}.mat-mdc-tab::before{margin:5px}.cdk-high-contrast-active .mat-mdc-tab[aria-disabled=true]{color:GrayText}\"]\n    }]\n  }], function () {\n    return [{\n      type: i0.ElementRef\n    }, {\n      type: i0.ChangeDetectorRef\n    }, {\n      type: i1$1.ViewportRuler\n    }, {\n      type: i1.Directionality,\n      decorators: [{\n        type: Optional\n      }]\n    }, {\n      type: i0.NgZone\n    }, {\n      type: i3.Platform\n    }, {\n      type: undefined,\n      decorators: [{\n        type: Optional\n      }, {\n        type: Inject,\n        args: [ANIMATION_MODULE_TYPE]\n      }]\n    }];\n  }, {\n    _items: [{\n      type: ContentChildren,\n      args: [MatTabLabelWrapper, {\n        descendants: false\n      }]\n    }],\n    _tabListContainer: [{\n      type: ViewChild,\n      args: ['tabListContainer', {\n        static: true\n      }]\n    }],\n    _tabList: [{\n      type: ViewChild,\n      args: ['tabList', {\n        static: true\n      }]\n    }],\n    _tabListInner: [{\n      type: ViewChild,\n      args: ['tabListInner', {\n        static: true\n      }]\n    }],\n    _nextPaginator: [{\n      type: ViewChild,\n      args: ['nextPaginator']\n    }],\n    _previousPaginator: [{\n      type: ViewChild,\n      args: ['previousPaginator']\n    }]\n  });\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\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 * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Used to generate unique ID's for each tab component */\nlet nextId = 0;\n// Boilerplate for applying mixins to MatTabGroup.\n/** @docs-private */\nconst _MatTabGroupMixinBase = mixinColor(mixinDisableRipple(class {\n  constructor(_elementRef) {\n    this._elementRef = _elementRef;\n  }\n}), 'primary');\n/**\n * Base class with all of the `MatTabGroupBase` functionality.\n * @docs-private\n */\nclass _MatTabGroupBase extends _MatTabGroupMixinBase {\n  /** Whether the tab group should grow to the size of the active tab. */\n  get dynamicHeight() {\n    return this._dynamicHeight;\n  }\n  set dynamicHeight(value) {\n    this._dynamicHeight = coerceBooleanProperty(value);\n  }\n  /** The index of the active tab. */\n  get selectedIndex() {\n    return this._selectedIndex;\n  }\n  set selectedIndex(value) {\n    this._indexToSelect = coerceNumberProperty(value, null);\n  }\n  /** Duration for the tab animation. Will be normalized to milliseconds if no units are set. */\n  get animationDuration() {\n    return this._animationDuration;\n  }\n  set animationDuration(value) {\n    this._animationDuration = /^\\d+$/.test(value + '') ? value + 'ms' : value;\n  }\n  /**\n   * `tabindex` to be set on the inner element that wraps the tab content. Can be used for improved\n   * accessibility when the tab does not have focusable elements or if it has scrollable content.\n   * The `tabindex` will be removed automatically for inactive tabs.\n   * Read more at https://www.w3.org/TR/wai-aria-practices/examples/tabs/tabs-2/tabs.html\n   */\n  get contentTabIndex() {\n    return this._contentTabIndex;\n  }\n  set contentTabIndex(value) {\n    this._contentTabIndex = coerceNumberProperty(value, null);\n  }\n  /**\n   * Whether pagination should be disabled. This can be used to avoid unnecessary\n   * layout recalculations if it's known that pagination won't be required.\n   */\n  get disablePagination() {\n    return this._disablePagination;\n  }\n  set disablePagination(value) {\n    this._disablePagination = coerceBooleanProperty(value);\n  }\n  /**\n   * By default tabs remove their content from the DOM while it's off-screen.\n   * Setting this to `true` will keep it in the DOM which will prevent elements\n   * like iframes and videos from reloading next time it comes back into the view.\n   */\n  get preserveContent() {\n    return this._preserveContent;\n  }\n  set preserveContent(value) {\n    this._preserveContent = coerceBooleanProperty(value);\n  }\n  /** Background color of the tab group. */\n  get backgroundColor() {\n    return this._backgroundColor;\n  }\n  set backgroundColor(value) {\n    const classList = this._elementRef.nativeElement.classList;\n    classList.remove('mat-tabs-with-background', `mat-background-${this.backgroundColor}`);\n    if (value) {\n      classList.add('mat-tabs-with-background', `mat-background-${value}`);\n    }\n    this._backgroundColor = value;\n  }\n  constructor(elementRef, _changeDetectorRef, defaultConfig, _animationMode) {\n    super(elementRef);\n    this._changeDetectorRef = _changeDetectorRef;\n    this._animationMode = _animationMode;\n    /** All of the tabs that belong to the group. */\n    this._tabs = new QueryList();\n    /** The tab index that should be selected after the content has been checked. */\n    this._indexToSelect = 0;\n    /** Index of the tab that was focused last. */\n    this._lastFocusedTabIndex = null;\n    /** Snapshot of the height of the tab body wrapper before another tab is activated. */\n    this._tabBodyWrapperHeight = 0;\n    /** Subscription to tabs being added/removed. */\n    this._tabsSubscription = Subscription.EMPTY;\n    /** Subscription to changes in the tab labels. */\n    this._tabLabelSubscription = Subscription.EMPTY;\n    this._dynamicHeight = false;\n    this._selectedIndex = null;\n    /** Position of the tab header. */\n    this.headerPosition = 'above';\n    this._disablePagination = false;\n    this._preserveContent = false;\n    /** Output to enable support for two-way binding on `[(selectedIndex)]` */\n    this.selectedIndexChange = new EventEmitter();\n    /** Event emitted when focus has changed within a tab group. */\n    this.focusChange = new EventEmitter();\n    /** Event emitted when the body animation has completed */\n    this.animationDone = new EventEmitter();\n    /** Event emitted when the tab selection has changed. */\n    this.selectedTabChange = new EventEmitter(true);\n    this._groupId = nextId++;\n    this.animationDuration = defaultConfig && defaultConfig.animationDuration ? defaultConfig.animationDuration : '500ms';\n    this.disablePagination = defaultConfig && defaultConfig.disablePagination != null ? defaultConfig.disablePagination : false;\n    this.dynamicHeight = defaultConfig && defaultConfig.dynamicHeight != null ? defaultConfig.dynamicHeight : false;\n    this.contentTabIndex = defaultConfig?.contentTabIndex ?? null;\n    this.preserveContent = !!defaultConfig?.preserveContent;\n  }\n  /**\n   * After the content is checked, this component knows what tabs have been defined\n   * and what the selected index should be. This is where we can know exactly what position\n   * each tab should be in according to the new selected index, and additionally we know how\n   * a new selected tab should transition in (from the left or right).\n   */\n  ngAfterContentChecked() {\n    // Don't clamp the `indexToSelect` immediately in the setter because it can happen that\n    // the amount of tabs changes before the actual change detection runs.\n    const indexToSelect = this._indexToSelect = this._clampTabIndex(this._indexToSelect);\n    // If there is a change in selected index, emit a change event. Should not trigger if\n    // the selected index has not yet been initialized.\n    if (this._selectedIndex != indexToSelect) {\n      const isFirstRun = this._selectedIndex == null;\n      if (!isFirstRun) {\n        this.selectedTabChange.emit(this._createChangeEvent(indexToSelect));\n        // Preserve the height so page doesn't scroll up during tab change.\n        // Fixes https://stackblitz.com/edit/mat-tabs-scroll-page-top-on-tab-change\n        const wrapper = this._tabBodyWrapper.nativeElement;\n        wrapper.style.minHeight = wrapper.clientHeight + 'px';\n      }\n      // Changing these values after change detection has run\n      // since the checked content may contain references to them.\n      Promise.resolve().then(() => {\n        this._tabs.forEach((tab, index) => tab.isActive = index === indexToSelect);\n        if (!isFirstRun) {\n          this.selectedIndexChange.emit(indexToSelect);\n          // Clear the min-height, this was needed during tab change to avoid\n          // unnecessary scrolling.\n          this._tabBodyWrapper.nativeElement.style.minHeight = '';\n        }\n      });\n    }\n    // Setup the position for each tab and optionally setup an origin on the next selected tab.\n    this._tabs.forEach((tab, index) => {\n      tab.position = index - indexToSelect;\n      // If there is already a selected tab, then set up an origin for the next selected tab\n      // if it doesn't have one already.\n      if (this._selectedIndex != null && tab.position == 0 && !tab.origin) {\n        tab.origin = indexToSelect - this._selectedIndex;\n      }\n    });\n    if (this._selectedIndex !== indexToSelect) {\n      this._selectedIndex = indexToSelect;\n      this._lastFocusedTabIndex = null;\n      this._changeDetectorRef.markForCheck();\n    }\n  }\n  ngAfterContentInit() {\n    this._subscribeToAllTabChanges();\n    this._subscribeToTabLabels();\n    // Subscribe to changes in the amount of tabs, in order to be\n    // able to re-render the content as new tabs are added or removed.\n    this._tabsSubscription = this._tabs.changes.subscribe(() => {\n      const indexToSelect = this._clampTabIndex(this._indexToSelect);\n      // Maintain the previously-selected tab if a new tab is added or removed and there is no\n      // explicit change that selects a different tab.\n      if (indexToSelect === this._selectedIndex) {\n        const tabs = this._tabs.toArray();\n        let selectedTab;\n        for (let i = 0; i < tabs.length; i++) {\n          if (tabs[i].isActive) {\n            // Assign both to the `_indexToSelect` and `_selectedIndex` so we don't fire a changed\n            // event, otherwise the consumer may end up in an infinite loop in some edge cases like\n            // adding a tab within the `selectedIndexChange` event.\n            this._indexToSelect = this._selectedIndex = i;\n            this._lastFocusedTabIndex = null;\n            selectedTab = tabs[i];\n            break;\n          }\n        }\n        // If we haven't found an active tab and a tab exists at the selected index, it means\n        // that the active tab was swapped out. Since this won't be picked up by the rendering\n        // loop in `ngAfterContentChecked`, we need to sync it up manually.\n        if (!selectedTab && tabs[indexToSelect]) {\n          Promise.resolve().then(() => {\n            tabs[indexToSelect].isActive = true;\n            this.selectedTabChange.emit(this._createChangeEvent(indexToSelect));\n          });\n        }\n      }\n      this._changeDetectorRef.markForCheck();\n    });\n  }\n  /** Listens to changes in all of the tabs. */\n  _subscribeToAllTabChanges() {\n    // Since we use a query with `descendants: true` to pick up the tabs, we may end up catching\n    // some that are inside of nested tab groups. We filter them out manually by checking that\n    // the closest group to the tab is the current one.\n    this._allTabs.changes.pipe(startWith(this._allTabs)).subscribe(tabs => {\n      this._tabs.reset(tabs.filter(tab => {\n        return tab._closestTabGroup === this || !tab._closestTabGroup;\n      }));\n      this._tabs.notifyOnChanges();\n    });\n  }\n  ngOnDestroy() {\n    this._tabs.destroy();\n    this._tabsSubscription.unsubscribe();\n    this._tabLabelSubscription.unsubscribe();\n  }\n  /** Re-aligns the ink bar to the selected tab element. */\n  realignInkBar() {\n    if (this._tabHeader) {\n      this._tabHeader._alignInkBarToSelectedTab();\n    }\n  }\n  /**\n   * Recalculates the tab group's pagination dimensions.\n   *\n   * WARNING: Calling this method can be very costly in terms of performance. It should be called\n   * as infrequently as possible from outside of the Tabs component as it causes a reflow of the\n   * page.\n   */\n  updatePagination() {\n    if (this._tabHeader) {\n      this._tabHeader.updatePagination();\n    }\n  }\n  /**\n   * Sets focus to a particular tab.\n   * @param index Index of the tab to be focused.\n   */\n  focusTab(index) {\n    const header = this._tabHeader;\n    if (header) {\n      header.focusIndex = index;\n    }\n  }\n  _focusChanged(index) {\n    this._lastFocusedTabIndex = index;\n    this.focusChange.emit(this._createChangeEvent(index));\n  }\n  _createChangeEvent(index) {\n    const event = new MatTabChangeEvent();\n    event.index = index;\n    if (this._tabs && this._tabs.length) {\n      event.tab = this._tabs.toArray()[index];\n    }\n    return event;\n  }\n  /**\n   * Subscribes to changes in the tab labels. This is needed, because the @Input for the label is\n   * on the MatTab component, whereas the data binding is inside the MatTabGroup. In order for the\n   * binding to be updated, we need to subscribe to changes in it and trigger change detection\n   * manually.\n   */\n  _subscribeToTabLabels() {\n    if (this._tabLabelSubscription) {\n      this._tabLabelSubscription.unsubscribe();\n    }\n    this._tabLabelSubscription = merge(...this._tabs.map(tab => tab._stateChanges)).subscribe(() => this._changeDetectorRef.markForCheck());\n  }\n  /** Clamps the given index to the bounds of 0 and the tabs length. */\n  _clampTabIndex(index) {\n    // Note the `|| 0`, which ensures that values like NaN can't get through\n    // and which would otherwise throw the component into an infinite loop\n    // (since Math.max(NaN, 0) === NaN).\n    return Math.min(this._tabs.length - 1, Math.max(index || 0, 0));\n  }\n  /** Returns a unique id for each tab label element */\n  _getTabLabelId(i) {\n    return `mat-tab-label-${this._groupId}-${i}`;\n  }\n  /** Returns a unique id for each tab content element */\n  _getTabContentId(i) {\n    return `mat-tab-content-${this._groupId}-${i}`;\n  }\n  /**\n   * Sets the height of the body wrapper to the height of the activating tab if dynamic\n   * height property is true.\n   */\n  _setTabBodyWrapperHeight(tabHeight) {\n    if (!this._dynamicHeight || !this._tabBodyWrapperHeight) {\n      return;\n    }\n    const wrapper = this._tabBodyWrapper.nativeElement;\n    wrapper.style.height = this._tabBodyWrapperHeight + 'px';\n    // This conditional forces the browser to paint the height so that\n    // the animation to the new height can have an origin.\n    if (this._tabBodyWrapper.nativeElement.offsetHeight) {\n      wrapper.style.height = tabHeight + 'px';\n    }\n  }\n  /** Removes the height of the tab body wrapper. */\n  _removeTabBodyWrapperHeight() {\n    const wrapper = this._tabBodyWrapper.nativeElement;\n    this._tabBodyWrapperHeight = wrapper.clientHeight;\n    wrapper.style.height = '';\n    this.animationDone.emit();\n  }\n  /** Handle click events, setting new selected index if appropriate. */\n  _handleClick(tab, tabHeader, index) {\n    tabHeader.focusIndex = index;\n    if (!tab.disabled) {\n      this.selectedIndex = index;\n    }\n  }\n  /** Retrieves the tabindex for the tab. */\n  _getTabIndex(index) {\n    const targetIndex = this._lastFocusedTabIndex ?? this.selectedIndex;\n    return index === targetIndex ? 0 : -1;\n  }\n  /** Callback for when the focused state of a tab has changed. */\n  _tabFocusChanged(focusOrigin, index) {\n    // Mouse/touch focus happens during the `mousedown`/`touchstart` phase which\n    // can cause the tab to be moved out from under the pointer, interrupting the\n    // click sequence (see #21898). We don't need to scroll the tab into view for\n    // such cases anyway, because it will be done when the tab becomes selected.\n    if (focusOrigin && focusOrigin !== 'mouse' && focusOrigin !== 'touch') {\n      this._tabHeader.focusIndex = index;\n    }\n  }\n}\n_MatTabGroupBase.ɵfac = function _MatTabGroupBase_Factory(t) {\n  return new (t || _MatTabGroupBase)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(MAT_TABS_CONFIG, 8), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n};\n_MatTabGroupBase.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n  type: _MatTabGroupBase,\n  inputs: {\n    dynamicHeight: \"dynamicHeight\",\n    selectedIndex: \"selectedIndex\",\n    headerPosition: \"headerPosition\",\n    animationDuration: \"animationDuration\",\n    contentTabIndex: \"contentTabIndex\",\n    disablePagination: \"disablePagination\",\n    preserveContent: \"preserveContent\",\n    backgroundColor: \"backgroundColor\"\n  },\n  outputs: {\n    selectedIndexChange: \"selectedIndexChange\",\n    focusChange: \"focusChange\",\n    animationDone: \"animationDone\",\n    selectedTabChange: \"selectedTabChange\"\n  },\n  features: [i0.ɵɵInheritDefinitionFeature]\n});\n(() => {\n  (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(_MatTabGroupBase, [{\n    type: Directive\n  }], function () {\n    return [{\n      type: i0.ElementRef\n    }, {\n      type: i0.ChangeDetectorRef\n    }, {\n      type: undefined,\n      decorators: [{\n        type: Inject,\n        args: [MAT_TABS_CONFIG]\n      }, {\n        type: Optional\n      }]\n    }, {\n      type: undefined,\n      decorators: [{\n        type: Optional\n      }, {\n        type: Inject,\n        args: [ANIMATION_MODULE_TYPE]\n      }]\n    }];\n  }, {\n    dynamicHeight: [{\n      type: Input\n    }],\n    selectedIndex: [{\n      type: Input\n    }],\n    headerPosition: [{\n      type: Input\n    }],\n    animationDuration: [{\n      type: Input\n    }],\n    contentTabIndex: [{\n      type: Input\n    }],\n    disablePagination: [{\n      type: Input\n    }],\n    preserveContent: [{\n      type: Input\n    }],\n    backgroundColor: [{\n      type: Input\n    }],\n    selectedIndexChange: [{\n      type: Output\n    }],\n    focusChange: [{\n      type: Output\n    }],\n    animationDone: [{\n      type: Output\n    }],\n    selectedTabChange: [{\n      type: Output\n    }]\n  });\n})();\n/**\n * Material design tab-group component. Supports basic tab pairs (label + content) and includes\n * animated ink-bar, keyboard navigation, and screen reader.\n * See: https://material.io/design/components/tabs.html\n */\nclass MatTabGroup extends _MatTabGroupBase {\n  /** Whether the ink bar should fit its width to the size of the tab label content. */\n  get fitInkBarToContent() {\n    return this._fitInkBarToContent;\n  }\n  set fitInkBarToContent(v) {\n    this._fitInkBarToContent = coerceBooleanProperty(v);\n    this._changeDetectorRef.markForCheck();\n  }\n  /** Whether tabs should be stretched to fill the header. */\n  get stretchTabs() {\n    return this._stretchTabs;\n  }\n  set stretchTabs(v) {\n    this._stretchTabs = coerceBooleanProperty(v);\n  }\n  constructor(elementRef, changeDetectorRef, defaultConfig, animationMode) {\n    super(elementRef, changeDetectorRef, defaultConfig, animationMode);\n    this._fitInkBarToContent = false;\n    this._stretchTabs = true;\n    this.fitInkBarToContent = defaultConfig && defaultConfig.fitInkBarToContent != null ? defaultConfig.fitInkBarToContent : false;\n  }\n}\nMatTabGroup.ɵ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};\nMatTabGroup.ɵ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: 6,\n  hostBindings: function MatTabGroup_HostBindings(rf, ctx) {\n    if (rf & 2) {\n      i0.ɵɵclassProp(\"mat-mdc-tab-group-dynamic-height\", ctx.dynamicHeight)(\"mat-mdc-tab-group-inverted-header\", ctx.headerPosition === \"below\")(\"mat-mdc-tab-group-stretch-tabs\", ctx.stretchTabs);\n    }\n  },\n  inputs: {\n    color: \"color\",\n    disableRipple: \"disableRipple\",\n    fitInkBarToContent: \"fitInkBarToContent\",\n    stretchTabs: [i0.ɵɵInputFlags.None, \"mat-stretch-tabs\", \"stretchTabs\"]\n  },\n  exportAs: [\"matTabGroup\"],\n  features: [i0.ɵɵProvidersFeature([{\n    provide: MAT_TAB_GROUP,\n    useExisting: MatTabGroup\n  }]), i0.ɵɵInheritDefinitionFeature],\n  decls: 6,\n  vars: 7,\n  consts: [[\"tabHeader\", \"\"], [\"tabBodyWrapper\", \"\"], [\"tabNode\", \"\"], [\"tabTextLabel\", \"\"], [3, \"indexFocused\", \"selectFocusedIndex\", \"selectedIndex\", \"disableRipple\", \"disablePagination\"], [\"class\", \"mdc-tab mat-mdc-tab mat-mdc-focus-indicator\", \"role\", \"tab\", \"matTabLabelWrapper\", \"\", \"cdkMonitorElementFocus\", \"\", 3, \"id\", \"mdc-tab--active\", \"ngClass\", \"disabled\", \"fitInkBarToContent\", \"click\", \"cdkFocusChange\", 4, \"ngFor\", \"ngForOf\"], [1, \"mat-mdc-tab-body-wrapper\"], [\"role\", \"tabpanel\", 3, \"id\", \"mat-mdc-tab-body-active\", \"ngClass\", \"content\", \"position\", \"origin\", \"animationDuration\", \"preserveContent\", \"_onCentered\", \"_onCentering\", 4, \"ngFor\", \"ngForOf\"], [\"role\", \"tab\", \"matTabLabelWrapper\", \"\", \"cdkMonitorElementFocus\", \"\", 1, \"mdc-tab\", \"mat-mdc-tab\", \"mat-mdc-focus-indicator\", 3, \"click\", \"cdkFocusChange\", \"id\", \"ngClass\", \"disabled\", \"fitInkBarToContent\"], [1, \"mdc-tab__ripple\"], [\"mat-ripple\", \"\", 1, \"mat-mdc-tab-ripple\", 3, \"matRippleTrigger\", \"matRippleDisabled\"], [1, \"mdc-tab__content\"], [1, \"mdc-tab__text-label\"], [3, \"ngIf\", \"ngIfElse\"], [3, \"cdkPortalOutlet\"], [\"role\", \"tabpanel\", 3, \"_onCentered\", \"_onCentering\", \"id\", \"ngClass\", \"content\", \"position\", \"origin\", \"animationDuration\", \"preserveContent\"]],\n  template: function MatTabGroup_Template(rf, ctx) {\n    if (rf & 1) {\n      const _r1 = i0.ɵɵgetCurrentView();\n      i0.ɵɵelementStart(0, \"mat-tab-header\", 4, 0);\n      i0.ɵɵlistener(\"indexFocused\", function MatTabGroup_Template_mat_tab_header_indexFocused_0_listener($event) {\n        i0.ɵɵrestoreView(_r1);\n        return i0.ɵɵresetView(ctx._focusChanged($event));\n      })(\"selectFocusedIndex\", function MatTabGroup_Template_mat_tab_header_selectFocusedIndex_0_listener($event) {\n        i0.ɵɵrestoreView(_r1);\n        return i0.ɵɵresetView(ctx.selectedIndex = $event);\n      });\n      i0.ɵɵtemplate(2, MatTabGroup_div_2_Template, 9, 17, \"div\", 5);\n      i0.ɵɵelementEnd();\n      i0.ɵɵelementStart(3, \"div\", 6, 1);\n      i0.ɵɵtemplate(5, MatTabGroup_mat_tab_body_5_Template, 1, 11, \"mat-tab-body\", 7);\n      i0.ɵɵelementEnd();\n    }\n    if (rf & 2) {\n      i0.ɵɵproperty(\"selectedIndex\", ctx.selectedIndex || 0)(\"disableRipple\", ctx.disableRipple)(\"disablePagination\", ctx.disablePagination);\n      i0.ɵɵadvance(2);\n      i0.ɵɵproperty(\"ngForOf\", ctx._tabs);\n      i0.ɵɵadvance();\n      i0.ɵɵclassProp(\"_mat-animation-noopable\", ctx._animationMode === \"NoopAnimations\");\n      i0.ɵɵadvance(2);\n      i0.ɵɵproperty(\"ngForOf\", ctx._tabs);\n    }\n  },\n  dependencies: [i1$2.NgClass, i1$2.NgForOf, i1$2.NgIf, i2.CdkPortalOutlet, i5.MatRipple, i4.CdkMonitorFocus, MatTabBody, MatTabLabelWrapper, MatTabHeader],\n  styles: [\".mdc-tab{min-width:90px;padding-right:24px;padding-left:24px;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;margin:0;padding-top:0;padding-bottom:0;border:none;outline:none;text-align:center;white-space:nowrap;cursor:pointer;-webkit-appearance:none;z-index:1}.mdc-tab::-moz-focus-inner{padding:0;border:0}.mdc-tab[hidden]{display:none}.mdc-tab--min-width{flex:0 1 auto}.mdc-tab__content{display:flex;align-items:center;justify-content:center;height:inherit;pointer-events:none}.mdc-tab__text-label{transition:150ms color linear;display:inline-block;line-height:1;z-index:2}.mdc-tab__icon{transition:150ms color linear;z-index:2}.mdc-tab--stacked .mdc-tab__content{flex-direction:column;align-items:center;justify-content:center}.mdc-tab--stacked .mdc-tab__text-label{padding-top:6px;padding-bottom:4px}.mdc-tab--active .mdc-tab__text-label,.mdc-tab--active .mdc-tab__icon{transition-delay:100ms}.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label{padding-left:8px;padding-right:0}[dir=rtl] .mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label,.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label[dir=rtl]{padding-left:0;padding-right:8px}.mdc-tab-indicator .mdc-tab-indicator__content--underline{border-top-width:2px}.mdc-tab-indicator .mdc-tab-indicator__content--icon{height:34px;font-size:34px}.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)}.mat-mdc-tab.mdc-tab{height:48px;flex-grow:0}.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}.mat-mdc-tab .mdc-tab__text-label{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}.mat-mdc-tab-group.mat-mdc-tab-group-stretch-tabs>.mat-mdc-tab-header .mat-mdc-tab{flex-grow:1}.mat-mdc-tab-disabled{opacity:.4}.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-mdc-tab-header-with-background-background-color, transparent)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab .mdc-tab__text-label,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-link .mdc-tab__text-label{color:var(--mat-mdc-tab-header-with-background-foreground-color, inherit)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mdc-tab-indicator__content--underline,.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{border-color:var(--mat-mdc-tab-header-with-background-foreground-color, inherit)}.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-mdc-tab-header-with-background-foreground-color, inherit)}.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{border-color:var(--mat-mdc-tab-header-with-background-foreground-color, inherit)}.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  (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatTabGroup, [{\n    type: Component,\n    args: [{\n      selector: 'mat-tab-group',\n      exportAs: 'matTabGroup',\n      encapsulation: ViewEncapsulation.None,\n      changeDetection: ChangeDetectionStrategy.Default,\n      inputs: ['color', 'disableRipple'],\n      providers: [{\n        provide: MAT_TAB_GROUP,\n        useExisting: MatTabGroup\n      }],\n      host: {\n        'class': 'mat-mdc-tab-group',\n        '[class.mat-mdc-tab-group-dynamic-height]': 'dynamicHeight',\n        '[class.mat-mdc-tab-group-inverted-header]': 'headerPosition === \"below\"',\n        '[class.mat-mdc-tab-group-stretch-tabs]': 'stretchTabs'\n      },\n      template: \"<mat-tab-header #tabHeader\\n                [selectedIndex]=\\\"selectedIndex || 0\\\"\\n                [disableRipple]=\\\"disableRipple\\\"\\n                [disablePagination]=\\\"disablePagination\\\"\\n                (indexFocused)=\\\"_focusChanged($event)\\\"\\n                (selectFocusedIndex)=\\\"selectedIndex = $event\\\">\\n\\n  <div class=\\\"mdc-tab mat-mdc-tab mat-mdc-focus-indicator\\\"\\n       #tabNode\\n       role=\\\"tab\\\"\\n       matTabLabelWrapper\\n       cdkMonitorElementFocus\\n       *ngFor=\\\"let tab of _tabs; let i = index\\\"\\n       [id]=\\\"_getTabLabelId(i)\\\"\\n       [attr.tabIndex]=\\\"_getTabIndex(i)\\\"\\n       [attr.aria-posinset]=\\\"i + 1\\\"\\n       [attr.aria-setsize]=\\\"_tabs.length\\\"\\n       [attr.aria-controls]=\\\"_getTabContentId(i)\\\"\\n       [attr.aria-selected]=\\\"selectedIndex === i\\\"\\n       [attr.aria-label]=\\\"tab.ariaLabel || null\\\"\\n       [attr.aria-labelledby]=\\\"(!tab.ariaLabel && tab.ariaLabelledby) ? tab.ariaLabelledby : null\\\"\\n       [class.mdc-tab--active]=\\\"selectedIndex === i\\\"\\n       [ngClass]=\\\"tab.labelClass\\\"\\n       [disabled]=\\\"tab.disabled\\\"\\n       [fitInkBarToContent]=\\\"fitInkBarToContent\\\"\\n       (click)=\\\"_handleClick(tab, tabHeader, i)\\\"\\n       (cdkFocusChange)=\\\"_tabFocusChanged($event, i)\\\">\\n    <span class=\\\"mdc-tab__ripple\\\"></span>\\n\\n    <!-- Needs to be a separate element, because we can't put\\n         `overflow: hidden` on tab due to the ink bar. -->\\n    <div\\n      class=\\\"mat-mdc-tab-ripple\\\"\\n      mat-ripple\\n      [matRippleTrigger]=\\\"tabNode\\\"\\n      [matRippleDisabled]=\\\"tab.disabled || disableRipple\\\"></div>\\n\\n    <span class=\\\"mdc-tab__content\\\">\\n      <span class=\\\"mdc-tab__text-label\\\">\\n        <!-- If there is a label template, use it. -->\\n        <ng-template [ngIf]=\\\"tab.templateLabel\\\" [ngIfElse]=\\\"tabTextLabel\\\">\\n          <ng-template [cdkPortalOutlet]=\\\"tab.templateLabel\\\"></ng-template>\\n        </ng-template>\\n\\n        <!-- If there is not a label template, fall back to the text label. -->\\n        <ng-template #tabTextLabel>{{tab.textLabel}}</ng-template>\\n      </span>\\n    </span>\\n  </div>\\n</mat-tab-header>\\n\\n<div\\n  class=\\\"mat-mdc-tab-body-wrapper\\\"\\n  [class._mat-animation-noopable]=\\\"_animationMode === 'NoopAnimations'\\\"\\n  #tabBodyWrapper>\\n  <mat-tab-body role=\\\"tabpanel\\\"\\n               *ngFor=\\\"let tab of _tabs; let i = index\\\"\\n               [id]=\\\"_getTabContentId(i)\\\"\\n               [attr.tabindex]=\\\"(contentTabIndex != null && selectedIndex === i) ? contentTabIndex : null\\\"\\n               [attr.aria-labelledby]=\\\"_getTabLabelId(i)\\\"\\n               [class.mat-mdc-tab-body-active]=\\\"selectedIndex === i\\\"\\n               [ngClass]=\\\"tab.bodyClass\\\"\\n               [content]=\\\"tab.content!\\\"\\n               [position]=\\\"tab.position!\\\"\\n               [origin]=\\\"tab.origin\\\"\\n               [animationDuration]=\\\"animationDuration\\\"\\n               [preserveContent]=\\\"preserveContent\\\"\\n               (_onCentered)=\\\"_removeTabBodyWrapperHeight()\\\"\\n               (_onCentering)=\\\"_setTabBodyWrapperHeight($event)\\\">\\n  </mat-tab-body>\\n</div>\\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 .mdc-tab-indicator__content--underline{border-top-width:2px}.mdc-tab-indicator .mdc-tab-indicator__content--icon{height:34px;font-size:34px}.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)}.mat-mdc-tab.mdc-tab{height:48px;flex-grow:0}.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}.mat-mdc-tab .mdc-tab__text-label{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}.mat-mdc-tab-group.mat-mdc-tab-group-stretch-tabs>.mat-mdc-tab-header .mat-mdc-tab{flex-grow:1}.mat-mdc-tab-disabled{opacity:.4}.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-mdc-tab-header-with-background-background-color, transparent)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab .mdc-tab__text-label,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-link .mdc-tab__text-label{color:var(--mat-mdc-tab-header-with-background-foreground-color, inherit)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mdc-tab-indicator__content--underline,.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{border-color:var(--mat-mdc-tab-header-with-background-foreground-color, inherit)}.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-mdc-tab-header-with-background-foreground-color, inherit)}.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{border-color:var(--mat-mdc-tab-header-with-background-foreground-color, inherit)}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header{flex-direction:column-reverse}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header .mdc-tab-indicator__content--underline{align-self:flex-start}.mat-mdc-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-mdc-tab-body-wrapper._mat-animation-noopable{transition:none !important;animation:none !important}\"]\n    }]\n  }], function () {\n    return [{\n      type: i0.ElementRef\n    }, {\n      type: i0.ChangeDetectorRef\n    }, {\n      type: undefined,\n      decorators: [{\n        type: Inject,\n        args: [MAT_TABS_CONFIG]\n      }, {\n        type: Optional\n      }]\n    }, {\n      type: undefined,\n      decorators: [{\n        type: Optional\n      }, {\n        type: Inject,\n        args: [ANIMATION_MODULE_TYPE]\n      }]\n    }];\n  }, {\n    _allTabs: [{\n      type: ContentChildren,\n      args: [MatTab, {\n        descendants: true\n      }]\n    }],\n    _tabBodyWrapper: [{\n      type: ViewChild,\n      args: ['tabBodyWrapper']\n    }],\n    _tabHeader: [{\n      type: ViewChild,\n      args: ['tabHeader']\n    }],\n    fitInkBarToContent: [{\n      type: Input\n    }],\n    stretchTabs: [{\n      type: Input,\n      args: ['mat-stretch-tabs']\n    }]\n  });\n})();\n/** A simple change event emitted on focus or selection changes. */\nclass MatTabChangeEvent {}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// Increasing integer for generating unique ids for tab nav components.\nlet nextUniqueId = 0;\n/**\n * Base class with all of the `MatTabNav` functionality.\n * @docs-private\n */\nclass _MatTabNavBase extends MatPaginatedTabHeader {\n  /** Background color of the tab nav. */\n  get backgroundColor() {\n    return this._backgroundColor;\n  }\n  set backgroundColor(value) {\n    const classList = this._elementRef.nativeElement.classList;\n    classList.remove('mat-tabs-with-background', `mat-background-${this.backgroundColor}`);\n    if (value) {\n      classList.add('mat-tabs-with-background', `mat-background-${value}`);\n    }\n    this._backgroundColor = value;\n  }\n  /** Whether the ripple effect is disabled or not. */\n  get disableRipple() {\n    return this._disableRipple;\n  }\n  set disableRipple(value) {\n    this._disableRipple = coerceBooleanProperty(value);\n  }\n  constructor(elementRef, dir, ngZone, changeDetectorRef, viewportRuler, platform, animationMode) {\n    super(elementRef, changeDetectorRef, viewportRuler, dir, ngZone, platform, animationMode);\n    this._disableRipple = false;\n    /** Theme color of the nav bar. */\n    this.color = 'primary';\n  }\n  _itemSelected() {\n    // noop\n  }\n  ngAfterContentInit() {\n    // We need this to run before the `changes` subscription in parent to ensure that the\n    // selectedIndex is up-to-date by the time the super class starts looking for it.\n    this._items.changes.pipe(startWith(null), takeUntil(this._destroyed)).subscribe(() => {\n      this.updateActiveLink();\n    });\n    super.ngAfterContentInit();\n  }\n  /** Notifies the component that the active link has been changed. */\n  updateActiveLink() {\n    if (!this._items) {\n      return;\n    }\n    const items = this._items.toArray();\n    for (let i = 0; i < items.length; i++) {\n      if (items[i].active) {\n        this.selectedIndex = i;\n        this._changeDetectorRef.markForCheck();\n        if (this.tabPanel) {\n          this.tabPanel._activeTabId = items[i].id;\n        }\n        return;\n      }\n    }\n    // The ink bar should hide itself if no items are active.\n    this.selectedIndex = -1;\n    this._inkBar.hide();\n  }\n  _getRole() {\n    return this.tabPanel ? 'tablist' : this._elementRef.nativeElement.getAttribute('role');\n  }\n}\n_MatTabNavBase.ɵfac = function _MatTabNavBase_Factory(t) {\n  return new (t || _MatTabNavBase)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Directionality, 8), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1$1.ViewportRuler), i0.ɵɵdirectiveInject(i3.Platform), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n};\n_MatTabNavBase.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n  type: _MatTabNavBase,\n  inputs: {\n    backgroundColor: \"backgroundColor\",\n    disableRipple: \"disableRipple\",\n    color: \"color\",\n    tabPanel: \"tabPanel\"\n  },\n  features: [i0.ɵɵInheritDefinitionFeature]\n});\n(() => {\n  (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(_MatTabNavBase, [{\n    type: Directive\n  }], function () {\n    return [{\n      type: i0.ElementRef\n    }, {\n      type: i1.Directionality,\n      decorators: [{\n        type: Optional\n      }]\n    }, {\n      type: i0.NgZone\n    }, {\n      type: i0.ChangeDetectorRef\n    }, {\n      type: i1$1.ViewportRuler\n    }, {\n      type: i3.Platform\n    }, {\n      type: undefined,\n      decorators: [{\n        type: Optional\n      }, {\n        type: Inject,\n        args: [ANIMATION_MODULE_TYPE]\n      }]\n    }];\n  }, {\n    backgroundColor: [{\n      type: Input\n    }],\n    disableRipple: [{\n      type: Input\n    }],\n    color: [{\n      type: Input\n    }],\n    tabPanel: [{\n      type: Input\n    }]\n  });\n})();\n// Boilerplate for applying mixins to MatTabLink.\nconst _MatTabLinkMixinBase = mixinTabIndex(mixinDisableRipple(mixinDisabled(class {})));\n/** Base class with all of the `MatTabLink` functionality. */\nclass _MatTabLinkBase extends _MatTabLinkMixinBase {\n  /** Whether the link is active. */\n  get active() {\n    return this._isActive;\n  }\n  set active(value) {\n    const newValue = coerceBooleanProperty(value);\n    if (newValue !== this._isActive) {\n      this._isActive = newValue;\n      this._tabNavBar.updateActiveLink();\n    }\n  }\n  /**\n   * Whether ripples are disabled on interaction.\n   * @docs-private\n   */\n  get rippleDisabled() {\n    return this.disabled || this.disableRipple || this._tabNavBar.disableRipple || !!this.rippleConfig.disabled;\n  }\n  constructor(_tabNavBar, /** @docs-private */elementRef, globalRippleOptions, tabIndex, _focusMonitor, animationMode) {\n    super();\n    this._tabNavBar = _tabNavBar;\n    this.elementRef = elementRef;\n    this._focusMonitor = _focusMonitor;\n    /** Whether the tab link is active or not. */\n    this._isActive = false;\n    /** Unique id for the tab. */\n    this.id = `mat-tab-link-${nextUniqueId++}`;\n    this.rippleConfig = globalRippleOptions || {};\n    this.tabIndex = parseInt(tabIndex) || 0;\n    if (animationMode === 'NoopAnimations') {\n      this.rippleConfig.animation = {\n        enterDuration: 0,\n        exitDuration: 0\n      };\n    }\n  }\n  /** Focuses the tab link. */\n  focus() {\n    this.elementRef.nativeElement.focus();\n  }\n  ngAfterViewInit() {\n    this._focusMonitor.monitor(this.elementRef);\n  }\n  ngOnDestroy() {\n    this._focusMonitor.stopMonitoring(this.elementRef);\n  }\n  _handleFocus() {\n    // Since we allow navigation through tabbing in the nav bar, we\n    // have to update the focused index whenever the link receives focus.\n    this._tabNavBar.focusIndex = this._tabNavBar._items.toArray().indexOf(this);\n  }\n  _handleKeydown(event) {\n    if (this._tabNavBar.tabPanel && event.keyCode === SPACE) {\n      this.elementRef.nativeElement.click();\n    }\n  }\n  _getAriaControls() {\n    return this._tabNavBar.tabPanel ? this._tabNavBar.tabPanel?.id : this.elementRef.nativeElement.getAttribute('aria-controls');\n  }\n  _getAriaSelected() {\n    if (this._tabNavBar.tabPanel) {\n      return this.active ? 'true' : 'false';\n    } else {\n      return this.elementRef.nativeElement.getAttribute('aria-selected');\n    }\n  }\n  _getAriaCurrent() {\n    return this.active && !this._tabNavBar.tabPanel ? 'page' : null;\n  }\n  _getRole() {\n    return this._tabNavBar.tabPanel ? 'tab' : this.elementRef.nativeElement.getAttribute('role');\n  }\n  _getTabIndex() {\n    if (this._tabNavBar.tabPanel) {\n      return this._isActive && !this.disabled ? 0 : -1;\n    } else {\n      return this.tabIndex;\n    }\n  }\n}\n_MatTabLinkBase.ɵfac = function _MatTabLinkBase_Factory(t) {\n  return new (t || _MatTabLinkBase)(i0.ɵɵdirectiveInject(_MatTabNavBase), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(MAT_RIPPLE_GLOBAL_OPTIONS, 8), i0.ɵɵinjectAttribute('tabindex'), i0.ɵɵdirectiveInject(i4.FocusMonitor), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n};\n_MatTabLinkBase.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n  type: _MatTabLinkBase,\n  inputs: {\n    active: \"active\",\n    id: \"id\"\n  },\n  features: [i0.ɵɵInheritDefinitionFeature]\n});\n(() => {\n  (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(_MatTabLinkBase, [{\n    type: Directive\n  }], function () {\n    return [{\n      type: _MatTabNavBase\n    }, {\n      type: i0.ElementRef\n    }, {\n      type: undefined,\n      decorators: [{\n        type: Optional\n      }, {\n        type: Inject,\n        args: [MAT_RIPPLE_GLOBAL_OPTIONS]\n      }]\n    }, {\n      type: undefined,\n      decorators: [{\n        type: Attribute,\n        args: ['tabindex']\n      }]\n    }, {\n      type: i4.FocusMonitor\n    }, {\n      type: undefined,\n      decorators: [{\n        type: Optional\n      }, {\n        type: Inject,\n        args: [ANIMATION_MODULE_TYPE]\n      }]\n    }];\n  }, {\n    active: [{\n      type: Input\n    }],\n    id: [{\n      type: Input\n    }]\n  });\n})();\nconst _MatTabLinkBaseWithInkBarItem = mixinInkBarItem(_MatTabLinkBase);\n/**\n * Navigation component matching the styles of the tab group header.\n * Provides anchored navigation with animated ink bar.\n */\nclass MatTabNav extends _MatTabNavBase {\n  /** Whether the ink bar should fit its width to the size of the tab label content. */\n  get fitInkBarToContent() {\n    return this._fitInkBarToContent.value;\n  }\n  set fitInkBarToContent(v) {\n    this._fitInkBarToContent.next(coerceBooleanProperty(v));\n    this._changeDetectorRef.markForCheck();\n  }\n  /** Whether tabs should be stretched to fill the header. */\n  get stretchTabs() {\n    return this._stretchTabs;\n  }\n  set stretchTabs(v) {\n    this._stretchTabs = coerceBooleanProperty(v);\n  }\n  constructor(elementRef, dir, ngZone, changeDetectorRef, viewportRuler, platform, animationMode, defaultConfig) {\n    super(elementRef, dir, ngZone, changeDetectorRef, viewportRuler, platform, animationMode);\n    this._fitInkBarToContent = new BehaviorSubject(false);\n    this._stretchTabs = true;\n    this.disablePagination = defaultConfig && defaultConfig.disablePagination != null ? defaultConfig.disablePagination : false;\n    this.fitInkBarToContent = defaultConfig && defaultConfig.fitInkBarToContent != null ? defaultConfig.fitInkBarToContent : false;\n  }\n  ngAfterContentInit() {\n    this._inkBar = new MatInkBar(this._items);\n    super.ngAfterContentInit();\n  }\n  ngAfterViewInit() {\n    if (!this.tabPanel && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n      throw new Error('A mat-tab-nav-panel must be specified via [tabPanel].');\n    }\n    super.ngAfterViewInit();\n  }\n}\nMatTabNav.ɵfac = function MatTabNav_Factory(t) {\n  return new (t || MatTabNav)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Directionality, 8), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1$1.ViewportRuler), i0.ɵɵdirectiveInject(i3.Platform), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8), i0.ɵɵdirectiveInject(MAT_TABS_CONFIG, 8));\n};\nMatTabNav.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n  type: MatTabNav,\n  selectors: [[\"\", \"mat-tab-nav-bar\", \"\"]],\n  contentQueries: function MatTabNav_ContentQueries(rf, ctx, dirIndex) {\n    if (rf & 1) {\n      i0.ɵɵcontentQuery(dirIndex, MatTabLink, 5);\n    }\n    if (rf & 2) {\n      let _t;\n      i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._items = _t);\n    }\n  },\n  viewQuery: function MatTabNav_Query(rf, ctx) {\n    if (rf & 1) {\n      i0.ɵɵviewQuery(_c3, 7);\n      i0.ɵɵviewQuery(_c4, 7);\n      i0.ɵɵviewQuery(_c5, 7);\n      i0.ɵɵviewQuery(_c6, 5);\n      i0.ɵɵviewQuery(_c7, 5);\n    }\n    if (rf & 2) {\n      let _t;\n      i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._tabListContainer = _t.first);\n      i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._tabList = _t.first);\n      i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._tabListInner = _t.first);\n      i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._nextPaginator = _t.first);\n      i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._previousPaginator = _t.first);\n    }\n  },\n  hostAttrs: [1, \"mat-mdc-tab-nav-bar\", \"mat-mdc-tab-header\"],\n  hostVars: 15,\n  hostBindings: function MatTabNav_HostBindings(rf, ctx) {\n    if (rf & 2) {\n      i0.ɵɵattribute(\"role\", ctx._getRole());\n      i0.ɵɵclassProp(\"mat-mdc-tab-header-pagination-controls-enabled\", ctx._showPaginationControls)(\"mat-mdc-tab-header-rtl\", ctx._getLayoutDirection() == \"rtl\")(\"mat-mdc-tab-nav-bar-stretch-tabs\", ctx.stretchTabs)(\"mat-primary\", ctx.color !== \"warn\" && ctx.color !== \"accent\")(\"mat-accent\", ctx.color === \"accent\")(\"mat-warn\", ctx.color === \"warn\")(\"_mat-animation-noopable\", ctx._animationMode === \"NoopAnimations\");\n    }\n  },\n  inputs: {\n    color: \"color\",\n    fitInkBarToContent: \"fitInkBarToContent\",\n    stretchTabs: [i0.ɵɵInputFlags.None, \"mat-stretch-tabs\", \"stretchTabs\"]\n  },\n  exportAs: [\"matTabNavBar\", \"matTabNav\"],\n  features: [i0.ɵɵInheritDefinitionFeature],\n  attrs: _c10,\n  ngContentSelectors: _c2,\n  decls: 13,\n  vars: 8,\n  consts: [[\"previousPaginator\", \"\"], [\"tabListContainer\", \"\"], [\"tabList\", \"\"], [\"tabListInner\", \"\"], [\"nextPaginator\", \"\"], [\"aria-hidden\", \"true\", \"type\", \"button\", \"mat-ripple\", \"\", \"tabindex\", \"-1\", 1, \"mat-mdc-tab-header-pagination\", \"mat-mdc-tab-header-pagination-before\", 3, \"click\", \"mousedown\", \"touchend\", \"matRippleDisabled\", \"disabled\"], [1, \"mat-mdc-tab-header-pagination-chevron\"], [1, \"mat-mdc-tab-link-container\", 3, \"keydown\"], [1, \"mat-mdc-tab-list\", 3, \"cdkObserveContent\"], [1, \"mat-mdc-tab-links\"], [\"aria-hidden\", \"true\", \"type\", \"button\", \"mat-ripple\", \"\", \"tabindex\", \"-1\", 1, \"mat-mdc-tab-header-pagination\", \"mat-mdc-tab-header-pagination-after\", 3, \"mousedown\", \"click\", \"touchend\", \"matRippleDisabled\", \"disabled\"]],\n  template: function MatTabNav_Template(rf, ctx) {\n    if (rf & 1) {\n      const _r1 = i0.ɵɵgetCurrentView();\n      i0.ɵɵprojectionDef();\n      i0.ɵɵelementStart(0, \"button\", 5, 0);\n      i0.ɵɵlistener(\"click\", function MatTabNav_Template_button_click_0_listener() {\n        i0.ɵɵrestoreView(_r1);\n        return i0.ɵɵresetView(ctx._handlePaginatorClick(\"before\"));\n      })(\"mousedown\", function MatTabNav_Template_button_mousedown_0_listener($event) {\n        i0.ɵɵrestoreView(_r1);\n        return i0.ɵɵresetView(ctx._handlePaginatorPress(\"before\", $event));\n      })(\"touchend\", function MatTabNav_Template_button_touchend_0_listener() {\n        i0.ɵɵrestoreView(_r1);\n        return i0.ɵɵresetView(ctx._stopInterval());\n      });\n      i0.ɵɵelement(2, \"div\", 6);\n      i0.ɵɵelementEnd();\n      i0.ɵɵelementStart(3, \"div\", 7, 1);\n      i0.ɵɵlistener(\"keydown\", function MatTabNav_Template_div_keydown_3_listener($event) {\n        i0.ɵɵrestoreView(_r1);\n        return i0.ɵɵresetView(ctx._handleKeydown($event));\n      });\n      i0.ɵɵelementStart(5, \"div\", 8, 2);\n      i0.ɵɵlistener(\"cdkObserveContent\", function MatTabNav_Template_div_cdkObserveContent_5_listener() {\n        i0.ɵɵrestoreView(_r1);\n        return i0.ɵɵresetView(ctx._onContentChanges());\n      });\n      i0.ɵɵelementStart(7, \"div\", 9, 3);\n      i0.ɵɵprojection(9);\n      i0.ɵɵelementEnd()()();\n      i0.ɵɵelementStart(10, \"button\", 10, 4);\n      i0.ɵɵlistener(\"mousedown\", function MatTabNav_Template_button_mousedown_10_listener($event) {\n        i0.ɵɵrestoreView(_r1);\n        return i0.ɵɵresetView(ctx._handlePaginatorPress(\"after\", $event));\n      })(\"click\", function MatTabNav_Template_button_click_10_listener() {\n        i0.ɵɵrestoreView(_r1);\n        return i0.ɵɵresetView(ctx._handlePaginatorClick(\"after\"));\n      })(\"touchend\", function MatTabNav_Template_button_touchend_10_listener() {\n        i0.ɵɵrestoreView(_r1);\n        return i0.ɵɵresetView(ctx._stopInterval());\n      });\n      i0.ɵɵelement(12, \"div\", 6);\n      i0.ɵɵelementEnd();\n    }\n    if (rf & 2) {\n      i0.ɵɵclassProp(\"mat-mdc-tab-header-pagination-disabled\", ctx._disableScrollBefore);\n      i0.ɵɵproperty(\"matRippleDisabled\", ctx._disableScrollBefore || ctx.disableRipple)(\"disabled\", ctx._disableScrollBefore || null);\n      i0.ɵɵadvance(10);\n      i0.ɵɵclassProp(\"mat-mdc-tab-header-pagination-disabled\", ctx._disableScrollAfter);\n      i0.ɵɵproperty(\"matRippleDisabled\", ctx._disableScrollAfter || ctx.disableRipple)(\"disabled\", ctx._disableScrollAfter || null);\n    }\n  },\n  dependencies: [i5.MatRipple, i5$1.CdkObserveContent],\n  styles: [\".mdc-tab{min-width:90px;padding-right:24px;padding-left:24px;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;margin:0;padding-top:0;padding-bottom:0;border:none;outline:none;text-align:center;white-space:nowrap;cursor:pointer;-webkit-appearance:none;z-index:1}.mdc-tab::-moz-focus-inner{padding:0;border:0}.mdc-tab[hidden]{display:none}.mdc-tab--min-width{flex:0 1 auto}.mdc-tab__content{display:flex;align-items:center;justify-content:center;height:inherit;pointer-events:none}.mdc-tab__text-label{transition:150ms color linear;display:inline-block;line-height:1;z-index:2}.mdc-tab__icon{transition:150ms color linear;z-index:2}.mdc-tab--stacked .mdc-tab__content{flex-direction:column;align-items:center;justify-content:center}.mdc-tab--stacked .mdc-tab__text-label{padding-top:6px;padding-bottom:4px}.mdc-tab--active .mdc-tab__text-label,.mdc-tab--active .mdc-tab__icon{transition-delay:100ms}.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label{padding-left:8px;padding-right:0}[dir=rtl] .mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label,.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label[dir=rtl]{padding-left:0;padding-right:8px}.mdc-tab-indicator .mdc-tab-indicator__content--underline{border-top-width:2px}.mdc-tab-indicator .mdc-tab-indicator__content--icon{height:34px;font-size:34px}.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}.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}.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}.mat-mdc-tab-header-pagination-disabled{box-shadow:none;cursor:default;pointer-events:none}.mat-mdc-tab-header-pagination-disabled .mat-mdc-tab-header-pagination-chevron{opacity:.4}.mat-mdc-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-mdc-tab-list{transition:none}._mat-animation-noopable span.mdc-tab-indicator__content,._mat-animation-noopable span.mdc-tab__text-label{transition:none}.mat-mdc-tab-links{display:flex;flex:1 0 auto}[mat-align-tabs=center]>.mat-mdc-tab-link-container .mat-mdc-tab-links{justify-content:center}[mat-align-tabs=end]>.mat-mdc-tab-link-container .mat-mdc-tab-links{justify-content:flex-end}.mat-mdc-tab-link-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination{background-color:var(--mat-mdc-tab-header-with-background-background-color, transparent)}.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mat-mdc-tab .mdc-tab__text-label,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mat-mdc-tab-link .mdc-tab__text-label{color:var(--mat-mdc-tab-header-with-background-foreground-color, inherit)}.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mdc-tab-indicator__content--underline,.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{border-color:var(--mat-mdc-tab-header-with-background-foreground-color, inherit)}.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-mdc-tab-header-with-background-foreground-color, inherit)}.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{border-color:var(--mat-mdc-tab-header-with-background-foreground-color, inherit)}\"],\n  encapsulation: 2\n});\n(() => {\n  (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatTabNav, [{\n    type: Component,\n    args: [{\n      selector: '[mat-tab-nav-bar]',\n      exportAs: 'matTabNavBar, matTabNav',\n      inputs: ['color'],\n      host: {\n        '[attr.role]': '_getRole()',\n        'class': 'mat-mdc-tab-nav-bar mat-mdc-tab-header',\n        '[class.mat-mdc-tab-header-pagination-controls-enabled]': '_showPaginationControls',\n        '[class.mat-mdc-tab-header-rtl]': \"_getLayoutDirection() == 'rtl'\",\n        '[class.mat-mdc-tab-nav-bar-stretch-tabs]': 'stretchTabs',\n        '[class.mat-primary]': 'color !== \"warn\" && color !== \"accent\"',\n        '[class.mat-accent]': 'color === \"accent\"',\n        '[class.mat-warn]': 'color === \"warn\"',\n        '[class._mat-animation-noopable]': '_animationMode === \"NoopAnimations\"'\n      },\n      encapsulation: ViewEncapsulation.None,\n      changeDetection: ChangeDetectionStrategy.Default,\n      template: \"<!-- TODO: this also had `mat-elevation-z4`. Figure out what we should do with it. -->\\n<button class=\\\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-before\\\"\\n     #previousPaginator\\n     aria-hidden=\\\"true\\\"\\n     type=\\\"button\\\"\\n     mat-ripple\\n     tabindex=\\\"-1\\\"\\n     [matRippleDisabled]=\\\"_disableScrollBefore || disableRipple\\\"\\n     [class.mat-mdc-tab-header-pagination-disabled]=\\\"_disableScrollBefore\\\"\\n     [disabled]=\\\"_disableScrollBefore || null\\\"\\n     (click)=\\\"_handlePaginatorClick('before')\\\"\\n     (mousedown)=\\\"_handlePaginatorPress('before', $event)\\\"\\n     (touchend)=\\\"_stopInterval()\\\">\\n  <div class=\\\"mat-mdc-tab-header-pagination-chevron\\\"></div>\\n</button>\\n\\n<div class=\\\"mat-mdc-tab-link-container\\\" #tabListContainer (keydown)=\\\"_handleKeydown($event)\\\">\\n  <div class=\\\"mat-mdc-tab-list\\\" #tabList (cdkObserveContent)=\\\"_onContentChanges()\\\">\\n    <div class=\\\"mat-mdc-tab-links\\\" #tabListInner>\\n      <ng-content></ng-content>\\n    </div>\\n  </div>\\n</div>\\n\\n<!-- TODO: this also had `mat-elevation-z4`. Figure out what we should do with it. -->\\n<button class=\\\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-after\\\"\\n     #nextPaginator\\n     aria-hidden=\\\"true\\\"\\n     type=\\\"button\\\"\\n     mat-ripple\\n     [matRippleDisabled]=\\\"_disableScrollAfter || disableRipple\\\"\\n     [class.mat-mdc-tab-header-pagination-disabled]=\\\"_disableScrollAfter\\\"\\n     [disabled]=\\\"_disableScrollAfter || null\\\"\\n     tabindex=\\\"-1\\\"\\n     (mousedown)=\\\"_handlePaginatorPress('after', $event)\\\"\\n     (click)=\\\"_handlePaginatorClick('after')\\\"\\n     (touchend)=\\\"_stopInterval()\\\">\\n  <div class=\\\"mat-mdc-tab-header-pagination-chevron\\\"></div>\\n</button>\\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 .mdc-tab-indicator__content--underline{border-top-width:2px}.mdc-tab-indicator .mdc-tab-indicator__content--icon{height:34px;font-size:34px}.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}.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}.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}.mat-mdc-tab-header-pagination-disabled{box-shadow:none;cursor:default;pointer-events:none}.mat-mdc-tab-header-pagination-disabled .mat-mdc-tab-header-pagination-chevron{opacity:.4}.mat-mdc-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-mdc-tab-list{transition:none}._mat-animation-noopable span.mdc-tab-indicator__content,._mat-animation-noopable span.mdc-tab__text-label{transition:none}.mat-mdc-tab-links{display:flex;flex:1 0 auto}[mat-align-tabs=center]>.mat-mdc-tab-link-container .mat-mdc-tab-links{justify-content:center}[mat-align-tabs=end]>.mat-mdc-tab-link-container .mat-mdc-tab-links{justify-content:flex-end}.mat-mdc-tab-link-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination{background-color:var(--mat-mdc-tab-header-with-background-background-color, transparent)}.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mat-mdc-tab .mdc-tab__text-label,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mat-mdc-tab-link .mdc-tab__text-label{color:var(--mat-mdc-tab-header-with-background-foreground-color, inherit)}.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mdc-tab-indicator__content--underline,.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{border-color:var(--mat-mdc-tab-header-with-background-foreground-color, inherit)}.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-mdc-tab-header-with-background-foreground-color, inherit)}.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{border-color:var(--mat-mdc-tab-header-with-background-foreground-color, inherit)}\"]\n    }]\n  }], function () {\n    return [{\n      type: i0.ElementRef\n    }, {\n      type: i1.Directionality,\n      decorators: [{\n        type: Optional\n      }]\n    }, {\n      type: i0.NgZone\n    }, {\n      type: i0.ChangeDetectorRef\n    }, {\n      type: i1$1.ViewportRuler\n    }, {\n      type: i3.Platform\n    }, {\n      type: undefined,\n      decorators: [{\n        type: Optional\n      }, {\n        type: Inject,\n        args: [ANIMATION_MODULE_TYPE]\n      }]\n    }, {\n      type: undefined,\n      decorators: [{\n        type: Optional\n      }, {\n        type: Inject,\n        args: [MAT_TABS_CONFIG]\n      }]\n    }];\n  }, {\n    fitInkBarToContent: [{\n      type: Input\n    }],\n    stretchTabs: [{\n      type: Input,\n      args: ['mat-stretch-tabs']\n    }],\n    _items: [{\n      type: ContentChildren,\n      args: [forwardRef(() => MatTabLink), {\n        descendants: true\n      }]\n    }],\n    _tabListContainer: [{\n      type: ViewChild,\n      args: ['tabListContainer', {\n        static: true\n      }]\n    }],\n    _tabList: [{\n      type: ViewChild,\n      args: ['tabList', {\n        static: true\n      }]\n    }],\n    _tabListInner: [{\n      type: ViewChild,\n      args: ['tabListInner', {\n        static: true\n      }]\n    }],\n    _nextPaginator: [{\n      type: ViewChild,\n      args: ['nextPaginator']\n    }],\n    _previousPaginator: [{\n      type: ViewChild,\n      args: ['previousPaginator']\n    }]\n  });\n})();\n/**\n * Link inside of a `mat-tab-nav-bar`.\n */\nclass MatTabLink extends _MatTabLinkBaseWithInkBarItem {\n  constructor(tabNavBar, elementRef, globalRippleOptions, tabIndex, focusMonitor, animationMode) {\n    super(tabNavBar, elementRef, globalRippleOptions, tabIndex, focusMonitor, animationMode);\n    this._destroyed = new Subject();\n    tabNavBar._fitInkBarToContent.pipe(takeUntil(this._destroyed)).subscribe(fitInkBarToContent => {\n      this.fitInkBarToContent = fitInkBarToContent;\n    });\n  }\n  ngOnDestroy() {\n    this._destroyed.next();\n    this._destroyed.complete();\n    super.ngOnDestroy();\n  }\n}\nMatTabLink.ɵ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};\nMatTabLink.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n  type: MatTabLink,\n  selectors: [[\"\", \"mat-tab-link\", \"\"], [\"\", \"matTabLink\", \"\"]],\n  hostAttrs: [1, \"mdc-tab\", \"mat-mdc-tab-link\", \"mat-mdc-focus-indicator\"],\n  hostVars: 11,\n  hostBindings: function MatTabLink_HostBindings(rf, ctx) {\n    if (rf & 1) {\n      i0.ɵɵlistener(\"focus\", function MatTabLink_focus_HostBindingHandler() {\n        return ctx._handleFocus();\n      })(\"keydown\", function MatTabLink_keydown_HostBindingHandler($event) {\n        return ctx._handleKeydown($event);\n      });\n    }\n    if (rf & 2) {\n      i0.ɵɵattribute(\"aria-controls\", ctx._getAriaControls())(\"aria-current\", ctx._getAriaCurrent())(\"aria-disabled\", ctx.disabled)(\"aria-selected\", ctx._getAriaSelected())(\"id\", ctx.id)(\"tabIndex\", ctx._getTabIndex())(\"role\", ctx._getRole());\n      i0.ɵɵclassProp(\"mat-mdc-tab-disabled\", ctx.disabled)(\"mdc-tab--active\", ctx.active);\n    }\n  },\n  inputs: {\n    disabled: \"disabled\",\n    disableRipple: \"disableRipple\",\n    tabIndex: \"tabIndex\",\n    active: \"active\",\n    id: \"id\"\n  },\n  exportAs: [\"matTabLink\"],\n  features: [i0.ɵɵInheritDefinitionFeature],\n  attrs: _c11,\n  ngContentSelectors: _c2,\n  decls: 5,\n  vars: 2,\n  consts: [[1, \"mdc-tab__ripple\"], [\"mat-ripple\", \"\", 1, \"mat-mdc-tab-ripple\", 3, \"matRippleTrigger\", \"matRippleDisabled\"], [1, \"mdc-tab__content\"], [1, \"mdc-tab__text-label\"]],\n  template: function MatTabLink_Template(rf, ctx) {\n    if (rf & 1) {\n      i0.ɵɵprojectionDef();\n      i0.ɵɵelement(0, \"span\", 0)(1, \"div\", 1);\n      i0.ɵɵelementStart(2, \"span\", 2)(3, \"span\", 3);\n      i0.ɵɵprojection(4);\n      i0.ɵɵelementEnd()();\n    }\n    if (rf & 2) {\n      i0.ɵɵadvance();\n      i0.ɵɵproperty(\"matRippleTrigger\", ctx.elementRef.nativeElement)(\"matRippleDisabled\", ctx.rippleDisabled);\n    }\n  },\n  dependencies: [i5.MatRipple],\n  styles: [\".mat-mdc-tab-link{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-tab-link.mdc-tab{height:48px;flex-grow:0}.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}.mat-mdc-tab-link .mdc-tab__text-label{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}.mat-mdc-tab-link.mat-mdc-tab-disabled{pointer-events:none;opacity:.4}.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  (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatTabLink, [{\n    type: Component,\n    args: [{\n      selector: '[mat-tab-link], [matTabLink]',\n      exportAs: 'matTabLink',\n      inputs: ['disabled', 'disableRipple', 'tabIndex', 'active', 'id'],\n      changeDetection: ChangeDetectionStrategy.OnPush,\n      encapsulation: ViewEncapsulation.None,\n      host: {\n        'class': 'mdc-tab mat-mdc-tab-link mat-mdc-focus-indicator',\n        '[attr.aria-controls]': '_getAriaControls()',\n        '[attr.aria-current]': '_getAriaCurrent()',\n        '[attr.aria-disabled]': 'disabled',\n        '[attr.aria-selected]': '_getAriaSelected()',\n        '[attr.id]': 'id',\n        '[attr.tabIndex]': '_getTabIndex()',\n        '[attr.role]': '_getRole()',\n        '[class.mat-mdc-tab-disabled]': 'disabled',\n        '[class.mdc-tab--active]': 'active',\n        '(focus)': '_handleFocus()',\n        '(keydown)': '_handleKeydown($event)'\n      },\n      template: \"<span class=\\\"mdc-tab__ripple\\\"></span>\\n\\n<div\\n  class=\\\"mat-mdc-tab-ripple\\\"\\n  mat-ripple\\n  [matRippleTrigger]=\\\"elementRef.nativeElement\\\"\\n  [matRippleDisabled]=\\\"rippleDisabled\\\"></div>\\n\\n<span class=\\\"mdc-tab__content\\\">\\n  <span class=\\\"mdc-tab__text-label\\\">\\n    <ng-content></ng-content>\\n  </span>\\n</span>\\n\\n\",\n      styles: [\".mat-mdc-tab-link{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-tab-link.mdc-tab{height:48px;flex-grow:0}.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}.mat-mdc-tab-link .mdc-tab__text-label{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}.mat-mdc-tab-link.mat-mdc-tab-disabled{pointer-events:none;opacity:.4}.mat-mdc-tab-header.mat-mdc-tab-nav-bar-stretch-tabs .mat-mdc-tab-link{flex-grow:1}.mat-mdc-tab-link::before{margin:5px}@media(max-width: 599px){.mat-mdc-tab-link{min-width:72px}}\"]\n    }]\n  }], function () {\n    return [{\n      type: MatTabNav\n    }, {\n      type: i0.ElementRef\n    }, {\n      type: undefined,\n      decorators: [{\n        type: Optional\n      }, {\n        type: Inject,\n        args: [MAT_RIPPLE_GLOBAL_OPTIONS]\n      }]\n    }, {\n      type: undefined,\n      decorators: [{\n        type: Attribute,\n        args: ['tabindex']\n      }]\n    }, {\n      type: i4.FocusMonitor\n    }, {\n      type: undefined,\n      decorators: [{\n        type: Optional\n      }, {\n        type: Inject,\n        args: [ANIMATION_MODULE_TYPE]\n      }]\n    }];\n  }, null);\n})();\n/**\n * Tab panel component associated with MatTabNav.\n */\nclass MatTabNavPanel {\n  constructor() {\n    /** Unique id for the tab panel. */\n    this.id = `mat-tab-nav-panel-${nextUniqueId++}`;\n  }\n}\nMatTabNavPanel.ɵfac = function MatTabNavPanel_Factory(t) {\n  return new (t || MatTabNavPanel)();\n};\nMatTabNavPanel.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n  type: MatTabNavPanel,\n  selectors: [[\"mat-tab-nav-panel\"]],\n  hostAttrs: [\"role\", \"tabpanel\", 1, \"mat-mdc-tab-nav-panel\"],\n  hostVars: 2,\n  hostBindings: function MatTabNavPanel_HostBindings(rf, ctx) {\n    if (rf & 2) {\n      i0.ɵɵattribute(\"aria-labelledby\", ctx._activeTabId)(\"id\", ctx.id);\n    }\n  },\n  inputs: {\n    id: \"id\"\n  },\n  exportAs: [\"matTabNavPanel\"],\n  ngContentSelectors: _c2,\n  decls: 1,\n  vars: 0,\n  template: function MatTabNavPanel_Template(rf, ctx) {\n    if (rf & 1) {\n      i0.ɵɵprojectionDef();\n      i0.ɵɵprojection(0);\n    }\n  },\n  encapsulation: 2,\n  changeDetection: 0\n});\n(() => {\n  (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatTabNavPanel, [{\n    type: Component,\n    args: [{\n      selector: 'mat-tab-nav-panel',\n      exportAs: 'matTabNavPanel',\n      template: '<ng-content></ng-content>',\n      host: {\n        '[attr.aria-labelledby]': '_activeTabId',\n        '[attr.id]': 'id',\n        'class': 'mat-mdc-tab-nav-panel',\n        'role': 'tabpanel'\n      },\n      encapsulation: ViewEncapsulation.None,\n      changeDetection: ChangeDetectionStrategy.OnPush\n    }]\n  }], null, {\n    id: [{\n      type: Input\n    }]\n  });\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass MatTabsModule {}\nMatTabsModule.ɵfac = function MatTabsModule_Factory(t) {\n  return new (t || MatTabsModule)();\n};\nMatTabsModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n  type: MatTabsModule\n});\nMatTabsModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n  imports: [CommonModule, MatCommonModule, PortalModule, MatRippleModule, ObserversModule, A11yModule, MatCommonModule]\n});\n(() => {\n  (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatTabsModule, [{\n    type: NgModule,\n    args: [{\n      imports: [CommonModule, MatCommonModule, PortalModule, MatRippleModule, ObserversModule, A11yModule],\n      exports: [MatCommonModule, MatTabContent, MatTabLabel, MatTab, MatTabGroup, MatTabNav, MatTabNavPanel, MatTabLink],\n      declarations: [MatTabContent, MatTabLabel, MatTab, MatTabGroup, MatTabNav, MatTabNavPanel, MatTabLink,\n      // Private directives, should not be exported.\n      MatTabBody, MatTabBodyPortal, MatTabLabelWrapper, MatTabHeader]\n    }]\n  }], null, null);\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_TAB, MAT_TABS_CONFIG, MAT_TAB_CONTENT, MAT_TAB_GROUP, MAT_TAB_LABEL, MatInkBar, MatPaginatedTabHeader, MatTab, MatTabBody, MatTabBodyPortal, MatTabChangeEvent, MatTabContent, MatTabGroup, MatTabHeader, MatTabLabel, MatTabLabelWrapper, MatTabLink, MatTabNav, MatTabNavPanel, MatTabsModule, _MAT_INK_BAR_POSITIONER, _MAT_INK_BAR_POSITIONER_FACTORY, _MatTabBase, _MatTabBodyBase, _MatTabGroupBase, _MatTabHeaderBase, _MatTabLabelWrapperBase, _MatTabLinkBase, _MatTabNavBase, matTabsAnimations };","map":{"version":3,"names":["i1$2","DOCUMENT","CommonModule","i0","forwardRef","Directive","Inject","EventEmitter","Optional","Output","Input","Component","ViewEncapsulation","ChangeDetectionStrategy","ViewChild","InjectionToken","TemplateRef","ContentChild","ContentChildren","QueryList","Attribute","NgModule","i5","mixinDisabled","mixinColor","mixinDisableRipple","mixinTabIndex","MAT_RIPPLE_GLOBAL_OPTIONS","MatCommonModule","MatRippleModule","i2","CdkPortalOutlet","CdkPortal","TemplatePortal","PortalModule","i5$1","ObserversModule","i4","FocusKeyManager","A11yModule","i1","Subscription","Subject","fromEvent","of","merge","EMPTY","Observable","timer","BehaviorSubject","startWith","distinctUntilChanged","takeUntil","take","switchMap","skip","filter","trigger","state","style","transition","animate","coerceBooleanProperty","coerceNumberProperty","i1$1","i3","normalizePassiveListenerOptions","ANIMATION_MODULE_TYPE","hasModifierKey","SPACE","ENTER","_c0","a0","animationDuration","_c1","a1","value","params","MatTabBody_ng_template_2_Template","rf","ctx","_c2","MatTab_ng_template_0_Template","ɵɵprojection","_c3","_c4","_c5","_c6","_c7","_c8","_c9","MatTabGroup_div_2_ng_template_6_ng_template_0_Template","MatTabGroup_div_2_ng_template_6_Template","ɵɵtemplate","tab_r4","ɵɵnextContext","$implicit","ɵɵproperty","templateLabel","MatTabGroup_div_2_ng_template_7_Template","ɵɵtext","ɵɵtextInterpolate","textLabel","MatTabGroup_div_2_Template","_r2","ɵɵgetCurrentView","ɵɵelementStart","ɵɵlistener","MatTabGroup_div_2_Template_div_click_0_listener","ctx_r2","ɵɵrestoreView","i_r5","index","ctx_r5","tabHeader_r7","ɵɵreference","ɵɵresetView","_handleClick","MatTabGroup_div_2_Template_div_cdkFocusChange_0_listener","$event","_tabFocusChanged","ɵɵelement","ɵɵtemplateRefExtractor","ɵɵelementEnd","tabNode_r8","tabTextLabel_r9","ɵɵclassProp","selectedIndex","_getTabLabelId","labelClass","disabled","fitInkBarToContent","ɵɵattribute","_getTabIndex","_tabs","length","_getTabContentId","ariaLabel","ariaLabelledby","ɵɵadvance","disableRipple","MatTabGroup_mat_tab_body_5_Template","_r10","MatTabGroup_mat_tab_body_5_Template_mat_tab_body__onCentered_0_listener","_removeTabBodyWrapperHeight","MatTabGroup_mat_tab_body_5_Template_mat_tab_body__onCentering_0_listener","_setTabBodyWrapperHeight","tab_r11","i_r12","bodyClass","content","position","origin","preserveContent","contentTabIndex","_c10","_c11","matTabsAnimations","translateTab","transform","minHeight","visibility","MatTabBodyPortal","constructor","componentFactoryResolver","viewContainerRef","_host","_document","_centeringSub","_leavingSub","ngOnInit","_beforeCentering","pipe","_isCenterPosition","_position","subscribe","isCentering","hasAttached","attach","_content","_afterLeavingCenter","detach","ngOnDestroy","unsubscribe","ɵfac","MatTabBodyPortal_Factory","t","ɵɵdirectiveInject","ComponentFactoryResolver","ViewContainerRef","MatTabBody","ɵdir","ɵɵdefineDirective","type","selectors","features","ɵɵInheritDefinitionFeature","ngDevMode","ɵsetClassMetadata","args","selector","decorators","undefined","_MatTabBodyBase","_positionIndex","_computePositionAnimationState","_elementRef","_dir","changeDetectorRef","_dirChangeSubscription","_translateTabComplete","_onCentering","_onCentered","change","dir","markForCheck","x","y","fromState","toState","event","emit","_computePositionFromOrigin","complete","_onTranslateTabStarted","nativeElement","clientHeight","_getLayoutDirection","_MatTabBodyBase_Factory","ElementRef","Directionality","ChangeDetectorRef","inputs","ɵɵInputFlags","None","outputs","elementRef","MatTabBody_Factory","ɵcmp","ɵɵdefineComponent","viewQuery","MatTabBody_Query","ɵɵviewQuery","_t","ɵɵqueryRefresh","ɵɵloadQuery","_portalHost","first","hostAttrs","decls","vars","consts","template","MatTabBody_Template","_r1","MatTabBody_Template_div_animation_translateTab_start_0_listener","MatTabBody_Template_div_animation_translateTab_done_0_listener","next","ɵɵpureFunction2","ɵɵpureFunction1","dependencies","styles","encapsulation","data","animation","changeDetection","Default","animations","host","MAT_TAB_CONTENT","MatTabContent","MatTabContent_Factory","ɵɵProvidersFeature","provide","useExisting","providers","MAT_TAB_LABEL","MAT_TAB","MatTabLabel","templateRef","_closestTab","MatTabLabel_Factory","ACTIVE_CLASS","NO_TRANSITION_CLASS","MatInkBar","_items","hide","forEach","item","deactivateInkBar","alignToElement","element","correspondingItem","find","currentItem","_currentItem","clientRect","getBoundingClientRect","activateInkBar","mixinInkBarItem","base","_fitToContent","v","newValue","_inkBarElement","_appendInkBarElement","previousIndicatorClientRect","_inkBarContentElement","classList","add","currentClientRect","widthDelta","width","xPosition","left","setProperty","remove","_createInkBarElement","documentNode","ownerDocument","document","createElement","className","appendChild","Error","parentElement","querySelector","_MAT_INK_BAR_POSITIONER_FACTORY","method","offsetLeft","offsetWidth","_MAT_INK_BAR_POSITIONER","providedIn","factory","_MatTabLabelWrapperMixinBase","_MatTabLabelWrapperBase","focus","getOffsetLeft","getOffsetWidth","_MatTabLabelWrapperBase_Factory","_MatTabLabelWrapperBaseWithInkBarItem","MatTabLabelWrapper","ɵMatTabLabelWrapper_BaseFactory","MatTabLabelWrapper_Factory","ɵɵgetInheritedFactory","hostVars","hostBindings","MatTabLabelWrapper_HostBindings","_MatTabMixinBase","MAT_TAB_GROUP","_MatTabBase","_contentPortal","_viewContainerRef","_closestTabGroup","_stateChanges","isActive","ngOnChanges","changes","hasOwnProperty","_explicitContent","_implicitContent","_setTemplateLabelInput","_templateLabel","_MatTabBase_Factory","_MatTabBase_Query","ɵɵNgOnChangesFeature","static","MatTab","ɵMatTab_BaseFactory","MatTab_Factory","contentQueries","MatTab_ContentQueries","dirIndex","ɵɵcontentQuery","exportAs","ngContentSelectors","MatTab_Template","ɵɵprojectionDef","read","passiveEventListenerOptions","passive","HEADER_SCROLL_DELAY","HEADER_SCROLL_INTERVAL","MatPaginatedTabHeader","disablePagination","_disablePagination","_selectedIndex","_selectedIndexChanged","_keyManager","updateActiveItem","_changeDetectorRef","_viewportRuler","_ngZone","_platform","_animationMode","_scrollDistance","_destroyed","_showPaginationControls","_disableScrollAfter","_disableScrollBefore","_stopScrolling","selectFocusedIndex","indexFocused","runOutsideAngular","_stopInterval","ngAfterViewInit","_previousPaginator","_handlePaginatorPress","_nextPaginator","ngAfterContentInit","dirChange","resize","realign","updatePagination","_alignInkBarToSelectedTab","withHorizontalOrientation","withHomeAndEnd","withWrap","skipPredicate","onStable","_itemsResized","run","Promise","resolve","then","Math","max","min","_getMaxScrollDistance","newFocusIndex","_setTabFocus","ResizeObserver","tabItems","observer","resizeObserver","entries","observe","disconnect","some","e","contentRect","height","ngAfterContentChecked","_tabLabelCount","_scrollToLabel","_checkScrollingControls","_scrollDistanceChanged","_updateTabScrollPosition","destroy","_handleKeydown","keyCode","focusIndex","get","_itemSelected","onKeydown","_onContentChanges","textContent","_currentTextContent","_checkPaginationEnabled","activeItemIndex","_isValidIndex","setActiveItem","toArray","tabIndex","containerEl","_tabListContainer","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","ViewportRuler","NgZone","Platform","_MatTabHeaderBase","_disableRipple","viewportRuler","ngZone","platform","animationMode","preventDefault","_MatTabHeaderBase_Factory","MatTabHeader","MatTabHeader_Factory","MatTabHeader_ContentQueries","MatTabHeader_Query","MatTabHeader_HostBindings","MatTabHeader_Template","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","MatRipple","CdkObserveContent","descendants","MAT_TABS_CONFIG","nextId","_MatTabGroupMixinBase","_MatTabGroupBase","dynamicHeight","_dynamicHeight","_indexToSelect","_animationDuration","test","_contentTabIndex","_preserveContent","backgroundColor","_backgroundColor","defaultConfig","_lastFocusedTabIndex","_tabBodyWrapperHeight","_tabsSubscription","_tabLabelSubscription","headerPosition","selectedIndexChange","focusChange","animationDone","selectedTabChange","_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","_MatTabGroupBase_Factory","MatTabGroup","_fitInkBarToContent","stretchTabs","_stretchTabs","MatTabGroup_Factory","MatTabGroup_ContentQueries","MatTabGroup_Query","MatTabGroup_HostBindings","color","MatTabGroup_Template","MatTabGroup_Template_mat_tab_header_indexFocused_0_listener","MatTabGroup_Template_mat_tab_header_selectFocusedIndex_0_listener","NgClass","NgForOf","NgIf","CdkMonitorFocus","nextUniqueId","_MatTabNavBase","updateActiveLink","items","active","tabPanel","_activeTabId","id","_getRole","getAttribute","_MatTabNavBase_Factory","_MatTabLinkMixinBase","_MatTabLinkBase","_isActive","_tabNavBar","rippleDisabled","rippleConfig","globalRippleOptions","_focusMonitor","parseInt","enterDuration","exitDuration","monitor","stopMonitoring","_handleFocus","indexOf","click","_getAriaControls","_getAriaSelected","_getAriaCurrent","_MatTabLinkBase_Factory","ɵɵinjectAttribute","FocusMonitor","_MatTabLinkBaseWithInkBarItem","MatTabNav","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","tabNavBar","focusMonitor","MatTabLink_Factory","MatTabLink_HostBindings","MatTabLink_focus_HostBindingHandler","MatTabLink_keydown_HostBindingHandler","MatTabLink_Template","OnPush","MatTabNavPanel","MatTabNavPanel_Factory","MatTabNavPanel_HostBindings","MatTabNavPanel_Template","MatTabsModule","MatTabsModule_Factory","ɵmod","ɵɵdefineNgModule","ɵinj","ɵɵdefineInjector","imports","exports","declarations"],"sources":["C:/Users/Cem/Desktop/InventryUI-Client/node_modules/@angular/material/fesm2020/tabs.mjs"],"sourcesContent":["import * as i1$2 from '@angular/common';\nimport { DOCUMENT, CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { forwardRef, Directive, Inject, EventEmitter, Optional, Output, Input, Component, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, InjectionToken, TemplateRef, ContentChild, ContentChildren, QueryList, Attribute, NgModule } from '@angular/core';\nimport * as i5 from '@angular/material/core';\nimport { mixinDisabled, mixinColor, mixinDisableRipple, mixinTabIndex, MAT_RIPPLE_GLOBAL_OPTIONS, MatCommonModule, MatRippleModule } from '@angular/material/core';\nimport * as i2 from '@angular/cdk/portal';\nimport { CdkPortalOutlet, CdkPortal, TemplatePortal, PortalModule } from '@angular/cdk/portal';\nimport * as i5$1 from '@angular/cdk/observers';\nimport { ObserversModule } from '@angular/cdk/observers';\nimport * as i4 from '@angular/cdk/a11y';\nimport { FocusKeyManager, A11yModule } from '@angular/cdk/a11y';\nimport * as i1 from '@angular/cdk/bidi';\nimport { Subscription, Subject, fromEvent, of, merge, EMPTY, Observable, timer, BehaviorSubject } from 'rxjs';\nimport { startWith, distinctUntilChanged, takeUntil, take, switchMap, skip, filter } from 'rxjs/operators';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\nimport { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';\nimport * as i1$1 from '@angular/cdk/scrolling';\nimport * as i3 from '@angular/cdk/platform';\nimport { normalizePassiveListenerOptions } from '@angular/cdk/platform';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\nimport { hasModifierKey, SPACE, ENTER } from '@angular/cdk/keycodes';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\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 * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\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}\nMatTabBodyPortal.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: MatTabBodyPortal, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.ViewContainerRef }, { token: forwardRef(() => MatTabBody) }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive });\nMatTabBodyPortal.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", type: MatTabBodyPortal, selector: \"[matTabBodyHost]\", usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: MatTabBodyPortal, decorators: [{\n            type: Directive,\n            args: [{\n                    selector: '[matTabBodyHost]',\n                }]\n        }], ctorParameters: function () { return [{ 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 * Base class with all of the `MatTabBody` functionality.\n * @docs-private\n */\nclass _MatTabBodyBase {\n    /** The shifted index position of the tab body, where zero represents the active center tab. */\n    set position(position) {\n        this._positionIndex = position;\n        this._computePositionAnimationState();\n    }\n    constructor(_elementRef, _dir, changeDetectorRef) {\n        this._elementRef = _elementRef;\n        this._dir = _dir;\n        /** Subscription to the directionality change observable. */\n        this._dirChangeSubscription = Subscription.EMPTY;\n        /** Emits when an animation on the tab is complete. */\n        this._translateTabComplete = new Subject();\n        /** Event emitted when the tab begins to animate towards the center as the active tab. */\n        this._onCentering = new EventEmitter();\n        /** Event emitted before the centering of the tab begins. */\n        this._beforeCentering = new EventEmitter();\n        /** Event emitted before the centering of the tab begins. */\n        this._afterLeavingCenter = new EventEmitter();\n        /** Event emitted when the tab completes its animation towards the center. */\n        this._onCentered = new EventEmitter(true);\n        // Note that the default value will always be overwritten by `MatTabBody`, but we need one\n        // anyway to prevent the animations module from throwing an error if the body is used on its own.\n        /** Duration for the tab's animation. */\n        this.animationDuration = '500ms';\n        /** Whether the tab's content should be kept in the DOM while it's off-screen. */\n        this.preserveContent = false;\n        if (_dir) {\n            this._dirChangeSubscription = _dir.change.subscribe((dir) => {\n                this._computePositionAnimationState(dir);\n                changeDetectorRef.markForCheck();\n            });\n        }\n        // Ensure that we get unique animation events, because the `.done` callback can get\n        // invoked twice in some browsers. See https://github.com/angular/angular/issues/24084.\n        this._translateTabComplete\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}\n_MatTabBodyBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: _MatTabBodyBase, deps: [{ token: i0.ElementRef }, { token: i1.Directionality, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });\n_MatTabBodyBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", type: _MatTabBodyBase, inputs: { _content: [\"content\", \"_content\"], origin: \"origin\", animationDuration: \"animationDuration\", preserveContent: \"preserveContent\", position: \"position\" }, outputs: { _onCentering: \"_onCentering\", _beforeCentering: \"_beforeCentering\", _afterLeavingCenter: \"_afterLeavingCenter\", _onCentered: \"_onCentered\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: _MatTabBodyBase, decorators: [{\n            type: Directive\n        }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.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            }], _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 * Wrapper for the contents of a tab.\n * @docs-private\n */\nclass MatTabBody extends _MatTabBodyBase {\n    constructor(elementRef, dir, changeDetectorRef) {\n        super(elementRef, dir, changeDetectorRef);\n    }\n}\nMatTabBody.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: MatTabBody, deps: [{ token: i0.ElementRef }, { token: i1.Directionality, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });\nMatTabBody.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", type: MatTabBody, selector: \"mat-tab-body\", host: { classAttribute: \"mat-mdc-tab-body\" }, viewQueries: [{ propertyName: \"_portalHost\", first: true, predicate: CdkPortalOutlet, descendants: true }], usesInheritance: true, ngImport: i0, template: \"<div class=\\\"mat-mdc-tab-body-content\\\" #content\\n     [@translateTab]=\\\"{\\n        value: _position,\\n        params: {animationDuration: animationDuration}\\n     }\\\"\\n     (@translateTab.start)=\\\"_onTranslateTabStarted($event)\\\"\\n     (@translateTab.done)=\\\"_translateTabComplete.next($event)\\\"\\n     cdkScrollable>\\n  <ng-template matTabBodyHost></ng-template>\\n</div>\\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]\" }], animations: [matTabsAnimations.translateTab], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.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                    }, template: \"<div class=\\\"mat-mdc-tab-body-content\\\" #content\\n     [@translateTab]=\\\"{\\n        value: _position,\\n        params: {animationDuration: animationDuration}\\n     }\\\"\\n     (@translateTab.start)=\\\"_onTranslateTabStarted($event)\\\"\\n     (@translateTab.done)=\\\"_translateTabComplete.next($event)\\\"\\n     cdkScrollable>\\n  <ng-template matTabBodyHost></ng-template>\\n</div>\\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: function () { return [{ type: i0.ElementRef }, { type: i1.Directionality, decorators: [{\n                    type: Optional\n                }] }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { _portalHost: [{\n                type: ViewChild,\n                args: [CdkPortalOutlet]\n            }] } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\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}\nMatTabContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: MatTabContent, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });\nMatTabContent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", type: MatTabContent, selector: \"[matTabContent]\", providers: [{ provide: MAT_TAB_CONTENT, useExisting: MatTabContent }], ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: MatTabContent, decorators: [{\n            type: Directive,\n            args: [{\n                    selector: '[matTabContent]',\n                    providers: [{ provide: MAT_TAB_CONTENT, useExisting: MatTabContent }],\n                }]\n        }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\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}\nMatTabLabel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: MatTabLabel, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: MAT_TAB, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\nMatTabLabel.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", type: MatTabLabel, selector: \"[mat-tab-label], [matTabLabel]\", providers: [{ provide: MAT_TAB_LABEL, useExisting: MatTabLabel }], usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.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                }]\n        }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: undefined, decorators: [{\n                    type: Inject,\n                    args: [MAT_TAB]\n                }, {\n                    type: Optional\n                }] }]; } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\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        currentItem?.deactivateInkBar();\n        if (correspondingItem) {\n            const clientRect = currentItem?.elementRef.nativeElement.getBoundingClientRect?.();\n            // The ink bar won't animate unless we give it the `ClientRect` of the previous item.\n            correspondingItem.activateInkBar(clientRect);\n            this._currentItem = correspondingItem;\n        }\n    }\n}\n/**\n * Mixin that can be used to apply the `MatInkBarItem` behavior to a class.\n * Base on MDC's `MDCSlidingTabIndicatorFoundation`:\n * https://github.com/material-components/material-components-web/blob/c0a11ef0d000a098fd0c372be8f12d6a99302855/packages/mdc-tab-indicator/sliding-foundation.ts\n * @docs-private\n */\nfunction mixinInkBarItem(base) {\n    return class extends base {\n        constructor(...args) {\n            super(...args);\n            this._fitToContent = false;\n        }\n        /** Whether the ink bar should fit to the entire tab or just its content. */\n        get fitInkBarToContent() {\n            return this._fitToContent;\n        }\n        set fitInkBarToContent(v) {\n            const newValue = coerceBooleanProperty(v);\n            if (this._fitToContent !== newValue) {\n                this._fitToContent = newValue;\n                if (this._inkBarElement) {\n                    this._appendInkBarElement();\n                }\n            }\n        }\n        /** Aligns the ink bar to the current item. */\n        activateInkBar(previousIndicatorClientRect) {\n            const element = this.elementRef.nativeElement;\n            // Early exit if no indicator is present to handle cases where an indicator\n            // may be activated without a prior indicator state\n            if (!previousIndicatorClientRect ||\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            this._inkBarElement = documentNode.createElement('span');\n            this._inkBarContentElement = documentNode.createElement('span');\n            this._inkBarElement.className = 'mdc-tab-indicator';\n            this._inkBarContentElement.className =\n                'mdc-tab-indicator__content mdc-tab-indicator__content--underline';\n            this._inkBarElement.appendChild(this._inkBarContentElement);\n            this._appendInkBarElement();\n        }\n        /**\n         * Appends the ink bar to the tab host element or content, depending on whether\n         * the ink bar should fit to content.\n         */\n        _appendInkBarElement() {\n            if (!this._inkBarElement && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n                throw Error('Ink bar element has not been created and cannot be appended');\n            }\n            const parentElement = this._fitToContent\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    };\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 * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// Boilerplate for applying mixins to MatTabLabelWrapper.\n/** @docs-private */\nconst _MatTabLabelWrapperMixinBase = mixinDisabled(class {\n});\n/**\n * Used in the `mat-tab-group` view to display tab labels.\n * @docs-private\n */\nclass _MatTabLabelWrapperBase extends _MatTabLabelWrapperMixinBase {\n    constructor(elementRef) {\n        super();\n        this.elementRef = elementRef;\n    }\n    /** Sets focus on the wrapper element */\n    focus() {\n        this.elementRef.nativeElement.focus();\n    }\n    getOffsetLeft() {\n        return this.elementRef.nativeElement.offsetLeft;\n    }\n    getOffsetWidth() {\n        return this.elementRef.nativeElement.offsetWidth;\n    }\n}\n_MatTabLabelWrapperBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: _MatTabLabelWrapperBase, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });\n_MatTabLabelWrapperBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", type: _MatTabLabelWrapperBase, usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: _MatTabLabelWrapperBase, decorators: [{\n            type: Directive\n        }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });\nconst _MatTabLabelWrapperBaseWithInkBarItem = mixinInkBarItem(_MatTabLabelWrapperBase);\n/**\n * Used in the `mat-tab-group` view to display tab labels.\n * @docs-private\n */\nclass MatTabLabelWrapper extends _MatTabLabelWrapperBaseWithInkBarItem {\n}\nMatTabLabelWrapper.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: MatTabLabelWrapper, deps: null, target: i0.ɵɵFactoryTarget.Directive });\nMatTabLabelWrapper.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", type: MatTabLabelWrapper, selector: \"[matTabLabelWrapper]\", inputs: { disabled: \"disabled\", fitInkBarToContent: \"fitInkBarToContent\" }, host: { properties: { \"class.mat-mdc-tab-disabled\": \"disabled\", \"attr.aria-disabled\": \"!!disabled\" } }, usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: MatTabLabelWrapper, decorators: [{\n            type: Directive,\n            args: [{\n                    selector: '[matTabLabelWrapper]',\n                    inputs: ['disabled', 'fitInkBarToContent'],\n                    host: {\n                        '[class.mat-mdc-tab-disabled]': 'disabled',\n                        '[attr.aria-disabled]': '!!disabled',\n                    },\n                }]\n        }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// Boilerplate for applying mixins to MatTab.\n/** @docs-private */\nconst _MatTabMixinBase = mixinDisabled(class {\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');\n/** @docs-private */\nclass _MatTabBase extends _MatTabMixinBase {\n    /** @docs-private */\n    get content() {\n        return this._contentPortal;\n    }\n    constructor(_viewContainerRef, _closestTabGroup) {\n        super();\n        this._viewContainerRef = _viewContainerRef;\n        this._closestTabGroup = _closestTabGroup;\n        /** Plain text label for the tab, used when there is no template label. */\n        this.textLabel = '';\n        /** Portal that will be the hosted content of the tab */\n        this._contentPortal = null;\n        /** Emits whenever the internal state of the tab changes. */\n        this._stateChanges = new Subject();\n        /**\n         * The relatively indexed position where 0 represents the center, negative is left, and positive\n         * represents the right.\n         */\n        this.position = null;\n        /**\n         * The initial relatively index origin of the tab if it was created and selected after there\n         * was already a selected tab. Provides context of what position the tab should originate from.\n         */\n        this.origin = null;\n        /**\n         * Whether the tab is currently active.\n         */\n        this.isActive = false;\n    }\n    ngOnChanges(changes) {\n        if (changes.hasOwnProperty('textLabel') || changes.hasOwnProperty('disabled')) {\n            this._stateChanges.next();\n        }\n    }\n    ngOnDestroy() {\n        this._stateChanges.complete();\n    }\n    ngOnInit() {\n        this._contentPortal = new TemplatePortal(this._explicitContent || this._implicitContent, this._viewContainerRef);\n    }\n    /**\n     * This has been extracted to a util because of TS 4 and VE.\n     * View Engine doesn't support property rename inheritance.\n     * TS 4.0 doesn't allow properties to override accessors or vice-versa.\n     * @docs-private\n     */\n    _setTemplateLabelInput(value) {\n        // Only update the label if the query managed to find one. This works around an issue where a\n        // user may have manually set `templateLabel` during creation mode, which would then get\n        // clobbered by `undefined` when the query resolves. Also note that we check that the closest\n        // tab matches the current one so that we don't pick up labels from nested tabs.\n        if (value && value._closestTab === this) {\n            this._templateLabel = value;\n        }\n    }\n}\n_MatTabBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: _MatTabBase, deps: [{ token: i0.ViewContainerRef }, { token: MAT_TAB_GROUP, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\n_MatTabBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", type: _MatTabBase, inputs: { textLabel: [\"label\", \"textLabel\"], ariaLabel: [\"aria-label\", \"ariaLabel\"], ariaLabelledby: [\"aria-labelledby\", \"ariaLabelledby\"], labelClass: \"labelClass\", bodyClass: \"bodyClass\" }, viewQueries: [{ propertyName: \"_implicitContent\", first: true, predicate: TemplateRef, descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: _MatTabBase, decorators: [{\n            type: Directive\n        }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: undefined, decorators: [{\n                    type: Inject,\n                    args: [MAT_TAB_GROUP]\n                }, {\n                    type: Optional\n                }] }]; }, propDecorators: { _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            }] } });\nclass MatTab extends _MatTabBase {\n    /** Content for the tab label given by `<ng-template mat-tab-label>`. */\n    get templateLabel() {\n        return this._templateLabel;\n    }\n    set templateLabel(value) {\n        this._setTemplateLabelInput(value);\n    }\n}\nMatTab.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: MatTab, deps: null, target: i0.ɵɵFactoryTarget.Component });\nMatTab.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", type: MatTab, selector: \"mat-tab\", inputs: { disabled: \"disabled\" }, providers: [{ provide: MAT_TAB, useExisting: MatTab }], queries: [{ propertyName: \"_explicitContent\", first: true, predicate: MatTabContent, descendants: true, read: TemplateRef, static: true }, { propertyName: \"templateLabel\", first: true, predicate: MatTabLabel, descendants: true }], exportAs: [\"matTab\"], usesInheritance: true, ngImport: i0, template: \"<!-- Create a template for the content of the <mat-tab> so that we can grab a reference to this\\n    TemplateRef and use it in a Portal to render the tab content in the appropriate place in the\\n    tab-group. -->\\n<ng-template><ng-content></ng-content></ng-template>\\n\", changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: MatTab, decorators: [{\n            type: Component,\n            args: [{ selector: 'mat-tab', inputs: ['disabled'], changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, exportAs: 'matTab', providers: [{ provide: MAT_TAB, useExisting: MatTab }], template: \"<!-- Create a template for the content of the <mat-tab> so that we can grab a reference to this\\n    TemplateRef and use it in a Portal to render the tab content in the appropriate place in the\\n    tab-group. -->\\n<ng-template><ng-content></ng-content></ng-template>\\n\" }]\n        }], propDecorators: { _explicitContent: [{\n                type: ContentChild,\n                args: [MatTabContent, { read: TemplateRef, static: true }]\n            }], templateLabel: [{\n                type: ContentChild,\n                args: [MatTabLabel]\n            }] } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Config used to bind passive event listeners */\nconst passiveEventListenerOptions = normalizePassiveListenerOptions({\n    passive: true,\n});\n/**\n * Amount of milliseconds to wait before starting to scroll the header automatically.\n * Set a little conservatively in order to handle fake events dispatched on touch devices.\n */\nconst HEADER_SCROLL_DELAY = 650;\n/**\n * Interval in milliseconds at which to scroll the header\n * while the user is holding their pointer.\n */\nconst HEADER_SCROLL_INTERVAL = 100;\n/**\n * Base class for a tab header that supported pagination.\n * @docs-private\n */\nclass MatPaginatedTabHeader {\n    /**\n     * Whether pagination should be disabled. This can be used to avoid unnecessary\n     * layout recalculations if it's known that pagination won't be required.\n     */\n    get disablePagination() {\n        return this._disablePagination;\n    }\n    set disablePagination(value) {\n        this._disablePagination = coerceBooleanProperty(value);\n    }\n    /** The index of the active tab. */\n    get selectedIndex() {\n        return this._selectedIndex;\n    }\n    set selectedIndex(value) {\n        value = coerceNumberProperty(value);\n        if (this._selectedIndex != value) {\n            this._selectedIndexChanged = true;\n            this._selectedIndex = value;\n            if (this._keyManager) {\n                this._keyManager.updateActiveItem(value);\n            }\n        }\n    }\n    constructor(_elementRef, _changeDetectorRef, _viewportRuler, _dir, _ngZone, _platform, _animationMode) {\n        this._elementRef = _elementRef;\n        this._changeDetectorRef = _changeDetectorRef;\n        this._viewportRuler = _viewportRuler;\n        this._dir = _dir;\n        this._ngZone = _ngZone;\n        this._platform = _platform;\n        this._animationMode = _animationMode;\n        /** The distance in pixels that the tab labels should be translated to the left. */\n        this._scrollDistance = 0;\n        /** Whether the header should scroll to the selected index after the view has been checked. */\n        this._selectedIndexChanged = false;\n        /** Emits when the component is destroyed. */\n        this._destroyed = new Subject();\n        /** Whether the controls for pagination should be displayed */\n        this._showPaginationControls = false;\n        /** Whether the tab list can be scrolled more towards the end of the tab label list. */\n        this._disableScrollAfter = true;\n        /** Whether the tab list can be scrolled more towards the beginning of the tab label list. */\n        this._disableScrollBefore = true;\n        /** Stream that will stop the automated scrolling. */\n        this._stopScrolling = new Subject();\n        this._disablePagination = false;\n        this._selectedIndex = 0;\n        /** Event emitted when the option is selected. */\n        this.selectFocusedIndex = new EventEmitter();\n        /** Event emitted when a label is focused. */\n        this.indexFocused = new EventEmitter();\n        // Bind the `mouseleave` event on the outside since it doesn't change anything in the view.\n        _ngZone.runOutsideAngular(() => {\n            fromEvent(_elementRef.nativeElement, 'mouseleave')\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}\nMatPaginatedTabHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: MatPaginatedTabHeader, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1$1.ViewportRuler }, { token: i1.Directionality, optional: true }, { token: i0.NgZone }, { token: i3.Platform }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\nMatPaginatedTabHeader.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", type: MatPaginatedTabHeader, inputs: { disablePagination: \"disablePagination\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: MatPaginatedTabHeader, decorators: [{\n            type: Directive\n        }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$1.ViewportRuler }, { type: i1.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            }] } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Base class with all of the `MatTabHeader` functionality.\n * @docs-private\n */\nclass _MatTabHeaderBase extends MatPaginatedTabHeader {\n    /** Whether the ripple effect is disabled or not. */\n    get disableRipple() {\n        return this._disableRipple;\n    }\n    set disableRipple(value) {\n        this._disableRipple = coerceBooleanProperty(value);\n    }\n    constructor(elementRef, changeDetectorRef, viewportRuler, dir, ngZone, platform, animationMode) {\n        super(elementRef, changeDetectorRef, viewportRuler, dir, ngZone, platform, animationMode);\n        this._disableRipple = false;\n    }\n    _itemSelected(event) {\n        event.preventDefault();\n    }\n}\n_MatTabHeaderBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: _MatTabHeaderBase, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1$1.ViewportRuler }, { token: i1.Directionality, optional: true }, { token: i0.NgZone }, { token: i3.Platform }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\n_MatTabHeaderBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", type: _MatTabHeaderBase, inputs: { disableRipple: \"disableRipple\" }, usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: _MatTabHeaderBase, decorators: [{\n            type: Directive\n        }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$1.ViewportRuler }, { type: i1.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: { disableRipple: [{\n                type: Input\n            }] } });\n/**\n * The header of the tab group which displays a list of all the tabs in the tab group. Includes\n * an ink bar that follows the currently selected tab. When the tabs list's width exceeds the\n * width of the header container, then arrows will be displayed to allow the user to scroll\n * left and right across the header.\n * @docs-private\n */\nclass MatTabHeader extends _MatTabHeaderBase {\n    constructor(elementRef, changeDetectorRef, viewportRuler, dir, ngZone, platform, animationMode) {\n        super(elementRef, changeDetectorRef, viewportRuler, dir, ngZone, platform, animationMode);\n    }\n    ngAfterContentInit() {\n        this._inkBar = new MatInkBar(this._items);\n        super.ngAfterContentInit();\n    }\n}\nMatTabHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: MatTabHeader, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1$1.ViewportRuler }, { token: i1.Directionality, optional: true }, { token: i0.NgZone }, { token: i3.Platform }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Component });\nMatTabHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", type: MatTabHeader, selector: \"mat-tab-header\", inputs: { selectedIndex: \"selectedIndex\" }, outputs: { selectFocusedIndex: \"selectFocusedIndex\", indexFocused: \"indexFocused\" }, 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: \"<!-- TODO: this also had `mat-elevation-z4`. Figure out what we should do with it. -->\\n<button class=\\\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-before\\\"\\n     #previousPaginator\\n     aria-hidden=\\\"true\\\"\\n     type=\\\"button\\\"\\n     mat-ripple\\n     tabindex=\\\"-1\\\"\\n     [matRippleDisabled]=\\\"_disableScrollBefore || disableRipple\\\"\\n     [class.mat-mdc-tab-header-pagination-disabled]=\\\"_disableScrollBefore\\\"\\n     [disabled]=\\\"_disableScrollBefore || null\\\"\\n     (click)=\\\"_handlePaginatorClick('before')\\\"\\n     (mousedown)=\\\"_handlePaginatorPress('before', $event)\\\"\\n     (touchend)=\\\"_stopInterval()\\\">\\n  <div class=\\\"mat-mdc-tab-header-pagination-chevron\\\"></div>\\n</button>\\n\\n<div\\n  class=\\\"mat-mdc-tab-label-container\\\"\\n  #tabListContainer\\n  (keydown)=\\\"_handleKeydown($event)\\\"\\n  [class._mat-animation-noopable]=\\\"_animationMode === 'NoopAnimations'\\\">\\n  <div\\n    #tabList\\n    class=\\\"mat-mdc-tab-list\\\"\\n    role=\\\"tablist\\\"\\n    (cdkObserveContent)=\\\"_onContentChanges()\\\">\\n    <div class=\\\"mat-mdc-tab-labels\\\" #tabListInner>\\n      <ng-content></ng-content>\\n    </div>\\n  </div>\\n</div>\\n\\n<!-- TODO: this also had `mat-elevation-z4`. Figure out what we should do with it. -->\\n<button class=\\\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-after\\\"\\n     #nextPaginator\\n     aria-hidden=\\\"true\\\"\\n     type=\\\"button\\\"\\n     mat-ripple\\n     [matRippleDisabled]=\\\"_disableScrollAfter || disableRipple\\\"\\n     [class.mat-mdc-tab-header-pagination-disabled]=\\\"_disableScrollAfter\\\"\\n     [disabled]=\\\"_disableScrollAfter || null\\\"\\n     tabindex=\\\"-1\\\"\\n     (mousedown)=\\\"_handlePaginatorPress('after', $event)\\\"\\n     (click)=\\\"_handlePaginatorClick('after')\\\"\\n     (touchend)=\\\"_stopInterval()\\\">\\n  <div class=\\\"mat-mdc-tab-header-pagination-chevron\\\"></div>\\n</button>\\n\", styles: [\".mat-mdc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.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}.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}.mat-mdc-tab-header-pagination-disabled{box-shadow:none;cursor:default;pointer-events:none}.mat-mdc-tab-header-pagination-disabled .mat-mdc-tab-header-pagination-chevron{opacity:.4}.mat-mdc-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-mdc-tab-list{transition:none}._mat-animation-noopable span.mdc-tab-indicator__content,._mat-animation-noopable span.mdc-tab__text-label{transition:none}.mat-mdc-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-mdc-tab-labels{display:flex;flex:1 0 auto}[mat-align-tabs=center]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:flex-end}.mat-mdc-tab::before{margin:5px}.cdk-high-contrast-active .mat-mdc-tab[aria-disabled=true]{color:GrayText}\"], dependencies: [{ kind: \"directive\", type: i5.MatRipple, selector: \"[mat-ripple], [matRipple]\", inputs: [\"matRippleColor\", \"matRippleUnbounded\", \"matRippleCentered\", \"matRippleRadius\", \"matRippleAnimation\", \"matRippleDisabled\", \"matRippleTrigger\"], exportAs: [\"matRipple\"] }, { kind: \"directive\", type: i5$1.CdkObserveContent, selector: \"[cdkObserveContent]\", inputs: [\"cdkObserveContentDisabled\", \"debounce\"], outputs: [\"cdkObserveContent\"], exportAs: [\"cdkObserveContent\"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: MatTabHeader, decorators: [{\n            type: Component,\n            args: [{ selector: 'mat-tab-header', inputs: ['selectedIndex'], outputs: ['selectFocusedIndex', 'indexFocused'], 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                    }, template: \"<!-- TODO: this also had `mat-elevation-z4`. Figure out what we should do with it. -->\\n<button class=\\\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-before\\\"\\n     #previousPaginator\\n     aria-hidden=\\\"true\\\"\\n     type=\\\"button\\\"\\n     mat-ripple\\n     tabindex=\\\"-1\\\"\\n     [matRippleDisabled]=\\\"_disableScrollBefore || disableRipple\\\"\\n     [class.mat-mdc-tab-header-pagination-disabled]=\\\"_disableScrollBefore\\\"\\n     [disabled]=\\\"_disableScrollBefore || null\\\"\\n     (click)=\\\"_handlePaginatorClick('before')\\\"\\n     (mousedown)=\\\"_handlePaginatorPress('before', $event)\\\"\\n     (touchend)=\\\"_stopInterval()\\\">\\n  <div class=\\\"mat-mdc-tab-header-pagination-chevron\\\"></div>\\n</button>\\n\\n<div\\n  class=\\\"mat-mdc-tab-label-container\\\"\\n  #tabListContainer\\n  (keydown)=\\\"_handleKeydown($event)\\\"\\n  [class._mat-animation-noopable]=\\\"_animationMode === 'NoopAnimations'\\\">\\n  <div\\n    #tabList\\n    class=\\\"mat-mdc-tab-list\\\"\\n    role=\\\"tablist\\\"\\n    (cdkObserveContent)=\\\"_onContentChanges()\\\">\\n    <div class=\\\"mat-mdc-tab-labels\\\" #tabListInner>\\n      <ng-content></ng-content>\\n    </div>\\n  </div>\\n</div>\\n\\n<!-- TODO: this also had `mat-elevation-z4`. Figure out what we should do with it. -->\\n<button class=\\\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-after\\\"\\n     #nextPaginator\\n     aria-hidden=\\\"true\\\"\\n     type=\\\"button\\\"\\n     mat-ripple\\n     [matRippleDisabled]=\\\"_disableScrollAfter || disableRipple\\\"\\n     [class.mat-mdc-tab-header-pagination-disabled]=\\\"_disableScrollAfter\\\"\\n     [disabled]=\\\"_disableScrollAfter || null\\\"\\n     tabindex=\\\"-1\\\"\\n     (mousedown)=\\\"_handlePaginatorPress('after', $event)\\\"\\n     (click)=\\\"_handlePaginatorClick('after')\\\"\\n     (touchend)=\\\"_stopInterval()\\\">\\n  <div class=\\\"mat-mdc-tab-header-pagination-chevron\\\"></div>\\n</button>\\n\", styles: [\".mat-mdc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.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}.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}.mat-mdc-tab-header-pagination-disabled{box-shadow:none;cursor:default;pointer-events:none}.mat-mdc-tab-header-pagination-disabled .mat-mdc-tab-header-pagination-chevron{opacity:.4}.mat-mdc-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-mdc-tab-list{transition:none}._mat-animation-noopable span.mdc-tab-indicator__content,._mat-animation-noopable span.mdc-tab__text-label{transition:none}.mat-mdc-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-mdc-tab-labels{display:flex;flex:1 0 auto}[mat-align-tabs=center]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:flex-end}.mat-mdc-tab::before{margin:5px}.cdk-high-contrast-active .mat-mdc-tab[aria-disabled=true]{color:GrayText}\"] }]\n        }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$1.ViewportRuler }, { type: i1.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            }] } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\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 * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Used to generate unique ID's for each tab component */\nlet nextId = 0;\n// Boilerplate for applying mixins to MatTabGroup.\n/** @docs-private */\nconst _MatTabGroupMixinBase = mixinColor(mixinDisableRipple(class {\n    constructor(_elementRef) {\n        this._elementRef = _elementRef;\n    }\n}), 'primary');\n/**\n * Base class with all of the `MatTabGroupBase` functionality.\n * @docs-private\n */\nclass _MatTabGroupBase extends _MatTabGroupMixinBase {\n    /** Whether the tab group should grow to the size of the active tab. */\n    get dynamicHeight() {\n        return this._dynamicHeight;\n    }\n    set dynamicHeight(value) {\n        this._dynamicHeight = coerceBooleanProperty(value);\n    }\n    /** The index of the active tab. */\n    get selectedIndex() {\n        return this._selectedIndex;\n    }\n    set selectedIndex(value) {\n        this._indexToSelect = coerceNumberProperty(value, null);\n    }\n    /** Duration for the tab animation. Will be normalized to milliseconds if no units are set. */\n    get animationDuration() {\n        return this._animationDuration;\n    }\n    set animationDuration(value) {\n        this._animationDuration = /^\\d+$/.test(value + '') ? value + 'ms' : value;\n    }\n    /**\n     * `tabindex` to be set on the inner element that wraps the tab content. Can be used for improved\n     * accessibility when the tab does not have focusable elements or if it has scrollable content.\n     * The `tabindex` will be removed automatically for inactive tabs.\n     * Read more at https://www.w3.org/TR/wai-aria-practices/examples/tabs/tabs-2/tabs.html\n     */\n    get contentTabIndex() {\n        return this._contentTabIndex;\n    }\n    set contentTabIndex(value) {\n        this._contentTabIndex = coerceNumberProperty(value, null);\n    }\n    /**\n     * Whether pagination should be disabled. This can be used to avoid unnecessary\n     * layout recalculations if it's known that pagination won't be required.\n     */\n    get disablePagination() {\n        return this._disablePagination;\n    }\n    set disablePagination(value) {\n        this._disablePagination = coerceBooleanProperty(value);\n    }\n    /**\n     * By default tabs remove their content from the DOM while it's off-screen.\n     * Setting this to `true` will keep it in the DOM which will prevent elements\n     * like iframes and videos from reloading next time it comes back into the view.\n     */\n    get preserveContent() {\n        return this._preserveContent;\n    }\n    set preserveContent(value) {\n        this._preserveContent = coerceBooleanProperty(value);\n    }\n    /** Background color of the tab group. */\n    get backgroundColor() {\n        return this._backgroundColor;\n    }\n    set backgroundColor(value) {\n        const classList = this._elementRef.nativeElement.classList;\n        classList.remove('mat-tabs-with-background', `mat-background-${this.backgroundColor}`);\n        if (value) {\n            classList.add('mat-tabs-with-background', `mat-background-${value}`);\n        }\n        this._backgroundColor = value;\n    }\n    constructor(elementRef, _changeDetectorRef, defaultConfig, _animationMode) {\n        super(elementRef);\n        this._changeDetectorRef = _changeDetectorRef;\n        this._animationMode = _animationMode;\n        /** All of the tabs that belong to the group. */\n        this._tabs = new QueryList();\n        /** The tab index that should be selected after the content has been checked. */\n        this._indexToSelect = 0;\n        /** Index of the tab that was focused last. */\n        this._lastFocusedTabIndex = null;\n        /** Snapshot of the height of the tab body wrapper before another tab is activated. */\n        this._tabBodyWrapperHeight = 0;\n        /** Subscription to tabs being added/removed. */\n        this._tabsSubscription = Subscription.EMPTY;\n        /** Subscription to changes in the tab labels. */\n        this._tabLabelSubscription = Subscription.EMPTY;\n        this._dynamicHeight = false;\n        this._selectedIndex = null;\n        /** Position of the tab header. */\n        this.headerPosition = 'above';\n        this._disablePagination = false;\n        this._preserveContent = false;\n        /** Output to enable support for two-way binding on `[(selectedIndex)]` */\n        this.selectedIndexChange = new EventEmitter();\n        /** Event emitted when focus has changed within a tab group. */\n        this.focusChange = new EventEmitter();\n        /** Event emitted when the body animation has completed */\n        this.animationDone = new EventEmitter();\n        /** Event emitted when the tab selection has changed. */\n        this.selectedTabChange = new EventEmitter(true);\n        this._groupId = nextId++;\n        this.animationDuration =\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        this.contentTabIndex = defaultConfig?.contentTabIndex ?? null;\n        this.preserveContent = !!defaultConfig?.preserveContent;\n    }\n    /**\n     * After the content is checked, this component knows what tabs have been defined\n     * and what the selected index should be. This is where we can know exactly what position\n     * each tab should be in according to the new selected index, and additionally we know how\n     * a new selected tab should transition in (from the left or right).\n     */\n    ngAfterContentChecked() {\n        // Don't clamp the `indexToSelect` immediately in the setter because it can happen that\n        // the amount of tabs changes before the actual change detection runs.\n        const indexToSelect = (this._indexToSelect = this._clampTabIndex(this._indexToSelect));\n        // If there is a change in selected index, emit a change event. Should not trigger if\n        // the selected index has not yet been initialized.\n        if (this._selectedIndex != indexToSelect) {\n            const isFirstRun = this._selectedIndex == null;\n            if (!isFirstRun) {\n                this.selectedTabChange.emit(this._createChangeEvent(indexToSelect));\n                // Preserve the height so page doesn't scroll up during tab change.\n                // Fixes https://stackblitz.com/edit/mat-tabs-scroll-page-top-on-tab-change\n                const wrapper = this._tabBodyWrapper.nativeElement;\n                wrapper.style.minHeight = wrapper.clientHeight + 'px';\n            }\n            // Changing these values after change detection has run\n            // since the checked content may contain references to them.\n            Promise.resolve().then(() => {\n                this._tabs.forEach((tab, index) => (tab.isActive = index === indexToSelect));\n                if (!isFirstRun) {\n                    this.selectedIndexChange.emit(indexToSelect);\n                    // Clear the min-height, this was needed during tab change to avoid\n                    // unnecessary scrolling.\n                    this._tabBodyWrapper.nativeElement.style.minHeight = '';\n                }\n            });\n        }\n        // Setup the position for each tab and optionally setup an origin on the next selected tab.\n        this._tabs.forEach((tab, index) => {\n            tab.position = index - indexToSelect;\n            // If there is already a selected tab, then set up an origin for the next selected tab\n            // if it doesn't have one already.\n            if (this._selectedIndex != null && tab.position == 0 && !tab.origin) {\n                tab.origin = indexToSelect - this._selectedIndex;\n            }\n        });\n        if (this._selectedIndex !== indexToSelect) {\n            this._selectedIndex = indexToSelect;\n            this._lastFocusedTabIndex = null;\n            this._changeDetectorRef.markForCheck();\n        }\n    }\n    ngAfterContentInit() {\n        this._subscribeToAllTabChanges();\n        this._subscribeToTabLabels();\n        // Subscribe to changes in the amount of tabs, in order to be\n        // able to re-render the content as new tabs are added or removed.\n        this._tabsSubscription = this._tabs.changes.subscribe(() => {\n            const indexToSelect = this._clampTabIndex(this._indexToSelect);\n            // Maintain the previously-selected tab if a new tab is added or removed and there is no\n            // explicit change that selects a different tab.\n            if (indexToSelect === this._selectedIndex) {\n                const tabs = this._tabs.toArray();\n                let selectedTab;\n                for (let i = 0; i < tabs.length; i++) {\n                    if (tabs[i].isActive) {\n                        // Assign both to the `_indexToSelect` and `_selectedIndex` so we don't fire a changed\n                        // event, otherwise the consumer may end up in an infinite loop in some edge cases like\n                        // adding a tab within the `selectedIndexChange` event.\n                        this._indexToSelect = this._selectedIndex = i;\n                        this._lastFocusedTabIndex = null;\n                        selectedTab = tabs[i];\n                        break;\n                    }\n                }\n                // If we haven't found an active tab and a tab exists at the selected index, it means\n                // that the active tab was swapped out. Since this won't be picked up by the rendering\n                // loop in `ngAfterContentChecked`, we need to sync it up manually.\n                if (!selectedTab && tabs[indexToSelect]) {\n                    Promise.resolve().then(() => {\n                        tabs[indexToSelect].isActive = true;\n                        this.selectedTabChange.emit(this._createChangeEvent(indexToSelect));\n                    });\n                }\n            }\n            this._changeDetectorRef.markForCheck();\n        });\n    }\n    /** Listens to changes in all of the tabs. */\n    _subscribeToAllTabChanges() {\n        // Since we use a query with `descendants: true` to pick up the tabs, we may end up catching\n        // some that are inside of nested tab groups. We filter them out manually by checking that\n        // the closest group to the tab is the current one.\n        this._allTabs.changes.pipe(startWith(this._allTabs)).subscribe((tabs) => {\n            this._tabs.reset(tabs.filter(tab => {\n                return tab._closestTabGroup === this || !tab._closestTabGroup;\n            }));\n            this._tabs.notifyOnChanges();\n        });\n    }\n    ngOnDestroy() {\n        this._tabs.destroy();\n        this._tabsSubscription.unsubscribe();\n        this._tabLabelSubscription.unsubscribe();\n    }\n    /** Re-aligns the ink bar to the selected tab element. */\n    realignInkBar() {\n        if (this._tabHeader) {\n            this._tabHeader._alignInkBarToSelectedTab();\n        }\n    }\n    /**\n     * Recalculates the tab group's pagination dimensions.\n     *\n     * WARNING: Calling this method can be very costly in terms of performance. It should be called\n     * as infrequently as possible from outside of the Tabs component as it causes a reflow of the\n     * page.\n     */\n    updatePagination() {\n        if (this._tabHeader) {\n            this._tabHeader.updatePagination();\n        }\n    }\n    /**\n     * Sets focus to a particular tab.\n     * @param index Index of the tab to be focused.\n     */\n    focusTab(index) {\n        const header = this._tabHeader;\n        if (header) {\n            header.focusIndex = index;\n        }\n    }\n    _focusChanged(index) {\n        this._lastFocusedTabIndex = index;\n        this.focusChange.emit(this._createChangeEvent(index));\n    }\n    _createChangeEvent(index) {\n        const event = new MatTabChangeEvent();\n        event.index = index;\n        if (this._tabs && this._tabs.length) {\n            event.tab = this._tabs.toArray()[index];\n        }\n        return event;\n    }\n    /**\n     * Subscribes to changes in the tab labels. This is needed, because the @Input for the label is\n     * on the MatTab component, whereas the data binding is inside the MatTabGroup. In order for the\n     * binding to be updated, we need to subscribe to changes in it and trigger change detection\n     * manually.\n     */\n    _subscribeToTabLabels() {\n        if (this._tabLabelSubscription) {\n            this._tabLabelSubscription.unsubscribe();\n        }\n        this._tabLabelSubscription = merge(...this._tabs.map(tab => tab._stateChanges)).subscribe(() => this._changeDetectorRef.markForCheck());\n    }\n    /** Clamps the given index to the bounds of 0 and the tabs length. */\n    _clampTabIndex(index) {\n        // Note the `|| 0`, which ensures that values like NaN can't get through\n        // and which would otherwise throw the component into an infinite loop\n        // (since Math.max(NaN, 0) === NaN).\n        return Math.min(this._tabs.length - 1, Math.max(index || 0, 0));\n    }\n    /** Returns a unique id for each tab label element */\n    _getTabLabelId(i) {\n        return `mat-tab-label-${this._groupId}-${i}`;\n    }\n    /** Returns a unique id for each tab content element */\n    _getTabContentId(i) {\n        return `mat-tab-content-${this._groupId}-${i}`;\n    }\n    /**\n     * Sets the height of the body wrapper to the height of the activating tab if dynamic\n     * height property is true.\n     */\n    _setTabBodyWrapperHeight(tabHeight) {\n        if (!this._dynamicHeight || !this._tabBodyWrapperHeight) {\n            return;\n        }\n        const wrapper = this._tabBodyWrapper.nativeElement;\n        wrapper.style.height = this._tabBodyWrapperHeight + 'px';\n        // This conditional forces the browser to paint the height so that\n        // the animation to the new height can have an origin.\n        if (this._tabBodyWrapper.nativeElement.offsetHeight) {\n            wrapper.style.height = tabHeight + 'px';\n        }\n    }\n    /** Removes the height of the tab body wrapper. */\n    _removeTabBodyWrapperHeight() {\n        const wrapper = this._tabBodyWrapper.nativeElement;\n        this._tabBodyWrapperHeight = wrapper.clientHeight;\n        wrapper.style.height = '';\n        this.animationDone.emit();\n    }\n    /** Handle click events, setting new selected index if appropriate. */\n    _handleClick(tab, tabHeader, index) {\n        tabHeader.focusIndex = index;\n        if (!tab.disabled) {\n            this.selectedIndex = index;\n        }\n    }\n    /** Retrieves the tabindex for the tab. */\n    _getTabIndex(index) {\n        const targetIndex = this._lastFocusedTabIndex ?? this.selectedIndex;\n        return index === targetIndex ? 0 : -1;\n    }\n    /** Callback for when the focused state of a tab has changed. */\n    _tabFocusChanged(focusOrigin, index) {\n        // Mouse/touch focus happens during the `mousedown`/`touchstart` phase which\n        // can cause the tab to be moved out from under the pointer, interrupting the\n        // click sequence (see #21898). We don't need to scroll the tab into view for\n        // such cases anyway, because it will be done when the tab becomes selected.\n        if (focusOrigin && focusOrigin !== 'mouse' && focusOrigin !== 'touch') {\n            this._tabHeader.focusIndex = index;\n        }\n    }\n}\n_MatTabGroupBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: _MatTabGroupBase, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: MAT_TABS_CONFIG, optional: true }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\n_MatTabGroupBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", type: _MatTabGroupBase, inputs: { dynamicHeight: \"dynamicHeight\", selectedIndex: \"selectedIndex\", headerPosition: \"headerPosition\", animationDuration: \"animationDuration\", contentTabIndex: \"contentTabIndex\", disablePagination: \"disablePagination\", preserveContent: \"preserveContent\", backgroundColor: \"backgroundColor\" }, outputs: { selectedIndexChange: \"selectedIndexChange\", focusChange: \"focusChange\", animationDone: \"animationDone\", selectedTabChange: \"selectedTabChange\" }, usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: _MatTabGroupBase, decorators: [{\n            type: Directive\n        }], ctorParameters: function () { return [{ 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: { dynamicHeight: [{\n                type: Input\n            }], selectedIndex: [{\n                type: Input\n            }], headerPosition: [{\n                type: Input\n            }], animationDuration: [{\n                type: Input\n            }], contentTabIndex: [{\n                type: Input\n            }], disablePagination: [{\n                type: Input\n            }], preserveContent: [{\n                type: Input\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/**\n * Material design tab-group component. Supports basic tab pairs (label + content) and includes\n * animated ink-bar, keyboard navigation, and screen reader.\n * See: https://material.io/design/components/tabs.html\n */\nclass MatTabGroup extends _MatTabGroupBase {\n    /** Whether the ink bar should fit its width to the size of the tab label content. */\n    get fitInkBarToContent() {\n        return this._fitInkBarToContent;\n    }\n    set fitInkBarToContent(v) {\n        this._fitInkBarToContent = coerceBooleanProperty(v);\n        this._changeDetectorRef.markForCheck();\n    }\n    /** Whether tabs should be stretched to fill the header. */\n    get stretchTabs() {\n        return this._stretchTabs;\n    }\n    set stretchTabs(v) {\n        this._stretchTabs = coerceBooleanProperty(v);\n    }\n    constructor(elementRef, changeDetectorRef, defaultConfig, animationMode) {\n        super(elementRef, changeDetectorRef, defaultConfig, animationMode);\n        this._fitInkBarToContent = false;\n        this._stretchTabs = true;\n        this.fitInkBarToContent =\n            defaultConfig && defaultConfig.fitInkBarToContent != null\n                ? defaultConfig.fitInkBarToContent\n                : false;\n    }\n}\nMatTabGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.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 });\nMatTabGroup.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", type: MatTabGroup, selector: \"mat-tab-group\", inputs: { color: \"color\", disableRipple: \"disableRipple\", fitInkBarToContent: \"fitInkBarToContent\", stretchTabs: [\"mat-stretch-tabs\", \"stretchTabs\"] }, host: { properties: { \"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\" }, 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\"], usesInheritance: true, ngImport: i0, template: \"<mat-tab-header #tabHeader\\n                [selectedIndex]=\\\"selectedIndex || 0\\\"\\n                [disableRipple]=\\\"disableRipple\\\"\\n                [disablePagination]=\\\"disablePagination\\\"\\n                (indexFocused)=\\\"_focusChanged($event)\\\"\\n                (selectFocusedIndex)=\\\"selectedIndex = $event\\\">\\n\\n  <div class=\\\"mdc-tab mat-mdc-tab mat-mdc-focus-indicator\\\"\\n       #tabNode\\n       role=\\\"tab\\\"\\n       matTabLabelWrapper\\n       cdkMonitorElementFocus\\n       *ngFor=\\\"let tab of _tabs; let i = index\\\"\\n       [id]=\\\"_getTabLabelId(i)\\\"\\n       [attr.tabIndex]=\\\"_getTabIndex(i)\\\"\\n       [attr.aria-posinset]=\\\"i + 1\\\"\\n       [attr.aria-setsize]=\\\"_tabs.length\\\"\\n       [attr.aria-controls]=\\\"_getTabContentId(i)\\\"\\n       [attr.aria-selected]=\\\"selectedIndex === i\\\"\\n       [attr.aria-label]=\\\"tab.ariaLabel || null\\\"\\n       [attr.aria-labelledby]=\\\"(!tab.ariaLabel && tab.ariaLabelledby) ? tab.ariaLabelledby : null\\\"\\n       [class.mdc-tab--active]=\\\"selectedIndex === i\\\"\\n       [ngClass]=\\\"tab.labelClass\\\"\\n       [disabled]=\\\"tab.disabled\\\"\\n       [fitInkBarToContent]=\\\"fitInkBarToContent\\\"\\n       (click)=\\\"_handleClick(tab, tabHeader, i)\\\"\\n       (cdkFocusChange)=\\\"_tabFocusChanged($event, i)\\\">\\n    <span class=\\\"mdc-tab__ripple\\\"></span>\\n\\n    <!-- Needs to be a separate element, because we can't put\\n         `overflow: hidden` on tab due to the ink bar. -->\\n    <div\\n      class=\\\"mat-mdc-tab-ripple\\\"\\n      mat-ripple\\n      [matRippleTrigger]=\\\"tabNode\\\"\\n      [matRippleDisabled]=\\\"tab.disabled || disableRipple\\\"></div>\\n\\n    <span class=\\\"mdc-tab__content\\\">\\n      <span class=\\\"mdc-tab__text-label\\\">\\n        <!-- If there is a label template, use it. -->\\n        <ng-template [ngIf]=\\\"tab.templateLabel\\\" [ngIfElse]=\\\"tabTextLabel\\\">\\n          <ng-template [cdkPortalOutlet]=\\\"tab.templateLabel\\\"></ng-template>\\n        </ng-template>\\n\\n        <!-- If there is not a label template, fall back to the text label. -->\\n        <ng-template #tabTextLabel>{{tab.textLabel}}</ng-template>\\n      </span>\\n    </span>\\n  </div>\\n</mat-tab-header>\\n\\n<div\\n  class=\\\"mat-mdc-tab-body-wrapper\\\"\\n  [class._mat-animation-noopable]=\\\"_animationMode === 'NoopAnimations'\\\"\\n  #tabBodyWrapper>\\n  <mat-tab-body role=\\\"tabpanel\\\"\\n               *ngFor=\\\"let tab of _tabs; let i = index\\\"\\n               [id]=\\\"_getTabContentId(i)\\\"\\n               [attr.tabindex]=\\\"(contentTabIndex != null && selectedIndex === i) ? contentTabIndex : null\\\"\\n               [attr.aria-labelledby]=\\\"_getTabLabelId(i)\\\"\\n               [class.mat-mdc-tab-body-active]=\\\"selectedIndex === i\\\"\\n               [ngClass]=\\\"tab.bodyClass\\\"\\n               [content]=\\\"tab.content!\\\"\\n               [position]=\\\"tab.position!\\\"\\n               [origin]=\\\"tab.origin\\\"\\n               [animationDuration]=\\\"animationDuration\\\"\\n               [preserveContent]=\\\"preserveContent\\\"\\n               (_onCentered)=\\\"_removeTabBodyWrapperHeight()\\\"\\n               (_onCentering)=\\\"_setTabBodyWrapperHeight($event)\\\">\\n  </mat-tab-body>\\n</div>\\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 .mdc-tab-indicator__content--underline{border-top-width:2px}.mdc-tab-indicator .mdc-tab-indicator__content--icon{height:34px;font-size:34px}.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)}.mat-mdc-tab.mdc-tab{height:48px;flex-grow:0}.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}.mat-mdc-tab .mdc-tab__text-label{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}.mat-mdc-tab-group.mat-mdc-tab-group-stretch-tabs>.mat-mdc-tab-header .mat-mdc-tab{flex-grow:1}.mat-mdc-tab-disabled{opacity:.4}.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-mdc-tab-header-with-background-background-color, transparent)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab .mdc-tab__text-label,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-link .mdc-tab__text-label{color:var(--mat-mdc-tab-header-with-background-foreground-color, inherit)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mdc-tab-indicator__content--underline,.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{border-color:var(--mat-mdc-tab-header-with-background-foreground-color, inherit)}.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-mdc-tab-header-with-background-foreground-color, inherit)}.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{border-color:var(--mat-mdc-tab-header-with-background-foreground-color, inherit)}.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: \"directive\", type: i1$2.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i1$2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i1$2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i2.CdkPortalOutlet, selector: \"[cdkPortalOutlet]\", inputs: [\"cdkPortalOutlet\"], outputs: [\"attached\"], exportAs: [\"cdkPortalOutlet\"] }, { kind: \"directive\", type: i5.MatRipple, selector: \"[mat-ripple], [matRipple]\", inputs: [\"matRippleColor\", \"matRippleUnbounded\", \"matRippleCentered\", \"matRippleRadius\", \"matRippleAnimation\", \"matRippleDisabled\", \"matRippleTrigger\"], exportAs: [\"matRipple\"] }, { kind: \"directive\", type: i4.CdkMonitorFocus, selector: \"[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]\", outputs: [\"cdkFocusChange\"], exportAs: [\"cdkMonitorFocus\"] }, { kind: \"component\", type: MatTabBody, selector: \"mat-tab-body\" }, { kind: \"directive\", type: MatTabLabelWrapper, selector: \"[matTabLabelWrapper]\", inputs: [\"disabled\", \"fitInkBarToContent\"] }, { kind: \"component\", type: MatTabHeader, selector: \"mat-tab-header\", inputs: [\"selectedIndex\"], outputs: [\"selectFocusedIndex\", \"indexFocused\"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: MatTabGroup, decorators: [{\n            type: Component,\n            args: [{ selector: 'mat-tab-group', exportAs: 'matTabGroup', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, inputs: ['color', 'disableRipple'], providers: [\n                        {\n                            provide: MAT_TAB_GROUP,\n                            useExisting: MatTabGroup,\n                        },\n                    ], host: {\n                        'class': 'mat-mdc-tab-group',\n                        '[class.mat-mdc-tab-group-dynamic-height]': 'dynamicHeight',\n                        '[class.mat-mdc-tab-group-inverted-header]': 'headerPosition === \"below\"',\n                        '[class.mat-mdc-tab-group-stretch-tabs]': 'stretchTabs',\n                    }, template: \"<mat-tab-header #tabHeader\\n                [selectedIndex]=\\\"selectedIndex || 0\\\"\\n                [disableRipple]=\\\"disableRipple\\\"\\n                [disablePagination]=\\\"disablePagination\\\"\\n                (indexFocused)=\\\"_focusChanged($event)\\\"\\n                (selectFocusedIndex)=\\\"selectedIndex = $event\\\">\\n\\n  <div class=\\\"mdc-tab mat-mdc-tab mat-mdc-focus-indicator\\\"\\n       #tabNode\\n       role=\\\"tab\\\"\\n       matTabLabelWrapper\\n       cdkMonitorElementFocus\\n       *ngFor=\\\"let tab of _tabs; let i = index\\\"\\n       [id]=\\\"_getTabLabelId(i)\\\"\\n       [attr.tabIndex]=\\\"_getTabIndex(i)\\\"\\n       [attr.aria-posinset]=\\\"i + 1\\\"\\n       [attr.aria-setsize]=\\\"_tabs.length\\\"\\n       [attr.aria-controls]=\\\"_getTabContentId(i)\\\"\\n       [attr.aria-selected]=\\\"selectedIndex === i\\\"\\n       [attr.aria-label]=\\\"tab.ariaLabel || null\\\"\\n       [attr.aria-labelledby]=\\\"(!tab.ariaLabel && tab.ariaLabelledby) ? tab.ariaLabelledby : null\\\"\\n       [class.mdc-tab--active]=\\\"selectedIndex === i\\\"\\n       [ngClass]=\\\"tab.labelClass\\\"\\n       [disabled]=\\\"tab.disabled\\\"\\n       [fitInkBarToContent]=\\\"fitInkBarToContent\\\"\\n       (click)=\\\"_handleClick(tab, tabHeader, i)\\\"\\n       (cdkFocusChange)=\\\"_tabFocusChanged($event, i)\\\">\\n    <span class=\\\"mdc-tab__ripple\\\"></span>\\n\\n    <!-- Needs to be a separate element, because we can't put\\n         `overflow: hidden` on tab due to the ink bar. -->\\n    <div\\n      class=\\\"mat-mdc-tab-ripple\\\"\\n      mat-ripple\\n      [matRippleTrigger]=\\\"tabNode\\\"\\n      [matRippleDisabled]=\\\"tab.disabled || disableRipple\\\"></div>\\n\\n    <span class=\\\"mdc-tab__content\\\">\\n      <span class=\\\"mdc-tab__text-label\\\">\\n        <!-- If there is a label template, use it. -->\\n        <ng-template [ngIf]=\\\"tab.templateLabel\\\" [ngIfElse]=\\\"tabTextLabel\\\">\\n          <ng-template [cdkPortalOutlet]=\\\"tab.templateLabel\\\"></ng-template>\\n        </ng-template>\\n\\n        <!-- If there is not a label template, fall back to the text label. -->\\n        <ng-template #tabTextLabel>{{tab.textLabel}}</ng-template>\\n      </span>\\n    </span>\\n  </div>\\n</mat-tab-header>\\n\\n<div\\n  class=\\\"mat-mdc-tab-body-wrapper\\\"\\n  [class._mat-animation-noopable]=\\\"_animationMode === 'NoopAnimations'\\\"\\n  #tabBodyWrapper>\\n  <mat-tab-body role=\\\"tabpanel\\\"\\n               *ngFor=\\\"let tab of _tabs; let i = index\\\"\\n               [id]=\\\"_getTabContentId(i)\\\"\\n               [attr.tabindex]=\\\"(contentTabIndex != null && selectedIndex === i) ? contentTabIndex : null\\\"\\n               [attr.aria-labelledby]=\\\"_getTabLabelId(i)\\\"\\n               [class.mat-mdc-tab-body-active]=\\\"selectedIndex === i\\\"\\n               [ngClass]=\\\"tab.bodyClass\\\"\\n               [content]=\\\"tab.content!\\\"\\n               [position]=\\\"tab.position!\\\"\\n               [origin]=\\\"tab.origin\\\"\\n               [animationDuration]=\\\"animationDuration\\\"\\n               [preserveContent]=\\\"preserveContent\\\"\\n               (_onCentered)=\\\"_removeTabBodyWrapperHeight()\\\"\\n               (_onCentering)=\\\"_setTabBodyWrapperHeight($event)\\\">\\n  </mat-tab-body>\\n</div>\\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 .mdc-tab-indicator__content--underline{border-top-width:2px}.mdc-tab-indicator .mdc-tab-indicator__content--icon{height:34px;font-size:34px}.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)}.mat-mdc-tab.mdc-tab{height:48px;flex-grow:0}.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}.mat-mdc-tab .mdc-tab__text-label{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}.mat-mdc-tab-group.mat-mdc-tab-group-stretch-tabs>.mat-mdc-tab-header .mat-mdc-tab{flex-grow:1}.mat-mdc-tab-disabled{opacity:.4}.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-mdc-tab-header-with-background-background-color, transparent)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab .mdc-tab__text-label,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-link .mdc-tab__text-label{color:var(--mat-mdc-tab-header-with-background-foreground-color, inherit)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mdc-tab-indicator__content--underline,.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{border-color:var(--mat-mdc-tab-header-with-background-foreground-color, inherit)}.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-mdc-tab-header-with-background-foreground-color, inherit)}.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{border-color:var(--mat-mdc-tab-header-with-background-foreground-color, inherit)}.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: function () { return [{ 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            }], fitInkBarToContent: [{\n                type: Input\n            }], stretchTabs: [{\n                type: Input,\n                args: ['mat-stretch-tabs']\n            }] } });\n/** A simple change event emitted on focus or selection changes. */\nclass MatTabChangeEvent {\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// Increasing integer for generating unique ids for tab nav components.\nlet nextUniqueId = 0;\n/**\n * Base class with all of the `MatTabNav` functionality.\n * @docs-private\n */\nclass _MatTabNavBase extends MatPaginatedTabHeader {\n    /** Background color of the tab nav. */\n    get backgroundColor() {\n        return this._backgroundColor;\n    }\n    set backgroundColor(value) {\n        const classList = this._elementRef.nativeElement.classList;\n        classList.remove('mat-tabs-with-background', `mat-background-${this.backgroundColor}`);\n        if (value) {\n            classList.add('mat-tabs-with-background', `mat-background-${value}`);\n        }\n        this._backgroundColor = value;\n    }\n    /** Whether the ripple effect is disabled or not. */\n    get disableRipple() {\n        return this._disableRipple;\n    }\n    set disableRipple(value) {\n        this._disableRipple = coerceBooleanProperty(value);\n    }\n    constructor(elementRef, dir, ngZone, changeDetectorRef, viewportRuler, platform, animationMode) {\n        super(elementRef, changeDetectorRef, viewportRuler, dir, ngZone, platform, animationMode);\n        this._disableRipple = false;\n        /** Theme color of the nav bar. */\n        this.color = 'primary';\n    }\n    _itemSelected() {\n        // noop\n    }\n    ngAfterContentInit() {\n        // We need this to run before the `changes` subscription in parent to ensure that the\n        // selectedIndex is up-to-date by the time the super class starts looking for it.\n        this._items.changes.pipe(startWith(null), takeUntil(this._destroyed)).subscribe(() => {\n            this.updateActiveLink();\n        });\n        super.ngAfterContentInit();\n    }\n    /** Notifies the component that the active link has been changed. */\n    updateActiveLink() {\n        if (!this._items) {\n            return;\n        }\n        const items = this._items.toArray();\n        for (let i = 0; i < items.length; i++) {\n            if (items[i].active) {\n                this.selectedIndex = i;\n                this._changeDetectorRef.markForCheck();\n                if (this.tabPanel) {\n                    this.tabPanel._activeTabId = items[i].id;\n                }\n                return;\n            }\n        }\n        // The ink bar should hide itself if no items are active.\n        this.selectedIndex = -1;\n        this._inkBar.hide();\n    }\n    _getRole() {\n        return this.tabPanel ? 'tablist' : this._elementRef.nativeElement.getAttribute('role');\n    }\n}\n_MatTabNavBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: _MatTabNavBase, deps: [{ token: i0.ElementRef }, { token: i1.Directionality, optional: true }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i1$1.ViewportRuler }, { token: i3.Platform }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\n_MatTabNavBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", type: _MatTabNavBase, inputs: { backgroundColor: \"backgroundColor\", disableRipple: \"disableRipple\", color: \"color\", tabPanel: \"tabPanel\" }, usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: _MatTabNavBase, decorators: [{\n            type: Directive\n        }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.Directionality, decorators: [{\n                    type: Optional\n                }] }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i1$1.ViewportRuler }, { type: i3.Platform }, { type: undefined, decorators: [{\n                    type: Optional\n                }, {\n                    type: Inject,\n                    args: [ANIMATION_MODULE_TYPE]\n                }] }]; }, propDecorators: { backgroundColor: [{\n                type: Input\n            }], disableRipple: [{\n                type: Input\n            }], color: [{\n                type: Input\n            }], tabPanel: [{\n                type: Input\n            }] } });\n// Boilerplate for applying mixins to MatTabLink.\nconst _MatTabLinkMixinBase = mixinTabIndex(mixinDisableRipple(mixinDisabled(class {\n})));\n/** Base class with all of the `MatTabLink` functionality. */\nclass _MatTabLinkBase extends _MatTabLinkMixinBase {\n    /** Whether the link is active. */\n    get active() {\n        return this._isActive;\n    }\n    set active(value) {\n        const newValue = coerceBooleanProperty(value);\n        if (newValue !== this._isActive) {\n            this._isActive = newValue;\n            this._tabNavBar.updateActiveLink();\n        }\n    }\n    /**\n     * Whether ripples are disabled on interaction.\n     * @docs-private\n     */\n    get rippleDisabled() {\n        return (this.disabled ||\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        /** Whether the tab link is active or not. */\n        this._isActive = false;\n        /** Unique id for the tab. */\n        this.id = `mat-tab-link-${nextUniqueId++}`;\n        this.rippleConfig = globalRippleOptions || {};\n        this.tabIndex = parseInt(tabIndex) || 0;\n        if (animationMode === 'NoopAnimations') {\n            this.rippleConfig.animation = { enterDuration: 0, exitDuration: 0 };\n        }\n    }\n    /** Focuses the tab link. */\n    focus() {\n        this.elementRef.nativeElement.focus();\n    }\n    ngAfterViewInit() {\n        this._focusMonitor.monitor(this.elementRef);\n    }\n    ngOnDestroy() {\n        this._focusMonitor.stopMonitoring(this.elementRef);\n    }\n    _handleFocus() {\n        // Since we allow navigation through tabbing in the nav bar, we\n        // have to update the focused index whenever the link receives focus.\n        this._tabNavBar.focusIndex = this._tabNavBar._items.toArray().indexOf(this);\n    }\n    _handleKeydown(event) {\n        if (this._tabNavBar.tabPanel && event.keyCode === SPACE) {\n            this.elementRef.nativeElement.click();\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.tabIndex;\n        }\n    }\n}\n_MatTabLinkBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: _MatTabLinkBase, deps: [{ token: _MatTabNavBase }, { 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.Directive });\n_MatTabLinkBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", type: _MatTabLinkBase, inputs: { active: \"active\", id: \"id\" }, usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: _MatTabLinkBase, decorators: [{\n            type: Directive\n        }], ctorParameters: function () { return [{ type: _MatTabNavBase }, { 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            }], id: [{\n                type: Input\n            }] } });\nconst _MatTabLinkBaseWithInkBarItem = mixinInkBarItem(_MatTabLinkBase);\n/**\n * Navigation component matching the styles of the tab group header.\n * Provides anchored navigation with animated ink bar.\n */\nclass MatTabNav extends _MatTabNavBase {\n    /** Whether the ink bar should fit its width to the size of the tab label content. */\n    get fitInkBarToContent() {\n        return this._fitInkBarToContent.value;\n    }\n    set fitInkBarToContent(v) {\n        this._fitInkBarToContent.next(coerceBooleanProperty(v));\n        this._changeDetectorRef.markForCheck();\n    }\n    /** Whether tabs should be stretched to fill the header. */\n    get stretchTabs() {\n        return this._stretchTabs;\n    }\n    set stretchTabs(v) {\n        this._stretchTabs = coerceBooleanProperty(v);\n    }\n    constructor(elementRef, dir, ngZone, changeDetectorRef, viewportRuler, platform, animationMode, defaultConfig) {\n        super(elementRef, dir, ngZone, changeDetectorRef, viewportRuler, platform, animationMode);\n        this._fitInkBarToContent = new BehaviorSubject(false);\n        this._stretchTabs = true;\n        this.disablePagination =\n            defaultConfig && defaultConfig.disablePagination != null\n                ? defaultConfig.disablePagination\n                : false;\n        this.fitInkBarToContent =\n            defaultConfig && defaultConfig.fitInkBarToContent != null\n                ? defaultConfig.fitInkBarToContent\n                : false;\n    }\n    ngAfterContentInit() {\n        this._inkBar = new MatInkBar(this._items);\n        super.ngAfterContentInit();\n    }\n    ngAfterViewInit() {\n        if (!this.tabPanel && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n            throw new Error('A mat-tab-nav-panel must be specified via [tabPanel].');\n        }\n        super.ngAfterViewInit();\n    }\n}\nMatTabNav.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: MatTabNav, deps: [{ token: i0.ElementRef }, { token: i1.Directionality, optional: true }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i1$1.ViewportRuler }, { token: i3.Platform }, { token: ANIMATION_MODULE_TYPE, optional: true }, { token: MAT_TABS_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Component });\nMatTabNav.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", type: MatTabNav, selector: \"[mat-tab-nav-bar]\", inputs: { color: \"color\", fitInkBarToContent: \"fitInkBarToContent\", stretchTabs: [\"mat-stretch-tabs\", \"stretchTabs\"] }, 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\\\"\" }, classAttribute: \"mat-mdc-tab-nav-bar mat-mdc-tab-header\" }, queries: [{ propertyName: \"_items\", predicate: i0.forwardRef(function () { return 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: \"<!-- TODO: this also had `mat-elevation-z4`. Figure out what we should do with it. -->\\n<button class=\\\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-before\\\"\\n     #previousPaginator\\n     aria-hidden=\\\"true\\\"\\n     type=\\\"button\\\"\\n     mat-ripple\\n     tabindex=\\\"-1\\\"\\n     [matRippleDisabled]=\\\"_disableScrollBefore || disableRipple\\\"\\n     [class.mat-mdc-tab-header-pagination-disabled]=\\\"_disableScrollBefore\\\"\\n     [disabled]=\\\"_disableScrollBefore || null\\\"\\n     (click)=\\\"_handlePaginatorClick('before')\\\"\\n     (mousedown)=\\\"_handlePaginatorPress('before', $event)\\\"\\n     (touchend)=\\\"_stopInterval()\\\">\\n  <div class=\\\"mat-mdc-tab-header-pagination-chevron\\\"></div>\\n</button>\\n\\n<div class=\\\"mat-mdc-tab-link-container\\\" #tabListContainer (keydown)=\\\"_handleKeydown($event)\\\">\\n  <div class=\\\"mat-mdc-tab-list\\\" #tabList (cdkObserveContent)=\\\"_onContentChanges()\\\">\\n    <div class=\\\"mat-mdc-tab-links\\\" #tabListInner>\\n      <ng-content></ng-content>\\n    </div>\\n  </div>\\n</div>\\n\\n<!-- TODO: this also had `mat-elevation-z4`. Figure out what we should do with it. -->\\n<button class=\\\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-after\\\"\\n     #nextPaginator\\n     aria-hidden=\\\"true\\\"\\n     type=\\\"button\\\"\\n     mat-ripple\\n     [matRippleDisabled]=\\\"_disableScrollAfter || disableRipple\\\"\\n     [class.mat-mdc-tab-header-pagination-disabled]=\\\"_disableScrollAfter\\\"\\n     [disabled]=\\\"_disableScrollAfter || null\\\"\\n     tabindex=\\\"-1\\\"\\n     (mousedown)=\\\"_handlePaginatorPress('after', $event)\\\"\\n     (click)=\\\"_handlePaginatorClick('after')\\\"\\n     (touchend)=\\\"_stopInterval()\\\">\\n  <div class=\\\"mat-mdc-tab-header-pagination-chevron\\\"></div>\\n</button>\\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 .mdc-tab-indicator__content--underline{border-top-width:2px}.mdc-tab-indicator .mdc-tab-indicator__content--icon{height:34px;font-size:34px}.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}.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}.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}.mat-mdc-tab-header-pagination-disabled{box-shadow:none;cursor:default;pointer-events:none}.mat-mdc-tab-header-pagination-disabled .mat-mdc-tab-header-pagination-chevron{opacity:.4}.mat-mdc-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-mdc-tab-list{transition:none}._mat-animation-noopable span.mdc-tab-indicator__content,._mat-animation-noopable span.mdc-tab__text-label{transition:none}.mat-mdc-tab-links{display:flex;flex:1 0 auto}[mat-align-tabs=center]>.mat-mdc-tab-link-container .mat-mdc-tab-links{justify-content:center}[mat-align-tabs=end]>.mat-mdc-tab-link-container .mat-mdc-tab-links{justify-content:flex-end}.mat-mdc-tab-link-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination{background-color:var(--mat-mdc-tab-header-with-background-background-color, transparent)}.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mat-mdc-tab .mdc-tab__text-label,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mat-mdc-tab-link .mdc-tab__text-label{color:var(--mat-mdc-tab-header-with-background-foreground-color, inherit)}.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mdc-tab-indicator__content--underline,.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{border-color:var(--mat-mdc-tab-header-with-background-foreground-color, inherit)}.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-mdc-tab-header-with-background-foreground-color, inherit)}.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{border-color:var(--mat-mdc-tab-header-with-background-foreground-color, inherit)}\"], dependencies: [{ kind: \"directive\", type: i5.MatRipple, selector: \"[mat-ripple], [matRipple]\", inputs: [\"matRippleColor\", \"matRippleUnbounded\", \"matRippleCentered\", \"matRippleRadius\", \"matRippleAnimation\", \"matRippleDisabled\", \"matRippleTrigger\"], exportAs: [\"matRipple\"] }, { kind: \"directive\", type: i5$1.CdkObserveContent, selector: \"[cdkObserveContent]\", inputs: [\"cdkObserveContentDisabled\", \"debounce\"], outputs: [\"cdkObserveContent\"], exportAs: [\"cdkObserveContent\"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: MatTabNav, decorators: [{\n            type: Component,\n            args: [{ selector: '[mat-tab-nav-bar]', exportAs: 'matTabNavBar, matTabNav', inputs: ['color'], 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                    }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, template: \"<!-- TODO: this also had `mat-elevation-z4`. Figure out what we should do with it. -->\\n<button class=\\\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-before\\\"\\n     #previousPaginator\\n     aria-hidden=\\\"true\\\"\\n     type=\\\"button\\\"\\n     mat-ripple\\n     tabindex=\\\"-1\\\"\\n     [matRippleDisabled]=\\\"_disableScrollBefore || disableRipple\\\"\\n     [class.mat-mdc-tab-header-pagination-disabled]=\\\"_disableScrollBefore\\\"\\n     [disabled]=\\\"_disableScrollBefore || null\\\"\\n     (click)=\\\"_handlePaginatorClick('before')\\\"\\n     (mousedown)=\\\"_handlePaginatorPress('before', $event)\\\"\\n     (touchend)=\\\"_stopInterval()\\\">\\n  <div class=\\\"mat-mdc-tab-header-pagination-chevron\\\"></div>\\n</button>\\n\\n<div class=\\\"mat-mdc-tab-link-container\\\" #tabListContainer (keydown)=\\\"_handleKeydown($event)\\\">\\n  <div class=\\\"mat-mdc-tab-list\\\" #tabList (cdkObserveContent)=\\\"_onContentChanges()\\\">\\n    <div class=\\\"mat-mdc-tab-links\\\" #tabListInner>\\n      <ng-content></ng-content>\\n    </div>\\n  </div>\\n</div>\\n\\n<!-- TODO: this also had `mat-elevation-z4`. Figure out what we should do with it. -->\\n<button class=\\\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-after\\\"\\n     #nextPaginator\\n     aria-hidden=\\\"true\\\"\\n     type=\\\"button\\\"\\n     mat-ripple\\n     [matRippleDisabled]=\\\"_disableScrollAfter || disableRipple\\\"\\n     [class.mat-mdc-tab-header-pagination-disabled]=\\\"_disableScrollAfter\\\"\\n     [disabled]=\\\"_disableScrollAfter || null\\\"\\n     tabindex=\\\"-1\\\"\\n     (mousedown)=\\\"_handlePaginatorPress('after', $event)\\\"\\n     (click)=\\\"_handlePaginatorClick('after')\\\"\\n     (touchend)=\\\"_stopInterval()\\\">\\n  <div class=\\\"mat-mdc-tab-header-pagination-chevron\\\"></div>\\n</button>\\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 .mdc-tab-indicator__content--underline{border-top-width:2px}.mdc-tab-indicator .mdc-tab-indicator__content--icon{height:34px;font-size:34px}.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}.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}.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}.mat-mdc-tab-header-pagination-disabled{box-shadow:none;cursor:default;pointer-events:none}.mat-mdc-tab-header-pagination-disabled .mat-mdc-tab-header-pagination-chevron{opacity:.4}.mat-mdc-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-mdc-tab-list{transition:none}._mat-animation-noopable span.mdc-tab-indicator__content,._mat-animation-noopable span.mdc-tab__text-label{transition:none}.mat-mdc-tab-links{display:flex;flex:1 0 auto}[mat-align-tabs=center]>.mat-mdc-tab-link-container .mat-mdc-tab-links{justify-content:center}[mat-align-tabs=end]>.mat-mdc-tab-link-container .mat-mdc-tab-links{justify-content:flex-end}.mat-mdc-tab-link-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination{background-color:var(--mat-mdc-tab-header-with-background-background-color, transparent)}.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mat-mdc-tab .mdc-tab__text-label,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mat-mdc-tab-link .mdc-tab__text-label{color:var(--mat-mdc-tab-header-with-background-foreground-color, inherit)}.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mdc-tab-indicator__content--underline,.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{border-color:var(--mat-mdc-tab-header-with-background-foreground-color, inherit)}.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-mdc-tab-header-with-background-foreground-color, inherit)}.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{border-color:var(--mat-mdc-tab-header-with-background-foreground-color, inherit)}\"] }]\n        }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.Directionality, decorators: [{\n                    type: Optional\n                }] }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i1$1.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            }], stretchTabs: [{\n                type: Input,\n                args: ['mat-stretch-tabs']\n            }], _items: [{\n                type: ContentChildren,\n                args: [forwardRef(() => MatTabLink), { descendants: true }]\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 of a `mat-tab-nav-bar`.\n */\nclass MatTabLink extends _MatTabLinkBaseWithInkBarItem {\n    constructor(tabNavBar, elementRef, globalRippleOptions, tabIndex, focusMonitor, animationMode) {\n        super(tabNavBar, elementRef, globalRippleOptions, tabIndex, focusMonitor, animationMode);\n        this._destroyed = new Subject();\n        tabNavBar._fitInkBarToContent.pipe(takeUntil(this._destroyed)).subscribe(fitInkBarToContent => {\n            this.fitInkBarToContent = fitInkBarToContent;\n        });\n    }\n    ngOnDestroy() {\n        this._destroyed.next();\n        this._destroyed.complete();\n        super.ngOnDestroy();\n    }\n}\nMatTabLink.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.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 });\nMatTabLink.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", type: MatTabLink, selector: \"[mat-tab-link], [matTabLink]\", inputs: { disabled: \"disabled\", disableRipple: \"disableRipple\", tabIndex: \"tabIndex\", active: \"active\", 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: \"<span class=\\\"mdc-tab__ripple\\\"></span>\\n\\n<div\\n  class=\\\"mat-mdc-tab-ripple\\\"\\n  mat-ripple\\n  [matRippleTrigger]=\\\"elementRef.nativeElement\\\"\\n  [matRippleDisabled]=\\\"rippleDisabled\\\"></div>\\n\\n<span class=\\\"mdc-tab__content\\\">\\n  <span class=\\\"mdc-tab__text-label\\\">\\n    <ng-content></ng-content>\\n  </span>\\n</span>\\n\\n\", styles: [\".mat-mdc-tab-link{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-tab-link.mdc-tab{height:48px;flex-grow:0}.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}.mat-mdc-tab-link .mdc-tab__text-label{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}.mat-mdc-tab-link.mat-mdc-tab-disabled{pointer-events:none;opacity:.4}.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: i5.MatRipple, selector: \"[mat-ripple], [matRipple]\", inputs: [\"matRippleColor\", \"matRippleUnbounded\", \"matRippleCentered\", \"matRippleRadius\", \"matRippleAnimation\", \"matRippleDisabled\", \"matRippleTrigger\"], exportAs: [\"matRipple\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: MatTabLink, decorators: [{\n            type: Component,\n            args: [{ selector: '[mat-tab-link], [matTabLink]', exportAs: 'matTabLink', inputs: ['disabled', 'disableRipple', 'tabIndex', 'active', 'id'], 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                    }, template: \"<span class=\\\"mdc-tab__ripple\\\"></span>\\n\\n<div\\n  class=\\\"mat-mdc-tab-ripple\\\"\\n  mat-ripple\\n  [matRippleTrigger]=\\\"elementRef.nativeElement\\\"\\n  [matRippleDisabled]=\\\"rippleDisabled\\\"></div>\\n\\n<span class=\\\"mdc-tab__content\\\">\\n  <span class=\\\"mdc-tab__text-label\\\">\\n    <ng-content></ng-content>\\n  </span>\\n</span>\\n\\n\", styles: [\".mat-mdc-tab-link{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-tab-link.mdc-tab{height:48px;flex-grow:0}.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}.mat-mdc-tab-link .mdc-tab__text-label{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}.mat-mdc-tab-link.mat-mdc-tab-disabled{pointer-events:none;opacity:.4}.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: function () { return [{ 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                }] }]; } });\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}\nMatTabNavPanel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: MatTabNavPanel, deps: [], target: i0.ɵɵFactoryTarget.Component });\nMatTabNavPanel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", type: MatTabNavPanel, 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: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: MatTabNavPanel, decorators: [{\n            type: Component,\n            args: [{\n                    selector: 'mat-tab-nav-panel',\n                    exportAs: 'matTabNavPanel',\n                    template: '<ng-content></ng-content>',\n                    host: {\n                        '[attr.aria-labelledby]': '_activeTabId',\n                        '[attr.id]': 'id',\n                        'class': 'mat-mdc-tab-nav-panel',\n                        'role': 'tabpanel',\n                    },\n                    encapsulation: ViewEncapsulation.None,\n                    changeDetection: ChangeDetectionStrategy.OnPush,\n                }]\n        }], propDecorators: { id: [{\n                type: Input\n            }] } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass MatTabsModule {\n}\nMatTabsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: MatTabsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nMatTabsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: MatTabsModule, declarations: [MatTabContent,\n        MatTabLabel,\n        MatTab,\n        MatTabGroup,\n        MatTabNav,\n        MatTabNavPanel,\n        MatTabLink,\n        // Private directives, should not be exported.\n        MatTabBody,\n        MatTabBodyPortal,\n        MatTabLabelWrapper,\n        MatTabHeader], imports: [CommonModule,\n        MatCommonModule,\n        PortalModule,\n        MatRippleModule,\n        ObserversModule,\n        A11yModule], exports: [MatCommonModule,\n        MatTabContent,\n        MatTabLabel,\n        MatTab,\n        MatTabGroup,\n        MatTabNav,\n        MatTabNavPanel,\n        MatTabLink] });\nMatTabsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: MatTabsModule, imports: [CommonModule,\n        MatCommonModule,\n        PortalModule,\n        MatRippleModule,\n        ObserversModule,\n        A11yModule, MatCommonModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.0-rc.0\", ngImport: i0, type: MatTabsModule, decorators: [{\n            type: NgModule,\n            args: [{\n                    imports: [\n                        CommonModule,\n                        MatCommonModule,\n                        PortalModule,\n                        MatRippleModule,\n                        ObserversModule,\n                        A11yModule,\n                    ],\n                    exports: [\n                        MatCommonModule,\n                        MatTabContent,\n                        MatTabLabel,\n                        MatTab,\n                        MatTabGroup,\n                        MatTabNav,\n                        MatTabNavPanel,\n                        MatTabLink,\n                    ],\n                    declarations: [\n                        MatTabContent,\n                        MatTabLabel,\n                        MatTab,\n                        MatTabGroup,\n                        MatTabNav,\n                        MatTabNavPanel,\n                        MatTabLink,\n                        // Private directives, should not be exported.\n                        MatTabBody,\n                        MatTabBodyPortal,\n                        MatTabLabelWrapper,\n                        MatTabHeader,\n                    ],\n                }]\n        }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_TAB, MAT_TABS_CONFIG, MAT_TAB_CONTENT, MAT_TAB_GROUP, MAT_TAB_LABEL, MatInkBar, MatPaginatedTabHeader, MatTab, MatTabBody, MatTabBodyPortal, MatTabChangeEvent, MatTabContent, MatTabGroup, MatTabHeader, MatTabLabel, MatTabLabelWrapper, MatTabLink, MatTabNav, MatTabNavPanel, MatTabsModule, _MAT_INK_BAR_POSITIONER, _MAT_INK_BAR_POSITIONER_FACTORY, _MatTabBase, _MatTabBodyBase, _MatTabGroupBase, _MatTabHeaderBase, _MatTabLabelWrapperBase, _MatTabLinkBase, _MatTabNavBase, matTabsAnimations };\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}