blob: 414b13350c9a2e9ab682c1ad6cf3ce0ebaa3eb3e [file] [log] [blame]
{"version":3,"file":"covalent-core-tab-select.js.map","sources":["ng://@covalent/core/tab-select/tab-option.component.ts","ng://@covalent/core/tab-select/tab-select.component.ts","ng://@covalent/core/tab-select/tab-select.module.ts"],"sourcesContent":["import {\n Component,\n Input,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n ViewChild,\n TemplateRef,\n OnInit,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { mixinDisabled, ICanDisable } from '@covalent/core/common';\n\nexport class TdTabOptionBase {\n constructor(public _viewContainerRef: ViewContainerRef,\n public _changeDetectorRef: ChangeDetectorRef) {}\n}\n\n/* tslint:disable-next-line */\nexport const _TdTabOptionMixinBase = mixinDisabled(TdTabOptionBase);\n\n@Component({\n selector: 'td-tab-option',\n templateUrl: './tab-option.component.html',\n styleUrls: ['./tab-option.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n /* tslint:disable-next-line */\n inputs: ['disabled'],\n})\nexport class TdTabOptionComponent extends _TdTabOptionMixinBase implements ICanDisable, OnInit {\n\n private _contentPortal: TemplatePortal<any>;\n get content(): TemplatePortal<any> {\n return this._contentPortal;\n }\n\n @ViewChild(TemplateRef) _content: TemplateRef<any>;\n\n /**\n * Value to which the option will be binded to.\n */\n @Input('value') value: any;\n\n constructor(_viewContainerRef: ViewContainerRef,\n _changeDetectorRef: ChangeDetectorRef) {\n super(_viewContainerRef, _changeDetectorRef);\n }\n\n ngOnInit(): void {\n this._contentPortal = new TemplatePortal(this._content, this._viewContainerRef);\n }\n\n}\n","import {\n Component,\n Input,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n ContentChildren,\n QueryList,\n OnInit,\n AfterContentInit,\n forwardRef,\n Output,\n EventEmitter,\n OnDestroy,\n} from '@angular/core';\nimport {\n NG_VALUE_ACCESSOR,\n} from '@angular/forms';\n\nimport { ThemePalette } from '@angular/material/core';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\n\nimport { ICanDisable,\n mixinDisabled,\n IControlValueAccessor,\n mixinControlValueAccessor,\n ICanDisableRipple,\n mixinDisableRipple,\n} from '@covalent/core/common';\n\nimport { Subscription } from 'rxjs';\n\nimport { TdTabOptionComponent } from './tab-option.component';\n\nexport class TdTabSelectBase {\n constructor(public _changeDetectorRef: ChangeDetectorRef) {}\n}\n\n/* tslint:disable-next-line */\nexport const _TdTabSelectMixinBase = mixinControlValueAccessor(mixinDisabled(mixinDisableRipple(TdTabSelectBase)));\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TdTabSelectComponent),\n multi: true,\n }],\n selector: 'td-tab-select',\n templateUrl: './tab-select.component.html',\n styleUrls: ['./tab-select.component.scss'],\n /* tslint:disable-next-line */\n inputs: ['value', 'disabled', 'disableRipple'],\n})\nexport class TdTabSelectComponent extends _TdTabSelectMixinBase\n implements IControlValueAccessor, ICanDisable, ICanDisableRipple, OnInit, AfterContentInit, OnDestroy {\n\n private _subs: Subscription[] = [];\n\n private _values: any[] = [];\n private _selectedIndex: number = 0;\n private _stretchTabs: boolean = false;\n\n get selectedIndex(): number {\n return this._selectedIndex;\n }\n\n /**\n * Gets all tab option children\n */\n @ContentChildren(TdTabOptionComponent) readonly _tabOptions: QueryList<TdTabOptionComponent>;\n\n get tabOptions(): TdTabOptionComponent[] {\n return this._tabOptions ? this._tabOptions.toArray() : undefined;\n }\n\n /**\n * Makes the tabs stretch to fit the parent container.\n */\n @Input('stretchTabs')\n set stretchTabs(stretchTabs: boolean) {\n this._stretchTabs = coerceBooleanProperty(stretchTabs);\n }\n get stretchTabs(): boolean {\n return this._stretchTabs;\n }\n\n /**\n * Color of the tab group.\n */\n @Input('color') color: ThemePalette;\n\n /**\n * Background color of the tab group.\n */\n @Input('backgroundColor') backgroundColor: ThemePalette;\n\n /**\n * Event that emits whenever the raw value of the select changes. This is here primarily\n * to facilitate the two-way binding for the `value` input.\n */\n @Output() readonly valueChange: EventEmitter<any> = new EventEmitter<any>();\n\n constructor(_changeDetectorRef: ChangeDetectorRef) {\n super(_changeDetectorRef);\n }\n\n ngOnInit(): void {\n // subscribe to check if value changes and update the selectedIndex internally.\n this._subs.push(\n this.valueChanges.subscribe((value: any) => {\n this._setValue(value);\n }),\n );\n }\n\n ngAfterContentInit(): void {\n // subscribe to listen to any tab changes.\n this._refreshValues();\n this._subs.push(\n this._tabOptions.changes.subscribe(() => {\n this._refreshValues();\n }),\n );\n // initialize value\n Promise.resolve().then(() => {\n this._setValue(this.value);\n });\n }\n\n ngOnDestroy(): void {\n if (this._subs && this._subs.length) {\n this._subs.forEach((sub: Subscription) => {\n sub.unsubscribe();\n });\n }\n }\n\n /**\n * Method executed when user selects a different tab\n * This updates the new selectedIndex and infers what value should be mapped to.\n */\n selectedIndexChange(selectedIndex: number): void {\n this._selectedIndex = selectedIndex;\n let value: any = this._values[selectedIndex];\n this.value = value;\n this.valueChange.emit(value);\n this.onChange(value);\n }\n\n /**\n * Refresh the values array whenever the number of tabs gets updated\n */\n private _refreshValues(): void {\n this._values = this.tabOptions.map((tabOption: TdTabOptionComponent) => {\n return tabOption.value;\n });\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Try to set value depending if its part of our options\n * else set the value of the first tab.\n */\n private _setValue(value: any): void {\n let index: number = this._values.indexOf(value);\n if (index > -1) {\n this._selectedIndex = index;\n } else {\n this.value = this._values.length ? this._values[0] : undefined;\n this._selectedIndex = 0;\n }\n this._changeDetectorRef.markForCheck();\n }\n\n}\n","import { NgModule } from '@angular/core';\n\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { PortalModule } from '@angular/cdk/portal';\nimport { MatTabsModule } from '@angular/material/tabs';\n\nimport { TdTabSelectComponent } from './tab-select.component';\nimport { TdTabOptionComponent } from './tab-option.component';\n\n@NgModule({\n declarations: [\n TdTabSelectComponent,\n TdTabOptionComponent,\n ], // directives, components, and pipes owned by this NgModule\n imports: [\n /** Angular Modules */\n CommonModule,\n FormsModule,\n /** Material Modules */\n PortalModule,\n MatTabsModule,\n ], // modules needed to run this module\n exports: [\n TdTabSelectComponent,\n TdTabOptionComponent,\n ],\n})\nexport class CovalentTabSelectModule {}\n"],"names":[],"mappings":"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"}