supercharged-slider
Version:
A super modular tiny slider library.
34 lines (33 loc) • 1.17 kB
TypeScript
export declare type Hook<T extends unknown> = (props: T) => void;
export interface Slider {
element: HTMLElement;
wrapper: HTMLElement;
wrapperPosition: number;
slides: HTMLElement[];
slideStyles: Record<string, string | number>;
slideWidth: number;
slideHeight?: number;
activeView: number;
slidesPerView: number;
spaceBetween: number;
direction?: 'vertical';
middlewares: Middleware[];
next: () => void;
prev: () => void;
render: () => void;
slideTo: (index: number, silent?: boolean) => void;
updateSlideStyles: () => void;
scrollWrapperTo: (y: number) => void;
onSlideChange: (callback: Hook<Slider>) => void;
onBeforeSlideChange: (callback: Hook<Slider>) => void;
onCleanUp: (callback: Hook<void>) => void;
removeSlideChangeHook: (hook: Hook<Slider>) => void;
removeBeforeSlideChangeHook: (hook: Hook<Slider>) => void;
removeCleanUpHook: (hook: Hook<void>) => void;
runBeforeSlideChangeHooks: (slider: Slider) => void;
runSlideChangeHooks: (slider: Slider) => void;
}
export declare type Middleware = {
name: string;
callback: (slider: Slider) => void;
};