in src/models/Node.js [95:123]
updateAttachPoints() {
if (this.leftLinks.length === 1) {
this.leftLinks[0].attachPoints.y2 = this.y;
} else if (this.leftLinks.length > 1) {
const totalLeft = sum(this.leftLinks.map(l => l.strokeWidth));
let startPos = this.y - (totalLeft + (this.leftLinks.length - 1) * 2) / 2;
this.leftLinks
.concat()
.sort((a, b) => a.source.y - b.source.y)
.forEach(link => {
link.attachPoints.y2 = startPos + link.strokeWidth / 2;
startPos += link.strokeWidth + 2;
});
}
if (this.rightLinks.length === 1) {
this.rightLinks[0].attachPoints.y1 = this.y;
} else if (this.rightLinks.length > 1) {
const totalRight = sum(this.rightLinks.map(l => l.strokeWidth));
let startPos = this.y - (totalRight + (this.rightLinks.length - 1) * 2) / 2;
this.rightLinks
.concat()
.sort((a, b) => a.target.y - b.target.y)
.forEach(link => {
link.attachPoints.y1 = startPos + link.strokeWidth / 2;
startPos += link.strokeWidth + 2;
});
}
}