-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcode-code-tabs-module-ngfactory.1118ac02824d9f31c47d.js.map
1 lines (1 loc) · 178 KB
/
code-code-tabs-module-ngfactory.1118ac02824d9f31c47d.js.map
1
{"version":3,"sources":["webpack:///./src/app/custom-elements/code/code-tabs.component.ts","webpack:///./src/app/custom-elements/code/code-tabs.module.ts","webpack:///./node_modules/@angular/material/esm5/tabs.es5.js.pre-build-optimizer.js","webpack:///./node_modules/@angular/cdk/esm5/observers.es5.js.pre-build-optimizer.js","webpack:///./node_modules/@angular/material/tabs/typings/index.ngfactory.js.pre-build-optimizer.js","webpack:///./node_modules/@angular/material/tabs/typings/index.d.ts.MatTabGroup.html","webpack:///./node_modules/@angular/material/tabs/typings/index.d.ts.MatTabBody.html","webpack:///./node_modules/@angular/material/tabs/typings/index.d.ts.MatTabHeader.html","webpack:///./node_modules/@angular/material/tabs/typings/index.d.ts.MatTab.html","webpack:///./node_modules/@angular/material/esm5/card.es5.js.pre-build-optimizer.js","webpack:///./node_modules/@angular/material/card/typings/index.ngfactory.js.pre-build-optimizer.js","webpack:///./node_modules/@angular/material/card/typings/index.d.ts.MatCard.html","webpack:///./src/app/custom-elements/code/code-tabs.component.ngfactory.js.pre-build-optimizer.js","webpack:///./src/app/custom-elements/code/code-tabs.component.ts.CodeTabsComponent.html","webpack:///./src/app/custom-elements/code/code-tabs.module.ngfactory.js.pre-build-optimizer.js"],"names":["CodeTabsComponent","prototype","ngOnInit","this","tabs","codeExamples","content","nativeElement","querySelectorAll","i","length","push","getTabInfo","ngAfterViewInit","_this","codeComponents","toArray","forEach","codeComponent","code","tabContent","class","getAttribute","innerHTML","language","linenums","path","region","title","code_tabs_module_CodeTabsModule","customElementComponent","_MAT_INK_BAR_POSITIONER","core","providedIn","factory","element","left","offsetLeft","width","offsetWidth","MatInkBar","_elementRef","_ngZone","_inkBarPositioner","alignToElement","show","requestAnimationFrame","runOutsideAngular","_setStyles","style","visibility","hide","positions","inkBar","tabs_es5_MatTabLabel","_super","MatTabLabel","templateRef","viewContainerRef","call","Object","tslib_es6","portal_es5","tabs_es5_MatTab","MatTab","_viewContainerRef","textLabel","_contentPortal","_labelChange","Subject","_disableChange","position","origin","isActive","defineProperty","get","enumerable","configurable","ngOnChanges","changes","hasOwnProperty","next","ngOnDestroy","complete","_explicitContent","_implicitContent","core_es5","tabs_es5_MatTabBodyPortal","MatTabBodyPortal","componentFactoryResolver","_host","_centeringSub","Subscription","EMPTY","_leavingSub","_beforeCentering","pipe","startWith","_isCenterPosition","_position","subscribe","isCentering","hasAttached","attach","_content","_afterLeavingCenter","detach","unsubscribe","tabs_es5_MatTabBody","MatTabBody","_dir","_onCentering","_onCentered","set","_getLayoutDirection","dir","_origin","_onTranslateTabStarted","e","toState","emit","clientHeight","_onTranslateTabComplete","fromState","value","tabs_es5_MatTabLabelWrapper","MatTabLabelWrapper","elementRef","focus","getOffsetLeft","getOffsetWidth","tabs_es5_MatTabHeader","MatTabHeader","_changeDetectorRef","_viewportRuler","_focusIndex","_scrollDistance","_selectedIndexChanged","_realignInkBar","_showPaginationControls","_disableScrollAfter","_disableScrollBefore","_selectedIndex","selectFocusedIndex","indexFocused","coercion_es5","ngAfterContentChecked","_tabLabelCount","_labelWrappers","_updatePagination","markForCheck","_scrollToLabel","_checkScrollingControls","_alignInkBarToSelectedTab","_scrollDistanceChanged","_updateTabScrollPosition","_handleKeydown","event","keyCode","keycodes_es5","_focusNextTab","_focusPreviousTab","_focusFirstTab","preventDefault","_focusLastTab","focusIndex","ngAfterContentInit","dirChange","change","of","resize","realign","merge","_onContentChanges","_checkPaginationEnabled","_isValidIndex","_setTabFocus","index","tab","disabled","tabIndex","containerEl","_tabListContainer","scrollLeft","scrollWidth","_moveFocus","offset","scrollDistance","translateX","_tabList","transform","v","Math","max","min","_getMaxScrollDistance","_scrollHeader","scrollDir","labelIndex","selectedLabel","labelBeforePos","labelAfterPos","viewLength","beforeVisiblePos","afterVisiblePos","isEnabled","selectedLabelWrapper","selectedIndex","_inkBar","nextId","tabs_es5_MatTabGroup","MatTabGroup","_indexToSelect","_tabBodyWrapperHeight","_tabsSubscription","_tabLabelSubscription","_dynamicHeight","headerPosition","selectedIndexChange","focusChange","animationDone","selectedTabChange","_groupId","_backgroundColor","classList","remove","backgroundColor","add","indexToSelect","_tabs","tabChangeEvent","_createChangeEvent","Promise","resolve","then","_subscribeToTabLabels","realignInkBar","_tabHeader","_focusChanged","apply","map","concat","_getTabLabelId","_getTabContentId","_setTabBodyWrapperHeight","tabHeight","wrapper","_tabBodyWrapper","height","offsetHeight","_removeTabBodyWrapperHeight","_handleClick","tabHeader","idx","_getTabIndex","MatTabsModule","observers_es5_MutationObserverFactory","MutationObserverFactory","create","callback","MutationObserver","ngInjectableDef","token","observers_es5_CdkObserveContent","CdkObserveContent","_mutationObserverFactory","_disabled","_debouncer","debounce","debounceTime","mutations","_observer","_enable","currentValue","_disable","disconnect","observe","characterData","childList","subtree","ObserversModule","RenderType_MatTabGroup","encapsulation","styles","data","View_MatTabGroup_3","_l","View_MatTabGroup_2","portal","_ck","_v","parent","context","$implicit","templateLabel","View_MatTabGroup_4","View_MatTabGroup_1","en","$event","ad","component","platform_es5","common","ngIf","disableRipple","_co","unbounded","View_MatTabGroup_5","View_MatTabBody_0","RenderType_MatTabBody","bidi_es5","View_MatTabGroup_0","View_MatTabHeader_0","RenderType_MatTabHeader","scrolling_es5","ngForOf","animation","type","name","definitions","options","undefined","expr","timings","View_MatTabBody_1","_portalHost","RenderType_MatTab","View_MatTab_1","View_MatTab_0","MatCard","MatCardModule","RenderType_MatCard","View_MatCard_0","RenderType_CodeTabsComponent","View_CodeTabsComponent_2","View_CodeTabsComponent_1","code_component_ngfactory","code_component","snack_bar_es5","pretty_printer_service","copier_service","logger_service","View_CodeTabsComponent_0","dynamicHeight","CodeTabsComponentNgFactory","__webpack_require__","d","__webpack_exports__","CodeTabsModuleNgFactory","index_ngfactory","overlay_es5","a11y_es5","layout_es5","button_es5","code_module"],"mappings":"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","file":"code-code-tabs-module-ngfactory.1118ac02824d9f31c47d.js","sourcesContent":["/* tslint:disable component-selector */\nimport { Component, AfterViewInit, ViewChild, Input, ViewChildren, QueryList, OnInit } from '@angular/core';\nimport { CodeComponent } from './code.component';\n\nexport interface TabInfo {\n class: string|null;\n code: string;\n language: string|null;\n linenums: any;\n path: string;\n region: string;\n title: string|null;\n}\n\n/**\n * Renders a set of tab group of code snippets.\n *\n * The innerHTML of the `<code-tabs>` component should contain `<code-pane>` elements.\n * Each `<code-pane>` has the same interface as the embedded `<code-example>` component.\n * The optional `linenums` attribute is the default `linenums` for each code pane.\n */\n@Component({\n selector: 'code-tabs',\n template: `\n <!-- Use content projection so that the provided HTML's code-panes can be split into tabs -->\n <div #content style=\"display: none\"><ng-content></ng-content></div>\n\n <mat-card>\n <mat-tab-group class=\"code-tab-group\" disableRipple>\n <mat-tab style=\"overflow-y: hidden;\" *ngFor=\"let tab of tabs\">\n <ng-template mat-tab-label>\n <span class=\"{{ tab.class }}\">{{ tab.title }}</span>\n </ng-template>\n <aio-code class=\"{{ tab.class }}\"\n [language]=\"tab.language\"\n [linenums]=\"tab.linenums\"\n [path]=\"tab.path\"\n [region]=\"tab.region\"\n [title]=\"tab.title\">\n </aio-code>\n </mat-tab>\n </mat-tab-group>\n </mat-card>\n `,\n})\nexport class CodeTabsComponent implements OnInit, AfterViewInit {\n tabs: TabInfo[];\n\n @Input('linenums') linenums: string;\n\n @ViewChild('content') content;\n\n @ViewChildren(CodeComponent) codeComponents: QueryList<CodeComponent>;\n\n ngOnInit() {\n this.tabs = [];\n const codeExamples = this.content.nativeElement.querySelectorAll('code-pane');\n\n for (let i = 0; i < codeExamples.length; i++) {\n const tabContent = codeExamples[i];\n this.tabs.push(this.getTabInfo(tabContent));\n }\n }\n\n ngAfterViewInit() {\n this.codeComponents.toArray().forEach((codeComponent, i) => {\n codeComponent.code = this.tabs[i].code;\n });\n }\n\n /** Gets the extracted TabInfo data from the provided code-pane element. */\n private getTabInfo(tabContent: HTMLElement): TabInfo {\n return {\n class: tabContent.getAttribute('class'),\n code: tabContent.innerHTML,\n language: tabContent.getAttribute('language'),\n linenums: tabContent.getAttribute('linenums') || this.linenums,\n path: tabContent.getAttribute('path') || '',\n region: tabContent.getAttribute('region') || '',\n title: tabContent.getAttribute('title')\n };\n }\n}\n","import { NgModule, Type } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CodeTabsComponent } from './code-tabs.component';\nimport { MatCardModule, MatTabsModule } from '@angular/material';\nimport { CodeModule } from './code.module';\nimport { WithCustomElementComponent } from '../element-registry';\n\n@NgModule({\n imports: [ CommonModule, MatCardModule, MatTabsModule, CodeModule ],\n declarations: [ CodeTabsComponent ],\n exports: [ CodeTabsComponent ],\n entryComponents: [ CodeTabsComponent ]\n})\nexport class CodeTabsModule implements WithCustomElementComponent {\n customElementComponent: Type<any> = CodeTabsComponent;\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 */\nimport { Directive, ElementRef, Inject, InjectionToken, NgZone, TemplateRef, ViewContainerRef, ChangeDetectionStrategy, Component, ContentChild, Input, ViewChild, ViewEncapsulation, Output, EventEmitter, Optional, ComponentFactoryResolver, forwardRef, ChangeDetectorRef, ContentChildren, Attribute, NgModule } from '@angular/core';\nimport { __extends } from 'tslib';\nimport { CdkPortal, TemplatePortal, CdkPortalOutlet, PortalHostDirective, PortalModule } from '@angular/cdk/portal';\nimport { mixinDisabled, mixinDisableRipple, mixinColor, MAT_RIPPLE_GLOBAL_OPTIONS, mixinTabIndex, RippleRenderer, MatCommonModule, MatRippleModule } from '@angular/material/core';\nimport { Subject, Subscription, merge, of } from 'rxjs';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { startWith, takeUntil } from 'rxjs/operators';\nimport { coerceNumberProperty, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { END, ENTER, HOME, LEFT_ARROW, RIGHT_ARROW, SPACE } from '@angular/cdk/keycodes';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\nimport { Platform } from '@angular/cdk/platform';\nimport { ObserversModule } from '@angular/cdk/observers';\nimport { CommonModule } from '@angular/common';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * Injection token for the MatInkBar's Positioner.\n */\nvar /** @type {?} */ _MAT_INK_BAR_POSITIONER = new InjectionToken('MatInkBarPositioner', {\n providedIn: 'root',\n factory: _MAT_INK_BAR_POSITIONER_FACTORY\n});\n/**\n * The default positioner function for the MatInkBar.\n * \\@docs-private\n * @return {?}\n */\nfunction _MAT_INK_BAR_POSITIONER_FACTORY() {\n var /** @type {?} */ method = function (element) {\n return ({\n left: element ? (element.offsetLeft || 0) + 'px' : '0',\n width: element ? (element.offsetWidth || 0) + 'px' : '0',\n });\n };\n return method;\n}\n/**\n * The ink-bar is used to display and animate the line underneath the current active tab label.\n * \\@docs-private\n */\nvar MatInkBar = /** @class */ (function () {\n function MatInkBar(_elementRef, _ngZone, _inkBarPositioner) {\n this._elementRef = _elementRef;\n this._ngZone = _ngZone;\n this._inkBarPositioner = _inkBarPositioner;\n }\n /**\n * Calculates the styles from the provided element in order to align the ink-bar to that element.\n * Shows the ink bar if previously set as hidden.\n * @param element\n */\n /**\n * Calculates the styles from the provided element in order to align the ink-bar to that element.\n * Shows the ink bar if previously set as hidden.\n * @param {?} element\n * @return {?}\n */\n MatInkBar.prototype.alignToElement = /**\n * Calculates the styles from the provided element in order to align the ink-bar to that element.\n * Shows the ink bar if previously set as hidden.\n * @param {?} element\n * @return {?}\n */\n function (element) {\n var _this = this;\n this.show();\n if (typeof requestAnimationFrame !== 'undefined') {\n this._ngZone.runOutsideAngular(function () {\n requestAnimationFrame(function () { return _this._setStyles(element); });\n });\n }\n else {\n this._setStyles(element);\n }\n };\n /** Shows the ink bar. */\n /**\n * Shows the ink bar.\n * @return {?}\n */\n MatInkBar.prototype.show = /**\n * Shows the ink bar.\n * @return {?}\n */\n function () {\n this._elementRef.nativeElement.style.visibility = 'visible';\n };\n /** Hides the ink bar. */\n /**\n * Hides the ink bar.\n * @return {?}\n */\n MatInkBar.prototype.hide = /**\n * Hides the ink bar.\n * @return {?}\n */\n function () {\n this._elementRef.nativeElement.style.visibility = 'hidden';\n };\n /**\n * Sets the proper styles to the ink bar element.\n * @param {?} element\n * @return {?}\n */\n MatInkBar.prototype._setStyles = /**\n * Sets the proper styles to the ink bar element.\n * @param {?} element\n * @return {?}\n */\n function (element) {\n var /** @type {?} */ positions = this._inkBarPositioner(element);\n var /** @type {?} */ inkBar = this._elementRef.nativeElement;\n inkBar.style.left = positions.left;\n inkBar.style.width = positions.width;\n };\n MatInkBar.decorators = [\n { type: Directive, args: [{\n selector: 'mat-ink-bar',\n host: {\n 'class': 'mat-ink-bar',\n },\n },] },\n ];\n /** @nocollapse */\n MatInkBar.ctorParameters = function () { return [\n { type: ElementRef, },\n { type: NgZone, },\n { type: undefined, decorators: [{ type: Inject, args: [_MAT_INK_BAR_POSITIONER,] },] },\n ]; };\n return MatInkBar;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * Used to flag tab labels for use with the portal directive\n */\nvar MatTabLabel = /** @class */ (function (_super) {\n __extends(MatTabLabel, _super);\n function MatTabLabel(templateRef, viewContainerRef) {\n return _super.call(this, templateRef, viewContainerRef) || this;\n }\n MatTabLabel.decorators = [\n { type: Directive, args: [{\n selector: '[mat-tab-label], [matTabLabel]',\n },] },\n ];\n /** @nocollapse */\n MatTabLabel.ctorParameters = function () { return [\n { type: TemplateRef, },\n { type: ViewContainerRef, },\n ]; };\n return MatTabLabel;\n}(CdkPortal));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * Decorates the `ng-template` tags and reads out the template from it.\n */\nvar MatTabContent = /** @class */ (function () {\n function MatTabContent(template) {\n this.template = template;\n }\n MatTabContent.decorators = [\n { type: Directive, args: [{ selector: '[matTabContent]' },] },\n ];\n /** @nocollapse */\n MatTabContent.ctorParameters = function () { return [\n { type: TemplateRef, },\n ]; };\n return MatTabContent;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * \\@docs-private\n */\nvar /**\n * \\@docs-private\n */\nMatTabBase = /** @class */ (function () {\n function MatTabBase() {\n }\n return MatTabBase;\n}());\nvar /** @type {?} */ _MatTabMixinBase = mixinDisabled(MatTabBase);\nvar MatTab = /** @class */ (function (_super) {\n __extends(MatTab, _super);\n function MatTab(_viewContainerRef) {\n var _this = _super.call(this) || this;\n _this._viewContainerRef = _viewContainerRef;\n /**\n * The plain text label for the tab, used when there is no template label.\n */\n _this.textLabel = '';\n /**\n * The portal that will be the hosted content of the tab\n */\n _this._contentPortal = null;\n /**\n * Emits whenever the label changes.\n */\n _this._labelChange = new Subject();\n /**\n * Emits whenever the disable changes\n */\n _this._disableChange = 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 return _this;\n }\n Object.defineProperty(MatTab.prototype, \"content\", {\n /** @docs-private */\n get: /**\n * \\@docs-private\n * @return {?}\n */\n function () {\n return this._contentPortal;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} changes\n * @return {?}\n */\n MatTab.prototype.ngOnChanges = /**\n * @param {?} changes\n * @return {?}\n */\n function (changes) {\n if (changes.hasOwnProperty('textLabel')) {\n this._labelChange.next();\n }\n if (changes.hasOwnProperty('disabled')) {\n this._disableChange.next();\n }\n };\n /**\n * @return {?}\n */\n MatTab.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n this._disableChange.complete();\n this._labelChange.complete();\n };\n /**\n * @return {?}\n */\n MatTab.prototype.ngOnInit = /**\n * @return {?}\n */\n function () {\n this._contentPortal = new TemplatePortal(this._explicitContent || this._implicitContent, this._viewContainerRef);\n };\n MatTab.decorators = [\n { type: Component, args: [{selector: 'mat-tab',\n template: \"<ng-template><ng-content></ng-content></ng-template>\",\n inputs: ['disabled'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'matTab',\n },] },\n ];\n /** @nocollapse */\n MatTab.ctorParameters = function () { return [\n { type: ViewContainerRef, },\n ]; };\n MatTab.propDecorators = {\n \"templateLabel\": [{ type: ContentChild, args: [MatTabLabel,] },],\n \"_explicitContent\": [{ type: ContentChild, args: [MatTabContent, { read: TemplateRef },] },],\n \"_implicitContent\": [{ type: ViewChild, args: [TemplateRef,] },],\n \"textLabel\": [{ type: Input, args: ['label',] },],\n };\n return MatTab;\n}(_MatTabMixinBase));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * Animations used by the Material tabs.\n */\nvar /** @type {?} */ matTabsAnimations = {\n /** Animation translates a tab along the X axis. */\n translateTab: trigger('translateTab', [\n // Note: 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 state('left', style({ transform: 'translate3d(-100%, 0, 0)' })),\n state('right', style({ transform: 'translate3d(100%, 0, 0)' })),\n transition('* => left, * => right, left => center, right => center', animate('500ms cubic-bezier(0.35, 0, 0.25, 1)')),\n transition('void => left-origin-center', [\n style({ transform: 'translate3d(-100%, 0, 0)' }),\n animate('500ms cubic-bezier(0.35, 0, 0.25, 1)')\n ]),\n transition('void => right-origin-center', [\n style({ transform: 'translate3d(100%, 0, 0)' }),\n animate('500ms cubic-bezier(0.35, 0, 0.25, 1)')\n ])\n ])\n};\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * The portal host directive for the contents of the tab.\n * \\@docs-private\n */\nvar MatTabBodyPortal = /** @class */ (function (_super) {\n __extends(MatTabBodyPortal, _super);\n function MatTabBodyPortal(componentFactoryResolver, viewContainerRef, _host) {\n var _this = _super.call(this, componentFactoryResolver, viewContainerRef) || this;\n _this._host = _host;\n /**\n * Subscription to events for when the tab body begins centering.\n */\n _this._centeringSub = Subscription.EMPTY;\n /**\n * Subscription to events for when the tab body finishes leaving from center position.\n */\n _this._leavingSub = Subscription.EMPTY;\n return _this;\n }\n /** Set initial visibility or set up subscription for changing visibility. */\n /**\n * Set initial visibility or set up subscription for changing visibility.\n * @return {?}\n */\n MatTabBodyPortal.prototype.ngOnInit = /**\n * Set initial visibility or set up subscription for changing visibility.\n * @return {?}\n */\n function () {\n var _this = this;\n _super.prototype.ngOnInit.call(this);\n this._centeringSub = this._host._beforeCentering\n .pipe(startWith(this._host._isCenterPosition(this._host._position)))\n .subscribe(function (isCentering) {\n if (isCentering && !_this.hasAttached()) {\n _this.attach(_this._host._content);\n }\n });\n this._leavingSub = this._host._afterLeavingCenter.subscribe(function () {\n _this.detach();\n });\n };\n /** Clean up centering subscription. */\n /**\n * Clean up centering subscription.\n * @return {?}\n */\n MatTabBodyPortal.prototype.ngOnDestroy = /**\n * Clean up centering subscription.\n * @return {?}\n */\n function () {\n _super.prototype.ngOnDestroy.call(this);\n this._centeringSub.unsubscribe();\n this._leavingSub.unsubscribe();\n };\n MatTabBodyPortal.decorators = [\n { type: Directive, args: [{\n selector: '[matTabBodyHost]'\n },] },\n ];\n /** @nocollapse */\n MatTabBodyPortal.ctorParameters = function () { return [\n { type: ComponentFactoryResolver, },\n { type: ViewContainerRef, },\n { type: MatTabBody, decorators: [{ type: Inject, args: [forwardRef(function () { return MatTabBody; }),] },] },\n ]; };\n return MatTabBodyPortal;\n}(CdkPortalOutlet));\n/**\n * Wrapper for the contents of a tab.\n * \\@docs-private\n */\nvar MatTabBody = /** @class */ (function () {\n function MatTabBody(_elementRef, _dir) {\n this._elementRef = _elementRef;\n this._dir = _dir;\n /**\n * Event emitted when the tab begins to animate towards the center as the active tab.\n */\n this._onCentering = new EventEmitter();\n /**\n * Event emitted before the centering of the tab begins.\n */\n this._beforeCentering = new EventEmitter();\n /**\n * Event emitted before the centering of the tab begins.\n */\n this._afterLeavingCenter = new EventEmitter();\n /**\n * Event emitted when the tab completes its animation towards the center.\n */\n this._onCentered = new EventEmitter(true);\n }\n Object.defineProperty(MatTabBody.prototype, \"position\", {\n set: /**\n * The shifted index position of the tab body, where zero represents the active center tab.\n * @param {?} position\n * @return {?}\n */\n function (position) {\n if (position < 0) {\n this._position = this._getLayoutDirection() == 'ltr' ? 'left' : 'right';\n }\n else if (position > 0) {\n this._position = this._getLayoutDirection() == 'ltr' ? 'right' : 'left';\n }\n else {\n this._position = 'center';\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatTabBody.prototype, \"origin\", {\n set: /**\n * The origin position from which this tab should appear when it is centered into view.\n * @param {?} origin\n * @return {?}\n */\n function (origin) {\n if (origin == null) {\n return;\n }\n var /** @type {?} */ dir = this._getLayoutDirection();\n if ((dir == 'ltr' && origin <= 0) || (dir == 'rtl' && origin > 0)) {\n this._origin = 'left';\n }\n else {\n this._origin = 'right';\n }\n },\n enumerable: true,\n configurable: true\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 /**\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 * @return {?}\n */\n MatTabBody.prototype.ngOnInit = /**\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 * @return {?}\n */\n function () {\n if (this._position == 'center' && this._origin) {\n this._position = this._origin == 'left' ? 'left-origin-center' : 'right-origin-center';\n }\n };\n /**\n * @param {?} e\n * @return {?}\n */\n MatTabBody.prototype._onTranslateTabStarted = /**\n * @param {?} e\n * @return {?}\n */\n function (e) {\n var /** @type {?} */ isCentering = this._isCenterPosition(e.toState);\n this._beforeCentering.emit(isCentering);\n if (isCentering) {\n this._onCentering.emit(this._elementRef.nativeElement.clientHeight);\n }\n };\n /**\n * @param {?} e\n * @return {?}\n */\n MatTabBody.prototype._onTranslateTabComplete = /**\n * @param {?} e\n * @return {?}\n */\n function (e) {\n // If the transition to the center is complete, emit an event.\n if (this._isCenterPosition(e.toState) && this._isCenterPosition(this._position)) {\n this._onCentered.emit();\n }\n if (this._isCenterPosition(e.fromState) && !this._isCenterPosition(this._position)) {\n this._afterLeavingCenter.emit();\n }\n };\n /** The text direction of the containing app. */\n /**\n * The text direction of the containing app.\n * @return {?}\n */\n MatTabBody.prototype._getLayoutDirection = /**\n * The text direction of the containing app.\n * @return {?}\n */\n function () {\n return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';\n };\n /** Whether the provided position state is considered center, regardless of origin. */\n /**\n * Whether the provided position state is considered center, regardless of origin.\n * @param {?} position\n * @return {?}\n */\n MatTabBody.prototype._isCenterPosition = /**\n * Whether the provided position state is considered center, regardless of origin.\n * @param {?} position\n * @return {?}\n */\n function (position) {\n return position == 'center' ||\n position == 'left-origin-center' ||\n position == 'right-origin-center';\n };\n MatTabBody.decorators = [\n { type: Component, args: [{selector: 'mat-tab-body',\n template: \"<div class=\\\"mat-tab-body-content\\\" #content [@translateTab]=\\\"_position\\\" (@translateTab.start)=\\\"_onTranslateTabStarted($event)\\\" (@translateTab.done)=\\\"_onTranslateTabComplete($event)\\\"><ng-template matTabBodyHost></ng-template></div>\",\n styles: [\".mat-tab-body-content{height:100%;overflow:auto}.mat-tab-group-dynamic-height .mat-tab-body-content{overflow:hidden}\"],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [matTabsAnimations.translateTab],\n host: {\n 'class': 'mat-tab-body',\n },\n },] },\n ];\n /** @nocollapse */\n MatTabBody.ctorParameters = function () { return [\n { type: ElementRef, },\n { type: Directionality, decorators: [{ type: Optional },] },\n ]; };\n MatTabBody.propDecorators = {\n \"_onCentering\": [{ type: Output },],\n \"_beforeCentering\": [{ type: Output },],\n \"_afterLeavingCenter\": [{ type: Output },],\n \"_onCentered\": [{ type: Output },],\n \"_portalHost\": [{ type: ViewChild, args: [PortalHostDirective,] },],\n \"_content\": [{ type: Input, args: ['content',] },],\n \"position\": [{ type: Input },],\n \"origin\": [{ type: Input },],\n };\n return MatTabBody;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * \\@docs-private\n */\nvar /**\n * \\@docs-private\n */\nMatTabLabelWrapperBase = /** @class */ (function () {\n function MatTabLabelWrapperBase() {\n }\n return MatTabLabelWrapperBase;\n}());\nvar /** @type {?} */ _MatTabLabelWrapperMixinBase = mixinDisabled(MatTabLabelWrapperBase);\n/**\n * Used in the `mat-tab-group` view to display tab labels.\n * \\@docs-private\n */\nvar MatTabLabelWrapper = /** @class */ (function (_super) {\n __extends(MatTabLabelWrapper, _super);\n function MatTabLabelWrapper(elementRef) {\n var _this = _super.call(this) || this;\n _this.elementRef = elementRef;\n return _this;\n }\n /** Sets focus on the wrapper element */\n /**\n * Sets focus on the wrapper element\n * @return {?}\n */\n MatTabLabelWrapper.prototype.focus = /**\n * Sets focus on the wrapper element\n * @return {?}\n */\n function () {\n this.elementRef.nativeElement.focus();\n };\n /**\n * @return {?}\n */\n MatTabLabelWrapper.prototype.getOffsetLeft = /**\n * @return {?}\n */\n function () {\n return this.elementRef.nativeElement.offsetLeft;\n };\n /**\n * @return {?}\n */\n MatTabLabelWrapper.prototype.getOffsetWidth = /**\n * @return {?}\n */\n function () {\n return this.elementRef.nativeElement.offsetWidth;\n };\n MatTabLabelWrapper.decorators = [\n { type: Directive, args: [{\n selector: '[matTabLabelWrapper]',\n inputs: ['disabled'],\n host: {\n '[class.mat-tab-disabled]': 'disabled'\n }\n },] },\n ];\n /** @nocollapse */\n MatTabLabelWrapper.ctorParameters = function () { return [\n { type: ElementRef, },\n ]; };\n return MatTabLabelWrapper;\n}(_MatTabLabelWrapperMixinBase));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * The distance in pixels that will be overshot when scrolling a tab label into view. This helps\n * provide a small affordance to the label next to it.\n */\nvar /** @type {?} */ EXAGGERATED_OVERSCROLL = 60;\n/**\n * \\@docs-private\n */\nvar /**\n * \\@docs-private\n */\nMatTabHeaderBase = /** @class */ (function () {\n function MatTabHeaderBase() {\n }\n return MatTabHeaderBase;\n}());\nvar /** @type {?} */ _MatTabHeaderMixinBase = mixinDisableRipple(MatTabHeaderBase);\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 */\nvar MatTabHeader = /** @class */ (function (_super) {\n __extends(MatTabHeader, _super);\n function MatTabHeader(_elementRef, _changeDetectorRef, _viewportRuler, _dir) {\n var _this = _super.call(this) || this;\n _this._elementRef = _elementRef;\n _this._changeDetectorRef = _changeDetectorRef;\n _this._viewportRuler = _viewportRuler;\n _this._dir = _dir;\n /**\n * The tab index that is focused.\n */\n _this._focusIndex = 0;\n /**\n * The distance in pixels that the tab labels should be translated to the left.\n */\n _this._scrollDistance = 0;\n /**\n * Whether the header should scroll to the selected index after the view has been checked.\n */\n _this._selectedIndexChanged = false;\n /**\n * Combines listeners that will re-align the ink bar whenever they're invoked.\n */\n _this._realignInkBar = Subscription.EMPTY;\n /**\n * Whether the controls for pagination should be displayed\n */\n _this._showPaginationControls = false;\n /**\n * Whether the tab list can be scrolled more towards the end of the tab label list.\n */\n _this._disableScrollAfter = true;\n /**\n * Whether the tab list can be scrolled more towards the beginning of the tab label list.\n */\n _this._disableScrollBefore = true;\n _this._selectedIndex = 0;\n /**\n * Event emitted when the option is selected.\n */\n _this.selectFocusedIndex = new EventEmitter();\n /**\n * Event emitted when a label is focused.\n */\n _this.indexFocused = new EventEmitter();\n return _this;\n }\n Object.defineProperty(MatTabHeader.prototype, \"selectedIndex\", {\n get: /**\n * The index of the active tab.\n * @return {?}\n */\n function () { return this._selectedIndex; },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n value = coerceNumberProperty(value);\n this._selectedIndexChanged = this._selectedIndex != value;\n this._selectedIndex = value;\n this._focusIndex = value;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n MatTabHeader.prototype.ngAfterContentChecked = /**\n * @return {?}\n */\n function () {\n // If the number of tab labels have changed, check if scrolling should be enabled\n if (this._tabLabelCount != this._labelWrappers.length) {\n this._updatePagination();\n this._tabLabelCount = this._labelWrappers.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 /**\n * @param {?} event\n * @return {?}\n */\n MatTabHeader.prototype._handleKeydown = /**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n switch (event.keyCode) {\n case RIGHT_ARROW:\n this._focusNextTab();\n break;\n case LEFT_ARROW:\n this._focusPreviousTab();\n break;\n case HOME:\n this._focusFirstTab();\n event.preventDefault();\n break;\n case END:\n this._focusLastTab();\n event.preventDefault();\n break;\n case ENTER:\n case SPACE:\n this.selectFocusedIndex.emit(this.focusIndex);\n event.preventDefault();\n break;\n }\n };\n /**\n * Aligns the ink bar to the selected tab on load.\n */\n /**\n * Aligns the ink bar to the selected tab on load.\n * @return {?}\n */\n MatTabHeader.prototype.ngAfterContentInit = /**\n * Aligns the ink bar to the selected tab on load.\n * @return {?}\n */\n function () {\n var _this = this;\n var /** @type {?} */ dirChange = this._dir ? this._dir.change : of(null);\n var /** @type {?} */ resize = this._viewportRuler.change(150);\n var /** @type {?} */ realign = function () {\n _this._updatePagination();\n _this._alignInkBarToSelectedTab();\n };\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 typeof requestAnimationFrame !== 'undefined' ? requestAnimationFrame(realign) : realign();\n this._realignInkBar = merge(dirChange, resize).subscribe(realign);\n };\n /**\n * @return {?}\n */\n MatTabHeader.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n this._realignInkBar.unsubscribe();\n };\n /**\n * Callback for when the MutationObserver detects that the content has changed.\n */\n /**\n * Callback for when the MutationObserver detects that the content has changed.\n * @return {?}\n */\n MatTabHeader.prototype._onContentChanges = /**\n * Callback for when the MutationObserver detects that the content has changed.\n * @return {?}\n */\n function () {\n this._updatePagination();\n this._alignInkBarToSelectedTab();\n this._changeDetectorRef.markForCheck();\n };\n /**\n * Updating the view whether pagination should be enabled or not\n */\n /**\n * Updating the view whether pagination should be enabled or not\n * @return {?}\n */\n MatTabHeader.prototype._updatePagination = /**\n * Updating the view whether pagination should be enabled or not\n * @return {?}\n */\n function () {\n this._checkPaginationEnabled();\n this._checkScrollingControls();\n this._updateTabScrollPosition();\n };\n Object.defineProperty(MatTabHeader.prototype, \"focusIndex\", {\n /** Tracks which element has focus; used for keyboard navigation */\n get: /**\n * Tracks which element has focus; used for keyboard navigation\n * @return {?}\n */\n function () { return this._focusIndex; },\n /** When the focus index is set, we must manually send focus to the correct label */\n set: /**\n * When the focus index is set, we must manually send focus to the correct label\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (!this._isValidIndex(value) || this._focusIndex == value) {\n return;\n }\n this._focusIndex = value;\n this.indexFocused.emit(value);\n this._setTabFocus(value);\n },\n enumerable: true,\n configurable: true\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 /**\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 * @param {?} index\n * @return {?}\n */\n MatTabHeader.prototype._isValidIndex = /**\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 * @param {?} index\n * @return {?}\n */\n function (index) {\n if (!this._labelWrappers) {\n return true;\n }\n var /** @type {?} */ tab = this._labelWrappers ? this._labelWrappers.toArray()[index] : null;\n return !!tab && !tab.disabled;\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 /**\n * Sets focus on the HTML element for the label wrapper and scrolls it into the view if\n * scrolling is enabled.\n * @param {?} tabIndex\n * @return {?}\n */\n MatTabHeader.prototype._setTabFocus = /**\n * Sets focus on the HTML element for the label wrapper and scrolls it into the view if\n * scrolling is enabled.\n * @param {?} tabIndex\n * @return {?}\n */\n function (tabIndex) {\n if (this._showPaginationControls) {\n this._scrollToLabel(tabIndex);\n }\n if (this._labelWrappers && this._labelWrappers.length) {\n this._labelWrappers.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 var /** @type {?} */ containerEl = this._tabListContainer.nativeElement;\n var /** @type {?} */ 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 /**\n * Moves the focus towards the beginning or the end of the list depending on the offset provided.\n * Valid offsets are 1 and -1.\n */\n /**\n * Moves the focus towards the beginning or the end of the list depending on the offset provided.\n * Valid offsets are 1 and -1.\n * @param {?} offset\n * @return {?}\n */\n MatTabHeader.prototype._moveFocus = /**\n * Moves the focus towards the beginning or the end of the list depending on the offset provided.\n * Valid offsets are 1 and -1.\n * @param {?} offset\n * @return {?}\n */\n function (offset) {\n if (this._labelWrappers) {\n var /** @type {?} */ tabs = this._labelWrappers.toArray();\n for (var /** @type {?} */ i = this.focusIndex + offset; i < tabs.length && i >= 0; i += offset) {\n if (this._isValidIndex(i)) {\n this.focusIndex = i;\n return;\n }\n }\n }\n };\n /** Increment the focus index by 1 until a valid tab is found. */\n /**\n * Increment the focus index by 1 until a valid tab is found.\n * @return {?}\n */\n MatTabHeader.prototype._focusNextTab = /**\n * Increment the focus index by 1 until a valid tab is found.\n * @return {?}\n */\n function () {\n this._moveFocus(this._getLayoutDirection() == 'ltr' ? 1 : -1);\n };\n /** Decrement the focus index by 1 until a valid tab is found. */\n /**\n * Decrement the focus index by 1 until a valid tab is found.\n * @return {?}\n */\n MatTabHeader.prototype._focusPreviousTab = /**\n * Decrement the focus index by 1 until a valid tab is found.\n * @return {?}\n */\n function () {\n this._moveFocus(this._getLayoutDirection() == 'ltr' ? -1 : 1);\n };\n /**\n * Focuses the first tab.\n * @return {?}\n */\n MatTabHeader.prototype._focusFirstTab = /**\n * Focuses the first tab.\n * @return {?}\n */\n function () {\n for (var /** @type {?} */ i = 0; i < this._labelWrappers.length; i++) {\n if (this._isValidIndex(i)) {\n this.focusIndex = i;\n break;\n }\n }\n };\n /**\n * Focuses the last tab.\n * @return {?}\n */\n MatTabHeader.prototype._focusLastTab = /**\n * Focuses the last tab.\n * @return {?}\n */\n function () {\n for (var /** @type {?} */ i = this._labelWrappers.length - 1; i > -1; i--) {\n if (this._isValidIndex(i)) {\n this.focusIndex = i;\n break;\n }\n }\n };\n /** The layout direction of the containing app. */\n /**\n * The layout direction of the containing app.\n * @return {?}\n */\n MatTabHeader.prototype._getLayoutDirection = /**\n * The layout direction of the containing app.\n * @return {?}\n */\n function () {\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 /**\n * Performs the CSS transformation on the tab list that will cause the list to scroll.\n * @return {?}\n */\n MatTabHeader.prototype._updateTabScrollPosition = /**\n * Performs the CSS transformation on the tab list that will cause the list to scroll.\n * @return {?}\n */\n function () {\n var /** @type {?} */ scrollDistance = this.scrollDistance;\n var /** @type {?} */ translateX = this._getLayoutDirection() === 'ltr' ? -scrollDistance : scrollDistance;\n this._tabList.nativeElement.style.transform = \"translate3d(\" + translateX + \"px, 0, 0)\";\n };\n Object.defineProperty(MatTabHeader.prototype, \"scrollDistance\", {\n /** Sets the distance in pixels that the tab header should be transformed in the X-axis. */\n get: /**\n * Sets the distance in pixels that the tab header should be transformed in the X-axis.\n * @return {?}\n */\n function () { return this._scrollDistance; },\n set: /**\n * @param {?} v\n * @return {?}\n */\n function (v) {\n this._scrollDistance = Math.max(0, Math.min(this._getMaxScrollDistance(), v));\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 },\n enumerable: true,\n configurable: true\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 /**\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 * @param {?} scrollDir\n * @return {?}\n */\n MatTabHeader.prototype._scrollHeader = /**\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 * @param {?} scrollDir\n * @return {?}\n */\n function (scrollDir) {\n var /** @type {?} */ viewLength = this._tabListContainer.nativeElement.offsetWidth;\n // Move the scroll distance one-third the length of the tab list's viewport.\n this.scrollDistance += (scrollDir == 'before' ? -1 : 1) * viewLength / 3;\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 /**\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 * @param {?} labelIndex\n * @return {?}\n */\n MatTabHeader.prototype._scrollToLabel = /**\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 * @param {?} labelIndex\n * @return {?}\n */\n function (labelIndex) {\n var /** @type {?} */ selectedLabel = this._labelWrappers ? this._labelWrappers.toArray()[labelIndex] : null;\n if (!selectedLabel) {\n return;\n }\n // The view length is the visible width of the tab labels.\n var /** @type {?} */ viewLength = this._tabListContainer.nativeElement.offsetWidth;\n var /** @type {?} */ labelBeforePos, /** @type {?} */ labelAfterPos;\n if (this._getLayoutDirection() == 'ltr') {\n labelBeforePos = selectedLabel.getOffsetLeft();\n labelAfterPos = labelBeforePos + selectedLabel.getOffsetWidth();\n }\n else {\n labelAfterPos = this._tabList.nativeElement.offsetWidth - selectedLabel.getOffsetLeft();\n labelBeforePos = labelAfterPos - selectedLabel.getOffsetWidth();\n }\n var /** @type {?} */ beforeVisiblePos = this.scrollDistance;\n var /** @type {?} */ afterVisiblePos = this.scrollDistance + viewLength;\n if (labelBeforePos < beforeVisiblePos) {\n // Scroll header to move label to the before direction\n this.scrollDistance -= beforeVisiblePos - labelBeforePos + EXAGGERATED_OVERSCROLL;\n }\n else if (labelAfterPos > afterVisiblePos) {\n // Scroll header to move label to the after direction\n this.scrollDistance += labelAfterPos - afterVisiblePos + EXAGGERATED_OVERSCROLL;\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 /**\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 * @return {?}\n */\n MatTabHeader.prototype._checkPaginationEnabled = /**\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 * @return {?}\n */\n function () {\n var /** @type {?} */ isEnabled = this._tabList.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 * 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 /**\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 * @return {?}\n */\n MatTabHeader.prototype._checkScrollingControls = /**\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 * @return {?}\n */\n function () {\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 * 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 /**\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 * @return {?}\n */\n MatTabHeader.prototype._getMaxScrollDistance = /**\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 * @return {?}\n */\n function () {\n var /** @type {?} */ lengthOfTabList = this._tabList.nativeElement.scrollWidth;\n var /** @type {?} */ 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 /**\n * Tells the ink-bar to align itself to the current label wrapper\n * @return {?}\n */\n MatTabHeader.prototype._alignInkBarToSelectedTab = /**\n * Tells the ink-bar to align itself to the current label wrapper\n * @return {?}\n */\n function () {\n var /** @type {?} */ selectedLabelWrapper = this._labelWrappers && this._labelWrappers.length ?\n this._labelWrappers.toArray()[this.selectedIndex].elementRef.nativeElement :\n null;\n this._inkBar.alignToElement(selectedLabelWrapper);\n };\n MatTabHeader.decorators = [\n { type: Component, args: [{selector: 'mat-tab-header',\n template: \"<div class=\\\"mat-tab-header-pagination mat-tab-header-pagination-before mat-elevation-z4\\\" aria-hidden=\\\"true\\\" mat-ripple [matRippleDisabled]=\\\"_disableScrollBefore || disableRipple\\\" [class.mat-tab-header-pagination-disabled]=\\\"_disableScrollBefore\\\" (click)=\\\"_scrollHeader('before')\\\"><div class=\\\"mat-tab-header-pagination-chevron\\\"></div></div><div class=\\\"mat-tab-label-container\\\" #tabListContainer (keydown)=\\\"_handleKeydown($event)\\\"><div class=\\\"mat-tab-list\\\" #tabList role=\\\"tablist\\\" (cdkObserveContent)=\\\"_onContentChanges()\\\"><div class=\\\"mat-tab-labels\\\"><ng-content></ng-content></div><mat-ink-bar></mat-ink-bar></div></div><div class=\\\"mat-tab-header-pagination mat-tab-header-pagination-after mat-elevation-z4\\\" aria-hidden=\\\"true\\\" mat-ripple [matRippleDisabled]=\\\"_disableScrollAfter || disableRipple\\\" [class.mat-tab-header-pagination-disabled]=\\\"_disableScrollAfter\\\" (click)=\\\"_scrollHeader('after')\\\"><div class=\\\"mat-tab-header-pagination-chevron\\\"></div></div>\",\n styles: [\".mat-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mat-tab-label{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;position:relative}.mat-tab-label:focus{outline:0}.mat-tab-label:focus:not(.mat-tab-disabled){opacity:1}.mat-tab-label.mat-tab-disabled{cursor:default}.mat-tab-label.mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}@media (max-width:599px){.mat-tab-label{min-width:72px}}.mat-ink-bar{position:absolute;bottom:0;height:2px;transition:.5s cubic-bezier(.35,0,.25,1)}.mat-tab-group-inverted-header .mat-ink-bar{bottom:auto;top:0}@media screen and (-ms-high-contrast:active){.mat-ink-bar{outline:solid 2px;height:0}}.mat-tab-header-pagination{position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2}.mat-tab-header-pagination-controls-enabled .mat-tab-header-pagination{display:flex}.mat-tab-header-pagination-before,.mat-tab-header-rtl .mat-tab-header-pagination-after{padding-left:4px}.mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-rtl .mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-tab-header-pagination-after,.mat-tab-header-rtl .mat-tab-header-pagination-before{padding-right:4px}.mat-tab-header-pagination-after .mat-tab-header-pagination-chevron,.mat-tab-header-rtl .mat-tab-header-pagination-before .mat-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;content:'';height:8px;width:8px}.mat-tab-header-pagination-disabled{box-shadow:none;cursor:default}.mat-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-tab-list{flex-grow:1;position:relative;transition:transform .5s cubic-bezier(.35,0,.25,1)}.mat-tab-labels{display:flex}\"],\n inputs: ['disableRipple'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'mat-tab-header',\n '[class.mat-tab-header-pagination-controls-enabled]': '_showPaginationControls',\n '[class.mat-tab-header-rtl]': \"_getLayoutDirection() == 'rtl'\",\n },\n },] },\n ];\n /** @nocollapse */\n MatTabHeader.ctorParameters = function () { return [\n { type: ElementRef, },\n { type: ChangeDetectorRef, },\n { type: ViewportRuler, },\n { type: Directionality, decorators: [{ type: Optional },] },\n ]; };\n MatTabHeader.propDecorators = {\n \"_labelWrappers\": [{ type: ContentChildren, args: [MatTabLabelWrapper,] },],\n \"_inkBar\": [{ type: ViewChild, args: [MatInkBar,] },],\n \"_tabListContainer\": [{ type: ViewChild, args: ['tabListContainer',] },],\n \"_tabList\": [{ type: ViewChild, args: ['tabList',] },],\n \"selectedIndex\": [{ type: Input },],\n \"selectFocusedIndex\": [{ type: Output },],\n \"indexFocused\": [{ type: Output },],\n };\n return MatTabHeader;\n}(_MatTabHeaderMixinBase));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * Used to generate unique ID's for each tab component\n */\nvar /** @type {?} */ nextId = 0;\n/**\n * A simple change event emitted on focus or selection changes.\n */\nvar /**\n * A simple change event emitted on focus or selection changes.\n */\nMatTabChangeEvent = /** @class */ (function () {\n function MatTabChangeEvent() {\n }\n return MatTabChangeEvent;\n}());\n/**\n * \\@docs-private\n */\nvar /**\n * \\@docs-private\n */\nMatTabGroupBase = /** @class */ (function () {\n function MatTabGroupBase(_elementRef) {\n this._elementRef = _elementRef;\n }\n return MatTabGroupBase;\n}());\nvar /** @type {?} */ _MatTabGroupMixinBase = mixinColor(mixinDisableRipple(MatTabGroupBase), 'primary');\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://www.google.com/design/spec/components/tabs.html\n */\nvar MatTabGroup = /** @class */ (function (_super) {\n __extends(MatTabGroup, _super);\n function MatTabGroup(elementRef, _changeDetectorRef) {\n var _this = _super.call(this, elementRef) || this;\n _this._changeDetectorRef = _changeDetectorRef;\n /**\n * The tab index that should be selected after the content has been checked.\n */\n _this._indexToSelect = 0;\n /**\n * Snapshot of the height of the tab body wrapper before another tab is activated.\n */\n _this._tabBodyWrapperHeight = 0;\n /**\n * Subscription to tabs being added/removed.\n */\n _this._tabsSubscription = Subscription.EMPTY;\n /**\n * Subscription to changes in the tab labels.\n */\n _this._tabLabelSubscription = Subscription.EMPTY;\n _this._dynamicHeight = false;\n _this._selectedIndex = null;\n /**\n * Position of the tab header.\n */\n _this.headerPosition = 'above';\n /**\n * Output to enable support for two-way binding on `[(selectedIndex)]`\n */\n _this.selectedIndexChange = new EventEmitter();\n /**\n * Event emitted when focus has changed within a tab group.\n */\n _this.focusChange = new EventEmitter();\n /**\n * Event emitted when the body animation has completed\n */\n _this.animationDone = new EventEmitter();\n /**\n * Event emitted when the tab selection has changed.\n */\n _this.selectedTabChange = new EventEmitter(true);\n _this._groupId = nextId++;\n return _this;\n }\n Object.defineProperty(MatTabGroup.prototype, \"dynamicHeight\", {\n get: /**\n * Whether the tab group should grow to the size of the active tab.\n * @return {?}\n */\n function () { return this._dynamicHeight; },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) { this._dynamicHeight = coerceBooleanProperty(value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatTabGroup.prototype, \"selectedIndex\", {\n get: /**\n * The index of the active tab.\n * @return {?}\n */\n function () { return this._selectedIndex; },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._indexToSelect = coerceNumberProperty(value, null);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatTabGroup.prototype, \"backgroundColor\", {\n get: /**\n * Background color of the tab group.\n * @return {?}\n */\n function () { return this._backgroundColor; },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n var /** @type {?} */ nativeElement = this._elementRef.nativeElement;\n nativeElement.classList.remove(\"mat-background-\" + this.backgroundColor);\n if (value) {\n nativeElement.classList.add(\"mat-background-\" + value);\n }\n this._backgroundColor = value;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * After the content is checked, this component knows what tabs have been defined\n * and what the selected index should be. This is where we can know exactly what position\n * each tab should be in according to the new selected index, and additionally we know how\n * a new selected tab should transition in (from the left or right).\n */\n /**\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 * @return {?}\n */\n MatTabGroup.prototype.ngAfterContentChecked = /**\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 * @return {?}\n */\n function () {\n var _this = this;\n // Clamp the next selected index to the boundsof 0 and the tabs length.\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 var /** @type {?} */ indexToSelect = this._indexToSelect =\n Math.min(this._tabs.length - 1, Math.max(this._indexToSelect || 0, 0));\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 && this._selectedIndex != null) {\n var /** @type {?} */ tabChangeEvent = this._createChangeEvent(indexToSelect);\n this.selectedTabChange.emit(tabChangeEvent);\n // Emitting this value after change detection has run\n // since the checked content may contain this variable'\n Promise.resolve().then(function () { return _this.selectedIndexChange.emit(indexToSelect); });\n }\n // Setup the position for each tab and optionally setup an origin on the next selected tab.\n this._tabs.forEach(function (tab, index) {\n tab.position = index - indexToSelect;\n tab.isActive = 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._changeDetectorRef.markForCheck();\n }\n };\n /**\n * @return {?}\n */\n MatTabGroup.prototype.ngAfterContentInit = /**\n * @return {?}\n */\n function () {\n var _this = this;\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(function () {\n _this._subscribeToTabLabels();\n _this._changeDetectorRef.markForCheck();\n });\n };\n /**\n * @return {?}\n */\n MatTabGroup.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n this._tabsSubscription.unsubscribe();\n this._tabLabelSubscription.unsubscribe();\n };\n /** Re-aligns the ink bar to the selected tab element. */\n /**\n * Re-aligns the ink bar to the selected tab element.\n * @return {?}\n */\n MatTabGroup.prototype.realignInkBar = /**\n * Re-aligns the ink bar to the selected tab element.\n * @return {?}\n */\n function () {\n if (this._tabHeader) {\n this._tabHeader._alignInkBarToSelectedTab();\n }\n };\n /**\n * @param {?} index\n * @return {?}\n */\n MatTabGroup.prototype._focusChanged = /**\n * @param {?} index\n * @return {?}\n */\n function (index) {\n this.focusChange.emit(this._createChangeEvent(index));\n };\n /**\n * @param {?} index\n * @return {?}\n */\n MatTabGroup.prototype._createChangeEvent = /**\n * @param {?} index\n * @return {?}\n */\n function (index) {\n var /** @type {?} */ 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 * @return {?}\n */\n MatTabGroup.prototype._subscribeToTabLabels = /**\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 * @return {?}\n */\n function () {\n var _this = this;\n if (this._tabLabelSubscription) {\n this._tabLabelSubscription.unsubscribe();\n }\n this._tabLabelSubscription = merge.apply(void 0, this._tabs.map(function (tab) { return tab._disableChange; }).concat(this._tabs.map(function (tab) { return tab._labelChange; }))).subscribe(function () {\n _this._changeDetectorRef.markForCheck();\n });\n };\n /** Returns a unique id for each tab label element */\n /**\n * Returns a unique id for each tab label element\n * @param {?} i\n * @return {?}\n */\n MatTabGroup.prototype._getTabLabelId = /**\n * Returns a unique id for each tab label element\n * @param {?} i\n * @return {?}\n */\n function (i) {\n return \"mat-tab-label-\" + this._groupId + \"-\" + i;\n };\n /** Returns a unique id for each tab content element */\n /**\n * Returns a unique id for each tab content element\n * @param {?} i\n * @return {?}\n */\n MatTabGroup.prototype._getTabContentId = /**\n * Returns a unique id for each tab content element\n * @param {?} i\n * @return {?}\n */\n function (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 /**\n * Sets the height of the body wrapper to the height of the activating tab if dynamic\n * height property is true.\n * @param {?} tabHeight\n * @return {?}\n */\n MatTabGroup.prototype._setTabBodyWrapperHeight = /**\n * Sets the height of the body wrapper to the height of the activating tab if dynamic\n * height property is true.\n * @param {?} tabHeight\n * @return {?}\n */\n function (tabHeight) {\n if (!this._dynamicHeight || !this._tabBodyWrapperHeight) {\n return;\n }\n var /** @type {?} */ 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 /**\n * Removes the height of the tab body wrapper.\n * @return {?}\n */\n MatTabGroup.prototype._removeTabBodyWrapperHeight = /**\n * Removes the height of the tab body wrapper.\n * @return {?}\n */\n function () {\n this._tabBodyWrapperHeight = this._tabBodyWrapper.nativeElement.clientHeight;\n this._tabBodyWrapper.nativeElement.style.height = '';\n this.animationDone.emit();\n };\n /** Handle click events, setting new selected index if appropriate. */\n /**\n * Handle click events, setting new selected index if appropriate.\n * @param {?} tab\n * @param {?} tabHeader\n * @param {?} idx\n * @return {?}\n */\n MatTabGroup.prototype._handleClick = /**\n * Handle click events, setting new selected index if appropriate.\n * @param {?} tab\n * @param {?} tabHeader\n * @param {?} idx\n * @return {?}\n */\n function (tab, tabHeader, idx) {\n if (!tab.disabled) {\n this.selectedIndex = tabHeader.focusIndex = idx;\n }\n };\n /** Retrieves the tabindex for the tab. */\n /**\n * Retrieves the tabindex for the tab.\n * @param {?} tab\n * @param {?} idx\n * @return {?}\n */\n MatTabGroup.prototype._getTabIndex = /**\n * Retrieves the tabindex for the tab.\n * @param {?} tab\n * @param {?} idx\n * @return {?}\n */\n function (tab, idx) {\n if (tab.disabled) {\n return null;\n }\n return this.selectedIndex === idx ? 0 : -1;\n };\n MatTabGroup.decorators = [\n { type: Component, args: [{selector: 'mat-tab-group',\n exportAs: 'matTabGroup',\n template: \"<mat-tab-header #tabHeader [selectedIndex]=\\\"selectedIndex\\\" [disableRipple]=\\\"disableRipple\\\" (indexFocused)=\\\"_focusChanged($event)\\\" (selectFocusedIndex)=\\\"selectedIndex = $event\\\"><div class=\\\"mat-tab-label\\\" role=\\\"tab\\\" matTabLabelWrapper mat-ripple *ngFor=\\\"let tab of _tabs; let i = index\\\" [id]=\\\"_getTabLabelId(i)\\\" [attr.tabIndex]=\\\"_getTabIndex(tab, i)\\\" [attr.aria-controls]=\\\"_getTabContentId(i)\\\" [attr.aria-selected]=\\\"selectedIndex == i\\\" [class.mat-tab-label-active]=\\\"selectedIndex == i\\\" [disabled]=\\\"tab.disabled\\\" [matRippleDisabled]=\\\"tab.disabled || disableRipple\\\" (click)=\\\"_handleClick(tab, tabHeader, i)\\\"><div class=\\\"mat-tab-label-content\\\"><ng-template [ngIf]=\\\"tab.templateLabel\\\"><ng-template [cdkPortalOutlet]=\\\"tab.templateLabel\\\"></ng-template></ng-template><ng-template [ngIf]=\\\"!tab.templateLabel\\\">{{tab.textLabel}}</ng-template></div></div></mat-tab-header><div class=\\\"mat-tab-body-wrapper\\\" #tabBodyWrapper><mat-tab-body role=\\\"tabpanel\\\" *ngFor=\\\"let tab of _tabs; let i = index\\\" [id]=\\\"_getTabContentId(i)\\\" [attr.aria-labelledby]=\\\"_getTabLabelId(i)\\\" [class.mat-tab-body-active]=\\\"selectedIndex == i\\\" [content]=\\\"tab.content\\\" [position]=\\\"tab.position\\\" [origin]=\\\"tab.origin\\\" (_onCentered)=\\\"_removeTabBodyWrapperHeight()\\\" (_onCentering)=\\\"_setTabBodyWrapperHeight($event)\\\"></mat-tab-body></div>\",\n styles: [\".mat-tab-group{display:flex;flex-direction:column}.mat-tab-group.mat-tab-group-inverted-header{flex-direction:column-reverse}.mat-tab-label{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;position:relative}.mat-tab-label:focus{outline:0}.mat-tab-label:focus:not(.mat-tab-disabled){opacity:1}.mat-tab-label.mat-tab-disabled{cursor:default}.mat-tab-label.mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}@media (max-width:599px){.mat-tab-label{padding:0 12px}}@media (max-width:959px){.mat-tab-label{padding:0 12px}}.mat-tab-group[mat-stretch-tabs] .mat-tab-label{flex-basis:0;flex-grow:1}.mat-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height .5s cubic-bezier(.35,0,.25,1)}.mat-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;flex-basis:100%}.mat-tab-body.mat-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-tab-group.mat-tab-group-dynamic-height .mat-tab-body.mat-tab-body-active{overflow-y:hidden}\"],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n inputs: ['color', 'disableRipple'],\n host: {\n 'class': 'mat-tab-group',\n '[class.mat-tab-group-dynamic-height]': 'dynamicHeight',\n '[class.mat-tab-group-inverted-header]': 'headerPosition === \"below\"',\n },\n },] },\n ];\n /** @nocollapse */\n MatTabGroup.ctorParameters = function () { return [\n { type: ElementRef, },\n { type: ChangeDetectorRef, },\n ]; };\n MatTabGroup.propDecorators = {\n \"_tabs\": [{ type: ContentChildren, args: [MatTab,] },],\n \"_tabBodyWrapper\": [{ type: ViewChild, args: ['tabBodyWrapper',] },],\n \"_tabHeader\": [{ type: ViewChild, args: ['tabHeader',] },],\n \"dynamicHeight\": [{ type: Input },],\n \"selectedIndex\": [{ type: Input },],\n \"headerPosition\": [{ type: Input },],\n \"backgroundColor\": [{ type: Input },],\n \"selectedIndexChange\": [{ type: Output },],\n \"focusChange\": [{ type: Output },],\n \"animationDone\": [{ type: Output },],\n \"selectedTabChange\": [{ type: Output },],\n };\n return MatTabGroup;\n}(_MatTabGroupMixinBase));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * \\@docs-private\n */\nvar /**\n * \\@docs-private\n */\nMatTabNavBase = /** @class */ (function () {\n function MatTabNavBase(_elementRef) {\n this._elementRef = _elementRef;\n }\n return MatTabNavBase;\n}());\nvar /** @type {?} */ _MatTabNavMixinBase = mixinDisableRipple(mixinColor(MatTabNavBase, 'primary'));\n/**\n * Navigation component matching the styles of the tab group header.\n * Provides anchored navigation with animated ink bar.\n */\nvar MatTabNav = /** @class */ (function (_super) {\n __extends(MatTabNav, _super);\n function MatTabNav(elementRef, _dir, _ngZone, _changeDetectorRef, _viewportRuler) {\n var _this = _super.call(this, elementRef) || this;\n _this._dir = _dir;\n _this._ngZone = _ngZone;\n _this._changeDetectorRef = _changeDetectorRef;\n _this._viewportRuler = _viewportRuler;\n /**\n * Subject that emits when the component has been destroyed.\n */\n _this._onDestroy = new Subject();\n return _this;\n }\n Object.defineProperty(MatTabNav.prototype, \"backgroundColor\", {\n get: /**\n * Background color of the tab nav.\n * @return {?}\n */\n function () { return this._backgroundColor; },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n var /** @type {?} */ nativeElement = this._elementRef.nativeElement;\n nativeElement.classList.remove(\"mat-background-\" + this.backgroundColor);\n if (value) {\n nativeElement.classList.add(\"mat-background-\" + value);\n }\n this._backgroundColor = value;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Notifies the component that the active link has been changed.\n * @deletion-target 7.0.0 `element` parameter to be removed.\n */\n /**\n * Notifies the component that the active link has been changed.\n * \\@deletion-target 7.0.0 `element` parameter to be removed.\n * @param {?} element\n * @return {?}\n */\n MatTabNav.prototype.updateActiveLink = /**\n * Notifies the component that the active link has been changed.\n * \\@deletion-target 7.0.0 `element` parameter to be removed.\n * @param {?} element\n * @return {?}\n */\n function (element) {\n // Note: keeping the `element` for backwards-compat, but isn't being used for anything.\n // @deletion-target 7.0.0\n this._activeLinkChanged = !!element;\n this._changeDetectorRef.markForCheck();\n };\n /**\n * @return {?}\n */\n MatTabNav.prototype.ngAfterContentInit = /**\n * @return {?}\n */\n function () {\n var _this = this;\n this._ngZone.runOutsideAngular(function () {\n var /** @type {?} */ dirChange = _this._dir ? _this._dir.change : of(null);\n return merge(dirChange, _this._viewportRuler.change(10))\n .pipe(takeUntil(_this._onDestroy))\n .subscribe(function () { return _this._alignInkBar(); });\n });\n };\n /** Checks if the active link has been changed and, if so, will update the ink bar. */\n /**\n * Checks if the active link has been changed and, if so, will update the ink bar.\n * @return {?}\n */\n MatTabNav.prototype.ngAfterContentChecked = /**\n * Checks if the active link has been changed and, if so, will update the ink bar.\n * @return {?}\n */\n function () {\n if (this._activeLinkChanged) {\n var /** @type {?} */ activeTab = this._tabLinks.find(function (tab) { return tab.active; });\n this._activeLinkElement = activeTab ? activeTab._elementRef : null;\n this._alignInkBar();\n this._activeLinkChanged = false;\n }\n };\n /**\n * @return {?}\n */\n MatTabNav.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n this._onDestroy.next();\n this._onDestroy.complete();\n };\n /** Aligns the ink bar to the active link. */\n /**\n * Aligns the ink bar to the active link.\n * @return {?}\n */\n MatTabNav.prototype._alignInkBar = /**\n * Aligns the ink bar to the active link.\n * @return {?}\n */\n function () {\n if (this._activeLinkElement) {\n this._inkBar.show();\n this._inkBar.alignToElement(this._activeLinkElement.nativeElement);\n }\n else {\n this._inkBar.hide();\n }\n };\n MatTabNav.decorators = [\n { type: Component, args: [{selector: '[mat-tab-nav-bar]',\n exportAs: 'matTabNavBar, matTabNav',\n inputs: ['color', 'disableRipple'],\n template: \"<div class=\\\"mat-tab-links\\\" (cdkObserveContent)=\\\"_alignInkBar()\\\"><ng-content></ng-content><mat-ink-bar></mat-ink-bar></div>\",\n styles: [\".mat-tab-nav-bar{overflow:hidden;position:relative;flex-shrink:0}.mat-tab-links{position:relative;display:flex}.mat-tab-link{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;vertical-align:top;text-decoration:none;position:relative;overflow:hidden}.mat-tab-link:focus{outline:0}.mat-tab-link:focus:not(.mat-tab-disabled){opacity:1}.mat-tab-link.mat-tab-disabled{cursor:default}.mat-tab-link.mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}[mat-stretch-tabs] .mat-tab-link{flex-basis:0;flex-grow:1}@media (max-width:599px){.mat-tab-link{min-width:72px}}.mat-ink-bar{position:absolute;bottom:0;height:2px;transition:.5s cubic-bezier(.35,0,.25,1)}.mat-tab-group-inverted-header .mat-ink-bar{bottom:auto;top:0}@media screen and (-ms-high-contrast:active){.mat-ink-bar{outline:solid 2px;height:0}}\"],\n host: { 'class': 'mat-tab-nav-bar' },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n },] },\n ];\n /** @nocollapse */\n MatTabNav.ctorParameters = function () { return [\n { type: ElementRef, },\n { type: Directionality, decorators: [{ type: Optional },] },\n { type: NgZone, },\n { type: ChangeDetectorRef, },\n { type: ViewportRuler, },\n ]; };\n MatTabNav.propDecorators = {\n \"_inkBar\": [{ type: ViewChild, args: [MatInkBar,] },],\n \"_tabLinks\": [{ type: ContentChildren, args: [forwardRef(function () { return MatTabLink; }), { descendants: true },] },],\n \"backgroundColor\": [{ type: Input },],\n };\n return MatTabNav;\n}(_MatTabNavMixinBase));\nvar MatTabLinkBase = /** @class */ (function () {\n function MatTabLinkBase() {\n }\n return MatTabLinkBase;\n}());\nvar /** @type {?} */ _MatTabLinkMixinBase = mixinTabIndex(mixinDisableRipple(mixinDisabled(MatTabLinkBase)));\n/**\n * Link inside of a `mat-tab-nav-bar`.\n */\nvar MatTabLink = /** @class */ (function (_super) {\n __extends(MatTabLink, _super);\n function MatTabLink(_tabNavBar, _elementRef, ngZone, platform, globalOptions, tabIndex) {\n var _this = _super.call(this) || this;\n _this._tabNavBar = _tabNavBar;\n _this._elementRef = _elementRef;\n /**\n * Whether the tab link is active or not.\n */\n _this._isActive = false;\n /**\n * Ripple configuration for ripples that are launched on pointer down.\n * \\@docs-private\n */\n _this.rippleConfig = {};\n _this._tabLinkRipple = new RippleRenderer(_this, ngZone, _elementRef, platform);\n _this._tabLinkRipple.setupTriggerEvents(_elementRef.nativeElement);\n _this.tabIndex = parseInt(tabIndex) || 0;\n if (globalOptions) {\n _this.rippleConfig = {\n terminateOnPointerUp: globalOptions.terminateOnPointerUp,\n speedFactor: globalOptions.baseSpeedFactor,\n animation: globalOptions.animation,\n };\n }\n return _this;\n }\n Object.defineProperty(MatTabLink.prototype, \"active\", {\n get: /**\n * Whether the link is active.\n * @return {?}\n */\n function () { return this._isActive; },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (value !== this._isActive) {\n this._isActive = value;\n this._tabNavBar.updateActiveLink(this._elementRef);\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatTabLink.prototype, \"rippleDisabled\", {\n /**\n * Whether ripples are disabled on interaction\n * @docs-private\n */\n get: /**\n * Whether ripples are disabled on interaction\n * \\@docs-private\n * @return {?}\n */\n function () {\n return this.disabled || this.disableRipple || this._tabNavBar.disableRipple;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n MatTabLink.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n this._tabLinkRipple._removeTriggerEvents();\n };\n /**\n * Handles the click event, preventing default navigation if the tab link is disabled.\n */\n /**\n * Handles the click event, preventing default navigation if the tab link is disabled.\n * @param {?} event\n * @return {?}\n */\n MatTabLink.prototype._handleClick = /**\n * Handles the click event, preventing default navigation if the tab link is disabled.\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (this.disabled) {\n event.preventDefault();\n }\n };\n MatTabLink.decorators = [\n { type: Directive, args: [{\n selector: '[mat-tab-link], [matTabLink]',\n exportAs: 'matTabLink',\n inputs: ['disabled', 'disableRipple', 'tabIndex'],\n host: {\n 'class': 'mat-tab-link',\n '[attr.aria-disabled]': 'disabled.toString()',\n '[attr.tabIndex]': 'tabIndex',\n '[class.mat-tab-disabled]': 'disabled',\n '[class.mat-tab-label-active]': 'active',\n '(click)': '_handleClick($event)'\n }\n },] },\n ];\n /** @nocollapse */\n MatTabLink.ctorParameters = function () { return [\n { type: MatTabNav, },\n { type: ElementRef, },\n { type: NgZone, },\n { type: Platform, },\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MAT_RIPPLE_GLOBAL_OPTIONS,] },] },\n { type: undefined, decorators: [{ type: Attribute, args: ['tabindex',] },] },\n ]; };\n MatTabLink.propDecorators = {\n \"active\": [{ type: Input },],\n };\n return MatTabLink;\n}(_MatTabLinkMixinBase));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\nvar MatTabsModule = /** @class */ (function () {\n function MatTabsModule() {\n }\n MatTabsModule.decorators = [\n { type: NgModule, args: [{\n imports: [\n CommonModule,\n MatCommonModule,\n PortalModule,\n MatRippleModule,\n ObserversModule,\n ],\n // Don't export all components because some are only to be used internally.\n exports: [\n MatCommonModule,\n MatTabGroup,\n MatTabLabel,\n MatTab,\n MatTabNav,\n MatTabLink,\n MatTabContent,\n ],\n declarations: [\n MatTabGroup,\n MatTabLabel,\n MatTab,\n MatInkBar,\n MatTabLabelWrapper,\n MatTabNav,\n MatTabLink,\n MatTabBody,\n MatTabBodyPortal,\n MatTabHeader,\n MatTabContent,\n ],\n },] },\n ];\n return MatTabsModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n\nexport { MatInkBar, _MAT_INK_BAR_POSITIONER, MatTabBody, MatTabBodyPortal, MatTabHeader, MatTabLabelWrapper, MatTab, MatTabLabel, MatTabNav, MatTabLink, MatTabContent, MatTabsModule, MatTabChangeEvent, MatTabGroupBase, _MatTabGroupMixinBase, MatTabGroup, matTabsAnimations, _MAT_INK_BAR_POSITIONER_FACTORY as ɵa24, MatTabBase as ɵf24, _MatTabMixinBase as ɵg24, MatTabHeaderBase as ɵb24, _MatTabHeaderMixinBase as ɵc24, MatTabLabelWrapperBase as ɵd24, _MatTabLabelWrapperMixinBase as ɵe24, MatTabLinkBase as ɵj24, MatTabNavBase as ɵh24, _MatTabLinkMixinBase as ɵk24, _MatTabNavMixinBase as ɵi24 };\n//# sourceMappingURL=tabs.es5.js.map\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 */\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Directive, ElementRef, EventEmitter, Injectable, Input, NgModule, NgZone, Output, defineInjectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * Factory that creates a new MutationObserver and allows us to stub it out in unit tests.\n * \\@docs-private\n */\nvar MutationObserverFactory = /** @class */ (function () {\n function MutationObserverFactory() {\n }\n /**\n * @param {?} callback\n * @return {?}\n */\n MutationObserverFactory.prototype.create = /**\n * @param {?} callback\n * @return {?}\n */\n function (callback) {\n return typeof MutationObserver === 'undefined' ? null : new MutationObserver(callback);\n };\n MutationObserverFactory.decorators = [\n { type: Injectable, args: [{ providedIn: 'root' },] },\n ];\n /** @nocollapse */ MutationObserverFactory.ngInjectableDef = defineInjectable({ factory: function MutationObserverFactory_Factory() { return new MutationObserverFactory(); }, token: MutationObserverFactory, providedIn: \"root\" });\n return MutationObserverFactory;\n}());\n/**\n * Directive that triggers a callback whenever the content of\n * its associated element has changed.\n */\nvar CdkObserveContent = /** @class */ (function () {\n function CdkObserveContent(_mutationObserverFactory, _elementRef, _ngZone) {\n this._mutationObserverFactory = _mutationObserverFactory;\n this._elementRef = _elementRef;\n this._ngZone = _ngZone;\n this._disabled = false;\n /**\n * Event emitted for each change in the element's content.\n */\n this.event = new EventEmitter();\n /**\n * Used for debouncing the emitted values to the observeContent event.\n */\n this._debouncer = new Subject();\n }\n Object.defineProperty(CdkObserveContent.prototype, \"disabled\", {\n get: /**\n * Whether observing content is disabled. This option can be used\n * to disconnect the underlying MutationObserver until it is needed.\n * @return {?}\n */\n function () { return this._disabled; },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._disabled = coerceBooleanProperty(value);\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n CdkObserveContent.prototype.ngAfterContentInit = /**\n * @return {?}\n */\n function () {\n var _this = this;\n if (this.debounce > 0) {\n this._ngZone.runOutsideAngular(function () {\n _this._debouncer.pipe(debounceTime(_this.debounce))\n .subscribe(function (mutations) { return _this.event.emit(mutations); });\n });\n }\n else {\n this._debouncer.subscribe(function (mutations) { return _this.event.emit(mutations); });\n }\n this._observer = this._ngZone.runOutsideAngular(function () {\n return _this._mutationObserverFactory.create(function (mutations) {\n _this._debouncer.next(mutations);\n });\n });\n if (!this.disabled) {\n this._enable();\n }\n };\n /**\n * @param {?} changes\n * @return {?}\n */\n CdkObserveContent.prototype.ngOnChanges = /**\n * @param {?} changes\n * @return {?}\n */\n function (changes) {\n if (changes['disabled']) {\n changes['disabled'].currentValue ? this._disable() : this._enable();\n }\n };\n /**\n * @return {?}\n */\n CdkObserveContent.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n this._disable();\n this._debouncer.complete();\n };\n /**\n * @return {?}\n */\n CdkObserveContent.prototype._disable = /**\n * @return {?}\n */\n function () {\n if (this._observer) {\n this._observer.disconnect();\n }\n };\n /**\n * @return {?}\n */\n CdkObserveContent.prototype._enable = /**\n * @return {?}\n */\n function () {\n if (this._observer) {\n this._observer.observe(this._elementRef.nativeElement, {\n characterData: true,\n childList: true,\n subtree: true\n });\n }\n };\n CdkObserveContent.decorators = [\n { type: Directive, args: [{\n selector: '[cdkObserveContent]',\n exportAs: 'cdkObserveContent',\n },] },\n ];\n /** @nocollapse */\n CdkObserveContent.ctorParameters = function () { return [\n { type: MutationObserverFactory, },\n { type: ElementRef, },\n { type: NgZone, },\n ]; };\n CdkObserveContent.propDecorators = {\n \"event\": [{ type: Output, args: ['cdkObserveContent',] },],\n \"disabled\": [{ type: Input, args: ['cdkObserveContentDisabled',] },],\n \"debounce\": [{ type: Input },],\n };\n return CdkObserveContent;\n}());\nvar ObserversModule = /** @class */ (function () {\n function ObserversModule() {\n }\n ObserversModule.decorators = [\n { type: NgModule, args: [{\n exports: [CdkObserveContent],\n declarations: [CdkObserveContent],\n providers: [MutationObserverFactory]\n },] },\n ];\n return ObserversModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n\nexport { MutationObserverFactory, CdkObserveContent, ObserversModule };\n//# sourceMappingURL=observers.es5.js.map\n","/**\n * @fileoverview This file was generated by the Angular template compiler. Do not edit.\n *\n * @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes}\n * tslint:disable\n */ \nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/tabs\";\nimport * as i2 from \"@angular/common\";\nimport * as i3 from \"@angular/cdk/observers\";\nimport * as i4 from \"@angular/cdk/bidi\";\nimport * as i5 from \"@angular/material/core\";\nimport * as i6 from \"@angular/cdk/portal\";\nimport * as i7 from \"@angular/cdk/platform\";\nimport * as i8 from \"@angular/cdk/scrolling\";\nvar MatTabsModuleNgFactory = i0.ɵcmf(i1.MatTabsModule, [], function (_l) { return i0.ɵmod([i0.ɵmpd(512, i0.ComponentFactoryResolver, i0.ɵCodegenComponentFactoryResolver, [[8, []], [3, i0.ComponentFactoryResolver], i0.NgModuleRef]), i0.ɵmpd(4608, i2.NgLocalization, i2.NgLocaleLocalization, [i0.LOCALE_ID, [2, i2.ɵangular_packages_common_common_a]]), i0.ɵmpd(4608, i3.MutationObserverFactory, i3.MutationObserverFactory, []), i0.ɵmpd(1073742336, i2.CommonModule, i2.CommonModule, []), i0.ɵmpd(1073742336, i4.BidiModule, i4.BidiModule, []), i0.ɵmpd(1073742336, i5.MatCommonModule, i5.MatCommonModule, [[2, i5.MATERIAL_SANITY_CHECKS]]), i0.ɵmpd(1073742336, i6.PortalModule, i6.PortalModule, []), i0.ɵmpd(1073742336, i7.PlatformModule, i7.PlatformModule, []), i0.ɵmpd(1073742336, i5.MatRippleModule, i5.MatRippleModule, []), i0.ɵmpd(1073742336, i3.ObserversModule, i3.ObserversModule, []), i0.ɵmpd(1073742336, i1.MatTabsModule, i1.MatTabsModule, [])]); });\nexport { MatTabsModuleNgFactory as MatTabsModuleNgFactory };\nvar styles_MatTabGroup = [\".mat-tab-group{display:flex;flex-direction:column}.mat-tab-group.mat-tab-group-inverted-header{flex-direction:column-reverse}.mat-tab-label{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;position:relative}.mat-tab-label:focus{outline:0}.mat-tab-label:focus:not(.mat-tab-disabled){opacity:1}.mat-tab-label.mat-tab-disabled{cursor:default}.mat-tab-label.mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}@media (max-width:599px){.mat-tab-label{padding:0 12px}}@media (max-width:959px){.mat-tab-label{padding:0 12px}}.mat-tab-group[mat-stretch-tabs] .mat-tab-label{flex-basis:0;flex-grow:1}.mat-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height .5s cubic-bezier(.35,0,.25,1)}.mat-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;flex-basis:100%}.mat-tab-body.mat-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-tab-group.mat-tab-group-dynamic-height .mat-tab-body.mat-tab-body-active{overflow-y:hidden}\"];\nvar RenderType_MatTabGroup = i0.ɵcrt({ encapsulation: 2, styles: styles_MatTabGroup, data: {} });\nexport { RenderType_MatTabGroup as RenderType_MatTabGroup };\nfunction View_MatTabGroup_3(_l) { return i0.ɵvid(0, [(_l()(), i0.ɵand(0, null, null, 0))], null, null); }\nfunction View_MatTabGroup_2(_l) { return i0.ɵvid(0, [(_l()(), i0.ɵand(16777216, null, null, 1, null, View_MatTabGroup_3)), i0.ɵdid(1, 212992, null, 0, i6.CdkPortalOutlet, [i0.ComponentFactoryResolver, i0.ViewContainerRef], { portal: [0, \"portal\"] }, null), (_l()(), i0.ɵand(0, null, null, 0))], function (_ck, _v) { var currVal_0 = _v.parent.context.$implicit.templateLabel; _ck(_v, 1, 0, currVal_0); }, null); }\nfunction View_MatTabGroup_4(_l) { return i0.ɵvid(0, [(_l()(), i0.ɵted(0, null, [\"\", \"\"]))], null, function (_ck, _v) { var currVal_0 = _v.parent.context.$implicit.textLabel; _ck(_v, 0, 0, currVal_0); }); }\nfunction View_MatTabGroup_1(_l) { return i0.ɵvid(0, [(_l()(), i0.ɵeld(0, 0, null, null, 7, \"div\", [[\"class\", \"mat-tab-label mat-ripple\"], [\"mat-ripple\", \"\"], [\"matTabLabelWrapper\", \"\"], [\"role\", \"tab\"]], [[8, \"id\", 0], [1, \"tabIndex\", 0], [1, \"aria-controls\", 0], [1, \"aria-selected\", 0], [2, \"mat-tab-label-active\", null], [2, \"mat-ripple-unbounded\", null], [2, \"mat-tab-disabled\", null]], [[null, \"click\"]], function (_v, en, $event) { var ad = true; var _co = _v.component; if ((\"click\" === en)) {\n var pd_0 = (_co._handleClick(_v.context.$implicit, i0.ɵnov(_v.parent, 3), _v.context.index) !== false);\n ad = (pd_0 && ad);\n } return ad; }, null, null)), i0.ɵdid(1, 212992, null, 0, i5.MatRipple, [i0.ElementRef, i0.NgZone, i7.Platform, [2, i5.MAT_RIPPLE_GLOBAL_OPTIONS]], { disabled: [0, \"disabled\"] }, null), i0.ɵdid(2, 16384, [[3, 4]], 0, i1.MatTabLabelWrapper, [i0.ElementRef], { disabled: [0, \"disabled\"] }, null), (_l()(), i0.ɵeld(3, 0, null, null, 4, \"div\", [[\"class\", \"mat-tab-label-content\"]], null, null, null, null, null)), (_l()(), i0.ɵand(16777216, null, null, 1, null, View_MatTabGroup_2)), i0.ɵdid(5, 16384, null, 0, i2.NgIf, [i0.ViewContainerRef, i0.TemplateRef], { ngIf: [0, \"ngIf\"] }, null), (_l()(), i0.ɵand(16777216, null, null, 1, null, View_MatTabGroup_4)), i0.ɵdid(7, 16384, null, 0, i2.NgIf, [i0.ViewContainerRef, i0.TemplateRef], { ngIf: [0, \"ngIf\"] }, null)], function (_ck, _v) { var _co = _v.component; var currVal_7 = (_v.context.$implicit.disabled || _co.disableRipple); _ck(_v, 1, 0, currVal_7); var currVal_8 = _v.context.$implicit.disabled; _ck(_v, 2, 0, currVal_8); var currVal_9 = _v.context.$implicit.templateLabel; _ck(_v, 5, 0, currVal_9); var currVal_10 = !_v.context.$implicit.templateLabel; _ck(_v, 7, 0, currVal_10); }, function (_ck, _v) { var _co = _v.component; var currVal_0 = _co._getTabLabelId(_v.context.index); var currVal_1 = _co._getTabIndex(_v.context.$implicit, _v.context.index); var currVal_2 = _co._getTabContentId(_v.context.index); var currVal_3 = (_co.selectedIndex == _v.context.index); var currVal_4 = (_co.selectedIndex == _v.context.index); var currVal_5 = i0.ɵnov(_v, 1).unbounded; var currVal_6 = i0.ɵnov(_v, 2).disabled; _ck(_v, 0, 0, currVal_0, currVal_1, currVal_2, currVal_3, currVal_4, currVal_5, currVal_6); }); }\nfunction View_MatTabGroup_5(_l) { return i0.ɵvid(0, [(_l()(), i0.ɵeld(0, 0, null, null, 1, \"mat-tab-body\", [[\"class\", \"mat-tab-body\"], [\"role\", \"tabpanel\"]], [[8, \"id\", 0], [1, \"aria-labelledby\", 0], [2, \"mat-tab-body-active\", null]], [[null, \"_onCentered\"], [null, \"_onCentering\"]], function (_v, en, $event) { var ad = true; var _co = _v.component; if ((\"_onCentered\" === en)) {\n var pd_0 = (_co._removeTabBodyWrapperHeight() !== false);\n ad = (pd_0 && ad);\n } if ((\"_onCentering\" === en)) {\n var pd_1 = (_co._setTabBodyWrapperHeight($event) !== false);\n ad = (pd_1 && ad);\n } return ad; }, View_MatTabBody_0, RenderType_MatTabBody)), i0.ɵdid(1, 114688, null, 0, i1.MatTabBody, [i0.ElementRef, [2, i4.Directionality]], { _content: [0, \"_content\"], position: [1, \"position\"], origin: [2, \"origin\"] }, { _onCentering: \"_onCentering\", _onCentered: \"_onCentered\" })], function (_ck, _v) { var currVal_3 = _v.context.$implicit.content; var currVal_4 = _v.context.$implicit.position; var currVal_5 = _v.context.$implicit.origin; _ck(_v, 1, 0, currVal_3, currVal_4, currVal_5); }, function (_ck, _v) { var _co = _v.component; var currVal_0 = _co._getTabContentId(_v.context.index); var currVal_1 = _co._getTabLabelId(_v.context.index); var currVal_2 = (_co.selectedIndex == _v.context.index); _ck(_v, 0, 0, currVal_0, currVal_1, currVal_2); }); }\nexport function View_MatTabGroup_0(_l) { return i0.ɵvid(2, [i0.ɵqud(402653184, 1, { _tabBodyWrapper: 0 }), i0.ɵqud(402653184, 2, { _tabHeader: 0 }), (_l()(), i0.ɵeld(2, 0, null, null, 4, \"mat-tab-header\", [[\"class\", \"mat-tab-header\"]], [[2, \"mat-tab-header-pagination-controls-enabled\", null], [2, \"mat-tab-header-rtl\", null]], [[null, \"indexFocused\"], [null, \"selectFocusedIndex\"]], function (_v, en, $event) { var ad = true; var _co = _v.component; if ((\"indexFocused\" === en)) {\n var pd_0 = (_co._focusChanged($event) !== false);\n ad = (pd_0 && ad);\n } if ((\"selectFocusedIndex\" === en)) {\n var pd_1 = ((_co.selectedIndex = $event) !== false);\n ad = (pd_1 && ad);\n } return ad; }, View_MatTabHeader_0, RenderType_MatTabHeader)), i0.ɵdid(3, 3325952, [[2, 4], [\"tabHeader\", 4]], 1, i1.MatTabHeader, [i0.ElementRef, i0.ChangeDetectorRef, i8.ViewportRuler, [2, i4.Directionality]], { disableRipple: [0, \"disableRipple\"], selectedIndex: [1, \"selectedIndex\"] }, { selectFocusedIndex: \"selectFocusedIndex\", indexFocused: \"indexFocused\" }), i0.ɵqud(603979776, 3, { _labelWrappers: 1 }), (_l()(), i0.ɵand(16777216, null, 0, 1, null, View_MatTabGroup_1)), i0.ɵdid(6, 802816, null, 0, i2.NgForOf, [i0.ViewContainerRef, i0.TemplateRef, i0.IterableDiffers], { ngForOf: [0, \"ngForOf\"] }, null), (_l()(), i0.ɵeld(7, 0, [[1, 0], [\"tabBodyWrapper\", 1]], null, 2, \"div\", [[\"class\", \"mat-tab-body-wrapper\"]], null, null, null, null, null)), (_l()(), i0.ɵand(16777216, null, null, 1, null, View_MatTabGroup_5)), i0.ɵdid(9, 802816, null, 0, i2.NgForOf, [i0.ViewContainerRef, i0.TemplateRef, i0.IterableDiffers], { ngForOf: [0, \"ngForOf\"] }, null)], function (_ck, _v) { var _co = _v.component; var currVal_2 = _co.disableRipple; var currVal_3 = _co.selectedIndex; _ck(_v, 3, 0, currVal_2, currVal_3); var currVal_4 = _co._tabs; _ck(_v, 6, 0, currVal_4); var currVal_5 = _co._tabs; _ck(_v, 9, 0, currVal_5); }, function (_ck, _v) { var currVal_0 = i0.ɵnov(_v, 3)._showPaginationControls; var currVal_1 = (i0.ɵnov(_v, 3)._getLayoutDirection() == \"rtl\"); _ck(_v, 2, 0, currVal_0, currVal_1); }); }\nexport function View_MatTabGroup_Host_0(_l) { return i0.ɵvid(0, [(_l()(), i0.ɵeld(0, 0, null, null, 2, \"mat-tab-group\", [[\"class\", \"mat-tab-group\"]], [[2, \"mat-tab-group-dynamic-height\", null], [2, \"mat-tab-group-inverted-header\", null]], null, null, View_MatTabGroup_0, RenderType_MatTabGroup)), i0.ɵdid(1, 3325952, null, 1, i1.MatTabGroup, [i0.ElementRef, i0.ChangeDetectorRef], null, null), i0.ɵqud(603979776, 1, { _tabs: 1 })], null, function (_ck, _v) { var currVal_0 = i0.ɵnov(_v, 1).dynamicHeight; var currVal_1 = (i0.ɵnov(_v, 1).headerPosition === \"below\"); _ck(_v, 0, 0, currVal_0, currVal_1); }); }\nvar MatTabGroupNgFactory = i0.ɵccf(\"mat-tab-group\", i1.MatTabGroup, View_MatTabGroup_Host_0, { color: \"color\", disableRipple: \"disableRipple\", dynamicHeight: \"dynamicHeight\", selectedIndex: \"selectedIndex\", headerPosition: \"headerPosition\", backgroundColor: \"backgroundColor\" }, { selectedIndexChange: \"selectedIndexChange\", focusChange: \"focusChange\", animationDone: \"animationDone\", selectedTabChange: \"selectedTabChange\" }, []);\nexport { MatTabGroupNgFactory as MatTabGroupNgFactory };\nvar styles_MatTabBody = [\".mat-tab-body-content{height:100%;overflow:auto}.mat-tab-group-dynamic-height .mat-tab-body-content{overflow:hidden}\"];\nvar RenderType_MatTabBody = i0.ɵcrt({ encapsulation: 2, styles: styles_MatTabBody, data: { \"animation\": [{ type: 7, name: \"translateTab\", definitions: [{ type: 0, name: \"center, void, left-origin-center, right-origin-center\", styles: { type: 6, styles: { transform: \"none\" }, offset: null }, options: undefined }, { type: 0, name: \"left\", styles: { type: 6, styles: { transform: \"translate3d(-100%, 0, 0)\" }, offset: null }, options: undefined }, { type: 0, name: \"right\", styles: { type: 6, styles: { transform: \"translate3d(100%, 0, 0)\" }, offset: null }, options: undefined }, { type: 1, expr: \"* => left, * => right, left => center, right => center\", animation: { type: 4, styles: null, timings: \"500ms cubic-bezier(0.35, 0, 0.25, 1)\" }, options: null }, { type: 1, expr: \"void => left-origin-center\", animation: [{ type: 6, styles: { transform: \"translate3d(-100%, 0, 0)\" }, offset: null }, { type: 4, styles: null, timings: \"500ms cubic-bezier(0.35, 0, 0.25, 1)\" }], options: null }, { type: 1, expr: \"void => right-origin-center\", animation: [{ type: 6, styles: { transform: \"translate3d(100%, 0, 0)\" }, offset: null }, { type: 4, styles: null, timings: \"500ms cubic-bezier(0.35, 0, 0.25, 1)\" }], options: null }], options: {} }] } });\nexport { RenderType_MatTabBody as RenderType_MatTabBody };\nfunction View_MatTabBody_1(_l) { return i0.ɵvid(0, [(_l()(), i0.ɵand(0, null, null, 0))], null, null); }\nexport function View_MatTabBody_0(_l) { return i0.ɵvid(2, [i0.ɵqud(402653184, 1, { _portalHost: 0 }), (_l()(), i0.ɵeld(1, 0, [[\"content\", 1]], null, 2, \"div\", [[\"class\", \"mat-tab-body-content\"]], [[24, \"@translateTab\", 0]], [[null, \"@translateTab.start\"], [null, \"@translateTab.done\"]], function (_v, en, $event) { var ad = true; var _co = _v.component; if ((\"@translateTab.start\" === en)) {\n var pd_0 = (_co._onTranslateTabStarted($event) !== false);\n ad = (pd_0 && ad);\n } if ((\"@translateTab.done\" === en)) {\n var pd_1 = (_co._onTranslateTabComplete($event) !== false);\n ad = (pd_1 && ad);\n } return ad; }, null, null)), (_l()(), i0.ɵand(16777216, null, null, 1, null, View_MatTabBody_1)), i0.ɵdid(3, 212992, null, 0, i1.MatTabBodyPortal, [i0.ComponentFactoryResolver, i0.ViewContainerRef, i1.MatTabBody], null, null)], function (_ck, _v) { _ck(_v, 3, 0); }, function (_ck, _v) { var _co = _v.component; var currVal_0 = _co._position; _ck(_v, 1, 0, currVal_0); }); }\nexport function View_MatTabBody_Host_0(_l) { return i0.ɵvid(0, [(_l()(), i0.ɵeld(0, 0, null, null, 1, \"mat-tab-body\", [[\"class\", \"mat-tab-body\"]], null, null, null, View_MatTabBody_0, RenderType_MatTabBody)), i0.ɵdid(1, 114688, null, 0, i1.MatTabBody, [i0.ElementRef, [2, i4.Directionality]], null, null)], function (_ck, _v) { _ck(_v, 1, 0); }, null); }\nvar MatTabBodyNgFactory = i0.ɵccf(\"mat-tab-body\", i1.MatTabBody, View_MatTabBody_Host_0, { _content: \"content\", position: \"position\", origin: \"origin\" }, { _onCentering: \"_onCentering\", _beforeCentering: \"_beforeCentering\", _afterLeavingCenter: \"_afterLeavingCenter\", _onCentered: \"_onCentered\" }, []);\nexport { MatTabBodyNgFactory as MatTabBodyNgFactory };\nvar styles_MatTabHeader = [\".mat-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mat-tab-label{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;position:relative}.mat-tab-label:focus{outline:0}.mat-tab-label:focus:not(.mat-tab-disabled){opacity:1}.mat-tab-label.mat-tab-disabled{cursor:default}.mat-tab-label.mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}@media (max-width:599px){.mat-tab-label{min-width:72px}}.mat-ink-bar{position:absolute;bottom:0;height:2px;transition:.5s cubic-bezier(.35,0,.25,1)}.mat-tab-group-inverted-header .mat-ink-bar{bottom:auto;top:0}@media screen and (-ms-high-contrast:active){.mat-ink-bar{outline:solid 2px;height:0}}.mat-tab-header-pagination{position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2}.mat-tab-header-pagination-controls-enabled .mat-tab-header-pagination{display:flex}.mat-tab-header-pagination-before,.mat-tab-header-rtl .mat-tab-header-pagination-after{padding-left:4px}.mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-rtl .mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-tab-header-pagination-after,.mat-tab-header-rtl .mat-tab-header-pagination-before{padding-right:4px}.mat-tab-header-pagination-after .mat-tab-header-pagination-chevron,.mat-tab-header-rtl .mat-tab-header-pagination-before .mat-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;content:'';height:8px;width:8px}.mat-tab-header-pagination-disabled{box-shadow:none;cursor:default}.mat-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-tab-list{flex-grow:1;position:relative;transition:transform .5s cubic-bezier(.35,0,.25,1)}.mat-tab-labels{display:flex}\"];\nvar RenderType_MatTabHeader = i0.ɵcrt({ encapsulation: 2, styles: styles_MatTabHeader, data: {} });\nexport { RenderType_MatTabHeader as RenderType_MatTabHeader };\nexport function View_MatTabHeader_0(_l) { return i0.ɵvid(2, [i0.ɵqud(402653184, 1, { _inkBar: 0 }), i0.ɵqud(402653184, 2, { _tabListContainer: 0 }), i0.ɵqud(402653184, 3, { _tabList: 0 }), (_l()(), i0.ɵeld(3, 0, null, null, 2, \"div\", [[\"aria-hidden\", \"true\"], [\"class\", \"mat-tab-header-pagination mat-tab-header-pagination-before mat-elevation-z4 mat-ripple\"], [\"mat-ripple\", \"\"]], [[2, \"mat-tab-header-pagination-disabled\", null], [2, \"mat-ripple-unbounded\", null]], [[null, \"click\"]], function (_v, en, $event) { var ad = true; var _co = _v.component; if ((\"click\" === en)) {\n var pd_0 = (_co._scrollHeader(\"before\") !== false);\n ad = (pd_0 && ad);\n } return ad; }, null, null)), i0.ɵdid(4, 212992, null, 0, i5.MatRipple, [i0.ElementRef, i0.NgZone, i7.Platform, [2, i5.MAT_RIPPLE_GLOBAL_OPTIONS]], { disabled: [0, \"disabled\"] }, null), (_l()(), i0.ɵeld(5, 0, null, null, 0, \"div\", [[\"class\", \"mat-tab-header-pagination-chevron\"]], null, null, null, null, null)), (_l()(), i0.ɵeld(6, 0, [[2, 0], [\"tabListContainer\", 1]], null, 6, \"div\", [[\"class\", \"mat-tab-label-container\"]], null, [[null, \"keydown\"]], function (_v, en, $event) { var ad = true; var _co = _v.component; if ((\"keydown\" === en)) {\n var pd_0 = (_co._handleKeydown($event) !== false);\n ad = (pd_0 && ad);\n } return ad; }, null, null)), (_l()(), i0.ɵeld(7, 0, [[3, 0], [\"tabList\", 1]], null, 5, \"div\", [[\"class\", \"mat-tab-list\"], [\"role\", \"tablist\"]], null, [[null, \"cdkObserveContent\"]], function (_v, en, $event) { var ad = true; var _co = _v.component; if ((\"cdkObserveContent\" === en)) {\n var pd_0 = (_co._onContentChanges() !== false);\n ad = (pd_0 && ad);\n } return ad; }, null, null)), i0.ɵdid(8, 1720320, null, 0, i3.CdkObserveContent, [i3.MutationObserverFactory, i0.ElementRef, i0.NgZone], null, { event: \"cdkObserveContent\" }), (_l()(), i0.ɵeld(9, 0, null, null, 1, \"div\", [[\"class\", \"mat-tab-labels\"]], null, null, null, null, null)), i0.ɵncd(null, 0), (_l()(), i0.ɵeld(11, 0, null, null, 1, \"mat-ink-bar\", [[\"class\", \"mat-ink-bar\"]], null, null, null, null, null)), i0.ɵdid(12, 16384, [[1, 4]], 0, i1.MatInkBar, [i0.ElementRef, i0.NgZone, i1._MAT_INK_BAR_POSITIONER], null, null), (_l()(), i0.ɵeld(13, 0, null, null, 2, \"div\", [[\"aria-hidden\", \"true\"], [\"class\", \"mat-tab-header-pagination mat-tab-header-pagination-after mat-elevation-z4 mat-ripple\"], [\"mat-ripple\", \"\"]], [[2, \"mat-tab-header-pagination-disabled\", null], [2, \"mat-ripple-unbounded\", null]], [[null, \"click\"]], function (_v, en, $event) { var ad = true; var _co = _v.component; if ((\"click\" === en)) {\n var pd_0 = (_co._scrollHeader(\"after\") !== false);\n ad = (pd_0 && ad);\n } return ad; }, null, null)), i0.ɵdid(14, 212992, null, 0, i5.MatRipple, [i0.ElementRef, i0.NgZone, i7.Platform, [2, i5.MAT_RIPPLE_GLOBAL_OPTIONS]], { disabled: [0, \"disabled\"] }, null), (_l()(), i0.ɵeld(15, 0, null, null, 0, \"div\", [[\"class\", \"mat-tab-header-pagination-chevron\"]], null, null, null, null, null))], function (_ck, _v) { var _co = _v.component; var currVal_2 = (_co._disableScrollBefore || _co.disableRipple); _ck(_v, 4, 0, currVal_2); var currVal_5 = (_co._disableScrollAfter || _co.disableRipple); _ck(_v, 14, 0, currVal_5); }, function (_ck, _v) { var _co = _v.component; var currVal_0 = _co._disableScrollBefore; var currVal_1 = i0.ɵnov(_v, 4).unbounded; _ck(_v, 3, 0, currVal_0, currVal_1); var currVal_3 = _co._disableScrollAfter; var currVal_4 = i0.ɵnov(_v, 14).unbounded; _ck(_v, 13, 0, currVal_3, currVal_4); }); }\nexport function View_MatTabHeader_Host_0(_l) { return i0.ɵvid(0, [(_l()(), i0.ɵeld(0, 0, null, null, 2, \"mat-tab-header\", [[\"class\", \"mat-tab-header\"]], [[2, \"mat-tab-header-pagination-controls-enabled\", null], [2, \"mat-tab-header-rtl\", null]], null, null, View_MatTabHeader_0, RenderType_MatTabHeader)), i0.ɵdid(1, 3325952, null, 1, i1.MatTabHeader, [i0.ElementRef, i0.ChangeDetectorRef, i8.ViewportRuler, [2, i4.Directionality]], null, null), i0.ɵqud(603979776, 1, { _labelWrappers: 1 })], null, function (_ck, _v) { var currVal_0 = i0.ɵnov(_v, 1)._showPaginationControls; var currVal_1 = (i0.ɵnov(_v, 1)._getLayoutDirection() == \"rtl\"); _ck(_v, 0, 0, currVal_0, currVal_1); }); }\nvar MatTabHeaderNgFactory = i0.ɵccf(\"mat-tab-header\", i1.MatTabHeader, View_MatTabHeader_Host_0, { disableRipple: \"disableRipple\", selectedIndex: \"selectedIndex\" }, { selectFocusedIndex: \"selectFocusedIndex\", indexFocused: \"indexFocused\" }, [\"*\"]);\nexport { MatTabHeaderNgFactory as MatTabHeaderNgFactory };\nvar styles_MatTab = [];\nvar RenderType_MatTab = i0.ɵcrt({ encapsulation: 2, styles: styles_MatTab, data: {} });\nexport { RenderType_MatTab as RenderType_MatTab };\nfunction View_MatTab_1(_l) { return i0.ɵvid(0, [i0.ɵncd(null, 0), (_l()(), i0.ɵand(0, null, null, 0))], null, null); }\nexport function View_MatTab_0(_l) { return i0.ɵvid(2, [i0.ɵqud(402653184, 1, { _implicitContent: 0 }), (_l()(), i0.ɵand(0, [[1, 2]], null, 0, null, View_MatTab_1))], null, null); }\nexport function View_MatTab_Host_0(_l) { return i0.ɵvid(0, [(_l()(), i0.ɵeld(0, 16777216, null, null, 3, \"mat-tab\", [], null, null, null, View_MatTab_0, RenderType_MatTab)), i0.ɵdid(1, 770048, null, 2, i1.MatTab, [i0.ViewContainerRef], null, null), i0.ɵqud(335544320, 1, { templateLabel: 0 }), i0.ɵqud(335544320, 2, { _explicitContent: 0 })], function (_ck, _v) { _ck(_v, 1, 0); }, null); }\nvar MatTabNgFactory = i0.ɵccf(\"mat-tab\", i1.MatTab, View_MatTab_Host_0, { disabled: \"disabled\", textLabel: \"label\" }, {}, [\"*\"]);\nexport { MatTabNgFactory as MatTabNgFactory };\nvar styles_MatTabNav = [\".mat-tab-nav-bar{overflow:hidden;position:relative;flex-shrink:0}.mat-tab-links{position:relative;display:flex}.mat-tab-link{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;vertical-align:top;text-decoration:none;position:relative;overflow:hidden}.mat-tab-link:focus{outline:0}.mat-tab-link:focus:not(.mat-tab-disabled){opacity:1}.mat-tab-link.mat-tab-disabled{cursor:default}.mat-tab-link.mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}[mat-stretch-tabs] .mat-tab-link{flex-basis:0;flex-grow:1}@media (max-width:599px){.mat-tab-link{min-width:72px}}.mat-ink-bar{position:absolute;bottom:0;height:2px;transition:.5s cubic-bezier(.35,0,.25,1)}.mat-tab-group-inverted-header .mat-ink-bar{bottom:auto;top:0}@media screen and (-ms-high-contrast:active){.mat-ink-bar{outline:solid 2px;height:0}}\"];\nvar RenderType_MatTabNav = i0.ɵcrt({ encapsulation: 2, styles: styles_MatTabNav, data: {} });\nexport { RenderType_MatTabNav as RenderType_MatTabNav };\nexport function View_MatTabNav_0(_l) { return i0.ɵvid(2, [i0.ɵqud(402653184, 1, { _inkBar: 0 }), (_l()(), i0.ɵeld(1, 0, null, null, 4, \"div\", [[\"class\", \"mat-tab-links\"]], null, [[null, \"cdkObserveContent\"]], function (_v, en, $event) { var ad = true; var _co = _v.component; if ((\"cdkObserveContent\" === en)) {\n var pd_0 = (_co._alignInkBar() !== false);\n ad = (pd_0 && ad);\n } return ad; }, null, null)), i0.ɵdid(2, 1720320, null, 0, i3.CdkObserveContent, [i3.MutationObserverFactory, i0.ElementRef, i0.NgZone], null, { event: \"cdkObserveContent\" }), i0.ɵncd(null, 0), (_l()(), i0.ɵeld(4, 0, null, null, 1, \"mat-ink-bar\", [[\"class\", \"mat-ink-bar\"]], null, null, null, null, null)), i0.ɵdid(5, 16384, [[1, 4]], 0, i1.MatInkBar, [i0.ElementRef, i0.NgZone, i1._MAT_INK_BAR_POSITIONER], null, null)], null, null); }\nexport function View_MatTabNav_Host_0(_l) { return i0.ɵvid(0, [(_l()(), i0.ɵeld(0, 0, null, null, 2, \"div\", [[\"class\", \"mat-tab-nav-bar\"], [\"mat-tab-nav-bar\", \"\"]], null, null, null, View_MatTabNav_0, RenderType_MatTabNav)), i0.ɵdid(1, 3325952, null, 1, i1.MatTabNav, [i0.ElementRef, [2, i4.Directionality], i0.NgZone, i0.ChangeDetectorRef, i8.ViewportRuler], null, null), i0.ɵqud(603979776, 1, { _tabLinks: 1 })], null, null); }\nvar MatTabNavNgFactory = i0.ɵccf(\"[mat-tab-nav-bar]\", i1.MatTabNav, View_MatTabNav_Host_0, { color: \"color\", disableRipple: \"disableRipple\", backgroundColor: \"backgroundColor\" }, {}, [\"*\"]);\nexport { MatTabNavNgFactory as MatTabNavNgFactory };\n","<mat-tab-header #tabHeader [selectedIndex]=\"selectedIndex\" [disableRipple]=\"disableRipple\" (indexFocused)=\"_focusChanged($event)\" (selectFocusedIndex)=\"selectedIndex = $event\"><div class=\"mat-tab-label\" role=\"tab\" matTabLabelWrapper mat-ripple *ngFor=\"let tab of _tabs; let i = index\" [id]=\"_getTabLabelId(i)\" [attr.tabIndex]=\"_getTabIndex(tab, i)\" [attr.aria-controls]=\"_getTabContentId(i)\" [attr.aria-selected]=\"selectedIndex == i\" [class.mat-tab-label-active]=\"selectedIndex == i\" [disabled]=\"tab.disabled\" [matRippleDisabled]=\"tab.disabled || disableRipple\" (click)=\"_handleClick(tab, tabHeader, i)\"><div class=\"mat-tab-label-content\"><ng-template [ngIf]=\"tab.templateLabel\"><ng-template [cdkPortalOutlet]=\"tab.templateLabel\"></ng-template></ng-template><ng-template [ngIf]=\"!tab.templateLabel\">{{tab.textLabel}}</ng-template></div></div></mat-tab-header><div class=\"mat-tab-body-wrapper\" #tabBodyWrapper><mat-tab-body role=\"tabpanel\" *ngFor=\"let tab of _tabs; let i = index\" [id]=\"_getTabContentId(i)\" [attr.aria-labelledby]=\"_getTabLabelId(i)\" [class.mat-tab-body-active]=\"selectedIndex == i\" [content]=\"tab.content\" [position]=\"tab.position\" [origin]=\"tab.origin\" (_onCentered)=\"_removeTabBodyWrapperHeight()\" (_onCentering)=\"_setTabBodyWrapperHeight($event)\"></mat-tab-body></div>","<div class=\"mat-tab-body-content\" #content [@translateTab]=\"_position\" (@translateTab.start)=\"_onTranslateTabStarted($event)\" (@translateTab.done)=\"_onTranslateTabComplete($event)\"><ng-template matTabBodyHost></ng-template></div>","<div class=\"mat-tab-header-pagination mat-tab-header-pagination-before mat-elevation-z4\" aria-hidden=\"true\" mat-ripple [matRippleDisabled]=\"_disableScrollBefore || disableRipple\" [class.mat-tab-header-pagination-disabled]=\"_disableScrollBefore\" (click)=\"_scrollHeader('before')\"><div class=\"mat-tab-header-pagination-chevron\"></div></div><div class=\"mat-tab-label-container\" #tabListContainer (keydown)=\"_handleKeydown($event)\"><div class=\"mat-tab-list\" #tabList role=\"tablist\" (cdkObserveContent)=\"_onContentChanges()\"><div class=\"mat-tab-labels\"><ng-content></ng-content></div><mat-ink-bar></mat-ink-bar></div></div><div class=\"mat-tab-header-pagination mat-tab-header-pagination-after mat-elevation-z4\" aria-hidden=\"true\" mat-ripple [matRippleDisabled]=\"_disableScrollAfter || disableRipple\" [class.mat-tab-header-pagination-disabled]=\"_disableScrollAfter\" (click)=\"_scrollHeader('after')\"><div class=\"mat-tab-header-pagination-chevron\"></div></div>","<ng-template><ng-content></ng-content></ng-template>","/**\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 */\nimport { Component, ViewEncapsulation, ChangeDetectionStrategy, Directive, Input, NgModule } from '@angular/core';\nimport { MatCommonModule } from '@angular/material/core';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * Content of a card, needed as it's used as a selector in the API.\n * \\@docs-private\n */\nvar MatCardContent = /** @class */ (function () {\n function MatCardContent() {\n }\n MatCardContent.decorators = [\n { type: Directive, args: [{\n selector: 'mat-card-content',\n host: { 'class': 'mat-card-content' }\n },] },\n ];\n return MatCardContent;\n}());\n/**\n * Title of a card, needed as it's used as a selector in the API.\n * \\@docs-private\n */\nvar MatCardTitle = /** @class */ (function () {\n function MatCardTitle() {\n }\n MatCardTitle.decorators = [\n { type: Directive, args: [{\n selector: \"mat-card-title, [mat-card-title], [matCardTitle]\",\n host: {\n 'class': 'mat-card-title'\n }\n },] },\n ];\n return MatCardTitle;\n}());\n/**\n * Sub-title of a card, needed as it's used as a selector in the API.\n * \\@docs-private\n */\nvar MatCardSubtitle = /** @class */ (function () {\n function MatCardSubtitle() {\n }\n MatCardSubtitle.decorators = [\n { type: Directive, args: [{\n selector: \"mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]\",\n host: {\n 'class': 'mat-card-subtitle'\n }\n },] },\n ];\n return MatCardSubtitle;\n}());\n/**\n * Action section of a card, needed as it's used as a selector in the API.\n * \\@docs-private\n */\nvar MatCardActions = /** @class */ (function () {\n function MatCardActions() {\n /**\n * Position of the actions inside the card.\n */\n this.align = 'start';\n }\n MatCardActions.decorators = [\n { type: Directive, args: [{\n selector: 'mat-card-actions',\n exportAs: 'matCardActions',\n host: {\n 'class': 'mat-card-actions',\n '[class.mat-card-actions-align-end]': 'align === \"end\"',\n }\n },] },\n ];\n /** @nocollapse */\n MatCardActions.propDecorators = {\n \"align\": [{ type: Input },],\n };\n return MatCardActions;\n}());\n/**\n * Footer of a card, needed as it's used as a selector in the API.\n * \\@docs-private\n */\nvar MatCardFooter = /** @class */ (function () {\n function MatCardFooter() {\n }\n MatCardFooter.decorators = [\n { type: Directive, args: [{\n selector: 'mat-card-footer',\n host: { 'class': 'mat-card-footer' }\n },] },\n ];\n return MatCardFooter;\n}());\n/**\n * Image used in a card, needed to add the mat- CSS styling.\n * \\@docs-private\n */\nvar MatCardImage = /** @class */ (function () {\n function MatCardImage() {\n }\n MatCardImage.decorators = [\n { type: Directive, args: [{\n selector: '[mat-card-image], [matCardImage]',\n host: { 'class': 'mat-card-image' }\n },] },\n ];\n return MatCardImage;\n}());\n/**\n * Image used in a card, needed to add the mat- CSS styling.\n * \\@docs-private\n */\nvar MatCardSmImage = /** @class */ (function () {\n function MatCardSmImage() {\n }\n MatCardSmImage.decorators = [\n { type: Directive, args: [{\n selector: '[mat-card-sm-image], [matCardImageSmall]',\n host: { 'class': 'mat-card-sm-image' }\n },] },\n ];\n return MatCardSmImage;\n}());\n/**\n * Image used in a card, needed to add the mat- CSS styling.\n * \\@docs-private\n */\nvar MatCardMdImage = /** @class */ (function () {\n function MatCardMdImage() {\n }\n MatCardMdImage.decorators = [\n { type: Directive, args: [{\n selector: '[mat-card-md-image], [matCardImageMedium]',\n host: { 'class': 'mat-card-md-image' }\n },] },\n ];\n return MatCardMdImage;\n}());\n/**\n * Image used in a card, needed to add the mat- CSS styling.\n * \\@docs-private\n */\nvar MatCardLgImage = /** @class */ (function () {\n function MatCardLgImage() {\n }\n MatCardLgImage.decorators = [\n { type: Directive, args: [{\n selector: '[mat-card-lg-image], [matCardImageLarge]',\n host: { 'class': 'mat-card-lg-image' }\n },] },\n ];\n return MatCardLgImage;\n}());\n/**\n * Large image used in a card, needed to add the mat- CSS styling.\n * \\@docs-private\n */\nvar MatCardXlImage = /** @class */ (function () {\n function MatCardXlImage() {\n }\n MatCardXlImage.decorators = [\n { type: Directive, args: [{\n selector: '[mat-card-xl-image], [matCardImageXLarge]',\n host: { 'class': 'mat-card-xl-image' }\n },] },\n ];\n return MatCardXlImage;\n}());\n/**\n * Avatar image used in a card, needed to add the mat- CSS styling.\n * \\@docs-private\n */\nvar MatCardAvatar = /** @class */ (function () {\n function MatCardAvatar() {\n }\n MatCardAvatar.decorators = [\n { type: Directive, args: [{\n selector: '[mat-card-avatar], [matCardAvatar]',\n host: { 'class': 'mat-card-avatar' }\n },] },\n ];\n return MatCardAvatar;\n}());\n/**\n * A basic content container component that adds the styles of a Material design card.\n *\n * While this component can be used alone, it also provides a number\n * of preset styles for common card sections, including:\n * - mat-card-title\n * - mat-card-subtitle\n * - mat-card-content\n * - mat-card-actions\n * - mat-card-footer\n */\nvar MatCard = /** @class */ (function () {\n function MatCard() {\n }\n MatCard.decorators = [\n { type: Component, args: [{selector: 'mat-card',\n exportAs: 'matCard',\n template: \"<ng-content></ng-content><ng-content select=\\\"mat-card-footer\\\"></ng-content>\",\n styles: [\".mat-card{transition:box-shadow 280ms cubic-bezier(.4,0,.2,1);display:block;position:relative;padding:24px;border-radius:2px}.mat-card:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.mat-card .mat-divider{position:absolute;left:0;width:100%}[dir=rtl] .mat-card .mat-divider{left:auto;right:0}.mat-card .mat-divider.mat-divider-inset{position:static;margin:0}.mat-card.mat-card-flat{box-shadow:none}@media screen and (-ms-high-contrast:active){.mat-card{outline:solid 1px}}.mat-card-actions,.mat-card-content,.mat-card-subtitle,.mat-card-title{display:block;margin-bottom:16px}.mat-card-actions{margin-left:-16px;margin-right:-16px;padding:8px 0}.mat-card-actions-align-end{display:flex;justify-content:flex-end}.mat-card-image{width:calc(100% + 48px);margin:0 -24px 16px -24px}.mat-card-xl-image{width:240px;height:240px;margin:-8px}.mat-card-footer{display:block;margin:0 -24px -24px -24px}.mat-card-actions .mat-button,.mat-card-actions .mat-raised-button{margin:0 4px}.mat-card-header{display:flex;flex-direction:row}.mat-card-header-text{margin:0 8px}.mat-card-avatar{height:40px;width:40px;border-radius:50%;flex-shrink:0}.mat-card-lg-image,.mat-card-md-image,.mat-card-sm-image{margin:-8px 0}.mat-card-title-group{display:flex;justify-content:space-between;margin:0 -8px}.mat-card-sm-image{width:80px;height:80px}.mat-card-md-image{width:112px;height:112px}.mat-card-lg-image{width:152px;height:152px}@media (max-width:599px){.mat-card{padding:24px 16px}.mat-card-actions{margin-left:-8px;margin-right:-8px}.mat-card-image{width:calc(100% + 32px);margin:16px -16px}.mat-card-title-group{margin:0}.mat-card-xl-image{margin-left:0;margin-right:0}.mat-card-header{margin:-8px 0 0 0}.mat-card-footer{margin-left:-16px;margin-right:-16px}}.mat-card-content>:first-child,.mat-card>:first-child{margin-top:0}.mat-card-content>:last-child:not(.mat-card-footer),.mat-card>:last-child:not(.mat-card-footer){margin-bottom:0}.mat-card-image:first-child{margin-top:-24px}.mat-card>.mat-card-actions:last-child{margin-bottom:-16px;padding-bottom:0}.mat-card-actions .mat-button:first-child,.mat-card-actions .mat-raised-button:first-child{margin-left:0;margin-right:0}.mat-card-subtitle:not(:first-child),.mat-card-title:not(:first-child){margin-top:-4px}.mat-card-header .mat-card-subtitle:not(:first-child){margin-top:-8px}.mat-card>.mat-card-xl-image:first-child{margin-top:-8px}.mat-card>.mat-card-xl-image:last-child{margin-bottom:-8px}\"],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { 'class': 'mat-card' }\n },] },\n ];\n return MatCard;\n}());\n/**\n * Component intended to be used within the `<mat-card>` component. It adds styles for a\n * preset header section (i.e. a title, subtitle, and avatar layout).\n * \\@docs-private\n */\nvar MatCardHeader = /** @class */ (function () {\n function MatCardHeader() {\n }\n MatCardHeader.decorators = [\n { type: Component, args: [{selector: 'mat-card-header',\n template: \"<ng-content select=\\\"[mat-card-avatar], [matCardAvatar]\\\"></ng-content><div class=\\\"mat-card-header-text\\\"><ng-content select=\\\"mat-card-title, mat-card-subtitle, [mat-card-title], [mat-card-subtitle], [matCardTitle], [matCardSubtitle]\\\"></ng-content></div><ng-content></ng-content>\",\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { 'class': 'mat-card-header' }\n },] },\n ];\n return MatCardHeader;\n}());\n/**\n * Component intended to be used within the `<mat-card>` component. It adds styles for a preset\n * layout that groups an image with a title section.\n * \\@docs-private\n */\nvar MatCardTitleGroup = /** @class */ (function () {\n function MatCardTitleGroup() {\n }\n MatCardTitleGroup.decorators = [\n { type: Component, args: [{selector: 'mat-card-title-group',\n template: \"<div><ng-content select=\\\"mat-card-title, mat-card-subtitle, [mat-card-title], [mat-card-subtitle], [matCardTitle], [matCardSubtitle]\\\"></ng-content></div><ng-content select=\\\"img\\\"></ng-content><ng-content></ng-content>\",\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { 'class': 'mat-card-title-group' }\n },] },\n ];\n return MatCardTitleGroup;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\nvar MatCardModule = /** @class */ (function () {\n function MatCardModule() {\n }\n MatCardModule.decorators = [\n { type: NgModule, args: [{\n imports: [MatCommonModule],\n exports: [\n MatCard,\n MatCardHeader,\n MatCardTitleGroup,\n MatCardContent,\n MatCardTitle,\n MatCardSubtitle,\n MatCardActions,\n MatCardFooter,\n MatCardSmImage,\n MatCardMdImage,\n MatCardLgImage,\n MatCardImage,\n MatCardXlImage,\n MatCardAvatar,\n MatCommonModule,\n ],\n declarations: [\n MatCard, MatCardHeader, MatCardTitleGroup, MatCardContent, MatCardTitle, MatCardSubtitle,\n MatCardActions, MatCardFooter, MatCardSmImage, MatCardMdImage, MatCardLgImage, MatCardImage,\n MatCardXlImage, MatCardAvatar,\n ],\n },] },\n ];\n return MatCardModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n\nexport { MatCardContent, MatCardTitle, MatCardSubtitle, MatCardActions, MatCardFooter, MatCardImage, MatCardSmImage, MatCardMdImage, MatCardLgImage, MatCardXlImage, MatCardAvatar, MatCard, MatCardHeader, MatCardTitleGroup, MatCardModule };\n//# sourceMappingURL=card.es5.js.map\n","/**\n * @fileoverview This file was generated by the Angular template compiler. Do not edit.\n *\n * @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes}\n * tslint:disable\n */ \nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/card\";\nimport * as i2 from \"@angular/cdk/bidi\";\nimport * as i3 from \"@angular/material/core\";\nvar MatCardModuleNgFactory = i0.ɵcmf(i1.MatCardModule, [], function (_l) { return i0.ɵmod([i0.ɵmpd(512, i0.ComponentFactoryResolver, i0.ɵCodegenComponentFactoryResolver, [[8, []], [3, i0.ComponentFactoryResolver], i0.NgModuleRef]), i0.ɵmpd(1073742336, i2.BidiModule, i2.BidiModule, []), i0.ɵmpd(1073742336, i3.MatCommonModule, i3.MatCommonModule, [[2, i3.MATERIAL_SANITY_CHECKS]]), i0.ɵmpd(1073742336, i1.MatCardModule, i1.MatCardModule, [])]); });\nexport { MatCardModuleNgFactory as MatCardModuleNgFactory };\nvar styles_MatCard = [\".mat-card{transition:box-shadow 280ms cubic-bezier(.4,0,.2,1);display:block;position:relative;padding:24px;border-radius:2px}.mat-card:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.mat-card .mat-divider{position:absolute;left:0;width:100%}[dir=rtl] .mat-card .mat-divider{left:auto;right:0}.mat-card .mat-divider.mat-divider-inset{position:static;margin:0}.mat-card.mat-card-flat{box-shadow:none}@media screen and (-ms-high-contrast:active){.mat-card{outline:solid 1px}}.mat-card-actions,.mat-card-content,.mat-card-subtitle,.mat-card-title{display:block;margin-bottom:16px}.mat-card-actions{margin-left:-16px;margin-right:-16px;padding:8px 0}.mat-card-actions-align-end{display:flex;justify-content:flex-end}.mat-card-image{width:calc(100% + 48px);margin:0 -24px 16px -24px}.mat-card-xl-image{width:240px;height:240px;margin:-8px}.mat-card-footer{display:block;margin:0 -24px -24px -24px}.mat-card-actions .mat-button,.mat-card-actions .mat-raised-button{margin:0 4px}.mat-card-header{display:flex;flex-direction:row}.mat-card-header-text{margin:0 8px}.mat-card-avatar{height:40px;width:40px;border-radius:50%;flex-shrink:0}.mat-card-lg-image,.mat-card-md-image,.mat-card-sm-image{margin:-8px 0}.mat-card-title-group{display:flex;justify-content:space-between;margin:0 -8px}.mat-card-sm-image{width:80px;height:80px}.mat-card-md-image{width:112px;height:112px}.mat-card-lg-image{width:152px;height:152px}@media (max-width:599px){.mat-card{padding:24px 16px}.mat-card-actions{margin-left:-8px;margin-right:-8px}.mat-card-image{width:calc(100% + 32px);margin:16px -16px}.mat-card-title-group{margin:0}.mat-card-xl-image{margin-left:0;margin-right:0}.mat-card-header{margin:-8px 0 0 0}.mat-card-footer{margin-left:-16px;margin-right:-16px}}.mat-card-content>:first-child,.mat-card>:first-child{margin-top:0}.mat-card-content>:last-child:not(.mat-card-footer),.mat-card>:last-child:not(.mat-card-footer){margin-bottom:0}.mat-card-image:first-child{margin-top:-24px}.mat-card>.mat-card-actions:last-child{margin-bottom:-16px;padding-bottom:0}.mat-card-actions .mat-button:first-child,.mat-card-actions .mat-raised-button:first-child{margin-left:0;margin-right:0}.mat-card-subtitle:not(:first-child),.mat-card-title:not(:first-child){margin-top:-4px}.mat-card-header .mat-card-subtitle:not(:first-child){margin-top:-8px}.mat-card>.mat-card-xl-image:first-child{margin-top:-8px}.mat-card>.mat-card-xl-image:last-child{margin-bottom:-8px}\"];\nvar RenderType_MatCard = i0.ɵcrt({ encapsulation: 2, styles: styles_MatCard, data: {} });\nexport { RenderType_MatCard as RenderType_MatCard };\nexport function View_MatCard_0(_l) { return i0.ɵvid(2, [i0.ɵncd(null, 0), i0.ɵncd(null, 1)], null, null); }\nexport function View_MatCard_Host_0(_l) { return i0.ɵvid(0, [(_l()(), i0.ɵeld(0, 0, null, null, 1, \"mat-card\", [[\"class\", \"mat-card\"]], null, null, null, View_MatCard_0, RenderType_MatCard)), i0.ɵdid(1, 49152, null, 0, i1.MatCard, [], null, null)], null, null); }\nvar MatCardNgFactory = i0.ɵccf(\"mat-card\", i1.MatCard, View_MatCard_Host_0, {}, {}, [\"*\", \"mat-card-footer\"]);\nexport { MatCardNgFactory as MatCardNgFactory };\nvar styles_MatCardHeader = [];\nvar RenderType_MatCardHeader = i0.ɵcrt({ encapsulation: 2, styles: styles_MatCardHeader, data: {} });\nexport { RenderType_MatCardHeader as RenderType_MatCardHeader };\nexport function View_MatCardHeader_0(_l) { return i0.ɵvid(2, [i0.ɵncd(null, 0), (_l()(), i0.ɵeld(1, 0, null, null, 1, \"div\", [[\"class\", \"mat-card-header-text\"]], null, null, null, null, null)), i0.ɵncd(null, 1), i0.ɵncd(null, 2)], null, null); }\nexport function View_MatCardHeader_Host_0(_l) { return i0.ɵvid(0, [(_l()(), i0.ɵeld(0, 0, null, null, 1, \"mat-card-header\", [[\"class\", \"mat-card-header\"]], null, null, null, View_MatCardHeader_0, RenderType_MatCardHeader)), i0.ɵdid(1, 49152, null, 0, i1.MatCardHeader, [], null, null)], null, null); }\nvar MatCardHeaderNgFactory = i0.ɵccf(\"mat-card-header\", i1.MatCardHeader, View_MatCardHeader_Host_0, {}, {}, [\"[mat-card-avatar], [matCardAvatar]\", \"mat-card-title, mat-card-subtitle,\\n [mat-card-title], [mat-card-subtitle],\\n [matCardTitle], [matCardSubtitle]\", \"*\"]);\nexport { MatCardHeaderNgFactory as MatCardHeaderNgFactory };\nvar styles_MatCardTitleGroup = [];\nvar RenderType_MatCardTitleGroup = i0.ɵcrt({ encapsulation: 2, styles: styles_MatCardTitleGroup, data: {} });\nexport { RenderType_MatCardTitleGroup as RenderType_MatCardTitleGroup };\nexport function View_MatCardTitleGroup_0(_l) { return i0.ɵvid(2, [(_l()(), i0.ɵeld(0, 0, null, null, 1, \"div\", [], null, null, null, null, null)), i0.ɵncd(null, 0), i0.ɵncd(null, 1), i0.ɵncd(null, 2)], null, null); }\nexport function View_MatCardTitleGroup_Host_0(_l) { return i0.ɵvid(0, [(_l()(), i0.ɵeld(0, 0, null, null, 1, \"mat-card-title-group\", [[\"class\", \"mat-card-title-group\"]], null, null, null, View_MatCardTitleGroup_0, RenderType_MatCardTitleGroup)), i0.ɵdid(1, 49152, null, 0, i1.MatCardTitleGroup, [], null, null)], null, null); }\nvar MatCardTitleGroupNgFactory = i0.ɵccf(\"mat-card-title-group\", i1.MatCardTitleGroup, View_MatCardTitleGroup_Host_0, {}, {}, [\"mat-card-title, mat-card-subtitle,\\n [mat-card-title], [mat-card-subtitle],\\n [matCardTitle], [matCardSubtitle]\", \"img\", \"*\"]);\nexport { MatCardTitleGroupNgFactory as MatCardTitleGroupNgFactory };\n","<ng-content></ng-content><ng-content select=\"mat-card-footer\"></ng-content>","/**\n * @fileoverview This file was generated by the Angular template compiler. Do not edit.\n *\n * @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes}\n * tslint:disable\n */ \nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../../../../node_modules/@angular/material/tabs/typings/index.ngfactory\";\nimport * as i2 from \"@angular/material/tabs\";\nimport * as i3 from \"./code.component.ngfactory\";\nimport * as i4 from \"./code.component\";\nimport * as i5 from \"@angular/material/snack-bar\";\nimport * as i6 from \"./pretty-printer.service\";\nimport * as i7 from \"../../shared/copier.service\";\nimport * as i8 from \"../../shared/logger.service\";\nimport * as i9 from \"../../../../node_modules/@angular/material/card/typings/index.ngfactory\";\nimport * as i10 from \"@angular/material/card\";\nimport * as i11 from \"@angular/common\";\nimport * as i12 from \"./code-tabs.component\";\nvar styles_CodeTabsComponent = [];\nvar RenderType_CodeTabsComponent = i0.ɵcrt({ encapsulation: 2, styles: styles_CodeTabsComponent, data: {} });\nexport { RenderType_CodeTabsComponent as RenderType_CodeTabsComponent };\nfunction View_CodeTabsComponent_2(_l) { return i0.ɵvid(0, [(_l()(), i0.ɵeld(0, 0, null, null, 1, \"span\", [], [[8, \"className\", 0]], null, null, null, null)), (_l()(), i0.ɵted(1, null, [\"\", \"\"]))], null, function (_ck, _v) { var currVal_0 = i0.ɵinlineInterpolate(1, \"\", _v.parent.context.$implicit.class, \"\"); _ck(_v, 0, 0, currVal_0); var currVal_1 = _v.parent.context.$implicit.title; _ck(_v, 1, 0, currVal_1); }); }\nfunction View_CodeTabsComponent_1(_l) { return i0.ɵvid(0, [(_l()(), i0.ɵeld(0, 16777216, null, null, 7, \"mat-tab\", [[\"style\", \"overflow-y: hidden;\"]], null, null, null, i1.View_MatTab_0, i1.RenderType_MatTab)), i0.ɵdid(1, 770048, [[3, 4]], 2, i2.MatTab, [i0.ViewContainerRef], null, null), i0.ɵqud(335544320, 4, { templateLabel: 0 }), i0.ɵqud(335544320, 5, { _explicitContent: 0 }), (_l()(), i0.ɵand(16777216, null, 0, 1, null, View_CodeTabsComponent_2)), i0.ɵdid(5, 16384, [[4, 4]], 0, i2.MatTabLabel, [i0.TemplateRef, i0.ViewContainerRef], null, null), (_l()(), i0.ɵeld(6, 0, null, 0, 1, \"aio-code\", [], [[8, \"className\", 0]], null, null, i3.View_CodeComponent_0, i3.RenderType_CodeComponent)), i0.ɵdid(7, 573440, [[2, 4]], 0, i4.CodeComponent, [i5.MatSnackBar, i6.PrettyPrinter, i7.CopierService, i8.Logger], { language: [0, \"language\"], linenums: [1, \"linenums\"], path: [2, \"path\"], region: [3, \"region\"], title: [4, \"title\"] }, null), (_l()(), i0.ɵand(0, null, null, 0))], function (_ck, _v) { _ck(_v, 1, 0); var currVal_1 = _v.context.$implicit.language; var currVal_2 = _v.context.$implicit.linenums; var currVal_3 = _v.context.$implicit.path; var currVal_4 = _v.context.$implicit.region; var currVal_5 = _v.context.$implicit.title; _ck(_v, 7, 0, currVal_1, currVal_2, currVal_3, currVal_4, currVal_5); }, function (_ck, _v) { var currVal_0 = i0.ɵinlineInterpolate(1, \"\", _v.context.$implicit.class, \"\"); _ck(_v, 6, 0, currVal_0); }); }\nexport function View_CodeTabsComponent_0(_l) { return i0.ɵvid(0, [i0.ɵqud(402653184, 1, { content: 0 }), i0.ɵqud(671088640, 2, { codeComponents: 1 }), (_l()(), i0.ɵeld(2, 0, [[1, 0], [\"content\", 1]], null, 1, \"div\", [[\"style\", \"display: none\"]], null, null, null, null, null)), i0.ɵncd(null, 0), (_l()(), i0.ɵeld(4, 0, null, null, 6, \"mat-card\", [[\"class\", \"mat-card\"]], null, null, null, i9.View_MatCard_0, i9.RenderType_MatCard)), i0.ɵdid(5, 49152, null, 0, i10.MatCard, [], null, null), (_l()(), i0.ɵeld(6, 0, null, 0, 4, \"mat-tab-group\", [[\"class\", \"code-tab-group mat-tab-group\"], [\"disableRipple\", \"\"]], [[2, \"mat-tab-group-dynamic-height\", null], [2, \"mat-tab-group-inverted-header\", null]], null, null, i1.View_MatTabGroup_0, i1.RenderType_MatTabGroup)), i0.ɵdid(7, 3325952, null, 1, i2.MatTabGroup, [i0.ElementRef, i0.ChangeDetectorRef], { disableRipple: [0, \"disableRipple\"] }, null), i0.ɵqud(603979776, 3, { _tabs: 1 }), (_l()(), i0.ɵand(16777216, null, null, 1, null, View_CodeTabsComponent_1)), i0.ɵdid(10, 802816, null, 0, i11.NgForOf, [i0.ViewContainerRef, i0.TemplateRef, i0.IterableDiffers], { ngForOf: [0, \"ngForOf\"] }, null)], function (_ck, _v) { var _co = _v.component; var currVal_2 = \"\"; _ck(_v, 7, 0, currVal_2); var currVal_3 = _co.tabs; _ck(_v, 10, 0, currVal_3); }, function (_ck, _v) { var currVal_0 = i0.ɵnov(_v, 7).dynamicHeight; var currVal_1 = (i0.ɵnov(_v, 7).headerPosition === \"below\"); _ck(_v, 6, 0, currVal_0, currVal_1); }); }\nexport function View_CodeTabsComponent_Host_0(_l) { return i0.ɵvid(0, [(_l()(), i0.ɵeld(0, 0, null, null, 1, \"code-tabs\", [], null, null, null, View_CodeTabsComponent_0, RenderType_CodeTabsComponent)), i0.ɵdid(1, 4308992, null, 0, i12.CodeTabsComponent, [], null, null)], function (_ck, _v) { _ck(_v, 1, 0); }, null); }\nvar CodeTabsComponentNgFactory = i0.ɵccf(\"code-tabs\", i12.CodeTabsComponent, View_CodeTabsComponent_Host_0, { linenums: \"linenums\" }, {}, [\"*\"]);\nexport { CodeTabsComponentNgFactory as CodeTabsComponentNgFactory };\n","\n <!-- Use content projection so that the provided HTML's code-panes can be split into tabs -->\n <div #content style=\"display: none\"><ng-content></ng-content></div>\n\n <mat-card>\n <mat-tab-group class=\"code-tab-group\" disableRipple>\n <mat-tab style=\"overflow-y: hidden;\" *ngFor=\"let tab of tabs\">\n <ng-template mat-tab-label>\n <span class=\"{{ tab.class }}\">{{ tab.title }}</span>\n </ng-template>\n <aio-code class=\"{{ tab.class }}\"\n [language]=\"tab.language\"\n [linenums]=\"tab.linenums\"\n [path]=\"tab.path\"\n [region]=\"tab.region\"\n [title]=\"tab.title\">\n </aio-code>\n </mat-tab>\n </mat-tab-group>\n </mat-card>\n ","/**\n * @fileoverview This file was generated by the Angular template compiler. Do not edit.\n *\n * @suppress {suspiciousCode,uselessCode,missingProperties,missingOverride,checkTypes}\n * tslint:disable\n */ \nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./code-tabs.module\";\nimport * as i2 from \"../../../../node_modules/@angular/material/snack-bar/typings/index.ngfactory\";\nimport * as i3 from \"./code.component.ngfactory\";\nimport * as i4 from \"./code-tabs.component.ngfactory\";\nimport * as i5 from \"@angular/common\";\nimport * as i6 from \"@angular/cdk/observers\";\nimport * as i7 from \"@angular/cdk/overlay\";\nimport * as i8 from \"@angular/cdk/bidi\";\nimport * as i9 from \"@angular/material/snack-bar\";\nimport * as i10 from \"@angular/cdk/a11y\";\nimport * as i11 from \"@angular/cdk/layout\";\nimport * as i12 from \"./pretty-printer.service\";\nimport * as i13 from \"../../shared/logger.service\";\nimport * as i14 from \"../../shared/copier.service\";\nimport * as i15 from \"@angular/material/core\";\nimport * as i16 from \"@angular/material/card\";\nimport * as i17 from \"@angular/cdk/portal\";\nimport * as i18 from \"@angular/cdk/platform\";\nimport * as i19 from \"@angular/material/tabs\";\nimport * as i20 from \"@angular/cdk/scrolling\";\nimport * as i21 from \"@angular/material/button\";\nimport * as i22 from \"./code.module\";\nvar CodeTabsModuleNgFactory = i0.ɵcmf(i1.CodeTabsModule, [], function (_l) { return i0.ɵmod([i0.ɵmpd(512, i0.ComponentFactoryResolver, i0.ɵCodegenComponentFactoryResolver, [[8, [i2.MatSnackBarContainerNgFactory, i2.SimpleSnackBarNgFactory, i3.CodeComponentNgFactory, i4.CodeTabsComponentNgFactory]], [3, i0.ComponentFactoryResolver], i0.NgModuleRef]), i0.ɵmpd(4608, i5.NgLocalization, i5.NgLocaleLocalization, [i0.LOCALE_ID, [2, i5.ɵangular_packages_common_common_a]]), i0.ɵmpd(4608, i6.MutationObserverFactory, i6.MutationObserverFactory, []), i0.ɵmpd(4608, i7.Overlay, i7.Overlay, [i7.ScrollStrategyOptions, i7.OverlayContainer, i0.ComponentFactoryResolver, i7.OverlayPositionBuilder, i7.OverlayKeyboardDispatcher, i0.Injector, i0.NgZone, i5.DOCUMENT, i8.Directionality]), i0.ɵmpd(4608, i9.MatSnackBar, i9.MatSnackBar, [i7.Overlay, i10.LiveAnnouncer, i0.Injector, i11.BreakpointObserver, [3, i9.MatSnackBar], i9.MAT_SNACK_BAR_DEFAULT_OPTIONS]), i0.ɵmpd(4608, i12.PrettyPrinter, i12.PrettyPrinter, [i13.Logger]), i0.ɵmpd(4608, i14.CopierService, i14.CopierService, []), i0.ɵmpd(1073742336, i5.CommonModule, i5.CommonModule, []), i0.ɵmpd(1073742336, i8.BidiModule, i8.BidiModule, []), i0.ɵmpd(1073742336, i15.MatCommonModule, i15.MatCommonModule, [[2, i15.MATERIAL_SANITY_CHECKS]]), i0.ɵmpd(1073742336, i16.MatCardModule, i16.MatCardModule, []), i0.ɵmpd(1073742336, i17.PortalModule, i17.PortalModule, []), i0.ɵmpd(1073742336, i18.PlatformModule, i18.PlatformModule, []), i0.ɵmpd(1073742336, i15.MatRippleModule, i15.MatRippleModule, []), i0.ɵmpd(1073742336, i6.ObserversModule, i6.ObserversModule, []), i0.ɵmpd(1073742336, i19.MatTabsModule, i19.MatTabsModule, []), i0.ɵmpd(1073742336, i20.ScrollDispatchModule, i20.ScrollDispatchModule, []), i0.ɵmpd(1073742336, i7.OverlayModule, i7.OverlayModule, []), i0.ɵmpd(1073742336, i21.MatButtonModule, i21.MatButtonModule, []), i0.ɵmpd(1073742336, i9.MatSnackBarModule, i9.MatSnackBarModule, []), i0.ɵmpd(1073742336, i22.CodeModule, i22.CodeModule, []), i0.ɵmpd(1073742336, i1.CodeTabsModule, i1.CodeTabsModule, [])]); });\nexport { CodeTabsModuleNgFactory as CodeTabsModuleNgFactory };\n"],"sourceRoot":""}