@plait/draw 0.75.0-next.9 → 0.76.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/engines/basic-shapes/cloud.d.ts +2 -12
- package/engines/uml/provided-interface.d.ts +0 -5
- package/esm2022/arrow-line.component.mjs +14 -7
- package/esm2022/engines/basic-shapes/cloud.mjs +10 -11
- package/esm2022/engines/flowchart/note-curly-left.mjs +48 -12
- package/esm2022/engines/flowchart/note-curly-right.mjs +49 -10
- package/esm2022/engines/uml/actor.mjs +61 -44
- package/esm2022/engines/uml/assembly.mjs +72 -23
- package/esm2022/engines/uml/component.mjs +78 -33
- package/esm2022/engines/uml/deletion.mjs +28 -6
- package/esm2022/engines/uml/package.mjs +51 -21
- package/esm2022/engines/uml/provided-interface.mjs +53 -26
- package/esm2022/engines/uml/required-interface.mjs +51 -7
- package/esm2022/generators/arrow-line-auto-complete.generator.mjs +3 -3
- package/esm2022/generators/line-active.generator.mjs +14 -10
- package/esm2022/geometry.component.mjs +20 -10
- package/esm2022/image.component.mjs +12 -6
- package/esm2022/plugins/with-arrow-line-auto-complete-reaction.mjs +9 -7
- package/esm2022/plugins/with-arrow-line-auto-complete.mjs +9 -8
- package/esm2022/plugins/with-arrow-line-bound-reaction.mjs +4 -4
- package/esm2022/plugins/with-arrow-line-text-move.mjs +2 -2
- package/esm2022/plugins/with-draw-resize.mjs +9 -7
- package/esm2022/plugins/with-draw-rotate.mjs +23 -18
- package/esm2022/plugins/with-geometry-create.mjs +4 -4
- package/esm2022/plugins/with-swimlane-create.mjs +4 -4
- package/esm2022/plugins/with-table-resize.mjs +5 -5
- package/esm2022/plugins/with-table.mjs +3 -2
- package/esm2022/table.component.mjs +19 -11
- package/esm2022/utils/arrow-line/arrow-line-basic.mjs +3 -3
- package/esm2022/utils/common.mjs +9 -9
- package/esm2022/utils/geometry.mjs +8 -13
- package/esm2022/utils/hit.mjs +7 -7
- package/esm2022/utils/vector-line.mjs +2 -2
- package/esm2022/vector-line.component.mjs +12 -5
- package/fesm2022/plait-draw.mjs +648 -290
- package/fesm2022/plait-draw.mjs.map +1 -1
- package/generators/line-active.generator.d.ts +5 -1
- package/package.json +1 -1
- package/utils/geometry.d.ts +1 -2
|
@@ -1,12 +1,23 @@
|
|
|
1
|
-
import { PlaitBoard, RectangleClient,
|
|
1
|
+
import { PlaitBoard, RectangleClient, distanceBetweenPointAndPoint, getNearestPointBetweenPointAndSegment, setStrokeLinecap } from '@plait/core';
|
|
2
2
|
import { getPolygonEdgeByConnectionPoint } from '../../utils/polygon';
|
|
3
3
|
import { RectangleEngine } from '../basic-shapes/rectangle';
|
|
4
|
+
function getDeletionLines(rectangle) {
|
|
5
|
+
return [
|
|
6
|
+
[
|
|
7
|
+
[rectangle.x, rectangle.y],
|
|
8
|
+
[rectangle.x + rectangle.width, rectangle.y + rectangle.height]
|
|
9
|
+
],
|
|
10
|
+
[
|
|
11
|
+
[rectangle.x + rectangle.width, rectangle.y],
|
|
12
|
+
[rectangle.x, rectangle.y + rectangle.height]
|
|
13
|
+
]
|
|
14
|
+
];
|
|
15
|
+
}
|
|
4
16
|
export const DeletionEngine = {
|
|
5
17
|
draw(board, rectangle, options) {
|
|
6
18
|
const rs = PlaitBoard.getRoughSVG(board);
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
`, { ...options, fillStyle: 'solid', strokeWidth: 4 });
|
|
19
|
+
const lines = getDeletionLines(rectangle);
|
|
20
|
+
const shape = rs.path(lines.map(([from, to]) => `M${from[0]} ${from[1]} L${to[0]} ${to[1]}`).join(' '), { ...options, fillStyle: 'solid', strokeWidth: 4 });
|
|
10
21
|
setStrokeLinecap(shape, 'round');
|
|
11
22
|
return shape;
|
|
12
23
|
},
|
|
@@ -18,7 +29,18 @@ export const DeletionEngine = {
|
|
|
18
29
|
return RectangleClient.getCornerPoints(rectangle);
|
|
19
30
|
},
|
|
20
31
|
getNearestPoint(rectangle, point) {
|
|
21
|
-
|
|
32
|
+
const lines = getDeletionLines(rectangle);
|
|
33
|
+
let minDistance = Infinity;
|
|
34
|
+
let nearestPoint = point;
|
|
35
|
+
lines.forEach(line => {
|
|
36
|
+
const currentPoint = getNearestPointBetweenPointAndSegment(point, line);
|
|
37
|
+
const distance = distanceBetweenPointAndPoint(point[0], point[1], currentPoint[0], currentPoint[1]);
|
|
38
|
+
if (distance < minDistance) {
|
|
39
|
+
minDistance = distance;
|
|
40
|
+
nearestPoint = currentPoint;
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
return nearestPoint;
|
|
22
44
|
},
|
|
23
45
|
getEdgeByConnectionPoint(rectangle, pointOfRectangle) {
|
|
24
46
|
const corners = RectangleEngine.getCornerPoints(rectangle);
|
|
@@ -29,4 +51,4 @@ export const DeletionEngine = {
|
|
|
29
51
|
return RectangleClient.getEdgeCenterPoints(rectangle);
|
|
30
52
|
}
|
|
31
53
|
};
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9lbmdpbmVzL3VtbC9kZWxldGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsVUFBVSxFQUdWLGVBQWUsRUFDZiw0QkFBNEIsRUFDNUIscUNBQXFDLEVBRXJDLGdCQUFnQixFQUNuQixNQUFNLGFBQWEsQ0FBQztBQUdyQixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFNUQsU0FBUyxnQkFBZ0IsQ0FBQyxTQUEwQjtJQUNoRCxPQUFPO1FBQ0g7WUFDSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUMxQixDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUM7U0FDbEU7UUFDRDtZQUNJLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDNUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQztTQUNoRDtLQUNKLENBQUM7QUFDTixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFnQjtJQUN2QyxJQUFJLENBQUMsS0FBaUIsRUFBRSxTQUEwQixFQUFFLE9BQWdCO1FBQ2hFLE1BQU0sRUFBRSxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsTUFBTSxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDMUMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FDakIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUNoRixFQUFFLEdBQUcsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxDQUNyRCxDQUFDO1FBQ0YsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFDRCxhQUFhLENBQUMsU0FBMEIsRUFBRSxLQUFZO1FBQ2xELE1BQU0sY0FBYyxHQUFHLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzVFLE9BQU8sZUFBZSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUNELGVBQWUsQ0FBQyxTQUEwQjtRQUN0QyxPQUFPLGVBQWUsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUNELGVBQWUsQ0FBQyxTQUEwQixFQUFFLEtBQVk7UUFDcEQsTUFBTSxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDMUMsSUFBSSxXQUFXLEdBQUcsUUFBUSxDQUFDO1FBQzNCLElBQUksWUFBWSxHQUFHLEtBQUssQ0FBQztRQUN6QixLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2pCLE1BQU0sWUFBWSxHQUFHLHFDQUFxQyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN4RSxNQUFNLFFBQVEsR0FBRyw0QkFBNEIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwRyxJQUFJLFFBQVEsR0FBRyxXQUFXLEVBQUUsQ0FBQztnQkFDekIsV0FBVyxHQUFHLFFBQVEsQ0FBQztnQkFDdkIsWUFBWSxHQUFHLFlBQVksQ0FBQztZQUNoQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLFlBQVksQ0FBQztJQUN4QixDQUFDO0lBQ0Qsd0JBQXdCLENBQUMsU0FBMEIsRUFBRSxnQkFBa0M7UUFDbkYsTUFBTSxPQUFPLEdBQUcsZUFBZSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzRCxNQUFNLEtBQUssR0FBRyxlQUFlLENBQUMsa0JBQWtCLENBQUMsU0FBUyxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDOUUsT0FBTywrQkFBK0IsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUNELGtCQUFrQixDQUFDLFNBQTBCO1FBQ3pDLE9BQU8sZUFBZSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzFELENBQUM7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBQbGFpdEJvYXJkLFxuICAgIFBvaW50LFxuICAgIFBvaW50T2ZSZWN0YW5nbGUsXG4gICAgUmVjdGFuZ2xlQ2xpZW50LFxuICAgIGRpc3RhbmNlQmV0d2VlblBvaW50QW5kUG9pbnQsXG4gICAgZ2V0TmVhcmVzdFBvaW50QmV0d2VlblBvaW50QW5kU2VnbWVudCxcbiAgICBnZXROZWFyZXN0UG9pbnRCZXR3ZWVuUG9pbnRBbmRTZWdtZW50cyxcbiAgICBzZXRTdHJva2VMaW5lY2FwXG59IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IFNoYXBlRW5naW5lIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBPcHRpb25zIH0gZnJvbSAncm91Z2hqcy9iaW4vY29yZSc7XG5pbXBvcnQgeyBnZXRQb2x5Z29uRWRnZUJ5Q29ubmVjdGlvblBvaW50IH0gZnJvbSAnLi4vLi4vdXRpbHMvcG9seWdvbic7XG5pbXBvcnQgeyBSZWN0YW5nbGVFbmdpbmUgfSBmcm9tICcuLi9iYXNpYy1zaGFwZXMvcmVjdGFuZ2xlJztcblxuZnVuY3Rpb24gZ2V0RGVsZXRpb25MaW5lcyhyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCk6IEFycmF5PFtQb2ludCwgUG9pbnRdPiB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgW1xuICAgICAgICAgICAgW3JlY3RhbmdsZS54LCByZWN0YW5nbGUueV0sXG4gICAgICAgICAgICBbcmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGgsIHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodF1cbiAgICAgICAgXSxcbiAgICAgICAgW1xuICAgICAgICAgICAgW3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoLCByZWN0YW5nbGUueV0sXG4gICAgICAgICAgICBbcmVjdGFuZ2xlLngsIHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodF1cbiAgICAgICAgXVxuICAgIF07XG59XG5cbmV4cG9ydCBjb25zdCBEZWxldGlvbkVuZ2luZTogU2hhcGVFbmdpbmUgPSB7XG4gICAgZHJhdyhib2FyZDogUGxhaXRCb2FyZCwgcmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIG9wdGlvbnM6IE9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgcnMgPSBQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKGJvYXJkKTtcbiAgICAgICAgY29uc3QgbGluZXMgPSBnZXREZWxldGlvbkxpbmVzKHJlY3RhbmdsZSk7XG4gICAgICAgIGNvbnN0IHNoYXBlID0gcnMucGF0aChcbiAgICAgICAgICAgIGxpbmVzLm1hcCgoW2Zyb20sIHRvXSkgPT4gYE0ke2Zyb21bMF19ICR7ZnJvbVsxXX0gTCR7dG9bMF19ICR7dG9bMV19YCkuam9pbignICcpLFxuICAgICAgICAgICAgeyAuLi5vcHRpb25zLCBmaWxsU3R5bGU6ICdzb2xpZCcsIHN0cm9rZVdpZHRoOiA0IH1cbiAgICAgICAgKTtcbiAgICAgICAgc2V0U3Ryb2tlTGluZWNhcChzaGFwZSwgJ3JvdW5kJyk7XG4gICAgICAgIHJldHVybiBzaGFwZTtcbiAgICB9LFxuICAgIGlzSW5zaWRlUG9pbnQocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIHBvaW50OiBQb2ludCkge1xuICAgICAgICBjb25zdCByYW5nZVJlY3RhbmdsZSA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhbcG9pbnQsIHBvaW50XSk7XG4gICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuaXNIaXQocmVjdGFuZ2xlLCByYW5nZVJlY3RhbmdsZSk7XG4gICAgfSxcbiAgICBnZXRDb3JuZXJQb2ludHMocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpIHtcbiAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5nZXRDb3JuZXJQb2ludHMocmVjdGFuZ2xlKTtcbiAgICB9LFxuICAgIGdldE5lYXJlc3RQb2ludChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcG9pbnQ6IFBvaW50KSB7XG4gICAgICAgIGNvbnN0IGxpbmVzID0gZ2V0RGVsZXRpb25MaW5lcyhyZWN0YW5nbGUpO1xuICAgICAgICBsZXQgbWluRGlzdGFuY2UgPSBJbmZpbml0eTtcbiAgICAgICAgbGV0IG5lYXJlc3RQb2ludCA9IHBvaW50O1xuICAgICAgICBsaW5lcy5mb3JFYWNoKGxpbmUgPT4ge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudFBvaW50ID0gZ2V0TmVhcmVzdFBvaW50QmV0d2VlblBvaW50QW5kU2VnbWVudChwb2ludCwgbGluZSk7XG4gICAgICAgICAgICBjb25zdCBkaXN0YW5jZSA9IGRpc3RhbmNlQmV0d2VlblBvaW50QW5kUG9pbnQocG9pbnRbMF0sIHBvaW50WzFdLCBjdXJyZW50UG9pbnRbMF0sIGN1cnJlbnRQb2ludFsxXSk7XG4gICAgICAgICAgICBpZiAoZGlzdGFuY2UgPCBtaW5EaXN0YW5jZSkge1xuICAgICAgICAgICAgICAgIG1pbkRpc3RhbmNlID0gZGlzdGFuY2U7XG4gICAgICAgICAgICAgICAgbmVhcmVzdFBvaW50ID0gY3VycmVudFBvaW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIG5lYXJlc3RQb2ludDtcbiAgICB9LFxuICAgIGdldEVkZ2VCeUNvbm5lY3Rpb25Qb2ludChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcG9pbnRPZlJlY3RhbmdsZTogUG9pbnRPZlJlY3RhbmdsZSk6IFtQb2ludCwgUG9pbnRdIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IGNvcm5lcnMgPSBSZWN0YW5nbGVFbmdpbmUuZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgICAgIGNvbnN0IHBvaW50ID0gUmVjdGFuZ2xlQ2xpZW50LmdldENvbm5lY3Rpb25Qb2ludChyZWN0YW5nbGUsIHBvaW50T2ZSZWN0YW5nbGUpO1xuICAgICAgICByZXR1cm4gZ2V0UG9seWdvbkVkZ2VCeUNvbm5lY3Rpb25Qb2ludChjb3JuZXJzLCBwb2ludCk7XG4gICAgfSxcbiAgICBnZXRDb25uZWN0b3JQb2ludHMocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpIHtcbiAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5nZXRFZGdlQ2VudGVyUG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgfVxufTtcbiJdfQ==
|
|
@@ -1,21 +1,43 @@
|
|
|
1
|
-
import { PlaitBoard, RectangleClient,
|
|
1
|
+
import { PlaitBoard, RectangleClient, getNearestPointBetweenPointAndDiscreteSegments, setStrokeLinecap } from '@plait/core';
|
|
2
2
|
import { getUnitVectorByPointAndPoint } from '@plait/common';
|
|
3
3
|
import { GeometryCommonTextKeys } from '../../interfaces';
|
|
4
|
-
import { RectangleEngine } from '../basic-shapes/rectangle';
|
|
5
4
|
import { getStrokeWidthByElement } from '../../utils';
|
|
6
5
|
import { ShapeDefaultSpace } from '../../constants';
|
|
6
|
+
function generatePackagePath(rectangle) {
|
|
7
|
+
const headerHeight = 25;
|
|
8
|
+
const topWidth = rectangle.width * 0.7;
|
|
9
|
+
const cornerX = rectangle.x + rectangle.width * 0.8;
|
|
10
|
+
return {
|
|
11
|
+
headerHeight,
|
|
12
|
+
points: {
|
|
13
|
+
leftTop: [rectangle.x, rectangle.y + headerHeight],
|
|
14
|
+
topStart: [rectangle.x, rectangle.y],
|
|
15
|
+
topEnd: [rectangle.x + topWidth, rectangle.y],
|
|
16
|
+
cornerPoint: [cornerX, rectangle.y + headerHeight],
|
|
17
|
+
rightTop: [rectangle.x + rectangle.width, rectangle.y + headerHeight],
|
|
18
|
+
rightBottom: [rectangle.x + rectangle.width, rectangle.y + rectangle.height],
|
|
19
|
+
leftBottom: [rectangle.x, rectangle.y + rectangle.height],
|
|
20
|
+
leftMiddle: [rectangle.x, rectangle.y + headerHeight],
|
|
21
|
+
middlePoint: [cornerX, rectangle.y + headerHeight]
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
}
|
|
7
25
|
export const PackageEngine = {
|
|
8
26
|
draw(board, rectangle, options) {
|
|
9
27
|
const rs = PlaitBoard.getRoughSVG(board);
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
H${
|
|
15
|
-
|
|
16
|
-
H${
|
|
17
|
-
V${
|
|
18
|
-
H${
|
|
28
|
+
const { points } = generatePackagePath(rectangle);
|
|
29
|
+
const pathData = [
|
|
30
|
+
`M${points.leftTop[0]} ${points.leftTop[1]}`,
|
|
31
|
+
`V${points.topStart[1]}`,
|
|
32
|
+
`H${points.topEnd[0]}`,
|
|
33
|
+
`L${points.cornerPoint[0]} ${points.cornerPoint[1]}`,
|
|
34
|
+
`H${points.rightTop[0]}`,
|
|
35
|
+
`V${points.rightBottom[1]}`,
|
|
36
|
+
`H${points.leftBottom[0]}`,
|
|
37
|
+
`V${points.leftMiddle[1]}`,
|
|
38
|
+
`H${points.middlePoint[0]}`
|
|
39
|
+
].join(' ');
|
|
40
|
+
const shape = rs.path(pathData, { ...options, fillStyle: 'solid' });
|
|
19
41
|
setStrokeLinecap(shape, 'round');
|
|
20
42
|
return shape;
|
|
21
43
|
},
|
|
@@ -27,15 +49,23 @@ export const PackageEngine = {
|
|
|
27
49
|
return RectangleClient.getCornerPoints(rectangle);
|
|
28
50
|
},
|
|
29
51
|
getNearestPoint(rectangle, point) {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
],
|
|
37
|
-
|
|
38
|
-
|
|
52
|
+
const { points } = generatePackagePath(rectangle);
|
|
53
|
+
const segments = [
|
|
54
|
+
// 左边竖线
|
|
55
|
+
[points.topStart, points.leftTop],
|
|
56
|
+
[points.leftTop, points.leftBottom],
|
|
57
|
+
// 底边
|
|
58
|
+
[points.leftBottom, points.rightBottom],
|
|
59
|
+
// 右边竖线
|
|
60
|
+
[points.rightBottom, points.rightTop],
|
|
61
|
+
// 顶部折线
|
|
62
|
+
[points.topStart, points.topEnd],
|
|
63
|
+
[points.topEnd, points.cornerPoint],
|
|
64
|
+
[points.cornerPoint, points.rightTop],
|
|
65
|
+
// 中间横线
|
|
66
|
+
[points.leftMiddle, points.middlePoint]
|
|
67
|
+
];
|
|
68
|
+
return getNearestPointBetweenPointAndDiscreteSegments(point, segments);
|
|
39
69
|
},
|
|
40
70
|
getConnectorPoints(rectangle) {
|
|
41
71
|
return RectangleClient.getEdgeCenterPoints(rectangle);
|
|
@@ -72,4 +102,4 @@ export const PackageEngine = {
|
|
|
72
102
|
return elementRectangle;
|
|
73
103
|
}
|
|
74
104
|
};
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RyYXcvc3JjL2VuZ2luZXMvdW1sL3BhY2thZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFVBQVUsRUFHVixlQUFlLEVBQ2Ysc0NBQXNDLEVBQ3RDLGdCQUFnQixFQUNuQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFlLHNCQUFzQixFQUEwQyxNQUFNLGtCQUFrQixDQUFDO0FBRS9HLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHcEQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFzRTtJQUM1RixJQUFJLENBQUMsS0FBaUIsRUFBRSxTQUEwQixFQUFFLE9BQWdCO1FBQ2hFLE1BQU0sRUFBRSxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FDakIsSUFBSSxTQUFTLENBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRTtlQUNoQyxTQUFTLENBQUMsQ0FBQztlQUNYLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssR0FBRyxHQUFHO2VBQ25DLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssR0FBRyxHQUFHLElBQUksU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFO2VBQ3ZELFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUs7ZUFDN0IsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTTtlQUM5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aUIsQ0FBQyxnQkFBZ0IsR0FBRyxXQUFXO2dCQUN4RSxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxFQUFFLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQzthQUMvRSxDQUFDO1FBQ04sQ0FBQztRQUNELE9BQU8sZ0JBQWdCLENBQUM7SUFDNUIsQ0FBQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIFBsYWl0Qm9hcmQsXG4gICAgUG9pbnQsXG4gICAgUG9pbnRPZlJlY3RhbmdsZSxcbiAgICBSZWN0YW5nbGVDbGllbnQsXG4gICAgZ2V0TmVhcmVzdFBvaW50QmV0d2VlblBvaW50QW5kU2VnbWVudHMsXG4gICAgc2V0U3Ryb2tlTGluZWNhcFxufSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBnZXRVbml0VmVjdG9yQnlQb2ludEFuZFBvaW50IH0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5pbXBvcnQgeyBEcmF3T3B0aW9ucywgR2VvbWV0cnlDb21tb25UZXh0S2V5cywgUGxhaXRNdWx0aXBsZVRleHRHZW9tZXRyeSwgU2hhcGVFbmdpbmUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE9wdGlvbnMgfSBmcm9tICdyb3VnaGpzL2Jpbi9jb3JlJztcbmltcG9ydCB7IFJlY3RhbmdsZUVuZ2luZSB9IGZyb20gJy4uL2Jhc2ljLXNoYXBlcy9yZWN0YW5nbGUnO1xuaW1wb3J0IHsgZ2V0U3Ryb2tlV2lkdGhCeUVsZW1lbnQgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBTaGFwZURlZmF1bHRTcGFjZSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBEcmF3VGV4dEluZm8gfSBmcm9tICcuLi8uLi9nZW5lcmF0b3JzL3RleHQuZ2VuZXJhdG9yJztcblxuZXhwb3J0IGNvbnN0IFBhY2thZ2VFbmdpbmU6IFNoYXBlRW5naW5lPFBsYWl0TXVsdGlwbGVUZXh0R2VvbWV0cnksIERyYXdPcHRpb25zLCBEcmF3VGV4dEluZm8+ID0ge1xuICAgIGRyYXcoYm9hcmQ6IFBsYWl0Qm9hcmQsIHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBvcHRpb25zOiBPcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IHJzID0gUGxhaXRCb2FyZC5nZXRSb3VnaFNWRyhib2FyZCk7XG4gICAgICAgIGNvbnN0IHNoYXBlID0gcnMucGF0aChcbiAgICAgICAgICAgIGBNJHtyZWN0YW5nbGUueH0gJHtyZWN0YW5nbGUueSArIDI1fSBcbiAgICAgICAgICAgIFYke3JlY3RhbmdsZS55fVxuICAgICAgICAgICAgSCR7cmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggKiAwLjd9IFxuICAgICAgICAgICAgTCR7cmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggKiAwLjh9ICR7cmVjdGFuZ2xlLnkgKyAyNX0gXG4gICAgICAgICAgICBIJHtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aH0gXG4gICAgICAgICAgICBWJHtyZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHR9XG4gICAgICAgICAgICBIJHtyZWN0YW5nbGUueH1cbiAgICAgICAgICAgIFYke3JlY3RhbmdsZS55ICsgMjV9XG4gICAgICAgICAgICBIJHtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAqIDAuOH1gLFxuICAgICAgICAgICAgeyAuLi5vcHRpb25zLCBmaWxsU3R5bGU6ICdzb2xpZCcgfVxuICAgICAgICApO1xuICAgICAgICBzZXRTdHJva2VMaW5lY2FwKHNoYXBlLCAncm91bmQnKTtcblxuICAgICAgICByZXR1cm4gc2hhcGU7XG4gICAgfSxcbiAgICBpc0luc2lkZVBvaW50KHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBwb2ludDogUG9pbnQpIHtcbiAgICAgICAgY29uc3QgcmFuZ2VSZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoW3BvaW50LCBwb2ludF0pO1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmlzSGl0KHJlY3RhbmdsZSwgcmFuZ2VSZWN0YW5nbGUpO1xuICAgIH0sXG4gICAgZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50KSB7XG4gICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgfSxcbiAgICBnZXROZWFyZXN0UG9pbnQocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIHBvaW50OiBQb2ludCkge1xuICAgICAgICBsZXQgbmVhcmVzdFBvaW50ID0gZ2V0TmVhcmVzdFBvaW50QmV0d2VlblBvaW50QW5kU2VnbWVudHMocG9pbnQsIFJlY3RhbmdsZUVuZ2luZS5nZXRDb3JuZXJQb2ludHMocmVjdGFuZ2xlKSk7XG4gICAgICAgIGlmIChuZWFyZXN0UG9pbnRbMF0gPiByZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAqIDAuNyAmJiBuZWFyZXN0UG9pbnRbMV0gPD0gcmVjdGFuZ2xlLnkgKyAyNSkge1xuICAgICAgICAgICAgbmVhcmVzdFBvaW50ID0gZ2V0TmVhcmVzdFBvaW50QmV0d2VlblBvaW50QW5kU2VnbWVudHMoXG4gICAgICAgICAgICAgICAgcG9pbnQsXG4gICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICBbcmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggKiAwLjcsIHJlY3RhbmdsZS55XSxcbiAgICAgICAgICAgICAgICAgICAgW3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoICogMC44LCByZWN0YW5nbGUueSArIDI1XSxcbiAgICAgICAgICAgICAgICAgICAgW3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoLCByZWN0YW5nbGUueSArIDI1XVxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5lYXJlc3RQb2ludDtcbiAgICB9LFxuICAgIGdldENvbm5lY3RvclBvaW50cyhyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCkge1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmdldEVkZ2VDZW50ZXJQb2ludHMocmVjdGFuZ2xlKTtcbiAgICB9LFxuICAgIGdldFRhbmdlbnRWZWN0b3JCeUNvbm5lY3Rpb25Qb2ludChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcG9pbnRPZlJlY3RhbmdsZTogUG9pbnRPZlJlY3RhbmdsZSkge1xuICAgICAgICBjb25zdCBjb25uZWN0aW9uUG9pbnQgPSBSZWN0YW5nbGVDbGllbnQuZ2V0Q29ubmVjdGlvblBvaW50KHJlY3RhbmdsZSwgcG9pbnRPZlJlY3RhbmdsZSk7XG4gICAgICAgIGlmIChjb25uZWN0aW9uUG9pbnRbMF0gPiByZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAqIDAuNyAmJiBjb25uZWN0aW9uUG9pbnRbMV0gPCByZWN0YW5nbGUueSArIDI1KSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0VW5pdFZlY3RvckJ5UG9pbnRBbmRQb2ludChbcmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggKiAwLjcsIHJlY3RhbmdsZS55XSwgY29ubmVjdGlvblBvaW50KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZ2V0VW5pdFZlY3RvckJ5UG9pbnRBbmRQb2ludChbcmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggKiAwLjgsIHJlY3RhbmdsZS55ICsgMjVdLCBjb25uZWN0aW9uUG9pbnQpO1xuICAgIH0sXG4gICAgZ2V0VGV4dFJlY3RhbmdsZShlbGVtZW50OiBQbGFpdE11bHRpcGxlVGV4dEdlb21ldHJ5LCBvcHRpb25zPzogRHJhd1RleHRJbmZvKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRSZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoZWxlbWVudC5wb2ludHMhKTtcbiAgICAgICAgY29uc3Qgc3Ryb2tlV2lkdGggPSBnZXRTdHJva2VXaWR0aEJ5RWxlbWVudChlbGVtZW50KTtcbiAgICAgICAgY29uc3QgdGV4dEhlaWdodCA9IGVsZW1lbnQudGV4dHM/LmZpbmQoaXRlbSA9PiBpdGVtLmlkID09PSBvcHRpb25zPy5pZCk/LnRleHRIZWlnaHQhO1xuICAgICAgICBpZiAob3B0aW9ucz8uaWQgPT09IEdlb21ldHJ5Q29tbW9uVGV4dEtleXMubmFtZSkge1xuICAgICAgICAgICAgY29uc3Qgd2lkdGggPSBlbGVtZW50UmVjdGFuZ2xlLndpZHRoICogMC43IC0gU2hhcGVEZWZhdWx0U3BhY2UucmVjdGFuZ2xlQW5kVGV4dCAtIHN0cm9rZVdpZHRoO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHRleHRIZWlnaHQsXG4gICAgICAgICAgICAgICAgd2lkdGg6IHdpZHRoID4gMCA/IHdpZHRoIDogMCxcbiAgICAgICAgICAgICAgICB4OiBlbGVtZW50UmVjdGFuZ2xlLnggKyBTaGFwZURlZmF1bHRTcGFjZS5yZWN0YW5nbGVBbmRUZXh0ICsgc3Ryb2tlV2lkdGgsXG4gICAgICAgICAgICAgICAgeTogZWxlbWVudFJlY3RhbmdsZS55ICsgKDI1IC0gdGV4dEhlaWdodCkgLyAyXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zPy5pZCA9PT0gR2VvbWV0cnlDb21tb25UZXh0S2V5cy5jb250ZW50KSB7XG4gICAgICAgICAgICBjb25zdCB3aWR0aCA9IGVsZW1lbnRSZWN0YW5nbGUud2lkdGggLSBTaGFwZURlZmF1bHRTcGFjZS5yZWN0YW5nbGVBbmRUZXh0ICogMiAtIHN0cm9rZVdpZHRoICogMjtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiB0ZXh0SGVpZ2h0LFxuICAgICAgICAgICAgICAgIHdpZHRoOiB3aWR0aCA+IDAgPyB3aWR0aCA6IDAsXG4gICAgICAgICAgICAgICAgeDogZWxlbWVudFJlY3RhbmdsZS54ICsgU2hhcGVEZWZhdWx0U3BhY2UucmVjdGFuZ2xlQW5kVGV4dCArIHN0cm9rZVdpZHRoLFxuICAgICAgICAgICAgICAgIHk6IGVsZW1lbnRSZWN0YW5nbGUueSArIDI1ICsgKGVsZW1lbnRSZWN0YW5nbGUuaGVpZ2h0IC0gMjUgLSB0ZXh0SGVpZ2h0KSAvIDJcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGVsZW1lbnRSZWN0YW5nbGU7XG4gICAgfVxufTtcbiJdfQ==
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RyYXcvc3JjL2VuZ2luZXMvdW1sL3BhY2thZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFVBQVUsRUFHVixlQUFlLEVBQ2YsOENBQThDLEVBRTlDLGdCQUFnQixFQUNuQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFlLHNCQUFzQixFQUEwQyxNQUFNLGtCQUFrQixDQUFDO0FBRy9HLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQWtCcEQsU0FBUyxtQkFBbUIsQ0FBQyxTQUEwQjtJQUNuRCxNQUFNLFlBQVksR0FBRyxFQUFFLENBQUM7SUFDeEIsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7SUFDdkMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztJQUVwRCxPQUFPO1FBQ0gsWUFBWTtRQUNaLE1BQU0sRUFBRTtZQUNKLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsR0FBRyxZQUFZLENBQUM7WUFDbEQsUUFBUSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ3BDLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDN0MsV0FBVyxFQUFFLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEdBQUcsWUFBWSxDQUFDO1lBQ2xELFFBQVEsRUFBRSxDQUFDLFNB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LENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxHQUFHLFdBQVcsR0FBRyxDQUFDLENBQUM7WUFDaEcsT0FBTztnQkFDSCxNQUFNLEVBQUUsVUFBVTtnQkFDbEIsS0FBSyxFQUFFLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDNUIsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxnQkFBZ0IsR0FBRyxXQUFXO2dCQUN4RSxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxFQUFFLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQzthQUMvRSxDQUFDO1FBQ04sQ0FBQztRQUNELE9BQU8sZ0JBQWdCLENBQUM7SUFDNUIsQ0FBQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIFBsYWl0Qm9hcmQsXG4gICAgUG9pbnQsXG4gICAgUG9pbnRPZlJlY3RhbmdsZSxcbiAgICBSZWN0YW5nbGVDbGllbnQsXG4gICAgZ2V0TmVhcmVzdFBvaW50QmV0d2VlblBvaW50QW5kRGlzY3JldGVTZWdtZW50cyxcbiAgICBnZXROZWFyZXN0UG9pbnRCZXR3ZWVuUG9pbnRBbmRTZWdtZW50cyxcbiAgICBzZXRTdHJva2VMaW5lY2FwXG59IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IGdldFVuaXRWZWN0b3JCeVBvaW50QW5kUG9pbnQgfSBmcm9tICdAcGxhaXQvY29tbW9uJztcbmltcG9ydCB7IERyYXdPcHRpb25zLCBHZW9tZXRyeUNvbW1vblRleHRLZXlzLCBQbGFpdE11bHRpcGxlVGV4dEdlb21ldHJ5LCBTaGFwZUVuZ2luZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgT3B0aW9ucyB9IGZyb20gJ3JvdWdoanMvYmluL2NvcmUnO1xuaW1wb3J0IHsgUmVjdGFuZ2xlRW5naW5lIH0gZnJvbSAnLi4vYmFzaWMtc2hhcGVzL3JlY3RhbmdsZSc7XG5pbXBvcnQgeyBnZXRTdHJva2VXaWR0aEJ5RWxlbWVudCB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IFNoYXBlRGVmYXVsdFNwYWNlIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IERyYXdUZXh0SW5mbyB9IGZyb20gJy4uLy4uL2dlbmVyYXRvcnMvdGV4dC5nZW5lcmF0b3InO1xuXG5pbnRlcmZhY2UgUGFja2FnZVBhdGhEYXRhIHtcbiAgICBoZWFkZXJIZWlnaHQ6IG51bWJlcjtcbiAgICBwb2ludHM6IHtcbiAgICAgICAgbGVmdFRvcDogUG9pbnQ7XG4gICAgICAgIHRvcFN0YXJ0OiBQb2ludDtcbiAgICAgICAgdG9wRW5kOiBQb2ludDtcbiAgICAgICAgY29ybmVyUG9pbnQ6IFBvaW50O1xuICAgICAgICByaWdodFRvcDogUG9pbnQ7XG4gICAgICAgIHJpZ2h0Qm90dG9tOiBQb2ludDtcbiAgICAgICAgbGVmdEJvdHRvbTogUG9pbnQ7XG4gICAgICAgIGxlZnRNaWRkbGU6IFBvaW50O1xuICAgICAgICBtaWRkbGVQb2ludDogUG9pbnQ7XG4gICAgfTtcbn1cblxuZnVuY3Rpb24gZ2VuZXJhdGVQYWNrYWdlUGF0aChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCk6IFBhY2thZ2VQYXRoRGF0YSB7XG4gICAgY29uc3QgaGVhZGVySGVpZ2h0ID0gMjU7XG4gICAgY29uc3QgdG9wV2lkdGggPSByZWN0YW5nbGUud2lkdGggKiAwLjc7XG4gICAgY29uc3QgY29ybmVyWCA9IHJlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoICogMC44O1xuICAgIFxuICAgIHJldHVybiB7XG4gICAgICAgIGhlYWRlckhlaWdodCxcbiAgICAgICAgcG9pbnRzOiB7XG4gICAgICAgICAgICBsZWZ0VG9wOiBbcmVjdGFuZ2xlLngsIHJlY3RhbmdsZS55ICsgaGVhZGVySGVpZ2h0XSxcbiAgICAgICAgICAgIHRvcFN0YXJ0OiBbcmVjdGFuZ2xlLngsIHJlY3RhbmdsZS55XSxcbiAgICAgICAgICAgIHRvcEVuZDogW3JlY3RhbmdsZS54ICsgdG9wV2lkdGgsIHJlY3RhbmdsZS55XSxcbiAgICAgICAgICAgIGNvcm5lclBvaW50OiBbY29ybmVyWCwgcmVjdGFuZ2xlLnkgKyBoZWFkZXJIZWlnaHRdLFxuICAgICAgICAgICAgcmlnaHRUb3A6IFtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCwgcmVjdGFuZ2xlLnkgKyBoZWFkZXJIZWlnaHRdLFxuICAgICAgICAgICAgcmlnaHRCb3R0b206IFtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCwgcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0XSxcbiAgICAgICAgICAgIGxlZnRCb3R0b206IFtyZWN0YW5nbGUueCwgcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0XSxcbiAgICAgICAgICAgIGxlZnRNaWRkbGU6IFtyZWN0YW5nbGUueCwgcmVjdGFuZ2xlLnkgKyBoZWFkZXJIZWlnaHRdLFxuICAgICAgICAgICAgbWlkZGxlUG9pbnQ6IFtjb3JuZXJYLCByZWN0YW5nbGUueSArIGhlYWRlckhlaWdodF1cbiAgICAgICAgfVxuICAgIH07XG59XG5cbmV4cG9ydCBjb25zdCBQYWNrYWdlRW5naW5lOiBTaGFwZUVuZ2luZTxQbGFpdE11bHRpcGxlVGV4dEdlb21ldHJ5LCBEcmF3T3B0aW9ucywgRHJhd1RleHRJbmZvPiA9IHtcbiAgICBkcmF3KGJvYXJkOiBQbGFpdEJvYXJkLCByZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgb3B0aW9uczogT3B0aW9ucykge1xuICAgICAgICBjb25zdCBycyA9IFBsYWl0Qm9hcmQuZ2V0Um91Z2hTVkcoYm9hcmQpO1xuICAgICAgICBjb25zdCB7IHBvaW50cyB9ID0gZ2VuZXJhdGVQYWNrYWdlUGF0aChyZWN0YW5nbGUpO1xuICAgICAgICBcbiAgICAgICAgY29uc3QgcGF0aERhdGEgPSBbXG4gICAgICAgICAgICBgTSR7cG9pbnRzLmxlZnRUb3BbMF19ICR7cG9pbnRzLmxlZnRUb3BbMV19YCxcbiAgICAgICAgICAgIGBWJHtwb2ludHMudG9wU3RhcnRbMV19YCxcbiAgICAgICAgICAgIGBIJHtwb2ludHMudG9wRW5kWzBdfWAsXG4gICAgICAgICAgICBgTCR7cG9pbnRzLmNvcm5lclBvaW50WzBdfSAke3BvaW50cy5jb3JuZXJQb2ludFsxXX1gLFxuICAgICAgICAgICAgYEgke3BvaW50cy5yaWdodFRvcFswXX1gLFxuICAgICAgICAgICAgYFYke3BvaW50cy5yaWdodEJvdHRvbVsxXX1gLFxuICAgICAgICAgICAgYEgke3BvaW50cy5sZWZ0Qm90dG9tWzBdfWAsXG4gICAgICAgICAgICBgViR7cG9pbnRzLmxlZnRNaWRkbGVbMV19YCxcbiAgICAgICAgICAgIGBIJHtwb2ludHMubWlkZGxlUG9pbnRbMF19YFxuICAgICAgICBdLmpvaW4oJyAnKTtcblxuICAgICAgICBjb25zdCBzaGFwZSA9IHJzLnBhdGgocGF0aERhdGEsIHsgLi4ub3B0aW9ucywgZmlsbFN0eWxlOiAnc29saWQnIH0pO1xuICAgICAgICBzZXRTdHJva2VMaW5lY2FwKHNoYXBlLCAncm91bmQnKTtcbiAgICAgICAgcmV0dXJuIHNoYXBlO1xuICAgIH0sXG4gICAgaXNJbnNpZGVQb2ludChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcG9pbnQ6IFBvaW50KSB7XG4gICAgICAgIGNvbnN0IHJhbmdlUmVjdGFuZ2xlID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKFtwb2ludCwgcG9pbnRdKTtcbiAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5pc0hpdChyZWN0YW5nbGUsIHJhbmdlUmVjdGFuZ2xlKTtcbiAgICB9LFxuICAgIGdldENvcm5lclBvaW50cyhyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCkge1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmdldENvcm5lclBvaW50cyhyZWN0YW5nbGUpO1xuICAgIH0sXG4gICAgZ2V0TmVhcmVzdFBvaW50KHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBwb2ludDogUG9pbnQpIHtcbiAgICAgICAgY29uc3QgeyBwb2ludHMgfSA9IGdlbmVyYXRlUGFja2FnZVBhdGgocmVjdGFuZ2xlKTtcbiAgICAgICAgXG4gICAgICAgIGNvbnN0IHNlZ21lbnRzOiBbUG9pbnQsIFBvaW50XVtdID0gW1xuICAgICAgICAgICAgLy8g5bem6L6556uW57q/XG4gICAgICAgICAgICBbcG9pbnRzLnRvcFN0YXJ0LCBwb2ludHMubGVmdFRvcF0sXG4gICAgICAgICAgICBbcG9pbnRzLmxlZnRUb3AsIHBvaW50cy5sZWZ0Qm90dG9tXSxcbiAgICAgICAgICAgIC8vIOW6lei+uVxuICAgICAgICAgICAgW3BvaW50cy5sZWZ0Qm90dG9tLCBwb2ludHMucmlnaHRCb3R0b21dLFxuICAgICAgICAgICAgLy8g5Y+z6L6556uW57q/XG4gICAgICAgICAgICBbcG9pbnRzLnJpZ2h0Qm90dG9tLCBwb2ludHMucmlnaHRUb3BdLFxuICAgICAgICAgICAgLy8g6aG26YOo5oqY57q/XG4gICAgICAgICAgICBbcG9pbnRzLnRvcFN0YXJ0LCBwb2ludHMudG9wRW5kXSxcbiAgICAgICAgICAgIFtwb2ludHMudG9wRW5kLCBwb2ludHMuY29ybmVyUG9pbnRdLFxuICAgICAgICAgICAgW3BvaW50cy5jb3JuZXJQb2ludCwgcG9pbnRzLnJpZ2h0VG9wXSxcbiAgICAgICAgICAgIC8vIOS4remXtOaoque6v1xuICAgICAgICAgICAgW3BvaW50cy5sZWZ0TWlkZGxlLCBwb2ludHMubWlkZGxlUG9pbnRdXG4gICAgICAgIF07XG5cbiAgICAgICAgcmV0dXJuIGdldE5lYXJlc3RQb2ludEJldHdlZW5Qb2ludEFuZERpc2NyZXRlU2VnbWVudHMocG9pbnQsIHNlZ21lbnRzKTtcbiAgICB9LFxuICAgIGdldENvbm5lY3RvclBvaW50cyhyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCkge1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmdldEVkZ2VDZW50ZXJQb2ludHMocmVjdGFuZ2xlKTtcbiAgICB9LFxuICAgIGdldFRhbmdlbnRWZWN0b3JCeUNvbm5lY3Rpb25Qb2ludChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcG9pbnRPZlJlY3RhbmdsZTogUG9pbnRPZlJlY3RhbmdsZSkge1xuICAgICAgICBjb25zdCBjb25uZWN0aW9uUG9pbnQgPSBSZWN0YW5nbGVDbGllbnQuZ2V0Q29ubmVjdGlvblBvaW50KHJlY3RhbmdsZSwgcG9pbnRPZlJlY3RhbmdsZSk7XG4gICAgICAgIGlmIChjb25uZWN0aW9uUG9pbnRbMF0gPiByZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAqIDAuNyAmJiBjb25uZWN0aW9uUG9pbnRbMV0gPCByZWN0YW5nbGUueSArIDI1KSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0VW5pdFZlY3RvckJ5UG9pbnRBbmRQb2ludChbcmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggKiAwLjcsIHJlY3RhbmdsZS55XSwgY29ubmVjdGlvblBvaW50KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZ2V0VW5pdFZlY3RvckJ5UG9pbnRBbmRQb2ludChbcmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggKiAwLjgsIHJlY3RhbmdsZS55ICsgMjVdLCBjb25uZWN0aW9uUG9pbnQpO1xuICAgIH0sXG4gICAgZ2V0VGV4dFJlY3RhbmdsZShlbGVtZW50OiBQbGFpdE11bHRpcGxlVGV4dEdlb21ldHJ5LCBvcHRpb25zPzogRHJhd1RleHRJbmZvKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRSZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoZWxlbWVudC5wb2ludHMhKTtcbiAgICAgICAgY29uc3Qgc3Ryb2tlV2lkdGggPSBnZXRTdHJva2VXaWR0aEJ5RWxlbWVudChlbGVtZW50KTtcbiAgICAgICAgY29uc3QgdGV4dEhlaWdodCA9IGVsZW1lbnQudGV4dHM/LmZpbmQoaXRlbSA9PiBpdGVtLmlkID09PSBvcHRpb25zPy5pZCk/LnRleHRIZWlnaHQhO1xuICAgICAgICBpZiAob3B0aW9ucz8uaWQgPT09IEdlb21ldHJ5Q29tbW9uVGV4dEtleXMubmFtZSkge1xuICAgICAgICAgICAgY29uc3Qgd2lkdGggPSBlbGVtZW50UmVjdGFuZ2xlLndpZHRoICogMC43IC0gU2hhcGVEZWZhdWx0U3BhY2UucmVjdGFuZ2xlQW5kVGV4dCAtIHN0cm9rZVdpZHRoO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHRleHRIZWlnaHQsXG4gICAgICAgICAgICAgICAgd2lkdGg6IHdpZHRoID4gMCA/IHdpZHRoIDogMCxcbiAgICAgICAgICAgICAgICB4OiBlbGVtZW50UmVjdGFuZ2xlLnggKyBTaGFwZURlZmF1bHRTcGFjZS5yZWN0YW5nbGVBbmRUZXh0ICsgc3Ryb2tlV2lkdGgsXG4gICAgICAgICAgICAgICAgeTogZWxlbWVudFJlY3RhbmdsZS55ICsgKDI1IC0gdGV4dEhlaWdodCkgLyAyXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zPy5pZCA9PT0gR2VvbWV0cnlDb21tb25UZXh0S2V5cy5jb250ZW50KSB7XG4gICAgICAgICAgICBjb25zdCB3aWR0aCA9IGVsZW1lbnRSZWN0YW5nbGUud2lkdGggLSBTaGFwZURlZmF1bHRTcGFjZS5yZWN0YW5nbGVBbmRUZXh0ICogMiAtIHN0cm9rZVdpZHRoICogMjtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiB0ZXh0SGVpZ2h0LFxuICAgICAgICAgICAgICAgIHdpZHRoOiB3aWR0aCA+IDAgPyB3aWR0aCA6IDAsXG4gICAgICAgICAgICAgICAgeDogZWxlbWVudFJlY3RhbmdsZS54ICsgU2hhcGVEZWZhdWx0U3BhY2UucmVjdGFuZ2xlQW5kVGV4dCArIHN0cm9rZVdpZHRoLFxuICAgICAgICAgICAgICAgIHk6IGVsZW1lbnRSZWN0YW5nbGUueSArIDI1ICsgKGVsZW1lbnRSZWN0YW5nbGUuaGVpZ2h0IC0gMjUgLSB0ZXh0SGVpZ2h0KSAvIDJcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGVsZW1lbnRSZWN0YW5nbGU7XG4gICAgfVxufTtcbiJdfQ==
|
|
@@ -1,25 +1,52 @@
|
|
|
1
1
|
import { PlaitBoard, RectangleClient, distanceBetweenPointAndPoint, getEllipseTangentSlope, getNearestPointBetweenPointAndEllipse, getNearestPointBetweenPointAndSegments, getVectorFromPointAndSlope, setStrokeLinecap } from '@plait/core';
|
|
2
2
|
import { getUnitVectorByPointAndPoint } from '@plait/common';
|
|
3
3
|
const percentage = 0.54;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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
|
+
}
|
|
14
40
|
export const ProvidedInterfaceEngine = {
|
|
15
41
|
draw(board, rectangle, options) {
|
|
16
42
|
const rs = PlaitBoard.getRoughSVG(board);
|
|
17
|
-
const startPoint =
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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, {
|
|
23
50
|
...options,
|
|
24
51
|
fillStyle: 'solid'
|
|
25
52
|
});
|
|
@@ -37,17 +64,17 @@ export const ProvidedInterfaceEngine = {
|
|
|
37
64
|
return RectangleClient.getEdgeCenterPoints(rectangle);
|
|
38
65
|
},
|
|
39
66
|
getNearestPoint(rectangle, point) {
|
|
40
|
-
const startPoint =
|
|
41
|
-
|
|
42
|
-
const
|
|
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]);
|
|
43
72
|
const distanceForLine = distanceBetweenPointAndPoint(...point, ...nearestPointForLine);
|
|
44
|
-
|
|
45
|
-
const
|
|
73
|
+
// 检查圆弧段
|
|
74
|
+
const arcCenter = [rectangle.x + (3 * rectangle.width) / 4, line.startY];
|
|
75
|
+
const nearestPointForEllipse = getNearestPointBetweenPointAndEllipse(point, arcCenter, arcCommands[0].rx, arcCommands[0].ry);
|
|
46
76
|
const distanceForEllipse = distanceBetweenPointAndPoint(...point, ...nearestPointForEllipse);
|
|
47
|
-
|
|
48
|
-
return nearestPointForLine;
|
|
49
|
-
}
|
|
50
|
-
return nearestPointForEllipse;
|
|
77
|
+
return distanceForLine < distanceForEllipse ? nearestPointForLine : nearestPointForEllipse;
|
|
51
78
|
},
|
|
52
79
|
getTangentVectorByConnectionPoint(rectangle, pointOfRectangle) {
|
|
53
80
|
const connectionPoint = RectangleClient.getConnectionPoint(rectangle, pointOfRectangle);
|
|
@@ -62,4 +89,4 @@ export const ProvidedInterfaceEngine = {
|
|
|
62
89
|
return getUnitVectorByPointAndPoint(connectionPoint, [rectangle.x, rectangle.y + rectangle.height / 2]);
|
|
63
90
|
}
|
|
64
91
|
};
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZWQtaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvZW5naW5lcy91bWwvcHJvdmlkZWQtaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxVQUFVLEVBR1YsZUFBZSxFQUNmLDRCQUE0QixFQUM1QixzQkFBc0IsRUFDdEIscUNBQXFDLEVBQ3JDLHNDQUFzQyxFQUN0QywwQkFBMEIsRUFDMUIsZ0JBQWdCLEVBQ25CLE1BQU0sYUFBYSxDQUFDO0FBR3JCLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUM7QUFFeEIsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsU0FBMEIsRUFBUyxFQUFFO0lBQy9ELE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztBQUM3RCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxTQUEwQixFQUFTLEVBQUU7SUFDN0QsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssR0FBRyxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzVGLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxVQUFVLEdBQUcsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBRS9ELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLFNBQTBCLEVBQVMsRUFBRTtJQUM5RCxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxhQUFhLEdBQUcsU0FBUyxDQUFD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QUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNqRSxDQUFDO1FBQ0QsT0FBTyw0QkFBNEIsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVHLENBQUM7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBQbGFpdEJvYXJkLFxuICAgIFBvaW50LFxuICAgIFBvaW50T2ZSZWN0YW5nbGUsXG4gICAgUmVjdGFuZ2xlQ2xpZW50LFxuICAgIGRpc3RhbmNlQmV0d2VlblBvaW50QW5kUG9pbnQsXG4gICAgZ2V0RWxsaXBzZVRhbmdlbnRTbG9wZSxcbiAgICBnZXROZWFyZXN0UG9pbnRCZXR3ZWVuUG9pbnRBbmRFbGxpcHNlLFxuICAgIGdldE5lYXJlc3RQb2ludEJldHdlZW5Qb2ludEFuZFNlZ21lbnRzLFxuICAgIGdldFZlY3RvckZyb21Qb2ludEFuZFNsb3BlLFxuICAgIHNldFN0cm9rZUxpbmVjYXBcbn0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgU2hhcGVFbmdpbmUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE9wdGlvbnMgfSBmcm9tICdyb3VnaGpzL2Jpbi9jb3JlJztcbmltcG9ydCB7IGdldFVuaXRWZWN0b3JCeVBvaW50QW5kUG9pbnQgfSBmcm9tICdAcGxhaXQvY29tbW9uJztcblxuY29uc3QgcGVyY2VudGFnZSA9IDAuNTQ7XG5cbmV4cG9ydCBjb25zdCBnZXRTdGFydFBvaW50ID0gKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50KTogUG9pbnQgPT4ge1xuICAgIHJldHVybiBbcmVjdGFuZ2xlLngsIHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodCAvIDJdO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEVuZFBvaW50ID0gKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50KTogUG9pbnQgPT4ge1xuICAgIHJldHVybiBbcmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggKiBwZXJjZW50YWdlLCByZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHQgLyAyXTtcbn07XG5cbmV4cG9ydCBjb25zdCBhcmNQZXJjZW50YWdlID0gcGVyY2VudGFnZSArICgxIC0gcGVyY2VudGFnZSkgLyAyO1xuXG5leHBvcnQgY29uc3QgZ2V0QXJjQ2VudGVyID0gKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50KTogUG9pbnQgPT4ge1xuICAgIHJldHVybiBbcmVjdGFuZ2xlLnggKyBhcmNQZXJjZW50YWdlICogcmVjdGFuZ2xlLndpZHRoLCByZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHQgLyAyXTtcbn07XG5cbmV4cG9ydCBjb25zdCBQcm92aWRlZEludGVyZmFjZUVuZ2luZTogU2hhcGVFbmdpbmUgPSB7XG4gICAgZHJhdyhib2FyZDogUGxhaXRCb2FyZCwgcmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIG9wdGlvbnM6IE9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgcnMgPSBQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKGJvYXJkKTtcbiAgICAgICAgY29uc3Qgc3RhcnRQb2ludCA9IGdldFN0YXJ0UG9pbnQocmVjdGFuZ2xlKTtcbiAgICAgICAgY29uc3QgZW5kUG9pbnQgPSBnZXRFbmRQb2ludChyZWN0YW5nbGUpO1xuICAgICAgICBjb25zdCBzaGFwZSA9IHJzLnBhdGgoXG4gICAgICAgICAgICBgTSR7c3RhcnRQb2ludFswXX0gJHtzdGFydFBvaW50WzFdfSBcbiAgICAgICAgSCR7ZW5kUG9pbnRbMF19XG4gICAgICAgIEEkeyhyZWN0YW5nbGUud2lkdGggKiAoMSAtIHBlcmNlbnRhZ2UpKSAvIDJ9ICR7cmVjdGFuZ2xlLmhlaWdodCAvIDJ9LCAwLCAxLCAxICR7cmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGh9ICR7XG4gICAgICAgICAgICAgICAgcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0IC8gMlxuICAgICAgICAgICAgfVxuICAgICAgICBBJHsocmVjdGFuZ2xlLndpZHRoICogKDEgLSBwZXJjZW50YWdlKSkgLyAyfSAke3JlY3RhbmdsZS5oZWlnaHQgLyAyfSwgMCwgMSwgMSAke3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoICogcGVyY2VudGFnZX0gJHtcbiAgICAgICAgICAgICAgICByZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHQgLyAyXG4gICAgICAgICAgICB9YCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICAgICAgICAgIGZpbGxTdHlsZTogJ3NvbGlkJ1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgICBzZXRTdHJva2VMaW5lY2FwKHNoYXBlLCAncm91bmQnKTtcbiAgICAgICAgcmV0dXJuIHNoYXBlO1xuICAgIH0sXG4gICAgaXNJbnNpZGVQb2ludChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcG9pbnQ6IFBvaW50KSB7XG4gICAgICAgIGNvbnN0IHJhbmdlUmVjdGFuZ2xlID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKFtwb2ludCwgcG9pbnRdKTtcbiAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5pc0hpdChyZWN0YW5nbGUsIHJhbmdlUmVjdGFuZ2xlKTtcbiAgICB9LFxuICAgIGdldENvcm5lclBvaW50cyhyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCkge1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmdldENvcm5lclBvaW50cyhyZWN0YW5nbGUpO1xuICAgIH0sXG4gICAgZ2V0Q29ubmVjdG9yUG9pbnRzKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50KSB7XG4gICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuZ2V0RWRnZUNlbnRlclBvaW50cyhyZWN0YW5nbGUpO1xuICAgIH0sXG4gICAgZ2V0TmVhcmVzdFBvaW50KHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBwb2ludDogUG9pbnQpIHtcbiAgICAgICAgY29uc3Qgc3RhcnRQb2ludCA9IGdldFN0YXJ0UG9pbnQocmVjdGFuZ2xlKTtcbiAgICAgICAgY29uc3QgZW5kUG9pbnQgPSBnZXRFbmRQb2ludChyZWN0YW5nbGUpO1xuICAgICAgICBjb25zdCBuZWFyZXN0UG9pbnRGb3JMaW5lID0gZ2V0TmVhcmVzdFBvaW50QmV0d2VlblBvaW50QW5kU2VnbWVudHMocG9pbnQsIFtzdGFydFBvaW50LCBlbmRQb2ludF0pO1xuICAgICAgICBjb25zdCBkaXN0YW5jZUZvckxpbmUgPSBkaXN0YW5jZUJldHdlZW5Qb2ludEFuZFBvaW50KC4uLnBvaW50LCAuLi5uZWFyZXN0UG9pbnRGb3JMaW5lKTtcbiAgICAgICAgY29uc3QgYXJjQ2VudGVyID0gZ2V0QXJjQ2VudGVyKHJlY3RhbmdsZSk7XG4gICAgICAgIGNvbnN0IG5lYXJlc3RQb2ludEZvckVsbGlwc2UgPSBnZXROZWFyZXN0UG9pbnRCZXR3ZWVuUG9pbnRBbmRFbGxpcHNlKFxuICAgICAgICAgICAgcG9pbnQsXG4gICAgICAgICAgICBhcmNDZW50ZXIsXG4gICAgICAgICAgICAocmVjdGFuZ2xlLndpZHRoICogKDEgLSBwZXJjZW50YWdlKSkgLyAyLFxuICAgICAgICAgICAgcmVjdGFuZ2xlLmhlaWdodCAvIDJcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgZGlzdGFuY2VGb3JFbGxpcHNlID0gZGlzdGFuY2VCZXR3ZWVuUG9pbnRBbmRQb2ludCguLi5wb2ludCwgLi4ubmVhcmVzdFBvaW50Rm9yRWxsaXBzZSk7XG4gICAgICAgIGlmIChkaXN0YW5jZUZvckxpbmUgPCBkaXN0YW5jZUZvckVsbGlwc2UpIHtcbiAgICAgICAgICAgIHJldHVybiBuZWFyZXN0UG9pbnRGb3JMaW5lO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZWFyZXN0UG9pbnRGb3JFbGxpcHNlO1xuICAgIH0sXG4gICAgZ2V0VGFuZ2VudFZlY3RvckJ5Q29ubmVjdGlvblBvaW50KHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBwb2ludE9mUmVjdGFuZ2xlOiBQb2ludE9mUmVjdGFuZ2xlKSB7XG4gICAgICAgIGNvbnN0IGNvbm5lY3Rpb25Qb2ludCA9IFJlY3RhbmdsZUNsaWVudC5nZXRDb25uZWN0aW9uUG9pbnQocmVjdGFuZ2xlLCBwb2ludE9mUmVjdGFuZ2xlKTtcbiAgICAgICAgY29uc3QgY2VudGVyUG9pbnQ6IFBvaW50ID0gW3JlY3RhbmdsZS54ICsgKHJlY3RhbmdsZS53aWR0aCAqIDMpIC8gNCwgcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0IC8gMl07XG4gICAgICAgIGlmIChjb25uZWN0aW9uUG9pbnRbMF0gPiByZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAqIDAuNTQpIHtcbiAgICAgICAgICAgIGNvbnN0IHBvaW50ID0gW2Nvbm5lY3Rpb25Qb2ludFswXSAtIGNlbnRlclBvaW50WzBdLCAtKGNvbm5lY3Rpb25Qb2ludFsxXSAtIGNlbnRlclBvaW50WzFdKV07XG4gICAgICAgICAgICBjb25zdCByeCA9IChyZWN0YW5nbGUud2lkdGggKiAwLjQ2KSAvIDI7XG4gICAgICAgICAgICBjb25zdCByeSA9IHJlY3RhbmdsZS5oZWlnaHQgLyAyO1xuICAgICAgICAgICAgY29uc3Qgc2xvcGUgPSBnZXRFbGxpcHNlVGFuZ2VudFNsb3BlKHBvaW50WzBdLCBwb2ludFsxXSwgcngsIHJ5KSBhcyBhbnk7XG4gICAgICAgICAgICByZXR1cm4gZ2V0VmVjdG9yRnJvbVBvaW50QW5kU2xvcGUocG9pbnRbMF0sIHBvaW50WzFdLCBzbG9wZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGdldFVuaXRWZWN0b3JCeVBvaW50QW5kUG9pbnQoY29ubmVjdGlvblBvaW50LCBbcmVjdGFuZ2xlLngsIHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodCAvIDJdKTtcbiAgICB9XG59O1xuIl19
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZWQtaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvZW5naW5lcy91bWwvcHJvdmlkZWQtaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxVQUFVLEVBR1YsZUFBZSxFQUVmLDRCQUE0QixFQUM1QixzQkFBc0IsRUFDdEIscUNBQXFDLEVBQ3JDLHNDQUFzQyxFQUN0QywwQkFBMEIsRUFDMUIsZ0JBQWdCLEVBQ25CLE1BQU0sYUFBYSxDQUFDO0FBR3JCLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUM7QUFheEIsU0FBUyw2QkFBNkIsQ0FBQyxTQUEwQjtJQUM3RCxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ25ELE1BQU0sRUFBRSxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNwRCxNQUFNLEVBQUUsR0FBRyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUVoQyxNQUFNLFVBQVUsR0FBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDakQsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQztJQUU1RCxPQUFPO1FBQ0gsVUFBVTtRQUNWLElBQUksRUFBRTtZQUNGLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQ3JCLE1BQU0sRUFBRSxPQUFPO1lBQ2YsSUFBSSxFQUFFLFFBQVE7WUFDZCxJQUFJLEVBQUUsT0FBTztTQUNoQjtRQUNELFdBQVcsRUFBRTtZQUNUO2dC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QUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVGLE1BQU0sRUFBRSxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDeEMsTUFBTSxFQUFFLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDaEMsTUFBTSxLQUFLLEdBQUcsc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFRLENBQUM7WUFDeEUsT0FBTywwQkFBMEIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2pFLENBQUM7UUFDRCxPQUFPLDRCQUE0QixDQUFDLGVBQWUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUcsQ0FBQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIFBsYWl0Qm9hcmQsXG4gICAgUG9pbnQsXG4gICAgUG9pbnRPZlJlY3RhbmdsZSxcbiAgICBSZWN0YW5nbGVDbGllbnQsXG4gICAgU1ZHQXJjQ29tbWFuZCxcbiAgICBkaXN0YW5jZUJldHdlZW5Qb2ludEFuZFBvaW50LFxuICAgIGdldEVsbGlwc2VUYW5nZW50U2xvcGUsXG4gICAgZ2V0TmVhcmVzdFBvaW50QmV0d2VlblBvaW50QW5kRWxsaXBzZSxcbiAgICBnZXROZWFyZXN0UG9pbnRCZXR3ZWVuUG9pbnRBbmRTZWdtZW50cyxcbiAgICBnZXRWZWN0b3JGcm9tUG9pbnRBbmRTbG9wZSxcbiAgICBzZXRTdHJva2VMaW5lY2FwXG59IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IFNoYXBlRW5naW5lIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBPcHRpb25zIH0gZnJvbSAncm91Z2hqcy9iaW4vY29yZSc7XG5pbXBvcnQgeyBnZXRVbml0VmVjdG9yQnlQb2ludEFuZFBvaW50IH0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5cbmNvbnN0IHBlcmNlbnRhZ2UgPSAwLjU0O1xuXG5pbnRlcmZhY2UgUHJvdmlkZWRJbnRlcmZhY2VQYXRoRGF0YSB7XG4gICAgc3RhcnRQb2ludDogUG9pbnQ7XG4gICAgbGluZToge1xuICAgICAgICBzdGFydFg6IG51bWJlcjtcbiAgICAgICAgc3RhcnRZOiBudW1iZXI7XG4gICAgICAgIGVuZFg6IG51bWJlcjtcbiAgICAgICAgZW5kWTogbnVtYmVyO1xuICAgIH07XG4gICAgYXJjQ29tbWFuZHM6IFNWR0FyY0NvbW1hbmRbXTtcbn1cblxuZnVuY3Rpb24gZ2VuZXJhdGVQcm92aWRlZEludGVyZmFjZVBhdGgocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpOiBQcm92aWRlZEludGVyZmFjZVBhdGhEYXRhIHtcbiAgICBjb25zdCBjZW50ZXJZID0gcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0IC8gMjtcbiAgICBjb25zdCByeCA9IChyZWN0YW5nbGUud2lkdGggKiAoMSAtIHBlcmNlbnRhZ2UpKSAvIDI7XG4gICAgY29uc3QgcnkgPSByZWN0YW5nbGUuaGVpZ2h0IC8gMjtcblxuICAgIGNvbnN0IHN0YXJ0UG9pbnQ6IFBvaW50ID0gW3JlY3RhbmdsZS54LCBjZW50ZXJZXTtcbiAgICBjb25zdCBsaW5lRW5kWCA9IHJlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoICogcGVyY2VudGFnZTtcblxuICAgIHJldHVybiB7XG4gICAgICAgIHN0YXJ0UG9pbnQsXG4gICAgICAgIGxpbmU6IHtcbiAgICAgICAgICAgIHN0YXJ0WDogc3RhcnRQb2ludFswXSxcbiAgICAgICAgICAgIHN0YXJ0WTogY2VudGVyWSxcbiAgICAgICAgICAgIGVuZFg6IGxpbmVFbmRYLFxuICAgICAgICAgICAgZW5kWTogY2VudGVyWVxuICAgICAgICB9LFxuICAgICAgICBhcmNDb21tYW5kczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHJ4LFxuICAgICAgICAgICAgICAgIHJ5LFxuICAgICAgICAgICAgICAgIHhBeGlzUm90YXRpb246IDAsXG4gICAgICAgICAgICAgICAgbGFyZ2VBcmNGbGFnOiAxLFxuICAgICAgICAgICAgICAgIHN3ZWVwRmxhZzogMSxcbiAgICAgICAgICAgICAgICBlbmRYOiByZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCxcbiAgICAgICAgICAgICAgICBlbmRZOiBjZW50ZXJZXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHJ4LFxuICAgICAgICAgICAgICAgIHJ5LFxuICAgICAgICAgICAgICAgIHhBeGlzUm90YXRpb246IDAsXG4gICAgICAgICAgICAgICAgbGFyZ2VBcmNGbGFnOiAxLFxuICAgICAgICAgICAgICAgIHN3ZWVwRmxhZzogMSxcbiAgICAgICAgICAgICAgICBlbmRYOiBsaW5lRW5kWCxcbiAgICAgICAgICAgICAgICBlbmRZOiBjZW50ZXJZXG4gICAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICB9O1xufVxuXG5leHBvcnQgY29uc3QgUHJvdmlkZWRJbnRlcmZhY2VFbmdpbmU6IFNoYXBlRW5naW5lID0ge1xuICAgIGRyYXcoYm9hcmQ6IFBsYWl0Qm9hcmQsIHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBvcHRpb25zOiBPcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IHJzID0gUGxhaXRCb2FyZC5nZXRSb3VnaFNWRyhib2FyZCk7XG4gICAgICAgIGNvbnN0IHsgc3RhcnRQb2ludCwgbGluZSwgYXJjQ29tbWFuZHMgfSA9IGdlbmVyYXRlUHJvdmlkZWRJbnRlcmZhY2VQYXRoKHJlY3RhbmdsZSk7XG5cbiAgICAgICAgY29uc3QgcGF0aERhdGEgPSBbXG4gICAgICAgICAgICBgTSR7c3RhcnRQb2ludFswXX0gJHtzdGFydFBvaW50WzFdfWAsXG4gICAgICAgICAgICBgSCR7bGluZS5lbmRYfWAsXG4gICAgICAgICAgICAuLi5hcmNDb21tYW5kcy5tYXAoXG4gICAgICAgICAgICAgICAgKGNvbW1hbmQpID0+XG4gICAgICAgICAgICAgICAgICAgIGBBJHtjb21tYW5kLnJ4fSAke2NvbW1hbmQucnl9ICR7Y29tbWFuZC54QXhpc1JvdGF0aW9ufSAke2NvbW1hbmQubGFyZ2VBcmNGbGFnfSAke2NvbW1hbmQuc3dlZXBGbGFnfSAke2NvbW1hbmQuZW5kWH0gJHtjb21tYW5kLmVuZFl9YFxuICAgICAgICAgICAgKVxuICAgICAgICBdLmpvaW4oJyAnKTtcblxuICAgICAgICBjb25zdCBzaGFwZSA9IHJzLnBhdGgocGF0aERhdGEsIHtcbiAgICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICAgICBmaWxsU3R5bGU6ICdzb2xpZCdcbiAgICAgICAgfSk7XG4gICAgICAgIHNldFN0cm9rZUxpbmVjYXAoc2hhcGUsICdyb3VuZCcpO1xuICAgICAgICByZXR1cm4gc2hhcGU7XG4gICAgfSxcbiAgICBpc0luc2lkZVBvaW50KHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBwb2ludDogUG9pbnQpIHtcbiAgICAgICAgY29uc3QgcmFuZ2VSZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoW3BvaW50LCBwb2ludF0pO1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmlzSGl0KHJlY3RhbmdsZSwgcmFuZ2VSZWN0YW5nbGUpO1xuICAgIH0sXG4gICAgZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50KSB7XG4gICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgfSxcbiAgICBnZXRDb25uZWN0b3JQb2ludHMocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpIHtcbiAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5nZXRFZGdlQ2VudGVyUG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgfSxcbiAgICBnZXROZWFyZXN0UG9pbnQocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIHBvaW50OiBQb2ludCkge1xuICAgICAgICBjb25zdCB7IHN0YXJ0UG9pbnQsIGxpbmUsIGFyY0NvbW1hbmRzIH0gPSBnZW5lcmF0ZVByb3ZpZGVkSW50ZXJmYWNlUGF0aChyZWN0YW5nbGUpO1xuXG4gICAgICAgIC8vIOajgOafpeebtOe6v+autVxuICAgICAgICBjb25zdCBsaW5lU3RhcnQ6IFBvaW50ID0gW2xpbmUuc3RhcnRYLCBsaW5lLnN0YXJ0WV07XG4gICAgICAgIGNvbnN0IGxpbmVFbmQ6IFBvaW50ID0gW2xpbmUuZW5kWCwgbGluZS5lbmRZXTtcbiAgICAgICAgY29uc3QgbmVhcmVzdFBvaW50Rm9yTGluZSA9IGdldE5lYXJlc3RQb2ludEJldHdlZW5Qb2ludEFuZFNlZ21lbnRzKHBvaW50LCBbbGluZVN0YXJ0LCBsaW5lRW5kXSk7XG4gICAgICAgIGNvbnN0IGRpc3RhbmNlRm9yTGluZSA9IGRpc3RhbmNlQmV0d2VlblBvaW50QW5kUG9pbnQoLi4ucG9pbnQsIC4uLm5lYXJlc3RQb2ludEZvckxpbmUpO1xuXG4gICAgICAgIC8vIOajgOafpeWchuW8p+autVxuICAgICAgICBjb25zdCBhcmNDZW50ZXIgPSBbcmVjdGFuZ2xlLnggKyAoMyAqIHJlY3RhbmdsZS53aWR0aCkgLyA0LCBsaW5lLnN0YXJ0WV0gYXMgUG9pbnQ7XG4gICAgICAgIGNvbnN0IG5lYXJlc3RQb2ludEZvckVsbGlwc2UgPSBnZXROZWFyZXN0UG9pbnRCZXR3ZWVuUG9pbnRBbmRFbGxpcHNlKHBvaW50LCBhcmNDZW50ZXIsIGFyY0NvbW1hbmRzWzBdLnJ4LCBhcmNDb21tYW5kc1swXS5yeSk7XG4gICAgICAgIGNvbnN0IGRpc3RhbmNlRm9yRWxsaXBzZSA9IGRpc3RhbmNlQmV0d2VlblBvaW50QW5kUG9pbnQoLi4ucG9pbnQsIC4uLm5lYXJlc3RQb2ludEZvckVsbGlwc2UpO1xuXG4gICAgICAgIHJldHVybiBkaXN0YW5jZUZvckxpbmUgPCBkaXN0YW5jZUZvckVsbGlwc2UgPyBuZWFyZXN0UG9pbnRGb3JMaW5lIDogbmVhcmVzdFBvaW50Rm9yRWxsaXBzZTtcbiAgICB9LFxuICAgIGdldFRhbmdlbnRWZWN0b3JCeUNvbm5lY3Rpb25Qb2ludChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcG9pbnRPZlJlY3RhbmdsZTogUG9pbnRPZlJlY3RhbmdsZSkge1xuICAgICAgICBjb25zdCBjb25uZWN0aW9uUG9pbnQgPSBSZWN0YW5nbGVDbGllbnQuZ2V0Q29ubmVjdGlvblBvaW50KHJlY3RhbmdsZSwgcG9pbnRPZlJlY3RhbmdsZSk7XG4gICAgICAgIGNvbnN0IGNlbnRlclBvaW50OiBQb2ludCA9IFtyZWN0YW5nbGUueCArIChyZWN0YW5nbGUud2lkdGggKiAzKSAvIDQsIHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodCAvIDJdO1xuICAgICAgICBpZiAoY29ubmVjdGlvblBvaW50WzBdID4gcmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGggKiAwLjU0KSB7XG4gICAgICAgICAgICBjb25zdCBwb2ludCA9IFtjb25uZWN0aW9uUG9pbnRbMF0gLSBjZW50ZXJQb2ludFswXSwgLShjb25uZWN0aW9uUG9pbnRbMV0gLSBjZW50ZXJQb2ludFsxXSldO1xuICAgICAgICAgICAgY29uc3QgcnggPSAocmVjdGFuZ2xlLndpZHRoICogMC40NikgLyAyO1xuICAgICAgICAgICAgY29uc3QgcnkgPSByZWN0YW5nbGUuaGVpZ2h0IC8gMjtcbiAgICAgICAgICAgIGNvbnN0IHNsb3BlID0gZ2V0RWxsaXBzZVRhbmdlbnRTbG9wZShwb2ludFswXSwgcG9pbnRbMV0sIHJ4LCByeSkgYXMgYW55O1xuICAgICAgICAgICAgcmV0dXJuIGdldFZlY3RvckZyb21Qb2ludEFuZFNsb3BlKHBvaW50WzBdLCBwb2ludFsxXSwgc2xvcGUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBnZXRVbml0VmVjdG9yQnlQb2ludEFuZFBvaW50KGNvbm5lY3Rpb25Qb2ludCwgW3JlY3RhbmdsZS54LCByZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHQgLyAyXSk7XG4gICAgfVxufTtcbiJdfQ==
|
|
@@ -1,13 +1,38 @@
|
|
|
1
|
-
import { PlaitBoard, RectangleClient,
|
|
1
|
+
import { PlaitBoard, RectangleClient, getNearestPointBetweenPointAndArc, distanceBetweenPointAndPoint, setStrokeLinecap, getNearestPointBetweenPointAndSegment } from '@plait/core';
|
|
2
2
|
import { RectangleEngine } from '../basic-shapes/rectangle';
|
|
3
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
|
+
}
|
|
4
26
|
export const RequiredInterfaceEngine = {
|
|
5
27
|
draw(board, rectangle, options) {
|
|
6
28
|
const rs = PlaitBoard.getRoughSVG(board);
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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, {
|
|
11
36
|
...options,
|
|
12
37
|
fillStyle: 'solid',
|
|
13
38
|
fill: 'transparent'
|
|
@@ -23,7 +48,26 @@ export const RequiredInterfaceEngine = {
|
|
|
23
48
|
return RectangleClient.getCornerPoints(rectangle);
|
|
24
49
|
},
|
|
25
50
|
getNearestPoint(rectangle, point) {
|
|
26
|
-
|
|
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;
|
|
27
71
|
},
|
|
28
72
|
getEdgeByConnectionPoint(rectangle, pointOfRectangle) {
|
|
29
73
|
const corners = RectangleEngine.getCornerPoints(rectangle);
|
|
@@ -34,4 +78,4 @@ export const RequiredInterfaceEngine = {
|
|
|
34
78
|
return RectangleClient.getEdgeCenterPoints(rectangle);
|
|
35
79
|
}
|
|
36
80
|
};
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWlyZWQtaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvZW5naW5lcy91bWwvcmVxdWlyZWQtaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxVQUFVLEVBR1YsZUFBZSxFQUNmLHNDQUFzQyxFQUN0QyxnQkFBZ0IsRUFDbkIsTUFBTSxhQUFhLENBQUM7QUFHckIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRFLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFnQjtJQUNoRCxJQUFJLENBQUMsS0FBaUIsRUFBRSxTQUEwQixFQUFFLE9BQWdCO1FBQ2hFLE1BQU0sRUFBRSxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FDakIsSUFBSSxTQUFTLENBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxDQUFDO1dBQy9CLFNBQVMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxJQUFJLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxhQUFhLFNBQVMsQ0FBQyxDQUFDLElBQUksU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTTtXQUN4RyxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxJQUFJLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSztTQUM5RyxFQUNHO1lBQ0ksR0FBRyxPQUFPO1lBQ1YsU0FBUyxFQUFFLE9BQU87WUFDbEIsSUFBSSxFQUFFLGFBQWE7U0FDdEIsQ0FDSixDQUFDO1FBQ0YsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRWpDLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFDRCxhQUFhLENBQUMsU0FBMEIsRUFBRSxLQUFZO1FBQ2xELE1BQU0sY0FBYyxHQUFHLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzVFLE9BQU8sZUFBZSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUNELGVBQWUsQ0FBQyxTQUEwQjtRQUN0QyxPQUFPLGVBQWUsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUNELGVBQWUsQ0FBQyxTQUEwQixFQUFFLEtBQVk7UUFDcEQsT0FBTyxzQ0FBc0MsQ0FBQyxLQUFLLEVBQUUsZUFBZSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3JHLENBQUM7SUFDRCx3QkFBd0IsQ0FBQyxTQUEwQixFQUFFLGdCQUFrQztRQUNuRixNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzNELE1BQU0sS0FBSyxHQUFHLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUM5RSxPQUFPLCtCQUErQixDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBQ0Qsa0JBQWtCLENBQUMsU0FBMEI7UUFDekMsT0FBTyxlQUFlLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDMUQsQ0FBQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIFBsYWl0Qm9hcmQsXG4gICAgUG9pbnQsXG4gICAgUG9pbnRPZlJlY3RhbmdsZSxcbiAgICBSZWN0YW5nbGVDbGllbnQsXG4gICAgZ2V0TmVhcmVzdFBvaW50QmV0d2VlblBvaW50QW5kU2VnbWVudHMsXG4gICAgc2V0U3Ryb2tlTGluZWNhcFxufSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBTaGFwZUVuZ2luZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgT3B0aW9ucyB9IGZyb20gJ3JvdWdoanMvYmluL2NvcmUnO1xuaW1wb3J0IHsgUmVjdGFuZ2xlRW5naW5lIH0gZnJvbSAnLi4vYmFzaWMtc2hhcGVzL3JlY3RhbmdsZSc7XG5pbXBvcnQgeyBnZXRQb2x5Z29uRWRnZUJ5Q29ubmVjdGlvblBvaW50IH0gZnJvbSAnLi4vLi4vdXRpbHMvcG9seWdvbic7XG5cbmV4cG9ydCBjb25zdCBSZXF1aXJlZEludGVyZmFjZUVuZ2luZTogU2hhcGVFbmdpbmUgPSB7XG4gICAgZHJhdyhib2FyZDogUGxhaXRCb2FyZCwgcmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIG9wdGlvbnM6IE9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgcnMgPSBQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKGJvYXJkKTtcbiAgICAgICAgY29uc3Qgc2hhcGUgPSBycy5wYXRoKFxuICAgICAgICAgICAgYE0ke3JlY3RhbmdsZS54fSAke3JlY3RhbmdsZS55fSBcbiAgICAgICAgQSR7cmVjdGFuZ2xlLndpZHRoICogMC4zOX0gJHtyZWN0YW5nbGUuaGVpZ2h0IC8gMn0sIDAsIDAsIDEgJHtyZWN0YW5nbGUueH0gJHtyZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHR9XG4gICAgICAgIE0ke3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoICogMC40MX0gJHtyZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHQgLyAyfSBIJHtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aH1cbiAgICAgICAgYCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICAgICAgICAgIGZpbGxTdHlsZTogJ3NvbGlkJyxcbiAgICAgICAgICAgICAgICBmaWxsOiAndHJhbnNwYXJlbnQnXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICAgIHNldFN0cm9rZUxpbmVjYXAoc2hhcGUsICdyb3VuZCcpO1xuXG4gICAgICAgIHJldHVybiBzaGFwZTtcbiAgICB9LFxuICAgIGlzSW5zaWRlUG9pbnQocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIHBvaW50OiBQb2ludCkge1xuICAgICAgICBjb25zdCByYW5nZVJlY3RhbmdsZSA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhbcG9pbnQsIHBvaW50XSk7XG4gICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuaXNIaXQocmVjdGFuZ2xlLCByYW5nZVJlY3RhbmdsZSk7XG4gICAgfSxcbiAgICBnZXRDb3JuZXJQb2ludHMocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpIHtcbiAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5nZXRDb3JuZXJQb2ludHMocmVjdGFuZ2xlKTtcbiAgICB9LFxuICAgIGdldE5lYXJlc3RQb2ludChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcG9pbnQ6IFBvaW50KSB7XG4gICAgICAgIHJldHVybiBnZXROZWFyZXN0UG9pbnRCZXR3ZWVuUG9pbnRBbmRTZWdtZW50cyhwb2ludCwgUmVjdGFuZ2xlRW5naW5lLmdldENvcm5lclBvaW50cyhyZWN0YW5nbGUpKTtcbiAgICB9LFxuICAgIGdldEVkZ2VCeUNvbm5lY3Rpb25Qb2ludChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcG9pbnRPZlJlY3RhbmdsZTogUG9pbnRPZlJlY3RhbmdsZSk6IFtQb2ludCwgUG9pbnRdIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IGNvcm5lcnMgPSBSZWN0YW5nbGVFbmdpbmUuZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgICAgIGNvbnN0IHBvaW50ID0gUmVjdGFuZ2xlQ2xpZW50LmdldENvbm5lY3Rpb25Qb2ludChyZWN0YW5nbGUsIHBvaW50T2ZSZWN0YW5nbGUpO1xuICAgICAgICByZXR1cm4gZ2V0UG9seWdvbkVkZ2VCeUNvbm5lY3Rpb25Qb2ludChjb3JuZXJzLCBwb2ludCk7XG4gICAgfSxcbiAgICBnZXRDb25uZWN0b3JQb2ludHMocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpIHtcbiAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5nZXRFZGdlQ2VudGVyUG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgfVxufTtcbiJdfQ==
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWlyZWQtaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvZW5naW5lcy91bWwvcmVxdWlyZWQtaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxVQUFVLEVBR1YsZUFBZSxFQUVmLGlDQUFpQyxFQUNqQyw0QkFBNEIsRUFDNUIsZ0JBQWdCLEVBQ2hCLHFDQUFxQyxFQUV4QyxNQUFNLGFBQWEsQ0FBQztBQUdyQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFhdEUsU0FBUyw2QkFBNkIsQ0FBQyxTQUEwQjtJQUM3RCxNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztJQUN4QyxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUV2QyxPQUFPO1FBQ0gsVUFBVSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLGNBQWMsRUFBRTtZQUNaLEVBQUUsRUFBRSxRQUFRO1lBQ1osRUFBRSxFQUFFLFNBQVM7WUFDYixhQUFhLEVBQUUsQ0FBQztZQUNoQixZQUFZLEVBQUUsQ0FBQztZQUNmLFNBQVMsRUFBRSxDQUFDO1lBQ1osSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ2pCLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNO1NBQ3ZDO1FBQ0QsSUFBSSxFQUFFO1lBQ0YsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLEtBQUssR0FBRyxJQUFJO1lBQzVDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUMx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QyxDQUFDLEtBQUssRUFBRSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQzVGLE1BQU0sWUFBWSxHQUFHLDRCQUE0QixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoSCxJQUFJLFlBQVksR0FBRyxXQUFXLEVBQUUsQ0FBQztZQUM3QixXQUFXLEdBQUcsWUFBWSxDQUFDO1lBQzNCLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQztRQUNwQyxDQUFDO1FBRUQsT0FBTyxZQUFZLENBQUM7SUFDeEIsQ0FBQztJQUNELHdCQUF3QixDQUFDLFNBQTBCLEVBQUUsZ0JBQWtDO1FBQ25GLE1BQU0sT0FBTyxHQUFHLGVBQWUsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDM0QsTUFBTSxLQUFLLEdBQUcsZUFBZSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzlFLE9BQU8sK0JBQStCLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFDRCxrQkFBa0IsQ0FBQyxTQUEwQjtRQUN6QyxPQUFPLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMxRCxDQUFDO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgUGxhaXRCb2FyZCxcbiAgICBQb2ludCxcbiAgICBQb2ludE9mUmVjdGFuZ2xlLFxuICAgIFJlY3RhbmdsZUNsaWVudCxcbiAgICBnZXROZWFyZXN0UG9pbnRCZXR3ZWVuUG9pbnRBbmRTZWdtZW50cyxcbiAgICBnZXROZWFyZXN0UG9pbnRCZXR3ZWVuUG9pbnRBbmRBcmMsXG4gICAgZGlzdGFuY2VCZXR3ZWVuUG9pbnRBbmRQb2ludCxcbiAgICBzZXRTdHJva2VMaW5lY2FwLFxuICAgIGdldE5lYXJlc3RQb2ludEJldHdlZW5Qb2ludEFuZFNlZ21lbnQsXG4gICAgU1ZHQXJjQ29tbWFuZFxufSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBTaGFwZUVuZ2luZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgT3B0aW9ucyB9IGZyb20gJ3JvdWdoanMvYmluL2NvcmUnO1xuaW1wb3J0IHsgUmVjdGFuZ2xlRW5naW5lIH0gZnJvbSAnLi4vYmFzaWMtc2hhcGVzL3JlY3RhbmdsZSc7XG5pbXBvcnQgeyBnZXRQb2x5Z29uRWRnZUJ5Q29ubmVjdGlvblBvaW50IH0gZnJvbSAnLi4vLi4vdXRpbHMvcG9seWdvbic7XG5cbmludGVyZmFjZSBSZXF1aXJlZEludGVyZmFjZVBhdGhEYXRhIHtcbiAgICBzdGFydFBvaW50OiBQb2ludDtcbiAgICBsZWZ0QXJjQ29tbWFuZDogU1ZHQXJjQ29tbWFuZDtcbiAgICBsaW5lOiB7XG4gICAgICAgIHN0YXJ0WDogbnVtYmVyO1xuICAgICAgICBzdGFydFk6IG51bWJlcjtcbiAgICAgICAgZW5kWDogbnVtYmVyO1xuICAgICAgICBlbmRZOiBudW1iZXI7XG4gICAgfTtcbn1cblxuZnVuY3Rpb24gZ2VuZXJhdGVSZXF1aXJlZEludGVyZmFjZVBhdGgocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpOiBSZXF1aXJlZEludGVyZmFjZVBhdGhEYXRhIHtcbiAgICBjb25zdCBhcmNXaWR0aCA9IHJlY3RhbmdsZS53aWR0aCAqIDAuMzk7XG4gICAgY29uc3QgYXJjSGVpZ2h0ID0gcmVjdGFuZ2xlLmhlaWdodCAvIDI7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBzdGFydFBvaW50OiBbcmVjdGFuZ2xlLngsIHJlY3RhbmdsZS55XSxcbiAgICAgICAgbGVmdEFyY0NvbW1hbmQ6IHtcbiAgICAgICAgICAgIHJ4OiBhcmNXaWR0aCxcbiAgICAgICAgICAgIHJ5OiBhcmNIZWlnaHQsXG4gICAgICAgICAgICB4QXhpc1JvdGF0aW9uOiAwLFxuICAgICAgICAgICAgbGFyZ2VBcmNGbGFnOiAwLFxuICAgICAgICAgICAgc3dlZXBGbGFnOiAxLFxuICAgICAgICAgICAgZW5kWDogcmVjdGFuZ2xlLngsXG4gICAgICAgICAgICBlbmRZOiByZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHRcbiAgICAgICAgfSxcbiAgICAgICAgbGluZToge1xuICAgICAgICAgICAgc3RhcnRYOiByZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCAqIDAuNDEsXG4gICAgICAgICAgICBzdGFydFk6IHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodCAvIDIsXG4gICAgICAgICAgICBlbmRYOiByZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCxcbiAgICAgICAgICAgIGVuZFk6IHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodCAvIDJcbiAgICAgICAgfVxuICAgIH07XG59XG5cbmV4cG9ydCBjb25zdCBSZXF1aXJlZEludGVyZmFjZUVuZ2luZTogU2hhcGVFbmdpbmUgPSB7XG4gICAgZHJhdyhib2FyZDogUGxhaXRCb2FyZCwgcmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIG9wdGlvbnM6IE9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgcnMgPSBQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKGJvYXJkKTtcbiAgICAgICAgY29uc3QgeyBzdGFydFBvaW50LCBsZWZ0QXJjQ29tbWFuZCwgbGluZSB9ID0gZ2VuZXJhdGVSZXF1aXJlZEludGVyZmFjZVBhdGgocmVjdGFuZ2xlKTtcblxuICAgICAgICBjb25zdCBwYXRoRGF0YSA9IFtcbiAgICAgICAgICAgIGBNJHtzdGFydFBvaW50WzBdfSAke3N0YXJ0UG9pbnRbMV19YCxcbiAgICAgICAgICAgIGBBJHtsZWZ0QXJjQ29tbWFuZC5yeH0gJHtsZWZ0QXJjQ29tbWFuZC5yeX0gJHtsZWZ0QXJjQ29tbWFuZC54QXhpc1JvdGF0aW9ufSAke2xlZnRBcmNDb21tYW5kLmxhcmdlQXJjRmxhZ30gJHtsZWZ0QXJjQ29tbWFuZC5zd2VlcEZsYWd9ICR7bGVmdEFyY0NvbW1hbmQuZW5kWH0gJHtsZWZ0QXJjQ29tbWFuZC5lbmRZfWAsXG4gICAgICAgICAgICBgTSR7bGluZS5zdGFydFh9ICR7bGluZS5zdGFydFl9IEgke2xpbmUuZW5kWH1gXG4gICAgICAgIF0uam9pbignICcpO1xuXG4gICAgICAgIGNvbnN0IHNoYXBlID0gcnMucGF0aChwYXRoRGF0YSwge1xuICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICAgIGZpbGxTdHlsZTogJ3NvbGlkJyxcbiAgICAgICAgICAgIGZpbGw6ICd0cmFuc3BhcmVudCdcbiAgICAgICAgfSk7XG4gICAgICAgIHNldFN0cm9rZUxpbmVjYXAoc2hhcGUsICdyb3VuZCcpO1xuICAgICAgICByZXR1cm4gc2hhcGU7XG4gICAgfSxcbiAgICBpc0luc2lkZVBvaW50KHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBwb2ludDogUG9pbnQpIHtcbiAgICAgICAgY29uc3QgcmFuZ2VSZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoW3BvaW50LCBwb2ludF0pO1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmlzSGl0KHJlY3RhbmdsZSwgcmFuZ2VSZWN0YW5nbGUpO1xuICAgIH0sXG4gICAgZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50KSB7XG4gICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuZ2V0Q29ybmVyUG9pbnRzKHJlY3RhbmdsZSk7XG4gICAgfSxcbiAgICBnZXROZWFyZXN0UG9pbnQocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIHBvaW50OiBQb2ludCkge1xuICAgICAgICBjb25zdCB7IHN0YXJ0UG9pbnQsIGxlZnRBcmNDb21tYW5kLCBsaW5lIH0gPSBnZW5lcmF0ZVJlcXVpcmVkSW50ZXJmYWNlUGF0aChyZWN0YW5nbGUpO1xuICAgICAgICBsZXQgbWluRGlzdGFuY2UgPSBJbmZpbml0eTtcbiAgICAgICAgbGV0IG5lYXJlc3RQb2ludCA9IHBvaW50O1xuXG4gICAgICAgIC8vIOajgOafpeWchuW8p+autVxuICAgICAgICBjb25zdCBhcmNOZWFyZXN0UG9pbnQgPSBnZXROZWFyZXN0UG9pbnRCZXR3ZWVuUG9pbnRBbmRBcmMocG9pbnQsIHN0YXJ0UG9pbnQsIGxlZnRBcmNDb21tYW5kKTtcbiAgICAgICAgY29uc3QgYXJjRGlzdGFuY2UgPSBkaXN0YW5jZUJldHdlZW5Qb2ludEFuZFBvaW50KHBvaW50WzBdLCBwb2ludFsxXSwgYXJjTmVhcmVzdFBvaW50WzBdLCBhcmNOZWFyZXN0UG9pbnRbMV0pO1xuICAgICAgICBpZiAoYXJjRGlzdGFuY2UgPCBtaW5EaXN0YW5jZSkge1xuICAgICAgICAgICAgbWluRGlzdGFuY2UgPSBhcmNEaXN0YW5jZTtcbiAgICAgICAgICAgIG5lYXJlc3RQb2ludCA9IGFyY05lYXJlc3RQb2ludDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIOajgOafpeebtOe6v+autVxuICAgICAgICBjb25zdCBsaW5lU3RhcnQ6IFBvaW50ID0gW2xpbmUuc3RhcnRYLCBsaW5lLnN0YXJ0WV07XG4gICAgICAgIGNvbnN0IGxpbmVFbmQ6IFBvaW50ID0gW2xpbmUuZW5kWCwgbGluZS5lbmRZXTtcbiAgICAgICAgY29uc3QgbGluZU5lYXJlc3RQb2ludCA9IGdldE5lYXJlc3RQb2ludEJldHdlZW5Qb2ludEFuZFNlZ21lbnQocG9pbnQsIFtsaW5lU3RhcnQsIGxpbmVFbmRdKTtcbiAgICAgICAgY29uc3QgbGluZURpc3RhbmNlID0gZGlzdGFuY2VCZXR3ZWVuUG9pbnRBbmRQb2ludChwb2ludFswXSwgcG9pbnRbMV0sIGxpbmVOZWFyZXN0UG9pbnRbMF0sIGxpbmVOZWFyZXN0UG9pbnRbMV0pO1xuICAgICAgICBpZiAobGluZURpc3RhbmNlIDwgbWluRGlzdGFuY2UpIHtcbiAgICAgICAgICAgIG1pbkRpc3RhbmNlID0gbGluZURpc3RhbmNlO1xuICAgICAgICAgICAgbmVhcmVzdFBvaW50ID0gbGluZU5lYXJlc3RQb2ludDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZWFyZXN0UG9pbnQ7XG4gICAgfSxcbiAgICBnZXRFZGdlQnlDb25uZWN0aW9uUG9pbnQocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIHBvaW50T2ZSZWN0YW5nbGU6IFBvaW50T2ZSZWN0YW5nbGUpOiBbUG9pbnQsIFBvaW50XSB8IG51bGwge1xuICAgICAgICBjb25zdCBjb3JuZXJzID0gUmVjdGFuZ2xlRW5naW5lLmdldENvcm5lclBvaW50cyhyZWN0YW5nbGUpO1xuICAgICAgICBjb25zdCBwb2ludCA9IFJlY3RhbmdsZUNsaWVudC5nZXRDb25uZWN0aW9uUG9pbnQocmVjdGFuZ2xlLCBwb2ludE9mUmVjdGFuZ2xlKTtcbiAgICAgICAgcmV0dXJuIGdldFBvbHlnb25FZGdlQnlDb25uZWN0aW9uUG9pbnQoY29ybmVycywgcG9pbnQpO1xuICAgIH0sXG4gICAgZ2V0Q29ubmVjdG9yUG9pbnRzKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50KSB7XG4gICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuZ2V0RWRnZUNlbnRlclBvaW50cyhyZWN0YW5nbGUpO1xuICAgIH1cbn07XG4iXX0=
|
|
@@ -5,7 +5,7 @@ import { LINE_AUTO_COMPLETE_DIAMETER, LINE_AUTO_COMPLETE_OPACITY } from '../cons
|
|
|
5
5
|
export class ArrowLineAutoCompleteGenerator extends Generator {
|
|
6
6
|
static { this.key = 'line-auto-complete-generator'; }
|
|
7
7
|
constructor(board) {
|
|
8
|
-
super(board);
|
|
8
|
+
super(board, { active: true });
|
|
9
9
|
this.board = board;
|
|
10
10
|
this.hoverElement = null;
|
|
11
11
|
}
|
|
@@ -20,7 +20,7 @@ export class ArrowLineAutoCompleteGenerator extends Generator {
|
|
|
20
20
|
}
|
|
21
21
|
draw(element, data) {
|
|
22
22
|
this.autoCompleteG = createG();
|
|
23
|
-
const middlePoints = getAutoCompletePoints(element);
|
|
23
|
+
const middlePoints = getAutoCompletePoints(this.board, element, true);
|
|
24
24
|
middlePoints.forEach((point, index) => {
|
|
25
25
|
const circle = drawCircle(PlaitBoard.getRoughSVG(this.board), point, LINE_AUTO_COMPLETE_DIAMETER, {
|
|
26
26
|
stroke: 'none',
|
|
@@ -43,4 +43,4 @@ export class ArrowLineAutoCompleteGenerator extends Generator {
|
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyb3ctbGluZS1hdXRvLWNvbXBsZXRlLmdlbmVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2RyYXcvc3JjL2dlbmVyYXRvcnMvYXJyb3ctbGluZS1hdXRvLWNvbXBsZXRlLmdlbmVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWpILE9BQU8sRUFBNEIsU0FBUyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDakQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFNUYsTUFBTSxPQUFPLDhCQUE0RSxTQUFRLFNBQXNDO2FBQzVILFFBQUcsR0FBRyw4QkFBOEIsQUFBakMsQ0FBa0M7SUFLNUMsWUFBbUIsS0FBaUI7UUFDaEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRGhCLFVBQUssR0FBTCxLQUFLLENBQVk7UUFGcEMsaUJBQVksR0FBdUIsSUFBSSxDQUFDO0lBSXhDLENBQUM7SUFFRCxPQUFPLENBQUMsT0FBMEIsRUFBRSxJQUE4QjtRQUM5RCxNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6RCxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksZ0JBQWdCLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ25GLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7YUFBTSxDQUFDO1lBQ0osT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLENBQUMsT0FBVSxFQUFFLElBQThCO1FBQzNDLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxFQUFFLENBQUM7UUFDL0IsTUFBTSxZQUFZLEdBQUcscUJBQXFCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdEUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNsQyxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLDJCQUEyQixFQUFFO2dCQUM5RixNQUFNLEVBQUUsTUFBTTtnQkFDZCxJQUFJLEVBQUUsU0FBUyxDQUFDLGFBQWEsRUFBRSwwQkFBMEIsQ0FBQztnQkFDMUQsU0FBUyxFQUFFLE9BQU87YUFDckIsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsc0JBQXNCLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDcEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUVELG1CQUFtQixDQUFDLEtBQWE7UUFDN0IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyx1QkFBdUIsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNyRixJQUFJLENBQUMsWUFBYSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDO0lBQ25ELENBQUM7SUFFRCxvQkFBb0I7UUFDaEIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztZQUMvQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUM3QixDQUFDO0lBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQsIFJnYmFUb0hFWCwgY3JlYXRlRywgZHJhd0NpcmNsZSwgZ2V0U2VsZWN0ZWRFbGVtZW50cywgaXNTZWxlY3Rpb25Nb3ZpbmcgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBQbGFpdEdlb21ldHJ5LCBQbGFpdFNoYXBlRWxlbWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQWN0aXZlR2VuZXJhdG9yRXh0cmFEYXRhLCBHZW5lcmF0b3IsIFBSSU1BUllfQ09MT1IgfSBmcm9tICdAcGxhaXQvY29tbW9uJztcbmltcG9ydCB7IGdldEF1dG9Db21wbGV0ZVBvaW50cyB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IExJTkVfQVVUT19DT01QTEVURV9ESUFNRVRFUiwgTElORV9BVVRPX0NPTVBMRVRFX09QQUNJVFkgfSBmcm9tICcuLi9jb25zdGFudHMvbGluZSc7XG5cbmV4cG9ydCBjbGFzcyBBcnJvd0xpbmVBdXRvQ29tcGxldGVHZW5lcmF0b3I8VCBleHRlbmRzIFBsYWl0U2hhcGVFbGVtZW50ID0gUGxhaXRHZW9tZXRyeT4gZXh0ZW5kcyBHZW5lcmF0b3I8VCwgQWN0aXZlR2VuZXJhdG9yRXh0cmFEYXRhPiB7XG4gICAgc3RhdGljIGtleSA9ICdsaW5lLWF1dG8tY29tcGxldGUtZ2VuZXJhdG9yJztcblxuICAgIGF1dG9Db21wbGV0ZUchOiBTVkdHRWxlbWVudDtcbiAgICBob3ZlckVsZW1lbnQ6IFNWR0dFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgYm9hcmQ6IFBsYWl0Qm9hcmQpIHtcbiAgICAgICAgc3VwZXIoYm9hcmQsIHsgYWN0aXZlOiB0cnVlIH0pO1xuICAgIH1cblxuICAgIGNhbkRyYXcoZWxlbWVudDogUGxhaXRTaGFwZUVsZW1lbnQsIGRhdGE6IEFjdGl2ZUdlbmVyYXRvckV4dHJhRGF0YSk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRFbGVtZW50cyh0aGlzLmJvYXJkKTtcbiAgICAgICAgaWYgKGRhdGEuc2VsZWN0ZWQgJiYgc2VsZWN0ZWRFbGVtZW50cy5sZW5ndGggPT09IDEgJiYgIWlzU2VsZWN0aW9uTW92aW5nKHRoaXMuYm9hcmQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRyYXcoZWxlbWVudDogVCwgZGF0YTogQWN0aXZlR2VuZXJhdG9yRXh0cmFEYXRhKTogU1ZHR0VsZW1lbnQge1xuICAgICAgICB0aGlzLmF1dG9Db21wbGV0ZUcgPSBjcmVhdGVHKCk7XG4gICAgICAgIGNvbnN0IG1pZGRsZVBvaW50cyA9IGdldEF1dG9Db21wbGV0ZVBvaW50cyh0aGlzLmJvYXJkLCBlbGVtZW50LCB0cnVlKTtcbiAgICAgICAgbWlkZGxlUG9pbnRzLmZvckVhY2goKHBvaW50LCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY2lyY2xlID0gZHJhd0NpcmNsZShQbGFpdEJvYXJkLmdldFJvdWdoU1ZHKHRoaXMuYm9hcmQpLCBwb2ludCwgTElORV9BVVRPX0NPTVBMRVRFX0RJQU1FVEVSLCB7XG4gICAgICAgICAgICAgICAgc3Ryb2tlOiAnbm9uZScsXG4gICAgICAgICAgICAgICAgZmlsbDogUmdiYVRvSEVYKFBSSU1BUllfQ09MT1IsIExJTkVfQVVUT19DT01QTEVURV9PUEFDSVRZKSxcbiAgICAgICAgICAgICAgICBmaWxsU3R5bGU6ICdzb2xpZCdcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY2lyY2xlLmNsYXNzTGlzdC5hZGQoYGxpbmUtYXV0by1jb21wbGV0ZS0ke2luZGV4fWApO1xuICAgICAgICAgICAgdGhpcy5hdXRvQ29tcGxldGVHLmFwcGVuZENoaWxkKGNpcmNsZSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdGhpcy5hdXRvQ29tcGxldGVHO1xuICAgIH1cblxuICAgIHJlbW92ZUF1dG9Db21wbGV0ZUcoaW5kZXg6IG51bWJlcikge1xuICAgICAgICB0aGlzLmhvdmVyRWxlbWVudCA9IHRoaXMuYXV0b0NvbXBsZXRlRy5xdWVyeVNlbGVjdG9yKGAubGluZS1hdXRvLWNvbXBsZXRlLSR7aW5kZXh9YCk7XG4gICAgICAgIHRoaXMuaG92ZXJFbGVtZW50IS5zdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7XG4gICAgfVxuXG4gICAgcmVjb3ZlckF1dG9Db21wbGV0ZUcoKSB7XG4gICAgICAgIGlmICh0aGlzLmhvdmVyRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5ob3ZlckVsZW1lbnQuc3R5bGUudmlzaWJpbGl0eSA9ICd2aXNpYmxlJztcbiAgICAgICAgICAgIHRoaXMuaG92ZXJFbGVtZW50ID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|