@plait/draw 0.54.0 → 0.55.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 +22 -0
- package/engines/basic-shapes/circle.d.ts +8 -0
- package/engines/basic-shapes/cloud.d.ts +2 -0
- package/engines/flowchart/off-page.d.ts +4 -0
- package/engines/flowchart/or.d.ts +2 -0
- package/engines/flowchart/predefined-process.d.ts +2 -0
- package/engines/flowchart/summing-junction.d.ts +2 -0
- package/esm2022/constants/geometry.mjs +12 -2
- package/esm2022/engines/basic-shapes/circle.mjs +51 -0
- package/esm2022/engines/basic-shapes/cloud.mjs +57 -0
- package/esm2022/engines/basic-shapes/ellipse.mjs +3 -41
- package/esm2022/engines/flowchart/off-page.mjs +32 -0
- package/esm2022/engines/flowchart/or.mjs +25 -0
- package/esm2022/engines/flowchart/predefined-process.mjs +47 -0
- package/esm2022/engines/flowchart/summing-junction.mjs +28 -0
- package/esm2022/engines/index.mjs +12 -2
- package/esm2022/geometry.component.mjs +7 -8
- package/esm2022/image.component.mjs +6 -7
- package/esm2022/interfaces/element.mjs +2 -1
- package/esm2022/interfaces/geometry.mjs +6 -1
- package/esm2022/line.component.mjs +8 -9
- package/esm2022/plugins/with-draw-fragment.mjs +7 -7
- package/esm2022/plugins/with-draw-hotkey.mjs +1 -1
- package/esm2022/plugins/with-draw-resize.mjs +23 -23
- package/esm2022/plugins/with-draw-rotate.mjs +127 -0
- package/esm2022/plugins/with-draw.mjs +3 -2
- package/esm2022/plugins/with-geometry-create.mjs +21 -5
- package/esm2022/plugins/with-geometry-resize.mjs +15 -14
- package/esm2022/plugins/with-line-auto-complete.mjs +4 -3
- package/esm2022/utils/geometry.mjs +5 -2
- package/esm2022/utils/line/line-basic.mjs +6 -3
- package/esm2022/utils/position/geometry.mjs +10 -2
- package/esm2022/utils/snap-resizing.mjs +185 -0
- package/esm2022/utils/style/stroke.mjs +9 -2
- package/fesm2022/plait-draw.mjs +1126 -942
- package/fesm2022/plait-draw.mjs.map +1 -1
- package/geometry.component.d.ts +2 -3
- package/image.component.d.ts +2 -3
- package/interfaces/element.d.ts +2 -1
- package/interfaces/geometry.d.ts +7 -2
- package/line.component.d.ts +2 -3
- package/package.json +1 -1
- package/plugins/with-draw-resize.d.ts +3 -5
- package/plugins/with-draw-rotate.d.ts +2 -0
- package/utils/position/geometry.d.ts +6 -0
- package/utils/snap-resizing.d.ts +25 -0
- package/esm2022/utils/resize-snap.mjs +0 -361
- package/utils/resize-snap.d.ts +0 -49
package/constants/geometry.d.ts
CHANGED
|
@@ -17,6 +17,12 @@ export declare const DefaultBasicShapeProperty: {
|
|
|
17
17
|
strokeColor: string;
|
|
18
18
|
strokeWidth: number;
|
|
19
19
|
};
|
|
20
|
+
export declare const DefaultCloudShapeProperty: {
|
|
21
|
+
width: number;
|
|
22
|
+
height: number;
|
|
23
|
+
strokeColor: string;
|
|
24
|
+
strokeWidth: number;
|
|
25
|
+
};
|
|
20
26
|
export declare const DefaultTextProperty: {
|
|
21
27
|
width: number;
|
|
22
28
|
height: number;
|
|
@@ -94,6 +100,22 @@ export declare const DefaultFlowchartPropertyMap: {
|
|
|
94
100
|
width: number;
|
|
95
101
|
height: number;
|
|
96
102
|
};
|
|
103
|
+
or: {
|
|
104
|
+
width: number;
|
|
105
|
+
height: number;
|
|
106
|
+
};
|
|
107
|
+
summingJunction: {
|
|
108
|
+
width: number;
|
|
109
|
+
height: number;
|
|
110
|
+
};
|
|
111
|
+
predefinedProcess: {
|
|
112
|
+
width: number;
|
|
113
|
+
height: number;
|
|
114
|
+
};
|
|
115
|
+
offPage: {
|
|
116
|
+
width: number;
|
|
117
|
+
height: number;
|
|
118
|
+
};
|
|
97
119
|
};
|
|
98
120
|
export declare const LINE_HIT_GEOMETRY_BUFFER = 10;
|
|
99
121
|
export declare const LINE_SNAPPING_BUFFER = 6;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { PlaitBoard, RectangleClient } from '@plait/core';
|
|
2
|
+
import { PlaitGeometry, ShapeEngine } from '../../interfaces';
|
|
3
|
+
import { Options } from 'roughjs/bin/core';
|
|
4
|
+
export interface CreateCircleOptions {
|
|
5
|
+
draw?: (board: PlaitBoard, rectangle: RectangleClient, options: Options) => SVGGElement;
|
|
6
|
+
getTextRectangle?: (element: PlaitGeometry) => RectangleClient;
|
|
7
|
+
}
|
|
8
|
+
export declare function createEllipseEngine(createOptions?: CreateCircleOptions): ShapeEngine;
|
|
@@ -19,6 +19,12 @@ export const DefaultBasicShapeProperty = {
|
|
|
19
19
|
strokeColor: '#333',
|
|
20
20
|
strokeWidth: 2
|
|
21
21
|
};
|
|
22
|
+
export const DefaultCloudShapeProperty = {
|
|
23
|
+
width: 120,
|
|
24
|
+
height: 100,
|
|
25
|
+
strokeColor: '#333',
|
|
26
|
+
strokeWidth: 2
|
|
27
|
+
};
|
|
22
28
|
export const DefaultTextProperty = {
|
|
23
29
|
width: 36,
|
|
24
30
|
height: 20,
|
|
@@ -62,9 +68,13 @@ export const DefaultFlowchartPropertyMap = {
|
|
|
62
68
|
[FlowchartSymbols.manualLoop]: DefaultFlowchartProperty,
|
|
63
69
|
[FlowchartSymbols.merge]: DefaultMergeProperty,
|
|
64
70
|
[FlowchartSymbols.delay]: DefaultFlowchartProperty,
|
|
65
|
-
[FlowchartSymbols.storedData]: DefaultFlowchartProperty
|
|
71
|
+
[FlowchartSymbols.storedData]: DefaultFlowchartProperty,
|
|
72
|
+
[FlowchartSymbols.or]: DefaultConnectorProperty,
|
|
73
|
+
[FlowchartSymbols.summingJunction]: DefaultConnectorProperty,
|
|
74
|
+
[FlowchartSymbols.predefinedProcess]: DefaultFlowchartProperty,
|
|
75
|
+
[FlowchartSymbols.offPage]: DefaultFlowchartProperty
|
|
66
76
|
};
|
|
67
77
|
export const LINE_HIT_GEOMETRY_BUFFER = 10;
|
|
68
78
|
export const LINE_SNAPPING_BUFFER = 6;
|
|
69
79
|
export const LINE_SNAPPING_CONNECTOR_BUFFER = 8;
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvbWV0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9jb25zdGFudHMvZ2VvbWV0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRztJQUM3QixnQkFBZ0IsRUFBRSxDQUFDO0NBQ3RCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRztJQUNoQyxXQUFXLEVBQUUsQ0FBQztJQUNkLGFBQWEsRUFBRSxDQUFDO0lBQ2hCLFdBQVcsRUFBRSxNQUFNO0lBQ25CLElBQUksRUFBRSxNQUFNO0NBQ2YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHO0lBQ3RDLFdBQVcsRUFBRSxtQkFBbUI7SUFDaEMsb0JBQW9CLEVBQUUsbUJBQW1CO0NBQzVDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRztJQUNyQyxLQUFLLEVBQUUsR0FBRztJQUNWLE1BQU0sRUFBRSxHQUFHO0lBQ1gsV0FBVyxFQUFFLE1BQU07SUFDbkIsV0FBVyxFQUFFLENBQUM7Q0FDakIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHO0lBQ3JDLEtBQUssRUFBRSxHQUFHO0lBQ1YsTUFBTSxFQUFFLEdBQUc7SUFDWCxXQUFXLEVBQUUsTUFBTTtJQUNuQixXQUFXLEVBQUUsQ0FBQztDQUNqQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUc7SUFDL0IsS0FBSyxFQUFFLEVBQUU7SUFDVCxNQUFNLEVBQUUsRUFBRTtJQUNWLElBQUksRUFBRSxJQUFJO0NBQ2IsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHO0lBQzdCLG1CQUFtQixFQUFFLEVBQUUsR0FBRyxFQUFFO0NBQy9CLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRztJQUNwQyxLQUFLLEVBQUUsRUFBRTtJQUNULE1BQU0sRUFBRSxFQUFFO0NBQ2IsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHO0lBQ3BDLEtBQUssRUFBRSxHQUFHO0lBQ1YsTUFBTSxFQUFFLEVBQUU7Q0FDYixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUc7SUFDbkMsS0FBSyxFQUFFLEdBQUc7SUFDVixNQUFNLEVBQUUsRUFBRTtDQUNiLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRztJQUMvQixLQUFLLEVBQUUsR0FBRztJQUNWLE1BQU0sRUFBRSxFQUFFO0NBQ2IsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHO0lBQ3RDLEtBQUssRUFBRSxHQUFHO0lBQ1YsTUFBTSxFQUFFLEVBQUU7Q0FDYixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUc7SUFDaEMsS0FBSyxFQUFFLEVBQUU7SUFDVCxNQUFNLEVBQUUsRUFBRTtDQUNiLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRztJQUN2QyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxFQUFFLHdCQUF3QjtJQUN0RCxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxFQUFFLHdCQUF3QjtJQUNwRCxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxFQUFFLHVCQUF1QjtJQUNwRCxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLG1CQUFtQjtJQUM1QyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxFQUFFLHdCQUF3QjtJQUNyRCxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxFQUFFLDBCQUEwQjtJQUMxRCxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxFQUFFLHdCQUF3QjtJQUN4RCxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxFQUFFLHdCQUF3QjtJQUN2RCxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxFQUFFLG9CQUFvQjtJQUM5QyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxFQUFFLHdCQUF3QjtJQUNsRCxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxFQUFFLHdCQUF3QjtJQUN2RCxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxFQUFFLHdCQUF3QjtJQUMvQyxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxFQUFFLHdCQUF3QjtJQUM1RCxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLEVBQUUsd0JBQXdCO0lBQzlELENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEVBQUUsd0JBQXdCO0NBQ3ZELENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxFQUFFLENBQUM7QUFFM0MsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxDQUFDO0FBRXRDLE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFDVElWRV9TVFJPS0VfV0lEVEggfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBGbG93Y2hhcnRTeW1ib2xzIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBjb25zdCBTaGFwZURlZmF1bHRTcGFjZSA9IHtcbiAgICByZWN0YW5nbGVBbmRUZXh0OiA0XG59O1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdEdlb21ldHJ5U3R5bGUgPSB7XG4gICAgc3Ryb2tlV2lkdGg6IDIsXG4gICAgZGVmYXVsdFJhZGl1czogNCxcbiAgICBzdHJva2VDb2xvcjogJyMwMDAnLFxuICAgIGZpbGw6ICdub25lJ1xufTtcblxuZXhwb3J0IGNvbnN0IERlZmF1bHRHZW9tZXRyeUFjdGl2ZVN0eWxlID0ge1xuICAgIHN0cm9rZVdpZHRoOiBBQ1RJVkVfU1RST0tFX1dJRFRILFxuICAgIHNlbGVjdGlvblN0cm9rZVdpZHRoOiBBQ1RJVkVfU1RST0tFX1dJRFRIXG59O1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdEJhc2ljU2hhcGVQcm9wZXJ0eSA9IHtcbiAgICB3aWR0aDogMTAwLFxuICAgIGhlaWdodDogMTAwLFxuICAgIHN0cm9rZUNvbG9yOiAnIzMzMycsXG4gICAgc3Ryb2tlV2lkdGg6IDJcbn07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0Q2xvdWRTaGFwZVByb3BlcnR5ID0ge1xuICAgIHdpZHRoOiAxMjAsXG4gICAgaGVpZ2h0OiAxMDAsXG4gICAgc3Ryb2tlQ29sb3I6ICcjMzMzJyxcbiAgICBzdHJva2VXaWR0aDogMlxufTtcblxuZXhwb3J0IGNvbnN0IERlZmF1bHRUZXh0UHJvcGVydHkgPSB7XG4gICAgd2lkdGg6IDM2LFxuICAgIGhlaWdodDogMjAsXG4gICAgdGV4dDogJ+aWh+acrCdcbn07XG5cbmV4cG9ydCBjb25zdCBHZW9tZXRyeVRocmVzaG9sZCA9IHtcbiAgICBkZWZhdWx0VGV4dE1heFdpZHRoOiAzNCAqIDE0XG59O1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdENvbm5lY3RvclByb3BlcnR5ID0ge1xuICAgIHdpZHRoOiA0NCxcbiAgICBoZWlnaHQ6IDQ0XG59O1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdEZsb3djaGFydFByb3BlcnR5ID0ge1xuICAgIHdpZHRoOiAxMjAsXG4gICAgaGVpZ2h0OiA2MFxufTtcblxuZXhwb3J0IGNvbnN0IERlZmF1bHREZWNpc2lvblByb3BlcnR5ID0ge1xuICAgIHdpZHRoOiAxNDAsXG4gICAgaGVpZ2h0OiA3MFxufTtcblxuZXhwb3J0IGNvbnN0IERlZmF1bHREYXRhUHJvcGVydHkgPSB7XG4gICAgd2lkdGg6IDEyNCxcbiAgICBoZWlnaHQ6IDYwXG59O1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdE1hbnVhbElucHV0UHJvcGVydHkgPSB7XG4gICAgd2lkdGg6IDExNyxcbiAgICBoZWlnaHQ6IDU5XG59O1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdE1lcmdlUHJvcGVydHkgPSB7XG4gICAgd2lkdGg6IDQ3LFxuICAgIGhlaWdodDogMzNcbn07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0Rmxvd2NoYXJ0UHJvcGVydHlNYXAgPSB7XG4gICAgW0Zsb3djaGFydFN5bWJvbHMuY29ubmVjdG9yXTogRGVmYXVsdENvbm5lY3RvclByb3BlcnR5LFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLnByb2Nlc3NdOiBEZWZhdWx0Rmxvd2NoYXJ0UHJvcGVydHksXG4gICAgW0Zsb3djaGFydFN5bWJvbHMuZGVjaXNpb25dOiBEZWZhdWx0RGVjaXNpb25Qcm9wZXJ0eSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5kYXRhXTogRGVmYXVsdERhdGFQcm9wZXJ0eSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy50ZXJtaW5hbF06IERlZmF1bHRGbG93Y2hhcnRQcm9wZXJ0eSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5tYW51YWxJbnB1dF06IERlZmF1bHRNYW51YWxJbnB1dFByb3BlcnR5LFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLnByZXBhcmF0aW9uXTogRGVmYXVsdEZsb3djaGFydFByb3BlcnR5LFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLm1hbnVhbExvb3BdOiBEZWZhdWx0Rmxvd2NoYXJ0UHJvcGVydHksXG4gICAgW0Zsb3djaGFydFN5bWJvbHMubWVyZ2VdOiBEZWZhdWx0TWVyZ2VQcm9wZXJ0eSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5kZWxheV06IERlZmF1bHRGbG93Y2hhcnRQcm9wZXJ0eSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5zdG9yZWREYXRhXTogRGVmYXVsdEZsb3djaGFydFByb3BlcnR5LFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLm9yXTogRGVmYXVsdENvbm5lY3RvclByb3BlcnR5LFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLnN1bW1pbmdKdW5jdGlvbl06IERlZmF1bHRDb25uZWN0b3JQcm9wZXJ0eSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5wcmVkZWZpbmVkUHJvY2Vzc106IERlZmF1bHRGbG93Y2hhcnRQcm9wZXJ0eSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5vZmZQYWdlXTogRGVmYXVsdEZsb3djaGFydFByb3BlcnR5XG59O1xuXG5leHBvcnQgY29uc3QgTElORV9ISVRfR0VPTUVUUllfQlVGRkVSID0gMTA7XG5cbmV4cG9ydCBjb25zdCBMSU5FX1NOQVBQSU5HX0JVRkZFUiA9IDY7XG5cbmV4cG9ydCBjb25zdCBMSU5FX1NOQVBQSU5HX0NPTk5FQ1RPUl9CVUZGRVIgPSA4O1xuIl19
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { PlaitBoard, RectangleClient, getEllipseTangentSlope, getVectorFromPointAndSlope, isPointInEllipse } from '@plait/core';
|
|
2
|
+
import { getTextRectangle } from '../../utils';
|
|
3
|
+
import { getNearestPointBetweenPointAndEllipse } from './ellipse';
|
|
4
|
+
export function createEllipseEngine(createOptions) {
|
|
5
|
+
const engine = {
|
|
6
|
+
draw(board, rectangle, options) {
|
|
7
|
+
const centerPoint = [rectangle.x + rectangle.width / 2, rectangle.y + rectangle.height / 2];
|
|
8
|
+
const rs = PlaitBoard.getRoughSVG(board);
|
|
9
|
+
return rs.ellipse(centerPoint[0], centerPoint[1], rectangle.width, rectangle.height, { ...options, fillStyle: 'solid' });
|
|
10
|
+
},
|
|
11
|
+
isInsidePoint(rectangle, point) {
|
|
12
|
+
const centerPoint = [rectangle.x + rectangle.width / 2, rectangle.y + rectangle.height / 2];
|
|
13
|
+
return isPointInEllipse(point, centerPoint, rectangle.width / 2, rectangle.height / 2);
|
|
14
|
+
},
|
|
15
|
+
getCornerPoints(rectangle) {
|
|
16
|
+
return RectangleClient.getEdgeCenterPoints(rectangle);
|
|
17
|
+
},
|
|
18
|
+
getNearestPoint(rectangle, point) {
|
|
19
|
+
const centerPoint = [rectangle.x + rectangle.width / 2, rectangle.y + rectangle.height / 2];
|
|
20
|
+
return getNearestPointBetweenPointAndEllipse(point, centerPoint, rectangle.width / 2, rectangle.height / 2);
|
|
21
|
+
},
|
|
22
|
+
getTangentVectorByConnectionPoint(rectangle, pointOfRectangle) {
|
|
23
|
+
const connectionPoint = RectangleClient.getConnectionPoint(rectangle, pointOfRectangle);
|
|
24
|
+
const centerPoint = [rectangle.x + rectangle.width / 2, rectangle.y + rectangle.height / 2];
|
|
25
|
+
const point = [connectionPoint[0] - centerPoint[0], -(connectionPoint[1] - centerPoint[1])];
|
|
26
|
+
const a = rectangle.width / 2;
|
|
27
|
+
const b = rectangle.height / 2;
|
|
28
|
+
const slope = getEllipseTangentSlope(point[0], point[1], a, b);
|
|
29
|
+
const vector = getVectorFromPointAndSlope(point[0], point[1], slope);
|
|
30
|
+
return vector;
|
|
31
|
+
},
|
|
32
|
+
getConnectorPoints(rectangle) {
|
|
33
|
+
return RectangleClient.getEdgeCenterPoints(rectangle);
|
|
34
|
+
},
|
|
35
|
+
getTextRectangle(element) {
|
|
36
|
+
const rectangle = getTextRectangle(element);
|
|
37
|
+
const width = rectangle.width;
|
|
38
|
+
rectangle.width = (rectangle.width * 3) / 4;
|
|
39
|
+
rectangle.x += width / 8;
|
|
40
|
+
return rectangle;
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
if (createOptions?.draw) {
|
|
44
|
+
engine.draw = createOptions.draw;
|
|
45
|
+
}
|
|
46
|
+
if (createOptions?.getTextRectangle) {
|
|
47
|
+
engine.getTextRectangle = createOptions.getTextRectangle;
|
|
48
|
+
}
|
|
49
|
+
return engine;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2lyY2xlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvZW5naW5lcy9iYXNpYy1zaGFwZXMvY2lyY2xlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxVQUFVLEVBR1YsZUFBZSxFQUNmLHNCQUFzQixFQUN0QiwwQkFBMEIsRUFDMUIsZ0JBQWdCLEVBQ25CLE1BQU0sYUFBYSxDQUFDO0FBR3JCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMvQyxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFPbEUsTUFBTSxVQUFVLG1CQUFtQixDQUFDLGFBQW1DO0lBQ25FLE1BQU0sTUFBTSxHQUFnQjtRQUN4QixJQUFJLENBQUMsS0FBaUIsRUFBRSxTQUEwQixFQUFFLE9BQWdCO1lBQ2hFLE1BQU0sV0FBVyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDNUYsTUFBTSxFQUFFLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN6QyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxHQUFHLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUM3SCxDQUFDO1FBQ0QsYUFBYSxDQUFDLFNBQTBCLEVBQUUsS0FBWTtZQUNsRCxNQUFNLFdBQVcsR0FBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUs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Q0FBQztJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIFBsYWl0Qm9hcmQsXG4gICAgUG9pbnQsXG4gICAgUG9pbnRPZlJlY3RhbmdsZSxcbiAgICBSZWN0YW5nbGVDbGllbnQsXG4gICAgZ2V0RWxsaXBzZVRhbmdlbnRTbG9wZSxcbiAgICBnZXRWZWN0b3JGcm9tUG9pbnRBbmRTbG9wZSxcbiAgICBpc1BvaW50SW5FbGxpcHNlXG59IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IFBsYWl0R2VvbWV0cnksIFNoYXBlRW5naW5lIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBPcHRpb25zIH0gZnJvbSAncm91Z2hqcy9iaW4vY29yZSc7XG5pbXBvcnQgeyBnZXRUZXh0UmVjdGFuZ2xlIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgZ2V0TmVhcmVzdFBvaW50QmV0d2VlblBvaW50QW5kRWxsaXBzZSB9IGZyb20gJy4vZWxsaXBzZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlQ2lyY2xlT3B0aW9ucyB7XG4gICAgZHJhdz86IChib2FyZDogUGxhaXRCb2FyZCwgcmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIG9wdGlvbnM6IE9wdGlvbnMpID0+IFNWR0dFbGVtZW50O1xuICAgIGdldFRleHRSZWN0YW5nbGU/OiAoZWxlbWVudDogUGxhaXRHZW9tZXRyeSkgPT4gUmVjdGFuZ2xlQ2xpZW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRWxsaXBzZUVuZ2luZShjcmVhdGVPcHRpb25zPzogQ3JlYXRlQ2lyY2xlT3B0aW9ucyk6IFNoYXBlRW5naW5lIHtcbiAgICBjb25zdCBlbmdpbmU6IFNoYXBlRW5naW5lID0ge1xuICAgICAgICBkcmF3KGJvYXJkOiBQbGFpdEJvYXJkLCByZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgb3B0aW9uczogT3B0aW9ucykge1xuICAgICAgICAgICAgY29uc3QgY2VudGVyUG9pbnQgPSBbcmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggLyAyLCByZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHQgLyAyXTtcbiAgICAgICAgICAgIGNvbnN0IHJzID0gUGxhaXRCb2FyZC5nZXRSb3VnaFNWRyhib2FyZCk7XG4gICAgICAgICAgICByZXR1cm4gcnMuZWxsaXBzZShjZW50ZXJQb2ludFswXSwgY2VudGVyUG9pbnRbMV0sIHJlY3RhbmdsZS53aWR0aCwgcmVjdGFuZ2xlLmhlaWdodCwgeyAuLi5vcHRpb25zLCBmaWxsU3R5bGU6ICdzb2xpZCcgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIGlzSW5zaWRlUG9pbnQocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIHBvaW50OiBQb2ludCkge1xuICAgICAgICAgICAgY29uc3QgY2VudGVyUG9pbnQ6IFBvaW50ID0gW3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoIC8gMiwgcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0IC8gMl07XG4gICAgICAgICAgICByZXR1cm4gaXNQb2ludEluRWxsaXBzZShwb2ludCwgY2VudGVyUG9pbnQsIHJlY3RhbmdsZS53aWR0aCAvIDIsIHJlY3RhbmdsZS5oZWlnaHQgLyAyKTtcbiAgICAgICAgfSxcbiAgICAgICAgZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmdldEVkZ2VDZW50ZXJQb2ludHMocmVjdGFuZ2xlKTtcbiAgICAgICAgfSxcbiAgICAgICAgZ2V0TmVhcmVzdFBvaW50KHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBwb2ludDogUG9pbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGNlbnRlclBvaW50OiBQb2ludCA9IFtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAvIDIsIHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodCAvIDJdO1xuICAgICAgICAgICAgcmV0dXJuIGdldE5lYXJlc3RQb2ludEJldHdlZW5Qb2ludEFuZEVsbGlwc2UocG9pbnQsIGNlbnRlclBvaW50LCByZWN0YW5nbGUud2lkdGggLyAyLCByZWN0YW5nbGUuaGVpZ2h0IC8gMik7XG4gICAgICAgIH0sXG4gICAgICAgIGdldFRhbmdlbnRWZWN0b3JCeUNvbm5lY3Rpb25Qb2ludChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcG9pbnRPZlJlY3RhbmdsZTogUG9pbnRPZlJlY3RhbmdsZSkge1xuICAgICAgICAgICAgY29uc3QgY29ubmVjdGlvblBvaW50ID0gUmVjdGFuZ2xlQ2xpZW50LmdldENvbm5lY3Rpb25Qb2ludChyZWN0YW5nbGUsIHBvaW50T2ZSZWN0YW5nbGUpO1xuICAgICAgICAgICAgY29uc3QgY2VudGVyUG9pbnQ6IFBvaW50ID0gW3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoIC8gMiwgcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0IC8gMl07XG4gICAgICAgICAgICBjb25zdCBwb2ludCA9IFtjb25uZWN0aW9uUG9pbnRbMF0gLSBjZW50ZXJQb2ludFswXSwgLShjb25uZWN0aW9uUG9pbnRbMV0gLSBjZW50ZXJQb2ludFsxXSldO1xuICAgICAgICAgICAgY29uc3QgYSA9IHJlY3RhbmdsZS53aWR0aCAvIDI7XG4gICAgICAgICAgICBjb25zdCBiID0gcmVjdGFuZ2xlLmhlaWdodCAvIDI7XG4gICAgICAgICAgICBjb25zdCBzbG9wZSA9IGdldEVsbGlwc2VUYW5nZW50U2xvcGUocG9pbnRbMF0sIHBvaW50WzFdLCBhLCBiKSBhcyBhbnk7XG4gICAgICAgICAgICBjb25zdCB2ZWN0b3IgPSBnZXRWZWN0b3JGcm9tUG9pbnRBbmRTbG9wZShwb2ludFswXSwgcG9pbnRbMV0sIHNsb3BlKTtcbiAgICAgICAgICAgIHJldHVybiB2ZWN0b3I7XG4gICAgICAgIH0sXG4gICAgICAgIGdldENvbm5lY3RvclBvaW50cyhyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCkge1xuICAgICAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5nZXRFZGdlQ2VudGVyUG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgICAgIH0sXG4gICAgICAgIGdldFRleHRSZWN0YW5nbGUoZWxlbWVudDogUGxhaXRHZW9tZXRyeSkge1xuICAgICAgICAgICAgY29uc3QgcmVjdGFuZ2xlID0gZ2V0VGV4dFJlY3RhbmdsZShlbGVtZW50KTtcbiAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gcmVjdGFuZ2xlLndpZHRoO1xuICAgICAgICAgICAgcmVjdGFuZ2xlLndpZHRoID0gKHJlY3RhbmdsZS53aWR0aCAqIDMpIC8gNDtcbiAgICAgICAgICAgIHJlY3RhbmdsZS54ICs9IHdpZHRoIC8gODtcbiAgICAgICAgICAgIHJldHVybiByZWN0YW5nbGU7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgaWYgKGNyZWF0ZU9wdGlvbnM/LmRyYXcpIHtcbiAgICAgICAgZW5naW5lLmRyYXcgPSBjcmVhdGVPcHRpb25zLmRyYXc7XG4gICAgfVxuICAgIGlmIChjcmVhdGVPcHRpb25zPy5nZXRUZXh0UmVjdGFuZ2xlKSB7XG4gICAgICAgIGVuZ2luZS5nZXRUZXh0UmVjdGFuZ2xlID0gY3JlYXRlT3B0aW9ucy5nZXRUZXh0UmVjdGFuZ2xlO1xuICAgIH1cblxuICAgIHJldHVybiBlbmdpbmU7XG59XG4iXX0=
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { PlaitBoard, RectangleClient, getNearestPointBetweenPointAndSegments, setPathStrokeLinecap } from '@plait/core';
|
|
2
|
+
import { getPolygonEdgeByConnectionPoint } from '../../utils/polygon';
|
|
3
|
+
import { getStrokeWidthByElement } from '../../utils';
|
|
4
|
+
import { ShapeDefaultSpace } from '../../constants';
|
|
5
|
+
export const CloudEngine = {
|
|
6
|
+
draw(board, rectangle, options) {
|
|
7
|
+
const rs = PlaitBoard.getRoughSVG(board);
|
|
8
|
+
const divisionWidth = rectangle.width / 7;
|
|
9
|
+
const divisionHeight = rectangle.height / 3.2;
|
|
10
|
+
const xRadius = divisionWidth / 8.5;
|
|
11
|
+
const yRadius = divisionHeight / 20;
|
|
12
|
+
const svgElement = rs.path(`M ${rectangle.x + divisionWidth} ${rectangle.y + divisionHeight}
|
|
13
|
+
A ${xRadius} ${yRadius * 1.2} 0 1 1 ${rectangle.x + divisionWidth * 2} ${rectangle.y + divisionHeight / 2}
|
|
14
|
+
A ${xRadius} ${yRadius} 0 1 1 ${rectangle.x + divisionWidth * 4.2} ${rectangle.y + divisionHeight / 2.2}
|
|
15
|
+
A ${xRadius} ${yRadius} 0 1 1 ${rectangle.x + divisionWidth * 5.8} ${rectangle.y + divisionHeight}
|
|
16
|
+
A ${xRadius} ${yRadius * 1.3} 0 1 1 ${rectangle.x + divisionWidth * 6} ${rectangle.y + divisionHeight * 2.2}
|
|
17
|
+
A ${xRadius} ${yRadius * 1.2} 0 1 1 ${rectangle.x + divisionWidth * 5} ${rectangle.y + divisionHeight * 2.8}
|
|
18
|
+
A ${xRadius} ${yRadius / 1.2} 0 1 1 ${rectangle.x + divisionWidth * 2.8} ${rectangle.y + divisionHeight * 2.8}
|
|
19
|
+
A ${xRadius} ${yRadius} 0 1 1 ${rectangle.x + divisionWidth} ${rectangle.y + divisionHeight * 2.2}
|
|
20
|
+
A ${xRadius} ${yRadius * 1.42} 0 1 1 ${rectangle.x + divisionWidth} ${rectangle.y + divisionHeight}
|
|
21
|
+
Z`, { ...options, fillStyle: 'solid' });
|
|
22
|
+
setPathStrokeLinecap(svgElement, 'round');
|
|
23
|
+
return svgElement;
|
|
24
|
+
},
|
|
25
|
+
isInsidePoint(rectangle, point) {
|
|
26
|
+
const rangeRectangle = RectangleClient.getRectangleByPoints([point, point]);
|
|
27
|
+
return RectangleClient.isHit(rectangle, rangeRectangle);
|
|
28
|
+
},
|
|
29
|
+
getCornerPoints(rectangle) {
|
|
30
|
+
return RectangleClient.getCornerPoints(rectangle);
|
|
31
|
+
},
|
|
32
|
+
getNearestPoint(rectangle, point) {
|
|
33
|
+
return getNearestPointBetweenPointAndSegments(point, CloudEngine.getCornerPoints(rectangle));
|
|
34
|
+
},
|
|
35
|
+
getEdgeByConnectionPoint(rectangle, pointOfRectangle) {
|
|
36
|
+
const corners = CloudEngine.getCornerPoints(rectangle);
|
|
37
|
+
const point = RectangleClient.getConnectionPoint(rectangle, pointOfRectangle);
|
|
38
|
+
return getPolygonEdgeByConnectionPoint(corners, point);
|
|
39
|
+
},
|
|
40
|
+
getConnectorPoints(rectangle) {
|
|
41
|
+
return RectangleClient.getEdgeCenterPoints(rectangle);
|
|
42
|
+
},
|
|
43
|
+
getTextRectangle(element) {
|
|
44
|
+
const elementRectangle = RectangleClient.getRectangleByPoints(element.points);
|
|
45
|
+
const strokeWidth = getStrokeWidthByElement(element);
|
|
46
|
+
const height = element.textHeight;
|
|
47
|
+
const originWidth = elementRectangle.width - ShapeDefaultSpace.rectangleAndText * 2 - strokeWidth * 2;
|
|
48
|
+
const width = originWidth / 1.5;
|
|
49
|
+
return {
|
|
50
|
+
height,
|
|
51
|
+
width: width > 0 ? width : 0,
|
|
52
|
+
x: elementRectangle.x + ShapeDefaultSpace.rectangleAndText + strokeWidth + originWidth / 6,
|
|
53
|
+
y: elementRectangle.y + elementRectangle.height / 6 + ((elementRectangle.height * 4) / 6 - height) / 2
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9lbmdpbmVzL2Jhc2ljLXNoYXBlcy9jbG91ZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUEyQixlQUFlLEVBQWlCLHNDQUFzQyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBR2hLLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVwRCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQWdCO0lBQ3BDLElBQUksQ0FBQyxLQUFpQixFQUFFLFNBQTBCLEVBQUUsT0FBZ0I7UUFDaEUsTUFBTSxFQUFFLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUMxQyxNQUFNLGNBQWMsR0FBRyxTQUFTLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztRQUM5QyxNQUFNLE9BQU8sR0FBRyxhQUFhLEdBQUcsR0FBRyxDQUFDO1FBQ3BDLE1BQU0sT0FBTyxHQUFHLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDcEMsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FDdEIsS0FBSyxTQUFTLENBQUMsQ0FBQyxHQUFHLGFBQWEsSUFBSSxTQUFTLENBQUMsQ0FBQyxHQUFHLGNBQWM7aUJBQzNELE9BQU8sSUFBSSxPQUFPLEdBQUcsR0FBRyxVQUFVLFNBQVMsQ0FBQyxDQUFDLEdBQUcsYUFBYSxHQUFHLENBQUMsSUFBSSxTQUFTLENBQUMsQ0FBQyxHQUFHLGNBQWMsR0FBRyxDQUFDO2lCQUNyRyxPQUFPLElB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SyxHQUFHLFdBQVcsR0FBRyxHQUFHLENBQUM7UUFDaEMsT0FBTztZQUNILE1BQU07WUFDTixLQUFLLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVCLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLEdBQUcsaUJBQWlCLENBQUMsZ0JBQWdCLEdBQUcsV0FBVyxHQUFHLFdBQVcsR0FBRyxDQUFDO1lBQzFGLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDO1NBQ3pHLENBQUM7SUFDTixDQUFDO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQsIFBvaW50LCBQb2ludE9mUmVjdGFuZ2xlLCBSZWN0YW5nbGVDbGllbnQsIGRyYXdSZWN0YW5nbGUsIGdldE5lYXJlc3RQb2ludEJldHdlZW5Qb2ludEFuZFNlZ21lbnRzLCBzZXRQYXRoU3Ryb2tlTGluZWNhcCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IFBsYWl0R2VvbWV0cnksIFNoYXBlRW5naW5lIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBPcHRpb25zIH0gZnJvbSAncm91Z2hqcy9iaW4vY29yZSc7XG5pbXBvcnQgeyBnZXRQb2x5Z29uRWRnZUJ5Q29ubmVjdGlvblBvaW50IH0gZnJvbSAnLi4vLi4vdXRpbHMvcG9seWdvbic7XG5pbXBvcnQgeyBnZXRTdHJva2VXaWR0aEJ5RWxlbWVudCB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IFNoYXBlRGVmYXVsdFNwYWNlIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcblxuZXhwb3J0IGNvbnN0IENsb3VkRW5naW5lOiBTaGFwZUVuZ2luZSA9IHtcbiAgICBkcmF3KGJvYXJkOiBQbGFpdEJvYXJkLCByZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgb3B0aW9uczogT3B0aW9ucykge1xuICAgICAgICBjb25zdCBycyA9IFBsYWl0Qm9hcmQuZ2V0Um91Z2hTVkcoYm9hcmQpO1xuICAgICAgICBjb25zdCBkaXZpc2lvbldpZHRoID0gcmVjdGFuZ2xlLndpZHRoIC8gNztcbiAgICAgICAgY29uc3QgZGl2aXNpb25IZWlnaHQgPSByZWN0YW5nbGUuaGVpZ2h0IC8gMy4yO1xuICAgICAgICBjb25zdCB4UmFkaXVzID0gZGl2aXNpb25XaWR0aCAvIDguNTtcbiAgICAgICAgY29uc3QgeVJhZGl1cyA9IGRpdmlzaW9uSGVpZ2h0IC8gMjA7XG4gICAgICAgIGNvbnN0IHN2Z0VsZW1lbnQgPSBycy5wYXRoKFxuICAgICAgICAgICAgYE0gJHtyZWN0YW5nbGUueCArIGRpdmlzaW9uV2lkdGh9ICR7cmVjdGFuZ2xlLnkgKyBkaXZpc2lvbkhlaWdodH1cbiAgICAgICAgICAgICBBICR7eFJhZGl1c30gJHt5UmFkaXVzICogMS4yfSAwIDEgMSAke3JlY3RhbmdsZS54ICsgZGl2aXNpb25XaWR0aCAqIDJ9ICR7cmVjdGFuZ2xlLnkgKyBkaXZpc2lvbkhlaWdodCAvIDJ9XG4gICAgICAgICAgICAgQSAke3hSYWRpdXN9ICR7eVJhZGl1c30gMCAxIDEgJHtyZWN0YW5nbGUueCArIGRpdmlzaW9uV2lkdGggKiA0LjJ9ICR7cmVjdGFuZ2xlLnkgKyBkaXZpc2lvbkhlaWdodCAvIDIuMn1cbiAgICAgICAgICAgICBBICR7eFJhZGl1c30gJHt5UmFkaXVzfSAwIDEgMSAke3JlY3RhbmdsZS54ICsgZGl2aXNpb25XaWR0aCAqIDUuOH0gJHtyZWN0YW5nbGUueSArIGRpdmlzaW9uSGVpZ2h0fVxuICAgICAgICAgICAgIEEgJHt4UmFkaXVzfSAke3lSYWRpdXMgKiAxLjN9IDAgMSAxICR7cmVjdGFuZ2xlLnggKyBkaXZpc2lvbldpZHRoICogNn0gJHtyZWN0YW5nbGUueSArIGRpdmlzaW9uSGVpZ2h0ICogMi4yfVxuICAgICAgICAgICAgIEEgJHt4UmFkaXVzfSAke3lSYWRpdXMgKiAxLjJ9IDAgMSAxICR7cmVjdGFuZ2xlLnggKyBkaXZpc2lvbldpZHRoICogNX0gJHtyZWN0YW5nbGUueSArIGRpdmlzaW9uSGVpZ2h0ICogMi44fVxuICAgICAgICAgICAgIEEgJHt4UmFkaXVzfSAke3lSYWRpdXMgLyAxLjJ9IDAgMSAxICR7cmVjdGFuZ2xlLnggKyBkaXZpc2lvbldpZHRoICogMi44fSAke3JlY3RhbmdsZS55ICsgZGl2aXNpb25IZWlnaHQgKiAyLjh9XG4gICAgICAgICAgICAgQSAke3hSYWRpdXN9ICR7eVJhZGl1c30gMCAxIDEgJHtyZWN0YW5nbGUueCArIGRpdmlzaW9uV2lkdGh9ICR7cmVjdGFuZ2xlLnkgKyBkaXZpc2lvbkhlaWdodCAqIDIuMn1cbiAgICAgICAgICAgICBBICR7eFJhZGl1c30gJHt5UmFkaXVzICogMS40Mn0gMCAxIDEgJHtyZWN0YW5nbGUueCArIGRpdmlzaW9uV2lkdGh9ICR7cmVjdGFuZ2xlLnkgKyBkaXZpc2lvbkhlaWdodH1cbiAgICAgICAgICAgIFpgLFxuICAgICAgICAgICAgeyAuLi5vcHRpb25zLCBmaWxsU3R5bGU6ICdzb2xpZCcgfVxuICAgICAgICApO1xuICAgICAgICBzZXRQYXRoU3Ryb2tlTGluZWNhcChzdmdFbGVtZW50LCAncm91bmQnKTtcbiAgICAgICAgcmV0dXJuIHN2Z0VsZW1lbnQ7XG4gICAgfSxcbiAgICBpc0luc2lkZVBvaW50KHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBwb2ludDogUG9pbnQpIHtcbiAgICAgICAgY29uc3QgcmFuZ2VSZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoW3BvaW50LCBwb2ludF0pO1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmlzSGl0KHJlY3RhbmdsZSwgcmFuZ2VSZWN0YW5nbGUpO1xuICAgIH0sXG4gICAgZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50KSB7XG4gICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgfSxcbiAgICBnZXROZWFyZXN0UG9pbnQocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIHBvaW50OiBQb2ludCkge1xuICAgICAgICByZXR1cm4gZ2V0TmVhcmVzdFBvaW50QmV0d2VlblBvaW50QW5kU2VnbWVudHMocG9pbnQsIENsb3VkRW5naW5lLmdldENvcm5lclBvaW50cyhyZWN0YW5nbGUpKTtcbiAgICB9LFxuICAgIGdldEVkZ2VCeUNvbm5lY3Rpb25Qb2ludChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcG9pbnRPZlJlY3RhbmdsZTogUG9pbnRPZlJlY3RhbmdsZSk6IFtQb2ludCwgUG9pbnRdIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IGNvcm5lcnMgPSBDbG91ZEVuZ2luZS5nZXRDb3JuZXJQb2ludHMocmVjdGFuZ2xlKTtcbiAgICAgICAgY29uc3QgcG9pbnQgPSBSZWN0YW5nbGVDbGllbnQuZ2V0Q29ubmVjdGlvblBvaW50KHJlY3RhbmdsZSwgcG9pbnRPZlJlY3RhbmdsZSk7XG4gICAgICAgIHJldHVybiBnZXRQb2x5Z29uRWRnZUJ5Q29ubmVjdGlvblBvaW50KGNvcm5lcnMsIHBvaW50KTtcbiAgICB9LFxuICAgIGdldENvbm5lY3RvclBvaW50cyhyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCkge1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmdldEVkZ2VDZW50ZXJQb2ludHMocmVjdGFuZ2xlKTtcbiAgICB9LFxuICAgIGdldFRleHRSZWN0YW5nbGUoZWxlbWVudDogUGxhaXRHZW9tZXRyeSkge1xuICAgICAgICBjb25zdCBlbGVtZW50UmVjdGFuZ2xlID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGVsZW1lbnQucG9pbnRzISk7XG4gICAgICAgIGNvbnN0IHN0cm9rZVdpZHRoID0gZ2V0U3Ryb2tlV2lkdGhCeUVsZW1lbnQoZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IGhlaWdodCA9IGVsZW1lbnQudGV4dEhlaWdodDtcbiAgICAgICAgY29uc3Qgb3JpZ2luV2lkdGggPSBlbGVtZW50UmVjdGFuZ2xlLndpZHRoIC0gU2hhcGVEZWZhdWx0U3BhY2UucmVjdGFuZ2xlQW5kVGV4dCAqIDIgLSBzdHJva2VXaWR0aCAqIDI7XG4gICAgICAgIGNvbnN0IHdpZHRoID0gb3JpZ2luV2lkdGggLyAxLjU7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBoZWlnaHQsXG4gICAgICAgICAgICB3aWR0aDogd2lkdGggPiAwID8gd2lkdGggOiAwLFxuICAgICAgICAgICAgeDogZWxlbWVudFJlY3RhbmdsZS54ICsgU2hhcGVEZWZhdWx0U3BhY2UucmVjdGFuZ2xlQW5kVGV4dCArIHN0cm9rZVdpZHRoICsgb3JpZ2luV2lkdGggLyA2LFxuICAgICAgICAgICAgeTogZWxlbWVudFJlY3RhbmdsZS55ICsgZWxlbWVudFJlY3RhbmdsZS5oZWlnaHQgLyA2ICsgKChlbGVtZW50UmVjdGFuZ2xlLmhlaWdodCAqIDQpIC8gNiAtIGhlaWdodCkgLyAyXG4gICAgICAgIH07XG4gICAgfVxufTtcbiJdfQ==
|
|
@@ -1,43 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
export const EllipseEngine = {
|
|
4
|
-
draw(board, rectangle, options) {
|
|
5
|
-
const centerPoint = [rectangle.x + rectangle.width / 2, rectangle.y + rectangle.height / 2];
|
|
6
|
-
const rs = PlaitBoard.getRoughSVG(board);
|
|
7
|
-
return rs.ellipse(centerPoint[0], centerPoint[1], rectangle.width, rectangle.height, { ...options, fillStyle: 'solid' });
|
|
8
|
-
},
|
|
9
|
-
isInsidePoint(rectangle, point) {
|
|
10
|
-
const centerPoint = [rectangle.x + rectangle.width / 2, rectangle.y + rectangle.height / 2];
|
|
11
|
-
return isPointInEllipse(point, centerPoint, rectangle.width / 2, rectangle.height / 2);
|
|
12
|
-
},
|
|
13
|
-
getCornerPoints(rectangle) {
|
|
14
|
-
return RectangleClient.getEdgeCenterPoints(rectangle);
|
|
15
|
-
},
|
|
16
|
-
getNearestPoint(rectangle, point) {
|
|
17
|
-
const centerPoint = [rectangle.x + rectangle.width / 2, rectangle.y + rectangle.height / 2];
|
|
18
|
-
return getNearestPointBetweenPointAndEllipse(point, centerPoint, rectangle.width / 2, rectangle.height / 2);
|
|
19
|
-
},
|
|
20
|
-
getTangentVectorByConnectionPoint(rectangle, pointOfRectangle) {
|
|
21
|
-
const connectionPoint = RectangleClient.getConnectionPoint(rectangle, pointOfRectangle);
|
|
22
|
-
const centerPoint = [rectangle.x + rectangle.width / 2, rectangle.y + rectangle.height / 2];
|
|
23
|
-
const point = [connectionPoint[0] - centerPoint[0], -(connectionPoint[1] - centerPoint[1])];
|
|
24
|
-
const a = rectangle.width / 2;
|
|
25
|
-
const b = rectangle.height / 2;
|
|
26
|
-
const slope = getEllipseTangentSlope(point[0], point[1], a, b);
|
|
27
|
-
const vector = getVectorFromPointAndSlope(point[0], point[1], slope);
|
|
28
|
-
return vector;
|
|
29
|
-
},
|
|
30
|
-
getConnectorPoints(rectangle) {
|
|
31
|
-
return RectangleClient.getEdgeCenterPoints(rectangle);
|
|
32
|
-
},
|
|
33
|
-
getTextRectangle(element) {
|
|
34
|
-
const rectangle = getTextRectangle(element);
|
|
35
|
-
const width = rectangle.width;
|
|
36
|
-
rectangle.width = (rectangle.width * 3) / 4;
|
|
37
|
-
rectangle.x += width / 8;
|
|
38
|
-
return rectangle;
|
|
39
|
-
}
|
|
40
|
-
};
|
|
1
|
+
import { createEllipseEngine } from './circle';
|
|
2
|
+
export const EllipseEngine = createEllipseEngine();
|
|
41
3
|
export function getNearestPointBetweenPointAndEllipse(point, center, rx, ry, rotation = 0) {
|
|
42
4
|
const rectangleClient = {
|
|
43
5
|
x: center[0] - rx,
|
|
@@ -73,4 +35,4 @@ export function getNearestPointBetweenPointAndEllipse(point, center, rx, ry, rot
|
|
|
73
35
|
const signY = point[1] > center[1] ? 1 : -1;
|
|
74
36
|
return [center[0] + a * tx * signX, center[1] + b * ty * signY];
|
|
75
37
|
}
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxsaXBzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RyYXcvc3JjL2VuZ2luZXMvYmFzaWMtc2hhcGVzL2VsbGlwc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFVBQVUsRUFHVixlQUFlLEVBQ2Ysc0JBQXNCLEVBQ3RCLDBCQUEwQixFQUMxQixnQkFBZ0IsRUFDbkIsTUFBTSxhQUFhLENBQUM7QUFHckIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBZ0I7SUFDdEMsSUFBSSxDQUFDLEtBQWlCLEVBQUUsU0FBMEIsRUFBRSxPQUFnQjtRQUNoRSxNQUFNLFdBQVcsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzVGLE1BQU0sRUFBRSxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsTUFBTSxFQUFFLEVBQUUsR0FBRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDN0gsQ0FBQztJQUNELGFBQWEsQ0FBQyxTQUEwQixFQUFFLEtBQVk7UUFDbEQsTUFBTSxXQUFXLEdBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNuRyxPQUFPLGdCQUFnQixDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBQ0QsZUFBZSxDQUFDLFNBQTBCO1FBQ3RDLE9BQU8sZUFBZSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFDRCxlQUFlLENBQUMsU0FBMEIsRUFBRSxLQUFZO1FBQ3BELE1BQU0sV0FBVyxHQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbkcsT0FBTyxxQ0FBcUMsQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLFNBQVMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDaEgsQ0FBQztJQUNELGlDQUFpQyxDQUFDLFNBQTBCLEVBQUUsZ0JBQWtDO1FBQzVGLE1BQU0sZUFBZSxHQUFHLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUN4RixNQUFNLFdBQVcsR0FBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ25HLE1BQU0sS0FBSyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUYsTUFBTSxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDOUIsTUFBTSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDL0IsTUFBTSxLQUFLLEdBQUcsc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFRLENBQUM7UUFDdEUsTUFBTSxNQUFNLEdBQUcsMEJBQTBCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNyRSxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBQ0Qsa0JBQWtCLENBQUMsU0FBMEI7UUFDekMsT0FBTyxlQUFlLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUNELGdCQUFnQixDQUFDLE9BQXNCO1FBQ25DLE1BQU0sU0FBUyxHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVDLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUM7UUFDOUIsU0FBUyxDQUFDLEtBQUssR0FBRyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVDLFNBQVMsQ0FBQyxDQUFDLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztRQUN6QixPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDO0NBQ0osQ0FBQztBQUVGLE1BQU0sVUFBVSxxQ0FBcUMsQ0FBQyxLQUFZLEVBQUUsTUFBYSxFQUFFLEVBQVUsRUFBRSxFQUFVLEVBQUUsV0FBbUIsQ0FBQztJQUMzSCxNQUFNLGVBQWUsR0FBRztRQUNwQixDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUU7UUFDakIsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFO1FBQ2pCLE1BQU0sRUFBRSxFQUFFLEdBQUcsQ0FBQztRQUNkLEtBQUssRUFBRSxFQUFFLEdBQUcsQ0FBQztLQUNoQixDQUFDO0lBQ0YsOENBQThDO0lBQzlDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLGVBQWUsQ0FBQyxDQUFDLEdBQUcsZUFBZSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM5RSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxlQUFlLENBQUMsQ0FBQyxHQUFHLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFFL0UsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDO0lBQ2YsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDO0lBRWYsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUUvQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUNyQixNQUFNLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLE1BQU0sRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7UUFFbEIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0MsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFM0MsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNuQixNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBRW5CLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDbkIsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUVuQixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM3QixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUU3QixFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2RCxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2RCxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM3QixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ1IsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNaLENBQUMsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1QyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRTVDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUM7QUFDcEUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgUGxhaXRCb2FyZCxcbiAgICBQb2ludCxcbiAgICBQb2ludE9mUmVjdGFuZ2xlLFxuICAgIFJlY3RhbmdsZUNsaWVudCxcbiAgICBnZXRFbGxpcHNlVGFuZ2VudFNsb3BlLFxuICAgIGdldFZlY3RvckZyb21Qb2ludEFuZFNsb3BlLFxuICAgIGlzUG9pbnRJbkVsbGlwc2Vcbn0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgUGxhaXRHZW9tZXRyeSwgU2hhcGVFbmdpbmUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE9wdGlvbnMgfSBmcm9tICdyb3VnaGpzL2Jpbi9jb3JlJztcbmltcG9ydCB7IGdldFRleHRSZWN0YW5nbGUgfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbmV4cG9ydCBjb25zdCBFbGxpcHNlRW5naW5lOiBTaGFwZUVuZ2luZSA9IHtcbiAgICBkcmF3KGJvYXJkOiBQbGFpdEJvYXJkLCByZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgb3B0aW9uczogT3B0aW9ucykge1xuICAgICAgICBjb25zdCBjZW50ZXJQb2ludCA9IFtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAvIDIsIHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodCAvIDJdO1xuICAgICAgICBjb25zdCBycyA9IFBsYWl0Qm9hcmQuZ2V0Um91Z2hTVkcoYm9hcmQpO1xuICAgICAgICByZXR1cm4gcnMuZWxsaXBzZShjZW50ZXJQb2ludFswXSwgY2VudGVyUG9pbnRbMV0sIHJlY3RhbmdsZS53aWR0aCwgcmVjdGFuZ2xlLmhlaWdodCwgeyAuLi5vcHRpb25zLCBmaWxsU3R5bGU6ICdzb2xpZCcgfSk7XG4gICAgfSxcbiAgICBpc0luc2lkZVBvaW50KHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBwb2ludDogUG9pbnQpIHtcbiAgICAgICAgY29uc3QgY2VudGVyUG9pbnQ6IFBvaW50ID0gW3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoIC8gMiwgcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0IC8gMl07XG4gICAgICAgIHJldHVybiBpc1BvaW50SW5FbGxpcHNlKHBvaW50LCBjZW50ZXJQb2ludCwgcmVjdGFuZ2xlLndpZHRoIC8gMiwgcmVjdGFuZ2xlLmhlaWdodCAvIDIpO1xuICAgIH0sXG4gICAgZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50KSB7XG4gICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuZ2V0RWRnZUNlbnRlclBvaW50cyhyZWN0YW5nbGUpO1xuICAgIH0sXG4gICAgZ2V0TmVhcmVzdFBvaW50KHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBwb2ludDogUG9pbnQpIHtcbiAgICAgICAgY29uc3QgY2VudGVyUG9pbnQ6IFBvaW50ID0gW3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoIC8gMiwgcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0IC8gMl07XG4gICAgICAgIHJldHVybiBnZXROZWFyZXN0UG9pbnRCZXR3ZWVuUG9pbnRBbmRFbGxpcHNlKHBvaW50LCBjZW50ZXJQb2ludCwgcmVjdGFuZ2xlLndpZHRoIC8gMiwgcmVjdGFuZ2xlLmhlaWdodCAvIDIpO1xuICAgIH0sXG4gICAgZ2V0VGFuZ2VudFZlY3RvckJ5Q29ubmVjdGlvblBvaW50KHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBwb2ludE9mUmVjdGFuZ2xlOiBQb2ludE9mUmVjdGFuZ2xlKSB7XG4gICAgICAgIGNvbnN0IGNvbm5lY3Rpb25Qb2ludCA9IFJlY3RhbmdsZUNsaWVudC5nZXRDb25uZWN0aW9uUG9pbnQocmVjdGFuZ2xlLCBwb2ludE9mUmVjdGFuZ2xlKTtcbiAgICAgICAgY29uc3QgY2VudGVyUG9pbnQ6IFBvaW50ID0gW3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoIC8gMiwgcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0IC8gMl07XG4gICAgICAgIGNvbnN0IHBvaW50ID0gW2Nvbm5lY3Rpb25Qb2ludFswXSAtIGNlbnRlclBvaW50WzBdLCAtKGNvbm5lY3Rpb25Qb2ludFsxXSAtIGNlbnRlclBvaW50WzFdKV07XG4gICAgICAgIGNvbnN0IGEgPSByZWN0YW5nbGUud2lkdGggLyAyO1xuICAgICAgICBjb25zdCBiID0gcmVjdGFuZ2xlLmhlaWdodCAvIDI7XG4gICAgICAgIGNvbnN0IHNsb3BlID0gZ2V0RWxsaXBzZVRhbmdlbnRTbG9wZShwb2ludFswXSwgcG9pbnRbMV0sIGEsIGIpIGFzIGFueTtcbiAgICAgICAgY29uc3QgdmVjdG9yID0gZ2V0VmVjdG9yRnJvbVBvaW50QW5kU2xvcGUocG9pbnRbMF0sIHBvaW50WzFdLCBzbG9wZSk7XG4gICAgICAgIHJldHVybiB2ZWN0b3I7XG4gICAgfSxcbiAgICBnZXRDb25uZWN0b3JQb2ludHMocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpIHtcbiAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5nZXRFZGdlQ2VudGVyUG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgfSxcbiAgICBnZXRUZXh0UmVjdGFuZ2xlKGVsZW1lbnQ6IFBsYWl0R2VvbWV0cnkpIHtcbiAgICAgICAgY29uc3QgcmVjdGFuZ2xlID0gZ2V0VGV4dFJlY3RhbmdsZShlbGVtZW50KTtcbiAgICAgICAgY29uc3Qgd2lkdGggPSByZWN0YW5nbGUud2lkdGg7XG4gICAgICAgIHJlY3RhbmdsZS53aWR0aCA9IChyZWN0YW5nbGUud2lkdGggKiAzKSAvIDQ7XG4gICAgICAgIHJlY3RhbmdsZS54ICs9IHdpZHRoIC8gODtcbiAgICAgICAgcmV0dXJuIHJlY3RhbmdsZTtcbiAgICB9XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmVhcmVzdFBvaW50QmV0d2VlblBvaW50QW5kRWxsaXBzZShwb2ludDogUG9pbnQsIGNlbnRlcjogUG9pbnQsIHJ4OiBudW1iZXIsIHJ5OiBudW1iZXIsIHJvdGF0aW9uOiBudW1iZXIgPSAwKTogUG9pbnQge1xuICAgIGNvbnN0IHJlY3RhbmdsZUNsaWVudCA9IHtcbiAgICAgICAgeDogY2VudGVyWzBdIC0gcngsXG4gICAgICAgIHk6IGNlbnRlclsxXSAtIHJ5LFxuICAgICAgICBoZWlnaHQ6IHJ5ICogMixcbiAgICAgICAgd2lkdGg6IHJ4ICogMlxuICAgIH07XG4gICAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzQ2MDA3NTQwLzIzMjEyMlxuICAgIGNvbnN0IHB4ID0gTWF0aC5hYnMocG9pbnRbMF0gLSByZWN0YW5nbGVDbGllbnQueCAtIHJlY3RhbmdsZUNsaWVudC53aWR0aCAvIDIpO1xuICAgIGNvbnN0IHB5ID0gTWF0aC5hYnMocG9pbnRbMV0gLSByZWN0YW5nbGVDbGllbnQueSAtIHJlY3RhbmdsZUNsaWVudC5oZWlnaHQgLyAyKTtcblxuICAgIGxldCB0eCA9IDAuNzA3O1xuICAgIGxldCB0eSA9IDAuNzA3O1xuXG4gICAgY29uc3QgYSA9IE1hdGguYWJzKHJlY3RhbmdsZUNsaWVudC53aWR0aCkgLyAyO1xuICAgIGNvbnN0IGIgPSBNYXRoLmFicyhyZWN0YW5nbGVDbGllbnQuaGVpZ2h0KSAvIDI7XG5cbiAgICBbMCwgMSwgMiwgM10uZm9yRWFjaCh4ID0+IHtcbiAgICAgICAgY29uc3QgeHggPSBhICogdHg7XG4gICAgICAgIGNvbnN0IHl5ID0gYiAqIHR5O1xuXG4gICAgICAgIGNvbnN0IGV4ID0gKChhICogYSAtIGIgKiBiKSAqIHR4ICoqIDMpIC8gYTtcbiAgICAgICAgY29uc3QgZXkgPSAoKGIgKiBiIC0gYSAqIGEpICogdHkgKiogMykgLyBiO1xuXG4gICAgICAgIGNvbnN0IHJ4ID0geHggLSBleDtcbiAgICAgICAgY29uc3QgcnkgPSB5eSAtIGV5O1xuXG4gICAgICAgIGNvbnN0IHF4ID0gcHggLSBleDtcbiAgICAgICAgY29uc3QgcXkgPSBweSAtIGV5O1xuXG4gICAgICAgIGNvbnN0IHIgPSBNYXRoLmh5cG90KHJ5LCByeCk7XG4gICAgICAgIGNvbnN0IHEgPSBNYXRoLmh5cG90KHF5LCBxeCk7XG5cbiAgICAgICAgdHggPSBNYXRoLm1pbigxLCBNYXRoLm1heCgwLCAoKHF4ICogcikgLyBxICsgZXgpIC8gYSkpO1xuICAgICAgICB0eSA9IE1hdGgubWluKDEsIE1hdGgubWF4KDAsICgocXkgKiByKSAvIHEgKyBleSkgLyBiKSk7XG4gICAgICAgIGNvbnN0IHQgPSBNYXRoLmh5cG90KHR5LCB0eCk7XG4gICAgICAgIHR4IC89IHQ7XG4gICAgICAgIHR5IC89IHQ7XG4gICAgfSk7XG4gICAgY29uc3Qgc2lnblggPSBwb2ludFswXSA+IGNlbnRlclswXSA/IDEgOiAtMTtcbiAgICBjb25zdCBzaWduWSA9IHBvaW50WzFdID4gY2VudGVyWzFdID8gMSA6IC0xO1xuXG4gICAgcmV0dXJuIFtjZW50ZXJbMF0gKyBhICogdHggKiBzaWduWCwgY2VudGVyWzFdICsgYiAqIHR5ICogc2lnblldO1xufVxuIl19
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxsaXBzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RyYXcvc3JjL2VuZ2luZXMvYmFzaWMtc2hhcGVzL2VsbGlwc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBZ0IsbUJBQW1CLEVBQUUsQ0FBQztBQUVoRSxNQUFNLFVBQVUscUNBQXFDLENBQUMsS0FBWSxFQUFFLE1BQWEsRUFBRSxFQUFVLEVBQUUsRUFBVSxFQUFFLFdBQW1CLENBQUM7SUFDM0gsTUFBTSxlQUFlLEdBQUc7UUFDcEIsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFO1FBQ2pCLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRTtRQUNqQixNQUFNLEVBQUUsRUFBRSxHQUFHLENBQUM7UUFDZCxLQUFLLEVBQUUsRUFBRSxHQUFHLENBQUM7S0FDaEIsQ0FBQztJQUNGLDhDQUE4QztJQUM5QyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxlQUFlLENBQUMsQ0FBQyxHQUFHLGVBQWUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDOUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsZUFBZSxDQUFDLENBQUMsR0FBRyxlQUFlLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBRS9FLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQztJQUNmLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQztJQUVmLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM5QyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFL0MsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDckIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNsQixNQUFNLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBRWxCLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRTNDLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDbkIsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUVuQixNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ25CLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFFbkIsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDN0IsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFN0IsRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkQsRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkQsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDN0IsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNSLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDWixDQUFDLENBQUMsQ0FBQztJQUNILE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUMsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUU1QyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDO0FBQ3BFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQb2ludCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IFNoYXBlRW5naW5lIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBjcmVhdGVFbGxpcHNlRW5naW5lIH0gZnJvbSAnLi9jaXJjbGUnO1xuXG5leHBvcnQgY29uc3QgRWxsaXBzZUVuZ2luZTogU2hhcGVFbmdpbmUgPSBjcmVhdGVFbGxpcHNlRW5naW5lKCk7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXROZWFyZXN0UG9pbnRCZXR3ZWVuUG9pbnRBbmRFbGxpcHNlKHBvaW50OiBQb2ludCwgY2VudGVyOiBQb2ludCwgcng6IG51bWJlciwgcnk6IG51bWJlciwgcm90YXRpb246IG51bWJlciA9IDApOiBQb2ludCB7XG4gICAgY29uc3QgcmVjdGFuZ2xlQ2xpZW50ID0ge1xuICAgICAgICB4OiBjZW50ZXJbMF0gLSByeCxcbiAgICAgICAgeTogY2VudGVyWzFdIC0gcnksXG4gICAgICAgIGhlaWdodDogcnkgKiAyLFxuICAgICAgICB3aWR0aDogcnggKiAyXG4gICAgfTtcbiAgICAvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvNDYwMDc1NDAvMjMyMTIyXG4gICAgY29uc3QgcHggPSBNYXRoLmFicyhwb2ludFswXSAtIHJlY3RhbmdsZUNsaWVudC54IC0gcmVjdGFuZ2xlQ2xpZW50LndpZHRoIC8gMik7XG4gICAgY29uc3QgcHkgPSBNYXRoLmFicyhwb2ludFsxXSAtIHJlY3RhbmdsZUNsaWVudC55IC0gcmVjdGFuZ2xlQ2xpZW50LmhlaWdodCAvIDIpO1xuXG4gICAgbGV0IHR4ID0gMC43MDc7XG4gICAgbGV0IHR5ID0gMC43MDc7XG5cbiAgICBjb25zdCBhID0gTWF0aC5hYnMocmVjdGFuZ2xlQ2xpZW50LndpZHRoKSAvIDI7XG4gICAgY29uc3QgYiA9IE1hdGguYWJzKHJlY3RhbmdsZUNsaWVudC5oZWlnaHQpIC8gMjtcblxuICAgIFswLCAxLCAyLCAzXS5mb3JFYWNoKHggPT4ge1xuICAgICAgICBjb25zdCB4eCA9IGEgKiB0eDtcbiAgICAgICAgY29uc3QgeXkgPSBiICogdHk7XG5cbiAgICAgICAgY29uc3QgZXggPSAoKGEgKiBhIC0gYiAqIGIpICogdHggKiogMykgLyBhO1xuICAgICAgICBjb25zdCBleSA9ICgoYiAqIGIgLSBhICogYSkgKiB0eSAqKiAzKSAvIGI7XG5cbiAgICAgICAgY29uc3QgcnggPSB4eCAtIGV4O1xuICAgICAgICBjb25zdCByeSA9IHl5IC0gZXk7XG5cbiAgICAgICAgY29uc3QgcXggPSBweCAtIGV4O1xuICAgICAgICBjb25zdCBxeSA9IHB5IC0gZXk7XG5cbiAgICAgICAgY29uc3QgciA9IE1hdGguaHlwb3QocnksIHJ4KTtcbiAgICAgICAgY29uc3QgcSA9IE1hdGguaHlwb3QocXksIHF4KTtcblxuICAgICAgICB0eCA9IE1hdGgubWluKDEsIE1hdGgubWF4KDAsICgocXggKiByKSAvIHEgKyBleCkgLyBhKSk7XG4gICAgICAgIHR5ID0gTWF0aC5taW4oMSwgTWF0aC5tYXgoMCwgKChxeSAqIHIpIC8gcSArIGV5KSAvIGIpKTtcbiAgICAgICAgY29uc3QgdCA9IE1hdGguaHlwb3QodHksIHR4KTtcbiAgICAgICAgdHggLz0gdDtcbiAgICAgICAgdHkgLz0gdDtcbiAgICB9KTtcbiAgICBjb25zdCBzaWduWCA9IHBvaW50WzBdID4gY2VudGVyWzBdID8gMSA6IC0xO1xuICAgIGNvbnN0IHNpZ25ZID0gcG9pbnRbMV0gPiBjZW50ZXJbMV0gPyAxIDogLTE7XG5cbiAgICByZXR1cm4gW2NlbnRlclswXSArIGEgKiB0eCAqIHNpZ25YLCBjZW50ZXJbMV0gKyBiICogdHkgKiBzaWduWV07XG59XG4iXX0=
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { RectangleClient } from '@plait/core';
|
|
2
|
+
import { createPolygonEngine } from '../basic-shapes/polygon';
|
|
3
|
+
import { ShapeDefaultSpace } from '../../constants';
|
|
4
|
+
import { getStrokeWidthByElement } from '../../utils/style/stroke';
|
|
5
|
+
export const getOffPagePoints = (rectangle) => {
|
|
6
|
+
return [
|
|
7
|
+
[rectangle.x, rectangle.y],
|
|
8
|
+
[rectangle.x + rectangle.width, rectangle.y],
|
|
9
|
+
[rectangle.x + rectangle.width, rectangle.y + rectangle.height / 2],
|
|
10
|
+
[rectangle.x + rectangle.width / 2, rectangle.y + rectangle.height],
|
|
11
|
+
[rectangle.x, rectangle.y + rectangle.height / 2]
|
|
12
|
+
];
|
|
13
|
+
};
|
|
14
|
+
export const OffPageEngine = createPolygonEngine({
|
|
15
|
+
getPolygonPoints: getOffPagePoints,
|
|
16
|
+
getConnectorPoints: (rectangle) => {
|
|
17
|
+
return RectangleClient.getEdgeCenterPoints(rectangle);
|
|
18
|
+
},
|
|
19
|
+
getTextRectangle: (element) => {
|
|
20
|
+
const elementRectangle = RectangleClient.getRectangleByPoints(element.points);
|
|
21
|
+
const strokeWidth = getStrokeWidthByElement(element);
|
|
22
|
+
const height = element.textHeight;
|
|
23
|
+
const width = elementRectangle.width - ShapeDefaultSpace.rectangleAndText * 2 - strokeWidth * 2;
|
|
24
|
+
return {
|
|
25
|
+
width: width > 0 ? width : 0,
|
|
26
|
+
height: height,
|
|
27
|
+
x: elementRectangle.x + ShapeDefaultSpace.rectangleAndText + strokeWidth,
|
|
28
|
+
y: elementRectangle.y + (elementRectangle.height - elementRectangle.height / 2 - height) / 2
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2ZmLXBhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9lbmdpbmVzL2Zsb3djaGFydC9vZmYtcGFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVMsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXJELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRW5FLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsU0FBMEIsRUFBVyxFQUFFO0lBQ3BFLE9BQU87UUFDSCxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUMxQixDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzVDLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDbkUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQztRQUNuRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztLQUNwRCxDQUFDO0FBQ04sQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFnQixtQkFBbUIsQ0FBQztJQUMxRCxnQkFBZ0IsRUFBRSxnQkFBZ0I7SUFDbEMsa0JBQWtCLEVBQUUsQ0FBQyxTQUEwQixFQUFFLEVBQUU7UUFDL0MsT0FBTyxlQUFlLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUNELGdCQUFnQixFQUFFLENBQUMsT0FBc0IsRUFBRSxFQUFFO1FBQ3pDLE1BQU0sZ0JBQWdCLEdBQUcsZUFBZSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxNQUFPLENBQUMsQ0FBQztRQUMvRSxNQUFNLFdBQVcsR0FBRyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyRCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQ2xDLE1BQU0sS0FBSyxHQUFHLGdCQUFnQixDQUFDLEtBQUssR0FBRyxpQkFBaUIsQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLEdBQUcsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUNoRyxPQUFPO1lBQ0gsS0FBSyxFQUFFLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1QixNQUFNLEVBQUUsTUFBTTtZQUNkLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLEdBQUcsaUJBQWlCLENBQUMsZ0JBQWdCLEdBQUcsV0FBVztZQUN4RSxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQztTQUMvRixDQUFDO0lBQ04sQ0FBQztDQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBvaW50LCBSZWN0YW5nbGVDbGllbnQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBQbGFpdEdlb21ldHJ5LCBTaGFwZUVuZ2luZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgY3JlYXRlUG9seWdvbkVuZ2luZSB9IGZyb20gJy4uL2Jhc2ljLXNoYXBlcy9wb2x5Z29uJztcbmltcG9ydCB7IFNoYXBlRGVmYXVsdFNwYWNlIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IGdldFN0cm9rZVdpZHRoQnlFbGVtZW50IH0gZnJvbSAnLi4vLi4vdXRpbHMvc3R5bGUvc3Ryb2tlJztcblxuZXhwb3J0IGNvbnN0IGdldE9mZlBhZ2VQb2ludHMgPSAocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpOiBQb2ludFtdID0+IHtcbiAgICByZXR1cm4gW1xuICAgICAgICBbcmVjdGFuZ2xlLngsIHJlY3RhbmdsZS55XSxcbiAgICAgICAgW3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoLCByZWN0YW5nbGUueV0sXG4gICAgICAgIFtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCwgcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0IC8gMl0sXG4gICAgICAgIFtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAvIDIsIHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodF0sXG4gICAgICAgIFtyZWN0YW5nbGUueCwgcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0IC8gMl1cbiAgICBdO1xufTtcblxuZXhwb3J0IGNvbnN0IE9mZlBhZ2VFbmdpbmU6IFNoYXBlRW5naW5lID0gY3JlYXRlUG9seWdvbkVuZ2luZSh7XG4gICAgZ2V0UG9seWdvblBvaW50czogZ2V0T2ZmUGFnZVBvaW50cyxcbiAgICBnZXRDb25uZWN0b3JQb2ludHM6IChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCkgPT4ge1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmdldEVkZ2VDZW50ZXJQb2ludHMocmVjdGFuZ2xlKTtcbiAgICB9LFxuICAgIGdldFRleHRSZWN0YW5nbGU6IChlbGVtZW50OiBQbGFpdEdlb21ldHJ5KSA9PiB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRSZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoZWxlbWVudC5wb2ludHMhKTtcbiAgICAgICAgY29uc3Qgc3Ryb2tlV2lkdGggPSBnZXRTdHJva2VXaWR0aEJ5RWxlbWVudChlbGVtZW50KTtcbiAgICAgICAgY29uc3QgaGVpZ2h0ID0gZWxlbWVudC50ZXh0SGVpZ2h0O1xuICAgICAgICBjb25zdCB3aWR0aCA9IGVsZW1lbnRSZWN0YW5nbGUud2lkdGggLSBTaGFwZURlZmF1bHRTcGFjZS5yZWN0YW5nbGVBbmRUZXh0ICogMiAtIHN0cm9rZVdpZHRoICogMjtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHdpZHRoOiB3aWR0aCA+IDAgPyB3aWR0aCA6IDAsXG4gICAgICAgICAgICBoZWlnaHQ6IGhlaWdodCxcbiAgICAgICAgICAgIHg6IGVsZW1lbnRSZWN0YW5nbGUueCArIFNoYXBlRGVmYXVsdFNwYWNlLnJlY3RhbmdsZUFuZFRleHQgKyBzdHJva2VXaWR0aCxcbiAgICAgICAgICAgIHk6IGVsZW1lbnRSZWN0YW5nbGUueSArIChlbGVtZW50UmVjdGFuZ2xlLmhlaWdodCAtIGVsZW1lbnRSZWN0YW5nbGUuaGVpZ2h0IC8gMiAtIGhlaWdodCkgLyAyXG4gICAgICAgIH07XG4gICAgfVxufSk7XG4iXX0=
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { PlaitBoard } from '@plait/core';
|
|
2
|
+
import { getTextRectangle } from '../../utils';
|
|
3
|
+
import { createEllipseEngine } from '../basic-shapes/circle';
|
|
4
|
+
export const OrEngine = createEllipseEngine({
|
|
5
|
+
draw(board, rectangle, options) {
|
|
6
|
+
const rs = PlaitBoard.getRoughSVG(board);
|
|
7
|
+
const rx = rectangle.width / 2;
|
|
8
|
+
const ry = rectangle.height / 2;
|
|
9
|
+
const startPoint = [rectangle.x + rectangle.width, rectangle.y + rectangle.height / 2];
|
|
10
|
+
return rs.path(`M${startPoint[0]} ${startPoint[1]}
|
|
11
|
+
A${rx},${ry} 0 1,1 ${startPoint[0]} ${startPoint[1] - 0.01}
|
|
12
|
+
M${rectangle.x} ${rectangle.y + rectangle.height / 2}
|
|
13
|
+
L${rectangle.x + rectangle.width} ${rectangle.y + rectangle.height / 2}
|
|
14
|
+
M${rectangle.x + rectangle.width / 2} ${rectangle.y}
|
|
15
|
+
L${rectangle.x + rectangle.width / 2} ${rectangle.y + rectangle.height}
|
|
16
|
+
`, { ...options, fillStyle: 'solid' });
|
|
17
|
+
},
|
|
18
|
+
getTextRectangle(element) {
|
|
19
|
+
const rectangle = getTextRectangle(element);
|
|
20
|
+
rectangle.width = 0;
|
|
21
|
+
rectangle.height = 0;
|
|
22
|
+
return rectangle;
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9lbmdpbmVzL2Zsb3djaGFydC9vci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFtQixNQUFNLGFBQWEsQ0FBQztBQUcxRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFN0QsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFnQixtQkFBbUIsQ0FBQztJQUNyRCxJQUFJLENBQUMsS0FBaUIsRUFBRSxTQUEwQixFQUFFLE9BQWdCO1FBQ2hFLE1BQU0sRUFBRSxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsTUFBTSxFQUFFLEdBQUcsU0FBUyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDL0IsTUFBTSxFQUFFLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDaEMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3ZGLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FDVixJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDO1dBQ25DLEVBQUUsSUFBSSxFQUFFLFVBQVUsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJO1dBQ3ZELFNBQVMsQ0FBQyxDQUFDLElBQUksU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUM7V0FDakQsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxJQUFJLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDO1dBQ25FLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksU0FBUyxDQUFDLENBQUM7V0FDaEQsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNO1NBQ3JFLEVBQ0csRUFBRSxHQUFHLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLENBQ3JDLENBQUM7SUFDTixDQUFDO0lBQ0QsZ0JBQWdCLENBQUMsT0FBc0I7UUFDbkMsTUFBTSxTQUFTLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUMsU0FBUyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDcEIsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDckIsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztDQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQsIFJlY3RhbmdsZUNsaWVudCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IFBsYWl0R2VvbWV0cnksIFNoYXBlRW5naW5lIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBPcHRpb25zIH0gZnJvbSAncm91Z2hqcy9iaW4vY29yZSc7XG5pbXBvcnQgeyBnZXRUZXh0UmVjdGFuZ2xlIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgY3JlYXRlRWxsaXBzZUVuZ2luZSB9IGZyb20gJy4uL2Jhc2ljLXNoYXBlcy9jaXJjbGUnO1xuXG5leHBvcnQgY29uc3QgT3JFbmdpbmU6IFNoYXBlRW5naW5lID0gY3JlYXRlRWxsaXBzZUVuZ2luZSh7XG4gICAgZHJhdyhib2FyZDogUGxhaXRCb2FyZCwgcmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIG9wdGlvbnM6IE9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgcnMgPSBQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKGJvYXJkKTtcbiAgICAgICAgY29uc3QgcnggPSByZWN0YW5nbGUud2lkdGggLyAyO1xuICAgICAgICBjb25zdCByeSA9IHJlY3RhbmdsZS5oZWlnaHQgLyAyO1xuICAgICAgICBjb25zdCBzdGFydFBvaW50ID0gW3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoLCByZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHQgLyAyXTtcbiAgICAgICAgcmV0dXJuIHJzLnBhdGgoXG4gICAgICAgICAgICBgTSR7c3RhcnRQb2ludFswXX0gJHtzdGFydFBvaW50WzFdfVxuICAgICAgICBBJHtyeH0sJHtyeX0gMCAxLDEgJHtzdGFydFBvaW50WzBdfSAke3N0YXJ0UG9pbnRbMV0gLSAwLjAxfVxuICAgICAgICBNJHtyZWN0YW5nbGUueH0gJHtyZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHQgLyAyfVxuICAgICAgICBMJHtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aH0gJHtyZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHQgLyAyfVxuICAgICAgICBNJHtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAvIDJ9ICR7cmVjdGFuZ2xlLnl9XG4gICAgICAgIEwke3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoIC8gMn0gJHtyZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHR9XG4gICAgICAgIGAsXG4gICAgICAgICAgICB7IC4uLm9wdGlvbnMsIGZpbGxTdHlsZTogJ3NvbGlkJyB9XG4gICAgICAgICk7XG4gICAgfSxcbiAgICBnZXRUZXh0UmVjdGFuZ2xlKGVsZW1lbnQ6IFBsYWl0R2VvbWV0cnkpIHtcbiAgICAgICAgY29uc3QgcmVjdGFuZ2xlID0gZ2V0VGV4dFJlY3RhbmdsZShlbGVtZW50KTtcbiAgICAgICAgcmVjdGFuZ2xlLndpZHRoID0gMDtcbiAgICAgICAgcmVjdGFuZ2xlLmhlaWdodCA9IDA7XG4gICAgICAgIHJldHVybiByZWN0YW5nbGU7XG4gICAgfVxufSk7XG4iXX0=
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { PlaitBoard, RectangleClient, getNearestPointBetweenPointAndSegments, setStrokeLinecap } from '@plait/core';
|
|
2
|
+
import { RectangleEngine } from '../basic-shapes/rectangle';
|
|
3
|
+
import { getPolygonEdgeByConnectionPoint } from '../../utils/polygon';
|
|
4
|
+
import { getStrokeWidthByElement } from '../../utils';
|
|
5
|
+
import { ShapeDefaultSpace } from '../../constants';
|
|
6
|
+
export const PredefinedProcessEngine = {
|
|
7
|
+
draw(board, rectangle, options) {
|
|
8
|
+
const rs = PlaitBoard.getRoughSVG(board);
|
|
9
|
+
const shape = rs.path(`M${rectangle.x} ${rectangle.y} H${rectangle.x + rectangle.width} V${rectangle.y + rectangle.height} H${rectangle.x} Z M${rectangle.x + rectangle.width * 0.06} ${rectangle.y} L${rectangle.x + rectangle.width * 0.06} ${rectangle.y +
|
|
10
|
+
rectangle.height} M${rectangle.x + rectangle.width - rectangle.width * 0.06} ${rectangle.y} L${rectangle.x +
|
|
11
|
+
rectangle.width -
|
|
12
|
+
rectangle.width * 0.06} ${rectangle.y + rectangle.height}`, { ...options, fillStyle: 'solid' });
|
|
13
|
+
setStrokeLinecap(shape, 'round');
|
|
14
|
+
return shape;
|
|
15
|
+
},
|
|
16
|
+
isInsidePoint(rectangle, point) {
|
|
17
|
+
const rangeRectangle = RectangleClient.getRectangleByPoints([point, point]);
|
|
18
|
+
return RectangleClient.isHit(rectangle, rangeRectangle);
|
|
19
|
+
},
|
|
20
|
+
getCornerPoints(rectangle) {
|
|
21
|
+
return RectangleClient.getCornerPoints(rectangle);
|
|
22
|
+
},
|
|
23
|
+
getNearestPoint(rectangle, point) {
|
|
24
|
+
return getNearestPointBetweenPointAndSegments(point, RectangleEngine.getCornerPoints(rectangle));
|
|
25
|
+
},
|
|
26
|
+
getEdgeByConnectionPoint(rectangle, pointOfRectangle) {
|
|
27
|
+
const corners = RectangleEngine.getCornerPoints(rectangle);
|
|
28
|
+
const point = RectangleClient.getConnectionPoint(rectangle, pointOfRectangle);
|
|
29
|
+
return getPolygonEdgeByConnectionPoint(corners, point);
|
|
30
|
+
},
|
|
31
|
+
getConnectorPoints(rectangle) {
|
|
32
|
+
return RectangleClient.getEdgeCenterPoints(rectangle);
|
|
33
|
+
},
|
|
34
|
+
getTextRectangle: (element) => {
|
|
35
|
+
const elementRectangle = RectangleClient.getRectangleByPoints(element.points);
|
|
36
|
+
const strokeWidth = getStrokeWidthByElement(element);
|
|
37
|
+
const height = element.textHeight;
|
|
38
|
+
const width = elementRectangle.width - ShapeDefaultSpace.rectangleAndText * 2 - strokeWidth * 2 - elementRectangle.width * 0.06 * 2;
|
|
39
|
+
return {
|
|
40
|
+
height,
|
|
41
|
+
width: width > 0 ? width : 0,
|
|
42
|
+
x: elementRectangle.x + ShapeDefaultSpace.rectangleAndText + strokeWidth + elementRectangle.width * 0.06,
|
|
43
|
+
y: elementRectangle.y + (elementRectangle.height - height) / 2
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZGVmaW5lZC1wcm9jZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvZW5naW5lcy9mbG93Y2hhcnQvcHJlZGVmaW5lZC1wcm9jZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxVQUFVLEVBR1YsZUFBZSxFQUNmLHNDQUFzQyxFQUN0QyxnQkFBZ0IsRUFDbkIsTUFBTSxhQUFhLENBQUM7QUFHckIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVwRCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBZ0I7SUFDaEQsSUFBSSxDQUFDLEtBQWlCLEVBQUUsU0FBMEIsRUFBRSxPQUFnQjtRQUNoRSxNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQ2pCLElBQUksU0FBUyxDQUFDLENBQUMsSUFBSSxTQUFTLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEtBQy9GLFNBQVMsQ0FBQyxDQUNkLE9BQU8sU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxHQUFHLElBQUksSUFBSSxTQUFTLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssR0FBRyxJQUFJLElBQUksU0FBUyxDQUFDLENBQUM7WUFDOUcsU0FBUyxDQUFDLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDLEtBQUssR0FBRyxJQUFJLElBQUksU0FBUyxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQztZQUMxRyxTQUFTLENBQUMsS0FBSztZQUNmLFNBQVMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxJQUFJLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxFQUM5RCxFQUFFLEdBQUcsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsQ0FDckMsQ0FBQztRQUNGLGdCQUFnQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUVqQyxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBQ0QsYUFBYSxDQUFDLFNBQTBCLEVBQUUsS0FBWTtRQUNsRCxNQUFNLGNBQWMsR0FBRyxlQUFlLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUM1RSxPQUFPLGVBQWUsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFDRCxlQUFlLENBQUMsU0FBMEI7UUFDdEMsT0FBTyxlQUFlLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFDRCxlQUFlLENBQUMsU0FBMEIsRUFBRSxLQUFZO1FBQ3BELE9BQU8sc0NBQXNDLENBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNyRyxDQUFDO0lBQ0Qsd0JBQXdCLENBQUMsU0FBMEIsRUFBRSxnQkFBa0M7UUFDbkYsTUFBTSxPQUFPLEdBQUcsZUFBZSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzRCxNQUFNLEtBQUssR0FBRyxlQUFlLENBQUMsa0JBQWtCLENBQUMsU0FBUyxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDOUUsT0FBTywrQkFBK0IsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUNELGtCQUFrQixDQUFDLFNBQTBCO1FBQ3pDLE9BQU8sZUFBZSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxnQkFBZ0IsRUFBRSxDQUFDLE9BQXNCLEVBQUUsRUFBRTtRQUN6QyxNQUFNLGdCQUFnQixHQUFHLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsTUFBTyxDQUFDLENBQUM7UUFDL0UsTUFBTSxXQUFXLEdBQUcsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckQsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQztRQUNsQyxNQUFNLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLEdBQUcsaUJBQWlCLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxHQUFHLFdBQVcsR0FBRyxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUM7UUFDcEksT0FBTztZQUNILE1BQU07WUFDTixLQUFLLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVCLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLEdBQUcsaUJBQWlCLENBQUMsZ0JBQWdCLEdBQUcsV0FBVyxHQUFHLGdCQUFnQixDQUFDLEtBQUssR0FBRyxJQUFJO1lBQ3hHLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQztTQUNqRSxDQUFDO0lBQ04sQ0FBQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIFBsYWl0Qm9hcmQsXG4gICAgUG9pbnQsXG4gICAgUG9pbnRPZlJlY3RhbmdsZSxcbiAgICBSZWN0YW5nbGVDbGllbnQsXG4gICAgZ2V0TmVhcmVzdFBvaW50QmV0d2VlblBvaW50QW5kU2VnbWVudHMsXG4gICAgc2V0U3Ryb2tlTGluZWNhcFxufSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBQbGFpdEdlb21ldHJ5LCBTaGFwZUVuZ2luZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgT3B0aW9ucyB9IGZyb20gJ3JvdWdoanMvYmluL2NvcmUnO1xuaW1wb3J0IHsgUmVjdGFuZ2xlRW5naW5lIH0gZnJvbSAnLi4vYmFzaWMtc2hhcGVzL3JlY3RhbmdsZSc7XG5pbXBvcnQgeyBnZXRQb2x5Z29uRWRnZUJ5Q29ubmVjdGlvblBvaW50IH0gZnJvbSAnLi4vLi4vdXRpbHMvcG9seWdvbic7XG5pbXBvcnQgeyBnZXRTdHJva2VXaWR0aEJ5RWxlbWVudCB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IFNoYXBlRGVmYXVsdFNwYWNlIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcblxuZXhwb3J0IGNvbnN0IFByZWRlZmluZWRQcm9jZXNzRW5naW5lOiBTaGFwZUVuZ2luZSA9IHtcbiAgICBkcmF3KGJvYXJkOiBQbGFpdEJvYXJkLCByZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgb3B0aW9uczogT3B0aW9ucykge1xuICAgICAgICBjb25zdCBycyA9IFBsYWl0Qm9hcmQuZ2V0Um91Z2hTVkcoYm9hcmQpO1xuICAgICAgICBjb25zdCBzaGFwZSA9IHJzLnBhdGgoXG4gICAgICAgICAgICBgTSR7cmVjdGFuZ2xlLnh9ICR7cmVjdGFuZ2xlLnl9IEgke3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRofSBWJHtyZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHR9IEgke1xuICAgICAgICAgICAgICAgIHJlY3RhbmdsZS54XG4gICAgICAgICAgICB9IFogTSR7cmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggKiAwLjA2fSAke3JlY3RhbmdsZS55fSBMJHtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAqIDAuMDZ9ICR7cmVjdGFuZ2xlLnkgK1xuICAgICAgICAgICAgICAgIHJlY3RhbmdsZS5oZWlnaHR9IE0ke3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoIC0gcmVjdGFuZ2xlLndpZHRoICogMC4wNn0gJHtyZWN0YW5nbGUueX0gTCR7cmVjdGFuZ2xlLnggK1xuICAgICAgICAgICAgICAgIHJlY3RhbmdsZS53aWR0aCAtXG4gICAgICAgICAgICAgICAgcmVjdGFuZ2xlLndpZHRoICogMC4wNn0gJHtyZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHR9YCxcbiAgICAgICAgICAgIHsgLi4ub3B0aW9ucywgZmlsbFN0eWxlOiAnc29saWQnIH1cbiAgICAgICAgKTtcbiAgICAgICAgc2V0U3Ryb2tlTGluZWNhcChzaGFwZSwgJ3JvdW5kJyk7XG5cbiAgICAgICAgcmV0dXJuIHNoYXBlO1xuICAgIH0sXG4gICAgaXNJbnNpZGVQb2ludChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcG9pbnQ6IFBvaW50KSB7XG4gICAgICAgIGNvbnN0IHJhbmdlUmVjdGFuZ2xlID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKFtwb2ludCwgcG9pbnRdKTtcbiAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5pc0hpdChyZWN0YW5nbGUsIHJhbmdlUmVjdGFuZ2xlKTtcbiAgICB9LFxuICAgIGdldENvcm5lclBvaW50cyhyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCkge1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmdldENvcm5lclBvaW50cyhyZWN0YW5nbGUpO1xuICAgIH0sXG4gICAgZ2V0TmVhcmVzdFBvaW50KHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBwb2ludDogUG9pbnQpIHtcbiAgICAgICAgcmV0dXJuIGdldE5lYXJlc3RQb2ludEJldHdlZW5Qb2ludEFuZFNlZ21lbnRzKHBvaW50LCBSZWN0YW5nbGVFbmdpbmUuZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZSkpO1xuICAgIH0sXG4gICAgZ2V0RWRnZUJ5Q29ubmVjdGlvblBvaW50KHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBwb2ludE9mUmVjdGFuZ2xlOiBQb2ludE9mUmVjdGFuZ2xlKTogW1BvaW50LCBQb2ludF0gfCBudWxsIHtcbiAgICAgICAgY29uc3QgY29ybmVycyA9IFJlY3RhbmdsZUVuZ2luZS5nZXRDb3JuZXJQb2ludHMocmVjdGFuZ2xlKTtcbiAgICAgICAgY29uc3QgcG9pbnQgPSBSZWN0YW5nbGVDbGllbnQuZ2V0Q29ubmVjdGlvblBvaW50KHJlY3RhbmdsZSwgcG9pbnRPZlJlY3RhbmdsZSk7XG4gICAgICAgIHJldHVybiBnZXRQb2x5Z29uRWRnZUJ5Q29ubmVjdGlvblBvaW50KGNvcm5lcnMsIHBvaW50KTtcbiAgICB9LFxuICAgIGdldENvbm5lY3RvclBvaW50cyhyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCkge1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmdldEVkZ2VDZW50ZXJQb2ludHMocmVjdGFuZ2xlKTtcbiAgICB9LFxuXG4gICAgZ2V0VGV4dFJlY3RhbmdsZTogKGVsZW1lbnQ6IFBsYWl0R2VvbWV0cnkpID0+IHtcbiAgICAgICAgY29uc3QgZWxlbWVudFJlY3RhbmdsZSA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhlbGVtZW50LnBvaW50cyEpO1xuICAgICAgICBjb25zdCBzdHJva2VXaWR0aCA9IGdldFN0cm9rZVdpZHRoQnlFbGVtZW50KGVsZW1lbnQpO1xuICAgICAgICBjb25zdCBoZWlnaHQgPSBlbGVtZW50LnRleHRIZWlnaHQ7XG4gICAgICAgIGNvbnN0IHdpZHRoID0gZWxlbWVudFJlY3RhbmdsZS53aWR0aCAtIFNoYXBlRGVmYXVsdFNwYWNlLnJlY3RhbmdsZUFuZFRleHQgKiAyIC0gc3Ryb2tlV2lkdGggKiAyIC0gZWxlbWVudFJlY3RhbmdsZS53aWR0aCAqIDAuMDYgKiAyO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaGVpZ2h0LFxuICAgICAgICAgICAgd2lkdGg6IHdpZHRoID4gMCA/IHdpZHRoIDogMCxcbiAgICAgICAgICAgIHg6IGVsZW1lbnRSZWN0YW5nbGUueCArIFNoYXBlRGVmYXVsdFNwYWNlLnJlY3RhbmdsZUFuZFRleHQgKyBzdHJva2VXaWR0aCArIGVsZW1lbnRSZWN0YW5nbGUud2lkdGggKiAwLjA2LFxuICAgICAgICAgICAgeTogZWxlbWVudFJlY3RhbmdsZS55ICsgKGVsZW1lbnRSZWN0YW5nbGUuaGVpZ2h0IC0gaGVpZ2h0KSAvIDJcbiAgICAgICAgfTtcbiAgICB9XG59O1xuIl19
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { PlaitBoard, getCrossingPointsBetweenEllipseAndSegment } from '@plait/core';
|
|
2
|
+
import { getTextRectangle } from '../../utils';
|
|
3
|
+
import { createEllipseEngine } from '../basic-shapes/circle';
|
|
4
|
+
export const SummingJunctionEngine = createEllipseEngine({
|
|
5
|
+
draw(board, rectangle, options) {
|
|
6
|
+
const rs = PlaitBoard.getRoughSVG(board);
|
|
7
|
+
const rx = rectangle.width / 2;
|
|
8
|
+
const ry = rectangle.height / 2;
|
|
9
|
+
const startPoint = [rectangle.x + rectangle.width, rectangle.y + rectangle.height / 2];
|
|
10
|
+
const centerPoint = [rectangle.x + rectangle.width / 2, rectangle.y + rectangle.height / 2];
|
|
11
|
+
const line1Points = getCrossingPointsBetweenEllipseAndSegment([rectangle.x, rectangle.y], [rectangle.x + rectangle.width, rectangle.y + rectangle.height], centerPoint[0], centerPoint[1], rx, ry);
|
|
12
|
+
const line2Points = getCrossingPointsBetweenEllipseAndSegment([rectangle.x + rectangle.width, rectangle.y], [rectangle.x, rectangle.y + rectangle.height], centerPoint[0], centerPoint[1], rx, ry);
|
|
13
|
+
return rs.path(`M${startPoint[0]} ${startPoint[1]}
|
|
14
|
+
A${rx},${ry} 0 1,1 ${startPoint[0]} ${startPoint[1] - 0.01}
|
|
15
|
+
M${line1Points[0][0]} ${line1Points[0][1]}
|
|
16
|
+
L${line1Points[1][0]} ${line1Points[1][1]}
|
|
17
|
+
M${line2Points[0][0]} ${line2Points[0][1]}
|
|
18
|
+
L${line2Points[1][0]} ${line2Points[1][1]}
|
|
19
|
+
`, { ...options, fillStyle: 'solid' });
|
|
20
|
+
},
|
|
21
|
+
getTextRectangle(element) {
|
|
22
|
+
const rectangle = getTextRectangle(element);
|
|
23
|
+
rectangle.width = 0;
|
|
24
|
+
rectangle.height = 0;
|
|
25
|
+
return rectangle;
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VtbWluZy1qdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RyYXcvc3JjL2VuZ2luZXMvZmxvd2NoYXJ0L3N1bW1pbmctanVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBbUIseUNBQXlDLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHckcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTdELE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFnQixtQkFBbUIsQ0FBQztJQUNsRSxJQUFJLENBQUMsS0FBaUIsRUFBRSxTQUEwQixFQUFFLE9BQWdCO1FBQ2hFLE1BQU0sRUFBRSxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsTUFBTSxFQUFFLEdBQUcsU0FBUyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDL0IsTUFBTSxFQUFFLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDaEMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3ZGLE1BQU0sV0FBVyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDNUYsTUFBTSxXQUFXLEdBQUcseUNBQXlDLENBQ3pELENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQzFCLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUMvRCxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQ2QsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUNkLEVBQUUsRUFDRixFQUFFLENBQ0wsQ0FBQztRQUNGLE1BQU0sV0FBVyxHQUFHLHlDQUF5QyxDQUN6RCxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQzVDLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFDN0MsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUNkLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFDZCxFQUFFLEVBQ0YsRUFBRSxDQUNMLENBQUM7UUFFRixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQ1YsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQztXQUNuQyxFQUFFLElBQUksRUFBRSxVQUFVLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSTtXQUN2RCxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztXQUN0QyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztXQUN0QyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztXQUN0QyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN4QyxFQUNHLEVBQUUsR0FBRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxDQUNyQyxDQUFDO0lBQ04sQ0FBQztJQUNELGdCQUFnQixDQUFDLE9BQXNCO1FBQ25DLE1BQU0sU0FBUyxHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ3JCLE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7Q0FDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdEJvYXJkLCBSZWN0YW5nbGVDbGllbnQsIGdldENyb3NzaW5nUG9pbnRzQmV0d2VlbkVsbGlwc2VBbmRTZWdtZW50IH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgUGxhaXRHZW9tZXRyeSwgU2hhcGVFbmdpbmUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE9wdGlvbnMgfSBmcm9tICdyb3VnaGpzL2Jpbi9jb3JlJztcbmltcG9ydCB7IGdldFRleHRSZWN0YW5nbGUgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBjcmVhdGVFbGxpcHNlRW5naW5lIH0gZnJvbSAnLi4vYmFzaWMtc2hhcGVzL2NpcmNsZSc7XG5cbmV4cG9ydCBjb25zdCBTdW1taW5nSnVuY3Rpb25FbmdpbmU6IFNoYXBlRW5naW5lID0gY3JlYXRlRWxsaXBzZUVuZ2luZSh7XG4gICAgZHJhdyhib2FyZDogUGxhaXRCb2FyZCwgcmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIG9wdGlvbnM6IE9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgcnMgPSBQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKGJvYXJkKTtcbiAgICAgICAgY29uc3QgcnggPSByZWN0YW5nbGUud2lkdGggLyAyO1xuICAgICAgICBjb25zdCByeSA9IHJlY3RhbmdsZS5oZWlnaHQgLyAyO1xuICAgICAgICBjb25zdCBzdGFydFBvaW50ID0gW3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoLCByZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHQgLyAyXTtcbiAgICAgICAgY29uc3QgY2VudGVyUG9pbnQgPSBbcmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggLyAyLCByZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHQgLyAyXTtcbiAgICAgICAgY29uc3QgbGluZTFQb2ludHMgPSBnZXRDcm9zc2luZ1BvaW50c0JldHdlZW5FbGxpcHNlQW5kU2VnbWVudChcbiAgICAgICAgICAgIFtyZWN0YW5nbGUueCwgcmVjdGFuZ2xlLnldLFxuICAgICAgICAgICAgW3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoLCByZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHRdLFxuICAgICAgICAgICAgY2VudGVyUG9pbnRbMF0sXG4gICAgICAgICAgICBjZW50ZXJQb2ludFsxXSxcbiAgICAgICAgICAgIHJ4LFxuICAgICAgICAgICAgcnlcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgbGluZTJQb2ludHMgPSBnZXRDcm9zc2luZ1BvaW50c0JldHdlZW5FbGxpcHNlQW5kU2VnbWVudChcbiAgICAgICAgICAgIFtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCwgcmVjdGFuZ2xlLnldLFxuICAgICAgICAgICAgW3JlY3RhbmdsZS54LCByZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHRdLFxuICAgICAgICAgICAgY2VudGVyUG9pbnRbMF0sXG4gICAgICAgICAgICBjZW50ZXJQb2ludFsxXSxcbiAgICAgICAgICAgIHJ4LFxuICAgICAgICAgICAgcnlcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gcnMucGF0aChcbiAgICAgICAgICAgIGBNJHtzdGFydFBvaW50WzBdfSAke3N0YXJ0UG9pbnRbMV19XG4gICAgICAgIEEke3J4fSwke3J5fSAwIDEsMSAke3N0YXJ0UG9pbnRbMF19ICR7c3RhcnRQb2ludFsxXSAtIDAuMDF9XG4gICAgICAgIE0ke2xpbmUxUG9pbnRzWzBdWzBdfSAke2xpbmUxUG9pbnRzWzBdWzFdfVxuICAgICAgICBMJHtsaW5lMVBvaW50c1sxXVswXX0gJHtsaW5lMVBvaW50c1sxXVsxXX1cbiAgICAgICAgTSR7bGluZTJQb2ludHNbMF1bMF19ICR7bGluZTJQb2ludHNbMF1bMV19XG4gICAgICAgIEwke2xpbmUyUG9pbnRzWzFdWzBdfSAke2xpbmUyUG9pbnRzWzFdWzFdfVxuICAgICAgICBgLFxuICAgICAgICAgICAgeyAuLi5vcHRpb25zLCBmaWxsU3R5bGU6ICdzb2xpZCcgfVxuICAgICAgICApO1xuICAgIH0sXG4gICAgZ2V0VGV4dFJlY3RhbmdsZShlbGVtZW50OiBQbGFpdEdlb21ldHJ5KSB7XG4gICAgICAgIGNvbnN0IHJlY3RhbmdsZSA9IGdldFRleHRSZWN0YW5nbGUoZWxlbWVudCk7XG4gICAgICAgIHJlY3RhbmdsZS53aWR0aCA9IDA7XG4gICAgICAgIHJlY3RhbmdsZS5oZWlnaHQgPSAwO1xuICAgICAgICByZXR1cm4gcmVjdGFuZ2xlO1xuICAgIH1cbn0pO1xuIl19
|
|
@@ -25,6 +25,11 @@ import { ManualLoopEngine } from './flowchart/manual-loop';
|
|
|
25
25
|
import { MergeEngine } from './flowchart/merge';
|
|
26
26
|
import { DelayEngine } from './flowchart/delay';
|
|
27
27
|
import { StoredDataEngine } from './flowchart/stored-data';
|
|
28
|
+
import { PredefinedProcessEngine } from './flowchart/predefined-process';
|
|
29
|
+
import { OffPageEngine } from './flowchart/off-page';
|
|
30
|
+
import { CloudEngine } from './basic-shapes/cloud';
|
|
31
|
+
import { OrEngine } from './flowchart/or';
|
|
32
|
+
import { SummingJunctionEngine } from './flowchart/summing-junction';
|
|
28
33
|
export const ShapeEngineMap = {
|
|
29
34
|
[BasicShapes.rectangle]: RectangleEngine,
|
|
30
35
|
[BasicShapes.diamond]: DiamondEngine,
|
|
@@ -46,6 +51,7 @@ export const ShapeEngineMap = {
|
|
|
46
51
|
[BasicShapes.twoWayArrow]: TwoWayArrowEngine,
|
|
47
52
|
[BasicShapes.comment]: CommentEngine,
|
|
48
53
|
[BasicShapes.roundComment]: RoundCommentEngine,
|
|
54
|
+
[BasicShapes.cloud]: CloudEngine,
|
|
49
55
|
[FlowchartSymbols.process]: RectangleEngine,
|
|
50
56
|
[FlowchartSymbols.decision]: DiamondEngine,
|
|
51
57
|
[FlowchartSymbols.connector]: EllipseEngine,
|
|
@@ -56,9 +62,13 @@ export const ShapeEngineMap = {
|
|
|
56
62
|
[FlowchartSymbols.manualLoop]: ManualLoopEngine,
|
|
57
63
|
[FlowchartSymbols.merge]: MergeEngine,
|
|
58
64
|
[FlowchartSymbols.delay]: DelayEngine,
|
|
59
|
-
[FlowchartSymbols.storedData]: StoredDataEngine
|
|
65
|
+
[FlowchartSymbols.storedData]: StoredDataEngine,
|
|
66
|
+
[FlowchartSymbols.or]: OrEngine,
|
|
67
|
+
[FlowchartSymbols.summingJunction]: SummingJunctionEngine,
|
|
68
|
+
[FlowchartSymbols.predefinedProcess]: PredefinedProcessEngine,
|
|
69
|
+
[FlowchartSymbols.offPage]: OffPageEngine
|
|
60
70
|
};
|
|
61
71
|
export const getEngine = (shape) => {
|
|
62
72
|
return ShapeEngineMap[shape];
|
|
63
73
|
};
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9lbmdpbmVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQStCLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUs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RUFBRSxpQkFBaUI7SUFDakQsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsRUFBRSxpQkFBaUI7SUFDakQsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsRUFBRSxnQkFBZ0I7SUFDL0MsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsRUFBRSxXQUFXO0lBQ3JDLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEVBQUUsV0FBVztJQUNyQyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxFQUFFLGdCQUFnQjtJQUMvQyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxFQUFFLFFBQVE7SUFDL0IsQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsRUFBRSxxQkFBcUI7SUFDekQsQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLHVCQUF1QjtJQUM3RCxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxFQUFFLGFBQWE7Q0FDNUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFDLEtBQXFCLEVBQUUsRUFBRTtJQUMvQyxPQUFPLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNqQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNpY1NoYXBlcywgRmxvd2NoYXJ0U3ltYm9scywgR2VvbWV0cnlTaGFwZXMsIFNoYXBlRW5naW5lIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDb21tZW50RW5naW5lIH0gZnJvbSAnLi9iYXNpYy1zaGFwZXMvY29tbWVudCc7XG5pbXBvcnQgeyBDcm9zc0VuZ2luZSB9IGZyb20gJy4vYmFzaWMtc2hhcGVzL2Nyb3NzJztcbmltcG9ydCB7IERpYW1vbmRFbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy9kaWFtb25kJztcbmltcG9ydCB7IEVsbGlwc2VFbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy9lbGxpcHNlJztcbmltcG9ydCB7IEhleGFnb25FbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy9oZXhhZ29uJztcbmltcG9ydCB7IExlZnRBcnJvd0VuZ2luZSB9IGZyb20gJy4vYmFzaWMtc2hhcGVzL2xlZnQtYXJyb3cnO1xuaW1wb3J0IHsgT2N0YWdvbkVuZ2luZSB9IGZyb20gJy4vYmFzaWMtc2hhcGVzL29jdGFnb24nO1xuaW1wb3J0IHsgUGFyYWxsZWxvZ3JhbUVuZ2luZSB9IGZyb20gJy4vYmFzaWMtc2hhcGVzL3BhcmFsbGVsb2dyYW0nO1xuaW1wb3J0IHsgUGVudGFnb25FbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy9wZW50YWdvbic7XG5pbXBvcnQgeyBQZW50YWdvbkFycm93RW5naW5lIH0gZnJvbSAnLi9iYXNpYy1zaGFwZXMvcGVudGFnb24tYXJyb3cnO1xuaW1wb3J0IHsgUHJvY2Vzc0Fycm93RW5naW5lIH0gZnJvbSAnLi9iYXNpYy1zaGFwZXMvcHJvY2Vzcy1hcnJvdyc7XG5pbXBvcnQgeyBSZWN0YW5nbGVFbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy9yZWN0YW5nbGUnO1xuaW1wb3J0IHsgUmlnaHRBcnJvd0VuZ2luZSB9IGZyb20gJy4vYmFzaWMtc2hhcGVzL3JpZ2h0LWFycm93JztcbmltcG9ydCB7IFJvdW5kQ29tbWVudEVuZ2luZSB9IGZyb20gJy4vYmFzaWMtc2hhcGVzL3JvdW5kLWNvbW1lbnQnO1xuaW1wb3J0IHsgUm91bmRSZWN0YW5nbGVFbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy9yb3VuZC1yZWN0YW5nbGUnO1xuaW1wb3J0IHsgVHJhcGV6b2lkRW5naW5lIH0gZnJvbSAnLi9iYXNpYy1zaGFwZXMvdHJhcGV6b2lkJztcbmltcG9ydCB7IFRyaWFuZ2xlRW5naW5lIH0gZnJvbSAnLi9iYXNpYy1zaGFwZXMvdHJpYW5nbGUnO1xuaW1wb3J0IHsgVHdvV2F5QXJyb3dFbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy90d28td2F5LWFycm93JztcbmltcG9ydCB7IFN0YXJFbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy9zdGFyJztcbmltcG9ydCB7IFRlcm1pbmFsRW5naW5lIH0gZnJvbSAnLi9mbG93Y2hhcnQvdGVybWluYWwnO1xuaW1wb3J0IHsgTWFudWFsSW5wdXRFbmdpbmUgfSBmcm9tICcuL2Zsb3djaGFydC9tYW51YWwtaW5wdXQnO1xuaW1wb3J0IHsgUHJlcGFyYXRpb25FbmdpbmUgfSBmcm9tICcuL2Zsb3djaGFydC9wcmVwYXJhdGlvbic7XG5pbXBvcnQgeyBNYW51YWxMb29wRW5naW5lIH0gZnJvbSAnLi9mbG93Y2hhcnQvbWFudWFsLWxvb3AnO1xuaW1wb3J0IHsgTWVyZ2VFbmdpbmUgfSBmcm9tICcuL2Zsb3djaGFydC9tZXJnZSc7XG5pbXBvcnQgeyBEZWxheUVuZ2luZSB9IGZyb20gJy4vZmxvd2NoYXJ0L2RlbGF5JztcbmltcG9ydCB7IFN0b3JlZERhdGFFbmdpbmUgfSBmcm9tICcuL2Zsb3djaGFydC9zdG9yZWQtZGF0YSc7XG5pbXBvcnQgeyBQcmVkZWZpbmVkUHJvY2Vzc0VuZ2luZSB9IGZyb20gJy4vZmxvd2NoYXJ0L3ByZWRlZmluZWQtcHJvY2Vzcyc7XG5pbXBvcnQgeyBPZmZQYWdlRW5naW5lIH0gZnJvbSAnLi9mbG93Y2hhcnQvb2ZmLXBhZ2UnO1xuaW1wb3J0IHsgQ2xvdWRFbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy9jbG91ZCc7XG5pbXBvcnQgeyBPckVuZ2luZSB9IGZyb20gJy4vZmxvd2NoYXJ0L29yJztcbmltcG9ydCB7IFN1bW1pbmdKdW5jdGlvbkVuZ2luZSB9IGZyb20gJy4vZmxvd2NoYXJ0L3N1bW1pbmctanVuY3Rpb24nO1xuXG5leHBvcnQgY29uc3QgU2hhcGVFbmdpbmVNYXA6IFJlY29yZDxHZW9tZXRyeVNoYXBlcywgU2hhcGVFbmdpbmU+ID0ge1xuICAgIFtCYXNpY1NoYXBlcy5yZWN0YW5nbGVdOiBSZWN0YW5nbGVFbmdpbmUsXG4gICAgW0Jhc2ljU2hhcGVzLmRpYW1vbmRdOiBEaWFtb25kRW5naW5lLFxuICAgIFtCYXNpY1NoYXBlcy5lbGxpcHNlXTogRWxsaXBzZUVuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMucGFyYWxsZWxvZ3JhbV06IFBhcmFsbGVsb2dyYW1FbmdpbmUsXG4gICAgW0Jhc2ljU2hhcGVzLnJvdW5kUmVjdGFuZ2xlXTogUm91bmRSZWN0YW5nbGVFbmdpbmUsXG4gICAgW0Jhc2ljU2hhcGVzLnRleHRdOiBSZWN0YW5nbGVFbmdpbmUsXG4gICAgW0Jhc2ljU2hhcGVzLnRyaWFuZ2xlXTogVHJpYW5nbGVFbmdpbmUsXG4gICAgW0Jhc2ljU2hhcGVzLmxlZnRBcnJvd106IExlZnRBcnJvd0VuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMudHJhcGV6b2lkXTogVHJhcGV6b2lkRW5naW5lLFxuICAgIFtCYXNpY1NoYXBlcy5yaWdodEFycm93XTogUmlnaHRBcnJvd0VuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMuY3Jvc3NdOiBDcm9zc0VuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMuc3Rhcl06IFN0YXJFbmdpbmUsXG4gICAgW0Jhc2ljU2hhcGVzLnBlbnRhZ29uXTogUGVudGFnb25FbmdpbmUsXG4gICAgW0Jhc2ljU2hhcGVzLmhleGFnb25dOiBIZXhhZ29uRW5naW5lLFxuICAgIFtCYXNpY1NoYXBlcy5vY3RhZ29uXTogT2N0YWdvbkVuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMucGVudGFnb25BcnJvd106IFBlbnRhZ29uQXJyb3dFbmdpbmUsXG4gICAgW0Jhc2ljU2hhcGVzLnByb2Nlc3NBcnJvd106IFByb2Nlc3NBcnJvd0VuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMudHdvV2F5QXJyb3ddOiBUd29XYXlBcnJvd0VuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMuY29tbWVudF06IENvbW1lbnRFbmdpbmUsXG4gICAgW0Jhc2ljU2hhcGVzLnJvdW5kQ29tbWVudF06IFJvdW5kQ29tbWVudEVuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMuY2xvdWRdOiBDbG91ZEVuZ2luZSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5wcm9jZXNzXTogUmVjdGFuZ2xlRW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLmRlY2lzaW9uXTogRGlhbW9uZEVuZ2luZSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5jb25uZWN0b3JdOiBFbGxpcHNlRW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLmRhdGFdOiBQYXJhbGxlbG9ncmFtRW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLnRlcm1pbmFsXTogVGVybWluYWxFbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMubWFudWFsSW5wdXRdOiBNYW51YWxJbnB1dEVuZ2luZSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5wcmVwYXJhdGlvbl06IFByZXBhcmF0aW9uRW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLm1hbnVhbExvb3BdOiBNYW51YWxMb29wRW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLm1lcmdlXTogTWVyZ2VFbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMuZGVsYXldOiBEZWxheUVuZ2luZSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5zdG9yZWREYXRhXTogU3RvcmVkRGF0YUVuZ2luZSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5vcl06IE9yRW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLnN1bW1pbmdKdW5jdGlvbl06IFN1bW1pbmdKdW5jdGlvbkVuZ2luZSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5wcmVkZWZpbmVkUHJvY2Vzc106IFByZWRlZmluZWRQcm9jZXNzRW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLm9mZlBhZ2VdOiBPZmZQYWdlRW5naW5lXG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RW5naW5lID0gKHNoYXBlOiBHZW9tZXRyeVNoYXBlcykgPT4ge1xuICAgIHJldHVybiBTaGFwZUVuZ2luZU1hcFtzaGFwZV07XG59O1xuIl19
|