From 519d54cb75d9bbcacb41a59ec1c0ad2a6492202d Mon Sep 17 00:00:00 2001 From: Oleg Vaskevich Date: Sun, 17 Jun 2018 14:59:48 -0700 Subject: [PATCH] Add TypeScript types --- index.d.ts | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 index.d.ts diff --git a/index.d.ts b/index.d.ts new file mode 100644 index 0000000..6d58a72 --- /dev/null +++ b/index.d.ts @@ -0,0 +1,65 @@ +import {EventEmitter} from 'events'; +import {WebviewTag} from 'electron'; + +class ElectronTabs extends EventEmitter { + constructor(options?: ElectronTabs.TabGroupOptions); + addTab(options?: ElectronTabs.TabOptions): ElectronTabs.Tab; + getTab(id: string): ElectronTabs.Tab | null; + getTabByPosition(position: number): ElectronTabs.Tab | null; + getTabByRelPosition(position: number): ElectronTabs.Tab | null; + getActiveTab(): ElectronTabs.Tab | null; + getTabs(): ElectronTabs.Tab[]; + eachTab( + fn: (this: T, currentTab: ElectronTabs.Tab, index: number, tabs: ElectronTabs.Tab[]) => void, + thisArg?: T, + ): void; + tabContainer: HTMLElement; +} + +namespace ElectronTabs { + export interface TabGroupOptions { + tabContainerSelector?: string; + buttonsContainerSelector?: string; + viewContainerSelector?: string; + tabClass?: string; + viewClass?: string; + closeButtonText?: string; + newTabButtonText?: string; + newTab?: TabOptions | (() => TabOptions); + ready?: (tabGroup: ElectronTabs) => void; + } + + export interface TabOptions { + title?: string; + src?: string; + badge?: string; + iconURL?: string; + icon?: string; + closable?: boolean; + webviewAttributes?: {[key: string]: any}; + visible?: boolean; + active?: boolean; + ready?: (tab: Tab) => void; + } + + export interface Tab extends EventEmitter { + setTitle(title: string): void; + getTitle(): string; + setBadge(badge: string): void; + getBadge(): string; + setIcon(iconURL?: string, icon?: undefined | null): void; + setIcon(iconURL: undefined | null, icon: string): void; + getIcon(): string; + setPosition(position: number): Tab | null; + getPosition(fromRight?: boolean): number; + activate(): void; + show(shown?: boolean): void; + hide(): void; + flash(shown?: boolean): void; + unflash(): void; + close(force?: boolean): void; + webview: WebviewTag; + } +} + +export = ElectronTabs;