@antv/x6
Version:
JavaScript diagramming library that uses SVG and HTML for rendering.
48 lines • 1.39 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.midSide = void 0;
var util_1 = require("./util");
var middleSide = function (view, magnet, refPoint, options) {
var bbox;
var angle = 0;
var center;
var node = view.cell;
if (options.rotate) {
bbox = view.getUnrotatedBBoxOfElement(magnet);
center = node.getBBox().getCenter();
angle = node.getAngle();
}
else {
bbox = view.getBBoxOfElement(magnet);
}
var padding = options.padding;
if (padding != null && isFinite(padding)) {
bbox.inflate(padding);
}
if (options.rotate) {
refPoint.rotate(angle, center);
}
var side = bbox.getNearestSideToPoint(refPoint);
var result;
switch (side) {
case 'left':
result = bbox.getLeftMiddle();
break;
case 'right':
result = bbox.getRightMiddle();
break;
case 'top':
result = bbox.getTopCenter();
break;
case 'bottom':
result = bbox.getBottomCenter();
break;
}
return options.rotate ? result.rotate(-angle, center) : result;
};
/**
* Places the anchor of the edge in the middle of the side of view bbox
* closest to the other endpoint.
*/
exports.midSide = util_1.resolve(middleSide);
//# sourceMappingURL=middle-side.js.map