@idraw/core 0.3.1 → 0.4.0-alpha.3

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 (74) hide show
  1. package/dist/esm/index.d.ts +19 -55
  2. package/dist/esm/index.js +52 -188
  3. package/dist/esm/lib/cursor-image.d.ts +2 -0
  4. package/dist/esm/lib/cursor-image.js +2 -0
  5. package/dist/esm/lib/cursor.d.ts +16 -0
  6. package/dist/esm/lib/cursor.js +121 -0
  7. package/dist/esm/middleware/scaler/index.d.ts +2 -0
  8. package/dist/esm/middleware/scaler/index.js +22 -0
  9. package/dist/esm/middleware/scroller/config.d.ts +6 -0
  10. package/dist/esm/middleware/scroller/config.js +6 -0
  11. package/dist/esm/middleware/scroller/index.d.ts +2 -0
  12. package/dist/esm/middleware/scroller/index.js +97 -0
  13. package/dist/esm/middleware/scroller/util.d.ts +12 -0
  14. package/dist/esm/middleware/scroller/util.js +192 -0
  15. package/dist/esm/middleware/selector/config.d.ts +20 -0
  16. package/dist/esm/middleware/selector/config.js +20 -0
  17. package/dist/esm/middleware/selector/draw-wrapper.d.ts +22 -0
  18. package/dist/esm/middleware/selector/draw-wrapper.js +111 -0
  19. package/dist/esm/middleware/selector/index.d.ts +3 -0
  20. package/dist/esm/middleware/selector/index.js +454 -0
  21. package/dist/esm/middleware/selector/types.d.ts +40 -0
  22. package/dist/esm/middleware/selector/types.js +1 -0
  23. package/dist/esm/middleware/selector/util.d.ts +53 -0
  24. package/dist/esm/middleware/selector/util.js +789 -0
  25. package/dist/index.global.js +3825 -3991
  26. package/dist/index.global.min.js +1 -1
  27. package/package.json +8 -8
  28. package/LICENSE +0 -21
  29. package/dist/esm/constant/element.d.ts +0 -2
  30. package/dist/esm/constant/element.js +0 -10
  31. package/dist/esm/constant/static.d.ts +0 -11
  32. package/dist/esm/constant/static.js +0 -13
  33. package/dist/esm/lib/calculate.d.ts +0 -5
  34. package/dist/esm/lib/calculate.js +0 -64
  35. package/dist/esm/lib/check.d.ts +0 -28
  36. package/dist/esm/lib/check.js +0 -115
  37. package/dist/esm/lib/config.d.ts +0 -3
  38. package/dist/esm/lib/config.js +0 -20
  39. package/dist/esm/lib/core-event.d.ts +0 -49
  40. package/dist/esm/lib/core-event.js +0 -50
  41. package/dist/esm/lib/diff.d.ts +0 -6
  42. package/dist/esm/lib/diff.js +0 -82
  43. package/dist/esm/lib/draw/base.d.ts +0 -5
  44. package/dist/esm/lib/draw/base.js +0 -90
  45. package/dist/esm/lib/draw/wrapper.d.ts +0 -4
  46. package/dist/esm/lib/draw/wrapper.js +0 -168
  47. package/dist/esm/lib/element.d.ts +0 -15
  48. package/dist/esm/lib/element.js +0 -442
  49. package/dist/esm/lib/engine-temp.d.ts +0 -22
  50. package/dist/esm/lib/engine-temp.js +0 -29
  51. package/dist/esm/lib/engine.d.ts +0 -47
  52. package/dist/esm/lib/engine.js +0 -323
  53. package/dist/esm/lib/helper.d.ts +0 -30
  54. package/dist/esm/lib/helper.js +0 -363
  55. package/dist/esm/lib/index.d.ts +0 -13
  56. package/dist/esm/lib/index.js +0 -13
  57. package/dist/esm/lib/is.d.ts +0 -26
  58. package/dist/esm/lib/is.js +0 -100
  59. package/dist/esm/lib/mapper.d.ts +0 -26
  60. package/dist/esm/lib/mapper.js +0 -89
  61. package/dist/esm/lib/parse.d.ts +0 -2
  62. package/dist/esm/lib/parse.js +0 -32
  63. package/dist/esm/lib/temp.d.ts +0 -11
  64. package/dist/esm/lib/temp.js +0 -19
  65. package/dist/esm/lib/transform.d.ts +0 -4
  66. package/dist/esm/lib/transform.js +0 -20
  67. package/dist/esm/lib/value.d.ts +0 -2
  68. package/dist/esm/lib/value.js +0 -7
  69. package/dist/esm/mixins/element.d.ts +0 -18
  70. package/dist/esm/mixins/element.js +0 -168
  71. package/dist/esm/plugins/helper.d.ts +0 -12
  72. package/dist/esm/plugins/helper.js +0 -16
  73. package/dist/esm/util/filter.d.ts +0 -1
  74. package/dist/esm/util/filter.js +0 -3
@@ -0,0 +1,789 @@
1
+ import { calcElementCenter, rotateElementVertexes, calcElementVertexesInGroup, calcElementQueueVertexesQueueInGroup, calcViewPointSize, rotatePointInGroup, rotatePoint, parseAngleToRadian, limitAngle } from '@idraw/util';
2
+ function parseRadian(angle) {
3
+ return (angle * Math.PI) / 180;
4
+ }
5
+ function calcMoveDist(moveX, moveY) {
6
+ return Math.sqrt(moveX * moveX + moveY * moveY);
7
+ }
8
+ function changeMoveDistDirect(moveDist, moveDirect) {
9
+ return moveDirect > 0 ? Math.abs(moveDist) : 0 - Math.abs(moveDist);
10
+ }
11
+ export function isPointInViewActiveVertexes(p, opts) {
12
+ const { ctx, viewScaleInfo, viewSizeInfo, vertexes } = opts;
13
+ const v0 = calcViewPointSize(vertexes[0], { viewScaleInfo, viewSizeInfo });
14
+ const v1 = calcViewPointSize(vertexes[1], { viewScaleInfo, viewSizeInfo });
15
+ const v2 = calcViewPointSize(vertexes[2], { viewScaleInfo, viewSizeInfo });
16
+ const v3 = calcViewPointSize(vertexes[3], { viewScaleInfo, viewSizeInfo });
17
+ ctx.beginPath();
18
+ ctx.moveTo(v0.x, v0.y);
19
+ ctx.lineTo(v1.x, v1.y);
20
+ ctx.lineTo(v2.x, v2.y);
21
+ ctx.lineTo(v3.x, v3.y);
22
+ ctx.lineTo(v0.x, v0.y);
23
+ ctx.closePath();
24
+ if (ctx.isPointInPath(p.x, p.y)) {
25
+ return true;
26
+ }
27
+ return false;
28
+ }
29
+ export function isPointInViewActiveGroup(p, opts) {
30
+ const { ctx, viewScaleInfo, viewSizeInfo, groupQueue } = opts;
31
+ if (!groupQueue || !((groupQueue === null || groupQueue === void 0 ? void 0 : groupQueue.length) > 0)) {
32
+ return false;
33
+ }
34
+ const vesQueue = calcElementQueueVertexesQueueInGroup(groupQueue);
35
+ const vertexes = vesQueue[vesQueue.length - 1];
36
+ if (!vertexes) {
37
+ return false;
38
+ }
39
+ return isPointInViewActiveVertexes(p, { ctx, vertexes, viewScaleInfo, viewSizeInfo });
40
+ }
41
+ export function getPointTarget(p, opts) {
42
+ var _a, _b, _c;
43
+ const target = {
44
+ type: null,
45
+ elements: [],
46
+ elementVertexesList: [],
47
+ groupQueue: [],
48
+ groupQueueVertexesList: []
49
+ };
50
+ const { ctx, data, calculator, selectedElements, viewScaleInfo, viewSizeInfo, areaSize, groupQueue, selectedElementController } = opts;
51
+ if (selectedElementController) {
52
+ const { left, right, top, bottom, topLeft, topRight, bottomLeft, bottomRight } = selectedElementController;
53
+ const ctrls = [left, right, top, bottom, topLeft, topRight, bottomLeft, bottomRight];
54
+ for (let i = 0; i < ctrls.length; i++) {
55
+ const ctrl = ctrls[i];
56
+ if (isPointInViewActiveVertexes(p, { ctx, vertexes: ctrl.vertexes, viewSizeInfo, viewScaleInfo })) {
57
+ target.type = `resize-${ctrl.type}`;
58
+ if (selectedElements && (selectedElements === null || selectedElements === void 0 ? void 0 : selectedElements.length) > 0) {
59
+ target.groupQueue = groupQueue || [];
60
+ target.elements = [selectedElements[0]];
61
+ }
62
+ break;
63
+ }
64
+ }
65
+ }
66
+ if (groupQueue && Array.isArray(groupQueue) && groupQueue.length > 0) {
67
+ const lastGroup = groupQueue[groupQueue.length - 1];
68
+ if (((_a = lastGroup === null || lastGroup === void 0 ? void 0 : lastGroup.detail) === null || _a === void 0 ? void 0 : _a.children) && Array.isArray((_b = lastGroup === null || lastGroup === void 0 ? void 0 : lastGroup.detail) === null || _b === void 0 ? void 0 : _b.children)) {
69
+ for (let i = lastGroup.detail.children.length - 1; i >= 0; i--) {
70
+ const child = lastGroup.detail.children[i];
71
+ const vertexes = calcElementVertexesInGroup(child, { groupQueue });
72
+ if (vertexes && isPointInViewActiveVertexes(p, { ctx, vertexes, viewScaleInfo, viewSizeInfo })) {
73
+ if (!target.type) {
74
+ target.type = 'over-element';
75
+ }
76
+ target.groupQueue = groupQueue;
77
+ target.elements = [child];
78
+ return target;
79
+ }
80
+ }
81
+ }
82
+ return target;
83
+ }
84
+ if (target.type !== null) {
85
+ return target;
86
+ }
87
+ if (areaSize && Array.isArray(selectedElements) && (selectedElements === null || selectedElements === void 0 ? void 0 : selectedElements.length) > 1) {
88
+ const { x, y, w, h } = areaSize;
89
+ if (p.x >= x && p.x <= x + w && p.y >= y && p.y <= y + h) {
90
+ target.type = 'list-area';
91
+ target.elements = selectedElements;
92
+ return target;
93
+ }
94
+ }
95
+ if (data) {
96
+ const { index, element } = calculator.getPointElement(p, { data, viewScaleInfo, viewSizeInfo });
97
+ if (index >= 0 && element && ((_c = element === null || element === void 0 ? void 0 : element.operations) === null || _c === void 0 ? void 0 : _c.invisible) !== true) {
98
+ target.elements = [element];
99
+ target.type = 'over-element';
100
+ return target;
101
+ }
102
+ }
103
+ return target;
104
+ }
105
+ export function resizeElement(elem, opts) {
106
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
107
+ let { x, y, w, h, angle = 0 } = elem;
108
+ const elemCenter = calcElementCenter({ x, y, w, h, angle });
109
+ angle = limitAngle(angle);
110
+ const radian = parseAngleToRadian(angle);
111
+ const limitRatio = !!((_a = elem === null || elem === void 0 ? void 0 : elem.operations) === null || _a === void 0 ? void 0 : _a.limitRatio);
112
+ const { start, end, resizeType, scale } = opts;
113
+ let start0 = Object.assign({}, start);
114
+ let end0 = Object.assign({}, end);
115
+ let startHorizontal0 = { x: start0.x, y: elemCenter.y };
116
+ let endHorizontal0 = { x: end0.x, y: elemCenter.y };
117
+ let startHorizontal = Object.assign({}, startHorizontal0);
118
+ let endHorizontal = Object.assign({}, endHorizontal0);
119
+ let startVertical0 = { x: elemCenter.x, y: start0.y };
120
+ let endVertical0 = { x: elemCenter.x, y: end0.y };
121
+ let startVertical = Object.assign({}, startVertical0);
122
+ let endVertical = Object.assign({}, endVertical0);
123
+ let moveHorizontalX = (endHorizontal.x - startHorizontal.x) / scale;
124
+ let moveHorizontalY = (endHorizontal.y - startHorizontal.y) / scale;
125
+ let moveHorizontalDist = calcMoveDist(moveHorizontalX, moveHorizontalY);
126
+ let centerMoveHorizontalDist = 0;
127
+ let moveVerticalX = (endVertical.x - startVertical.x) / scale;
128
+ let moveVerticalY = (endVertical.y - startVertical.y) / scale;
129
+ let moveVerticalDist = calcMoveDist(moveVerticalX, moveVerticalY);
130
+ let centerMoveVerticalDist = 0;
131
+ if (angle > 0 || angle < 0) {
132
+ start0 = rotatePoint(elemCenter, start, 0 - radian);
133
+ end0 = rotatePoint(elemCenter, end, 0 - radian);
134
+ startHorizontal0 = { x: start0.x, y: elemCenter.y };
135
+ endHorizontal0 = { x: end0.x, y: elemCenter.y };
136
+ startHorizontal = rotatePoint(elemCenter, startHorizontal0, radian);
137
+ endHorizontal = rotatePoint(elemCenter, endHorizontal0, radian);
138
+ startVertical0 = { x: elemCenter.x, y: start0.y };
139
+ endVertical0 = { x: elemCenter.x, y: end0.y };
140
+ startVertical = rotatePoint(elemCenter, startVertical0, radian);
141
+ endVertical = rotatePoint(elemCenter, endVertical0, radian);
142
+ moveHorizontalX = (endHorizontal.x - startHorizontal.x) / scale;
143
+ moveHorizontalY = (endHorizontal.y - startHorizontal.y) / scale;
144
+ moveHorizontalDist = calcMoveDist(moveHorizontalX, moveHorizontalY);
145
+ moveHorizontalDist = changeMoveDistDirect(moveHorizontalDist, moveHorizontalY);
146
+ centerMoveHorizontalDist = moveHorizontalDist / 2;
147
+ moveVerticalX = (endVertical.x - startVertical.x) / scale;
148
+ moveVerticalY = (endVertical.y - startVertical.y) / scale;
149
+ moveVerticalDist = calcMoveDist(moveVerticalX, moveVerticalY);
150
+ moveVerticalDist = changeMoveDistDirect(moveVerticalDist, moveVerticalY);
151
+ centerMoveVerticalDist = moveVerticalDist / 2;
152
+ }
153
+ let moveX = (end.x - start.x) / scale;
154
+ let moveY = (end.y - start.y) / scale;
155
+ if (limitRatio === true) {
156
+ if (['resize-top', 'resize-bottom', 'resize-left', 'resize-right'].includes(resizeType)) {
157
+ const maxDist = Math.max(Math.abs(moveX), Math.abs(moveY));
158
+ moveX = (moveX >= 0 ? 1 : -1) * maxDist;
159
+ moveY = (((moveY >= 0 ? 1 : -1) * maxDist) / elem.w) * elem.h;
160
+ const maxVerticalDist = Math.max(Math.abs(moveVerticalX), Math.abs(moveVerticalY));
161
+ moveVerticalX = (moveVerticalX >= 0 ? 1 : -1) * maxVerticalDist;
162
+ moveVerticalY = (((moveVerticalY >= 0 ? 1 : -1) * maxVerticalDist) / elem.w) * elem.h;
163
+ const maxHorizontalDist = Math.max(Math.abs(moveHorizontalX), Math.abs(moveHorizontalY));
164
+ moveHorizontalX = (moveHorizontalX >= 0 ? 1 : -1) * maxHorizontalDist;
165
+ moveHorizontalY = (((moveHorizontalY >= 0 ? 1 : -1) * maxHorizontalDist) / elem.w) * elem.h;
166
+ }
167
+ else if (['resize-top-left', 'resize-top-right', 'resize-bottom-left', 'resize-bottom-right'].includes(resizeType)) {
168
+ {
169
+ const maxDist = Math.abs(moveX);
170
+ moveX = (moveX >= 0 ? 1 : -1) * maxDist;
171
+ const moveYLeng = (maxDist / elem.w) * elem.h;
172
+ if (resizeType === 'resize-top-left' || resizeType === 'resize-bottom-right') {
173
+ moveY = moveX > 0 ? moveYLeng : -moveYLeng;
174
+ }
175
+ else if (resizeType === 'resize-top-right' || resizeType === 'resize-bottom-left') {
176
+ moveY = moveX > 0 ? -moveYLeng : moveYLeng;
177
+ }
178
+ }
179
+ {
180
+ moveHorizontalDist = Math.abs(moveHorizontalDist);
181
+ moveVerticalDist = (moveHorizontalDist / elem.w) * elem.h;
182
+ }
183
+ }
184
+ }
185
+ switch (resizeType) {
186
+ case 'resize-top': {
187
+ if (angle === 0) {
188
+ if (h - moveY > 0) {
189
+ y += moveY;
190
+ h -= moveY;
191
+ if (((_b = elem.operations) === null || _b === void 0 ? void 0 : _b.limitRatio) === true) {
192
+ x += ((moveY / elem.h) * elem.w) / 2;
193
+ w -= (moveY / elem.h) * elem.w;
194
+ }
195
+ }
196
+ }
197
+ else if (angle > 0 || angle < 0) {
198
+ let centerX = elemCenter.x;
199
+ let centerY = elemCenter.y;
200
+ if (angle < 90) {
201
+ moveVerticalDist = 0 - changeMoveDistDirect(moveVerticalDist, moveVerticalY);
202
+ const radian = parseRadian(angle);
203
+ const centerMoveVerticalDist = moveVerticalDist / 2;
204
+ centerX = centerX + centerMoveVerticalDist * Math.sin(radian);
205
+ centerY = centerY - centerMoveVerticalDist * Math.cos(radian);
206
+ }
207
+ else if (angle < 180) {
208
+ moveVerticalDist = changeMoveDistDirect(moveVerticalDist, moveVerticalX);
209
+ const radian = parseRadian(angle - 90);
210
+ const centerMoveVerticalDist = moveVerticalDist / 2;
211
+ centerX = centerX + centerMoveVerticalDist * Math.cos(radian);
212
+ centerY = centerY + centerMoveVerticalDist * Math.sin(radian);
213
+ }
214
+ else if (angle < 270) {
215
+ moveVerticalDist = changeMoveDistDirect(moveVerticalDist, moveVerticalY);
216
+ const radian = parseRadian(angle - 180);
217
+ const centerMoveVerticalDist = moveVerticalDist / 2;
218
+ centerX = centerX - centerMoveVerticalDist * Math.sin(radian);
219
+ centerY = centerY + centerMoveVerticalDist * Math.cos(radian);
220
+ }
221
+ else if (angle < 360) {
222
+ moveVerticalDist = 0 - changeMoveDistDirect(moveVerticalDist, moveVerticalX);
223
+ const radian = parseRadian(angle - 270);
224
+ const centerMoveVerticalDist = moveVerticalDist / 2;
225
+ centerX = centerX - centerMoveVerticalDist * Math.cos(radian);
226
+ centerY = centerY - centerMoveVerticalDist * Math.sin(radian);
227
+ }
228
+ if (h + moveVerticalDist > 0) {
229
+ if (((_c = elem.operations) === null || _c === void 0 ? void 0 : _c.limitRatio) === true) {
230
+ w = w + (moveVerticalDist / elem.h) * elem.w;
231
+ }
232
+ h = h + moveVerticalDist;
233
+ x = centerX - w / 2;
234
+ y = centerY - h / 2;
235
+ }
236
+ }
237
+ break;
238
+ }
239
+ case 'resize-bottom': {
240
+ if (angle === 0) {
241
+ if (elem.h + moveY > 0) {
242
+ h += moveY;
243
+ if (((_d = elem.operations) === null || _d === void 0 ? void 0 : _d.limitRatio) === true) {
244
+ x -= ((moveY / elem.h) * elem.w) / 2;
245
+ w += (moveY / elem.h) * elem.w;
246
+ }
247
+ }
248
+ }
249
+ else if (angle > 0 || angle < 0) {
250
+ let centerX = elemCenter.x;
251
+ let centerY = elemCenter.y;
252
+ if (angle < 90) {
253
+ moveVerticalDist = changeMoveDistDirect(moveVerticalDist, moveVerticalY);
254
+ const radian = parseRadian(angle);
255
+ const centerMoveVerticalDist = moveVerticalDist / 2;
256
+ centerX = centerX - centerMoveVerticalDist * Math.sin(radian);
257
+ centerY = centerY + centerMoveVerticalDist * Math.cos(radian);
258
+ }
259
+ else if (angle < 180) {
260
+ moveVerticalDist = 0 - changeMoveDistDirect(moveVerticalDist, moveVerticalX);
261
+ const radian = parseRadian(angle - 90);
262
+ const centerMoveVerticalDist = moveVerticalDist / 2;
263
+ centerX = centerX - centerMoveVerticalDist * Math.cos(radian);
264
+ centerY = centerY - centerMoveVerticalDist * Math.sin(radian);
265
+ }
266
+ else if (angle < 270) {
267
+ moveVerticalDist = changeMoveDistDirect(moveVerticalDist, moveVerticalX);
268
+ const radian = parseRadian(angle - 180);
269
+ const centerMoveVerticalDist = moveVerticalDist / 2;
270
+ centerX = centerX + centerMoveVerticalDist * Math.sin(radian);
271
+ centerY = centerY - centerMoveVerticalDist * Math.cos(radian);
272
+ }
273
+ else if (angle < 360) {
274
+ moveVerticalDist = changeMoveDistDirect(moveVerticalDist, moveVerticalX);
275
+ const radian = parseRadian(angle - 270);
276
+ const centerMoveDist = moveVerticalDist / 2;
277
+ centerX = centerX + centerMoveDist * Math.cos(radian);
278
+ centerY = centerY + centerMoveDist * Math.sin(radian);
279
+ }
280
+ if (h + moveVerticalDist > 0) {
281
+ if (((_e = elem.operations) === null || _e === void 0 ? void 0 : _e.limitRatio) === true) {
282
+ w = w + (moveVerticalDist / elem.h) * elem.w;
283
+ }
284
+ h = h + moveVerticalDist;
285
+ x = centerX - w / 2;
286
+ y = centerY - h / 2;
287
+ }
288
+ }
289
+ break;
290
+ }
291
+ case 'resize-left': {
292
+ if (angle === 0) {
293
+ if (elem.w - moveX > 0) {
294
+ x += moveX;
295
+ w -= moveX;
296
+ if (((_f = elem.operations) === null || _f === void 0 ? void 0 : _f.limitRatio) === true) {
297
+ h -= (moveX / elem.w) * elem.h;
298
+ y += ((moveX / elem.w) * elem.h) / 2;
299
+ }
300
+ }
301
+ }
302
+ else if (angle > 0 || angle < 0) {
303
+ let centerX = elemCenter.x;
304
+ let centerY = elemCenter.y;
305
+ if (angle < 90) {
306
+ moveHorizontalDist = 0 - changeMoveDistDirect(moveHorizontalDist, moveHorizontalX);
307
+ const radian = parseRadian(angle);
308
+ const centerMoveHorizontalDist = moveHorizontalDist / 2;
309
+ centerX = centerX - centerMoveHorizontalDist * Math.cos(radian);
310
+ centerY = centerY - centerMoveHorizontalDist * Math.sin(radian);
311
+ }
312
+ else if (angle < 180) {
313
+ moveHorizontalDist = changeMoveDistDirect(moveHorizontalDist, moveHorizontalX);
314
+ const radian = parseRadian(angle - 90);
315
+ const centerMoveDist = moveHorizontalDist / 2;
316
+ centerX = centerX + centerMoveDist * Math.sin(radian);
317
+ centerY = centerY - centerMoveDist * Math.cos(radian);
318
+ }
319
+ else if (angle < 270) {
320
+ moveHorizontalDist = changeMoveDistDirect(moveHorizontalDist, moveHorizontalY);
321
+ const radian = parseRadian(angle - 180);
322
+ const centerMoveHorizontalDist = moveHorizontalDist / 2;
323
+ centerX = centerX + centerMoveHorizontalDist * Math.cos(radian);
324
+ centerY = centerY + centerMoveHorizontalDist * Math.sin(radian);
325
+ }
326
+ else if (angle < 360) {
327
+ moveHorizontalDist = changeMoveDistDirect(moveHorizontalDist, moveHorizontalY);
328
+ const radian = parseRadian(angle - 270);
329
+ const centerMoveHorizontalDist = moveHorizontalDist / 2;
330
+ centerX = centerX - centerMoveHorizontalDist * Math.sin(radian);
331
+ centerY = centerY + centerMoveHorizontalDist * Math.cos(radian);
332
+ }
333
+ if (w + moveHorizontalDist > 0) {
334
+ if (((_g = elem.operations) === null || _g === void 0 ? void 0 : _g.limitRatio) === true) {
335
+ h = h + (moveHorizontalDist / elem.w) * elem.h;
336
+ }
337
+ w = w + moveHorizontalDist;
338
+ x = centerX - w / 2;
339
+ y = centerY - h / 2;
340
+ }
341
+ }
342
+ break;
343
+ }
344
+ case 'resize-right': {
345
+ if (angle === 0) {
346
+ if (elem.w + moveX > 0) {
347
+ w += moveX;
348
+ if (((_h = elem.operations) === null || _h === void 0 ? void 0 : _h.limitRatio) === true) {
349
+ y -= (moveX * elem.h) / elem.w / 2;
350
+ h += (moveX * elem.h) / elem.w;
351
+ }
352
+ }
353
+ }
354
+ else if (angle > 0 || angle < 0) {
355
+ let centerX = elemCenter.x;
356
+ let centerY = elemCenter.y;
357
+ if (angle < 90) {
358
+ moveHorizontalDist = changeMoveDistDirect(moveHorizontalDist, moveHorizontalY);
359
+ const radian = parseRadian(angle);
360
+ const centerMoveHorizontalDist = moveHorizontalDist / 2;
361
+ centerX = centerX + centerMoveHorizontalDist * Math.cos(radian);
362
+ centerY = centerY + centerMoveHorizontalDist * Math.sin(radian);
363
+ }
364
+ else if (angle < 180) {
365
+ moveHorizontalDist = changeMoveDistDirect(moveHorizontalDist, moveY);
366
+ const radian = parseRadian(angle - 90);
367
+ const centerMoveHorizontalDist = moveHorizontalDist / 2;
368
+ centerX = centerX - centerMoveHorizontalDist * Math.sin(radian);
369
+ centerY = centerY + centerMoveHorizontalDist * Math.cos(radian);
370
+ }
371
+ else if (angle < 270) {
372
+ moveHorizontalDist = changeMoveDistDirect(moveHorizontalDist, moveY);
373
+ const radian = parseRadian(angle - 180);
374
+ const centerMoveHorizontalDist = moveHorizontalDist / 2;
375
+ centerX = centerX + centerMoveHorizontalDist * Math.cos(radian);
376
+ centerY = centerY + centerMoveHorizontalDist * Math.sin(radian);
377
+ moveHorizontalDist = 0 - moveHorizontalDist;
378
+ }
379
+ else if (angle < 360) {
380
+ moveHorizontalDist = changeMoveDistDirect(moveHorizontalDist, moveX);
381
+ const radian = parseRadian(angle - 270);
382
+ const centerMoveHorizontalDist = moveHorizontalDist / 2;
383
+ centerX = centerX + centerMoveHorizontalDist * Math.sin(radian);
384
+ centerY = centerY - centerMoveHorizontalDist * Math.cos(radian);
385
+ }
386
+ if (w + moveHorizontalDist > 0) {
387
+ if (((_j = elem.operations) === null || _j === void 0 ? void 0 : _j.limitRatio) === true) {
388
+ h = h + (moveHorizontalDist / elem.w) * elem.h;
389
+ }
390
+ w = w + moveHorizontalDist;
391
+ x = centerX - w / 2;
392
+ y = centerY - h / 2;
393
+ }
394
+ }
395
+ break;
396
+ }
397
+ case 'resize-top-left': {
398
+ if (angle === 0) {
399
+ if (w - moveX > 0) {
400
+ x += moveX;
401
+ w -= moveX;
402
+ }
403
+ if (h - moveY > 0) {
404
+ y += moveY;
405
+ h -= moveY;
406
+ }
407
+ }
408
+ else if (angle > 0 || angle < 0) {
409
+ let centerX = elemCenter.x;
410
+ let centerY = elemCenter.y;
411
+ if (angle < 90) {
412
+ moveVerticalDist = 0 - changeMoveDistDirect(moveVerticalDist, moveVerticalY);
413
+ moveHorizontalDist = 0 - changeMoveDistDirect(moveHorizontalDist, limitRatio ? 0 - moveVerticalDist : moveHorizontalX);
414
+ const centerMoveVerticalDist = moveVerticalDist / 2;
415
+ centerX = centerX + centerMoveVerticalDist * Math.sin(radian);
416
+ centerY = centerY - centerMoveVerticalDist * Math.cos(radian);
417
+ const centerMoveHorizontalDist = moveHorizontalDist / 2;
418
+ centerX = centerX - centerMoveHorizontalDist * Math.cos(radian);
419
+ centerY = centerY - centerMoveHorizontalDist * Math.sin(radian);
420
+ }
421
+ else if (angle < 180) {
422
+ moveVerticalDist = changeMoveDistDirect(moveVerticalDist, moveVerticalX);
423
+ moveHorizontalDist = changeMoveDistDirect(moveHorizontalDist, limitRatio ? moveVerticalDist : moveHorizontalX);
424
+ const radian = parseRadian(angle - 90);
425
+ const centerMoveVerticalDist = moveVerticalDist / 2;
426
+ centerX = centerX + centerMoveVerticalDist * Math.cos(radian);
427
+ centerY = centerY + centerMoveVerticalDist * Math.sin(radian);
428
+ const centerMoveDist = moveHorizontalDist / 2;
429
+ centerX = centerX + centerMoveDist * Math.sin(radian);
430
+ centerY = centerY - centerMoveDist * Math.cos(radian);
431
+ }
432
+ else if (angle < 270) {
433
+ moveVerticalDist = changeMoveDistDirect(moveVerticalDist, moveVerticalY);
434
+ moveHorizontalDist = changeMoveDistDirect(moveHorizontalDist, limitRatio ? moveVerticalDist : moveHorizontalY);
435
+ const radian = parseRadian(angle - 180);
436
+ const centerMoveVerticalDist = moveVerticalDist / 2;
437
+ centerX = centerX - centerMoveVerticalDist * Math.sin(radian);
438
+ centerY = centerY + centerMoveVerticalDist * Math.cos(radian);
439
+ const centerMoveHorizontalDist = moveHorizontalDist / 2;
440
+ centerX = centerX + centerMoveHorizontalDist * Math.cos(radian);
441
+ centerY = centerY + centerMoveHorizontalDist * Math.sin(radian);
442
+ }
443
+ else if (angle < 360) {
444
+ moveVerticalDist = 0 - changeMoveDistDirect(moveVerticalDist, moveVerticalX);
445
+ moveHorizontalDist = changeMoveDistDirect(moveHorizontalDist, limitRatio ? moveVerticalDist : moveHorizontalY);
446
+ const radian = parseRadian(angle - 270);
447
+ const centerMoveVerticalDist = moveVerticalDist / 2;
448
+ centerX = centerX - centerMoveVerticalDist * Math.cos(radian);
449
+ centerY = centerY - centerMoveVerticalDist * Math.sin(radian);
450
+ const centerMoveHorizontalDist = moveHorizontalDist / 2;
451
+ centerX = centerX - centerMoveHorizontalDist * Math.sin(radian);
452
+ centerY = centerY + centerMoveHorizontalDist * Math.cos(radian);
453
+ }
454
+ if (h + moveVerticalDist > 0) {
455
+ h = h + moveVerticalDist;
456
+ }
457
+ if (w + moveHorizontalDist > 0) {
458
+ w = w + moveHorizontalDist;
459
+ }
460
+ x = centerX - w / 2;
461
+ y = centerY - h / 2;
462
+ }
463
+ break;
464
+ }
465
+ case 'resize-top-right': {
466
+ if (angle === 0) {
467
+ if (w + moveX > 0) {
468
+ w += moveX;
469
+ }
470
+ if (h - moveY > 0) {
471
+ y += moveY;
472
+ h -= moveY;
473
+ }
474
+ }
475
+ else if (angle > 0 || angle < 0) {
476
+ let centerX = elemCenter.x;
477
+ let centerY = elemCenter.y;
478
+ if (angle < 90) {
479
+ moveVerticalDist = 0 - changeMoveDistDirect(moveVerticalDist, moveVerticalY);
480
+ moveHorizontalDist = changeMoveDistDirect(moveHorizontalDist, limitRatio ? moveVerticalDist : moveHorizontalY);
481
+ const radian = parseRadian(angle);
482
+ const centerMoveVerticalDist = moveVerticalDist / 2;
483
+ centerX = centerX + centerMoveVerticalDist * Math.sin(radian);
484
+ centerY = centerY - centerMoveVerticalDist * Math.cos(radian);
485
+ const centerMoveHorizontalDist = moveHorizontalDist / 2;
486
+ centerX = centerX + centerMoveHorizontalDist * Math.cos(radian);
487
+ centerY = centerY + centerMoveHorizontalDist * Math.sin(radian);
488
+ }
489
+ else if (angle < 180) {
490
+ moveVerticalDist = changeMoveDistDirect(moveVerticalDist, moveVerticalX);
491
+ moveHorizontalDist = changeMoveDistDirect(moveHorizontalDist, limitRatio ? moveVerticalDist : moveHorizontalY);
492
+ const radian = parseRadian(angle - 90);
493
+ const centerMoveVerticalDist = moveVerticalDist / 2;
494
+ centerX = centerX + centerMoveVerticalDist * Math.cos(radian);
495
+ centerY = centerY + centerMoveVerticalDist * Math.sin(radian);
496
+ const centerMoveHorizontalDist = moveHorizontalDist / 2;
497
+ centerX = centerX - centerMoveHorizontalDist * Math.sin(radian);
498
+ centerY = centerY + centerMoveHorizontalDist * Math.cos(radian);
499
+ }
500
+ else if (angle < 270) {
501
+ const radian = parseRadian(angle - 180);
502
+ moveVerticalDist = changeMoveDistDirect(moveVerticalDist, moveVerticalY);
503
+ moveHorizontalDist = changeMoveDistDirect(moveHorizontalDist, limitRatio ? moveVerticalDist : 0 - moveHorizontalX);
504
+ const centerMoveVerticalDist = moveVerticalDist / 2;
505
+ centerX = centerX - centerMoveVerticalDist * Math.sin(radian);
506
+ centerY = centerY + centerMoveVerticalDist * Math.cos(radian);
507
+ const centerMoveHorizontalDist = moveHorizontalDist / 2;
508
+ centerX = centerX - centerMoveHorizontalDist * Math.cos(radian);
509
+ centerY = centerY - centerMoveHorizontalDist * Math.sin(radian);
510
+ }
511
+ else if (angle < 360) {
512
+ moveVerticalDist = 0 - changeMoveDistDirect(moveVerticalDist, moveVerticalX);
513
+ moveHorizontalDist = changeMoveDistDirect(moveHorizontalDist, limitRatio ? moveVerticalDist : moveHorizontalX);
514
+ const radian = parseRadian(angle - 270);
515
+ const centerMoveVerticalDist = moveVerticalDist / 2;
516
+ centerX = centerX - centerMoveVerticalDist * Math.cos(radian);
517
+ centerY = centerY - centerMoveVerticalDist * Math.sin(radian);
518
+ const centerMoveHorizontalDist = moveHorizontalDist / 2;
519
+ centerX = centerX + centerMoveHorizontalDist * Math.sin(radian);
520
+ centerY = centerY - centerMoveHorizontalDist * Math.cos(radian);
521
+ }
522
+ if (h + moveVerticalDist > 0) {
523
+ h = h + moveVerticalDist;
524
+ }
525
+ if (w + moveHorizontalDist > 0) {
526
+ w = w + moveHorizontalDist;
527
+ }
528
+ x = centerX - w / 2;
529
+ y = centerY - h / 2;
530
+ }
531
+ break;
532
+ }
533
+ case 'resize-bottom-left': {
534
+ if (angle === 0) {
535
+ if (elem.h + moveY > 0) {
536
+ h += moveY;
537
+ }
538
+ if (elem.w - moveX > 0) {
539
+ x += moveX;
540
+ w -= moveX;
541
+ }
542
+ }
543
+ else if (angle > 0 || angle < 0) {
544
+ let centerX = elemCenter.x;
545
+ let centerY = elemCenter.y;
546
+ if (angle < 90) {
547
+ moveVerticalDist = changeMoveDistDirect(moveVerticalDist, moveVerticalY);
548
+ moveHorizontalDist = 0 - changeMoveDistDirect(moveHorizontalDist, limitRatio ? 0 - moveVerticalDist : moveHorizontalX);
549
+ const radian = parseRadian(angle);
550
+ const centerMoveVerticalDist = moveVerticalDist / 2;
551
+ centerX = centerX - centerMoveVerticalDist * Math.sin(radian);
552
+ centerY = centerY + centerMoveVerticalDist * Math.cos(radian);
553
+ const centerMoveHorizontalDist = moveHorizontalDist / 2;
554
+ centerX = centerX - centerMoveHorizontalDist * Math.cos(radian);
555
+ centerY = centerY - centerMoveHorizontalDist * Math.sin(radian);
556
+ }
557
+ else if (angle < 180) {
558
+ moveVerticalDist = 0 - changeMoveDistDirect(moveVerticalDist, moveVerticalX);
559
+ moveHorizontalDist = changeMoveDistDirect(moveHorizontalDist, limitRatio ? moveVerticalDist : moveHorizontalX);
560
+ const radian = parseRadian(angle - 90);
561
+ const centerMoveVerticalDist = moveVerticalDist / 2;
562
+ centerX = centerX - centerMoveVerticalDist * Math.cos(radian);
563
+ centerY = centerY - centerMoveVerticalDist * Math.sin(radian);
564
+ const centerMoveDist = moveHorizontalDist / 2;
565
+ centerX = centerX + centerMoveDist * Math.sin(radian);
566
+ centerY = centerY - centerMoveDist * Math.cos(radian);
567
+ }
568
+ else if (angle < 270) {
569
+ moveVerticalDist = changeMoveDistDirect(moveVerticalDist, moveVerticalX);
570
+ moveHorizontalDist = changeMoveDistDirect(moveHorizontalDist, limitRatio ? moveVerticalDist : moveHorizontalY);
571
+ const radian = parseRadian(angle - 180);
572
+ const centerMoveVerticalDist = moveVerticalDist / 2;
573
+ centerX = centerX + centerMoveVerticalDist * Math.sin(radian);
574
+ centerY = centerY - centerMoveVerticalDist * Math.cos(radian);
575
+ const centerMoveHorizontalDist = moveHorizontalDist / 2;
576
+ centerX = centerX + centerMoveHorizontalDist * Math.cos(radian);
577
+ centerY = centerY + centerMoveHorizontalDist * Math.sin(radian);
578
+ }
579
+ else if (angle < 360) {
580
+ moveVerticalDist = changeMoveDistDirect(moveVerticalDist, moveVerticalX);
581
+ moveHorizontalDist = changeMoveDistDirect(moveHorizontalDist, limitRatio ? moveVerticalDist : moveHorizontalY);
582
+ const radian = parseRadian(angle - 270);
583
+ const centerMoveDist = moveVerticalDist / 2;
584
+ centerX = centerX + centerMoveDist * Math.cos(radian);
585
+ centerY = centerY + centerMoveDist * Math.sin(radian);
586
+ const centerMoveHorizontalDist = moveHorizontalDist / 2;
587
+ centerX = centerX - centerMoveHorizontalDist * Math.sin(radian);
588
+ centerY = centerY + centerMoveHorizontalDist * Math.cos(radian);
589
+ }
590
+ if (h + moveVerticalDist > 0) {
591
+ h = h + moveVerticalDist;
592
+ }
593
+ if (w + moveHorizontalDist > 0) {
594
+ w = w + moveHorizontalDist;
595
+ }
596
+ x = centerX - w / 2;
597
+ y = centerY - h / 2;
598
+ }
599
+ break;
600
+ }
601
+ case 'resize-bottom-right': {
602
+ if (angle === 0) {
603
+ if (elem.h + moveY > 0) {
604
+ h += moveY;
605
+ }
606
+ if (elem.w + moveX > 0) {
607
+ w += moveX;
608
+ }
609
+ }
610
+ else if (angle > 0 || angle < 0) {
611
+ let centerX = elemCenter.x;
612
+ let centerY = elemCenter.y;
613
+ if (angle < 90) {
614
+ moveVerticalDist = changeMoveDistDirect(moveVerticalDist, moveVerticalY);
615
+ moveHorizontalDist = changeMoveDistDirect(moveHorizontalDist, limitRatio ? moveVerticalDist : moveHorizontalY);
616
+ const radian = parseRadian(angle);
617
+ const centerMoveVerticalDist = moveVerticalDist / 2;
618
+ centerX = centerX - centerMoveVerticalDist * Math.sin(radian);
619
+ centerY = centerY + centerMoveVerticalDist * Math.cos(radian);
620
+ const centerMoveHorizontalDist = moveHorizontalDist / 2;
621
+ centerX = centerX + centerMoveHorizontalDist * Math.cos(radian);
622
+ centerY = centerY + centerMoveHorizontalDist * Math.sin(radian);
623
+ }
624
+ else if (angle < 180) {
625
+ moveVerticalDist = 0 - changeMoveDistDirect(moveVerticalDist, moveVerticalX);
626
+ moveHorizontalDist = changeMoveDistDirect(moveHorizontalDist, limitRatio ? moveVerticalDist : moveY);
627
+ const radian = parseRadian(angle - 90);
628
+ const centerMoveVerticalDist = moveVerticalDist / 2;
629
+ centerX = centerX - centerMoveVerticalDist * Math.cos(radian);
630
+ centerY = centerY - centerMoveVerticalDist * Math.sin(radian);
631
+ const centerMoveHorizontalDist = moveHorizontalDist / 2;
632
+ centerX = centerX - centerMoveHorizontalDist * Math.sin(radian);
633
+ centerY = centerY + centerMoveHorizontalDist * Math.cos(radian);
634
+ }
635
+ else if (angle < 270) {
636
+ moveVerticalDist = changeMoveDistDirect(moveVerticalDist, moveVerticalX);
637
+ moveHorizontalDist = changeMoveDistDirect(moveHorizontalDist, limitRatio ? moveVerticalDist : 0 - moveHorizontalY);
638
+ const radian = parseRadian(angle - 180);
639
+ const centerMoveVerticalDist = moveVerticalDist / 2;
640
+ centerX = centerX + centerMoveVerticalDist * Math.sin(radian);
641
+ centerY = centerY - centerMoveVerticalDist * Math.cos(radian);
642
+ const centerMoveHorizontalDist = moveHorizontalDist / 2;
643
+ centerX = centerX - centerMoveHorizontalDist * Math.cos(radian);
644
+ centerY = centerY - centerMoveHorizontalDist * Math.sin(radian);
645
+ }
646
+ else if (angle < 360) {
647
+ moveVerticalDist = changeMoveDistDirect(moveVerticalDist, moveVerticalX);
648
+ moveHorizontalDist = changeMoveDistDirect(moveHorizontalDist, limitRatio ? moveVerticalDist : moveHorizontalX);
649
+ const radian = parseRadian(angle - 270);
650
+ const centerMoveDist = moveVerticalDist / 2;
651
+ centerX = centerX + centerMoveDist * Math.cos(radian);
652
+ centerY = centerY + centerMoveDist * Math.sin(radian);
653
+ const centerMoveHorizontalDist = moveHorizontalDist / 2;
654
+ centerX = centerX + centerMoveHorizontalDist * Math.sin(radian);
655
+ centerY = centerY - centerMoveHorizontalDist * Math.cos(radian);
656
+ }
657
+ if (h + moveVerticalDist > 0) {
658
+ h = h + moveVerticalDist;
659
+ }
660
+ if (w + moveHorizontalDist > 0) {
661
+ w = w + moveHorizontalDist;
662
+ }
663
+ x = centerX - w / 2;
664
+ y = centerY - h / 2;
665
+ }
666
+ break;
667
+ }
668
+ default: {
669
+ break;
670
+ }
671
+ }
672
+ return { x, y, w, h, angle: elem.angle };
673
+ }
674
+ export function getSelectedListArea(data, opts) {
675
+ const indexes = [];
676
+ const uuids = [];
677
+ const elements = [];
678
+ const { calculator, viewScaleInfo, viewSizeInfo, start, end } = opts;
679
+ if (!(Array.isArray(data.elements) && start && end)) {
680
+ return { indexes, uuids, elements };
681
+ }
682
+ const startX = Math.min(start.x, end.x);
683
+ const endX = Math.max(start.x, end.x);
684
+ const startY = Math.min(start.y, end.y);
685
+ const endY = Math.max(start.y, end.y);
686
+ data.elements.forEach((elem, idx) => {
687
+ const elemSize = calculator.elementSize(elem, viewScaleInfo, viewSizeInfo);
688
+ const center = calcElementCenter(elemSize);
689
+ if (center.x >= startX && center.x <= endX && center.y >= startY && center.y <= endY) {
690
+ indexes.push(idx);
691
+ uuids.push(elem.uuid);
692
+ elements.push(elem);
693
+ if (elemSize.angle && (elemSize.angle > 0 || elemSize.angle < 0)) {
694
+ const ves = rotateElementVertexes(elemSize);
695
+ if (ves.length === 4) {
696
+ const xList = [ves[0].x, ves[1].x, ves[2].x, ves[3].x];
697
+ const yList = [ves[0].y, ves[1].y, ves[2].y, ves[3].y];
698
+ elemSize.x = Math.min(...xList);
699
+ elemSize.y = Math.min(...yList);
700
+ elemSize.w = Math.abs(Math.max(...xList) - Math.min(...xList));
701
+ elemSize.h = Math.abs(Math.max(...yList) - Math.min(...yList));
702
+ }
703
+ }
704
+ }
705
+ });
706
+ return { indexes, uuids, elements };
707
+ }
708
+ export function calcSelectedElementsArea(elements, opts) {
709
+ var _a;
710
+ if (!Array.isArray(elements)) {
711
+ return null;
712
+ }
713
+ const area = { x: 0, y: 0, w: 0, h: 0 };
714
+ const { calculator, viewScaleInfo, viewSizeInfo } = opts;
715
+ let prevElemSize = null;
716
+ for (let i = 0; i < elements.length; i++) {
717
+ const elem = elements[i];
718
+ if ((_a = elem === null || elem === void 0 ? void 0 : elem.operations) === null || _a === void 0 ? void 0 : _a.invisible) {
719
+ continue;
720
+ }
721
+ const elemSize = calculator.elementSize(elem, viewScaleInfo, viewSizeInfo);
722
+ if (elemSize.angle && (elemSize.angle > 0 || elemSize.angle < 0)) {
723
+ const ves = rotateElementVertexes(elemSize);
724
+ if (ves.length === 4) {
725
+ const xList = [ves[0].x, ves[1].x, ves[2].x, ves[3].x];
726
+ const yList = [ves[0].y, ves[1].y, ves[2].y, ves[3].y];
727
+ elemSize.x = Math.min(...xList);
728
+ elemSize.y = Math.min(...yList);
729
+ elemSize.w = Math.abs(Math.max(...xList) - Math.min(...xList));
730
+ elemSize.h = Math.abs(Math.max(...yList) - Math.min(...yList));
731
+ }
732
+ }
733
+ if (prevElemSize) {
734
+ const areaStartX = Math.min(elemSize.x, area.x);
735
+ const areaStartY = Math.min(elemSize.y, area.y);
736
+ const areaEndX = Math.max(elemSize.x + elemSize.w, area.x + area.w);
737
+ const areaEndY = Math.max(elemSize.y + elemSize.h, area.y + area.h);
738
+ area.x = areaStartX;
739
+ area.y = areaStartY;
740
+ area.w = Math.abs(areaEndX - areaStartX);
741
+ area.h = Math.abs(areaEndY - areaStartY);
742
+ }
743
+ else {
744
+ area.x = elemSize.x;
745
+ area.y = elemSize.y;
746
+ area.w = elemSize.w;
747
+ area.h = elemSize.h;
748
+ }
749
+ prevElemSize = elemSize;
750
+ }
751
+ return area;
752
+ }
753
+ export function isElementInGroup(elem, group) {
754
+ var _a;
755
+ if ((group === null || group === void 0 ? void 0 : group.type) === 'group' && Array.isArray((_a = group === null || group === void 0 ? void 0 : group.detail) === null || _a === void 0 ? void 0 : _a.children)) {
756
+ for (let i = 0; i < group.detail.children.length; i++) {
757
+ const child = group.detail.children[i];
758
+ if (elem.uuid === child.uuid) {
759
+ return true;
760
+ }
761
+ }
762
+ }
763
+ return false;
764
+ }
765
+ export function calcMoveInGroup(start, end, groupQueue) {
766
+ let moveX = end.x - start.x;
767
+ let moveY = end.y - start.y;
768
+ const pointGroupQueue = [];
769
+ groupQueue.forEach((group) => {
770
+ const { x, y, w, h, angle = 0 } = group;
771
+ pointGroupQueue.push({
772
+ x,
773
+ y,
774
+ w,
775
+ h,
776
+ angle: 0 - angle
777
+ });
778
+ });
779
+ if ((groupQueue === null || groupQueue === void 0 ? void 0 : groupQueue.length) > 0) {
780
+ const startInGroup = rotatePointInGroup(start, pointGroupQueue);
781
+ const endInGroup = rotatePointInGroup(end, pointGroupQueue);
782
+ moveX = endInGroup.x - startInGroup.x;
783
+ moveY = endInGroup.y - startInGroup.y;
784
+ }
785
+ return {
786
+ moveX,
787
+ moveY
788
+ };
789
+ }