@plait/draw 0.1.0-next.9 → 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.
- package/constants/geometry.d.ts +71 -1
- package/constants/image.d.ts +1 -0
- package/constants/index.d.ts +1 -0
- package/constants/pointer.d.ts +6 -10
- package/engines/basic-shapes/comment.d.ts +4 -0
- package/engines/basic-shapes/cross.d.ts +4 -0
- package/engines/basic-shapes/ellipse.d.ts +13 -0
- package/engines/basic-shapes/hexagon.d.ts +4 -0
- package/engines/basic-shapes/left-arrow.d.ts +4 -0
- package/engines/basic-shapes/octagon.d.ts +4 -0
- package/engines/basic-shapes/pentagon-arrow.d.ts +4 -0
- package/engines/basic-shapes/pentagon.d.ts +4 -0
- package/engines/basic-shapes/polygon.d.ts +8 -0
- package/engines/basic-shapes/process-arrow.d.ts +4 -0
- package/engines/basic-shapes/right-arrow.d.ts +4 -0
- package/engines/basic-shapes/round-comment.d.ts +4 -0
- package/engines/basic-shapes/star.d.ts +4 -0
- package/engines/basic-shapes/trapezoid.d.ts +4 -0
- package/engines/basic-shapes/triangle.d.ts +4 -0
- package/engines/basic-shapes/two-way-arrow.d.ts +4 -0
- package/engines/flowchart/delay.d.ts +2 -0
- package/engines/flowchart/manual-input.d.ts +4 -0
- package/engines/flowchart/manual-loop.d.ts +4 -0
- package/engines/flowchart/merge.d.ts +4 -0
- package/engines/flowchart/preparation.d.ts +4 -0
- package/engines/flowchart/stored-data.d.ts +2 -0
- package/engines/flowchart/terminal.d.ts +5 -0
- package/engines/index.d.ts +3 -0
- package/esm2022/constants/geometry.mjs +42 -4
- package/esm2022/constants/image.mjs +2 -0
- package/esm2022/constants/index.mjs +2 -1
- package/esm2022/constants/pointer.mjs +14 -19
- package/esm2022/engines/basic-shapes/comment.mjs +57 -0
- package/esm2022/engines/basic-shapes/cross.mjs +33 -0
- package/esm2022/engines/basic-shapes/diamond.mjs +16 -0
- package/esm2022/engines/basic-shapes/ellipse.mjs +100 -0
- package/esm2022/engines/basic-shapes/hexagon.mjs +27 -0
- package/esm2022/engines/basic-shapes/left-arrow.mjs +30 -0
- package/esm2022/engines/basic-shapes/octagon.mjs +29 -0
- package/esm2022/engines/basic-shapes/parallelogram.mjs +25 -0
- package/esm2022/engines/basic-shapes/pentagon-arrow.mjs +24 -0
- package/esm2022/engines/basic-shapes/pentagon.mjs +30 -0
- package/esm2022/engines/basic-shapes/polygon.mjs +40 -0
- package/esm2022/engines/basic-shapes/process-arrow.mjs +26 -0
- package/esm2022/engines/basic-shapes/rectangle.mjs +26 -0
- package/esm2022/engines/basic-shapes/right-arrow.mjs +28 -0
- package/esm2022/engines/basic-shapes/round-comment.mjs +81 -0
- package/esm2022/engines/basic-shapes/round-rectangle.mjs +59 -0
- package/esm2022/engines/basic-shapes/star.mjs +39 -0
- package/esm2022/engines/basic-shapes/trapezoid.mjs +25 -0
- package/esm2022/engines/basic-shapes/triangle.mjs +33 -0
- package/esm2022/engines/basic-shapes/two-way-arrow.mjs +25 -0
- package/esm2022/engines/flowchart/delay.mjs +45 -0
- package/esm2022/engines/flowchart/manual-input.mjs +32 -0
- package/esm2022/engines/flowchart/manual-loop.mjs +25 -0
- package/esm2022/engines/flowchart/merge.mjs +34 -0
- package/esm2022/engines/flowchart/preparation.mjs +27 -0
- package/esm2022/engines/flowchart/stored-data.mjs +74 -0
- package/esm2022/engines/flowchart/terminal.mjs +59 -0
- package/esm2022/engines/index.mjs +64 -0
- package/esm2022/generators/geometry-shape.generator.mjs +9 -4
- package/esm2022/generators/line-active.generator.mjs +71 -22
- package/esm2022/generators/line.generator.mjs +2 -11
- package/esm2022/geometry.component.mjs +20 -10
- package/esm2022/image.component.mjs +70 -0
- package/esm2022/interfaces/geometry.mjs +38 -10
- package/esm2022/interfaces/image.mjs +2 -0
- package/esm2022/interfaces/index.mjs +16 -4
- package/esm2022/interfaces/line.mjs +27 -4
- package/esm2022/interfaces/text.mjs +1 -1
- package/esm2022/line.component.mjs +17 -8
- package/esm2022/plugins/with-draw-fragment.mjs +37 -7
- package/esm2022/plugins/with-draw.mjs +38 -10
- package/esm2022/plugins/with-geometry-create.mjs +38 -23
- package/esm2022/plugins/with-geometry-resize.mjs +28 -20
- package/esm2022/plugins/with-line-bound-reaction.mjs +10 -5
- package/esm2022/plugins/with-line-create.mjs +7 -5
- package/esm2022/plugins/with-line-resize.mjs +12 -4
- package/esm2022/transforms/geometry-text.mjs +1 -1
- package/esm2022/transforms/geometry.mjs +6 -6
- package/esm2022/transforms/image.mjs +23 -0
- package/esm2022/transforms/index.mjs +4 -2
- package/esm2022/utils/clipboard.mjs +4 -3
- package/esm2022/utils/geometry.mjs +32 -10
- package/esm2022/utils/index.mjs +1 -1
- package/esm2022/utils/line-arrow.mjs +43 -18
- package/esm2022/utils/line.mjs +202 -51
- package/esm2022/utils/position/geometry.mjs +5 -4
- package/esm2022/utils/position/line.mjs +32 -22
- package/esm2022/utils/selected.mjs +5 -1
- package/esm2022/utils/shape.mjs +8 -0
- package/fesm2022/plait-draw.mjs +1704 -331
- package/fesm2022/plait-draw.mjs.map +1 -1
- package/generators/line-active.generator.d.ts +3 -0
- package/generators/line.generator.d.ts +1 -1
- package/geometry.component.d.ts +1 -1
- package/image.component.d.ts +20 -0
- package/interfaces/geometry.d.ts +39 -7
- package/interfaces/image.d.ts +7 -0
- package/interfaces/index.d.ts +7 -1
- package/interfaces/line.d.ts +19 -5
- package/interfaces/text.d.ts +2 -2
- package/line.component.d.ts +2 -1
- package/package.json +3 -2
- package/plugins/with-draw-fragment.d.ts +2 -0
- package/plugins/with-geometry-create.d.ts +6 -1
- package/styles/styles.scss +2 -2
- package/transforms/geometry.d.ts +2 -2
- package/transforms/image.d.ts +3 -0
- package/transforms/index.d.ts +2 -1
- package/utils/geometry.d.ts +23 -3
- package/utils/line.d.ts +14 -6
- package/utils/position/geometry.d.ts +2 -1
- package/utils/position/line.d.ts +7 -3
- package/utils/selected.d.ts +2 -0
- package/utils/shape.d.ts +2 -0
- package/esm2022/utils/engine/diamond.mjs +0 -22
- package/esm2022/utils/engine/ellipse.mjs +0 -55
- package/esm2022/utils/engine/index.mjs +0 -18
- package/esm2022/utils/engine/parallelogram.mjs +0 -32
- package/esm2022/utils/engine/rectangle.mjs +0 -18
- package/esm2022/utils/engine/round-rectangle.mjs +0 -49
- package/utils/engine/ellipse.d.ts +0 -4
- package/utils/engine/index.d.ts +0 -3
- package/{utils/engine → engines/basic-shapes}/diamond.d.ts +0 -0
- package/{utils/engine → engines/basic-shapes}/parallelogram.d.ts +1 -1
- /package/{utils/engine → engines/basic-shapes}/rectangle.d.ts +0 -0
- /package/{utils/engine → engines/basic-shapes}/round-rectangle.d.ts +0 -0
package/constants/geometry.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ export declare const DefaultGeometryActiveStyle: {
|
|
|
11
11
|
strokeWidth: number;
|
|
12
12
|
selectionStrokeWidth: number;
|
|
13
13
|
};
|
|
14
|
-
export declare const
|
|
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
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const DEFAULT_IMAGE_WIDTH = 1000;
|
package/constants/index.d.ts
CHANGED
package/constants/pointer.d.ts
CHANGED
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
parallelogram = "parallelogram",
|
|
8
|
-
ellipse = "ellipse"
|
|
9
|
-
}
|
|
10
|
-
export declare const GeometryPointer: DrawPointerType[];
|
|
1
|
+
import { BasicShapes, FlowchartSymbols, LineShape } from '../interfaces';
|
|
2
|
+
export type DrawPointerType = BasicShapes | LineShape | FlowchartSymbols;
|
|
3
|
+
export declare const getGeometryPointers: () => string[];
|
|
4
|
+
export declare const getBasicPointers: () => string[];
|
|
5
|
+
export declare const getFlowchartPointers: () => string[];
|
|
6
|
+
export declare const getLinePointers: () => string[];
|
|
@@ -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;
|
|
@@ -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;
|
|
@@ -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,4 +1,5 @@
|
|
|
1
|
-
import { ACTIVE_STROKE_WIDTH } from
|
|
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
|
|
16
|
+
export const DefaultBasicShapeProperty = {
|
|
16
17
|
width: 100,
|
|
17
18
|
height: 100,
|
|
18
19
|
strokeColor: '#333',
|
|
@@ -24,6 +25,43 @@ export const DefaultTextProperty = {
|
|
|
24
25
|
text: '文本'
|
|
25
26
|
};
|
|
26
27
|
export const GeometryThreshold = {
|
|
27
|
-
defaultTextMaxWidth: 34 * 14
|
|
28
|
+
defaultTextMaxWidth: 34 * 14
|
|
28
29
|
};
|
|
29
|
-
|
|
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
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export const DEFAULT_IMAGE_WIDTH = 1000;
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9jb25zdGFudHMvaW1hZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IERFRkFVTFRfSU1BR0VfV0lEVEggPSAxMDAwO1xuIl19
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export * from './geometry';
|
|
2
2
|
export * from './pointer';
|
|
3
|
-
|
|
3
|
+
export * from './image';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9jb25zdGFudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2dlb21ldHJ5JztcbmV4cG9ydCAqIGZyb20gJy4vcG9pbnRlcic7XG5leHBvcnQgKiBmcm9tICcuL2ltYWdlJztcbiJdfQ==
|
|
@@ -1,19 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
export const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
DrawPointerType.ellipse,
|
|
16
|
-
DrawPointerType.parallelogram,
|
|
17
|
-
DrawPointerType.roundRectangle
|
|
18
|
-
];
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pbnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2RyYXcvc3JjL2NvbnN0YW50cy9wb2ludGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGVBUVg7QUFSRCxXQUFZLGVBQWU7SUFDdkIsZ0NBQWEsQ0FBQTtJQUNiLDBDQUF1QixDQUFBO0lBQ3ZCLGdDQUFhLENBQUE7SUFDYixzQ0FBbUIsQ0FBQTtJQUNuQixvREFBaUMsQ0FBQTtJQUNqQyxrREFBK0IsQ0FBQTtJQUMvQixzQ0FBbUIsQ0FBQTtBQUN2QixDQUFDLEVBUlcsZUFBZSxLQUFmLGVBQWUsUUFRMUI7QUFFRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUc7SUFDM0IsZUFBZSxDQUFDLFNBQVM7SUFDekIsZUFBZSxDQUFDLElBQUk7SUFDcEIsZUFBZSxDQUFDLE9BQU87SUFDdkIsZUFBZSxDQUFDLE9BQU87SUFDdkIsZUFBZSxDQUFDLGFBQWE7SUFDN0IsZUFBZSxDQUFDLGNBQWM7Q0FDakMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIERyYXdQb2ludGVyVHlwZSB7XG4gICAgdGV4dCA9ICd0ZXh0JyxcbiAgICByZWN0YW5nbGUgPSAncmVjdGFuZ2xlJyxcbiAgICBsaW5lID0gJ2xpbmUnLFxuICAgIGRpYW1vbmQgPSAnZGlhbW9uZCcsXG4gICAgcm91bmRSZWN0YW5nbGUgPSAncm91bmRSZWN0YW5nbGUnLFxuICAgIHBhcmFsbGVsb2dyYW0gPSAncGFyYWxsZWxvZ3JhbScsXG4gICAgZWxsaXBzZSA9ICdlbGxpcHNlJ1xufVxuXG5leHBvcnQgY29uc3QgR2VvbWV0cnlQb2ludGVyID0gW1xuICAgIERyYXdQb2ludGVyVHlwZS5yZWN0YW5nbGUsXG4gICAgRHJhd1BvaW50ZXJUeXBlLnRleHQsXG4gICAgRHJhd1BvaW50ZXJUeXBlLmRpYW1vbmQsXG4gICAgRHJhd1BvaW50ZXJUeXBlLmVsbGlwc2UsXG4gICAgRHJhd1BvaW50ZXJUeXBlLnBhcmFsbGVsb2dyYW0sXG4gICAgRHJhd1BvaW50ZXJUeXBlLnJvdW5kUmVjdGFuZ2xlXG5dO1xuIl19
|
|
1
|
+
import { BasicShapes, FlowchartSymbols, LineShape } from '../interfaces';
|
|
2
|
+
export const getGeometryPointers = () => {
|
|
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);
|
|
10
|
+
};
|
|
11
|
+
export const getLinePointers = () => {
|
|
12
|
+
return Object.keys(LineShape);
|
|
13
|
+
};
|
|
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
|