import '@flowgram.ai/free-layout-editor/index.css'; import { createMinimapPlugin } from '@flowgram.ai/minimap-plugin'; import { createFreeSnapPlugin } from '@flowgram.ai/free-snap-plugin'; import { FreeLayoutEditorProvider, EditorRenderer, useNodeRender, WorkflowNodeProps, WorkflowNodeRenderer, } from '@flowgram.ai/free-layout-editor'; const NodeRender = (props: WorkflowNodeProps) => { const { form, selected } = useNodeRender(); return ( {form?.render()} ); }; const FlowGramApp = () => ( [createMinimapPlugin({}), createFreeSnapPlugin({})]} onAllLayersRendered={(ctx) => { ctx.tools.fitView(false); }} materials={{ renderDefaultNode: NodeRender, }} nodeRegistries={[ { type: 'custom', }, ]} canDeleteNode={() => true} canDeleteLine={() => true} initialData={{ nodes: [ { id: '1', type: 'custom', meta: { position: { x: 0, y: 0 }, }, }, { id: '2', type: 'custom', meta: { position: { x: 400, y: -200 }, }, }, { id: '3', type: 'custom', meta: { position: { x: 400, y: 0 }, }, }, { id: '4', type: 'custom', meta: { position: { x: 400, y: 200 }, }, }, { id: '5', type: 'custom', meta: { position: { x: 800, y: 0 }, }, }, ], edges: [ { sourceNodeID: '1', targetNodeID: '2', }, { sourceNodeID: '1', targetNodeID: '3', }, { sourceNodeID: '1', targetNodeID: '4', }, { sourceNodeID: '2', targetNodeID: '5', }, { sourceNodeID: '3', targetNodeID: '5', }, { sourceNodeID: '4', targetNodeID: '5', }, ], }} > ); export default FlowGramApp;