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