UNPKG

@gravity-ui/graph

Version:

Modern graph editor component

61 lines (60 loc) 1.81 kB
import { Tree } from "./Tree"; interface IScheduler { performUpdate: (time: number) => void; } export declare enum ESchedulerPriority { HIGHEST = 0, HIGH = 1, MEDIUM = 2, LOW = 3, LOWEST = 4 } export declare class GlobalScheduler { private schedulers; private _cAFID; private toRemove; private visibilityChangeHandler; constructor(); /** * Setup listener for page visibility changes. * When tab becomes visible after being hidden, force immediate update. * This fixes the issue where tabs opened in background don't render HTML until interaction. */ private setupVisibilityListener; /** * Handle page visibility changes. * When page becomes visible, perform immediate update if scheduler is running. */ private handleVisibilityChange; /** * Cleanup visibility listener */ private cleanupVisibilityListener; getSchedulers(): [IScheduler[], IScheduler[], IScheduler[], IScheduler[], IScheduler[]]; addScheduler(scheduler: IScheduler, index?: ESchedulerPriority): () => void; removeScheduler(scheduler: IScheduler, index?: ESchedulerPriority): void; start(): void; stop(): void; /** * Cleanup method to be called when GlobalScheduler is no longer needed. * Stops the scheduler and removes event listeners. */ destroy(): void; tick(): void; performUpdate(): void; } export declare const globalScheduler: GlobalScheduler; export declare const scheduler: GlobalScheduler; export declare class Scheduler { private sheduled; private root; constructor(); setRoot(root: Tree): void; start(): void; stop(): void; update(): void; iterator(node: Tree): boolean; scheduleUpdate(): void; performUpdate(): void; } export {};