import { Component, Input, AfterContentInit, ContentChildren, QueryList, HostBinding } from '@angular/core'; import { TabComponent } from './children/tab.component'; import { SvgIconComponent } from "./../../../src/angular/svg-icon/svg-icon.component"; import { Mode, Placement, Size } from './../common/enums'; import template from "./tabs.component.html"; @Component({ selector: 'sdc-tabs', template: template }) export class TabsComponent implements AfterContentInit { @HostBinding('class') classes = 'sdc-tabs sdc-tabs-header'; @ContentChildren(TabComponent) private tabs: QueryList; public _size = Size.medium; public selectTab(tab: TabComponent) { // deactivate all tabs this.tabs.toArray().forEach((_tab: TabComponent) => { _tab.active = false; _tab.titleIconMode = Mode.secondary; }); // activate the tab the user has clicked on. tab.active = true; tab.titleIconMode = Mode.primary; } public ngAfterContentInit() { // get all active tabs const activeTabs = this.tabs.filter((tab) => tab.active); // if there is no active tab set, activate the first if (activeTabs.length === 0) { this.selectTab(this.tabs.first); } } }