class TabManager { name: any; fields: any[]; constructor(tabName: any) { this.name = tabName; this.fields = []; } addField(fieldName: any, fieldValue: any) { this.fields.push({ name: fieldName, value: fieldValue }); } removeField(fieldName: any) { this.fields = this.fields.filter((f) => f.name !== fieldName); } } class TabsManager { tabs: any[]; constructor() { this.tabs = []; } getTab(tabName: any) { let tab = this.tabs.find((t: any) => t.name === tabName); if (!tab) { tab = new TabManager(tabName); this.tabs.push(tab); } return tab; } addTab(tabName: string) { return this.getTab(tabName); } removeTab(tabName: any) { this.tabs = this.tabs.filter((t: any) => t.name !== tabName); } cullTabs() { return this.tabs.filter((t: any) => t.fields.length > 0); } get() { return this.cullTabs(); } } export default TabsManager;