@idraw/core 0.4.0-beta.11 → 0.4.0-beta.12
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 +37 -13
- 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 +146 -26
- package/dist/index.global.min.js +1 -1
- package/package.json +5 -5
package/dist/index.global.js
CHANGED
|
@@ -872,6 +872,9 @@ var __privateMethod = (obj, member, method) => {
|
|
|
872
872
|
};
|
|
873
873
|
return sacelInfo;
|
|
874
874
|
}
|
|
875
|
+
function parseRadianToAngle(radian) {
|
|
876
|
+
return radian / Math.PI * 180;
|
|
877
|
+
}
|
|
875
878
|
function parseAngleToRadian(angle2) {
|
|
876
879
|
return angle2 / 180 * Math.PI;
|
|
877
880
|
}
|
|
@@ -889,7 +892,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
889
892
|
ctx.translate(-center.x, -center.y);
|
|
890
893
|
}
|
|
891
894
|
}
|
|
892
|
-
function rotateElement(ctx, elemSize, callback) {
|
|
895
|
+
function rotateElement$1(ctx, elemSize, callback) {
|
|
893
896
|
const center = calcElementCenter(elemSize);
|
|
894
897
|
rotateByCenter(ctx, elemSize.angle || 0, center, () => {
|
|
895
898
|
callback(ctx);
|
|
@@ -915,6 +918,21 @@ var __privateMethod = (obj, member, method) => {
|
|
|
915
918
|
};
|
|
916
919
|
return calcElementCenter(elemSize);
|
|
917
920
|
}
|
|
921
|
+
function calcRadian(center, start, end) {
|
|
922
|
+
const startAngle = calcLineRadian(center, start);
|
|
923
|
+
const endAngle = calcLineRadian(center, end);
|
|
924
|
+
if (endAngle !== null && startAngle !== null) {
|
|
925
|
+
if (startAngle > Math.PI * 3 / 2 && endAngle < Math.PI / 2) {
|
|
926
|
+
return endAngle + (Math.PI * 2 - startAngle);
|
|
927
|
+
} else if (endAngle > Math.PI * 3 / 2 && startAngle < Math.PI / 2) {
|
|
928
|
+
return startAngle + (Math.PI * 2 - endAngle);
|
|
929
|
+
} else {
|
|
930
|
+
return endAngle - startAngle;
|
|
931
|
+
}
|
|
932
|
+
} else {
|
|
933
|
+
return 0;
|
|
934
|
+
}
|
|
935
|
+
}
|
|
918
936
|
function calcLineRadian(center, p) {
|
|
919
937
|
const x2 = p.x - center.x;
|
|
920
938
|
const y2 = p.y - center.y;
|
|
@@ -1471,8 +1489,8 @@ var __privateMethod = (obj, member, method) => {
|
|
|
1471
1489
|
};
|
|
1472
1490
|
}
|
|
1473
1491
|
function calcElementSizeController(elemSize, opts) {
|
|
1474
|
-
const { groupQueue, controllerSize, viewScaleInfo } = opts;
|
|
1475
|
-
const ctrlSize = (
|
|
1492
|
+
const { groupQueue, controllerSize: controllerSize2, viewScaleInfo } = opts;
|
|
1493
|
+
const ctrlSize = (controllerSize2 && controllerSize2 > 0 ? controllerSize2 : 8) / viewScaleInfo.scale;
|
|
1476
1494
|
const { x: x2, y: y2, w: w2, h: h2, angle: angle2 = 0 } = elemSize;
|
|
1477
1495
|
const ctrlGroupQueue = [
|
|
1478
1496
|
...[
|
|
@@ -1494,6 +1512,13 @@ var __privateMethod = (obj, member, method) => {
|
|
|
1494
1512
|
totalAngle += angle3;
|
|
1495
1513
|
});
|
|
1496
1514
|
const vertexes = calcElementVertexesInGroup(elemSize, { groupQueue });
|
|
1515
|
+
const rotateElemVertexes = calcElementVertexesInGroup({
|
|
1516
|
+
x: x2 - ctrlSize * 2,
|
|
1517
|
+
y: y2 - ctrlSize * 2,
|
|
1518
|
+
h: h2 + ctrlSize * 4,
|
|
1519
|
+
w: w2 + ctrlSize * 4,
|
|
1520
|
+
angle: angle2
|
|
1521
|
+
}, { groupQueue: [...groupQueue] });
|
|
1497
1522
|
const topCenter = getCenterFromTwoPoints(vertexes[0], vertexes[1]);
|
|
1498
1523
|
const rightCenter = getCenterFromTwoPoints(vertexes[1], vertexes[2]);
|
|
1499
1524
|
const bottomCenter = getCenterFromTwoPoints(vertexes[2], vertexes[3]);
|
|
@@ -1522,6 +1547,9 @@ var __privateMethod = (obj, member, method) => {
|
|
|
1522
1547
|
const rightMiddleVertexes = calcElementVertexes(rightMiddleSize);
|
|
1523
1548
|
const bottomMiddleVertexes = calcElementVertexes(bottomMiddleSize);
|
|
1524
1549
|
const leftMiddleVertexes = calcElementVertexes(leftMiddleSize);
|
|
1550
|
+
const rotateCenter = getCenterFromTwoPoints(rotateElemVertexes[0], rotateElemVertexes[1]);
|
|
1551
|
+
const rotateSize = createControllerElementSizeFromCenter(rotateCenter, { size: ctrlSize, angle: totalAngle });
|
|
1552
|
+
const rotateVertexes2 = calcElementVertexes(rotateSize);
|
|
1525
1553
|
const sizeController = {
|
|
1526
1554
|
elementWrapper: vertexes,
|
|
1527
1555
|
left: {
|
|
@@ -1583,6 +1611,11 @@ var __privateMethod = (obj, member, method) => {
|
|
|
1583
1611
|
type: "bottom-middle",
|
|
1584
1612
|
vertexes: bottomMiddleVertexes,
|
|
1585
1613
|
center: bottomCenter
|
|
1614
|
+
},
|
|
1615
|
+
rotate: {
|
|
1616
|
+
type: "rotate",
|
|
1617
|
+
vertexes: rotateVertexes2,
|
|
1618
|
+
center: rotateCenter
|
|
1586
1619
|
}
|
|
1587
1620
|
};
|
|
1588
1621
|
return sizeController;
|
|
@@ -1862,7 +1895,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
1862
1895
|
ctx.clip(path2d);
|
|
1863
1896
|
ctx.translate(0 - internalX, 0 - internalY);
|
|
1864
1897
|
ctx.setTransform(1, 0, 0, 1, 0, 0);
|
|
1865
|
-
rotateElement(ctx, Object.assign({}, viewElem), () => {
|
|
1898
|
+
rotateElement$1(ctx, Object.assign({}, viewElem), () => {
|
|
1866
1899
|
renderContent === null || renderContent === void 0 ? void 0 : renderContent();
|
|
1867
1900
|
});
|
|
1868
1901
|
ctx.restore();
|
|
@@ -2086,7 +2119,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
2086
2119
|
const { calculator, viewScaleInfo, viewSizeInfo, parentOpacity } = opts;
|
|
2087
2120
|
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
2121
|
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 }, () => {
|
|
2122
|
+
rotateElement$1(ctx, { x: x2, y: y2, w: w2, h: h2, angle: angle2 }, () => {
|
|
2090
2123
|
drawBoxShadow(ctx, viewElem, {
|
|
2091
2124
|
viewScaleInfo,
|
|
2092
2125
|
viewSizeInfo,
|
|
@@ -2140,7 +2173,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
2140
2173
|
const { calculator, viewScaleInfo, viewSizeInfo, parentOpacity } = opts;
|
|
2141
2174
|
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
2175
|
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 }, () => {
|
|
2176
|
+
rotateElement$1(ctx, { x: x2, y: y2, w: w2, h: h2, angle: angle2 }, () => {
|
|
2144
2177
|
drawBoxShadow(ctx, viewElem, {
|
|
2145
2178
|
viewScaleInfo,
|
|
2146
2179
|
viewSizeInfo,
|
|
@@ -2163,7 +2196,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
2163
2196
|
const { calculator, viewScaleInfo, viewSizeInfo, parentOpacity } = opts;
|
|
2164
2197
|
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
2198
|
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 }, () => {
|
|
2199
|
+
rotateElement$1(ctx, { x: x2, y: y2, w: w2, h: h2, angle: angle2 }, () => {
|
|
2167
2200
|
drawBoxShadow(ctx, viewElem, {
|
|
2168
2201
|
viewScaleInfo,
|
|
2169
2202
|
viewSizeInfo,
|
|
@@ -2209,7 +2242,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
2209
2242
|
const content = opts.loader.getContent(elem);
|
|
2210
2243
|
const { calculator, viewScaleInfo, viewSizeInfo, parentOpacity } = opts;
|
|
2211
2244
|
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 }, () => {
|
|
2245
|
+
rotateElement$1(ctx, { x: x2, y: y2, w: w2, h: h2, angle: angle2 }, () => {
|
|
2213
2246
|
if (!content && !opts.loader.isDestroyed()) {
|
|
2214
2247
|
opts.loader.load(elem, opts.elementAssets || {});
|
|
2215
2248
|
}
|
|
@@ -2224,7 +2257,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
2224
2257
|
const content = opts.loader.getContent(elem);
|
|
2225
2258
|
const { calculator, viewScaleInfo, viewSizeInfo, parentOpacity } = opts;
|
|
2226
2259
|
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 }, () => {
|
|
2260
|
+
rotateElement$1(ctx, { x: x2, y: y2, w: w2, h: h2, angle: angle2 }, () => {
|
|
2228
2261
|
if (!content && !opts.loader.isDestroyed()) {
|
|
2229
2262
|
opts.loader.load(elem, opts.elementAssets || {});
|
|
2230
2263
|
}
|
|
@@ -2240,7 +2273,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
2240
2273
|
const { calculator, viewScaleInfo, viewSizeInfo, parentOpacity } = opts;
|
|
2241
2274
|
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
2275
|
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 }, () => {
|
|
2276
|
+
rotateElement$1(ctx, { x: x2, y: y2, w: w2, h: h2, angle: angle2 }, () => {
|
|
2244
2277
|
drawBox(ctx, viewElem, {
|
|
2245
2278
|
originElem: elem,
|
|
2246
2279
|
calcElemSize: { x: x2, y: y2, w: w2, h: h2, angle: angle2 },
|
|
@@ -2351,7 +2384,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
2351
2384
|
const internalY = y2 - viewOriginY;
|
|
2352
2385
|
const scaleNum = viewScaleInfo.scale * viewSizeInfo.devicePixelRatio;
|
|
2353
2386
|
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 }, () => {
|
|
2387
|
+
rotateElement$1(ctx, { x: x2, y: y2, w: w2, h: h2, angle: angle2 }, () => {
|
|
2355
2388
|
drawBox(ctx, viewElem, {
|
|
2356
2389
|
originElem: elem,
|
|
2357
2390
|
calcElemSize: { x: x2, y: y2, w: w2, h: h2, angle: angle2 },
|
|
@@ -2443,7 +2476,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
2443
2476
|
const { calculator, viewScaleInfo, viewSizeInfo, parentOpacity } = opts;
|
|
2444
2477
|
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
2478
|
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 }, () => {
|
|
2479
|
+
rotateElement$1(ctx, { x: x2, y: y2, w: w2, h: h2, angle: angle2 }, () => {
|
|
2447
2480
|
ctx.globalAlpha = getOpacity(elem) * parentOpacity;
|
|
2448
2481
|
drawBoxShadow(ctx, viewElem, {
|
|
2449
2482
|
viewScaleInfo,
|
|
@@ -3694,6 +3727,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
3694
3727
|
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
3728
|
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
3729
|
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`;
|
|
3730
|
+
const CURSOR_RESIZE_ROTATE = `data:image/png;base64,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`;
|
|
3697
3731
|
class Cursor {
|
|
3698
3732
|
constructor(container, opts) {
|
|
3699
3733
|
__privateAdd(this, _init);
|
|
@@ -3709,7 +3743,8 @@ var __privateMethod = (obj, member, method) => {
|
|
|
3709
3743
|
auto: CURSOR,
|
|
3710
3744
|
"drag-default": CURSOR_DRAG_DEFAULT,
|
|
3711
3745
|
"drag-active": CURSOR_DRAG_ACTIVE,
|
|
3712
|
-
"rotate-0": CURSOR_RESIZE
|
|
3746
|
+
"rotate-0": CURSOR_RESIZE,
|
|
3747
|
+
rotate: CURSOR_RESIZE_ROTATE
|
|
3713
3748
|
});
|
|
3714
3749
|
__privateSet(this, _container, container);
|
|
3715
3750
|
__privateSet(this, _eventHub, opts.eventHub);
|
|
@@ -3730,6 +3765,8 @@ var __privateMethod = (obj, member, method) => {
|
|
|
3730
3765
|
var _a;
|
|
3731
3766
|
if (e.type === "over-element" || !e.type) {
|
|
3732
3767
|
__privateMethod(this, _resetCursor, resetCursor_fn).call(this, "auto");
|
|
3768
|
+
} else if (e.type === "resize-rotate") {
|
|
3769
|
+
__privateMethod(this, _resetCursor, resetCursor_fn).call(this, "rotate");
|
|
3733
3770
|
} else if (typeof e.type === "string" && ((_a = e.type) == null ? void 0 : _a.startsWith("resize-"))) {
|
|
3734
3771
|
__privateMethod(this, _setCursorResize, setCursorResize_fn).call(this, e);
|
|
3735
3772
|
} else if (e.type === "drag-default") {
|
|
@@ -3761,6 +3798,9 @@ var __privateMethod = (obj, member, method) => {
|
|
|
3761
3798
|
if (cursorKey.startsWith("rotate-") && __privateGet(this, _cursorImageMap)[__privateGet(this, _cursorType)]) {
|
|
3762
3799
|
offsetX = 10;
|
|
3763
3800
|
offsetY = 10;
|
|
3801
|
+
} else if (cursorKey === "rotate") {
|
|
3802
|
+
offsetX = 10;
|
|
3803
|
+
offsetY = 10;
|
|
3764
3804
|
}
|
|
3765
3805
|
if (cursorKey === "default") {
|
|
3766
3806
|
__privateGet(this, _container).style.cursor = "default";
|
|
@@ -3846,6 +3886,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
3846
3886
|
const areaBorderWidth = 1;
|
|
3847
3887
|
const wrapperColor = "#1973ba";
|
|
3848
3888
|
const lockColor = "#5b5959b5";
|
|
3889
|
+
const controllerSize = 10;
|
|
3849
3890
|
function drawVertexes(ctx, vertexes, opts) {
|
|
3850
3891
|
const { borderColor: borderColor2, borderWidth: borderWidth2, background: background2, lineDash } = opts;
|
|
3851
3892
|
ctx.setLineDash([]);
|
|
@@ -3863,6 +3904,42 @@ var __privateMethod = (obj, member, method) => {
|
|
|
3863
3904
|
ctx.stroke();
|
|
3864
3905
|
ctx.fill();
|
|
3865
3906
|
}
|
|
3907
|
+
function drawLine(ctx, start, end, opts) {
|
|
3908
|
+
const { borderColor: borderColor2, borderWidth: borderWidth2, lineDash } = opts;
|
|
3909
|
+
ctx.setLineDash([]);
|
|
3910
|
+
ctx.lineWidth = borderWidth2;
|
|
3911
|
+
ctx.strokeStyle = borderColor2;
|
|
3912
|
+
ctx.setLineDash(lineDash);
|
|
3913
|
+
ctx.beginPath();
|
|
3914
|
+
ctx.moveTo(start.x, start.y);
|
|
3915
|
+
ctx.lineTo(end.x, end.y);
|
|
3916
|
+
ctx.closePath();
|
|
3917
|
+
ctx.stroke();
|
|
3918
|
+
}
|
|
3919
|
+
function drawCircleController(ctx, circleCenter, opts) {
|
|
3920
|
+
const { size, borderColor: borderColor2, borderWidth: borderWidth2, background: background2 } = opts;
|
|
3921
|
+
const center = circleCenter;
|
|
3922
|
+
const r = size / 2;
|
|
3923
|
+
const a = r;
|
|
3924
|
+
const b = r;
|
|
3925
|
+
if (a >= 0 && b >= 0) {
|
|
3926
|
+
if (typeof borderWidth2 === "number" && borderWidth2 > 0) {
|
|
3927
|
+
const ba = borderWidth2 / 2 + a;
|
|
3928
|
+
const bb = borderWidth2 / 2 + b;
|
|
3929
|
+
ctx.beginPath();
|
|
3930
|
+
ctx.strokeStyle = borderColor2;
|
|
3931
|
+
ctx.lineWidth = borderWidth2;
|
|
3932
|
+
ctx.circle(center.x, center.y, ba, bb, 0, 0, 2 * Math.PI);
|
|
3933
|
+
ctx.closePath();
|
|
3934
|
+
ctx.stroke();
|
|
3935
|
+
}
|
|
3936
|
+
ctx.beginPath();
|
|
3937
|
+
ctx.fillStyle = background2;
|
|
3938
|
+
ctx.circle(center.x, center.y, a, b, 0, 0, 2 * Math.PI);
|
|
3939
|
+
ctx.closePath();
|
|
3940
|
+
ctx.fill();
|
|
3941
|
+
}
|
|
3942
|
+
}
|
|
3866
3943
|
function drawHoverVertexesWrapper(ctx, vertexes, opts) {
|
|
3867
3944
|
if (!vertexes) {
|
|
3868
3945
|
return;
|
|
@@ -3912,14 +3989,16 @@ var __privateMethod = (obj, member, method) => {
|
|
|
3912
3989
|
if (!controller) {
|
|
3913
3990
|
return;
|
|
3914
3991
|
}
|
|
3915
|
-
const { elementWrapper, topLeft, topRight, bottomLeft, bottomRight } = controller;
|
|
3992
|
+
const { elementWrapper, topLeft, topRight, bottomLeft, bottomRight, top, rotate } = controller;
|
|
3916
3993
|
const wrapperOpts = { borderColor: wrapperColor, borderWidth: selectWrapperBorderWidth, background: "transparent", lineDash: [] };
|
|
3917
3994
|
const ctrlOpts = { ...wrapperOpts, borderWidth: resizeControllerBorderWidth, background: "#FFFFFF" };
|
|
3995
|
+
drawLine(ctx, calcViewPointSize(top.center, opts), calcViewPointSize(rotate.center, opts), { ...ctrlOpts, borderWidth: 2 });
|
|
3918
3996
|
drawVertexes(ctx, calcViewVertexes(elementWrapper, opts), wrapperOpts);
|
|
3919
3997
|
drawVertexes(ctx, calcViewVertexes(topLeft.vertexes, opts), ctrlOpts);
|
|
3920
3998
|
drawVertexes(ctx, calcViewVertexes(topRight.vertexes, opts), ctrlOpts);
|
|
3921
3999
|
drawVertexes(ctx, calcViewVertexes(bottomLeft.vertexes, opts), ctrlOpts);
|
|
3922
4000
|
drawVertexes(ctx, calcViewVertexes(bottomRight.vertexes, opts), ctrlOpts);
|
|
4001
|
+
drawCircleController(ctx, calcViewPointSize(rotate.center, opts), { ...ctrlOpts, size: controllerSize, borderWidth: 2 });
|
|
3923
4002
|
}
|
|
3924
4003
|
function drawArea(ctx, opts) {
|
|
3925
4004
|
const { start, end } = opts;
|
|
@@ -4009,8 +4088,8 @@ var __privateMethod = (obj, member, method) => {
|
|
|
4009
4088
|
};
|
|
4010
4089
|
const { ctx, data, calculator, selectedElements, viewScaleInfo, viewSizeInfo, areaSize, groupQueue, selectedElementController } = opts;
|
|
4011
4090
|
if (selectedElementController) {
|
|
4012
|
-
const { left, right, top, bottom, topLeft, topRight, bottomLeft, bottomRight } = selectedElementController;
|
|
4013
|
-
const ctrls = [left, right, top, bottom, topLeft, topRight, bottomLeft, bottomRight];
|
|
4091
|
+
const { left, right, top, bottom, topLeft, topRight, bottomLeft, bottomRight, rotate } = selectedElementController;
|
|
4092
|
+
const ctrls = [left, right, top, bottom, topLeft, topRight, bottomLeft, bottomRight, rotate];
|
|
4014
4093
|
for (let i = 0; i < ctrls.length; i++) {
|
|
4015
4094
|
const ctrl = ctrls[i];
|
|
4016
4095
|
if (isPointInViewActiveVertexes(p, { ctx, vertexes: ctrl.vertexes, viewSizeInfo, viewScaleInfo })) {
|
|
@@ -4590,6 +4669,24 @@ var __privateMethod = (obj, member, method) => {
|
|
|
4590
4669
|
}
|
|
4591
4670
|
return { x: x2, y: y2, w: w2, h: h2, angle: elem.angle };
|
|
4592
4671
|
}
|
|
4672
|
+
function rotateElement(elem, opts) {
|
|
4673
|
+
const { x: x2, y: y2, w: w2, h: h2, angle: angle2 = 0 } = elem;
|
|
4674
|
+
const { center, start, end, viewScaleInfo, viewSizeInfo } = opts;
|
|
4675
|
+
const elemCenter = calcViewPointSize(center, {
|
|
4676
|
+
viewScaleInfo,
|
|
4677
|
+
viewSizeInfo
|
|
4678
|
+
});
|
|
4679
|
+
const startAngle = limitAngle(angle2);
|
|
4680
|
+
const changedRadian = calcRadian(elemCenter, start, end);
|
|
4681
|
+
const endAngle = startAngle + parseRadianToAngle(changedRadian);
|
|
4682
|
+
return {
|
|
4683
|
+
x: x2,
|
|
4684
|
+
y: y2,
|
|
4685
|
+
w: w2,
|
|
4686
|
+
h: h2,
|
|
4687
|
+
angle: endAngle
|
|
4688
|
+
};
|
|
4689
|
+
}
|
|
4593
4690
|
function getSelectedListArea(data, opts) {
|
|
4594
4691
|
var _a;
|
|
4595
4692
|
const indexes = [];
|
|
@@ -4907,7 +5004,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
4907
5004
|
if (list.length === 1) {
|
|
4908
5005
|
const controller = calcElementSizeController(list[0], {
|
|
4909
5006
|
groupQueue: sharer.getSharedStorage(keyGroupQueue),
|
|
4910
|
-
controllerSize
|
|
5007
|
+
controllerSize,
|
|
4911
5008
|
viewScaleInfo: sharer.getActiveViewScaleInfo()
|
|
4912
5009
|
});
|
|
4913
5010
|
sharer.setSharedStorage(keySelectedElementController, controller);
|
|
@@ -5134,6 +5231,8 @@ var __privateMethod = (obj, member, method) => {
|
|
|
5134
5231
|
const data = sharer.getActiveStorage("data");
|
|
5135
5232
|
const elems = getActiveElements();
|
|
5136
5233
|
const scale = sharer.getActiveStorage("scale") || 1;
|
|
5234
|
+
const viewScaleInfo = sharer.getActiveViewScaleInfo();
|
|
5235
|
+
const viewSizeInfo = sharer.getActiveViewSizeInfo();
|
|
5137
5236
|
const start = prevPoint;
|
|
5138
5237
|
const end = e.point;
|
|
5139
5238
|
const resizeType = sharer.getSharedStorage(keyResizeType);
|
|
@@ -5183,17 +5282,38 @@ var __privateMethod = (obj, member, method) => {
|
|
|
5183
5282
|
resizeStart = rotatePointInGroup(start, pointGroupQueue);
|
|
5184
5283
|
resizeEnd = rotatePointInGroup(end, pointGroupQueue);
|
|
5185
5284
|
}
|
|
5186
|
-
|
|
5187
|
-
|
|
5188
|
-
|
|
5189
|
-
|
|
5190
|
-
|
|
5191
|
-
|
|
5192
|
-
|
|
5285
|
+
if (resizeType === "resize-rotate") {
|
|
5286
|
+
const controller = sharer.getSharedStorage(keySelectedElementController);
|
|
5287
|
+
const viewVertexes = [
|
|
5288
|
+
controller.topLeft.center,
|
|
5289
|
+
controller.topRight.center,
|
|
5290
|
+
controller.bottomLeft.center,
|
|
5291
|
+
controller.bottomRight.center
|
|
5292
|
+
];
|
|
5293
|
+
const viewCenter = calcElementCenterFromVertexes(viewVertexes);
|
|
5294
|
+
const resizedElemSize = rotateElement(elems[0], {
|
|
5295
|
+
center: viewCenter,
|
|
5296
|
+
viewScaleInfo,
|
|
5297
|
+
viewSizeInfo,
|
|
5298
|
+
start,
|
|
5299
|
+
end,
|
|
5300
|
+
resizeType,
|
|
5301
|
+
sharer
|
|
5193
5302
|
});
|
|
5303
|
+
elems[0].angle = resizedElemSize.angle;
|
|
5194
5304
|
} else {
|
|
5195
|
-
elems[0]
|
|
5196
|
-
elems[0].
|
|
5305
|
+
const resizedElemSize = resizeElement(elems[0], { scale, start: resizeStart, end: resizeEnd, resizeType, sharer });
|
|
5306
|
+
elems[0].x = resizedElemSize.x;
|
|
5307
|
+
elems[0].y = resizedElemSize.y;
|
|
5308
|
+
if (elems[0].type === "group" && ((_c = elems[0].operations) == null ? void 0 : _c.deepResize) === true) {
|
|
5309
|
+
deepResizeGroupElement(elems[0], {
|
|
5310
|
+
w: resizedElemSize.w,
|
|
5311
|
+
h: resizedElemSize.h
|
|
5312
|
+
});
|
|
5313
|
+
} else {
|
|
5314
|
+
elems[0].w = resizedElemSize.w;
|
|
5315
|
+
elems[0].h = resizedElemSize.h;
|
|
5316
|
+
}
|
|
5197
5317
|
}
|
|
5198
5318
|
updateSelectedElementList([elems[0]]);
|
|
5199
5319
|
viewer.drawFrame();
|