smooothy
Version:
**Tiny real smooth fast cool all events _bring your own tooling slider._ Framework agnostic but it's a you problem.**
97 lines (93 loc) • 2.43 kB
TypeScript
// Generated by dts-bundle-generator v9.5.1
export interface VirtualScrollConfig {
mouseMultiplier: number;
touchMultiplier: number;
firefoxMultiplier: number;
useKeyboard: boolean;
passive: boolean;
}
export interface Viewport {
itemWidth: number;
wrapperWidth: number;
totalWidth: number;
itemHeight: number;
wrapperHeight: number;
totalHeight: number;
vertical: boolean;
}
export interface CoreConfig {
infinite: boolean;
snap: boolean;
variableWidth: boolean;
vertical: boolean;
dragSensitivity: number;
lerpFactor: number;
scrollSensitivity: number;
snapStrength: number;
speedDecay: number;
bounceLimit: number;
virtualScroll: VirtualScrollConfig;
setOffset: (viewport: Viewport) => number;
scrollInput: boolean;
onSlideChange?: (current: number, previous: number) => void;
onResize?: (core: Core) => void;
onUpdate?: (core: Core) => void;
}
declare class Core {
#private;
speed: number;
deltaTime: number;
config: CoreConfig;
wrapper: HTMLElement;
items: HTMLElement[];
viewport: Viewport;
itemWidths: number[];
itemOffsets: number[];
itemHeights: number[];
itemHeightOffsets: number[];
isDragging: boolean;
isTouching: boolean;
dragStart: number;
dragStartTarget: number;
isVisible: boolean;
current: number;
target: number;
maxScroll: number;
resizeTimeout?: ReturnType<typeof setTimeout>;
virtualScroll?: any;
observer?: IntersectionObserver;
touchStartY?: number;
touchStartX?: number;
touchPreviousX?: number;
touchPreviousY?: number;
scrollDirection?: "horizontal" | "vertical";
parallaxValues?: number[];
webglValue: number;
onSlideChange?: (current: number, previous: number) => void;
onResize?: (core: Core) => void;
onUpdate?: (core: Core) => void;
constructor(wrapper: HTMLElement, config?: Partial<CoreConfig>);
/** Update */
update(): void;
goToNext(): void;
goToPrev(): void;
goToIndex(index: number): void;
set snap(value: boolean);
getProgress(): number;
destroy(): void;
get currentSlide(): number;
/** Interfaces */
kill(): void;
init(): void;
set paused(value: boolean);
get paused(): boolean;
get progress(): number;
resize(): void;
}
export declare function lerp(v0: number, v1: number, t: number): number;
export declare function damp(a: number, b: number, lambda: number, deltaTime: number): number;
export declare function symmetricMod(value: number, base: number): number;
export {
Core as default,
};
export {};