@idraw/core 0.4.0-beta.10 → 0.4.0-beta.11

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.
@@ -22,7 +22,7 @@ var __privateMethod = (obj, member, method) => {
22
22
  return method;
23
23
  };
24
24
 
25
- var _board, _canvas, _container, _initContainer, initContainer_fn;
25
+ var _eventHub, _container, _cursorType, _resizeCursorBaseImage, _cursorImageMap, _init, init_fn, _loadResizeCursorBaseImage, loadResizeCursorBaseImage_fn, _resetCursor, resetCursor_fn, _setCursorResize, setCursorResize_fn, _appendRotateResizeImage, appendRotateResizeImage_fn, _board, _canvas, _container2, _initContainer, initContainer_fn;
26
26
  function throttle(fn, timeout) {
27
27
  let timer = -1;
28
28
  return function(...args) {
@@ -789,6 +789,9 @@ var __privateMethod = (obj, member, method) => {
789
789
  return false;
790
790
  }
791
791
  destroy() {
792
+ this.clear();
793
+ }
794
+ clear() {
792
795
  __classPrivateFieldGet$8(this, _EventEmitter_listeners, "f").clear();
793
796
  }
794
797
  }
@@ -2172,7 +2175,7 @@ var __privateMethod = (obj, member, method) => {
2172
2175
  viewSizeInfo,
2173
2176
  parentOpacity,
2174
2177
  renderContent: () => {
2175
- if (!content) {
2178
+ if (!content && !opts.loader.isDestroyed()) {
2176
2179
  opts.loader.load(elem, opts.elementAssets || {});
2177
2180
  }
2178
2181
  if (elem.type === "image" && content) {
@@ -2207,7 +2210,7 @@ var __privateMethod = (obj, member, method) => {
2207
2210
  const { calculator, viewScaleInfo, viewSizeInfo, parentOpacity } = opts;
2208
2211
  const { x: x2, y: y2, w: w2, h: h2, angle: angle2 } = (calculator === null || calculator === void 0 ? void 0 : calculator.elementSize(elem, viewScaleInfo, viewSizeInfo)) || elem;
2209
2212
  rotateElement(ctx, { x: x2, y: y2, w: w2, h: h2, angle: angle2 }, () => {
2210
- if (!content) {
2213
+ if (!content && !opts.loader.isDestroyed()) {
2211
2214
  opts.loader.load(elem, opts.elementAssets || {});
2212
2215
  }
2213
2216
  if (elem.type === "svg" && content) {
@@ -2222,7 +2225,7 @@ var __privateMethod = (obj, member, method) => {
2222
2225
  const { calculator, viewScaleInfo, viewSizeInfo, parentOpacity } = opts;
2223
2226
  const { x: x2, y: y2, w: w2, h: h2, angle: angle2 } = (calculator === null || calculator === void 0 ? void 0 : calculator.elementSize(elem, viewScaleInfo, viewSizeInfo)) || elem;
2224
2227
  rotateElement(ctx, { x: x2, y: y2, w: w2, h: h2, angle: angle2 }, () => {
2225
- if (!content) {
2228
+ if (!content && !opts.loader.isDestroyed()) {
2226
2229
  opts.loader.load(elem, opts.elementAssets || {});
2227
2230
  }
2228
2231
  if (elem.type === "html" && content) {
@@ -2597,7 +2600,7 @@ var __privateMethod = (obj, member, method) => {
2597
2600
  throw new TypeError("Cannot write private member to an object whose class did not declare it");
2598
2601
  return kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value;
2599
2602
  };
2600
- var _Loader_instances, _Loader_loadFuncMap, _Loader_currentLoadItemMap, _Loader_storageLoadItemMap, _Loader_registerLoadFunc, _Loader_getLoadElementSource, _Loader_createLoadItem, _Loader_emitLoad, _Loader_emitError, _Loader_loadResource, _Loader_isExistingErrorStorage;
2603
+ var _Loader_instances, _Loader_loadFuncMap, _Loader_currentLoadItemMap, _Loader_storageLoadItemMap, _Loader_hasDestroyed, _Loader_registerLoadFunc, _Loader_getLoadElementSource, _Loader_createLoadItem, _Loader_emitLoad, _Loader_emitError, _Loader_loadResource, _Loader_isExistingErrorStorage;
2601
2604
  const supportElementTypes = ["image", "svg", "html"];
2602
2605
  const getAssetIdFromElement = (element) => {
2603
2606
  var _a, _b, _c;
@@ -2624,6 +2627,7 @@ var __privateMethod = (obj, member, method) => {
2624
2627
  _Loader_loadFuncMap.set(this, {});
2625
2628
  _Loader_currentLoadItemMap.set(this, {});
2626
2629
  _Loader_storageLoadItemMap.set(this, {});
2630
+ _Loader_hasDestroyed.set(this, false);
2627
2631
  __classPrivateFieldGet$6(this, _Loader_instances, "m", _Loader_registerLoadFunc).call(this, "image", (elem, assets) => __awaiter(this, void 0, void 0, function* () {
2628
2632
  var _a;
2629
2633
  const src = ((_a = assets[elem.detail.src]) === null || _a === void 0 ? void 0 : _a.value) || elem.detail.src;
@@ -2658,12 +2662,20 @@ var __privateMethod = (obj, member, method) => {
2658
2662
  };
2659
2663
  }));
2660
2664
  }
2665
+ isDestroyed() {
2666
+ return __classPrivateFieldGet$6(this, _Loader_hasDestroyed, "f");
2667
+ }
2661
2668
  destroy() {
2669
+ __classPrivateFieldSet$6(this, _Loader_hasDestroyed, true, "f");
2670
+ this.clear();
2662
2671
  __classPrivateFieldSet$6(this, _Loader_loadFuncMap, null, "f");
2663
2672
  __classPrivateFieldSet$6(this, _Loader_currentLoadItemMap, null, "f");
2664
2673
  __classPrivateFieldSet$6(this, _Loader_storageLoadItemMap, null, "f");
2665
2674
  }
2666
2675
  load(element, assets) {
2676
+ if (__classPrivateFieldGet$6(this, _Loader_hasDestroyed, "f") === true) {
2677
+ return;
2678
+ }
2667
2679
  if (__classPrivateFieldGet$6(this, _Loader_instances, "m", _Loader_isExistingErrorStorage).call(this, element)) {
2668
2680
  return;
2669
2681
  }
@@ -2683,7 +2695,7 @@ var __privateMethod = (obj, member, method) => {
2683
2695
  __classPrivateFieldSet$6(this, _Loader_storageLoadItemMap, itemMap, "f");
2684
2696
  }
2685
2697
  }
2686
- _Loader_loadFuncMap = /* @__PURE__ */ new WeakMap(), _Loader_currentLoadItemMap = /* @__PURE__ */ new WeakMap(), _Loader_storageLoadItemMap = /* @__PURE__ */ new WeakMap(), _Loader_instances = /* @__PURE__ */ new WeakSet(), _Loader_registerLoadFunc = function _Loader_registerLoadFunc2(type, func) {
2698
+ _Loader_loadFuncMap = /* @__PURE__ */ new WeakMap(), _Loader_currentLoadItemMap = /* @__PURE__ */ new WeakMap(), _Loader_storageLoadItemMap = /* @__PURE__ */ new WeakMap(), _Loader_hasDestroyed = /* @__PURE__ */ new WeakMap(), _Loader_instances = /* @__PURE__ */ new WeakSet(), _Loader_registerLoadFunc = function _Loader_registerLoadFunc2(type, func) {
2687
2699
  __classPrivateFieldGet$6(this, _Loader_loadFuncMap, "f")[type] = func;
2688
2700
  }, _Loader_getLoadElementSource = function _Loader_getLoadElementSource2(element) {
2689
2701
  var _a, _b, _c;
@@ -2709,40 +2721,46 @@ var __privateMethod = (obj, member, method) => {
2709
2721
  }, _Loader_emitLoad = function _Loader_emitLoad2(item) {
2710
2722
  const assetId = getAssetIdFromElement(item.element);
2711
2723
  const storageItem = __classPrivateFieldGet$6(this, _Loader_storageLoadItemMap, "f")[assetId];
2712
- if (storageItem) {
2713
- if (storageItem.startTime < item.startTime) {
2724
+ if (!__classPrivateFieldGet$6(this, _Loader_hasDestroyed, "f")) {
2725
+ if (storageItem) {
2726
+ if (storageItem.startTime < item.startTime) {
2727
+ __classPrivateFieldGet$6(this, _Loader_storageLoadItemMap, "f")[assetId] = item;
2728
+ this.trigger("load", Object.assign(Object.assign({}, item), { countTime: item.endTime - item.startTime }));
2729
+ }
2730
+ } else {
2714
2731
  __classPrivateFieldGet$6(this, _Loader_storageLoadItemMap, "f")[assetId] = item;
2715
2732
  this.trigger("load", Object.assign(Object.assign({}, item), { countTime: item.endTime - item.startTime }));
2716
2733
  }
2717
- } else {
2718
- __classPrivateFieldGet$6(this, _Loader_storageLoadItemMap, "f")[assetId] = item;
2719
- this.trigger("load", Object.assign(Object.assign({}, item), { countTime: item.endTime - item.startTime }));
2720
2734
  }
2721
2735
  }, _Loader_emitError = function _Loader_emitError2(item) {
2722
2736
  var _a;
2723
2737
  const assetId = getAssetIdFromElement(item.element);
2724
2738
  const storageItem = (_a = __classPrivateFieldGet$6(this, _Loader_storageLoadItemMap, "f")) === null || _a === void 0 ? void 0 : _a[assetId];
2725
- if (storageItem) {
2726
- if (storageItem.startTime < item.startTime) {
2739
+ if (!__classPrivateFieldGet$6(this, _Loader_hasDestroyed, "f")) {
2740
+ if (storageItem) {
2741
+ if (storageItem.startTime < item.startTime) {
2742
+ __classPrivateFieldGet$6(this, _Loader_storageLoadItemMap, "f")[assetId] = item;
2743
+ this.trigger("error", Object.assign(Object.assign({}, item), { countTime: item.endTime - item.startTime }));
2744
+ }
2745
+ } else {
2727
2746
  __classPrivateFieldGet$6(this, _Loader_storageLoadItemMap, "f")[assetId] = item;
2728
2747
  this.trigger("error", Object.assign(Object.assign({}, item), { countTime: item.endTime - item.startTime }));
2729
2748
  }
2730
- } else {
2731
- __classPrivateFieldGet$6(this, _Loader_storageLoadItemMap, "f")[assetId] = item;
2732
- this.trigger("error", Object.assign(Object.assign({}, item), { countTime: item.endTime - item.startTime }));
2733
2749
  }
2734
2750
  }, _Loader_loadResource = function _Loader_loadResource2(element, assets) {
2735
2751
  const item = __classPrivateFieldGet$6(this, _Loader_instances, "m", _Loader_createLoadItem).call(this, element);
2736
2752
  const assetId = getAssetIdFromElement(element);
2737
2753
  __classPrivateFieldGet$6(this, _Loader_currentLoadItemMap, "f")[assetId] = item;
2738
2754
  const loadFunc = __classPrivateFieldGet$6(this, _Loader_loadFuncMap, "f")[element.type];
2739
- if (typeof loadFunc === "function") {
2755
+ if (typeof loadFunc === "function" && !__classPrivateFieldGet$6(this, _Loader_hasDestroyed, "f")) {
2740
2756
  item.startTime = Date.now();
2741
2757
  loadFunc(element, assets).then((result) => {
2742
- item.content = result.content;
2743
- item.endTime = Date.now();
2744
- item.status = "load";
2745
- __classPrivateFieldGet$6(this, _Loader_instances, "m", _Loader_emitLoad).call(this, item);
2758
+ if (!__classPrivateFieldGet$6(this, _Loader_hasDestroyed, "f")) {
2759
+ item.content = result.content;
2760
+ item.endTime = Date.now();
2761
+ item.status = "load";
2762
+ __classPrivateFieldGet$6(this, _Loader_instances, "m", _Loader_emitLoad).call(this, item);
2763
+ }
2746
2764
  }).catch((err) => {
2747
2765
  console.warn(`Load element source "${item.source}" fail`, err, element);
2748
2766
  item.endTime = Date.now();
@@ -2776,20 +2794,26 @@ var __privateMethod = (obj, member, method) => {
2776
2794
  throw new TypeError("Cannot read private member from an object whose class did not declare it");
2777
2795
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
2778
2796
  };
2779
- var _Renderer_instances, _Renderer_opts, _Renderer_loader, _Renderer_init;
2797
+ var _Renderer_instances, _Renderer_opts, _Renderer_loader, _Renderer_hasDestroyed, _Renderer_init;
2780
2798
  class Renderer extends EventEmitter {
2781
2799
  constructor(opts) {
2782
2800
  super();
2783
2801
  _Renderer_instances.add(this);
2784
2802
  _Renderer_opts.set(this, void 0);
2785
2803
  _Renderer_loader.set(this, new Loader());
2804
+ _Renderer_hasDestroyed.set(this, false);
2786
2805
  __classPrivateFieldSet$5(this, _Renderer_opts, opts, "f");
2787
2806
  __classPrivateFieldGet$5(this, _Renderer_instances, "m", _Renderer_init).call(this);
2788
2807
  }
2808
+ isDestroyed() {
2809
+ return __classPrivateFieldGet$5(this, _Renderer_hasDestroyed, "f");
2810
+ }
2789
2811
  destroy() {
2812
+ this.clear();
2790
2813
  __classPrivateFieldSet$5(this, _Renderer_opts, null, "f");
2791
2814
  __classPrivateFieldGet$5(this, _Renderer_loader, "f").destroy();
2792
2815
  __classPrivateFieldSet$5(this, _Renderer_loader, null, "f");
2816
+ __classPrivateFieldSet$5(this, _Renderer_hasDestroyed, true, "f");
2793
2817
  }
2794
2818
  updateOptions(opts) {
2795
2819
  __classPrivateFieldSet$5(this, _Renderer_opts, opts, "f");
@@ -2856,7 +2880,7 @@ var __privateMethod = (obj, member, method) => {
2856
2880
  return __classPrivateFieldGet$5(this, _Renderer_loader, "f");
2857
2881
  }
2858
2882
  }
2859
- _Renderer_opts = /* @__PURE__ */ new WeakMap(), _Renderer_loader = /* @__PURE__ */ new WeakMap(), _Renderer_instances = /* @__PURE__ */ new WeakSet(), _Renderer_init = function _Renderer_init2() {
2883
+ _Renderer_opts = /* @__PURE__ */ new WeakMap(), _Renderer_loader = /* @__PURE__ */ new WeakMap(), _Renderer_hasDestroyed = /* @__PURE__ */ new WeakMap(), _Renderer_instances = /* @__PURE__ */ new WeakSet(), _Renderer_init = function _Renderer_init2() {
2860
2884
  const loader = __classPrivateFieldGet$5(this, _Renderer_loader, "f");
2861
2885
  loader.on("load", (e) => {
2862
2886
  this.trigger("load", e);
@@ -2926,7 +2950,7 @@ var __privateMethod = (obj, member, method) => {
2926
2950
  throw new TypeError("Cannot read private member from an object whose class did not declare it");
2927
2951
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
2928
2952
  };
2929
- var _BoardWatcher_instances, _BoardWatcher_opts, _BoardWatcher_store, _BoardWatcher_init, _BoardWatcher_onWheel, _BoardWatcher_onContextMenu, _BoardWatcher_onClick, _BoardWatcher_onPointLeave, _BoardWatcher_onPointEnd, _BoardWatcher_onPointMove, _BoardWatcher_onPointStart, _BoardWatcher_onHover, _BoardWatcher_isInTarget, _BoardWatcher_getPoint, _BoardWatcher_isVaildPoint;
2953
+ var _BoardWatcher_instances, _BoardWatcher_opts, _BoardWatcher_store, _BoardWatcher_hasDestroyed, _BoardWatcher_init, _BoardWatcher_onWheel, _BoardWatcher_onContextMenu, _BoardWatcher_onClick, _BoardWatcher_onPointLeave, _BoardWatcher_onPointEnd, _BoardWatcher_onPointMove, _BoardWatcher_onPointStart, _BoardWatcher_onHover, _BoardWatcher_isInTarget, _BoardWatcher_getPoint, _BoardWatcher_isVaildPoint;
2930
2954
  function isBoardAvailableNum(num) {
2931
2955
  return num > 0 || num < 0 || num === 0;
2932
2956
  }
@@ -2936,6 +2960,7 @@ var __privateMethod = (obj, member, method) => {
2936
2960
  _BoardWatcher_instances.add(this);
2937
2961
  _BoardWatcher_opts.set(this, void 0);
2938
2962
  _BoardWatcher_store.set(this, void 0);
2963
+ _BoardWatcher_hasDestroyed.set(this, false);
2939
2964
  _BoardWatcher_onWheel.set(this, (e) => {
2940
2965
  if (!__classPrivateFieldGet$3(this, _BoardWatcher_instances, "m", _BoardWatcher_isInTarget).call(this, e)) {
2941
2966
  return;
@@ -3047,7 +3072,21 @@ var __privateMethod = (obj, member, method) => {
3047
3072
  __classPrivateFieldSet$3(this, _BoardWatcher_opts, opts, "f");
3048
3073
  __classPrivateFieldGet$3(this, _BoardWatcher_instances, "m", _BoardWatcher_init).call(this);
3049
3074
  }
3050
- destroy() {
3075
+ onEvents() {
3076
+ if (__classPrivateFieldGet$3(this, _BoardWatcher_hasDestroyed, "f")) {
3077
+ return;
3078
+ }
3079
+ const container = window;
3080
+ container.addEventListener("mousemove", __classPrivateFieldGet$3(this, _BoardWatcher_onHover, "f"));
3081
+ container.addEventListener("mousedown", __classPrivateFieldGet$3(this, _BoardWatcher_onPointStart, "f"));
3082
+ container.addEventListener("mousemove", __classPrivateFieldGet$3(this, _BoardWatcher_onPointMove, "f"));
3083
+ container.addEventListener("mouseup", __classPrivateFieldGet$3(this, _BoardWatcher_onPointEnd, "f"));
3084
+ container.addEventListener("mouseleave", __classPrivateFieldGet$3(this, _BoardWatcher_onPointLeave, "f"));
3085
+ container.addEventListener("wheel", __classPrivateFieldGet$3(this, _BoardWatcher_onWheel, "f"), { passive: false });
3086
+ container.addEventListener("click", __classPrivateFieldGet$3(this, _BoardWatcher_onClick, "f"));
3087
+ container.addEventListener("contextmenu", __classPrivateFieldGet$3(this, _BoardWatcher_onContextMenu, "f"));
3088
+ }
3089
+ offEvents() {
3051
3090
  const container = window;
3052
3091
  container.removeEventListener("mousemove", __classPrivateFieldGet$3(this, _BoardWatcher_onHover, "f"));
3053
3092
  container.removeEventListener("mousedown", __classPrivateFieldGet$3(this, _BoardWatcher_onPointStart, "f"));
@@ -3058,17 +3097,14 @@ var __privateMethod = (obj, member, method) => {
3058
3097
  container.removeEventListener("click", __classPrivateFieldGet$3(this, _BoardWatcher_onClick, "f"));
3059
3098
  container.removeEventListener("contextmenu", __classPrivateFieldGet$3(this, _BoardWatcher_onContextMenu, "f"));
3060
3099
  }
3100
+ destroy() {
3101
+ this.offEvents();
3102
+ __classPrivateFieldGet$3(this, _BoardWatcher_store, "f").destroy();
3103
+ __classPrivateFieldSet$3(this, _BoardWatcher_hasDestroyed, true, "f");
3104
+ }
3061
3105
  }
3062
- _BoardWatcher_opts = /* @__PURE__ */ new WeakMap(), _BoardWatcher_store = /* @__PURE__ */ new WeakMap(), _BoardWatcher_onWheel = /* @__PURE__ */ new WeakMap(), _BoardWatcher_onContextMenu = /* @__PURE__ */ new WeakMap(), _BoardWatcher_onClick = /* @__PURE__ */ new WeakMap(), _BoardWatcher_onPointLeave = /* @__PURE__ */ new WeakMap(), _BoardWatcher_onPointEnd = /* @__PURE__ */ new WeakMap(), _BoardWatcher_onPointMove = /* @__PURE__ */ new WeakMap(), _BoardWatcher_onPointStart = /* @__PURE__ */ new WeakMap(), _BoardWatcher_onHover = /* @__PURE__ */ new WeakMap(), _BoardWatcher_instances = /* @__PURE__ */ new WeakSet(), _BoardWatcher_init = function _BoardWatcher_init2() {
3063
- const container = window;
3064
- container.addEventListener("mousemove", __classPrivateFieldGet$3(this, _BoardWatcher_onHover, "f"));
3065
- container.addEventListener("mousedown", __classPrivateFieldGet$3(this, _BoardWatcher_onPointStart, "f"));
3066
- container.addEventListener("mousemove", __classPrivateFieldGet$3(this, _BoardWatcher_onPointMove, "f"));
3067
- container.addEventListener("mouseup", __classPrivateFieldGet$3(this, _BoardWatcher_onPointEnd, "f"));
3068
- container.addEventListener("mouseleave", __classPrivateFieldGet$3(this, _BoardWatcher_onPointLeave, "f"));
3069
- container.addEventListener("wheel", __classPrivateFieldGet$3(this, _BoardWatcher_onWheel, "f"), { passive: false });
3070
- container.addEventListener("click", __classPrivateFieldGet$3(this, _BoardWatcher_onClick, "f"));
3071
- container.addEventListener("contextmenu", __classPrivateFieldGet$3(this, _BoardWatcher_onContextMenu, "f"));
3106
+ _BoardWatcher_opts = /* @__PURE__ */ new WeakMap(), _BoardWatcher_store = /* @__PURE__ */ new WeakMap(), _BoardWatcher_hasDestroyed = /* @__PURE__ */ new WeakMap(), _BoardWatcher_onWheel = /* @__PURE__ */ new WeakMap(), _BoardWatcher_onContextMenu = /* @__PURE__ */ new WeakMap(), _BoardWatcher_onClick = /* @__PURE__ */ new WeakMap(), _BoardWatcher_onPointLeave = /* @__PURE__ */ new WeakMap(), _BoardWatcher_onPointEnd = /* @__PURE__ */ new WeakMap(), _BoardWatcher_onPointMove = /* @__PURE__ */ new WeakMap(), _BoardWatcher_onPointStart = /* @__PURE__ */ new WeakMap(), _BoardWatcher_onHover = /* @__PURE__ */ new WeakMap(), _BoardWatcher_instances = /* @__PURE__ */ new WeakSet(), _BoardWatcher_init = function _BoardWatcher_init2() {
3107
+ this.onEvents();
3072
3108
  }, _BoardWatcher_isInTarget = function _BoardWatcher_isInTarget2(e) {
3073
3109
  return e.target === __classPrivateFieldGet$3(this, _BoardWatcher_opts, "f").boardContent.boardContext.canvas;
3074
3110
  }, _BoardWatcher_getPoint = function _BoardWatcher_getPoint2(e) {
@@ -3343,7 +3379,7 @@ var __privateMethod = (obj, member, method) => {
3343
3379
  throw new TypeError("Cannot read private member from an object whose class did not declare it");
3344
3380
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
3345
3381
  };
3346
- var _Board_instances, _Board_opts, _Board_middlewareMap, _Board_middlewares, _Board_activeMiddlewareObjs, _Board_watcher, _Board_renderer, _Board_sharer, _Board_viewer, _Board_calculator, _Board_eventHub, _Board_init, _Board_handlePointStart, _Board_handlePointEnd, _Board_handlePointMove, _Board_handleHover, _Board_handleDoubleClick, _Board_handleWheel, _Board_handleWheelScale, _Board_handleScrollX, _Board_handleScrollY, _Board_handleResize, _Board_handleClear, _Board_handleBeforeDrawFrame, _Board_handleAfterDrawFrame, _Board_resetActiveMiddlewareObjs;
3382
+ var _Board_instances, _Board_opts, _Board_middlewareMap, _Board_middlewares, _Board_activeMiddlewareObjs, _Board_watcher, _Board_renderer, _Board_sharer, _Board_viewer, _Board_calculator, _Board_eventHub, _Board_hasDestroyed, _Board_init, _Board_handlePointStart, _Board_handlePointEnd, _Board_handlePointMove, _Board_handleHover, _Board_handleDoubleClick, _Board_handleWheel, _Board_handleWheelScale, _Board_handleScrollX, _Board_handleScrollY, _Board_handleResize, _Board_handleClear, _Board_handleBeforeDrawFrame, _Board_handleAfterDrawFrame, _Board_resetActiveMiddlewareObjs;
3347
3383
  const throttleTime = 10;
3348
3384
  class Board {
3349
3385
  constructor(opts) {
@@ -3358,6 +3394,7 @@ var __privateMethod = (obj, member, method) => {
3358
3394
  _Board_viewer.set(this, void 0);
3359
3395
  _Board_calculator.set(this, void 0);
3360
3396
  _Board_eventHub.set(this, new EventEmitter());
3397
+ _Board_hasDestroyed.set(this, false);
3361
3398
  const { boardContent } = opts;
3362
3399
  const sharer = new Sharer();
3363
3400
  const calculator = new Calculator({ viewContext: boardContent.viewContext });
@@ -3390,11 +3427,15 @@ var __privateMethod = (obj, member, method) => {
3390
3427
  __classPrivateFieldGet(this, _Board_instances, "m", _Board_init).call(this);
3391
3428
  __classPrivateFieldGet(this, _Board_instances, "m", _Board_resetActiveMiddlewareObjs).call(this);
3392
3429
  }
3430
+ isDestroyed() {
3431
+ return __classPrivateFieldGet(this, _Board_hasDestroyed, "f");
3432
+ }
3393
3433
  destroy() {
3394
3434
  __classPrivateFieldGet(this, _Board_watcher, "f").destroy();
3395
3435
  __classPrivateFieldGet(this, _Board_renderer, "f").destroy();
3396
3436
  __classPrivateFieldGet(this, _Board_calculator, "f").destroy();
3397
3437
  __classPrivateFieldGet(this, _Board_eventHub, "f").destroy();
3438
+ __classPrivateFieldSet(this, _Board_hasDestroyed, true, "f");
3398
3439
  }
3399
3440
  getSharer() {
3400
3441
  return __classPrivateFieldGet(this, _Board_sharer, "f");
@@ -3495,8 +3536,14 @@ var __privateMethod = (obj, member, method) => {
3495
3536
  getEventHub() {
3496
3537
  return __classPrivateFieldGet(this, _Board_eventHub, "f");
3497
3538
  }
3539
+ onWatcherEvents() {
3540
+ __classPrivateFieldGet(this, _Board_watcher, "f").onEvents();
3541
+ }
3542
+ offWatcherEvents() {
3543
+ __classPrivateFieldGet(this, _Board_watcher, "f").offEvents();
3544
+ }
3498
3545
  }
3499
- _Board_opts = /* @__PURE__ */ new WeakMap(), _Board_middlewareMap = /* @__PURE__ */ new WeakMap(), _Board_middlewares = /* @__PURE__ */ new WeakMap(), _Board_activeMiddlewareObjs = /* @__PURE__ */ new WeakMap(), _Board_watcher = /* @__PURE__ */ new WeakMap(), _Board_renderer = /* @__PURE__ */ new WeakMap(), _Board_sharer = /* @__PURE__ */ new WeakMap(), _Board_viewer = /* @__PURE__ */ new WeakMap(), _Board_calculator = /* @__PURE__ */ new WeakMap(), _Board_eventHub = /* @__PURE__ */ new WeakMap(), _Board_instances = /* @__PURE__ */ new WeakSet(), _Board_init = function _Board_init2() {
3546
+ _Board_opts = /* @__PURE__ */ new WeakMap(), _Board_middlewareMap = /* @__PURE__ */ new WeakMap(), _Board_middlewares = /* @__PURE__ */ new WeakMap(), _Board_activeMiddlewareObjs = /* @__PURE__ */ new WeakMap(), _Board_watcher = /* @__PURE__ */ new WeakMap(), _Board_renderer = /* @__PURE__ */ new WeakMap(), _Board_sharer = /* @__PURE__ */ new WeakMap(), _Board_viewer = /* @__PURE__ */ new WeakMap(), _Board_calculator = /* @__PURE__ */ new WeakMap(), _Board_eventHub = /* @__PURE__ */ new WeakMap(), _Board_hasDestroyed = /* @__PURE__ */ new WeakMap(), _Board_instances = /* @__PURE__ */ new WeakSet(), _Board_init = function _Board_init2() {
3500
3547
  __classPrivateFieldGet(this, _Board_watcher, "f").on("pointStart", __classPrivateFieldGet(this, _Board_instances, "m", _Board_handlePointStart).bind(this));
3501
3548
  __classPrivateFieldGet(this, _Board_watcher, "f").on("pointEnd", __classPrivateFieldGet(this, _Board_instances, "m", _Board_handlePointEnd).bind(this));
3502
3549
  __classPrivateFieldGet(this, _Board_watcher, "f").on("pointMove", throttle((e) => {
@@ -3649,118 +3696,139 @@ var __privateMethod = (obj, member, method) => {
3649
3696
  const CURSOR_DRAG_ACTIVE = `data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAER0lEQVRYhe2YT2hjRRjAf8lL22xsNsm6EWKrSKvuIkIh+O9QRFxEW18KUsoe7FHoRaWCN1FPetOrIHgVKS0q9P5OxaJbodkalgVrtVZjS7Ntd02z6abPw3yzmaT585q+elj2g2HmvZn35jffN/PNNwP35R6XgM/fuif4n+dO2klQvgsaZRc4NJJvoJbHdhrIAkJAN2ADHwFfAw9J3ZoB/b9I0AA6A0SBc0Aa2EVpSqddeZ+QdmfkO+u0gIPSQQR4HfhRQH4AHMDNZDJXXNd1M5nMFalzdB3wJTAOPAD0yEB9066G6wXepVZTd5MpTdporZ6jVqsatmMJoTR3HvgJQ1u2bS+3ArRte9l1XXdsbGyJo1pdBN6Wf3d3ChlAmSQO9LeC8fquQRpDWaerHWSjSr1iu4BkJyOsF9u2s67rkslkluTVxygltAVsJBZqdCngEj5osIlW+4EYytRNF04jeu3vulCT+7QkLH20dEOhumft97pQI4s3+iiRSPwtxVSbd39J8eEGvzFXc1NAs8KSFAZeBt4AHgNeBFDWObkEAne7HAK2gT2gCFQatdca1GbtBj4E3veFprVYVLXXcg4GqM6588BbAMlkcm1qamqzr6/v6ikBet5RgiizJoDPAXdgYGDZXHkzMzPrrk9CdRWngUeAsxxdCzVwpgZ/BigWiz1mo4mJif7jqMajeJrU5hywgGvAej6fvzA0NLThN1Eul9uT4g5VTbYFNKUIfAbsZ7PZvuHh4Wt+As7Ozu5IcY2j219TQB0NV4A7qODgO4CFhYWLg4ODOb8AHccpG4A68m6pRQ1YAQ6A28A+8BXwBcDq6upTqVTquh+AuVyuW4q/opRRaQdZD1gCbgE3ge+BT4HdfD7/ZDwe/z2bzRY6hRsfH1/e3Nx8FDX/sgbgoZfvg6jo4ixqW7oIPA+8CrwHrAJuJBLJd+JaHMf5k6qmPgGeQe1SCenXk0/U21xcIC8AzwGvAJPAEuAmEon1xcXFba9w8/Pz5oqdB14CnpY+oij35km0qwmjwqAU8ISM9hIwBeQA17KsG9PT07+1gxsZGdmgdqW+BjwLDAAPoo4ALU+W9arVwWoIpXp9kouKZpPAO8AwQCwW+2d0dLQ0OTkZSafT0UKhUJ6bm9t2HKeysrIS3tra0g7+KvABUJC0g5rrJdRcbLpImtleRzYashc1P2OSXwbebDVykX3gW+Ab1AHqhuQ3pe6AJlFMO0CoPROHDcio5I8DL1A9C8dQbmod+APYAK4DvwjQnsDdErgyVTfTEaCG1GFYGHXG7TVSo2OkdvhlAflXoHSuNdfStFqaRhEi2kfdprrj6M5LAt0I8EDaaMdflPal48CB95hMr3Bt8h4jD0kyL5E0pN6dysZzW7N2AqjbmhdIZjJvufTOpE19x3g+9s1XJ/ck5tVbfdhu+rxDfLiSO+lFToCjZwrXyH2/0Lwv95z8B1jAqXmDnj4YAAAAAElFTkSuQmCC`;
3650
3697
  class Cursor {
3651
3698
  constructor(container, opts) {
3652
- this._cursorType = null;
3653
- this._resizeCursorBaseImage = null;
3654
- this._cursorImageMap = {
3699
+ __privateAdd(this, _init);
3700
+ __privateAdd(this, _loadResizeCursorBaseImage);
3701
+ __privateAdd(this, _resetCursor);
3702
+ __privateAdd(this, _setCursorResize);
3703
+ __privateAdd(this, _appendRotateResizeImage);
3704
+ __privateAdd(this, _eventHub, void 0);
3705
+ __privateAdd(this, _container, void 0);
3706
+ __privateAdd(this, _cursorType, null);
3707
+ __privateAdd(this, _resizeCursorBaseImage, null);
3708
+ __privateAdd(this, _cursorImageMap, {
3655
3709
  auto: CURSOR,
3656
3710
  "drag-default": CURSOR_DRAG_DEFAULT,
3657
3711
  "drag-active": CURSOR_DRAG_ACTIVE,
3658
3712
  "rotate-0": CURSOR_RESIZE
3659
- };
3660
- this._container = container;
3661
- this._eventHub = opts.eventHub;
3662
- this._init();
3663
- this._loadResizeCursorBaseImage();
3664
- }
3665
- _init() {
3666
- const { _eventHub: eventHub } = this;
3667
- this._resetCursor("auto");
3668
- eventHub.on("cursor", (e) => {
3669
- var _a;
3670
- if (e.type === "over-element" || !e.type) {
3671
- this._resetCursor("auto");
3672
- } else if (typeof e.type === "string" && ((_a = e.type) == null ? void 0 : _a.startsWith("resize-"))) {
3673
- this._setCursorResize(e);
3674
- } else if (e.type === "drag-default") {
3675
- this._resetCursor("drag-default");
3676
- } else if (e.type === "drag-active") {
3677
- this._resetCursor("drag-active");
3678
- } else {
3679
- this._resetCursor("auto");
3680
- }
3681
- });
3682
- }
3683
- _loadResizeCursorBaseImage() {
3684
- loadImage(CURSOR_RESIZE).then((img) => {
3685
- this._resizeCursorBaseImage = img;
3686
- }).catch((err) => {
3687
- console.error(err);
3688
3713
  });
3714
+ __privateSet(this, _container, container);
3715
+ __privateSet(this, _eventHub, opts.eventHub);
3716
+ __privateMethod(this, _init, init_fn).call(this);
3717
+ __privateMethod(this, _loadResizeCursorBaseImage, loadResizeCursorBaseImage_fn).call(this);
3689
3718
  }
3690
- _resetCursor(cursorKey) {
3691
- if (this._cursorType === cursorKey) {
3692
- return;
3693
- }
3694
- this._cursorType = cursorKey;
3695
- const image = this._cursorImageMap[this._cursorType] || this._cursorImageMap["auto"];
3696
- let offsetX = 0;
3697
- let offsetY = 0;
3698
- if (cursorKey.startsWith("rotate-") && this._cursorImageMap[this._cursorType]) {
3699
- offsetX = 10;
3700
- offsetY = 10;
3701
- }
3702
- this._container.style.cursor = `image-set(url(${image})2x) ${offsetX} ${offsetY}, auto`;
3703
- }
3704
- _setCursorResize(e) {
3719
+ }
3720
+ _eventHub = new WeakMap();
3721
+ _container = new WeakMap();
3722
+ _cursorType = new WeakMap();
3723
+ _resizeCursorBaseImage = new WeakMap();
3724
+ _cursorImageMap = new WeakMap();
3725
+ _init = new WeakSet();
3726
+ init_fn = function() {
3727
+ const eventHub = __privateGet(this, _eventHub);
3728
+ __privateMethod(this, _resetCursor, resetCursor_fn).call(this, "default");
3729
+ eventHub.on("cursor", (e) => {
3705
3730
  var _a;
3706
- let totalAngle = 0;
3707
- if (e.type === "resize-top") {
3708
- totalAngle += 0;
3709
- } else if (e.type === "resize-top-right") {
3710
- totalAngle += 45;
3711
- } else if (e.type === "resize-right") {
3712
- totalAngle += 90;
3713
- } else if (e.type === "resize-bottom-right") {
3714
- totalAngle += 135;
3715
- } else if (e.type === "resize-bottom") {
3716
- totalAngle += 180;
3717
- } else if (e.type === "resize-bottom-left") {
3718
- totalAngle += 225;
3719
- } else if (e.type === "resize-left") {
3720
- totalAngle += 270;
3721
- } else if (e.type === "resize-top-left") {
3722
- totalAngle += 315;
3723
- }
3724
- totalAngle += limitAngle(((_a = e == null ? void 0 : e.element) == null ? void 0 : _a.angle) || 0);
3725
- if (Array.isArray(e.groupQueue) && e.groupQueue.length > 0) {
3726
- e.groupQueue.forEach((group) => {
3727
- totalAngle += limitAngle(group.angle || 0);
3728
- });
3729
- }
3730
- totalAngle = limitAngle(totalAngle);
3731
- const cursorKey = this._appendRotateResizeImage(totalAngle);
3732
- this._resetCursor(cursorKey);
3733
- }
3734
- _appendRotateResizeImage(angle2) {
3735
- const key2 = `rotate-${angle2}`;
3736
- if (!this._cursorImageMap[key2]) {
3737
- const baseImage = this._resizeCursorBaseImage;
3738
- if (baseImage) {
3739
- const canvas = document.createElement("canvas");
3740
- const w2 = baseImage.width;
3741
- const h2 = baseImage.height;
3742
- const center = {
3743
- x: w2 / 2,
3744
- y: h2 / 2
3745
- };
3746
- canvas.width = w2;
3747
- canvas.height = h2;
3748
- const ctx = canvas.getContext("2d");
3749
- const radian = parseAngleToRadian(angle2);
3750
- ctx.translate(center.x, center.y);
3751
- ctx.rotate(radian);
3752
- ctx.translate(-center.x, -center.y);
3753
- ctx.drawImage(baseImage, 0, 0, w2, h2);
3754
- ctx.translate(center.x, center.y);
3755
- ctx.rotate(-radian);
3756
- ctx.translate(-center.x, -center.y);
3757
- const base = canvas.toDataURL("image/png");
3758
- this._cursorImageMap[key2] = base;
3759
- }
3731
+ if (e.type === "over-element" || !e.type) {
3732
+ __privateMethod(this, _resetCursor, resetCursor_fn).call(this, "auto");
3733
+ } else if (typeof e.type === "string" && ((_a = e.type) == null ? void 0 : _a.startsWith("resize-"))) {
3734
+ __privateMethod(this, _setCursorResize, setCursorResize_fn).call(this, e);
3735
+ } else if (e.type === "drag-default") {
3736
+ __privateMethod(this, _resetCursor, resetCursor_fn).call(this, "drag-default");
3737
+ } else if (e.type === "drag-active") {
3738
+ __privateMethod(this, _resetCursor, resetCursor_fn).call(this, "drag-active");
3739
+ } else {
3740
+ __privateMethod(this, _resetCursor, resetCursor_fn).call(this, "auto");
3760
3741
  }
3761
- return key2;
3742
+ });
3743
+ };
3744
+ _loadResizeCursorBaseImage = new WeakSet();
3745
+ loadResizeCursorBaseImage_fn = function() {
3746
+ loadImage(CURSOR_RESIZE).then((img) => {
3747
+ __privateSet(this, _resizeCursorBaseImage, img);
3748
+ }).catch((err) => {
3749
+ console.error(err);
3750
+ });
3751
+ };
3752
+ _resetCursor = new WeakSet();
3753
+ resetCursor_fn = function(cursorKey) {
3754
+ if (__privateGet(this, _cursorType) === cursorKey) {
3755
+ return;
3762
3756
  }
3763
- }
3757
+ __privateSet(this, _cursorType, cursorKey);
3758
+ const image = __privateGet(this, _cursorImageMap)[__privateGet(this, _cursorType)] || __privateGet(this, _cursorImageMap)["auto"];
3759
+ let offsetX = 0;
3760
+ let offsetY = 0;
3761
+ if (cursorKey.startsWith("rotate-") && __privateGet(this, _cursorImageMap)[__privateGet(this, _cursorType)]) {
3762
+ offsetX = 10;
3763
+ offsetY = 10;
3764
+ }
3765
+ if (cursorKey === "default") {
3766
+ __privateGet(this, _container).style.cursor = "default";
3767
+ } else {
3768
+ __privateGet(this, _container).style.cursor = `image-set(url(${image})2x) ${offsetX} ${offsetY}, auto`;
3769
+ }
3770
+ };
3771
+ _setCursorResize = new WeakSet();
3772
+ setCursorResize_fn = function(e) {
3773
+ var _a;
3774
+ let totalAngle = 0;
3775
+ if (e.type === "resize-top") {
3776
+ totalAngle += 0;
3777
+ } else if (e.type === "resize-top-right") {
3778
+ totalAngle += 45;
3779
+ } else if (e.type === "resize-right") {
3780
+ totalAngle += 90;
3781
+ } else if (e.type === "resize-bottom-right") {
3782
+ totalAngle += 135;
3783
+ } else if (e.type === "resize-bottom") {
3784
+ totalAngle += 180;
3785
+ } else if (e.type === "resize-bottom-left") {
3786
+ totalAngle += 225;
3787
+ } else if (e.type === "resize-left") {
3788
+ totalAngle += 270;
3789
+ } else if (e.type === "resize-top-left") {
3790
+ totalAngle += 315;
3791
+ }
3792
+ totalAngle += limitAngle(((_a = e == null ? void 0 : e.element) == null ? void 0 : _a.angle) || 0);
3793
+ if (Array.isArray(e.groupQueue) && e.groupQueue.length > 0) {
3794
+ e.groupQueue.forEach((group) => {
3795
+ totalAngle += limitAngle(group.angle || 0);
3796
+ });
3797
+ }
3798
+ totalAngle = limitAngle(totalAngle);
3799
+ const cursorKey = __privateMethod(this, _appendRotateResizeImage, appendRotateResizeImage_fn).call(this, totalAngle);
3800
+ __privateMethod(this, _resetCursor, resetCursor_fn).call(this, cursorKey);
3801
+ };
3802
+ _appendRotateResizeImage = new WeakSet();
3803
+ appendRotateResizeImage_fn = function(angle2) {
3804
+ const key2 = `rotate-${angle2}`;
3805
+ if (!__privateGet(this, _cursorImageMap)[key2]) {
3806
+ const baseImage = __privateGet(this, _resizeCursorBaseImage);
3807
+ if (baseImage) {
3808
+ const canvas = document.createElement("canvas");
3809
+ const w2 = baseImage.width;
3810
+ const h2 = baseImage.height;
3811
+ const center = {
3812
+ x: w2 / 2,
3813
+ y: h2 / 2
3814
+ };
3815
+ canvas.width = w2;
3816
+ canvas.height = h2;
3817
+ const ctx = canvas.getContext("2d");
3818
+ const radian = parseAngleToRadian(angle2);
3819
+ ctx.translate(center.x, center.y);
3820
+ ctx.rotate(radian);
3821
+ ctx.translate(-center.x, -center.y);
3822
+ ctx.drawImage(baseImage, 0, 0, w2, h2);
3823
+ ctx.translate(center.x, center.y);
3824
+ ctx.rotate(-radian);
3825
+ ctx.translate(-center.x, -center.y);
3826
+ const base = canvas.toDataURL("image/png");
3827
+ __privateGet(this, _cursorImageMap)[key2] = base;
3828
+ }
3829
+ }
3830
+ return key2;
3831
+ };
3764
3832
  const key$2 = "SELECT";
3765
3833
  const keyActionType = Symbol(`${key$2}_actionType`);
3766
3834
  const keyResizeType = Symbol(`${key$2}_resizeType`);
@@ -4731,10 +4799,10 @@ var __privateMethod = (obj, member, method) => {
4731
4799
  elemH = element.h * scale;
4732
4800
  }
4733
4801
  textarea.style.position = "absolute";
4734
- textarea.style.left = `${elemX}px`;
4735
- textarea.style.top = `${elemY}px`;
4736
- textarea.style.width = `${elemW}px`;
4737
- textarea.style.height = `${elemH}px`;
4802
+ textarea.style.left = `${elemX - 1}px`;
4803
+ textarea.style.top = `${elemY - 1}px`;
4804
+ textarea.style.width = `${elemW + 2}px`;
4805
+ textarea.style.height = `${elemH + 2}px`;
4738
4806
  textarea.style.transform = `rotate(${limitAngle(element.angle || 0)}deg)`;
4739
4807
  textarea.style.boxSizing = "border-box";
4740
4808
  textarea.style.border = "1px solid #1973ba";
@@ -4747,6 +4815,9 @@ var __privateMethod = (obj, member, method) => {
4747
4815
  textarea.style.lineHeight = `${detail.lineHeight * scale}px`;
4748
4816
  textarea.style.fontFamily = detail.fontFamily;
4749
4817
  textarea.style.fontWeight = `${detail.fontWeight}`;
4818
+ textarea.style.padding = "0";
4819
+ textarea.style.margin = "0";
4820
+ textarea.style.outline = "none";
4750
4821
  textarea.value = detail.text || "";
4751
4822
  parent.appendChild(textarea);
4752
4823
  };
@@ -5898,9 +5969,9 @@ var __privateMethod = (obj, member, method) => {
5898
5969
  __privateAdd(this, _board, void 0);
5899
5970
  // #opts: CoreOptions;
5900
5971
  __privateAdd(this, _canvas, void 0);
5901
- __privateAdd(this, _container, void 0);
5972
+ __privateAdd(this, _container2, void 0);
5902
5973
  const { devicePixelRatio = 1, width, height, createCustomContext2D } = opts;
5903
- __privateSet(this, _container, container);
5974
+ __privateSet(this, _container2, container);
5904
5975
  const canvas = document.createElement("canvas");
5905
5976
  __privateSet(this, _canvas, canvas);
5906
5977
  __privateMethod(this, _initContainer, initContainer_fn).call(this);
@@ -5922,6 +5993,9 @@ var __privateMethod = (obj, member, method) => {
5922
5993
  eventHub
5923
5994
  });
5924
5995
  }
5996
+ isDestroyed() {
5997
+ return __privateGet(this, _board).isDestroyed();
5998
+ }
5925
5999
  destroy() {
5926
6000
  __privateGet(this, _board).destroy();
5927
6001
  __privateGet(this, _canvas).remove();
@@ -5987,13 +6061,19 @@ var __privateMethod = (obj, member, method) => {
5987
6061
  getLoadItemMap() {
5988
6062
  return __privateGet(this, _board).getRenderer().getLoadItemMap();
5989
6063
  }
6064
+ onBoardWatcherEvents() {
6065
+ __privateGet(this, _board).onWatcherEvents();
6066
+ }
6067
+ offBoardWatcherEvents() {
6068
+ __privateGet(this, _board).offWatcherEvents();
6069
+ }
5990
6070
  }
5991
6071
  _board = new WeakMap();
5992
6072
  _canvas = new WeakMap();
5993
- _container = new WeakMap();
6073
+ _container2 = new WeakMap();
5994
6074
  _initContainer = new WeakSet();
5995
6075
  initContainer_fn = function() {
5996
- const container = __privateGet(this, _container);
6076
+ const container = __privateGet(this, _container2);
5997
6077
  container.style.position = "relative";
5998
6078
  };
5999
6079
  exports.Core = Core;