@plait/draw 0.28.0 → 0.29.0

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.
Files changed (105) hide show
  1. package/constants/geometry.d.ts +71 -1
  2. package/constants/pointer.d.ts +4 -2
  3. package/engines/{comment.d.ts → basic-shapes/comment.d.ts} +1 -1
  4. package/engines/{cross.d.ts → basic-shapes/cross.d.ts} +2 -2
  5. package/engines/{diamond.d.ts → basic-shapes/diamond.d.ts} +1 -1
  6. package/engines/basic-shapes/ellipse.d.ts +13 -0
  7. package/engines/{hexagon.d.ts → basic-shapes/hexagon.d.ts} +2 -2
  8. package/engines/{left-arrow.d.ts → basic-shapes/left-arrow.d.ts} +2 -2
  9. package/engines/{octagon.d.ts → basic-shapes/octagon.d.ts} +2 -2
  10. package/engines/basic-shapes/parallelogram.d.ts +4 -0
  11. package/engines/{pentagon-arrow.d.ts → basic-shapes/pentagon-arrow.d.ts} +2 -2
  12. package/engines/{pentagon.d.ts → basic-shapes/pentagon.d.ts} +2 -2
  13. package/engines/basic-shapes/polygon.d.ts +8 -0
  14. package/engines/{process-arrow.d.ts → basic-shapes/process-arrow.d.ts} +2 -2
  15. package/engines/{rectangle.d.ts → basic-shapes/rectangle.d.ts} +1 -1
  16. package/engines/{right-arrow.d.ts → basic-shapes/right-arrow.d.ts} +2 -2
  17. package/engines/{round-comment.d.ts → basic-shapes/round-comment.d.ts} +1 -1
  18. package/engines/{round-rectangle.d.ts → basic-shapes/round-rectangle.d.ts} +1 -1
  19. package/engines/{star.d.ts → basic-shapes/star.d.ts} +2 -2
  20. package/engines/{trapezoid.d.ts → basic-shapes/trapezoid.d.ts} +2 -2
  21. package/engines/{triangle.d.ts → basic-shapes/triangle.d.ts} +2 -2
  22. package/engines/{two-way-arrow.d.ts → basic-shapes/two-way-arrow.d.ts} +2 -2
  23. package/engines/flowchart/delay.d.ts +2 -0
  24. package/engines/flowchart/manual-input.d.ts +4 -0
  25. package/engines/flowchart/manual-loop.d.ts +4 -0
  26. package/engines/flowchart/merge.d.ts +4 -0
  27. package/engines/flowchart/preparation.d.ts +4 -0
  28. package/engines/flowchart/stored-data.d.ts +2 -0
  29. package/engines/flowchart/terminal.d.ts +5 -0
  30. package/engines/index.d.ts +3 -3
  31. package/esm2022/constants/geometry.mjs +40 -2
  32. package/esm2022/constants/pointer.mjs +9 -3
  33. package/esm2022/engines/basic-shapes/comment.mjs +57 -0
  34. package/esm2022/engines/basic-shapes/cross.mjs +33 -0
  35. package/esm2022/engines/basic-shapes/diamond.mjs +16 -0
  36. package/esm2022/engines/basic-shapes/ellipse.mjs +100 -0
  37. package/esm2022/engines/basic-shapes/hexagon.mjs +27 -0
  38. package/esm2022/engines/basic-shapes/left-arrow.mjs +30 -0
  39. package/esm2022/engines/basic-shapes/octagon.mjs +29 -0
  40. package/esm2022/engines/basic-shapes/parallelogram.mjs +25 -0
  41. package/esm2022/engines/basic-shapes/pentagon-arrow.mjs +24 -0
  42. package/esm2022/engines/basic-shapes/pentagon.mjs +30 -0
  43. package/esm2022/engines/basic-shapes/polygon.mjs +40 -0
  44. package/esm2022/engines/basic-shapes/process-arrow.mjs +26 -0
  45. package/esm2022/engines/basic-shapes/rectangle.mjs +26 -0
  46. package/esm2022/engines/basic-shapes/right-arrow.mjs +28 -0
  47. package/esm2022/engines/basic-shapes/round-comment.mjs +81 -0
  48. package/esm2022/engines/basic-shapes/round-rectangle.mjs +59 -0
  49. package/esm2022/engines/basic-shapes/star.mjs +39 -0
  50. package/esm2022/engines/basic-shapes/trapezoid.mjs +25 -0
  51. package/esm2022/engines/basic-shapes/triangle.mjs +33 -0
  52. package/esm2022/engines/basic-shapes/two-way-arrow.mjs +25 -0
  53. package/esm2022/engines/flowchart/delay.mjs +45 -0
  54. package/esm2022/engines/flowchart/manual-input.mjs +32 -0
  55. package/esm2022/engines/flowchart/manual-loop.mjs +25 -0
  56. package/esm2022/engines/flowchart/merge.mjs +34 -0
  57. package/esm2022/engines/flowchart/preparation.mjs +27 -0
  58. package/esm2022/engines/flowchart/stored-data.mjs +74 -0
  59. package/esm2022/engines/flowchart/terminal.mjs +59 -0
  60. package/esm2022/engines/index.mjs +59 -41
  61. package/esm2022/generators/geometry-shape.generator.mjs +3 -3
  62. package/esm2022/generators/line.generator.mjs +1 -1
  63. package/esm2022/geometry.component.mjs +9 -5
  64. package/esm2022/image.component.mjs +4 -4
  65. package/esm2022/interfaces/geometry.mjs +38 -24
  66. package/esm2022/interfaces/index.mjs +9 -3
  67. package/esm2022/interfaces/text.mjs +1 -1
  68. package/esm2022/line.component.mjs +4 -4
  69. package/esm2022/plugins/with-geometry-create.mjs +31 -19
  70. package/esm2022/transforms/geometry.mjs +6 -6
  71. package/esm2022/utils/geometry.mjs +13 -5
  72. package/esm2022/utils/line-arrow.mjs +3 -3
  73. package/esm2022/utils/shape.mjs +3 -3
  74. package/fesm2022/plait-draw.mjs +750 -536
  75. package/fesm2022/plait-draw.mjs.map +1 -1
  76. package/interfaces/geometry.d.ts +19 -5
  77. package/interfaces/index.d.ts +2 -0
  78. package/interfaces/text.d.ts +2 -2
  79. package/package.json +1 -1
  80. package/plugins/with-geometry-create.d.ts +5 -0
  81. package/transforms/geometry.d.ts +2 -2
  82. package/transforms/index.d.ts +1 -1
  83. package/utils/geometry.d.ts +22 -3
  84. package/utils/shape.d.ts +2 -2
  85. package/engines/ellipse.d.ts +0 -4
  86. package/engines/parallelogram.d.ts +0 -4
  87. package/esm2022/engines/comment.mjs +0 -57
  88. package/esm2022/engines/cross.mjs +0 -46
  89. package/esm2022/engines/diamond.mjs +0 -30
  90. package/esm2022/engines/ellipse.mjs +0 -92
  91. package/esm2022/engines/hexagon.mjs +0 -40
  92. package/esm2022/engines/left-arrow.mjs +0 -45
  93. package/esm2022/engines/octagon.mjs +0 -42
  94. package/esm2022/engines/parallelogram.mjs +0 -39
  95. package/esm2022/engines/pentagon-arrow.mjs +0 -39
  96. package/esm2022/engines/pentagon.mjs +0 -39
  97. package/esm2022/engines/process-arrow.mjs +0 -41
  98. package/esm2022/engines/rectangle.mjs +0 -26
  99. package/esm2022/engines/right-arrow.mjs +0 -45
  100. package/esm2022/engines/round-comment.mjs +0 -81
  101. package/esm2022/engines/round-rectangle.mjs +0 -59
  102. package/esm2022/engines/star.mjs +0 -45
  103. package/esm2022/engines/trapezoid.mjs +0 -40
  104. package/esm2022/engines/triangle.mjs +0 -40
  105. package/esm2022/engines/two-way-arrow.mjs +0 -48
@@ -1,40 +0,0 @@
1
- import { PlaitBoard, RectangleClient, getNearestPointBetweenPointAndSegments, isPointInPolygon, setStrokeLinecap } from '@plait/core';
2
- import { getCenterPointsOnPolygon, getEdgeOnPolygonByPoint } from '../utils/geometry';
3
- export const TriangleEngine = {
4
- draw(board, rectangle, options) {
5
- const points = getTrianglePoints(rectangle);
6
- const rs = PlaitBoard.getRoughSVG(board);
7
- const polygon = rs.polygon(points, { ...options, fillStyle: 'solid' });
8
- setStrokeLinecap(polygon, 'round');
9
- return polygon;
10
- },
11
- isHit(rectangle, point) {
12
- const points = getTrianglePoints(rectangle);
13
- return isPointInPolygon(point, points);
14
- },
15
- getNearestPoint(rectangle, point) {
16
- const cornerPoints = getTrianglePoints(rectangle);
17
- return getNearestPointBetweenPointAndSegments(point, cornerPoints);
18
- },
19
- getConnectorPoints(rectangle) {
20
- const cornerPoints = getTrianglePoints(rectangle);
21
- const lineCenterPoints = getCenterPointsOnPolygon(cornerPoints);
22
- return [...lineCenterPoints, ...cornerPoints];
23
- },
24
- getEdgeByConnectionPoint(rectangle, pointOfRectangle) {
25
- const corners = getTrianglePoints(rectangle);
26
- const point = RectangleClient.getConnectionPoint(rectangle, pointOfRectangle);
27
- return getEdgeOnPolygonByPoint(corners, point);
28
- },
29
- getCornerPoints(rectangle) {
30
- return getTrianglePoints(rectangle);
31
- }
32
- };
33
- export const getTrianglePoints = (rectangle) => {
34
- return [
35
- [rectangle.x + rectangle.width / 2, rectangle.y],
36
- [rectangle.x + rectangle.width, rectangle.y + rectangle.height],
37
- [rectangle.x, rectangle.y + rectangle.height]
38
- ];
39
- };
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJpYW5nbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9lbmdpbmVzL3RyaWFuZ2xlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxVQUFVLEVBR1YsZUFBZSxFQUNmLHNDQUFzQyxFQUN0QyxnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ25CLE1BQU0sYUFBYSxDQUFDO0FBR3JCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXRGLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBZ0I7SUFDdkMsSUFBSSxDQUFDLEtBQWlCLEVBQUUsU0FBMEIsRUFBRSxPQUFnQjtRQUNoRSxNQUFNLE1BQU0sR0FBRyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM1QyxNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsR0FBRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDdkUsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ25DLE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7SUFDRCxLQUFLLENBQUMsU0FBMEIsRUFBRSxLQUFZO1FBQzFDLE1BQU0sTUFBTSxHQUFHLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzVDLE9BQU8sZ0JBQWdCLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFDRCxlQUFlLENBQUMsU0FBMEIsRUFBRSxLQUFZO1FBQ3BELE1BQU0sWUFBWSxHQUFHLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2xELE9BQU8sc0NBQXNDLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFDRCxrQkFBa0IsQ0FBQyxTQUEwQjtRQUN6QyxNQUFNLFlBQVksR0FBRyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNsRCxNQUFNLGdCQUFnQixHQUFHLHdCQUF3QixDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2hFLE9BQU8sQ0FBQyxHQUFHLGdCQUFnQixFQUFFLEdBQUcsWUFBWSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUNELHdCQUF3QixDQUFDLFNBQTBCLEVBQUUsZ0JBQWtDO1FBQ25GLE1BQU0sT0FBTyxHQUFHLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzdDLE1BQU0sS0FBSyxHQUFHLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUM5RSxPQUFPLHVCQUF1QixDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBQ0QsZUFBZSxDQUFDLFNBQTBCO1FBQ3RDLE9BQU8saUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDeEMsQ0FBQztDQUNKLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLFNBQTBCLEVBQVcsRUFBRTtJQUNyRSxPQUFPO1FBQ0gsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDaEQsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDO1FBQy9ELENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUM7S0FDaEQsQ0FBQztBQUNOLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgUGxhaXRCb2FyZCxcbiAgICBQb2ludCxcbiAgICBQb2ludE9mUmVjdGFuZ2xlLFxuICAgIFJlY3RhbmdsZUNsaWVudCxcbiAgICBnZXROZWFyZXN0UG9pbnRCZXR3ZWVuUG9pbnRBbmRTZWdtZW50cyxcbiAgICBpc1BvaW50SW5Qb2x5Z29uLFxuICAgIHNldFN0cm9rZUxpbmVjYXBcbn0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgU2hhcGVFbmdpbmUgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE9wdGlvbnMgfSBmcm9tICdyb3VnaGpzL2Jpbi9jb3JlJztcbmltcG9ydCB7IGdldENlbnRlclBvaW50c09uUG9seWdvbiwgZ2V0RWRnZU9uUG9seWdvbkJ5UG9pbnQgfSBmcm9tICcuLi91dGlscy9nZW9tZXRyeSc7XG5cbmV4cG9ydCBjb25zdCBUcmlhbmdsZUVuZ2luZTogU2hhcGVFbmdpbmUgPSB7XG4gICAgZHJhdyhib2FyZDogUGxhaXRCb2FyZCwgcmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIG9wdGlvbnM6IE9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgcG9pbnRzID0gZ2V0VHJpYW5nbGVQb2ludHMocmVjdGFuZ2xlKTtcbiAgICAgICAgY29uc3QgcnMgPSBQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKGJvYXJkKTtcbiAgICAgICAgY29uc3QgcG9seWdvbiA9IHJzLnBvbHlnb24ocG9pbnRzLCB7IC4uLm9wdGlvbnMsIGZpbGxTdHlsZTogJ3NvbGlkJyB9KTtcbiAgICAgICAgc2V0U3Ryb2tlTGluZWNhcChwb2x5Z29uLCAncm91bmQnKTtcbiAgICAgICAgcmV0dXJuIHBvbHlnb247XG4gICAgfSxcbiAgICBpc0hpdChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcG9pbnQ6IFBvaW50KSB7XG4gICAgICAgIGNvbnN0IHBvaW50cyA9IGdldFRyaWFuZ2xlUG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgICAgIHJldHVybiBpc1BvaW50SW5Qb2x5Z29uKHBvaW50LCBwb2ludHMpO1xuICAgIH0sXG4gICAgZ2V0TmVhcmVzdFBvaW50KHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBwb2ludDogUG9pbnQpIHtcbiAgICAgICAgY29uc3QgY29ybmVyUG9pbnRzID0gZ2V0VHJpYW5nbGVQb2ludHMocmVjdGFuZ2xlKTtcbiAgICAgICAgcmV0dXJuIGdldE5lYXJlc3RQb2ludEJldHdlZW5Qb2ludEFuZFNlZ21lbnRzKHBvaW50LCBjb3JuZXJQb2ludHMpO1xuICAgIH0sXG4gICAgZ2V0Q29ubmVjdG9yUG9pbnRzKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50KSB7XG4gICAgICAgIGNvbnN0IGNvcm5lclBvaW50cyA9IGdldFRyaWFuZ2xlUG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgICAgIGNvbnN0IGxpbmVDZW50ZXJQb2ludHMgPSBnZXRDZW50ZXJQb2ludHNPblBvbHlnb24oY29ybmVyUG9pbnRzKTtcbiAgICAgICAgcmV0dXJuIFsuLi5saW5lQ2VudGVyUG9pbnRzLCAuLi5jb3JuZXJQb2ludHNdO1xuICAgIH0sXG4gICAgZ2V0RWRnZUJ5Q29ubmVjdGlvblBvaW50KHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBwb2ludE9mUmVjdGFuZ2xlOiBQb2ludE9mUmVjdGFuZ2xlKTogW1BvaW50LCBQb2ludF0gfCBudWxsIHtcbiAgICAgICAgY29uc3QgY29ybmVycyA9IGdldFRyaWFuZ2xlUG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgICAgIGNvbnN0IHBvaW50ID0gUmVjdGFuZ2xlQ2xpZW50LmdldENvbm5lY3Rpb25Qb2ludChyZWN0YW5nbGUsIHBvaW50T2ZSZWN0YW5nbGUpO1xuICAgICAgICByZXR1cm4gZ2V0RWRnZU9uUG9seWdvbkJ5UG9pbnQoY29ybmVycywgcG9pbnQpO1xuICAgIH0sXG4gICAgZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50KSB7XG4gICAgICAgIHJldHVybiBnZXRUcmlhbmdsZVBvaW50cyhyZWN0YW5nbGUpO1xuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBnZXRUcmlhbmdsZVBvaW50cyA9IChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCk6IFBvaW50W10gPT4ge1xuICAgIHJldHVybiBbXG4gICAgICAgIFtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAvIDIsIHJlY3RhbmdsZS55XSxcbiAgICAgICAgW3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoLCByZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHRdLFxuICAgICAgICBbcmVjdGFuZ2xlLngsIHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodF1cbiAgICBdO1xufTtcbiJdfQ==
@@ -1,48 +0,0 @@
1
- import { PlaitBoard, RectangleClient, getNearestPointBetweenPointAndSegments, isPointInPolygon, setStrokeLinecap } from '@plait/core';
2
- import { getEdgeOnPolygonByPoint } from '../utils/geometry';
3
- export const TwoWayArrowEngine = {
4
- draw(board, rectangle, options) {
5
- const points = getTwoWayArrowPoints(rectangle);
6
- const rs = PlaitBoard.getRoughSVG(board);
7
- const polygon = rs.polygon(points, { ...options, fillStyle: 'solid' });
8
- setStrokeLinecap(polygon, 'round');
9
- return polygon;
10
- },
11
- getCornerPoints(rectangle) {
12
- return getTwoWayArrowPoints(rectangle);
13
- },
14
- isHit(rectangle, point) {
15
- const points = getTwoWayArrowPoints(rectangle);
16
- return isPointInPolygon(point, points);
17
- },
18
- getNearestPoint(rectangle, point) {
19
- const cornerPoints = getTwoWayArrowPoints(rectangle);
20
- return getNearestPointBetweenPointAndSegments(point, cornerPoints);
21
- },
22
- getEdgeByConnectionPoint(rectangle, pointOfRectangle) {
23
- const corners = getTwoWayArrowPoints(rectangle);
24
- const point = RectangleClient.getConnectionPoint(rectangle, pointOfRectangle);
25
- return getEdgeOnPolygonByPoint(corners, point);
26
- },
27
- getConnectorPoints(rectangle) {
28
- return [
29
- [rectangle.x, rectangle.y + rectangle.height / 2],
30
- [rectangle.x + rectangle.width, rectangle.y + rectangle.height / 2]
31
- ];
32
- }
33
- };
34
- export const getTwoWayArrowPoints = (rectangle) => {
35
- return [
36
- [rectangle.x, rectangle.y + rectangle.height / 2],
37
- [rectangle.x + (rectangle.width * 8) / 25, rectangle.y],
38
- [rectangle.x + (rectangle.width * 8) / 25, rectangle.y + rectangle.height / 5],
39
- [rectangle.x + (rectangle.width * 17) / 25, rectangle.y + rectangle.height / 5],
40
- [rectangle.x + (rectangle.width * 17) / 25, rectangle.y],
41
- [rectangle.x + rectangle.width, rectangle.y + rectangle.height / 2],
42
- [rectangle.x + (rectangle.width * 17) / 25, rectangle.y + rectangle.height],
43
- [rectangle.x + (rectangle.width * 17) / 25, rectangle.y + (rectangle.height * 4) / 5],
44
- [rectangle.x + (rectangle.width * 8) / 25, rectangle.y + (rectangle.height * 4) / 5],
45
- [rectangle.x + (rectangle.width * 8) / 25, rectangle.y + rectangle.height]
46
- ];
47
- };
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHdvLXdheS1hcnJvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2RyYXcvc3JjL2VuZ2luZXMvdHdvLXdheS1hcnJvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsVUFBVSxFQUdWLGVBQWUsRUFDZixzQ0FBc0MsRUFDdEMsZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUNuQixNQUFNLGFBQWEsQ0FBQztBQUdyQixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUU1RCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBZ0I7SUFDMUMsSUFBSSxDQUFDLEtBQWlCLEVBQUUsU0FBMEIsRUFBRSxPQUFnQjtRQUNoRSxNQUFNLE1BQU0sR0FBRyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvQyxNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsR0FBRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDdkUsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ25DLE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7SUFDRCxlQUFlLENBQUMsU0FBMEI7UUFDdEMsT0FBTyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBQ0QsS0FBSyxDQUFDLFNBQTBCLEVBQUUsS0FBWTtRQUMxQyxNQUFNLE1BQU0sR0FBRyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvQyxPQUFPLGdCQUFnQixDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBQ0QsZUFBZSxDQUFDLFNBQTBCLEVBQUUsS0FBWTtRQUNwRCxNQUFNLFlBQVksR0FBRyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNyRCxPQUFPLHNDQUFzQyxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBQ0Qsd0JBQXdCLENBQUMsU0FBMEIsRUFBRSxnQkFBa0M7UUFDbkYsTUFBTSxPQUFPLEdBQUcsb0JBQW9CLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEQsTUFBTSxLQUFLLEdBQUcsZUFBZSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzlFLE9BQU8sdUJBQXVCLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFDRCxrQkFBa0IsQ0FBQyxTQUEwQjtRQUN6QyxPQUFPO1lBQ0gsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDakQsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztTQUN0RSxDQUFDO0lBQ04sQ0FBQztDQUNKLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLFNBQTBCLEVBQVcsRUFBRTtJQUN4RSxPQUFPO1FBQ0gsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDakQsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUN2RCxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQzlFLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDL0UsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUN4RCxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ25FLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQztRQUMzRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDckYsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BGLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQztLQUM3RSxDQUFDO0FBQ04sQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBQbGFpdEJvYXJkLFxuICAgIFBvaW50LFxuICAgIFBvaW50T2ZSZWN0YW5nbGUsXG4gICAgUmVjdGFuZ2xlQ2xpZW50LFxuICAgIGdldE5lYXJlc3RQb2ludEJldHdlZW5Qb2ludEFuZFNlZ21lbnRzLFxuICAgIGlzUG9pbnRJblBvbHlnb24sXG4gICAgc2V0U3Ryb2tlTGluZWNhcFxufSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBTaGFwZUVuZ2luZSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgT3B0aW9ucyB9IGZyb20gJ3JvdWdoanMvYmluL2NvcmUnO1xuaW1wb3J0IHsgZ2V0RWRnZU9uUG9seWdvbkJ5UG9pbnQgfSBmcm9tICcuLi91dGlscy9nZW9tZXRyeSc7XG5cbmV4cG9ydCBjb25zdCBUd29XYXlBcnJvd0VuZ2luZTogU2hhcGVFbmdpbmUgPSB7XG4gICAgZHJhdyhib2FyZDogUGxhaXRCb2FyZCwgcmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIG9wdGlvbnM6IE9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgcG9pbnRzID0gZ2V0VHdvV2F5QXJyb3dQb2ludHMocmVjdGFuZ2xlKTtcbiAgICAgICAgY29uc3QgcnMgPSBQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKGJvYXJkKTtcbiAgICAgICAgY29uc3QgcG9seWdvbiA9IHJzLnBvbHlnb24ocG9pbnRzLCB7IC4uLm9wdGlvbnMsIGZpbGxTdHlsZTogJ3NvbGlkJyB9KTtcbiAgICAgICAgc2V0U3Ryb2tlTGluZWNhcChwb2x5Z29uLCAncm91bmQnKTtcbiAgICAgICAgcmV0dXJuIHBvbHlnb247XG4gICAgfSxcbiAgICBnZXRDb3JuZXJQb2ludHMocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpIHtcbiAgICAgICAgcmV0dXJuIGdldFR3b1dheUFycm93UG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgfSxcbiAgICBpc0hpdChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcG9pbnQ6IFBvaW50KSB7XG4gICAgICAgIGNvbnN0IHBvaW50cyA9IGdldFR3b1dheUFycm93UG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgICAgIHJldHVybiBpc1BvaW50SW5Qb2x5Z29uKHBvaW50LCBwb2ludHMpO1xuICAgIH0sXG4gICAgZ2V0TmVhcmVzdFBvaW50KHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBwb2ludDogUG9pbnQpIHtcbiAgICAgICAgY29uc3QgY29ybmVyUG9pbnRzID0gZ2V0VHdvV2F5QXJyb3dQb2ludHMocmVjdGFuZ2xlKTtcbiAgICAgICAgcmV0dXJuIGdldE5lYXJlc3RQb2ludEJldHdlZW5Qb2ludEFuZFNlZ21lbnRzKHBvaW50LCBjb3JuZXJQb2ludHMpO1xuICAgIH0sXG4gICAgZ2V0RWRnZUJ5Q29ubmVjdGlvblBvaW50KHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBwb2ludE9mUmVjdGFuZ2xlOiBQb2ludE9mUmVjdGFuZ2xlKTogW1BvaW50LCBQb2ludF0gfCBudWxsIHtcbiAgICAgICAgY29uc3QgY29ybmVycyA9IGdldFR3b1dheUFycm93UG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgICAgIGNvbnN0IHBvaW50ID0gUmVjdGFuZ2xlQ2xpZW50LmdldENvbm5lY3Rpb25Qb2ludChyZWN0YW5nbGUsIHBvaW50T2ZSZWN0YW5nbGUpO1xuICAgICAgICByZXR1cm4gZ2V0RWRnZU9uUG9seWdvbkJ5UG9pbnQoY29ybmVycywgcG9pbnQpO1xuICAgIH0sXG4gICAgZ2V0Q29ubmVjdG9yUG9pbnRzKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50KSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBbcmVjdGFuZ2xlLngsIHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodCAvIDJdLFxuICAgICAgICAgICAgW3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoLCByZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHQgLyAyXVxuICAgICAgICBdO1xuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBnZXRUd29XYXlBcnJvd1BvaW50cyA9IChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCk6IFBvaW50W10gPT4ge1xuICAgIHJldHVybiBbXG4gICAgICAgIFtyZWN0YW5nbGUueCwgcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0IC8gMl0sXG4gICAgICAgIFtyZWN0YW5nbGUueCArIChyZWN0YW5nbGUud2lkdGggKiA4KSAvIDI1LCByZWN0YW5nbGUueV0sXG4gICAgICAgIFtyZWN0YW5nbGUueCArIChyZWN0YW5nbGUud2lkdGggKiA4KSAvIDI1LCByZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHQgLyA1XSxcbiAgICAgICAgW3JlY3RhbmdsZS54ICsgKHJlY3RhbmdsZS53aWR0aCAqIDE3KSAvIDI1LCByZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHQgLyA1XSxcbiAgICAgICAgW3JlY3RhbmdsZS54ICsgKHJlY3RhbmdsZS53aWR0aCAqIDE3KSAvIDI1LCByZWN0YW5nbGUueV0sXG4gICAgICAgIFtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCwgcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0IC8gMl0sXG4gICAgICAgIFtyZWN0YW5nbGUueCArIChyZWN0YW5nbGUud2lkdGggKiAxNykgLyAyNSwgcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0XSxcbiAgICAgICAgW3JlY3RhbmdsZS54ICsgKHJlY3RhbmdsZS53aWR0aCAqIDE3KSAvIDI1LCByZWN0YW5nbGUueSArIChyZWN0YW5nbGUuaGVpZ2h0ICogNCkgLyA1XSxcbiAgICAgICAgW3JlY3RhbmdsZS54ICsgKHJlY3RhbmdsZS53aWR0aCAqIDgpIC8gMjUsIHJlY3RhbmdsZS55ICsgKHJlY3RhbmdsZS5oZWlnaHQgKiA0KSAvIDVdLFxuICAgICAgICBbcmVjdGFuZ2xlLnggKyAocmVjdGFuZ2xlLndpZHRoICogOCkgLyAyNSwgcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0XVxuICAgIF07XG59O1xuIl19