├── src ├── assets │ ├── initial-elements.js │ ├── logo.png │ └── svg │ │ ├── PlayIcon.svg │ │ ├── FileEarMark.svg │ │ ├── CardIcon.svg │ │ ├── CardImage.svg │ │ ├── Arrow90Down.svg │ │ ├── DashSquare.svg │ │ ├── NextAudio.svg │ │ ├── UserInput.svg │ │ ├── check2-all.svg │ │ ├── Box.svg │ │ ├── VideoIcon.svg │ │ ├── copyIcon.svg │ │ ├── BiGoogle.svg │ │ ├── GalleryIcon.svg │ │ ├── CardText.svg │ │ ├── TrashIcon.svg │ │ ├── sunIcon.svg │ │ ├── Attachment.svg │ │ ├── QuickReply.svg │ │ ├── Messenger.svg │ │ ├── moonStar.svg │ │ ├── GearIcon.svg │ │ ├── Clock.svg │ │ └── CloudIcon.svg ├── utils │ ├── radomId.js │ ├── getDateasString.js │ ├── applyDrag.js │ └── createVueNode.js ├── main.js ├── components │ ├── CustomConnectionLine.vue │ ├── sidebarMenu │ │ ├── SidebarTemplate.vue │ │ └── Sidebar.vue │ ├── messageRenderer.vue │ ├── messengerQuickReply.vue │ ├── redirectorEdge.vue │ ├── simpleText.vue │ ├── messengerItems │ │ ├── messengerDelay.vue │ │ ├── messengerAudio.vue │ │ ├── messengerFile.vue │ │ ├── messengerUserInput.vue │ │ ├── messengerDynamic.vue │ │ ├── messengerText.vue │ │ ├── messengerImage.vue │ │ ├── messengerVideo.vue │ │ └── messengerCard.vue │ ├── container.vue │ ├── globalMenu.vue │ ├── boxWithTitle.vue │ ├── imageContainer.vue │ ├── iframe.vue │ ├── facebookMessage.vue │ ├── topMenu.vue │ ├── startingStep.vue │ ├── customEdge.vue │ └── messageEditor.vue ├── stores │ └── main.js └── App.vue ├── .vscode └── extensions.json ├── public ├── favicon.ico └── screenshoot.png ├── vite.config.js ├── .gitignore ├── index.html ├── package.json └── README.md /src/assets/initial-elements.js: -------------------------------------------------------------------------------- 1 | export const initialElements = [] 2 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["Vue.volar"] 3 | } 4 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MJaonary/vueflow-facebook-messenger/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MJaonary/vueflow-facebook-messenger/HEAD/src/assets/logo.png -------------------------------------------------------------------------------- /public/screenshoot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MJaonary/vueflow-facebook-messenger/HEAD/public/screenshoot.png -------------------------------------------------------------------------------- /src/utils/radomId.js: -------------------------------------------------------------------------------- 1 | export default function() { 2 | return ( 3 | Math.random().toString(36).substring(2, 15) + 4 | Math.random().toString(36).substring(2, 15) 5 | ) 6 | } 7 | -------------------------------------------------------------------------------- /src/assets/svg/PlayIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/utils/getDateasString.js: -------------------------------------------------------------------------------- 1 | export default function () { 2 | let date = new Date(); 3 | return [ 4 | date.getDate(), 5 | date.getMonth() + 1, 6 | date.getFullYear(), 7 | date.getHours(), 8 | date.getMinutes(), 9 | date.getSeconds(), 10 | ].join("-"); 11 | }; 12 | -------------------------------------------------------------------------------- /vite.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import vue from '@vitejs/plugin-vue' 3 | 4 | // A Simple way to import SVG into the template with vite 5 | import svgLoader from "vite-svg-loader"; 6 | 7 | // https://vitejs.dev/config/ 8 | export default defineConfig({ 9 | plugins: [vue(), svgLoader()], 10 | }) 11 | -------------------------------------------------------------------------------- /src/assets/svg/FileEarMark.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/svg/CardIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main.js: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue' 2 | import App from './App.vue' 3 | 4 | import { createPinia } from 'pinia' 5 | 6 | import 'bootstrap/dist/js/bootstrap.bundle'; 7 | import 'bootstrap/dist/css/bootstrap.min.css'; 8 | 9 | const pinia = createPinia() 10 | const app = createApp(App) 11 | 12 | app.use(pinia) 13 | app.mount('#app') 14 | -------------------------------------------------------------------------------- /src/assets/svg/CardImage.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/svg/Arrow90Down.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/svg/DashSquare.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | package-lock.json 3 | logs 4 | *.log 5 | npm-debug.log* 6 | yarn-debug.log* 7 | yarn-error.log* 8 | pnpm-debug.log* 9 | lerna-debug.log* 10 | 11 | node_modules 12 | dist 13 | dist-ssr 14 | *.local 15 | 16 | # Editor directories and files 17 | .vscode 18 | !.vscode/extensions.json 19 | .idea 20 | .DS_Store 21 | *.suo 22 | *.ntvs* 23 | *.njsproj 24 | *.sln 25 | *.sw? 26 | -------------------------------------------------------------------------------- /src/assets/svg/NextAudio.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/svg/UserInput.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/svg/check2-all.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/svg/Box.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/svg/VideoIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/svg/copyIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/svg/BiGoogle.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/utils/applyDrag.js: -------------------------------------------------------------------------------- 1 | const applyDrag = (arr, dragResult) => { 2 | const { removedIndex, addedIndex, payload } = dragResult; 3 | if (removedIndex === null && addedIndex === null) return arr; 4 | 5 | const result = [...arr]; 6 | let itemToAdd = payload; 7 | 8 | if (removedIndex !== null) { 9 | itemToAdd = result.splice(removedIndex, 1)[0]; 10 | } 11 | 12 | if (addedIndex !== null) { 13 | result.splice(addedIndex, 0, itemToAdd); 14 | } 15 | 16 | return result; 17 | }; 18 | 19 | export default applyDrag; 20 | -------------------------------------------------------------------------------- /src/assets/svg/GalleryIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/svg/CardText.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 | 7 | 8 | 9 | 10 |