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