dagre-compound
Version:
A multi-level compound graph layout library based on dagre
89 lines (88 loc) • 2.15 kB
TypeScript
import { SafeAny } from './any';
import { Align, RankDir } from './common';
import { AttrDef, BaseEdge } from './graph';
export declare enum HierarchyNodeType {
META = 0,
OP = 1,
SERIES = 2
}
export interface HierarchyGraphOption {
rankDirection?: RankDir;
expanded?: string[];
}
export interface HierarchyParams {
rankDirection: RankDir;
align?: Align;
}
export interface HierarchyGraphNodeDef {
id: SafeAny;
width?: number;
height?: number;
[key: string]: SafeAny;
}
export interface HierarchyGraphEdgeDef {
v: SafeAny;
w: SafeAny;
weight?: number;
[key: string]: SafeAny;
}
export interface HierarchyGraphCompoundDef {
[parent: string]: SafeAny[];
}
export interface HierarchyGraphDef {
nodes: HierarchyGraphNodeDef[];
edges: HierarchyGraphEdgeDef[];
compound?: HierarchyGraphCompoundDef;
}
export interface HierarchyBaseNodeInfo {
id: SafeAny;
name: string;
type: HierarchyNodeType | number;
cardinality: number;
attr: AttrDef;
parentNodeName: string | null;
coreBox: {
width: number;
height: number;
};
x: number;
y: number;
width: number;
height: number;
radius: number;
labelHeight: number;
labelOffset: number;
outboxWidth: number;
paddingTop: number;
paddingLeft: number;
paddingRight: number;
paddingBottom: number;
path?: SafeAny[];
[key: string]: SafeAny;
}
export interface HierarchyBaseEdgeInfo {
v: string;
w: string;
weight: number;
inbound?: boolean;
points: Array<{
x: number;
y: number;
}>;
adjoiningEdge: {
w: string;
v: string;
} | null;
baseEdgeList: BaseEdge[];
parentNodeName?: string | null;
[key: string]: SafeAny;
}
export interface HierarchyGraphNodeInfo extends HierarchyBaseNodeInfo {
expanded: boolean;
nodes: Array<HierarchyBaseNodeInfo | HierarchyGraphNodeInfo>;
edges: HierarchyBaseEdgeInfo[];
}
export interface HierarchyFlattenedGraphInfo {
nodes: Array<HierarchyBaseNodeInfo | HierarchyGraphNodeInfo>;
edges: HierarchyBaseEdgeInfo[];
}