import { StageDefinition } from "./overlay"; import { PopoverDOM } from "./popover"; import { DriveStep } from "./driver"; export type State = { isInitialized?: boolean; activeIndex?: number; activeElement?: Element; activeStep?: DriveStep; previousElement?: Element; previousStep?: DriveStep; popover?: PopoverDOM; // actual values considering the animation // and delays. These are used to determine // the positions etc. __previousElement?: Element; __activeElement?: Element; __previousStep?: DriveStep; __activeStep?: DriveStep; __activeOnDestroyed?: Element; __resizeTimeout?: number; __transitionCallback?: () => void; __activeStagePosition?: StageDefinition; __overlaySvg?: SVGSVGElement; }; 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 = {}; }