@idraw/core 0.4.0-beta.11 → 0.4.0-beta.13
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/lib/cursor-image.d.ts +1 -0
- package/dist/esm/lib/cursor-image.js +1 -0
- package/dist/esm/lib/cursor.js +10 -2
- package/dist/esm/middleware/selector/config.d.ts +1 -0
- package/dist/esm/middleware/selector/config.js +1 -0
- package/dist/esm/middleware/selector/draw-wrapper.js +41 -3
- package/dist/esm/middleware/selector/index.js +39 -15
- package/dist/esm/middleware/selector/types.d.ts +1 -1
- package/dist/esm/middleware/selector/util.d.ts +11 -2
- package/dist/esm/middleware/selector/util.js +21 -3
- package/dist/index.global.js +150 -27
- package/dist/index.global.min.js +1 -1
- package/package.json +5 -5
package/dist/index.global.js
CHANGED
|
@@ -141,6 +141,9 @@ var __privateMethod = (obj, member, method) => {
|
|
|
141
141
|
asyncFunction(data) {
|
|
142
142
|
return parsePrototype(data) === "AsyncFunction";
|
|
143
143
|
},
|
|
144
|
+
boolean(data) {
|
|
145
|
+
return parsePrototype(data) === "Boolean";
|
|
146
|
+
},
|
|
144
147
|
string(data) {
|
|
145
148
|
return parsePrototype(data) === "String";
|
|
146
149
|
},
|
|
@@ -872,6 +875,9 @@ var __privateMethod = (obj, member, method) => {
|
|
|
872
875
|
};
|
|
873
876
|
return sacelInfo;
|
|
874
877
|
}
|
|
878
|
+
function parseRadianToAngle(radian) {
|
|
879
|
+
return radian / Math.PI * 180;
|
|
880
|
+
}
|
|
875
881
|
function parseAngleToRadian(angle2) {
|
|
876
882
|
return angle2 / 180 * Math.PI;
|
|
877
883
|
}
|
|
@@ -889,7 +895,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
889
895
|
ctx.translate(-center.x, -center.y);
|
|
890
896
|
}
|
|
891
897
|
}
|
|
892
|
-
function rotateElement(ctx, elemSize, callback) {
|
|
898
|
+
function rotateElement$1(ctx, elemSize, callback) {
|
|
893
899
|
const center = calcElementCenter(elemSize);
|
|
894
900
|
rotateByCenter(ctx, elemSize.angle || 0, center, () => {
|
|
895
901
|
callback(ctx);
|
|
@@ -915,6 +921,21 @@ var __privateMethod = (obj, member, method) => {
|
|
|
915
921
|
};
|
|
916
922
|
return calcElementCenter(elemSize);
|
|
917
923
|
}
|
|
924
|
+
function calcRadian(center, start, end) {
|
|
925
|
+
const startAngle = calcLineRadian(center, start);
|
|
926
|
+
const endAngle = calcLineRadian(center, end);
|
|
927
|
+
if (endAngle !== null && startAngle !== null) {
|
|
928
|
+
if (startAngle > Math.PI * 3 / 2 && endAngle < Math.PI / 2) {
|
|
929
|
+
return endAngle + (Math.PI * 2 - startAngle);
|
|
930
|
+
} else if (endAngle > Math.PI * 3 / 2 && startAngle < Math.PI / 2) {
|
|
931
|
+
return startAngle + (Math.PI * 2 - endAngle);
|
|
932
|
+
} else {
|
|
933
|
+
return endAngle - startAngle;
|
|
934
|
+
}
|
|
935
|
+
} else {
|
|
936
|
+
return 0;
|
|
937
|
+
}
|
|
938
|
+
}
|
|
918
939
|
function calcLineRadian(center, p) {
|
|
919
940
|
const x2 = p.x - center.x;
|
|
920
941
|
const y2 = p.y - center.y;
|
|
@@ -1471,8 +1492,8 @@ var __privateMethod = (obj, member, method) => {
|
|
|
1471
1492
|
};
|
|
1472
1493
|
}
|
|
1473
1494
|
function calcElementSizeController(elemSize, opts) {
|
|
1474
|
-
const { groupQueue, controllerSize, viewScaleInfo } = opts;
|
|
1475
|
-
const ctrlSize = (
|
|
1495
|
+
const { groupQueue, controllerSize: controllerSize2, viewScaleInfo } = opts;
|
|
1496
|
+
const ctrlSize = (controllerSize2 && controllerSize2 > 0 ? controllerSize2 : 8) / viewScaleInfo.scale;
|
|
1476
1497
|
const { x: x2, y: y2, w: w2, h: h2, angle: angle2 = 0 } = elemSize;
|
|
1477
1498
|
const ctrlGroupQueue = [
|
|
1478
1499
|
...[
|
|
@@ -1494,6 +1515,13 @@ var __privateMethod = (obj, member, method) => {
|
|
|
1494
1515
|
totalAngle += angle3;
|
|
1495
1516
|
});
|
|
1496
1517
|
const vertexes = calcElementVertexesInGroup(elemSize, { groupQueue });
|
|
1518
|
+
const rotateElemVertexes = calcElementVertexesInGroup({
|
|
1519
|
+
x: x2 - ctrlSize * 2,
|
|
1520
|
+
y: y2 - ctrlSize * 2,
|
|
1521
|
+
h: h2 + ctrlSize * 4,
|
|
1522
|
+
w: w2 + ctrlSize * 4,
|
|
1523
|
+
angle: angle2
|
|
1524
|
+
}, { groupQueue: [...groupQueue] });
|
|
1497
1525
|
const topCenter = getCenterFromTwoPoints(vertexes[0], vertexes[1]);
|
|
1498
1526
|
const rightCenter = getCenterFromTwoPoints(vertexes[1], vertexes[2]);
|
|
1499
1527
|
const bottomCenter = getCenterFromTwoPoints(vertexes[2], vertexes[3]);
|
|
@@ -1522,6 +1550,9 @@ var __privateMethod = (obj, member, method) => {
|
|
|
1522
1550
|
const rightMiddleVertexes = calcElementVertexes(rightMiddleSize);
|
|
1523
1551
|
const bottomMiddleVertexes = calcElementVertexes(bottomMiddleSize);
|
|
1524
1552
|
const leftMiddleVertexes = calcElementVertexes(leftMiddleSize);
|
|
1553
|
+
const rotateCenter = getCenterFromTwoPoints(rotateElemVertexes[0], rotateElemVertexes[1]);
|
|
1554
|
+
const rotateSize = createControllerElementSizeFromCenter(rotateCenter, { size: ctrlSize, angle: totalAngle });
|
|
1555
|
+
const rotateVertexes2 = calcElementVertexes(rotateSize);
|
|
1525
1556
|
const sizeController = {
|
|
1526
1557
|
elementWrapper: vertexes,
|
|
1527
1558
|
left: {
|
|
@@ -1583,6 +1614,11 @@ var __privateMethod = (obj, member, method) => {
|
|
|
1583
1614
|
type: "bottom-middle",
|
|
1584
1615
|
vertexes: bottomMiddleVertexes,
|
|
1585
1616
|
center: bottomCenter
|
|
1617
|
+
},
|
|
1618
|
+
rotate: {
|
|
1619
|
+
type: "rotate",
|
|
1620
|
+
vertexes: rotateVertexes2,
|
|
1621
|
+
center: rotateCenter
|
|
1586
1622
|
}
|
|
1587
1623
|
};
|
|
1588
1624
|
return sizeController;
|
|
@@ -1862,7 +1898,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
1862
1898
|
ctx.clip(path2d);
|
|
1863
1899
|
ctx.translate(0 - internalX, 0 - internalY);
|
|
1864
1900
|
ctx.setTransform(1, 0, 0, 1, 0, 0);
|
|
1865
|
-
rotateElement(ctx, Object.assign({}, viewElem), () => {
|
|
1901
|
+
rotateElement$1(ctx, Object.assign({}, viewElem), () => {
|
|
1866
1902
|
renderContent === null || renderContent === void 0 ? void 0 : renderContent();
|
|
1867
1903
|
});
|
|
1868
1904
|
ctx.restore();
|
|
@@ -2086,7 +2122,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
2086
2122
|
const { calculator, viewScaleInfo, viewSizeInfo, parentOpacity } = opts;
|
|
2087
2123
|
const { x: x2, y: y2, w: w2, h: h2 } = (calculator === null || calculator === void 0 ? void 0 : calculator.elementSize({ x: elem.x, y: elem.y, w: elem.w, h: elem.h }, viewScaleInfo, viewSizeInfo)) || elem;
|
|
2088
2124
|
const viewElem = Object.assign(Object.assign({}, elem), { x: x2, y: y2, w: w2, h: h2, angle: angle2 });
|
|
2089
|
-
rotateElement(ctx, { x: x2, y: y2, w: w2, h: h2, angle: angle2 }, () => {
|
|
2125
|
+
rotateElement$1(ctx, { x: x2, y: y2, w: w2, h: h2, angle: angle2 }, () => {
|
|
2090
2126
|
drawBoxShadow(ctx, viewElem, {
|
|
2091
2127
|
viewScaleInfo,
|
|
2092
2128
|
viewSizeInfo,
|
|
@@ -2140,7 +2176,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
2140
2176
|
const { calculator, viewScaleInfo, viewSizeInfo, parentOpacity } = opts;
|
|
2141
2177
|
const { x: x2, y: y2, w: w2, h: h2, angle: angle2 } = (calculator === null || calculator === void 0 ? void 0 : calculator.elementSize(elem, viewScaleInfo, viewSizeInfo)) || elem;
|
|
2142
2178
|
const viewElem = Object.assign(Object.assign({}, elem), { x: x2, y: y2, w: w2, h: h2, angle: angle2 });
|
|
2143
|
-
rotateElement(ctx, { x: x2, y: y2, w: w2, h: h2, angle: angle2 }, () => {
|
|
2179
|
+
rotateElement$1(ctx, { x: x2, y: y2, w: w2, h: h2, angle: angle2 }, () => {
|
|
2144
2180
|
drawBoxShadow(ctx, viewElem, {
|
|
2145
2181
|
viewScaleInfo,
|
|
2146
2182
|
viewSizeInfo,
|
|
@@ -2163,7 +2199,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
2163
2199
|
const { calculator, viewScaleInfo, viewSizeInfo, parentOpacity } = opts;
|
|
2164
2200
|
const { x: x2, y: y2, w: w2, h: h2, angle: angle2 } = (calculator === null || calculator === void 0 ? void 0 : calculator.elementSize(elem, viewScaleInfo, viewSizeInfo)) || elem;
|
|
2165
2201
|
const viewElem = Object.assign(Object.assign({}, elem), { x: x2, y: y2, w: w2, h: h2, angle: angle2 });
|
|
2166
|
-
rotateElement(ctx, { x: x2, y: y2, w: w2, h: h2, angle: angle2 }, () => {
|
|
2202
|
+
rotateElement$1(ctx, { x: x2, y: y2, w: w2, h: h2, angle: angle2 }, () => {
|
|
2167
2203
|
drawBoxShadow(ctx, viewElem, {
|
|
2168
2204
|
viewScaleInfo,
|
|
2169
2205
|
viewSizeInfo,
|
|
@@ -2209,7 +2245,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
2209
2245
|
const content = opts.loader.getContent(elem);
|
|
2210
2246
|
const { calculator, viewScaleInfo, viewSizeInfo, parentOpacity } = opts;
|
|
2211
2247
|
const { x: x2, y: y2, w: w2, h: h2, angle: angle2 } = (calculator === null || calculator === void 0 ? void 0 : calculator.elementSize(elem, viewScaleInfo, viewSizeInfo)) || elem;
|
|
2212
|
-
rotateElement(ctx, { x: x2, y: y2, w: w2, h: h2, angle: angle2 }, () => {
|
|
2248
|
+
rotateElement$1(ctx, { x: x2, y: y2, w: w2, h: h2, angle: angle2 }, () => {
|
|
2213
2249
|
if (!content && !opts.loader.isDestroyed()) {
|
|
2214
2250
|
opts.loader.load(elem, opts.elementAssets || {});
|
|
2215
2251
|
}
|
|
@@ -2224,7 +2260,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
2224
2260
|
const content = opts.loader.getContent(elem);
|
|
2225
2261
|
const { calculator, viewScaleInfo, viewSizeInfo, parentOpacity } = opts;
|
|
2226
2262
|
const { x: x2, y: y2, w: w2, h: h2, angle: angle2 } = (calculator === null || calculator === void 0 ? void 0 : calculator.elementSize(elem, viewScaleInfo, viewSizeInfo)) || elem;
|
|
2227
|
-
rotateElement(ctx, { x: x2, y: y2, w: w2, h: h2, angle: angle2 }, () => {
|
|
2263
|
+
rotateElement$1(ctx, { x: x2, y: y2, w: w2, h: h2, angle: angle2 }, () => {
|
|
2228
2264
|
if (!content && !opts.loader.isDestroyed()) {
|
|
2229
2265
|
opts.loader.load(elem, opts.elementAssets || {});
|
|
2230
2266
|
}
|
|
@@ -2240,7 +2276,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
2240
2276
|
const { calculator, viewScaleInfo, viewSizeInfo, parentOpacity } = opts;
|
|
2241
2277
|
const { x: x2, y: y2, w: w2, h: h2, angle: angle2 } = (calculator === null || calculator === void 0 ? void 0 : calculator.elementSize(elem, viewScaleInfo, viewSizeInfo)) || elem;
|
|
2242
2278
|
const viewElem = Object.assign(Object.assign({}, elem), { x: x2, y: y2, w: w2, h: h2, angle: angle2 });
|
|
2243
|
-
rotateElement(ctx, { x: x2, y: y2, w: w2, h: h2, angle: angle2 }, () => {
|
|
2279
|
+
rotateElement$1(ctx, { x: x2, y: y2, w: w2, h: h2, angle: angle2 }, () => {
|
|
2244
2280
|
drawBox(ctx, viewElem, {
|
|
2245
2281
|
originElem: elem,
|
|
2246
2282
|
calcElemSize: { x: x2, y: y2, w: w2, h: h2, angle: angle2 },
|
|
@@ -2351,7 +2387,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
2351
2387
|
const internalY = y2 - viewOriginY;
|
|
2352
2388
|
const scaleNum = viewScaleInfo.scale * viewSizeInfo.devicePixelRatio;
|
|
2353
2389
|
const viewElem = Object.assign(Object.assign({}, elem), { x: x2, y: y2, w: w2, h: h2, angle: angle2 });
|
|
2354
|
-
rotateElement(ctx, { x: x2, y: y2, w: w2, h: h2, angle: angle2 }, () => {
|
|
2390
|
+
rotateElement$1(ctx, { x: x2, y: y2, w: w2, h: h2, angle: angle2 }, () => {
|
|
2355
2391
|
drawBox(ctx, viewElem, {
|
|
2356
2392
|
originElem: elem,
|
|
2357
2393
|
calcElemSize: { x: x2, y: y2, w: w2, h: h2, angle: angle2 },
|
|
@@ -2443,7 +2479,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
2443
2479
|
const { calculator, viewScaleInfo, viewSizeInfo, parentOpacity } = opts;
|
|
2444
2480
|
const { x: x2, y: y2, w: w2, h: h2, angle: angle2 } = (calculator === null || calculator === void 0 ? void 0 : calculator.elementSize({ x: elem.x, y: elem.y, w: elem.w, h: elem.h, angle: elem.angle }, viewScaleInfo, viewSizeInfo)) || elem;
|
|
2445
2481
|
const viewElem = Object.assign(Object.assign({}, elem), { x: x2, y: y2, w: w2, h: h2, angle: angle2 });
|
|
2446
|
-
rotateElement(ctx, { x: x2, y: y2, w: w2, h: h2, angle: angle2 }, () => {
|
|
2482
|
+
rotateElement$1(ctx, { x: x2, y: y2, w: w2, h: h2, angle: angle2 }, () => {
|
|
2447
2483
|
ctx.globalAlpha = getOpacity(elem) * parentOpacity;
|
|
2448
2484
|
drawBoxShadow(ctx, viewElem, {
|
|
2449
2485
|
viewScaleInfo,
|
|
@@ -3694,6 +3730,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
3694
3730
|
const CURSOR_RESIZE = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAApCAYAAABHomvIAAAACXBIWXMAAAsTAAALEwEAmpwYAAAF92lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNi4wLWMwMDYgNzkuMTY0NzUzLCAyMDIxLzAyLzE1LTExOjUyOjEzICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjIuMyAoTWFjaW50b3NoKSIgeG1wOkNyZWF0ZURhdGU9IjIwMjMtMDktMTdUMTY6MzE6MjMrMDg6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDIzLTA5LTE3VDE2OjQ0OjIyKzA4OjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDIzLTA5LTE3VDE2OjQ0OjIyKzA4OjAwIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY0MTBhYjUzLWM0ZjEtNDVhNS04MjhkLTIxOTczOWFjOTk3MSIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjBkMDNmNjM5LTE5MzctY2Y0MC1hMTg0LTIyMjg0NzczNWNmYSIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjgyYjQwZGRmLWE0ZGEtNDY3MC1iYzc2LTBhYjY3ZmI5M2I0ZSI+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNyZWF0ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6ODJiNDBkZGYtYTRkYS00NjcwLWJjNzYtMGFiNjdmYjkzYjRlIiBzdEV2dDp3aGVuPSIyMDIzLTA5LTE3VDE2OjMxOjIzKzA4OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjIuMyAoTWFjaW50b3NoKSIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6NjQxMGFiNTMtYzRmMS00NWE1LTgyOGQtMjE5NzM5YWM5OTcxIiBzdEV2dDp3aGVuPSIyMDIzLTA5LTE3VDE2OjQ0OjIyKzA4OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjIuMyAoTWFjaW50b3NoKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz57vRudAAAEk0lEQVRYhe3ZW0jbVxzA8e8/MX+NYnG9uI4xE3bvoLt0FzradRfGBtsYo32YdAhb6WQyBqV7KOylpYjzZShDGfjmyxgbgjjwyRm16SYMhgiNKDhbL3VtNF4xJOnf3x7+59i/Wf4aTbInf3AwJMdzPjnnf/n9/jFEhGzDMIxMb3uAIsDs6ek5urS05Dtz5syE+uwekAQS6u89YD19gC0NIpJ1c8GZQHlXV9fJRCIxGo/HxxoaGj4CngWOAEGgEihXfT07MeQC3MB1dna+lkgkRkXF6urq3xcuXPgUOAE8DzwGPOiGLARwEy4ej4+JiITD4elr167NiIgsLi7eqq2trQPeBI4Bj7sh8w10xZmmeds0zdn+/v5/RERisdjUuXPnvgLeAl50Q+YTaAA+oKy7u/uE3laNAwSQ4uLiu6FQ6G4G5DG13YeAMjWWkU+gBygJhULHNe769etTTpwDGXUiz58//yXwujp5qoAHgBLAk0+gNxKJHEulUiMKN2ma5gwgPp/vjhOXjlxYWJisq6urBV5RW30IKAW8eQPGYrGjlmXdEBEZHBy8aZrmFCCmac729fVtAHt7e6MO5N2+vr47IiJLS0s3L126dBZ4Sh2LZUBRwVdwYGBgVuwOYh/zsoF0bnPBVzDTMRgOh6dFhROokSIi8/Pz0+pEeaPQx+DGWdzV1XVSX2LcgCIic3NzMzU1NV8D7wIvq9WrLNRZvOk62NHRccqJTAdGo9Hb1dXV3wAfYt9VjgAPFfI66EQWAxU9PT0fuwEvXrzYBJwF3gFeAAJAhfrfrO4k/7lxZxnr2JlJqry8POnWyePx6H4JR0vhktVkHGOXQI20SkpKLLcOhmGsA5YCaZiVLS5XoADi9XpdkznDMERhnE0fCgUHZhvOW+CO4/8A5hR7wFxjD5hr7AFzjZyBlmVlrOYdYaS1HUUuQA/gWV9fd51URDyqn1c1j6MVFGjoidfW1oq2ABrYj0V82OmVzwHNajVdB88C5wOKTdM87NaxsrKyQsFKHC2BnTDo+/TWt8Bd5INeVC44NDT0xXYZdXNz8w/AaeyS8yjwCPdzQu92ht2m/OUjIyOfS1pkAoqItLS0fA+8D7wKPA0cxs6qC1O4T0xMfKYnb21tnXEDNjc3z+nXbW1t3wFvYz9dCAL7KUThHovFPtGTNjU1jQFSX18/lg68cuXKLUAaGxs3vkB7e/u3wHHgCQpUdnpTqdQvesJgMDisUVevXh3Xry9fvnxTv66qqprQ/cfHx/vVNj/J/couv0DAv7q6+pMDeYPNSalkwkUikX7s4ukl4FHgAODPN1CXnPsWFxd/dCAjW+GGhoZCwAfYpeczwMPAPjVW3gv3IvXN98disZ8dyBGNCwQC4/r94eHhfuy6+JS6zATUCeJXY+W9cNfIUuDAwsLCr05kIBDYeBQ8Ojr6h8Lpx25BtbWlGpfv62BG5PLy8m+SFpOTk38C76mVe84NVyhgOvLgysrK7xoXjUb/Uqt2XG1rEDiYCbcd0MgwsWtk+J1EI03An0wmw5Zlefx+/2n1eRKIO5r+rWTTpFsZ/gWFrGMmeObuqwAAAABJRU5ErkJggg==";
|
|
3695
3731
|
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==`;
|
|
3696
3732
|
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`;
|
|
3733
|
+
const CURSOR_RESIZE_ROTATE = `data:image/png;base64,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`;
|
|
3697
3734
|
class Cursor {
|
|
3698
3735
|
constructor(container, opts) {
|
|
3699
3736
|
__privateAdd(this, _init);
|
|
@@ -3709,7 +3746,8 @@ var __privateMethod = (obj, member, method) => {
|
|
|
3709
3746
|
auto: CURSOR,
|
|
3710
3747
|
"drag-default": CURSOR_DRAG_DEFAULT,
|
|
3711
3748
|
"drag-active": CURSOR_DRAG_ACTIVE,
|
|
3712
|
-
"rotate-0": CURSOR_RESIZE
|
|
3749
|
+
"rotate-0": CURSOR_RESIZE,
|
|
3750
|
+
rotate: CURSOR_RESIZE_ROTATE
|
|
3713
3751
|
});
|
|
3714
3752
|
__privateSet(this, _container, container);
|
|
3715
3753
|
__privateSet(this, _eventHub, opts.eventHub);
|
|
@@ -3730,6 +3768,8 @@ var __privateMethod = (obj, member, method) => {
|
|
|
3730
3768
|
var _a;
|
|
3731
3769
|
if (e.type === "over-element" || !e.type) {
|
|
3732
3770
|
__privateMethod(this, _resetCursor, resetCursor_fn).call(this, "auto");
|
|
3771
|
+
} else if (e.type === "resize-rotate") {
|
|
3772
|
+
__privateMethod(this, _resetCursor, resetCursor_fn).call(this, "rotate");
|
|
3733
3773
|
} else if (typeof e.type === "string" && ((_a = e.type) == null ? void 0 : _a.startsWith("resize-"))) {
|
|
3734
3774
|
__privateMethod(this, _setCursorResize, setCursorResize_fn).call(this, e);
|
|
3735
3775
|
} else if (e.type === "drag-default") {
|
|
@@ -3761,6 +3801,9 @@ var __privateMethod = (obj, member, method) => {
|
|
|
3761
3801
|
if (cursorKey.startsWith("rotate-") && __privateGet(this, _cursorImageMap)[__privateGet(this, _cursorType)]) {
|
|
3762
3802
|
offsetX = 10;
|
|
3763
3803
|
offsetY = 10;
|
|
3804
|
+
} else if (cursorKey === "rotate") {
|
|
3805
|
+
offsetX = 10;
|
|
3806
|
+
offsetY = 10;
|
|
3764
3807
|
}
|
|
3765
3808
|
if (cursorKey === "default") {
|
|
3766
3809
|
__privateGet(this, _container).style.cursor = "default";
|
|
@@ -3846,6 +3889,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
3846
3889
|
const areaBorderWidth = 1;
|
|
3847
3890
|
const wrapperColor = "#1973ba";
|
|
3848
3891
|
const lockColor = "#5b5959b5";
|
|
3892
|
+
const controllerSize = 10;
|
|
3849
3893
|
function drawVertexes(ctx, vertexes, opts) {
|
|
3850
3894
|
const { borderColor: borderColor2, borderWidth: borderWidth2, background: background2, lineDash } = opts;
|
|
3851
3895
|
ctx.setLineDash([]);
|
|
@@ -3863,6 +3907,42 @@ var __privateMethod = (obj, member, method) => {
|
|
|
3863
3907
|
ctx.stroke();
|
|
3864
3908
|
ctx.fill();
|
|
3865
3909
|
}
|
|
3910
|
+
function drawLine(ctx, start, end, opts) {
|
|
3911
|
+
const { borderColor: borderColor2, borderWidth: borderWidth2, lineDash } = opts;
|
|
3912
|
+
ctx.setLineDash([]);
|
|
3913
|
+
ctx.lineWidth = borderWidth2;
|
|
3914
|
+
ctx.strokeStyle = borderColor2;
|
|
3915
|
+
ctx.setLineDash(lineDash);
|
|
3916
|
+
ctx.beginPath();
|
|
3917
|
+
ctx.moveTo(start.x, start.y);
|
|
3918
|
+
ctx.lineTo(end.x, end.y);
|
|
3919
|
+
ctx.closePath();
|
|
3920
|
+
ctx.stroke();
|
|
3921
|
+
}
|
|
3922
|
+
function drawCircleController(ctx, circleCenter, opts) {
|
|
3923
|
+
const { size, borderColor: borderColor2, borderWidth: borderWidth2, background: background2 } = opts;
|
|
3924
|
+
const center = circleCenter;
|
|
3925
|
+
const r = size / 2;
|
|
3926
|
+
const a = r;
|
|
3927
|
+
const b = r;
|
|
3928
|
+
if (a >= 0 && b >= 0) {
|
|
3929
|
+
if (typeof borderWidth2 === "number" && borderWidth2 > 0) {
|
|
3930
|
+
const ba = borderWidth2 / 2 + a;
|
|
3931
|
+
const bb = borderWidth2 / 2 + b;
|
|
3932
|
+
ctx.beginPath();
|
|
3933
|
+
ctx.strokeStyle = borderColor2;
|
|
3934
|
+
ctx.lineWidth = borderWidth2;
|
|
3935
|
+
ctx.circle(center.x, center.y, ba, bb, 0, 0, 2 * Math.PI);
|
|
3936
|
+
ctx.closePath();
|
|
3937
|
+
ctx.stroke();
|
|
3938
|
+
}
|
|
3939
|
+
ctx.beginPath();
|
|
3940
|
+
ctx.fillStyle = background2;
|
|
3941
|
+
ctx.circle(center.x, center.y, a, b, 0, 0, 2 * Math.PI);
|
|
3942
|
+
ctx.closePath();
|
|
3943
|
+
ctx.fill();
|
|
3944
|
+
}
|
|
3945
|
+
}
|
|
3866
3946
|
function drawHoverVertexesWrapper(ctx, vertexes, opts) {
|
|
3867
3947
|
if (!vertexes) {
|
|
3868
3948
|
return;
|
|
@@ -3912,14 +3992,16 @@ var __privateMethod = (obj, member, method) => {
|
|
|
3912
3992
|
if (!controller) {
|
|
3913
3993
|
return;
|
|
3914
3994
|
}
|
|
3915
|
-
const { elementWrapper, topLeft, topRight, bottomLeft, bottomRight } = controller;
|
|
3995
|
+
const { elementWrapper, topLeft, topRight, bottomLeft, bottomRight, top, rotate } = controller;
|
|
3916
3996
|
const wrapperOpts = { borderColor: wrapperColor, borderWidth: selectWrapperBorderWidth, background: "transparent", lineDash: [] };
|
|
3917
3997
|
const ctrlOpts = { ...wrapperOpts, borderWidth: resizeControllerBorderWidth, background: "#FFFFFF" };
|
|
3998
|
+
drawLine(ctx, calcViewPointSize(top.center, opts), calcViewPointSize(rotate.center, opts), { ...ctrlOpts, borderWidth: 2 });
|
|
3918
3999
|
drawVertexes(ctx, calcViewVertexes(elementWrapper, opts), wrapperOpts);
|
|
3919
4000
|
drawVertexes(ctx, calcViewVertexes(topLeft.vertexes, opts), ctrlOpts);
|
|
3920
4001
|
drawVertexes(ctx, calcViewVertexes(topRight.vertexes, opts), ctrlOpts);
|
|
3921
4002
|
drawVertexes(ctx, calcViewVertexes(bottomLeft.vertexes, opts), ctrlOpts);
|
|
3922
4003
|
drawVertexes(ctx, calcViewVertexes(bottomRight.vertexes, opts), ctrlOpts);
|
|
4004
|
+
drawCircleController(ctx, calcViewPointSize(rotate.center, opts), { ...ctrlOpts, size: controllerSize, borderWidth: 2 });
|
|
3923
4005
|
}
|
|
3924
4006
|
function drawArea(ctx, opts) {
|
|
3925
4007
|
const { start, end } = opts;
|
|
@@ -4009,8 +4091,8 @@ var __privateMethod = (obj, member, method) => {
|
|
|
4009
4091
|
};
|
|
4010
4092
|
const { ctx, data, calculator, selectedElements, viewScaleInfo, viewSizeInfo, areaSize, groupQueue, selectedElementController } = opts;
|
|
4011
4093
|
if (selectedElementController) {
|
|
4012
|
-
const { left, right, top, bottom, topLeft, topRight, bottomLeft, bottomRight } = selectedElementController;
|
|
4013
|
-
const ctrls = [left, right, top, bottom, topLeft, topRight, bottomLeft, bottomRight];
|
|
4094
|
+
const { left, right, top, bottom, topLeft, topRight, bottomLeft, bottomRight, rotate } = selectedElementController;
|
|
4095
|
+
const ctrls = [left, right, top, bottom, topLeft, topRight, bottomLeft, bottomRight, rotate];
|
|
4014
4096
|
for (let i = 0; i < ctrls.length; i++) {
|
|
4015
4097
|
const ctrl = ctrls[i];
|
|
4016
4098
|
if (isPointInViewActiveVertexes(p, { ctx, vertexes: ctrl.vertexes, viewSizeInfo, viewScaleInfo })) {
|
|
@@ -4590,6 +4672,24 @@ var __privateMethod = (obj, member, method) => {
|
|
|
4590
4672
|
}
|
|
4591
4673
|
return { x: x2, y: y2, w: w2, h: h2, angle: elem.angle };
|
|
4592
4674
|
}
|
|
4675
|
+
function rotateElement(elem, opts) {
|
|
4676
|
+
const { x: x2, y: y2, w: w2, h: h2, angle: angle2 = 0 } = elem;
|
|
4677
|
+
const { center, start, end, viewScaleInfo, viewSizeInfo } = opts;
|
|
4678
|
+
const elemCenter = calcViewPointSize(center, {
|
|
4679
|
+
viewScaleInfo,
|
|
4680
|
+
viewSizeInfo
|
|
4681
|
+
});
|
|
4682
|
+
const startAngle = limitAngle(angle2);
|
|
4683
|
+
const changedRadian = calcRadian(elemCenter, start, end);
|
|
4684
|
+
const endAngle = startAngle + parseRadianToAngle(changedRadian);
|
|
4685
|
+
return {
|
|
4686
|
+
x: x2,
|
|
4687
|
+
y: y2,
|
|
4688
|
+
w: w2,
|
|
4689
|
+
h: h2,
|
|
4690
|
+
angle: endAngle
|
|
4691
|
+
};
|
|
4692
|
+
}
|
|
4593
4693
|
function getSelectedListArea(data, opts) {
|
|
4594
4694
|
var _a;
|
|
4595
4695
|
const indexes = [];
|
|
@@ -4907,7 +5007,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
4907
5007
|
if (list.length === 1) {
|
|
4908
5008
|
const controller = calcElementSizeController(list[0], {
|
|
4909
5009
|
groupQueue: sharer.getSharedStorage(keyGroupQueue),
|
|
4910
|
-
controllerSize
|
|
5010
|
+
controllerSize,
|
|
4911
5011
|
viewScaleInfo: sharer.getActiveViewScaleInfo()
|
|
4912
5012
|
});
|
|
4913
5013
|
sharer.setSharedStorage(keySelectedElementController, controller);
|
|
@@ -5134,6 +5234,8 @@ var __privateMethod = (obj, member, method) => {
|
|
|
5134
5234
|
const data = sharer.getActiveStorage("data");
|
|
5135
5235
|
const elems = getActiveElements();
|
|
5136
5236
|
const scale = sharer.getActiveStorage("scale") || 1;
|
|
5237
|
+
const viewScaleInfo = sharer.getActiveViewScaleInfo();
|
|
5238
|
+
const viewSizeInfo = sharer.getActiveViewSizeInfo();
|
|
5137
5239
|
const start = prevPoint;
|
|
5138
5240
|
const end = e.point;
|
|
5139
5241
|
const resizeType = sharer.getSharedStorage(keyResizeType);
|
|
@@ -5183,17 +5285,38 @@ var __privateMethod = (obj, member, method) => {
|
|
|
5183
5285
|
resizeStart = rotatePointInGroup(start, pointGroupQueue);
|
|
5184
5286
|
resizeEnd = rotatePointInGroup(end, pointGroupQueue);
|
|
5185
5287
|
}
|
|
5186
|
-
|
|
5187
|
-
|
|
5188
|
-
|
|
5189
|
-
|
|
5190
|
-
|
|
5191
|
-
|
|
5192
|
-
|
|
5288
|
+
if (resizeType === "resize-rotate") {
|
|
5289
|
+
const controller = sharer.getSharedStorage(keySelectedElementController);
|
|
5290
|
+
const viewVertexes = [
|
|
5291
|
+
controller.topLeft.center,
|
|
5292
|
+
controller.topRight.center,
|
|
5293
|
+
controller.bottomLeft.center,
|
|
5294
|
+
controller.bottomRight.center
|
|
5295
|
+
];
|
|
5296
|
+
const viewCenter = calcElementCenterFromVertexes(viewVertexes);
|
|
5297
|
+
const resizedElemSize = rotateElement(elems[0], {
|
|
5298
|
+
center: viewCenter,
|
|
5299
|
+
viewScaleInfo,
|
|
5300
|
+
viewSizeInfo,
|
|
5301
|
+
start,
|
|
5302
|
+
end,
|
|
5303
|
+
resizeType,
|
|
5304
|
+
sharer
|
|
5193
5305
|
});
|
|
5306
|
+
elems[0].angle = resizedElemSize.angle;
|
|
5194
5307
|
} else {
|
|
5195
|
-
elems[0]
|
|
5196
|
-
elems[0].
|
|
5308
|
+
const resizedElemSize = resizeElement(elems[0], { scale, start: resizeStart, end: resizeEnd, resizeType, sharer });
|
|
5309
|
+
elems[0].x = resizedElemSize.x;
|
|
5310
|
+
elems[0].y = resizedElemSize.y;
|
|
5311
|
+
if (elems[0].type === "group" && ((_c = elems[0].operations) == null ? void 0 : _c.deepResize) === true) {
|
|
5312
|
+
deepResizeGroupElement(elems[0], {
|
|
5313
|
+
w: resizedElemSize.w,
|
|
5314
|
+
h: resizedElemSize.h
|
|
5315
|
+
});
|
|
5316
|
+
} else {
|
|
5317
|
+
elems[0].w = resizedElemSize.w;
|
|
5318
|
+
elems[0].h = resizedElemSize.h;
|
|
5319
|
+
}
|
|
5197
5320
|
}
|
|
5198
5321
|
updateSelectedElementList([elems[0]]);
|
|
5199
5322
|
viewer.drawFrame();
|
|
@@ -5266,7 +5389,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
5266
5389
|
sharer.setActiveStorage("contextWidth", viewInfo.contextSize.contextWidth);
|
|
5267
5390
|
}
|
|
5268
5391
|
if (data && ["drag", "drag-list", "drag-list-end", "resize"].includes(actionType)) {
|
|
5269
|
-
let type = "
|
|
5392
|
+
let type = "dragElement";
|
|
5270
5393
|
eventHub.trigger("change", { data, type });
|
|
5271
5394
|
}
|
|
5272
5395
|
viewer.drawFrame();
|