From 42247bc31f5f468631a1657214efca73691b56c8 Mon Sep 17 00:00:00 2001 From: Shariq Ansari Date: Tue, 2 May 2023 12:28:49 +0530 Subject: [PATCH] fix: basic vueflow using custom node & edge --- .../js/workflow_builder/WorkflowBuilder.vue | 46 +++++++++- .../workflow_builder/components/StateNode.vue | 64 ++++++++++++++ .../components/TransitionEdge.vue | 84 +++++++++++++++++++ frappe/public/js/workflow_builder/store.js | 14 +++- frappe/public/js/workflow_builder/utils.js | 0 5 files changed, 205 insertions(+), 3 deletions(-) create mode 100644 frappe/public/js/workflow_builder/components/StateNode.vue create mode 100644 frappe/public/js/workflow_builder/components/TransitionEdge.vue create mode 100644 frappe/public/js/workflow_builder/utils.js diff --git a/frappe/public/js/workflow_builder/WorkflowBuilder.vue b/frappe/public/js/workflow_builder/WorkflowBuilder.vue index d61a8855f8..37130dbb6b 100644 --- a/frappe/public/js/workflow_builder/WorkflowBuilder.vue +++ b/frappe/public/js/workflow_builder/WorkflowBuilder.vue @@ -1,15 +1,45 @@ @@ -25,4 +55,16 @@ let store = useStore(); border: 1px solid var(--border-color); background-color: var(--fg-color); } + +:deep(.transition-edge) { + stroke: var(--gray-600); + stroke-width: 1.5px; +} + +:deep(.selected) { + .transition-edge { + stroke: var(--primary); + stroke-width: 2px; + } +} diff --git a/frappe/public/js/workflow_builder/components/StateNode.vue b/frappe/public/js/workflow_builder/components/StateNode.vue new file mode 100644 index 0000000000..0d211eca82 --- /dev/null +++ b/frappe/public/js/workflow_builder/components/StateNode.vue @@ -0,0 +1,64 @@ + + + + + diff --git a/frappe/public/js/workflow_builder/components/TransitionEdge.vue b/frappe/public/js/workflow_builder/components/TransitionEdge.vue new file mode 100644 index 0000000000..141b9da045 --- /dev/null +++ b/frappe/public/js/workflow_builder/components/TransitionEdge.vue @@ -0,0 +1,84 @@ + + + + + diff --git a/frappe/public/js/workflow_builder/store.js b/frappe/public/js/workflow_builder/store.js index 8b439690ec..c1203bc19b 100644 --- a/frappe/public/js/workflow_builder/store.js +++ b/frappe/public/js/workflow_builder/store.js @@ -3,7 +3,19 @@ import { ref } from "vue"; export const useStore = defineStore("workflow-builder-store", () => { let workflow = ref({ - elements: [], + elements: [ + { id: "1", label: "Open", type: "state", position: { x: 300, y: 150 } }, + { id: "2", label: "Approved", type: "state", position: { x: 700, y: 150 } }, + { + id: "edge-1-2", + source: "1", + target: "2", + type: "transition", + sourceHandle: "b", + targetHandle: "d", + animated: true, + }, + ], }); return { diff --git a/frappe/public/js/workflow_builder/utils.js b/frappe/public/js/workflow_builder/utils.js new file mode 100644 index 0000000000..e69de29bb2