zero-g
Version:
A utility library for efficiently adding panning and zooming capabilities to any DOM element. Comes with out-of-the-box TypeScript typings!
58 lines (57 loc) • 1.89 kB
TypeScript
export interface IPannerOptions {
changeCursorOnPan?: boolean;
disabled?: boolean;
refitOnResize?: boolean;
onScaleChange?: (currentScale: number) => void;
onPanEnd?: (panEvent: IPanEvent, instance: ZeroGInstance) => void;
onPanMove?: (panEvent: IPanEvent, instance: ZeroGInstance) => void;
onPanStart?: (panEvent: IPanEvent, instance: ZeroGInstance) => void;
}
export declare class ZeroGInstance {
private element;
private options;
private controlledByDockingProcedure;
private lastX;
private lastY;
private zoom;
private mousedown;
private hasLoadHandler;
private windowResizeTimeout;
private naturalHeight;
private naturalWidth;
private orientation;
private parent;
constructor(element: HTMLElement, options?: IPannerOptions, controlledByDockingProcedure?: boolean);
private get currentScale();
private bindHandlers;
private unbindHandlers;
private computeNaturalDimensions;
private init;
private fitLandscape;
private fitPortrait;
private adjustIfOverflown;
private swapMouseCursor;
private doPan;
private preventDrag;
private handleMouseDown;
private handleMouseUp;
private handleMouseMove;
private handleWindowResize;
private handleInitialLoad;
private fit;
private queueInitialFit;
destroy(): void;
controlledPan(panEvent: IPanEvent): void;
set<K extends keyof IPannerOptions>(prop: K, val: IPannerOptions[K], reinit?: boolean): void;
zoomFit(): void;
zoomInOut(level: number): void;
pan(x: number, y: number, lastX: number | null, lastY: number | null): void;
clearLast(): void;
}
export interface IPanEvent {
x: number;
y: number;
lastX: number | null;
lastY: number | null;
}
export default function createZeroG(element: HTMLElement, options?: IPannerOptions): ZeroGInstance;