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

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