d3-dag
    Preparing search index...

    Interface DagreGraph

    dagre-compatible mutable graph backed by d3-dag

    Accessed as dagre.graphlib.Graph. Use with dagre.layout.

    import { dagre } from "d3-dag";

    const grf = new dagre.graphlib.Graph();
    grf.setGraph({});
    grf.setDefaultEdgeLabel(() => ({}));
    grf.setNode("a", { width: 40, height: 40 });
    grf.setNode("b", { width: 40, height: 40 });
    grf.setEdge("a", "b");
    dagre.layout(grf);
    const pos = grf.node("a"); // { x, y, width, height }
    interface DagreGraph {
        edge(v: string, w: string): DagreEdge;
        edgeCount(): number;
        edges(): DagreEdgeDescriptor[];
        filterNodes(fn: (id: string) => boolean): DagreGraph;
        graph(): Required<DagreGraphConfig>;
        hasEdge(v: string, w: string): boolean;
        hasNode(id: string): boolean;
        inEdges(v: string, w?: string): DagreEdgeDescriptor[];
        isCompound(): false;
        isDirected(): true;
        isMultigraph(): boolean;
        neighbors(id: string): string[];
        node(id: string): DagreNode;
        nodeCount(): number;
        nodeEdges(v: string, w?: string): DagreEdgeDescriptor[];
        nodes(): string[];
        outEdges(v: string, w?: string): DagreEdgeDescriptor[];
        predecessors(id: string): string[];
        removeEdge(v: string, w: string): this;
        removeNode(id: string): this;
        setDefaultEdgeLabel(_fn: () => Record<string, unknown>): this;
        setDefaultNodeLabel(fn: () => { height?: number; width?: number }): this;
        setEdge(v: string, w: string, _label?: Record<string, unknown>): this;
        setGraph(config?: DagreGraphConfig): this;
        setNode(id: string, label?: { height?: number; width?: number }): this;
        setNodes(ids: string[], label?: { height?: number; width?: number }): this;
        setPath(nodes: string[]): this;
        sinks(): string[];
        sources(): string[];
        successors(id: string): string[];
    }
    Index

    Methods

    • get edge label (includes points after layout)

      Parameters

      • v: string
      • w: string

      Returns DagreEdge

    • number of edges

      Returns number

    • create a new graph containing only nodes that pass the filter

      Parameters

      • fn: (id: string) => boolean

      Returns DagreGraph

    • check if an edge exists

      Parameters

      • v: string
      • w: string

      Returns boolean

    • check if a node exists

      Parameters

      • id: string

      Returns boolean

    • always false — compound graphs are not supported

      Returns false

    • always true — dagre graphs are directed

      Returns true

    • true if the graph has multiple edges between the same pair of nodes

      Returns boolean

    • get all neighbor node ids (predecessors and successors, deduplicated)

      Parameters

      • id: string

      Returns string[]

    • number of nodes

      Returns number

    • get all node ids

      Returns string[]

    • get predecessor node ids

      Parameters

      • id: string

      Returns string[]

    • remove an edge

      Parameters

      • v: string
      • w: string

      Returns this

    • remove a node and all its edges

      Parameters

      • id: string

      Returns this

    • set default edge label factory (accepted for compatibility, not used)

      Parameters

      • _fn: () => Record<string, unknown>

      Returns this

    • set default node label factory, used when setNode is called without a label

      Parameters

      • fn: () => { height?: number; width?: number }

      Returns this

    • add an edge (label is accepted for dagre compatibility but not used)

      Parameters

      • v: string
      • w: string
      • Optional_label: Record<string, unknown>

      Returns this

    • add or update a node

      Parameters

      • id: string
      • Optionallabel: { height?: number; width?: number }

      Returns this

    • add or update multiple nodes

      Parameters

      • ids: string[]
      • Optionallabel: { height?: number; width?: number }

      Returns this

    • add edges between consecutive pairs of nodes

      Parameters

      • nodes: string[]

      Returns this

    • get sink node ids (no children)

      Returns string[]

    • get source node ids (no parents)

      Returns string[]

    • get successor node ids

      Parameters

      • id: string

      Returns string[]