123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263 |
- // Type definitions for svg-pan-zoom v3.5.0
- // Project: https://github.com/bumbu/svg-pan-zoom
- // Definitions by: César Vidril <https://github.com/Yimiprod>
- // Definitions: https://github.com/bumbu/svg-pan-zoom
- declare namespace SvgPanZoom {
- interface Options {
- /**
- * can be querySelector string or SVGElement (default enabled)
- * @type {string|HTMLElement|SVGElement}
- */
- viewportSelector?: string|HTMLElement|SVGElement;
- /**
- * enable or disable panning (default enabled)
- * @type {boolean}
- */
- panEnabled?: boolean;
- /**
- * insert icons to give user an option in addition to mouse events to control pan/zoom (default disabled)
- * @type {boolean}
- */
- controlIconsEnabled?: boolean;
- /**
- * enable or disable zooming (default enabled)
- * @type {boolean}
- */
- zoomEnabled?: boolean;
- /**
- * enable or disable zooming by double clicking (default enabled)
- * @type {boolean}
- */
- dblClickZoomEnabled?: boolean;
- /**
- * enable or disable zooming by scrolling (default enabled)
- * @type {boolean}
- */
- mouseWheelZoomEnabled?: boolean;
- /**
- * prevent mouse events to bubble up (default enabled)
- * @type {boolean}
- */
- preventMouseEventsDefault?: boolean;
- zoomScaleSensitivity?: number; // Zoom sensitivity (Default 0.2)
- minZoom?: number; // Minimum Zoom level (Default 0.5)
- maxZoom?: number; // Maximum Zoom level (Default 10)
- fit?: boolean; // enable or disable viewport fit in SVG (default true)
- contain?: boolean; // (default true)
- center?: boolean; // enable or disable viewport centering in SVG (default true)
- refreshRate?: number | "auto"; // (default 'auto')
- beforeZoom?: (oldScale: number, newScale: number) => void | boolean;
- onZoom?: (newScale: number) => void;
- beforePan?: (oldPan: Point, newPan: Point) => void | boolean | PointModifier;
- onPan?: (newPan: Point) => void;
- onUpdatedCTM?: (newCTM: SVGMatrix) => void;
- customEventsHandler?: CustomEventHandler; // (default null)
- eventsListenerElement?: SVGElement; // (default null)
- }
- interface CustomEventHandler {
- init: (options: CustomEventOptions) => void;
- haltEventListeners: string[];
- destroy: Function;
- }
- interface CustomEventOptions {
- svgElement: SVGSVGElement;
- instance: Instance;
- }
- interface Point {
- x: number;
- y: number;
- }
- interface PointModifier {
- x: number|boolean;
- y: number|boolean;
- }
- interface Sizes {
- width: number;
- height: number;
- realZoom: number;
- viewBox: {
- x: number;
- y: number;
- width: number;
- height: number;
- };
- }
- interface Instance {
- /**
- * Creates a new SvgPanZoom instance with given element selector.
- *
- * @param {string|HTMLElement|SVGElement} svg selector of the tag on which it is to be applied.
- * @param {Object} options provides customization options at the initialization of the object.
- * @return {Instance} Current instance
- */
- (svg: string|HTMLElement|SVGElement, options?: Options): Instance;
- /**
- * Enables Panning on svg element
- * @return {Instance} Current instance
- */
- enablePan(): Instance;
- /**
- * Disables panning on svg element
- * @return {Instance} Current instance
- */
- disablePan(): Instance;
- /**
- * Checks if Panning is enabled or not
- * @return {Boolean} true or false based on panning settings
- */
- isPanEnabled(): boolean;
- setBeforePan(fn: (oldPoint: Point, newPoint: Point) => void | boolean | PointModifier): Instance;
- setOnPan(fn: (point: Point) => void): Instance;
- /**
- * Pan to a rendered position
- *
- * @param {Object} point {x: 0, y: 0}
- * @return {Instance} Current instance
- */
- pan(point: Point): Instance;
- /**
- * Relatively pan the graph by a specified rendered position vector
- *
- * @param {Object} point {x: 0, y: 0}
- * @return {Instance} Current instance
- */
- panBy(point: Point): Instance;
- /**
- * Get pan vector
- *
- * @return {Object} {x: 0, y: 0}
- * @return {Instance} Current instance
- */
- getPan(): Point;
- resetPan(): Instance;
- enableZoom(): Instance;
- disableZoom(): Instance;
- isZoomEnabled(): boolean;
- enableControlIcons(): Instance;
- disableControlIcons(): Instance;
- isControlIconsEnabled(): boolean;
- enableDblClickZoom(): Instance;
- disableDblClickZoom(): Instance;
- isDblClickZoomEnabled(): boolean;
- enableMouseWheelZoom(): Instance;
- disableMouseWheelZoom(): Instance;
- isMouseWheelZoomEnabled(): boolean;
- setZoomScaleSensitivity(scale: number): Instance;
- setMinZoom(zoom: number): Instance;
- setMaxZoom(zoom: number): Instance;
- setBeforeZoom(fn: (oldScale: number, newScale: number) => void | boolean): Instance;
- setOnZoom(fn: (scale: number) => void): Instance;
- zoom(scale: number): void;
- zoomIn(): Instance;
- zoomOut(): Instance;
- zoomBy(scale: number): Instance;
- zoomAtPoint(scale: number, point: Point): Instance;
- zoomAtPointBy(scale: number, point: Point): Instance;
- resetZoom(): Instance;
- /**
- * Get zoom scale/level
- *
- * @return {float} zoom scale
- */
- getZoom(): number;
- setOnUpdatedCTM(fn: (newCTM: SVGMatrix) => void): Instance;
- /**
- * Adjust viewport size (only) so it will fit in SVG
- * Does not center image
- *
- * @return {Instance} Current instance
- */
- fit(): Instance;
- /**
- * Adjust viewport size (only) so it will contain in SVG
- * Does not center image
- *
- * @return {Instance} Current instance
- */
- contain(): Instance;
- /**
- * Adjust viewport pan (only) so it will be centered in SVG
- * Does not zoom/fit image
- *
- * @return {Instance} Current instance
- */
- center(): Instance;
- /**
- * Recalculates cached svg dimensions and controls position
- *
- * @return {Instance} Current instance
- */
- resize(): Instance;
- /**
- * Get all calculate svg dimensions
- *
- * @return {Object} {width: 0, height: 0, realZoom: 0, viewBox: { width: 0, height: 0 }}
- */
- getSizes(): Sizes;
- reset(): Instance;
- /**
- * Update content cached BorderBox
- * Use when viewport contents change
- *
- * @return {Instance} Current instance
- */
- updateBBox(): Instance;
- destroy(): void;
- }
- }
- declare const svgPanZoom: SvgPanZoom.Instance;
- declare module "svg-pan-zoom" {
- export = svgPanZoom;
- }
|