HTMLGraph

Draggable Nodes

To enable built-in draggable nodes, call the enableUserDraggableNodes method on CanvasBuilder.

    
const element = document.getElementById('canvas');

const canvas = new CanvasBuilder()
  .setElement(element)
  .enableUserDraggableNodes()
  .build();

  
Draggable Nodes

This method accepts optional configuration:

    
const element = document.getElementById('canvas');

const canvas = new CanvasBuilder()
  .setElement(element)
  .enableUserDraggableNodes({
    moveOnTop: false,
    mouse: {
      dragCursor: "crosshair",
      mouseDownEventVerifier: (event: MouseEvent) => event.ctrlKey,
      mouseUpEventVerifier: (event: MouseEvent) => true,
    },
    events: {
      onNodeDrag: (payload: NodeDragPayload) => {
        console.log(payload);
      },
      onBeforeNodeDrag: (payload: NodeDragPayload) => {
        console.log(payload);
        return true;
      },
      onNodeDragFinished: (payload: NodeDragPayload) => {
        console.log(payload);
      },
    },
  })
  .build();

  

Configuration Parameters

NameTypeDescriptionRequiredDefault
moveOnTopbooleanMove grabbed node to the topnotrue
mouseMouseConfigMouse-related configurationno{}
eventsEventsConfigHandlers for available eventsno{}

Mouse Configuration

NameTypeDescriptionRequiredDefault
dragCursorstring | nullCursor to set on grabno“grab”
mouseDownEventVerifierfunctionFunction to verify if mouse event should trigger grabno() => true
mouseUpEventVerifierfunctionFunction to verify if mouse event should trigger releaseno() => true

Events Configuration

NameTypeDescriptionRequiredDefault
onNodeDragfunctionFunction to call when node is draggedno() => void
onBeforeNodeDragfunctionFunction to verify if node should be draggedno() => true
onNodeDragFinishedfunctionFunction to call when node drag is finishedno() => void