import { HtmlElementBounds, MapEdgeToPoints, StyleObjectType, IViewNode, EdgePoints } from './types'; import DndContext from './dndContext'; import { XDirection, YDirection } from './dndTypes'; export default class NiceDagDnd { private _rootContainer; private _glassStyles; private draggingNode; private draggingNodeMirror; private draggingElement; private _enabled; private editableGlass; private editorForeContainer; private context; private isDraggingEdge; private mapEdgeToPoints; private draggingNodeParentBounds; private svgBackgroundBounds; private eligibleEdgeConnectors; private originalScrollPosition; private mapNodeToDraggingElementClass; private asSourceDraggingEdges; private asTargetDraggingEdges; private documentUserSelect; constructor(rootContainer: HTMLElement, glassStyles: StyleObjectType, mapEdgeToPoints: MapEdgeToPoints, editorForeContainer: HTMLElement, mapNodeToDraggingElementClass: StyleObjectType); buildGlass: () => void; setEnabled: (enabled: boolean) => void; private initContext; withContext: (dndContext: DndContext) => NiceDagDnd; buildDraggingElement: (node: IViewNode) => HTMLElement; computeDependenciesOfDraggingNode: (node: IViewNode) => void; disableUserSelect: () => void; restoreUserSelect: () => void; startNodeDragging: (node: IViewNode, e: MouseEvent) => void; moveDraggingElement: () => void; renderEdge: (edgeSvg: SVGElement, edgePoints: EdgePoints) => void; mapEdgePointToGlobal: (edgePoints: EdgePoints) => { source: { x: number; y: number; }; target: { x: number; y: number; }; }; renderEdgesWhenDraggingElement: (lastBounds: HtmlElementBounds) => void; startEdgeDragging: (node: IViewNode, e: MouseEvent) => void; destory(): void; private onDraggingEdge; private findPotentialEdgeTarget; onDragging: (event: MouseEvent) => void; onDraggingNode(xDirection: XDirection, yDirection: YDirection): void; endDragging: (event: MouseEvent) => void; private updateRelativeMousePoint; private scrollIfNeeded; }