Fix for classDiagram-v2 support for cardinality label positioning

This commit is contained in:
Ashish Jain 2021-08-26 17:18:05 +02:00
parent 0fba1c06b4
commit d32fb0e4c0
2 changed files with 10 additions and 6 deletions

View File

@ -141,7 +141,7 @@ export const positionEdgeLabel = (edge, paths) => {
let y = edge.y;
if (path) {
// debugger;
const pos = utils.calcTerminalLabelPosition(0, 'start_left', path);
const pos = utils.calcTerminalLabelPosition(edge.arrowTypeStart ? 10 : 0, 'start_left', path);
x = pos.x;
y = pos.y;
}
@ -153,7 +153,11 @@ export const positionEdgeLabel = (edge, paths) => {
let y = edge.y;
if (path) {
// debugger;
const pos = utils.calcTerminalLabelPosition(0, 'start_right', path);
const pos = utils.calcTerminalLabelPosition(
edge.arrowTypeStart ? 10 : 0,
'start_right',
path
);
x = pos.x;
y = pos.y;
}
@ -165,7 +169,7 @@ export const positionEdgeLabel = (edge, paths) => {
let y = edge.y;
if (path) {
// debugger;
const pos = utils.calcTerminalLabelPosition(0, 'end_left', path);
const pos = utils.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, 'end_left', path);
x = pos.x;
y = pos.y;
}
@ -177,7 +181,7 @@ export const positionEdgeLabel = (edge, paths) => {
let y = edge.y;
if (path) {
// debugger;
const pos = utils.calcTerminalLabelPosition(0, 'end_right', path);
const pos = utils.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, 'end_right', path);
x = pos.x;
y = pos.y;
}

View File

@ -410,7 +410,7 @@ const calcTerminalLabelPosition = (terminalMarkerSize, position, _points) => {
});
// Traverse only 25 total distance along points to find cardinality point
const distanceToCardinalityPoint = 25;
const distanceToCardinalityPoint = 25 + terminalMarkerSize;
let remainingDistance = distanceToCardinalityPoint;
let center;
@ -437,7 +437,7 @@ const calcTerminalLabelPosition = (terminalMarkerSize, position, _points) => {
prevPoint = point;
});
// if relation is present (Arrows will be added), change cardinality point off-set distance (d)
let d = 10;
let d = 10 + terminalMarkerSize * 0.5;
//Calculate Angle for x and y axis
let angle = Math.atan2(points[0].y - center.y, points[0].x - center.x);