UNPKG

leaf-flip

Version:

A modern TypeScript library for creating realistic page turn effects

104 lines (98 loc) 3.11 kB
type Corner = 'tl' | 'tr' | 'bl' | 'br'; type CornerDirection = 'backward' | 'forward' | 'all'; type CornerArray = Corner[]; type DisplayMode = 'single' | 'double'; interface LeafOptions { page?: number; pages?: number; width?: number; height?: number; gradients?: boolean; duration?: number; acceleration?: boolean; display?: DisplayMode; when?: Record<string, (event: Event) => void>; corners?: { [key in CornerDirection]?: CornerArray; }; } interface FlipOptions { folding?: HTMLElement | null; corners?: 'backward' | 'forward' | 'all'; cornerSize?: number; gradients?: boolean; duration?: number; acceleration?: boolean; } interface Point2D { x: number; y: number; } declare class FlipPage { private element; private options; private data; private isTurning; private isDisabled; constructor(element: HTMLElement, options?: Partial<FlipOptions>); private initialize; private setupWrapper; private setupEventListeners; private handleStart; private handleMove; private handleEnd; private getPoint; private detectCorner; private updateFlip; private applyTransform; private completeFlip; resize(): void; flip(corner: string): void; private getDefaultCornerPoint; disable(disabled: boolean): void; destroy(): void; } declare class LeafPage { private element; private options; private data; constructor(element: HTMLElement, options?: Partial<LeafOptions>); private initialize; private setupEventListeners; private handleStart; private handleMove; private handleEnd; private getEventPoint; private detectCorner; addPage(element: HTMLElement, page?: number): this; private getPageWidth; setDisplay(display: 'single' | 'double'): void; private updatePagesPosition; setPage(pageNumber: number): void; next(): void; previous(): void; private view; private dispatchEvent; destroy(): void; private startFlip; private calculateFoldPosition; private updateFlip; private applyFoldTransform; private completeFlip; } declare function createTurnPage(element: HTMLElement, options?: Partial<LeafOptions>): LeafPage; declare function createFlipPage(element: HTMLElement, options?: Partial<FlipOptions>): FlipPage; declare class Utils { private static vendor; private static has3d?; static getVendorPrefix(): string; static has3DSupport(): boolean; static translate(x: number, y: number, use3d: boolean): string; static rotate(degrees: number): string; static createPoint2D(x: number, y: number): Point2D; static transform(...transforms: string[]): string; private static memoizedBezier; static bezier(p1: Point2D, p2: Point2D, p3: Point2D, p4: Point2D, t: number): Point2D; static clearMemoization(): void; } export { type Corner, type CornerArray, type CornerDirection, type DisplayMode, type FlipOptions, FlipPage, type LeafOptions, LeafPage, type Point2D, Utils, createFlipPage, createTurnPage };