import type Disposable from './Disposable'; import type DragAndDropHandler from './DragAndDropHandler'; /** * @internal * A helper class to help manage drag and drop to an HTML element */ export default class DragAndDropHelper implements Disposable { private trigger; private context; private onSubmit; private handler; private zoomScale; private initX; private initY; private initValue; private dndMouse; /** * Create a new instance of DragAndDropHelper class * @param trigger The trigger element. When user start drag on this element, * events will be fired to the handler object * @param context Context object that will be passed to handler function when event is fired, * so that the handler object knows which element it is triggered from. * @param onSubmit A callback that will be invoked when event handler in handler object returns true * @param handler The event handler object, see DragAndDropHandler interface for more information * @param zoomScale The zoom scale of the editor * @param forceMobile A boolean to force the use of touch controls for the helper */ constructor(trigger: HTMLElement, context: TContext, onSubmit: (context: TContext, trigger: HTMLElement) => void, handler: DragAndDropHandler, zoomScale: number, forceMobile?: boolean); /** * Dispose this object, remove all event listeners that has been attached */ dispose(): void; get mouseType(): string; private addDocumentEvents; private removeDocumentEvents; private onMouseDown; private onMouseMove; private onMouseUp; }