web: refactor listview
Co-authored-by: wollenberg.niklas@gmail.com <wollenberg.niklas@gmail.com>
This commit is contained in:
parent
431a510a5d
commit
6cb16d4fa3
10 changed files with 403 additions and 47 deletions
|
@ -1 +1 @@
|
||||||
{}
|
{"dependencies":{"@vueuse/core":"^10.11.0"}}
|
||||||
|
|
250
pnpm-lock.yaml
250
pnpm-lock.yaml
|
@ -6,4 +6,252 @@ settings:
|
||||||
|
|
||||||
importers:
|
importers:
|
||||||
|
|
||||||
.: {}
|
.:
|
||||||
|
dependencies:
|
||||||
|
'@vueuse/core':
|
||||||
|
specifier: ^10.11.0
|
||||||
|
version: 10.11.0(vue@3.4.31)
|
||||||
|
|
||||||
|
packages:
|
||||||
|
|
||||||
|
'@babel/helper-string-parser@7.24.7':
|
||||||
|
resolution: {integrity: sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==}
|
||||||
|
engines: {node: '>=6.9.0'}
|
||||||
|
|
||||||
|
'@babel/helper-validator-identifier@7.24.7':
|
||||||
|
resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==}
|
||||||
|
engines: {node: '>=6.9.0'}
|
||||||
|
|
||||||
|
'@babel/parser@7.24.7':
|
||||||
|
resolution: {integrity: sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==}
|
||||||
|
engines: {node: '>=6.0.0'}
|
||||||
|
hasBin: true
|
||||||
|
|
||||||
|
'@babel/types@7.24.7':
|
||||||
|
resolution: {integrity: sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==}
|
||||||
|
engines: {node: '>=6.9.0'}
|
||||||
|
|
||||||
|
'@jridgewell/sourcemap-codec@1.4.15':
|
||||||
|
resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
|
||||||
|
|
||||||
|
'@types/web-bluetooth@0.0.20':
|
||||||
|
resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==}
|
||||||
|
|
||||||
|
'@vue/compiler-core@3.4.31':
|
||||||
|
resolution: {integrity: sha512-skOiodXWTV3DxfDhB4rOf3OGalpITLlgCeOwb+Y9GJpfQ8ErigdBUHomBzvG78JoVE8MJoQsb+qhZiHfKeNeEg==}
|
||||||
|
|
||||||
|
'@vue/compiler-dom@3.4.31':
|
||||||
|
resolution: {integrity: sha512-wK424WMXsG1IGMyDGyLqB+TbmEBFM78hIsOJ9QwUVLGrcSk0ak6zYty7Pj8ftm7nEtdU/DGQxAXp0/lM/2cEpQ==}
|
||||||
|
|
||||||
|
'@vue/compiler-sfc@3.4.31':
|
||||||
|
resolution: {integrity: sha512-einJxqEw8IIJxzmnxmJBuK2usI+lJonl53foq+9etB2HAzlPjAS/wa7r0uUpXw5ByX3/0uswVSrjNb17vJm1kQ==}
|
||||||
|
|
||||||
|
'@vue/compiler-ssr@3.4.31':
|
||||||
|
resolution: {integrity: sha512-RtefmITAje3fJ8FSg1gwgDhdKhZVntIVbwupdyZDSifZTRMiWxWehAOTCc8/KZDnBOcYQ4/9VWxsTbd3wT0hAA==}
|
||||||
|
|
||||||
|
'@vue/reactivity@3.4.31':
|
||||||
|
resolution: {integrity: sha512-VGkTani8SOoVkZNds1PfJ/T1SlAIOf8E58PGAhIOUDYPC4GAmFA2u/E14TDAFcf3vVDKunc4QqCe/SHr8xC65Q==}
|
||||||
|
|
||||||
|
'@vue/runtime-core@3.4.31':
|
||||||
|
resolution: {integrity: sha512-LDkztxeUPazxG/p8c5JDDKPfkCDBkkiNLVNf7XZIUnJ+66GVGkP+TIh34+8LtPisZ+HMWl2zqhIw0xN5MwU1cw==}
|
||||||
|
|
||||||
|
'@vue/runtime-dom@3.4.31':
|
||||||
|
resolution: {integrity: sha512-2Auws3mB7+lHhTFCg8E9ZWopA6Q6L455EcU7bzcQ4x6Dn4cCPuqj6S2oBZgN2a8vJRS/LSYYxwFFq2Hlx3Fsaw==}
|
||||||
|
|
||||||
|
'@vue/server-renderer@3.4.31':
|
||||||
|
resolution: {integrity: sha512-D5BLbdvrlR9PE3by9GaUp1gQXlCNadIZytMIb8H2h3FMWJd4oUfkUTEH2wAr3qxoRz25uxbTcbqd3WKlm9EHQA==}
|
||||||
|
peerDependencies:
|
||||||
|
vue: 3.4.31
|
||||||
|
|
||||||
|
'@vue/shared@3.4.31':
|
||||||
|
resolution: {integrity: sha512-Yp3wtJk//8cO4NItOPpi3QkLExAr/aLBGZMmTtW9WpdwBCJpRM6zj9WgWktXAl8IDIozwNMByT45JP3tO3ACWA==}
|
||||||
|
|
||||||
|
'@vueuse/core@10.11.0':
|
||||||
|
resolution: {integrity: sha512-x3sD4Mkm7PJ+pcq3HX8PLPBadXCAlSDR/waK87dz0gQE+qJnaaFhc/dZVfJz+IUYzTMVGum2QlR7ImiJQN4s6g==}
|
||||||
|
|
||||||
|
'@vueuse/metadata@10.11.0':
|
||||||
|
resolution: {integrity: sha512-kQX7l6l8dVWNqlqyN3ePW3KmjCQO3ZMgXuBMddIu83CmucrsBfXlH+JoviYyRBws/yLTQO8g3Pbw+bdIoVm4oQ==}
|
||||||
|
|
||||||
|
'@vueuse/shared@10.11.0':
|
||||||
|
resolution: {integrity: sha512-fyNoIXEq3PfX1L3NkNhtVQUSRtqYwJtJg+Bp9rIzculIZWHTkKSysujrOk2J+NrRulLTQH9+3gGSfYLWSEWU1A==}
|
||||||
|
|
||||||
|
csstype@3.1.3:
|
||||||
|
resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
|
||||||
|
|
||||||
|
entities@4.5.0:
|
||||||
|
resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
|
||||||
|
engines: {node: '>=0.12'}
|
||||||
|
|
||||||
|
estree-walker@2.0.2:
|
||||||
|
resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
|
||||||
|
|
||||||
|
magic-string@0.30.10:
|
||||||
|
resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==}
|
||||||
|
|
||||||
|
nanoid@3.3.7:
|
||||||
|
resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
|
||||||
|
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
|
||||||
|
hasBin: true
|
||||||
|
|
||||||
|
picocolors@1.0.1:
|
||||||
|
resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==}
|
||||||
|
|
||||||
|
postcss@8.4.39:
|
||||||
|
resolution: {integrity: sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==}
|
||||||
|
engines: {node: ^10 || ^12 || >=14}
|
||||||
|
|
||||||
|
source-map-js@1.2.0:
|
||||||
|
resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==}
|
||||||
|
engines: {node: '>=0.10.0'}
|
||||||
|
|
||||||
|
to-fast-properties@2.0.0:
|
||||||
|
resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
|
||||||
|
engines: {node: '>=4'}
|
||||||
|
|
||||||
|
vue-demi@0.14.8:
|
||||||
|
resolution: {integrity: sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
hasBin: true
|
||||||
|
peerDependencies:
|
||||||
|
'@vue/composition-api': ^1.0.0-rc.1
|
||||||
|
vue: ^3.0.0-0 || ^2.6.0
|
||||||
|
peerDependenciesMeta:
|
||||||
|
'@vue/composition-api':
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
vue@3.4.31:
|
||||||
|
resolution: {integrity: sha512-njqRrOy7W3YLAlVqSKpBebtZpDVg21FPoaq1I7f/+qqBThK9ChAIjkRWgeP6Eat+8C+iia4P3OYqpATP21BCoQ==}
|
||||||
|
peerDependencies:
|
||||||
|
typescript: '*'
|
||||||
|
peerDependenciesMeta:
|
||||||
|
typescript:
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
snapshots:
|
||||||
|
|
||||||
|
'@babel/helper-string-parser@7.24.7': {}
|
||||||
|
|
||||||
|
'@babel/helper-validator-identifier@7.24.7': {}
|
||||||
|
|
||||||
|
'@babel/parser@7.24.7':
|
||||||
|
dependencies:
|
||||||
|
'@babel/types': 7.24.7
|
||||||
|
|
||||||
|
'@babel/types@7.24.7':
|
||||||
|
dependencies:
|
||||||
|
'@babel/helper-string-parser': 7.24.7
|
||||||
|
'@babel/helper-validator-identifier': 7.24.7
|
||||||
|
to-fast-properties: 2.0.0
|
||||||
|
|
||||||
|
'@jridgewell/sourcemap-codec@1.4.15': {}
|
||||||
|
|
||||||
|
'@types/web-bluetooth@0.0.20': {}
|
||||||
|
|
||||||
|
'@vue/compiler-core@3.4.31':
|
||||||
|
dependencies:
|
||||||
|
'@babel/parser': 7.24.7
|
||||||
|
'@vue/shared': 3.4.31
|
||||||
|
entities: 4.5.0
|
||||||
|
estree-walker: 2.0.2
|
||||||
|
source-map-js: 1.2.0
|
||||||
|
|
||||||
|
'@vue/compiler-dom@3.4.31':
|
||||||
|
dependencies:
|
||||||
|
'@vue/compiler-core': 3.4.31
|
||||||
|
'@vue/shared': 3.4.31
|
||||||
|
|
||||||
|
'@vue/compiler-sfc@3.4.31':
|
||||||
|
dependencies:
|
||||||
|
'@babel/parser': 7.24.7
|
||||||
|
'@vue/compiler-core': 3.4.31
|
||||||
|
'@vue/compiler-dom': 3.4.31
|
||||||
|
'@vue/compiler-ssr': 3.4.31
|
||||||
|
'@vue/shared': 3.4.31
|
||||||
|
estree-walker: 2.0.2
|
||||||
|
magic-string: 0.30.10
|
||||||
|
postcss: 8.4.39
|
||||||
|
source-map-js: 1.2.0
|
||||||
|
|
||||||
|
'@vue/compiler-ssr@3.4.31':
|
||||||
|
dependencies:
|
||||||
|
'@vue/compiler-dom': 3.4.31
|
||||||
|
'@vue/shared': 3.4.31
|
||||||
|
|
||||||
|
'@vue/reactivity@3.4.31':
|
||||||
|
dependencies:
|
||||||
|
'@vue/shared': 3.4.31
|
||||||
|
|
||||||
|
'@vue/runtime-core@3.4.31':
|
||||||
|
dependencies:
|
||||||
|
'@vue/reactivity': 3.4.31
|
||||||
|
'@vue/shared': 3.4.31
|
||||||
|
|
||||||
|
'@vue/runtime-dom@3.4.31':
|
||||||
|
dependencies:
|
||||||
|
'@vue/reactivity': 3.4.31
|
||||||
|
'@vue/runtime-core': 3.4.31
|
||||||
|
'@vue/shared': 3.4.31
|
||||||
|
csstype: 3.1.3
|
||||||
|
|
||||||
|
'@vue/server-renderer@3.4.31(vue@3.4.31)':
|
||||||
|
dependencies:
|
||||||
|
'@vue/compiler-ssr': 3.4.31
|
||||||
|
'@vue/shared': 3.4.31
|
||||||
|
vue: 3.4.31
|
||||||
|
|
||||||
|
'@vue/shared@3.4.31': {}
|
||||||
|
|
||||||
|
'@vueuse/core@10.11.0(vue@3.4.31)':
|
||||||
|
dependencies:
|
||||||
|
'@types/web-bluetooth': 0.0.20
|
||||||
|
'@vueuse/metadata': 10.11.0
|
||||||
|
'@vueuse/shared': 10.11.0(vue@3.4.31)
|
||||||
|
vue-demi: 0.14.8(vue@3.4.31)
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- '@vue/composition-api'
|
||||||
|
- vue
|
||||||
|
|
||||||
|
'@vueuse/metadata@10.11.0': {}
|
||||||
|
|
||||||
|
'@vueuse/shared@10.11.0(vue@3.4.31)':
|
||||||
|
dependencies:
|
||||||
|
vue-demi: 0.14.8(vue@3.4.31)
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- '@vue/composition-api'
|
||||||
|
- vue
|
||||||
|
|
||||||
|
csstype@3.1.3: {}
|
||||||
|
|
||||||
|
entities@4.5.0: {}
|
||||||
|
|
||||||
|
estree-walker@2.0.2: {}
|
||||||
|
|
||||||
|
magic-string@0.30.10:
|
||||||
|
dependencies:
|
||||||
|
'@jridgewell/sourcemap-codec': 1.4.15
|
||||||
|
|
||||||
|
nanoid@3.3.7: {}
|
||||||
|
|
||||||
|
picocolors@1.0.1: {}
|
||||||
|
|
||||||
|
postcss@8.4.39:
|
||||||
|
dependencies:
|
||||||
|
nanoid: 3.3.7
|
||||||
|
picocolors: 1.0.1
|
||||||
|
source-map-js: 1.2.0
|
||||||
|
|
||||||
|
source-map-js@1.2.0: {}
|
||||||
|
|
||||||
|
to-fast-properties@2.0.0: {}
|
||||||
|
|
||||||
|
vue-demi@0.14.8(vue@3.4.31):
|
||||||
|
dependencies:
|
||||||
|
vue: 3.4.31
|
||||||
|
|
||||||
|
vue@3.4.31:
|
||||||
|
dependencies:
|
||||||
|
'@vue/compiler-dom': 3.4.31
|
||||||
|
'@vue/compiler-sfc': 3.4.31
|
||||||
|
'@vue/runtime-dom': 3.4.31
|
||||||
|
'@vue/server-renderer': 3.4.31(vue@3.4.31)
|
||||||
|
'@vue/shared': 3.4.31
|
||||||
|
|
1
web/components.d.ts
vendored
1
web/components.d.ts
vendored
|
@ -8,6 +8,7 @@ export {}
|
||||||
declare module 'vue' {
|
declare module 'vue' {
|
||||||
export interface GlobalComponents {
|
export interface GlobalComponents {
|
||||||
CategoryContainer: typeof import('./src/components/CategoryContainer.vue')['default']
|
CategoryContainer: typeof import('./src/components/CategoryContainer.vue')['default']
|
||||||
|
Clipboard: typeof import('./src/components/Clipboard.vue')['default']
|
||||||
HeaderBar: typeof import('./src/components/HeaderBar.vue')['default']
|
HeaderBar: typeof import('./src/components/HeaderBar.vue')['default']
|
||||||
ListViewElement: typeof import('./src/components/ListViewElement.vue')['default']
|
ListViewElement: typeof import('./src/components/ListViewElement.vue')['default']
|
||||||
LoginPage: typeof import('./src/components/loginPage.vue')['default']
|
LoginPage: typeof import('./src/components/loginPage.vue')['default']
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@mdi/font": "6.2.95",
|
"@mdi/font": "6.2.95",
|
||||||
|
"@vueuse/core": "^10.11.0",
|
||||||
"axios": "^1.7.2",
|
"axios": "^1.7.2",
|
||||||
"lucide-vue-next": "^0.402.0",
|
"lucide-vue-next": "^0.402.0",
|
||||||
"roboto-fontface": "*",
|
"roboto-fontface": "*",
|
||||||
|
|
|
@ -11,6 +11,9 @@ importers:
|
||||||
'@mdi/font':
|
'@mdi/font':
|
||||||
specifier: 6.2.95
|
specifier: 6.2.95
|
||||||
version: 6.2.95
|
version: 6.2.95
|
||||||
|
'@vueuse/core':
|
||||||
|
specifier: ^10.11.0
|
||||||
|
version: 10.11.0(vue@3.4.31(typescript@5.5.3))
|
||||||
axios:
|
axios:
|
||||||
specifier: ^1.7.2
|
specifier: ^1.7.2
|
||||||
version: 1.7.2
|
version: 1.7.2
|
||||||
|
@ -328,6 +331,9 @@ packages:
|
||||||
'@types/node@20.14.9':
|
'@types/node@20.14.9':
|
||||||
resolution: {integrity: sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg==}
|
resolution: {integrity: sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg==}
|
||||||
|
|
||||||
|
'@types/web-bluetooth@0.0.20':
|
||||||
|
resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==}
|
||||||
|
|
||||||
'@vitejs/plugin-vue@5.0.5':
|
'@vitejs/plugin-vue@5.0.5':
|
||||||
resolution: {integrity: sha512-LOjm7XeIimLBZyzinBQ6OSm3UBCNVCpLkxGC0oWmm2YPzVZoxMsdvNVimLTBzpAnR9hl/yn1SHGuRfe6/Td9rQ==}
|
resolution: {integrity: sha512-LOjm7XeIimLBZyzinBQ6OSm3UBCNVCpLkxGC0oWmm2YPzVZoxMsdvNVimLTBzpAnR9hl/yn1SHGuRfe6/Td9rQ==}
|
||||||
engines: {node: ^18.0.0 || >=20.0.0}
|
engines: {node: ^18.0.0 || >=20.0.0}
|
||||||
|
@ -387,6 +393,15 @@ packages:
|
||||||
vue: ^3.0.0
|
vue: ^3.0.0
|
||||||
vuetify: ^3.0.0
|
vuetify: ^3.0.0
|
||||||
|
|
||||||
|
'@vueuse/core@10.11.0':
|
||||||
|
resolution: {integrity: sha512-x3sD4Mkm7PJ+pcq3HX8PLPBadXCAlSDR/waK87dz0gQE+qJnaaFhc/dZVfJz+IUYzTMVGum2QlR7ImiJQN4s6g==}
|
||||||
|
|
||||||
|
'@vueuse/metadata@10.11.0':
|
||||||
|
resolution: {integrity: sha512-kQX7l6l8dVWNqlqyN3ePW3KmjCQO3ZMgXuBMddIu83CmucrsBfXlH+JoviYyRBws/yLTQO8g3Pbw+bdIoVm4oQ==}
|
||||||
|
|
||||||
|
'@vueuse/shared@10.11.0':
|
||||||
|
resolution: {integrity: sha512-fyNoIXEq3PfX1L3NkNhtVQUSRtqYwJtJg+Bp9rIzculIZWHTkKSysujrOk2J+NrRulLTQH9+3gGSfYLWSEWU1A==}
|
||||||
|
|
||||||
acorn@8.12.1:
|
acorn@8.12.1:
|
||||||
resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==}
|
resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==}
|
||||||
engines: {node: '>=0.4.0'}
|
engines: {node: '>=0.4.0'}
|
||||||
|
@ -721,6 +736,17 @@ packages:
|
||||||
vscode-uri@3.0.8:
|
vscode-uri@3.0.8:
|
||||||
resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==}
|
resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==}
|
||||||
|
|
||||||
|
vue-demi@0.14.8:
|
||||||
|
resolution: {integrity: sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
hasBin: true
|
||||||
|
peerDependencies:
|
||||||
|
'@vue/composition-api': ^1.0.0-rc.1
|
||||||
|
vue: ^3.0.0-0 || ^2.6.0
|
||||||
|
peerDependenciesMeta:
|
||||||
|
'@vue/composition-api':
|
||||||
|
optional: true
|
||||||
|
|
||||||
vue-template-compiler@2.7.16:
|
vue-template-compiler@2.7.16:
|
||||||
resolution: {integrity: sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==}
|
resolution: {integrity: sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==}
|
||||||
|
|
||||||
|
@ -929,6 +955,8 @@ snapshots:
|
||||||
dependencies:
|
dependencies:
|
||||||
undici-types: 5.26.5
|
undici-types: 5.26.5
|
||||||
|
|
||||||
|
'@types/web-bluetooth@0.0.20': {}
|
||||||
|
|
||||||
'@vitejs/plugin-vue@5.0.5(vite@5.3.3(@types/node@20.14.9)(sass@1.77.6))(vue@3.4.31(typescript@5.5.3))':
|
'@vitejs/plugin-vue@5.0.5(vite@5.3.3(@types/node@20.14.9)(sass@1.77.6))(vue@3.4.31(typescript@5.5.3))':
|
||||||
dependencies:
|
dependencies:
|
||||||
vite: 5.3.3(@types/node@20.14.9)(sass@1.77.6)
|
vite: 5.3.3(@types/node@20.14.9)(sass@1.77.6)
|
||||||
|
@ -1019,6 +1047,25 @@ snapshots:
|
||||||
vue: 3.4.31(typescript@5.5.3)
|
vue: 3.4.31(typescript@5.5.3)
|
||||||
vuetify: 3.6.11(typescript@5.5.3)(vite-plugin-vuetify@2.0.3)(vue@3.4.31(typescript@5.5.3))
|
vuetify: 3.6.11(typescript@5.5.3)(vite-plugin-vuetify@2.0.3)(vue@3.4.31(typescript@5.5.3))
|
||||||
|
|
||||||
|
'@vueuse/core@10.11.0(vue@3.4.31(typescript@5.5.3))':
|
||||||
|
dependencies:
|
||||||
|
'@types/web-bluetooth': 0.0.20
|
||||||
|
'@vueuse/metadata': 10.11.0
|
||||||
|
'@vueuse/shared': 10.11.0(vue@3.4.31(typescript@5.5.3))
|
||||||
|
vue-demi: 0.14.8(vue@3.4.31(typescript@5.5.3))
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- '@vue/composition-api'
|
||||||
|
- vue
|
||||||
|
|
||||||
|
'@vueuse/metadata@10.11.0': {}
|
||||||
|
|
||||||
|
'@vueuse/shared@10.11.0(vue@3.4.31(typescript@5.5.3))':
|
||||||
|
dependencies:
|
||||||
|
vue-demi: 0.14.8(vue@3.4.31(typescript@5.5.3))
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- '@vue/composition-api'
|
||||||
|
- vue
|
||||||
|
|
||||||
acorn@8.12.1: {}
|
acorn@8.12.1: {}
|
||||||
|
|
||||||
anymatch@3.1.3:
|
anymatch@3.1.3:
|
||||||
|
@ -1337,6 +1384,10 @@ snapshots:
|
||||||
|
|
||||||
vscode-uri@3.0.8: {}
|
vscode-uri@3.0.8: {}
|
||||||
|
|
||||||
|
vue-demi@0.14.8(vue@3.4.31(typescript@5.5.3)):
|
||||||
|
dependencies:
|
||||||
|
vue: 3.4.31(typescript@5.5.3)
|
||||||
|
|
||||||
vue-template-compiler@2.7.16:
|
vue-template-compiler@2.7.16:
|
||||||
dependencies:
|
dependencies:
|
||||||
de-indent: 1.0.2
|
de-indent: 1.0.2
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
<li>
|
<li>
|
||||||
<CategoryContainer licenseGroupName="Jetbrains Ultimate"/>
|
<CategoryContainer licenseGroupName="Jetbrains Ultimate"/>
|
||||||
<CategoryContainer licenseGroupName="Microsoft"/>
|
<CategoryContainer licenseGroupName="Microsoft"/>
|
||||||
|
<CategoryContainer licenseGroupName="Willy Wonker Online Movie"/>
|
||||||
</li>
|
</li>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -30,5 +31,9 @@ import { store } from './store';
|
||||||
li {
|
li {
|
||||||
list-style-type: none;
|
list-style-type: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
html,body,main {
|
||||||
|
background-color: #E3E3E3
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|
|
@ -6,9 +6,17 @@
|
||||||
licenseKey="321z8321789"
|
licenseKey="321z8321789"
|
||||||
startDate="12.12.2020"
|
startDate="12.12.2020"
|
||||||
endDate="13.12.2021"
|
endDate="13.12.2021"
|
||||||
:amount=1
|
:amount=undefined
|
||||||
notes="No notes"
|
notes="No notes"
|
||||||
/>
|
/>
|
||||||
|
<ListViewElement
|
||||||
|
licenseName="Mockup 2"
|
||||||
|
licenseKey="XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX"
|
||||||
|
startDate=""
|
||||||
|
endDate=""
|
||||||
|
:amount=1
|
||||||
|
notes="No notes"
|
||||||
|
/>
|
||||||
<!-- <ListViewElement
|
<!-- <ListViewElement
|
||||||
licenseName="Jetbrains Ultimate 2024.2.1"
|
licenseName="Jetbrains Ultimate 2024.2.1"
|
||||||
key=""
|
key=""
|
||||||
|
|
20
web/src/components/Clipboard.vue
Normal file
20
web/src/components/Clipboard.vue
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { useClipboard } from '@vueuse/core'
|
||||||
|
|
||||||
|
const source = ref('Hello')
|
||||||
|
const { text, copy, copied, isSupported } = useClipboard({ source })
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div v-if="isSupported">
|
||||||
|
<button @click="copy(source)">
|
||||||
|
<!-- by default, `copied` will be reset in 1.5s -->
|
||||||
|
<span v-if="!copied">Copy</span>
|
||||||
|
<span v-else>Copied!</span>
|
||||||
|
</button>
|
||||||
|
<p>Current copied: <code>{{ text || 'none' }}</code></p>
|
||||||
|
</div>
|
||||||
|
<p v-else>
|
||||||
|
Your browser does not support Clipboard API
|
||||||
|
</p>
|
||||||
|
</template>
|
|
@ -6,20 +6,21 @@
|
||||||
prominent
|
prominent
|
||||||
>
|
>
|
||||||
<img src="../assets/turbologo.svg" alt="logo" class="logo" width="75" />
|
<img src="../assets/turbologo.svg" alt="logo" class="logo" width="75" />
|
||||||
|
|
||||||
<v-spacer></v-spacer>
|
<v-spacer></v-spacer>
|
||||||
<!-- Create, Delete, Edit -->
|
<!-- Create, Delete, Edit -->
|
||||||
<div>
|
<div>
|
||||||
|
<v-btn icon class="mr-3">
|
||||||
|
<Plus />
|
||||||
|
</v-btn>
|
||||||
|
<v-btn icon class="mr-3">
|
||||||
|
<Pencil />
|
||||||
|
</v-btn>
|
||||||
<v-btn icon class="mr-3">
|
<v-btn icon class="mr-3">
|
||||||
<Plus />
|
<Trash2 />
|
||||||
</v-btn>
|
|
||||||
<v-btn icon class="mr-3">
|
|
||||||
<Trash2 />
|
|
||||||
</v-btn>
|
|
||||||
<v-btn icon class="mr-3">
|
|
||||||
<Pencil />
|
|
||||||
</v-btn>
|
</v-btn>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- Search -->
|
||||||
<v-text-field
|
<v-text-field
|
||||||
class="compact-form mr-2"
|
class="compact-form mr-2"
|
||||||
label="Search"
|
label="Search"
|
||||||
|
@ -30,7 +31,9 @@
|
||||||
single-line
|
single-line
|
||||||
clearable
|
clearable
|
||||||
rounded="pill"
|
rounded="pill"
|
||||||
></v-text-field>
|
></v-text-field>
|
||||||
|
|
||||||
|
<!-- Logout -->
|
||||||
<v-btn icon variant="outlined" @click="handlelogout">
|
<v-btn icon variant="outlined" @click="handlelogout">
|
||||||
<LogOut />
|
<LogOut />
|
||||||
</v-btn>
|
</v-btn>
|
||||||
|
@ -40,9 +43,9 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { LogOut } from 'lucide-vue-next';
|
|
||||||
import { store } from '@/store';
|
import { store } from '@/store';
|
||||||
import { Plus } from 'lucide-vue-next';
|
import { Plus } from 'lucide-vue-next';
|
||||||
|
import { LogOut } from 'lucide-vue-next';
|
||||||
import { Trash2 } from 'lucide-vue-next';
|
import { Trash2 } from 'lucide-vue-next';
|
||||||
import { Pencil } from 'lucide-vue-next';
|
import { Pencil } from 'lucide-vue-next';
|
||||||
|
|
||||||
|
|
|
@ -3,36 +3,59 @@
|
||||||
elevation="4"
|
elevation="4"
|
||||||
width="93vw"
|
width="93vw"
|
||||||
rounded="lg"
|
rounded="lg"
|
||||||
|
class="mt-3"
|
||||||
>
|
>
|
||||||
<div class="values ml-2 py-3">
|
<v-expansion-panels>
|
||||||
<div class="mr-3">
|
<v-expansion-panel>
|
||||||
{{ props.licenseName }}
|
<v-expansion-panel-title>
|
||||||
</div>
|
<div class="mr-3">
|
||||||
<div class="mr-3">
|
{{ props.licenseName }}
|
||||||
<span style="display: flex;">
|
</div>
|
||||||
<KeyRound class="transform mr-1"/>
|
|
||||||
{{ props.licenseKey }}
|
<div
|
||||||
</span>
|
class="mr-3 d-flex align-self-center" style="align-items:center">
|
||||||
</div>
|
<KeyRound class="mr-1"/>
|
||||||
<div class="mr-3">
|
{{ props.licenseKey }}
|
||||||
<span style="display: flex;">
|
</div>
|
||||||
<Check class="mr-1"/>
|
|
||||||
{{ props.startDate }}
|
<div class="mr-3 d-flex align-self-center" style="align-items:center">
|
||||||
</span>
|
<Check class="mr-1"/>
|
||||||
</div>
|
<span v-if="props.startDate == null || props.startDate == undefined || props.startDate.length == 0">
|
||||||
<div class="mr-3">
|
Verfügbar
|
||||||
<span style="display: flex;">
|
</span>
|
||||||
<Skull class="mr-1"/>
|
<span v-else>
|
||||||
{{ props.endDate }}
|
{{ props.startDate }}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="mr-3">
|
|
||||||
<span style="display: flex;">
|
<div class="mr-3 d-flex align-self-center" style="align-items:center">
|
||||||
<img src="../assets/doublekey.svg" alt="logo" class="logo mr-1" width="24" />
|
<Skull class="mr-1"/>
|
||||||
{{ props.amount }}
|
<span v-if="props.endDate == null || props.endDate == undefined || props.endDate.length == 0">
|
||||||
</span>
|
Ewig Verfügbar
|
||||||
</div>
|
</span>
|
||||||
</div>
|
<span v-else>
|
||||||
|
{{ props.endDate }}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="mr-3">
|
||||||
|
<span style="display: flex;" >
|
||||||
|
<img src="../assets/doublekey.svg" alt="logo" class="logo mr-1" width="24" />
|
||||||
|
<span v-if="props.amount == null || props.amount == undefined">
|
||||||
|
<Infinity />
|
||||||
|
</span>
|
||||||
|
<span v-else>
|
||||||
|
{{ props.amount }}
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</v-expansion-panel-title>
|
||||||
|
<v-expansion-panel-text>
|
||||||
|
Notes: {{ props.notes }}
|
||||||
|
</v-expansion-panel-text>
|
||||||
|
</v-expansion-panel>
|
||||||
|
</v-expansion-panels>
|
||||||
</v-sheet>
|
</v-sheet>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
|
@ -41,6 +64,7 @@
|
||||||
import { KeyRound } from 'lucide-vue-next';
|
import { KeyRound } from 'lucide-vue-next';
|
||||||
import { Check } from 'lucide-vue-next';
|
import { Check } from 'lucide-vue-next';
|
||||||
import { Skull } from 'lucide-vue-next';
|
import { Skull } from 'lucide-vue-next';
|
||||||
|
import { Infinity } from 'lucide-vue-next';
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
licenseName: String,
|
licenseName: String,
|
||||||
|
@ -59,9 +83,4 @@
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
transform {
|
|
||||||
transform: scale(0.85);
|
|
||||||
transform-origin: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
Loading…
Reference in a new issue