@plait/draw 0.28.0 → 0.30.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 (117) 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/line.mjs +1 -1
  33. package/esm2022/constants/pointer.mjs +9 -3
  34. package/esm2022/engines/basic-shapes/comment.mjs +57 -0
  35. package/esm2022/engines/basic-shapes/cross.mjs +33 -0
  36. package/esm2022/engines/basic-shapes/diamond.mjs +16 -0
  37. package/esm2022/engines/basic-shapes/ellipse.mjs +100 -0
  38. package/esm2022/engines/basic-shapes/hexagon.mjs +27 -0
  39. package/esm2022/engines/basic-shapes/left-arrow.mjs +30 -0
  40. package/esm2022/engines/basic-shapes/octagon.mjs +29 -0
  41. package/esm2022/engines/basic-shapes/parallelogram.mjs +25 -0
  42. package/esm2022/engines/basic-shapes/pentagon-arrow.mjs +24 -0
  43. package/esm2022/engines/basic-shapes/pentagon.mjs +30 -0
  44. package/esm2022/engines/basic-shapes/polygon.mjs +40 -0
  45. package/esm2022/engines/basic-shapes/process-arrow.mjs +26 -0
  46. package/esm2022/engines/basic-shapes/rectangle.mjs +26 -0
  47. package/esm2022/engines/basic-shapes/right-arrow.mjs +28 -0
  48. package/esm2022/engines/basic-shapes/round-comment.mjs +81 -0
  49. package/esm2022/engines/basic-shapes/round-rectangle.mjs +59 -0
  50. package/esm2022/engines/basic-shapes/star.mjs +39 -0
  51. package/esm2022/engines/basic-shapes/trapezoid.mjs +25 -0
  52. package/esm2022/engines/basic-shapes/triangle.mjs +33 -0
  53. package/esm2022/engines/basic-shapes/two-way-arrow.mjs +25 -0
  54. package/esm2022/engines/flowchart/delay.mjs +45 -0
  55. package/esm2022/engines/flowchart/manual-input.mjs +32 -0
  56. package/esm2022/engines/flowchart/manual-loop.mjs +25 -0
  57. package/esm2022/engines/flowchart/merge.mjs +34 -0
  58. package/esm2022/engines/flowchart/preparation.mjs +27 -0
  59. package/esm2022/engines/flowchart/stored-data.mjs +74 -0
  60. package/esm2022/engines/flowchart/terminal.mjs +59 -0
  61. package/esm2022/engines/index.mjs +59 -41
  62. package/esm2022/generators/geometry-shape.generator.mjs +3 -3
  63. package/esm2022/generators/line-active.generator.mjs +1 -1
  64. package/esm2022/generators/line.generator.mjs +1 -1
  65. package/esm2022/geometry.component.mjs +9 -5
  66. package/esm2022/image.component.mjs +4 -4
  67. package/esm2022/interfaces/geometry.mjs +38 -24
  68. package/esm2022/interfaces/index.mjs +9 -3
  69. package/esm2022/interfaces/text.mjs +1 -1
  70. package/esm2022/line.component.mjs +4 -4
  71. package/esm2022/plugins/with-draw-fragment.mjs +5 -4
  72. package/esm2022/plugins/with-draw.mjs +15 -31
  73. package/esm2022/plugins/with-geometry-create.mjs +32 -20
  74. package/esm2022/plugins/with-line-create.mjs +2 -2
  75. package/esm2022/plugins/with-line-text.mjs +4 -4
  76. package/esm2022/transforms/geometry.mjs +6 -6
  77. package/esm2022/utils/geometry.mjs +74 -5
  78. package/esm2022/utils/hit.mjs +58 -0
  79. package/esm2022/utils/index.mjs +2 -1
  80. package/esm2022/utils/line-arrow.mjs +3 -3
  81. package/esm2022/utils/line.mjs +39 -17
  82. package/esm2022/utils/shape.mjs +3 -3
  83. package/fesm2022/plait-draw.mjs +1200 -872
  84. package/fesm2022/plait-draw.mjs.map +1 -1
  85. package/interfaces/geometry.d.ts +19 -5
  86. package/interfaces/index.d.ts +2 -0
  87. package/interfaces/text.d.ts +2 -2
  88. package/package.json +1 -1
  89. package/plugins/with-geometry-create.d.ts +7 -1
  90. package/transforms/geometry.d.ts +2 -2
  91. package/transforms/index.d.ts +1 -1
  92. package/utils/geometry.d.ts +23 -3
  93. package/utils/hit.d.ts +3 -0
  94. package/utils/index.d.ts +1 -0
  95. package/utils/line.d.ts +2 -3
  96. package/utils/shape.d.ts +2 -2
  97. package/engines/ellipse.d.ts +0 -4
  98. package/engines/parallelogram.d.ts +0 -4
  99. package/esm2022/engines/comment.mjs +0 -57
  100. package/esm2022/engines/cross.mjs +0 -46
  101. package/esm2022/engines/diamond.mjs +0 -30
  102. package/esm2022/engines/ellipse.mjs +0 -92
  103. package/esm2022/engines/hexagon.mjs +0 -40
  104. package/esm2022/engines/left-arrow.mjs +0 -45
  105. package/esm2022/engines/octagon.mjs +0 -42
  106. package/esm2022/engines/parallelogram.mjs +0 -39
  107. package/esm2022/engines/pentagon-arrow.mjs +0 -39
  108. package/esm2022/engines/pentagon.mjs +0 -39
  109. package/esm2022/engines/process-arrow.mjs +0 -41
  110. package/esm2022/engines/rectangle.mjs +0 -26
  111. package/esm2022/engines/right-arrow.mjs +0 -45
  112. package/esm2022/engines/round-comment.mjs +0 -81
  113. package/esm2022/engines/round-rectangle.mjs +0 -59
  114. package/esm2022/engines/star.mjs +0 -45
  115. package/esm2022/engines/trapezoid.mjs +0 -40
  116. package/esm2022/engines/triangle.mjs +0 -40
  117. package/esm2022/engines/two-way-arrow.mjs +0 -48
@@ -11,7 +11,7 @@ export declare const DefaultGeometryActiveStyle: {
11
11
  strokeWidth: number;
12
12
  selectionStrokeWidth: number;
13
13
  };
14
- export declare const DefaultGeometryProperty: {
14
+ export declare const DefaultBasicShapeProperty: {
15
15
  width: number;
16
16
  height: number;
17
17
  strokeColor: string;
@@ -25,3 +25,73 @@ export declare const DefaultTextProperty: {
25
25
  export declare const GeometryThreshold: {
26
26
  defaultTextMaxWidth: number;
27
27
  };
28
+ export declare const DefaultConnectorProperty: {
29
+ width: number;
30
+ height: number;
31
+ };
32
+ export declare const DefaultFlowchartProperty: {
33
+ width: number;
34
+ height: number;
35
+ };
36
+ export declare const DefaultDecisionProperty: {
37
+ width: number;
38
+ height: number;
39
+ };
40
+ export declare const DefaultDataProperty: {
41
+ width: number;
42
+ height: number;
43
+ };
44
+ export declare const DefaultManualInputProperty: {
45
+ width: number;
46
+ height: number;
47
+ };
48
+ export declare const DefaultMergeProperty: {
49
+ width: number;
50
+ height: number;
51
+ };
52
+ export declare const DefaultFlowchartPropertyMap: {
53
+ connector: {
54
+ width: number;
55
+ height: number;
56
+ };
57
+ process: {
58
+ width: number;
59
+ height: number;
60
+ };
61
+ decision: {
62
+ width: number;
63
+ height: number;
64
+ };
65
+ data: {
66
+ width: number;
67
+ height: number;
68
+ };
69
+ terminal: {
70
+ width: number;
71
+ height: number;
72
+ };
73
+ manualInput: {
74
+ width: number;
75
+ height: number;
76
+ };
77
+ preparation: {
78
+ width: number;
79
+ height: number;
80
+ };
81
+ manualLoop: {
82
+ width: number;
83
+ height: number;
84
+ };
85
+ merge: {
86
+ width: number;
87
+ height: number;
88
+ };
89
+ delay: {
90
+ width: number;
91
+ height: number;
92
+ };
93
+ storedData: {
94
+ width: number;
95
+ height: number;
96
+ };
97
+ };
@@ -1,4 +1,6 @@
1
- import { GeometryShape, LineShape } from '../interfaces';
2
- export type DrawPointerType = GeometryShape | LineShape;
1
+ import { BasicShapes, FlowchartSymbols, LineShape } from '../interfaces';
2
+ export type DrawPointerType = BasicShapes | LineShape | FlowchartSymbols;
3
3
  export declare const getGeometryPointers: () => string[];
4
+ export declare const getBasicPointers: () => string[];
5
+ export declare const getFlowchartPointers: () => string[];
4
6
  export declare const getLinePointers: () => string[];
@@ -1,4 +1,4 @@
1
1
  import { Point, RectangleClient } from '@plait/core';
2
- import { ShapeEngine } from '../interfaces';
2
+ import { ShapeEngine } from '../../interfaces';
3
3
  export declare const CommentEngine: ShapeEngine;
4
4
  export declare const getCommentPoints: (rectangle: RectangleClient) => Point[];
@@ -1,4 +1,4 @@
1
1
  import { Point, RectangleClient } from '@plait/core';
2
- import { ShapeEngine } from '../interfaces';
3
- export declare const CrossEngine: ShapeEngine;
2
+ import { ShapeEngine } from '../../interfaces';
4
3
  export declare const getCrossPoints: (rectangle: RectangleClient) => Point[];
4
+ export declare const CrossEngine: ShapeEngine;
@@ -1,2 +1,2 @@
1
- import { ShapeEngine } from '../interfaces';
1
+ import { ShapeEngine } from '../../interfaces';
2
2
  export declare const DiamondEngine: ShapeEngine;
@@ -0,0 +1,13 @@
1
+ import { Point, Vector } from '@plait/core';
2
+ import { ShapeEngine } from '../../interfaces';
3
+ export declare const EllipseEngine: ShapeEngine;
4
+ export declare function getNearestPointBetweenPointAndEllipse(point: Point, center: Point, rx: number, ry: number, rotation?: number): Point;
5
+ /**
6
+ * the result of slope is based on Cartesian coordinate system
7
+ * x, y are based on the position in the Cartesian coordinate system
8
+ */
9
+ export declare function getTangentSlope(x: number, y: number, a: number, b: number): number;
10
+ /**
11
+ * x, y are based on the position in the Cartesian coordinate system
12
+ */
13
+ export declare function getVectorBySlope(x: number, y: number, slope: number): Vector;
@@ -1,4 +1,4 @@
1
1
  import { Point, RectangleClient } from '@plait/core';
2
- import { ShapeEngine } from '../interfaces';
3
- export declare const HexagonEngine: ShapeEngine;
2
+ import { ShapeEngine } from '../../interfaces';
4
3
  export declare const getHexagonPoints: (rectangle: RectangleClient) => Point[];
4
+ export declare const HexagonEngine: ShapeEngine;
@@ -1,4 +1,4 @@
1
1
  import { Point, RectangleClient } from '@plait/core';
2
- import { ShapeEngine } from '../interfaces';
3
- export declare const LeftArrowEngine: ShapeEngine;
2
+ import { ShapeEngine } from '../../interfaces';
4
3
  export declare const getLeftArrowPoints: (rectangle: RectangleClient) => Point[];
4
+ export declare const LeftArrowEngine: ShapeEngine;
@@ -1,4 +1,4 @@
1
1
  import { Point, RectangleClient } from '@plait/core';
2
- import { ShapeEngine } from '../interfaces';
3
- export declare const OctagonEngine: ShapeEngine;
2
+ import { ShapeEngine } from '../../interfaces';
4
3
  export declare const getOctagonPoints: (rectangle: RectangleClient) => Point[];
4
+ export declare const OctagonEngine: ShapeEngine;
@@ -0,0 +1,4 @@
1
+ import { Point, RectangleClient } from '@plait/core';
2
+ import { ShapeEngine } from '../../interfaces';
3
+ export declare const getParallelogramPoints: (rectangle: RectangleClient) => Point[];
4
+ export declare const ParallelogramEngine: ShapeEngine;
@@ -1,4 +1,4 @@
1
1
  import { Point, RectangleClient } from '@plait/core';
2
- import { ShapeEngine } from '../interfaces';
3
- export declare const PentagonArrowEngine: ShapeEngine;
2
+ import { ShapeEngine } from '../../interfaces';
4
3
  export declare const getPentagonArrowPoints: (rectangle: RectangleClient) => Point[];
4
+ export declare const PentagonArrowEngine: ShapeEngine;
@@ -1,4 +1,4 @@
1
1
  import { Point, RectangleClient } from '@plait/core';
2
- import { ShapeEngine } from '../interfaces';
3
- export declare const PentagonEngine: ShapeEngine;
2
+ import { ShapeEngine } from '../../interfaces';
4
3
  export declare const getPentagonPoints: (rectangle: RectangleClient) => Point[];
4
+ export declare const PentagonEngine: ShapeEngine;
@@ -0,0 +1,8 @@
1
+ import { Point, RectangleClient } from '@plait/core';
2
+ import { PlaitGeometry, ShapeEngine } from '../../interfaces';
3
+ export interface CreateOptions {
4
+ getPolygonPoints: (rectangle: RectangleClient) => Point[];
5
+ getConnectorPoints?: (rectangle: RectangleClient) => Point[];
6
+ getTextRectangle?: (element: PlaitGeometry) => RectangleClient;
7
+ }
8
+ export declare function createPolygonEngine(options: CreateOptions): ShapeEngine;
@@ -1,4 +1,4 @@
1
1
  import { Point, RectangleClient } from '@plait/core';
2
- import { ShapeEngine } from '../interfaces';
3
- export declare const ProcessArrowEngine: ShapeEngine;
2
+ import { ShapeEngine } from '../../interfaces';
4
3
  export declare const getProcessArrowPoints: (rectangle: RectangleClient) => Point[];
4
+ export declare const ProcessArrowEngine: ShapeEngine;
@@ -1,2 +1,2 @@
1
- import { ShapeEngine } from '../interfaces';
1
+ import { ShapeEngine } from '../../interfaces';
2
2
  export declare const RectangleEngine: ShapeEngine;
@@ -1,4 +1,4 @@
1
1
  import { Point, RectangleClient } from '@plait/core';
2
- import { ShapeEngine } from '../interfaces';
3
- export declare const RightArrowEngine: ShapeEngine;
2
+ import { ShapeEngine } from '../../interfaces';
4
3
  export declare const getRightArrowPoints: (rectangle: RectangleClient) => Point[];
4
+ export declare const RightArrowEngine: ShapeEngine;
@@ -1,4 +1,4 @@
1
1
  import { Point, RectangleClient } from '@plait/core';
2
- import { ShapeEngine } from '../interfaces';
2
+ import { ShapeEngine } from '../../interfaces';
3
3
  export declare const RoundCommentEngine: ShapeEngine;
4
4
  export declare const getRoundCommentPoints: (rectangle: RectangleClient) => Point[];
@@ -1,5 +1,5 @@
1
1
  import { Point, RectangleClient } from '@plait/core';
2
- import { ShapeEngine } from '../interfaces';
2
+ import { ShapeEngine } from '../../interfaces';
3
3
  export declare const RoundRectangleEngine: ShapeEngine;
4
4
  export declare const getRoundRectangleRadius: (rectangle: RectangleClient) => number;
5
5
  export declare function getNearestPointBetweenPointAndRoundRectangle(point: Point, rectangle: RectangleClient, radius: number): Point;
@@ -1,4 +1,4 @@
1
1
  import { Point, RectangleClient } from '@plait/core';
2
- import { ShapeEngine } from '../interfaces';
3
- export declare const StarEngine: ShapeEngine;
2
+ import { ShapeEngine } from '../../interfaces';
4
3
  export declare const getStarPoints: (rectangle: RectangleClient) => Point[];
4
+ export declare const StarEngine: ShapeEngine;
@@ -1,4 +1,4 @@
1
1
  import { Point, RectangleClient } from '@plait/core';
2
- import { ShapeEngine } from '../interfaces';
3
- export declare const TrapezoidEngine: ShapeEngine;
2
+ import { ShapeEngine } from '../../interfaces';
4
3
  export declare const getTrapezoidPoints: (rectangle: RectangleClient) => Point[];
4
+ export declare const TrapezoidEngine: ShapeEngine;
@@ -1,4 +1,4 @@
1
1
  import { Point, RectangleClient } from '@plait/core';
2
- import { ShapeEngine } from '../interfaces';
3
- export declare const TriangleEngine: ShapeEngine;
2
+ import { ShapeEngine } from '../../interfaces';
4
3
  export declare const getTrianglePoints: (rectangle: RectangleClient) => Point[];
4
+ export declare const TriangleEngine: ShapeEngine;
@@ -1,4 +1,4 @@
1
1
  import { Point, RectangleClient } from '@plait/core';
2
- import { ShapeEngine } from '../interfaces';
3
- export declare const TwoWayArrowEngine: ShapeEngine;
2
+ import { ShapeEngine } from '../../interfaces';
4
3
  export declare const getTwoWayArrowPoints: (rectangle: RectangleClient) => Point[];
4
+ export declare const TwoWayArrowEngine: ShapeEngine;
@@ -0,0 +1,2 @@
1
+ import { ShapeEngine } from '../../interfaces';
2
+ export declare const DelayEngine: ShapeEngine;
@@ -0,0 +1,4 @@
1
+ import { Point, RectangleClient } from '@plait/core';
2
+ import { ShapeEngine } from '../../interfaces';
3
+ export declare const getManualInputPoints: (rectangle: RectangleClient) => Point[];
4
+ export declare const ManualInputEngine: ShapeEngine;
@@ -0,0 +1,4 @@
1
+ import { Point, RectangleClient } from '@plait/core';
2
+ import { ShapeEngine } from '../../interfaces';
3
+ export declare const getManualLoopPoints: (rectangle: RectangleClient) => Point[];
4
+ export declare const ManualLoopEngine: ShapeEngine;
@@ -0,0 +1,4 @@
1
+ import { Point, RectangleClient } from '@plait/core';
2
+ import { ShapeEngine } from '../../interfaces';
3
+ export declare const getMergePoints: (rectangle: RectangleClient) => Point[];
4
+ export declare const MergeEngine: ShapeEngine;
@@ -0,0 +1,4 @@
1
+ import { Point, RectangleClient } from '@plait/core';
2
+ import { ShapeEngine } from '../../interfaces';
3
+ export declare const getPreparationPoints: (rectangle: RectangleClient) => Point[];
4
+ export declare const PreparationEngine: ShapeEngine;
@@ -0,0 +1,2 @@
1
+ import { ShapeEngine } from '../../interfaces';
2
+ export declare const StoredDataEngine: ShapeEngine;
@@ -0,0 +1,5 @@
1
+ import { Point, RectangleClient } from '@plait/core';
2
+ import { ShapeEngine } from '../../interfaces';
3
+ export declare const TerminalEngine: ShapeEngine;
4
+ export declare const getStartEndRadius: (rectangle: RectangleClient) => number;
5
+ export declare function getNearestPointBetweenPointAndRoundRectangle(point: Point, rectangle: RectangleClient, radius: number): Point;
@@ -1,3 +1,3 @@
1
- import { GeometryShape, ShapeEngine } from '../interfaces';
2
- export declare const ShapeEngineMap: Record<GeometryShape, ShapeEngine>;
3
- export declare const getEngine: (shape: GeometryShape) => ShapeEngine;
1
+ import { GeometryShapes, ShapeEngine } from '../interfaces';
2
+ export declare const ShapeEngineMap: Record<GeometryShapes, ShapeEngine>;
3
+ export declare const getEngine: (shape: GeometryShapes) => ShapeEngine;
@@ -1,4 +1,5 @@
1
1
  import { ACTIVE_STROKE_WIDTH } from '@plait/core';
2
+ import { FlowchartSymbols } from '../interfaces';
2
3
  export const ShapeDefaultSpace = {
3
4
  rectangleAndText: 4
4
5
  };
@@ -12,7 +13,7 @@ export const DefaultGeometryActiveStyle = {
12
13
  strokeWidth: ACTIVE_STROKE_WIDTH,
13
14
  selectionStrokeWidth: ACTIVE_STROKE_WIDTH
14
15
  };
15
- export const DefaultGeometryProperty = {
16
+ export const DefaultBasicShapeProperty = {
16
17
  width: 100,
17
18
  height: 100,
18
19
  strokeColor: '#333',
@@ -26,4 +27,41 @@ export const DefaultTextProperty = {
26
27
  export const GeometryThreshold = {
27
28
  defaultTextMaxWidth: 34 * 14
28
29
  };
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvbWV0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9jb25zdGFudHMvZ2VvbWV0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWxELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHO0lBQzdCLGdCQUFnQixFQUFFLENBQUM7Q0FDdEIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHO0lBQ2hDLFdBQVcsRUFBRSxDQUFDO0lBQ2QsYUFBYSxFQUFFLENBQUM7SUFDaEIsV0FBVyxFQUFFLE1BQU07SUFDbkIsSUFBSSxFQUFFLE1BQU07Q0FDZixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUc7SUFDdEMsV0FBVyxFQUFFLG1CQUFtQjtJQUNoQyxvQkFBb0IsRUFBRSxtQkFBbUI7Q0FDNUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHO0lBQ25DLEtBQUssRUFBRSxHQUFHO0lBQ1YsTUFBTSxFQUFFLEdBQUc7SUFDWCxXQUFXLEVBQUUsTUFBTTtJQUNuQixXQUFXLEVBQUUsQ0FBQztDQUNqQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUc7SUFDL0IsS0FBSyxFQUFFLEVBQUU7SUFDVCxNQUFNLEVBQUUsRUFBRTtJQUNWLElBQUksRUFBRSxJQUFJO0NBQ2IsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHO0lBQzdCLG1CQUFtQixFQUFFLEVBQUUsR0FBRyxFQUFFO0NBQy9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBQ1RJVkVfU1RST0tFX1dJRFRIIH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuXG5leHBvcnQgY29uc3QgU2hhcGVEZWZhdWx0U3BhY2UgPSB7XG4gICAgcmVjdGFuZ2xlQW5kVGV4dDogNFxufTtcblxuZXhwb3J0IGNvbnN0IERlZmF1bHRHZW9tZXRyeVN0eWxlID0ge1xuICAgIHN0cm9rZVdpZHRoOiAyLFxuICAgIGRlZmF1bHRSYWRpdXM6IDQsXG4gICAgc3Ryb2tlQ29sb3I6ICcjMDAwJyxcbiAgICBmaWxsOiAnbm9uZSdcbn07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0R2VvbWV0cnlBY3RpdmVTdHlsZSA9IHtcbiAgICBzdHJva2VXaWR0aDogQUNUSVZFX1NUUk9LRV9XSURUSCxcbiAgICBzZWxlY3Rpb25TdHJva2VXaWR0aDogQUNUSVZFX1NUUk9LRV9XSURUSFxufTtcblxuZXhwb3J0IGNvbnN0IERlZmF1bHRHZW9tZXRyeVByb3BlcnR5ID0ge1xuICAgIHdpZHRoOiAxMDAsXG4gICAgaGVpZ2h0OiAxMDAsXG4gICAgc3Ryb2tlQ29sb3I6ICcjMzMzJyxcbiAgICBzdHJva2VXaWR0aDogMlxufTtcblxuZXhwb3J0IGNvbnN0IERlZmF1bHRUZXh0UHJvcGVydHkgPSB7XG4gICAgd2lkdGg6IDM2LFxuICAgIGhlaWdodDogMjAsXG4gICAgdGV4dDogJ+aWh+acrCdcbn07XG5cbmV4cG9ydCBjb25zdCBHZW9tZXRyeVRocmVzaG9sZCA9IHtcbiAgICBkZWZhdWx0VGV4dE1heFdpZHRoOiAzNCAqIDE0XG59O1xuIl19
30
+ export const DefaultConnectorProperty = {
31
+ width: 44,
32
+ height: 44
33
+ };
34
+ export const DefaultFlowchartProperty = {
35
+ width: 120,
36
+ height: 60
37
+ };
38
+ export const DefaultDecisionProperty = {
39
+ width: 140,
40
+ height: 70
41
+ };
42
+ export const DefaultDataProperty = {
43
+ width: 124,
44
+ height: 60
45
+ };
46
+ export const DefaultManualInputProperty = {
47
+ width: 117,
48
+ height: 59
49
+ };
50
+ export const DefaultMergeProperty = {
51
+ width: 47,
52
+ height: 33
53
+ };
54
+ export const DefaultFlowchartPropertyMap = {
55
+ [FlowchartSymbols.connector]: DefaultConnectorProperty,
56
+ [FlowchartSymbols.process]: DefaultFlowchartProperty,
57
+ [FlowchartSymbols.decision]: DefaultDecisionProperty,
58
+ [FlowchartSymbols.data]: DefaultDataProperty,
59
+ [FlowchartSymbols.terminal]: DefaultFlowchartProperty,
60
+ [FlowchartSymbols.manualInput]: DefaultManualInputProperty,
61
+ [FlowchartSymbols.preparation]: DefaultFlowchartProperty,
62
+ [FlowchartSymbols.manualLoop]: DefaultFlowchartProperty,
63
+ [FlowchartSymbols.merge]: DefaultMergeProperty,
64
+ [FlowchartSymbols.delay]: DefaultFlowchartProperty,
65
+ [FlowchartSymbols.storedData]: DefaultFlowchartProperty
66
+ };
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvbWV0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9jb25zdGFudHMvZ2VvbWV0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRztJQUM3QixnQkFBZ0IsRUFBRSxDQUFDO0NBQ3RCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRztJQUNoQyxXQUFXLEVBQUUsQ0FBQztJQUNkLGFBQWEsRUFBRSxDQUFDO0lBQ2hCLFdBQVcsRUFBRSxNQUFNO0lBQ25CLElBQUksRUFBRSxNQUFNO0NBQ2YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHO0lBQ3RDLFdBQVcsRUFBRSxtQkFBbUI7SUFDaEMsb0JBQW9CLEVBQUUsbUJBQW1CO0NBQzVDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRztJQUNyQyxLQUFLLEVBQUUsR0FBRztJQUNWLE1BQU0sRUFBRSxHQUFHO0lBQ1gsV0FBVyxFQUFFLE1BQU07SUFDbkIsV0FBVyxFQUFFLENBQUM7Q0FDakIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHO0lBQy9CLEtBQUssRUFBRSxFQUFFO0lBQ1QsTUFBTSxFQUFFLEVBQUU7SUFDVixJQUFJLEVBQUUsSUFBSTtDQUNiLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRztJQUM3QixtQkFBbUIsRUFBRSxFQUFFLEdBQUcsRUFBRTtDQUMvQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUc7SUFDcEMsS0FBSyxFQUFFLEVBQUU7SUFDVCxNQUFNLEVBQUUsRUFBRTtDQUNiLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRztJQUNwQyxLQUFLLEVBQUUsR0FBRztJQUNWLE1BQU0sRUFBRSxFQUFFO0NBQ2IsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHO0lBQ25DLEtBQUssRUFBRSxHQUFHO0lBQ1YsTUFBTSxFQUFFLEVBQUU7Q0FDYixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUc7SUFDL0IsS0FBSyxFQUFFLEdBQUc7SUFDVixNQUFNLEVBQUUsRUFBRTtDQUNiLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRztJQUN0QyxLQUFLLEVBQUUsR0FBRztJQUNWLE1BQU0sRUFBRSxFQUFFO0NBQ2IsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHO0lBQ2hDLEtBQUssRUFBRSxFQUFFO0lBQ1QsTUFBTSxFQUFFLEVBQUU7Q0FDYixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUc7SUFDdkMsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsRUFBRSx3QkFBd0I7SUFDdEQsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsRUFBRSx3QkFBd0I7SUFDcEQsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsRUFBRSx1QkFBdUI7SUFDcEQsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxtQkFBbUI7SUFDNUMsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsRUFBRSx3QkFBd0I7SUFDckQsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsRUFBRSwwQkFBMEI7SUFDMUQsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsRUFBRSx3QkFBd0I7SUFDeEQsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsRUFBRSx3QkFBd0I7SUFDdkQsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsRUFBRSxvQkFBb0I7SUFDOUMsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsRUFBRSx3QkFBd0I7SUFDbEQsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsRUFBRSx3QkFBd0I7Q0FDMUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFDVElWRV9TVFJPS0VfV0lEVEggfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBGbG93Y2hhcnRTeW1ib2xzIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBjb25zdCBTaGFwZURlZmF1bHRTcGFjZSA9IHtcbiAgICByZWN0YW5nbGVBbmRUZXh0OiA0XG59O1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdEdlb21ldHJ5U3R5bGUgPSB7XG4gICAgc3Ryb2tlV2lkdGg6IDIsXG4gICAgZGVmYXVsdFJhZGl1czogNCxcbiAgICBzdHJva2VDb2xvcjogJyMwMDAnLFxuICAgIGZpbGw6ICdub25lJ1xufTtcblxuZXhwb3J0IGNvbnN0IERlZmF1bHRHZW9tZXRyeUFjdGl2ZVN0eWxlID0ge1xuICAgIHN0cm9rZVdpZHRoOiBBQ1RJVkVfU1RST0tFX1dJRFRILFxuICAgIHNlbGVjdGlvblN0cm9rZVdpZHRoOiBBQ1RJVkVfU1RST0tFX1dJRFRIXG59O1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdEJhc2ljU2hhcGVQcm9wZXJ0eSA9IHtcbiAgICB3aWR0aDogMTAwLFxuICAgIGhlaWdodDogMTAwLFxuICAgIHN0cm9rZUNvbG9yOiAnIzMzMycsXG4gICAgc3Ryb2tlV2lkdGg6IDJcbn07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0VGV4dFByb3BlcnR5ID0ge1xuICAgIHdpZHRoOiAzNixcbiAgICBoZWlnaHQ6IDIwLFxuICAgIHRleHQ6ICfmlofmnKwnXG59O1xuXG5leHBvcnQgY29uc3QgR2VvbWV0cnlUaHJlc2hvbGQgPSB7XG4gICAgZGVmYXVsdFRleHRNYXhXaWR0aDogMzQgKiAxNFxufTtcblxuZXhwb3J0IGNvbnN0IERlZmF1bHRDb25uZWN0b3JQcm9wZXJ0eSA9IHtcbiAgICB3aWR0aDogNDQsXG4gICAgaGVpZ2h0OiA0NFxufTtcblxuZXhwb3J0IGNvbnN0IERlZmF1bHRGbG93Y2hhcnRQcm9wZXJ0eSA9IHtcbiAgICB3aWR0aDogMTIwLFxuICAgIGhlaWdodDogNjBcbn07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0RGVjaXNpb25Qcm9wZXJ0eSA9IHtcbiAgICB3aWR0aDogMTQwLFxuICAgIGhlaWdodDogNzBcbn07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0RGF0YVByb3BlcnR5ID0ge1xuICAgIHdpZHRoOiAxMjQsXG4gICAgaGVpZ2h0OiA2MFxufTtcblxuZXhwb3J0IGNvbnN0IERlZmF1bHRNYW51YWxJbnB1dFByb3BlcnR5ID0ge1xuICAgIHdpZHRoOiAxMTcsXG4gICAgaGVpZ2h0OiA1OVxufTtcblxuZXhwb3J0IGNvbnN0IERlZmF1bHRNZXJnZVByb3BlcnR5ID0ge1xuICAgIHdpZHRoOiA0NyxcbiAgICBoZWlnaHQ6IDMzXG59O1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdEZsb3djaGFydFByb3BlcnR5TWFwID0ge1xuICAgIFtGbG93Y2hhcnRTeW1ib2xzLmNvbm5lY3Rvcl06IERlZmF1bHRDb25uZWN0b3JQcm9wZXJ0eSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5wcm9jZXNzXTogRGVmYXVsdEZsb3djaGFydFByb3BlcnR5LFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLmRlY2lzaW9uXTogRGVmYXVsdERlY2lzaW9uUHJvcGVydHksXG4gICAgW0Zsb3djaGFydFN5bWJvbHMuZGF0YV06IERlZmF1bHREYXRhUHJvcGVydHksXG4gICAgW0Zsb3djaGFydFN5bWJvbHMudGVybWluYWxdOiBEZWZhdWx0Rmxvd2NoYXJ0UHJvcGVydHksXG4gICAgW0Zsb3djaGFydFN5bWJvbHMubWFudWFsSW5wdXRdOiBEZWZhdWx0TWFudWFsSW5wdXRQcm9wZXJ0eSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5wcmVwYXJhdGlvbl06IERlZmF1bHRGbG93Y2hhcnRQcm9wZXJ0eSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5tYW51YWxMb29wXTogRGVmYXVsdEZsb3djaGFydFByb3BlcnR5LFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLm1lcmdlXTogRGVmYXVsdE1lcmdlUHJvcGVydHksXG4gICAgW0Zsb3djaGFydFN5bWJvbHMuZGVsYXldOiBEZWZhdWx0Rmxvd2NoYXJ0UHJvcGVydHksXG4gICAgW0Zsb3djaGFydFN5bWJvbHMuc3RvcmVkRGF0YV06IERlZmF1bHRGbG93Y2hhcnRQcm9wZXJ0eVxufTtcblxuIl19
@@ -2,4 +2,4 @@ export const DefaultLineStyle = {
2
2
  strokeWidth: 2,
3
3
  strokeColor: '#000'
4
4
  };
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2RyYXcvc3JjL2NvbnN0YW50cy9saW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHO0lBQzVCLFdBQVcsRUFBRSxDQUFDO0lBQ2QsV0FBVyxFQUFFLE1BQU07Q0FDdEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBEZWZhdWx0TGluZVN0eWxlID0ge1xuICAgIHN0cm9rZVdpZHRoOiAyLFxuICAgIHN0cm9rZUNvbG9yOiAnIzAwMCdcbn07XG4iXX0=
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2RyYXcvc3JjL2NvbnN0YW50cy9saW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHO0lBQzVCLFdBQVcsRUFBRSxDQUFDO0lBQ2QsV0FBVyxFQUFFLE1BQU07Q0FDdEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBEZWZhdWx0TGluZVN0eWxlID0ge1xuICAgIHN0cm9rZVdpZHRoOiAyLFxuICAgIHN0cm9rZUNvbG9yOiAnIzAwMCdcbn07XG5cbiJdfQ==
@@ -1,8 +1,14 @@
1
- import { GeometryShape, LineShape } from '../interfaces';
1
+ import { BasicShapes, FlowchartSymbols, LineShape } from '../interfaces';
2
2
  export const getGeometryPointers = () => {
3
- return Object.keys(GeometryShape);
3
+ return [...Object.keys(BasicShapes), ...Object.keys(FlowchartSymbols)];
4
+ };
5
+ export const getBasicPointers = () => {
6
+ return Object.keys(BasicShapes);
7
+ };
8
+ export const getFlowchartPointers = () => {
9
+ return Object.keys(FlowchartSymbols);
4
10
  };
5
11
  export const getLinePointers = () => {
6
12
  return Object.keys(LineShape);
7
13
  };
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pbnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2RyYXcvc3JjL2NvbnN0YW50cy9wb2ludGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSXpELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLEdBQUcsRUFBRTtJQUNwQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDdEMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLEdBQUcsRUFBRTtJQUNoQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDbEMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2VvbWV0cnlTaGFwZSwgTGluZVNoYXBlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCB0eXBlIERyYXdQb2ludGVyVHlwZSA9IEdlb21ldHJ5U2hhcGUgfCBMaW5lU2hhcGU7XG5cbmV4cG9ydCBjb25zdCBnZXRHZW9tZXRyeVBvaW50ZXJzID0gKCkgPT4ge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhHZW9tZXRyeVNoYXBlKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRMaW5lUG9pbnRlcnMgPSAoKSA9PiB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKExpbmVTaGFwZSk7XG59O1xuIl19
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pbnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2RyYXcvc3JjL2NvbnN0YW50cy9wb2ludGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSXpFLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLEdBQUcsRUFBRTtJQUNwQyxPQUFPLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7QUFDM0UsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsR0FBRyxFQUFFO0lBQ2pDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUNwQyxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxHQUFHLEVBQUU7SUFDckMsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFDekMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLEdBQUcsRUFBRTtJQUNoQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDbEMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzaWNTaGFwZXMsIEZsb3djaGFydFN5bWJvbHMsIExpbmVTaGFwZSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuXG5leHBvcnQgdHlwZSBEcmF3UG9pbnRlclR5cGUgPSBCYXNpY1NoYXBlcyB8IExpbmVTaGFwZSB8IEZsb3djaGFydFN5bWJvbHM7XG5cbmV4cG9ydCBjb25zdCBnZXRHZW9tZXRyeVBvaW50ZXJzID0gKCkgPT4ge1xuICAgIHJldHVybiBbLi4uT2JqZWN0LmtleXMoQmFzaWNTaGFwZXMpLCAuLi5PYmplY3Qua2V5cyhGbG93Y2hhcnRTeW1ib2xzKV07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0QmFzaWNQb2ludGVycyA9ICgpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoQmFzaWNTaGFwZXMpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEZsb3djaGFydFBvaW50ZXJzID0gKCkgPT4ge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhGbG93Y2hhcnRTeW1ib2xzKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRMaW5lUG9pbnRlcnMgPSAoKSA9PiB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKExpbmVTaGFwZSk7XG59O1xuIl19
@@ -0,0 +1,57 @@
1
+ import { PlaitBoard, RectangleClient, getNearestPointBetweenPointAndSegments, isPointInPolygon, setStrokeLinecap } from '@plait/core';
2
+ import { getEdgeOnPolygonByPoint } from '../../utils/geometry';
3
+ import { getRectangleByPoints } from '@plait/common';
4
+ import { ShapeDefaultSpace } from '../../constants';
5
+ import { getStrokeWidthByElement } from '../../utils';
6
+ const heightRatio = 3 / 4;
7
+ export const CommentEngine = {
8
+ draw(board, rectangle, options) {
9
+ const points = getCommentPoints(rectangle);
10
+ const rs = PlaitBoard.getRoughSVG(board);
11
+ const polygon = rs.polygon(points, { ...options, fillStyle: 'solid' });
12
+ setStrokeLinecap(polygon, 'round');
13
+ return polygon;
14
+ },
15
+ isHit(rectangle, point) {
16
+ const parallelogramPoints = getCommentPoints(rectangle);
17
+ return isPointInPolygon(point, parallelogramPoints);
18
+ },
19
+ getCornerPoints(rectangle) {
20
+ return getCommentPoints(rectangle);
21
+ },
22
+ getNearestPoint(rectangle, point) {
23
+ return getNearestPointBetweenPointAndSegments(point, getCommentPoints(rectangle));
24
+ },
25
+ getEdgeByConnectionPoint(rectangle, pointOfRectangle) {
26
+ const corners = getCommentPoints(rectangle);
27
+ const point = RectangleClient.getConnectionPoint(rectangle, pointOfRectangle);
28
+ return getEdgeOnPolygonByPoint(corners, point);
29
+ },
30
+ getConnectorPoints(rectangle) {
31
+ return RectangleClient.getEdgeCenterPoints(rectangle);
32
+ },
33
+ getTextRectangle(element) {
34
+ const elementRectangle = getRectangleByPoints(element.points);
35
+ const strokeWidth = getStrokeWidthByElement(element);
36
+ const height = element.textHeight;
37
+ const width = elementRectangle.width - ShapeDefaultSpace.rectangleAndText * 2 - strokeWidth * 2;
38
+ return {
39
+ height,
40
+ width: width > 0 ? width : 0,
41
+ x: elementRectangle.x + ShapeDefaultSpace.rectangleAndText + strokeWidth,
42
+ y: elementRectangle.y + (elementRectangle.height * heightRatio - height) / 2
43
+ };
44
+ }
45
+ };
46
+ export const getCommentPoints = (rectangle) => {
47
+ return [
48
+ [rectangle.x, rectangle.y],
49
+ [rectangle.x + rectangle.width, rectangle.y],
50
+ [rectangle.x + rectangle.width, rectangle.y + rectangle.height * heightRatio],
51
+ [rectangle.x + (rectangle.width * 3) / 5, rectangle.y + rectangle.height * heightRatio],
52
+ [rectangle.x + rectangle.width / 2, rectangle.y + rectangle.height],
53
+ [rectangle.x + (rectangle.width * 2) / 5, rectangle.y + rectangle.height * heightRatio],
54
+ [rectangle.x, rectangle.y + rectangle.height * heightRatio]
55
+ ];
56
+ };
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RyYXcvc3JjL2VuZ2luZXMvYmFzaWMtc2hhcGVzL2NvbW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFVBQVUsRUFHVixlQUFlLEVBQ2Ysc0NBQXNDLEVBQ3RDLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDbkIsTUFBTSxhQUFhLENBQUM7QUFFckIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFL0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV0RCxNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBRTFCLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBZ0I7SUFDdEMsSUFBSSxDQUFDLEtBQWlCLEVBQUUsU0FBMEIsRUFBRSxPQUFnQjtRQUNoRSxNQUFNLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzQyxNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsR0FBRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDdkUsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ25DLE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7SUFDRCxLQUFLLENBQUMsU0FBMEIsRUFBRSxLQUFZO1FBQzFDLE1BQU0sbUJBQW1CLEdBQUcsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDeEQs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QUFXLENBQUM7S0FDOUQsQ0FBQztBQUNOLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgUGxhaXRCb2FyZCxcbiAgICBQb2ludCxcbiAgICBQb2ludE9mUmVjdGFuZ2xlLFxuICAgIFJlY3RhbmdsZUNsaWVudCxcbiAgICBnZXROZWFyZXN0UG9pbnRCZXR3ZWVuUG9pbnRBbmRTZWdtZW50cyxcbiAgICBpc1BvaW50SW5Qb2x5Z29uLFxuICAgIHNldFN0cm9rZUxpbmVjYXBcbn0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgUGxhaXRHZW9tZXRyeSwgU2hhcGVFbmdpbmUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGdldEVkZ2VPblBvbHlnb25CeVBvaW50IH0gZnJvbSAnLi4vLi4vdXRpbHMvZ2VvbWV0cnknO1xuaW1wb3J0IHsgT3B0aW9ucyB9IGZyb20gJ3JvdWdoanMvYmluL2NvcmUnO1xuaW1wb3J0IHsgZ2V0UmVjdGFuZ2xlQnlQb2ludHMgfSBmcm9tICdAcGxhaXQvY29tbW9uJztcbmltcG9ydCB7IFNoYXBlRGVmYXVsdFNwYWNlIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IGdldFN0cm9rZVdpZHRoQnlFbGVtZW50IH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG5jb25zdCBoZWlnaHRSYXRpbyA9IDMgLyA0O1xuXG5leHBvcnQgY29uc3QgQ29tbWVudEVuZ2luZTogU2hhcGVFbmdpbmUgPSB7XG4gICAgZHJhdyhib2FyZDogUGxhaXRCb2FyZCwgcmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIG9wdGlvbnM6IE9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgcG9pbnRzID0gZ2V0Q29tbWVudFBvaW50cyhyZWN0YW5nbGUpO1xuICAgICAgICBjb25zdCBycyA9IFBsYWl0Qm9hcmQuZ2V0Um91Z2hTVkcoYm9hcmQpO1xuICAgICAgICBjb25zdCBwb2x5Z29uID0gcnMucG9seWdvbihwb2ludHMsIHsgLi4ub3B0aW9ucywgZmlsbFN0eWxlOiAnc29saWQnIH0pO1xuICAgICAgICBzZXRTdHJva2VMaW5lY2FwKHBvbHlnb24sICdyb3VuZCcpO1xuICAgICAgICByZXR1cm4gcG9seWdvbjtcbiAgICB9LFxuICAgIGlzSGl0KHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBwb2ludDogUG9pbnQpIHtcbiAgICAgICAgY29uc3QgcGFyYWxsZWxvZ3JhbVBvaW50cyA9IGdldENvbW1lbnRQb2ludHMocmVjdGFuZ2xlKTtcbiAgICAgICAgcmV0dXJuIGlzUG9pbnRJblBvbHlnb24ocG9pbnQsIHBhcmFsbGVsb2dyYW1Qb2ludHMpO1xuICAgIH0sXG4gICAgZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50KSB7XG4gICAgICAgIHJldHVybiBnZXRDb21tZW50UG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgfSxcbiAgICBnZXROZWFyZXN0UG9pbnQocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIHBvaW50OiBQb2ludCkge1xuICAgICAgICByZXR1cm4gZ2V0TmVhcmVzdFBvaW50QmV0d2VlblBvaW50QW5kU2VnbWVudHMocG9pbnQsIGdldENvbW1lbnRQb2ludHMocmVjdGFuZ2xlKSk7XG4gICAgfSxcbiAgICBnZXRFZGdlQnlDb25uZWN0aW9uUG9pbnQocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIHBvaW50T2ZSZWN0YW5nbGU6IFBvaW50T2ZSZWN0YW5nbGUpOiBbUG9pbnQsIFBvaW50XSB8IG51bGwge1xuICAgICAgICBjb25zdCBjb3JuZXJzID0gZ2V0Q29tbWVudFBvaW50cyhyZWN0YW5nbGUpO1xuICAgICAgICBjb25zdCBwb2ludCA9IFJlY3RhbmdsZUNsaWVudC5nZXRDb25uZWN0aW9uUG9pbnQocmVjdGFuZ2xlLCBwb2ludE9mUmVjdGFuZ2xlKTtcbiAgICAgICAgcmV0dXJuIGdldEVkZ2VPblBvbHlnb25CeVBvaW50KGNvcm5lcnMsIHBvaW50KTtcbiAgICB9LFxuICAgIGdldENvbm5lY3RvclBvaW50cyhyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCkge1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmdldEVkZ2VDZW50ZXJQb2ludHMocmVjdGFuZ2xlKTtcbiAgICB9LFxuICAgIGdldFRleHRSZWN0YW5nbGUoZWxlbWVudDogUGxhaXRHZW9tZXRyeSkge1xuICAgICAgICBjb25zdCBlbGVtZW50UmVjdGFuZ2xlID0gZ2V0UmVjdGFuZ2xlQnlQb2ludHMoZWxlbWVudC5wb2ludHMhKTtcbiAgICAgICAgY29uc3Qgc3Ryb2tlV2lkdGggPSBnZXRTdHJva2VXaWR0aEJ5RWxlbWVudChlbGVtZW50KTtcbiAgICAgICAgY29uc3QgaGVpZ2h0ID0gZWxlbWVudC50ZXh0SGVpZ2h0O1xuICAgICAgICBjb25zdCB3aWR0aCA9IGVsZW1lbnRSZWN0YW5nbGUud2lkdGggLSBTaGFwZURlZmF1bHRTcGFjZS5yZWN0YW5nbGVBbmRUZXh0ICogMiAtIHN0cm9rZVdpZHRoICogMjtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGhlaWdodCxcbiAgICAgICAgICAgIHdpZHRoOiB3aWR0aCA+IDAgPyB3aWR0aCA6IDAsXG4gICAgICAgICAgICB4OiBlbGVtZW50UmVjdGFuZ2xlLnggKyBTaGFwZURlZmF1bHRTcGFjZS5yZWN0YW5nbGVBbmRUZXh0ICsgc3Ryb2tlV2lkdGgsXG4gICAgICAgICAgICB5OiBlbGVtZW50UmVjdGFuZ2xlLnkgKyAoZWxlbWVudFJlY3RhbmdsZS5oZWlnaHQgKiBoZWlnaHRSYXRpbyAtIGhlaWdodCkgLyAyXG4gICAgICAgIH07XG4gICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGdldENvbW1lbnRQb2ludHMgPSAocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpOiBQb2ludFtdID0+IHtcbiAgICByZXR1cm4gW1xuICAgICAgICBbcmVjdGFuZ2xlLngsIHJlY3RhbmdsZS55XSxcbiAgICAgICAgW3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoLCByZWN0YW5nbGUueV0sXG4gICAgICAgIFtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCwgcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0ICogaGVpZ2h0UmF0aW9dLFxuICAgICAgICBbcmVjdGFuZ2xlLnggKyAocmVjdGFuZ2xlLndpZHRoICogMykgLyA1LCByZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHQgKiBoZWlnaHRSYXRpb10sXG4gICAgICAgIFtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAvIDIsIHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodF0sXG4gICAgICAgIFtyZWN0YW5nbGUueCArIChyZWN0YW5nbGUud2lkdGggKiAyKSAvIDUsIHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodCAqIGhlaWdodFJhdGlvXSxcbiAgICAgICAgW3JlY3RhbmdsZS54LCByZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHQgKiBoZWlnaHRSYXRpb11cbiAgICBdO1xufTtcbiJdfQ==
@@ -0,0 +1,33 @@
1
+ import { RectangleClient } from '@plait/core';
2
+ import { createPolygonEngine } from './polygon';
3
+ import { getTextRectangle } from '../../utils';
4
+ export const getCrossPoints = (rectangle) => {
5
+ return [
6
+ [rectangle.x + rectangle.width / 4, rectangle.y],
7
+ [rectangle.x + (rectangle.width * 3) / 4, rectangle.y],
8
+ [rectangle.x + (rectangle.width * 3) / 4, rectangle.y + rectangle.height / 4],
9
+ [rectangle.x + rectangle.width, rectangle.y + rectangle.height / 4],
10
+ [rectangle.x + rectangle.width, rectangle.y + (rectangle.height * 3) / 4],
11
+ [rectangle.x + (rectangle.width * 3) / 4, rectangle.y + (rectangle.height * 3) / 4],
12
+ [rectangle.x + (rectangle.width * 3) / 4, rectangle.y + rectangle.height],
13
+ [rectangle.x + rectangle.width / 4, rectangle.y + rectangle.height],
14
+ [rectangle.x + rectangle.width / 4, rectangle.y + (rectangle.height * 3) / 4],
15
+ [rectangle.x, rectangle.y + (rectangle.height * 3) / 4],
16
+ [rectangle.x, rectangle.y + rectangle.height / 4],
17
+ [rectangle.x + rectangle.width / 4, rectangle.y + rectangle.height / 4]
18
+ ];
19
+ };
20
+ export const CrossEngine = createPolygonEngine({
21
+ getPolygonPoints: getCrossPoints,
22
+ getConnectorPoints(rectangle) {
23
+ return RectangleClient.getEdgeCenterPoints(rectangle);
24
+ },
25
+ getTextRectangle(element) {
26
+ const rectangle = getTextRectangle(element);
27
+ const width = rectangle.width;
28
+ rectangle.width = rectangle.width / 2;
29
+ rectangle.x += width / 4;
30
+ return rectangle;
31
+ }
32
+ });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jvc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9lbmdpbmVzL2Jhc2ljLXNoYXBlcy9jcm9zcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVMsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXJELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDL0MsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsU0FBMEIsRUFBVyxFQUFFO0lBQ2xFLE9BQU87UUFDSCxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUNoRCxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ3RELENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDN0UsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNuRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25GLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQztRQUN6RSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDO1FBQ25FLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0UsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN2RCxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNqRCxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztLQUMxRSxDQUFDO0FBQ04sQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFnQixtQkFBbUIsQ0FBQztJQUN4RCxnQkFBZ0IsRUFBRSxjQUFjO0lBQ2hDLGtCQUFrQixDQUFDLFNBQTBCO1FBQ3pDLE9BQU8sZUFBZSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxPQUFzQjtRQUNuQyxNQUFNLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM1QyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDO1FBQzlCLFNBQVMsQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDdEMsU0FBUyxDQUFDLENBQUMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7Q0FDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQb2ludCwgUmVjdGFuZ2xlQ2xpZW50IH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgUGxhaXRHZW9tZXRyeSwgU2hhcGVFbmdpbmUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGNyZWF0ZVBvbHlnb25FbmdpbmUgfSBmcm9tICcuL3BvbHlnb24nO1xuaW1wb3J0IHsgZ2V0VGV4dFJlY3RhbmdsZSB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmV4cG9ydCBjb25zdCBnZXRDcm9zc1BvaW50cyA9IChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCk6IFBvaW50W10gPT4ge1xuICAgIHJldHVybiBbXG4gICAgICAgIFtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAvIDQsIHJlY3RhbmdsZS55XSxcbiAgICAgICAgW3JlY3RhbmdsZS54ICsgKHJlY3RhbmdsZS53aWR0aCAqIDMpIC8gNCwgcmVjdGFuZ2xlLnldLFxuICAgICAgICBbcmVjdGFuZ2xlLnggKyAocmVjdGFuZ2xlLndpZHRoICogMykgLyA0LCByZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHQgLyA0XSxcbiAgICAgICAgW3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoLCByZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHQgLyA0XSxcbiAgICAgICAgW3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoLCByZWN0YW5nbGUueSArIChyZWN0YW5nbGUuaGVpZ2h0ICogMykgLyA0XSxcbiAgICAgICAgW3JlY3RhbmdsZS54ICsgKHJlY3RhbmdsZS53aWR0aCAqIDMpIC8gNCwgcmVjdGFuZ2xlLnkgKyAocmVjdGFuZ2xlLmhlaWdodCAqIDMpIC8gNF0sXG4gICAgICAgIFtyZWN0YW5nbGUueCArIChyZWN0YW5nbGUud2lkdGggKiAzKSAvIDQsIHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodF0sXG4gICAgICAgIFtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAvIDQsIHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodF0sXG4gICAgICAgIFtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAvIDQsIHJlY3RhbmdsZS55ICsgKHJlY3RhbmdsZS5oZWlnaHQgKiAzKSAvIDRdLFxuICAgICAgICBbcmVjdGFuZ2xlLngsIHJlY3RhbmdsZS55ICsgKHJlY3RhbmdsZS5oZWlnaHQgKiAzKSAvIDRdLFxuICAgICAgICBbcmVjdGFuZ2xlLngsIHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodCAvIDRdLFxuICAgICAgICBbcmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggLyA0LCByZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHQgLyA0XVxuICAgIF07XG59O1xuXG5leHBvcnQgY29uc3QgQ3Jvc3NFbmdpbmU6IFNoYXBlRW5naW5lID0gY3JlYXRlUG9seWdvbkVuZ2luZSh7XG4gICAgZ2V0UG9seWdvblBvaW50czogZ2V0Q3Jvc3NQb2ludHMsXG4gICAgZ2V0Q29ubmVjdG9yUG9pbnRzKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50KSB7XG4gICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuZ2V0RWRnZUNlbnRlclBvaW50cyhyZWN0YW5nbGUpO1xuICAgIH0sXG4gICAgZ2V0VGV4dFJlY3RhbmdsZShlbGVtZW50OiBQbGFpdEdlb21ldHJ5KSB7XG4gICAgICAgIGNvbnN0IHJlY3RhbmdsZSA9IGdldFRleHRSZWN0YW5nbGUoZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IHdpZHRoID0gcmVjdGFuZ2xlLndpZHRoO1xuICAgICAgICByZWN0YW5nbGUud2lkdGggPSByZWN0YW5nbGUud2lkdGggLyAyO1xuICAgICAgICByZWN0YW5nbGUueCArPSB3aWR0aCAvIDQ7XG4gICAgICAgIHJldHVybiByZWN0YW5nbGU7XG4gICAgfVxufSk7XG4iXX0=
@@ -0,0 +1,16 @@
1
+ import { RectangleClient } from '@plait/core';
2
+ import { createPolygonEngine } from './polygon';
3
+ import { getTextRectangle } from '../../utils/geometry';
4
+ export const DiamondEngine = createPolygonEngine({
5
+ getPolygonPoints: RectangleClient.getEdgeCenterPoints,
6
+ getConnectorPoints(rectangle) {
7
+ return RectangleClient.getEdgeCenterPoints(rectangle);
8
+ },
9
+ getTextRectangle(element) {
10
+ const rectangle = getTextRectangle(element);
11
+ rectangle.width = rectangle.width / 2;
12
+ rectangle.x += rectangle.width / 2;
13
+ return rectangle;
14
+ }
15
+ });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbW9uZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RyYXcvc3JjL2VuZ2luZXMvYmFzaWMtc2hhcGVzL2RpYW1vbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU5QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDaEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFeEQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFnQixtQkFBbUIsQ0FBQztJQUMxRCxnQkFBZ0IsRUFBRSxlQUFlLENBQUMsbUJBQW1CO0lBQ3JELGtCQUFrQixDQUFDLFNBQTBCO1FBQ3pDLE9BQU8sZUFBZSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxPQUFzQjtRQUNuQyxNQUFNLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM1QyxTQUFTLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ3RDLFNBQVMsQ0FBQyxDQUFDLElBQUksU0FBUyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDbkMsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztDQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlY3RhbmdsZUNsaWVudCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IFBsYWl0R2VvbWV0cnksIFNoYXBlRW5naW5lIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBjcmVhdGVQb2x5Z29uRW5naW5lIH0gZnJvbSAnLi9wb2x5Z29uJztcbmltcG9ydCB7IGdldFRleHRSZWN0YW5nbGUgfSBmcm9tICcuLi8uLi91dGlscy9nZW9tZXRyeSc7XG5cbmV4cG9ydCBjb25zdCBEaWFtb25kRW5naW5lOiBTaGFwZUVuZ2luZSA9IGNyZWF0ZVBvbHlnb25FbmdpbmUoe1xuICAgIGdldFBvbHlnb25Qb2ludHM6IFJlY3RhbmdsZUNsaWVudC5nZXRFZGdlQ2VudGVyUG9pbnRzLFxuICAgIGdldENvbm5lY3RvclBvaW50cyhyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCkge1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmdldEVkZ2VDZW50ZXJQb2ludHMocmVjdGFuZ2xlKTtcbiAgICB9LFxuICAgIGdldFRleHRSZWN0YW5nbGUoZWxlbWVudDogUGxhaXRHZW9tZXRyeSkge1xuICAgICAgICBjb25zdCByZWN0YW5nbGUgPSBnZXRUZXh0UmVjdGFuZ2xlKGVsZW1lbnQpO1xuICAgICAgICByZWN0YW5nbGUud2lkdGggPSByZWN0YW5nbGUud2lkdGggLyAyO1xuICAgICAgICByZWN0YW5nbGUueCArPSByZWN0YW5nbGUud2lkdGggLyAyO1xuICAgICAgICByZXR1cm4gcmVjdGFuZ2xlO1xuICAgIH1cbn0pO1xuIl19