|
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; |
|
|
|
|
|
|
|
|
|
__previousElement?: Element; |
|
__activeElement?: Element; |
|
__previousStep?: DriveStep; |
|
__activeStep?: DriveStep; |
|
|
|
__activeOnDestroyed?: Element; |
|
__resizeTimeout?: number; |
|
__transitionCallback?: () => void; |
|
__activeStagePosition?: StageDefinition; |
|
__overlaySvg?: SVGSVGElement; |
|
}; |
|
|
|
let currentState: State = {}; |
|
|
|
export function setState<K extends keyof State>(key: K, value: State[K]) { |
|
currentState[key] = value; |
|
} |
|
|
|
export function getState(): State; |
|
export function getState<K extends keyof State>(key: K): State[K]; |
|
export function getState<K extends keyof State>(key?: K) { |
|
return key ? currentState[key] : currentState; |
|
} |
|
|
|
export function resetState() { |
|
currentState = {}; |
|
} |
|
|