From d44c140247eda84a47991a92c29fa0e7271b63b0 Mon Sep 17 00:00:00 2001 From: Thomas Peterson Date: Mon, 16 Jun 2025 10:44:05 +0200 Subject: [PATCH] FormBuilder --- .../Migrations/Version20250613181223.php | 31 + .../PSC/FormBuilder/FormBuilderTS/.gitignore | 24 + .../FormBuilderTS/.vscode/extensions.json | 3 + .../PSC/FormBuilder/FormBuilderTS/README.md | 5 + .../PSC/FormBuilder/FormBuilderTS/bun.lock | 601 ++++++++++++++++++ .../FormBuilder/FormBuilderTS/components.json | 21 + .../PSC/FormBuilder/FormBuilderTS/index.html | 13 + .../FormBuilder/FormBuilderTS/package.json | 35 + .../FormBuilder/FormBuilderTS/public/vite.svg | 1 + .../PSC/FormBuilder/FormBuilderTS/src/App.vue | 10 + .../FormBuilderTS/src/assets/vue.svg | 1 + .../FormBuilderTS/src/components/Gui.vue | 55 ++ .../src/components/app/debug/Debug.vue | 23 + .../src/components/app/debug/index.ts | 1 + .../components/app/elementborder/Border.vue | 33 + .../app/elementborder/ElementBorder.vue | 28 + .../src/components/app/elementborder/index.ts | 2 + .../app/elementdependency/Dependency.vue | 40 ++ .../elementdependency/ElementDependency.vue | 21 + .../components/app/elementdependency/index.ts | 2 + .../elementproperties/ElementProperties.vue | 19 + .../components/app/elementproperties/index.ts | 1 + .../app/elements/InputElementForm.vue | 25 + .../src/components/app/library/Library.vue | 25 + .../src/components/app/library/index.ts | 1 + .../src/components/app/main/Main.vue | 22 + .../src/components/app/main/index.ts | 1 + .../app/properties/InputElement.vue | 31 + .../app/renderelements/RenderElements.vue | 90 +++ .../components/app/renderelements/index.ts | 1 + .../src/components/ui/button/Button.vue | 27 + .../src/components/ui/button/index.ts | 36 ++ .../src/components/ui/checkbox/Checkbox.vue | 34 + .../src/components/ui/checkbox/index.ts | 1 + .../src/components/ui/dialog/Dialog.vue | 17 + .../src/components/ui/dialog/DialogClose.vue | 14 + .../components/ui/dialog/DialogContent.vue | 46 ++ .../ui/dialog/DialogDescription.vue | 22 + .../src/components/ui/dialog/DialogFooter.vue | 15 + .../src/components/ui/dialog/DialogHeader.vue | 17 + .../components/ui/dialog/DialogOverlay.vue | 20 + .../ui/dialog/DialogScrollContent.vue | 56 ++ .../src/components/ui/dialog/DialogTitle.vue | 22 + .../components/ui/dialog/DialogTrigger.vue | 14 + .../src/components/ui/dialog/index.ts | 10 + .../src/components/ui/input/Input.vue | 33 + .../src/components/ui/input/index.ts | 1 + .../src/components/ui/label/Label.vue | 25 + .../src/components/ui/label/index.ts | 1 + .../ui/resizable/ResizableHandle.vue | 27 + .../ui/resizable/ResizablePanel.vue | 18 + .../ui/resizable/ResizablePanelGroup.vue | 23 + .../src/components/ui/resizable/index.ts | 3 + .../src/components/ui/select/Select.vue | 18 + .../components/ui/select/SelectContent.vue | 52 ++ .../src/components/ui/select/SelectGroup.vue | 14 + .../src/components/ui/select/SelectItem.vue | 42 ++ .../components/ui/select/SelectItemText.vue | 14 + .../src/components/ui/select/SelectLabel.vue | 16 + .../ui/select/SelectScrollDownButton.vue | 25 + .../ui/select/SelectScrollUpButton.vue | 25 + .../components/ui/select/SelectSeparator.vue | 18 + .../components/ui/select/SelectTrigger.vue | 32 + .../src/components/ui/select/SelectValue.vue | 14 + .../src/components/ui/select/index.ts | 11 + .../src/components/ui/textarea/Textarea.vue | 28 + .../src/components/ui/textarea/index.ts | 1 + .../FormBuilderTS/src/lib/parser.ts | 14 + .../FormBuilderTS/src/lib/utils.ts | 6 + .../PSC/FormBuilder/FormBuilderTS/src/main.ts | 10 + .../FormBuilderTS/src/model/BaseElement.ts | 73 +++ .../FormBuilderTS/src/model/Border.ts | 44 ++ .../FormBuilderTS/src/model/Dependency.ts | 39 ++ .../FormBuilderTS/src/model/InputElement.ts | 35 + .../FormBuilderTS/src/stores/Items.ts | 134 ++++ .../FormBuilder/FormBuilderTS/src/style.css | 123 ++++ .../FormBuilderTS/src/vite-env.d.ts | 1 + .../FormBuilderTS/tsconfig.app.json | 21 + .../FormBuilder/FormBuilderTS/tsconfig.json | 13 + .../FormBuilderTS/tsconfig.node.json | 25 + .../FormBuilder/FormBuilderTS/vite.config.ts | 14 + .../plugins/Custom/PSC/FormBuilder/Plugin.php | 24 + .../default/controllers/UserController.php | 20 + 83 files changed, 2554 insertions(+) create mode 100644 src/new/src/PSC/System/UpdateBundle/Migrations/Version20250613181223.php create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/.gitignore create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/.vscode/extensions.json create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/README.md create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/bun.lock create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/components.json create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/index.html create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/package.json create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/public/vite.svg create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/App.vue create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/assets/vue.svg create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/Gui.vue create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/app/debug/Debug.vue create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/app/debug/index.ts create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/app/elementborder/Border.vue create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/app/elementborder/ElementBorder.vue create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/app/elementborder/index.ts create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/app/elementdependency/Dependency.vue create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/app/elementdependency/ElementDependency.vue create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/app/elementdependency/index.ts create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/app/elementproperties/ElementProperties.vue create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/app/elementproperties/index.ts create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/app/elements/InputElementForm.vue create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/app/library/Library.vue create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/app/library/index.ts create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/app/main/Main.vue create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/app/main/index.ts create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/app/properties/InputElement.vue create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/app/renderelements/RenderElements.vue create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/app/renderelements/index.ts create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/ui/button/Button.vue create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/ui/button/index.ts create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/ui/checkbox/Checkbox.vue create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/ui/checkbox/index.ts create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/ui/dialog/Dialog.vue create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/ui/dialog/DialogClose.vue create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/ui/dialog/DialogContent.vue create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/ui/dialog/DialogDescription.vue create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/ui/dialog/DialogFooter.vue create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/ui/dialog/DialogHeader.vue create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/ui/dialog/DialogOverlay.vue create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/ui/dialog/DialogScrollContent.vue create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/ui/dialog/DialogTitle.vue create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/ui/dialog/DialogTrigger.vue create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/ui/dialog/index.ts create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/ui/input/Input.vue create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/ui/input/index.ts create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/ui/label/Label.vue create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/ui/label/index.ts create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/ui/resizable/ResizableHandle.vue create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/ui/resizable/ResizablePanel.vue create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/ui/resizable/ResizablePanelGroup.vue create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/ui/resizable/index.ts create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/ui/select/Select.vue create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/ui/select/SelectContent.vue create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/ui/select/SelectGroup.vue create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/ui/select/SelectItem.vue create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/ui/select/SelectItemText.vue create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/ui/select/SelectLabel.vue create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/ui/select/SelectScrollDownButton.vue create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/ui/select/SelectScrollUpButton.vue create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/ui/select/SelectSeparator.vue create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/ui/select/SelectTrigger.vue create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/ui/select/SelectValue.vue create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/ui/select/index.ts create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/ui/textarea/Textarea.vue create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/ui/textarea/index.ts create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/lib/parser.ts create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/lib/utils.ts create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/main.ts create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/model/BaseElement.ts create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/model/Border.ts create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/model/Dependency.ts create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/model/InputElement.ts create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/stores/Items.ts create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/style.css create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/vite-env.d.ts create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/tsconfig.app.json create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/tsconfig.json create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/tsconfig.node.json create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/vite.config.ts create mode 100644 src/new/var/plugins/Custom/PSC/FormBuilder/Plugin.php diff --git a/src/new/src/PSC/System/UpdateBundle/Migrations/Version20250613181223.php b/src/new/src/PSC/System/UpdateBundle/Migrations/Version20250613181223.php new file mode 100644 index 000000000..7b4f90ec8 --- /dev/null +++ b/src/new/src/PSC/System/UpdateBundle/Migrations/Version20250613181223.php @@ -0,0 +1,31 @@ +entityManager->getConnection()->exec("alter table article modify column a6_xmlpagesfile varchar(255) default null;"); + $this->entityManager->getConnection()->exec("alter table article modify column a6_xmlpagetemplatesfile varchar(255) default null;"); + $this->entityManager->getConnection()->exec("alter table article modify column a6_xmlpageobjectsfile varchar(255) default null;"); + $this->entityManager->getConnection()->exec("alter table article modify column layouterid varchar(255) default null;"); + $this->entityManager->getConnection()->exec("alter table article modify column resale int(1) default null;"); + $this->entityManager->getConnection()->exec("alter table article modify column a6_resale_price float(20,2) default null;"); + $this->entityManager->getConnection()->exec("alter table article modify column render_new_preview_image int(1) default null;"); + $this->entityManager->getConnection()->exec("alter table article modify column render_new_preview_pdf int(1) default null;"); + $this->entityManager->getConnection()->exec("alter table article modify column render_new_preview_gallery int(1) default null;"); + $this->entityManager->getConnection()->exec("alter table article modify column visits int(8) default 0;"); + $this->entityManager->getConnection()->exec("alter table article modify column a6_xmlextendpreviewxslfofile varchar(255) default null;"); + $this->entityManager->getConnection()->exec("alter table article modify column rate int(8) default 0;"); + $this->entityManager->getConnection()->exec("alter table article modify column rate_count int(8) default 0;"); + $this->entityManager->getConnection()->exec("alter table article modify column template_admin int(1) default null;"); + $this->entityManager->getConnection()->exec("alter table article modify column template_system_operator int(1) default null;"); + $this->entityManager->getConnection()->exec("alter table article modify column lager_file_file varchar(255) default null;"); + $this->entityManager->getConnection()->exec("alter table article modify column lager_file_preview varchar(255) default null;"); + $this->entityManager->getConnection()->exec("alter table article modify column upload_weblayouter_status int(4) default null;"); + $this->entityManager->getConnection()->exec("alter table article modify column resale_design int(1) default null;"); + $this->entityManager->getConnection()->exec("alter table article modify column motive_calc mediumtext default null;"); + $this->entityManager->getConnection()->exec("alter table article modify column motive_price float default null;"); + } +} diff --git a/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/.gitignore b/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/.gitignore new file mode 100644 index 000000000..a547bf36d --- /dev/null +++ b/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/.vscode/extensions.json b/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/.vscode/extensions.json new file mode 100644 index 000000000..a7cea0b06 --- /dev/null +++ b/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["Vue.volar"] +} diff --git a/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/README.md b/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/README.md new file mode 100644 index 000000000..33895ab20 --- /dev/null +++ b/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/README.md @@ -0,0 +1,5 @@ +# Vue 3 + TypeScript + Vite + +This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 ` + + diff --git a/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/package.json b/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/package.json new file mode 100644 index 000000000..9da22f987 --- /dev/null +++ b/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/package.json @@ -0,0 +1,35 @@ +{ + "name": "my-vue-app", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vue-tsc -b && vite build", + "preview": "vite preview" + }, + "dependencies": { + "@tailwindcss/vite": "^4.1.10", + "@vueuse/core": "^13.3.0", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "lucide-vue-next": "^0.514.0", + "pinia": "^3.0.3", + "reka-ui": "^2.3.1", + "tailwind-merge": "^3.3.1", + "tailwindcss": "^4.1.10", + "tw-animate-css": "^1.3.4", + "uuid": "^11.1.0", + "vue": "^3.5.13", + "vue-draggable-plus": "^0.6.0" + }, + "devDependencies": { + "@types/node": "^24.0.1", + "@vitejs/plugin-vue": "^5.2.3", + "@vue/tsconfig": "^0.7.0", + "typescript": "~5.8.3", + "vite": "^6.3.5", + "vite-plugin-vue-devtools": "^7.7.6", + "vue-tsc": "^2.2.8" + } +} diff --git a/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/public/vite.svg b/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/public/vite.svg new file mode 100644 index 000000000..e7b8dfb1b --- /dev/null +++ b/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/App.vue b/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/App.vue new file mode 100644 index 000000000..ac5423b62 --- /dev/null +++ b/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/App.vue @@ -0,0 +1,10 @@ + + + + + diff --git a/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/assets/vue.svg b/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/assets/vue.svg new file mode 100644 index 000000000..770e9d333 --- /dev/null +++ b/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/assets/vue.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/Gui.vue b/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/Gui.vue new file mode 100644 index 000000000..4d8fa81ff --- /dev/null +++ b/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/Gui.vue @@ -0,0 +1,55 @@ + + + + + diff --git a/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/app/debug/Debug.vue b/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/app/debug/Debug.vue new file mode 100644 index 000000000..bace62715 --- /dev/null +++ b/src/new/var/plugins/Custom/PSC/FormBuilder/FormBuilderTS/src/components/app/debug/Debug.vue @@ -0,0 +1,23 @@ + + +