UNPKG

d3-graph-controller

Version:

A TypeScript library for visualizing and simulating directed, interactive graphs.

33 lines (32 loc) 1.23 kB
import { SimulationLinkDatum } from 'd3-force'; import { NodeTypeToken } from './graph.mjs'; import { GraphNode } from './node.mjs'; import { Label } from './shared.mjs'; /** * Link defining an edge from one node to another. */ export interface GraphLink<T extends NodeTypeToken = NodeTypeToken, SourceNode extends GraphNode<T> = GraphNode<T>, TargetNode extends GraphNode<T> = SourceNode> extends SimulationLinkDatum<SourceNode | TargetNode> { /** * The source node of the link. */ readonly source: SourceNode; /** * The target node of the link */ readonly target: TargetNode; /** * The color of the link. * Can be any valid CSS expression. */ readonly color: string; /** * The label of the node. * Using false will disable the node's label. */ readonly label: false | Label; } /** * Define a link with type inference. * @param data - The data of the link. */ export declare function defineLink<T extends NodeTypeToken = NodeTypeToken, SourceNode extends GraphNode<T> = GraphNode<T>, TargetNode extends GraphNode<T> = SourceNode, Link extends GraphLink<T, SourceNode, TargetNode> = GraphLink<T, SourceNode, TargetNode>>(data: Link): Link;