File size: 1,623 Bytes
70d8f15 fe7906f 70d8f15 66a740c a688e23 82a88c5 4c98241 e3d3deb edd7dca 9bde4cc fe7906f 70d8f15 93af367 9a49612 eb375ea 215369d 9a49612 66a740c 4c98241 e3d3deb c38b220 edd7dca 9bde4cc 9a49612 a688e23 66a740c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
import { DriveStep } from "./driver";
import { AllowedButtons } from "./popover";
export type Config = {
animate?: boolean;
backdropColor?: string;
smoothScroll?: boolean;
allowClose?: boolean;
opacity?: number;
stagePadding?: number;
stageRadius?: number;
popoverOffset?: number;
showButtons?: AllowedButtons[];
// Button texts
nextBtnText?: string;
prevBtnText?: string;
closeBtnText?: string;
// State based callbacks, called upon state changes
onHighlightStarted?: (element: Element | undefined, step: DriveStep) => void;
onHighlighted?: (element: Element | undefined, step: DriveStep) => void;
onDeselected?: (element: Element | undefined, step: DriveStep) => void;
onClose?: (element: Element | undefined, step: DriveStep) => void;
// Event based callbacks, called upon events
onNextClick?: (element: Element | undefined, step: DriveStep) => void;
onPreviousClick?: (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"],
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;
}
|