@xyflow/svelte
Version:
Svelte Flow - A highly customizable Svelte library for building node-based editors, workflow systems, diagrams and more.
73 lines (72 loc) • 3.48 kB
TypeScript
import type { Edge } from './edges';
import type { Node } from './nodes';
export type NodeEventWithPointer<T = PointerEvent, NodeType extends Node = Node> = ({ node, event }: {
node: NodeType;
event: T;
}) => void;
export type NodesEventWithPointer<T = PointerEvent, NodeType extends Node = Node> = ({ nodes, event }: {
nodes: NodeType[];
event: T;
}) => void;
export type NodeTargetEventWithPointer<T = PointerEvent, NodeType extends Node = Node> = ({ targetNode, nodes, event }: {
targetNode: NodeType | null;
nodes: NodeType[];
event: T;
}) => void;
export type NodeEvents<NodeType extends Node = Node> = {
/** This event handler is called when a user clicks on a node. */
onnodeclick?: NodeEventWithPointer<MouseEvent | TouchEvent, NodeType>;
/** This event handler is called when a user right-clicks on a node. */
onnodecontextmenu?: NodeEventWithPointer<MouseEvent, NodeType>;
/** This event handler is called when a user drags a node. */
onnodedrag?: NodeTargetEventWithPointer<MouseEvent | TouchEvent, NodeType>;
/** This event handler is called when a user starts to drag a node. */
onnodedragstart?: NodeTargetEventWithPointer<MouseEvent | TouchEvent, NodeType>;
/** This event handler is called when a user stops dragging a node. */
onnodedragstop?: NodeTargetEventWithPointer<MouseEvent | TouchEvent, NodeType>;
/** This event handler is called when the pointer of a user enters a node. */
onnodepointerenter?: NodeEventWithPointer<PointerEvent, NodeType>;
/** This event handler is called when the pointer of a user leaves a node. */
onnodepointerleave?: NodeEventWithPointer<PointerEvent, NodeType>;
/** This event handler is called when the pointer of a user moves over a node. */
onnodepointermove?: NodeEventWithPointer<PointerEvent, NodeType>;
};
export type NodeSelectionEvents<NodeType extends Node = Node> = {
/** This event handler is called when a user right-clicks the selection box. */
onselectioncontextmenu?: NodesEventWithPointer<MouseEvent, NodeType>;
/** This event handler is called when a user clicks the selection box. */
onselectionclick?: NodesEventWithPointer<MouseEvent, NodeType>;
};
export type PaneEvents = {
/** This event handler is called when a user clicks the pane. */
onpaneclick?: ({ event }: {
event: MouseEvent;
}) => void;
/** This event handler is called when a user right-clicks the pane. */
onpanecontextmenu?: ({ event }: {
event: MouseEvent;
}) => void;
};
export type EdgeEvents<EdgeType extends Edge = Edge> = {
/** This event handler is called when a user clicks an edge. */
onedgeclick?: ({ edge, event }: {
edge: EdgeType;
event: MouseEvent;
}) => void;
/** This event handler is called when a user right-clicks an edge. */
onedgecontextmenu?: ({ edge, event }: {
edge: EdgeType;
event: MouseEvent;
}) => void;
/** This event handler is called when the pointer of a user enters an edge. */
onedgepointerenter?: ({ edge, event }: {
edge: EdgeType;
event: PointerEvent;
}) => void;
/** This event handler is called when the pointer of a user enters an edge. */
onedgepointerleave?: ({ edge, event }: {
edge: EdgeType;
event: PointerEvent;
}) => void;
};
export type OnSelectionDrag<NodeType extends Node = Node> = (event: MouseEvent, nodes: NodeType[]) => void;