From 6346e29f6ae89436e0b2cb5e32a46e0a75d0b682 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Wed, 31 Jul 2024 15:07:28 +0200 Subject: [PATCH] 5237 Fix for edges to diamond shapes and new mermaid version --- packages/mermaid-layout-elk/package.json | 4 ++-- packages/mermaid-layout-elk/src/layouts.ts | 2 +- packages/mermaid-layout-elk/src/render.ts | 14 ++++++++++---- packages/mermaid/package.json | 2 +- 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/packages/mermaid-layout-elk/package.json b/packages/mermaid-layout-elk/package.json index 60445739b..21757c541 100644 --- a/packages/mermaid-layout-elk/package.json +++ b/packages/mermaid-layout-elk/package.json @@ -1,6 +1,6 @@ { "name": "@mermaid-chart/layout-elk", - "version": "0.0.8", + "version": "0.0.14", "description": "ELK layout engine for mermaid", "module": "dist/mermaid-layout-elk.core.mjs", "types": "dist/packages/mermaid-layout-elk/src/index.d.ts", @@ -40,4 +40,4 @@ "files": [ "dist" ] -} +} \ No newline at end of file diff --git a/packages/mermaid-layout-elk/src/layouts.ts b/packages/mermaid-layout-elk/src/layouts.ts index a6075386b..81b7263d2 100644 --- a/packages/mermaid-layout-elk/src/layouts.ts +++ b/packages/mermaid-layout-elk/src/layouts.ts @@ -1,4 +1,4 @@ -import type { LayoutLoaderDefinition } from 'mermaid'; +import type { LayoutLoaderDefinition } from '@mermaid-chart/mermaid'; const loader = async () => await import(`./render.js`); const algos = ['elk.stress', 'elk.force', 'elk.mrtree', 'elk.sporeOverlap']; diff --git a/packages/mermaid-layout-elk/src/render.ts b/packages/mermaid-layout-elk/src/render.ts index d4a492e91..27c2c4f88 100644 --- a/packages/mermaid-layout-elk/src/render.ts +++ b/packages/mermaid-layout-elk/src/render.ts @@ -1,7 +1,8 @@ // @ts-nocheck File not ready to check types import { curveLinear } from 'd3'; import ELK from 'elkjs/lib/elk.bundled.js'; -import { type LayoutData } from 'mermaid'; +import mermaid from '@mermaid-chart/mermaid'; +import { type LayoutData } from '@mermaid-chart/mermaid'; import { type TreeData, findCommonAncestor } from './find-common-ancestor.js'; const { @@ -503,7 +504,7 @@ export const render = async (data4Layout: LayoutData, svg, element, algorithm) = // we will position the nodes when we get the layout from elkjs elkGraph = await addVertices(nodeEl, data4Layout.nodes, elkGraph); // Time for the edges, we start with adding an element in the node to hold the edges - const edgesEl = svg.insert('g').attr('class', 'edges edgePath'); + const edgesEl = svg.insert('g').attr('class', 'edges edgePaths'); // Add the edges to the elk graph, this will entail creating the actual edges elkGraph = await addEdges(data4Layout, elkGraph, svg); @@ -638,13 +639,18 @@ export const render = async (data4Layout: LayoutData, svg, element, algorithm) = x: startNode.x + startNode.width / 2 + offset.x, y: startNode.y + startNode.height / 2 + offset.y, }); - } - if (startNode.shape === 'diamond') { edge.points.push({ x: endNode.x + endNode.width / 2 + offset.x, y: endNode.y + endNode.height / 2 + offset.y, }); } + if (endNode.shape === 'diamond') { + edge.points.push({ + x: endNode.x + endNode.width / 2 + offset.x, + y: endNode.y + endNode.height / 2 + offset.y, + }); + } + edge.points = cutPathAtIntersect( edge.points.reverse(), { diff --git a/packages/mermaid/package.json b/packages/mermaid/package.json index ceabddc07..1f27c0055 100644 --- a/packages/mermaid/package.json +++ b/packages/mermaid/package.json @@ -1,6 +1,6 @@ { "name": "@mermaid-chart/mermaid", - "version": "11.0.0-b.47", + "version": "11.0.0-b.49", "description": "Markdown-ish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.", "type": "module", "module": "./dist/mermaid.core.mjs",