@idraw/core 0.3.0 → 0.4.0-alpha.2

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 -3990
  26. package/dist/index.global.min.js +1 -1
  27. package/package.json +7 -7
  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 -167
  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
@@ -1,442 +0,0 @@
1
- import { createUUID } from '@idraw/util';
2
- import { rotateElement } from './transform';
3
- import { calcRadian, calcElementCenter, parseRadianToAngle } from './calculate';
4
- import { limitAngle, limitNum } from './value';
5
- import { LIMIT_QBLIQUE_ANGLE } from './../constant/element';
6
- const limitQbliqueAngle = LIMIT_QBLIQUE_ANGLE;
7
- export class Element {
8
- constructor(ctx) {
9
- this._ctx = ctx;
10
- }
11
- initData(data) {
12
- data.elements.forEach((elem) => {
13
- if (!(elem.uuid && typeof elem.uuid === 'string')) {
14
- elem.uuid = createUUID();
15
- }
16
- });
17
- return data;
18
- }
19
- isPointInElement(p, data) {
20
- var _a, _b;
21
- const ctx = this._ctx;
22
- let idx = -1;
23
- let uuid = null;
24
- for (let i = data.elements.length - 1; i >= 0; i--) {
25
- const ele = data.elements[i];
26
- if (((_a = ele.operation) === null || _a === void 0 ? void 0 : _a.invisible) === true)
27
- continue;
28
- let bw = 0;
29
- if (((_b = ele.desc) === null || _b === void 0 ? void 0 : _b.borderWidth) > 0) {
30
- bw = ele.desc.borderWidth;
31
- }
32
- rotateElement(ctx, ele, () => {
33
- ctx.beginPath();
34
- ctx.moveTo(ele.x - bw, ele.y - bw);
35
- ctx.lineTo(ele.x + ele.w + bw, ele.y - bw);
36
- ctx.lineTo(ele.x + ele.w + bw, ele.y + ele.h + bw);
37
- ctx.lineTo(ele.x - bw, ele.y + ele.h + bw);
38
- ctx.lineTo(ele.x - bw, ele.y - bw);
39
- ctx.closePath();
40
- if (ctx.isPointInPath(p.x, p.y)) {
41
- idx = i;
42
- uuid = ele.uuid;
43
- }
44
- });
45
- if (idx >= 0) {
46
- break;
47
- }
48
- }
49
- return [idx, uuid];
50
- }
51
- dragElement(data, uuid, point, prevPoint, scale) {
52
- const index = this.getElementIndex(data, uuid);
53
- if (!data.elements[index]) {
54
- return;
55
- }
56
- const moveX = point.x - prevPoint.x;
57
- const moveY = point.y - prevPoint.y;
58
- data.elements[index].x += moveX / scale;
59
- data.elements[index].y += moveY / scale;
60
- this.limitElementAttrs(data.elements[index]);
61
- }
62
- transformElement(data, uuid, point, prevPoint, scale, direction) {
63
- var _a, _b;
64
- const index = this.getElementIndex(data, uuid);
65
- if (!data.elements[index]) {
66
- return null;
67
- }
68
- if (((_b = (_a = data.elements[index]) === null || _a === void 0 ? void 0 : _a.operation) === null || _b === void 0 ? void 0 : _b.lock) === true) {
69
- return null;
70
- }
71
- const moveX = (point.x - prevPoint.x) / scale;
72
- const moveY = (point.y - prevPoint.y) / scale;
73
- const elem = data.elements[index];
74
- if ([
75
- 'top-left',
76
- 'top',
77
- 'top-right',
78
- 'right',
79
- 'bottom-right',
80
- 'bottom',
81
- 'bottom-left',
82
- 'left'
83
- ].includes(direction)) {
84
- const p = calcuScaleElemPosition(elem, moveX, moveY, direction);
85
- elem.x = p.x;
86
- elem.y = p.y;
87
- elem.w = p.w;
88
- elem.h = p.h;
89
- }
90
- else if (direction === 'rotate') {
91
- const center = calcElementCenter(elem);
92
- const radian = calcRadian(center, prevPoint, point);
93
- elem.angle = (elem.angle || 0) + parseRadianToAngle(radian);
94
- }
95
- this.limitElementAttrs(elem);
96
- return {
97
- width: limitNum(elem.w),
98
- height: limitNum(elem.h),
99
- angle: limitAngle(elem.angle || 0)
100
- };
101
- }
102
- getElementIndex(data, uuid) {
103
- let idx = -1;
104
- for (let i = 0; i < data.elements.length; i++) {
105
- if (data.elements[i].uuid === uuid) {
106
- idx = i;
107
- break;
108
- }
109
- }
110
- return idx;
111
- }
112
- limitElementAttrs(elem) {
113
- elem.x = limitNum(elem.x);
114
- elem.y = limitNum(elem.y);
115
- elem.w = limitNum(elem.w);
116
- elem.h = limitNum(elem.h);
117
- elem.angle = limitAngle(elem.angle || 0);
118
- }
119
- }
120
- function calcuScaleElemPosition(elem, moveX, moveY, direction) {
121
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
122
- const p = { x: elem.x, y: elem.y, w: elem.w, h: elem.h };
123
- let angle = elem.angle || 0;
124
- if (angle < 0) {
125
- angle = Math.max(0, 360 + angle);
126
- }
127
- if (((_a = elem.operation) === null || _a === void 0 ? void 0 : _a.limitRatio) === true) {
128
- if (['top-left', 'top-right', 'bottom-right', 'bottom-left'].includes(direction)) {
129
- const maxDist = Math.max(Math.abs(moveX), Math.abs(moveY));
130
- moveX = (moveX >= 0 ? 1 : -1) * maxDist;
131
- moveY = (((moveY >= 0 ? 1 : -1) * maxDist) / elem.w) * elem.h;
132
- }
133
- }
134
- switch (direction) {
135
- case 'top-left': {
136
- if (elem.w - moveX > 0 && elem.h - moveY > 0) {
137
- p.x += moveX;
138
- p.y += moveY;
139
- p.w -= moveX;
140
- p.h -= moveY;
141
- }
142
- break;
143
- }
144
- case 'top': {
145
- if (elem.angle === 0 || Math.abs(elem.angle || 0) < limitQbliqueAngle) {
146
- if (p.h - moveY > 0) {
147
- p.y += moveY;
148
- p.h -= moveY;
149
- if (((_b = elem.operation) === null || _b === void 0 ? void 0 : _b.limitRatio) === true) {
150
- p.x += ((moveY / elem.h) * elem.w) / 2;
151
- p.w -= (moveY / elem.h) * elem.w;
152
- }
153
- }
154
- }
155
- else if (elem.angle !== undefined &&
156
- (elem.angle > 0 || elem.angle < 0)) {
157
- const angle = elem.angle > 0 ? elem.angle : Math.max(0, elem.angle + 360);
158
- let moveDist = calcMoveDist(moveX, moveY);
159
- let centerX = p.x + elem.w / 2;
160
- let centerY = p.y + elem.h / 2;
161
- if (angle < 90) {
162
- moveDist = 0 - changeMoveDistDirect(moveDist, moveY);
163
- const radian = parseRadian(angle);
164
- const centerMoveDist = moveDist / 2;
165
- centerX = centerX + centerMoveDist * Math.sin(radian);
166
- centerY = centerY - centerMoveDist * Math.cos(radian);
167
- }
168
- else if (angle < 180) {
169
- moveDist = changeMoveDistDirect(moveDist, moveX);
170
- const radian = parseRadian(angle - 90);
171
- const centerMoveDist = moveDist / 2;
172
- centerX = centerX + centerMoveDist * Math.cos(radian);
173
- centerY = centerY + centerMoveDist * Math.sin(radian);
174
- }
175
- else if (angle < 270) {
176
- moveDist = changeMoveDistDirect(moveDist, moveY);
177
- const radian = parseRadian(angle - 180);
178
- const centerMoveDist = moveDist / 2;
179
- centerX = centerX - centerMoveDist * Math.sin(radian);
180
- centerY = centerY + centerMoveDist * Math.cos(radian);
181
- }
182
- else if (angle < 360) {
183
- moveDist = 0 - changeMoveDistDirect(moveDist, moveX);
184
- const radian = parseRadian(angle - 270);
185
- const centerMoveDist = moveDist / 2;
186
- centerX = centerX - centerMoveDist * Math.cos(radian);
187
- centerY = centerY - centerMoveDist * Math.sin(radian);
188
- }
189
- if (p.h + moveDist > 0) {
190
- if (((_c = elem.operation) === null || _c === void 0 ? void 0 : _c.limitRatio) === true) {
191
- p.w = p.w + (moveDist / elem.h) * elem.w;
192
- }
193
- p.h = p.h + moveDist;
194
- p.x = centerX - p.w / 2;
195
- p.y = centerY - p.h / 2;
196
- }
197
- }
198
- else {
199
- if (p.h - moveY > 0) {
200
- p.y += moveY;
201
- p.h -= moveY;
202
- if (((_d = elem.operation) === null || _d === void 0 ? void 0 : _d.limitRatio) === true) {
203
- p.x -= moveX / 2;
204
- p.w += moveX;
205
- }
206
- }
207
- }
208
- break;
209
- }
210
- case 'top-right': {
211
- if (p.h - moveY > 0 && p.w + moveX > 0) {
212
- p.y += moveY;
213
- p.w += moveX;
214
- p.h -= moveY;
215
- }
216
- break;
217
- }
218
- case 'right': {
219
- if (elem.angle === 0 || Math.abs(elem.angle || 0) < limitQbliqueAngle) {
220
- if (elem.w + moveX > 0) {
221
- p.w += moveX;
222
- if (((_e = elem.operation) === null || _e === void 0 ? void 0 : _e.limitRatio) === true) {
223
- p.y -= (moveX * elem.h) / elem.w / 2;
224
- p.h += (moveX * elem.h) / elem.w;
225
- }
226
- }
227
- }
228
- else if (elem.angle !== undefined &&
229
- (elem.angle > 0 || elem.angle < 0)) {
230
- const angle = elem.angle > 0 ? elem.angle : Math.max(0, elem.angle + 360);
231
- let moveDist = calcMoveDist(moveX, moveY);
232
- let centerX = p.x + elem.w / 2;
233
- let centerY = p.y + elem.h / 2;
234
- if (angle < 90) {
235
- moveDist = changeMoveDistDirect(moveDist, moveY);
236
- const radian = parseRadian(angle);
237
- const centerMoveDist = moveDist / 2;
238
- centerX = centerX + centerMoveDist * Math.cos(radian);
239
- centerY = centerY + centerMoveDist * Math.sin(radian);
240
- }
241
- else if (angle < 180) {
242
- moveDist = changeMoveDistDirect(moveDist, moveY);
243
- const radian = parseRadian(angle - 90);
244
- const centerMoveDist = moveDist / 2;
245
- centerX = centerX - centerMoveDist * Math.sin(radian);
246
- centerY = centerY + centerMoveDist * Math.cos(radian);
247
- }
248
- else if (angle < 270) {
249
- moveDist = changeMoveDistDirect(moveDist, moveY);
250
- const radian = parseRadian(angle - 180);
251
- const centerMoveDist = moveDist / 2;
252
- centerX = centerX + centerMoveDist * Math.cos(radian);
253
- centerY = centerY + centerMoveDist * Math.sin(radian);
254
- moveDist = 0 - moveDist;
255
- }
256
- else if (angle < 360) {
257
- moveDist = changeMoveDistDirect(moveDist, moveX);
258
- const radian = parseRadian(angle - 270);
259
- const centerMoveDist = moveDist / 2;
260
- centerX = centerX + centerMoveDist * Math.sin(radian);
261
- centerY = centerY - centerMoveDist * Math.cos(radian);
262
- }
263
- if (p.w + moveDist > 0) {
264
- if (((_f = elem.operation) === null || _f === void 0 ? void 0 : _f.limitRatio) === true) {
265
- p.h = p.h + (moveDist / elem.w) * elem.h;
266
- }
267
- p.w = p.w + moveDist;
268
- p.x = centerX - p.w / 2;
269
- p.y = centerY - p.h / 2;
270
- }
271
- }
272
- else {
273
- if (elem.w + moveX > 0) {
274
- p.w += moveX;
275
- if (((_g = elem.operation) === null || _g === void 0 ? void 0 : _g.limitRatio) === true) {
276
- p.h += (moveX * elem.h) / elem.w;
277
- p.y -= (moveX * elem.h) / elem.w / 2;
278
- }
279
- }
280
- }
281
- break;
282
- }
283
- case 'bottom-right': {
284
- if (elem.w + moveX > 0 && elem.h + moveY > 0) {
285
- p.w += moveX;
286
- p.h += moveY;
287
- }
288
- break;
289
- }
290
- case 'bottom': {
291
- if (elem.angle === 0 || Math.abs(elem.angle || 0) < limitQbliqueAngle) {
292
- if (elem.h + moveY > 0) {
293
- p.h += moveY;
294
- if (((_h = elem.operation) === null || _h === void 0 ? void 0 : _h.limitRatio) === true) {
295
- p.x -= ((moveY / elem.h) * elem.w) / 2;
296
- p.w += (moveY / elem.h) * elem.w;
297
- }
298
- }
299
- }
300
- else if (elem.angle !== undefined &&
301
- (elem.angle > 0 || elem.angle < 0)) {
302
- const angle = elem.angle > 0 ? elem.angle : Math.max(0, elem.angle + 360);
303
- let moveDist = calcMoveDist(moveX, moveY);
304
- let centerX = p.x + elem.w / 2;
305
- let centerY = p.y + elem.h / 2;
306
- if (angle < 90) {
307
- moveDist = changeMoveDistDirect(moveDist, moveY);
308
- const radian = parseRadian(angle);
309
- const centerMoveDist = moveDist / 2;
310
- centerX = centerX - centerMoveDist * Math.sin(radian);
311
- centerY = centerY + centerMoveDist * Math.cos(radian);
312
- }
313
- else if (angle < 180) {
314
- moveDist = 0 - changeMoveDistDirect(moveDist, moveX);
315
- const radian = parseRadian(angle - 90);
316
- const centerMoveDist = moveDist / 2;
317
- centerX = centerX - centerMoveDist * Math.cos(radian);
318
- centerY = centerY - centerMoveDist * Math.sin(radian);
319
- }
320
- else if (angle < 270) {
321
- moveDist = changeMoveDistDirect(moveDist, moveX);
322
- const radian = parseRadian(angle - 180);
323
- const centerMoveDist = moveDist / 2;
324
- centerX = centerX + centerMoveDist * Math.sin(radian);
325
- centerY = centerY - centerMoveDist * Math.cos(radian);
326
- }
327
- else if (angle < 360) {
328
- moveDist = changeMoveDistDirect(moveDist, moveX);
329
- const radian = parseRadian(angle - 270);
330
- const centerMoveDist = moveDist / 2;
331
- centerX = centerX + centerMoveDist * Math.cos(radian);
332
- centerY = centerY + centerMoveDist * Math.sin(radian);
333
- }
334
- if (p.h + moveDist > 0) {
335
- if (((_j = elem.operation) === null || _j === void 0 ? void 0 : _j.limitRatio) === true) {
336
- p.w = p.w + (moveDist / elem.h) * elem.w;
337
- }
338
- p.h = p.h + moveDist;
339
- p.x = centerX - p.w / 2;
340
- p.y = centerY - p.h / 2;
341
- }
342
- }
343
- else {
344
- if (elem.h + moveY > 0) {
345
- p.h += moveY;
346
- if (((_k = elem.operation) === null || _k === void 0 ? void 0 : _k.limitRatio) === true) {
347
- p.x -= ((moveY / elem.h) * elem.w) / 2;
348
- p.w += (moveY / elem.h) * elem.w;
349
- }
350
- }
351
- }
352
- break;
353
- }
354
- case 'bottom-left': {
355
- if (elem.w - moveX > 0 && elem.h + moveY > 0) {
356
- p.x += moveX;
357
- p.w -= moveX;
358
- p.h += moveY;
359
- }
360
- break;
361
- }
362
- case 'left': {
363
- if (elem.angle === 0 || Math.abs(elem.angle || 0) < limitQbliqueAngle) {
364
- if (elem.w - moveX > 0) {
365
- p.x += moveX;
366
- p.w -= moveX;
367
- if (((_l = elem.operation) === null || _l === void 0 ? void 0 : _l.limitRatio) === true) {
368
- p.h -= (moveX / elem.w) * elem.h;
369
- p.y += ((moveX / elem.w) * elem.h) / 2;
370
- }
371
- }
372
- }
373
- else if (elem.angle !== undefined &&
374
- (elem.angle > 0 || elem.angle < 0)) {
375
- const angle = elem.angle > 0 ? elem.angle : Math.max(0, elem.angle + 360);
376
- let moveDist = calcMoveDist(moveX, moveY);
377
- let centerX = p.x + elem.w / 2;
378
- let centerY = p.y + elem.h / 2;
379
- if (angle < 90) {
380
- moveDist = 0 - changeMoveDistDirect(moveDist, moveX);
381
- const radian = parseRadian(angle);
382
- const centerMoveDist = moveDist / 2;
383
- centerX = centerX - centerMoveDist * Math.cos(radian);
384
- centerY = centerY - centerMoveDist * Math.sin(radian);
385
- }
386
- else if (angle < 180) {
387
- moveDist = changeMoveDistDirect(moveDist, moveX);
388
- const radian = parseRadian(angle - 90);
389
- const centerMoveDist = moveDist / 2;
390
- centerX = centerX + centerMoveDist * Math.sin(radian);
391
- centerY = centerY - centerMoveDist * Math.cos(radian);
392
- }
393
- else if (angle < 270) {
394
- moveDist = changeMoveDistDirect(moveDist, moveY);
395
- const radian = parseRadian(angle - 180);
396
- const centerMoveDist = moveDist / 2;
397
- centerX = centerX + centerMoveDist * Math.cos(radian);
398
- centerY = centerY + centerMoveDist * Math.sin(radian);
399
- }
400
- else if (angle < 360) {
401
- moveDist = changeMoveDistDirect(moveDist, moveY);
402
- const radian = parseRadian(angle - 270);
403
- const centerMoveDist = moveDist / 2;
404
- centerX = centerX - centerMoveDist * Math.sin(radian);
405
- centerY = centerY + centerMoveDist * Math.cos(radian);
406
- }
407
- if (p.w + moveDist > 0) {
408
- if (((_m = elem.operation) === null || _m === void 0 ? void 0 : _m.limitRatio) === true) {
409
- p.h = p.h + (moveDist / elem.w) * elem.h;
410
- }
411
- p.w = p.w + moveDist;
412
- p.x = centerX - p.w / 2;
413
- p.y = centerY - p.h / 2;
414
- }
415
- }
416
- else {
417
- if (elem.w - moveX > 0) {
418
- p.x += moveX;
419
- p.w -= moveX;
420
- if (((_o = elem.operation) === null || _o === void 0 ? void 0 : _o.limitRatio) === true) {
421
- p.h -= (moveX / elem.w) * elem.h;
422
- p.y += ((moveX / elem.w) * elem.h) / 2;
423
- }
424
- }
425
- }
426
- break;
427
- }
428
- default: {
429
- break;
430
- }
431
- }
432
- return p;
433
- }
434
- function parseRadian(angle) {
435
- return (angle * Math.PI) / 180;
436
- }
437
- function calcMoveDist(moveX, moveY) {
438
- return Math.sqrt(moveX * moveX + moveY * moveY);
439
- }
440
- function changeMoveDistDirect(moveDist, moveDirect) {
441
- return moveDirect > 0 ? Math.abs(moveDist) : 0 - Math.abs(moveDist);
442
- }
@@ -1,22 +0,0 @@
1
- import { HelperWrapperControllerDirection, Point } from '@idraw/types';
2
- import { Mode, CursorStatus } from '../constant/static';
3
- type TempDataDesc = {
4
- hasInited: boolean;
5
- mode: Mode;
6
- cursorStatus: CursorStatus;
7
- selectedUUID: string | null;
8
- selectedUUIDList: string[];
9
- hoverUUID: string | null;
10
- selectedControllerDirection: HelperWrapperControllerDirection | null;
11
- hoverControllerDirection: HelperWrapperControllerDirection | null;
12
- prevPoint: Point | null;
13
- hasChangedElement: boolean;
14
- };
15
- export declare class TempData {
16
- private _temp;
17
- constructor();
18
- set<T extends keyof TempDataDesc>(name: T, value: TempDataDesc[T]): void;
19
- get<T extends keyof TempDataDesc>(name: T): TempDataDesc[T];
20
- clear(): void;
21
- }
22
- export {};
@@ -1,29 +0,0 @@
1
- import { Mode, CursorStatus } from '../constant/static';
2
- function createData() {
3
- return {
4
- hasInited: false,
5
- mode: Mode.NULL,
6
- cursorStatus: CursorStatus.NULL,
7
- selectedUUID: null,
8
- selectedUUIDList: [],
9
- hoverUUID: null,
10
- selectedControllerDirection: null,
11
- hoverControllerDirection: null,
12
- prevPoint: null,
13
- hasChangedElement: false
14
- };
15
- }
16
- export class TempData {
17
- constructor() {
18
- this._temp = createData();
19
- }
20
- set(name, value) {
21
- this._temp[name] = value;
22
- }
23
- get(name) {
24
- return this._temp[name];
25
- }
26
- clear() {
27
- this._temp = createData();
28
- }
29
- }
@@ -1,47 +0,0 @@
1
- import { Point, InterfaceHelperPlugin, IDrawConfigStrict, IDrawData, HelperConfig } from '@idraw/types';
2
- import Board from '@idraw/board';
3
- import { TempData } from './engine-temp';
4
- import { Helper } from './helper';
5
- import { Element } from './element';
6
- import { CoreEvent } from './core-event';
7
- type Options = {
8
- coreEvent: CoreEvent;
9
- board: Board;
10
- element: Element;
11
- config: IDrawConfigStrict;
12
- drawFeekback: () => void;
13
- getDataFeekback: () => IDrawData;
14
- selectElementByIndex: (index: number, opts?: {
15
- useMode?: boolean;
16
- }) => void;
17
- emitChangeScreen: () => void;
18
- emitChangeData: () => void;
19
- };
20
- export declare class Engine {
21
- private _plugins;
22
- private _opts;
23
- private _mapper;
24
- temp: TempData;
25
- helper: Helper;
26
- constructor(opts: Options);
27
- addPlugin(plugin: InterfaceHelperPlugin): void;
28
- getHelperConfig(): HelperConfig;
29
- updateHelperConfig(opts: {
30
- width: number;
31
- height: number;
32
- devicePixelRatio: number;
33
- }): void;
34
- init(): void;
35
- private _initEvent;
36
- private _handleDoubleClick;
37
- _handlePoint(point: Point): void;
38
- private _handleClick;
39
- private _handleMoveStart;
40
- private _handleMove;
41
- private _dragElements;
42
- private _transfromElement;
43
- private _handleMoveEnd;
44
- private _handleHover;
45
- private _handleLeave;
46
- }
47
- export {};