flexacore-ui-dev
Version:
Universal UI Framework for CDN, React, Angular, Vue, Svelte with TypeScript support
53 lines (49 loc) • 1.59 kB
text/typescript
import { Component, Input, Output, EventEmitter, ContentChildren, QueryList, AfterContentInit } from '@angular/core';
export class FCTabComponent {
title: string = '';
active: boolean = false;
disabled: boolean = false;
}
export class FCTabsComponent implements AfterContentInit {
tabs!: QueryList<FCTabComponent>;
activeIndex: number = 0;
activeIndexChange = new EventEmitter<number>();
ngAfterContentInit() {
this.selectTab(this.activeIndex);
}
selectTab(index: number) {
if (index >= 0 && index < this.tabs.length && !this.tabs.toArray()[index].disabled) {
this.tabs.forEach((tab, i) => tab.active = i === index);
this.activeIndex = index;
this.activeIndexChange.emit(index);
}
}
}