@plait/draw 0.77.2 → 0.78.0-next.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 +21 -14
- package/fesm2022/plait-draw.mjs.map +1 -1
- package/package.json +1 -3
- package/transforms/image.d.ts +6 -0
- package/utils/hit.d.ts +1 -1
- 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 -22
- 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 -242
- 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,20 +0,0 @@
|
|
|
1
|
-
import { PlaitBoard, setStrokeLinecap } from '@plait/core';
|
|
2
|
-
import { createEllipseEngine } from '../basic-shapes/ellipse';
|
|
3
|
-
export const OrEngine = createEllipseEngine({
|
|
4
|
-
draw(board, rectangle, options) {
|
|
5
|
-
const rs = PlaitBoard.getRoughSVG(board);
|
|
6
|
-
const rx = rectangle.width / 2;
|
|
7
|
-
const ry = rectangle.height / 2;
|
|
8
|
-
const startPoint = [rectangle.x + rectangle.width, rectangle.y + rectangle.height / 2];
|
|
9
|
-
const shape = rs.path(`M${startPoint[0]} ${startPoint[1]}
|
|
10
|
-
A${rx},${ry} 0 1,1 ${startPoint[0]} ${startPoint[1] - 0.01}
|
|
11
|
-
M${rectangle.x} ${rectangle.y + rectangle.height / 2}
|
|
12
|
-
L${rectangle.x + rectangle.width} ${rectangle.y + rectangle.height / 2}
|
|
13
|
-
M${rectangle.x + rectangle.width / 2} ${rectangle.y}
|
|
14
|
-
L${rectangle.x + rectangle.width / 2} ${rectangle.y + rectangle.height}
|
|
15
|
-
`, { ...options, fillStyle: 'solid' });
|
|
16
|
-
setStrokeLinecap(shape, 'round');
|
|
17
|
-
return shape;
|
|
18
|
-
}
|
|
19
|
-
});
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9lbmdpbmVzL2Zsb3djaGFydC9vci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFtQixnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUc1RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU5RCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQWdCLG1CQUFtQixDQUFDO0lBQ3JELElBQUksQ0FBQyxLQUFpQixFQUFFLFNBQTBCLEVBQUUsT0FBZ0I7UUFDaEUsTUFBTSxFQUFFLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxNQUFNLEVBQUUsR0FBRyxTQUFTLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUMvQixNQUFNLEVBQUUsR0FBRyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNoQyxNQUFNLFVBQVUsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdkYsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FDakIsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQztXQUNuQyxFQUFFLElBQUksRUFBRSxVQUFVLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSTtXQUN2RCxTQUFTLENBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDO1dBQ2pELFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssSUFBSSxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQztXQUNuRSxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxDQUFDO1dBQ2hELFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTTtTQUNyRSxFQUNHLEVBQUUsR0FBRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxDQUNyQyxDQUFDO1FBQ0YsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7Q0FDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdEJvYXJkLCBSZWN0YW5nbGVDbGllbnQsIHNldFN0cm9rZUxpbmVjYXAgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBTaGFwZUVuZ2luZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgT3B0aW9ucyB9IGZyb20gJ3JvdWdoanMvYmluL2NvcmUnO1xuaW1wb3J0IHsgY3JlYXRlRWxsaXBzZUVuZ2luZSB9IGZyb20gJy4uL2Jhc2ljLXNoYXBlcy9lbGxpcHNlJztcblxuZXhwb3J0IGNvbnN0IE9yRW5naW5lOiBTaGFwZUVuZ2luZSA9IGNyZWF0ZUVsbGlwc2VFbmdpbmUoe1xuICAgIGRyYXcoYm9hcmQ6IFBsYWl0Qm9hcmQsIHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBvcHRpb25zOiBPcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IHJzID0gUGxhaXRCb2FyZC5nZXRSb3VnaFNWRyhib2FyZCk7XG4gICAgICAgIGNvbnN0IHJ4ID0gcmVjdGFuZ2xlLndpZHRoIC8gMjtcbiAgICAgICAgY29uc3QgcnkgPSByZWN0YW5nbGUuaGVpZ2h0IC8gMjtcbiAgICAgICAgY29uc3Qgc3RhcnRQb2ludCA9IFtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCwgcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0IC8gMl07XG4gICAgICAgIGNvbnN0IHNoYXBlID0gcnMucGF0aChcbiAgICAgICAgICAgIGBNJHtzdGFydFBvaW50WzBdfSAke3N0YXJ0UG9pbnRbMV19XG4gICAgICAgIEEke3J4fSwke3J5fSAwIDEsMSAke3N0YXJ0UG9pbnRbMF19ICR7c3RhcnRQb2ludFsxXSAtIDAuMDF9XG4gICAgICAgIE0ke3JlY3RhbmdsZS54fSAke3JlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodCAvIDJ9XG4gICAgICAgIEwke3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRofSAke3JlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodCAvIDJ9XG4gICAgICAgIE0ke3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoIC8gMn0gJHtyZWN0YW5nbGUueX1cbiAgICAgICAgTCR7cmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggLyAyfSAke3JlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodH1cbiAgICAgICAgYCxcbiAgICAgICAgICAgIHsgLi4ub3B0aW9ucywgZmlsbFN0eWxlOiAnc29saWQnIH1cbiAgICAgICAgKTtcbiAgICAgICAgc2V0U3Ryb2tlTGluZWNhcChzaGFwZSwgJ3JvdW5kJyk7XG4gICAgICAgIHJldHVybiBzaGFwZTtcbiAgICB9XG59KTtcbiJdfQ==
|
|
@@ -1,47 +0,0 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZGVmaW5lZC1wcm9jZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvZW5naW5lcy9mbG93Y2hhcnQvcHJlZGVmaW5lZC1wcm9jZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxVQUFVLEVBR1YsZUFBZSxFQUNmLHNDQUFzQyxFQUN0QyxnQkFBZ0IsRUFDbkIsTUFBTSxhQUFhLENBQUM7QUFHckIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVwRCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBZ0I7SUFDaEQsSUFBSSxDQUFDLEtBQWlCLEVBQUUsU0FBMEIsRUFBRSxPQUFnQjtRQUNoRSxNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQ2pCLElBQUksU0FBUyxDQUFDLENBQUMsSUFBSSxTQUFTLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEtBQy9GLFNBQVMsQ0FBQyxDQUNkLE9BQU8sU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxHQUFHLElBQUksSUFBSSxTQUFTLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssR0FBRyxJQUFJLElBQUksU0FBUyxDQUFDLENBQUM7WUFDOUcsU0FBUyxDQUFDLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDLEtBQUssR0FBRyxJQUFJLElBQUksU0FBUyxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQztZQUMxRyxTQUFTLENBQUMsS0FBSztZQUNmLFNBQVMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxJQUFJLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxFQUM5RCxFQUFFLEdBQUcsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsQ0FDckMsQ0FBQztRQUNGLGdCQUFnQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUVqQyxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBQ0QsYUFBYSxDQUFDLFNBQTBCLEVBQUUsS0FBWTtRQUNsRCxNQUFNLGNBQWMsR0FBRyxlQUFlLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUM1RSxPQUFPLGVBQWUsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFDRCxlQUFlLENBQUMsU0FBMEI7UUFDdEMsT0FBTyxlQUFlLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFDRCxlQUFlLENBQUMsU0FBMEIsRUFBRSxLQUFZO1FBQ3BELE9BQU8sc0NBQXNDLENBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNyRyxDQUFDO0lBQ0Qsd0JBQXdCLENBQUMsU0FBMEIsRUFBRSxnQkFBa0M7UUFDbkYsTUFBTSxPQUFPLEdBQUcsZUFBZSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzRCxNQUFNLEtBQUssR0FBRyxlQUFlLENBQUMsa0JBQWtCLENBQUMsU0FBUyxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDOUUsT0FBTywrQkFBK0IsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUNELGtCQUFrQixDQUFDLFNBQTBCO1FBQ3pDLE9BQU8sZUFBZSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxnQkFBZ0IsRUFBRSxDQUFDLE9BQXNCLEVBQUUsRUFBRTtRQUN6QyxNQUFNLGdCQUFnQixHQUFHLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsTUFBTyxDQUFDLENBQUM7UUFDL0UsTUFBTSxXQUFXLEdBQUcsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckQsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFVBQVcsQ0FBQztRQUNuQyxNQUFNLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLEdBQUcsaUJBQWlCLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxHQUFHLFdBQVcsR0FBRyxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUM7UUFDcEksT0FBTztZQUNILE1BQU07WUFDTixLQUFLLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVCLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLEdBQUcsaUJBQWlCLENBQUMsZ0JBQWdCLEdBQUcsV0FBVyxHQUFHLGdCQUFnQixDQUFDLEtBQUssR0FBRyxJQUFJO1lBQ3hHLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQztTQUNqRSxDQUFDO0lBQ04sQ0FBQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIFBsYWl0Qm9hcmQsXG4gICAgUG9pbnQsXG4gICAgUG9pbnRPZlJlY3RhbmdsZSxcbiAgICBSZWN0YW5nbGVDbGllbnQsXG4gICAgZ2V0TmVhcmVzdFBvaW50QmV0d2VlblBvaW50QW5kU2VnbWVudHMsXG4gICAgc2V0U3Ryb2tlTGluZWNhcFxufSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBQbGFpdEdlb21ldHJ5LCBTaGFwZUVuZ2luZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgT3B0aW9ucyB9IGZyb20gJ3JvdWdoanMvYmluL2NvcmUnO1xuaW1wb3J0IHsgUmVjdGFuZ2xlRW5naW5lIH0gZnJvbSAnLi4vYmFzaWMtc2hhcGVzL3JlY3RhbmdsZSc7XG5pbXBvcnQgeyBnZXRQb2x5Z29uRWRnZUJ5Q29ubmVjdGlvblBvaW50IH0gZnJvbSAnLi4vLi4vdXRpbHMvcG9seWdvbic7XG5pbXBvcnQgeyBnZXRTdHJva2VXaWR0aEJ5RWxlbWVudCB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IFNoYXBlRGVmYXVsdFNwYWNlIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcblxuZXhwb3J0IGNvbnN0IFByZWRlZmluZWRQcm9jZXNzRW5naW5lOiBTaGFwZUVuZ2luZSA9IHtcbiAgICBkcmF3KGJvYXJkOiBQbGFpdEJvYXJkLCByZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgb3B0aW9uczogT3B0aW9ucykge1xuICAgICAgICBjb25zdCBycyA9IFBsYWl0Qm9hcmQuZ2V0Um91Z2hTVkcoYm9hcmQpO1xuICAgICAgICBjb25zdCBzaGFwZSA9IHJzLnBhdGgoXG4gICAgICAgICAgICBgTSR7cmVjdGFuZ2xlLnh9ICR7cmVjdGFuZ2xlLnl9IEgke3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRofSBWJHtyZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHR9IEgke1xuICAgICAgICAgICAgICAgIHJlY3RhbmdsZS54XG4gICAgICAgICAgICB9IFogTSR7cmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggKiAwLjA2fSAke3JlY3RhbmdsZS55fSBMJHtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAqIDAuMDZ9ICR7cmVjdGFuZ2xlLnkgK1xuICAgICAgICAgICAgICAgIHJlY3RhbmdsZS5oZWlnaHR9IE0ke3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoIC0gcmVjdGFuZ2xlLndpZHRoICogMC4wNn0gJHtyZWN0YW5nbGUueX0gTCR7cmVjdGFuZ2xlLnggK1xuICAgICAgICAgICAgICAgIHJlY3RhbmdsZS53aWR0aCAtXG4gICAgICAgICAgICAgICAgcmVjdGFuZ2xlLndpZHRoICogMC4wNn0gJHtyZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHR9YCxcbiAgICAgICAgICAgIHsgLi4ub3B0aW9ucywgZmlsbFN0eWxlOiAnc29saWQnIH1cbiAgICAgICAgKTtcbiAgICAgICAgc2V0U3Ryb2tlTGluZWNhcChzaGFwZSwgJ3JvdW5kJyk7XG5cbiAgICAgICAgcmV0dXJuIHNoYXBlO1xuICAgIH0sXG4gICAgaXNJbnNpZGVQb2ludChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcG9pbnQ6IFBvaW50KSB7XG4gICAgICAgIGNvbnN0IHJhbmdlUmVjdGFuZ2xlID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKFtwb2ludCwgcG9pbnRdKTtcbiAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5pc0hpdChyZWN0YW5nbGUsIHJhbmdlUmVjdGFuZ2xlKTtcbiAgICB9LFxuICAgIGdldENvcm5lclBvaW50cyhyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCkge1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmdldENvcm5lclBvaW50cyhyZWN0YW5nbGUpO1xuICAgIH0sXG4gICAgZ2V0TmVhcmVzdFBvaW50KHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBwb2ludDogUG9pbnQpIHtcbiAgICAgICAgcmV0dXJuIGdldE5lYXJlc3RQb2ludEJldHdlZW5Qb2ludEFuZFNlZ21lbnRzKHBvaW50LCBSZWN0YW5nbGVFbmdpbmUuZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZSkpO1xuICAgIH0sXG4gICAgZ2V0RWRnZUJ5Q29ubmVjdGlvblBvaW50KHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBwb2ludE9mUmVjdGFuZ2xlOiBQb2ludE9mUmVjdGFuZ2xlKTogW1BvaW50LCBQb2ludF0gfCBudWxsIHtcbiAgICAgICAgY29uc3QgY29ybmVycyA9IFJlY3RhbmdsZUVuZ2luZS5nZXRDb3JuZXJQb2ludHMocmVjdGFuZ2xlKTtcbiAgICAgICAgY29uc3QgcG9pbnQgPSBSZWN0YW5nbGVDbGllbnQuZ2V0Q29ubmVjdGlvblBvaW50KHJlY3RhbmdsZSwgcG9pbnRPZlJlY3RhbmdsZSk7XG4gICAgICAgIHJldHVybiBnZXRQb2x5Z29uRWRnZUJ5Q29ubmVjdGlvblBvaW50KGNvcm5lcnMsIHBvaW50KTtcbiAgICB9LFxuICAgIGdldENvbm5lY3RvclBvaW50cyhyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCkge1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmdldEVkZ2VDZW50ZXJQb2ludHMocmVjdGFuZ2xlKTtcbiAgICB9LFxuXG4gICAgZ2V0VGV4dFJlY3RhbmdsZTogKGVsZW1lbnQ6IFBsYWl0R2VvbWV0cnkpID0+IHtcbiAgICAgICAgY29uc3QgZWxlbWVudFJlY3RhbmdsZSA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhlbGVtZW50LnBvaW50cyEpO1xuICAgICAgICBjb25zdCBzdHJva2VXaWR0aCA9IGdldFN0cm9rZVdpZHRoQnlFbGVtZW50KGVsZW1lbnQpO1xuICAgICAgICBjb25zdCBoZWlnaHQgPSBlbGVtZW50LnRleHRIZWlnaHQhO1xuICAgICAgICBjb25zdCB3aWR0aCA9IGVsZW1lbnRSZWN0YW5nbGUud2lkdGggLSBTaGFwZURlZmF1bHRTcGFjZS5yZWN0YW5nbGVBbmRUZXh0ICogMiAtIHN0cm9rZVdpZHRoICogMiAtIGVsZW1lbnRSZWN0YW5nbGUud2lkdGggKiAwLjA2ICogMjtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGhlaWdodCxcbiAgICAgICAgICAgIHdpZHRoOiB3aWR0aCA+IDAgPyB3aWR0aCA6IDAsXG4gICAgICAgICAgICB4OiBlbGVtZW50UmVjdGFuZ2xlLnggKyBTaGFwZURlZmF1bHRTcGFjZS5yZWN0YW5nbGVBbmRUZXh0ICsgc3Ryb2tlV2lkdGggKyBlbGVtZW50UmVjdGFuZ2xlLndpZHRoICogMC4wNixcbiAgICAgICAgICAgIHk6IGVsZW1lbnRSZWN0YW5nbGUueSArIChlbGVtZW50UmVjdGFuZ2xlLmhlaWdodCAtIGhlaWdodCkgLyAyXG4gICAgICAgIH07XG4gICAgfVxufTtcbiJdfQ==
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { RectangleClient } from '@plait/core';
|
|
2
|
-
import { createPolygonEngine } from '../basic-shapes/polygon';
|
|
3
|
-
import { getTextRectangle } from '../../utils';
|
|
4
|
-
export const getPreparationPoints = (rectangle) => {
|
|
5
|
-
return [
|
|
6
|
-
[rectangle.x, rectangle.y + rectangle.height / 2],
|
|
7
|
-
[rectangle.x + rectangle.width / 6, rectangle.y],
|
|
8
|
-
[rectangle.x + (rectangle.width * 5) / 6, rectangle.y],
|
|
9
|
-
[rectangle.x + rectangle.width, rectangle.y + rectangle.height / 2],
|
|
10
|
-
[rectangle.x + (rectangle.width * 5) / 6, rectangle.y + rectangle.height],
|
|
11
|
-
[rectangle.x + rectangle.width / 6, rectangle.y + rectangle.height]
|
|
12
|
-
];
|
|
13
|
-
};
|
|
14
|
-
export const PreparationEngine = createPolygonEngine({
|
|
15
|
-
getPolygonPoints: getPreparationPoints,
|
|
16
|
-
getConnectorPoints: (rectangle) => {
|
|
17
|
-
return RectangleClient.getEdgeCenterPoints(rectangle);
|
|
18
|
-
},
|
|
19
|
-
getTextRectangle(element) {
|
|
20
|
-
const rectangle = getTextRectangle(element);
|
|
21
|
-
const width = rectangle.width;
|
|
22
|
-
rectangle.width = (rectangle.width * 2) / 3;
|
|
23
|
-
rectangle.x += width / 6;
|
|
24
|
-
return rectangle;
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcGFyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9lbmdpbmVzL2Zsb3djaGFydC9wcmVwYXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVMsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXJELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUUvQyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLFNBQTBCLEVBQVcsRUFBRTtJQUN4RSxPQUFPO1FBQ0gsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDakQsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDaEQsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUN0RCxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ25FLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQztRQUN6RSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDO0tBQ3RFLENBQUM7QUFDTixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBZ0IsbUJBQW1CLENBQUM7SUFDOUQsZ0JBQWdCLEVBQUUsb0JBQW9CO0lBQ3RDLGtCQUFrQixFQUFFLENBQUMsU0FBMEIsRUFBRSxFQUFFO1FBQy9DLE9BQU8sZUFBZSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxPQUFzQjtRQUNuQyxNQUFNLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM1QyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDO1FBQzlCLFNBQVMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1QyxTQUFTLENBQUMsQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDekIsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztDQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBvaW50LCBSZWN0YW5nbGVDbGllbnQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBQbGFpdEdlb21ldHJ5LCBTaGFwZUVuZ2luZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgY3JlYXRlUG9seWdvbkVuZ2luZSB9IGZyb20gJy4uL2Jhc2ljLXNoYXBlcy9wb2x5Z29uJztcbmltcG9ydCB7IGdldFRleHRSZWN0YW5nbGUgfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbmV4cG9ydCBjb25zdCBnZXRQcmVwYXJhdGlvblBvaW50cyA9IChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCk6IFBvaW50W10gPT4ge1xuICAgIHJldHVybiBbXG4gICAgICAgIFtyZWN0YW5nbGUueCwgcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0IC8gMl0sXG4gICAgICAgIFtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAvIDYsIHJlY3RhbmdsZS55XSxcbiAgICAgICAgW3JlY3RhbmdsZS54ICsgKHJlY3RhbmdsZS53aWR0aCAqIDUpIC8gNiwgcmVjdGFuZ2xlLnldLFxuICAgICAgICBbcmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGgsIHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodCAvIDJdLFxuICAgICAgICBbcmVjdGFuZ2xlLnggKyAocmVjdGFuZ2xlLndpZHRoICogNSkgLyA2LCByZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHRdLFxuICAgICAgICBbcmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggLyA2LCByZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHRdXG4gICAgXTtcbn07XG5cbmV4cG9ydCBjb25zdCBQcmVwYXJhdGlvbkVuZ2luZTogU2hhcGVFbmdpbmUgPSBjcmVhdGVQb2x5Z29uRW5naW5lKHtcbiAgICBnZXRQb2x5Z29uUG9pbnRzOiBnZXRQcmVwYXJhdGlvblBvaW50cyxcbiAgICBnZXRDb25uZWN0b3JQb2ludHM6IChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCkgPT4ge1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmdldEVkZ2VDZW50ZXJQb2ludHMocmVjdGFuZ2xlKTtcbiAgICB9LFxuICAgIGdldFRleHRSZWN0YW5nbGUoZWxlbWVudDogUGxhaXRHZW9tZXRyeSkge1xuICAgICAgICBjb25zdCByZWN0YW5nbGUgPSBnZXRUZXh0UmVjdGFuZ2xlKGVsZW1lbnQpO1xuICAgICAgICBjb25zdCB3aWR0aCA9IHJlY3RhbmdsZS53aWR0aDtcbiAgICAgICAgcmVjdGFuZ2xlLndpZHRoID0gKHJlY3RhbmdsZS53aWR0aCAqIDIpIC8gMztcbiAgICAgICAgcmVjdGFuZ2xlLnggKz0gd2lkdGggLyA2O1xuICAgICAgICByZXR1cm4gcmVjdGFuZ2xlO1xuICAgIH1cbn0pO1xuIl19
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import { PlaitBoard, RectangleClient, getEllipseTangentSlope, getNearestPointBetweenPointAndSegments, getVectorFromPointAndSlope, isPointInEllipse, setStrokeLinecap, getNearestPointBetweenPointAndEllipse } from '@plait/core';
|
|
2
|
-
import { RectangleEngine } from '../basic-shapes/rectangle';
|
|
3
|
-
import { getTextRectangle } from '../../utils';
|
|
4
|
-
export const StoredDataEngine = {
|
|
5
|
-
draw(board, rectangle, options) {
|
|
6
|
-
const rs = PlaitBoard.getRoughSVG(board);
|
|
7
|
-
const shape = rs.path(`M${rectangle.x + rectangle.width / 10} ${rectangle.y} L${rectangle.x + rectangle.width} ${rectangle.y} A ${rectangle.width /
|
|
8
|
-
10} ${rectangle.height / 2}, 0, 0, 0,${rectangle.x + rectangle.width} ${rectangle.y + rectangle.height} L${rectangle.x +
|
|
9
|
-
rectangle.width / 10} ${rectangle.y + rectangle.height}A ${rectangle.width / 10} ${rectangle.height /
|
|
10
|
-
2}, 0, 0, 1,${rectangle.x + rectangle.width / 10} ${rectangle.y}`, { ...options, fillStyle: 'solid' });
|
|
11
|
-
setStrokeLinecap(shape, 'round');
|
|
12
|
-
return shape;
|
|
13
|
-
},
|
|
14
|
-
isInsidePoint(rectangle, point) {
|
|
15
|
-
//split shape to rectangle and a half ellipse
|
|
16
|
-
const rangeRectangle = RectangleClient.getRectangleByPoints([point, point]);
|
|
17
|
-
const isInRectangle = RectangleClient.isHit({
|
|
18
|
-
...rectangle,
|
|
19
|
-
x: rectangle.x + rectangle.width / 10,
|
|
20
|
-
width: (rectangle.width * 9) / 10
|
|
21
|
-
}, rangeRectangle);
|
|
22
|
-
const isInFrontEllipse = isPointInEllipse(point, [rectangle.x + rectangle.width / 10, rectangle.y + rectangle.height / 2], rectangle.width / 10, rectangle.height / 2);
|
|
23
|
-
const notInBackEllipse = !isPointInEllipse(point, [rectangle.x + rectangle.width, rectangle.y + rectangle.height / 2], rectangle.width / 10, rectangle.height / 2);
|
|
24
|
-
return (isInRectangle && notInBackEllipse) || isInFrontEllipse;
|
|
25
|
-
},
|
|
26
|
-
getCornerPoints(rectangle) {
|
|
27
|
-
return RectangleClient.getCornerPoints(rectangle);
|
|
28
|
-
},
|
|
29
|
-
getNearestPoint(rectangle, point) {
|
|
30
|
-
const nearestPoint = getNearestPointBetweenPointAndSegments(point, RectangleEngine.getCornerPoints(rectangle));
|
|
31
|
-
if (nearestPoint[0] < rectangle.x + rectangle.width / 10) {
|
|
32
|
-
const centerPoint = [rectangle.x + rectangle.width / 10, rectangle.y + rectangle.height / 2];
|
|
33
|
-
const nearestPoint = getNearestPointBetweenPointAndEllipse(point, centerPoint, rectangle.width / 10, rectangle.height / 2);
|
|
34
|
-
if (nearestPoint[0] > centerPoint[0]) {
|
|
35
|
-
nearestPoint[0] = centerPoint[0] * 2 - nearestPoint[0];
|
|
36
|
-
}
|
|
37
|
-
return nearestPoint;
|
|
38
|
-
}
|
|
39
|
-
if (nearestPoint[0] > rectangle.x + (rectangle.width * 9) / 10) {
|
|
40
|
-
const centerPoint = [rectangle.x + rectangle.width, rectangle.y + rectangle.height / 2];
|
|
41
|
-
const nearestPoint = getNearestPointBetweenPointAndEllipse(point, centerPoint, rectangle.width / 10, rectangle.height / 2);
|
|
42
|
-
if (nearestPoint[0] > centerPoint[0]) {
|
|
43
|
-
nearestPoint[0] = centerPoint[0] * 2 - nearestPoint[0];
|
|
44
|
-
}
|
|
45
|
-
return nearestPoint;
|
|
46
|
-
}
|
|
47
|
-
return nearestPoint;
|
|
48
|
-
},
|
|
49
|
-
getTangentVectorByConnectionPoint(rectangle, pointOfRectangle) {
|
|
50
|
-
const connectionPoint = RectangleClient.getConnectionPoint(rectangle, pointOfRectangle);
|
|
51
|
-
let centerPoint = [rectangle.x + rectangle.width / 10, rectangle.y + rectangle.height / 2];
|
|
52
|
-
let a = rectangle.width / 10;
|
|
53
|
-
let b = rectangle.height / 2;
|
|
54
|
-
const isBackEllipse = connectionPoint[0] > rectangle.x + (rectangle.width * 9) / 10 && connectionPoint[1] > rectangle.y;
|
|
55
|
-
if (isBackEllipse) {
|
|
56
|
-
centerPoint = [rectangle.x + rectangle.width, rectangle.y + rectangle.height / 2];
|
|
57
|
-
}
|
|
58
|
-
const point = [connectionPoint[0] - centerPoint[0], -(connectionPoint[1] - centerPoint[1])];
|
|
59
|
-
const slope = getEllipseTangentSlope(point[0], point[1], a, b);
|
|
60
|
-
const vector = getVectorFromPointAndSlope(point[0], point[1], slope);
|
|
61
|
-
return isBackEllipse ? vector.map(num => -num) : vector;
|
|
62
|
-
},
|
|
63
|
-
getConnectorPoints(rectangle) {
|
|
64
|
-
return [
|
|
65
|
-
[rectangle.x + rectangle.width / 2, rectangle.y],
|
|
66
|
-
[rectangle.x + (rectangle.width * 9) / 10, rectangle.y + rectangle.height / 2],
|
|
67
|
-
[rectangle.x + rectangle.width / 2, rectangle.y + rectangle.height],
|
|
68
|
-
[rectangle.x, rectangle.y + rectangle.height / 2]
|
|
69
|
-
];
|
|
70
|
-
},
|
|
71
|
-
getTextRectangle(element) {
|
|
72
|
-
const rectangle = getTextRectangle(element);
|
|
73
|
-
const width = rectangle.width;
|
|
74
|
-
rectangle.width = (rectangle.width * 3) / 4;
|
|
75
|
-
rectangle.x += width / 8;
|
|
76
|
-
return rectangle;
|
|
77
|
-
}
|
|
78
|
-
};
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmVkLWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9lbmdpbmVzL2Zsb3djaGFydC9zdG9yZWQtZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsVUFBVSxFQUdWLGVBQWUsRUFFZixzQkFBc0IsRUFDdEIsc0NBQXNDLEVBQ3RDLDBCQUEwQixFQUMxQixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLHFDQUFxQyxFQUN4QyxNQUFNLGFBQWEsQ0FBQztBQUdyQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFnQjtJQUN6QyxJQUFJLENBQUMsS0FBaUIsRUFBRSxTQUEwQixFQUFFLE9BQWdCO1FBQ2hFLE1BQU0sRUFBRSxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FDakIsSUFBSSxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEdBQUcsRUFBRSxJQUFJLFNBQVMsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxJQUFJLFNBQVMsQ0FBQyxDQUFDLE9BQU8sU0FBUyxDQUFDLEtBQUs7WUFDeEgsRUFBRSxJQUFJLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxhQUFhLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssSUFBSSxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUM7WUFDdEgsU0FBUyxDQUFDLEtBQUssR0FBRyxFQUFFLElBQUksU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxNQUFNLFNBQVMsQ0FBQyxLQUFLLEdBQUcsRUFBRSxJQUFJLFNBQVMsQ0FBQyxNQUFNO1lBQ3BHLENBQUMsYUFBYSxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEdBQUcsRUFBRSxJQUFJLFNBQVMsQ0FBQyxDQUFDLEVBQUUsRUFDckUsRUFBRSxHQUFHLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLENBQ3JDLENBQUM7UUFDRixnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDakMsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUNELGFBQWEsQ0FBQyxTQUEwQixFQUFFLEtBQVk7UUFDbEQsNkNBQTZDO1FBQzdDLE1BQU0sY0FBYyxHQUFHLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzVFLE1BQU0sYUFBYSxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQ3ZDO1lBQ0ksR0FBRyxTQUFTO1lBQ1osQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssR0FBRyxFQUFFO1lBQ3JDLEtBQUssRUFBRSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRTtTQUNwQyxFQUNELGNBQWMsQ0FDakIsQ0FBQztRQUVGLE1BQU0sZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQ3JDLEtBQUssRUFDTCxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssR0FBRyxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUN4RSxTQUFTLENBQUMsS0FBSyxHQUFHLEVBQUUsRUFDcEIsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQ3ZCLENBQUM7UUFFRixNQUFNLGdCQUFnQixHQUFHLENBQUMsZ0JBQWdCLENBQ3RDLEtBQUssRUFDTCxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQ25FLFNBQVMsQ0FBQyxLQUFLLEdBQUcsRUFBRSxFQUNwQixTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FDdkIsQ0FBQztRQUNGLE9BQU8sQ0FBQyxhQUFhLElBQUksZ0JBQWdCLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQztJQUNuRSxDQUFDO0lBQ0QsZUFBZSxDQUFDLFNBQTBCO1FBQ3RDLE9BQU8sZUFBZSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBQ0QsZUFBZSxDQUFDLFNBQTBCLEVBQUUsS0FBWTtRQUNwRCxNQUFNLFlBQVksR0FBRyxzQ0FBc0MsQ0FBQyxLQUFLLEVBQUUsZUFBZSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQy9HLElBQUksWUFBWSxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssR0FBRyxFQUFFLEVBQUUsQ0FBQztZQUN2RCxNQUFNLFdBQVcsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssR0FBRyxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBVSxDQUFDO1lBQ3RHLE1BQU0sWUFBWSxHQUFHLHFDQUFxQyxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxDQUFDLEtBQUssR0FBRyxFQUFFLEVBQUUsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMzSCxJQUFJLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDbkMsWUFBWSxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNELENBQUM7WUFDRCxPQUFPLFlBQVksQ0FBQztRQUN4QixDQUFDO1FBQ0QsSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUM7WUFDN0QsTUFBTSxXQUFXLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBVSxDQUFDO1lBQ2pHLE1BQU0sWUFBWSxHQUFHLHFDQUFxQyxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxDQUFDLEtBQUssR0FBRyxFQUFFLEVBQUUsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMzSCxJQUFJLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDbkMsWUFBWSxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNELENBQUM7WUFDRCxPQUFPLFlBQVksQ0FBQztRQUN4QixDQUFDO1FBQ0QsT0FBTyxZQUFZLENBQUM7SUFDeEIsQ0FBQztJQUNELGlDQUFpQyxDQUFDLFNBQTBCLEVBQUUsZ0JBQWtDO1FBQzVGLE1BQU0sZUFBZSxHQUFHLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUN4RixJQUFJLFdBQVcsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssR0FBRyxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzNGLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQzdCLE1BQU0sYUFBYSxHQUFHLGVBQWUsQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksZUFBZSxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDeEgsSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUNoQixXQUFXLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3RGLENBQUM7UUFDRCxNQUFNLEtBQUssR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVGLE1BQU0sS0FBSyxHQUFHLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBUSxDQUFDO1FBQ3RFLE1BQU0sTUFBTSxHQUFHLDBCQUEwQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDckUsT0FBTyxhQUFhLENBQUMsQ0FBQyxDQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBWSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDeEUsQ0FBQztJQUNELGtCQUFrQixDQUFDLFNBQTBCO1FBQ3pDLE9BQU87WUFDSCxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUNoRCxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQzlFLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUM7WUFDbkUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7U0FDcEQsQ0FBQztJQUNOLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxPQUFzQjtRQUNuQyxNQUFNLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM1QyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDO1FBQzlCLFNBQVMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1QyxTQUFTLENBQUMsQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDekIsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIFBsYWl0Qm9hcmQsXG4gICAgUG9pbnQsXG4gICAgUG9pbnRPZlJlY3RhbmdsZSxcbiAgICBSZWN0YW5nbGVDbGllbnQsXG4gICAgVmVjdG9yLFxuICAgIGdldEVsbGlwc2VUYW5nZW50U2xvcGUsXG4gICAgZ2V0TmVhcmVzdFBvaW50QmV0d2VlblBvaW50QW5kU2VnbWVudHMsXG4gICAgZ2V0VmVjdG9yRnJvbVBvaW50QW5kU2xvcGUsXG4gICAgaXNQb2ludEluRWxsaXBzZSxcbiAgICBzZXRTdHJva2VMaW5lY2FwLFxuICAgIGdldE5lYXJlc3RQb2ludEJldHdlZW5Qb2ludEFuZEVsbGlwc2Vcbn0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgUGxhaXRHZW9tZXRyeSwgU2hhcGVFbmdpbmUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE9wdGlvbnMgfSBmcm9tICdyb3VnaGpzL2Jpbi9jb3JlJztcbmltcG9ydCB7IFJlY3RhbmdsZUVuZ2luZSB9IGZyb20gJy4uL2Jhc2ljLXNoYXBlcy9yZWN0YW5nbGUnO1xuaW1wb3J0IHsgZ2V0VGV4dFJlY3RhbmdsZSB9IGZyb20gJy4uLy4uL3V0aWxzJztcblxuZXhwb3J0IGNvbnN0IFN0b3JlZERhdGFFbmdpbmU6IFNoYXBlRW5naW5lID0ge1xuICAgIGRyYXcoYm9hcmQ6IFBsYWl0Qm9hcmQsIHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBvcHRpb25zOiBPcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IHJzID0gUGxhaXRCb2FyZC5nZXRSb3VnaFNWRyhib2FyZCk7XG4gICAgICAgIGNvbnN0IHNoYXBlID0gcnMucGF0aChcbiAgICAgICAgICAgIGBNJHtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAvIDEwfSAke3JlY3RhbmdsZS55fSBMJHtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aH0gJHtyZWN0YW5nbGUueX0gQSAgJHtyZWN0YW5nbGUud2lkdGggL1xuICAgICAgICAgICAgICAgIDEwfSAke3JlY3RhbmdsZS5oZWlnaHQgLyAyfSwgMCwgMCwgMCwke3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRofSAke3JlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodH0gTCR7cmVjdGFuZ2xlLnggK1xuICAgICAgICAgICAgICAgIHJlY3RhbmdsZS53aWR0aCAvIDEwfSAke3JlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodH1BICAke3JlY3RhbmdsZS53aWR0aCAvIDEwfSAke3JlY3RhbmdsZS5oZWlnaHQgL1xuICAgICAgICAgICAgICAgIDJ9LCAwLCAwLCAxLCR7cmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggLyAxMH0gJHtyZWN0YW5nbGUueX1gLFxuICAgICAgICAgICAgeyAuLi5vcHRpb25zLCBmaWxsU3R5bGU6ICdzb2xpZCcgfVxuICAgICAgICApO1xuICAgICAgICBzZXRTdHJva2VMaW5lY2FwKHNoYXBlLCAncm91bmQnKTtcbiAgICAgICAgcmV0dXJuIHNoYXBlO1xuICAgIH0sXG4gICAgaXNJbnNpZGVQb2ludChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcG9pbnQ6IFBvaW50KSB7XG4gICAgICAgIC8vc3BsaXQgc2hhcGUgdG8gcmVjdGFuZ2xlIGFuZCBhIGhhbGYgZWxsaXBzZVxuICAgICAgICBjb25zdCByYW5nZVJlY3RhbmdsZSA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhbcG9pbnQsIHBvaW50XSk7XG4gICAgICAgIGNvbnN0IGlzSW5SZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuaXNIaXQoXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgLi4ucmVjdGFuZ2xlLFxuICAgICAgICAgICAgICAgIHg6IHJlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoIC8gMTAsXG4gICAgICAgICAgICAgICAgd2lkdGg6IChyZWN0YW5nbGUud2lkdGggKiA5KSAvIDEwXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmFuZ2VSZWN0YW5nbGVcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBpc0luRnJvbnRFbGxpcHNlID0gaXNQb2ludEluRWxsaXBzZShcbiAgICAgICAgICAgIHBvaW50LFxuICAgICAgICAgICAgW3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoIC8gMTAsIHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodCAvIDJdLFxuICAgICAgICAgICAgcmVjdGFuZ2xlLndpZHRoIC8gMTAsXG4gICAgICAgICAgICByZWN0YW5nbGUuaGVpZ2h0IC8gMlxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IG5vdEluQmFja0VsbGlwc2UgPSAhaXNQb2ludEluRWxsaXBzZShcbiAgICAgICAgICAgIHBvaW50LFxuICAgICAgICAgICAgW3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoLCByZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHQgLyAyXSxcbiAgICAgICAgICAgIHJlY3RhbmdsZS53aWR0aCAvIDEwLFxuICAgICAgICAgICAgcmVjdGFuZ2xlLmhlaWdodCAvIDJcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIChpc0luUmVjdGFuZ2xlICYmIG5vdEluQmFja0VsbGlwc2UpIHx8IGlzSW5Gcm9udEVsbGlwc2U7XG4gICAgfSxcbiAgICBnZXRDb3JuZXJQb2ludHMocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpIHtcbiAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5nZXRDb3JuZXJQb2ludHMocmVjdGFuZ2xlKTtcbiAgICB9LFxuICAgIGdldE5lYXJlc3RQb2ludChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcG9pbnQ6IFBvaW50KSB7XG4gICAgICAgIGNvbnN0IG5lYXJlc3RQb2ludCA9IGdldE5lYXJlc3RQb2ludEJldHdlZW5Qb2ludEFuZFNlZ21lbnRzKHBvaW50LCBSZWN0YW5nbGVFbmdpbmUuZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZSkpO1xuICAgICAgICBpZiAobmVhcmVzdFBvaW50WzBdIDwgcmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggLyAxMCkge1xuICAgICAgICAgICAgY29uc3QgY2VudGVyUG9pbnQgPSBbcmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggLyAxMCwgcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0IC8gMl0gYXMgUG9pbnQ7XG4gICAgICAgICAgICBjb25zdCBuZWFyZXN0UG9pbnQgPSBnZXROZWFyZXN0UG9pbnRCZXR3ZWVuUG9pbnRBbmRFbGxpcHNlKHBvaW50LCBjZW50ZXJQb2ludCwgcmVjdGFuZ2xlLndpZHRoIC8gMTAsIHJlY3RhbmdsZS5oZWlnaHQgLyAyKTtcbiAgICAgICAgICAgIGlmIChuZWFyZXN0UG9pbnRbMF0gPiBjZW50ZXJQb2ludFswXSkge1xuICAgICAgICAgICAgICAgIG5lYXJlc3RQb2ludFswXSA9IGNlbnRlclBvaW50WzBdICogMiAtIG5lYXJlc3RQb2ludFswXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBuZWFyZXN0UG9pbnQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5lYXJlc3RQb2ludFswXSA+IHJlY3RhbmdsZS54ICsgKHJlY3RhbmdsZS53aWR0aCAqIDkpIC8gMTApIHtcbiAgICAgICAgICAgIGNvbnN0IGNlbnRlclBvaW50ID0gW3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoLCByZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHQgLyAyXSBhcyBQb2ludDtcbiAgICAgICAgICAgIGNvbnN0IG5lYXJlc3RQb2ludCA9IGdldE5lYXJlc3RQb2ludEJldHdlZW5Qb2ludEFuZEVsbGlwc2UocG9pbnQsIGNlbnRlclBvaW50LCByZWN0YW5nbGUud2lkdGggLyAxMCwgcmVjdGFuZ2xlLmhlaWdodCAvIDIpO1xuICAgICAgICAgICAgaWYgKG5lYXJlc3RQb2ludFswXSA+IGNlbnRlclBvaW50WzBdKSB7XG4gICAgICAgICAgICAgICAgbmVhcmVzdFBvaW50WzBdID0gY2VudGVyUG9pbnRbMF0gKiAyIC0gbmVhcmVzdFBvaW50WzBdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG5lYXJlc3RQb2ludDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmVhcmVzdFBvaW50O1xuICAgIH0sXG4gICAgZ2V0VGFuZ2VudFZlY3RvckJ5Q29ubmVjdGlvblBvaW50KHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBwb2ludE9mUmVjdGFuZ2xlOiBQb2ludE9mUmVjdGFuZ2xlKSB7XG4gICAgICAgIGNvbnN0IGNvbm5lY3Rpb25Qb2ludCA9IFJlY3RhbmdsZUNsaWVudC5nZXRDb25uZWN0aW9uUG9pbnQocmVjdGFuZ2xlLCBwb2ludE9mUmVjdGFuZ2xlKTtcbiAgICAgICAgbGV0IGNlbnRlclBvaW50ID0gW3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoIC8gMTAsIHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodCAvIDJdO1xuICAgICAgICBsZXQgYSA9IHJlY3RhbmdsZS53aWR0aCAvIDEwO1xuICAgICAgICBsZXQgYiA9IHJlY3RhbmdsZS5oZWlnaHQgLyAyO1xuICAgICAgICBjb25zdCBpc0JhY2tFbGxpcHNlID0gY29ubmVjdGlvblBvaW50WzBdID4gcmVjdGFuZ2xlLnggKyAocmVjdGFuZ2xlLndpZHRoICogOSkgLyAxMCAmJiBjb25uZWN0aW9uUG9pbnRbMV0gPiByZWN0YW5nbGUueTtcbiAgICAgICAgaWYgKGlzQmFja0VsbGlwc2UpIHtcbiAgICAgICAgICAgIGNlbnRlclBvaW50ID0gW3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoLCByZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHQgLyAyXTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwb2ludCA9IFtjb25uZWN0aW9uUG9pbnRbMF0gLSBjZW50ZXJQb2ludFswXSwgLShjb25uZWN0aW9uUG9pbnRbMV0gLSBjZW50ZXJQb2ludFsxXSldO1xuICAgICAgICBjb25zdCBzbG9wZSA9IGdldEVsbGlwc2VUYW5nZW50U2xvcGUocG9pbnRbMF0sIHBvaW50WzFdLCBhLCBiKSBhcyBhbnk7XG4gICAgICAgIGNvbnN0IHZlY3RvciA9IGdldFZlY3RvckZyb21Qb2ludEFuZFNsb3BlKHBvaW50WzBdLCBwb2ludFsxXSwgc2xvcGUpO1xuICAgICAgICByZXR1cm4gaXNCYWNrRWxsaXBzZSA/ICh2ZWN0b3IubWFwKG51bSA9PiAtbnVtKSBhcyBWZWN0b3IpIDogdmVjdG9yO1xuICAgIH0sXG4gICAgZ2V0Q29ubmVjdG9yUG9pbnRzKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50KSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBbcmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggLyAyLCByZWN0YW5nbGUueV0sXG4gICAgICAgICAgICBbcmVjdGFuZ2xlLnggKyAocmVjdGFuZ2xlLndpZHRoICogOSkgLyAxMCwgcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0IC8gMl0sXG4gICAgICAgICAgICBbcmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggLyAyLCByZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHRdLFxuICAgICAgICAgICAgW3JlY3RhbmdsZS54LCByZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHQgLyAyXVxuICAgICAgICBdO1xuICAgIH0sXG4gICAgZ2V0VGV4dFJlY3RhbmdsZShlbGVtZW50OiBQbGFpdEdlb21ldHJ5KSB7XG4gICAgICAgIGNvbnN0IHJlY3RhbmdsZSA9IGdldFRleHRSZWN0YW5nbGUoZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IHdpZHRoID0gcmVjdGFuZ2xlLndpZHRoO1xuICAgICAgICByZWN0YW5nbGUud2lkdGggPSAocmVjdGFuZ2xlLndpZHRoICogMykgLyA0O1xuICAgICAgICByZWN0YW5nbGUueCArPSB3aWR0aCAvIDg7XG4gICAgICAgIHJldHVybiByZWN0YW5nbGU7XG4gICAgfVxufTtcbiJdfQ==
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { PlaitBoard, getCrossingPointsBetweenEllipseAndSegment, setStrokeLinecap } from '@plait/core';
|
|
2
|
-
import { createEllipseEngine } from '../basic-shapes/ellipse';
|
|
3
|
-
export const SummingJunctionEngine = createEllipseEngine({
|
|
4
|
-
draw(board, rectangle, options) {
|
|
5
|
-
const rs = PlaitBoard.getRoughSVG(board);
|
|
6
|
-
const rx = rectangle.width / 2;
|
|
7
|
-
const ry = rectangle.height / 2;
|
|
8
|
-
const startPoint = [rectangle.x + rectangle.width, rectangle.y + rectangle.height / 2];
|
|
9
|
-
const centerPoint = [rectangle.x + rectangle.width / 2, rectangle.y + rectangle.height / 2];
|
|
10
|
-
const line1Points = getCrossingPointsBetweenEllipseAndSegment([rectangle.x, rectangle.y], [rectangle.x + rectangle.width, rectangle.y + rectangle.height], centerPoint[0], centerPoint[1], rx, ry);
|
|
11
|
-
const line2Points = getCrossingPointsBetweenEllipseAndSegment([rectangle.x + rectangle.width, rectangle.y], [rectangle.x, rectangle.y + rectangle.height], centerPoint[0], centerPoint[1], rx, ry);
|
|
12
|
-
const shape = rs.path(`M${startPoint[0]} ${startPoint[1]}
|
|
13
|
-
A${rx},${ry} 0 1,1 ${startPoint[0]} ${startPoint[1] - 0.01}
|
|
14
|
-
M${line1Points[0][0]} ${line1Points[0][1]}
|
|
15
|
-
L${line1Points[1][0]} ${line1Points[1][1]}
|
|
16
|
-
M${line2Points[0][0]} ${line2Points[0][1]}
|
|
17
|
-
L${line2Points[1][0]} ${line2Points[1][1]}
|
|
18
|
-
`, { ...options, fillStyle: 'solid' });
|
|
19
|
-
setStrokeLinecap(shape, 'round');
|
|
20
|
-
return shape;
|
|
21
|
-
}
|
|
22
|
-
});
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VtbWluZy1qdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RyYXcvc3JjL2VuZ2luZXMvZmxvd2NoYXJ0L3N1bW1pbmctanVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBbUIseUNBQXlDLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHdkgsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFOUQsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQWdCLG1CQUFtQixDQUFDO0lBQ2xFLElBQUksQ0FBQyxLQUFpQixFQUFFLFNBQTBCLEVBQUUsT0FBZ0I7UUFDaEUsTUFBTSxFQUFFLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxNQUFNLEVBQUUsR0FBRyxTQUFTLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUMvQixNQUFNLEVBQUUsR0FBRyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNoQyxNQUFNLFVBQVUsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdkYsTUFBTSxXQUFXLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM1RixNQUFNLFdBQVcsR0FBRyx5Q0FBeUMsQ0FDekQsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFDMUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQy9ELFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFDZCxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQ2QsRUFBRSxFQUNGLEVBQUUsQ0FDTCxDQUFDO1FBQ0YsTUFBTSxXQUFXLEdBQUcseUNBQXlDLENBQ3pELENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFDNUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUM3QyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQ2QsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUNkLEVBQUUsRUFDRixFQUFFLENBQ0wsQ0FBQztRQUVGLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQ2pCLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUM7V0FDbkMsRUFBRSxJQUFJLEVBQUUsVUFBVSxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUk7V0FDdkQsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7V0FDdEMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7V0FDdEMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7V0FDdEMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDeEMsRUFDRyxFQUFFLEdBQUcsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsQ0FDckMsQ0FBQztRQUVGLGdCQUFnQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNqQyxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0NBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCwgUmVjdGFuZ2xlQ2xpZW50LCBnZXRDcm9zc2luZ1BvaW50c0JldHdlZW5FbGxpcHNlQW5kU2VnbWVudCwgc2V0U3Ryb2tlTGluZWNhcCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IFNoYXBlRW5naW5lIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBPcHRpb25zIH0gZnJvbSAncm91Z2hqcy9iaW4vY29yZSc7XG5pbXBvcnQgeyBjcmVhdGVFbGxpcHNlRW5naW5lIH0gZnJvbSAnLi4vYmFzaWMtc2hhcGVzL2VsbGlwc2UnO1xuXG5leHBvcnQgY29uc3QgU3VtbWluZ0p1bmN0aW9uRW5naW5lOiBTaGFwZUVuZ2luZSA9IGNyZWF0ZUVsbGlwc2VFbmdpbmUoe1xuICAgIGRyYXcoYm9hcmQ6IFBsYWl0Qm9hcmQsIHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBvcHRpb25zOiBPcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IHJzID0gUGxhaXRCb2FyZC5nZXRSb3VnaFNWRyhib2FyZCk7XG4gICAgICAgIGNvbnN0IHJ4ID0gcmVjdGFuZ2xlLndpZHRoIC8gMjtcbiAgICAgICAgY29uc3QgcnkgPSByZWN0YW5nbGUuaGVpZ2h0IC8gMjtcbiAgICAgICAgY29uc3Qgc3RhcnRQb2ludCA9IFtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCwgcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0IC8gMl07XG4gICAgICAgIGNvbnN0IGNlbnRlclBvaW50ID0gW3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoIC8gMiwgcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0IC8gMl07XG4gICAgICAgIGNvbnN0IGxpbmUxUG9pbnRzID0gZ2V0Q3Jvc3NpbmdQb2ludHNCZXR3ZWVuRWxsaXBzZUFuZFNlZ21lbnQoXG4gICAgICAgICAgICBbcmVjdGFuZ2xlLngsIHJlY3RhbmdsZS55XSxcbiAgICAgICAgICAgIFtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCwgcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0XSxcbiAgICAgICAgICAgIGNlbnRlclBvaW50WzBdLFxuICAgICAgICAgICAgY2VudGVyUG9pbnRbMV0sXG4gICAgICAgICAgICByeCxcbiAgICAgICAgICAgIHJ5XG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGxpbmUyUG9pbnRzID0gZ2V0Q3Jvc3NpbmdQb2ludHNCZXR3ZWVuRWxsaXBzZUFuZFNlZ21lbnQoXG4gICAgICAgICAgICBbcmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGgsIHJlY3RhbmdsZS55XSxcbiAgICAgICAgICAgIFtyZWN0YW5nbGUueCwgcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0XSxcbiAgICAgICAgICAgIGNlbnRlclBvaW50WzBdLFxuICAgICAgICAgICAgY2VudGVyUG9pbnRbMV0sXG4gICAgICAgICAgICByeCxcbiAgICAgICAgICAgIHJ5XG4gICAgICAgICk7XG5cbiAgICAgICAgY29uc3Qgc2hhcGUgPSBycy5wYXRoKFxuICAgICAgICAgICAgYE0ke3N0YXJ0UG9pbnRbMF19ICR7c3RhcnRQb2ludFsxXX1cbiAgICAgICAgQSR7cnh9LCR7cnl9IDAgMSwxICR7c3RhcnRQb2ludFswXX0gJHtzdGFydFBvaW50WzFdIC0gMC4wMX1cbiAgICAgICAgTSR7bGluZTFQb2ludHNbMF1bMF19ICR7bGluZTFQb2ludHNbMF1bMV19XG4gICAgICAgIEwke2xpbmUxUG9pbnRzWzFdWzBdfSAke2xpbmUxUG9pbnRzWzFdWzFdfVxuICAgICAgICBNJHtsaW5lMlBvaW50c1swXVswXX0gJHtsaW5lMlBvaW50c1swXVsxXX1cbiAgICAgICAgTCR7bGluZTJQb2ludHNbMV1bMF19ICR7bGluZTJQb2ludHNbMV1bMV19XG4gICAgICAgIGAsXG4gICAgICAgICAgICB7IC4uLm9wdGlvbnMsIGZpbGxTdHlsZTogJ3NvbGlkJyB9XG4gICAgICAgICk7XG5cbiAgICAgICAgc2V0U3Ryb2tlTGluZWNhcChzaGFwZSwgJ3JvdW5kJyk7XG4gICAgICAgIHJldHVybiBzaGFwZTtcbiAgICB9XG59KTtcbiJdfQ==
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { PlaitBoard, RectangleClient, drawRoundRectangle, getEllipseTangentSlope, getNearestPointBetweenPointAndSegments, getVectorFromPointAndSlope, isPointInRoundRectangle, getNearestPointBetweenPointAndEllipse } from '@plait/core';
|
|
2
|
-
export const TerminalEngine = {
|
|
3
|
-
draw(board, rectangle, options) {
|
|
4
|
-
return drawRoundRectangle(PlaitBoard.getRoughSVG(board), rectangle.x, rectangle.y, rectangle.x + rectangle.width, rectangle.y + rectangle.height, { ...options, fillStyle: 'solid' }, false, getStartEndRadius(rectangle));
|
|
5
|
-
},
|
|
6
|
-
isInsidePoint(rectangle, point) {
|
|
7
|
-
return isPointInRoundRectangle(point, rectangle, getStartEndRadius(rectangle));
|
|
8
|
-
},
|
|
9
|
-
getCornerPoints(rectangle) {
|
|
10
|
-
return RectangleClient.getCornerPoints(rectangle);
|
|
11
|
-
},
|
|
12
|
-
getNearestPoint(rectangle, point) {
|
|
13
|
-
return getNearestPointBetweenPointAndRoundRectangle(point, rectangle, getStartEndRadius(rectangle));
|
|
14
|
-
},
|
|
15
|
-
getTangentVectorByConnectionPoint(rectangle, pointOfRectangle) {
|
|
16
|
-
const connectionPoint = RectangleClient.getConnectionPoint(rectangle, pointOfRectangle);
|
|
17
|
-
const radius = getStartEndRadius(rectangle);
|
|
18
|
-
const center = getBoundCenterOfRoundRectangle(rectangle, radius, connectionPoint);
|
|
19
|
-
if (center) {
|
|
20
|
-
const point = [connectionPoint[0] - center[0], -(connectionPoint[1] - center[1])];
|
|
21
|
-
const a = radius;
|
|
22
|
-
const b = radius;
|
|
23
|
-
const slope = getEllipseTangentSlope(point[0], point[1], a, b);
|
|
24
|
-
return getVectorFromPointAndSlope(point[0], point[1], slope);
|
|
25
|
-
}
|
|
26
|
-
return null;
|
|
27
|
-
},
|
|
28
|
-
getConnectorPoints(rectangle) {
|
|
29
|
-
return RectangleClient.getEdgeCenterPoints(rectangle);
|
|
30
|
-
}
|
|
31
|
-
};
|
|
32
|
-
export const getStartEndRadius = (rectangle) => {
|
|
33
|
-
return Math.min(rectangle.width / 2, rectangle.height / 2);
|
|
34
|
-
};
|
|
35
|
-
export function getNearestPointBetweenPointAndRoundRectangle(point, rectangle, radius) {
|
|
36
|
-
let result = null;
|
|
37
|
-
let boundCenter = getBoundCenterOfRoundRectangle(rectangle, radius, point);
|
|
38
|
-
if (boundCenter) {
|
|
39
|
-
result = getNearestPointBetweenPointAndEllipse(point, boundCenter, radius, radius);
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
const cornerPoints = RectangleClient.getCornerPoints(rectangle);
|
|
43
|
-
result = getNearestPointBetweenPointAndSegments(point, cornerPoints);
|
|
44
|
-
}
|
|
45
|
-
return result;
|
|
46
|
-
}
|
|
47
|
-
export function getBoundCenterOfRoundRectangle(rectangle, radius, point) {
|
|
48
|
-
const { x, y, width, height } = rectangle;
|
|
49
|
-
let center = null;
|
|
50
|
-
const inLeftTop = point[0] >= x && point[0] <= x + radius && point[1] >= y && point[1] <= y + radius;
|
|
51
|
-
if (inLeftTop) {
|
|
52
|
-
center = [x + radius, y + radius];
|
|
53
|
-
}
|
|
54
|
-
const inLeftBottom = point[0] >= x && point[0] <= x + radius && point[1] >= y + height - radius && point[1] <= y + height;
|
|
55
|
-
if (inLeftBottom) {
|
|
56
|
-
center = [x + radius, y + height - radius];
|
|
57
|
-
}
|
|
58
|
-
const inRightTop = point[0] >= x + width - radius && point[0] <= x + width && point[1] >= y && point[1] <= y + radius;
|
|
59
|
-
if (inRightTop) {
|
|
60
|
-
center = [x + width - radius, y + radius];
|
|
61
|
-
}
|
|
62
|
-
const inRightBottom = point[0] >= x + width - radius && point[0] <= x + width && point[1] >= y + height - radius && point[1] <= y + height;
|
|
63
|
-
if (inRightBottom) {
|
|
64
|
-
center = [x + width - radius, y + height - radius];
|
|
65
|
-
}
|
|
66
|
-
return center;
|
|
67
|
-
}
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVybWluYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9lbmdpbmVzL2Zsb3djaGFydC90ZXJtaW5hbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsVUFBVSxFQUdWLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsc0JBQXNCLEVBQ3RCLHNDQUFzQyxFQUN0QywwQkFBMEIsRUFDMUIsdUJBQXVCLEVBQ3ZCLHFDQUFxQyxFQUN4QyxNQUFNLGFBQWEsQ0FBQztBQUlyQixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQWdCO0lBQ3ZDLElBQUksQ0FBQyxLQUFpQixFQUFFLFNBQTBCLEVBQUUsT0FBZ0I7UUFDaEUsT0FBTyxrQkFBa0IsQ0FDckIsVUFBVSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFDN0IsU0FBUyxDQUFDLENBQUMsRUFDWCxTQUFTLENBQUMsQ0FBQyxFQUNYLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssRUFDN0IsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUM5QixFQUFFLEdBQUcsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsRUFDbEMsS0FBSyxFQUNMLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUMvQixDQUFDO0lBQ04sQ0FBQztJQUNELGFBQWEsQ0FBQyxTQUEwQixFQUFFLEtBQVk7UUFDbEQsT0FBTyx1QkFBdUIsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUNELGVBQWUsQ0FBQyxTQUEwQjtRQUN0QyxPQUFPLGVBQWUsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUNELGVBQWUsQ0FBQyxTQUEwQixFQUFFLEtBQVk7UUFDcEQsT0FBTyw0Q0FBNEMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxF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QyxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBQ0QsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sR0FBRyxNQUFNLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUM7SUFDMUgsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNmLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxNQUFNLEVBQUUsQ0FBQyxHQUFHLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBQ0QsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLEdBQUcsTUFBTSxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUM7SUFDdEgsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNiLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsTUFBTSxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBQ0QsTUFBTSxhQUFhLEdBQ2YsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLEdBQUcsTUFBTSxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxHQUFHLE1BQU0sSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQztJQUN6SCxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ2hCLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsTUFBTSxFQUFFLENBQUMsR0FBRyxNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIFBsYWl0Qm9hcmQsXG4gICAgUG9pbnQsXG4gICAgUG9pbnRPZlJlY3RhbmdsZSxcbiAgICBSZWN0YW5nbGVDbGllbnQsXG4gICAgZHJhd1JvdW5kUmVjdGFuZ2xlLFxuICAgIGdldEVsbGlwc2VUYW5nZW50U2xvcGUsXG4gICAgZ2V0TmVhcmVzdFBvaW50QmV0d2VlblBvaW50QW5kU2VnbWVudHMsXG4gICAgZ2V0VmVjdG9yRnJvbVBvaW50QW5kU2xvcGUsXG4gICAgaXNQb2ludEluUm91bmRSZWN0YW5nbGUsXG4gICAgZ2V0TmVhcmVzdFBvaW50QmV0d2VlblBvaW50QW5kRWxsaXBzZVxufSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBTaGFwZUVuZ2luZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgT3B0aW9ucyB9IGZyb20gJ3JvdWdoanMvYmluL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgVGVybWluYWxFbmdpbmU6IFNoYXBlRW5naW5lID0ge1xuICAgIGRyYXcoYm9hcmQ6IFBsYWl0Qm9hcmQsIHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBvcHRpb25zOiBPcHRpb25zKSB7XG4gICAgICAgIHJldHVybiBkcmF3Um91bmRSZWN0YW5nbGUoXG4gICAgICAgICAgICBQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKGJvYXJkKSxcbiAgICAgICAgICAgIHJlY3RhbmdsZS54LFxuICAgICAgICAgICAgcmVjdGFuZ2xlLnksXG4gICAgICAgICAgICByZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCxcbiAgICAgICAgICAgIHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodCxcbiAgICAgICAgICAgIHsgLi4ub3B0aW9ucywgZmlsbFN0eWxlOiAnc29saWQnIH0sXG4gICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgIGdldFN0YXJ0RW5kUmFkaXVzKHJlY3RhbmdsZSlcbiAgICAgICAgKTtcbiAgICB9LFxuICAgIGlzSW5zaWRlUG9pbnQocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIHBvaW50OiBQb2ludCkge1xuICAgICAgICByZXR1cm4gaXNQb2ludEluUm91bmRSZWN0YW5nbGUocG9pbnQsIHJlY3RhbmdsZSwgZ2V0U3RhcnRFbmRSYWRpdXMocmVjdGFuZ2xlKSk7XG4gICAgfSxcbiAgICBnZXRDb3JuZXJQb2ludHMocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpIHtcbiAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5nZXRDb3JuZXJQb2ludHMocmVjdGFuZ2xlKTtcbiAgICB9LFxuICAgIGdldE5lYXJlc3RQb2ludChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcG9pbnQ6IFBvaW50KSB7XG4gICAgICAgIHJldHVybiBnZXROZWFyZXN0UG9pbnRCZXR3ZWVuUG9pbnRBbmRSb3VuZFJlY3RhbmdsZShwb2ludCwgcmVjdGFuZ2xlLCBnZXRTdGFydEVuZFJhZGl1cyhyZWN0YW5nbGUpKTtcbiAgICB9LFxuICAgIGdldFRhbmdlbnRWZWN0b3JCeUNvbm5lY3Rpb25Qb2ludChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcG9pbnRPZlJlY3RhbmdsZTogUG9pbnRPZlJlY3RhbmdsZSkge1xuICAgICAgICBjb25zdCBjb25uZWN0aW9uUG9pbnQgPSBSZWN0YW5nbGVDbGllbnQuZ2V0Q29ubmVjdGlvblBvaW50KHJlY3RhbmdsZSwgcG9pbnRPZlJlY3RhbmdsZSk7XG4gICAgICAgIGNvbnN0IHJhZGl1cyA9IGdldFN0YXJ0RW5kUmFkaXVzKHJlY3RhbmdsZSk7XG4gICAgICAgIGNvbnN0IGNlbnRlciA9IGdldEJvdW5kQ2VudGVyT2ZSb3VuZFJlY3RhbmdsZShyZWN0YW5nbGUsIHJhZGl1cywgY29ubmVjdGlvblBvaW50KTtcbiAgICAgICAgaWYgKGNlbnRlcikge1xuICAgICAgICAgICAgY29uc3QgcG9pbnQgPSBbY29ubmVjdGlvblBvaW50WzBdIC0gY2VudGVyWzBdLCAtKGNvbm5lY3Rpb25Qb2ludFsxXSAtIGNlbnRlclsxXSldO1xuICAgICAgICAgICAgY29uc3QgYSA9IHJhZGl1cztcbiAgICAgICAgICAgIGNvbnN0IGIgPSByYWRpdXM7XG4gICAgICAgICAgICBjb25zdCBzbG9wZSA9IGdldEVsbGlwc2VUYW5nZW50U2xvcGUocG9pbnRbMF0sIHBvaW50WzFdLCBhLCBiKSBhcyBhbnk7XG4gICAgICAgICAgICByZXR1cm4gZ2V0VmVjdG9yRnJvbVBvaW50QW5kU2xvcGUocG9pbnRbMF0sIHBvaW50WzFdLCBzbG9wZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSxcbiAgICBnZXRDb25uZWN0b3JQb2ludHMocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpIHtcbiAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5nZXRFZGdlQ2VudGVyUG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGdldFN0YXJ0RW5kUmFkaXVzID0gKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50KSA9PiB7XG4gICAgcmV0dXJuIE1hdGgubWluKHJlY3RhbmdsZS53aWR0aCAvIDIsIHJlY3RhbmdsZS5oZWlnaHQgLyAyKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXROZWFyZXN0UG9pbnRCZXR3ZWVuUG9pbnRBbmRSb3VuZFJlY3RhbmdsZShwb2ludDogUG9pbnQsIHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCByYWRpdXM6IG51bWJlcikge1xuICAgIGxldCByZXN1bHQ6IFBvaW50IHwgbnVsbCA9IG51bGw7XG4gICAgbGV0IGJvdW5kQ2VudGVyOiBQb2ludCB8IG51bGwgPSBnZXRCb3VuZENlbnRlck9mUm91bmRSZWN0YW5nbGUocmVjdGFuZ2xlLCByYWRpdXMsIHBvaW50KTtcbiAgICBpZiAoYm91bmRDZW50ZXIpIHtcbiAgICAgICAgcmVzdWx0ID0gZ2V0TmVhcmVzdFBvaW50QmV0d2VlblBvaW50QW5kRWxsaXBzZShwb2ludCwgYm91bmRDZW50ZXIsIHJhZGl1cywgcmFkaXVzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBjb3JuZXJQb2ludHMgPSBSZWN0YW5nbGVDbGllbnQuZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgICAgIHJlc3VsdCA9IGdldE5lYXJlc3RQb2ludEJldHdlZW5Qb2ludEFuZFNlZ21lbnRzKHBvaW50LCBjb3JuZXJQb2ludHMpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Qm91bmRDZW50ZXJPZlJvdW5kUmVjdGFuZ2xlKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCByYWRpdXM6IG51bWJlciwgcG9pbnQ6IFBvaW50KSB7XG4gICAgY29uc3QgeyB4LCB5LCB3aWR0aCwgaGVpZ2h0IH0gPSByZWN0YW5nbGU7XG4gICAgbGV0IGNlbnRlcjogUG9pbnQgfCBudWxsID0gbnVsbDtcbiAgICBjb25zdCBpbkxlZnRUb3AgPSBwb2ludFswXSA+PSB4ICYmIHBvaW50WzBdIDw9IHggKyByYWRpdXMgJiYgcG9pbnRbMV0gPj0geSAmJiBwb2ludFsxXSA8PSB5ICsgcmFkaXVzO1xuICAgIGlmIChpbkxlZnRUb3ApIHtcbiAgICAgICAgY2VudGVyID0gW3ggKyByYWRpdXMsIHkgKyByYWRpdXNdO1xuICAgIH1cbiAgICBjb25zdCBpbkxlZnRCb3R0b20gPSBwb2ludFswXSA+PSB4ICYmIHBvaW50WzBdIDw9IHggKyByYWRpdXMgJiYgcG9pbnRbMV0gPj0geSArIGhlaWdodCAtIHJhZGl1cyAmJiBwb2ludFsxXSA8PSB5ICsgaGVpZ2h0O1xuICAgIGlmIChpbkxlZnRCb3R0b20pIHtcbiAgICAgICAgY2VudGVyID0gW3ggKyByYWRpdXMsIHkgKyBoZWlnaHQgLSByYWRpdXNdO1xuICAgIH1cbiAgICBjb25zdCBpblJpZ2h0VG9wID0gcG9pbnRbMF0gPj0geCArIHdpZHRoIC0gcmFkaXVzICYmIHBvaW50WzBdIDw9IHggKyB3aWR0aCAmJiBwb2ludFsxXSA+PSB5ICYmIHBvaW50WzFdIDw9IHkgKyByYWRpdXM7XG4gICAgaWYgKGluUmlnaHRUb3ApIHtcbiAgICAgICAgY2VudGVyID0gW3ggKyB3aWR0aCAtIHJhZGl1cywgeSArIHJhZGl1c107XG4gICAgfVxuICAgIGNvbnN0IGluUmlnaHRCb3R0b20gPVxuICAgICAgICBwb2ludFswXSA+PSB4ICsgd2lkdGggLSByYWRpdXMgJiYgcG9pbnRbMF0gPD0geCArIHdpZHRoICYmIHBvaW50WzFdID49IHkgKyBoZWlnaHQgLSByYWRpdXMgJiYgcG9pbnRbMV0gPD0geSArIGhlaWdodDtcbiAgICBpZiAoaW5SaWdodEJvdHRvbSkge1xuICAgICAgICBjZW50ZXIgPSBbeCArIHdpZHRoIC0gcmFkaXVzLCB5ICsgaGVpZ2h0IC0gcmFkaXVzXTtcbiAgICB9XG4gICAgcmV0dXJuIGNlbnRlcjtcbn1cbiJdfQ==
|
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
import { BasicShapes, FlowchartSymbols, SwimlaneSymbols, TableSymbols, UMLSymbols } from '../interfaces';
|
|
2
|
-
import { CommentEngine } from './basic-shapes/comment';
|
|
3
|
-
import { CrossEngine } from './basic-shapes/cross';
|
|
4
|
-
import { DiamondEngine } from './basic-shapes/diamond';
|
|
5
|
-
import { EllipseEngine } from './basic-shapes/ellipse';
|
|
6
|
-
import { HexagonEngine } from './basic-shapes/hexagon';
|
|
7
|
-
import { LeftArrowEngine } from './basic-shapes/left-arrow';
|
|
8
|
-
import { OctagonEngine } from './basic-shapes/octagon';
|
|
9
|
-
import { ParallelogramEngine } from './basic-shapes/parallelogram';
|
|
10
|
-
import { PentagonEngine } from './basic-shapes/pentagon';
|
|
11
|
-
import { PentagonArrowEngine } from './basic-shapes/pentagon-arrow';
|
|
12
|
-
import { ProcessArrowEngine } from './basic-shapes/process-arrow';
|
|
13
|
-
import { RightArrowEngine } from './basic-shapes/right-arrow';
|
|
14
|
-
import { RoundCommentEngine } from './basic-shapes/round-comment';
|
|
15
|
-
import { RoundRectangleEngine } from './basic-shapes/round-rectangle';
|
|
16
|
-
import { TrapezoidEngine } from './basic-shapes/trapezoid';
|
|
17
|
-
import { TriangleEngine } from './basic-shapes/triangle';
|
|
18
|
-
import { TwoWayArrowEngine } from './basic-shapes/two-way-arrow';
|
|
19
|
-
import { StarEngine } from './basic-shapes/star';
|
|
20
|
-
import { TerminalEngine } from './flowchart/terminal';
|
|
21
|
-
import { ManualInputEngine } from './flowchart/manual-input';
|
|
22
|
-
import { PreparationEngine } from './flowchart/preparation';
|
|
23
|
-
import { ManualLoopEngine } from './flowchart/manual-loop';
|
|
24
|
-
import { MergeEngine } from './flowchart/merge';
|
|
25
|
-
import { DelayEngine } from './flowchart/delay';
|
|
26
|
-
import { StoredDataEngine } from './flowchart/stored-data';
|
|
27
|
-
import { PredefinedProcessEngine } from './flowchart/predefined-process';
|
|
28
|
-
import { OffPageEngine } from './flowchart/off-page';
|
|
29
|
-
import { CloudEngine } from './basic-shapes/cloud';
|
|
30
|
-
import { OrEngine } from './flowchart/or';
|
|
31
|
-
import { SummingJunctionEngine } from './flowchart/summing-junction';
|
|
32
|
-
import { DocumentEngine } from './flowchart/document';
|
|
33
|
-
import { MultiDocumentEngine } from './flowchart/multi-document';
|
|
34
|
-
import { DatabaseEngine } from './flowchart/database';
|
|
35
|
-
import { HardDiskEngine } from './flowchart/hard-disk';
|
|
36
|
-
import { InternalStorageEngine } from './flowchart/internal-storage';
|
|
37
|
-
import { NoteCurlyLeftEngine } from './flowchart/note-curly-left';
|
|
38
|
-
import { NoteCurlyRightEngine } from './flowchart/note-curly-right';
|
|
39
|
-
import { NoteSquareEngine } from './flowchart/note-square';
|
|
40
|
-
import { DisplayEngine } from './flowchart/display';
|
|
41
|
-
import { TableEngine } from './table/table';
|
|
42
|
-
import { RectangleEngine } from './basic-shapes/rectangle';
|
|
43
|
-
import { ActorEngine } from './uml/actor';
|
|
44
|
-
import { ContainerEngine } from './uml/container';
|
|
45
|
-
import { PackageEngine } from './uml/package';
|
|
46
|
-
import { CombinedFragmentEngine } from './uml/combined-fragment';
|
|
47
|
-
import { DeletionEngine } from './uml/deletion';
|
|
48
|
-
import { ActiveClassEngine } from './uml/activity-class';
|
|
49
|
-
import { NoteEngine } from './uml/note';
|
|
50
|
-
import { AssemblyEngine } from './uml/assembly';
|
|
51
|
-
import { RequiredInterfaceEngine } from './uml/required-interface';
|
|
52
|
-
import { ProvidedInterfaceEngine } from './uml/provided-interface';
|
|
53
|
-
import { ComponentEngine } from './uml/component';
|
|
54
|
-
import { ComponentBoxEngine } from './uml/component-box';
|
|
55
|
-
import { TemplateEngine } from './uml/template';
|
|
56
|
-
const ShapeEngineMap = {
|
|
57
|
-
[BasicShapes.rectangle]: RectangleEngine,
|
|
58
|
-
[BasicShapes.diamond]: DiamondEngine,
|
|
59
|
-
[BasicShapes.ellipse]: EllipseEngine,
|
|
60
|
-
[BasicShapes.parallelogram]: ParallelogramEngine,
|
|
61
|
-
[BasicShapes.roundRectangle]: RoundRectangleEngine,
|
|
62
|
-
[BasicShapes.text]: RectangleEngine,
|
|
63
|
-
[BasicShapes.triangle]: TriangleEngine,
|
|
64
|
-
[BasicShapes.leftArrow]: LeftArrowEngine,
|
|
65
|
-
[BasicShapes.trapezoid]: TrapezoidEngine,
|
|
66
|
-
[BasicShapes.rightArrow]: RightArrowEngine,
|
|
67
|
-
[BasicShapes.cross]: CrossEngine,
|
|
68
|
-
[BasicShapes.star]: StarEngine,
|
|
69
|
-
[BasicShapes.pentagon]: PentagonEngine,
|
|
70
|
-
[BasicShapes.hexagon]: HexagonEngine,
|
|
71
|
-
[BasicShapes.octagon]: OctagonEngine,
|
|
72
|
-
[BasicShapes.pentagonArrow]: PentagonArrowEngine,
|
|
73
|
-
[BasicShapes.processArrow]: ProcessArrowEngine,
|
|
74
|
-
[BasicShapes.twoWayArrow]: TwoWayArrowEngine,
|
|
75
|
-
[BasicShapes.comment]: CommentEngine,
|
|
76
|
-
[BasicShapes.roundComment]: RoundCommentEngine,
|
|
77
|
-
[BasicShapes.cloud]: CloudEngine,
|
|
78
|
-
[FlowchartSymbols.process]: RectangleEngine,
|
|
79
|
-
[FlowchartSymbols.decision]: DiamondEngine,
|
|
80
|
-
[FlowchartSymbols.connector]: EllipseEngine,
|
|
81
|
-
[FlowchartSymbols.data]: ParallelogramEngine,
|
|
82
|
-
[FlowchartSymbols.terminal]: TerminalEngine,
|
|
83
|
-
[FlowchartSymbols.database]: DatabaseEngine,
|
|
84
|
-
[FlowchartSymbols.hardDisk]: HardDiskEngine,
|
|
85
|
-
[FlowchartSymbols.internalStorage]: InternalStorageEngine,
|
|
86
|
-
[FlowchartSymbols.manualInput]: ManualInputEngine,
|
|
87
|
-
[FlowchartSymbols.preparation]: PreparationEngine,
|
|
88
|
-
[FlowchartSymbols.manualLoop]: ManualLoopEngine,
|
|
89
|
-
[FlowchartSymbols.merge]: MergeEngine,
|
|
90
|
-
[FlowchartSymbols.delay]: DelayEngine,
|
|
91
|
-
[FlowchartSymbols.storedData]: StoredDataEngine,
|
|
92
|
-
[FlowchartSymbols.or]: OrEngine,
|
|
93
|
-
[FlowchartSymbols.summingJunction]: SummingJunctionEngine,
|
|
94
|
-
[FlowchartSymbols.predefinedProcess]: PredefinedProcessEngine,
|
|
95
|
-
[FlowchartSymbols.offPage]: OffPageEngine,
|
|
96
|
-
[FlowchartSymbols.document]: DocumentEngine,
|
|
97
|
-
[FlowchartSymbols.multiDocument]: MultiDocumentEngine,
|
|
98
|
-
[FlowchartSymbols.noteCurlyLeft]: NoteCurlyLeftEngine,
|
|
99
|
-
[FlowchartSymbols.noteCurlyRight]: NoteCurlyRightEngine,
|
|
100
|
-
[FlowchartSymbols.noteSquare]: NoteSquareEngine,
|
|
101
|
-
[FlowchartSymbols.display]: DisplayEngine,
|
|
102
|
-
[SwimlaneSymbols.swimlaneHorizontal]: TableEngine,
|
|
103
|
-
[SwimlaneSymbols.swimlaneVertical]: TableEngine,
|
|
104
|
-
[TableSymbols.table]: TableEngine,
|
|
105
|
-
[UMLSymbols.actor]: ActorEngine,
|
|
106
|
-
[UMLSymbols.useCase]: EllipseEngine,
|
|
107
|
-
[UMLSymbols.container]: ContainerEngine,
|
|
108
|
-
[UMLSymbols.note]: NoteEngine,
|
|
109
|
-
[UMLSymbols.package]: PackageEngine,
|
|
110
|
-
[UMLSymbols.combinedFragment]: CombinedFragmentEngine,
|
|
111
|
-
[UMLSymbols.class]: TableEngine,
|
|
112
|
-
[UMLSymbols.interface]: TableEngine,
|
|
113
|
-
[UMLSymbols.activation]: RectangleEngine,
|
|
114
|
-
[UMLSymbols.object]: RectangleEngine,
|
|
115
|
-
[UMLSymbols.deletion]: DeletionEngine,
|
|
116
|
-
[UMLSymbols.activityClass]: ActiveClassEngine,
|
|
117
|
-
[UMLSymbols.simpleClass]: RectangleEngine,
|
|
118
|
-
[UMLSymbols.component]: ComponentEngine,
|
|
119
|
-
[UMLSymbols.componentBox]: ComponentBoxEngine,
|
|
120
|
-
[UMLSymbols.template]: TemplateEngine,
|
|
121
|
-
[UMLSymbols.port]: RectangleEngine,
|
|
122
|
-
[UMLSymbols.branchMerge]: DiamondEngine,
|
|
123
|
-
[UMLSymbols.assembly]: AssemblyEngine,
|
|
124
|
-
[UMLSymbols.requiredInterface]: RequiredInterfaceEngine,
|
|
125
|
-
[UMLSymbols.providedInterface]: ProvidedInterfaceEngine
|
|
126
|
-
};
|
|
127
|
-
export const getEngine = (shape) => {
|
|
128
|
-
return ShapeEngineMap[shape];
|
|
129
|
-
};
|
|
130
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9lbmdpbmVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxXQUFXLEVBR1gsZ0JBQWdCLEVBR2hCLGVBQWUsRUFDZixZQUFZLEVBRVosVUFBVSxFQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFB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YTtJQUN2QyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRSxjQUFjO0lBQ3JDLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsdUJBQXVCO0lBQ3ZELENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsdUJBQXVCO0NBQzFELENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FLckIsS0FBaUIsRUFDRyxFQUFFO0lBQ3RCLE9BQU8sY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2pDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQmFzaWNTaGFwZXMsXG4gICAgRHJhd09wdGlvbnMsXG4gICAgRHJhd1NoYXBlcyxcbiAgICBGbG93Y2hhcnRTeW1ib2xzLFxuICAgIFBsYWl0R2VvbWV0cnksXG4gICAgU2hhcGVFbmdpbmUsXG4gICAgU3dpbWxhbmVTeW1ib2xzLFxuICAgIFRhYmxlU3ltYm9scyxcbiAgICBUZXh0UmVjdGFuZ2xlT3B0aW9ucyxcbiAgICBVTUxTeW1ib2xzXG59IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQ29tbWVudEVuZ2luZSB9IGZyb20gJy4vYmFzaWMtc2hhcGVzL2NvbW1lbnQnO1xuaW1wb3J0IHsgQ3Jvc3NFbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy9jcm9zcyc7XG5pbXBvcnQgeyBEaWFtb25kRW5naW5lIH0gZnJvbSAnLi9iYXNpYy1zaGFwZXMvZGlhbW9uZCc7XG5pbXBvcnQgeyBFbGxpcHNlRW5naW5lIH0gZnJvbSAnLi9iYXNpYy1zaGFwZXMvZWxsaXBzZSc7XG5pbXBvcnQgeyBIZXhhZ29uRW5naW5lIH0gZnJvbSAnLi9iYXNpYy1zaGFwZXMvaGV4YWdvbic7XG5pbXBvcnQgeyBMZWZ0QXJyb3dFbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy9sZWZ0LWFycm93JztcbmltcG9ydCB7IE9jdGFnb25FbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy9vY3RhZ29uJztcbmltcG9ydCB7IFBhcmFsbGVsb2dyYW1FbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy9wYXJhbGxlbG9ncmFtJztcbmltcG9ydCB7IFBlbnRhZ29uRW5naW5lIH0gZnJvbSAnLi9iYXNpYy1zaGFwZXMvcGVudGFnb24nO1xuaW1wb3J0IHsgUGVudGFnb25BcnJvd0VuZ2luZSB9IGZyb20gJy4vYmFzaWMtc2hhcGVzL3BlbnRhZ29uLWFycm93JztcbmltcG9ydCB7IFByb2Nlc3NBcnJvd0VuZ2luZSB9IGZyb20gJy4vYmFzaWMtc2hhcGVzL3Byb2Nlc3MtYXJyb3cnO1xuaW1wb3J0IHsgUmlnaHRBcnJvd0VuZ2luZSB9IGZyb20gJy4vYmFzaWMtc2hhcGVzL3JpZ2h0LWFycm93JztcbmltcG9ydCB7IFJvdW5kQ29tbWVudEVuZ2luZSB9IGZyb20gJy4vYmFzaWMtc2hhcGVzL3JvdW5kLWNvbW1lbnQnO1xuaW1wb3J0IHsgUm91bmRSZWN0YW5nbGVFbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy9yb3VuZC1yZWN0YW5nbGUnO1xuaW1wb3J0IHsgVHJhcGV6b2lkRW5naW5lIH0gZnJvbSAnLi9iYXNpYy1zaGFwZXMvdHJhcGV6b2lkJztcbmltcG9ydCB7IFRyaWFuZ2xlRW5naW5lIH0gZnJvbSAnLi9iYXNpYy1zaGFwZXMvdHJpYW5nbGUnO1xuaW1wb3J0IHsgVHdvV2F5QXJyb3dFbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy90d28td2F5LWFycm93JztcbmltcG9ydCB7IFN0YXJFbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy9zdGFyJztcbmltcG9ydCB7IFRlcm1pbmFsRW5naW5lIH0gZnJvbSAnLi9mbG93Y2hhcnQvdGVybWluYWwnO1xuaW1wb3J0IHsgTWFudWFsSW5wdXRFbmdpbmUgfSBmcm9tICcuL2Zsb3djaGFydC9tYW51YWwtaW5wdXQnO1xuaW1wb3J0IHsgUHJlcGFyYXRpb25FbmdpbmUgfSBmcm9tICcuL2Zsb3djaGFydC9wcmVwYXJhdGlvbic7XG5pbXBvcnQgeyBNYW51YWxMb29wRW5naW5lIH0gZnJvbSAnLi9mbG93Y2hhcnQvbWFudWFsLWxvb3AnO1xuaW1wb3J0IHsgTWVyZ2VFbmdpbmUgfSBmcm9tICcuL2Zsb3djaGFydC9tZXJnZSc7XG5pbXBvcnQgeyBEZWxheUVuZ2luZSB9IGZyb20gJy4vZmxvd2NoYXJ0L2RlbGF5JztcbmltcG9ydCB7IFN0b3JlZERhdGFFbmdpbmUgfSBmcm9tICcuL2Zsb3djaGFydC9zdG9yZWQtZGF0YSc7XG5pbXBvcnQgeyBQcmVkZWZpbmVkUHJvY2Vzc0VuZ2luZSB9IGZyb20gJy4vZmxvd2NoYXJ0L3ByZWRlZmluZWQtcHJvY2Vzcyc7XG5pbXBvcnQgeyBPZmZQYWdlRW5naW5lIH0gZnJvbSAnLi9mbG93Y2hhcnQvb2ZmLXBhZ2UnO1xuaW1wb3J0IHsgQ2xvdWRFbmdpbmUgfSBmcm9tICcuL2Jhc2ljLXNoYXBlcy9jbG91ZCc7XG5pbXBvcnQgeyBPckVuZ2luZSB9IGZyb20gJy4vZmxvd2NoYXJ0L29yJztcbmltcG9ydCB7IFN1bW1pbmdKdW5jdGlvbkVuZ2luZSB9IGZyb20gJy4vZmxvd2NoYXJ0L3N1bW1pbmctanVuY3Rpb24nO1xuaW1wb3J0IHsgRG9jdW1lbnRFbmdpbmUgfSBmcm9tICcuL2Zsb3djaGFydC9kb2N1bWVudCc7XG5pbXBvcnQgeyBNdWx0aURvY3VtZW50RW5naW5lIH0gZnJvbSAnLi9mbG93Y2hhcnQvbXVsdGktZG9jdW1lbnQnO1xuaW1wb3J0IHsgRGF0YWJhc2VFbmdpbmUgfSBmcm9tICcuL2Zsb3djaGFydC9kYXRhYmFzZSc7XG5pbXBvcnQgeyBIYXJkRGlza0VuZ2luZSB9IGZyb20gJy4vZmxvd2NoYXJ0L2hhcmQtZGlzayc7XG5pbXBvcnQgeyBJbnRlcm5hbFN0b3JhZ2VFbmdpbmUgfSBmcm9tICcuL2Zsb3djaGFydC9pbnRlcm5hbC1zdG9yYWdlJztcbmltcG9ydCB7IE5vdGVDdXJseUxlZnRFbmdpbmUgfSBmcm9tICcuL2Zsb3djaGFydC9ub3RlLWN1cmx5LWxlZnQnO1xuaW1wb3J0IHsgTm90ZUN1cmx5UmlnaHRFbmdpbmUgfSBmcm9tICcuL2Zsb3djaGFydC9ub3RlLWN1cmx5LXJpZ2h0JztcbmltcG9ydCB7IE5vdGVTcXVhcmVFbmdpbmUgfSBmcm9tICcuL2Zsb3djaGFydC9ub3RlLXNxdWFyZSc7XG5pbXBvcnQgeyBEaXNwbGF5RW5naW5lIH0gZnJvbSAnLi9mbG93Y2hhcnQvZGlzcGxheSc7XG5pbXBvcnQgeyBUYWJsZUVuZ2luZSB9IGZyb20gJy4vdGFibGUvdGFibGUnO1xuaW1wb3J0IHsgUmVjdGFuZ2xlRW5naW5lIH0gZnJvbSAnLi9iYXNpYy1zaGFwZXMvcmVjdGFuZ2xlJztcbmltcG9ydCB7IFBsYWl0RWxlbWVudCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IEFjdG9yRW5naW5lIH0gZnJvbSAnLi91bWwvYWN0b3InO1xuaW1wb3J0IHsgQ29udGFpbmVyRW5naW5lIH0gZnJvbSAnLi91bWwvY29udGFpbmVyJztcbmltcG9ydCB7IFBhY2thZ2VFbmdpbmUgfSBmcm9tICcuL3VtbC9wYWNrYWdlJztcbmltcG9ydCB7IENvbWJpbmVkRnJhZ21lbnRFbmdpbmUgfSBmcm9tICcuL3VtbC9jb21iaW5lZC1mcmFnbWVudCc7XG5pbXBvcnQgeyBEZWxldGlvbkVuZ2luZSB9IGZyb20gJy4vdW1sL2RlbGV0aW9uJztcbmltcG9ydCB7IEFjdGl2ZUNsYXNzRW5naW5lIH0gZnJvbSAnLi91bWwvYWN0aXZpdHktY2xhc3MnO1xuaW1wb3J0IHsgTm90ZUVuZ2luZSB9IGZyb20gJy4vdW1sL25vdGUnO1xuaW1wb3J0IHsgQXNzZW1ibHlFbmdpbmUgfSBmcm9tICcuL3VtbC9hc3NlbWJseSc7XG5pbXBvcnQgeyBSZXF1aXJlZEludGVyZmFjZUVuZ2luZSB9IGZyb20gJy4vdW1sL3JlcXVpcmVkLWludGVyZmFjZSc7XG5pbXBvcnQgeyBQcm92aWRlZEludGVyZmFjZUVuZ2luZSB9IGZyb20gJy4vdW1sL3Byb3ZpZGVkLWludGVyZmFjZSc7XG5pbXBvcnQgeyBDb21wb25lbnRFbmdpbmUgfSBmcm9tICcuL3VtbC9jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tcG9uZW50Qm94RW5naW5lIH0gZnJvbSAnLi91bWwvY29tcG9uZW50LWJveCc7XG5pbXBvcnQgeyBUZW1wbGF0ZUVuZ2luZSB9IGZyb20gJy4vdW1sL3RlbXBsYXRlJztcblxuY29uc3QgU2hhcGVFbmdpbmVNYXA6IFJlY29yZDxEcmF3U2hhcGVzLCBTaGFwZUVuZ2luZTxhbnksIGFueSwgYW55Pj4gPSB7XG4gICAgW0Jhc2ljU2hhcGVzLnJlY3RhbmdsZV06IFJlY3RhbmdsZUVuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMuZGlhbW9uZF06IERpYW1vbmRFbmdpbmUsXG4gICAgW0Jhc2ljU2hhcGVzLmVsbGlwc2VdOiBFbGxpcHNlRW5naW5lLFxuICAgIFtCYXNpY1NoYXBlcy5wYXJhbGxlbG9ncmFtXTogUGFyYWxsZWxvZ3JhbUVuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMucm91bmRSZWN0YW5nbGVdOiBSb3VuZFJlY3RhbmdsZUVuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMudGV4dF06IFJlY3RhbmdsZUVuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMudHJpYW5nbGVdOiBUcmlhbmdsZUVuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMubGVmdEFycm93XTogTGVmdEFycm93RW5naW5lLFxuICAgIFtCYXNpY1NoYXBlcy50cmFwZXpvaWRdOiBUcmFwZXpvaWRFbmdpbmUsXG4gICAgW0Jhc2ljU2hhcGVzLnJpZ2h0QXJyb3ddOiBSaWdodEFycm93RW5naW5lLFxuICAgIFtCYXNpY1NoYXBlcy5jcm9zc106IENyb3NzRW5naW5lLFxuICAgIFtCYXNpY1NoYXBlcy5zdGFyXTogU3RhckVuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMucGVudGFnb25dOiBQZW50YWdvbkVuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMuaGV4YWdvbl06IEhleGFnb25FbmdpbmUsXG4gICAgW0Jhc2ljU2hhcGVzLm9jdGFnb25dOiBPY3RhZ29uRW5naW5lLFxuICAgIFtCYXNpY1NoYXBlcy5wZW50YWdvbkFycm93XTogUGVudGFnb25BcnJvd0VuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMucHJvY2Vzc0Fycm93XTogUHJvY2Vzc0Fycm93RW5naW5lLFxuICAgIFtCYXNpY1NoYXBlcy50d29XYXlBcnJvd106IFR3b1dheUFycm93RW5naW5lLFxuICAgIFtCYXNpY1NoYXBlcy5jb21tZW50XTogQ29tbWVudEVuZ2luZSxcbiAgICBbQmFzaWNTaGFwZXMucm91bmRDb21tZW50XTogUm91bmRDb21tZW50RW5naW5lLFxuICAgIFtCYXNpY1NoYXBlcy5jbG91ZF06IENsb3VkRW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLnByb2Nlc3NdOiBSZWN0YW5nbGVFbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMuZGVjaXNpb25dOiBEaWFtb25kRW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLmNvbm5lY3Rvcl06IEVsbGlwc2VFbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMuZGF0YV06IFBhcmFsbGVsb2dyYW1FbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMudGVybWluYWxdOiBUZXJtaW5hbEVuZ2luZSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5kYXRhYmFzZV06IERhdGFiYXNlRW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLmhhcmREaXNrXTogSGFyZERpc2tFbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMuaW50ZXJuYWxTdG9yYWdlXTogSW50ZXJuYWxTdG9yYWdlRW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLm1hbnVhbElucHV0XTogTWFudWFsSW5wdXRFbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMucHJlcGFyYXRpb25dOiBQcmVwYXJhdGlvbkVuZ2luZSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5tYW51YWxMb29wXTogTWFudWFsTG9vcEVuZ2luZSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5tZXJnZV06IE1lcmdlRW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLmRlbGF5XTogRGVsYXlFbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMuc3RvcmVkRGF0YV06IFN0b3JlZERhdGFFbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMub3JdOiBPckVuZ2luZSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5zdW1taW5nSnVuY3Rpb25dOiBTdW1taW5nSnVuY3Rpb25FbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMucHJlZGVmaW5lZFByb2Nlc3NdOiBQcmVkZWZpbmVkUHJvY2Vzc0VuZ2luZSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5vZmZQYWdlXTogT2ZmUGFnZUVuZ2luZSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5kb2N1bWVudF06IERvY3VtZW50RW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLm11bHRpRG9jdW1lbnRdOiBNdWx0aURvY3VtZW50RW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLm5vdGVDdXJseUxlZnRdOiBOb3RlQ3VybHlMZWZ0RW5naW5lLFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLm5vdGVDdXJseVJpZ2h0XTogTm90ZUN1cmx5UmlnaHRFbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMubm90ZVNxdWFyZV06IE5vdGVTcXVhcmVFbmdpbmUsXG4gICAgW0Zsb3djaGFydFN5bWJvbHMuZGlzcGxheV06IERpc3BsYXlFbmdpbmUsXG4gICAgW1N3aW1sYW5lU3ltYm9scy5zd2ltbGFuZUhvcml6b250YWxdOiBUYWJsZUVuZ2luZSxcbiAgICBbU3dpbWxhbmVTeW1ib2xzLnN3aW1sYW5lVmVydGljYWxdOiBUYWJsZUVuZ2luZSxcbiAgICBbVGFibGVTeW1ib2xzLnRhYmxlXTogVGFibGVFbmdpbmUsXG4gICAgW1VNTFN5bWJvbHMuYWN0b3JdOiBBY3RvckVuZ2luZSxcbiAgICBbVU1MU3ltYm9scy51c2VDYXNlXTogRWxsaXBzZUVuZ2luZSxcbiAgICBbVU1MU3ltYm9scy5jb250YWluZXJdOiBDb250YWluZXJFbmdpbmUsXG4gICAgW1VNTFN5bWJvbHMubm90ZV06IE5vdGVFbmdpbmUsXG4gICAgW1VNTFN5bWJvbHMucGFja2FnZV06IFBhY2thZ2VFbmdpbmUsXG4gICAgW1VNTFN5bWJvbHMuY29tYmluZWRGcmFnbWVudF06IENvbWJpbmVkRnJhZ21lbnRFbmdpbmUsXG4gICAgW1VNTFN5bWJvbHMuY2xhc3NdOiBUYWJsZUVuZ2luZSxcbiAgICBbVU1MU3ltYm9scy5pbnRlcmZhY2VdOiBUYWJsZUVuZ2luZSxcbiAgICBbVU1MU3ltYm9scy5hY3RpdmF0aW9uXTogUmVjdGFuZ2xlRW5naW5lLFxuICAgIFtVTUxTeW1ib2xzLm9iamVjdF06IFJlY3RhbmdsZUVuZ2luZSxcbiAgICBbVU1MU3ltYm9scy5kZWxldGlvbl06IERlbGV0aW9uRW5naW5lLFxuICAgIFtVTUxTeW1ib2xzLmFjdGl2aXR5Q2xhc3NdOiBBY3RpdmVDbGFzc0VuZ2luZSxcbiAgICBbVU1MU3ltYm9scy5zaW1wbGVDbGFzc106IFJlY3RhbmdsZUVuZ2luZSxcbiAgICBbVU1MU3ltYm9scy5jb21wb25lbnRdOiBDb21wb25lbnRFbmdpbmUsXG4gICAgW1VNTFN5bWJvbHMuY29tcG9uZW50Qm94XTogQ29tcG9uZW50Qm94RW5naW5lLFxuICAgIFtVTUxTeW1ib2xzLnRlbXBsYXRlXTogVGVtcGxhdGVFbmdpbmUsXG4gICAgW1VNTFN5bWJvbHMucG9ydF06IFJlY3RhbmdsZUVuZ2luZSxcbiAgICBbVU1MU3ltYm9scy5icmFuY2hNZXJnZV06IERpYW1vbmRFbmdpbmUsXG4gICAgW1VNTFN5bWJvbHMuYXNzZW1ibHldOiBBc3NlbWJseUVuZ2luZSxcbiAgICBbVU1MU3ltYm9scy5yZXF1aXJlZEludGVyZmFjZV06IFJlcXVpcmVkSW50ZXJmYWNlRW5naW5lLFxuICAgIFtVTUxTeW1ib2xzLnByb3ZpZGVkSW50ZXJmYWNlXTogUHJvdmlkZWRJbnRlcmZhY2VFbmdpbmVcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRFbmdpbmUgPSA8XG4gICAgVCBleHRlbmRzIFBsYWl0RWxlbWVudCA9IFBsYWl0R2VvbWV0cnksXG4gICAgUCBleHRlbmRzIERyYXdPcHRpb25zID0gRHJhd09wdGlvbnMsXG4gICAgSyBleHRlbmRzIFRleHRSZWN0YW5nbGVPcHRpb25zID0gVGV4dFJlY3RhbmdsZU9wdGlvbnNcbj4oXG4gICAgc2hhcGU6IERyYXdTaGFwZXNcbik6IFNoYXBlRW5naW5lPFQsIFAsIEs+ID0+IHtcbiAgICByZXR1cm4gU2hhcGVFbmdpbmVNYXBbc2hhcGVdO1xufTtcbiJdfQ==
|