@idraw/core 0.4.0-beta.33 → 0.4.0-beta.35

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.
@@ -824,14 +824,16 @@ var __privateMethod = (obj, member, method) => {
824
824
  throw new TypeError("Cannot read private member from an object whose class did not declare it");
825
825
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
826
826
  };
827
- var _Store_instances, _Store_temp, _Store_backUpDefaultStorage, _Store_createTempStorage;
827
+ var _Store_instances, _Store_temp, _Store_backUpDefaultStorage, _Store_static, _Store_createTempStorage;
828
828
  class Store {
829
829
  constructor(opts) {
830
830
  _Store_instances.add(this);
831
831
  _Store_temp.set(this, void 0);
832
832
  _Store_backUpDefaultStorage.set(this, void 0);
833
+ _Store_static.set(this, void 0);
833
834
  __classPrivateFieldSet$7(this, _Store_backUpDefaultStorage, deepClone(opts.defaultStorage), "f");
834
835
  __classPrivateFieldSet$7(this, _Store_temp, __classPrivateFieldGet$7(this, _Store_instances, "m", _Store_createTempStorage).call(this), "f");
836
+ __classPrivateFieldSet$7(this, _Store_static, opts.defaultStatic || {}, "f");
835
837
  }
836
838
  set(name, value) {
837
839
  __classPrivateFieldGet$7(this, _Store_temp, "f")[name] = value;
@@ -839,6 +841,12 @@ var __privateMethod = (obj, member, method) => {
839
841
  get(name) {
840
842
  return __classPrivateFieldGet$7(this, _Store_temp, "f")[name];
841
843
  }
844
+ setStatic(name, value) {
845
+ __classPrivateFieldGet$7(this, _Store_static, "f")[name] = value;
846
+ }
847
+ getStatic(name) {
848
+ return __classPrivateFieldGet$7(this, _Store_static, "f")[name];
849
+ }
842
850
  getSnapshot(opts) {
843
851
  if ((opts === null || opts === void 0 ? void 0 : opts.deepClone) === true) {
844
852
  return deepClone(__classPrivateFieldGet$7(this, _Store_temp, "f"));
@@ -850,9 +858,10 @@ var __privateMethod = (obj, member, method) => {
850
858
  }
851
859
  destroy() {
852
860
  __classPrivateFieldSet$7(this, _Store_temp, null, "f");
861
+ __classPrivateFieldSet$7(this, _Store_static, null, "f");
853
862
  }
854
863
  }
855
- _Store_temp = /* @__PURE__ */ new WeakMap(), _Store_backUpDefaultStorage = /* @__PURE__ */ new WeakMap(), _Store_instances = /* @__PURE__ */ new WeakSet(), _Store_createTempStorage = function _Store_createTempStorage2() {
864
+ _Store_temp = /* @__PURE__ */ new WeakMap(), _Store_backUpDefaultStorage = /* @__PURE__ */ new WeakMap(), _Store_static = /* @__PURE__ */ new WeakMap(), _Store_instances = /* @__PURE__ */ new WeakSet(), _Store_createTempStorage = function _Store_createTempStorage2() {
856
865
  return deepClone(__classPrivateFieldGet$7(this, _Store_backUpDefaultStorage, "f"));
857
866
  };
858
867
  function getViewScaleInfoFromSnapshot(snapshot) {
@@ -1266,6 +1275,36 @@ var __privateMethod = (obj, member, method) => {
1266
1275
  _loop(elements);
1267
1276
  return result;
1268
1277
  }
1278
+ function getElementPositionMapFromList(uuids, elements) {
1279
+ const currentPosition = [];
1280
+ const positionMap = {};
1281
+ let over = false;
1282
+ const _loop = (list) => {
1283
+ var _a;
1284
+ for (let i = 0; i < list.length; i++) {
1285
+ if (over === true) {
1286
+ break;
1287
+ }
1288
+ currentPosition.push(i);
1289
+ const elem = list[i];
1290
+ if (uuids.includes(elem.uuid)) {
1291
+ positionMap[elem.uuid] = [...currentPosition];
1292
+ if (Object.keys(positionMap).length === uuids.length) {
1293
+ over = true;
1294
+ break;
1295
+ }
1296
+ } else if (elem.type === "group") {
1297
+ _loop(((_a = elem === null || elem === void 0 ? void 0 : elem.detail) === null || _a === void 0 ? void 0 : _a.children) || []);
1298
+ }
1299
+ if (over) {
1300
+ break;
1301
+ }
1302
+ currentPosition.pop();
1303
+ }
1304
+ };
1305
+ _loop(elements);
1306
+ return positionMap;
1307
+ }
1269
1308
  function getElementVertexes(elemSize) {
1270
1309
  const { x: x2, y: y2, h: h2, w: w2 } = elemSize;
1271
1310
  return [
@@ -3680,6 +3719,9 @@ var __privateMethod = (obj, member, method) => {
3680
3719
  }
3681
3720
  });
3682
3721
  _BoardWatcher_onContextMenu.set(this, (e) => {
3722
+ if (e.button !== 2) {
3723
+ return;
3724
+ }
3683
3725
  if (!__classPrivateFieldGet$3(this, _BoardWatcher_instances, "m", _BoardWatcher_isInTarget).call(this, e)) {
3684
3726
  return;
3685
3727
  }
@@ -3688,6 +3730,7 @@ var __privateMethod = (obj, member, method) => {
3688
3730
  if (!__classPrivateFieldGet$3(this, _BoardWatcher_instances, "m", _BoardWatcher_isVaildPoint).call(this, point)) {
3689
3731
  return;
3690
3732
  }
3733
+ this.trigger("contextMenu", { point });
3691
3734
  });
3692
3735
  _BoardWatcher_onClick.set(this, (e) => {
3693
3736
  if (!__classPrivateFieldGet$3(this, _BoardWatcher_instances, "m", _BoardWatcher_isInTarget).call(this, e)) {
@@ -3745,6 +3788,9 @@ var __privateMethod = (obj, member, method) => {
3745
3788
  this.trigger("pointMove", { point });
3746
3789
  });
3747
3790
  _BoardWatcher_onPointStart.set(this, (e) => {
3791
+ if (e.button !== 0) {
3792
+ return;
3793
+ }
3748
3794
  if (!__classPrivateFieldGet$3(this, _BoardWatcher_instances, "m", _BoardWatcher_isInTarget).call(this, e)) {
3749
3795
  return;
3750
3796
  }
@@ -4113,7 +4159,7 @@ var __privateMethod = (obj, member, method) => {
4113
4159
  throw new TypeError("Cannot read private member from an object whose class did not declare it");
4114
4160
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
4115
4161
  };
4116
- 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;
4162
+ 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_handleContextMenu, _Board_handleWheel, _Board_handleWheelScale, _Board_handleScrollX, _Board_handleScrollY, _Board_handleResize, _Board_handleClear, _Board_handleBeforeDrawFrame, _Board_handleAfterDrawFrame, _Board_resetActiveMiddlewareObjs;
4117
4163
  class Board {
4118
4164
  constructor(opts) {
4119
4165
  _Board_instances.add(this);
@@ -4306,6 +4352,7 @@ var __privateMethod = (obj, member, method) => {
4306
4352
  __classPrivateFieldGet(this, _Board_watcher, "f").on("scrollY", __classPrivateFieldGet(this, _Board_instances, "m", _Board_handleScrollY).bind(this));
4307
4353
  __classPrivateFieldGet(this, _Board_watcher, "f").on("resize", __classPrivateFieldGet(this, _Board_instances, "m", _Board_handleResize).bind(this));
4308
4354
  __classPrivateFieldGet(this, _Board_watcher, "f").on("doubleClick", __classPrivateFieldGet(this, _Board_instances, "m", _Board_handleDoubleClick).bind(this));
4355
+ __classPrivateFieldGet(this, _Board_watcher, "f").on("contextMenu", __classPrivateFieldGet(this, _Board_instances, "m", _Board_handleContextMenu).bind(this));
4309
4356
  __classPrivateFieldGet(this, _Board_renderer, "f").on("load", () => {
4310
4357
  __classPrivateFieldGet(this, _Board_eventHub, "f").trigger("loadResource");
4311
4358
  });
@@ -4354,6 +4401,15 @@ var __privateMethod = (obj, member, method) => {
4354
4401
  return;
4355
4402
  }
4356
4403
  }
4404
+ }, _Board_handleContextMenu = function _Board_handleContextMenu2(e) {
4405
+ var _a;
4406
+ for (let i = 0; i < __classPrivateFieldGet(this, _Board_activeMiddlewareObjs, "f").length; i++) {
4407
+ const obj = __classPrivateFieldGet(this, _Board_activeMiddlewareObjs, "f")[i];
4408
+ const result = (_a = obj === null || obj === void 0 ? void 0 : obj.contextMenu) === null || _a === void 0 ? void 0 : _a.call(obj, e);
4409
+ if (result === false) {
4410
+ return;
4411
+ }
4412
+ }
4357
4413
  }, _Board_handleWheel = function _Board_handleWheel2(e) {
4358
4414
  var _a;
4359
4415
  for (let i = 0; i < __classPrivateFieldGet(this, _Board_activeMiddlewareObjs, "f").length; i++) {
@@ -4442,6 +4498,36 @@ var __privateMethod = (obj, member, method) => {
4442
4498
  const CURSOR_DRAG_DEFAULT = `data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAApCAYAAABHomvIAAAEvUlEQVRYhc2Y20/cVRDHP8v+uKzAWkpDCtZq8BYhJkq8PBoJxgj7I2m0ryaSyFN9IT74pI8+8WJiggRj/APApFkSTGRJ+qKGUiyxbGPEWsUSuVhYC12Wy8+HmeMeYPe3d3WSye/k/M7le+bMzJkZ+J9ToEJreGVYN+vihcytstjQocUlAw0WCSoIVCv3Ae8CXwIt+u8XHVeOG8qLqgAHqAFCQCNwGugCthBJGd7S/tM6LqTzHI5KuqzgaoAHgEvAtwrkG2AG8FzXvep5nue67lX9N6P/PR1/SefXlBtkFXKNDUA/RyX1D9uUbYzOb9D1ygbSQU7eDMxhSSsSiVz3AxiJRK57nuf19/fPad8coqONFCBJPyUOIKc1OvcbgiY9ICDT8+0DHge2gR0gBeyTtviM5HeKAGlrrfMZVwhdAVaAr4F3KNF4gkA9cBbowOc68+3LwDn1Mhdy4/OcYk54nPr6+m54nofruvPa9SFQ6wfQTweNgTwInAGuQWk6mEUvHwb+Au4Dexx7ffK9+0q+CHWIBIOZ9skHYKWfK9tQ8gZoLDjIyWCg3ORY+2T8aYOyg4EaRIFrkCs4QU1NTSvabC20zyIDzuyfkYzEahHX8jHwE/LwXwHeJ4P7KIVIu5ouxFDC+HgLAy4MfEF2v1UpgOezATSiNVf6EvAWsD01NXVtdnb2bk9Pz81sp/q3KIi8t83Ae4DX0tJy0z7t8PDwD4FAYIX/WILVwKMAzc3Nu/agoaGhzmg0ugcsV0hIvlSNoH8IuIiebHJycrls4sotwaxGYvueAPAjEg3jum79yMjIr5WUjFLOxMpBIopWoBN4GfhOJ+4NDg4ulVt6i4uLm7r+BvAscA4fCXrAAfJQJ5Fg8gPgMuCMjo62d3V1LW1sbKRKlpXSxMTEmjZ/5qQrOwHwUAGmkIjiHhJdfKrM/Pz8Y+3t7RvT09Ob5QAYi8X2tbmke2cEZwAaCdoAt5QvIzEbiUSitbe3tyoej++UCnBhYSGkzdu6d1aQxkgOkfwgieQMCeCu8iwSnpNKpcIdHR3BZDJ5UCy4SCSyvL6+/giiSou67wE+eYmhAKKkIaAJUdynkdflNcQF3dFTpooxjmg0aozDAz4DXkB8bxPy1OYM7QzIOuAU0AY8pQu9CrwJ3AK8UCj0RyHgZmZmli1w3wOvAM/oHo1kiZiygbSDh7PAE8DzQA/wBqKnnuM4a2NjY7dygbtw4cICRy31deBFJA09o7eWsU7kJ1KTLJmyRyOSn5zS70fAkwBtbW2/DwwMHHR3d9d3dnY2rK6u7o2Pj2/GYrH9eDzurK2tndM1vwI+QXT7T2BTD5skQz6SCyAcLRoZkGEFGQbeRqpbubK+BPA5MI14h00L3I6Cy2h4+eQbJsKuRa6iQcGFFfB5oBt4DpFsI+Ky7iDBxW3gBhBH/GtC+R7i1lKk3UxRAG2QpvxWr0AbtB3SA5jkx36djH/dVlDbyibN3M8GDvJPyI2PSulixm/u6kZ1OQCaJ/S+tndJX6tvsFBIxcCUdA3vW5ubxMrObc0hDMhd/Rqp5QQHxeW8dubnHGM7tzVv/IECMlxQ/bpcRfRMqaNRheNcUGG9XFWDACfzWs/6Fl3t/xtO//8gpbCORQAAAABJRU5ErkJggg==`;
4443
4499
  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`;
4444
4500
  const CURSOR_RESIZE_ROTATE = `data:image/png;base64,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`;
4501
+ const EVENT_KEY_CHANGE = "change";
4502
+ const EVENT_KEY_CURSOR = "cursor";
4503
+ const EVENT_KEY_RULER = "ruler";
4504
+ const EVENT_KEY_SCALE = "scale";
4505
+ const EVENT_KEY_SELECT = "select";
4506
+ const EVENT_KEY_CLEAR_SELECT = "clearSelect";
4507
+ const EVENT_KEY_TEXT_EDIT = "textEdit";
4508
+ const EVENT_KEY_TEXT_CHANGE = "textChange";
4509
+ const EVENT_KEY_CONTEXT_MENU = "contextMenu";
4510
+ const EVENT_KEY_SELECT_IN_GROUP = "selectInGroup";
4511
+ const innerEventKeys = {
4512
+ CURSOR: EVENT_KEY_CURSOR,
4513
+ CHANGE: EVENT_KEY_CHANGE,
4514
+ RULER: EVENT_KEY_RULER,
4515
+ SCALE: EVENT_KEY_SCALE,
4516
+ SELECT: EVENT_KEY_SELECT,
4517
+ CLEAR_SELECT: EVENT_KEY_CLEAR_SELECT,
4518
+ TEXT_EDIT: EVENT_KEY_TEXT_EDIT,
4519
+ TEXT_CHANGE: EVENT_KEY_TEXT_CHANGE,
4520
+ CONTEXT_MENU: EVENT_KEY_CONTEXT_MENU,
4521
+ SELECT_IN_GROUP: EVENT_KEY_SELECT_IN_GROUP,
4522
+ SNAP_TO_GRID: EVENT_KEY_SELECT_IN_GROUP
4523
+ };
4524
+ const coreEventKeys = {};
4525
+ Object.keys(innerEventKeys).forEach((keyName) => {
4526
+ Object.defineProperty(coreEventKeys, keyName, {
4527
+ value: innerEventKeys[keyName],
4528
+ writable: false
4529
+ });
4530
+ });
4445
4531
  class Cursor {
4446
4532
  constructor(container, opts) {
4447
4533
  __privateAdd(this, _init);
@@ -4475,7 +4561,7 @@ var __privateMethod = (obj, member, method) => {
4475
4561
  init_fn = function() {
4476
4562
  const eventHub = __privateGet(this, _eventHub);
4477
4563
  __privateMethod(this, _resetCursor, resetCursor_fn).call(this, "default");
4478
- eventHub.on("cursor", (e) => {
4564
+ eventHub.on(coreEventKeys.CURSOR, (e) => {
4479
4565
  var _a;
4480
4566
  if (e.type === "over-element" || !e.type) {
4481
4567
  __privateMethod(this, _resetCursor, resetCursor_fn).call(this, "auto");
@@ -4583,7 +4669,6 @@ var __privateMethod = (obj, member, method) => {
4583
4669
  }
4584
4670
  return key2;
4585
4671
  };
4586
- const eventChange = "change";
4587
4672
  const key$3 = "SELECT";
4588
4673
  const keyActionType = Symbol(`${key$3}_actionType`);
4589
4674
  const keyResizeType = Symbol(`${key$3}_resizeType`);
@@ -4614,10 +4699,6 @@ var __privateMethod = (obj, member, method) => {
4614
4699
  lockedColor,
4615
4700
  referenceColor
4616
4701
  };
4617
- const middlewareEventSelect = "@middleware/select";
4618
- const middlewareEventSelectClear = "@middleware/select-clear";
4619
- const middlewareEventSelectInGroup = "@middleware/select-in-group";
4620
- const middlewareEventSnapToGrid = "@middleware/snap-to-grid";
4621
4702
  function drawVertexes(ctx, vertexes, opts) {
4622
4703
  const { borderColor: borderColor2, borderWidth: borderWidth2, background: background2, lineDash } = opts;
4623
4704
  ctx.setLineDash([]);
@@ -5872,228 +5953,6 @@ var __privateMethod = (obj, member, method) => {
5872
5953
  xLines
5873
5954
  };
5874
5955
  }
5875
- const middlewareEventTextEdit = "@middleware/text-edit";
5876
- const middlewareEventTextChange = "@middleware/text-change";
5877
- const defaultElementDetail = getDefaultElementDetailConfig();
5878
- const MiddlewareTextEditor = (opts) => {
5879
- const { eventHub, boardContent, viewer, sharer } = opts;
5880
- const canvas = boardContent.boardContext.canvas;
5881
- const textarea = document.createElement("div");
5882
- textarea.setAttribute("contenteditable", "true");
5883
- const canvasWrapper = document.createElement("div");
5884
- const container = opts.container || document.body;
5885
- const mask = document.createElement("div");
5886
- let activeElem = null;
5887
- let activePosition = [];
5888
- canvasWrapper.appendChild(textarea);
5889
- canvasWrapper.style.position = "absolute";
5890
- mask.appendChild(canvasWrapper);
5891
- mask.style.position = "fixed";
5892
- mask.style.top = "0";
5893
- mask.style.bottom = "0";
5894
- mask.style.left = "0";
5895
- mask.style.right = "0";
5896
- mask.style.display = "none";
5897
- container.appendChild(mask);
5898
- const showTextArea = (e) => {
5899
- resetCanvasWrapper();
5900
- resetTextArea(e);
5901
- mask.style.display = "block";
5902
- if (activeElem == null ? void 0 : activeElem.uuid) {
5903
- sharer.setActiveOverrideElemenentMap({
5904
- [activeElem.uuid]: {
5905
- operations: { invisible: true }
5906
- }
5907
- });
5908
- viewer.drawFrame();
5909
- }
5910
- };
5911
- const hideTextArea = () => {
5912
- if (activeElem == null ? void 0 : activeElem.uuid) {
5913
- const map = sharer.getActiveOverrideElemenentMap();
5914
- if (map) {
5915
- delete map[activeElem.uuid];
5916
- }
5917
- sharer.setActiveOverrideElemenentMap(map);
5918
- viewer.drawFrame();
5919
- }
5920
- mask.style.display = "none";
5921
- activeElem = null;
5922
- activePosition = [];
5923
- };
5924
- const getCanvasRect = () => {
5925
- const clientRect = canvas.getBoundingClientRect();
5926
- const { left, top, width, height } = clientRect;
5927
- return { left, top, width, height };
5928
- };
5929
- const createBox = (opts2) => {
5930
- const { size, parent } = opts2;
5931
- const div = document.createElement("div");
5932
- const { x: x2, y: y2, w: w2, h: h2 } = size;
5933
- const angle2 = limitAngle(size.angle || 0);
5934
- div.style.position = "absolute";
5935
- div.style.left = `${x2}px`;
5936
- div.style.top = `${y2}px`;
5937
- div.style.width = `${w2}px`;
5938
- div.style.height = `${h2}px`;
5939
- div.style.transform = `rotate(${angle2}deg)`;
5940
- parent.appendChild(div);
5941
- return div;
5942
- };
5943
- const resetTextArea = (e) => {
5944
- const { viewScaleInfo, element, groupQueue } = e;
5945
- const { scale, offsetTop, offsetLeft } = viewScaleInfo;
5946
- if (canvasWrapper.children) {
5947
- Array.from(canvasWrapper.children).forEach((child) => {
5948
- child.remove();
5949
- });
5950
- }
5951
- let parent = canvasWrapper;
5952
- for (let i = 0; i < groupQueue.length; i++) {
5953
- const group = groupQueue[i];
5954
- const { x: x2, y: y2, w: w2, h: h2 } = group;
5955
- const angle2 = limitAngle(group.angle || 0);
5956
- const size = {
5957
- x: x2 * scale,
5958
- y: y2 * scale,
5959
- w: w2 * scale,
5960
- h: h2 * scale,
5961
- angle: angle2
5962
- };
5963
- if (i === 0) {
5964
- size.x += offsetLeft;
5965
- size.y += offsetTop;
5966
- }
5967
- parent = createBox({ size, parent });
5968
- }
5969
- const detail = {
5970
- ...defaultElementDetail,
5971
- ...element.detail
5972
- };
5973
- let elemX = element.x * scale + offsetLeft;
5974
- let elemY = element.y * scale + offsetTop;
5975
- let elemW = element.w * scale;
5976
- let elemH = element.h * scale;
5977
- if (groupQueue.length > 0) {
5978
- elemX = element.x * scale;
5979
- elemY = element.y * scale;
5980
- elemW = element.w * scale;
5981
- elemH = element.h * scale;
5982
- }
5983
- let justifyContent = "center";
5984
- let alignItems = "center";
5985
- if (detail.textAlign === "left") {
5986
- justifyContent = "start";
5987
- } else if (detail.textAlign === "right") {
5988
- justifyContent = "end";
5989
- }
5990
- if (detail.verticalAlign === "top") {
5991
- alignItems = "start";
5992
- } else if (detail.verticalAlign === "bottom") {
5993
- alignItems = "end";
5994
- }
5995
- textarea.style.display = "inline-flex";
5996
- textarea.style.justifyContent = justifyContent;
5997
- textarea.style.alignItems = alignItems;
5998
- textarea.style.position = "absolute";
5999
- textarea.style.left = `${elemX - 1}px`;
6000
- textarea.style.top = `${elemY - 1}px`;
6001
- textarea.style.width = `${elemW + 2}px`;
6002
- textarea.style.height = `${elemH + 2}px`;
6003
- textarea.style.transform = `rotate(${limitAngle(element.angle || 0)}deg)`;
6004
- textarea.style.boxSizing = "border-box";
6005
- textarea.style.border = "1px solid #1973ba";
6006
- textarea.style.resize = "none";
6007
- textarea.style.overflow = "hidden";
6008
- textarea.style.wordBreak = "break-all";
6009
- textarea.style.borderRadius = `${(typeof detail.borderRadius === "number" ? detail.borderRadius : 0) * scale}px`;
6010
- textarea.style.background = `${detail.background || "transparent"}`;
6011
- textarea.style.color = `${detail.color || "#333333"}`;
6012
- textarea.style.fontSize = `${detail.fontSize * scale}px`;
6013
- textarea.style.lineHeight = `${(detail.lineHeight || detail.fontSize) * scale}px`;
6014
- textarea.style.fontFamily = enhanceFontFamliy(detail.fontFamily);
6015
- textarea.style.fontWeight = `${detail.fontWeight}`;
6016
- textarea.style.padding = "0";
6017
- textarea.style.margin = "0";
6018
- textarea.style.outline = "none";
6019
- textarea.innerText = detail.text || "";
6020
- parent.appendChild(textarea);
6021
- };
6022
- const resetCanvasWrapper = () => {
6023
- const { left, top, width, height } = getCanvasRect();
6024
- canvasWrapper.style.position = "absolute";
6025
- canvasWrapper.style.overflow = "hidden";
6026
- canvasWrapper.style.top = `${top}px`;
6027
- canvasWrapper.style.left = `${left}px`;
6028
- canvasWrapper.style.width = `${width}px`;
6029
- canvasWrapper.style.height = `${height}px`;
6030
- };
6031
- mask.addEventListener("click", () => {
6032
- hideTextArea();
6033
- });
6034
- textarea.addEventListener("click", (e) => {
6035
- e.stopPropagation();
6036
- });
6037
- textarea.addEventListener("input", () => {
6038
- if (activeElem && activePosition) {
6039
- activeElem.detail.text = textarea.innerText || "";
6040
- eventHub.trigger(middlewareEventTextChange, {
6041
- element: {
6042
- uuid: activeElem.uuid,
6043
- detail: {
6044
- text: activeElem.detail.text
6045
- }
6046
- },
6047
- position: [...activePosition || []]
6048
- });
6049
- viewer.drawFrame();
6050
- }
6051
- });
6052
- textarea.addEventListener("blur", () => {
6053
- if (activeElem && activePosition) {
6054
- eventHub.trigger(middlewareEventTextChange, {
6055
- element: {
6056
- uuid: activeElem.uuid,
6057
- detail: {
6058
- text: activeElem.detail.text
6059
- }
6060
- },
6061
- position: [...activePosition]
6062
- });
6063
- }
6064
- hideTextArea();
6065
- });
6066
- textarea.addEventListener("keydown", (e) => {
6067
- e.stopPropagation();
6068
- });
6069
- textarea.addEventListener("keypress", (e) => {
6070
- e.stopPropagation();
6071
- });
6072
- textarea.addEventListener("keyup", (e) => {
6073
- e.stopPropagation();
6074
- });
6075
- textarea.addEventListener("wheel", (e) => {
6076
- e.stopPropagation();
6077
- e.preventDefault();
6078
- });
6079
- const textEditCallback = (e) => {
6080
- var _a;
6081
- if ((e == null ? void 0 : e.position) && (e == null ? void 0 : e.element) && ((_a = e == null ? void 0 : e.element) == null ? void 0 : _a.type) === "text") {
6082
- activeElem = e.element;
6083
- activePosition = e.position;
6084
- }
6085
- showTextArea(e);
6086
- };
6087
- return {
6088
- name: "@middleware/text-editor",
6089
- use() {
6090
- eventHub.on(middlewareEventTextEdit, textEditCallback);
6091
- },
6092
- disuse() {
6093
- eventHub.off(middlewareEventTextEdit, textEditCallback);
6094
- }
6095
- };
6096
- };
6097
5956
  const key$2 = "LAYOUT_SELECT";
6098
5957
  const keyLayoutActionType = Symbol(`${key$2}_layoutActionType`);
6099
5958
  const keyLayoutControlType = Symbol(`${key$2}_layoutControlType`);
@@ -6260,7 +6119,7 @@ var __privateMethod = (obj, member, method) => {
6260
6119
  }
6261
6120
  if (layoutControlType) {
6262
6121
  sharer.setSharedStorage(keyLayoutControlType, layoutControlType);
6263
- eventHub.trigger(middlewareEventSelectClear, {});
6122
+ eventHub.trigger(coreEventKeys.CLEAR_SELECT);
6264
6123
  return layoutControlType;
6265
6124
  }
6266
6125
  }
@@ -6271,7 +6130,7 @@ var __privateMethod = (obj, member, method) => {
6271
6130
  if (isBusy === true) {
6272
6131
  return;
6273
6132
  }
6274
- eventHub.trigger("cursor", {
6133
+ eventHub.trigger(coreEventKeys.CURSOR, {
6275
6134
  type: controlType ? `resize-${controlType}` : controlType,
6276
6135
  groupQueue: [],
6277
6136
  element: getLayoutSize()
@@ -6445,7 +6304,7 @@ var __privateMethod = (obj, member, method) => {
6445
6304
  const layoutControlType = sharer.getSharedStorage(keyLayoutControlType);
6446
6305
  const data = sharer.getActiveStorage("data");
6447
6306
  if (data && layoutActionType === "resize" && layoutControlType) {
6448
- eventHub.trigger(eventChange, {
6307
+ eventHub.trigger(coreEventKeys.CHANGE, {
6449
6308
  type: "changeLayout",
6450
6309
  data
6451
6310
  });
@@ -6498,6 +6357,7 @@ var __privateMethod = (obj, member, method) => {
6498
6357
  let moveOriginalStartPoint = null;
6499
6358
  let moveOriginalStartElementSize = null;
6500
6359
  let inBusyMode = null;
6360
+ let hasChangedData = null;
6501
6361
  sharer.setSharedStorage(keyActionType, null);
6502
6362
  sharer.setSharedStorage(keyEnableSnapToGrid, true);
6503
6363
  const getActiveElements = () => {
@@ -6548,7 +6408,10 @@ var __privateMethod = (obj, member, method) => {
6548
6408
  sharer.setSharedStorage(keySelectedElementPosition, []);
6549
6409
  }
6550
6410
  if ((opts2 == null ? void 0 : opts2.triggerEvent) === true) {
6551
- eventHub.trigger(middlewareEventSelect, { uuids: list.map((elem) => elem.uuid) });
6411
+ const uuids = list.map((elem) => elem.uuid);
6412
+ const data = sharer.getActiveStorage("data");
6413
+ const positionMap = getElementPositionMapFromList(uuids, (data == null ? void 0 : data.elements) || []);
6414
+ eventHub.trigger(coreEventKeys.SELECT, { uuids, positions: list.map((elem) => [...positionMap[elem.uuid]]) });
6552
6415
  }
6553
6416
  };
6554
6417
  const pointTargetBaseOptions = () => {
@@ -6581,7 +6444,7 @@ var __privateMethod = (obj, member, method) => {
6581
6444
  sharer.setSharedStorage(keyIsMoving, null);
6582
6445
  };
6583
6446
  clear();
6584
- const selectCallback = ({ uuids, positions }) => {
6447
+ const selectCallback = ({ uuids = [], positions }) => {
6585
6448
  let elements = [];
6586
6449
  const actionType = sharer.getSharedStorage(keyActionType);
6587
6450
  const data = sharer.getActiveStorage("data");
@@ -6618,16 +6481,16 @@ var __privateMethod = (obj, member, method) => {
6618
6481
  return {
6619
6482
  name: "@middleware/selector",
6620
6483
  use() {
6621
- eventHub.on(middlewareEventSelect, selectCallback);
6622
- eventHub.on(middlewareEventSelectClear, selectClearCallback);
6623
- eventHub.on(middlewareEventSelectInGroup, selectInGroupCallback);
6624
- eventHub.on(middlewareEventSnapToGrid, setSnapToSnapCallback);
6484
+ eventHub.on(coreEventKeys.SELECT, selectCallback);
6485
+ eventHub.on(coreEventKeys.CLEAR_SELECT, selectClearCallback);
6486
+ eventHub.on(coreEventKeys.SELECT_IN_GROUP, selectInGroupCallback);
6487
+ eventHub.on(coreEventKeys.SNAP_TO_GRID, setSnapToSnapCallback);
6625
6488
  },
6626
6489
  disuse() {
6627
- eventHub.off(middlewareEventSelect, selectCallback);
6628
- eventHub.off(middlewareEventSelectClear, selectClearCallback);
6629
- eventHub.off(middlewareEventSelectInGroup, selectInGroupCallback);
6630
- eventHub.off(middlewareEventSnapToGrid, setSnapToSnapCallback);
6490
+ eventHub.off(coreEventKeys.SELECT, selectCallback);
6491
+ eventHub.off(coreEventKeys.CLEAR_SELECT, selectClearCallback);
6492
+ eventHub.off(coreEventKeys.SELECT_IN_GROUP, selectInGroupCallback);
6493
+ eventHub.off(coreEventKeys.SNAP_TO_GRID, setSnapToSnapCallback);
6631
6494
  },
6632
6495
  hover: (e) => {
6633
6496
  var _a, _b, _c, _d, _e;
@@ -6641,7 +6504,7 @@ var __privateMethod = (obj, member, method) => {
6641
6504
  }
6642
6505
  const cursor = target2.type;
6643
6506
  if (inBusyMode === null) {
6644
- eventHub.trigger("cursor", {
6507
+ eventHub.trigger(coreEventKeys.CURSOR, {
6645
6508
  type: cursor,
6646
6509
  groupQueue: target2.groupQueue,
6647
6510
  element: target2.elements[0]
@@ -6734,15 +6597,14 @@ var __privateMethod = (obj, member, method) => {
6734
6597
  groupQueue
6735
6598
  })) {
6736
6599
  const target2 = getPointTarget(e.point, pointTargetBaseOptions());
6737
- if (((_a = target2 == null ? void 0 : target2.elements) == null ? void 0 : _a.length) === 1 && ((_c = (_b = target2.elements[0]) == null ? void 0 : _b.operations) == null ? void 0 : _c.locked) === true) {
6738
- return;
6739
- } else {
6740
- updateHoverElement(null);
6741
- }
6600
+ const isLockedElement2 = ((_a = target2 == null ? void 0 : target2.elements) == null ? void 0 : _a.length) === 1 && ((_c = (_b = target2.elements[0]) == null ? void 0 : _b.operations) == null ? void 0 : _c.locked) === true;
6601
+ updateHoverElement(null);
6742
6602
  if (((_d = target2 == null ? void 0 : target2.elements) == null ? void 0 : _d.length) === 1) {
6743
6603
  moveOriginalStartElementSize = getElementSize(target2 == null ? void 0 : target2.elements[0]);
6744
6604
  }
6745
- if (target2.type === "over-element" && ((_e = target2 == null ? void 0 : target2.elements) == null ? void 0 : _e.length) === 1) {
6605
+ if (isLockedElement2 === true) {
6606
+ clear();
6607
+ } else if (target2.type === "over-element" && ((_e = target2 == null ? void 0 : target2.elements) == null ? void 0 : _e.length) === 1) {
6746
6608
  updateSelectedElementList([target2.elements[0]], { triggerEvent: true });
6747
6609
  sharer.setSharedStorage(keyActionType, "drag");
6748
6610
  } else if ((_f = target2.type) == null ? void 0 : _f.startsWith("resize-")) {
@@ -6768,27 +6630,23 @@ var __privateMethod = (obj, member, method) => {
6768
6630
  groupQueue: []
6769
6631
  });
6770
6632
  const isLockedElement = ((_g = target == null ? void 0 : target.elements) == null ? void 0 : _g.length) === 1 && ((_i = (_h = target.elements[0]) == null ? void 0 : _h.operations) == null ? void 0 : _i.locked) === true;
6771
- if (!isLockedElement) {
6772
- updateHoverElement(null);
6773
- }
6633
+ updateHoverElement(null);
6774
6634
  if (((_j = target == null ? void 0 : target.elements) == null ? void 0 : _j.length) === 1) {
6775
6635
  moveOriginalStartElementSize = getElementSize(target == null ? void 0 : target.elements[0]);
6776
6636
  }
6777
- if (!isLockedElement) {
6778
- if (target.type === "list-area") {
6779
- sharer.setSharedStorage(keyActionType, "drag-list");
6780
- } else if (target.type === "over-element" && ((_k = target == null ? void 0 : target.elements) == null ? void 0 : _k.length) === 1) {
6781
- updateSelectedElementList([target.elements[0]], { triggerEvent: true });
6782
- sharer.setSharedStorage(keyActionType, "drag");
6783
- } else if ((_l = target.type) == null ? void 0 : _l.startsWith("resize-")) {
6784
- sharer.setSharedStorage(keyResizeType, target.type);
6785
- sharer.setSharedStorage(keyActionType, "resize");
6786
- } else {
6787
- clear();
6788
- sharer.setSharedStorage(keyActionType, "area");
6789
- sharer.setSharedStorage(keyAreaStart, e.point);
6790
- updateSelectedElementList([], { triggerEvent: true });
6791
- }
6637
+ if (isLockedElement === true) {
6638
+ clear();
6639
+ sharer.setSharedStorage(keyActionType, "area");
6640
+ sharer.setSharedStorage(keyAreaStart, e.point);
6641
+ updateSelectedElementList([], { triggerEvent: true });
6642
+ } else if (target.type === "list-area") {
6643
+ sharer.setSharedStorage(keyActionType, "drag-list");
6644
+ } else if (target.type === "over-element" && ((_k = target == null ? void 0 : target.elements) == null ? void 0 : _k.length) === 1) {
6645
+ updateSelectedElementList([target.elements[0]], { triggerEvent: true });
6646
+ sharer.setSharedStorage(keyActionType, "drag");
6647
+ } else if ((_l = target.type) == null ? void 0 : _l.startsWith("resize-")) {
6648
+ sharer.setSharedStorage(keyResizeType, target.type);
6649
+ sharer.setSharedStorage(keyActionType, "resize");
6792
6650
  } else {
6793
6651
  clear();
6794
6652
  sharer.setSharedStorage(keyActionType, "area");
@@ -6813,6 +6671,7 @@ var __privateMethod = (obj, member, method) => {
6813
6671
  const groupQueue = sharer.getSharedStorage(keyGroupQueue);
6814
6672
  const enableSnapToGrid = sharer.getSharedStorage(keyEnableSnapToGrid);
6815
6673
  if (actionType === "drag") {
6674
+ hasChangedData = true;
6816
6675
  inBusyMode = "drag";
6817
6676
  if (data && (elems == null ? void 0 : elems.length) === 1 && moveOriginalStartElementSize && originalStart && end && ((_b = (_a = elems[0]) == null ? void 0 : _a.operations) == null ? void 0 : _b.locked) !== true) {
6818
6677
  const { moveX, moveY } = calcMoveInGroup(originalStart, end, groupQueue);
@@ -6856,6 +6715,7 @@ var __privateMethod = (obj, member, method) => {
6856
6715
  }
6857
6716
  viewer.drawFrame();
6858
6717
  } else if (actionType === "drag-list") {
6718
+ hasChangedData = true;
6859
6719
  inBusyMode = "drag-list";
6860
6720
  if (data && originalStart && start && end && (elems == null ? void 0 : elems.length) > 1) {
6861
6721
  const moveX = (end.x - start.x) / scale;
@@ -6883,6 +6743,7 @@ var __privateMethod = (obj, member, method) => {
6883
6743
  viewer.drawFrame();
6884
6744
  } else if (actionType === "resize") {
6885
6745
  if (data && (elems == null ? void 0 : elems.length) === 1 && originalStart && moveOriginalStartElementSize && (resizeType == null ? void 0 : resizeType.startsWith("resize-"))) {
6746
+ hasChangedData = true;
6886
6747
  inBusyMode = "resize";
6887
6748
  const pointGroupQueue = [];
6888
6749
  groupQueue.forEach((group) => {
@@ -7023,7 +6884,10 @@ var __privateMethod = (obj, member, method) => {
7023
6884
  }
7024
6885
  if (data && ["drag", "drag-list", "drag-list-end", "resize"].includes(actionType)) {
7025
6886
  let type = "dragElement";
7026
- eventHub.trigger(eventChange, { data, type, selectedElements, hoverElement });
6887
+ if (hasChangedData) {
6888
+ eventHub.trigger(coreEventKeys.CHANGE, { data, type, selectedElements, hoverElement });
6889
+ hasChangedData = false;
6890
+ }
7027
6891
  }
7028
6892
  viewer.drawFrame();
7029
6893
  };
@@ -7055,7 +6919,7 @@ var __privateMethod = (obj, member, method) => {
7055
6919
  return;
7056
6920
  }
7057
6921
  } else if (target.elements.length === 1 && ((_d = target.elements[0]) == null ? void 0 : _d.type) === "text" && !((_f = (_e = target.elements[0]) == null ? void 0 : _e.operations) == null ? void 0 : _f.invisible)) {
7058
- eventHub.trigger(middlewareEventTextEdit, {
6922
+ eventHub.trigger(coreEventKeys.TEXT_EDIT, {
7059
6923
  element: target.elements[0],
7060
6924
  groupQueue: sharer.getSharedStorage(keyGroupQueue) || [],
7061
6925
  position: getElementPositionFromList((_g = target.elements[0]) == null ? void 0 : _g.uuid, ((_h = sharer.getActiveStorage("data")) == null ? void 0 : _h.elements) || []),
@@ -7064,6 +6928,46 @@ var __privateMethod = (obj, member, method) => {
7064
6928
  }
7065
6929
  sharer.setSharedStorage(keyActionType, null);
7066
6930
  },
6931
+ contextMenu: (e) => {
6932
+ var _a, _b, _c, _d, _e, _f, _g, _h;
6933
+ const groupQueue = sharer.getSharedStorage(keyGroupQueue);
6934
+ if ((groupQueue == null ? void 0 : groupQueue.length) > 0) {
6935
+ if (isPointInViewActiveGroup(e.point, {
6936
+ ctx: overlayContext,
6937
+ viewScaleInfo: sharer.getActiveViewScaleInfo(),
6938
+ viewSizeInfo: sharer.getActiveViewSizeInfo(),
6939
+ groupQueue
6940
+ })) {
6941
+ const target2 = getPointTarget(e.point, pointTargetBaseOptions());
6942
+ if (((_a = target2 == null ? void 0 : target2.elements) == null ? void 0 : _a.length) === 1 && ((_c = (_b = target2.elements[0]) == null ? void 0 : _b.operations) == null ? void 0 : _c.locked) !== true) {
6943
+ clear();
6944
+ updateSelectedElementList([target2.elements[0]], { triggerEvent: true });
6945
+ viewer.drawFrame();
6946
+ } else if (!((_d = target2 == null ? void 0 : target2.elements) == null ? void 0 : _d.length)) {
6947
+ clear();
6948
+ }
6949
+ }
6950
+ return;
6951
+ }
6952
+ const listAreaSize = calcSelectedElementsArea(getActiveElements(), {
6953
+ viewScaleInfo: sharer.getActiveViewScaleInfo(),
6954
+ viewSizeInfo: sharer.getActiveViewSizeInfo(),
6955
+ calculator
6956
+ });
6957
+ const target = getPointTarget(e.point, {
6958
+ ...pointTargetBaseOptions(),
6959
+ areaSize: listAreaSize,
6960
+ groupQueue: []
6961
+ });
6962
+ if (((_e = target == null ? void 0 : target.elements) == null ? void 0 : _e.length) === 1 && ((_g = (_f = target.elements[0]) == null ? void 0 : _f.operations) == null ? void 0 : _g.locked) !== true) {
6963
+ clear();
6964
+ updateSelectedElementList([target.elements[0]], { triggerEvent: true });
6965
+ viewer.drawFrame();
6966
+ return;
6967
+ } else if (!((_h = target == null ? void 0 : target.elements) == null ? void 0 : _h.length)) {
6968
+ clear();
6969
+ }
6970
+ },
7067
6971
  beforeDrawFrame({ snapshot }) {
7068
6972
  var _a;
7069
6973
  const { activeStore, sharedStore } = snapshot;
@@ -7088,11 +6992,11 @@ var __privateMethod = (obj, member, method) => {
7088
6992
  controllerSize: 10,
7089
6993
  viewScaleInfo
7090
6994
  }) : null;
7091
- const isLocked = !!((_a = hoverElement == null ? void 0 : hoverElement.operations) == null ? void 0 : _a.locked);
6995
+ const isHoverLocked = !!((_a = hoverElement == null ? void 0 : hoverElement.operations) == null ? void 0 : _a.locked);
7092
6996
  if ((groupQueue == null ? void 0 : groupQueue.length) > 0) {
7093
6997
  drawGroupQueueVertexesWrappers(overlayContext, groupQueueVertexesList, drawBaseOpts);
7094
6998
  if (hoverElement && actionType !== "drag") {
7095
- if (isLocked) {
6999
+ if (isHoverLocked) {
7096
7000
  drawLockedVertexesWrapper(overlayContext, hoverElementVertexes, {
7097
7001
  ...drawBaseOpts,
7098
7002
  controller: calcElementSizeController(hoverElement, {
@@ -7106,7 +7010,7 @@ var __privateMethod = (obj, member, method) => {
7106
7010
  drawHoverVertexesWrapper(overlayContext, hoverElementVertexes, drawBaseOpts);
7107
7011
  }
7108
7012
  }
7109
- if (!isLocked && elem && ["select", "drag", "resize"].includes(actionType)) {
7013
+ if (elem && ["select", "drag", "resize"].includes(actionType)) {
7110
7014
  drawSelectedElementControllersVertexes(overlayContext, selectedElementController, {
7111
7015
  ...drawBaseOpts,
7112
7016
  element: elem,
@@ -7138,7 +7042,7 @@ var __privateMethod = (obj, member, method) => {
7138
7042
  }
7139
7043
  } else {
7140
7044
  if (hoverElement && actionType !== "drag") {
7141
- if (isLocked) {
7045
+ if (isHoverLocked) {
7142
7046
  drawLockedVertexesWrapper(overlayContext, hoverElementVertexes, {
7143
7047
  ...drawBaseOpts,
7144
7048
  controller: calcElementSizeController(hoverElement, {
@@ -7152,7 +7056,7 @@ var __privateMethod = (obj, member, method) => {
7152
7056
  drawHoverVertexesWrapper(overlayContext, hoverElementVertexes, drawBaseOpts);
7153
7057
  }
7154
7058
  }
7155
- if (!isLocked && elem && ["select", "drag", "resize"].includes(actionType)) {
7059
+ if (elem && ["select", "drag", "resize"].includes(actionType)) {
7156
7060
  drawSelectedElementControllersVertexes(overlayContext, selectedElementController, {
7157
7061
  ...drawBaseOpts,
7158
7062
  element: elem,
@@ -7485,7 +7389,7 @@ var __privateMethod = (obj, member, method) => {
7485
7389
  sharer.setSharedStorage(keyHoverXThumbRect, false);
7486
7390
  sharer.setSharedStorage(keyHoverYThumbRect, true);
7487
7391
  }
7488
- eventHub.trigger("cursor", { type: "default" });
7392
+ eventHub.trigger(coreEventKeys.CURSOR, { type: "default" });
7489
7393
  return false;
7490
7394
  }
7491
7395
  sharer.setSharedStorage(keyHoverXThumbRect, false);
@@ -7532,7 +7436,6 @@ var __privateMethod = (obj, member, method) => {
7532
7436
  }
7533
7437
  };
7534
7438
  };
7535
- const middlewareEventScale = "@middleware/scale";
7536
7439
  const MiddlewareScaler = (opts) => {
7537
7440
  const { viewer, sharer, eventHub } = opts;
7538
7441
  const maxScale = 50;
@@ -7555,7 +7458,7 @@ var __privateMethod = (obj, member, method) => {
7555
7458
  viewer.scroll({ moveX, moveY });
7556
7459
  viewer.drawFrame();
7557
7460
  const scaleNum = formatNumber(scale);
7558
- eventHub.trigger(middlewareEventScale, { scale: scaleNum });
7461
+ eventHub.trigger(coreEventKeys.SCALE, { scale: scaleNum });
7559
7462
  }
7560
7463
  };
7561
7464
  };
@@ -7833,7 +7736,6 @@ var __privateMethod = (obj, member, method) => {
7833
7736
  ctx.fill();
7834
7737
  }
7835
7738
  }
7836
- const middlewareEventRuler = "@middleware/show-ruler";
7837
7739
  const MiddlewareRuler = (opts, config) => {
7838
7740
  const { boardContent, viewer, eventHub, calculator } = opts;
7839
7741
  const { overlayContext, underlayContext } = boardContent;
@@ -7867,10 +7769,10 @@ var __privateMethod = (obj, member, method) => {
7867
7769
  return {
7868
7770
  name: "@middleware/ruler",
7869
7771
  use() {
7870
- eventHub.on(middlewareEventRuler, rulerCallback);
7772
+ eventHub.on(coreEventKeys.RULER, rulerCallback);
7871
7773
  },
7872
7774
  disuse() {
7873
- eventHub.off(middlewareEventRuler, rulerCallback);
7775
+ eventHub.off(coreEventKeys.RULER, rulerCallback);
7874
7776
  },
7875
7777
  beforeDrawFrame: ({ snapshot }) => {
7876
7778
  if (show === true) {
@@ -7896,6 +7798,228 @@ var __privateMethod = (obj, member, method) => {
7896
7798
  }
7897
7799
  };
7898
7800
  };
7801
+ const defaultElementDetail = getDefaultElementDetailConfig();
7802
+ const MiddlewareTextEditor = (opts) => {
7803
+ const { eventHub, boardContent, viewer, sharer } = opts;
7804
+ const canvas = boardContent.boardContext.canvas;
7805
+ const textarea = document.createElement("div");
7806
+ textarea.setAttribute("contenteditable", "true");
7807
+ const canvasWrapper = document.createElement("div");
7808
+ const container = opts.container || document.body;
7809
+ const mask = document.createElement("div");
7810
+ let activeElem = null;
7811
+ let activePosition = [];
7812
+ const id = `idraw-middleware-text-editor-${Math.random().toString(26).substring(2)}`;
7813
+ mask.setAttribute("id", id);
7814
+ canvasWrapper.appendChild(textarea);
7815
+ canvasWrapper.style.position = "absolute";
7816
+ mask.appendChild(canvasWrapper);
7817
+ mask.style.position = "fixed";
7818
+ mask.style.top = "0";
7819
+ mask.style.bottom = "0";
7820
+ mask.style.left = "0";
7821
+ mask.style.right = "0";
7822
+ mask.style.display = "none";
7823
+ container.appendChild(mask);
7824
+ const showTextArea = (e) => {
7825
+ resetCanvasWrapper();
7826
+ resetTextArea(e);
7827
+ mask.style.display = "block";
7828
+ if (activeElem == null ? void 0 : activeElem.uuid) {
7829
+ sharer.setActiveOverrideElemenentMap({
7830
+ [activeElem.uuid]: {
7831
+ operations: { invisible: true }
7832
+ }
7833
+ });
7834
+ viewer.drawFrame();
7835
+ }
7836
+ };
7837
+ const hideTextArea = () => {
7838
+ if (activeElem == null ? void 0 : activeElem.uuid) {
7839
+ const map = sharer.getActiveOverrideElemenentMap();
7840
+ if (map) {
7841
+ delete map[activeElem.uuid];
7842
+ }
7843
+ sharer.setActiveOverrideElemenentMap(map);
7844
+ viewer.drawFrame();
7845
+ }
7846
+ mask.style.display = "none";
7847
+ activeElem = null;
7848
+ activePosition = [];
7849
+ };
7850
+ const getCanvasRect = () => {
7851
+ const clientRect = canvas.getBoundingClientRect();
7852
+ const { left, top, width, height } = clientRect;
7853
+ return { left, top, width, height };
7854
+ };
7855
+ const createBox = (opts2) => {
7856
+ const { size, parent } = opts2;
7857
+ const div = document.createElement("div");
7858
+ const { x: x2, y: y2, w: w2, h: h2 } = size;
7859
+ const angle2 = limitAngle(size.angle || 0);
7860
+ div.style.position = "absolute";
7861
+ div.style.left = `${x2}px`;
7862
+ div.style.top = `${y2}px`;
7863
+ div.style.width = `${w2}px`;
7864
+ div.style.height = `${h2}px`;
7865
+ div.style.transform = `rotate(${angle2}deg)`;
7866
+ parent.appendChild(div);
7867
+ return div;
7868
+ };
7869
+ const resetTextArea = (e) => {
7870
+ const { viewScaleInfo, element, groupQueue } = e;
7871
+ const { scale, offsetTop, offsetLeft } = viewScaleInfo;
7872
+ if (canvasWrapper.children) {
7873
+ Array.from(canvasWrapper.children).forEach((child) => {
7874
+ child.remove();
7875
+ });
7876
+ }
7877
+ let parent = canvasWrapper;
7878
+ for (let i = 0; i < groupQueue.length; i++) {
7879
+ const group = groupQueue[i];
7880
+ const { x: x2, y: y2, w: w2, h: h2 } = group;
7881
+ const angle2 = limitAngle(group.angle || 0);
7882
+ const size = {
7883
+ x: x2 * scale,
7884
+ y: y2 * scale,
7885
+ w: w2 * scale,
7886
+ h: h2 * scale,
7887
+ angle: angle2
7888
+ };
7889
+ if (i === 0) {
7890
+ size.x += offsetLeft;
7891
+ size.y += offsetTop;
7892
+ }
7893
+ parent = createBox({ size, parent });
7894
+ }
7895
+ const detail = {
7896
+ ...defaultElementDetail,
7897
+ ...element.detail
7898
+ };
7899
+ let elemX = element.x * scale + offsetLeft;
7900
+ let elemY = element.y * scale + offsetTop;
7901
+ let elemW = element.w * scale;
7902
+ let elemH = element.h * scale;
7903
+ if (groupQueue.length > 0) {
7904
+ elemX = element.x * scale;
7905
+ elemY = element.y * scale;
7906
+ elemW = element.w * scale;
7907
+ elemH = element.h * scale;
7908
+ }
7909
+ let justifyContent = "center";
7910
+ let alignItems = "center";
7911
+ if (detail.textAlign === "left") {
7912
+ justifyContent = "start";
7913
+ } else if (detail.textAlign === "right") {
7914
+ justifyContent = "end";
7915
+ }
7916
+ if (detail.verticalAlign === "top") {
7917
+ alignItems = "start";
7918
+ } else if (detail.verticalAlign === "bottom") {
7919
+ alignItems = "end";
7920
+ }
7921
+ textarea.style.display = "inline-flex";
7922
+ textarea.style.justifyContent = justifyContent;
7923
+ textarea.style.alignItems = alignItems;
7924
+ textarea.style.position = "absolute";
7925
+ textarea.style.left = `${elemX - 1}px`;
7926
+ textarea.style.top = `${elemY - 1}px`;
7927
+ textarea.style.width = `${elemW + 2}px`;
7928
+ textarea.style.height = `${elemH + 2}px`;
7929
+ textarea.style.transform = `rotate(${limitAngle(element.angle || 0)}deg)`;
7930
+ textarea.style.boxSizing = "border-box";
7931
+ textarea.style.border = "1px solid #1973ba";
7932
+ textarea.style.resize = "none";
7933
+ textarea.style.overflow = "hidden";
7934
+ textarea.style.wordBreak = "break-all";
7935
+ textarea.style.borderRadius = `${(typeof detail.borderRadius === "number" ? detail.borderRadius : 0) * scale}px`;
7936
+ textarea.style.background = `${detail.background || "transparent"}`;
7937
+ textarea.style.color = `${detail.color || "#333333"}`;
7938
+ textarea.style.fontSize = `${detail.fontSize * scale}px`;
7939
+ textarea.style.lineHeight = `${(detail.lineHeight || detail.fontSize) * scale}px`;
7940
+ textarea.style.fontFamily = enhanceFontFamliy(detail.fontFamily);
7941
+ textarea.style.fontWeight = `${detail.fontWeight}`;
7942
+ textarea.style.padding = "0";
7943
+ textarea.style.margin = "0";
7944
+ textarea.style.outline = "none";
7945
+ textarea.innerText = detail.text || "";
7946
+ parent.appendChild(textarea);
7947
+ };
7948
+ const resetCanvasWrapper = () => {
7949
+ const { left, top, width, height } = getCanvasRect();
7950
+ canvasWrapper.style.position = "absolute";
7951
+ canvasWrapper.style.overflow = "hidden";
7952
+ canvasWrapper.style.top = `${top}px`;
7953
+ canvasWrapper.style.left = `${left}px`;
7954
+ canvasWrapper.style.width = `${width}px`;
7955
+ canvasWrapper.style.height = `${height}px`;
7956
+ };
7957
+ mask.addEventListener("click", () => {
7958
+ hideTextArea();
7959
+ });
7960
+ textarea.addEventListener("click", (e) => {
7961
+ e.stopPropagation();
7962
+ });
7963
+ textarea.addEventListener("input", () => {
7964
+ if (activeElem && activePosition) {
7965
+ activeElem.detail.text = textarea.innerText || "";
7966
+ eventHub.trigger(coreEventKeys.TEXT_CHANGE, {
7967
+ element: {
7968
+ uuid: activeElem.uuid,
7969
+ detail: {
7970
+ text: activeElem.detail.text
7971
+ }
7972
+ },
7973
+ position: [...activePosition || []]
7974
+ });
7975
+ viewer.drawFrame();
7976
+ }
7977
+ });
7978
+ textarea.addEventListener("blur", () => {
7979
+ if (activeElem && activePosition) {
7980
+ eventHub.trigger(coreEventKeys.TEXT_CHANGE, {
7981
+ element: {
7982
+ uuid: activeElem.uuid,
7983
+ detail: {
7984
+ text: activeElem.detail.text
7985
+ }
7986
+ },
7987
+ position: [...activePosition]
7988
+ });
7989
+ }
7990
+ hideTextArea();
7991
+ });
7992
+ textarea.addEventListener("keydown", (e) => {
7993
+ e.stopPropagation();
7994
+ });
7995
+ textarea.addEventListener("keypress", (e) => {
7996
+ e.stopPropagation();
7997
+ });
7998
+ textarea.addEventListener("keyup", (e) => {
7999
+ e.stopPropagation();
8000
+ });
8001
+ textarea.addEventListener("wheel", (e) => {
8002
+ e.stopPropagation();
8003
+ e.preventDefault();
8004
+ });
8005
+ const textEditCallback = (e) => {
8006
+ var _a;
8007
+ if ((e == null ? void 0 : e.position) && (e == null ? void 0 : e.element) && ((_a = e == null ? void 0 : e.element) == null ? void 0 : _a.type) === "text") {
8008
+ activeElem = e.element;
8009
+ activePosition = e.position;
8010
+ }
8011
+ showTextArea(e);
8012
+ };
8013
+ return {
8014
+ name: "@middleware/text-editor",
8015
+ use() {
8016
+ eventHub.on(coreEventKeys.TEXT_EDIT, textEditCallback);
8017
+ },
8018
+ disuse() {
8019
+ eventHub.off(coreEventKeys.TEXT_EDIT, textEditCallback);
8020
+ }
8021
+ };
8022
+ };
7899
8023
  const key = "DRAG";
7900
8024
  const keyPrevPoint = Symbol(`${key}_prevPoint`);
7901
8025
  const MiddlewareDragger = (opts) => {
@@ -7907,7 +8031,7 @@ var __privateMethod = (obj, member, method) => {
7907
8031
  if (isDragging === true) {
7908
8032
  return;
7909
8033
  }
7910
- eventHub.trigger("cursor", {
8034
+ eventHub.trigger(coreEventKeys.CURSOR, {
7911
8035
  type: "drag-default"
7912
8036
  });
7913
8037
  },
@@ -7915,7 +8039,7 @@ var __privateMethod = (obj, member, method) => {
7915
8039
  const { point } = e;
7916
8040
  sharer.setSharedStorage(keyPrevPoint, point);
7917
8041
  isDragging = true;
7918
- eventHub.trigger("cursor", {
8042
+ eventHub.trigger(coreEventKeys.CURSOR, {
7919
8043
  type: "drag-active"
7920
8044
  });
7921
8045
  },
@@ -7933,7 +8057,7 @@ var __privateMethod = (obj, member, method) => {
7933
8057
  pointEnd() {
7934
8058
  isDragging = false;
7935
8059
  sharer.setSharedStorage(keyPrevPoint, null);
7936
- eventHub.trigger("cursor", {
8060
+ eventHub.trigger(coreEventKeys.CURSOR, {
7937
8061
  type: "drag-default"
7938
8062
  });
7939
8063
  }
@@ -8074,13 +8198,11 @@ var __privateMethod = (obj, member, method) => {
8074
8198
  return {
8075
8199
  name: "@middleware/info",
8076
8200
  beforeDrawFrame({ snapshot }) {
8077
- var _a;
8078
8201
  const { sharedStore } = snapshot;
8079
8202
  const selectedElementList = sharedStore[keySelectedElementList];
8080
- const hoverElement = sharedStore[keyHoverElement];
8081
8203
  const actionType = sharedStore[keyActionType];
8082
8204
  const groupQueue = sharedStore[keyGroupQueue] || [];
8083
- if (selectedElementList.length === 1 && !((_a = hoverElement == null ? void 0 : hoverElement.operations) == null ? void 0 : _a.locked)) {
8205
+ if (selectedElementList.length === 1) {
8084
8206
  const elem = selectedElementList[0];
8085
8207
  if (elem && ["select", "drag", "resize"].includes(actionType)) {
8086
8208
  const viewScaleInfo = getViewScaleInfoFromSnapshot(snapshot);
@@ -8170,6 +8292,47 @@ var __privateMethod = (obj, member, method) => {
8170
8292
  }
8171
8293
  };
8172
8294
  };
8295
+ const MiddlewarePointer = (opts) => {
8296
+ const { boardContent, eventHub, sharer } = opts;
8297
+ const canvas = boardContent.boardContext.canvas;
8298
+ const container = opts.container || document.body;
8299
+ const id = `idraw-middleware-pointer-${Math.random().toString(26).substring(2)}`;
8300
+ const getCanvasRect = () => {
8301
+ const clientRect = canvas.getBoundingClientRect();
8302
+ const { left, top, width, height } = clientRect;
8303
+ return { left, top, width, height };
8304
+ };
8305
+ const contextMenuPointer = document.createElement("div");
8306
+ contextMenuPointer.setAttribute("id", id);
8307
+ contextMenuPointer.style.position = "fixed";
8308
+ contextMenuPointer.style.top = "0";
8309
+ contextMenuPointer.style.bottom = "unset";
8310
+ contextMenuPointer.style.left = "0";
8311
+ contextMenuPointer.style.right = "unset";
8312
+ container.appendChild(contextMenuPointer);
8313
+ return {
8314
+ name: "@middleware/pointer",
8315
+ use() {
8316
+ },
8317
+ disuse() {
8318
+ },
8319
+ pointStart(e) {
8320
+ },
8321
+ pointEnd() {
8322
+ },
8323
+ contextMenu(e) {
8324
+ const { point } = e;
8325
+ const { left, top } = getCanvasRect();
8326
+ contextMenuPointer.style.left = `${left + point.x}px`;
8327
+ contextMenuPointer.style.top = `${top + point.y}px`;
8328
+ const selectedElements = sharer.getSharedStorage(keySelectedElementList);
8329
+ eventHub.trigger(coreEventKeys.CONTEXT_MENU, {
8330
+ pointerContainer: contextMenuPointer,
8331
+ selectedElements: selectedElements || []
8332
+ });
8333
+ }
8334
+ };
8335
+ };
8173
8336
  class Core {
8174
8337
  constructor(container, opts) {
8175
8338
  __privateAdd(this, _initContainer);
@@ -8287,20 +8450,13 @@ var __privateMethod = (obj, member, method) => {
8287
8450
  exports.MiddlewareDragger = MiddlewareDragger;
8288
8451
  exports.MiddlewareInfo = MiddlewareInfo;
8289
8452
  exports.MiddlewareLayoutSelector = MiddlewareLayoutSelector;
8453
+ exports.MiddlewarePointer = MiddlewarePointer;
8290
8454
  exports.MiddlewareRuler = MiddlewareRuler;
8291
8455
  exports.MiddlewareScaler = MiddlewareScaler;
8292
8456
  exports.MiddlewareScroller = MiddlewareScroller;
8293
8457
  exports.MiddlewareSelector = MiddlewareSelector;
8294
8458
  exports.MiddlewareTextEditor = MiddlewareTextEditor;
8295
- exports.eventChange = eventChange;
8296
- exports.middlewareEventRuler = middlewareEventRuler;
8297
- exports.middlewareEventScale = middlewareEventScale;
8298
- exports.middlewareEventSelect = middlewareEventSelect;
8299
- exports.middlewareEventSelectClear = middlewareEventSelectClear;
8300
- exports.middlewareEventSelectInGroup = middlewareEventSelectInGroup;
8301
- exports.middlewareEventSnapToGrid = middlewareEventSnapToGrid;
8302
- exports.middlewareEventTextChange = middlewareEventTextChange;
8303
- exports.middlewareEventTextEdit = middlewareEventTextEdit;
8459
+ exports.coreEventKeys = coreEventKeys;
8304
8460
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
8305
8461
  return exports;
8306
8462
  }({});