@ichooss/xflow
Version:
[English (US)](README.md) | 简体中文
22 lines (19 loc) • 675 B
text/typescript
import type { Graph } from '@antv/x6';
export const getSuperGraph = (graph: Graph, nodeId: string, nodeIds: string[] = []) => {
nodeIds.push(nodeId);
const incomingEdges = graph.getIncomingEdges(nodeId);
incomingEdges?.forEach((edge) => {
const source = edge.getSourceCellId();
getSuperGraph(graph, source, nodeIds);
});
return nodeIds;
};
export const getSubGraph = (graph: Graph, nodeId: string, nodeIds: string[] = []) => {
nodeIds.push(nodeId);
const outgoingEdges = graph.getOutgoingEdges(nodeId);
outgoingEdges?.forEach((edge) => {
const target = edge.getTargetCellId();
getSubGraph(graph, target, nodeIds);
});
return nodeIds;
};