@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.
@@ -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 = (controllerSize && controllerSize > 0 ? controllerSize : 8) / viewScaleInfo.scale;
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: 10,
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
- const resizedElemSize = resizeElement(elems[0], { scale, start: resizeStart, end: resizeEnd, resizeType, sharer });
5187
- elems[0].x = resizedElemSize.x;
5188
- elems[0].y = resizedElemSize.y;
5189
- if (elems[0].type === "group" && ((_c = elems[0].operations) == null ? void 0 : _c.deepResize) === true) {
5190
- deepResizeGroupElement(elems[0], {
5191
- w: resizedElemSize.w,
5192
- h: resizedElemSize.h
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].w = resizedElemSize.w;
5196
- elems[0].h = resizedElemSize.h;
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 = "drag-element";
5392
+ let type = "dragElement";
5270
5393
  eventHub.trigger("change", { data, type });
5271
5394
  }
5272
5395
  viewer.drawFrame();