@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.
- package/dist/esm/middleware/info/index.js +4 -2
- package/dist/esm/middleware/info/types.d.ts +2 -2
- package/dist/esm/middleware/selector/draw-wrapper.d.ts +3 -3
- package/dist/esm/middleware/selector/draw-wrapper.js +1 -1
- package/dist/esm/middleware/selector/index.js +60 -40
- package/dist/esm/middleware/selector/util.d.ts +2 -2
- package/dist/esm/middleware/selector/util.js +4 -4
- package/dist/index.global.js +69 -42
- package/dist/index.global.min.js +1 -1
- package/package.json +5 -5
package/dist/index.global.js
CHANGED
|
@@ -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
|
|
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.
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
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 (
|
|
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 ((
|
|
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
|
-
|
|
6760
|
-
|
|
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.
|
|
6765
|
-
|
|
6766
|
-
}
|
|
6767
|
-
|
|
6768
|
-
|
|
6769
|
-
|
|
6770
|
-
|
|
6771
|
-
|
|
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 &&
|
|
6797
|
-
const { moveX, moveY } = calcMoveInGroup(
|
|
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(
|
|
6822
|
-
elems[0].y = calculator.toGridNum(
|
|
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.
|
|
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 &&
|
|
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 =
|
|
6898
|
+
let resizeStart = originalStart;
|
|
6878
6899
|
let resizeEnd = end;
|
|
6879
6900
|
if (groupQueue.length > 0) {
|
|
6880
|
-
resizeStart = rotatePointInGroup(
|
|
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(
|
|
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(
|
|
6904
|
-
const calcOpts = { ignore: !!
|
|
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.
|
|
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
|
|
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 (
|
|
7071
|
-
|
|
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 (!
|
|
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 (
|
|
7117
|
-
|
|
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 (!
|
|
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);
|