๐Ÿ”ฅ๐—•๐˜‚๐—ถ๐—น๐—ฑ๐—ถ๐—ป๐—ด ๐—ฎ๐—ป ๐—ป๐Ÿด๐—ป ๐—–๐—น๐—ผ๐—ป๐—ฒ ๐—ถ๐—ป ๐—ฉ๐˜‚๐—ฒ

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • MyrinNew
    Senior Member
    • Feb 2024
    • 5175

    #1

    ๐Ÿ”ฅ๐—•๐˜‚๐—ถ๐—น๐—ฑ๐—ถ๐—ป๐—ด ๐—ฎ๐—ป ๐—ป๐Ÿด๐—ป ๐—–๐—น๐—ผ๐—ป๐—ฒ ๐—ถ๐—ป ๐—ฉ๐˜‚๐—ฒ

    Ever thought about how tools like hashtag#๐—ป๐Ÿด๐—ป or hashtag#๐—ญ๐—ฎ๐—ฝ๐—ถ๐—ฒ๐—ฟ build their visual automation editors?


    Turns out, with hashtag#Vue itโ€™s easier than youโ€™d think.


    โœจ Features:

    โ€ข Custom styled nodes (dark mode, Tailwind)

    โ€ข Connectable edges

    โ€ข Background grid


    This is just the first step toward building your own workflow editor. Add draggable node creation, triggers, and persistence โ€” and youโ€™re halfway to making your own n8n clone in Vue ๐Ÿš€


    Hereโ€™s a minimal flow editor using ๐˜ƒ๐˜‚๐—ฒโ€“๐—ณ๐—น๐—ผ๐˜„ :






    script setup>
    import { ref } from "vue"
    import { VueFlow, useVueFlow } from "@vue-flow/core"
    import { Background } from '@vue-flow/background'
    import "@vue-flow/core/dist/style.css"

    const nodes = ref([
    {
    id: '1',
    type: 'input',
    data: { label: 'Node 1' },
    position: { x: 250, y: 0 },
    class: "p-3 text-slate-50 bg-[#342c3e] rounded-md shadow-md",
    },
    {
    id: '2',
    type: 'output',
    data: { label: 'Node 2' },
    position: { x: 100, y: 100 },
    class: "p-3 text-slate-50 bg-[#342c3e] rounded-md shadow-md",
    },
    {
    id: '3',
    data: { label: 'Node 3' },
    position: { x: 400, y: 100 },
    class: "p-3 text-slate-50 bg-[#342c3e] rounded-md shadow-md",
    }
    ])

    const edges = ref([
    { id: 'e1-2', source: '1', target: '2', animated: true },

    { id: 'e1-3',source: '1',target: '3',label: 'edge with text' },
    ])

    script>











    template>
    class="w-[500px] h-[500px] mx-auto">
    class="w-[500px] h-[500px] rounded-2xl overflow-hidden">


    class="basic-flow dark" :nodes="nodes" :edges="edges">

    pattern-color="#7e7e7e" :gap="16" />







    template>









    More...
Working...