From 0a45e09c325128146d2d9ccd100b61f9a468cffc Mon Sep 17 00:00:00 2001 From: Braks <78412429+bcakmakoglu@users.noreply.github.com> Date: Fri, 22 Oct 2021 08:49:53 +0200 Subject: [PATCH] feat: Add node/edge types id * ID can be used to switch between different types of nodes/edges * Add example --- examples/NodeTypesIdChange/NodeA.vue | 6 ++ examples/NodeTypesIdChange/NodeB.vue | 6 ++ .../NodeTypesIdChangeExample.vue | 60 +++++++++++++++++++ examples/router.ts | 4 ++ src/container/Flow/Flow.vue | 12 +++- src/types/types.ts | 2 +- 6 files changed, 87 insertions(+), 3 deletions(-) create mode 100644 examples/NodeTypesIdChange/NodeA.vue create mode 100644 examples/NodeTypesIdChange/NodeB.vue create mode 100644 examples/NodeTypesIdChange/NodeTypesIdChangeExample.vue diff --git a/examples/NodeTypesIdChange/NodeA.vue b/examples/NodeTypesIdChange/NodeA.vue new file mode 100644 index 00000000..c593294f --- /dev/null +++ b/examples/NodeTypesIdChange/NodeA.vue @@ -0,0 +1,6 @@ + + diff --git a/examples/NodeTypesIdChange/NodeB.vue b/examples/NodeTypesIdChange/NodeB.vue new file mode 100644 index 00000000..0b39877e --- /dev/null +++ b/examples/NodeTypesIdChange/NodeB.vue @@ -0,0 +1,6 @@ + + diff --git a/examples/NodeTypesIdChange/NodeTypesIdChangeExample.vue b/examples/NodeTypesIdChange/NodeTypesIdChangeExample.vue new file mode 100644 index 00000000..c4b9538b --- /dev/null +++ b/examples/NodeTypesIdChange/NodeTypesIdChangeExample.vue @@ -0,0 +1,60 @@ + + diff --git a/examples/router.ts b/examples/router.ts index 5b1aa6f0..ea3a18f2 100644 --- a/examples/router.ts +++ b/examples/router.ts @@ -57,6 +57,10 @@ export const routes: RouterOptions['routes'] = [ path: '/node-type-change', component: () => import('./NodeTypeChange/NodeTypeChangeExample.vue'), }, + { + path: '/node-types-id-change', + component: () => import('./NodeTypesIdChange/NodeTypesIdChangeExample.vue'), + }, { path: '/overview', component: () => import('./Overview/Overview.vue'), diff --git a/src/container/Flow/Flow.vue b/src/container/Flow/Flow.vue index a1b4fc69..7deffbab 100644 --- a/src/container/Flow/Flow.vue +++ b/src/container/Flow/Flow.vue @@ -98,6 +98,8 @@ const props = withDefaults(defineProps(), { panOnScrollMode: PanOnScrollMode.Free, paneMoveable: true, edgeUpdaterRadius: 10, + edgeTypesId: '1', + nodeTypesId: '1', }) const emit = defineEmits(Object.keys(createHooks())) @@ -131,8 +133,14 @@ onBeforeUnmount(() => store?.$dispose()) watch(props, (val) => init(val)) init(props) -const nodeTypes = createNodeTypes({ ...defaultNodeTypes, ...props.nodeTypes }) -const edgeTypes = createEdgeTypes({ ...defaultEdgeTypes, ...props.edgeTypes }) +const nodeTypes = controlledComputed( + () => props.nodeTypesId, + () => createNodeTypes({ ...defaultNodeTypes, ...props.nodeTypes }), +) +const edgeTypes = controlledComputed( + () => props.edgeTypesId, + () => createEdgeTypes({ ...defaultEdgeTypes, ...props.edgeTypes }), +)