@plait/draw 0.77.3 → 0.78.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/fesm2022/plait-draw.mjs +2 -2
- package/fesm2022/plait-draw.mjs.map +1 -1
- package/package.json +1 -3
- package/esm2022/arrow-line.component.mjs +0 -165
- package/esm2022/constants/default.mjs +0 -7
- package/esm2022/constants/geometry.mjs +0 -272
- package/esm2022/constants/image.mjs +0 -2
- package/esm2022/constants/index.mjs +0 -9
- package/esm2022/constants/line.mjs +0 -12
- package/esm2022/constants/pointer.mjs +0 -23
- package/esm2022/constants/swimlane.mjs +0 -25
- package/esm2022/constants/text.mjs +0 -2
- package/esm2022/constants/theme.mjs +0 -28
- package/esm2022/engines/basic-shapes/cloud.mjs +0 -146
- package/esm2022/engines/basic-shapes/comment.mjs +0 -56
- package/esm2022/engines/basic-shapes/cross.mjs +0 -33
- package/esm2022/engines/basic-shapes/diamond.mjs +0 -16
- package/esm2022/engines/basic-shapes/ellipse.mjs +0 -53
- package/esm2022/engines/basic-shapes/hexagon.mjs +0 -27
- package/esm2022/engines/basic-shapes/left-arrow.mjs +0 -30
- package/esm2022/engines/basic-shapes/octagon.mjs +0 -29
- package/esm2022/engines/basic-shapes/parallelogram.mjs +0 -26
- package/esm2022/engines/basic-shapes/pentagon-arrow.mjs +0 -27
- package/esm2022/engines/basic-shapes/pentagon.mjs +0 -30
- package/esm2022/engines/basic-shapes/polygon.mjs +0 -56
- package/esm2022/engines/basic-shapes/process-arrow.mjs +0 -26
- package/esm2022/engines/basic-shapes/rectangle.mjs +0 -26
- package/esm2022/engines/basic-shapes/right-arrow.mjs +0 -28
- package/esm2022/engines/basic-shapes/round-comment.mjs +0 -82
- package/esm2022/engines/basic-shapes/round-rectangle.mjs +0 -58
- package/esm2022/engines/basic-shapes/star.mjs +0 -39
- package/esm2022/engines/basic-shapes/trapezoid.mjs +0 -26
- package/esm2022/engines/basic-shapes/triangle.mjs +0 -34
- package/esm2022/engines/basic-shapes/two-way-arrow.mjs +0 -25
- package/esm2022/engines/flowchart/database.mjs +0 -84
- package/esm2022/engines/flowchart/delay.mjs +0 -44
- package/esm2022/engines/flowchart/display.mjs +0 -74
- package/esm2022/engines/flowchart/document.mjs +0 -81
- package/esm2022/engines/flowchart/hard-disk.mjs +0 -84
- package/esm2022/engines/flowchart/internal-storage.mjs +0 -47
- package/esm2022/engines/flowchart/manual-input.mjs +0 -33
- package/esm2022/engines/flowchart/manual-loop.mjs +0 -26
- package/esm2022/engines/flowchart/merge.mjs +0 -34
- package/esm2022/engines/flowchart/multi-document.mjs +0 -143
- package/esm2022/engines/flowchart/note-curly-left.mjs +0 -86
- package/esm2022/engines/flowchart/note-curly-right.mjs +0 -89
- package/esm2022/engines/flowchart/note-square.mjs +0 -46
- package/esm2022/engines/flowchart/off-page.mjs +0 -32
- package/esm2022/engines/flowchart/or.mjs +0 -20
- package/esm2022/engines/flowchart/predefined-process.mjs +0 -47
- package/esm2022/engines/flowchart/preparation.mjs +0 -27
- package/esm2022/engines/flowchart/stored-data.mjs +0 -79
- package/esm2022/engines/flowchart/summing-junction.mjs +0 -23
- package/esm2022/engines/flowchart/terminal.mjs +0 -68
- package/esm2022/engines/index.mjs +0 -130
- package/esm2022/engines/table/table.mjs +0 -101
- package/esm2022/engines/uml/activity-class.mjs +0 -47
- package/esm2022/engines/uml/actor.mjs +0 -119
- package/esm2022/engines/uml/assembly.mjs +0 -105
- package/esm2022/engines/uml/combined-fragment.mjs +0 -66
- package/esm2022/engines/uml/component-box.mjs +0 -61
- package/esm2022/engines/uml/component.mjs +0 -117
- package/esm2022/engines/uml/container.mjs +0 -44
- package/esm2022/engines/uml/deletion.mjs +0 -54
- package/esm2022/engines/uml/note.mjs +0 -58
- package/esm2022/engines/uml/package.mjs +0 -105
- package/esm2022/engines/uml/provided-interface.mjs +0 -92
- package/esm2022/engines/uml/required-interface.mjs +0 -81
- package/esm2022/engines/uml/template.mjs +0 -47
- package/esm2022/generators/arrow-line-auto-complete.generator.mjs +0 -46
- package/esm2022/generators/arrow-line.generator.mjs +0 -13
- package/esm2022/generators/geometry-shape.generator.mjs +0 -29
- package/esm2022/generators/index.mjs +0 -7
- package/esm2022/generators/line-active.generator.mjs +0 -84
- package/esm2022/generators/single-text.generator.mjs +0 -16
- package/esm2022/generators/table.generator.mjs +0 -25
- package/esm2022/generators/text.generator.mjs +0 -131
- package/esm2022/generators/vector-line-generator.mjs +0 -13
- package/esm2022/geometry.component.mjs +0 -145
- package/esm2022/image.component.mjs +0 -67
- package/esm2022/interfaces/arrow-line.mjs +0 -70
- package/esm2022/interfaces/element.mjs +0 -9
- package/esm2022/interfaces/engine.mjs +0 -2
- package/esm2022/interfaces/geometry.mjs +0 -82
- package/esm2022/interfaces/image.mjs +0 -2
- package/esm2022/interfaces/index.mjs +0 -92
- package/esm2022/interfaces/line.mjs +0 -2
- package/esm2022/interfaces/options.mjs +0 -2
- package/esm2022/interfaces/swimlane.mjs +0 -13
- package/esm2022/interfaces/table.mjs +0 -13
- package/esm2022/interfaces/text.mjs +0 -2
- package/esm2022/interfaces/vector-line.mjs +0 -10
- package/esm2022/plait-draw.mjs +0 -5
- package/esm2022/plugins/with-arrow-line-auto-complete-reaction.mjs +0 -43
- package/esm2022/plugins/with-arrow-line-auto-complete.mjs +0 -76
- package/esm2022/plugins/with-arrow-line-bound-reaction.mjs +0 -53
- package/esm2022/plugins/with-arrow-line-create.mjs +0 -51
- package/esm2022/plugins/with-arrow-line-resize.mjs +0 -158
- package/esm2022/plugins/with-arrow-line-text-move.mjs +0 -53
- package/esm2022/plugins/with-arrow-line-text.mjs +0 -73
- package/esm2022/plugins/with-draw-fragment.mjs +0 -98
- package/esm2022/plugins/with-draw-hotkey.mjs +0 -45
- package/esm2022/plugins/with-draw-resize.mjs +0 -269
- package/esm2022/plugins/with-draw-rotate.mjs +0 -132
- package/esm2022/plugins/with-draw.mjs +0 -144
- package/esm2022/plugins/with-geometry-create.mjs +0 -182
- package/esm2022/plugins/with-swimlane-create.mjs +0 -127
- package/esm2022/plugins/with-swimlane.mjs +0 -21
- package/esm2022/plugins/with-table-resize.mjs +0 -135
- package/esm2022/plugins/with-table.mjs +0 -109
- package/esm2022/plugins/with-vector-line-create.mjs +0 -85
- package/esm2022/plugins/with-vector-line-resize.mjs +0 -61
- package/esm2022/public-api.mjs +0 -11
- package/esm2022/table.component.mjs +0 -162
- package/esm2022/transforms/arrow-line.mjs +0 -66
- package/esm2022/transforms/common.mjs +0 -36
- package/esm2022/transforms/geometry-text.mjs +0 -59
- package/esm2022/transforms/geometry.mjs +0 -43
- package/esm2022/transforms/image.mjs +0 -33
- package/esm2022/transforms/index.mjs +0 -36
- package/esm2022/transforms/multi-text-geometry-text.mjs +0 -15
- package/esm2022/transforms/swimlane.mjs +0 -164
- package/esm2022/transforms/table-text.mjs +0 -44
- package/esm2022/transforms/table.mjs +0 -36
- package/esm2022/transforms/vector-line.mjs +0 -13
- package/esm2022/utils/arrow-line/arrow-line-arrow.mjs +0 -123
- package/esm2022/utils/arrow-line/arrow-line-basic.mjs +0 -205
- package/esm2022/utils/arrow-line/arrow-line-common.mjs +0 -162
- package/esm2022/utils/arrow-line/arrow-line-resize.mjs +0 -309
- package/esm2022/utils/arrow-line/elbow.mjs +0 -114
- package/esm2022/utils/arrow-line/index.mjs +0 -6
- package/esm2022/utils/clipboard.mjs +0 -55
- package/esm2022/utils/common.mjs +0 -184
- package/esm2022/utils/geometry.mjs +0 -178
- package/esm2022/utils/hit.mjs +0 -238
- package/esm2022/utils/index.mjs +0 -17
- package/esm2022/utils/line.mjs +0 -64
- package/esm2022/utils/memorize.mjs +0 -93
- package/esm2022/utils/multi-text-geometry.mjs +0 -61
- package/esm2022/utils/polygon.mjs +0 -30
- package/esm2022/utils/position/arrow-line.mjs +0 -20
- package/esm2022/utils/position/geometry.mjs +0 -30
- package/esm2022/utils/position/line.mjs +0 -51
- package/esm2022/utils/selected.mjs +0 -39
- package/esm2022/utils/shape.mjs +0 -11
- package/esm2022/utils/snap-resizing.mjs +0 -185
- package/esm2022/utils/style/index.mjs +0 -2
- package/esm2022/utils/style/stroke.mjs +0 -21
- package/esm2022/utils/swimlane.mjs +0 -124
- package/esm2022/utils/table-selected.mjs +0 -21
- package/esm2022/utils/table.mjs +0 -172
- package/esm2022/utils/uml.mjs +0 -90
- package/esm2022/utils/vector-line.mjs +0 -71
- package/esm2022/vector-line.component.mjs +0 -55
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import { PlaitBoard, RectangleClient, distanceBetweenPointAndPoint, getEllipseTangentSlope, getNearestPointBetweenPointAndEllipse, getNearestPointBetweenPointAndSegments, getVectorFromPointAndSlope, setStrokeLinecap } from '@plait/core';
|
|
2
|
-
import { getUnitVectorByPointAndPoint } from '@plait/common';
|
|
3
|
-
const percentage = 0.54;
|
|
4
|
-
function generateProvidedInterfacePath(rectangle) {
|
|
5
|
-
const centerY = rectangle.y + rectangle.height / 2;
|
|
6
|
-
const rx = (rectangle.width * (1 - percentage)) / 2;
|
|
7
|
-
const ry = rectangle.height / 2;
|
|
8
|
-
const startPoint = [rectangle.x, centerY];
|
|
9
|
-
const lineEndX = rectangle.x + rectangle.width * percentage;
|
|
10
|
-
return {
|
|
11
|
-
startPoint,
|
|
12
|
-
line: {
|
|
13
|
-
startX: startPoint[0],
|
|
14
|
-
startY: centerY,
|
|
15
|
-
endX: lineEndX,
|
|
16
|
-
endY: centerY
|
|
17
|
-
},
|
|
18
|
-
arcCommands: [
|
|
19
|
-
{
|
|
20
|
-
rx,
|
|
21
|
-
ry,
|
|
22
|
-
xAxisRotation: 0,
|
|
23
|
-
largeArcFlag: 1,
|
|
24
|
-
sweepFlag: 1,
|
|
25
|
-
endX: rectangle.x + rectangle.width,
|
|
26
|
-
endY: centerY
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
rx,
|
|
30
|
-
ry,
|
|
31
|
-
xAxisRotation: 0,
|
|
32
|
-
largeArcFlag: 1,
|
|
33
|
-
sweepFlag: 1,
|
|
34
|
-
endX: lineEndX,
|
|
35
|
-
endY: centerY
|
|
36
|
-
}
|
|
37
|
-
]
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
export const ProvidedInterfaceEngine = {
|
|
41
|
-
draw(board, rectangle, options) {
|
|
42
|
-
const rs = PlaitBoard.getRoughSVG(board);
|
|
43
|
-
const { startPoint, line, arcCommands } = generateProvidedInterfacePath(rectangle);
|
|
44
|
-
const pathData = [
|
|
45
|
-
`M${startPoint[0]} ${startPoint[1]}`,
|
|
46
|
-
`H${line.endX}`,
|
|
47
|
-
...arcCommands.map((command) => `A${command.rx} ${command.ry} ${command.xAxisRotation} ${command.largeArcFlag} ${command.sweepFlag} ${command.endX} ${command.endY}`)
|
|
48
|
-
].join(' ');
|
|
49
|
-
const shape = rs.path(pathData, {
|
|
50
|
-
...options,
|
|
51
|
-
fillStyle: 'solid'
|
|
52
|
-
});
|
|
53
|
-
setStrokeLinecap(shape, 'round');
|
|
54
|
-
return shape;
|
|
55
|
-
},
|
|
56
|
-
isInsidePoint(rectangle, point) {
|
|
57
|
-
const rangeRectangle = RectangleClient.getRectangleByPoints([point, point]);
|
|
58
|
-
return RectangleClient.isHit(rectangle, rangeRectangle);
|
|
59
|
-
},
|
|
60
|
-
getCornerPoints(rectangle) {
|
|
61
|
-
return RectangleClient.getCornerPoints(rectangle);
|
|
62
|
-
},
|
|
63
|
-
getConnectorPoints(rectangle) {
|
|
64
|
-
return RectangleClient.getEdgeCenterPoints(rectangle);
|
|
65
|
-
},
|
|
66
|
-
getNearestPoint(rectangle, point) {
|
|
67
|
-
const { startPoint, line, arcCommands } = generateProvidedInterfacePath(rectangle);
|
|
68
|
-
// 检查直线段
|
|
69
|
-
const lineStart = [line.startX, line.startY];
|
|
70
|
-
const lineEnd = [line.endX, line.endY];
|
|
71
|
-
const nearestPointForLine = getNearestPointBetweenPointAndSegments(point, [lineStart, lineEnd]);
|
|
72
|
-
const distanceForLine = distanceBetweenPointAndPoint(...point, ...nearestPointForLine);
|
|
73
|
-
// 检查圆弧段
|
|
74
|
-
const arcCenter = [rectangle.x + (3 * rectangle.width) / 4, line.startY];
|
|
75
|
-
const nearestPointForEllipse = getNearestPointBetweenPointAndEllipse(point, arcCenter, arcCommands[0].rx, arcCommands[0].ry);
|
|
76
|
-
const distanceForEllipse = distanceBetweenPointAndPoint(...point, ...nearestPointForEllipse);
|
|
77
|
-
return distanceForLine < distanceForEllipse ? nearestPointForLine : nearestPointForEllipse;
|
|
78
|
-
},
|
|
79
|
-
getTangentVectorByConnectionPoint(rectangle, pointOfRectangle) {
|
|
80
|
-
const connectionPoint = RectangleClient.getConnectionPoint(rectangle, pointOfRectangle);
|
|
81
|
-
const centerPoint = [rectangle.x + (rectangle.width * 3) / 4, rectangle.y + rectangle.height / 2];
|
|
82
|
-
if (connectionPoint[0] > rectangle.x + rectangle.width * 0.54) {
|
|
83
|
-
const point = [connectionPoint[0] - centerPoint[0], -(connectionPoint[1] - centerPoint[1])];
|
|
84
|
-
const rx = (rectangle.width * 0.46) / 2;
|
|
85
|
-
const ry = rectangle.height / 2;
|
|
86
|
-
const slope = getEllipseTangentSlope(point[0], point[1], rx, ry);
|
|
87
|
-
return getVectorFromPointAndSlope(point[0], point[1], slope);
|
|
88
|
-
}
|
|
89
|
-
return getUnitVectorByPointAndPoint(connectionPoint, [rectangle.x, rectangle.y + rectangle.height / 2]);
|
|
90
|
-
}
|
|
91
|
-
};
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZWQtaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvZW5naW5lcy91bWwvcHJvdmlkZWQtaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxVQUFVLEVBR1YsZUFBZSxFQUVmLDRCQUE0QixFQUM1QixzQkFBc0IsRUFDdEIscUNBQXFDLEVBQ3JDLHNDQUFzQyxFQUN0QywwQkFBMEIsRUFDMUIsZ0JBQWdCLEVBQ25CLE1BQU0sYUFBYSxDQUFDO0FBR3JCLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUM7QUFheEIsU0FBUyw2QkFBNkIsQ0FBQyxTQUEwQjtJQUM3RCxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ25ELE1BQU0sRUFBRSxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNwRCxNQUFNLEVBQUUsR0FBRyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUVoQyxNQUFNLFVBQVUsR0FBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDakQsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQztJQUU1RCxPQUFPO1FBQ0gsVUFBVTtRQUNWLElBQUksRUFBRTtZQUNGLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQ3JCLE1BQU0sRUFBRSxPQUFPO1lBQ2YsSUFBSSxFQUFFLFFBQVE7WUFDZCxJQUFJLEVBQUUsT0FBTztTQUNoQjtRQUNELFdBQVcsRUFBRTtZQUNUO2dCQUNJLEVBQUU7Z0JBQ0YsRUFBRTtnQkFDRixhQUFhLEVBQUUsQ0FBQztnQkFDaEIsWUFBWSxFQUFFLENBQUM7Z0JBQ2YsU0FBUyxFQUFFLENBQUM7Z0JBQ1osSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUs7Z0JBQ25DLElBQUksRUFBRSxPQUFPO2FBQ2hCO1lBQ0Q7Z0JBQ0ksRUFBRTtnQkFDRixFQUFFO2dCQUNGLGFBQWEsRUFBRSxDQUFDO2dCQUNoQixZQUFZLEVBQUUsQ0FBQztnQkFDZixTQUFTLEVBQUUsQ0FBQztnQkFDWixJQUFJLEVBQUUsUUFBUTtnQkFDZCxJQUFJLEVBQUUsT0FBTzthQUNoQjtTQUNKO0tBQ0osQ0FBQztBQUNOLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBZ0I7SUFDaEQsSUFBSSxDQUFDLEtBQWlCLEVBQUUsU0FBMEIsRUFBRSxPQUFnQjtRQUNoRSxNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxHQUFHLDZCQUE2QixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRW5GLE1BQU0sUUFBUSxHQUFHO1lBQ2IsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3BDLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNmLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FDZCxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQ1IsSUFBSSxPQUFPLENBQUMsRUFBRSxJQUFJLE9BQU8sQ0FBQyxFQUFFLElBQUksT0FBTyxDQUFDLGFBQWEsSUFBSSxPQUFPLENBQUMsWUFBWSxJQUFJLE9BQU8sQ0FBQyxTQUFTLElBQUksT0FBTyxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQzNJO1NBQ0osQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFWixNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUM1QixHQUFHLE9BQU87WUFDVixTQUFTLEVBQUUsT0FBTztTQUNyQixDQUFDLENBQUM7UUFDSCxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDakMsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUNELGFBQWEsQ0FBQyxTQUEwQixFQUFFLEtBQVk7UUFDbEQsTUFBTSxjQUFjLEdBQUcsZUFBZSxDQUFDLG9CQUFvQixDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDNUUsT0FBTyxlQUFlLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBQ0QsZUFBZSxDQUFDLFNBQTBCO1FBQ3RDLE9BQU8sZUFBZSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBQ0Qsa0JBQWtCLENBQUMsU0FBMEI7UUFDekMsT0FBTyxlQUFlLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUNELGVBQWUsQ0FBQyxTQUEwQixFQUFFLEtBQVk7UUFDcEQsTUFBTSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEdBQUcsNkJBQTZCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFbkYsUUFBUTtRQUNSLE1BQU0sU0FBUyxHQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEQsTUFBTSxPQUFPLEdBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QyxNQUFNLG1CQUFtQixHQUFHLHNDQUFzQyxDQUFDLEtBQUssRUFBRSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ2hHLE1BQU0sZUFBZSxHQUFHLDRCQUE0QixDQUFDLEdBQUcsS0FBSyxFQUFFLEdBQUcsbUJBQW1CLENBQUMsQ0FBQztRQUV2RixRQUFRO1FBQ1IsTUFBTSxTQUFTLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBVSxDQUFDO1FBQ2xGLE1BQU0sc0JBQXNCLEdBQUcscUNBQXFDLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM3SCxNQUFNLGtCQUFrQixHQUFHLDRCQUE0QixDQUFDLEdBQUcsS0FBSyxFQUFFLEdBQUcsc0JBQXNCLENBQUMsQ0FBQztRQUU3RixPQUFPLGVBQWUsR0FBRyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDO0lBQy9GLENBQUM7SUFDRCxpQ0FBaUMsQ0FBQyxTQUEwQixFQUFFLGdCQUFrQztRQUM1RixNQUFNLGVBQWUsR0FBRyxlQUFlLENBQUMsa0JBQWtCLENBQUMsU0FBUyxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDeEYsTUFBTSxXQUFXLEdBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3pHLElBQUksZUFBZSxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssR0FBRyxJQUFJLEVBQUUsQ0FBQztZQUM1RCxNQUFNLEtBQUssR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVGLE1BQU0sRUFBRSxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDeEMsTUFBTSxFQUFFLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDaEMsTUFBTSxLQUFLLEdBQUcsc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFRLENBQUM7WUFDeEUsT0FBTywwQkFBMEIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2pFLENBQUM7UUFDRCxPQUFPLDRCQUE0QixDQUFDLGVBQWUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUcsQ0FBQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIFBsYWl0Qm9hcmQsXG4gICAgUG9pbnQsXG4gICAgUG9pbnRPZlJlY3RhbmdsZSxcbiAgICBSZWN0YW5nbGVDbGllbnQsXG4gICAgU1ZHQXJjQ29tbWFuZCxcbiAgICBkaXN0YW5jZUJldHdlZW5Qb2ludEFuZFBvaW50LFxuICAgIGdldEVsbGlwc2VUYW5nZW50U2xvcGUsXG4gICAgZ2V0TmVhcmVzdFBvaW50QmV0d2VlblBvaW50QW5kRWxsaXBzZSxcbiAgICBnZXROZWFyZXN0UG9pbnRCZXR3ZWVuUG9pbnRBbmRTZWdtZW50cyxcbiAgICBnZXRWZWN0b3JGcm9tUG9pbnRBbmRTbG9wZSxcbiAgICBzZXRTdHJva2VMaW5lY2FwXG59IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IFNoYXBlRW5naW5lIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBPcHRpb25zIH0gZnJvbSAncm91Z2hqcy9iaW4vY29yZSc7XG5pbXBvcnQgeyBnZXRVbml0VmVjdG9yQnlQb2ludEFuZFBvaW50IH0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5cbmNvbnN0IHBlcmNlbnRhZ2UgPSAwLjU0O1xuXG5pbnRlcmZhY2UgUHJvdmlkZWRJbnRlcmZhY2VQYXRoRGF0YSB7XG4gICAgc3RhcnRQb2ludDogUG9pbnQ7XG4gICAgbGluZToge1xuICAgICAgICBzdGFydFg6IG51bWJlcjtcbiAgICAgICAgc3RhcnRZOiBudW1iZXI7XG4gICAgICAgIGVuZFg6IG51bWJlcjtcbiAgICAgICAgZW5kWTogbnVtYmVyO1xuICAgIH07XG4gICAgYXJjQ29tbWFuZHM6IFNWR0FyY0NvbW1hbmRbXTtcbn1cblxuZnVuY3Rpb24gZ2VuZXJhdGVQcm92aWRlZEludGVyZmFjZVBhdGgocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpOiBQcm92aWRlZEludGVyZmFjZVBhdGhEYXRhIHtcbiAgICBjb25zdCBjZW50ZXJZID0gcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0IC8gMjtcbiAgICBjb25zdCByeCA9IChyZWN0YW5nbGUud2lkdGggKiAoMSAtIHBlcmNlbnRhZ2UpKSAvIDI7XG4gICAgY29uc3QgcnkgPSByZWN0YW5nbGUuaGVpZ2h0IC8gMjtcblxuICAgIGNvbnN0IHN0YXJ0UG9pbnQ6IFBvaW50ID0gW3JlY3RhbmdsZS54LCBjZW50ZXJZXTtcbiAgICBjb25zdCBsaW5lRW5kWCA9IHJlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoICogcGVyY2VudGFnZTtcblxuICAgIHJldHVybiB7XG4gICAgICAgIHN0YXJ0UG9pbnQsXG4gICAgICAgIGxpbmU6IHtcbiAgICAgICAgICAgIHN0YXJ0WDogc3RhcnRQb2ludFswXSxcbiAgICAgICAgICAgIHN0YXJ0WTogY2VudGVyWSxcbiAgICAgICAgICAgIGVuZFg6IGxpbmVFbmRYLFxuICAgICAgICAgICAgZW5kWTogY2VudGVyWVxuICAgICAgICB9LFxuICAgICAgICBhcmNDb21tYW5kczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHJ4LFxuICAgICAgICAgICAgICAgIHJ5LFxuICAgICAgICAgICAgICAgIHhBeGlzUm90YXRpb246IDAsXG4gICAgICAgICAgICAgICAgbGFyZ2VBcmNGbGFnOiAxLFxuICAgICAgICAgICAgICAgIHN3ZWVwRmxhZzogMSxcbiAgICAgICAgICAgICAgICBlbmRYOiByZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCxcbiAgICAgICAgICAgICAgICBlbmRZOiBjZW50ZXJZXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHJ4LFxuICAgICAgICAgICAgICAgIHJ5LFxuICAgICAgICAgICAgICAgIHhBeGlzUm90YXRpb246IDAsXG4gICAgICAgICAgICAgICAgbGFyZ2VBcmNGbGFnOiAxLFxuICAgICAgICAgICAgICAgIHN3ZWVwRmxhZzogMSxcbiAgICAgICAgICAgICAgICBlbmRYOiBsaW5lRW5kWCxcbiAgICAgICAgICAgICAgICBlbmRZOiBjZW50ZXJZXG4gICAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICB9O1xufVxuXG5leHBvcnQgY29uc3QgUHJvdmlkZWRJbnRlcmZhY2VFbmdpbmU6IFNoYXBlRW5naW5lID0ge1xuICAgIGRyYXcoYm9hcmQ6IFBsYWl0Qm9hcmQsIHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBvcHRpb25zOiBPcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IHJzID0gUGxhaXRCb2FyZC5nZXRSb3VnaFNWRyhib2FyZCk7XG4gICAgICAgIGNvbnN0IHsgc3RhcnRQb2ludCwgbGluZSwgYXJjQ29tbWFuZHMgfSA9IGdlbmVyYXRlUHJvdmlkZWRJbnRlcmZhY2VQYXRoKHJlY3RhbmdsZSk7XG5cbiAgICAgICAgY29uc3QgcGF0aERhdGEgPSBbXG4gICAgICAgICAgICBgTSR7c3RhcnRQb2ludFswXX0gJHtzdGFydFBvaW50WzFdfWAsXG4gICAgICAgICAgICBgSCR7bGluZS5lbmRYfWAsXG4gICAgICAgICAgICAuLi5hcmNDb21tYW5kcy5tYXAoXG4gICAgICAgICAgICAgICAgKGNvbW1hbmQpID0+XG4gICAgICAgICAgICAgICAgICAgIGBBJHtjb21tYW5kLnJ4fSAke2NvbW1hbmQucnl9ICR7Y29tbWFuZC54QXhpc1JvdGF0aW9ufSAke2NvbW1hbmQubGFyZ2VBcmNGbGFnfSAke2NvbW1hbmQuc3dlZXBGbGFnfSAke2NvbW1hbmQuZW5kWH0gJHtjb21tYW5kLmVuZFl9YFxuICAgICAgICAgICAgKVxuICAgICAgICBdLmpvaW4oJyAnKTtcblxuICAgICAgICBjb25zdCBzaGFwZSA9IHJzLnBhdGgocGF0aERhdGEsIHtcbiAgICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICAgICBmaWxsU3R5bGU6ICdzb2xpZCdcbiAgICAgICAgfSk7XG4gICAgICAgIHNldFN0cm9rZUxpbmVjYXAoc2hhcGUsICdyb3VuZCcpO1xuICAgICAgICByZXR1cm4gc2hhcGU7XG4gICAgfSxcbiAgICBpc0luc2lkZVBvaW50KHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBwb2ludDogUG9pbnQpIHtcbiAgICAgICAgY29uc3QgcmFuZ2VSZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoW3BvaW50LCBwb2ludF0pO1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmlzSGl0KHJlY3RhbmdsZSwgcmFuZ2VSZWN0YW5nbGUpO1xuICAgIH0sXG4gICAgZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50KSB7XG4gICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgfSxcbiAgICBnZXRDb25uZWN0b3JQb2ludHMocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpIHtcbiAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5nZXRFZGdlQ2VudGVyUG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgfSxcbiAgICBnZXROZWFyZXN0UG9pbnQocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIHBvaW50OiBQb2ludCkge1xuICAgICAgICBjb25zdCB7IHN0YXJ0UG9pbnQsIGxpbmUsIGFyY0NvbW1hbmRzIH0gPSBnZW5lcmF0ZVByb3ZpZGVkSW50ZXJmYWNlUGF0aChyZWN0YW5nbGUpO1xuXG4gICAgICAgIC8vIOajgOafpeebtOe6v+autVxuICAgICAgICBjb25zdCBsaW5lU3RhcnQ6IFBvaW50ID0gW2xpbmUuc3RhcnRYLCBsaW5lLnN0YXJ0WV07XG4gICAgICAgIGNvbnN0IGxpbmVFbmQ6IFBvaW50ID0gW2xpbmUuZW5kWCwgbGluZS5lbmRZXTtcbiAgICAgICAgY29uc3QgbmVhcmVzdFBvaW50Rm9yTGluZSA9IGdldE5lYXJlc3RQb2ludEJldHdlZW5Qb2ludEFuZFNlZ21lbnRzKHBvaW50LCBbbGluZVN0YXJ0LCBsaW5lRW5kXSk7XG4gICAgICAgIGNvbnN0IGRpc3RhbmNlRm9yTGluZSA9IGRpc3RhbmNlQmV0d2VlblBvaW50QW5kUG9pbnQoLi4ucG9pbnQsIC4uLm5lYXJlc3RQb2ludEZvckxpbmUpO1xuXG4gICAgICAgIC8vIOajgOafpeWchuW8p+autVxuICAgICAgICBjb25zdCBhcmNDZW50ZXIgPSBbcmVjdGFuZ2xlLnggKyAoMyAqIHJlY3RhbmdsZS53aWR0aCkgLyA0LCBsaW5lLnN0YXJ0WV0gYXMgUG9pbnQ7XG4gICAgICAgIGNvbnN0IG5lYXJlc3RQb2ludEZvckVsbGlwc2UgPSBnZXROZWFyZXN0UG9pbnRCZXR3ZWVuUG9pbnRBbmRFbGxpcHNlKHBvaW50LCBhcmNDZW50ZXIsIGFyY0NvbW1hbmRzWzBdLnJ4LCBhcmNDb21tYW5kc1swXS5yeSk7XG4gICAgICAgIGNvbnN0IGRpc3RhbmNlRm9yRWxsaXBzZSA9IGRpc3RhbmNlQmV0d2VlblBvaW50QW5kUG9pbnQoLi4ucG9pbnQsIC4uLm5lYXJlc3RQb2ludEZvckVsbGlwc2UpO1xuXG4gICAgICAgIHJldHVybiBkaXN0YW5jZUZvckxpbmUgPCBkaXN0YW5jZUZvckVsbGlwc2UgPyBuZWFyZXN0UG9pbnRGb3JMaW5lIDogbmVhcmVzdFBvaW50Rm9yRWxsaXBzZTtcbiAgICB9LFxuICAgIGdldFRhbmdlbnRWZWN0b3JCeUNvbm5lY3Rpb25Qb2ludChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcG9pbnRPZlJlY3RhbmdsZTogUG9pbnRPZlJlY3RhbmdsZSkge1xuICAgICAgICBjb25zdCBjb25uZWN0aW9uUG9pbnQgPSBSZWN0YW5nbGVDbGllbnQuZ2V0Q29ubmVjdGlvblBvaW50KHJlY3RhbmdsZSwgcG9pbnRPZlJlY3RhbmdsZSk7XG4gICAgICAgIGNvbnN0IGNlbnRlclBvaW50OiBQb2ludCA9IFtyZWN0YW5nbGUueCArIChyZWN0YW5nbGUud2lkdGggKiAzKSAvIDQsIHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodCAvIDJdO1xuICAgICAgICBpZiAoY29ubmVjdGlvblBvaW50WzBdID4gcmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggKiAwLjU0KSB7XG4gICAgICAgICAgICBjb25zdCBwb2ludCA9IFtjb25uZWN0aW9uUG9pbnRbMF0gLSBjZW50ZXJQb2ludFswXSwgLShjb25uZWN0aW9uUG9pbnRbMV0gLSBjZW50ZXJQb2ludFsxXSldO1xuICAgICAgICAgICAgY29uc3QgcnggPSAocmVjdGFuZ2xlLndpZHRoICogMC40NikgLyAyO1xuICAgICAgICAgICAgY29uc3QgcnkgPSByZWN0YW5nbGUuaGVpZ2h0IC8gMjtcbiAgICAgICAgICAgIGNvbnN0IHNsb3BlID0gZ2V0RWxsaXBzZVRhbmdlbnRTbG9wZShwb2ludFswXSwgcG9pbnRbMV0sIHJ4LCByeSkgYXMgYW55O1xuICAgICAgICAgICAgcmV0dXJuIGdldFZlY3RvckZyb21Qb2ludEFuZFNsb3BlKHBvaW50WzBdLCBwb2ludFsxXSwgc2xvcGUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBnZXRVbml0VmVjdG9yQnlQb2ludEFuZFBvaW50KGNvbm5lY3Rpb25Qb2ludCwgW3JlY3RhbmdsZS54LCByZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHQgLyAyXSk7XG4gICAgfVxufTtcbiJdfQ==
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import { PlaitBoard, RectangleClient, getNearestPointBetweenPointAndArc, distanceBetweenPointAndPoint, setStrokeLinecap, getNearestPointBetweenPointAndSegment } from '@plait/core';
|
|
2
|
-
import { RectangleEngine } from '../basic-shapes/rectangle';
|
|
3
|
-
import { getPolygonEdgeByConnectionPoint } from '../../utils/polygon';
|
|
4
|
-
function generateRequiredInterfacePath(rectangle) {
|
|
5
|
-
const arcWidth = rectangle.width * 0.39;
|
|
6
|
-
const arcHeight = rectangle.height / 2;
|
|
7
|
-
return {
|
|
8
|
-
startPoint: [rectangle.x, rectangle.y],
|
|
9
|
-
leftArcCommand: {
|
|
10
|
-
rx: arcWidth,
|
|
11
|
-
ry: arcHeight,
|
|
12
|
-
xAxisRotation: 0,
|
|
13
|
-
largeArcFlag: 0,
|
|
14
|
-
sweepFlag: 1,
|
|
15
|
-
endX: rectangle.x,
|
|
16
|
-
endY: rectangle.y + rectangle.height
|
|
17
|
-
},
|
|
18
|
-
line: {
|
|
19
|
-
startX: rectangle.x + rectangle.width * 0.41,
|
|
20
|
-
startY: rectangle.y + rectangle.height / 2,
|
|
21
|
-
endX: rectangle.x + rectangle.width,
|
|
22
|
-
endY: rectangle.y + rectangle.height / 2
|
|
23
|
-
}
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
export const RequiredInterfaceEngine = {
|
|
27
|
-
draw(board, rectangle, options) {
|
|
28
|
-
const rs = PlaitBoard.getRoughSVG(board);
|
|
29
|
-
const { startPoint, leftArcCommand, line } = generateRequiredInterfacePath(rectangle);
|
|
30
|
-
const pathData = [
|
|
31
|
-
`M${startPoint[0]} ${startPoint[1]}`,
|
|
32
|
-
`A${leftArcCommand.rx} ${leftArcCommand.ry} ${leftArcCommand.xAxisRotation} ${leftArcCommand.largeArcFlag} ${leftArcCommand.sweepFlag} ${leftArcCommand.endX} ${leftArcCommand.endY}`,
|
|
33
|
-
`M${line.startX} ${line.startY} H${line.endX}`
|
|
34
|
-
].join(' ');
|
|
35
|
-
const shape = rs.path(pathData, {
|
|
36
|
-
...options,
|
|
37
|
-
fillStyle: 'solid',
|
|
38
|
-
fill: 'transparent'
|
|
39
|
-
});
|
|
40
|
-
setStrokeLinecap(shape, 'round');
|
|
41
|
-
return shape;
|
|
42
|
-
},
|
|
43
|
-
isInsidePoint(rectangle, point) {
|
|
44
|
-
const rangeRectangle = RectangleClient.getRectangleByPoints([point, point]);
|
|
45
|
-
return RectangleClient.isHit(rectangle, rangeRectangle);
|
|
46
|
-
},
|
|
47
|
-
getCornerPoints(rectangle) {
|
|
48
|
-
return RectangleClient.getCornerPoints(rectangle);
|
|
49
|
-
},
|
|
50
|
-
getNearestPoint(rectangle, point) {
|
|
51
|
-
const { startPoint, leftArcCommand, line } = generateRequiredInterfacePath(rectangle);
|
|
52
|
-
let minDistance = Infinity;
|
|
53
|
-
let nearestPoint = point;
|
|
54
|
-
// 检查圆弧段
|
|
55
|
-
const arcNearestPoint = getNearestPointBetweenPointAndArc(point, startPoint, leftArcCommand);
|
|
56
|
-
const arcDistance = distanceBetweenPointAndPoint(point[0], point[1], arcNearestPoint[0], arcNearestPoint[1]);
|
|
57
|
-
if (arcDistance < minDistance) {
|
|
58
|
-
minDistance = arcDistance;
|
|
59
|
-
nearestPoint = arcNearestPoint;
|
|
60
|
-
}
|
|
61
|
-
// 检查直线段
|
|
62
|
-
const lineStart = [line.startX, line.startY];
|
|
63
|
-
const lineEnd = [line.endX, line.endY];
|
|
64
|
-
const lineNearestPoint = getNearestPointBetweenPointAndSegment(point, [lineStart, lineEnd]);
|
|
65
|
-
const lineDistance = distanceBetweenPointAndPoint(point[0], point[1], lineNearestPoint[0], lineNearestPoint[1]);
|
|
66
|
-
if (lineDistance < minDistance) {
|
|
67
|
-
minDistance = lineDistance;
|
|
68
|
-
nearestPoint = lineNearestPoint;
|
|
69
|
-
}
|
|
70
|
-
return nearestPoint;
|
|
71
|
-
},
|
|
72
|
-
getEdgeByConnectionPoint(rectangle, pointOfRectangle) {
|
|
73
|
-
const corners = RectangleEngine.getCornerPoints(rectangle);
|
|
74
|
-
const point = RectangleClient.getConnectionPoint(rectangle, pointOfRectangle);
|
|
75
|
-
return getPolygonEdgeByConnectionPoint(corners, point);
|
|
76
|
-
},
|
|
77
|
-
getConnectorPoints(rectangle) {
|
|
78
|
-
return RectangleClient.getEdgeCenterPoints(rectangle);
|
|
79
|
-
}
|
|
80
|
-
};
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWlyZWQtaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvZW5naW5lcy91bWwvcmVxdWlyZWQtaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxVQUFVLEVBR1YsZUFBZSxFQUVmLGlDQUFpQyxFQUNqQyw0QkFBNEIsRUFDNUIsZ0JBQWdCLEVBQ2hCLHFDQUFxQyxFQUV4QyxNQUFNLGFBQWEsQ0FBQztBQUdyQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFhdEUsU0FBUyw2QkFBNkIsQ0FBQyxTQUEwQjtJQUM3RCxNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztJQUN4QyxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUV2QyxPQUFPO1FBQ0gsVUFBVSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLGNBQWMsRUFBRTtZQUNaLEVBQUUsRUFBRSxRQUFRO1lBQ1osRUFBRSxFQUFFLFNBQVM7WUFDYixhQUFhLEVBQUUsQ0FBQztZQUNoQixZQUFZLEVBQUUsQ0FBQztZQUNmLFNBQVMsRUFBRSxDQUFDO1lBQ1osSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ2pCLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNO1NBQ3ZDO1FBQ0QsSUFBSSxFQUFFO1lBQ0YsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssR0FBRyxJQUFJO1lBQzVDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUMxQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSztZQUNuQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUM7U0FDM0M7S0FDSixDQUFDO0FBQ04sQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFnQjtJQUNoRCxJQUFJLENBQUMsS0FBaUIsRUFBRSxTQUEwQixFQUFFLE9BQWdCO1FBQ2hFLE1BQU0sRUFBRSxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLEdBQUcsNkJBQTZCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFdEYsTUFBTSxRQUFRLEdBQUc7WUFDYixJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDcEMsSUFBSSxjQUFjLENBQUMsRUFBRSxJQUFJLGNBQWMsQ0FBQyxFQUFFLElBQUksY0FBYyxDQUFDLGFBQWEsSUFBSSxjQUFjLENBQUMsWUFBWSxJQUFJLGNBQWMsQ0FBQyxTQUFTLElBQUksY0FBYyxDQUFDLElBQUksSUFBSSxjQUFjLENBQUMsSUFBSSxFQUFFO1lBQ3JMLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxJQUFJLEVBQUU7U0FDakQsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFWixNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUM1QixHQUFHLE9BQU87WUFDVixTQUFTLEVBQUUsT0FBTztZQUNsQixJQUFJLEVBQUUsYUFBYTtTQUN0QixDQUFDLENBQUM7UUFDSCxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDakMsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUNELGFBQWEsQ0FBQyxTQUEwQixFQUFFLEtBQVk7UUFDbEQsTUFBTSxjQUFjLEdBQUcsZUFBZSxDQUFDLG9CQUFvQixDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDNUUsT0FBTyxlQUFlLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBQ0QsZUFBZSxDQUFDLFNBQTBCO1FBQ3RDLE9BQU8sZUFBZSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBQ0QsZUFBZSxDQUFDLFNBQTBCLEVBQUUsS0FBWTtRQUNwRCxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsR0FBRyw2QkFBNkIsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN0RixJQUFJLFdBQVcsR0FBRyxRQUFRLENBQUM7UUFDM0IsSUFBSSxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBRXpCLFFBQVE7UUFDUixNQUFNLGVBQWUsR0FBRyxpQ0FBaUMsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQzdGLE1BQU0sV0FBVyxHQUFHLDRCQUE0QixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdHLElBQUksV0FBVyxHQUFHLFdBQVcsRUFBRSxDQUFDO1lBQzVCLFdBQVcsR0FBRyxXQUFXLENBQUM7WUFDMUIsWUFBWSxHQUFHLGVBQWUsQ0FBQztRQUNuQyxDQUFDO1FBRUQsUUFBUTtRQUNSLE1BQU0sU0FBUyxHQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEQsTUFBTSxPQUFPLEdBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QyxNQUFNLGdCQUFnQixHQUFHLHFDQUFxQyxDQUFDLEtBQUssRUFBRSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQzVGLE1BQU0sWUFBWSxHQUFHLDRCQUE0QixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoSCxJQUFJLFlBQVksR0FBRyxXQUFXLEVBQUUsQ0FBQztZQUM3QixXQUFXLEdBQUcsWUFBWSxDQUFDO1lBQzNCLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQztRQUNwQyxDQUFDO1FBRUQsT0FBTyxZQUFZLENBQUM7SUFDeEIsQ0FBQztJQUNELHdCQUF3QixDQUFDLFNBQTBCLEVBQUUsZ0JBQWtDO1FBQ25GLE1BQU0sT0FBTyxHQUFHLGVBQWUsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDM0QsTUFBTSxLQUFLLEdBQUcsZUFBZSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzlFLE9BQU8sK0JBQStCLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFDRCxrQkFBa0IsQ0FBQyxTQUEwQjtRQUN6QyxPQUFPLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMxRCxDQUFDO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgUGxhaXRCb2FyZCxcbiAgICBQb2ludCxcbiAgICBQb2ludE9mUmVjdGFuZ2xlLFxuICAgIFJlY3RhbmdsZUNsaWVudCxcbiAgICBnZXROZWFyZXN0UG9pbnRCZXR3ZWVuUG9pbnRBbmRTZWdtZW50cyxcbiAgICBnZXROZWFyZXN0UG9pbnRCZXR3ZWVuUG9pbnRBbmRBcmMsXG4gICAgZGlzdGFuY2VCZXR3ZWVuUG9pbnRBbmRQb2ludCxcbiAgICBzZXRTdHJva2VMaW5lY2FwLFxuICAgIGdldE5lYXJlc3RQb2ludEJldHdlZW5Qb2ludEFuZFNlZ21lbnQsXG4gICAgU1ZHQXJjQ29tbWFuZFxufSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBTaGFwZUVuZ2luZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgT3B0aW9ucyB9IGZyb20gJ3JvdWdoanMvYmluL2NvcmUnO1xuaW1wb3J0IHsgUmVjdGFuZ2xlRW5naW5lIH0gZnJvbSAnLi4vYmFzaWMtc2hhcGVzL3JlY3RhbmdsZSc7XG5pbXBvcnQgeyBnZXRQb2x5Z29uRWRnZUJ5Q29ubmVjdGlvblBvaW50IH0gZnJvbSAnLi4vLi4vdXRpbHMvcG9seWdvbic7XG5cbmludGVyZmFjZSBSZXF1aXJlZEludGVyZmFjZVBhdGhEYXRhIHtcbiAgICBzdGFydFBvaW50OiBQb2ludDtcbiAgICBsZWZ0QXJjQ29tbWFuZDogU1ZHQXJjQ29tbWFuZDtcbiAgICBsaW5lOiB7XG4gICAgICAgIHN0YXJ0WDogbnVtYmVyO1xuICAgICAgICBzdGFydFk6IG51bWJlcjtcbiAgICAgICAgZW5kWDogbnVtYmVyO1xuICAgICAgICBlbmRZOiBudW1iZXI7XG4gICAgfTtcbn1cblxuZnVuY3Rpb24gZ2VuZXJhdGVSZXF1aXJlZEludGVyZmFjZVBhdGgocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpOiBSZXF1aXJlZEludGVyZmFjZVBhdGhEYXRhIHtcbiAgICBjb25zdCBhcmNXaWR0aCA9IHJlY3RhbmdsZS53aWR0aCAqIDAuMzk7XG4gICAgY29uc3QgYXJjSGVpZ2h0ID0gcmVjdGFuZ2xlLmhlaWdodCAvIDI7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBzdGFydFBvaW50OiBbcmVjdGFuZ2xlLngsIHJlY3RhbmdsZS55XSxcbiAgICAgICAgbGVmdEFyY0NvbW1hbmQ6IHtcbiAgICAgICAgICAgIHJ4OiBhcmNXaWR0aCxcbiAgICAgICAgICAgIHJ5OiBhcmNIZWlnaHQsXG4gICAgICAgICAgICB4QXhpc1JvdGF0aW9uOiAwLFxuICAgICAgICAgICAgbGFyZ2VBcmNGbGFnOiAwLFxuICAgICAgICAgICAgc3dlZXBGbGFnOiAxLFxuICAgICAgICAgICAgZW5kWDogcmVjdGFuZ2xlLngsXG4gICAgICAgICAgICBlbmRZOiByZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHRcbiAgICAgICAgfSxcbiAgICAgICAgbGluZToge1xuICAgICAgICAgICAgc3RhcnRYOiByZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAqIDAuNDEsXG4gICAgICAgICAgICBzdGFydFk6IHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodCAvIDIsXG4gICAgICAgICAgICBlbmRYOiByZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCxcbiAgICAgICAgICAgIGVuZFk6IHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodCAvIDJcbiAgICAgICAgfVxuICAgIH07XG59XG5cbmV4cG9ydCBjb25zdCBSZXF1aXJlZEludGVyZmFjZUVuZ2luZTogU2hhcGVFbmdpbmUgPSB7XG4gICAgZHJhdyhib2FyZDogUGxhaXRCb2FyZCwgcmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIG9wdGlvbnM6IE9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgcnMgPSBQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKGJvYXJkKTtcbiAgICAgICAgY29uc3QgeyBzdGFydFBvaW50LCBsZWZ0QXJjQ29tbWFuZCwgbGluZSB9ID0gZ2VuZXJhdGVSZXF1aXJlZEludGVyZmFjZVBhdGgocmVjdGFuZ2xlKTtcblxuICAgICAgICBjb25zdCBwYXRoRGF0YSA9IFtcbiAgICAgICAgICAgIGBNJHtzdGFydFBvaW50WzBdfSAke3N0YXJ0UG9pbnRbMV19YCxcbiAgICAgICAgICAgIGBBJHtsZWZ0QXJjQ29tbWFuZC5yeH0gJHtsZWZ0QXJjQ29tbWFuZC5yeX0gJHtsZWZ0QXJjQ29tbWFuZC54QXhpc1JvdGF0aW9ufSAke2xlZnRBcmNDb21tYW5kLmxhcmdlQXJjRmxhZ30gJHtsZWZ0QXJjQ29tbWFuZC5zd2VlcEZsYWd9ICR7bGVmdEFyY0NvbW1hbmQuZW5kWH0gJHtsZWZ0QXJjQ29tbWFuZC5lbmRZfWAsXG4gICAgICAgICAgICBgTSR7bGluZS5zdGFydFh9ICR7bGluZS5zdGFydFl9IEgke2xpbmUuZW5kWH1gXG4gICAgICAgIF0uam9pbignICcpO1xuXG4gICAgICAgIGNvbnN0IHNoYXBlID0gcnMucGF0aChwYXRoRGF0YSwge1xuICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICAgIGZpbGxTdHlsZTogJ3NvbGlkJyxcbiAgICAgICAgICAgIGZpbGw6ICd0cmFuc3BhcmVudCdcbiAgICAgICAgfSk7XG4gICAgICAgIHNldFN0cm9rZUxpbmVjYXAoc2hhcGUsICdyb3VuZCcpO1xuICAgICAgICByZXR1cm4gc2hhcGU7XG4gICAgfSxcbiAgICBpc0luc2lkZVBvaW50KHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBwb2ludDogUG9pbnQpIHtcbiAgICAgICAgY29uc3QgcmFuZ2VSZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoW3BvaW50LCBwb2ludF0pO1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmlzSGl0KHJlY3RhbmdsZSwgcmFuZ2VSZWN0YW5nbGUpO1xuICAgIH0sXG4gICAgZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50KSB7XG4gICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgfSxcbiAgICBnZXROZWFyZXN0UG9pbnQocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIHBvaW50OiBQb2ludCkge1xuICAgICAgICBjb25zdCB7IHN0YXJ0UG9pbnQsIGxlZnRBcmNDb21tYW5kLCBsaW5lIH0gPSBnZW5lcmF0ZVJlcXVpcmVkSW50ZXJmYWNlUGF0aChyZWN0YW5nbGUpO1xuICAgICAgICBsZXQgbWluRGlzdGFuY2UgPSBJbmZpbml0eTtcbiAgICAgICAgbGV0IG5lYXJlc3RQb2ludCA9IHBvaW50O1xuXG4gICAgICAgIC8vIOajgOafpeWchuW8p+autVxuICAgICAgICBjb25zdCBhcmNOZWFyZXN0UG9pbnQgPSBnZXROZWFyZXN0UG9pbnRCZXR3ZWVuUG9pbnRBbmRBcmMocG9pbnQsIHN0YXJ0UG9pbnQsIGxlZnRBcmNDb21tYW5kKTtcbiAgICAgICAgY29uc3QgYXJjRGlzdGFuY2UgPSBkaXN0YW5jZUJldHdlZW5Qb2ludEFuZFBvaW50KHBvaW50WzBdLCBwb2ludFsxXSwgYXJjTmVhcmVzdFBvaW50WzBdLCBhcmNOZWFyZXN0UG9pbnRbMV0pO1xuICAgICAgICBpZiAoYXJjRGlzdGFuY2UgPCBtaW5EaXN0YW5jZSkge1xuICAgICAgICAgICAgbWluRGlzdGFuY2UgPSBhcmNEaXN0YW5jZTtcbiAgICAgICAgICAgIG5lYXJlc3RQb2ludCA9IGFyY05lYXJlc3RQb2ludDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIOajgOafpeebtOe6v+autVxuICAgICAgICBjb25zdCBsaW5lU3RhcnQ6IFBvaW50ID0gW2xpbmUuc3RhcnRYLCBsaW5lLnN0YXJ0WV07XG4gICAgICAgIGNvbnN0IGxpbmVFbmQ6IFBvaW50ID0gW2xpbmUuZW5kWCwgbGluZS5lbmRZXTtcbiAgICAgICAgY29uc3QgbGluZU5lYXJlc3RQb2ludCA9IGdldE5lYXJlc3RQb2ludEJldHdlZW5Qb2ludEFuZFNlZ21lbnQocG9pbnQsIFtsaW5lU3RhcnQsIGxpbmVFbmRdKTtcbiAgICAgICAgY29uc3QgbGluZURpc3RhbmNlID0gZGlzdGFuY2VCZXR3ZWVuUG9pbnRBbmRQb2ludChwb2ludFswXSwgcG9pbnRbMV0sIGxpbmVOZWFyZXN0UG9pbnRbMF0sIGxpbmVOZWFyZXN0UG9pbnRbMV0pO1xuICAgICAgICBpZiAobGluZURpc3RhbmNlIDwgbWluRGlzdGFuY2UpIHtcbiAgICAgICAgICAgIG1pbkRpc3RhbmNlID0gbGluZURpc3RhbmNlO1xuICAgICAgICAgICAgbmVhcmVzdFBvaW50ID0gbGluZU5lYXJlc3RQb2ludDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZWFyZXN0UG9pbnQ7XG4gICAgfSxcbiAgICBnZXRFZGdlQnlDb25uZWN0aW9uUG9pbnQocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIHBvaW50T2ZSZWN0YW5nbGU6IFBvaW50T2ZSZWN0YW5nbGUpOiBbUG9pbnQsIFBvaW50XSB8IG51bGwge1xuICAgICAgICBjb25zdCBjb3JuZXJzID0gUmVjdGFuZ2xlRW5naW5lLmdldENvcm5lclBvaW50cyhyZWN0YW5nbGUpO1xuICAgICAgICBjb25zdCBwb2ludCA9IFJlY3RhbmdsZUNsaWVudC5nZXRDb25uZWN0aW9uUG9pbnQocmVjdGFuZ2xlLCBwb2ludE9mUmVjdGFuZ2xlKTtcbiAgICAgICAgcmV0dXJuIGdldFBvbHlnb25FZGdlQnlDb25uZWN0aW9uUG9pbnQoY29ybmVycywgcG9pbnQpO1xuICAgIH0sXG4gICAgZ2V0Q29ubmVjdG9yUG9pbnRzKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50KSB7XG4gICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuZ2V0RWRnZUNlbnRlclBvaW50cyhyZWN0YW5nbGUpO1xuICAgIH1cbn07XG4iXX0=
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { PlaitBoard, RectangleClient, drawRoundRectangle, getNearestPointBetweenPointAndSegments } from '@plait/core';
|
|
2
|
-
import { getPolygonEdgeByConnectionPoint } from '../../utils/polygon';
|
|
3
|
-
import { RectangleEngine } from '../basic-shapes/rectangle';
|
|
4
|
-
import { getStrokeWidthByElement } from '../../utils';
|
|
5
|
-
import { ShapeDefaultSpace } from '../../constants';
|
|
6
|
-
export const TemplateEngine = {
|
|
7
|
-
draw(board, rectangle, options) {
|
|
8
|
-
const rs = PlaitBoard.getRoughSVG(board);
|
|
9
|
-
return drawRoundRectangle(rs, rectangle.x, rectangle.y, rectangle.x + rectangle.width, rectangle.y + rectangle.height, {
|
|
10
|
-
...options,
|
|
11
|
-
fillStyle: 'solid',
|
|
12
|
-
dashGap: 10,
|
|
13
|
-
strokeLineDash: [10, 10]
|
|
14
|
-
}, false, 4);
|
|
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;
|
|
39
|
-
return {
|
|
40
|
-
height,
|
|
41
|
-
width: width > 0 ? width : 0,
|
|
42
|
-
x: elementRectangle.x + ShapeDefaultSpace.rectangleAndText + strokeWidth,
|
|
43
|
-
y: elementRectangle.y + (elementRectangle.height - height) / 2
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9lbmdpbmVzL3VtbC90ZW1wbGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsVUFBVSxFQUdWLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsc0NBQXNDLEVBQ3pDLE1BQU0sYUFBYSxDQUFDO0FBR3JCLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFcEQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFnQjtJQUN2QyxJQUFJLENBQUMsS0FBaUIsRUFBRSxTQUEwQixFQUFFLE9BQWdCO1FBQ2hFLE1BQU0sRUFBRSxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFekMsT0FBTyxrQkFBa0IsQ0FDckIsRUFBRSxFQUNGLFNBQVMsQ0FBQyxDQUFDLEVBQ1gsU0FBUyxDQUFDLENBQUMsRUFDWCxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEVBQzdCLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFDOUI7WUFDSSxHQUFHLE9BQU87WUFDVixTQUFTLEVBQUUsT0FBTztZQUNsQixPQUFPLEVBQUUsRUFBRTtZQUNYLGNBQWMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7U0FDM0IsRUFDRCxLQUFLLEVBQ0wsQ0FBQyxDQUNKLENBQUM7SUFDTixDQUFDO0lBQ0QsYUFBYSxDQUFDLFNBQTBCLEVBQUUsS0FBWTtRQUNsRCxNQUFNLGNBQWMsR0FBRyxlQUFlLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUM1RSxPQUFPLGVBQWUsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFDRCxlQUFlLENBQUMsU0FBMEI7UUFDdEMsT0FBTyxlQUFlLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFDRCxlQUFlLENBQUMsU0FBMEIsRUFBRSxLQUFZO1FBQ3BELE9BQU8sc0NBQXNDLENBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNyRyxDQUFDO0lBQ0Qsd0JBQXdCLENBQUMsU0FBMEIsRUFBRSxnQkFBa0M7UUFDbkYsTUFBTSxPQUFPLEdBQUcsZUFBZSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzRCxNQUFNLEtBQUssR0FBRyxlQUFlLENBQUMsa0JBQWtCLENBQUMsU0FBUyxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDOUUsT0FBTywrQkFBK0IsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUNELGtCQUFrQixDQUFDLFNBQTBCO1FBQ3pDLE9BQU8sZUFBZSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxPQUFzQjtRQUNuQyxNQUFNLGdCQUFnQixHQUFHLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsTUFBTyxDQUFDLENBQUM7UUFDL0UsTUFBTSxXQUFXLEdBQUcsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckQsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFVBQVcsQ0FBQztRQUNuQyxNQUFNLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLEdBQUcsaUJBQWlCLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxHQUFHLFdBQVcsR0FBRyxDQUFDLENBQUM7UUFDaEcsT0FBTztZQUNILE1BQU07WUFDTixLQUFLLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVCLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLEdBQUcsaUJBQWlCLENBQUMsZ0JBQWdCLEdBQUcsV0FBVztZQUN4RSxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUM7U0FDakUsQ0FBQztJQUNOLENBQUM7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBQbGFpdEJvYXJkLFxuICAgIFBvaW50LFxuICAgIFBvaW50T2ZSZWN0YW5nbGUsXG4gICAgUmVjdGFuZ2xlQ2xpZW50LFxuICAgIGRyYXdSb3VuZFJlY3RhbmdsZSxcbiAgICBnZXROZWFyZXN0UG9pbnRCZXR3ZWVuUG9pbnRBbmRTZWdtZW50c1xufSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBQbGFpdEdlb21ldHJ5LCBTaGFwZUVuZ2luZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgT3B0aW9ucyB9IGZyb20gJ3JvdWdoanMvYmluL2NvcmUnO1xuaW1wb3J0IHsgZ2V0UG9seWdvbkVkZ2VCeUNvbm5lY3Rpb25Qb2ludCB9IGZyb20gJy4uLy4uL3V0aWxzL3BvbHlnb24nO1xuaW1wb3J0IHsgUmVjdGFuZ2xlRW5naW5lIH0gZnJvbSAnLi4vYmFzaWMtc2hhcGVzL3JlY3RhbmdsZSc7XG5pbXBvcnQgeyBnZXRTdHJva2VXaWR0aEJ5RWxlbWVudCB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IFNoYXBlRGVmYXVsdFNwYWNlIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcblxuZXhwb3J0IGNvbnN0IFRlbXBsYXRlRW5naW5lOiBTaGFwZUVuZ2luZSA9IHtcbiAgICBkcmF3KGJvYXJkOiBQbGFpdEJvYXJkLCByZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgb3B0aW9uczogT3B0aW9ucykge1xuICAgICAgICBjb25zdCBycyA9IFBsYWl0Qm9hcmQuZ2V0Um91Z2hTVkcoYm9hcmQpO1xuXG4gICAgICAgIHJldHVybiBkcmF3Um91bmRSZWN0YW5nbGUoXG4gICAgICAgICAgICBycyxcbiAgICAgICAgICAgIHJlY3RhbmdsZS54LFxuICAgICAgICAgICAgcmVjdGFuZ2xlLnksXG4gICAgICAgICAgICByZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCxcbiAgICAgICAgICAgIHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICAgICAgICAgIGZpbGxTdHlsZTogJ3NvbGlkJyxcbiAgICAgICAgICAgICAgICBkYXNoR2FwOiAxMCxcbiAgICAgICAgICAgICAgICBzdHJva2VMaW5lRGFzaDogWzEwLCAxMF1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgIDRcbiAgICAgICAgKTtcbiAgICB9LFxuICAgIGlzSW5zaWRlUG9pbnQocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIHBvaW50OiBQb2ludCkge1xuICAgICAgICBjb25zdCByYW5nZVJlY3RhbmdsZSA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhbcG9pbnQsIHBvaW50XSk7XG4gICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuaXNIaXQocmVjdGFuZ2xlLCByYW5nZVJlY3RhbmdsZSk7XG4gICAgfSxcbiAgICBnZXRDb3JuZXJQb2ludHMocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpIHtcbiAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5nZXRDb3JuZXJQb2ludHMocmVjdGFuZ2xlKTtcbiAgICB9LFxuICAgIGdldE5lYXJlc3RQb2ludChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcG9pbnQ6IFBvaW50KSB7XG4gICAgICAgIHJldHVybiBnZXROZWFyZXN0UG9pbnRCZXR3ZWVuUG9pbnRBbmRTZWdtZW50cyhwb2ludCwgUmVjdGFuZ2xlRW5naW5lLmdldENvcm5lclBvaW50cyhyZWN0YW5nbGUpKTtcbiAgICB9LFxuICAgIGdldEVkZ2VCeUNvbm5lY3Rpb25Qb2ludChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcG9pbnRPZlJlY3RhbmdsZTogUG9pbnRPZlJlY3RhbmdsZSk6IFtQb2ludCwgUG9pbnRdIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IGNvcm5lcnMgPSBSZWN0YW5nbGVFbmdpbmUuZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgICAgIGNvbnN0IHBvaW50ID0gUmVjdGFuZ2xlQ2xpZW50LmdldENvbm5lY3Rpb25Qb2ludChyZWN0YW5nbGUsIHBvaW50T2ZSZWN0YW5nbGUpO1xuICAgICAgICByZXR1cm4gZ2V0UG9seWdvbkVkZ2VCeUNvbm5lY3Rpb25Qb2ludChjb3JuZXJzLCBwb2ludCk7XG4gICAgfSxcbiAgICBnZXRDb25uZWN0b3JQb2ludHMocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpIHtcbiAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5nZXRFZGdlQ2VudGVyUG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgfSxcbiAgICBnZXRUZXh0UmVjdGFuZ2xlKGVsZW1lbnQ6IFBsYWl0R2VvbWV0cnkpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudFJlY3RhbmdsZSA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhlbGVtZW50LnBvaW50cyEpO1xuICAgICAgICBjb25zdCBzdHJva2VXaWR0aCA9IGdldFN0cm9rZVdpZHRoQnlFbGVtZW50KGVsZW1lbnQpO1xuICAgICAgICBjb25zdCBoZWlnaHQgPSBlbGVtZW50LnRleHRIZWlnaHQhO1xuICAgICAgICBjb25zdCB3aWR0aCA9IGVsZW1lbnRSZWN0YW5nbGUud2lkdGggLSBTaGFwZURlZmF1bHRTcGFjZS5yZWN0YW5nbGVBbmRUZXh0ICogMiAtIHN0cm9rZVdpZHRoICogMjtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGhlaWdodCxcbiAgICAgICAgICAgIHdpZHRoOiB3aWR0aCA+IDAgPyB3aWR0aCA6IDAsXG4gICAgICAgICAgICB4OiBlbGVtZW50UmVjdGFuZ2xlLnggKyBTaGFwZURlZmF1bHRTcGFjZS5yZWN0YW5nbGVBbmRUZXh0ICsgc3Ryb2tlV2lkdGgsXG4gICAgICAgICAgICB5OiBlbGVtZW50UmVjdGFuZ2xlLnkgKyAoZWxlbWVudFJlY3RhbmdsZS5oZWlnaHQgLSBoZWlnaHQpIC8gMlxuICAgICAgICB9O1xuICAgIH1cbn07XG4iXX0=
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { PlaitBoard, RgbaToHEX, createG, drawCircle, getSelectedElements, isSelectionMoving } from '@plait/core';
|
|
2
|
-
import { Generator, PRIMARY_COLOR } from '@plait/common';
|
|
3
|
-
import { getAutoCompletePoints } from '../utils';
|
|
4
|
-
import { LINE_AUTO_COMPLETE_DIAMETER, LINE_AUTO_COMPLETE_OPACITY } from '../constants/line';
|
|
5
|
-
export class ArrowLineAutoCompleteGenerator extends Generator {
|
|
6
|
-
static { this.key = 'line-auto-complete-generator'; }
|
|
7
|
-
constructor(board) {
|
|
8
|
-
super(board, { active: true });
|
|
9
|
-
this.board = board;
|
|
10
|
-
this.hoverElement = null;
|
|
11
|
-
}
|
|
12
|
-
canDraw(element, data) {
|
|
13
|
-
const selectedElements = getSelectedElements(this.board);
|
|
14
|
-
if (data.selected && selectedElements.length === 1 && !isSelectionMoving(this.board)) {
|
|
15
|
-
return true;
|
|
16
|
-
}
|
|
17
|
-
else {
|
|
18
|
-
return false;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
draw(element, data) {
|
|
22
|
-
this.autoCompleteG = createG();
|
|
23
|
-
const middlePoints = getAutoCompletePoints(this.board, element, true);
|
|
24
|
-
middlePoints.forEach((point, index) => {
|
|
25
|
-
const circle = drawCircle(PlaitBoard.getRoughSVG(this.board), point, LINE_AUTO_COMPLETE_DIAMETER, {
|
|
26
|
-
stroke: 'none',
|
|
27
|
-
fill: RgbaToHEX(PRIMARY_COLOR, LINE_AUTO_COMPLETE_OPACITY),
|
|
28
|
-
fillStyle: 'solid'
|
|
29
|
-
});
|
|
30
|
-
circle.classList.add(`line-auto-complete-${index}`);
|
|
31
|
-
this.autoCompleteG.appendChild(circle);
|
|
32
|
-
});
|
|
33
|
-
return this.autoCompleteG;
|
|
34
|
-
}
|
|
35
|
-
removeAutoCompleteG(index) {
|
|
36
|
-
this.hoverElement = this.autoCompleteG.querySelector(`.line-auto-complete-${index}`);
|
|
37
|
-
this.hoverElement.style.visibility = 'hidden';
|
|
38
|
-
}
|
|
39
|
-
recoverAutoCompleteG() {
|
|
40
|
-
if (this.hoverElement) {
|
|
41
|
-
this.hoverElement.style.visibility = 'visible';
|
|
42
|
-
this.hoverElement = null;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyb3ctbGluZS1hdXRvLWNvbXBsZXRlLmdlbmVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2RyYXcvc3JjL2dlbmVyYXRvcnMvYXJyb3ctbGluZS1hdXRvLWNvbXBsZXRlLmdlbmVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWpILE9BQU8sRUFBNEIsU0FBUyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDakQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFNUYsTUFBTSxPQUFPLDhCQUE0RSxTQUFRLFNBQXNDO2FBQzVILFFBQUcsR0FBRyw4QkFBOEIsQUFBakMsQ0FBa0M7SUFLNUMsWUFBbUIsS0FBaUI7UUFDaEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRGhCLFVBQUssR0FBTCxLQUFLLENBQVk7UUFGcEMsaUJBQVksR0FBdUIsSUFBSSxDQUFDO0lBSXhDLENBQUM7SUFFRCxPQUFPLENBQUMsT0FBMEIsRUFBRSxJQUE4QjtRQUM5RCxNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6RCxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksZ0JBQWdCLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ25GLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7YUFBTSxDQUFDO1lBQ0osT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLENBQUMsT0FBVSxFQUFFLElBQThCO1FBQzNDLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxFQUFFLENBQUM7UUFDL0IsTUFBTSxZQUFZLEdBQUcscUJBQXFCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdEUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNsQyxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLDJCQUEyQixFQUFFO2dCQUM5RixNQUFNLEVBQUUsTUFBTTtnQkFDZCxJQUFJLEVBQUUsU0FBUyxDQUFDLGFBQWEsRUFBRSwwQkFBMEIsQ0FBQztnQkFDMUQsU0FBUyxFQUFFLE9BQU87YUFDckIsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsc0JBQXNCLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDcEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUVELG1CQUFtQixDQUFDLEtBQWE7UUFDN0IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyx1QkFBdUIsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNyRixJQUFJLENBQUMsWUFBYSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDO0lBQ25ELENBQUM7SUFFRCxvQkFBb0I7UUFDaEIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztZQUMvQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUM3QixDQUFDO0lBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQsIFJnYmFUb0hFWCwgY3JlYXRlRywgZHJhd0NpcmNsZSwgZ2V0U2VsZWN0ZWRFbGVtZW50cywgaXNTZWxlY3Rpb25Nb3ZpbmcgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBQbGFpdEdlb21ldHJ5LCBQbGFpdFNoYXBlRWxlbWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQWN0aXZlR2VuZXJhdG9yRXh0cmFEYXRhLCBHZW5lcmF0b3IsIFBSSU1BUllfQ09MT1IgfSBmcm9tICdAcGxhaXQvY29tbW9uJztcbmltcG9ydCB7IGdldEF1dG9Db21wbGV0ZVBvaW50cyB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IExJTkVfQVVUT19DT01QTEVURV9ESUFNRVRFUiwgTElORV9BVVRPX0NPTVBMRVRFX09QQUNJVFkgfSBmcm9tICcuLi9jb25zdGFudHMvbGluZSc7XG5cbmV4cG9ydCBjbGFzcyBBcnJvd0xpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3I8VCBleHRlbmRzIFBsYWl0U2hhcGVFbGVtZW50ID0gUGxhaXRHZW9tZXRyeT4gZXh0ZW5kcyBHZW5lcmF0b3I8VCwgQWN0aXZlR2VuZXJhdG9yRXh0cmFEYXRhPiB7XG4gICAgc3RhdGljIGtleSA9ICdsaW5lLWF1dG8tY29tcGxldGUtZ2VuZXJhdG9yJztcblxuICAgIGF1dG9Db21wbGV0ZUchOiBTVkdHRWxlbWVudDtcbiAgICBob3ZlckVsZW1lbnQ6IFNWR0dFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgYm9hcmQ6IFBsYWl0Qm9hcmQpIHtcbiAgICAgICAgc3VwZXIoYm9hcmQsIHsgYWN0aXZlOiB0cnVlIH0pO1xuICAgIH1cblxuICAgIGNhbkRyYXcoZWxlbWVudDogUGxhaXRTaGFwZUVsZW1lbnQsIGRhdGE6IEFjdGl2ZUdlbmVyYXRvckV4dHJhRGF0YSk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRFbGVtZW50cyh0aGlzLmJvYXJkKTtcbiAgICAgICAgaWYgKGRhdGEuc2VsZWN0ZWQgJiYgc2VsZWN0ZWRFbGVtZW50cy5sZW5ndGggPT09IDEgJiYgIWlzU2VsZWN0aW9uTW92aW5nKHRoaXMuYm9hcmQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRyYXcoZWxlbWVudDogVCwgZGF0YTogQWN0aXZlR2VuZXJhdG9yRXh0cmFEYXRhKTogU1ZHR0VsZW1lbnQge1xuICAgICAgICB0aGlzLmF1dG9Db21wbGV0ZUcgPSBjcmVhdGVHKCk7XG4gICAgICAgIGNvbnN0IG1pZGRsZVBvaW50cyA9IGdldEF1dG9Db21wbGV0ZVBvaW50cyh0aGlzLmJvYXJkLCBlbGVtZW50LCB0cnVlKTtcbiAgICAgICAgbWlkZGxlUG9pbnRzLmZvckVhY2goKHBvaW50LCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY2lyY2xlID0gZHJhd0NpcmNsZShQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKHRoaXMuYm9hcmQpLCBwb2ludCwgTElORV9BVVRPX0NPTVBMRVRFX0RJQU1FVEVSLCB7XG4gICAgICAgICAgICAgICAgc3Ryb2tlOiAnbm9uZScsXG4gICAgICAgICAgICAgICAgZmlsbDogUmdiYVRvSEVYKFBSSU1BUllfQ09MT1IsIExJTkVfQVVUT19DT01QTEVURV9PUEFDSVRZKSxcbiAgICAgICAgICAgICAgICBmaWxsU3R5bGU6ICdzb2xpZCdcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY2lyY2xlLmNsYXNzTGlzdC5hZGQoYGxpbmUtYXV0by1jb21wbGV0ZS0ke2luZGV4fWApO1xuICAgICAgICAgICAgdGhpcy5hdXRvQ29tcGxldGVHLmFwcGVuZENoaWxkKGNpcmNsZSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdGhpcy5hdXRvQ29tcGxldGVHO1xuICAgIH1cblxuICAgIHJlbW92ZUF1dG9Db21wbGV0ZUcoaW5kZXg6IG51bWJlcikge1xuICAgICAgICB0aGlzLmhvdmVyRWxlbWVudCA9IHRoaXMuYXV0b0NvbXBsZXRlRy5xdWVyeVNlbGVjdG9yKGAubGluZS1hdXRvLWNvbXBsZXRlLSR7aW5kZXh9YCk7XG4gICAgICAgIHRoaXMuaG92ZXJFbGVtZW50IS5zdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7XG4gICAgfVxuXG4gICAgcmVjb3ZlckF1dG9Db21wbGV0ZUcoKSB7XG4gICAgICAgIGlmICh0aGlzLmhvdmVyRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5ob3ZlckVsZW1lbnQuc3R5bGUudmlzaWJpbGl0eSA9ICd2aXNpYmxlJztcbiAgICAgICAgICAgIHRoaXMuaG92ZXJFbGVtZW50ID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { Generator } from '@plait/common';
|
|
2
|
-
import { drawArrowLine } from '../utils/arrow-line/arrow-line-basic';
|
|
3
|
-
export class ArrowLineShapeGenerator extends Generator {
|
|
4
|
-
canDraw(element) {
|
|
5
|
-
return true;
|
|
6
|
-
}
|
|
7
|
-
draw(element) {
|
|
8
|
-
let lineG;
|
|
9
|
-
lineG = drawArrowLine(this.board, element);
|
|
10
|
-
return lineG;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyb3ctbGluZS5nZW5lcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9nZW5lcmF0b3JzL2Fycm93LWxpbmUuZ2VuZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRXJFLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxTQUF5QjtJQUNsRSxPQUFPLENBQUMsT0FBdUI7UUFDM0IsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELElBQUksQ0FBQyxPQUF1QjtRQUN4QixJQUFJLEtBQThCLENBQUM7UUFDbkMsS0FBSyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzNDLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0QXJyb3dMaW5lIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBHZW5lcmF0b3IgfSBmcm9tICdAcGxhaXQvY29tbW9uJztcbmltcG9ydCB7IGRyYXdBcnJvd0xpbmUgfSBmcm9tICcuLi91dGlscy9hcnJvdy1saW5lL2Fycm93LWxpbmUtYmFzaWMnO1xuXG5leHBvcnQgY2xhc3MgQXJyb3dMaW5lU2hhcGVHZW5lcmF0b3IgZXh0ZW5kcyBHZW5lcmF0b3I8UGxhaXRBcnJvd0xpbmU+IHtcbiAgICBjYW5EcmF3KGVsZW1lbnQ6IFBsYWl0QXJyb3dMaW5lKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGRyYXcoZWxlbWVudDogUGxhaXRBcnJvd0xpbmUpIHtcbiAgICAgICAgbGV0IGxpbmVHOiBTVkdHRWxlbWVudCB8IHVuZGVmaW5lZDtcbiAgICAgICAgbGluZUcgPSBkcmF3QXJyb3dMaW5lKHRoaXMuYm9hcmQsIGVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gbGluZUc7XG4gICAgfVxufVxuIl19
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { BasicShapes } from '../interfaces';
|
|
2
|
-
import { Generator, getStrokeLineDash } from '@plait/common';
|
|
3
|
-
import { getFillByElement, getStrokeColorByElement, getStrokeStyleByElement } from '../utils/style/stroke';
|
|
4
|
-
import { drawGeometry, getStrokeWidthByElement } from '../utils';
|
|
5
|
-
import { RectangleClient } from '@plait/core';
|
|
6
|
-
export class GeometryShapeGenerator extends Generator {
|
|
7
|
-
canDraw(element, data) {
|
|
8
|
-
return true;
|
|
9
|
-
}
|
|
10
|
-
draw(element, data) {
|
|
11
|
-
const rectangle = RectangleClient.getRectangleByPoints(element.points);
|
|
12
|
-
const shape = element.shape;
|
|
13
|
-
if (shape === BasicShapes.text) {
|
|
14
|
-
return;
|
|
15
|
-
}
|
|
16
|
-
const fill = getFillByElement(this.board, element);
|
|
17
|
-
const strokeWidth = getStrokeWidthByElement(element);
|
|
18
|
-
const strokeColor = getStrokeColorByElement(this.board, element);
|
|
19
|
-
const strokeStyle = getStrokeStyleByElement(this.board, element);
|
|
20
|
-
const strokeLineDash = getStrokeLineDash(strokeStyle, strokeWidth);
|
|
21
|
-
return drawGeometry(this.board, RectangleClient.inflate(rectangle, -strokeWidth), shape, {
|
|
22
|
-
stroke: strokeColor,
|
|
23
|
-
strokeWidth,
|
|
24
|
-
fill,
|
|
25
|
-
strokeLineDash
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvbWV0cnktc2hhcGUuZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvZ2VuZXJhdG9ycy9nZW9tZXRyeS1zaGFwZS5nZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsdUJBQXVCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRyxPQUFPLEVBQUUsWUFBWSxFQUFFLHVCQUF1QixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFJOUMsTUFBTSxPQUFPLHNCQUF1QixTQUFRLFNBQW1DO0lBQzNFLE9BQU8sQ0FBQyxPQUFzQixFQUFFLElBQWU7UUFDM0MsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELElBQUksQ0FBQyxPQUFzQixFQUFFLElBQWU7UUFDeEMsTUFBTSxTQUFTLEdBQUcsZUFBZSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2RSxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQzVCLElBQUksS0FBSyxLQUFLLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM3QixPQUFPO1FBQ1gsQ0FBQztRQUNELE1BQU0sSUFBSSxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDbkQsTUFBTSxXQUFXLEdBQUcsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckQsTUFBTSxXQUFXLEdBQUcsdUJBQXVCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNqRSxNQUFNLFdBQVcsR0FBRyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sY0FBYyxHQUFHLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNuRSxPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUUsS0FBSyxFQUFFO1lBQ3JGLE1BQU0sRUFBRSxXQUFXO1lBQ25CLFdBQVc7WUFDWCxJQUFJO1lBQ0osY0FBYztTQUNqQixDQUFDLENBQUM7SUFDUCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNpY1NoYXBlcywgUGxhaXRHZW9tZXRyeSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgR2VuZXJhdG9yLCBnZXRTdHJva2VMaW5lRGFzaCB9IGZyb20gJ0BwbGFpdC9jb21tb24nO1xuaW1wb3J0IHsgZ2V0RmlsbEJ5RWxlbWVudCwgZ2V0U3Ryb2tlQ29sb3JCeUVsZW1lbnQsIGdldFN0cm9rZVN0eWxlQnlFbGVtZW50IH0gZnJvbSAnLi4vdXRpbHMvc3R5bGUvc3Ryb2tlJztcbmltcG9ydCB7IGRyYXdHZW9tZXRyeSwgZ2V0U3Ryb2tlV2lkdGhCeUVsZW1lbnQgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBSZWN0YW5nbGVDbGllbnQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcGVEYXRhIHt9XG5cbmV4cG9ydCBjbGFzcyBHZW9tZXRyeVNoYXBlR2VuZXJhdG9yIGV4dGVuZHMgR2VuZXJhdG9yPFBsYWl0R2VvbWV0cnksIFNoYXBlRGF0YT4ge1xuICAgIGNhbkRyYXcoZWxlbWVudDogUGxhaXRHZW9tZXRyeSwgZGF0YTogU2hhcGVEYXRhKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGRyYXcoZWxlbWVudDogUGxhaXRHZW9tZXRyeSwgZGF0YTogU2hhcGVEYXRhKSB7XG4gICAgICAgIGNvbnN0IHJlY3RhbmdsZSA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhlbGVtZW50LnBvaW50cyk7XG4gICAgICAgIGNvbnN0IHNoYXBlID0gZWxlbWVudC5zaGFwZTtcbiAgICAgICAgaWYgKHNoYXBlID09PSBCYXNpY1NoYXBlcy50ZXh0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZmlsbCA9IGdldEZpbGxCeUVsZW1lbnQodGhpcy5ib2FyZCwgZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IHN0cm9rZVdpZHRoID0gZ2V0U3Ryb2tlV2lkdGhCeUVsZW1lbnQoZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IHN0cm9rZUNvbG9yID0gZ2V0U3Ryb2tlQ29sb3JCeUVsZW1lbnQodGhpcy5ib2FyZCwgZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IHN0cm9rZVN0eWxlID0gZ2V0U3Ryb2tlU3R5bGVCeUVsZW1lbnQodGhpcy5ib2FyZCwgZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IHN0cm9rZUxpbmVEYXNoID0gZ2V0U3Ryb2tlTGluZURhc2goc3Ryb2tlU3R5bGUsIHN0cm9rZVdpZHRoKTtcbiAgICAgICAgcmV0dXJuIGRyYXdHZW9tZXRyeSh0aGlzLmJvYXJkLCBSZWN0YW5nbGVDbGllbnQuaW5mbGF0ZShyZWN0YW5nbGUsIC1zdHJva2VXaWR0aCksIHNoYXBlLCB7XG4gICAgICAgICAgICBzdHJva2U6IHN0cm9rZUNvbG9yLFxuICAgICAgICAgICAgc3Ryb2tlV2lkdGgsXG4gICAgICAgICAgICBmaWxsLFxuICAgICAgICAgICAgc3Ryb2tlTGluZURhc2hcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export * from './geometry-shape.generator';
|
|
2
|
-
export * from './line-active.generator';
|
|
3
|
-
export * from './arrow-line-auto-complete.generator';
|
|
4
|
-
export * from './single-text.generator';
|
|
5
|
-
export * from './text.generator';
|
|
6
|
-
export * from './table.generator';
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9nZW5lcmF0b3JzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9nZW9tZXRyeS1zaGFwZS5nZW5lcmF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9saW5lLWFjdGl2ZS5nZW5lcmF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9hcnJvdy1saW5lLWF1dG8tY29tcGxldGUuZ2VuZXJhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vc2luZ2xlLXRleHQuZ2VuZXJhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vdGV4dC5nZW5lcmF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi90YWJsZS5nZW5lcmF0b3InO1xuIl19
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import { PlaitBoard, SELECTION_RECTANGLE_CLASS_NAME, createG, drawRectangle, getSelectedElements, toActivePointFromViewBoxPoint, toActiveRectangleFromViewBoxRectangle } from '@plait/core';
|
|
2
|
-
import { ArrowLineShape, PlaitArrowLine, PlaitDrawElement } from '../interfaces';
|
|
3
|
-
import { Generator, PRIMARY_COLOR, drawFillPrimaryHandle, drawPrimaryHandle } from '@plait/common';
|
|
4
|
-
import { getMiddlePoints } from '../utils/line';
|
|
5
|
-
import { getNextRenderPoints } from '../utils/arrow-line/elbow';
|
|
6
|
-
import { isUpdatedHandleIndex } from '../utils/arrow-line';
|
|
7
|
-
import { getHitPointIndex } from '../utils/position/line';
|
|
8
|
-
import { DefaultDrawActiveStyle } from '../constants';
|
|
9
|
-
export class LineActiveGenerator extends Generator {
|
|
10
|
-
constructor(board, options = { active: true }) {
|
|
11
|
-
super(board, options);
|
|
12
|
-
this.board = board;
|
|
13
|
-
this.onlySelectedCurrentLine = false;
|
|
14
|
-
}
|
|
15
|
-
canDraw(element, data) {
|
|
16
|
-
if (data.selected) {
|
|
17
|
-
return true;
|
|
18
|
-
}
|
|
19
|
-
else {
|
|
20
|
-
return false;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
draw(element, data) {
|
|
24
|
-
const activeG = createG();
|
|
25
|
-
const selectedElements = getSelectedElements(this.board);
|
|
26
|
-
this.onlySelectedCurrentLine = selectedElements.length === 1;
|
|
27
|
-
if (this.onlySelectedCurrentLine) {
|
|
28
|
-
activeG.classList.add(SELECTION_RECTANGLE_CLASS_NAME);
|
|
29
|
-
const points = PlaitDrawElement.isArrowLine(element) ? PlaitArrowLine.getPoints(this.board, element) : element.points;
|
|
30
|
-
let updatePoints = [...points];
|
|
31
|
-
let elbowNextRenderPoints = [];
|
|
32
|
-
if (element.shape === ArrowLineShape.elbow) {
|
|
33
|
-
updatePoints = points.slice(0, 1).concat(points.slice(-1));
|
|
34
|
-
elbowNextRenderPoints = getNextRenderPoints(this.board, element, data.linePoints);
|
|
35
|
-
}
|
|
36
|
-
const activePoints = updatePoints.map((point) => toActivePointFromViewBoxPoint(this.board, point));
|
|
37
|
-
activePoints.forEach((point) => {
|
|
38
|
-
const updateHandle = drawPrimaryHandle(this.board, point);
|
|
39
|
-
activeG.appendChild(updateHandle);
|
|
40
|
-
});
|
|
41
|
-
const middlePoints = getMiddlePoints(this.board, element);
|
|
42
|
-
const activeMiddlePoints = middlePoints.map((point) => toActivePointFromViewBoxPoint(this.board, point));
|
|
43
|
-
if (!PlaitBoard.hasBeenTextEditing(this.board)) {
|
|
44
|
-
for (let i = 0; i < activeMiddlePoints.length; i++) {
|
|
45
|
-
const point = activeMiddlePoints[i];
|
|
46
|
-
if (element.shape === ArrowLineShape.elbow && elbowNextRenderPoints.length) {
|
|
47
|
-
const handleIndex = getHitPointIndex(activeMiddlePoints, point);
|
|
48
|
-
const isUpdateHandleIndex = isUpdatedHandleIndex(this.board, element, [...points], elbowNextRenderPoints, handleIndex);
|
|
49
|
-
if (isUpdateHandleIndex) {
|
|
50
|
-
const updateHandle = drawPrimaryHandle(this.board, point);
|
|
51
|
-
activeG.appendChild(updateHandle);
|
|
52
|
-
continue;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
const circle = drawFillPrimaryHandle(this.board, point);
|
|
56
|
-
activeG.appendChild(circle);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
const rectangle = this.board.getRectangle(element);
|
|
62
|
-
if (rectangle) {
|
|
63
|
-
const activeRectangle = toActiveRectangleFromViewBoxRectangle(this.board, rectangle);
|
|
64
|
-
let opacity = '0.5';
|
|
65
|
-
if (activeRectangle.height === 0 || activeRectangle.width === 0) {
|
|
66
|
-
opacity = '0.8';
|
|
67
|
-
}
|
|
68
|
-
const strokeG = drawRectangle(this.board, activeRectangle, {
|
|
69
|
-
stroke: PRIMARY_COLOR,
|
|
70
|
-
strokeWidth: DefaultDrawActiveStyle.selectionStrokeWidth
|
|
71
|
-
});
|
|
72
|
-
strokeG.style.opacity = opacity;
|
|
73
|
-
activeG.appendChild(strokeG);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
return activeG;
|
|
77
|
-
}
|
|
78
|
-
needUpdate() {
|
|
79
|
-
const selectedElements = getSelectedElements(this.board);
|
|
80
|
-
const onlySelectedCurrentLine = selectedElements.length === 1;
|
|
81
|
-
return onlySelectedCurrentLine !== this.onlySelectedCurrentLine;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1hY3RpdmUuZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvZ2VuZXJhdG9ycy9saW5lLWFjdGl2ZS5nZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFVBQVUsRUFFViw4QkFBOEIsRUFDOUIsT0FBTyxFQUNQLGFBQWEsRUFDYixtQkFBbUIsRUFDbkIsNkJBQTZCLEVBQzdCLHFDQUFxQyxFQUN4QyxNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRixPQUFPLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxxQkFBcUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQVF0RCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsU0FBZ0M7SUFHckUsWUFBc0IsS0FBaUIsRUFBRSxVQUErQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7UUFDcEYsS0FBSyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQURKLFVBQUssR0FBTCxLQUFLLENBQVk7UUFGdkMsNEJBQXVCLEdBQUcsS0FBSyxDQUFDO0lBSWhDLENBQUM7SUFFRCxPQUFPLENBQUMsT0FBa0IsRUFBRSxJQUFnQjtRQUN4QyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNo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QUM7SUFDbkIsQ0FBQztJQUVELFVBQVU7UUFDTixNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6RCxNQUFNLHVCQUF1QixHQUFHLGdCQUFnQixDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7UUFDOUQsT0FBTyx1QkFBdUIsS0FBSyxJQUFJLENBQUMsdUJBQXVCLENBQUM7SUFDcEUsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBQbGFpdEJvYXJkLFxuICAgIFBvaW50LFxuICAgIFNFTEVDVElPTl9SRUNUQU5HTEVfQ0xBU1NfTkFNRSxcbiAgICBjcmVhdGVHLFxuICAgIGRyYXdSZWN0YW5nbGUsXG4gICAgZ2V0U2VsZWN0ZWRFbGVtZW50cyxcbiAgICB0b0FjdGl2ZVBvaW50RnJvbVZpZXdCb3hQb2ludCxcbiAgICB0b0FjdGl2ZVJlY3RhbmdsZUZyb21WaWV3Qm94UmVjdGFuZ2xlXG59IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IEFycm93TGluZVNoYXBlLCBQbGFpdEFycm93TGluZSwgUGxhaXREcmF3RWxlbWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgR2VuZXJhdG9yLCBQUklNQVJZX0NPTE9SLCBkcmF3RmlsbFByaW1hcnlIYW5kbGUsIGRyYXdQcmltYXJ5SGFuZGxlIH0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5pbXBvcnQgeyBnZXRNaWRkbGVQb2ludHMgfSBmcm9tICcuLi91dGlscy9saW5lJztcbmltcG9ydCB7IGdldE5leHRSZW5kZXJQb2ludHMgfSBmcm9tICcuLi91dGlscy9hcnJvdy1saW5lL2VsYm93JztcbmltcG9ydCB7IGlzVXBkYXRlZEhhbmRsZUluZGV4IH0gZnJvbSAnLi4vdXRpbHMvYXJyb3ctbGluZSc7XG5pbXBvcnQgeyBnZXRIaXRQb2ludEluZGV4IH0gZnJvbSAnLi4vdXRpbHMvcG9zaXRpb24vbGluZSc7XG5pbXBvcnQgeyBEZWZhdWx0RHJhd0FjdGl2ZVN0eWxlIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFBsYWl0TGluZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvbGluZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aXZlRGF0YSB7XG4gICAgc2VsZWN0ZWQ6IGJvb2xlYW47XG4gICAgbGluZVBvaW50czogUG9pbnRbXTtcbn1cblxuZXhwb3J0IGNsYXNzIExpbmVBY3RpdmVHZW5lcmF0b3IgZXh0ZW5kcyBHZW5lcmF0b3I8UGxhaXRMaW5lLCBBY3RpdmVEYXRhPiB7XG4gICAgb25seVNlbGVjdGVkQ3VycmVudExpbmUgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBib2FyZDogUGxhaXRCb2FyZCwgb3B0aW9uczogeyBhY3RpdmU6IGJvb2xlYW4gfSA9IHsgYWN0aXZlOiB0cnVlIH0pIHtcbiAgICAgICAgc3VwZXIoYm9hcmQsIG9wdGlvbnMpO1xuICAgIH1cblxuICAgIGNhbkRyYXcoZWxlbWVudDogUGxhaXRMaW5lLCBkYXRhOiBBY3RpdmVEYXRhKTogYm9vbGVhbiB7XG4gICAgICAgIGlmIChkYXRhLnNlbGVjdGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRyYXcoZWxlbWVudDogUGxhaXRMaW5lLCBkYXRhOiBBY3RpdmVEYXRhKTogU1ZHR0VsZW1lbnQge1xuICAgICAgICBjb25zdCBhY3RpdmVHID0gY3JlYXRlRygpO1xuICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRFbGVtZW50cyh0aGlzLmJvYXJkKTtcbiAgICAgICAgdGhpcy5vbmx5U2VsZWN0ZWRDdXJyZW50TGluZSA9IHNlbGVjdGVkRWxlbWVudHMubGVuZ3RoID09PSAxO1xuICAgICAgICBpZiAodGhpcy5vbmx5U2VsZWN0ZWRDdXJyZW50TGluZSkge1xuICAgICAgICAgICAgYWN0aXZlRy5jbGFzc0xpc3QuYWRkKFNFTEVDVElPTl9SRUNUQU5HTEVfQ0xBU1NfTkFNRSk7XG4gICAgICAgICAgICBjb25zdCBwb2ludHMgPSBQbGFpdERyYXdFbGVtZW50LmlzQXJyb3dMaW5lKGVsZW1lbnQpID8gUGxhaXRBcnJvd0xpbmUuZ2V0UG9pbnRzKHRoaXMuYm9hcmQsIGVsZW1lbnQpIDogZWxlbWVudC5wb2ludHM7XG4gICAgICAgICAgICBsZXQgdXBkYXRlUG9pbnRzID0gWy4uLnBvaW50c107XG4gICAgICAgICAgICBsZXQgZWxib3dOZXh0UmVuZGVyUG9pbnRzOiBQb2ludFtdID0gW107XG4gICAgICAgICAgICBpZiAoZWxlbWVudC5zaGFwZSA9PT0gQXJyb3dMaW5lU2hhcGUuZWxib3cpIHtcbiAgICAgICAgICAgICAgICB1cGRhdGVQb2ludHMgPSBwb2ludHMuc2xpY2UoMCwgMSkuY29uY2F0KHBvaW50cy5zbGljZSgtMSkpO1xuICAgICAgICAgICAgICAgIGVsYm93TmV4dFJlbmRlclBvaW50cyA9IGdldE5leHRSZW5kZXJQb2ludHModGhpcy5ib2FyZCwgZWxlbWVudCwgZGF0YS5saW5lUG9pbnRzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGFjdGl2ZVBvaW50cyA9IHVwZGF0ZVBvaW50cy5tYXAoKHBvaW50KSA9PiB0b0FjdGl2ZVBvaW50RnJvbVZpZXdCb3hQb2ludCh0aGlzLmJvYXJkLCBwb2ludCkpO1xuICAgICAgICAgICAgYWN0aXZlUG9pbnRzLmZvckVhY2goKHBvaW50KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdXBkYXRlSGFuZGxlID0gZHJhd1ByaW1hcnlIYW5kbGUodGhpcy5ib2FyZCwgcG9pbnQpO1xuICAgICAgICAgICAgICAgIGFjdGl2ZUcuYXBwZW5kQ2hpbGQodXBkYXRlSGFuZGxlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3QgbWlkZGxlUG9pbnRzID0gZ2V0TWlkZGxlUG9pbnRzKHRoaXMuYm9hcmQsIGVsZW1lbnQpO1xuICAgICAgICAgICAgY29uc3QgYWN0aXZlTWlkZGxlUG9pbnRzID0gbWlkZGxlUG9pbnRzLm1hcCgocG9pbnQpID0+IHRvQWN0aXZlUG9pbnRGcm9tVmlld0JveFBvaW50KHRoaXMuYm9hcmQsIHBvaW50KSk7XG4gICAgICAgICAgICBpZiAoIVBsYWl0Qm9hcmQuaGFzQmVlblRleHRFZGl0aW5nKHRoaXMuYm9hcmQpKSB7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhY3RpdmVNaWRkbGVQb2ludHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcG9pbnQgPSBhY3RpdmVNaWRkbGVQb2ludHNbaV07XG4gICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LnNoYXBlID09PSBBcnJvd0xpbmVTaGFwZS5lbGJvdyAmJiBlbGJvd05leHRSZW5kZXJQb2ludHMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoYW5kbGVJbmRleCA9IGdldEhpdFBvaW50SW5kZXgoYWN0aXZlTWlkZGxlUG9pbnRzLCBwb2ludCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpc1VwZGF0ZUhhbmRsZUluZGV4ID0gaXNVcGRhdGVkSGFuZGxlSW5kZXgoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ib2FyZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsuLi5wb2ludHNdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsYm93TmV4dFJlbmRlclBvaW50cyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVJbmRleFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc1VwZGF0ZUhhbmRsZUluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdXBkYXRlSGFuZGxlID0gZHJhd1ByaW1hcnlIYW5kbGUodGhpcy5ib2FyZCwgcG9pbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZUcuYXBwZW5kQ2hpbGQodXBkYXRlSGFuZGxlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjaXJjbGUgPSBkcmF3RmlsbFByaW1hcnlIYW5kbGUodGhpcy5ib2FyZCwgcG9pbnQpO1xuICAgICAgICAgICAgICAgICAgICBhY3RpdmVHLmFwcGVuZENoaWxkKGNpcmNsZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgcmVjdGFuZ2xlID0gdGhpcy5ib2FyZC5nZXRSZWN0YW5nbGUoZWxlbWVudCk7XG4gICAgICAgICAgICBpZiAocmVjdGFuZ2xlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYWN0aXZlUmVjdGFuZ2xlID0gdG9BY3RpdmVSZWN0YW5nbGVGcm9tVmlld0JveFJlY3RhbmdsZSh0aGlzLmJvYXJkLCByZWN0YW5nbGUpO1xuICAgICAgICAgICAgICAgIGxldCBvcGFjaXR5ID0gJzAuNSc7XG4gICAgICAgICAgICAgICAgaWYgKGFjdGl2ZVJlY3RhbmdsZS5oZWlnaHQgPT09IDAgfHwgYWN0aXZlUmVjdGFuZ2xlLndpZHRoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHkgPSAnMC44JztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3Qgc3Ryb2tlRyA9IGRyYXdSZWN0YW5nbGUodGhpcy5ib2FyZCwgYWN0aXZlUmVjdGFuZ2xlLCB7XG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZTogUFJJTUFSWV9DT0xPUixcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg6IERlZmF1bHREcmF3QWN0aXZlU3R5bGUuc2VsZWN0aW9uU3Ryb2tlV2lkdGhcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBzdHJva2VHLnN0eWxlLm9wYWNpdHkgPSBvcGFjaXR5O1xuICAgICAgICAgICAgICAgIGFjdGl2ZUcuYXBwZW5kQ2hpbGQoc3Ryb2tlRyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjdGl2ZUc7XG4gICAgfVxuXG4gICAgbmVlZFVwZGF0ZSgpIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHModGhpcy5ib2FyZCk7XG4gICAgICAgIGNvbnN0IG9ubHlTZWxlY3RlZEN1cnJlbnRMaW5lID0gc2VsZWN0ZWRFbGVtZW50cy5sZW5ndGggPT09IDE7XG4gICAgICAgIHJldHVybiBvbmx5U2VsZWN0ZWRDdXJyZW50TGluZSAhPT0gdGhpcy5vbmx5U2VsZWN0ZWRDdXJyZW50TGluZTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { TextGenerator } from './text.generator';
|
|
2
|
-
import { isMultipleTextGeometry } from '../utils';
|
|
3
|
-
export class SingleTextGenerator extends TextGenerator {
|
|
4
|
-
get textManage() {
|
|
5
|
-
return this.textManages[0];
|
|
6
|
-
}
|
|
7
|
-
constructor(board, element, text, options) {
|
|
8
|
-
super(board, element, [{ id: element.id, text: text, textHeight: element.textHeight }], options);
|
|
9
|
-
}
|
|
10
|
-
update(element, previousText, currentText, elementG) {
|
|
11
|
-
if (!isMultipleTextGeometry(element)) {
|
|
12
|
-
super.update(element, [{ text: previousText, id: element.id, textHeight: element.textHeight }], [{ text: currentText, id: element.id, textHeight: element.textHeight }], elementG);
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLXRleHQuZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvZ2VuZXJhdG9ycy9zaW5nbGUtdGV4dC5nZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFnQixhQUFhLEVBQXdCLE1BQU0sa0JBQWtCLENBQUM7QUFDckYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBR2xELE1BQU0sT0FBTyxtQkFBNEQsU0FBUSxhQUFnQjtJQUM3RixJQUFJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELFlBQVksS0FBaUIsRUFBRSxPQUFVLEVBQUUsSUFBc0IsRUFBRSxPQUFnQztRQUMvRixLQUFLLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDckcsQ0FBQztJQUlELE1BQU0sQ0FDRixPQUFVLEVBQ1YsWUFBK0MsRUFDL0MsV0FBOEMsRUFDOUMsUUFBb0I7UUFFcEIsSUFBSSxDQUFDLHNCQUFzQixDQUFFLE9BQTBDLENBQUMsRUFBRSxDQUFDO1lBQ3ZFLEtBQUssQ0FBQyxNQUFNLENBQ1IsT0FBTyxFQUNQLENBQUMsRUFBRSxJQUFJLEVBQUUsWUFBZ0MsRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQzVGLENBQUMsRUFBRSxJQUFJLEVBQUUsV0FBK0IsRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQzNGLFFBQVEsQ0FDWCxDQUFDO1FBQ04sQ0FBQztJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQsIFBsYWl0RWxlbWVudCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IFBsYWl0Q29tbW9uR2VvbWV0cnksIFBsYWl0R2VvbWV0cnkgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IERyYXdUZXh0SW5mbywgVGV4dEdlbmVyYXRvciwgVGV4dEdlbmVyYXRvck9wdGlvbnMgfSBmcm9tICcuL3RleHQuZ2VuZXJhdG9yJztcbmltcG9ydCB7IGlzTXVsdGlwbGVUZXh0R2VvbWV0cnkgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBQYXJhZ3JhcGhFbGVtZW50IH0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5cbmV4cG9ydCBjbGFzcyBTaW5nbGVUZXh0R2VuZXJhdG9yPFQgZXh0ZW5kcyBQbGFpdEVsZW1lbnQgPSBQbGFpdEdlb21ldHJ5PiBleHRlbmRzIFRleHRHZW5lcmF0b3I8VD4ge1xuICAgIGdldCB0ZXh0TWFuYWdlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy50ZXh0TWFuYWdlc1swXTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogVCwgdGV4dDogUGFyYWdyYXBoRWxlbWVudCwgb3B0aW9uczogVGV4dEdlbmVyYXRvck9wdGlvbnM8VD4pIHtcbiAgICAgICAgc3VwZXIoYm9hcmQsIGVsZW1lbnQsIFt7IGlkOiBlbGVtZW50LmlkLCB0ZXh0OiB0ZXh0LCB0ZXh0SGVpZ2h0OiBlbGVtZW50LnRleHRIZWlnaHQgfV0sIG9wdGlvbnMpO1xuICAgIH1cblxuICAgIHVwZGF0ZShlbGVtZW50OiBULCBwcmV2aW91c0RyYXdTaGFwZVRleHRzOiBEcmF3VGV4dEluZm9bXSwgY3VycmVudERyYXdTaGFwZVRleHRzOiBEcmF3VGV4dEluZm9bXSwgZWxlbWVudEc6IFNWR0VsZW1lbnQpOiB2b2lkO1xuICAgIHVwZGF0ZShlbGVtZW50OiBULCBwcmV2aW91c1RleHQ6IFBhcmFncmFwaEVsZW1lbnQsIGN1cnJlbnRUZXh0OiBQYXJhZ3JhcGhFbGVtZW50LCBlbGVtZW50RzogU1ZHRWxlbWVudCk6IHZvaWQ7XG4gICAgdXBkYXRlKFxuICAgICAgICBlbGVtZW50OiBULFxuICAgICAgICBwcmV2aW91c1RleHQ6IFBhcmFncmFwaEVsZW1lbnQgfCBEcmF3VGV4dEluZm9bXSxcbiAgICAgICAgY3VycmVudFRleHQ6IFBhcmFncmFwaEVsZW1lbnQgfCBEcmF3VGV4dEluZm9bXSxcbiAgICAgICAgZWxlbWVudEc6IFNWR0VsZW1lbnRcbiAgICApIHtcbiAgICAgICAgaWYgKCFpc011bHRpcGxlVGV4dEdlb21ldHJ5KChlbGVtZW50IGFzIHVua25vd24pIGFzIFBsYWl0Q29tbW9uR2VvbWV0cnkpKSB7XG4gICAgICAgICAgICBzdXBlci51cGRhdGUoXG4gICAgICAgICAgICAgICAgZWxlbWVudCxcbiAgICAgICAgICAgICAgICBbeyB0ZXh0OiBwcmV2aW91c1RleHQgYXMgUGFyYWdyYXBoRWxlbWVudCwgaWQ6IGVsZW1lbnQuaWQsIHRleHRIZWlnaHQ6IGVsZW1lbnQudGV4dEhlaWdodCB9XSxcbiAgICAgICAgICAgICAgICBbeyB0ZXh0OiBjdXJyZW50VGV4dCBhcyBQYXJhZ3JhcGhFbGVtZW50LCBpZDogZWxlbWVudC5pZCwgdGV4dEhlaWdodDogZWxlbWVudC50ZXh0SGVpZ2h0IH1dLFxuICAgICAgICAgICAgICAgIGVsZW1lbnRHXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { TableSymbols } from '../interfaces';
|
|
2
|
-
import { Generator, getStrokeLineDash } from '@plait/common';
|
|
3
|
-
import { RectangleClient } from '@plait/core';
|
|
4
|
-
import { getEngine } from '../engines';
|
|
5
|
-
import { getStrokeColorByElement, getStrokeStyleByElement, getStrokeWidthByElement } from '../utils';
|
|
6
|
-
export class TableGenerator extends Generator {
|
|
7
|
-
canDraw(element, data) {
|
|
8
|
-
return true;
|
|
9
|
-
}
|
|
10
|
-
draw(element, data) {
|
|
11
|
-
const rectangle = RectangleClient.getRectangleByPoints(element.points);
|
|
12
|
-
const strokeWidth = getStrokeWidthByElement(element);
|
|
13
|
-
const strokeColor = getStrokeColorByElement(this.board, element);
|
|
14
|
-
const strokeStyle = getStrokeStyleByElement(this.board, element);
|
|
15
|
-
const strokeLineDash = getStrokeLineDash(strokeStyle, strokeWidth);
|
|
16
|
-
return getEngine(TableSymbols.table).draw(this.board, rectangle, {
|
|
17
|
-
strokeWidth,
|
|
18
|
-
stroke: strokeColor,
|
|
19
|
-
strokeLineDash
|
|
20
|
-
}, {
|
|
21
|
-
element: element
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvZ2VuZXJhdG9ycy90YWJsZS5nZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBZ0IsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTVELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDdkMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLHVCQUF1QixFQUFFLHVCQUF1QixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBSXJHLE1BQU0sT0FBTyxjQUF3RCxTQUFRLFNBQXVCO0lBQ2hHLE9BQU8sQ0FBQyxPQUFVLEVBQUUsSUFBZTtRQUMvQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsSUFBSSxDQUFDLE9BQVUsRUFBRSxJQUFlO1FBQzVCLE1BQU0sU0FBUyxHQUFHLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsTUFBTyxDQUFDLENBQUM7UUFDeEUsTUFBTSxXQUFXLEdBQUcsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckQsTUFBTSxXQUFXLEdBQUcsdUJBQXVCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNqRSxNQUFNLFdBQVcsR0FBRyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sY0FBYyxHQUFHLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNuRSxPQUFPLFNBQVMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUNyQyxJQUFJLENBQUMsS0FBSyxFQUNWLFNBQVMsRUFDVDtZQUNJLFdBQVc7WUFDWCxNQUFNLEVBQUUsV0FBVztZQUNuQixjQUFjO1NBQ2pCLEVBQ0Q7WUFDSSxPQUFPLEVBQUUsT0FBTztTQUNuQixDQUNKLENBQUM7SUFDTixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYWJsZVN5bWJvbHMgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEdlbmVyYXRvciwgZ2V0U3Ryb2tlTGluZURhc2ggfSBmcm9tICdAcGxhaXQvY29tbW9uJztcbmltcG9ydCB7IFBsYWl0RWxlbWVudCwgUmVjdGFuZ2xlQ2xpZW50IH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgUGxhaXRCYXNlVGFibGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3RhYmxlJztcbmltcG9ydCB7IGdldEVuZ2luZSB9IGZyb20gJy4uL2VuZ2luZXMnO1xuaW1wb3J0IHsgZ2V0U3Ryb2tlQ29sb3JCeUVsZW1lbnQsIGdldFN0cm9rZVN0eWxlQnlFbGVtZW50LCBnZXRTdHJva2VXaWR0aEJ5RWxlbWVudCB9IGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGludGVyZmFjZSBUYWJsZURhdGEge31cblxuZXhwb3J0IGNsYXNzIFRhYmxlR2VuZXJhdG9yPFQgZXh0ZW5kcyBQbGFpdEVsZW1lbnQgPSBQbGFpdEJhc2VUYWJsZT4gZXh0ZW5kcyBHZW5lcmF0b3I8VCwgVGFibGVEYXRhPiB7XG4gICAgY2FuRHJhdyhlbGVtZW50OiBULCBkYXRhOiBUYWJsZURhdGEpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgZHJhdyhlbGVtZW50OiBULCBkYXRhOiBUYWJsZURhdGEpIHtcbiAgICAgICAgY29uc3QgcmVjdGFuZ2xlID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGVsZW1lbnQucG9pbnRzISk7XG4gICAgICAgIGNvbnN0IHN0cm9rZVdpZHRoID0gZ2V0U3Ryb2tlV2lkdGhCeUVsZW1lbnQoZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IHN0cm9rZUNvbG9yID0gZ2V0U3Ryb2tlQ29sb3JCeUVsZW1lbnQodGhpcy5ib2FyZCwgZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IHN0cm9rZVN0eWxlID0gZ2V0U3Ryb2tlU3R5bGVCeUVsZW1lbnQodGhpcy5ib2FyZCwgZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IHN0cm9rZUxpbmVEYXNoID0gZ2V0U3Ryb2tlTGluZURhc2goc3Ryb2tlU3R5bGUsIHN0cm9rZVdpZHRoKTtcbiAgICAgICAgcmV0dXJuIGdldEVuZ2luZShUYWJsZVN5bWJvbHMudGFibGUpLmRyYXcoXG4gICAgICAgICAgICB0aGlzLmJvYXJkLFxuICAgICAgICAgICAgcmVjdGFuZ2xlLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoLFxuICAgICAgICAgICAgICAgIHN0cm9rZTogc3Ryb2tlQ29sb3IsXG4gICAgICAgICAgICAgICAgc3Ryb2tlTGluZURhc2hcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZWxlbWVudDogZWxlbWVudFxuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
|