mermaid
Version:
Markdown-ish syntax for generating flowcharts, mindmaps, sequence diagrams, class diagrams, gantt charts, git graphs and more.
40 lines (39 loc) • 1.2 kB
TypeScript
import type { LayoutData, Node as MermaidNode, Edge as MermaidEdge } from '../../types.js';
export type Layout = LayoutData;
export type Node = MermaidNode;
export type NodeId = Node['id'];
export type EdgeId = MermaidEdge['id'];
export interface EdgeRef {
id: EdgeId;
src: NodeId;
dst: NodeId;
weight?: number;
ref: MermaidEdge;
}
export interface Graph {
nodes: NodeId[];
edges: EdgeRef[];
layout: Layout;
nodeById: Map<NodeId, Node>;
}
export interface Layering {
layers: NodeId[][];
rankOf: Record<NodeId, number>;
dummy?: Set<NodeId>;
}
export interface OrderedLayers {
layers: NodeId[][];
}
export interface Coordinates {
x: Record<NodeId, number>;
y: Record<NodeId, number>;
}
export type Edge = EdgeRef;
export declare const DEFAULT_SWIMLANE_ID = "__swimlane_default__";
export interface WriteBackOptions {
layerGap?: number;
nodeGap?: number;
}
export declare function prepareLayoutForSwimlanes(layout: LayoutData): void;
export declare function toGraphView(layout: LayoutData): Graph;
export declare function writeBackToLayoutData(g: Graph, ordered: OrderedLayers, coords: Coordinates, opts?: WriteBackOptions): void;