@idraw/util 0.4.0-beta.9 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/index.d.ts +46 -31
- package/dist/esm/index.js +46 -31
- package/dist/esm/{lib → tool}/color.js +9 -6
- package/dist/esm/{lib → tool}/event.d.ts +1 -0
- package/dist/esm/{lib → tool}/event.js +3 -0
- package/dist/esm/tool/flat-object.d.ts +6 -0
- package/dist/esm/tool/flat-object.js +28 -0
- package/dist/esm/tool/get-set-del.d.ts +4 -0
- package/dist/esm/tool/get-set-del.js +65 -0
- package/dist/esm/{lib → tool}/html.d.ts +1 -1
- package/dist/esm/{lib → tool}/html.js +6 -2
- package/dist/esm/{lib → tool}/istype.d.ts +1 -0
- package/dist/esm/{lib → tool}/istype.js +3 -0
- package/dist/esm/tool/merge.d.ts +1 -0
- package/dist/esm/tool/merge.js +17 -0
- package/dist/esm/tool/omit.d.ts +1 -0
- package/dist/esm/tool/omit.js +7 -0
- package/dist/esm/tool/store.d.ts +16 -0
- package/dist/esm/{lib → tool}/store.js +17 -5
- package/dist/esm/tool/unflat-object.d.ts +3 -0
- package/dist/esm/tool/unflat-object.js +91 -0
- package/dist/esm/{lib → tool}/uuid.d.ts +1 -1
- package/dist/esm/tool/uuid.js +39 -0
- package/dist/esm/view/box.d.ts +2 -0
- package/dist/esm/view/box.js +173 -0
- package/dist/esm/{lib → view}/canvas.d.ts +0 -1
- package/dist/esm/view/canvas.js +57 -0
- package/dist/esm/{lib → view}/check.js +14 -14
- package/dist/esm/{lib → view}/config.js +2 -2
- package/dist/esm/{lib → view}/context2d.d.ts +4 -0
- package/dist/esm/{lib → view}/context2d.js +20 -0
- package/dist/esm/view/controller.d.ts +12 -0
- package/dist/esm/view/controller.js +321 -0
- package/dist/esm/{lib → view}/data.d.ts +1 -0
- package/dist/esm/{lib → view}/data.js +43 -22
- package/dist/esm/{lib → view}/element.d.ts +5 -0
- package/dist/esm/{lib → view}/element.js +66 -5
- package/dist/esm/view/flat.d.ts +2 -0
- package/dist/esm/view/flat.js +133 -0
- package/dist/esm/view/group.d.ts +3 -0
- package/dist/esm/view/group.js +81 -0
- package/dist/esm/{lib → view}/handle-element.d.ts +11 -1
- package/dist/esm/{lib → view}/handle-element.js +102 -51
- package/dist/esm/view/handle-global.d.ts +4 -0
- package/dist/esm/view/handle-global.js +28 -0
- package/dist/esm/view/handle-layout.d.ts +4 -0
- package/dist/esm/view/handle-layout.js +28 -0
- package/dist/esm/{lib → view}/is.d.ts +3 -1
- package/dist/esm/{lib → view}/is.js +22 -6
- package/dist/esm/view/modify-record.d.ts +4 -0
- package/dist/esm/view/modify-record.js +10 -0
- package/dist/esm/view/point-move-element.d.ts +5 -0
- package/dist/esm/view/point-move-element.js +26 -0
- package/dist/esm/view/position.d.ts +15 -0
- package/dist/esm/view/position.js +79 -0
- package/dist/esm/view/rect.js +11 -0
- package/dist/esm/view/resize-element.d.ts +4 -0
- package/dist/esm/view/resize-element.js +255 -0
- package/dist/esm/{lib → view}/rotate.js +8 -13
- package/dist/esm/view/text.d.ts +1 -0
- package/dist/esm/view/text.js +4 -0
- package/dist/esm/{lib → view}/view-box.js +3 -1
- package/dist/esm/{lib → view}/view-calc.d.ts +16 -3
- package/dist/esm/{lib → view}/view-calc.js +127 -3
- package/dist/esm/view/view-content.d.ts +14 -0
- package/dist/esm/view/view-content.js +88 -0
- package/dist/index.global.js +1938 -346
- package/dist/index.global.min.js +1 -1
- package/package.json +2 -2
- package/dist/esm/lib/canvas.js +0 -81
- package/dist/esm/lib/controller.d.ts +0 -6
- package/dist/esm/lib/controller.js +0 -103
- package/dist/esm/lib/rect.js +0 -11
- package/dist/esm/lib/resize-element.d.ts +0 -2
- package/dist/esm/lib/resize-element.js +0 -101
- package/dist/esm/lib/store.d.ts +0 -11
- package/dist/esm/lib/uuid.js +0 -31
- /package/dist/esm/{lib → tool}/color.d.ts +0 -0
- /package/dist/esm/{lib → tool}/file.d.ts +0 -0
- /package/dist/esm/{lib → tool}/file.js +0 -0
- /package/dist/esm/{lib → tool}/image.d.ts +0 -0
- /package/dist/esm/{lib → tool}/image.js +0 -0
- /package/dist/esm/{lib → tool}/number.d.ts +0 -0
- /package/dist/esm/{lib → tool}/number.js +0 -0
- /package/dist/esm/{lib → tool}/time.d.ts +0 -0
- /package/dist/esm/{lib → tool}/time.js +0 -0
- /package/dist/esm/{lib → view}/check.d.ts +0 -0
- /package/dist/esm/{lib → view}/config.d.ts +0 -0
- /package/dist/esm/{lib → view}/load.d.ts +0 -0
- /package/dist/esm/{lib → view}/load.js +0 -0
- /package/dist/esm/{lib → view}/matrix.d.ts +0 -0
- /package/dist/esm/{lib → view}/matrix.js +0 -0
- /package/dist/esm/{lib → view}/middleware.d.ts +0 -0
- /package/dist/esm/{lib → view}/middleware.js +0 -0
- /package/dist/esm/{lib → view}/parser.d.ts +0 -0
- /package/dist/esm/{lib → view}/parser.js +0 -0
- /package/dist/esm/{lib → view}/point.d.ts +0 -0
- /package/dist/esm/{lib → view}/point.js +0 -0
- /package/dist/esm/{lib → view}/rect.d.ts +0 -0
- /package/dist/esm/{lib → view}/rotate.d.ts +0 -0
- /package/dist/esm/{lib → view}/svg-path.d.ts +0 -0
- /package/dist/esm/{lib → view}/svg-path.js +0 -0
- /package/dist/esm/{lib → view}/vertex.d.ts +0 -0
- /package/dist/esm/{lib → view}/vertex.js +0 -0
- /package/dist/esm/{lib → view}/view-box.d.ts +0 -0
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { rotateElementVertexes } from './rotate';
|
|
2
|
+
import { formatNumber } from '../tool/number';
|
|
3
|
+
import { is } from './is';
|
|
4
|
+
export function calcViewCenterContent(data, opts) {
|
|
5
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
6
|
+
let offsetX = 0;
|
|
7
|
+
let offsetY = 0;
|
|
8
|
+
let scale = 1;
|
|
9
|
+
let contentX = ((_b = (_a = data === null || data === void 0 ? void 0 : data.elements) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.x) || 0;
|
|
10
|
+
let contentY = ((_d = (_c = data === null || data === void 0 ? void 0 : data.elements) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.y) || 0;
|
|
11
|
+
let contentW = ((_f = (_e = data === null || data === void 0 ? void 0 : data.elements) === null || _e === void 0 ? void 0 : _e[0]) === null || _f === void 0 ? void 0 : _f.w) || 0;
|
|
12
|
+
let contentH = ((_h = (_g = data === null || data === void 0 ? void 0 : data.elements) === null || _g === void 0 ? void 0 : _g[0]) === null || _h === void 0 ? void 0 : _h.h) || 0;
|
|
13
|
+
const { width, height } = opts.viewSizeInfo;
|
|
14
|
+
if (data.layout && ((_k = (_j = data.layout) === null || _j === void 0 ? void 0 : _j.detail) === null || _k === void 0 ? void 0 : _k.overflow) === 'hidden') {
|
|
15
|
+
contentX = 0;
|
|
16
|
+
contentY = 0;
|
|
17
|
+
contentW = data.layout.w || 0;
|
|
18
|
+
contentH = data.layout.h || 0;
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
data.elements.forEach((elem) => {
|
|
22
|
+
const elemSize = {
|
|
23
|
+
x: elem.x,
|
|
24
|
+
y: elem.y,
|
|
25
|
+
w: elem.w,
|
|
26
|
+
h: elem.h,
|
|
27
|
+
angle: elem.angle
|
|
28
|
+
};
|
|
29
|
+
if (elemSize.angle && (elemSize.angle > 0 || elemSize.angle < 0)) {
|
|
30
|
+
const ves = rotateElementVertexes(elemSize);
|
|
31
|
+
if (ves.length === 4) {
|
|
32
|
+
const xList = [ves[0].x, ves[1].x, ves[2].x, ves[3].x];
|
|
33
|
+
const yList = [ves[0].y, ves[1].y, ves[2].y, ves[3].y];
|
|
34
|
+
elemSize.x = Math.min(...xList);
|
|
35
|
+
elemSize.y = Math.min(...yList);
|
|
36
|
+
elemSize.w = Math.abs(Math.max(...xList) - Math.min(...xList));
|
|
37
|
+
elemSize.h = Math.abs(Math.max(...yList) - Math.min(...yList));
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
const areaStartX = Math.min(elemSize.x, contentX);
|
|
41
|
+
const areaStartY = Math.min(elemSize.y, contentY);
|
|
42
|
+
const areaEndX = Math.max(elemSize.x + elemSize.w, contentX + contentW);
|
|
43
|
+
const areaEndY = Math.max(elemSize.y + elemSize.h, contentY + contentH);
|
|
44
|
+
contentX = areaStartX;
|
|
45
|
+
contentY = areaStartY;
|
|
46
|
+
contentW = Math.abs(areaEndX - areaStartX);
|
|
47
|
+
contentH = Math.abs(areaEndY - areaStartY);
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
if (data.layout) {
|
|
51
|
+
const { x, y, w, h } = data.layout;
|
|
52
|
+
if (is.x(x) && is.y(y) && is.w(w) && is.h(h)) {
|
|
53
|
+
contentX = Math.min(contentX, x);
|
|
54
|
+
contentY = Math.min(contentY, y);
|
|
55
|
+
contentW = Math.max(contentW, w);
|
|
56
|
+
contentH = Math.max(contentH, h);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
if (contentW > 0 && contentH > 0) {
|
|
60
|
+
const scaleW = formatNumber(width / contentW, { decimalPlaces: 4 });
|
|
61
|
+
const scaleH = formatNumber(height / contentH, { decimalPlaces: 4 });
|
|
62
|
+
scale = Math.min(scaleW, scaleH, 1);
|
|
63
|
+
offsetX = (contentW * scale - width) / 2 / scale + contentX;
|
|
64
|
+
offsetY = (contentH * scale - height) / 2 / scale + contentY;
|
|
65
|
+
}
|
|
66
|
+
const result = {
|
|
67
|
+
offsetX: formatNumber(offsetX, { decimalPlaces: 0 }),
|
|
68
|
+
offsetY: formatNumber(offsetY, { decimalPlaces: 0 }),
|
|
69
|
+
scale
|
|
70
|
+
};
|
|
71
|
+
return result;
|
|
72
|
+
}
|
|
73
|
+
export function calcViewCenter(opts) {
|
|
74
|
+
let x = 0;
|
|
75
|
+
let y = 0;
|
|
76
|
+
if (opts) {
|
|
77
|
+
const { viewScaleInfo, viewSizeInfo } = opts;
|
|
78
|
+
const { offsetLeft, offsetTop, scale } = viewScaleInfo;
|
|
79
|
+
const { width, height } = viewSizeInfo;
|
|
80
|
+
x = 0 - offsetLeft + width / scale / 2;
|
|
81
|
+
y = 0 - offsetTop + height / scale / 2;
|
|
82
|
+
}
|
|
83
|
+
const p = {
|
|
84
|
+
x,
|
|
85
|
+
y
|
|
86
|
+
};
|
|
87
|
+
return p;
|
|
88
|
+
}
|