UNPKG

dagre-compound

Version:

A multi-level compound graph layout library based on dagre

83 lines (82 loc) 1.92 kB
import { Edge, GraphEdge, GraphLabel, graphlib } from 'dagre'; import { BaseNode } from '../core/graph'; import { Hierarchy } from '../core/hierarchy'; import { SafeAny } from './any'; export interface GraphOptions { directed?: boolean | undefined; multigraph?: boolean | undefined; compound?: boolean | undefined; } export interface IGraphLabel extends GraphLabel { name?: string; type?: string | number; } export declare enum NodeType { META = 0, NODE = 1, BRIDGE = 2 } export declare enum InclusionType { INCLUDE = 0, EXCLUDE = 1, UNSPECIFIED = 2 } export declare enum GraphType { META = 0, CORE = 1, BRIDGE = 2 } export interface GraphDef { nodes: NodeDef[]; } export interface NodeDef { name: SafeAny; inputs: NodeInputDef[]; path: SafeAny[]; attr?: AttrDef; width?: number; height?: number; } export interface NodeInputDef { name: SafeAny; attr?: AttrDef; } export interface AttrDef { [key: string]: SafeAny; } export interface BaseEdge { w: SafeAny; v: SafeAny; name?: string; } export interface BridgeNode extends Node { inbound: boolean; } export interface Node { name: SafeAny; path?: SafeAny[]; type: NodeType; isGroupNode: boolean; cardinality: number; parentNode: Node; include: InclusionType; attr: AttrDef; width?: number; height?: number; } export interface MetaNode extends GroupNode { depth: number; path: SafeAny[]; getFirstChild(): GroupNode | Node; getChildren(): Array<GroupNode | BaseNode>; leaves(): SafeAny[]; } export interface MetaEdge extends Edge, GraphEdge { baseEdgeList: BaseEdge[]; inbound?: boolean; addBaseEdge(edge: BaseEdge, h: Hierarchy): void; } export interface GroupNode extends Node { metaGraph: graphlib.Graph<GroupNode | BaseNode>; bridgeGraph: graphlib.Graph<GroupNode | BaseNode>; }