import { type NodeProps, Position, type Node, } from '@xyflow/react'; import { Toolbar } from '../components/NodeComponents'; import styles from '../../VisProg.module.css'; import {SingleConnectionHandle} from "../components/RuleBasedHandle.tsx"; import {allowOnlyConnectionsFromType} from "../HandleRules.ts"; /** * The typing of this node's data */ export type EndNodeData = { label: string; droppable: boolean; hasReduce: boolean; }; export type EndNode = Node /** * Default function to render an end node given its properties * @param props the node's properties * @returns React.JSX.Element */ export default function EndNode(props: NodeProps) { return ( <>
End
); } /** * Functionality for reducing this node into its more compact json program * @param node the node to reduce * @param _nodes all nodes present * @returns Dictionary, {id: node.id} */ export function EndReduce(node: Node, _nodes: Node[]) { // Replace this for nodes functionality return { id: node.id } } /** * This function is called whenever a connection is made with this node type as the target * @param _thisNode the node of this node type which function is called * @param _sourceNodeId the source of the received connection */ export function EndConnectionTarget(_thisNode: Node, _sourceNodeId: string) { // no additional connection logic exists yet } /** * This function is called whenever a connection is made with this node type as the source * @param _thisNode the node of this node type which function is called * @param _targetNodeId the target of the created connection */ export function EndConnectionSource(_thisNode: Node, _targetNodeId: string) { // no additional connection logic exists yet } /** * This function is called whenever a connection is disconnected with this node type as the target * @param _thisNode the node of this node type which function is called * @param _sourceNodeId the source of the disconnected connection */ export function EndDisconnectionTarget(_thisNode: Node, _sourceNodeId: string) { // no additional connection logic exists yet } /** * This function is called whenever a connection is disconnected with this node type as the source * @param _thisNode the node of this node type which function is called * @param _targetNodeId the target of the diconnected connection */ export function EndDisconnectionSource(_thisNode: Node, _targetNodeId: string) { // no additional connection logic exists yet }