@dagrejs/dagre
Version:
Graph layout for JavaScript
124 lines • 3.19 kB
TypeScript
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