UNPKG

detect-tab

Version:

A comprehensive tab detection and management library for web applications

104 lines 2.59 kB
import { TabState, TabEvent, DetectTabOptions, TabInfo, TabEventCallback, TabStateChangeCallback, TabFocusCallback } from './types'; /** * Main DetectTab class for tab detection and management */ export declare class DetectTab { private options; private listeners; private stateChangeListeners; private focusListeners; private info; private startTime; private lastStateChange; private visibilityProperties; private isActive; constructor(options?: DetectTabOptions); /** * Start tab detection */ start(): void; /** * Stop tab detection */ stop(): void; /** * Get current tab information */ getTabInfo(): TabInfo; /** * Check if tab is currently visible */ isVisible(): boolean; /** * Check if tab is currently focused */ isFocused(): boolean; /** * Get current tab state */ getState(): TabState; /** * Get formatted time statistics */ getTimeStats(): { totalVisibleTime: string; totalHiddenTime: string; timeInCurrentState: string; }; /** * Add event listener for specific tab events */ on(event: TabEvent, callback: TabEventCallback): void; /** * Remove event listener */ off(event: TabEvent, callback: TabEventCallback): void; /** * Add state change listener */ onStateChange(callback: TabStateChangeCallback): void; /** * Remove state change listener */ offStateChange(callback: TabStateChangeCallback): void; /** * Add focus change listener */ onFocusChange(callback: TabFocusCallback): void; /** * Remove focus change listener */ offFocusChange(callback: TabFocusCallback): void; /** * Clear all persisted data */ clearPersistedData(): void; /** * Reset all statistics */ reset(): void; /** * Destroy the instance and clean up */ destroy(): void; private createInitialTabInfo; private getCurrentState; private getCurrentFocus; private attachEventListeners; private detachEventListeners; private handleVisibilityChange; private handleFocus; private handleBlur; private handleBeforeUnload; private handleUnload; private handlePageShow; private handlePageHide; private updateState; private updateFocus; private updateTimeInState; private emitEvent; private savePersistedData; private loadPersistedData; private log; } //# sourceMappingURL=DetectTab.d.ts.map