From e755a4ec37391cbd358a3194e1438aa22adb78b8 Mon Sep 17 00:00:00 2001 From: Julian Krauser Date: Tue, 22 Jul 2025 07:50:26 +0200 Subject: [PATCH 1/4] enhance: allow longpress and contextmenu copy paste --- package-lock.json | 45 ++++++++++++++++++ package.json | 3 +- src/App.vue | 34 +++++++++++--- src/components/ContextMenu.vue | 3 +- src/components/CopyPasteContextMenu.vue | 61 +++++++++++++++++++++++++ src/components/Modal.vue | 11 ++--- src/stores/context-menu.ts | 5 +- 7 files changed, 144 insertions(+), 18 deletions(-) create mode 100644 src/components/CopyPasteContextMenu.vue diff --git a/package-lock.json b/package-lock.json index 1aedae5..3671099 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,6 +18,7 @@ "@headlessui/vue": "^1.7.23", "@heroicons/vue": "^2.2.0", "@tailwindcss/vite": "^4.1.11", + "@vueuse/core": "^13.5.0", "axios": "^1.10.0", "event-source-polyfill": "^1.0.31", "grapesjs": "^0.22.11", @@ -3967,6 +3968,12 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/web-bluetooth": { + "version": "0.0.21", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.21.tgz", + "integrity": "sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==", + "license": "MIT" + }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "8.36.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.36.0.tgz", @@ -4613,6 +4620,44 @@ } } }, + "node_modules/@vueuse/core": { + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-13.5.0.tgz", + "integrity": "sha512-wV7z0eUpifKmvmN78UBZX8T7lMW53Nrk6JP5+6hbzrB9+cJ3jr//hUlhl9TZO/03bUkMK6gGkQpqOPWoabr72g==", + "license": "MIT", + "dependencies": { + "@types/web-bluetooth": "^0.0.21", + "@vueuse/metadata": "13.5.0", + "@vueuse/shared": "13.5.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/@vueuse/metadata": { + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-13.5.0.tgz", + "integrity": "sha512-euhItU3b0SqXxSy8u1XHxUCdQ8M++bsRs+TYhOLDU/OykS7KvJnyIFfep0XM5WjIFry9uAPlVSjmVHiqeshmkw==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared": { + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-13.5.0.tgz", + "integrity": "sha512-K7GrQIxJ/ANtucxIXbQlUHdB0TPA8c+q5i+zbrjxuhJCnJ9GtBg75sBSnvmLSxHKPg2Yo8w62PWksl9kwH0Q8g==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, "node_modules/acorn": { "version": "8.15.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", diff --git a/package.json b/package.json index 4a81073..6d47398 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "description": "Feuerwehr/Verein Mitgliederverwaltung UI", "type": "module", "scripts": { - "dev": "vite", + "dev": "vite --host", "build": "run-p type-check \"build-only {@}\" --", "preview": "vite preview", "build-only": "vite build", @@ -33,6 +33,7 @@ "@headlessui/vue": "^1.7.23", "@heroicons/vue": "^2.2.0", "@tailwindcss/vite": "^4.1.11", + "@vueuse/core": "^13.5.0", "axios": "^1.10.0", "event-source-polyfill": "^1.0.31", "grapesjs": "^0.22.11", diff --git a/src/App.vue b/src/App.vue index 8ee85e5..07f15ca 100644 --- a/src/App.vue +++ b/src/App.vue @@ -2,11 +2,11 @@ -
-
+ +
-