Merge pull request #2159 from RunDevelopment/issue2158

Added `connectionLineContainerStyle` property
This commit is contained in:
Moritz Klack
2022-05-22 14:21:26 +02:00
committed by GitHub
6 changed files with 40 additions and 14 deletions
+30 -14
View File
@@ -25,6 +25,7 @@ interface EdgeRendererProps {
connectionLineType: ConnectionLineType; connectionLineType: ConnectionLineType;
connectionLineStyle?: CSSProperties; connectionLineStyle?: CSSProperties;
connectionLineComponent?: ConnectionLineComponent; connectionLineComponent?: ConnectionLineComponent;
connectionLineContainerStyle?: CSSProperties;
onEdgeClick?: (event: React.MouseEvent, node: Edge) => void; onEdgeClick?: (event: React.MouseEvent, node: Edge) => void;
onEdgeDoubleClick?: (event: React.MouseEvent, edge: Edge) => void; onEdgeDoubleClick?: (event: React.MouseEvent, edge: Edge) => void;
defaultMarkerColor: string; defaultMarkerColor: string;
@@ -73,7 +74,13 @@ const EdgeRenderer = (props: EdgeRendererProps) => {
return null; return null;
} }
const { connectionLineType, defaultMarkerColor, connectionLineStyle, connectionLineComponent } = props; const {
connectionLineType,
defaultMarkerColor,
connectionLineStyle,
connectionLineComponent,
connectionLineContainerStyle,
} = props;
const renderConnectionLine = connectionNodeId && connectionHandleType; const renderConnectionLine = connectionNodeId && connectionHandleType;
return ( return (
@@ -180,22 +187,31 @@ const EdgeRenderer = (props: EdgeRendererProps) => {
/> />
); );
})} })}
{renderConnectionLine && isMaxLevel && (
<ConnectionLine
connectionNodeId={connectionNodeId!}
connectionHandleId={connectionHandleId}
connectionHandleType={connectionHandleType!}
connectionPositionX={connectionPosition.x}
connectionPositionY={connectionPosition.y}
connectionLineStyle={connectionLineStyle}
connectionLineType={connectionLineType}
isConnectable={nodesConnectable}
CustomConnectionLineComponent={connectionLineComponent}
/>
)}
</g> </g>
</svg> </svg>
))} ))}
{renderConnectionLine && (
<svg
style={connectionLineContainerStyle}
width={width}
height={height}
className="react-flow__edges react-flow__connectionline react-flow__container"
>
<g>
<ConnectionLine
connectionNodeId={connectionNodeId!}
connectionHandleId={connectionHandleId}
connectionHandleType={connectionHandleType!}
connectionPositionX={connectionPosition.x}
connectionPositionY={connectionPosition.y}
connectionLineStyle={connectionLineStyle}
connectionLineType={connectionLineType}
isConnectable={nodesConnectable}
CustomConnectionLineComponent={connectionLineComponent}
/>
</g>
</svg>
)}
</> </>
); );
}; };
+1
View File
@@ -19,6 +19,7 @@ interface FlowRendererProps
| 'edgeTypes' | 'edgeTypes'
| 'snapGrid' | 'snapGrid'
| 'connectionLineType' | 'connectionLineType'
| 'connectionLineContainerStyle'
| 'arrowHeadColor' | 'arrowHeadColor'
| 'onlyRenderVisibleElements' | 'onlyRenderVisibleElements'
| 'selectNodesOnDrag' | 'selectNodesOnDrag'
+2
View File
@@ -50,6 +50,7 @@ const GraphView = ({
connectionLineType, connectionLineType,
connectionLineStyle, connectionLineStyle,
connectionLineComponent, connectionLineComponent,
connectionLineContainerStyle,
selectionKeyCode, selectionKeyCode,
multiSelectionKeyCode, multiSelectionKeyCode,
zoomActivationKeyCode, zoomActivationKeyCode,
@@ -125,6 +126,7 @@ const GraphView = ({
connectionLineType={connectionLineType} connectionLineType={connectionLineType}
connectionLineStyle={connectionLineStyle} connectionLineStyle={connectionLineStyle}
connectionLineComponent={connectionLineComponent} connectionLineComponent={connectionLineComponent}
connectionLineContainerStyle={connectionLineContainerStyle}
onEdgeUpdate={onEdgeUpdate} onEdgeUpdate={onEdgeUpdate}
onlyRenderVisibleElements={onlyRenderVisibleElements} onlyRenderVisibleElements={onlyRenderVisibleElements}
onEdgeContextMenu={onEdgeContextMenu} onEdgeContextMenu={onEdgeContextMenu}
+2
View File
@@ -90,6 +90,7 @@ const ReactFlow = forwardRef<ReactFlowRefType, ReactFlowProps>(
connectionLineType = ConnectionLineType.Bezier, connectionLineType = ConnectionLineType.Bezier,
connectionLineStyle, connectionLineStyle,
connectionLineComponent, connectionLineComponent,
connectionLineContainerStyle,
deleteKeyCode = 'Backspace', deleteKeyCode = 'Backspace',
selectionKeyCode = 'Shift', selectionKeyCode = 'Shift',
multiSelectionKeyCode = 'Meta', multiSelectionKeyCode = 'Meta',
@@ -172,6 +173,7 @@ const ReactFlow = forwardRef<ReactFlowRefType, ReactFlowProps>(
connectionLineType={connectionLineType} connectionLineType={connectionLineType}
connectionLineStyle={connectionLineStyle} connectionLineStyle={connectionLineStyle}
connectionLineComponent={connectionLineComponent} connectionLineComponent={connectionLineComponent}
connectionLineContainerStyle={connectionLineContainerStyle}
selectionKeyCode={selectionKeyCode} selectionKeyCode={selectionKeyCode}
deleteKeyCode={deleteKeyCode} deleteKeyCode={deleteKeyCode}
multiSelectionKeyCode={multiSelectionKeyCode} multiSelectionKeyCode={multiSelectionKeyCode}
+4
View File
@@ -36,6 +36,10 @@
overflow: visible; overflow: visible;
} }
.react-flow .react-flow__connectionline {
z-index: 1001;
}
.react-flow__edge { .react-flow__edge {
pointer-events: visibleStroke; pointer-events: visibleStroke;
+1
View File
@@ -86,6 +86,7 @@ export interface ReactFlowProps extends HTMLAttributes<HTMLDivElement> {
connectionLineType?: ConnectionLineType; connectionLineType?: ConnectionLineType;
connectionLineStyle?: CSSProperties; connectionLineStyle?: CSSProperties;
connectionLineComponent?: ConnectionLineComponent; connectionLineComponent?: ConnectionLineComponent;
connectionLineContainerStyle?: CSSProperties;
deleteKeyCode?: KeyCode | null; deleteKeyCode?: KeyCode | null;
selectionKeyCode?: KeyCode | null; selectionKeyCode?: KeyCode | null;
multiSelectionKeyCode?: KeyCode | null; multiSelectionKeyCode?: KeyCode | null;