@uipath/apollo-react 4.45.1 → 4.47.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/dist/canvas/components/ButtonHandle/ButtonHandle.cjs +2 -1
- package/dist/canvas/components/ButtonHandle/ButtonHandle.d.ts.map +1 -1
- package/dist/canvas/components/ButtonHandle/ButtonHandle.js +2 -1
- package/dist/canvas/components/ButtonHandle/ButtonHandleStyleUtils.cjs +0 -33
- package/dist/canvas/components/ButtonHandle/ButtonHandleStyleUtils.d.ts +0 -2
- package/dist/canvas/components/ButtonHandle/ButtonHandleStyleUtils.d.ts.map +1 -1
- package/dist/canvas/components/ButtonHandle/ButtonHandleStyleUtils.js +1 -28
- package/dist/canvas/components/ButtonHandle/SmartHandle.cjs +2 -1
- package/dist/canvas/components/ButtonHandle/SmartHandle.d.ts.map +1 -1
- package/dist/canvas/components/ButtonHandle/SmartHandle.js +2 -1
- package/dist/canvas/components/Edges/CanvasEdge.cjs +197 -0
- package/dist/canvas/components/Edges/CanvasEdge.d.ts +3 -0
- package/dist/canvas/components/Edges/CanvasEdge.d.ts.map +1 -0
- package/dist/canvas/components/Edges/CanvasEdge.js +163 -0
- package/dist/canvas/components/Edges/SequenceEdge.cjs +18 -200
- package/dist/canvas/components/Edges/SequenceEdge.d.ts +2 -2
- package/dist/canvas/components/Edges/SequenceEdge.d.ts.map +1 -1
- package/dist/canvas/components/Edges/SequenceEdge.js +19 -201
- package/dist/canvas/components/Edges/index.cjs +32 -3
- package/dist/canvas/components/Edges/index.d.ts +4 -0
- package/dist/canvas/components/Edges/index.d.ts.map +1 -1
- package/dist/canvas/components/Edges/index.js +3 -0
- package/dist/canvas/components/Edges/shared/areEdgePropsEqual.cjs +54 -0
- package/dist/canvas/components/Edges/shared/areEdgePropsEqual.d.ts +3 -0
- package/dist/canvas/components/Edges/shared/areEdgePropsEqual.d.ts.map +1 -0
- package/dist/canvas/components/Edges/shared/areEdgePropsEqual.js +20 -0
- package/dist/canvas/components/Edges/shared/constants.cjs +107 -0
- package/dist/canvas/components/Edges/shared/constants.d.ts +33 -0
- package/dist/canvas/components/Edges/shared/constants.d.ts.map +1 -0
- package/dist/canvas/components/Edges/shared/constants.js +55 -0
- package/dist/canvas/components/Edges/shared/geometry.cjs +489 -0
- package/dist/canvas/components/Edges/shared/geometry.d.ts +20 -0
- package/dist/canvas/components/Edges/shared/geometry.d.ts.map +1 -0
- package/dist/canvas/components/Edges/shared/geometry.js +416 -0
- package/dist/canvas/components/Edges/shared/hooks/index.cjs +48 -0
- package/dist/canvas/components/Edges/shared/hooks/index.d.ts +5 -0
- package/dist/canvas/components/Edges/shared/hooks/index.d.ts.map +1 -0
- package/dist/canvas/components/Edges/shared/hooks/index.js +5 -0
- package/dist/canvas/components/Edges/shared/hooks/useEdgeGeometry.cjs +103 -0
- package/dist/canvas/components/Edges/shared/hooks/useEdgeGeometry.d.ts +30 -0
- package/dist/canvas/components/Edges/shared/hooks/useEdgeGeometry.d.ts.map +1 -0
- package/dist/canvas/components/Edges/shared/hooks/useEdgeGeometry.js +69 -0
- package/dist/canvas/components/Edges/shared/hooks/useEdgeWaypointWriter.cjs +69 -0
- package/dist/canvas/components/Edges/shared/hooks/useEdgeWaypointWriter.d.ts +3 -0
- package/dist/canvas/components/Edges/shared/hooks/useEdgeWaypointWriter.d.ts.map +1 -0
- package/dist/canvas/components/Edges/shared/hooks/useEdgeWaypointWriter.js +35 -0
- package/dist/canvas/components/Edges/shared/hooks/useExecutionEdge.cjs +57 -0
- package/dist/canvas/components/Edges/shared/hooks/useExecutionEdge.d.ts +13 -0
- package/dist/canvas/components/Edges/shared/hooks/useExecutionEdge.d.ts.map +1 -0
- package/dist/canvas/components/Edges/shared/hooks/useExecutionEdge.js +23 -0
- package/dist/canvas/components/Edges/shared/hooks/useNodeDragRebalance.cjs +98 -0
- package/dist/canvas/components/Edges/shared/hooks/useNodeDragRebalance.d.ts +18 -0
- package/dist/canvas/components/Edges/shared/hooks/useNodeDragRebalance.d.ts.map +1 -0
- package/dist/canvas/components/Edges/shared/hooks/useNodeDragRebalance.js +64 -0
- package/dist/canvas/components/Edges/shared/hooks/useWaypointEditor.cjs +184 -0
- package/dist/canvas/components/Edges/shared/hooks/useWaypointEditor.d.ts +23 -0
- package/dist/canvas/components/Edges/shared/hooks/useWaypointEditor.d.ts.map +1 -0
- package/dist/canvas/components/Edges/shared/hooks/useWaypointEditor.js +150 -0
- package/dist/canvas/components/Edges/shared/primitives/EdgeArrow.cjs +57 -0
- package/dist/canvas/components/Edges/shared/primitives/EdgeArrow.d.ts +10 -0
- package/dist/canvas/components/Edges/shared/primitives/EdgeArrow.d.ts.map +1 -0
- package/dist/canvas/components/Edges/shared/primitives/EdgeArrow.js +23 -0
- package/dist/canvas/components/Edges/shared/primitives/EdgeLabel.cjs +66 -0
- package/dist/canvas/components/Edges/shared/primitives/EdgeLabel.d.ts +8 -0
- package/dist/canvas/components/Edges/shared/primitives/EdgeLabel.d.ts.map +1 -0
- package/dist/canvas/components/Edges/shared/primitives/EdgeLabel.js +32 -0
- package/dist/canvas/components/Edges/shared/primitives/EdgePath.cjs +84 -0
- package/dist/canvas/components/Edges/shared/primitives/EdgePath.d.ts +16 -0
- package/dist/canvas/components/Edges/shared/primitives/EdgePath.d.ts.map +1 -0
- package/dist/canvas/components/Edges/shared/primitives/EdgePath.js +50 -0
- package/dist/canvas/components/Edges/shared/primitives/SegmentDragHandle.cjs +117 -0
- package/dist/canvas/components/Edges/shared/primitives/SegmentDragHandle.d.ts +9 -0
- package/dist/canvas/components/Edges/shared/primitives/SegmentDragHandle.d.ts.map +1 -0
- package/dist/canvas/components/Edges/shared/primitives/SegmentDragHandle.js +83 -0
- package/dist/canvas/components/Edges/shared/primitives/WaypointHandle.cjs +75 -0
- package/dist/canvas/components/Edges/shared/primitives/WaypointHandle.d.ts +10 -0
- package/dist/canvas/components/Edges/shared/primitives/WaypointHandle.d.ts.map +1 -0
- package/dist/canvas/components/Edges/shared/primitives/WaypointHandle.js +41 -0
- package/dist/canvas/components/Edges/shared/primitives/index.cjs +52 -0
- package/dist/canvas/components/Edges/shared/primitives/index.d.ts +11 -0
- package/dist/canvas/components/Edges/shared/primitives/index.d.ts.map +1 -0
- package/dist/canvas/components/Edges/shared/primitives/index.js +6 -0
- package/dist/canvas/components/Edges/shared/resolveEdgeColor.cjs +46 -0
- package/dist/canvas/components/Edges/shared/resolveEdgeColor.d.ts +11 -0
- package/dist/canvas/components/Edges/shared/resolveEdgeColor.d.ts.map +1 -0
- package/dist/canvas/components/Edges/shared/resolveEdgeColor.js +12 -0
- package/dist/canvas/components/Edges/shared/routing/defaultEdgeRouter.cjs +51 -0
- package/dist/canvas/components/Edges/shared/routing/defaultEdgeRouter.d.ts +3 -0
- package/dist/canvas/components/Edges/shared/routing/defaultEdgeRouter.d.ts.map +1 -0
- package/dist/canvas/components/Edges/shared/routing/defaultEdgeRouter.js +17 -0
- package/dist/canvas/components/Edges/shared/routing/index.cjs +43 -0
- package/dist/canvas/components/Edges/shared/routing/index.d.ts +4 -0
- package/dist/canvas/components/Edges/shared/routing/index.d.ts.map +1 -0
- package/dist/canvas/components/Edges/shared/routing/index.js +3 -0
- package/dist/canvas/components/Edges/shared/routing/types.cjs +18 -0
- package/dist/canvas/components/Edges/shared/routing/types.d.ts +33 -0
- package/dist/canvas/components/Edges/shared/routing/types.d.ts.map +1 -0
- package/dist/canvas/components/Edges/shared/routing/types.js +0 -0
- package/dist/canvas/components/Edges/shared/routing/useGraphRouter.cjs +175 -0
- package/dist/canvas/components/Edges/shared/routing/useGraphRouter.d.ts +5 -0
- package/dist/canvas/components/Edges/shared/routing/useGraphRouter.d.ts.map +1 -0
- package/dist/canvas/components/Edges/shared/routing/useGraphRouter.js +138 -0
- package/dist/canvas/components/Edges/shared/types.cjs +18 -0
- package/dist/canvas/components/Edges/shared/types.d.ts +36 -0
- package/dist/canvas/components/Edges/shared/types.d.ts.map +1 -0
- package/dist/canvas/components/Edges/shared/types.js +0 -0
- package/dist/canvas/components/Edges/shared/waypoints.cjs +216 -0
- package/dist/canvas/components/Edges/shared/waypoints.d.ts +17 -0
- package/dist/canvas/components/Edges/shared/waypoints.d.ts.map +1 -0
- package/dist/canvas/components/Edges/shared/waypoints.js +158 -0
- package/dist/canvas/hooks/useEdgePath.cjs +6 -22
- package/dist/canvas/hooks/useEdgePath.d.ts +1 -1
- package/dist/canvas/hooks/useEdgePath.d.ts.map +1 -1
- package/dist/canvas/hooks/useEdgePath.js +5 -21
- package/dist/canvas/styles/tailwind.canvas.css +1 -1
- package/dist/canvas/utils/handle-positioning.cjs +62 -0
- package/dist/canvas/utils/handle-positioning.d.ts +2 -0
- package/dist/canvas/utils/handle-positioning.d.ts.map +1 -0
- package/dist/canvas/utils/handle-positioning.js +28 -0
- package/dist/canvas/utils/index.cjs +21 -14
- package/dist/canvas/utils/index.d.ts +1 -0
- package/dist/canvas/utils/index.d.ts.map +1 -1
- package/dist/canvas/utils/index.js +1 -0
- package/package.json +2 -2
|
@@ -32,6 +32,7 @@ const react_cjs_namespaceObject = require("../../xyflow/react.cjs");
|
|
|
32
32
|
const external_react_namespaceObject = require("react");
|
|
33
33
|
const CanvasEventBus_cjs_namespaceObject = require("../../utils/CanvasEventBus.cjs");
|
|
34
34
|
const CssUtil_cjs_namespaceObject = require("../../utils/CssUtil.cjs");
|
|
35
|
+
const handle_positioning_cjs_namespaceObject = require("../../utils/handle-positioning.cjs");
|
|
35
36
|
const external_ButtonHandleLayoutUtils_cjs_namespaceObject = require("./ButtonHandleLayoutUtils.cjs");
|
|
36
37
|
const external_ButtonHandleStyleUtils_cjs_namespaceObject = require("./ButtonHandleStyleUtils.cjs");
|
|
37
38
|
const external_HandleButton_cjs_namespaceObject = require("./HandleButton.cjs");
|
|
@@ -68,7 +69,7 @@ const ButtonHandleBase = ({ id, nodeId, type, position, connectionPosition = pos
|
|
|
68
69
|
const positionPercent = (0, external_react_namespaceObject.useMemo)(()=>{
|
|
69
70
|
const relevantSize = isVertical ? nodeWidth : nodeHeight;
|
|
70
71
|
if (relevantSize && relevantSize > 0) {
|
|
71
|
-
const gridPositions = (0,
|
|
72
|
+
const gridPositions = (0, handle_positioning_cjs_namespaceObject.calculateGridAlignedHandlePositions)(relevantSize, total);
|
|
72
73
|
const pixelPosition = gridPositions[index] ?? relevantSize / 2;
|
|
73
74
|
return (0, external_ButtonHandleStyleUtils_cjs_namespaceObject.pixelToPercent)(pixelPosition, relevantSize);
|
|
74
75
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ButtonHandle.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/ButtonHandle/ButtonHandle.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAU,QAAQ,EAAE,MAAM,0CAA0C,CAAC;AAE5E,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"ButtonHandle.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/ButtonHandle/ButtonHandle.tsx"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,9 @@ import { Handle, Position } from "../../xyflow/react.js";
|
|
|
3
3
|
import { memo, useCallback, useMemo, useRef, useState } from "react";
|
|
4
4
|
import { canvasEventBus } from "../../utils/CanvasEventBus.js";
|
|
5
5
|
import { cx } from "../../utils/CssUtil.js";
|
|
6
|
+
import { calculateGridAlignedHandlePositions } from "../../utils/handle-positioning.js";
|
|
6
7
|
import { getHandleActionPortal, getInwardHandleLayout } from "./ButtonHandleLayoutUtils.js";
|
|
7
|
-
import {
|
|
8
|
+
import { pixelToPercent } from "./ButtonHandleStyleUtils.js";
|
|
8
9
|
import { HandleButton, HandleHoverBridge } from "./HandleButton.js";
|
|
9
10
|
import { HandleLabel } from "./HandleLabel.js";
|
|
10
11
|
import { HandleNotch } from "./HandleNotch.js";
|
|
@@ -27,48 +27,19 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
27
27
|
leftPositionForHandle: ()=>leftPositionForHandle,
|
|
28
28
|
topPositionForHandle: ()=>topPositionForHandle,
|
|
29
29
|
transformForHandle: ()=>transformForHandle,
|
|
30
|
-
snapToGrid: ()=>snapToGrid,
|
|
31
30
|
HANDLE_CROSS_AXIS_SIZE_PX: ()=>HANDLE_CROSS_AXIS_SIZE_PX,
|
|
32
31
|
heightForHandleWithPosition: ()=>heightForHandleWithPosition,
|
|
33
32
|
HANDLE_EDGE_COVERAGE_RATIO: ()=>HANDLE_EDGE_COVERAGE_RATIO,
|
|
34
33
|
bottomPositionForHandle: ()=>bottomPositionForHandle,
|
|
35
|
-
calculateGridAlignedHandlePositions: ()=>calculateGridAlignedHandlePositions,
|
|
36
34
|
pixelToPercent: ()=>pixelToPercent,
|
|
37
35
|
rightPositionForHandle: ()=>rightPositionForHandle,
|
|
38
36
|
widthForHandleWithPosition: ()=>widthForHandleWithPosition
|
|
39
37
|
});
|
|
40
38
|
const react_cjs_namespaceObject = require("../../xyflow/react.cjs");
|
|
41
|
-
const external_constants_cjs_namespaceObject = require("../../constants.cjs");
|
|
42
39
|
const isHorizontalEdge = (position)=>position === react_cjs_namespaceObject.Position.Top || position === react_cjs_namespaceObject.Position.Bottom;
|
|
43
40
|
const isVerticalEdge = (position)=>position === react_cjs_namespaceObject.Position.Left || position === react_cjs_namespaceObject.Position.Right;
|
|
44
41
|
const HANDLE_CROSS_AXIS_SIZE_PX = 24;
|
|
45
42
|
const HANDLE_EDGE_COVERAGE_RATIO = 0.5;
|
|
46
|
-
const snapToGrid = (value, gridSize = external_constants_cjs_namespaceObject.GRID_SPACING)=>Math.round(value / gridSize) * gridSize;
|
|
47
|
-
const calculateGridAlignedHandlePositions = (nodeSize, numHandles, gridSize = external_constants_cjs_namespaceObject.GRID_SPACING)=>{
|
|
48
|
-
if (0 === numHandles) return [];
|
|
49
|
-
if (nodeSize <= 0) return [];
|
|
50
|
-
if (1 === numHandles) return [
|
|
51
|
-
snapToGrid(nodeSize / 2, gridSize)
|
|
52
|
-
];
|
|
53
|
-
const idealSpacing = nodeSize / (numHandles + 1);
|
|
54
|
-
if (nodeSize % gridSize !== 0) {
|
|
55
|
-
const positions = [];
|
|
56
|
-
for(let i = 0; i < numHandles; i++)positions.push(idealSpacing * (i + 1));
|
|
57
|
-
return positions;
|
|
58
|
-
}
|
|
59
|
-
const roundedSpacing = Math.round(idealSpacing / gridSize) * gridSize;
|
|
60
|
-
let gridAlignedSpacing = Math.max(gridSize, roundedSpacing);
|
|
61
|
-
let totalSpan = (numHandles - 1) * gridAlignedSpacing;
|
|
62
|
-
let startPosition = (nodeSize - totalSpan) / 2;
|
|
63
|
-
if (startPosition % gridSize !== 0 && gridAlignedSpacing > gridSize) {
|
|
64
|
-
gridAlignedSpacing -= gridSize;
|
|
65
|
-
totalSpan = (numHandles - 1) * gridAlignedSpacing;
|
|
66
|
-
startPosition = (nodeSize - totalSpan) / 2;
|
|
67
|
-
}
|
|
68
|
-
const positions = [];
|
|
69
|
-
for(let i = 0; i < numHandles; i++)positions.push(startPosition + i * gridAlignedSpacing);
|
|
70
|
-
return positions;
|
|
71
|
-
};
|
|
72
43
|
const pixelToPercent = (pixelPosition, nodeSize)=>{
|
|
73
44
|
if (0 === nodeSize) return 0;
|
|
74
45
|
return pixelPosition / nodeSize * 100;
|
|
@@ -141,12 +112,10 @@ const transformForHandle = ({ position, customPositionAndOffsets })=>{
|
|
|
141
112
|
exports.HANDLE_CROSS_AXIS_SIZE_PX = __webpack_exports__.HANDLE_CROSS_AXIS_SIZE_PX;
|
|
142
113
|
exports.HANDLE_EDGE_COVERAGE_RATIO = __webpack_exports__.HANDLE_EDGE_COVERAGE_RATIO;
|
|
143
114
|
exports.bottomPositionForHandle = __webpack_exports__.bottomPositionForHandle;
|
|
144
|
-
exports.calculateGridAlignedHandlePositions = __webpack_exports__.calculateGridAlignedHandlePositions;
|
|
145
115
|
exports.heightForHandleWithPosition = __webpack_exports__.heightForHandleWithPosition;
|
|
146
116
|
exports.leftPositionForHandle = __webpack_exports__.leftPositionForHandle;
|
|
147
117
|
exports.pixelToPercent = __webpack_exports__.pixelToPercent;
|
|
148
118
|
exports.rightPositionForHandle = __webpack_exports__.rightPositionForHandle;
|
|
149
|
-
exports.snapToGrid = __webpack_exports__.snapToGrid;
|
|
150
119
|
exports.topPositionForHandle = __webpack_exports__.topPositionForHandle;
|
|
151
120
|
exports.transformForHandle = __webpack_exports__.transformForHandle;
|
|
152
121
|
exports.widthForHandleWithPosition = __webpack_exports__.widthForHandleWithPosition;
|
|
@@ -154,12 +123,10 @@ for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
|
154
123
|
"HANDLE_CROSS_AXIS_SIZE_PX",
|
|
155
124
|
"HANDLE_EDGE_COVERAGE_RATIO",
|
|
156
125
|
"bottomPositionForHandle",
|
|
157
|
-
"calculateGridAlignedHandlePositions",
|
|
158
126
|
"heightForHandleWithPosition",
|
|
159
127
|
"leftPositionForHandle",
|
|
160
128
|
"pixelToPercent",
|
|
161
129
|
"rightPositionForHandle",
|
|
162
|
-
"snapToGrid",
|
|
163
130
|
"topPositionForHandle",
|
|
164
131
|
"transformForHandle",
|
|
165
132
|
"widthForHandleWithPosition"
|
|
@@ -2,8 +2,6 @@ import { Position } from '../../xyflow/react.ts';
|
|
|
2
2
|
import type { HandleConfigurationSpecificPosition } from '../../schema/node-definition/handle';
|
|
3
3
|
export declare const HANDLE_CROSS_AXIS_SIZE_PX = 24;
|
|
4
4
|
export declare const HANDLE_EDGE_COVERAGE_RATIO = 0.5;
|
|
5
|
-
export declare const snapToGrid: (value: number, gridSize?: number) => number;
|
|
6
|
-
export declare const calculateGridAlignedHandlePositions: (nodeSize: number, numHandles: number, gridSize?: number) => number[];
|
|
7
5
|
export declare const pixelToPercent: (pixelPosition: number, nodeSize: number) => number;
|
|
8
6
|
export declare const widthForHandleWithPosition: ({ position, numHandles, customWidth, }: {
|
|
9
7
|
position: Position;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ButtonHandleStyleUtils.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/ButtonHandle/ButtonHandleStyleUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"ButtonHandleStyleUtils.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/ButtonHandle/ButtonHandleStyleUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0CAA0C,CAAC;AACpE,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,qCAAqC,CAAC;AAgB/F,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAC5C,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAQ9C,eAAO,MAAM,cAAc,GAAI,eAAe,MAAM,EAAE,UAAU,MAAM,KAAG,MAGxE,CAAC;AAEF,eAAO,MAAM,0BAA0B,GAAI,wCAIxC;IACD,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,KAAG,MAQH,CAAC;AAEF,eAAO,MAAM,2BAA2B,GAAI,yCAIzC;IACD,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,KAAG,MAQH,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,uEAMlC;IACD,QAAQ,EAAE,QAAQ,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,KAAG,MAyBH,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,uEAMrC;IACD,QAAQ,EAAE,QAAQ,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,KAAG,MAsBH,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,sEAMnC;IACD,QAAQ,EAAE,QAAQ,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,KAAG,MAyBH,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,sEAMpC;IACD,QAAQ,EAAE,QAAQ,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,KAAG,MAsBH,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,yCAGhC;IACD,QAAQ,EAAE,QAAQ,CAAC;IACnB,wBAAwB,CAAC,EAAE,mCAAmC,CAAC;CAChE,KAAG,MAgBH,CAAC"}
|
|
@@ -1,35 +1,8 @@
|
|
|
1
1
|
import { Position } from "../../xyflow/react.js";
|
|
2
|
-
import { GRID_SPACING } from "../../constants.js";
|
|
3
2
|
const isHorizontalEdge = (position)=>position === Position.Top || position === Position.Bottom;
|
|
4
3
|
const isVerticalEdge = (position)=>position === Position.Left || position === Position.Right;
|
|
5
4
|
const HANDLE_CROSS_AXIS_SIZE_PX = 24;
|
|
6
5
|
const HANDLE_EDGE_COVERAGE_RATIO = 0.5;
|
|
7
|
-
const snapToGrid = (value, gridSize = GRID_SPACING)=>Math.round(value / gridSize) * gridSize;
|
|
8
|
-
const calculateGridAlignedHandlePositions = (nodeSize, numHandles, gridSize = GRID_SPACING)=>{
|
|
9
|
-
if (0 === numHandles) return [];
|
|
10
|
-
if (nodeSize <= 0) return [];
|
|
11
|
-
if (1 === numHandles) return [
|
|
12
|
-
snapToGrid(nodeSize / 2, gridSize)
|
|
13
|
-
];
|
|
14
|
-
const idealSpacing = nodeSize / (numHandles + 1);
|
|
15
|
-
if (nodeSize % gridSize !== 0) {
|
|
16
|
-
const positions = [];
|
|
17
|
-
for(let i = 0; i < numHandles; i++)positions.push(idealSpacing * (i + 1));
|
|
18
|
-
return positions;
|
|
19
|
-
}
|
|
20
|
-
const roundedSpacing = Math.round(idealSpacing / gridSize) * gridSize;
|
|
21
|
-
let gridAlignedSpacing = Math.max(gridSize, roundedSpacing);
|
|
22
|
-
let totalSpan = (numHandles - 1) * gridAlignedSpacing;
|
|
23
|
-
let startPosition = (nodeSize - totalSpan) / 2;
|
|
24
|
-
if (startPosition % gridSize !== 0 && gridAlignedSpacing > gridSize) {
|
|
25
|
-
gridAlignedSpacing -= gridSize;
|
|
26
|
-
totalSpan = (numHandles - 1) * gridAlignedSpacing;
|
|
27
|
-
startPosition = (nodeSize - totalSpan) / 2;
|
|
28
|
-
}
|
|
29
|
-
const positions = [];
|
|
30
|
-
for(let i = 0; i < numHandles; i++)positions.push(startPosition + i * gridAlignedSpacing);
|
|
31
|
-
return positions;
|
|
32
|
-
};
|
|
33
6
|
const pixelToPercent = (pixelPosition, nodeSize)=>{
|
|
34
7
|
if (0 === nodeSize) return 0;
|
|
35
8
|
return pixelPosition / nodeSize * 100;
|
|
@@ -99,4 +72,4 @@ const transformForHandle = ({ position, customPositionAndOffsets })=>{
|
|
|
99
72
|
const horizontalPercent = hasCustomHorizontal ? '0%' : position === Position.Right ? '50%' : '-50%';
|
|
100
73
|
return `translate(${horizontalPercent}, ${verticalPercent})`;
|
|
101
74
|
};
|
|
102
|
-
export { HANDLE_CROSS_AXIS_SIZE_PX, HANDLE_EDGE_COVERAGE_RATIO, bottomPositionForHandle,
|
|
75
|
+
export { HANDLE_CROSS_AXIS_SIZE_PX, HANDLE_EDGE_COVERAGE_RATIO, bottomPositionForHandle, heightForHandleWithPosition, leftPositionForHandle, pixelToPercent, rightPositionForHandle, topPositionForHandle, transformForHandle, widthForHandleWithPosition };
|
|
@@ -34,6 +34,7 @@ const react_namespaceObject = require("@xyflow/react");
|
|
|
34
34
|
const external_react_namespaceObject = require("react");
|
|
35
35
|
const CanvasEventBus_cjs_namespaceObject = require("../../utils/CanvasEventBus.cjs");
|
|
36
36
|
const CssUtil_cjs_namespaceObject = require("../../utils/CssUtil.cjs");
|
|
37
|
+
const handle_positioning_cjs_namespaceObject = require("../../utils/handle-positioning.cjs");
|
|
37
38
|
const external_ButtonHandleStyleUtils_cjs_namespaceObject = require("./ButtonHandleStyleUtils.cjs");
|
|
38
39
|
const external_HandleButton_cjs_namespaceObject = require("./HandleButton.cjs");
|
|
39
40
|
const external_HandleLabel_cjs_namespaceObject = require("./HandleLabel.cjs");
|
|
@@ -320,7 +321,7 @@ function SmartHandle({ type, id, defaultPosition = 'source' === type ? react_nam
|
|
|
320
321
|
if (total <= 1) return 50;
|
|
321
322
|
const relevantSize = isVertical ? nodeWidth : nodeHeight;
|
|
322
323
|
if (relevantSize && relevantSize > 0) {
|
|
323
|
-
const gridPositions = (0,
|
|
324
|
+
const gridPositions = (0, handle_positioning_cjs_namespaceObject.calculateGridAlignedHandlePositions)(relevantSize, total);
|
|
324
325
|
const pixelPosition = gridPositions[index] ?? relevantSize / 2;
|
|
325
326
|
return (0, external_ButtonHandleStyleUtils_cjs_namespaceObject.pixelToPercent)(pixelPosition, relevantSize);
|
|
326
327
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SmartHandle.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/ButtonHandle/SmartHandle.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,WAAW,EAEhB,QAAQ,EAKT,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"SmartHandle.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/ButtonHandle/SmartHandle.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,WAAW,EAEhB,QAAQ,EAKT,MAAM,eAAe,CAAC;AAavB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAaxD,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC;IAErE,eAAe,CAAC,EAAE,QAAQ,CAAC;IAE3B,UAAU,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAC;IAE7C,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAE5B,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAM9C,OAAO,CAAC,EAAE,OAAO,CAAC;IAMlB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAoED,wBAAgB,mBAAmB,CAAC,EAClC,QAAQ,EACR,SAAS,EAAE,UAAU,EACrB,UAAU,EAAE,WAAW,GACxB,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,2CAiEA;AAyUD,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,EAAE,EACF,eAAoE,EACpE,UAAmD,EACnD,KAAK,EACL,SAAS,EACT,SAAS,EACT,UAAU,EACV,KAAK,EACL,SAAS,EACT,oBAAoB,EACpB,UAAkB,EAClB,QAAgB,EAChB,WAAkB,EAClB,QAAQ,EACR,OAAc,EACd,WAAW,EACX,GAAG,IAAI,EACR,EAAE,gBAAgB,2CAgMlB;AASD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,2CAEtE;AAKD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,2CAEtE"}
|
|
@@ -3,7 +3,8 @@ import { Handle, Position, useNodeId, useStore, useUpdateNodeInternals } from "@
|
|
|
3
3
|
import { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
|
|
4
4
|
import { canvasEventBus } from "../../utils/CanvasEventBus.js";
|
|
5
5
|
import { cx } from "../../utils/CssUtil.js";
|
|
6
|
-
import { calculateGridAlignedHandlePositions
|
|
6
|
+
import { calculateGridAlignedHandlePositions } from "../../utils/handle-positioning.js";
|
|
7
|
+
import { pixelToPercent } from "./ButtonHandleStyleUtils.js";
|
|
7
8
|
import { HandleButton } from "./HandleButton.js";
|
|
8
9
|
import { HandleLabel } from "./HandleLabel.js";
|
|
9
10
|
import { HandleNotch } from "./HandleNotch.js";
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_require__ = {};
|
|
3
|
+
(()=>{
|
|
4
|
+
__webpack_require__.d = (exports1, definition)=>{
|
|
5
|
+
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: definition[key]
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
})();
|
|
11
|
+
(()=>{
|
|
12
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
13
|
+
})();
|
|
14
|
+
(()=>{
|
|
15
|
+
__webpack_require__.r = (exports1)=>{
|
|
16
|
+
if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
17
|
+
value: 'Module'
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
20
|
+
value: true
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
})();
|
|
24
|
+
var __webpack_exports__ = {};
|
|
25
|
+
__webpack_require__.r(__webpack_exports__);
|
|
26
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
+
CanvasEdge: ()=>CanvasEdge_CanvasEdge
|
|
28
|
+
});
|
|
29
|
+
const jsx_runtime_namespaceObject = require("react/jsx-runtime");
|
|
30
|
+
const react_cjs_namespaceObject = require("../../xyflow/react.cjs");
|
|
31
|
+
const external_react_namespaceObject = require("react");
|
|
32
|
+
const createPreviewNode_cjs_namespaceObject = require("../../utils/createPreviewNode.cjs");
|
|
33
|
+
const BaseCanvasModeProvider_cjs_namespaceObject = require("../BaseCanvas/BaseCanvasModeProvider.cjs");
|
|
34
|
+
const index_cjs_namespaceObject = require("../Toolbar/index.cjs");
|
|
35
|
+
const areEdgePropsEqual_cjs_namespaceObject = require("./shared/areEdgePropsEqual.cjs");
|
|
36
|
+
const constants_cjs_namespaceObject = require("./shared/constants.cjs");
|
|
37
|
+
const geometry_cjs_namespaceObject = require("./shared/geometry.cjs");
|
|
38
|
+
const hooks_index_cjs_namespaceObject = require("./shared/hooks/index.cjs");
|
|
39
|
+
const primitives_index_cjs_namespaceObject = require("./shared/primitives/index.cjs");
|
|
40
|
+
const resolveEdgeColor_cjs_namespaceObject = require("./shared/resolveEdgeColor.cjs");
|
|
41
|
+
const CanvasEdge_CanvasEdge = /*#__PURE__*/ (0, external_react_namespaceObject.memo)(function({ id, selected, animated, source, target, sourceX, sourceY, sourcePosition = react_cjs_namespaceObject.Position.Right, targetX, targetY, targetPosition = react_cjs_namespaceObject.Position.Left, sourceHandleId, targetHandleId, style, data }) {
|
|
42
|
+
const isReadOnly = 'readonly' === (0, BaseCanvasModeProvider_cjs_namespaceObject.useBaseCanvasMode)().mode;
|
|
43
|
+
const [isHovered, setIsHovered] = (0, external_react_namespaceObject.useState)(false);
|
|
44
|
+
const onMouseEnter = (0, external_react_namespaceObject.useCallback)(()=>setIsHovered(true), []);
|
|
45
|
+
const onMouseLeave = (0, external_react_namespaceObject.useCallback)(()=>setIsHovered(false), []);
|
|
46
|
+
const pathRef = (0, external_react_namespaceObject.useRef)(null);
|
|
47
|
+
const routing = data?.routing ?? 'waypoint';
|
|
48
|
+
const storedWaypoints = data?.waypoints ?? constants_cjs_namespaceObject.EMPTY_WAYPOINTS;
|
|
49
|
+
const strokeStyle = data?.strokeStyle ?? 'solid';
|
|
50
|
+
const hideArrowHead = !!data?.hideArrowHead;
|
|
51
|
+
const label = data?.label;
|
|
52
|
+
const editingEnabled = !!data?.enableEditing && 'waypoint' === routing && !isReadOnly;
|
|
53
|
+
const waypoints = (0, hooks_index_cjs_namespaceObject.useNodeDragRebalance)({
|
|
54
|
+
edgeId: id,
|
|
55
|
+
source,
|
|
56
|
+
target,
|
|
57
|
+
sourceX,
|
|
58
|
+
sourceY,
|
|
59
|
+
sourcePosition,
|
|
60
|
+
targetX,
|
|
61
|
+
targetY,
|
|
62
|
+
targetPosition,
|
|
63
|
+
waypoints: storedWaypoints,
|
|
64
|
+
enabled: editingEnabled,
|
|
65
|
+
onChange: data?.onWaypointsChange
|
|
66
|
+
});
|
|
67
|
+
const routedWaypoints = data?.routedWaypoints ?? constants_cjs_namespaceObject.EMPTY_WAYPOINTS;
|
|
68
|
+
const effectiveWaypoints = waypoints.length > 0 ? waypoints : routedWaypoints;
|
|
69
|
+
const executionEnabled = !!data?.enableExecution;
|
|
70
|
+
const toolbarEnabled = !!data?.enableToolbar && !isReadOnly;
|
|
71
|
+
const previewEdge = (0, createPreviewNode_cjs_namespaceObject.isPreviewEdge)({
|
|
72
|
+
id,
|
|
73
|
+
source,
|
|
74
|
+
target
|
|
75
|
+
});
|
|
76
|
+
const geometry = (0, hooks_index_cjs_namespaceObject.useEdgeGeometry)({
|
|
77
|
+
routing,
|
|
78
|
+
sourceNodeId: source,
|
|
79
|
+
targetNodeId: target,
|
|
80
|
+
sourceHandleId,
|
|
81
|
+
targetHandleId,
|
|
82
|
+
sourceX,
|
|
83
|
+
sourceY,
|
|
84
|
+
sourcePosition,
|
|
85
|
+
targetX,
|
|
86
|
+
targetY,
|
|
87
|
+
targetPosition,
|
|
88
|
+
waypoints: effectiveWaypoints,
|
|
89
|
+
enableSegments: editingEnabled,
|
|
90
|
+
hideArrowHead
|
|
91
|
+
});
|
|
92
|
+
const editor = (0, hooks_index_cjs_namespaceObject.useWaypointEditor)({
|
|
93
|
+
edgeId: id,
|
|
94
|
+
waypoints,
|
|
95
|
+
pathPoints: geometry.pathPoints,
|
|
96
|
+
enabled: editingEnabled,
|
|
97
|
+
onChange: data?.onWaypointsChange
|
|
98
|
+
});
|
|
99
|
+
const execution = (0, hooks_index_cjs_namespaceObject.useExecutionEdge)({
|
|
100
|
+
edgeId: id,
|
|
101
|
+
target,
|
|
102
|
+
edgePath: geometry.edgePath,
|
|
103
|
+
enabled: executionEnabled
|
|
104
|
+
});
|
|
105
|
+
const isDiffRemoved = data?.isDiffRemoved ?? false;
|
|
106
|
+
const color = (0, resolveEdgeColor_cjs_namespaceObject.resolveEdgeColor)({
|
|
107
|
+
selected,
|
|
108
|
+
isHovered,
|
|
109
|
+
isInvalid: data?.isInvalid ?? false,
|
|
110
|
+
isDiffAdded: data?.isDiffAdded ?? false,
|
|
111
|
+
isDiffRemoved,
|
|
112
|
+
previewEdge,
|
|
113
|
+
statusColor: execution.statusColor
|
|
114
|
+
});
|
|
115
|
+
const toolbar = (0, index_cjs_namespaceObject.useEdgeToolbarState)({
|
|
116
|
+
edgeId: id,
|
|
117
|
+
pathElementRef: pathRef,
|
|
118
|
+
isHovered: toolbarEnabled && isHovered,
|
|
119
|
+
source,
|
|
120
|
+
target,
|
|
121
|
+
sourceHandleId,
|
|
122
|
+
targetHandleId,
|
|
123
|
+
sourcePosition,
|
|
124
|
+
targetPosition
|
|
125
|
+
});
|
|
126
|
+
const showEditingChrome = editingEnabled && (isHovered || selected || editor.isDragging);
|
|
127
|
+
const opacity = style?.opacity ?? 1;
|
|
128
|
+
return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(jsx_runtime_namespaceObject.Fragment, {
|
|
129
|
+
children: [
|
|
130
|
+
/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("g", {
|
|
131
|
+
onMouseEnter: onMouseEnter,
|
|
132
|
+
onMouseLeave: onMouseLeave,
|
|
133
|
+
onMouseMove: toolbarEnabled ? toolbar.handleMouseMoveOnPath : void 0,
|
|
134
|
+
children: [
|
|
135
|
+
/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(primitives_index_cjs_namespaceObject.EdgePath, {
|
|
136
|
+
id: id,
|
|
137
|
+
d: geometry.edgePath,
|
|
138
|
+
color: color,
|
|
139
|
+
selected: selected,
|
|
140
|
+
animated: animated,
|
|
141
|
+
strokeStyle: previewEdge || isDiffRemoved ? 'dashed' : strokeStyle,
|
|
142
|
+
isReadOnly: isReadOnly,
|
|
143
|
+
style: style,
|
|
144
|
+
opacity: opacity,
|
|
145
|
+
pathRef: pathRef
|
|
146
|
+
}),
|
|
147
|
+
showEditingChrome && geometry.segments.map((segment, index)=>{
|
|
148
|
+
if (!(0, geometry_cjs_namespaceObject.isSegmentInteractable)(segment) || !(0, geometry_cjs_namespaceObject.isSegmentPerpendicular)(segment)) return null;
|
|
149
|
+
return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(primitives_index_cjs_namespaceObject.SegmentDragHandle, {
|
|
150
|
+
segment: segment,
|
|
151
|
+
segmentIndex: index,
|
|
152
|
+
handlers: editor.segmentHandlers
|
|
153
|
+
}, segment.id);
|
|
154
|
+
}),
|
|
155
|
+
editingEnabled && waypoints.map((waypoint, index)=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(primitives_index_cjs_namespaceObject.WaypointHandle, {
|
|
156
|
+
waypoint: waypoint,
|
|
157
|
+
index: index,
|
|
158
|
+
forceVisible: showEditingChrome,
|
|
159
|
+
handlers: editor.waypointHandlers
|
|
160
|
+
}, waypoint.id)),
|
|
161
|
+
!hideArrowHead && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(primitives_index_cjs_namespaceObject.EdgeArrow, {
|
|
162
|
+
target: {
|
|
163
|
+
x: targetX,
|
|
164
|
+
y: targetY
|
|
165
|
+
},
|
|
166
|
+
angle: geometry.arrow.angle,
|
|
167
|
+
offset: geometry.arrow.offset,
|
|
168
|
+
color: color,
|
|
169
|
+
opacity: opacity
|
|
170
|
+
}),
|
|
171
|
+
execution.animation,
|
|
172
|
+
'string' == typeof label && label.length > 0 && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(primitives_index_cjs_namespaceObject.EdgeLabel, {
|
|
173
|
+
x: geometry.labelPoint.x,
|
|
174
|
+
y: geometry.labelPoint.y,
|
|
175
|
+
text: label,
|
|
176
|
+
selected: selected
|
|
177
|
+
})
|
|
178
|
+
]
|
|
179
|
+
}),
|
|
180
|
+
toolbarEnabled && toolbar.showToolbar && toolbar.toolbarPositioning && /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(index_cjs_namespaceObject.EdgeToolbar, {
|
|
181
|
+
edgeId: id,
|
|
182
|
+
visible: toolbar.showToolbar,
|
|
183
|
+
positioning: toolbar.toolbarPositioning,
|
|
184
|
+
config: toolbar.config,
|
|
185
|
+
onMouseEnter: onMouseEnter,
|
|
186
|
+
onMouseLeave: onMouseLeave
|
|
187
|
+
})
|
|
188
|
+
]
|
|
189
|
+
});
|
|
190
|
+
}, areEdgePropsEqual_cjs_namespaceObject.areEdgePropsEqual);
|
|
191
|
+
exports.CanvasEdge = __webpack_exports__.CanvasEdge;
|
|
192
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
193
|
+
"CanvasEdge"
|
|
194
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
195
|
+
Object.defineProperty(exports, '__esModule', {
|
|
196
|
+
value: true
|
|
197
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CanvasEdge.d.ts","sourceRoot":"","sources":["../../../../src/canvas/components/Edges/CanvasEdge.tsx"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAWtD,eAAO,MAAM,UAAU,uDAgMF,CAAC"}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Position } from "../../xyflow/react.js";
|
|
3
|
+
import { memo, useCallback, useRef, useState } from "react";
|
|
4
|
+
import { isPreviewEdge } from "../../utils/createPreviewNode.js";
|
|
5
|
+
import { useBaseCanvasMode } from "../BaseCanvas/BaseCanvasModeProvider.js";
|
|
6
|
+
import { EdgeToolbar, useEdgeToolbarState } from "../Toolbar/index.js";
|
|
7
|
+
import { areEdgePropsEqual } from "./shared/areEdgePropsEqual.js";
|
|
8
|
+
import { EMPTY_WAYPOINTS } from "./shared/constants.js";
|
|
9
|
+
import { isSegmentInteractable, isSegmentPerpendicular } from "./shared/geometry.js";
|
|
10
|
+
import { useEdgeGeometry, useExecutionEdge, useNodeDragRebalance, useWaypointEditor } from "./shared/hooks/index.js";
|
|
11
|
+
import { EdgeArrow, EdgeLabel, EdgePath, SegmentDragHandle, WaypointHandle } from "./shared/primitives/index.js";
|
|
12
|
+
import { resolveEdgeColor } from "./shared/resolveEdgeColor.js";
|
|
13
|
+
const CanvasEdge_CanvasEdge = /*#__PURE__*/ memo(function({ id, selected, animated, source, target, sourceX, sourceY, sourcePosition = Position.Right, targetX, targetY, targetPosition = Position.Left, sourceHandleId, targetHandleId, style, data }) {
|
|
14
|
+
const isReadOnly = 'readonly' === useBaseCanvasMode().mode;
|
|
15
|
+
const [isHovered, setIsHovered] = useState(false);
|
|
16
|
+
const onMouseEnter = useCallback(()=>setIsHovered(true), []);
|
|
17
|
+
const onMouseLeave = useCallback(()=>setIsHovered(false), []);
|
|
18
|
+
const pathRef = useRef(null);
|
|
19
|
+
const routing = data?.routing ?? 'waypoint';
|
|
20
|
+
const storedWaypoints = data?.waypoints ?? EMPTY_WAYPOINTS;
|
|
21
|
+
const strokeStyle = data?.strokeStyle ?? 'solid';
|
|
22
|
+
const hideArrowHead = !!data?.hideArrowHead;
|
|
23
|
+
const label = data?.label;
|
|
24
|
+
const editingEnabled = !!data?.enableEditing && 'waypoint' === routing && !isReadOnly;
|
|
25
|
+
const waypoints = useNodeDragRebalance({
|
|
26
|
+
edgeId: id,
|
|
27
|
+
source,
|
|
28
|
+
target,
|
|
29
|
+
sourceX,
|
|
30
|
+
sourceY,
|
|
31
|
+
sourcePosition,
|
|
32
|
+
targetX,
|
|
33
|
+
targetY,
|
|
34
|
+
targetPosition,
|
|
35
|
+
waypoints: storedWaypoints,
|
|
36
|
+
enabled: editingEnabled,
|
|
37
|
+
onChange: data?.onWaypointsChange
|
|
38
|
+
});
|
|
39
|
+
const routedWaypoints = data?.routedWaypoints ?? EMPTY_WAYPOINTS;
|
|
40
|
+
const effectiveWaypoints = waypoints.length > 0 ? waypoints : routedWaypoints;
|
|
41
|
+
const executionEnabled = !!data?.enableExecution;
|
|
42
|
+
const toolbarEnabled = !!data?.enableToolbar && !isReadOnly;
|
|
43
|
+
const previewEdge = isPreviewEdge({
|
|
44
|
+
id,
|
|
45
|
+
source,
|
|
46
|
+
target
|
|
47
|
+
});
|
|
48
|
+
const geometry = useEdgeGeometry({
|
|
49
|
+
routing,
|
|
50
|
+
sourceNodeId: source,
|
|
51
|
+
targetNodeId: target,
|
|
52
|
+
sourceHandleId,
|
|
53
|
+
targetHandleId,
|
|
54
|
+
sourceX,
|
|
55
|
+
sourceY,
|
|
56
|
+
sourcePosition,
|
|
57
|
+
targetX,
|
|
58
|
+
targetY,
|
|
59
|
+
targetPosition,
|
|
60
|
+
waypoints: effectiveWaypoints,
|
|
61
|
+
enableSegments: editingEnabled,
|
|
62
|
+
hideArrowHead
|
|
63
|
+
});
|
|
64
|
+
const editor = useWaypointEditor({
|
|
65
|
+
edgeId: id,
|
|
66
|
+
waypoints,
|
|
67
|
+
pathPoints: geometry.pathPoints,
|
|
68
|
+
enabled: editingEnabled,
|
|
69
|
+
onChange: data?.onWaypointsChange
|
|
70
|
+
});
|
|
71
|
+
const execution = useExecutionEdge({
|
|
72
|
+
edgeId: id,
|
|
73
|
+
target,
|
|
74
|
+
edgePath: geometry.edgePath,
|
|
75
|
+
enabled: executionEnabled
|
|
76
|
+
});
|
|
77
|
+
const isDiffRemoved = data?.isDiffRemoved ?? false;
|
|
78
|
+
const color = resolveEdgeColor({
|
|
79
|
+
selected,
|
|
80
|
+
isHovered,
|
|
81
|
+
isInvalid: data?.isInvalid ?? false,
|
|
82
|
+
isDiffAdded: data?.isDiffAdded ?? false,
|
|
83
|
+
isDiffRemoved,
|
|
84
|
+
previewEdge,
|
|
85
|
+
statusColor: execution.statusColor
|
|
86
|
+
});
|
|
87
|
+
const toolbar = useEdgeToolbarState({
|
|
88
|
+
edgeId: id,
|
|
89
|
+
pathElementRef: pathRef,
|
|
90
|
+
isHovered: toolbarEnabled && isHovered,
|
|
91
|
+
source,
|
|
92
|
+
target,
|
|
93
|
+
sourceHandleId,
|
|
94
|
+
targetHandleId,
|
|
95
|
+
sourcePosition,
|
|
96
|
+
targetPosition
|
|
97
|
+
});
|
|
98
|
+
const showEditingChrome = editingEnabled && (isHovered || selected || editor.isDragging);
|
|
99
|
+
const opacity = style?.opacity ?? 1;
|
|
100
|
+
return /*#__PURE__*/ jsxs(Fragment, {
|
|
101
|
+
children: [
|
|
102
|
+
/*#__PURE__*/ jsxs("g", {
|
|
103
|
+
onMouseEnter: onMouseEnter,
|
|
104
|
+
onMouseLeave: onMouseLeave,
|
|
105
|
+
onMouseMove: toolbarEnabled ? toolbar.handleMouseMoveOnPath : void 0,
|
|
106
|
+
children: [
|
|
107
|
+
/*#__PURE__*/ jsx(EdgePath, {
|
|
108
|
+
id: id,
|
|
109
|
+
d: geometry.edgePath,
|
|
110
|
+
color: color,
|
|
111
|
+
selected: selected,
|
|
112
|
+
animated: animated,
|
|
113
|
+
strokeStyle: previewEdge || isDiffRemoved ? 'dashed' : strokeStyle,
|
|
114
|
+
isReadOnly: isReadOnly,
|
|
115
|
+
style: style,
|
|
116
|
+
opacity: opacity,
|
|
117
|
+
pathRef: pathRef
|
|
118
|
+
}),
|
|
119
|
+
showEditingChrome && geometry.segments.map((segment, index)=>{
|
|
120
|
+
if (!isSegmentInteractable(segment) || !isSegmentPerpendicular(segment)) return null;
|
|
121
|
+
return /*#__PURE__*/ jsx(SegmentDragHandle, {
|
|
122
|
+
segment: segment,
|
|
123
|
+
segmentIndex: index,
|
|
124
|
+
handlers: editor.segmentHandlers
|
|
125
|
+
}, segment.id);
|
|
126
|
+
}),
|
|
127
|
+
editingEnabled && waypoints.map((waypoint, index)=>/*#__PURE__*/ jsx(WaypointHandle, {
|
|
128
|
+
waypoint: waypoint,
|
|
129
|
+
index: index,
|
|
130
|
+
forceVisible: showEditingChrome,
|
|
131
|
+
handlers: editor.waypointHandlers
|
|
132
|
+
}, waypoint.id)),
|
|
133
|
+
!hideArrowHead && /*#__PURE__*/ jsx(EdgeArrow, {
|
|
134
|
+
target: {
|
|
135
|
+
x: targetX,
|
|
136
|
+
y: targetY
|
|
137
|
+
},
|
|
138
|
+
angle: geometry.arrow.angle,
|
|
139
|
+
offset: geometry.arrow.offset,
|
|
140
|
+
color: color,
|
|
141
|
+
opacity: opacity
|
|
142
|
+
}),
|
|
143
|
+
execution.animation,
|
|
144
|
+
'string' == typeof label && label.length > 0 && /*#__PURE__*/ jsx(EdgeLabel, {
|
|
145
|
+
x: geometry.labelPoint.x,
|
|
146
|
+
y: geometry.labelPoint.y,
|
|
147
|
+
text: label,
|
|
148
|
+
selected: selected
|
|
149
|
+
})
|
|
150
|
+
]
|
|
151
|
+
}),
|
|
152
|
+
toolbarEnabled && toolbar.showToolbar && toolbar.toolbarPositioning && /*#__PURE__*/ jsx(EdgeToolbar, {
|
|
153
|
+
edgeId: id,
|
|
154
|
+
visible: toolbar.showToolbar,
|
|
155
|
+
positioning: toolbar.toolbarPositioning,
|
|
156
|
+
config: toolbar.config,
|
|
157
|
+
onMouseEnter: onMouseEnter,
|
|
158
|
+
onMouseLeave: onMouseLeave
|
|
159
|
+
})
|
|
160
|
+
]
|
|
161
|
+
});
|
|
162
|
+
}, areEdgePropsEqual);
|
|
163
|
+
export { CanvasEdge_CanvasEdge as CanvasEdge };
|