@fancyapps/ui
Version:
Robust JavaScript UI Component Library
51 lines (50 loc) • 1.8 kB
TypeScript
import { GesturesEventObject } from "../libs/gestures";
import { type PanzoomOptions, type PanzoomInstance, type PanzoomRenderInfo, PanzoomAction } from "../panzoom/panzoom";
import { type CarouselInstance, type CarouselSlide } from "./carousel";
export type ZoomableInstance = ReturnType<typeof Zoomable>;
declare module "./carousel" {
interface CarouselEventArgs {
"panzoom:init": [CarouselSlide];
"panzoom:click": [CarouselSlide, GesturesEventObject];
"panzoom:dblClick": [CarouselSlide, GesturesEventObject];
"panzoom:wheel": [CarouselSlide, WheelEvent, Number];
"panzoom:action": [CarouselSlide, PanzoomAction];
"panzoom:render": [CarouselSlide, PanzoomRenderInfo];
"panzoom:animationStart": [CarouselSlide];
"panzoom:animationEnd": [CarouselSlide];
}
interface CarouselOptions {
Zoomable?: false | Partial<ZoomableOptions>;
}
interface CarouselPlugins {
Zoomable: CarouselPlugin & ZoomableInstance;
}
interface CarouselSlide {
alt?: string;
srcset?: string;
sizes?: string;
lazySrc?: string;
lazySrcset?: string;
lazySizes?: string;
panzoomRef?: PanzoomInstance;
type?: "html" | "image" | string;
}
}
export type ZoomableOptions = {
/**
* Optional custom Panzoom options
*/
Panzoom?: Partial<PanzoomOptions>;
/**
* HTML template for carousel slide content containing an image
*/
tpl: string | ((slide: CarouselSlide) => string);
};
export declare const Zoomable: () => {
init: (carousel: CarouselInstance) => void;
destroy: () => void;
/**
* Execute a Panzoom action on the current slide
*/
execute: (action: PanzoomAction, ...args: any[]) => void;
};