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

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.
@@ -1209,6 +1209,11 @@ var __privateMethod = (obj, member, method) => {
1209
1209
  }
1210
1210
  return groupQueue;
1211
1211
  }
1212
+ function getElementSize(elem) {
1213
+ const { x: x2, y: y2, w: w2, h: h2, angle: angle2 } = elem;
1214
+ const size = { x: x2, y: y2, w: w2, h: h2, angle: angle2 };
1215
+ return size;
1216
+ }
1212
1217
  function findElementsFromListByPositions(positions, list) {
1213
1218
  const elements = [];
1214
1219
  positions.forEach((pos) => {
@@ -4722,7 +4727,7 @@ var __privateMethod = (obj, member, method) => {
4722
4727
  const wrapperOpts = { borderColor: activeColor2, borderWidth: 1, background: "transparent", lineDash: [] };
4723
4728
  drawVertexes(ctx, calcViewVertexes(vertexes, opts), wrapperOpts);
4724
4729
  }
4725
- function drawLockVertexesWrapper(ctx, vertexes, opts) {
4730
+ function drawLockedVertexesWrapper(ctx, vertexes, opts) {
4726
4731
  if (!vertexes) {
4727
4732
  return;
4728
4733
  }
@@ -5502,10 +5507,10 @@ var __privateMethod = (obj, member, method) => {
5502
5507
  const endY = Math.max(start.y, end.y);
5503
5508
  for (let idx = 0; idx < data.elements.length; idx++) {
5504
5509
  const elem = data.elements[idx];
5505
- if (((_a = elem == null ? void 0 : elem.operations) == null ? void 0 : _a.lock) === true) {
5510
+ if (((_a = elem == null ? void 0 : elem.operations) == null ? void 0 : _a.locked) === true) {
5506
5511
  continue;
5507
5512
  }
5508
- const elemSize = calcViewElementSize(elem, { viewScaleInfo, viewSizeInfo });
5513
+ const elemSize = calcViewElementSize(elem, { viewScaleInfo });
5509
5514
  const center = calcElementCenter(elemSize);
5510
5515
  if (center.x >= startX && center.x <= endX && center.y >= startY && center.y <= endY) {
5511
5516
  indexes.push(idx);
@@ -5532,14 +5537,14 @@ var __privateMethod = (obj, member, method) => {
5532
5537
  return null;
5533
5538
  }
5534
5539
  const area = { x: 0, y: 0, w: 0, h: 0 };
5535
- const { viewScaleInfo, viewSizeInfo } = opts;
5540
+ const { viewScaleInfo } = opts;
5536
5541
  let prevElemSize = null;
5537
5542
  for (let i = 0; i < elements.length; i++) {
5538
5543
  const elem = elements[i];
5539
5544
  if ((_a = elem == null ? void 0 : elem.operations) == null ? void 0 : _a.invisible) {
5540
5545
  continue;
5541
5546
  }
5542
- const elemSize = calcViewElementSize(elem, { viewScaleInfo, viewSizeInfo });
5547
+ const elemSize = calcViewElementSize(elem, { viewScaleInfo });
5543
5548
  if (elemSize.angle && (elemSize.angle > 0 || elemSize.angle < 0)) {
5544
5549
  const ves = rotateElementVertexes(elemSize);
5545
5550
  if (ves.length === 4) {
@@ -6490,6 +6495,8 @@ var __privateMethod = (obj, member, method) => {
6490
6495
  const { viewer, sharer, boardContent, calculator, eventHub } = opts;
6491
6496
  const { overlayContext } = boardContent;
6492
6497
  let prevPoint = null;
6498
+ let moveOriginalStartPoint = null;
6499
+ let moveOriginalStartElementSize = null;
6493
6500
  let inBusyMode = null;
6494
6501
  sharer.setSharedStorage(keyActionType, null);
6495
6502
  sharer.setSharedStorage(keyEnableSnapToGrid, true);
@@ -6715,8 +6722,9 @@ var __privateMethod = (obj, member, method) => {
6715
6722
  }
6716
6723
  },
6717
6724
  pointStart: (e) => {
6718
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
6725
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;
6719
6726
  prevPoint = e.point;
6727
+ moveOriginalStartPoint = e.point;
6720
6728
  const groupQueue = sharer.getSharedStorage(keyGroupQueue);
6721
6729
  if ((groupQueue == null ? void 0 : groupQueue.length) > 0) {
6722
6730
  if (isPointInViewActiveGroup(e.point, {
@@ -6726,15 +6734,18 @@ var __privateMethod = (obj, member, method) => {
6726
6734
  groupQueue
6727
6735
  })) {
6728
6736
  const target2 = getPointTarget(e.point, pointTargetBaseOptions());
6729
- 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.lock) === true) {
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) {
6730
6738
  return;
6731
6739
  } else {
6732
6740
  updateHoverElement(null);
6733
6741
  }
6734
- if (target2.type === "over-element" && ((_d = target2 == null ? void 0 : target2.elements) == null ? void 0 : _d.length) === 1) {
6742
+ if (((_d = target2 == null ? void 0 : target2.elements) == null ? void 0 : _d.length) === 1) {
6743
+ moveOriginalStartElementSize = getElementSize(target2 == null ? void 0 : target2.elements[0]);
6744
+ }
6745
+ if (target2.type === "over-element" && ((_e = target2 == null ? void 0 : target2.elements) == null ? void 0 : _e.length) === 1) {
6735
6746
  updateSelectedElementList([target2.elements[0]], { triggerEvent: true });
6736
6747
  sharer.setSharedStorage(keyActionType, "drag");
6737
- } else if ((_e = target2.type) == null ? void 0 : _e.startsWith("resize-")) {
6748
+ } else if ((_f = target2.type) == null ? void 0 : _f.startsWith("resize-")) {
6738
6749
  sharer.setSharedStorage(keyResizeType, target2.type);
6739
6750
  sharer.setSharedStorage(keyActionType, "resize");
6740
6751
  } else {
@@ -6756,19 +6767,28 @@ var __privateMethod = (obj, member, method) => {
6756
6767
  areaSize: listAreaSize,
6757
6768
  groupQueue: []
6758
6769
  });
6759
- if (((_f = target == null ? void 0 : target.elements) == null ? void 0 : _f.length) === 1 && ((_h = (_g = target.elements[0]) == null ? void 0 : _g.operations) == null ? void 0 : _h.lock) === true) {
6760
- return;
6761
- } else {
6770
+ 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) {
6762
6772
  updateHoverElement(null);
6763
6773
  }
6764
- if (target.type === "list-area") {
6765
- sharer.setSharedStorage(keyActionType, "drag-list");
6766
- } else if (target.type === "over-element" && ((_i = target == null ? void 0 : target.elements) == null ? void 0 : _i.length) === 1) {
6767
- updateSelectedElementList([target.elements[0]], { triggerEvent: true });
6768
- sharer.setSharedStorage(keyActionType, "drag");
6769
- } else if ((_j = target.type) == null ? void 0 : _j.startsWith("resize-")) {
6770
- sharer.setSharedStorage(keyResizeType, target.type);
6771
- sharer.setSharedStorage(keyActionType, "resize");
6774
+ if (((_j = target == null ? void 0 : target.elements) == null ? void 0 : _j.length) === 1) {
6775
+ moveOriginalStartElementSize = getElementSize(target == null ? void 0 : target.elements[0]);
6776
+ }
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
+ }
6772
6792
  } else {
6773
6793
  clear();
6774
6794
  sharer.setSharedStorage(keyActionType, "area");
@@ -6786,6 +6806,7 @@ var __privateMethod = (obj, member, method) => {
6786
6806
  const viewScaleInfo = sharer.getActiveViewScaleInfo();
6787
6807
  const viewSizeInfo = sharer.getActiveViewSizeInfo();
6788
6808
  const start = prevPoint;
6809
+ const originalStart = moveOriginalStartPoint;
6789
6810
  const end = e.point;
6790
6811
  const resizeType = sharer.getSharedStorage(keyResizeType);
6791
6812
  const actionType = sharer.getSharedStorage(keyActionType);
@@ -6793,8 +6814,8 @@ var __privateMethod = (obj, member, method) => {
6793
6814
  const enableSnapToGrid = sharer.getSharedStorage(keyEnableSnapToGrid);
6794
6815
  if (actionType === "drag") {
6795
6816
  inBusyMode = "drag";
6796
- if (data && (elems == null ? void 0 : elems.length) === 1 && start && end && ((_b = (_a = elems[0]) == null ? void 0 : _a.operations) == null ? void 0 : _b.lock) !== true) {
6797
- const { moveX, moveY } = calcMoveInGroup(start, end, groupQueue);
6817
+ 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
+ const { moveX, moveY } = calcMoveInGroup(originalStart, end, groupQueue);
6798
6819
  let totalMoveX = calculator.toGridNum(moveX / scale);
6799
6820
  let totalMoveY = calculator.toGridNum(moveY / scale);
6800
6821
  if (enableSnapToGrid === true) {
@@ -6818,8 +6839,8 @@ var __privateMethod = (obj, member, method) => {
6818
6839
  console.error(err);
6819
6840
  }
6820
6841
  }
6821
- elems[0].x = calculator.toGridNum(elems[0].x + totalMoveX);
6822
- elems[0].y = calculator.toGridNum(elems[0].y + totalMoveY);
6842
+ elems[0].x = calculator.toGridNum(moveOriginalStartElementSize.x + totalMoveX);
6843
+ elems[0].y = calculator.toGridNum(moveOriginalStartElementSize.y + totalMoveY);
6823
6844
  updateSelectedElementList([elems[0]]);
6824
6845
  calculator.modifyViewVisibleInfoMap(data, {
6825
6846
  modifyOptions: {
@@ -6836,12 +6857,12 @@ var __privateMethod = (obj, member, method) => {
6836
6857
  viewer.drawFrame();
6837
6858
  } else if (actionType === "drag-list") {
6838
6859
  inBusyMode = "drag-list";
6839
- if (data && start && end && (elems == null ? void 0 : elems.length) > 1) {
6860
+ if (data && originalStart && start && end && (elems == null ? void 0 : elems.length) > 1) {
6840
6861
  const moveX = (end.x - start.x) / scale;
6841
6862
  const moveY = (end.y - start.y) / scale;
6842
6863
  elems.forEach((elem) => {
6843
6864
  var _a2;
6844
- if (elem && ((_a2 = elem == null ? void 0 : elem.operations) == null ? void 0 : _a2.lock) !== true) {
6865
+ if (elem && ((_a2 = elem == null ? void 0 : elem.operations) == null ? void 0 : _a2.locked) !== true) {
6845
6866
  elem.x = calculator.toGridNum(elem.x + moveX);
6846
6867
  elem.y = calculator.toGridNum(elem.y + moveY);
6847
6868
  calculator.modifyViewVisibleInfoMap(data, {
@@ -6861,7 +6882,7 @@ var __privateMethod = (obj, member, method) => {
6861
6882
  }
6862
6883
  viewer.drawFrame();
6863
6884
  } else if (actionType === "resize") {
6864
- if (data && (elems == null ? void 0 : elems.length) === 1 && start && (resizeType == null ? void 0 : resizeType.startsWith("resize-"))) {
6885
+ if (data && (elems == null ? void 0 : elems.length) === 1 && originalStart && moveOriginalStartElementSize && (resizeType == null ? void 0 : resizeType.startsWith("resize-"))) {
6865
6886
  inBusyMode = "resize";
6866
6887
  const pointGroupQueue = [];
6867
6888
  groupQueue.forEach((group) => {
@@ -6874,10 +6895,10 @@ var __privateMethod = (obj, member, method) => {
6874
6895
  angle: 0 - angle2
6875
6896
  });
6876
6897
  });
6877
- let resizeStart = start;
6898
+ let resizeStart = originalStart;
6878
6899
  let resizeEnd = end;
6879
6900
  if (groupQueue.length > 0) {
6880
- resizeStart = rotatePointInGroup(start, pointGroupQueue);
6901
+ resizeStart = rotatePointInGroup(originalStart, pointGroupQueue);
6881
6902
  resizeEnd = rotatePointInGroup(end, pointGroupQueue);
6882
6903
  }
6883
6904
  if (resizeType === "resize-rotate") {
@@ -6889,19 +6910,19 @@ var __privateMethod = (obj, member, method) => {
6889
6910
  controller.bottomRight.center
6890
6911
  ];
6891
6912
  const viewCenter = calcElementCenterFromVertexes(viewVertexes);
6892
- const resizedElemSize = rotateElement(elems[0], {
6913
+ const resizedElemSize = rotateElement(moveOriginalStartElementSize, {
6893
6914
  center: viewCenter,
6894
6915
  viewScaleInfo,
6895
6916
  viewSizeInfo,
6896
- start,
6917
+ start: originalStart,
6897
6918
  end,
6898
6919
  resizeType,
6899
6920
  sharer
6900
6921
  });
6901
6922
  elems[0].angle = calculator.toGridNum(resizedElemSize.angle || 0);
6902
6923
  } else {
6903
- const resizedElemSize = resizeElement(elems[0], { scale, start: resizeStart, end: resizeEnd, resizeType, sharer });
6904
- const calcOpts = { ignore: !!elems[0].angle };
6924
+ const resizedElemSize = resizeElement(moveOriginalStartElementSize, { scale, start: resizeStart, end: resizeEnd, resizeType, sharer });
6925
+ const calcOpts = { ignore: !!moveOriginalStartElementSize.angle };
6905
6926
  elems[0].x = calculator.toGridNum(resizedElemSize.x, calcOpts);
6906
6927
  elems[0].y = calculator.toGridNum(resizedElemSize.y, calcOpts);
6907
6928
  if (elems[0].type === "group" && ((_c = elems[0].operations) == null ? void 0 : _c.deepResize) === true) {
@@ -6946,6 +6967,8 @@ var __privateMethod = (obj, member, method) => {
6946
6967
  const viewSizeInfo = sharer.getActiveViewSizeInfo();
6947
6968
  let needDrawFrame = false;
6948
6969
  prevPoint = null;
6970
+ moveOriginalStartPoint = null;
6971
+ moveOriginalStartElementSize = null;
6949
6972
  if (actionType === "resize" && resizeType) {
6950
6973
  sharer.setSharedStorage(keyResizeType, null);
6951
6974
  needDrawFrame = true;
@@ -7008,6 +7031,8 @@ var __privateMethod = (obj, member, method) => {
7008
7031
  },
7009
7032
  pointLeave() {
7010
7033
  prevPoint = null;
7034
+ moveOriginalStartPoint = null;
7035
+ moveOriginalStartElementSize = null;
7011
7036
  clear();
7012
7037
  viewer.drawFrame();
7013
7038
  },
@@ -7019,7 +7044,7 @@ var __privateMethod = (obj, member, method) => {
7019
7044
  const target = getPointTarget(e.point, pointTargetBaseOptions());
7020
7045
  sharer.setSharedStorage(keySelectedElementController, null);
7021
7046
  sharer.setSharedStorage(keySelectedElementList, []);
7022
- if (target.elements.length === 1 && ((_b = (_a = target.elements[0]) == null ? void 0 : _a.operations) == null ? void 0 : _b.lock) === true) {
7047
+ if (target.elements.length === 1 && ((_b = (_a = target.elements[0]) == null ? void 0 : _a.operations) == null ? void 0 : _b.locked) === true) {
7023
7048
  return;
7024
7049
  }
7025
7050
  if (target.elements.length === 1 && ((_c = target.elements[0]) == null ? void 0 : _c.type) === "group") {
@@ -7063,12 +7088,12 @@ var __privateMethod = (obj, member, method) => {
7063
7088
  controllerSize: 10,
7064
7089
  viewScaleInfo
7065
7090
  }) : null;
7066
- const isLock = !!((_a = hoverElement == null ? void 0 : hoverElement.operations) == null ? void 0 : _a.lock);
7091
+ const isLocked = !!((_a = hoverElement == null ? void 0 : hoverElement.operations) == null ? void 0 : _a.locked);
7067
7092
  if ((groupQueue == null ? void 0 : groupQueue.length) > 0) {
7068
7093
  drawGroupQueueVertexesWrappers(overlayContext, groupQueueVertexesList, drawBaseOpts);
7069
7094
  if (hoverElement && actionType !== "drag") {
7070
- if (isLock) {
7071
- drawLockVertexesWrapper(overlayContext, hoverElementVertexes, {
7095
+ if (isLocked) {
7096
+ drawLockedVertexesWrapper(overlayContext, hoverElementVertexes, {
7072
7097
  ...drawBaseOpts,
7073
7098
  controller: calcElementSizeController(hoverElement, {
7074
7099
  groupQueue,
@@ -7081,7 +7106,7 @@ var __privateMethod = (obj, member, method) => {
7081
7106
  drawHoverVertexesWrapper(overlayContext, hoverElementVertexes, drawBaseOpts);
7082
7107
  }
7083
7108
  }
7084
- if (!isLock && elem && ["select", "drag", "resize"].includes(actionType)) {
7109
+ if (!isLocked && elem && ["select", "drag", "resize"].includes(actionType)) {
7085
7110
  drawSelectedElementControllersVertexes(overlayContext, selectedElementController, {
7086
7111
  ...drawBaseOpts,
7087
7112
  element: elem,
@@ -7113,8 +7138,8 @@ var __privateMethod = (obj, member, method) => {
7113
7138
  }
7114
7139
  } else {
7115
7140
  if (hoverElement && actionType !== "drag") {
7116
- if (isLock) {
7117
- drawLockVertexesWrapper(overlayContext, hoverElementVertexes, {
7141
+ if (isLocked) {
7142
+ drawLockedVertexesWrapper(overlayContext, hoverElementVertexes, {
7118
7143
  ...drawBaseOpts,
7119
7144
  controller: calcElementSizeController(hoverElement, {
7120
7145
  groupQueue,
@@ -7127,7 +7152,7 @@ var __privateMethod = (obj, member, method) => {
7127
7152
  drawHoverVertexesWrapper(overlayContext, hoverElementVertexes, drawBaseOpts);
7128
7153
  }
7129
7154
  }
7130
- if (!isLock && elem && ["select", "drag", "resize"].includes(actionType)) {
7155
+ if (!isLocked && elem && ["select", "drag", "resize"].includes(actionType)) {
7131
7156
  drawSelectedElementControllersVertexes(overlayContext, selectedElementController, {
7132
7157
  ...drawBaseOpts,
7133
7158
  element: elem,
@@ -8049,11 +8074,13 @@ var __privateMethod = (obj, member, method) => {
8049
8074
  return {
8050
8075
  name: "@middleware/info",
8051
8076
  beforeDrawFrame({ snapshot }) {
8077
+ var _a;
8052
8078
  const { sharedStore } = snapshot;
8053
8079
  const selectedElementList = sharedStore[keySelectedElementList];
8080
+ const hoverElement = sharedStore[keyHoverElement];
8054
8081
  const actionType = sharedStore[keyActionType];
8055
8082
  const groupQueue = sharedStore[keyGroupQueue] || [];
8056
- if (selectedElementList.length === 1) {
8083
+ if (selectedElementList.length === 1 && !((_a = hoverElement == null ? void 0 : hoverElement.operations) == null ? void 0 : _a.locked)) {
8057
8084
  const elem = selectedElementList[0];
8058
8085
  if (elem && ["select", "drag", "resize"].includes(actionType)) {
8059
8086
  const viewScaleInfo = getViewScaleInfoFromSnapshot(snapshot);