import { Disposable, LocalId } from '@gedit/utils'; import type { PlaygroundConfigEntity } from '../layer/config'; import type { PositionSchema } from '../../common/schema/position-schema'; import { Entity } from '../../common/entity'; import { Rectangle } from '@gedit/math'; import { Adsorber } from './adsorber'; export interface PlaygroundDragEvent extends MouseEvent { id: LocalId; startPos: PositionSchema; endPos: PositionSchema; movingDelta: PositionSchema; scale: number; isMoving: boolean; isStart: boolean; } export interface PlaygroundDragOptions { onDragStart?: (e: PlaygroundDragEvent, context?: T) => void; onDrag?: (e: PlaygroundDragEvent, context?: T) => void; onDragEnd?: (e: PlaygroundDragEvent, context?: T) => void; } export declare class PlaygroundDrag implements Disposable { private onDragStartEmitter; private onDragEndEmitter; private onDragEmitter; private localId; protected context?: T; readonly onDrag: import("@gedit/utils").Event; readonly onDragStart: import("@gedit/utils").Event; readonly onDragEnd: import("@gedit/utils").Event; constructor(options?: PlaygroundDragOptions); get isStarted(): boolean; start(clientX: number, clientY: number, entity?: PlaygroundConfigEntity, context?: T): Promise; stop(clientX: number, clientY: number): void; dispose(): void; handleEvent(event: Event): void; get scale(): number; protected getRelativePos(event: MouseEvent): PositionSchema; private _lastPos; protected getDragEvent(event: MouseEvent): PlaygroundDragEvent; private _finalize; /** * Handle the `'mousemove'` event for the drag object. */ private _evtMouseMove; /** * Handle the `'mouseup'` event for the drag object. */ private _evtMouseUp; /** * Handle the `'keydown'` event for the drag object. */ private _evtKeyDown; /** * Add the document event listeners for the drag object. */ private _addListeners; /** * Remove the document event listeners for the drag object. */ private _removeListeners; /** * 自动滚动画布 */ private _updateDragScroll; private _scrollXInterval; private _scrollYInterval; private _startScrollX; private _stopScrollX; private _startScrollY; private _stopScrollY; private _disposed; private _promise?; private _resolve?; private _startPos?; private _playgroundConfigEntity?; } export interface PlaygroundDragEntitiesOpts extends PlaygroundDragOptions { entities?: Entity[]; context?: T; config?: PlaygroundConfigEntity; adsorbRefs?: Rectangle[]; adsorbLines?: Adsorber.Line[]; } export declare namespace PlaygroundDrag { /** * 拖拽实体 */ function startDrag(clientX: number, clientY: number, opts?: PlaygroundDragEntitiesOpts): Disposable; } //# sourceMappingURL=playground-drag.d.ts.map