1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.resetOffset = exports.yAlign = exports.xAlign = void 0;
- const x6_common_1 = require("@antv/x6-common");
- const x6_geometry_1 = require("@antv/x6-geometry");
- // `x-align` when set to `middle` causes centering of the subelement around its new x coordinate.
- // `x-align` when set to `right` uses the x coordinate as referenced to the right of the bbox.
- exports.xAlign = {
- offset: offsetWrapper('x', 'width', 'right'),
- };
- // `y-align` when set to `middle` causes centering of the subelement around its new y coordinate.
- // `y-align` when set to `bottom` uses the y coordinate as referenced to the bottom of the bbox.
- exports.yAlign = {
- offset: offsetWrapper('y', 'height', 'bottom'),
- };
- exports.resetOffset = {
- offset(val, { refBBox }) {
- return val ? { x: -refBBox.x, y: -refBBox.y } : { x: 0, y: 0 };
- },
- };
- function offsetWrapper(axis, dimension, corner) {
- return (value, { refBBox }) => {
- const point = new x6_geometry_1.Point();
- let delta;
- if (value === 'middle') {
- delta = refBBox[dimension] / 2;
- }
- else if (value === corner) {
- delta = refBBox[dimension];
- }
- else if (typeof value === 'number' && Number.isFinite(value)) {
- delta = value > -1 && value < 1 ? -refBBox[dimension] * value : -value;
- }
- else if (x6_common_1.NumberExt.isPercentage(value)) {
- delta = (refBBox[dimension] * parseFloat(value)) / 100;
- }
- else {
- delta = 0;
- }
- point[axis] = -(refBBox[axis] + delta);
- return point;
- };
- }
- //# sourceMappingURL=align.js.map
|