Files
mermaid/packages/mermaid/src/rendering-util/layout-algorithms/ipsepCola/adjustLayout.ts
2025-07-21 13:35:53 +05:30

35 lines
900 B
TypeScript

import type { LayoutData } from '../../types.ts';
import type { D3Selection } from '../../../types.ts';
import { insertCluster } from '../../rendering-elements/clusters.js';
import { insertEdge } from '../../rendering-elements/edges.js';
import { positionNode } from '../../rendering-elements/nodes.js';
export async function adjustLayout(
data4Layout: LayoutData,
groups: {
edgePaths: D3Selection<SVGGElement>;
rootGroups: D3Selection<SVGGElement>;
[key: string]: D3Selection<SVGGElement>;
}
): Promise<void> {
for (const node of data4Layout.nodes) {
if (node.isGroup) {
await insertCluster(groups.clusters, node);
} else {
positionNode(node);
}
}
for (const edge of data4Layout.edges) {
insertEdge(
groups.edgePaths,
edge,
{},
data4Layout.type,
edge.start,
edge.end,
data4Layout.diagramId
);
}
}