You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
2.0 KiB
58 lines
2.0 KiB
import { __assign, __read, __values } from "tslib";
|
|
import { select } from './selection';
|
|
/**
|
|
* 获得图形的x、y、width、height
|
|
*/
|
|
export function getShapeSpace(shape) {
|
|
var bounds = shape && shape.getRenderBounds();
|
|
if (!bounds)
|
|
return {
|
|
width: 0,
|
|
height: 0,
|
|
};
|
|
var max = bounds.getMax();
|
|
var min = bounds.getMin();
|
|
return {
|
|
width: max[0] - min[0],
|
|
height: max[1] - min[1],
|
|
};
|
|
}
|
|
export function getLocalBBox(shape) {
|
|
var _a = shape.getLocalBounds(), min = _a.min, max = _a.max;
|
|
var _b = __read([min, max], 2), _c = __read(_b[0], 2), x1 = _c[0], y1 = _c[1], _d = __read(_b[1], 2), x2 = _d[0], y2 = _d[1];
|
|
return { x: x1, y: y1, width: x2 - x1, height: y2 - y1, left: x1, bottom: y2, top: y1, right: x2 };
|
|
}
|
|
export function createTempText(group, attrs) {
|
|
var textNode = select(group).append('text').node();
|
|
textNode.attr(__assign(__assign({}, attrs), { visibility: 'hidden' }));
|
|
return textNode;
|
|
}
|
|
export function isHorizontal(p1, p2) {
|
|
var _a = __read(p1, 2), x1 = _a[0], y1 = _a[1];
|
|
var _b = __read(p2, 2), x2 = _b[0], y2 = _b[1];
|
|
return x1 !== x2 && y1 === y2;
|
|
}
|
|
export function isVertical(p1, p2) {
|
|
var _a = __read(p1, 2), x1 = _a[0], y1 = _a[1];
|
|
var _b = __read(p2, 2), x2 = _b[0], y2 = _b[1];
|
|
return x1 === x2 && y1 !== y2;
|
|
}
|
|
export function copyAttributes(target, source) {
|
|
var e_1, _a;
|
|
var attributes = source.attributes;
|
|
try {
|
|
for (var _b = __values(Object.entries(attributes)), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
var _d = __read(_c.value, 2), key = _d[0], value = _d[1];
|
|
if (key !== 'id' && key !== 'className')
|
|
target.attr(key, value);
|
|
}
|
|
}
|
|
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
finally {
|
|
try {
|
|
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
}
|
|
finally { if (e_1) throw e_1.error; }
|
|
}
|
|
}
|
|
//# sourceMappingURL=shape.js.map
|