@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.
Files changed (105) hide show
  1. package/dist/esm/index.d.ts +46 -31
  2. package/dist/esm/index.js +46 -31
  3. package/dist/esm/{lib → tool}/color.js +9 -6
  4. package/dist/esm/{lib → tool}/event.d.ts +1 -0
  5. package/dist/esm/{lib → tool}/event.js +3 -0
  6. package/dist/esm/tool/flat-object.d.ts +6 -0
  7. package/dist/esm/tool/flat-object.js +28 -0
  8. package/dist/esm/tool/get-set-del.d.ts +4 -0
  9. package/dist/esm/tool/get-set-del.js +65 -0
  10. package/dist/esm/{lib → tool}/html.d.ts +1 -1
  11. package/dist/esm/{lib → tool}/html.js +6 -2
  12. package/dist/esm/{lib → tool}/istype.d.ts +1 -0
  13. package/dist/esm/{lib → tool}/istype.js +3 -0
  14. package/dist/esm/tool/merge.d.ts +1 -0
  15. package/dist/esm/tool/merge.js +17 -0
  16. package/dist/esm/tool/omit.d.ts +1 -0
  17. package/dist/esm/tool/omit.js +7 -0
  18. package/dist/esm/tool/store.d.ts +16 -0
  19. package/dist/esm/{lib → tool}/store.js +17 -5
  20. package/dist/esm/tool/unflat-object.d.ts +3 -0
  21. package/dist/esm/tool/unflat-object.js +91 -0
  22. package/dist/esm/{lib → tool}/uuid.d.ts +1 -1
  23. package/dist/esm/tool/uuid.js +39 -0
  24. package/dist/esm/view/box.d.ts +2 -0
  25. package/dist/esm/view/box.js +173 -0
  26. package/dist/esm/{lib → view}/canvas.d.ts +0 -1
  27. package/dist/esm/view/canvas.js +57 -0
  28. package/dist/esm/{lib → view}/check.js +14 -14
  29. package/dist/esm/{lib → view}/config.js +2 -2
  30. package/dist/esm/{lib → view}/context2d.d.ts +4 -0
  31. package/dist/esm/{lib → view}/context2d.js +20 -0
  32. package/dist/esm/view/controller.d.ts +12 -0
  33. package/dist/esm/view/controller.js +321 -0
  34. package/dist/esm/{lib → view}/data.d.ts +1 -0
  35. package/dist/esm/{lib → view}/data.js +43 -22
  36. package/dist/esm/{lib → view}/element.d.ts +5 -0
  37. package/dist/esm/{lib → view}/element.js +66 -5
  38. package/dist/esm/view/flat.d.ts +2 -0
  39. package/dist/esm/view/flat.js +133 -0
  40. package/dist/esm/view/group.d.ts +3 -0
  41. package/dist/esm/view/group.js +81 -0
  42. package/dist/esm/{lib → view}/handle-element.d.ts +11 -1
  43. package/dist/esm/{lib → view}/handle-element.js +102 -51
  44. package/dist/esm/view/handle-global.d.ts +4 -0
  45. package/dist/esm/view/handle-global.js +28 -0
  46. package/dist/esm/view/handle-layout.d.ts +4 -0
  47. package/dist/esm/view/handle-layout.js +28 -0
  48. package/dist/esm/{lib → view}/is.d.ts +3 -1
  49. package/dist/esm/{lib → view}/is.js +22 -6
  50. package/dist/esm/view/modify-record.d.ts +4 -0
  51. package/dist/esm/view/modify-record.js +10 -0
  52. package/dist/esm/view/point-move-element.d.ts +5 -0
  53. package/dist/esm/view/point-move-element.js +26 -0
  54. package/dist/esm/view/position.d.ts +15 -0
  55. package/dist/esm/view/position.js +79 -0
  56. package/dist/esm/view/rect.js +11 -0
  57. package/dist/esm/view/resize-element.d.ts +4 -0
  58. package/dist/esm/view/resize-element.js +255 -0
  59. package/dist/esm/{lib → view}/rotate.js +8 -13
  60. package/dist/esm/view/text.d.ts +1 -0
  61. package/dist/esm/view/text.js +4 -0
  62. package/dist/esm/{lib → view}/view-box.js +3 -1
  63. package/dist/esm/{lib → view}/view-calc.d.ts +16 -3
  64. package/dist/esm/{lib → view}/view-calc.js +127 -3
  65. package/dist/esm/view/view-content.d.ts +14 -0
  66. package/dist/esm/view/view-content.js +88 -0
  67. package/dist/index.global.js +1938 -346
  68. package/dist/index.global.min.js +1 -1
  69. package/package.json +2 -2
  70. package/dist/esm/lib/canvas.js +0 -81
  71. package/dist/esm/lib/controller.d.ts +0 -6
  72. package/dist/esm/lib/controller.js +0 -103
  73. package/dist/esm/lib/rect.js +0 -11
  74. package/dist/esm/lib/resize-element.d.ts +0 -2
  75. package/dist/esm/lib/resize-element.js +0 -101
  76. package/dist/esm/lib/store.d.ts +0 -11
  77. package/dist/esm/lib/uuid.js +0 -31
  78. /package/dist/esm/{lib → tool}/color.d.ts +0 -0
  79. /package/dist/esm/{lib → tool}/file.d.ts +0 -0
  80. /package/dist/esm/{lib → tool}/file.js +0 -0
  81. /package/dist/esm/{lib → tool}/image.d.ts +0 -0
  82. /package/dist/esm/{lib → tool}/image.js +0 -0
  83. /package/dist/esm/{lib → tool}/number.d.ts +0 -0
  84. /package/dist/esm/{lib → tool}/number.js +0 -0
  85. /package/dist/esm/{lib → tool}/time.d.ts +0 -0
  86. /package/dist/esm/{lib → tool}/time.js +0 -0
  87. /package/dist/esm/{lib → view}/check.d.ts +0 -0
  88. /package/dist/esm/{lib → view}/config.d.ts +0 -0
  89. /package/dist/esm/{lib → view}/load.d.ts +0 -0
  90. /package/dist/esm/{lib → view}/load.js +0 -0
  91. /package/dist/esm/{lib → view}/matrix.d.ts +0 -0
  92. /package/dist/esm/{lib → view}/matrix.js +0 -0
  93. /package/dist/esm/{lib → view}/middleware.d.ts +0 -0
  94. /package/dist/esm/{lib → view}/middleware.js +0 -0
  95. /package/dist/esm/{lib → view}/parser.d.ts +0 -0
  96. /package/dist/esm/{lib → view}/parser.js +0 -0
  97. /package/dist/esm/{lib → view}/point.d.ts +0 -0
  98. /package/dist/esm/{lib → view}/point.js +0 -0
  99. /package/dist/esm/{lib → view}/rect.d.ts +0 -0
  100. /package/dist/esm/{lib → view}/rotate.d.ts +0 -0
  101. /package/dist/esm/{lib → view}/svg-path.d.ts +0 -0
  102. /package/dist/esm/{lib → view}/svg-path.js +0 -0
  103. /package/dist/esm/{lib → view}/vertex.d.ts +0 -0
  104. /package/dist/esm/{lib → view}/vertex.js +0 -0
  105. /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
+ }