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