d3-graph-controller
Version:
A TypeScript library for visualizing and simulating directed, interactive graphs.
17 lines (16 loc) • 1.29 kB
text/typescript
import { D3DragEvent, DragBehavior } from 'd3-drag';
import { Simulation } from 'd3-force';
import { Selection } from 'd3-selection';
import { ZoomBehavior } from 'd3-zoom';
import { NodeTypeToken } from '../model/graph.mjs';
import { GraphLink } from '../model/link.mjs';
import { GraphNode } from '../model/node.mjs';
export type Canvas = Selection<SVGGElement, undefined, null, undefined>;
export type Drag<T extends NodeTypeToken, Node extends GraphNode<T>> = DragBehavior<SVGGElement, Node, Node>;
export type NodeDragEvent<T extends NodeTypeToken, Node extends GraphNode<T>> = D3DragEvent<SVGCircleElement, Node, Node>;
export type GraphHost = Selection<HTMLDivElement, undefined, null, undefined>;
export type GraphSimulation<T extends NodeTypeToken, Node extends GraphNode<T>, Link extends GraphLink<T, Node>> = Simulation<Node, Link>;
export type LinkSelection<T extends NodeTypeToken, Node extends GraphNode<T>, Link extends GraphLink<T, Node>> = Selection<SVGGElement, Link, SVGGElement, undefined>;
export type MarkerSelection = Selection<SVGMarkerElement, string, SVGGElement, undefined>;
export type NodeSelection<T extends NodeTypeToken, Node extends GraphNode<T>> = Selection<SVGGElement, Node, SVGGElement, undefined>;
export type Zoom = ZoomBehavior<SVGSVGElement, undefined>;