UNPKG

@antv/x6

Version:

JavaScript diagramming library that uses SVG and HTML for rendering.

46 lines 1.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.radialOriented = exports.radial = void 0; var geometry_1 = require("../../geometry"); var util_1 = require("./util"); var radial = function (portPosition, elemBBox, args) { return radialLayout(portPosition.diff(elemBBox.getCenter()), false, args); }; exports.radial = radial; var radialOriented = function (portPosition, elemBBox, args) { return radialLayout(portPosition.diff(elemBBox.getCenter()), true, args); }; exports.radialOriented = radialOriented; function radialLayout(portCenterOffset, autoOrient, args) { var offset = args.offset != null ? args.offset : 20; var origin = new geometry_1.Point(0, 0); var angle = -portCenterOffset.theta(origin); var pos = portCenterOffset .clone() .move(origin, offset) .diff(portCenterOffset) .round(); var y = '.3em'; var textAnchor; var orientAngle = angle; if ((angle + 90) % 180 === 0) { textAnchor = autoOrient ? 'end' : 'middle'; if (!autoOrient && angle === -270) { y = '0em'; } } else if (angle > -270 && angle < -90) { textAnchor = 'start'; orientAngle = angle - 180; } else { textAnchor = 'end'; } return (0, util_1.toResult)({ position: pos.round().toJSON(), angle: autoOrient ? orientAngle : 0, attrs: { '.': { y: y, 'text-anchor': textAnchor, }, }, }, args); } //# sourceMappingURL=radial.js.map