epic-slidy
Version:
An EPIC slider
69 lines (68 loc) • 2.36 kB
TypeScript
export interface GenericObject {
[key: string]: any;
}
export interface Options {
transition: Transition['cb'];
auto?: boolean;
click?: boolean;
controls?: boolean | string;
debounce?: number;
drag?: boolean;
group?(): number;
height?: 'auto' | number;
index?: number;
interval?: number;
keyboard?: boolean;
loop?: boolean;
namespace?: string;
nav?: boolean | string;
pagination?: boolean | string;
pause?: boolean;
preserveGroup?: boolean;
queue?: number;
resize?: boolean;
reverse?: boolean;
swipe?: boolean;
tap?: boolean;
zerofill?: boolean | number;
}
interface BaseAction {
trigger: Trigger;
animate?: boolean;
}
/**
* Initiated by Slidy `slide` method, used by manager.
*/
export interface Action extends BaseAction {
index?: number;
move: Move;
}
/**
* Used by transition callback.
*/
export interface TransitionInfos extends BaseAction {
direction: Direction;
currentIndex: number;
newIndex: number;
currentGroup: number;
newGroup: number;
}
export declare type Direction = 'prev' | 'next';
export declare type Move = Direction | 'to';
export declare type Trigger = 'auto' | 'click' | 'tap' | 'drag' | 'swipe' | 'nav' | 'pagination' | 'controls';
export declare type GestureDirection = 'left' | 'right';
export declare type SupportedEvents = 'click' | 'tap' | 'drag' | 'swipe';
export declare type SupportedTypes = 'click' | 'mousedown' | 'mouseup' | 'mousemove' | 'touchstart' | 'touchend' | 'touchmove' | 'pointerdown' | 'pointerup' | 'pointermove';
export interface Transition {
cb(currentSlides: HTMLElement | HTMLElement[], newSlides: HTMLElement | HTMLElement[], infos?: TransitionInfos, context?: any, data?: any): Promise<any>;
}
export declare type HooksNames = 'beforeInit' | 'afterInit' | 'afterResize' | 'preventSlide' | 'beforeSlide' | 'afterSlide';
export interface HooksCallbacks {
beforeInit: (el: HTMLElement) => void;
afterInit: (el: HTMLElement) => void;
afterResize: (el: HTMLElement) => void;
preventSlide: (action: Action) => boolean;
beforeSlide: (infos: TransitionInfos, context?: any, data?: any) => void;
afterSlide: (infos: TransitionInfos, context?: any, data?: any) => void;
}
export {};