import { StageDefinition } from "./stage"; import { PopoverDOM } from "./popover"; import { DriveStep } from "./driver"; export type State = { // Whether driver is initialized or not isInitialized?: boolean; // Used to bounce the resize event resizeTimeout?: number; // Used while transitioning between stages previousElement?: Element; activeElement?: Element; transitionCallback?: () => void; activeStep?: DriveStep; previousStep?: DriveStep; activeStagePosition?: StageDefinition; stageSvg?: SVGSVGElement; popover?: PopoverDOM; }; let currentState: State = {}; export function setState(key: K, value: State[K]) { currentState[key] = value; } export function getState(): State; export function getState(key: K): State[K]; export function getState(key?: K) { return key ? currentState[key] : currentState; } export function resetState() { currentState = {}; }