import RevueFlow, { removeElements, addEdge, MiniMap, Controls, Background, OnLoadParams, Elements, ElementId, Node, FlowElement, BackgroundVariant, Connection, Edge } from '../../src'; import { CSSProperties, defineComponent, ref } from 'vue'; const onLoad = (reactFlowInstance: OnLoadParams) => console.log('flow loaded:', reactFlowInstance); const onElementClick = (_: MouseEvent, element: FlowElement) => console.log('click', element); const onNodeDragStop = (_: MouseEvent, node: Node) => console.log('drag stop', node); const buttonStyle: CSSProperties = { position: 'absolute', left: '10px', top: '10px', zIndex: 4 }; const EmptyFlow = defineComponent({ setup() { { const elements = ref([]); const onElementsRemove = (elementsToRemove: Elements) => (elements.value = removeElements(elementsToRemove, elements.value)); const onConnect = (params: Connection | Edge) => (elements.value = addEdge(params, elements.value)); const addRandomNode = () => { const nodeId: ElementId = (elements.value.length + 1).toString(); const newNode: Node = { id: nodeId, data: { label: `Node: ${nodeId}` }, position: { x: Math.random() * window.innerWidth, y: Math.random() * window.innerHeight } } as Node; elements.value = [...elements.value, newNode]; }; return () => ( onConnect(p)} onNodeDragStop={onNodeDragStop} onlyRenderVisibleElements={false} > ); } } }); export default EmptyFlow;