@nmathar/flipbook-vue3
Version:
Flipbook Vue 3 component
417 lines (416 loc) • 10.8 kB
TypeScript
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
/**
* The array of URLs of the images to display.
*/
pages: {
type: () => string[];
required: true;
};
/**
* The array of URLs of the high-resolution images to display.
* If not provided, the `pages` array is used.
*/
pagesHiRes: {
type: () => string[];
default: () => never[];
};
/**
* The duration of the flip animation in milliseconds.
*/
flipDuration: {
type: NumberConstructor;
default: number;
};
/**
* The duration of the zoom animation in milliseconds.
*/
zoomDuration: {
type: NumberConstructor;
default: number;
};
/**
* The array of zoom levels.
*/
zooms: {
type: () => number[];
default: () => number[];
};
/**
* The perspective of the flipbook in pixels.
*/
perspective: {
type: NumberConstructor;
default: number;
};
/**
* The number of polygons to use for the flip animation.
*/
nPolygons: {
type: NumberConstructor;
default: number;
};
/**
* The ambient lighting of the flipbook.
*/
ambient: {
type: NumberConstructor;
default: number;
};
/**
* The gloss of the flipbook.
*/
gloss: {
type: NumberConstructor;
default: number;
};
/**
* The minimum distance of the swipe gesture in pixels.
*/
swipeMin: {
type: NumberConstructor;
default: number;
};
/**
* Whether to display only one page at a time.
*/
singlePage: {
type: BooleanConstructor;
default: boolean;
};
/**
* The direction of the flip animation.
*/
forwardDirection: {
validator: (val: string) => boolean;
default: string;
};
/**
* Whether to center the flipbook horizontally.
*/
centering: {
type: BooleanConstructor;
default: boolean;
};
/**
* The starting page of the flipbook.
*/
startPage: {
type: NumberConstructor;
default: null;
};
/**
* The URL of the loading image.
*/
loadingImage: {
type: StringConstructor;
default: any;
};
/**
* Whether to enable click-to-zoom.
*/
clickToZoom: {
type: BooleanConstructor;
default: boolean;
};
/**
* Whether to enable drag-to-flip.
*/
dragToFlip: {
type: BooleanConstructor;
default: boolean;
};
/**
* The behavior of the mouse wheel.
*/
wheel: {
type: StringConstructor;
default: string;
};
/**
* The alt text for the images.
*/
alt: {
type: StringConstructor;
default: string;
};
}>, {}, {
viewport: HTMLDivElement | null;
viewWidth: number;
viewHeight: number;
imageWidth: number | null;
imageHeight: number | null;
displayedPages: number;
nImageLoad: number;
nImageLoadTrigger: number;
imageLoadCallback: (() => void) | null;
currentPage: number;
firstPage: number;
secondPage: number;
zoomIndex: number;
zoom: number;
zooming: boolean;
touchStartX: number | null;
touchStartY: number | null;
maxMove: number;
activeCursor: string | null;
hasTouchEvents: boolean;
hasPointerEvents: boolean;
isFlipping: boolean;
minX: number;
maxX: number;
preloadedImages: {};
flip: {
progress: number;
direction: string | null;
frontImage: string | null;
backImage: string | null;
auto: boolean;
opacity: number;
};
currentCenterOffset: number | null;
animatingCenter: boolean;
startScrollLeft: number;
startScrollTop: number;
scrollLeft: number;
scrollTop: number;
loadedImages: {};
}, {
IE(): boolean;
canFlipLeft(): boolean;
canFlipRight(): boolean;
canZoomIn(): boolean;
canZoomOut(): boolean;
numPages(): number;
page(): number;
zooms_(): number[];
canGoForward(): boolean;
canGoBack(): boolean;
leftPage(): number;
rightPage(): number;
showLeftPage(): string | null;
showRightPage(): string | null;
cursor(): string;
pageScale(): number;
pageWidth(): number;
pageHeight(): number;
xMargin(): number;
yMargin(): number;
polygonWidth(): string;
polygonHeight(): string;
polygonBgSize(): string;
polygonArray(): any;
boundingLeft(): number;
boundingRight(): number;
centerOffset(): number;
centerOffsetSmoothed(): number;
dragToScroll(): boolean;
scrollLeftMin(): number;
scrollLeftMax(): number;
scrollTopMin(): number;
scrollTopMax(): number;
scrollLeftLimited(): number;
scrollTopLimited(): number;
}, {
onResize(): void;
fixFirstPage(): void;
pageUrl(page: number, hiRes?: boolean): string | null;
pageUrlLoading(page: number, hiRes?: boolean): string | undefined;
flipLeft(): void;
flipRight(): void;
makePolygonArray(face: "front" | "back"): Array<[string, string | null, string | null, string, string, number]>;
computeLighting(rot: number, dRotate: number): string;
flipStart(direction: string, auto: boolean): Promise<void>;
delay(time: number): Promise<void>;
flipAuto(ease: boolean): void;
flipRevert(): void;
onImageLoad(trigger: number, cb: () => void): void;
didLoadImage(ev: Event): void;
zoomIn(zoomAt?: MouseEvent | Touch): void;
zoomOut(zoomAt?: MouseEvent | Touch): void;
zoomTo(zoom: number, zoomAt?: MouseEvent | Touch): void;
zoomAt(zoomAt: MouseEvent | Touch): void;
swipeStart(touch: Touch | PointerEvent | MouseEvent): void;
swipeMove(touch: Touch | PointerEvent | MouseEvent): boolean;
swipeEnd(touch: Touch | PointerEvent | MouseEvent): void;
onTouchStart(ev: TouchEvent): void;
onTouchMove(ev: TouchEvent): void;
onTouchEnd(ev: TouchEvent): void;
/**
* Handles the pointer down event.
* @param {PointerEvent} ev - The pointer event.
* @returns {void}
*/
onPointerDown(ev: PointerEvent): void;
onPointerMove(ev: PointerEvent): void;
onPointerUp(ev: PointerEvent): void;
onMouseDown(ev: MouseEvent): void;
onMouseMove(ev: MouseEvent): void;
onMouseUp(ev: MouseEvent): void;
dragScroll(x: number, y: number): void;
onWheel(ev: WheelEvent): void;
preloadImages(hiRes?: boolean): void;
goToPage(p: number): void;
loadImage(url: string): string;
}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("flip-left-start" | "flip-left-end" | "flip-right-start" | "flip-right-end" | "zoom-start" | "zoom-end")[], "flip-left-start" | "flip-left-end" | "flip-right-start" | "flip-right-end" | "zoom-start" | "zoom-end", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
/**
* The array of URLs of the images to display.
*/
pages: {
type: () => string[];
required: true;
};
/**
* The array of URLs of the high-resolution images to display.
* If not provided, the `pages` array is used.
*/
pagesHiRes: {
type: () => string[];
default: () => never[];
};
/**
* The duration of the flip animation in milliseconds.
*/
flipDuration: {
type: NumberConstructor;
default: number;
};
/**
* The duration of the zoom animation in milliseconds.
*/
zoomDuration: {
type: NumberConstructor;
default: number;
};
/**
* The array of zoom levels.
*/
zooms: {
type: () => number[];
default: () => number[];
};
/**
* The perspective of the flipbook in pixels.
*/
perspective: {
type: NumberConstructor;
default: number;
};
/**
* The number of polygons to use for the flip animation.
*/
nPolygons: {
type: NumberConstructor;
default: number;
};
/**
* The ambient lighting of the flipbook.
*/
ambient: {
type: NumberConstructor;
default: number;
};
/**
* The gloss of the flipbook.
*/
gloss: {
type: NumberConstructor;
default: number;
};
/**
* The minimum distance of the swipe gesture in pixels.
*/
swipeMin: {
type: NumberConstructor;
default: number;
};
/**
* Whether to display only one page at a time.
*/
singlePage: {
type: BooleanConstructor;
default: boolean;
};
/**
* The direction of the flip animation.
*/
forwardDirection: {
validator: (val: string) => boolean;
default: string;
};
/**
* Whether to center the flipbook horizontally.
*/
centering: {
type: BooleanConstructor;
default: boolean;
};
/**
* The starting page of the flipbook.
*/
startPage: {
type: NumberConstructor;
default: null;
};
/**
* The URL of the loading image.
*/
loadingImage: {
type: StringConstructor;
default: any;
};
/**
* Whether to enable click-to-zoom.
*/
clickToZoom: {
type: BooleanConstructor;
default: boolean;
};
/**
* Whether to enable drag-to-flip.
*/
dragToFlip: {
type: BooleanConstructor;
default: boolean;
};
/**
* The behavior of the mouse wheel.
*/
wheel: {
type: StringConstructor;
default: string;
};
/**
* The alt text for the images.
*/
alt: {
type: StringConstructor;
default: string;
};
}>> & Readonly<{
"onFlip-left-start"?: ((...args: any[]) => any) | undefined;
"onFlip-left-end"?: ((...args: any[]) => any) | undefined;
"onFlip-right-start"?: ((...args: any[]) => any) | undefined;
"onFlip-right-end"?: ((...args: any[]) => any) | undefined;
"onZoom-start"?: ((...args: any[]) => any) | undefined;
"onZoom-end"?: ((...args: any[]) => any) | undefined;
}>, {
wheel: string;
pagesHiRes: string[];
flipDuration: number;
zoomDuration: number;
zooms: number[];
perspective: number;
nPolygons: number;
ambient: number;
gloss: number;
swipeMin: number;
singlePage: boolean;
forwardDirection: string;
centering: boolean;
startPage: number;
loadingImage: string;
clickToZoom: boolean;
dragToFlip: boolean;
alt: string;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
export default _default;