@idraw/core 0.2.0-alpha.21 → 0.2.0-alpha.22

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.
@@ -1,19 +1,6 @@
1
1
  var iDrawCore = (function () {
2
2
  'use strict';
3
3
 
4
- var extendStatics$1 = function(d, b) {
5
- extendStatics$1 = Object.setPrototypeOf ||
6
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
7
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
8
- return extendStatics$1(d, b);
9
- };
10
- function __extends$1(d, b) {
11
- if (typeof b !== "function" && b !== null)
12
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
13
- extendStatics$1(d, b);
14
- function __() { this.constructor = d; }
15
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
16
- }
17
4
  var __assign$4 = function() {
18
5
  __assign$4 = Object.assign || function __assign(t) {
19
6
  for (var s, i = 1, n = arguments.length; i < n; i++) {
@@ -24,42 +11,6 @@ var iDrawCore = (function () {
24
11
  };
25
12
  return __assign$4.apply(this, arguments);
26
13
  };
27
- function __awaiter$4(thisArg, _arguments, P, generator) {
28
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
29
- return new (P || (P = Promise))(function (resolve, reject) {
30
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
31
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
32
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
33
- step((generator = generator.apply(thisArg, _arguments || [])).next());
34
- });
35
- }
36
- function __generator$4(thisArg, body) {
37
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
38
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
39
- function verb(n) { return function (v) { return step([n, v]); }; }
40
- function step(op) {
41
- if (f) throw new TypeError("Generator is already executing.");
42
- while (_) try {
43
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
44
- if (y = 0, t) op = [op[0] & 2, t.value];
45
- switch (op[0]) {
46
- case 0: case 1: t = op; break;
47
- case 4: _.label++; return { value: op[1], done: false };
48
- case 5: _.label++; y = op[1]; op = [0]; continue;
49
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
50
- default:
51
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
52
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
53
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
54
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
55
- if (t[2]) _.ops.pop();
56
- _.trys.pop(); continue;
57
- }
58
- op = body.call(thisArg, _);
59
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
60
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
61
- }
62
- }
63
14
 
64
15
  var __assign$1$1 = function() {
65
16
  __assign$1$1 = Object.assign || function __assign(t) {
@@ -138,7 +89,7 @@ var iDrawCore = (function () {
138
89
  }
139
90
  return "" + str4() + str4() + "-" + str4() + "-" + str4() + "-" + str4() + "-" + str4() + str4() + str4();
140
91
  }
141
- function deepClone$7(target) {
92
+ function deepClone$6(target) {
142
93
  function _clone(t) {
143
94
  var type = is$1$3(t);
144
95
  if (['Null', 'Number', 'String', 'Boolean', 'Undefined'].indexOf(type) >= 0) {
@@ -170,7 +121,7 @@ var iDrawCore = (function () {
170
121
  var result = typeStr.replace(/(\[object|\])/ig, '').trim();
171
122
  return result;
172
123
  }
173
- var istype$4 = {
124
+ var istype$3 = {
174
125
  type: function (data, lowerCase) {
175
126
  var result = parsePrototype$2(data);
176
127
  return lowerCase === true ? result.toLocaleLowerCase() : result;
@@ -283,7 +234,7 @@ var iDrawCore = (function () {
283
234
  });
284
235
  }
285
236
  var Image$2 = window.Image;
286
- function loadImage$4(src) {
237
+ function loadImage$3(src) {
287
238
  return new Promise(function (resolve, reject) {
288
239
  var img = new Image$2;
289
240
  img.onload = function () {
@@ -294,7 +245,7 @@ var iDrawCore = (function () {
294
245
  img.src = src;
295
246
  });
296
247
  }
297
- function loadSVG$4(svg) {
248
+ function loadSVG$3(svg) {
298
249
  return __awaiter$3(this, void 0, void 0, function () {
299
250
  var dataURL, image;
300
251
  return __generator$3(this, function (_a) {
@@ -302,7 +253,7 @@ var iDrawCore = (function () {
302
253
  case 0: return [4, parseSVGToDataURL$2(svg)];
303
254
  case 1:
304
255
  dataURL = _a.sent();
305
- return [4, loadImage$4(dataURL)];
256
+ return [4, loadImage$3(dataURL)];
306
257
  case 2:
307
258
  image = _a.sent();
308
259
  return [2, image];
@@ -310,7 +261,7 @@ var iDrawCore = (function () {
310
261
  });
311
262
  });
312
263
  }
313
- function loadHTML$4(html, opts) {
264
+ function loadHTML$3(html, opts) {
314
265
  return __awaiter$3(this, void 0, void 0, function () {
315
266
  var dataURL, image;
316
267
  return __generator$3(this, function (_a) {
@@ -318,7 +269,7 @@ var iDrawCore = (function () {
318
269
  case 0: return [4, parseHTMLToDataURL$2(html, opts)];
319
270
  case 1:
320
271
  dataURL = _a.sent();
321
- return [4, loadImage$4(dataURL)];
272
+ return [4, loadImage$3(dataURL)];
322
273
  case 2:
323
274
  image = _a.sent();
324
275
  return [2, image];
@@ -326,7 +277,7 @@ var iDrawCore = (function () {
326
277
  });
327
278
  });
328
279
  }
329
- var Context$2$1 = (function () {
280
+ var Context$1$1 = (function () {
330
281
  function Context(ctx, opts) {
331
282
  this._opts = opts;
332
283
  this._ctx = ctx;
@@ -743,9 +694,9 @@ var iDrawCore = (function () {
743
694
  throttle: throttle$1$1,
744
695
  },
745
696
  loader: {
746
- loadImage: loadImage$4,
747
- loadSVG: loadSVG$4,
748
- loadHTML: loadHTML$4,
697
+ loadImage: loadImage$3,
698
+ loadSVG: loadSVG$3,
699
+ loadHTML: loadHTML$3,
749
700
  },
750
701
  file: {
751
702
  downloadImageFromCanvas: downloadImageFromCanvas$2,
@@ -758,11 +709,11 @@ var iDrawCore = (function () {
758
709
  uuid: {
759
710
  createUUID: createUUID$4
760
711
  },
761
- istype: istype$4,
712
+ istype: istype$3,
762
713
  data: {
763
- deepClone: deepClone$7,
714
+ deepClone: deepClone$6,
764
715
  },
765
- Context: Context$2$1,
716
+ Context: Context$1$1,
766
717
  };
767
718
  var BoardEvent = (function () {
768
719
  function BoardEvent() {
@@ -828,7 +779,7 @@ var iDrawCore = (function () {
828
779
  }
829
780
  };
830
781
  }
831
- var TempData$1 = (function () {
782
+ var TempData$2 = (function () {
832
783
  function TempData() {
833
784
  this._temp = createTempData();
834
785
  }
@@ -846,7 +797,7 @@ var iDrawCore = (function () {
846
797
  var ScreenWatcher = (function () {
847
798
  function ScreenWatcher(canvas, ctx) {
848
799
  this._isMoving = false;
849
- this._temp = new TempData$1;
800
+ this._temp = new TempData$2;
850
801
  this._container = window;
851
802
  this._canvas = canvas;
852
803
  this._isMoving = false;
@@ -1103,7 +1054,7 @@ var iDrawCore = (function () {
1103
1054
  ctx.fillStyle = wrapper.color;
1104
1055
  ctx.fillRect(0, this._doSize(height - wrapper.lineSize), this._doSize(width), this._doSize(wrapper.lineSize));
1105
1056
  ctx.globalAlpha = 1;
1106
- drawBox$2(ctx, {
1057
+ drawBox$1(ctx, {
1107
1058
  x: this._doSize(wrapper.translateX),
1108
1059
  y: this._doSize(height - wrapper.lineSize),
1109
1060
  w: this._doSize(wrapper.xSize),
@@ -1117,7 +1068,7 @@ var iDrawCore = (function () {
1117
1068
  ctx.fillStyle = wrapper.color;
1118
1069
  ctx.fillRect(this._doSize(width - wrapper.lineSize), 0, this._doSize(wrapper.lineSize), this._doSize(height));
1119
1070
  ctx.globalAlpha = 1;
1120
- drawBox$2(ctx, {
1071
+ drawBox$1(ctx, {
1121
1072
  x: this._doSize(width - wrapper.lineSize),
1122
1073
  y: this._doSize(wrapper.translateY),
1123
1074
  w: this._doSize(wrapper.lineSize),
@@ -1212,7 +1163,7 @@ var iDrawCore = (function () {
1212
1163
  };
1213
1164
  return Scroller;
1214
1165
  }());
1215
- function drawBox$2(ctx, opts) {
1166
+ function drawBox$1(ctx, opts) {
1216
1167
  var x = opts.x, y = opts.y, w = opts.w, h = opts.h, color = opts.color;
1217
1168
  var r = opts.r;
1218
1169
  r = Math.min(r, w / 2, h / 2);
@@ -1332,37 +1283,6 @@ var iDrawCore = (function () {
1332
1283
  };
1333
1284
  return Screen;
1334
1285
  }());
1335
- var Context$1$1 = index$2.Context;
1336
- function createDefaultData(opts) {
1337
- var canvas = document.createElement('canvas');
1338
- var ctx2d = canvas.getContext('2d');
1339
- var ctx = new Context$1$1(ctx2d, {
1340
- width: opts.width,
1341
- height: opts.height,
1342
- contextWidth: opts.contextWidth,
1343
- contextHeight: opts.contextHeight,
1344
- devicePixelRatio: opts.devicePixelRatio || window.devicePixelRatio || 1,
1345
- });
1346
- return {
1347
- plugins: [],
1348
- ctx: ctx
1349
- };
1350
- }
1351
- var TempData$2 = (function () {
1352
- function TempData(opts) {
1353
- this._temp = createDefaultData(opts);
1354
- }
1355
- TempData.prototype.set = function (name, value) {
1356
- this._temp[name] = value;
1357
- };
1358
- TempData.prototype.get = function (name) {
1359
- return this._temp[name];
1360
- };
1361
- TempData.prototype.clear = function (opts) {
1362
- this._temp = createDefaultData(opts);
1363
- };
1364
- return TempData;
1365
- }());
1366
1286
  var _canvas = Symbol('_canvas');
1367
1287
  var _displayCanvas = Symbol('_displayCanvas');
1368
1288
  var _helperCanvas = Symbol('_helperCanvas');
@@ -1381,14 +1301,12 @@ var iDrawCore = (function () {
1381
1301
  var _doMoveScroll = Symbol('_doMoveScroll');
1382
1302
  var _resetContext = Symbol('_resetContext');
1383
1303
  var _screen = Symbol('_screen');
1384
- var _tempData$1 = Symbol('_tempData');
1385
- var _a$3;
1304
+ var _a$2;
1386
1305
  var Context$3 = index$2.Context;
1387
1306
  var throttle$2 = index$2.time.throttle;
1388
1307
  var Board = (function () {
1389
1308
  function Board(mount, opts) {
1390
- this[_a$3] = false;
1391
- this[_tempData$1] = new TempData$2(opts);
1309
+ this[_a$2] = false;
1392
1310
  this[_mount] = mount;
1393
1311
  this[_canvas] = document.createElement('canvas');
1394
1312
  this[_helperCanvas] = document.createElement('canvas');
@@ -1487,9 +1405,6 @@ var iDrawCore = (function () {
1487
1405
  }
1488
1406
  return { position: position, size: size };
1489
1407
  };
1490
- Board.prototype.addPlugin = function (plugin) {
1491
- this[_tempData$1].get('plugins').push(plugin);
1492
- };
1493
1408
  Board.prototype.clear = function () {
1494
1409
  var displayCtx = this[_displayCanvas].getContext('2d');
1495
1410
  displayCtx === null || displayCtx === void 0 ? void 0 : displayCtx.clearRect(0, 0, this[_displayCanvas].width, this[_displayCanvas].height);
@@ -1545,7 +1460,7 @@ var iDrawCore = (function () {
1545
1460
  };
1546
1461
  return screenPoint;
1547
1462
  };
1548
- Board.prototype[(_a$3 = _hasRendered, _render)] = function () {
1463
+ Board.prototype[(_a$2 = _hasRendered, _render)] = function () {
1549
1464
  if (this[_hasRendered] === true) {
1550
1465
  return;
1551
1466
  }
@@ -1713,7 +1628,7 @@ var iDrawCore = (function () {
1713
1628
  }
1714
1629
  return "" + str4() + str4() + "-" + str4() + "-" + str4() + "-" + str4() + "-" + str4() + str4() + str4();
1715
1630
  }
1716
- function deepClone$6(target) {
1631
+ function deepClone$5(target) {
1717
1632
  function _clone(t) {
1718
1633
  var type = is$1$2(t);
1719
1634
  if (['Null', 'Number', 'String', 'Boolean', 'Undefined'].indexOf(type) >= 0) {
@@ -1745,7 +1660,7 @@ var iDrawCore = (function () {
1745
1660
  var result = typeStr.replace(/(\[object|\])/ig, '').trim();
1746
1661
  return result;
1747
1662
  }
1748
- var istype$3 = {
1663
+ var istype$2 = {
1749
1664
  type: function (data, lowerCase) {
1750
1665
  var result = parsePrototype$1(data);
1751
1666
  return lowerCase === true ? result.toLocaleLowerCase() : result;
@@ -1858,7 +1773,7 @@ var iDrawCore = (function () {
1858
1773
  });
1859
1774
  }
1860
1775
  var Image$1 = window.Image;
1861
- function loadImage$3(src) {
1776
+ function loadImage$2(src) {
1862
1777
  return new Promise(function (resolve, reject) {
1863
1778
  var img = new Image$1;
1864
1779
  img.onload = function () {
@@ -1869,7 +1784,7 @@ var iDrawCore = (function () {
1869
1784
  img.src = src;
1870
1785
  });
1871
1786
  }
1872
- function loadSVG$3(svg) {
1787
+ function loadSVG$2(svg) {
1873
1788
  return __awaiter$2(this, void 0, void 0, function () {
1874
1789
  var dataURL, image;
1875
1790
  return __generator$2(this, function (_a) {
@@ -1877,7 +1792,7 @@ var iDrawCore = (function () {
1877
1792
  case 0: return [4, parseSVGToDataURL$1(svg)];
1878
1793
  case 1:
1879
1794
  dataURL = _a.sent();
1880
- return [4, loadImage$3(dataURL)];
1795
+ return [4, loadImage$2(dataURL)];
1881
1796
  case 2:
1882
1797
  image = _a.sent();
1883
1798
  return [2, image];
@@ -1885,7 +1800,7 @@ var iDrawCore = (function () {
1885
1800
  });
1886
1801
  });
1887
1802
  }
1888
- function loadHTML$3(html, opts) {
1803
+ function loadHTML$2(html, opts) {
1889
1804
  return __awaiter$2(this, void 0, void 0, function () {
1890
1805
  var dataURL, image;
1891
1806
  return __generator$2(this, function (_a) {
@@ -1893,7 +1808,7 @@ var iDrawCore = (function () {
1893
1808
  case 0: return [4, parseHTMLToDataURL$1(html, opts)];
1894
1809
  case 1:
1895
1810
  dataURL = _a.sent();
1896
- return [4, loadImage$3(dataURL)];
1811
+ return [4, loadImage$2(dataURL)];
1897
1812
  case 2:
1898
1813
  image = _a.sent();
1899
1814
  return [2, image];
@@ -2318,9 +2233,9 @@ var iDrawCore = (function () {
2318
2233
  throttle: throttle$1,
2319
2234
  },
2320
2235
  loader: {
2321
- loadImage: loadImage$3,
2322
- loadSVG: loadSVG$3,
2323
- loadHTML: loadHTML$3,
2236
+ loadImage: loadImage$2,
2237
+ loadSVG: loadSVG$2,
2238
+ loadHTML: loadHTML$2,
2324
2239
  },
2325
2240
  file: {
2326
2241
  downloadImageFromCanvas: downloadImageFromCanvas$1,
@@ -2333,9 +2248,9 @@ var iDrawCore = (function () {
2333
2248
  uuid: {
2334
2249
  createUUID: createUUID$3
2335
2250
  },
2336
- istype: istype$3,
2251
+ istype: istype$2,
2337
2252
  data: {
2338
- deepClone: deepClone$6,
2253
+ deepClone: deepClone$5,
2339
2254
  },
2340
2255
  Context: Context$2,
2341
2256
  };
@@ -2457,7 +2372,7 @@ var iDrawCore = (function () {
2457
2372
  function toColorHexStr(color) {
2458
2373
  return '#' + color.toString(16);
2459
2374
  }
2460
- function isColorStr$1$1(color) {
2375
+ function isColorStr$1(color) {
2461
2376
  return typeof color === 'string' && /^\#([0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/i.test(color);
2462
2377
  }
2463
2378
  function createUUID$1$1() {
@@ -2878,7 +2793,7 @@ var iDrawCore = (function () {
2878
2793
  return number$1(value) && value >= 0;
2879
2794
  }
2880
2795
  function color$2(value) {
2881
- return isColorStr$1$1(value);
2796
+ return isColorStr$1(value);
2882
2797
  }
2883
2798
  function imageURL$1(value) {
2884
2799
  return (typeof value === 'string' && /^(http:\/\/|https:\/\/|\.\/|\/)/.test("" + value));
@@ -3081,7 +2996,7 @@ var iDrawCore = (function () {
3081
2996
  color: {
3082
2997
  toColorHexStr: toColorHexStr,
3083
2998
  toColorHexNum: toColorHexNum,
3084
- isColorStr: isColorStr$1$1,
2999
+ isColorStr: isColorStr$1,
3085
3000
  },
3086
3001
  uuid: {
3087
3002
  createUUID: createUUID$1$1
@@ -3120,7 +3035,7 @@ var iDrawCore = (function () {
3120
3035
  ctx.translate(-center.x, -center.y);
3121
3036
  }
3122
3037
  }
3123
- var is$1 = index.is, istype$2 = index.istype, color$1$1 = index.color;
3038
+ var is$1 = index.is, istype = index.istype, color$1 = index.color;
3124
3039
  function clearContext$1(ctx) {
3125
3040
  ctx.setFillStyle('#000000');
3126
3041
  ctx.setStrokeStyle('#000000');
@@ -3131,14 +3046,14 @@ var iDrawCore = (function () {
3131
3046
  ctx.setShadowOffsetY(0);
3132
3047
  ctx.setShadowBlur(0);
3133
3048
  }
3134
- function drawBgColor$1(ctx, color) {
3049
+ function drawBgColor(ctx, color) {
3135
3050
  var size = ctx.getSize();
3136
3051
  ctx.setFillStyle(color);
3137
3052
  ctx.fillRect(0, 0, size.contextWidth, size.contextHeight);
3138
3053
  }
3139
- function drawBox$1(ctx, elem, pattern) {
3054
+ function drawBox(ctx, elem, pattern) {
3140
3055
  clearContext$1(ctx);
3141
- drawBoxBorder$1(ctx, elem);
3056
+ drawBoxBorder(ctx, elem);
3142
3057
  clearContext$1(ctx);
3143
3058
  rotateElement$1(ctx, elem, function () {
3144
3059
  var x = elem.x, y = elem.y, w = elem.w, h = elem.h;
@@ -3157,13 +3072,13 @@ var iDrawCore = (function () {
3157
3072
  if (typeof pattern === 'string') {
3158
3073
  ctx.setFillStyle(pattern);
3159
3074
  }
3160
- else if (['CanvasPattern'].includes(istype$2.type(pattern))) {
3075
+ else if (['CanvasPattern'].includes(istype.type(pattern))) {
3161
3076
  ctx.setFillStyle(pattern);
3162
3077
  }
3163
3078
  ctx.fill();
3164
3079
  });
3165
3080
  }
3166
- function drawBoxBorder$1(ctx, elem) {
3081
+ function drawBoxBorder(ctx, elem) {
3167
3082
  clearContext$1(ctx);
3168
3083
  rotateElement$1(ctx, elem, function () {
3169
3084
  if (!(elem.desc.borderWidth && elem.desc.borderWidth > 0)) {
@@ -3171,7 +3086,7 @@ var iDrawCore = (function () {
3171
3086
  }
3172
3087
  var bw = elem.desc.borderWidth;
3173
3088
  var borderColor = '#000000';
3174
- if (color$1$1.isColorStr(elem.desc.borderColor) === true) {
3089
+ if (color$1.isColorStr(elem.desc.borderColor) === true) {
3175
3090
  borderColor = elem.desc.borderColor;
3176
3091
  }
3177
3092
  var x = elem.x - bw / 2;
@@ -3184,7 +3099,7 @@ var iDrawCore = (function () {
3184
3099
  r = r + bw / 2;
3185
3100
  }
3186
3101
  var desc = elem.desc;
3187
- if (desc.shadowColor !== undefined && color$1$1.isColorStr(desc.shadowColor)) {
3102
+ if (desc.shadowColor !== undefined && color$1.isColorStr(desc.shadowColor)) {
3188
3103
  ctx.setShadowColor(desc.shadowColor);
3189
3104
  }
3190
3105
  if (desc.shadowOffsetX !== undefined && is$1.number(desc.shadowOffsetX)) {
@@ -3208,10 +3123,10 @@ var iDrawCore = (function () {
3208
3123
  ctx.stroke();
3209
3124
  });
3210
3125
  }
3211
- function drawRect$1(ctx, elem) {
3212
- drawBox$1(ctx, elem, elem.desc.bgColor);
3126
+ function drawRect(ctx, elem) {
3127
+ drawBox(ctx, elem, elem.desc.bgColor);
3213
3128
  }
3214
- function drawImage$1(ctx, elem, loader) {
3129
+ function drawImage(ctx, elem, loader) {
3215
3130
  var content = loader.getContent(elem.uuid);
3216
3131
  rotateElement$1(ctx, elem, function () {
3217
3132
  if (content) {
@@ -3219,7 +3134,7 @@ var iDrawCore = (function () {
3219
3134
  }
3220
3135
  });
3221
3136
  }
3222
- function drawSVG$1(ctx, elem, loader) {
3137
+ function drawSVG(ctx, elem, loader) {
3223
3138
  var content = loader.getContent(elem.uuid);
3224
3139
  rotateElement$1(ctx, elem, function () {
3225
3140
  if (content) {
@@ -3227,7 +3142,7 @@ var iDrawCore = (function () {
3227
3142
  }
3228
3143
  });
3229
3144
  }
3230
- function drawHTML$1(ctx, elem, loader) {
3145
+ function drawHTML(ctx, elem, loader) {
3231
3146
  var content = loader.getContent(elem.uuid);
3232
3147
  rotateElement$1(ctx, elem, function () {
3233
3148
  if (content) {
@@ -3236,9 +3151,9 @@ var iDrawCore = (function () {
3236
3151
  });
3237
3152
  }
3238
3153
  var is$3 = index.is, color$3 = index.color;
3239
- function drawText$1(ctx, elem, loader) {
3154
+ function drawText(ctx, elem, loader) {
3240
3155
  clearContext$1(ctx);
3241
- drawBox$1(ctx, elem, elem.desc.bgColor || 'transparent');
3156
+ drawBox(ctx, elem, elem.desc.bgColor || 'transparent');
3242
3157
  rotateElement$1(ctx, elem, function () {
3243
3158
  var desc = __assign$1({
3244
3159
  fontSize: 12,
@@ -3338,7 +3253,7 @@ var iDrawCore = (function () {
3338
3253
  }
3339
3254
  });
3340
3255
  }
3341
- function drawCircle$1(ctx, elem) {
3256
+ function drawCircle(ctx, elem) {
3342
3257
  clearContext$1(ctx);
3343
3258
  rotateElement$1(ctx, elem, function (ctx) {
3344
3259
  var x = elem.x, y = elem.y, w = elem.w, h = elem.h, desc = elem.desc;
@@ -3365,13 +3280,13 @@ var iDrawCore = (function () {
3365
3280
  });
3366
3281
  }
3367
3282
  var isColorStr$2 = index.color.isColorStr;
3368
- function drawContext$1(ctx, data, loader) {
3283
+ function drawContext(ctx, data, loader) {
3369
3284
  var _a;
3370
3285
  clearContext$1(ctx);
3371
3286
  var size = ctx.getSize();
3372
3287
  ctx.clearRect(0, 0, size.contextWidth, size.contextHeight);
3373
3288
  if (typeof data.bgColor === 'string' && isColorStr$2(data.bgColor)) {
3374
- drawBgColor$1(ctx, data.bgColor);
3289
+ drawBgColor(ctx, data.bgColor);
3375
3290
  }
3376
3291
  if (!(data.elements.length > 0)) {
3377
3292
  return;
@@ -3383,33 +3298,33 @@ var iDrawCore = (function () {
3383
3298
  }
3384
3299
  switch (elem.type) {
3385
3300
  case 'rect': {
3386
- drawRect$1(ctx, elem);
3301
+ drawRect(ctx, elem);
3387
3302
  break;
3388
3303
  }
3389
3304
  case 'text': {
3390
- drawText$1(ctx, elem);
3305
+ drawText(ctx, elem);
3391
3306
  break;
3392
3307
  }
3393
3308
  case 'image': {
3394
- drawImage$1(ctx, elem, loader);
3309
+ drawImage(ctx, elem, loader);
3395
3310
  break;
3396
3311
  }
3397
3312
  case 'svg': {
3398
- drawSVG$1(ctx, elem, loader);
3313
+ drawSVG(ctx, elem, loader);
3399
3314
  break;
3400
3315
  }
3401
3316
  case 'html': {
3402
- drawHTML$1(ctx, elem, loader);
3317
+ drawHTML(ctx, elem, loader);
3403
3318
  break;
3404
3319
  }
3405
3320
  case 'circle': {
3406
- drawCircle$1(ctx, elem);
3321
+ drawCircle(ctx, elem);
3407
3322
  break;
3408
3323
  }
3409
3324
  }
3410
3325
  }
3411
3326
  }
3412
- var LoaderEvent$1 = (function () {
3327
+ var LoaderEvent = (function () {
3413
3328
  function LoaderEvent() {
3414
3329
  this._listeners = new Map();
3415
3330
  }
@@ -3460,36 +3375,36 @@ var iDrawCore = (function () {
3460
3375
  };
3461
3376
  return LoaderEvent;
3462
3377
  }());
3463
- function filterScript$1(html) {
3378
+ function filterScript(html) {
3464
3379
  return html.replace(/<script[\s\S]*?<\/script>/ig, '');
3465
3380
  }
3466
- var _a$1 = index.loader, loadImage$2 = _a$1.loadImage, loadSVG$2 = _a$1.loadSVG, loadHTML$2 = _a$1.loadHTML;
3381
+ var _a$1 = index.loader, loadImage = _a$1.loadImage, loadSVG = _a$1.loadSVG, loadHTML = _a$1.loadHTML;
3467
3382
  var deepClone$1$1 = index.data.deepClone;
3468
- var LoaderStatus$1;
3383
+ var LoaderStatus;
3469
3384
  (function (LoaderStatus) {
3470
3385
  LoaderStatus["FREE"] = "free";
3471
3386
  LoaderStatus["LOADING"] = "loading";
3472
3387
  LoaderStatus["COMPLETE"] = "complete";
3473
- })(LoaderStatus$1 || (LoaderStatus$1 = {}));
3474
- var Loader$1 = (function () {
3388
+ })(LoaderStatus || (LoaderStatus = {}));
3389
+ var Loader = (function () {
3475
3390
  function Loader(opts) {
3476
3391
  this._currentLoadData = {};
3477
3392
  this._currentUUIDQueue = [];
3478
3393
  this._storageLoadData = {};
3479
- this._status = LoaderStatus$1.FREE;
3394
+ this._status = LoaderStatus.FREE;
3480
3395
  this._waitingLoadQueue = [];
3481
3396
  this._opts = opts;
3482
- this._event = new LoaderEvent$1();
3397
+ this._event = new LoaderEvent();
3483
3398
  this._waitingLoadQueue = [];
3484
3399
  }
3485
3400
  Loader.prototype.load = function (data, changeResourceUUIDs) {
3486
3401
  var _a = this._resetLoadData(data, changeResourceUUIDs), uuidQueue = _a[0], loadData = _a[1];
3487
- if (this._status === LoaderStatus$1.FREE || this._status === LoaderStatus$1.COMPLETE) {
3402
+ if (this._status === LoaderStatus.FREE || this._status === LoaderStatus.COMPLETE) {
3488
3403
  this._currentUUIDQueue = uuidQueue;
3489
3404
  this._currentLoadData = loadData;
3490
3405
  this._loadTask();
3491
3406
  }
3492
- else if (this._status === LoaderStatus$1.LOADING && uuidQueue.length > 0) {
3407
+ else if (this._status === LoaderStatus.LOADING && uuidQueue.length > 0) {
3493
3408
  this._waitingLoadQueue.push({
3494
3409
  uuidQueue: uuidQueue,
3495
3410
  loadData: loadData,
@@ -3503,7 +3418,7 @@ var iDrawCore = (function () {
3503
3418
  this._event.off(name, callback);
3504
3419
  };
3505
3420
  Loader.prototype.isComplete = function () {
3506
- return this._status === LoaderStatus$1.COMPLETE;
3421
+ return this._status === LoaderStatus.COMPLETE;
3507
3422
  };
3508
3423
  Loader.prototype.getContent = function (uuid) {
3509
3424
  var _a;
@@ -3548,7 +3463,7 @@ var iDrawCore = (function () {
3548
3463
  }
3549
3464
  else if (elem.type === 'html') {
3550
3465
  var _elem = elem;
3551
- source = filterScript$1(_elem.desc.html || '');
3466
+ source = filterScript(_elem.desc.html || '');
3552
3467
  elemW = _elem.desc.width || elem.w;
3553
3468
  elemH = _elem.desc.height || elem.h;
3554
3469
  }
@@ -3565,13 +3480,13 @@ var iDrawCore = (function () {
3565
3480
  };
3566
3481
  Loader.prototype._loadTask = function () {
3567
3482
  var _this = this;
3568
- if (this._status === LoaderStatus$1.LOADING) {
3483
+ if (this._status === LoaderStatus.LOADING) {
3569
3484
  return;
3570
3485
  }
3571
- this._status = LoaderStatus$1.LOADING;
3486
+ this._status = LoaderStatus.LOADING;
3572
3487
  if (this._currentUUIDQueue.length === 0) {
3573
3488
  if (this._waitingLoadQueue.length === 0) {
3574
- this._status = LoaderStatus$1.COMPLETE;
3489
+ this._status = LoaderStatus.COMPLETE;
3575
3490
  this._event.trigger('complete', undefined);
3576
3491
  return;
3577
3492
  }
@@ -3619,7 +3534,7 @@ var iDrawCore = (function () {
3619
3534
  element: _this._currentLoadData[uuid].element,
3620
3535
  };
3621
3536
  if (loadUUIDList.length === 0 && uuids.length === 0 && status === true) {
3622
- _this._status = LoaderStatus$1.FREE;
3537
+ _this._status = LoaderStatus.FREE;
3623
3538
  _this._loadTask();
3624
3539
  }
3625
3540
  _this._event.trigger('load', {
@@ -3651,7 +3566,7 @@ var iDrawCore = (function () {
3651
3566
  };
3652
3567
  }
3653
3568
  if (loadUUIDList.length === 0 && uuids.length === 0 && status === true) {
3654
- _this._status = LoaderStatus$1.FREE;
3569
+ _this._status = LoaderStatus.FREE;
3655
3570
  _this._loadTask();
3656
3571
  }
3657
3572
  if (_this._currentLoadData[uuid]) {
@@ -3684,19 +3599,19 @@ var iDrawCore = (function () {
3684
3599
  switch (_a.label) {
3685
3600
  case 0:
3686
3601
  if (!(params && params.type === 'image')) return [3, 2];
3687
- return [4, loadImage$2(params.source)];
3602
+ return [4, loadImage(params.source)];
3688
3603
  case 1:
3689
3604
  image = _a.sent();
3690
3605
  return [2, image];
3691
3606
  case 2:
3692
3607
  if (!(params && params.type === 'svg')) return [3, 4];
3693
- return [4, loadSVG$2(params.source)];
3608
+ return [4, loadSVG(params.source)];
3694
3609
  case 3:
3695
3610
  image = _a.sent();
3696
3611
  return [2, image];
3697
3612
  case 4:
3698
3613
  if (!(params && params.type === 'html')) return [3, 6];
3699
- return [4, loadHTML$2(params.source, {
3614
+ return [4, loadHTML(params.source, {
3700
3615
  width: params.elemW, height: params.elemH
3701
3616
  })];
3702
3617
  case 5:
@@ -3709,7 +3624,7 @@ var iDrawCore = (function () {
3709
3624
  };
3710
3625
  return Loader;
3711
3626
  }());
3712
- var RendererEvent$1 = (function () {
3627
+ var RendererEvent = (function () {
3713
3628
  function RendererEvent() {
3714
3629
  this._listeners = new Map();
3715
3630
  }
@@ -3768,27 +3683,27 @@ var iDrawCore = (function () {
3768
3683
  var _freeze = Symbol('_freeze');
3769
3684
  var _drawFrame = Symbol('_drawFrame');
3770
3685
  var _retainQueueOneItem = Symbol('_retainQueueOneItem');
3771
- var _a$2, _b, _c;
3772
- var requestAnimationFrame$1 = window.requestAnimationFrame;
3686
+ var _a, _b, _c;
3687
+ var requestAnimationFrame = window.requestAnimationFrame;
3773
3688
  var createUUID$2 = index.uuid.createUUID;
3774
- var deepClone$5 = index.data.deepClone;
3689
+ var deepClone$4 = index.data.deepClone;
3775
3690
  var Context = index.Context;
3776
- var DrawStatus$1;
3691
+ var DrawStatus;
3777
3692
  (function (DrawStatus) {
3778
3693
  DrawStatus["NULL"] = "null";
3779
3694
  DrawStatus["FREE"] = "free";
3780
3695
  DrawStatus["DRAWING"] = "drawing";
3781
3696
  DrawStatus["FREEZE"] = "freeze";
3782
- })(DrawStatus$1 || (DrawStatus$1 = {}));
3697
+ })(DrawStatus || (DrawStatus = {}));
3783
3698
  var Renderer = (function (_super) {
3784
3699
  __extends(Renderer, _super);
3785
3700
  function Renderer(opts) {
3786
3701
  var _this = _super.call(this) || this;
3787
- _this[_a$2] = [];
3702
+ _this[_a] = [];
3788
3703
  _this[_b] = null;
3789
- _this[_c] = DrawStatus$1.NULL;
3704
+ _this[_c] = DrawStatus.NULL;
3790
3705
  _this[_opts$2] = opts;
3791
- _this[_loader] = new Loader$1({
3706
+ _this[_loader] = new Loader({
3792
3707
  maxParallelNum: 6
3793
3708
  });
3794
3709
  _this[_loader].on('load', function (res) {
@@ -3805,8 +3720,8 @@ var iDrawCore = (function () {
3805
3720
  }
3806
3721
  Renderer.prototype.render = function (target, originData, opts) {
3807
3722
  var _d = (opts || {}).changeResourceUUIDs, changeResourceUUIDs = _d === void 0 ? [] : _d;
3808
- this[_status] = DrawStatus$1.FREE;
3809
- var data = deepClone$5(originData);
3723
+ this[_status] = DrawStatus.FREE;
3724
+ var data = deepClone$4(originData);
3810
3725
  if (Array.isArray(data.elements)) {
3811
3726
  data.elements.forEach(function (elem) {
3812
3727
  if (!(typeof elem.uuid === 'string' && elem.uuid)) {
@@ -3833,10 +3748,10 @@ var iDrawCore = (function () {
3833
3748
  this[_ctx] = target;
3834
3749
  }
3835
3750
  }
3836
- if ([DrawStatus$1.FREEZE].includes(this[_status])) {
3751
+ if ([DrawStatus.FREEZE].includes(this[_status])) {
3837
3752
  return;
3838
3753
  }
3839
- var _data = deepClone$5({ data: data, });
3754
+ var _data = deepClone$4({ data: data, });
3840
3755
  this[_queue].push(_data);
3841
3756
  this[_drawFrame]();
3842
3757
  this[_loader].load(data, changeResourceUUIDs || []);
@@ -3845,18 +3760,18 @@ var iDrawCore = (function () {
3845
3760
  return this[_ctx];
3846
3761
  };
3847
3762
  Renderer.prototype.thaw = function () {
3848
- this[_status] = DrawStatus$1.FREE;
3763
+ this[_status] = DrawStatus.FREE;
3849
3764
  };
3850
- Renderer.prototype[(_a$2 = _queue, _b = _ctx, _c = _status, _freeze)] = function () {
3851
- this[_status] = DrawStatus$1.FREEZE;
3765
+ Renderer.prototype[(_a = _queue, _b = _ctx, _c = _status, _freeze)] = function () {
3766
+ this[_status] = DrawStatus.FREEZE;
3852
3767
  };
3853
3768
  Renderer.prototype[_drawFrame] = function () {
3854
3769
  var _this = this;
3855
- if (this[_status] === DrawStatus$1.FREEZE) {
3770
+ if (this[_status] === DrawStatus.FREEZE) {
3856
3771
  return;
3857
3772
  }
3858
- requestAnimationFrame$1(function () {
3859
- if (_this[_status] === DrawStatus$1.FREEZE) {
3773
+ requestAnimationFrame(function () {
3774
+ if (_this[_status] === DrawStatus.FREEZE) {
3860
3775
  return;
3861
3776
  }
3862
3777
  var ctx = _this[_ctx];
@@ -3871,26 +3786,26 @@ var iDrawCore = (function () {
3871
3786
  if (_this[_loader].isComplete() !== true) {
3872
3787
  _this[_drawFrame]();
3873
3788
  if (item && ctx) {
3874
- drawContext$1(ctx, item.data, _this[_loader]);
3789
+ drawContext(ctx, item.data, _this[_loader]);
3875
3790
  }
3876
3791
  }
3877
3792
  else if (item && ctx) {
3878
- drawContext$1(ctx, item.data, _this[_loader]);
3793
+ drawContext(ctx, item.data, _this[_loader]);
3879
3794
  _this[_retainQueueOneItem]();
3880
3795
  if (!isLastFrame) {
3881
3796
  _this[_drawFrame]();
3882
3797
  }
3883
3798
  else {
3884
- _this[_status] = DrawStatus$1.FREE;
3799
+ _this[_status] = DrawStatus.FREE;
3885
3800
  }
3886
3801
  }
3887
3802
  else {
3888
- _this[_status] = DrawStatus$1.FREE;
3803
+ _this[_status] = DrawStatus.FREE;
3889
3804
  }
3890
3805
  _this.trigger('drawFrame', { t: Date.now() });
3891
- if (_this[_loader].isComplete() === true && _this[_queue].length === 1 && _this[_status] === DrawStatus$1.FREE) {
3806
+ if (_this[_loader].isComplete() === true && _this[_queue].length === 1 && _this[_status] === DrawStatus.FREE) {
3892
3807
  if (ctx && _this[_queue][0] && _this[_queue][0].data) {
3893
- drawContext$1(ctx, _this[_queue][0].data, _this[_loader]);
3808
+ drawContext(ctx, _this[_queue][0].data, _this[_loader]);
3894
3809
  }
3895
3810
  _this.trigger('drawFrameComplete', { t: Date.now() });
3896
3811
  _this[_freeze]();
@@ -3901,13 +3816,13 @@ var iDrawCore = (function () {
3901
3816
  if (this[_queue].length <= 1) {
3902
3817
  return;
3903
3818
  }
3904
- var lastOne = deepClone$5(this[_queue][this[_queue].length - 1]);
3819
+ var lastOne = deepClone$4(this[_queue][this[_queue].length - 1]);
3905
3820
  this[_queue] = [lastOne];
3906
3821
  };
3907
3822
  return Renderer;
3908
- }(RendererEvent$1));
3823
+ }(RendererEvent));
3909
3824
 
3910
- var isColorStr$1 = index$1.color.isColorStr;
3825
+ var isColorStr = index$1.color.isColorStr;
3911
3826
  function number(value) {
3912
3827
  return (typeof value === 'number' && (value > 0 || value <= 0));
3913
3828
  }
@@ -3932,8 +3847,8 @@ var iDrawCore = (function () {
3932
3847
  function borderRadius(value) {
3933
3848
  return number(value) && value >= 0;
3934
3849
  }
3935
- function color$1(value) {
3936
- return isColorStr$1(value);
3850
+ function color(value) {
3851
+ return isColorStr(value);
3937
3852
  }
3938
3853
  function imageURL(value) {
3939
3854
  return (typeof value === 'string' && /^(http:\/\/|https:\/\/|\.\/|\/)/.test("" + value));
@@ -3989,7 +3904,7 @@ var iDrawCore = (function () {
3989
3904
  number: number,
3990
3905
  borderWidth: borderWidth,
3991
3906
  borderRadius: borderRadius,
3992
- color: color$1,
3907
+ color: color,
3993
3908
  imageSrc: imageSrc,
3994
3909
  imageURL: imageURL,
3995
3910
  imageBase64: imageBase64,
@@ -4184,6 +4099,156 @@ var iDrawCore = (function () {
4184
4099
  return null;
4185
4100
  }
4186
4101
 
4102
+ var defaultConfig = {
4103
+ elementWrapper: {
4104
+ color: '#2ab6f1',
4105
+ lockColor: '#aaaaaa',
4106
+ controllerSize: 6,
4107
+ lineWidth: 1,
4108
+ lineDash: [4, 3],
4109
+ }
4110
+ };
4111
+ function mergeConfig(config) {
4112
+ var result = index$1.data.deepClone(defaultConfig);
4113
+ if (config) {
4114
+ if (config.elementWrapper) {
4115
+ result.elementWrapper = __assign$4(__assign$4({}, result.elementWrapper), config.elementWrapper);
4116
+ }
4117
+ }
4118
+ return result;
4119
+ }
4120
+
4121
+ var CoreEvent = (function () {
4122
+ function CoreEvent() {
4123
+ this._listeners = new Map();
4124
+ }
4125
+ CoreEvent.prototype.on = function (eventKey, callback) {
4126
+ if (this._listeners.has(eventKey)) {
4127
+ var callbacks = this._listeners.get(eventKey);
4128
+ callbacks === null || callbacks === void 0 ? void 0 : callbacks.push(callback);
4129
+ this._listeners.set(eventKey, callbacks || []);
4130
+ }
4131
+ else {
4132
+ this._listeners.set(eventKey, [callback]);
4133
+ }
4134
+ };
4135
+ CoreEvent.prototype.off = function (eventKey, callback) {
4136
+ if (this._listeners.has(eventKey)) {
4137
+ var callbacks = this._listeners.get(eventKey);
4138
+ if (Array.isArray(callbacks)) {
4139
+ for (var i = 0; i < (callbacks === null || callbacks === void 0 ? void 0 : callbacks.length); i++) {
4140
+ if (callbacks[i] === callback) {
4141
+ callbacks.splice(i, 1);
4142
+ break;
4143
+ }
4144
+ }
4145
+ }
4146
+ this._listeners.set(eventKey, callbacks || []);
4147
+ }
4148
+ };
4149
+ CoreEvent.prototype.trigger = function (eventKey, arg) {
4150
+ var callbacks = this._listeners.get(eventKey);
4151
+ if (Array.isArray(callbacks)) {
4152
+ callbacks.forEach(function (cb) {
4153
+ cb(arg);
4154
+ });
4155
+ return true;
4156
+ }
4157
+ else {
4158
+ return false;
4159
+ }
4160
+ };
4161
+ CoreEvent.prototype.has = function (name) {
4162
+ if (this._listeners.has(name)) {
4163
+ var list = this._listeners.get(name);
4164
+ if (Array.isArray(list) && list.length > 0) {
4165
+ return true;
4166
+ }
4167
+ }
4168
+ return false;
4169
+ };
4170
+ return CoreEvent;
4171
+ }());
4172
+
4173
+ function isChangeImageElementResource(before, after) {
4174
+ var _a, _b;
4175
+ return (((_a = before === null || before === void 0 ? void 0 : before.desc) === null || _a === void 0 ? void 0 : _a.src) !== ((_b = after === null || after === void 0 ? void 0 : after.desc) === null || _b === void 0 ? void 0 : _b.src));
4176
+ }
4177
+ function isChangeSVGElementResource(before, after) {
4178
+ var _a, _b;
4179
+ return (((_a = before === null || before === void 0 ? void 0 : before.desc) === null || _a === void 0 ? void 0 : _a.svg) !== ((_b = after === null || after === void 0 ? void 0 : after.desc) === null || _b === void 0 ? void 0 : _b.svg));
4180
+ }
4181
+ function isChangeHTMLElementResource(before, after) {
4182
+ var _a, _b, _c, _d, _e, _f;
4183
+ return (((_a = before === null || before === void 0 ? void 0 : before.desc) === null || _a === void 0 ? void 0 : _a.html) !== ((_b = after === null || after === void 0 ? void 0 : after.desc) === null || _b === void 0 ? void 0 : _b.html)
4184
+ || ((_c = before === null || before === void 0 ? void 0 : before.desc) === null || _c === void 0 ? void 0 : _c.width) !== ((_d = after === null || after === void 0 ? void 0 : after.desc) === null || _d === void 0 ? void 0 : _d.width)
4185
+ || ((_e = before === null || before === void 0 ? void 0 : before.desc) === null || _e === void 0 ? void 0 : _e.height) !== ((_f = after === null || after === void 0 ? void 0 : after.desc) === null || _f === void 0 ? void 0 : _f.height));
4186
+ }
4187
+ function diffElementResourceChange(before, after) {
4188
+ var result = null;
4189
+ var isChange = false;
4190
+ switch (after.type) {
4191
+ case 'image': {
4192
+ isChange = isChangeImageElementResource(before, after);
4193
+ break;
4194
+ }
4195
+ case 'svg': {
4196
+ isChange = isChangeSVGElementResource(before, after);
4197
+ break;
4198
+ }
4199
+ case 'html': {
4200
+ isChange = isChangeHTMLElementResource(before, after);
4201
+ break;
4202
+ }
4203
+ }
4204
+ if (isChange === true) {
4205
+ result = after.uuid;
4206
+ }
4207
+ return result;
4208
+ }
4209
+ function diffElementResourceChangeList(before, after) {
4210
+ var _a;
4211
+ var uuids = [];
4212
+ var beforeMap = parseDataElementMap(before);
4213
+ var afterMap = parseDataElementMap(after);
4214
+ for (var uuid in afterMap) {
4215
+ if (['image', 'svg', 'html'].includes((_a = afterMap[uuid]) === null || _a === void 0 ? void 0 : _a.type) !== true) {
4216
+ continue;
4217
+ }
4218
+ if (beforeMap[uuid]) {
4219
+ var isChange = false;
4220
+ switch (beforeMap[uuid].type) {
4221
+ case 'image': {
4222
+ isChange = isChangeImageElementResource(beforeMap[uuid], afterMap[uuid]);
4223
+ break;
4224
+ }
4225
+ case 'svg': {
4226
+ isChange = isChangeSVGElementResource(beforeMap[uuid], afterMap[uuid]);
4227
+ break;
4228
+ }
4229
+ case 'html': {
4230
+ isChange = isChangeHTMLElementResource(beforeMap[uuid], afterMap[uuid]);
4231
+ break;
4232
+ }
4233
+ }
4234
+ if (isChange === true) {
4235
+ uuids.push(uuid);
4236
+ }
4237
+ }
4238
+ else {
4239
+ uuids.push(uuid);
4240
+ }
4241
+ }
4242
+ return uuids;
4243
+ }
4244
+ function parseDataElementMap(data) {
4245
+ var elemMap = {};
4246
+ data.elements.forEach(function (elem) {
4247
+ elemMap[elem.uuid] = elem;
4248
+ });
4249
+ return elemMap;
4250
+ }
4251
+
4187
4252
  function rotateElement(ctx, elem, callback) {
4188
4253
  var center = calcElementCenter(elem);
4189
4254
  var radian = parseAngleToRadian(elem.angle || 0);
@@ -4203,601 +4268,9 @@ var iDrawCore = (function () {
4203
4268
  }
4204
4269
  }
4205
4270
 
4206
- var istype = index$1.istype, color = index$1.color;
4207
- function clearContext(ctx) {
4208
- ctx.setFillStyle('#000000');
4209
- ctx.setStrokeStyle('#000000');
4210
- ctx.setLineDash([]);
4211
- ctx.setGlobalAlpha(1);
4212
- ctx.setShadowColor('#00000000');
4213
- ctx.setShadowOffsetX(0);
4214
- ctx.setShadowOffsetY(0);
4215
- ctx.setShadowBlur(0);
4216
- }
4217
- function drawBgColor(ctx, color) {
4218
- var size = ctx.getSize();
4219
- ctx.setFillStyle(color);
4220
- ctx.fillRect(0, 0, size.contextWidth, size.contextHeight);
4221
- }
4222
- function drawBox(ctx, elem, pattern) {
4223
- clearContext(ctx);
4224
- drawBoxBorder(ctx, elem);
4225
- clearContext(ctx);
4226
- rotateElement(ctx, elem, function () {
4227
- var x = elem.x, y = elem.y, w = elem.w, h = elem.h;
4228
- var r = elem.desc.borderRadius || 0;
4229
- r = Math.min(r, w / 2, h / 2);
4230
- if (w < r * 2 || h < r * 2) {
4231
- r = 0;
4232
- }
4233
- ctx.beginPath();
4234
- ctx.moveTo(x + r, y);
4235
- ctx.arcTo(x + w, y, x + w, y + h, r);
4236
- ctx.arcTo(x + w, y + h, x, y + h, r);
4237
- ctx.arcTo(x, y + h, x, y, r);
4238
- ctx.arcTo(x, y, x + w, y, r);
4239
- ctx.closePath();
4240
- if (typeof pattern === 'string') {
4241
- ctx.setFillStyle(pattern);
4242
- }
4243
- else if (['CanvasPattern'].includes(istype.type(pattern))) {
4244
- ctx.setFillStyle(pattern);
4245
- }
4246
- ctx.fill();
4247
- });
4248
- }
4249
- function drawBoxBorder(ctx, elem) {
4250
- clearContext(ctx);
4251
- rotateElement(ctx, elem, function () {
4252
- if (!(elem.desc.borderWidth && elem.desc.borderWidth > 0)) {
4253
- return;
4254
- }
4255
- var bw = elem.desc.borderWidth;
4256
- var borderColor = '#000000';
4257
- if (color.isColorStr(elem.desc.borderColor) === true) {
4258
- borderColor = elem.desc.borderColor;
4259
- }
4260
- var x = elem.x - bw / 2;
4261
- var y = elem.y - bw / 2;
4262
- var w = elem.w + bw;
4263
- var h = elem.h + bw;
4264
- var r = elem.desc.borderRadius || 0;
4265
- r = Math.min(r, w / 2, h / 2);
4266
- if (r < w / 2 && r < h / 2) {
4267
- r = r + bw / 2;
4268
- }
4269
- var desc = elem.desc;
4270
- if (desc.shadowColor !== undefined && index$1.color.isColorStr(desc.shadowColor)) {
4271
- ctx.setShadowColor(desc.shadowColor);
4272
- }
4273
- if (desc.shadowOffsetX !== undefined && is.number(desc.shadowOffsetX)) {
4274
- ctx.setShadowOffsetX(desc.shadowOffsetX);
4275
- }
4276
- if (desc.shadowOffsetY !== undefined && is.number(desc.shadowOffsetY)) {
4277
- ctx.setShadowOffsetY(desc.shadowOffsetY);
4278
- }
4279
- if (desc.shadowBlur !== undefined && is.number(desc.shadowBlur)) {
4280
- ctx.setShadowBlur(desc.shadowBlur);
4281
- }
4282
- ctx.beginPath();
4283
- ctx.setLineWidth(bw);
4284
- ctx.setStrokeStyle(borderColor);
4285
- ctx.moveTo(x + r, y);
4286
- ctx.arcTo(x + w, y, x + w, y + h, r);
4287
- ctx.arcTo(x + w, y + h, x, y + h, r);
4288
- ctx.arcTo(x, y + h, x, y, r);
4289
- ctx.arcTo(x, y, x + w, y, r);
4290
- ctx.closePath();
4291
- ctx.stroke();
4292
- });
4293
- }
4294
-
4295
- function drawRect(ctx, elem) {
4296
- drawBox(ctx, elem, elem.desc.bgColor);
4297
- }
4298
-
4299
- function drawImage(ctx, elem, loader) {
4300
- var content = loader.getContent(elem.uuid);
4301
- rotateElement(ctx, elem, function () {
4302
- if (content) {
4303
- ctx.drawImage(content, elem.x, elem.y, elem.w, elem.h);
4304
- }
4305
- });
4306
- }
4307
-
4308
- function drawSVG(ctx, elem, loader) {
4309
- var content = loader.getContent(elem.uuid);
4310
- rotateElement(ctx, elem, function () {
4311
- if (content) {
4312
- ctx.drawImage(content, elem.x, elem.y, elem.w, elem.h);
4313
- }
4314
- });
4315
- }
4316
-
4317
- function drawHTML(ctx, elem, loader) {
4318
- var content = loader.getContent(elem.uuid);
4319
- rotateElement(ctx, elem, function () {
4320
- if (content) {
4321
- ctx.drawImage(content, elem.x, elem.y, elem.w, elem.h);
4322
- }
4323
- });
4324
- }
4325
-
4326
- function drawText(ctx, elem, loader, helperConfig) {
4327
- clearContext(ctx);
4328
- drawBox(ctx, elem, elem.desc.bgColor || 'transparent');
4329
- rotateElement(ctx, elem, function () {
4330
- var desc = __assign$4({
4331
- fontSize: 12,
4332
- fontFamily: 'sans-serif',
4333
- textAlign: 'center',
4334
- }, elem.desc);
4335
- ctx.setFillStyle(elem.desc.color);
4336
- ctx.setTextBaseline('top');
4337
- ctx.setFont({
4338
- fontWeight: desc.fontWeight,
4339
- fontSize: desc.fontSize,
4340
- fontFamily: desc.fontFamily
4341
- });
4342
- var descText = desc.text.replace(/\r\n/ig, '\n');
4343
- var fontHeight = desc.lineHeight || desc.fontSize;
4344
- var descTextList = descText.split('\n');
4345
- var lines = [];
4346
- descTextList.forEach(function (tempText) {
4347
- var lineText = '';
4348
- var lineNum = 0;
4349
- for (var i = 0; i < tempText.length; i++) {
4350
- if (ctx.measureText(lineText + (tempText[i] || '')).width < ctx.calcDeviceNum(elem.w)) {
4351
- lineText += (tempText[i] || '');
4352
- }
4353
- else {
4354
- lines.push({
4355
- text: lineText,
4356
- width: ctx.calcScreenNum(ctx.measureText(lineText).width),
4357
- });
4358
- lineText = (tempText[i] || '');
4359
- lineNum++;
4360
- }
4361
- if ((lineNum + 1) * fontHeight > elem.h) {
4362
- break;
4363
- }
4364
- if (lineText && tempText.length - 1 === i) {
4365
- if ((lineNum + 1) * fontHeight < elem.h) {
4366
- lines.push({
4367
- text: lineText,
4368
- width: ctx.calcScreenNum(ctx.measureText(lineText).width),
4369
- });
4370
- break;
4371
- }
4372
- }
4373
- }
4374
- });
4375
- {
4376
- var _y_1 = elem.y;
4377
- if (lines.length * fontHeight < elem.h) {
4378
- _y_1 += ((elem.h - lines.length * fontHeight) / 2);
4379
- }
4380
- if (desc.textShadowColor !== undefined && index$1.color.isColorStr(desc.textShadowColor)) {
4381
- ctx.setShadowColor(desc.textShadowColor);
4382
- }
4383
- if (desc.textShadowOffsetX !== undefined && is.number(desc.textShadowOffsetX)) {
4384
- ctx.setShadowOffsetX(desc.textShadowOffsetX);
4385
- }
4386
- if (desc.textShadowOffsetY !== undefined && is.number(desc.textShadowOffsetY)) {
4387
- ctx.setShadowOffsetY(desc.textShadowOffsetY);
4388
- }
4389
- if (desc.textShadowBlur !== undefined && is.number(desc.textShadowBlur)) {
4390
- ctx.setShadowBlur(desc.textShadowBlur);
4391
- }
4392
- lines.forEach(function (line, i) {
4393
- var _x = elem.x;
4394
- if (desc.textAlign === 'center') {
4395
- _x = elem.x + (elem.w - line.width) / 2;
4396
- }
4397
- else if (desc.textAlign === 'right') {
4398
- _x = elem.x + (elem.w - line.width);
4399
- }
4400
- ctx.fillText(line.text, _x, _y_1 + fontHeight * i);
4401
- });
4402
- clearContext(ctx);
4403
- }
4404
- if (index$1.color.isColorStr(desc.strokeColor) && desc.strokeWidth !== undefined && desc.strokeWidth > 0) {
4405
- var _y_2 = elem.y;
4406
- if (lines.length * fontHeight < elem.h) {
4407
- _y_2 += ((elem.h - lines.length * fontHeight) / 2);
4408
- }
4409
- lines.forEach(function (line, i) {
4410
- var _x = elem.x;
4411
- if (desc.textAlign === 'center') {
4412
- _x = elem.x + (elem.w - line.width) / 2;
4413
- }
4414
- else if (desc.textAlign === 'right') {
4415
- _x = elem.x + (elem.w - line.width);
4416
- }
4417
- if (desc.strokeColor !== undefined) {
4418
- ctx.setStrokeStyle(desc.strokeColor);
4419
- }
4420
- if (desc.strokeWidth !== undefined && desc.strokeWidth > 0) {
4421
- ctx.setLineWidth(desc.strokeWidth);
4422
- }
4423
- ctx.strokeText(line.text, _x, _y_2 + fontHeight * i);
4424
- });
4425
- }
4426
- });
4427
- }
4428
-
4429
- function drawCircle(ctx, elem) {
4430
- clearContext(ctx);
4431
- rotateElement(ctx, elem, function (ctx) {
4432
- var x = elem.x, y = elem.y, w = elem.w, h = elem.h, desc = elem.desc;
4433
- var _a = desc.bgColor, bgColor = _a === void 0 ? '#000000' : _a, _b = desc.borderColor, borderColor = _b === void 0 ? '#000000' : _b, _c = desc.borderWidth, borderWidth = _c === void 0 ? 0 : _c;
4434
- var a = w / 2;
4435
- var b = h / 2;
4436
- var centerX = x + a;
4437
- var centerY = y + b;
4438
- if (borderWidth && borderWidth > 0) {
4439
- var ba = borderWidth / 2 + a;
4440
- var bb = borderWidth / 2 + b;
4441
- ctx.beginPath();
4442
- ctx.setStrokeStyle(borderColor);
4443
- ctx.setLineWidth(borderWidth);
4444
- ctx.ellipse(centerX, centerY, ba, bb, 0, 0, 2 * Math.PI);
4445
- ctx.closePath();
4446
- ctx.stroke();
4447
- }
4448
- ctx.beginPath();
4449
- ctx.setFillStyle(bgColor);
4450
- ctx.ellipse(centerX, centerY, a, b, 0, 0, 2 * Math.PI);
4451
- ctx.closePath();
4452
- ctx.fill();
4453
- });
4454
- }
4455
-
4456
- function drawElementWrapper(ctx, config) {
4457
- if (!(config === null || config === void 0 ? void 0 : config.selectedElementWrapper)) {
4458
- return;
4459
- }
4460
- var wrapper = config.selectedElementWrapper;
4461
- clearContext(ctx);
4462
- rotateContext(ctx, wrapper.translate, wrapper.radian || 0, function () {
4463
- ctx.beginPath();
4464
- ctx.setLineDash(wrapper.lineDash);
4465
- ctx.setLineWidth(wrapper.lineWidth);
4466
- ctx.setStrokeStyle(wrapper.color);
4467
- ctx.moveTo(wrapper.controllers.topLeft.x, wrapper.controllers.topLeft.y);
4468
- ctx.lineTo(wrapper.controllers.topRight.x, wrapper.controllers.topRight.y);
4469
- ctx.lineTo(wrapper.controllers.bottomRight.x, wrapper.controllers.bottomRight.y);
4470
- ctx.lineTo(wrapper.controllers.bottomLeft.x, wrapper.controllers.bottomLeft.y);
4471
- ctx.lineTo(wrapper.controllers.topLeft.x, wrapper.controllers.topLeft.y - wrapper.lineWidth / 2);
4472
- ctx.stroke();
4473
- ctx.closePath();
4474
- if (wrapper.lock !== true) {
4475
- if (wrapper.controllers.rotate.invisible !== true) {
4476
- ctx.beginPath();
4477
- ctx.moveTo(wrapper.controllers.top.x, wrapper.controllers.top.y);
4478
- ctx.lineTo(wrapper.controllers.rotate.x, wrapper.controllers.rotate.y + wrapper.controllerSize);
4479
- ctx.stroke();
4480
- ctx.closePath();
4481
- ctx.beginPath();
4482
- ctx.setLineDash([]);
4483
- ctx.setLineWidth(wrapper.controllerSize / 2);
4484
- ctx.arc(wrapper.controllers.rotate.x, wrapper.controllers.rotate.y, wrapper.controllerSize * 0.8, Math.PI / 6, Math.PI * 2);
4485
- ctx.stroke();
4486
- ctx.closePath();
4487
- }
4488
- ctx.setFillStyle(wrapper.color);
4489
- [
4490
- wrapper.controllers.topLeft,
4491
- wrapper.controllers.top,
4492
- wrapper.controllers.topRight,
4493
- wrapper.controllers.right,
4494
- wrapper.controllers.bottomRight,
4495
- wrapper.controllers.bottom,
4496
- wrapper.controllers.bottomLeft,
4497
- wrapper.controllers.left,
4498
- ].forEach(function (controller) {
4499
- if (controller.invisible !== true) {
4500
- ctx.beginPath();
4501
- ctx.arc(controller.x, controller.y, wrapper.controllerSize, 0, Math.PI * 2);
4502
- ctx.fill();
4503
- ctx.closePath();
4504
- }
4505
- });
4506
- }
4507
- else {
4508
- clearContext(ctx);
4509
- ctx.setStrokeStyle(wrapper.color);
4510
- [
4511
- wrapper.controllers.topLeft, wrapper.controllers.top, wrapper.controllers.topRight, wrapper.controllers.right,
4512
- wrapper.controllers.bottomRight, wrapper.controllers.bottom, wrapper.controllers.bottomLeft, wrapper.controllers.left,
4513
- ].forEach(function (controller) {
4514
- ctx.beginPath();
4515
- ctx.moveTo(controller.x - wrapper.controllerSize / 2, controller.y - wrapper.controllerSize / 2);
4516
- ctx.lineTo(controller.x + wrapper.controllerSize / 2, controller.y + wrapper.controllerSize / 2);
4517
- ctx.stroke();
4518
- ctx.closePath();
4519
- ctx.beginPath();
4520
- ctx.moveTo(controller.x + wrapper.controllerSize / 2, controller.y - wrapper.controllerSize / 2);
4521
- ctx.lineTo(controller.x - wrapper.controllerSize / 2, controller.y + wrapper.controllerSize / 2);
4522
- ctx.stroke();
4523
- ctx.closePath();
4524
- });
4525
- }
4526
- });
4527
- }
4528
- function drawAreaWrapper(ctx, config) {
4529
- if (!(config === null || config === void 0 ? void 0 : config.selectedAreaWrapper)) {
4530
- return;
4531
- }
4532
- var wrapper = config.selectedAreaWrapper;
4533
- if (wrapper && wrapper.w > 0 && wrapper.h > 0) {
4534
- clearContext(ctx);
4535
- ctx.setGlobalAlpha(0.3);
4536
- ctx.setFillStyle(wrapper.color);
4537
- ctx.fillRect(wrapper.x, wrapper.y, wrapper.w, wrapper.h);
4538
- clearContext(ctx);
4539
- ctx.beginPath();
4540
- ctx.setLineDash(wrapper.lineDash);
4541
- ctx.setLineWidth(wrapper.lineWidth);
4542
- ctx.setStrokeStyle(wrapper.color);
4543
- ctx.moveTo(wrapper.x, wrapper.y);
4544
- ctx.lineTo(wrapper.x + wrapper.w, wrapper.y);
4545
- ctx.lineTo(wrapper.x + wrapper.w, wrapper.y + wrapper.h);
4546
- ctx.lineTo(wrapper.x, wrapper.y + wrapper.h);
4547
- ctx.lineTo(wrapper.x, wrapper.y);
4548
- ctx.stroke();
4549
- ctx.closePath();
4550
- }
4551
- }
4552
- function drawElementListWrappers(ctx, config) {
4553
- if (!Array.isArray(config === null || config === void 0 ? void 0 : config.selectedElementListWrappers)) {
4554
- return;
4555
- }
4556
- var wrapperList = config.selectedElementListWrappers;
4557
- wrapperList === null || wrapperList === void 0 ? void 0 : wrapperList.forEach(function (wrapper) {
4558
- clearContext(ctx);
4559
- rotateContext(ctx, wrapper.translate, wrapper.radian || 0, function () {
4560
- clearContext(ctx);
4561
- ctx.setGlobalAlpha(0.05);
4562
- ctx.setFillStyle(wrapper.color);
4563
- ctx.fillRect(wrapper.controllers.topLeft.x, wrapper.controllers.topLeft.y, wrapper.controllers.bottomRight.x - wrapper.controllers.topLeft.x, wrapper.controllers.bottomRight.y - wrapper.controllers.topLeft.y);
4564
- clearContext(ctx);
4565
- ctx.beginPath();
4566
- ctx.setLineDash(wrapper.lineDash);
4567
- ctx.setLineWidth(wrapper.lineWidth);
4568
- ctx.setStrokeStyle(wrapper.color);
4569
- ctx.moveTo(wrapper.controllers.topLeft.x, wrapper.controllers.topLeft.y);
4570
- ctx.lineTo(wrapper.controllers.topRight.x, wrapper.controllers.topRight.y);
4571
- ctx.lineTo(wrapper.controllers.bottomRight.x, wrapper.controllers.bottomRight.y);
4572
- ctx.lineTo(wrapper.controllers.bottomLeft.x, wrapper.controllers.bottomLeft.y);
4573
- ctx.lineTo(wrapper.controllers.topLeft.x, wrapper.controllers.topLeft.y - wrapper.lineWidth / 2);
4574
- ctx.stroke();
4575
- ctx.closePath();
4576
- if (wrapper.lock === true) {
4577
- clearContext(ctx);
4578
- ctx.setStrokeStyle(wrapper.color);
4579
- [
4580
- wrapper.controllers.topLeft, wrapper.controllers.top, wrapper.controllers.topRight, wrapper.controllers.right,
4581
- wrapper.controllers.bottomRight, wrapper.controllers.bottom, wrapper.controllers.bottomLeft, wrapper.controllers.left,
4582
- ].forEach(function (controller) {
4583
- ctx.beginPath();
4584
- ctx.moveTo(controller.x - wrapper.controllerSize / 2, controller.y - wrapper.controllerSize / 2);
4585
- ctx.lineTo(controller.x + wrapper.controllerSize / 2, controller.y + wrapper.controllerSize / 2);
4586
- ctx.stroke();
4587
- ctx.closePath();
4588
- ctx.beginPath();
4589
- ctx.moveTo(controller.x + wrapper.controllerSize / 2, controller.y - wrapper.controllerSize / 2);
4590
- ctx.lineTo(controller.x - wrapper.controllerSize / 2, controller.y + wrapper.controllerSize / 2);
4591
- ctx.stroke();
4592
- ctx.closePath();
4593
- });
4594
- }
4595
- });
4596
- });
4597
- }
4598
-
4599
- var isColorStr = index$1.color.isColorStr;
4600
- function drawContext(ctx, data, helperConfig, loader) {
4601
- var _a;
4602
- clearContext(ctx);
4603
- var size = ctx.getSize();
4604
- ctx.clearRect(0, 0, size.contextWidth, size.contextHeight);
4605
- if (typeof data.bgColor === 'string' && isColorStr(data.bgColor)) {
4606
- drawBgColor(ctx, data.bgColor);
4607
- }
4608
- if (!(data.elements.length > 0)) {
4609
- return;
4610
- }
4611
- for (var i = 0; i < data.elements.length; i++) {
4612
- var elem = data.elements[i];
4613
- if (((_a = elem === null || elem === void 0 ? void 0 : elem.operation) === null || _a === void 0 ? void 0 : _a.invisible) === true) {
4614
- continue;
4615
- }
4616
- switch (elem.type) {
4617
- case 'rect': {
4618
- drawRect(ctx, elem);
4619
- break;
4620
- }
4621
- case 'text': {
4622
- drawText(ctx, elem);
4623
- break;
4624
- }
4625
- case 'image': {
4626
- drawImage(ctx, elem, loader);
4627
- break;
4628
- }
4629
- case 'svg': {
4630
- drawSVG(ctx, elem, loader);
4631
- break;
4632
- }
4633
- case 'html': {
4634
- drawHTML(ctx, elem, loader);
4635
- break;
4636
- }
4637
- case 'circle': {
4638
- drawCircle(ctx, elem);
4639
- break;
4640
- }
4641
- }
4642
- }
4643
- drawElementWrapper(ctx, helperConfig);
4644
- drawAreaWrapper(ctx, helperConfig);
4645
- drawElementListWrappers(ctx, helperConfig);
4646
- }
4647
-
4648
- var defaultConfig = {
4649
- elementWrapper: {
4650
- color: '#2ab6f1',
4651
- lockColor: '#aaaaaa',
4652
- controllerSize: 6,
4653
- lineWidth: 1,
4654
- lineDash: [4, 3],
4655
- }
4656
- };
4657
- function mergeConfig(config) {
4658
- var result = index$1.data.deepClone(defaultConfig);
4659
- if (config) {
4660
- if (config.elementWrapper) {
4661
- result.elementWrapper = __assign$4(__assign$4({}, result.elementWrapper), config.elementWrapper);
4662
- }
4663
- }
4664
- return result;
4665
- }
4666
-
4667
- var CoreEvent = (function () {
4668
- function CoreEvent() {
4669
- this._listeners = new Map();
4670
- }
4671
- CoreEvent.prototype.on = function (eventKey, callback) {
4672
- if (this._listeners.has(eventKey)) {
4673
- var callbacks = this._listeners.get(eventKey);
4674
- callbacks === null || callbacks === void 0 ? void 0 : callbacks.push(callback);
4675
- this._listeners.set(eventKey, callbacks || []);
4676
- }
4677
- else {
4678
- this._listeners.set(eventKey, [callback]);
4679
- }
4680
- };
4681
- CoreEvent.prototype.off = function (eventKey, callback) {
4682
- if (this._listeners.has(eventKey)) {
4683
- var callbacks = this._listeners.get(eventKey);
4684
- if (Array.isArray(callbacks)) {
4685
- for (var i = 0; i < (callbacks === null || callbacks === void 0 ? void 0 : callbacks.length); i++) {
4686
- if (callbacks[i] === callback) {
4687
- callbacks.splice(i, 1);
4688
- break;
4689
- }
4690
- }
4691
- }
4692
- this._listeners.set(eventKey, callbacks || []);
4693
- }
4694
- };
4695
- CoreEvent.prototype.trigger = function (eventKey, arg) {
4696
- var callbacks = this._listeners.get(eventKey);
4697
- if (Array.isArray(callbacks)) {
4698
- callbacks.forEach(function (cb) {
4699
- cb(arg);
4700
- });
4701
- return true;
4702
- }
4703
- else {
4704
- return false;
4705
- }
4706
- };
4707
- CoreEvent.prototype.has = function (name) {
4708
- if (this._listeners.has(name)) {
4709
- var list = this._listeners.get(name);
4710
- if (Array.isArray(list) && list.length > 0) {
4711
- return true;
4712
- }
4713
- }
4714
- return false;
4715
- };
4716
- return CoreEvent;
4717
- }());
4718
-
4719
- function isChangeImageElementResource(before, after) {
4720
- var _a, _b;
4721
- return (((_a = before === null || before === void 0 ? void 0 : before.desc) === null || _a === void 0 ? void 0 : _a.src) !== ((_b = after === null || after === void 0 ? void 0 : after.desc) === null || _b === void 0 ? void 0 : _b.src));
4722
- }
4723
- function isChangeSVGElementResource(before, after) {
4724
- var _a, _b;
4725
- return (((_a = before === null || before === void 0 ? void 0 : before.desc) === null || _a === void 0 ? void 0 : _a.svg) !== ((_b = after === null || after === void 0 ? void 0 : after.desc) === null || _b === void 0 ? void 0 : _b.svg));
4726
- }
4727
- function isChangeHTMLElementResource(before, after) {
4728
- var _a, _b, _c, _d, _e, _f;
4729
- return (((_a = before === null || before === void 0 ? void 0 : before.desc) === null || _a === void 0 ? void 0 : _a.html) !== ((_b = after === null || after === void 0 ? void 0 : after.desc) === null || _b === void 0 ? void 0 : _b.html)
4730
- || ((_c = before === null || before === void 0 ? void 0 : before.desc) === null || _c === void 0 ? void 0 : _c.width) !== ((_d = after === null || after === void 0 ? void 0 : after.desc) === null || _d === void 0 ? void 0 : _d.width)
4731
- || ((_e = before === null || before === void 0 ? void 0 : before.desc) === null || _e === void 0 ? void 0 : _e.height) !== ((_f = after === null || after === void 0 ? void 0 : after.desc) === null || _f === void 0 ? void 0 : _f.height));
4732
- }
4733
- function diffElementResourceChange(before, after) {
4734
- var result = null;
4735
- var isChange = false;
4736
- switch (after.type) {
4737
- case 'image': {
4738
- isChange = isChangeImageElementResource(before, after);
4739
- break;
4740
- }
4741
- case 'svg': {
4742
- isChange = isChangeSVGElementResource(before, after);
4743
- break;
4744
- }
4745
- case 'html': {
4746
- isChange = isChangeHTMLElementResource(before, after);
4747
- break;
4748
- }
4749
- }
4750
- if (isChange === true) {
4751
- result = after.uuid;
4752
- }
4753
- return result;
4754
- }
4755
- function diffElementResourceChangeList(before, after) {
4756
- var _a;
4757
- var uuids = [];
4758
- var beforeMap = parseDataElementMap(before);
4759
- var afterMap = parseDataElementMap(after);
4760
- for (var uuid in afterMap) {
4761
- if (['image', 'svg', 'html'].includes((_a = afterMap[uuid]) === null || _a === void 0 ? void 0 : _a.type) !== true) {
4762
- continue;
4763
- }
4764
- if (beforeMap[uuid]) {
4765
- var isChange = false;
4766
- switch (beforeMap[uuid].type) {
4767
- case 'image': {
4768
- isChange = isChangeImageElementResource(beforeMap[uuid], afterMap[uuid]);
4769
- break;
4770
- }
4771
- case 'svg': {
4772
- isChange = isChangeSVGElementResource(beforeMap[uuid], afterMap[uuid]);
4773
- break;
4774
- }
4775
- case 'html': {
4776
- isChange = isChangeHTMLElementResource(beforeMap[uuid], afterMap[uuid]);
4777
- break;
4778
- }
4779
- }
4780
- if (isChange === true) {
4781
- uuids.push(uuid);
4782
- }
4783
- }
4784
- else {
4785
- uuids.push(uuid);
4786
- }
4787
- }
4788
- return uuids;
4789
- }
4790
- function parseDataElementMap(data) {
4791
- var elemMap = {};
4792
- data.elements.forEach(function (elem) {
4793
- elemMap[elem.uuid] = elem;
4794
- });
4795
- return elemMap;
4796
- }
4797
-
4798
- function limitNum(num) {
4799
- var numStr = num.toFixed(2);
4800
- return parseFloat(numStr);
4271
+ function limitNum(num) {
4272
+ var numStr = num.toFixed(2);
4273
+ return parseFloat(numStr);
4801
4274
  }
4802
4275
  function limitAngle(angle) {
4803
4276
  return limitNum(angle % 360);
@@ -5192,7 +4665,7 @@ var iDrawCore = (function () {
5192
4665
  }
5193
4666
 
5194
4667
  var limitQbliqueAngle = LIMIT_QBLIQUE_ANGLE;
5195
- var deepClone$4 = index$1.data.deepClone;
4668
+ var deepClone$3 = index$1.data.deepClone;
5196
4669
  var Helper = (function () {
5197
4670
  function Helper(board, config) {
5198
4671
  this._areaStart = { x: 0, y: 0 };
@@ -5210,7 +4683,7 @@ var iDrawCore = (function () {
5210
4683
  this._updateSelectedElementListWrapper(data, opts);
5211
4684
  };
5212
4685
  Helper.prototype.getConfig = function () {
5213
- return deepClone$4(this._helperConfig);
4686
+ return deepClone$3(this._helperConfig);
5214
4687
  };
5215
4688
  Helper.prototype.getElementIndexByUUID = function (uuid) {
5216
4689
  var index = this._helperConfig.elementIndexMap[uuid];
@@ -5543,299 +5016,8 @@ var iDrawCore = (function () {
5543
5016
  return Helper;
5544
5017
  }());
5545
5018
 
5546
- var LoaderEvent = (function () {
5547
- function LoaderEvent() {
5548
- this._listeners = new Map();
5549
- }
5550
- LoaderEvent.prototype.on = function (eventKey, callback) {
5551
- if (this._listeners.has(eventKey)) {
5552
- var callbacks = this._listeners.get(eventKey);
5553
- callbacks === null || callbacks === void 0 ? void 0 : callbacks.push(callback);
5554
- this._listeners.set(eventKey, callbacks || []);
5555
- }
5556
- else {
5557
- this._listeners.set(eventKey, [callback]);
5558
- }
5559
- };
5560
- LoaderEvent.prototype.off = function (eventKey, callback) {
5561
- if (this._listeners.has(eventKey)) {
5562
- var callbacks = this._listeners.get(eventKey);
5563
- if (Array.isArray(callbacks)) {
5564
- for (var i = 0; i < (callbacks === null || callbacks === void 0 ? void 0 : callbacks.length); i++) {
5565
- if (callbacks[i] === callback) {
5566
- callbacks.splice(i, 1);
5567
- break;
5568
- }
5569
- }
5570
- }
5571
- this._listeners.set(eventKey, callbacks || []);
5572
- }
5573
- };
5574
- LoaderEvent.prototype.trigger = function (eventKey, arg) {
5575
- var callbacks = this._listeners.get(eventKey);
5576
- if (Array.isArray(callbacks)) {
5577
- callbacks.forEach(function (cb) {
5578
- cb(arg);
5579
- });
5580
- return true;
5581
- }
5582
- else {
5583
- return false;
5584
- }
5585
- };
5586
- LoaderEvent.prototype.has = function (name) {
5587
- if (this._listeners.has(name)) {
5588
- var list = this._listeners.get(name);
5589
- if (Array.isArray(list) && list.length > 0) {
5590
- return true;
5591
- }
5592
- }
5593
- return false;
5594
- };
5595
- return LoaderEvent;
5596
- }());
5597
-
5598
- function filterScript(html) {
5599
- return html.replace(/<script[\s\S]*?<\/script>/ig, '');
5600
- }
5601
-
5602
- var _a = index$1.loader, loadImage = _a.loadImage, loadSVG = _a.loadSVG, loadHTML = _a.loadHTML;
5603
- var LoaderStatus;
5604
- (function (LoaderStatus) {
5605
- LoaderStatus["FREE"] = "free";
5606
- LoaderStatus["LOADING"] = "loading";
5607
- LoaderStatus["COMPLETE"] = "complete";
5608
- })(LoaderStatus || (LoaderStatus = {}));
5609
- var Loader = (function () {
5610
- function Loader(opts) {
5611
- this._currentLoadData = {};
5612
- this._currentUUIDQueue = [];
5613
- this._storageLoadData = {};
5614
- this._status = LoaderStatus.FREE;
5615
- this._waitingLoadQueue = [];
5616
- this._opts = opts;
5617
- this._event = new LoaderEvent();
5618
- this._waitingLoadQueue = [];
5619
- }
5620
- Loader.prototype.load = function (data, changeResourceUUIDs) {
5621
- var _a = this._resetLoadData(data, changeResourceUUIDs), uuidQueue = _a[0], loadData = _a[1];
5622
- if (this._status === LoaderStatus.FREE || this._status === LoaderStatus.COMPLETE) {
5623
- this._currentUUIDQueue = uuidQueue;
5624
- this._currentLoadData = loadData;
5625
- this._loadTask();
5626
- }
5627
- else if (this._status === LoaderStatus.LOADING && uuidQueue.length > 0) {
5628
- this._waitingLoadQueue.push({
5629
- uuidQueue: uuidQueue,
5630
- loadData: loadData,
5631
- });
5632
- }
5633
- };
5634
- Loader.prototype.on = function (name, callback) {
5635
- this._event.on(name, callback);
5636
- };
5637
- Loader.prototype.off = function (name, callback) {
5638
- this._event.off(name, callback);
5639
- };
5640
- Loader.prototype.isComplete = function () {
5641
- return this._status === LoaderStatus.COMPLETE;
5642
- };
5643
- Loader.prototype.getContent = function (uuid) {
5644
- var _a;
5645
- if (((_a = this._storageLoadData[uuid]) === null || _a === void 0 ? void 0 : _a.status) === 'loaded') {
5646
- return this._storageLoadData[uuid].content;
5647
- }
5648
- return null;
5649
- };
5650
- Loader.prototype._resetLoadData = function (data, changeResourceUUIDs) {
5651
- var loadData = {};
5652
- var uuidQueue = [];
5653
- var storageLoadData = this._storageLoadData;
5654
- for (var i = data.elements.length - 1; i >= 0; i--) {
5655
- var elem = data.elements[i];
5656
- if (['image', 'svg', 'html',].includes(elem.type)) {
5657
- if (!storageLoadData[elem.uuid]) {
5658
- loadData[elem.uuid] = this._createEmptyLoadItem(elem);
5659
- uuidQueue.push(elem.uuid);
5660
- }
5661
- else {
5662
- if (changeResourceUUIDs.includes(elem.uuid)) {
5663
- loadData[elem.uuid] = this._createEmptyLoadItem(elem);
5664
- uuidQueue.push(elem.uuid);
5665
- }
5666
- }
5667
- }
5668
- }
5669
- return [uuidQueue, loadData];
5670
- };
5671
- Loader.prototype._createEmptyLoadItem = function (elem) {
5672
- var source = '';
5673
- var type = elem.type;
5674
- var elemW = elem.w;
5675
- var elemH = elem.h;
5676
- if (elem.type === 'image') {
5677
- var _elem = elem;
5678
- source = _elem.desc.src || '';
5679
- }
5680
- else if (elem.type === 'svg') {
5681
- var _elem = elem;
5682
- source = _elem.desc.svg || '';
5683
- }
5684
- else if (elem.type === 'html') {
5685
- var _elem = elem;
5686
- source = filterScript(_elem.desc.html || '');
5687
- elemW = _elem.desc.width || elem.w;
5688
- elemH = _elem.desc.height || elem.h;
5689
- }
5690
- return {
5691
- type: type,
5692
- status: 'null',
5693
- content: null,
5694
- source: source,
5695
- elemW: elemW,
5696
- elemH: elemH,
5697
- };
5698
- };
5699
- Loader.prototype._loadTask = function () {
5700
- var _this = this;
5701
- if (this._status === LoaderStatus.LOADING) {
5702
- return;
5703
- }
5704
- this._status = LoaderStatus.LOADING;
5705
- if (this._currentUUIDQueue.length === 0) {
5706
- if (this._waitingLoadQueue.length === 0) {
5707
- this._status = LoaderStatus.COMPLETE;
5708
- this._event.trigger('complete', undefined);
5709
- return;
5710
- }
5711
- else {
5712
- var waitingItem = this._waitingLoadQueue.shift();
5713
- if (waitingItem) {
5714
- var uuidQueue = waitingItem.uuidQueue, loadData = waitingItem.loadData;
5715
- this._currentLoadData = loadData;
5716
- this._currentUUIDQueue = uuidQueue;
5717
- }
5718
- }
5719
- }
5720
- var maxParallelNum = this._opts.maxParallelNum;
5721
- var uuids = this._currentUUIDQueue.splice(0, maxParallelNum);
5722
- var uuidMap = {};
5723
- uuids.forEach(function (url, i) {
5724
- uuidMap[url] = i;
5725
- });
5726
- var loadUUIDList = [];
5727
- var _loadAction = function () {
5728
- if (loadUUIDList.length >= maxParallelNum) {
5729
- return false;
5730
- }
5731
- if (uuids.length === 0) {
5732
- return true;
5733
- }
5734
- var _loop_1 = function (i) {
5735
- var uuid = uuids.shift();
5736
- if (uuid === undefined) {
5737
- return "break";
5738
- }
5739
- loadUUIDList.push(uuid);
5740
- _this._loadElementSource(_this._currentLoadData[uuid]).then(function (image) {
5741
- loadUUIDList.splice(loadUUIDList.indexOf(uuid), 1);
5742
- var status = _loadAction();
5743
- _this._storageLoadData[uuid] = {
5744
- type: _this._currentLoadData[uuid].type,
5745
- status: 'loaded',
5746
- content: image,
5747
- source: _this._currentLoadData[uuid].source,
5748
- elemW: _this._currentLoadData[uuid].elemW,
5749
- elemH: _this._currentLoadData[uuid].elemH,
5750
- };
5751
- if (loadUUIDList.length === 0 && uuids.length === 0 && status === true) {
5752
- _this._status = LoaderStatus.FREE;
5753
- _this._loadTask();
5754
- }
5755
- _this._event.trigger('load', {
5756
- type: _this._storageLoadData[uuid].type,
5757
- status: _this._storageLoadData[uuid].status,
5758
- content: _this._storageLoadData[uuid].content,
5759
- source: _this._storageLoadData[uuid].source,
5760
- elemW: _this._storageLoadData[uuid].elemW,
5761
- elemH: _this._storageLoadData[uuid].elemH,
5762
- });
5763
- }).catch(function (err) {
5764
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
5765
- console.warn(err);
5766
- loadUUIDList.splice(loadUUIDList.indexOf(uuid), 1);
5767
- var status = _loadAction();
5768
- if (_this._currentLoadData[uuid]) {
5769
- _this._storageLoadData[uuid] = {
5770
- type: (_a = _this._currentLoadData[uuid]) === null || _a === void 0 ? void 0 : _a.type,
5771
- status: 'fail',
5772
- content: null,
5773
- error: err,
5774
- source: (_b = _this._currentLoadData[uuid]) === null || _b === void 0 ? void 0 : _b.source,
5775
- elemW: (_c = _this._currentLoadData[uuid]) === null || _c === void 0 ? void 0 : _c.elemW,
5776
- elemH: (_d = _this._currentLoadData[uuid]) === null || _d === void 0 ? void 0 : _d.elemH,
5777
- };
5778
- }
5779
- if (loadUUIDList.length === 0 && uuids.length === 0 && status === true) {
5780
- _this._status = LoaderStatus.FREE;
5781
- _this._loadTask();
5782
- }
5783
- if (_this._currentLoadData[uuid]) {
5784
- _this._event.trigger('error', {
5785
- type: (_e = _this._storageLoadData[uuid]) === null || _e === void 0 ? void 0 : _e.type,
5786
- status: (_f = _this._storageLoadData[uuid]) === null || _f === void 0 ? void 0 : _f.status,
5787
- content: (_g = _this._storageLoadData[uuid]) === null || _g === void 0 ? void 0 : _g.content,
5788
- source: (_h = _this._storageLoadData[uuid]) === null || _h === void 0 ? void 0 : _h.source,
5789
- elemW: (_j = _this._storageLoadData[uuid]) === null || _j === void 0 ? void 0 : _j.elemW,
5790
- elemH: (_k = _this._storageLoadData[uuid]) === null || _k === void 0 ? void 0 : _k.elemH,
5791
- });
5792
- }
5793
- });
5794
- };
5795
- for (var i = loadUUIDList.length; i < maxParallelNum; i++) {
5796
- var state_1 = _loop_1();
5797
- if (state_1 === "break")
5798
- break;
5799
- }
5800
- return false;
5801
- };
5802
- _loadAction();
5803
- };
5804
- Loader.prototype._loadElementSource = function (params) {
5805
- return __awaiter$4(this, void 0, void 0, function () {
5806
- var image, image, image;
5807
- return __generator$4(this, function (_a) {
5808
- switch (_a.label) {
5809
- case 0:
5810
- if (!(params && params.type === 'image')) return [3, 2];
5811
- return [4, loadImage(params.source)];
5812
- case 1:
5813
- image = _a.sent();
5814
- return [2, image];
5815
- case 2:
5816
- if (!(params && params.type === 'svg')) return [3, 4];
5817
- return [4, loadSVG(params.source)];
5818
- case 3:
5819
- image = _a.sent();
5820
- return [2, image];
5821
- case 4:
5822
- if (!(params && params.type === 'html')) return [3, 6];
5823
- return [4, loadHTML(params.source, {
5824
- width: params.elemW, height: params.elemH
5825
- })];
5826
- case 5:
5827
- image = _a.sent();
5828
- return [2, image];
5829
- case 6: throw Error('Element\'s source is not support!');
5830
- }
5831
- });
5832
- });
5833
- };
5834
- return Loader;
5835
- }());
5836
-
5837
5019
  var _board$1 = Symbol('_displayCtx');
5838
- var _helper$1 = Symbol('_helper');
5020
+ var _helper = Symbol('_helper');
5839
5021
  var _element$1 = Symbol('_element');
5840
5022
  var _opts$1 = Symbol('_opts');
5841
5023
  var Mapper = (function () {
@@ -5843,7 +5025,7 @@ var iDrawCore = (function () {
5843
5025
  this[_opts$1] = opts;
5844
5026
  this[_board$1] = this[_opts$1].board;
5845
5027
  this[_element$1] = this[_opts$1].element;
5846
- this[_helper$1] = this[_opts$1].helper;
5028
+ this[_helper] = this[_opts$1].helper;
5847
5029
  }
5848
5030
  Mapper.prototype.isEffectivePoint = function (p) {
5849
5031
  var scrollLineWidth = this[_board$1].getScrollLineWidth();
@@ -5859,7 +5041,7 @@ var iDrawCore = (function () {
5859
5041
  if (!this.isEffectivePoint(p)) {
5860
5042
  return { cursor: cursor, elementUUID: elementUUID };
5861
5043
  }
5862
- var _a = this[_helper$1].isPointInElementWrapperController(p, data), uuid = _a.uuid, hoverControllerDirection = _a.hoverControllerDirection;
5044
+ var _a = this[_helper].isPointInElementWrapperController(p, data), uuid = _a.uuid, hoverControllerDirection = _a.hoverControllerDirection;
5863
5045
  var direction = hoverControllerDirection;
5864
5046
  if (uuid && direction) {
5865
5047
  switch (direction) {
@@ -5946,198 +5128,19 @@ var iDrawCore = (function () {
5946
5128
  return false;
5947
5129
  }
5948
5130
  return true;
5949
- }
5950
- function isNumber(num) {
5951
- return (num >= 0 || num < 0);
5952
- }
5953
-
5954
- var RendererEvent = (function () {
5955
- function RendererEvent() {
5956
- this._listeners = new Map();
5957
- }
5958
- RendererEvent.prototype.on = function (eventKey, callback) {
5959
- if (this._listeners.has(eventKey)) {
5960
- var callbacks = this._listeners.get(eventKey);
5961
- callbacks === null || callbacks === void 0 ? void 0 : callbacks.push(callback);
5962
- this._listeners.set(eventKey, callbacks || []);
5963
- }
5964
- else {
5965
- this._listeners.set(eventKey, [callback]);
5966
- }
5967
- };
5968
- RendererEvent.prototype.off = function (eventKey, callback) {
5969
- if (this._listeners.has(eventKey)) {
5970
- var callbacks = this._listeners.get(eventKey);
5971
- if (Array.isArray(callbacks)) {
5972
- for (var i = 0; i < (callbacks === null || callbacks === void 0 ? void 0 : callbacks.length); i++) {
5973
- if (callbacks[i] === callback) {
5974
- callbacks.splice(i, 1);
5975
- break;
5976
- }
5977
- }
5978
- }
5979
- this._listeners.set(eventKey, callbacks || []);
5980
- }
5981
- };
5982
- RendererEvent.prototype.trigger = function (eventKey, arg) {
5983
- var callbacks = this._listeners.get(eventKey);
5984
- if (Array.isArray(callbacks)) {
5985
- callbacks.forEach(function (cb) {
5986
- cb(arg);
5987
- });
5988
- return true;
5989
- }
5990
- else {
5991
- return false;
5992
- }
5993
- };
5994
- RendererEvent.prototype.has = function (name) {
5995
- if (this._listeners.has(name)) {
5996
- var list = this._listeners.get(name);
5997
- if (Array.isArray(list) && list.length > 0) {
5998
- return true;
5999
- }
6000
- }
6001
- return false;
6002
- };
6003
- return RendererEvent;
6004
- }());
6005
-
6006
- var requestAnimationFrame = window.requestAnimationFrame;
6007
- var deepClone$3 = index$1.data.deepClone;
6008
- var DrawStatus;
6009
- (function (DrawStatus) {
6010
- DrawStatus["NULL"] = "null";
6011
- DrawStatus["FREE"] = "free";
6012
- DrawStatus["DRAWING"] = "drawing";
6013
- DrawStatus["FREEZE"] = "freeze";
6014
- })(DrawStatus || (DrawStatus = {}));
6015
- ((function (_super) {
6016
- __extends$1(Renderer, _super);
6017
- function Renderer(board) {
6018
- var _this = _super.call(this) || this;
6019
- _this._queue = [];
6020
- _this._status = DrawStatus.NULL;
6021
- _this._board = board;
6022
- _this._loader = new Loader({
6023
- board: board,
6024
- maxParallelNum: 6
6025
- });
6026
- _this._loader.on('load', function (res) {
6027
- _this._drawFrame();
6028
- });
6029
- _this._loader.on('error', function (res) {
6030
- console.log('Loader Error: ', res);
6031
- });
6032
- _this._loader.on('complete', function (res) {
6033
- });
6034
- return _this;
6035
- }
6036
- Renderer.prototype.freeze = function () {
6037
- this._status = DrawStatus.FREEZE;
6038
- };
6039
- Renderer.prototype.thaw = function () {
6040
- this._status = DrawStatus.FREE;
6041
- };
6042
- Renderer.prototype.render = function (data, helper, changeResourceUUIDs) {
6043
- if ([DrawStatus.FREEZE].includes(this._status)) {
6044
- return;
6045
- }
6046
- var _data = deepClone$3({ data: data, helper: helper });
6047
- this._queue.push(_data);
6048
- if (this._status !== DrawStatus.DRAWING) {
6049
- this._status = DrawStatus.DRAWING;
6050
- this._drawFrame();
6051
- }
6052
- this._loader.load(data, changeResourceUUIDs);
6053
- };
6054
- Renderer.prototype._drawFrame = function () {
6055
- var _this = this;
6056
- if (this._status === DrawStatus.FREEZE) {
6057
- return;
6058
- }
6059
- requestAnimationFrame(function () {
6060
- if (_this._status === DrawStatus.FREEZE) {
6061
- return;
6062
- }
6063
- var ctx = _this._board.getContext();
6064
- var item = _this._queue[0];
6065
- var isLastFrame = false;
6066
- if (_this._queue.length > 1) {
6067
- item = _this._queue.shift();
6068
- }
6069
- else {
6070
- isLastFrame = true;
6071
- }
6072
- if (_this._loader.isComplete() !== true) {
6073
- _this._drawFrame();
6074
- if (item) {
6075
- drawContext(ctx, item.data, item.helper, _this._loader);
6076
- _this._board.draw();
6077
- }
6078
- }
6079
- else if (item) {
6080
- drawContext(ctx, item.data, item.helper, _this._loader);
6081
- _this._board.draw();
6082
- _this._retainQueueOneItem();
6083
- if (!isLastFrame) {
6084
- _this._drawFrame();
6085
- }
6086
- else {
6087
- _this._status = DrawStatus.FREE;
6088
- }
6089
- }
6090
- else {
6091
- _this._status = DrawStatus.FREE;
6092
- }
6093
- _this.trigger('drawFrame', undefined);
6094
- if (_this._loader.isComplete() === true && _this._queue.length === 1 && _this._status === DrawStatus.FREE) {
6095
- _this.trigger('drawFrameComplete', undefined);
6096
- _this.freeze();
6097
- }
6098
- });
6099
- };
6100
- Renderer.prototype._retainQueueOneItem = function () {
6101
- if (this._queue.length <= 1) {
6102
- return;
6103
- }
6104
- var lastOne = deepClone$3(this._queue[this._queue.length - 1]);
6105
- this._queue = [lastOne];
6106
- };
6107
- return Renderer;
6108
- })(RendererEvent));
6109
-
6110
- var Mode;
6111
- (function (Mode) {
6112
- Mode["NULL"] = "null";
6113
- Mode["SELECT_ELEMENT"] = "select-element";
6114
- Mode["SELECT_ELEMENT_LIST"] = "select-element-list";
6115
- Mode["SELECT_ELEMENT_WRAPPER_CONTROLLER"] = "select-element-wrapper-controller";
6116
- Mode["SELECT_AREA"] = "select-area";
6117
- })(Mode || (Mode = {}));
6118
- var CursorStatus;
6119
- (function (CursorStatus) {
6120
- CursorStatus["DRAGGING"] = "dragging";
6121
- CursorStatus["NULL"] = "null";
6122
- })(CursorStatus || (CursorStatus = {}));
6123
-
6124
- function createData() {
6125
- return {
6126
- onlyRender: false,
6127
- hasInited: false,
6128
- mode: Mode.NULL,
6129
- cursorStatus: CursorStatus.NULL,
6130
- selectedUUID: null,
6131
- selectedUUIDList: [],
6132
- hoverUUID: null,
6133
- selectedControllerDirection: null,
6134
- hoverControllerDirection: null,
6135
- prevPoint: null,
5131
+ }
5132
+ function isNumber(num) {
5133
+ return (num >= 0 || num < 0);
5134
+ }
5135
+
5136
+ function createData$1() {
5137
+ return {
5138
+ hasInited: false,
6136
5139
  };
6137
5140
  }
6138
- var TempData = (function () {
5141
+ var TempData$1 = (function () {
6139
5142
  function TempData() {
6140
- this._temp = createData();
5143
+ this._temp = createData$1();
6141
5144
  }
6142
5145
  TempData.prototype.set = function (name, value) {
6143
5146
  this._temp[name] = value;
@@ -6146,7 +5149,7 @@ var iDrawCore = (function () {
6146
5149
  return this._temp[name];
6147
5150
  };
6148
5151
  TempData.prototype.clear = function () {
6149
- this._temp = createData();
5152
+ this._temp = createData$1();
6150
5153
  };
6151
5154
  return TempData;
6152
5155
  }());
@@ -6157,30 +5160,42 @@ var iDrawCore = (function () {
6157
5160
  var _config = Symbol('_config');
6158
5161
  var _renderer = Symbol('_renderer');
6159
5162
  var _element = Symbol('_element');
6160
- var _helper = Symbol('_helper');
6161
5163
  var _tempData = Symbol('_tempData');
6162
5164
  var _draw = Symbol('_draw');
6163
5165
  var _coreEvent = Symbol('_coreEvent');
6164
- var _mapper = Symbol('_mapper');
6165
5166
  var _emitChangeScreen = Symbol('_emitChangeScreen');
6166
5167
  var _emitChangeData = Symbol('_emitChangeData');
6167
- var _todo = Symbol('_todo');
5168
+ var _engine = Symbol('_engine');
5169
+
5170
+ var Mode;
5171
+ (function (Mode) {
5172
+ Mode["NULL"] = "null";
5173
+ Mode["SELECT_ELEMENT"] = "select-element";
5174
+ Mode["SELECT_ELEMENT_LIST"] = "select-element-list";
5175
+ Mode["SELECT_ELEMENT_WRAPPER_CONTROLLER"] = "select-element-wrapper-controller";
5176
+ Mode["SELECT_AREA"] = "select-area";
5177
+ })(Mode || (Mode = {}));
5178
+ var CursorStatus;
5179
+ (function (CursorStatus) {
5180
+ CursorStatus["DRAGGING"] = "dragging";
5181
+ CursorStatus["NULL"] = "null";
5182
+ })(CursorStatus || (CursorStatus = {}));
6168
5183
 
6169
5184
  var deepClone$2 = index$1.data.deepClone;
6170
5185
  var createUUID = index$1.uuid.createUUID;
6171
5186
  function getSelectedElements(core) {
6172
5187
  var elems = [];
6173
5188
  var list = [];
6174
- var uuid = core[_tempData].get('selectedUUID');
5189
+ var uuid = core[_engine].temp.get('selectedUUID');
6175
5190
  if (typeof uuid === 'string' && uuid) {
6176
5191
  list.push(uuid);
6177
5192
  }
6178
5193
  else {
6179
- list = core[_tempData].get('selectedUUIDList');
5194
+ list = core[_engine].temp.get('selectedUUIDList');
6180
5195
  }
6181
5196
  list.forEach(function (uuid) {
6182
5197
  var _a;
6183
- var index = core[_helper].getElementIndexByUUID(uuid);
5198
+ var index = core[_engine].helper.getElementIndexByUUID(uuid);
6184
5199
  if (index !== null && index >= 0) {
6185
5200
  var elem = (_a = core[_data]) === null || _a === void 0 ? void 0 : _a.elements[index];
6186
5201
  if (elem)
@@ -6191,7 +5206,7 @@ var iDrawCore = (function () {
6191
5206
  }
6192
5207
  function getElement(core, uuid) {
6193
5208
  var elem = null;
6194
- var index = core[_helper].getElementIndexByUUID(uuid);
5209
+ var index = core[_engine].helper.getElementIndexByUUID(uuid);
6195
5210
  if (index !== null && core[_data].elements[index]) {
6196
5211
  elem = deepClone$2(core[_data].elements[index]);
6197
5212
  }
@@ -6223,33 +5238,29 @@ var iDrawCore = (function () {
6223
5238
  core[_draw]({ resourceChangeUUIDs: resourceChangeUUIDs });
6224
5239
  }
6225
5240
  function selectElementByIndex(core, index, opts) {
6226
- if (core[_tempData].get('onlyRender') === true)
6227
- return;
6228
5241
  if (core[_data].elements[index]) {
6229
5242
  var uuid = core[_data].elements[index].uuid;
6230
5243
  if ((opts === null || opts === void 0 ? void 0 : opts.useMode) === true) {
6231
- core[_tempData].set('mode', Mode.SELECT_ELEMENT);
5244
+ core[_engine].temp.set('mode', Mode.SELECT_ELEMENT);
6232
5245
  }
6233
5246
  else {
6234
- core[_tempData].set('mode', Mode.NULL);
5247
+ core[_engine].temp.set('mode', Mode.NULL);
6235
5248
  }
6236
5249
  if (typeof uuid === 'string') {
6237
- core[_tempData].set('selectedUUID', uuid);
6238
- core[_tempData].set('selectedUUIDList', []);
5250
+ core[_engine].temp.set('selectedUUID', uuid);
5251
+ core[_engine].temp.set('selectedUUIDList', []);
6239
5252
  }
6240
5253
  core[_draw]();
6241
5254
  }
6242
5255
  }
6243
5256
  function selectElement(core, uuid, opts) {
6244
- if (core[_tempData].get('onlyRender') === true)
6245
- return;
6246
- var index = core[_helper].getElementIndexByUUID(uuid);
5257
+ var index = core[_engine].helper.getElementIndexByUUID(uuid);
6247
5258
  if (typeof index === 'number' && index >= 0) {
6248
5259
  core.selectElementByIndex(index, opts);
6249
5260
  }
6250
5261
  }
6251
5262
  function moveUpElement(core, uuid) {
6252
- var index = core[_helper].getElementIndexByUUID(uuid);
5263
+ var index = core[_engine].helper.getElementIndexByUUID(uuid);
6253
5264
  if (typeof index === 'number' && index >= 0 && index < core[_data].elements.length - 1) {
6254
5265
  var temp = core[_data].elements[index];
6255
5266
  core[_data].elements[index] = core[_data].elements[index + 1];
@@ -6259,7 +5270,7 @@ var iDrawCore = (function () {
6259
5270
  core[_draw]();
6260
5271
  }
6261
5272
  function moveDownElement(core, uuid) {
6262
- var index = core[_helper].getElementIndexByUUID(uuid);
5273
+ var index = core[_engine].helper.getElementIndexByUUID(uuid);
6263
5274
  if (typeof index === 'number' && index > 0 && index < core[_data].elements.length) {
6264
5275
  var temp = core[_data].elements[index];
6265
5276
  core[_data].elements[index] = core[_data].elements[index - 1];
@@ -6285,7 +5296,7 @@ var iDrawCore = (function () {
6285
5296
  }
6286
5297
  }
6287
5298
  function insertElementBefore(core, elem, beforeUUID) {
6288
- var index = core[_helper].getElementIndexByUUID(beforeUUID);
5299
+ var index = core[_engine].helper.getElementIndexByUUID(beforeUUID);
6289
5300
  if (index !== null) {
6290
5301
  return core.insertElementBeforeIndex(elem, index);
6291
5302
  }
@@ -6303,7 +5314,7 @@ var iDrawCore = (function () {
6303
5314
  return null;
6304
5315
  }
6305
5316
  function insertElementAfter(core, elem, beforeUUID) {
6306
- var index = core[_helper].getElementIndexByUUID(beforeUUID);
5317
+ var index = core[_engine].helper.getElementIndexByUUID(beforeUUID);
6307
5318
  if (index !== null) {
6308
5319
  return core.insertElementAfterIndex(elem, index);
6309
5320
  }
@@ -6321,168 +5332,241 @@ var iDrawCore = (function () {
6321
5332
  return null;
6322
5333
  }
6323
5334
 
5335
+ function createData() {
5336
+ return {
5337
+ hasInited: false,
5338
+ mode: Mode.NULL,
5339
+ cursorStatus: CursorStatus.NULL,
5340
+ selectedUUID: null,
5341
+ selectedUUIDList: [],
5342
+ hoverUUID: null,
5343
+ selectedControllerDirection: null,
5344
+ hoverControllerDirection: null,
5345
+ prevPoint: null,
5346
+ };
5347
+ }
5348
+ var TempData = (function () {
5349
+ function TempData() {
5350
+ this._temp = createData();
5351
+ }
5352
+ TempData.prototype.set = function (name, value) {
5353
+ this._temp[name] = value;
5354
+ };
5355
+ TempData.prototype.get = function (name) {
5356
+ return this._temp[name];
5357
+ };
5358
+ TempData.prototype.clear = function () {
5359
+ this._temp = createData();
5360
+ };
5361
+ return TempData;
5362
+ }());
5363
+
6324
5364
  var time = index$1.time;
6325
5365
  var deepClone$1 = index$1.data.deepClone;
6326
- function initEvent(core) {
6327
- if (core[_tempData].get('hasInited') === true) {
6328
- return;
6329
- }
6330
- core[_board].on('hover', time.throttle(handleHover(core), 32));
6331
- core[_board].on('leave', time.throttle(handleLeave(core), 32));
6332
- core[_board].on('point', time.throttle(handleClick(core), 16));
6333
- core[_board].on('doubleClick', handleDoubleClick(core));
6334
- if (core[_tempData].get('onlyRender') === true) {
6335
- return;
5366
+ var Engine = (function () {
5367
+ function Engine(opts) {
5368
+ this._plugins = [];
5369
+ var board = opts.board, config = opts.config, element = opts.element;
5370
+ var helper = new Helper(board, config);
5371
+ this._opts = opts;
5372
+ this.temp = new TempData();
5373
+ this.helper = helper;
5374
+ this._mapper = new Mapper({ board: board, helper: helper, element: element });
6336
5375
  }
6337
- core[_board].on('point', handlePoint(core));
6338
- core[_board].on('moveStart', handleMoveStart(core));
6339
- core[_board].on('move', time.throttle(handleMove(core), 16));
6340
- core[_board].on('moveEnd', handleMoveEnd(core));
6341
- core[_renderer].on('drawFrame', function () {
6342
- core[_coreEvent].trigger('drawFrame', undefined);
6343
- });
6344
- core[_renderer].on('drawFrameComplete', function () {
6345
- core[_coreEvent].trigger('drawFrameComplete', undefined);
6346
- });
6347
- core[_tempData].set('hasInited', true);
6348
- }
6349
- function handleDoubleClick(core) {
6350
- return function (point) {
5376
+ Engine.prototype.addPlugin = function (plugin) {
5377
+ this._plugins.push(plugin);
5378
+ };
5379
+ Engine.prototype.getHelperConfig = function () {
5380
+ return this.helper.getConfig();
5381
+ };
5382
+ Engine.prototype.updateHelperConfig = function (opts) {
5383
+ var _a;
5384
+ var _b = this._opts, board = _b.board, getDataFeekback = _b.getDataFeekback, config = _b.config;
5385
+ var data = getDataFeekback();
5386
+ var transform = board.getTransform();
5387
+ this.helper.updateConfig(data, {
5388
+ width: opts.width,
5389
+ height: opts.height,
5390
+ devicePixelRatio: opts.devicePixelRatio,
5391
+ canScroll: ((_a = config === null || config === void 0 ? void 0 : config.scrollWrapper) === null || _a === void 0 ? void 0 : _a.use) === true,
5392
+ selectedUUID: this.temp.get('selectedUUID'),
5393
+ selectedUUIDList: this.temp.get('selectedUUIDList'),
5394
+ scale: transform.scale,
5395
+ scrollX: transform.scrollX,
5396
+ scrollY: transform.scrollY,
5397
+ });
5398
+ };
5399
+ Engine.prototype.init = function () {
5400
+ this._initEvent();
5401
+ };
5402
+ Engine.prototype._initEvent = function () {
5403
+ if (this.temp.get('hasInited') === true) {
5404
+ return;
5405
+ }
5406
+ var board = this._opts.board;
5407
+ board.on('hover', time.throttle(this._handleHover.bind(this), 32));
5408
+ board.on('leave', time.throttle(this._handleLeave.bind(this), 32));
5409
+ board.on('point', time.throttle(this._handleClick.bind(this), 16));
5410
+ board.on('doubleClick', this._handleDoubleClick.bind(this));
5411
+ board.on('point', this._handlePoint.bind(this));
5412
+ board.on('moveStart', this._handleMoveStart.bind(this));
5413
+ board.on('move', time.throttle(this._handleMove.bind(this), 16));
5414
+ board.on('moveEnd', this._handleMoveEnd.bind(this));
5415
+ };
5416
+ Engine.prototype._handleDoubleClick = function (point) {
6351
5417
  var _a, _b, _c;
6352
- var _d = core[_element].isPointInElement(point, core[_data]), index = _d[0], uuid = _d[1];
5418
+ var _d = this._opts, element = _d.element, getDataFeekback = _d.getDataFeekback, drawFeekback = _d.drawFeekback, coreEvent = _d.coreEvent;
5419
+ var data = getDataFeekback();
5420
+ var _e = element.isPointInElement(point, data), index = _e[0], uuid = _e[1];
6353
5421
  if (index >= 0 && uuid) {
6354
- var elem = deepClone$1((_a = core[_data].elements) === null || _a === void 0 ? void 0 : _a[index]);
5422
+ var elem = deepClone$1((_a = data.elements) === null || _a === void 0 ? void 0 : _a[index]);
6355
5423
  if (((_b = elem === null || elem === void 0 ? void 0 : elem.operation) === null || _b === void 0 ? void 0 : _b.invisible) !== true) {
6356
- core[_coreEvent].trigger('screenDoubleClickElement', { index: index, uuid: uuid, element: deepClone$1((_c = core[_data].elements) === null || _c === void 0 ? void 0 : _c[index]) });
5424
+ coreEvent.trigger('screenDoubleClickElement', { index: index, uuid: uuid, element: deepClone$1((_c = data.elements) === null || _c === void 0 ? void 0 : _c[index]) });
6357
5425
  }
6358
5426
  }
6359
- core[_draw]();
5427
+ drawFeekback();
6360
5428
  };
6361
- }
6362
- function handlePoint(core) {
6363
- return function (point) {
5429
+ Engine.prototype._handlePoint = function (point) {
6364
5430
  var _a, _b, _c;
6365
- if (!core[_mapper].isEffectivePoint(point)) {
5431
+ if (!this._mapper.isEffectivePoint(point)) {
6366
5432
  return;
6367
5433
  }
6368
- if (core[_helper].isPointInElementList(point, core[_data])) {
6369
- core[_tempData].set('mode', Mode.SELECT_ELEMENT_LIST);
5434
+ var _d = this._opts, element = _d.element, getDataFeekback = _d.getDataFeekback, selectElementByIndex = _d.selectElementByIndex, coreEvent = _d.coreEvent, emitChangeScreen = _d.emitChangeScreen, drawFeekback = _d.drawFeekback;
5435
+ var helper = this.helper;
5436
+ var data = getDataFeekback();
5437
+ if (helper.isPointInElementList(point, data)) {
5438
+ this.temp.set('mode', Mode.SELECT_ELEMENT_LIST);
6370
5439
  }
6371
5440
  else {
6372
- var _d = core[_helper].isPointInElementWrapperController(point, core[_data]), uuid = _d.uuid, selectedControllerDirection = _d.selectedControllerDirection;
5441
+ var _e = helper.isPointInElementWrapperController(point, data), uuid = _e.uuid, selectedControllerDirection = _e.selectedControllerDirection;
6373
5442
  if (uuid && selectedControllerDirection) {
6374
- core[_tempData].set('mode', Mode.SELECT_ELEMENT_WRAPPER_CONTROLLER);
6375
- core[_tempData].set('selectedControllerDirection', selectedControllerDirection);
6376
- core[_tempData].set('selectedUUID', uuid);
5443
+ this.temp.set('mode', Mode.SELECT_ELEMENT_WRAPPER_CONTROLLER);
5444
+ this.temp.set('selectedControllerDirection', selectedControllerDirection);
5445
+ this.temp.set('selectedUUID', uuid);
6377
5446
  }
6378
5447
  else {
6379
- var _e = core[_element].isPointInElement(point, core[_data]), index = _e[0], uuid_1 = _e[1];
6380
- if (index >= 0 && ((_b = (_a = core[_data].elements[index]) === null || _a === void 0 ? void 0 : _a.operation) === null || _b === void 0 ? void 0 : _b.invisible) !== true) {
6381
- core.selectElementByIndex(index, { useMode: true });
6382
- if (typeof uuid_1 === 'string' && core[_coreEvent].has('screenSelectElement')) {
6383
- core[_coreEvent].trigger('screenSelectElement', { index: index, uuid: uuid_1, element: deepClone$1((_c = core[_data].elements) === null || _c === void 0 ? void 0 : _c[index]) });
6384
- core[_emitChangeScreen]();
5448
+ var _f = element.isPointInElement(point, data), index = _f[0], uuid_1 = _f[1];
5449
+ if (index >= 0 && ((_b = (_a = data.elements[index]) === null || _a === void 0 ? void 0 : _a.operation) === null || _b === void 0 ? void 0 : _b.invisible) !== true) {
5450
+ selectElementByIndex(index, { useMode: true });
5451
+ if (typeof uuid_1 === 'string' && coreEvent.has('screenSelectElement')) {
5452
+ coreEvent.trigger('screenSelectElement', { index: index, uuid: uuid_1, element: deepClone$1((_c = data.elements) === null || _c === void 0 ? void 0 : _c[index]) });
5453
+ emitChangeScreen();
6385
5454
  }
6386
- core[_tempData].set('mode', Mode.SELECT_ELEMENT);
5455
+ this.temp.set('mode', Mode.SELECT_ELEMENT);
6387
5456
  }
6388
5457
  else {
6389
- core[_tempData].set('selectedUUIDList', []);
6390
- core[_tempData].set('selectedUUID', null);
6391
- core[_tempData].set('mode', Mode.SELECT_AREA);
5458
+ this.temp.set('selectedUUIDList', []);
5459
+ this.temp.set('selectedUUID', null);
5460
+ this.temp.set('mode', Mode.SELECT_AREA);
6392
5461
  }
6393
5462
  }
6394
5463
  }
6395
- core[_draw]();
5464
+ drawFeekback();
6396
5465
  };
6397
- }
6398
- function handleClick(core) {
6399
- return function (point) {
5466
+ Engine.prototype._handleClick = function (point) {
6400
5467
  var _a;
6401
- var _b = core[_element].isPointInElement(point, core[_data]), index = _b[0], uuid = _b[1];
5468
+ var _b = this._opts, element = _b.element, getDataFeekback = _b.getDataFeekback, coreEvent = _b.coreEvent, drawFeekback = _b.drawFeekback;
5469
+ var data = getDataFeekback();
5470
+ var _c = element.isPointInElement(point, data), index = _c[0], uuid = _c[1];
6402
5471
  if (index >= 0 && uuid) {
6403
- core[_coreEvent].trigger('screenClickElement', { index: index, uuid: uuid, element: deepClone$1((_a = core[_data].elements) === null || _a === void 0 ? void 0 : _a[index]) });
5472
+ coreEvent.trigger('screenClickElement', { index: index, uuid: uuid, element: deepClone$1((_a = data.elements) === null || _a === void 0 ? void 0 : _a[index]) });
6404
5473
  }
6405
- core[_draw]();
5474
+ drawFeekback();
6406
5475
  };
6407
- }
6408
- function handleMoveStart(core) {
6409
- return function (point) {
6410
- core[_tempData].set('prevPoint', point);
6411
- var uuid = core[_tempData].get('selectedUUID');
6412
- if (core[_tempData].get('mode') === Mode.SELECT_ELEMENT_LIST) ;
6413
- else if (core[_tempData].get('mode') === Mode.SELECT_ELEMENT) {
6414
- if (typeof uuid === 'string' && core[_coreEvent].has('screenMoveElementStart')) {
6415
- core[_coreEvent].trigger('screenMoveElementStart', {
6416
- index: core[_element].getElementIndex(core[_data], uuid),
5476
+ Engine.prototype._handleMoveStart = function (point) {
5477
+ var _a = this._opts, element = _a.element, getDataFeekback = _a.getDataFeekback, coreEvent = _a.coreEvent;
5478
+ var data = getDataFeekback();
5479
+ var helper = this.helper;
5480
+ this.temp.set('prevPoint', point);
5481
+ var uuid = this.temp.get('selectedUUID');
5482
+ if (this.temp.get('mode') === Mode.SELECT_ELEMENT_LIST) ;
5483
+ else if (this.temp.get('mode') === Mode.SELECT_ELEMENT) {
5484
+ if (typeof uuid === 'string' && coreEvent.has('screenMoveElementStart')) {
5485
+ coreEvent.trigger('screenMoveElementStart', {
5486
+ index: element.getElementIndex(data, uuid),
6417
5487
  uuid: uuid,
6418
5488
  x: point.x,
6419
5489
  y: point.y
6420
5490
  });
6421
5491
  }
6422
5492
  }
6423
- else if (core[_tempData].get('mode') === Mode.SELECT_AREA) {
6424
- core[_helper].startSelectArea(point);
5493
+ else if (this.temp.get('mode') === Mode.SELECT_AREA) {
5494
+ helper.startSelectArea(point);
6425
5495
  }
6426
5496
  };
6427
- }
6428
- function handleMove(core) {
6429
- return function (point) {
6430
- if (core[_tempData].get('mode') === Mode.SELECT_ELEMENT_LIST) {
6431
- dragElements(core, core[_tempData].get('selectedUUIDList'), point, core[_tempData].get('prevPoint'));
6432
- core[_draw]();
6433
- core[_tempData].set('cursorStatus', CursorStatus.DRAGGING);
5497
+ Engine.prototype._handleMove = function (point) {
5498
+ var drawFeekback = this._opts.drawFeekback;
5499
+ var helper = this.helper;
5500
+ if (this.temp.get('mode') === Mode.SELECT_ELEMENT_LIST) {
5501
+ this._dragElements(this.temp.get('selectedUUIDList'), point, this.temp.get('prevPoint'));
5502
+ drawFeekback();
5503
+ this.temp.set('cursorStatus', CursorStatus.DRAGGING);
6434
5504
  }
6435
- else if (typeof core[_tempData].get('selectedUUID') === 'string') {
6436
- if (core[_tempData].get('mode') === Mode.SELECT_ELEMENT) {
6437
- dragElements(core, [core[_tempData].get('selectedUUID')], point, core[_tempData].get('prevPoint'));
6438
- core[_draw]();
6439
- core[_tempData].set('cursorStatus', CursorStatus.DRAGGING);
5505
+ else if (typeof this.temp.get('selectedUUID') === 'string') {
5506
+ if (this.temp.get('mode') === Mode.SELECT_ELEMENT) {
5507
+ this._dragElements([this.temp.get('selectedUUID')], point, this.temp.get('prevPoint'));
5508
+ drawFeekback();
5509
+ this.temp.set('cursorStatus', CursorStatus.DRAGGING);
6440
5510
  }
6441
- else if (core[_tempData].get('mode') === Mode.SELECT_ELEMENT_WRAPPER_CONTROLLER && core[_tempData].get('selectedControllerDirection')) {
6442
- transfromElement(core, core[_tempData].get('selectedUUID'), point, core[_tempData].get('prevPoint'), core[_tempData].get('selectedControllerDirection'));
6443
- core[_tempData].set('cursorStatus', CursorStatus.DRAGGING);
5511
+ else if (this.temp.get('mode') === Mode.SELECT_ELEMENT_WRAPPER_CONTROLLER && this.temp.get('selectedControllerDirection')) {
5512
+ this._transfromElement(this.temp.get('selectedUUID'), point, this.temp.get('prevPoint'), this.temp.get('selectedControllerDirection'));
5513
+ this.temp.set('cursorStatus', CursorStatus.DRAGGING);
6444
5514
  }
6445
5515
  }
6446
- else if (core[_tempData].get('mode') === Mode.SELECT_AREA) {
6447
- core[_helper].changeSelectArea(point);
6448
- core[_draw]();
5516
+ else if (this.temp.get('mode') === Mode.SELECT_AREA) {
5517
+ helper.changeSelectArea(point);
5518
+ drawFeekback();
6449
5519
  }
6450
- core[_tempData].set('prevPoint', point);
5520
+ this.temp.set('prevPoint', point);
6451
5521
  };
6452
- }
6453
- function dragElements(core, uuids, point, prevPoint) {
6454
- if (!prevPoint) {
6455
- return;
6456
- }
6457
- uuids.forEach(function (uuid) {
6458
- var _a, _b;
6459
- var idx = core[_helper].getElementIndexByUUID(uuid);
6460
- if (idx === null)
5522
+ Engine.prototype._dragElements = function (uuids, point, prevPoint) {
5523
+ if (!prevPoint) {
6461
5524
  return;
6462
- var elem = core[_data].elements[idx];
6463
- if (((_a = elem === null || elem === void 0 ? void 0 : elem.operation) === null || _a === void 0 ? void 0 : _a.lock) !== true && ((_b = elem === null || elem === void 0 ? void 0 : elem.operation) === null || _b === void 0 ? void 0 : _b.invisible) !== true) {
6464
- core[_element].dragElement(core[_data], uuid, point, prevPoint, core[_board].getContext().getTransform().scale);
6465
5525
  }
6466
- });
6467
- core[_draw]();
6468
- }
6469
- function handleMoveEnd(core) {
6470
- return function (point) {
6471
- var uuid = core[_tempData].get('selectedUUID');
5526
+ var _a = this._opts, board = _a.board, element = _a.element, getDataFeekback = _a.getDataFeekback, drawFeekback = _a.drawFeekback;
5527
+ var data = getDataFeekback();
5528
+ var helper = this.helper;
5529
+ uuids.forEach(function (uuid) {
5530
+ var _a, _b;
5531
+ var idx = helper.getElementIndexByUUID(uuid);
5532
+ if (idx === null)
5533
+ return;
5534
+ var elem = data.elements[idx];
5535
+ if (((_a = elem === null || elem === void 0 ? void 0 : elem.operation) === null || _a === void 0 ? void 0 : _a.lock) !== true && ((_b = elem === null || elem === void 0 ? void 0 : elem.operation) === null || _b === void 0 ? void 0 : _b.invisible) !== true) {
5536
+ element.dragElement(data, uuid, point, prevPoint, board.getContext().getTransform().scale);
5537
+ }
5538
+ });
5539
+ drawFeekback();
5540
+ };
5541
+ Engine.prototype._transfromElement = function (uuid, point, prevPoint, direction) {
5542
+ if (!prevPoint) {
5543
+ return null;
5544
+ }
5545
+ var _a = this._opts, board = _a.board, element = _a.element, getDataFeekback = _a.getDataFeekback, drawFeekback = _a.drawFeekback;
5546
+ var data = getDataFeekback();
5547
+ var result = element.transformElement(data, uuid, point, prevPoint, board.getContext().getTransform().scale, direction);
5548
+ drawFeekback();
5549
+ return result;
5550
+ };
5551
+ Engine.prototype._handleMoveEnd = function (point) {
5552
+ var _a = this._opts, element = _a.element, getDataFeekback = _a.getDataFeekback, coreEvent = _a.coreEvent, drawFeekback = _a.drawFeekback, emitChangeData = _a.emitChangeData;
5553
+ var data = getDataFeekback();
5554
+ var helper = this.helper;
5555
+ var uuid = this.temp.get('selectedUUID');
6472
5556
  if (typeof uuid === 'string') {
6473
- var index = core[_element].getElementIndex(core[_data], uuid);
6474
- var elem = core[_data].elements[index];
5557
+ var index = element.getElementIndex(data, uuid);
5558
+ var elem = data.elements[index];
6475
5559
  if (elem) {
6476
- if (core[_coreEvent].has('screenMoveElementEnd')) {
6477
- core[_coreEvent].trigger('screenMoveElementEnd', {
5560
+ if (coreEvent.has('screenMoveElementEnd')) {
5561
+ coreEvent.trigger('screenMoveElementEnd', {
6478
5562
  index: index,
6479
5563
  uuid: uuid,
6480
5564
  x: point.x,
6481
5565
  y: point.y
6482
5566
  });
6483
5567
  }
6484
- if (core[_coreEvent].has('screenChangeElement')) {
6485
- core[_coreEvent].trigger('screenChangeElement', {
5568
+ if (coreEvent.has('screenChangeElement')) {
5569
+ coreEvent.trigger('screenChangeElement', {
6486
5570
  index: index,
6487
5571
  uuid: uuid,
6488
5572
  width: elem.w,
@@ -6490,91 +5574,237 @@ var iDrawCore = (function () {
6490
5574
  angle: elem.angle || 0
6491
5575
  });
6492
5576
  }
6493
- core[_emitChangeData]();
5577
+ emitChangeData();
6494
5578
  }
6495
5579
  }
6496
- else if (core[_tempData].get('mode') === Mode.SELECT_AREA) {
6497
- var uuids = core[_helper].calcSelectedElements(core[_data]);
5580
+ else if (this.temp.get('mode') === Mode.SELECT_AREA) {
5581
+ var uuids = helper.calcSelectedElements(data);
6498
5582
  if (uuids.length > 0) {
6499
- core[_tempData].set('selectedUUIDList', uuids);
6500
- core[_tempData].set('selectedUUID', null);
5583
+ this.temp.set('selectedUUIDList', uuids);
5584
+ this.temp.set('selectedUUID', null);
6501
5585
  }
6502
5586
  else {
6503
- core[_tempData].set('mode', Mode.NULL);
5587
+ this.temp.set('mode', Mode.NULL);
6504
5588
  }
6505
- core[_helper].clearSelectedArea();
6506
- core[_draw]();
5589
+ helper.clearSelectedArea();
5590
+ drawFeekback();
6507
5591
  }
6508
- if (core[_tempData].get('mode') !== Mode.SELECT_ELEMENT) {
6509
- core[_tempData].set('selectedUUID', null);
5592
+ if (this.temp.get('mode') !== Mode.SELECT_ELEMENT) {
5593
+ this.temp.set('selectedUUID', null);
6510
5594
  }
6511
- core[_tempData].set('cursorStatus', CursorStatus.NULL);
6512
- core[_tempData].set('mode', Mode.NULL);
5595
+ this.temp.set('cursorStatus', CursorStatus.NULL);
5596
+ this.temp.set('mode', Mode.NULL);
6513
5597
  };
6514
- }
6515
- function handleHover(core) {
6516
- return function (point) {
5598
+ Engine.prototype._handleHover = function (point) {
6517
5599
  var _a, _b;
6518
5600
  var isMouseOverElement = false;
6519
- if (core[_tempData].get('mode') === Mode.SELECT_AREA) {
6520
- if (core[_tempData].get('onlyRender') !== true)
6521
- core[_board].resetCursor();
5601
+ var _c = this._opts, board = _c.board, getDataFeekback = _c.getDataFeekback, coreEvent = _c.coreEvent;
5602
+ var data = getDataFeekback();
5603
+ var helper = this.helper;
5604
+ var mapper = this._mapper;
5605
+ if (this.temp.get('mode') === Mode.SELECT_AREA) {
5606
+ board.resetCursor();
6522
5607
  }
6523
- else if (core[_tempData].get('cursorStatus') === CursorStatus.NULL) {
6524
- var _c = core[_mapper].judgePointCursor(point, core[_data]), cursor = _c.cursor, elementUUID = _c.elementUUID;
6525
- if (core[_tempData].get('onlyRender') !== true)
6526
- core[_board].setCursor(cursor);
5608
+ else if (this.temp.get('cursorStatus') === CursorStatus.NULL) {
5609
+ var _d = mapper.judgePointCursor(point, data), cursor = _d.cursor, elementUUID = _d.elementUUID;
5610
+ board.setCursor(cursor);
6527
5611
  if (elementUUID) {
6528
- var index = core[_helper].getElementIndexByUUID(elementUUID);
5612
+ var index = helper.getElementIndexByUUID(elementUUID);
6529
5613
  if (index !== null && index >= 0) {
6530
- var elem = core[_data].elements[index];
5614
+ var elem = data.elements[index];
6531
5615
  if (((_a = elem === null || elem === void 0 ? void 0 : elem.operation) === null || _a === void 0 ? void 0 : _a.lock) === true || ((_b = elem === null || elem === void 0 ? void 0 : elem.operation) === null || _b === void 0 ? void 0 : _b.invisible) === true) {
6532
- core[_board].resetCursor();
5616
+ board.resetCursor();
6533
5617
  return;
6534
5618
  }
6535
- if (core[_tempData].get('hoverUUID') !== elem.uuid) {
6536
- var preIndex = core[_helper].getElementIndexByUUID(core[_tempData].get('hoverUUID') || '');
6537
- if (preIndex !== null && core[_data].elements[preIndex]) {
6538
- core[_coreEvent].trigger('mouseLeaveElement', {
6539
- uuid: core[_tempData].get('hoverUUID'),
5619
+ if (this.temp.get('hoverUUID') !== elem.uuid) {
5620
+ var preIndex = helper.getElementIndexByUUID(this.temp.get('hoverUUID') || '');
5621
+ if (preIndex !== null && data.elements[preIndex]) {
5622
+ coreEvent.trigger('mouseLeaveElement', {
5623
+ uuid: this.temp.get('hoverUUID'),
6540
5624
  index: preIndex,
6541
- element: core[_data].elements[preIndex]
5625
+ element: data.elements[preIndex]
6542
5626
  });
6543
5627
  }
6544
5628
  }
6545
5629
  if (elem) {
6546
- core[_coreEvent].trigger('mouseOverElement', { uuid: elem.uuid, index: index, element: elem, });
6547
- core[_tempData].set('hoverUUID', elem.uuid);
5630
+ coreEvent.trigger('mouseOverElement', { uuid: elem.uuid, index: index, element: elem, });
5631
+ this.temp.set('hoverUUID', elem.uuid);
6548
5632
  isMouseOverElement = true;
6549
5633
  }
6550
5634
  }
6551
5635
  }
6552
5636
  }
6553
- if (isMouseOverElement !== true && core[_tempData].get('hoverUUID') !== null) {
6554
- var uuid = core[_tempData].get('hoverUUID');
6555
- var index = core[_helper].getElementIndexByUUID(uuid || '');
5637
+ if (isMouseOverElement !== true && this.temp.get('hoverUUID') !== null) {
5638
+ var uuid = this.temp.get('hoverUUID');
5639
+ var index = helper.getElementIndexByUUID(uuid || '');
6556
5640
  if (index !== null)
6557
- core[_coreEvent].trigger('mouseLeaveElement', { uuid: uuid, index: index, element: core[_data].elements[index] });
6558
- core[_tempData].set('hoverUUID', null);
5641
+ coreEvent.trigger('mouseLeaveElement', { uuid: uuid, index: index, element: data.elements[index] });
5642
+ this.temp.set('hoverUUID', null);
6559
5643
  }
6560
- if (core[_coreEvent].has('mouseOverScreen'))
6561
- core[_coreEvent].trigger('mouseOverScreen', point);
5644
+ if (coreEvent.has('mouseOverScreen'))
5645
+ coreEvent.trigger('mouseOverScreen', point);
6562
5646
  };
6563
- }
6564
- function handleLeave(core) {
6565
- return function () {
6566
- if (core[_coreEvent].has('mouseLeaveScreen')) {
6567
- core[_coreEvent].trigger('mouseLeaveScreen', undefined);
5647
+ Engine.prototype._handleLeave = function () {
5648
+ var coreEvent = this._opts.coreEvent;
5649
+ if (coreEvent.has('mouseLeaveScreen')) {
5650
+ coreEvent.trigger('mouseLeaveScreen', undefined);
6568
5651
  }
6569
5652
  };
5653
+ return Engine;
5654
+ }());
5655
+
5656
+ function clearContext(ctx) {
5657
+ ctx.setFillStyle('#000000');
5658
+ ctx.setStrokeStyle('#000000');
5659
+ ctx.setLineDash([]);
5660
+ ctx.setGlobalAlpha(1);
5661
+ ctx.setShadowColor('#00000000');
5662
+ ctx.setShadowOffsetX(0);
5663
+ ctx.setShadowOffsetY(0);
5664
+ ctx.setShadowBlur(0);
5665
+ }
5666
+
5667
+ function drawElementWrapper(ctx, config) {
5668
+ if (!(config === null || config === void 0 ? void 0 : config.selectedElementWrapper)) {
5669
+ return;
5670
+ }
5671
+ var wrapper = config.selectedElementWrapper;
5672
+ clearContext(ctx);
5673
+ rotateContext(ctx, wrapper.translate, wrapper.radian || 0, function () {
5674
+ ctx.beginPath();
5675
+ ctx.setLineDash(wrapper.lineDash);
5676
+ ctx.setLineWidth(wrapper.lineWidth);
5677
+ ctx.setStrokeStyle(wrapper.color);
5678
+ ctx.moveTo(wrapper.controllers.topLeft.x, wrapper.controllers.topLeft.y);
5679
+ ctx.lineTo(wrapper.controllers.topRight.x, wrapper.controllers.topRight.y);
5680
+ ctx.lineTo(wrapper.controllers.bottomRight.x, wrapper.controllers.bottomRight.y);
5681
+ ctx.lineTo(wrapper.controllers.bottomLeft.x, wrapper.controllers.bottomLeft.y);
5682
+ ctx.lineTo(wrapper.controllers.topLeft.x, wrapper.controllers.topLeft.y - wrapper.lineWidth / 2);
5683
+ ctx.stroke();
5684
+ ctx.closePath();
5685
+ if (wrapper.lock !== true) {
5686
+ if (wrapper.controllers.rotate.invisible !== true) {
5687
+ ctx.beginPath();
5688
+ ctx.moveTo(wrapper.controllers.top.x, wrapper.controllers.top.y);
5689
+ ctx.lineTo(wrapper.controllers.rotate.x, wrapper.controllers.rotate.y + wrapper.controllerSize);
5690
+ ctx.stroke();
5691
+ ctx.closePath();
5692
+ ctx.beginPath();
5693
+ ctx.setLineDash([]);
5694
+ ctx.setLineWidth(wrapper.controllerSize / 2);
5695
+ ctx.arc(wrapper.controllers.rotate.x, wrapper.controllers.rotate.y, wrapper.controllerSize * 0.8, Math.PI / 6, Math.PI * 2);
5696
+ ctx.stroke();
5697
+ ctx.closePath();
5698
+ }
5699
+ ctx.setFillStyle(wrapper.color);
5700
+ [
5701
+ wrapper.controllers.topLeft,
5702
+ wrapper.controllers.top,
5703
+ wrapper.controllers.topRight,
5704
+ wrapper.controllers.right,
5705
+ wrapper.controllers.bottomRight,
5706
+ wrapper.controllers.bottom,
5707
+ wrapper.controllers.bottomLeft,
5708
+ wrapper.controllers.left,
5709
+ ].forEach(function (controller) {
5710
+ if (controller.invisible !== true) {
5711
+ ctx.beginPath();
5712
+ ctx.arc(controller.x, controller.y, wrapper.controllerSize, 0, Math.PI * 2);
5713
+ ctx.fill();
5714
+ ctx.closePath();
5715
+ }
5716
+ });
5717
+ }
5718
+ else {
5719
+ clearContext(ctx);
5720
+ ctx.setStrokeStyle(wrapper.color);
5721
+ [
5722
+ wrapper.controllers.topLeft, wrapper.controllers.top, wrapper.controllers.topRight, wrapper.controllers.right,
5723
+ wrapper.controllers.bottomRight, wrapper.controllers.bottom, wrapper.controllers.bottomLeft, wrapper.controllers.left,
5724
+ ].forEach(function (controller) {
5725
+ ctx.beginPath();
5726
+ ctx.moveTo(controller.x - wrapper.controllerSize / 2, controller.y - wrapper.controllerSize / 2);
5727
+ ctx.lineTo(controller.x + wrapper.controllerSize / 2, controller.y + wrapper.controllerSize / 2);
5728
+ ctx.stroke();
5729
+ ctx.closePath();
5730
+ ctx.beginPath();
5731
+ ctx.moveTo(controller.x + wrapper.controllerSize / 2, controller.y - wrapper.controllerSize / 2);
5732
+ ctx.lineTo(controller.x - wrapper.controllerSize / 2, controller.y + wrapper.controllerSize / 2);
5733
+ ctx.stroke();
5734
+ ctx.closePath();
5735
+ });
5736
+ }
5737
+ });
6570
5738
  }
6571
- function transfromElement(core, uuid, point, prevPoint, direction) {
6572
- if (!prevPoint) {
6573
- return null;
5739
+ function drawAreaWrapper(ctx, config) {
5740
+ if (!(config === null || config === void 0 ? void 0 : config.selectedAreaWrapper)) {
5741
+ return;
6574
5742
  }
6575
- var result = core[_element].transformElement(core[_data], uuid, point, prevPoint, core[_board].getContext().getTransform().scale, direction);
6576
- core[_draw]();
6577
- return result;
5743
+ var wrapper = config.selectedAreaWrapper;
5744
+ if (wrapper && wrapper.w > 0 && wrapper.h > 0) {
5745
+ clearContext(ctx);
5746
+ ctx.setGlobalAlpha(0.3);
5747
+ ctx.setFillStyle(wrapper.color);
5748
+ ctx.fillRect(wrapper.x, wrapper.y, wrapper.w, wrapper.h);
5749
+ clearContext(ctx);
5750
+ ctx.beginPath();
5751
+ ctx.setLineDash(wrapper.lineDash);
5752
+ ctx.setLineWidth(wrapper.lineWidth);
5753
+ ctx.setStrokeStyle(wrapper.color);
5754
+ ctx.moveTo(wrapper.x, wrapper.y);
5755
+ ctx.lineTo(wrapper.x + wrapper.w, wrapper.y);
5756
+ ctx.lineTo(wrapper.x + wrapper.w, wrapper.y + wrapper.h);
5757
+ ctx.lineTo(wrapper.x, wrapper.y + wrapper.h);
5758
+ ctx.lineTo(wrapper.x, wrapper.y);
5759
+ ctx.stroke();
5760
+ ctx.closePath();
5761
+ }
5762
+ }
5763
+ function drawElementListWrappers(ctx, config) {
5764
+ if (!Array.isArray(config === null || config === void 0 ? void 0 : config.selectedElementListWrappers)) {
5765
+ return;
5766
+ }
5767
+ var wrapperList = config.selectedElementListWrappers;
5768
+ wrapperList === null || wrapperList === void 0 ? void 0 : wrapperList.forEach(function (wrapper) {
5769
+ clearContext(ctx);
5770
+ rotateContext(ctx, wrapper.translate, wrapper.radian || 0, function () {
5771
+ clearContext(ctx);
5772
+ ctx.setGlobalAlpha(0.05);
5773
+ ctx.setFillStyle(wrapper.color);
5774
+ ctx.fillRect(wrapper.controllers.topLeft.x, wrapper.controllers.topLeft.y, wrapper.controllers.bottomRight.x - wrapper.controllers.topLeft.x, wrapper.controllers.bottomRight.y - wrapper.controllers.topLeft.y);
5775
+ clearContext(ctx);
5776
+ ctx.beginPath();
5777
+ ctx.setLineDash(wrapper.lineDash);
5778
+ ctx.setLineWidth(wrapper.lineWidth);
5779
+ ctx.setStrokeStyle(wrapper.color);
5780
+ ctx.moveTo(wrapper.controllers.topLeft.x, wrapper.controllers.topLeft.y);
5781
+ ctx.lineTo(wrapper.controllers.topRight.x, wrapper.controllers.topRight.y);
5782
+ ctx.lineTo(wrapper.controllers.bottomRight.x, wrapper.controllers.bottomRight.y);
5783
+ ctx.lineTo(wrapper.controllers.bottomLeft.x, wrapper.controllers.bottomLeft.y);
5784
+ ctx.lineTo(wrapper.controllers.topLeft.x, wrapper.controllers.topLeft.y - wrapper.lineWidth / 2);
5785
+ ctx.stroke();
5786
+ ctx.closePath();
5787
+ if (wrapper.lock === true) {
5788
+ clearContext(ctx);
5789
+ ctx.setStrokeStyle(wrapper.color);
5790
+ [
5791
+ wrapper.controllers.topLeft, wrapper.controllers.top, wrapper.controllers.topRight, wrapper.controllers.right,
5792
+ wrapper.controllers.bottomRight, wrapper.controllers.bottom, wrapper.controllers.bottomLeft, wrapper.controllers.left,
5793
+ ].forEach(function (controller) {
5794
+ ctx.beginPath();
5795
+ ctx.moveTo(controller.x - wrapper.controllerSize / 2, controller.y - wrapper.controllerSize / 2);
5796
+ ctx.lineTo(controller.x + wrapper.controllerSize / 2, controller.y + wrapper.controllerSize / 2);
5797
+ ctx.stroke();
5798
+ ctx.closePath();
5799
+ ctx.beginPath();
5800
+ ctx.moveTo(controller.x + wrapper.controllerSize / 2, controller.y - wrapper.controllerSize / 2);
5801
+ ctx.lineTo(controller.x - wrapper.controllerSize / 2, controller.y + wrapper.controllerSize / 2);
5802
+ ctx.stroke();
5803
+ ctx.closePath();
5804
+ });
5805
+ }
5806
+ });
5807
+ });
6578
5808
  }
6579
5809
 
6580
5810
  var deepClone = index$1.data.deepClone;
@@ -6583,10 +5813,9 @@ var iDrawCore = (function () {
6583
5813
  var _this = this;
6584
5814
  var _c, _d, _e;
6585
5815
  this[_a] = new CoreEvent();
6586
- this[_b] = new TempData();
5816
+ this[_b] = new TempData$1();
6587
5817
  this[_data] = { elements: [] };
6588
5818
  this[_opts] = opts;
6589
- this[_tempData].set('onlyRender', opts.onlyRender === true);
6590
5819
  this[_config] = mergeConfig(config || {});
6591
5820
  this[_board] = new Board(mount, __assign$4(__assign$4({}, this[_opts]), { canScroll: (_c = config === null || config === void 0 ? void 0 : config.scrollWrapper) === null || _c === void 0 ? void 0 : _c.use, scrollConfig: {
6592
5821
  color: ((_d = config === null || config === void 0 ? void 0 : config.scrollWrapper) === null || _d === void 0 ? void 0 : _d.color) || '#a0a0a0',
@@ -6595,7 +5824,7 @@ var iDrawCore = (function () {
6595
5824
  this[_renderer] = new Renderer();
6596
5825
  var drawFrame = function () {
6597
5826
  var helperCtx = _this[_board].getHelperContext();
6598
- var helperConfig = _this[_helper].getConfig();
5827
+ var helperConfig = _this[_engine].getHelperConfig();
6599
5828
  _this[_board].clear();
6600
5829
  var _c = _this[_opts], contextWidth = _c.contextWidth, contextHeight = _c.contextHeight, devicePixelRatio = _c.devicePixelRatio;
6601
5830
  helperCtx.clearRect(0, 0, contextWidth * devicePixelRatio, contextHeight * devicePixelRatio);
@@ -6611,27 +5840,31 @@ var iDrawCore = (function () {
6611
5840
  drawFrame();
6612
5841
  });
6613
5842
  this[_element] = new Element(this[_board].getContext());
6614
- this[_helper] = new Helper(this[_board], this[_config]);
6615
- this[_mapper] = new Mapper({
5843
+ this[_engine] = new Engine({
5844
+ coreEvent: this[_coreEvent],
6616
5845
  board: this[_board],
6617
- helper: this[_helper],
6618
- element: this[_element]
5846
+ element: this[_element],
5847
+ config: this[_config],
5848
+ drawFeekback: this[_draw].bind(this),
5849
+ getDataFeekback: function () { return _this[_data]; },
5850
+ selectElementByIndex: this.selectElementByIndex.bind(this),
5851
+ emitChangeScreen: this[_emitChangeScreen].bind(this),
5852
+ emitChangeData: this[_emitChangeData].bind(this),
5853
+ });
5854
+ this[_engine].init();
5855
+ this[_renderer].on('drawFrame', function () {
5856
+ _this[_coreEvent].trigger('drawFrame', undefined);
6619
5857
  });
6620
- initEvent(this);
5858
+ this[_renderer].on('drawFrameComplete', function () {
5859
+ _this[_coreEvent].trigger('drawFrameComplete', undefined);
5860
+ });
5861
+ this[_tempData].set('hasInited', true);
6621
5862
  }
6622
5863
  Core.prototype[(_a = _coreEvent, _b = _tempData, _draw)] = function (opts) {
6623
- var _c, _d;
6624
- var transfrom = this[_board].getTransform();
6625
- this[_helper].updateConfig(this[_data], {
5864
+ this[_engine].updateHelperConfig({
6626
5865
  width: this[_opts].width,
6627
5866
  height: this[_opts].height,
6628
- canScroll: ((_d = (_c = this[_config]) === null || _c === void 0 ? void 0 : _c.scrollWrapper) === null || _d === void 0 ? void 0 : _d.use) === true,
6629
- selectedUUID: this[_tempData].get('selectedUUID'),
6630
- selectedUUIDList: this[_tempData].get('selectedUUIDList'),
6631
5867
  devicePixelRatio: this[_opts].devicePixelRatio,
6632
- scale: transfrom.scale,
6633
- scrollX: transfrom.scrollX,
6634
- scrollY: transfrom.scrollY,
6635
5868
  });
6636
5869
  this[_renderer].thaw();
6637
5870
  this[_renderer].render(this[_board].getContext(), this[_data], {
@@ -6724,7 +5957,6 @@ var iDrawCore = (function () {
6724
5957
  };
6725
5958
  Core.prototype.clearOperation = function () {
6726
5959
  this[_tempData].clear();
6727
- this[_tempData].set('onlyRender', this[_opts].onlyRender === true);
6728
5960
  this[_draw]();
6729
5961
  };
6730
5962
  Core.prototype.on = function (key, callback) {
@@ -6739,12 +5971,6 @@ var iDrawCore = (function () {
6739
5971
  Core.prototype.pointContextToScreen = function (p) {
6740
5972
  return this[_board].pointContextToScreen(p);
6741
5973
  };
6742
- Core.prototype.setOnlyRender = function () {
6743
- this[_tempData].set('onlyRender', true);
6744
- };
6745
- Core.prototype.cancelOnlyRender = function () {
6746
- this[_tempData].set('onlyRender', false);
6747
- };
6748
5974
  Core.prototype.__getBoardContext = function () {
6749
5975
  return this[_board].getContext();
6750
5976
  };
@@ -6764,9 +5990,6 @@ var iDrawCore = (function () {
6764
5990
  this[_coreEvent].trigger('changeData', deepClone(this[_data]));
6765
5991
  }
6766
5992
  };
6767
- Core.prototype[_todo] = function () {
6768
- console.log(this[_mapper]);
6769
- };
6770
5993
  var _a, _b;
6771
5994
  Core.is = is;
6772
5995
  Core.check = check;