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; let y = edge.y;
if (path) { if (path) {
// debugger; // debugger;
const pos = utils.calcTerminalLabelPosition(0, 'start_left', path); const pos = utils.calcTerminalLabelPosition(edge.arrowTypeStart ? 10 : 0, 'start_left', path);
x = pos.x; x = pos.x;
y = pos.y; y = pos.y;
} }
@@ -153,7 +153,11 @@ export const positionEdgeLabel = (edge, paths) => {
let y = edge.y; let y = edge.y;
if (path) { if (path) {
// debugger; // debugger;
const pos = utils.calcTerminalLabelPosition(0, 'start_right', path); const pos = utils.calcTerminalLabelPosition(
edge.arrowTypeStart ? 10 : 0,
'start_right',
path
);
x = pos.x; x = pos.x;
y = pos.y; y = pos.y;
} }
@@ -165,7 +169,7 @@ export const positionEdgeLabel = (edge, paths) => {
let y = edge.y; let y = edge.y;
if (path) { if (path) {
// debugger; // debugger;
const pos = utils.calcTerminalLabelPosition(0, 'end_left', path); const pos = utils.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, 'end_left', path);
x = pos.x; x = pos.x;
y = pos.y; y = pos.y;
} }
@@ -177,7 +181,7 @@ export const positionEdgeLabel = (edge, paths) => {
let y = edge.y; let y = edge.y;
if (path) { if (path) {
// debugger; // debugger;
const pos = utils.calcTerminalLabelPosition(0, 'end_right', path); const pos = utils.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, 'end_right', path);
x = pos.x; x = pos.x;
y = pos.y; 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 // Traverse only 25 total distance along points to find cardinality point
const distanceToCardinalityPoint = 25; const distanceToCardinalityPoint = 25 + terminalMarkerSize;
let remainingDistance = distanceToCardinalityPoint; let remainingDistance = distanceToCardinalityPoint;
let center; let center;
@@ -437,7 +437,7 @@ const calcTerminalLabelPosition = (terminalMarkerSize, position, _points) => {
prevPoint = point; prevPoint = point;
}); });
// if relation is present (Arrows will be added), change cardinality point off-set distance (d) // 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 //Calculate Angle for x and y axis
let angle = Math.atan2(points[0].y - center.y, points[0].x - center.x); let angle = Math.atan2(points[0].y - center.y, points[0].x - center.x);