|
import { DriveStep } from "./driver"; |
|
import {AllowedButtons, PopoverDOM} from "./popover"; |
|
|
|
export type Config = { |
|
steps?: DriveStep[]; |
|
|
|
animate?: boolean; |
|
backdropColor?: string; |
|
smoothScroll?: boolean; |
|
allowClose?: boolean; |
|
opacity?: number; |
|
stagePadding?: number; |
|
stageRadius?: number; |
|
allowKeyboardControl?: boolean; |
|
|
|
|
|
popoverClass?: string; |
|
popoverOffset?: number; |
|
showButtons?: AllowedButtons[]; |
|
disableButtons?: AllowedButtons[]; |
|
|
|
|
|
nextBtnText?: string; |
|
prevBtnText?: string; |
|
closeBtnText?: string; |
|
doneBtnText?: string; |
|
|
|
|
|
onPopoverRendered?: (popover: PopoverDOM) => void; |
|
|
|
|
|
onOverlayClick?: (element: Element | undefined, step: DriveStep) => void; |
|
onHighlightStarted?: (element: Element | undefined, step: DriveStep) => void; |
|
onHighlighted?: (element: Element | undefined, step: DriveStep) => void; |
|
onDeselected?: (element: Element | undefined, step: DriveStep) => void; |
|
onDestroyed?: (element: Element | undefined, step: DriveStep) => void; |
|
|
|
|
|
onNextClick?: (element: Element | undefined, step: DriveStep) => void; |
|
onPrevClick?: (element: Element | undefined, step: DriveStep) => void; |
|
onCloseClick?: (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: ["next", "previous", "close"], |
|
disableButtons: [], |
|
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; |
|
} |
|
|