UNPKG

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
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;