UNPKG

@dagrejs/dagre

Version:

Graph layout for JavaScript

124 lines 3.19 kB
import { Graph } from '@dagrejs/graphlib'; export type { Graph, Edge as GraphEdge } from '@dagrejs/graphlib'; export interface Point { x: number; y: number; } export interface NodeLabel { width: number; height: number; x?: number; y?: number; rank?: number; order?: number; e?: number; dummy?: 'edge' | 'border' | 'edge-label' | 'edge-proxy' | 'selfedge' | 'root'; borderType?: 'borderLeft' | 'borderRight'; borderTop?: string; borderBottom?: string; borderLeft?: string[]; borderRight?: string[]; minRank?: number; maxRank?: number; label?: string; labelpos?: 'l' | 'c' | 'r'; class?: string; padding?: number; paddingX?: number; paddingY?: number; rx?: number; ry?: number; shape?: string; edgeLabel?: EdgeLabel; edgeObj?: Edge; [key: string]: unknown; } export interface EdgeLabel { points?: Point[]; width?: number; height?: number; minlen?: number; weight?: number; labelpos?: 'l' | 'c' | 'r'; labeloffset?: number; labelRank?: number; x?: number; y?: number; e?: number; reversed?: boolean; forwardName?: string; selfEdge?: boolean; nestingEdge?: boolean; cutvalue?: number; lim?: number; low?: number; parent?: string; edgeLabel?: EdgeLabel; edgeObj?: Edge; [key: string]: unknown; } export interface GraphLabel { width?: number; height?: number; compound?: boolean; rankdir?: 'TB' | 'BT' | 'LR' | 'RL'; align?: 'UL' | 'UR' | 'DL' | 'DR'; nodesep?: number; edgesep?: number; ranksep?: number; marginx?: number; marginy?: number; acyclicer?: 'greedy'; ranker?: 'network-simplex' | 'tight-tree' | 'longest-path'; rankalign?: 'top' | 'center' | 'bottom'; nestingRoot?: string; nodeRankFactor?: number; dummyChains?: string[]; [key: string]: unknown; } export interface NodeConfig { width?: number; height?: number; } export interface EdgeConfig { minlen?: number; weight?: number; width?: number; height?: number; labelpos?: 'l' | 'c' | 'r'; labeloffset?: number; } export interface LayoutConfig { customOrder?: (graph: Graph<GraphLabel, NodeLabel, EdgeLabel>, order: (graph: Graph<GraphLabel, NodeLabel, EdgeLabel>, opts: LayoutOptions) => void) => void; disableOptimalOrderHeuristic?: boolean; constraints?: Array<{ left: string; right: string; }>; } export interface OrderConstraint { left: string; right: string; } export type LayoutOptions = GraphLabel & NodeConfig & EdgeConfig & LayoutConfig; export type RankerFunction = (graph: Graph<GraphLabel, NodeLabel, EdgeLabel>) => void; export type WeightFunction = (edge: Edge) => number; export type TimingFunction = (name: string, fn: () => void) => void; export type WeightMap = { [key: string]: number; }; export interface PartitionResult<T> { lhs: T[]; rhs: T[]; } export interface ListEntry<T> { value: T; prev?: ListEntry<T>; next?: ListEntry<T>; } export interface Edge { v: string; w: string; name?: string; } //# sourceMappingURL=types.d.ts.map