@delove/reaflow
Version:
Node-based Visualizations for React
43 lines (42 loc) • 1.37 kB
TypeScript
import React, { ReactNode } from 'react';
import { PortData } from '../../types';
import { NodeDragEvents } from '../../utils/useNodeDrag';
export interface ElkPortProperties {
index: number;
width: number;
height: number;
'port.side': string;
'port.alignment': string;
}
export interface PortChildProps {
port: PortData;
isDisabled: boolean;
isDragging: boolean;
isHovered: boolean;
x: number;
y: number;
rx: number;
ry: number;
offsetX: number;
offsetY: number;
}
export type PortChildrenAsFunction = (portChildProps: PortChildProps) => ReactNode;
export interface PortProps extends NodeDragEvents<PortData> {
id: string;
x: number;
y: number;
rx: number;
ry: number;
offsetX: number;
offsetY: number;
disabled?: boolean;
className?: string;
properties: ElkPortProperties & PortData;
style?: any;
children?: ReactNode | PortChildrenAsFunction;
active?: boolean;
onEnter?: (event: React.MouseEvent<SVGGElement, MouseEvent>, port: PortData) => void;
onLeave?: (event: React.MouseEvent<SVGGElement, MouseEvent>, port: PortData) => void;
onClick?: (event: React.MouseEvent<SVGGElement, MouseEvent>, port: PortData) => void;
}
export declare const Port: React.ForwardRefExoticComponent<Partial<PortProps> & React.RefAttributes<SVGRectElement>>;