diff --git a/cypress/platform/knsv2.html b/cypress/platform/knsv2.html index f8722e580..22820680d 100644 --- a/cypress/platform/knsv2.html +++ b/cypress/platform/knsv2.html @@ -65,12 +65,12 @@
block-beta - A space:2 B - A-- "X" -->B + a space:2 c + a-- "b" --> c
flowchart LR - A-- "X" -->B + X-- "y" -->z
block-beta diff --git a/packages/mermaid/src/dagre-wrapper/edges.js b/packages/mermaid/src/dagre-wrapper/edges.js index ef96a3269..36a4e2553 100644 --- a/packages/mermaid/src/dagre-wrapper/edges.js +++ b/packages/mermaid/src/dagre-wrapper/edges.js @@ -134,7 +134,7 @@ function setTerminalWidth(fo, value) { } export const positionEdgeLabel = (edge, paths) => { - log.info('Moving label abc78 ', edge.id, edge.label, edgeLabels[edge.id]); + log.info('Moving label abc88 ', edge.id, edge.label, edgeLabels[edge.id], paths); let path = paths.updatedPath ? paths.updatedPath : paths.originalPath; if (edge.label) { const el = edgeLabels[edge.id]; @@ -152,7 +152,7 @@ export const positionEdgeLabel = (edge, paths) => { pos.x, ',', pos.y, - ') abc78' + ') abc88' ); if (paths.updatedPath) { x = pos.x; @@ -376,7 +376,7 @@ export const insertEdge = function (elem, e, edge, clusterDb, diagramType, graph let pointsHasChanged = false; const tail = graph.node(e.v); var head = graph.node(e.w); - log.info('abc88 InsertEdge (head & tail): ', e.v, head, ' --- ', e.w, tail); + log.info('abc88 InsertEdge (head & tail) fin: ', e.v, head, ' --- ', e.w, tail); if (head?.intersect && tail?.intersect) { points = points.slice(1, edge.points.length - 1); diff --git a/packages/mermaid/src/diagrams/block/blockRenderer.ts b/packages/mermaid/src/diagrams/block/blockRenderer.ts index c47671b88..31790de6e 100644 --- a/packages/mermaid/src/diagrams/block/blockRenderer.ts +++ b/packages/mermaid/src/diagrams/block/blockRenderer.ts @@ -58,7 +58,8 @@ export const draw = async function ( // Add the marker definitions to the svg as marker tags // insertMarkers(svg, markers, diagObj.type, diagObj.arrowMarkerAbsolute); - insertMarkers(svg, markers, diagObj.type, true); + // insertMarkers(svg, markers, diagObj.type, true); + insertMarkers(svg, markers, diagObj.type, id); const bl = db.getBlocks(); const blArr = db.getBlocksFlat(); @@ -69,7 +70,7 @@ export const draw = async function ( const bounds = layout(db); // log.debug('Here be blocks', bl); await insertBlocks(nodes, bl, db); - await insertEdges(nodes, edges, blArr, db); + await insertEdges(nodes, edges, blArr, db, id); // log.debug('Here', bl); diff --git a/packages/mermaid/src/diagrams/block/renderHelpers.ts b/packages/mermaid/src/diagrams/block/renderHelpers.ts index 588bca786..2215e9e3e 100644 --- a/packages/mermaid/src/diagrams/block/renderHelpers.ts +++ b/packages/mermaid/src/diagrams/block/renderHelpers.ts @@ -1,6 +1,6 @@ import { getStylesFromArray } from '../../utils.js'; import { insertNode, positionNode } from '../../dagre-wrapper/nodes.js'; -import { insertEdge, insertEdgeLabel } from '../../dagre-wrapper/edges.js'; +import { insertEdge, insertEdgeLabel, positionEdgeLabel } from '../../dagre-wrapper/edges.js'; import * as graphlib from 'dagre-d3-es/src/graphlib/index.js'; import { getConfig } from '../../config.js'; import type { ContainerElement } from 'd3'; @@ -185,7 +185,8 @@ export async function insertEdges( elem: ContainerElement, edges: Block[], blocks: Block[], - db: BlockDB + db: BlockDB, + id: string ) { const g = new graphlib.Graph({ multigraph: true, @@ -238,7 +239,8 @@ export async function insertEdges( }, undefined, 'block', - g + g, + id ); if (edge.label) { await insertEdgeLabel(elem, { @@ -250,6 +252,12 @@ export async function insertEdges( points, classes: 'edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1', }); + await positionEdgeLabel( + { ...edge, x: points[1].x, y: points[1].y }, + { + originalPath: points, + } + ); } } }