import Eventful from 'zrender/lib/core/Eventful.js';
|
import { ZRenderType } from 'zrender/lib/zrender.js';
|
import { ZRElementEvent, RoamOptionMixin } from '../../util/types.js';
|
import { Bind3 } from 'zrender/lib/core/util.js';
|
import Group from 'zrender/lib/graphic/Group.js';
|
export declare type RoamType = RoamOptionMixin['roam'];
|
interface RoamOption {
|
zoomOnMouseWheel?: boolean | 'ctrl' | 'shift' | 'alt';
|
moveOnMouseMove?: boolean | 'ctrl' | 'shift' | 'alt';
|
moveOnMouseWheel?: boolean | 'ctrl' | 'shift' | 'alt';
|
/**
|
* If fixed the page when pan
|
*/
|
preventDefaultMouseMove?: boolean;
|
}
|
declare type RoamBehavior = 'zoomOnMouseWheel' | 'moveOnMouseMove' | 'moveOnMouseWheel';
|
export interface RoamEventParams {
|
'zoom': {
|
scale: number;
|
originX: number;
|
originY: number;
|
isAvailableBehavior: Bind3<typeof isAvailableBehavior, null, RoamBehavior, ZRElementEvent>;
|
};
|
'scrollMove': {
|
scrollDelta: number;
|
originX: number;
|
originY: number;
|
isAvailableBehavior: Bind3<typeof isAvailableBehavior, null, RoamBehavior, ZRElementEvent>;
|
};
|
'pan': {
|
dx: number;
|
dy: number;
|
oldX: number;
|
oldY: number;
|
newX: number;
|
newY: number;
|
isAvailableBehavior: Bind3<typeof isAvailableBehavior, null, RoamBehavior, ZRElementEvent>;
|
};
|
}
|
export interface RoamControllerHost {
|
target: Group;
|
zoom: number;
|
zoomLimit: {
|
min?: number;
|
max?: number;
|
};
|
}
|
declare class RoamController extends Eventful<{
|
[key in keyof RoamEventParams]: (params: RoamEventParams[key]) => void | undefined;
|
}> {
|
pointerChecker: (e: ZRElementEvent, x: number, y: number) => boolean;
|
private _zr;
|
private _opt;
|
private _dragging;
|
private _pinching;
|
private _x;
|
private _y;
|
readonly enable: (this: this, controlType?: RoamType, opt?: RoamOption) => void;
|
readonly disable: () => void;
|
constructor(zr: ZRenderType);
|
isDragging(): boolean;
|
isPinching(): boolean;
|
setPointerChecker(pointerChecker: RoamController['pointerChecker']): void;
|
dispose(): void;
|
private _mousedownHandler;
|
private _mousemoveHandler;
|
private _mouseupHandler;
|
private _mousewheelHandler;
|
private _pinchHandler;
|
}
|
declare function isAvailableBehavior(behaviorToCheck: RoamBehavior, e: ZRElementEvent, settings: Pick<RoamOption, RoamBehavior>): boolean;
|
export default RoamController;
|