@@ -101,12 +68,13 @@ const defaultEdgeTypes = {
smoothstep: SmoothStepEdge
};
+const eventHooks = useRevueFlow();
const RevueFlow = defineComponent({
name: 'RevueFlow',
components: { GraphView },
props: {
modelValue: {
- type: Array as PropType,
+ type: Array as PropType,
required: false,
default: () => []
},
@@ -130,106 +98,6 @@ const RevueFlow = defineComponent({
required: false,
default: () => defaultEdgeTypes
},
- onMove: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onMoveStart: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onMoveEnd: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onLoad: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onElementClick: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onNodeDoubleClick: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onEdgeDoubleClick: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onNodeMouseEnter: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onNodeMouseMove: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onNodeMouseLeave: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onNodeContextMenu: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onNodeDragStart: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onNodeDrag: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onNodeDragStop: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onSelectionContextMenu: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onElementsRemove: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onConnect: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onConnectStart: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onConnectStop: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onConnectEnd: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
connectionMode: {
type: String as PropType,
required: false,
@@ -380,87 +248,18 @@ const RevueFlow = defineComponent({
required: false,
default: true
},
- onPaneClick: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onPaneScroll: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onPaneContextMenu: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onEdgeUpdate: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onEdgeMouseEnter: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onEdgeContextMenu: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onEdgeMouseMove: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onEdgeMouseLeave: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onEdgeUpdateEnd: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onEdgeUpdateStart: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onSelectionDragStart: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onSelectionDrag: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onSelectionDragStop: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onSelectionChange: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
edgeUpdaterRadius: {
type: Number as PropType,
required: false,
default: 10
}
},
- emits: ['', 'load'],
+ emits: Object.keys(eventHooks),
setup(props, { emit }) {
const store = configureStore(initialState)();
provide('store', store);
- provide('hooks', useRevueFlow(emit));
+ eventHooks.bind(emit);
+ provide('hooks', eventHooks);
const elements = useVModel(props, 'modelValue', emit);
store.setElements(elements.value);
@@ -469,7 +268,6 @@ const RevueFlow = defineComponent({
});
onUpdated(() => {
- console.log('updated');
store.setElements(elements.value);
});
@@ -478,12 +276,16 @@ const RevueFlow = defineComponent({
store.setElements([]);
});
- const nodeTypesParsed = computed(() => props.nodeTypes && createNodeTypes({ ...defaultNodeTypes, ...props.nodeTypes }));
- const edgeTypesParsed = computed(() => props.edgeTypes && createEdgeTypes({ ...defaultEdgeTypes, ...props.edgeTypes }));
+ const nodeTypesParsed = computed(
+ () => props.nodeTypes && createNodeTypes({ ...defaultNodeTypes, ...props.nodeTypes } as any)
+ );
+ const edgeTypesParsed = computed(
+ () => props.edgeTypes && createEdgeTypes({ ...defaultEdgeTypes, ...props.edgeTypes } as any)
+ );
return {
- nodeTypesParsed: nodeTypesParsed.value,
- edgeTypesParsed: edgeTypesParsed.value
+ nodeTypesParsed,
+ edgeTypesParsed
};
}
});
diff --git a/src/container/RevueFlow/index.tsx b/src/container/RevueFlow/index.tsx
deleted file mode 100644
index c72923ee..00000000
--- a/src/container/RevueFlow/index.tsx
+++ /dev/null
@@ -1,538 +0,0 @@
-import { computed, defineComponent, onBeforeUnmount, PropType, provide, watch } from 'vue';
-import '../../style.css';
-import '../../theme-default.css';
-import GraphView from '../GraphView';
-import DefaultNode from '../../components/Nodes/DefaultNode';
-import InputNode from '../../components/Nodes/InputNode';
-import OutputNode from '../../components/Nodes/OutputNode';
-import { createNodeTypes } from '../NodeRenderer/utils';
-import { BezierEdge, StepEdge, SmoothStepEdge, StraightEdge } from '../../components/Edges';
-import { createEdgeTypes } from '../EdgeRenderer/utils';
-import { ConnectionMode, ConnectionLineType, PanOnScrollMode, RevueFlowStore, RevueFlowProps } from '../../types';
-import { initialState } from '../../store';
-import configureStore from '../../store/configure-store';
-
-const defaultNodeTypes = {
- input: InputNode,
- default: DefaultNode,
- output: OutputNode
-};
-
-const defaultEdgeTypes = {
- default: BezierEdge,
- straight: StraightEdge,
- step: StepEdge,
- smoothstep: SmoothStepEdge
-};
-
-const RevueFlow = defineComponent({
- name: 'RevueFlow',
- components: { GraphView },
- props: {
- elements: {
- type: Array as PropType,
- required: true
- },
- nodeTypesId: {
- type: String as PropType,
- required: false,
- default: '1'
- },
- edgeTypesId: {
- type: String as PropType,
- required: false,
- default: '1'
- },
- nodeTypes: {
- type: Object as PropType,
- required: false,
- default: () => defaultNodeTypes
- },
- edgeTypes: {
- type: Object as PropType,
- required: false,
- default: () => defaultEdgeTypes
- },
- onMove: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onMoveStart: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onMoveEnd: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onLoad: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onElementClick: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onNodeDoubleClick: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onEdgeDoubleClick: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onNodeMouseEnter: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onNodeMouseMove: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onNodeMouseLeave: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onNodeContextMenu: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onNodeDragStart: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onNodeDrag: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onNodeDragStop: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onSelectionContextMenu: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onElementsRemove: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onConnect: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onConnectStart: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onConnectStop: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- onConnectEnd: {
- type: Function as unknown as PropType,
- required: false,
- default: undefined
- },
- connectionMode: {
- type: String as PropType,
- required: false,
- default: ConnectionMode.Strict
- },
- connectionLineType: {
- type: String as PropType,
- required: false,
- default: ConnectionLineType.Bezier
- },
- connectionLineStyle: {
- type: Object as PropType,
- required: false,
- default: undefined
- },
- connectionLineComponent: {
- type: Object as PropType,
- required: false,
- default: undefined
- },
- selectionKeyCode: {
- type: [Number, String] as PropType,
- required: false,
- default: 'Shift'
- },
- multiSelectionKeyCode: {
- type: [Number, String] as PropType,
- required: false,
- default: 'Meta'
- },
- zoomActivationKeyCode: {
- type: [Number, String] as PropType,
- required: false,
- default: 'Meta'
- },
- deleteKeyCode: {
- type: [Number, String] as PropType,
- required: false,
- default: 'Backspace'
- },
- snapToGrid: {
- type: Boolean as PropType,
- required: false,
- default: false
- },
- snapGrid: {
- type: Array as unknown as PropType,
- required: false,
- default: () => [15, 15]
- },
- onlyRenderVisibleElements: {
- type: Boolean as PropType,
- required: false,
- default: false
- },
- nodesDraggable: {
- type: Boolean as PropType,
- required: false,
- default: undefined
- },
- nodesConnectable: {
- type: Boolean as PropType,
- required: false,
- default: undefined
- },
- elementsSelectable: {
- type: Boolean as PropType,
- required: false,
- default: undefined
- },
- selectNodesOnDrag: {
- type: Boolean as PropType,
- required: false,
- default: true
- },
- minZoom: {
- type: Number as PropType,
- required: false,
- default: undefined
- },
- maxZoom: {
- type: Number as PropType,
- required: false,
- default: undefined
- },
- defaultZoom: {
- type: Number as PropType,
- required: false,
- default: 1
- },
- defaultPosition: {
- type: Array as unknown as PropType,
- required: false,
- default: () => [0, 0]
- },
- translateExtent: {
- type: Array as unknown as PropType