import { DriveStep } from "./driver"; | |
export type Config = { | |
animate?: boolean; | |
backdropColor?: string; | |
smoothScroll?: boolean; | |
allowClose?: boolean; | |
opacity?: number; | |
stagePadding?: number; | |
stageRadius?: number; | |
popoverOffset?: number; | |
showButtons?: boolean; | |
onHighlightStarted?: (element: Element | undefined, step: DriveStep) => void; | |
onHighlighted?: (element: Element | undefined, step: DriveStep) => void; | |
onDeselected?: (element: Element | undefined, step: DriveStep) => void; | |
}; | |
let currentConfig: Config = {}; | |
export function configure(config: Config = {}) { | |
currentConfig = { | |
animate: true, | |
allowClose: true, | |
opacity: 0.7, | |
smoothScroll: false, | |
stagePadding: 10, | |
stageRadius: 5, | |
popoverOffset: 10, | |
showButtons: true, | |
backdropColor: "#000", | |
...config, | |
}; | |
} | |
export function getConfig(): Config; | |
export function getConfig<K extends keyof Config>(key: K): Config[K]; | |
export function getConfig<K extends keyof Config>(key?: K) { | |
return key ? currentConfig[key] : currentConfig; | |
} | |