nts-ng2-components
Version:
Paquete de componentes para Angular2 desarrollado por NITSNETS.
42 lines (34 loc) • 1.37 kB
text/typescript
import { Component, ElementRef, EventEmitter, Input, OnChanges, Output } from '@angular/core';
import { NtsOption } from '../../../models/option';
export class NtsTabsComponent implements OnChanges {
size: 'small';
tabs: NtsOption[];
tabSelected: string | number;
tabSelectedChange = new EventEmitter<string | number>();
constructor(private elementRef: ElementRef) { }
ngOnChanges(changes) {
this.applySelected();
}
applySelected() {
if (!this.tabs || !this.tabs.length) { this.selectTab(null, -1); return; }
let tab: NtsOption = null;
tab = this.tabs.find((t, i) => t.value && t.value === this.tabSelected || !t.value && i === this.tabSelected);
this.selectTab(tab, this.tabs.indexOf(tab));
}
selectTab(tab: NtsOption, i: number) {
if (tab && tab.value) {
if (this.tabSelected === tab.value) { return; }
this.tabSelected = tab.value;
this.tabSelectedChange.emit(tab.value);
} else {
if (this.tabSelected === i) { return; }
this.tabSelected = i;
this.tabSelectedChange.emit(i);
}
}
}