amis-model-design
Version:
amis模型设计器
91 lines (90 loc) • 2.4 kB
TypeScript
/// <reference types="lodash" />
import { Manager } from './Manager';
import { Transform } from './Transform';
import { Point } from './Point';
import { Packer } from './Packer';
export declare class ZoomPan {
readonly manager: Manager;
layer?: HTMLElement;
owner?: HTMLElement;
/**
* 不能直接引用 amis 里面,这样,后端 node 就没办法执行了
*/
openContextMenus?: (info: any, menus: any) => void;
resizeSensor?: (dom: any, callback: any) => any;
transform: Transform;
transformOrigin: Point;
mouseX: number;
mouseY: number;
unmountCallbacks: Array<() => void>;
packer?: Packer;
lazyPackNewbies: import("lodash").DebouncedFunc<() => void>;
constructor(manager: Manager);
get scale(): number;
get scalePercent(): string;
attach(dom: HTMLDivElement | null): void;
thumb: HTMLDivElement | null;
thumbFrame: HTMLDivElement | null;
attachThumbDom(thumb: HTMLDivElement | null): void;
mount(): void;
update(): void;
unmount(): void;
autoCenter(zoomTofit?: boolean): void;
caculateOrigin(): void;
getBoundingBox(): DOMRect;
get items(): import("mobx").IObservableArray<import("./ModelStore").ModelStore>;
getClientBox(): {
left: number;
top: number;
width: number;
height: number;
right: number;
bottom: number;
};
private getMouseOffset;
/**
* 缩放、可以指定中心点。
* @param x
* @param y
* @param ratio
*/
zoomTo(x: number, y: number, ratio: number): void;
/**
* 缩小。
*/
zoomOut(): void;
/**
* 放大
*/
zoomIn(): void;
/**
* 重置缩放
*/
resetZoom(): void;
/**
* 移动相对位置
* @param dx
* @param dy
* @param smooth
*/
moveBy(dx: number, dy: number, smooth?: boolean): void;
/**
* 移动到指定位置。
* @param x
* @param y
*/
moveTo(x: number, y: number): void;
reArrange(): void;
scrollItemIntoView(modelKey: string): void;
/**
* 自动摆放新的模型
*/
packBox(packUnpositionedOnly?: boolean): void;
updateView(): void;
updateThumbView(): void;
private handleMouseDown;
private handleMouseMove;
private handleMouseUp;
private handleMouseWheel;
private handleContextMenu;
}