diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index c69305740a2..4c6fdb341a7 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -76,7 +76,7 @@ "cytoscape-fcose": "^2.2.0", "d3": "^7.9.0", "d3-sankey": "^0.12.3", - "dagre-d3-es": "7.0.13", + "dagre-d3-es": "7.0.14", "dayjs": "^1.11.19", "dompurify": "^3.3.1", "katex": "^0.16.25", diff --git a/packages/mermaid/src/rendering-util/createGraph.ts b/packages/mermaid/src/rendering-util/createGraph.ts index b08a3aae004..b7038dc2f7e 100644 --- a/packages/mermaid/src/rendering-util/createGraph.ts +++ b/packages/mermaid/src/rendering-util/createGraph.ts @@ -121,8 +121,22 @@ export async function createGraphWithElements( arrowTypeStart: 'none', arrowTypeEnd: 'arrow_point', }; - graph.setEdge(edgeToLabel.id, edgeToLabel.start, edgeToLabel.end, { ...edgeToLabel }); - graph.setEdge(edgeFromLabel.id, edgeFromLabel.start, edgeFromLabel.end, { ...edgeFromLabel }); + graph.setEdge( + { + v: edgeToLabel.start ?? 'undefined', + w: edgeToLabel.end, + name: edgeToLabel.id, + }, + { ...edgeToLabel } + ); + graph.setEdge( + { + v: edgeFromLabel.start, + w: edgeFromLabel.end ?? 'undefined', + name: edgeFromLabel.id, + }, + { ...edgeFromLabel } + ); data4Layout.edges.push(edgeToLabel, edgeFromLabel); const edgeIdToRemove = edge.id; data4Layout.edges = data4Layout.edges.filter((edge) => edge.id !== edgeIdToRemove); @@ -132,7 +146,14 @@ export async function createGraphWithElements( } } else { // Regular edge without label - graph.setEdge(edge.id, edge.start, edge.end, { ...edge }); + graph.setEdge( + { + v: edge.start ?? 'undefined', + w: edge.end ?? 'undefined', + name: edge.id, + }, + { ...edge } + ); const edgeExists = data4Layout.edges.some((existingEdge) => existingEdge.id === edge.id); if (!edgeExists) { data4Layout.edges.push(edge); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b6cb8d5bfe2..80d20e64061 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -257,8 +257,8 @@ importers: specifier: ^0.12.3 version: 0.12.3 dagre-d3-es: - specifier: 7.0.13 - version: 7.0.13 + specifier: 7.0.14 + version: 7.0.14 dayjs: specifier: ^1.11.19 version: 1.11.19 @@ -5068,8 +5068,8 @@ packages: resolution: {integrity: sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==} engines: {node: '>=12'} - dagre-d3-es@7.0.13: - resolution: {integrity: sha512-efEhnxpSuwpYOKRm/L5KbqoZmNNukHa/Flty4Wp62JRvgH2ojwVgPgdYyr4twpieZnyRDdIH7PY2mopX26+j2Q==} + dagre-d3-es@7.0.14: + resolution: {integrity: sha512-P4rFMVq9ESWqmOgK+dlXvOtLwYg0i7u0HBGJER0LZDJT2VHIPAMZ/riPxqJceWMStH5+E61QxFra9kIS3AqdMg==} dashdash@1.14.1: resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} @@ -16044,7 +16044,7 @@ snapshots: d3-transition: 3.0.1(d3-selection@3.0.0) d3-zoom: 3.0.0 - dagre-d3-es@7.0.13: + dagre-d3-es@7.0.14: dependencies: d3: 7.9.0 lodash-es: 4.17.21