fix(deps): update dependency vue to v3.3.4 #3490
|
@ -79,7 +79,7 @@
|
|||
"snake-case": "3.0.4",
|
||||
"sortablejs": "1.15.0",
|
||||
"ufo": "1.1.2",
|
||||
"vue": "3.2.47",
|
||||
"vue": "3.3.4",
|
||||
"vue-advanced-cropper": "2.8.8",
|
||||
"vue-flatpickr-component": "11.0.3",
|
||||
"vue-i18n": "9.2.2",
|
||||
|
|
319
pnpm-lock.yaml
319
pnpm-lock.yaml
|
@ -1,4 +1,4 @@
|
|||
lockfileVersion: '6.0'
|
||||
lockfileVersion: '6.1'
|
||||
|
||||
settings:
|
||||
autoInstallPeers: true
|
||||
|
@ -21,28 +21,28 @@ dependencies:
|
|||
version: 6.4.0
|
||||
'@fortawesome/vue-fontawesome':
|
||||
specifier: 3.0.3
|
||||
version: 3.0.3(@fortawesome/fontawesome-svg-core@6.4.0)(vue@3.2.47)
|
||||
version: 3.0.3(@fortawesome/fontawesome-svg-core@6.4.0)(vue@3.3.4)
|
||||
'@github/hotkey':
|
||||
specifier: 2.0.1
|
||||
version: 2.0.1
|
||||
'@infectoone/vue-ganttastic':
|
||||
specifier: 2.1.4
|
||||
version: 2.1.4(dayjs@1.11.8)(vue@3.2.47)
|
||||
version: 2.1.4(dayjs@1.11.8)(vue@3.3.4)
|
||||
'@intlify/unplugin-vue-i18n':
|
||||
specifier: 0.11.0
|
||||
version: 0.11.0(rollup@3.25.1)(vue-i18n@9.2.2)
|
||||
'@kyvg/vue3-notification':
|
||||
specifier: 2.9.1
|
||||
version: 2.9.1(vue@3.2.47)
|
||||
version: 2.9.1(vue@3.3.4)
|
||||
'@sentry/tracing':
|
||||
specifier: 7.56.0
|
||||
version: 7.56.0
|
||||
'@sentry/vue':
|
||||
specifier: 7.56.0
|
||||
version: 7.56.0(vue@3.2.47)
|
||||
version: 7.56.0(vue@3.3.4)
|
||||
'@vueuse/core':
|
||||
specifier: 10.2.0
|
||||
version: 10.2.0(vue@3.2.47)
|
||||
version: 10.2.0(vue@3.3.4)
|
||||
axios:
|
||||
specifier: 1.4.0
|
||||
version: 1.4.0
|
||||
|
@ -81,7 +81,7 @@ dependencies:
|
|||
version: 0.7.31(patch_hash=bfn3sngfuhktmdj7jgl3ejl35y)
|
||||
floating-vue:
|
||||
specifier: 2.0.0-beta.22
|
||||
version: 2.0.0-beta.22(vue@3.2.47)
|
||||
version: 2.0.0-beta.22(vue@3.3.4)
|
||||
highlight.js:
|
||||
specifier: 11.8.0
|
||||
version: 11.8.0
|
||||
|
@ -99,7 +99,7 @@ dependencies:
|
|||
version: 5.1.0
|
||||
pinia:
|
||||
specifier: 2.0.36
|
||||
version: 2.0.36(typescript@5.1.3)(vue@3.2.47)
|
||||
version: 2.0.36(typescript@5.1.3)(vue@3.3.4)
|
||||
register-service-worker:
|
||||
specifier: 1.7.2
|
||||
version: 1.7.2
|
||||
|
@ -113,26 +113,26 @@ dependencies:
|
|||
specifier: 1.1.2
|
||||
version: 1.1.2
|
||||
vue:
|
||||
specifier: 3.2.47
|
||||
version: 3.2.47
|
||||
specifier: 3.3.4
|
||||
version: 3.3.4
|
||||
vue-advanced-cropper:
|
||||
specifier: 2.8.8
|
||||
version: 2.8.8(vue@3.2.47)
|
||||
version: 2.8.8(vue@3.3.4)
|
||||
vue-flatpickr-component:
|
||||
specifier: 11.0.3
|
||||
version: 11.0.3(vue@3.2.47)
|
||||
version: 11.0.3(vue@3.3.4)
|
||||
vue-i18n:
|
||||
specifier: 9.2.2
|
||||
version: 9.2.2(vue@3.2.47)
|
||||
version: 9.2.2(vue@3.3.4)
|
||||
vue-router:
|
||||
specifier: 4.2.2
|
||||
version: 4.2.2(vue@3.2.47)
|
||||
version: 4.2.2(vue@3.3.4)
|
||||
workbox-precaching:
|
||||
specifier: 7.0.0
|
||||
version: 7.0.0
|
||||
zhyswan-vuedraggable:
|
||||
specifier: 4.1.3
|
||||
version: 4.1.3(vue@3.2.47)
|
||||
version: 4.1.3(vue@3.3.4)
|
||||
|
||||
devDependencies:
|
||||
'@4tw/cypress-drag-drop':
|
||||
|
@ -143,7 +143,7 @@ devDependencies:
|
|||
version: 5.0.5
|
||||
'@cypress/vue':
|
||||
specifier: 5.0.5
|
||||
version: 5.0.5(cypress@12.14.0)(vue@3.2.47)
|
||||
version: 5.0.5(cypress@12.14.0)(vue@3.3.4)
|
||||
'@faker-js/faker':
|
||||
specifier: 8.0.2
|
||||
version: 8.0.2
|
||||
|
@ -152,7 +152,7 @@ devDependencies:
|
|||
version: 0.16.1(histoire@0.16.2)
|
||||
'@histoire/plugin-vue':
|
||||
specifier: 0.16.1
|
||||
version: 0.16.1(histoire@0.16.2)(vite@4.3.9)(vue@3.2.47)
|
||||
version: 0.16.1(histoire@0.16.2)(vite@4.3.9)(vue@3.3.4)
|
||||
'@rushstack/eslint-patch':
|
||||
specifier: 1.3.2
|
||||
version: 1.3.2
|
||||
|
@ -197,13 +197,13 @@ devDependencies:
|
|||
version: 4.0.4(terser@5.10.0)(vite@4.3.9)
|
||||
'@vitejs/plugin-vue':
|
||||
specifier: 4.2.3
|
||||
version: 4.2.3(vite@4.3.9)(vue@3.2.47)
|
||||
version: 4.2.3(vite@4.3.9)(vue@3.3.4)
|
||||
'@vue/eslint-config-typescript':
|
||||
specifier: 11.0.3
|
||||
version: 11.0.3(eslint-plugin-vue@9.13.0)(eslint@8.43.0)(typescript@5.1.3)
|
||||
'@vue/test-utils':
|
||||
specifier: 2.3.2
|
||||
version: 2.3.2(vue@3.2.47)
|
||||
version: 2.3.2(vue@3.3.4)
|
||||
'@vue/tsconfig':
|
||||
specifier: 0.4.0
|
||||
version: 0.4.0
|
||||
|
@ -651,13 +651,6 @@ packages:
|
|||
js-tokens: 4.0.0
|
||||
dev: true
|
||||
|
||||
/@babel/parser@7.21.5:
|
||||
resolution: {integrity: sha512-J+IxH2IsxV4HbnTrSWgMAQj0UEo61hDA4Ny8h8PCX0MLXiibqHbqIOVneqdocemSBc22VpBKxt4J6FQzy9HarQ==}
|
||||
engines: {node: '>=6.0.0'}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
'@babel/types': 7.22.4
|
||||
|
||||
/@babel/parser@7.22.4:
|
||||
resolution: {integrity: sha512-VLLsx06XkEYqBtE5YGPwfSGwfrjnyPP5oiGty3S8pQLFDFLaS8VwWSIxkTXpcvr5zeYLE6+MBNl2npl/YnfofA==}
|
||||
engines: {node: '>=6.0.0'}
|
||||
|
@ -2046,7 +2039,7 @@ packages:
|
|||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@cypress/vue@5.0.5(cypress@12.14.0)(vue@3.2.47):
|
||||
/@cypress/vue@5.0.5(cypress@12.14.0)(vue@3.3.4):
|
||||
resolution: {integrity: sha512-gjE0LKixK6XT4lPDFaEc8G6qNzm8YELgmbOiMVDxbVMuTtjYjorWQcIgzQ62uBX90/s7JrldXJ0W23gskoH4Ng==}
|
||||
engines: {node: '>=8'}
|
||||
peerDependencies:
|
||||
|
@ -2058,7 +2051,7 @@ packages:
|
|||
optional: true
|
||||
dependencies:
|
||||
cypress: 12.14.0
|
||||
vue: 3.2.47
|
||||
vue: 3.3.4
|
||||
dev: true
|
||||
|
||||
/@cypress/xvfb@1.2.4(supports-color@8.1.1):
|
||||
|
@ -2548,14 +2541,14 @@ packages:
|
|||
'@fortawesome/fontawesome-common-types': 6.4.0
|
||||
dev: false
|
||||
|
||||
/@fortawesome/vue-fontawesome@3.0.3(@fortawesome/fontawesome-svg-core@6.4.0)(vue@3.2.47):
|
||||
/@fortawesome/vue-fontawesome@3.0.3(@fortawesome/fontawesome-svg-core@6.4.0)(vue@3.3.4):
|
||||
resolution: {integrity: sha512-KCPHi9QemVXGMrfuwf3nNnNo129resAIQWut9QTAMXmXqL2ErABC6ohd2yY5Ipq0CLWNbKHk8TMdTXL/Zf3ZhA==}
|
||||
peerDependencies:
|
||||
'@fortawesome/fontawesome-svg-core': ~1 || ~6
|
||||
vue: '>= 3.0.0 < 4'
|
||||
dependencies:
|
||||
'@fortawesome/fontawesome-svg-core': 6.4.0
|
||||
vue: 3.2.47
|
||||
vue: 3.3.4
|
||||
dev: false
|
||||
|
||||
/@github/hotkey@2.0.1:
|
||||
|
@ -2618,7 +2611,7 @@ packages:
|
|||
- utf-8-validate
|
||||
dev: true
|
||||
|
||||
/@histoire/plugin-vue@0.16.1(histoire@0.16.2)(vite@4.3.9)(vue@3.2.47):
|
||||
/@histoire/plugin-vue@0.16.1(histoire@0.16.2)(vite@4.3.9)(vue@3.3.4):
|
||||
resolution: {integrity: sha512-K7ZZl5tA8PWHjQsWFmFX3xa4HlRs+S8+nxym1Smh4dudQ6XSVwdF+gsPQ+RE4zwf6YQ8HDPsvOobI31dz6F4Tg==}
|
||||
peerDependencies:
|
||||
histoire: ^0.16.1
|
||||
|
@ -2632,7 +2625,7 @@ packages:
|
|||
histoire: 0.16.2(@types/node@18.16.18)(sass@1.63.4)(terser@5.10.0)(vite@4.3.9)
|
||||
launch-editor: 2.6.0
|
||||
pathe: 0.2.0
|
||||
vue: 3.2.47
|
||||
vue: 3.3.4
|
||||
transitivePeerDependencies:
|
||||
- vite
|
||||
dev: true
|
||||
|
@ -2675,15 +2668,15 @@ packages:
|
|||
resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==}
|
||||
dev: true
|
||||
|
||||
/@infectoone/vue-ganttastic@2.1.4(dayjs@1.11.8)(vue@3.2.47):
|
||||
/@infectoone/vue-ganttastic@2.1.4(dayjs@1.11.8)(vue@3.3.4):
|
||||
resolution: {integrity: sha512-rhHA033HIJeXCHG3VDYpBS1O0qZduQovpUvzfkFggn0Hb7KejPjetoHDyP8+B1LQMb62cok8SFgM6roRihSzSg==}
|
||||
peerDependencies:
|
||||
dayjs: ^1.11.5
|
||||
vue: ^3.2.40
|
||||
dependencies:
|
||||
'@vueuse/core': 9.13.0(vue@3.2.47)
|
||||
'@vueuse/core': 9.13.0(vue@3.3.4)
|
||||
dayjs: 1.11.8
|
||||
vue: 3.2.47
|
||||
vue: 3.3.4
|
||||
transitivePeerDependencies:
|
||||
- '@vue/composition-api'
|
||||
dev: false
|
||||
|
@ -2709,7 +2702,7 @@ packages:
|
|||
magic-string: 0.30.0
|
||||
mlly: 1.2.0
|
||||
source-map: 0.6.1
|
||||
vue-i18n: 9.2.2(vue@3.2.47)
|
||||
vue-i18n: 9.2.2(vue@3.3.4)
|
||||
yaml-eslint-parser: 0.3.2
|
||||
dev: false
|
||||
|
||||
|
@ -2783,7 +2776,7 @@ packages:
|
|||
picocolors: 1.0.0
|
||||
source-map: 0.6.1
|
||||
unplugin: 1.1.0
|
||||
vue-i18n: 9.2.2(vue@3.2.47)
|
||||
vue-i18n: 9.2.2(vue@3.3.4)
|
||||
transitivePeerDependencies:
|
||||
- rollup
|
||||
- supports-color
|
||||
|
@ -2834,12 +2827,12 @@ packages:
|
|||
'@jridgewell/sourcemap-codec': 1.4.14
|
||||
dev: true
|
||||
|
||||
/@kyvg/vue3-notification@2.9.1(vue@3.2.47):
|
||||
/@kyvg/vue3-notification@2.9.1(vue@3.3.4):
|
||||
resolution: {integrity: sha512-FsY8g25tQetr3etnarxHtCeNFKssH8sheFu13LyL2JJmOOel437QqKV5n4RBDDDTIo55iKgIVYXeojliXYdEhw==}
|
||||
peerDependencies:
|
||||
vue: ^3.0.0
|
||||
dependencies:
|
||||
vue: 3.2.47
|
||||
vue: 3.3.4
|
||||
dev: false
|
||||
|
||||
/@lezer/common@1.0.2:
|
||||
|
@ -3065,7 +3058,7 @@ packages:
|
|||
tslib: 1.14.1
|
||||
dev: false
|
||||
|
||||
/@sentry/vue@7.56.0(vue@3.2.47):
|
||||
/@sentry/vue@7.56.0(vue@3.3.4):
|
||||
resolution: {integrity: sha512-AgM+S2JcRJ4zmRj2csrBJ+cBESs4j2dwGYpdZnfWKqw6r/TTbtW8Ym7AnyiMh6Nx5wa9o2Tr0H3+QKpySlmTmQ==}
|
||||
engines: {node: '>=8'}
|
||||
peerDependencies:
|
||||
|
@ -3076,7 +3069,7 @@ packages:
|
|||
'@sentry/types': 7.56.0
|
||||
'@sentry/utils': 7.56.0
|
||||
tslib: 1.14.1
|
||||
vue: 3.2.47
|
||||
vue: 3.3.4
|
||||
dev: false
|
||||
|
||||
/@sideway/address@4.1.3:
|
||||
|
@ -3464,7 +3457,7 @@ packages:
|
|||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@vitejs/plugin-vue@4.2.3(vite@4.3.9)(vue@3.2.47):
|
||||
/@vitejs/plugin-vue@4.2.3(vite@4.3.9)(vue@3.3.4):
|
||||
resolution: {integrity: sha512-R6JDUfiZbJA9cMiguQ7jxALsgiprjBeHL5ikpXfJCH62pPHtI+JdJ5xWj6Ev73yXSlYl86+blXn1kZHQ7uElxw==}
|
||||
engines: {node: ^14.18.0 || >=16.0.0}
|
||||
peerDependencies:
|
||||
|
@ -3472,7 +3465,7 @@ packages:
|
|||
vue: ^3.2.25
|
||||
dependencies:
|
||||
vite: 4.3.9(@types/node@18.16.18)(sass@1.63.4)(terser@5.10.0)
|
||||
vue: 3.2.47
|
||||
vue: 3.3.4
|
||||
dev: true
|
||||
|
||||
/@vitest/expect@0.32.2:
|
||||
|
@ -3541,21 +3534,22 @@ packages:
|
|||
source-map: 0.6.1
|
||||
dev: true
|
||||
|
||||
/@vue/compiler-core@3.2.47:
|
||||
resolution: {integrity: sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==}
|
||||
dependencies:
|
||||
'@babel/parser': 7.21.5
|
||||
'@vue/shared': 3.2.47
|
||||
estree-walker: 2.0.2
|
||||
source-map: 0.6.1
|
||||
|
||||
/@vue/compiler-core@3.3.2:
|
||||
resolution: {integrity: sha512-CKZWo1dzsQYTNTft7whzjL0HsrEpMfiK7pjZ2WFE3bC1NA7caUjWioHSK+49y/LK7Bsm4poJZzAMnvZMQ7OTeg==}
|
||||
dependencies:
|
||||
'@babel/parser': 7.21.5
|
||||
'@babel/parser': 7.22.4
|
||||
'@vue/shared': 3.3.2
|
||||
estree-walker: 2.0.2
|
||||
source-map-js: 1.0.2
|
||||
dev: false
|
||||
|
||||
/@vue/compiler-core@3.3.4:
|
||||
resolution: {integrity: sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==}
|
||||
dependencies:
|
||||
'@babel/parser': 7.22.4
|
||||
'@vue/shared': 3.3.4
|
||||
estree-walker: 2.0.2
|
||||
source-map-js: 1.0.2
|
||||
|
||||
/@vue/compiler-dom@3.2.45:
|
||||
resolution: {integrity: sha512-tyYeUEuKqqZO137WrZkpwfPCdiiIeXYCcJ8L4gWz9vqaxzIQRccTSwSWZ/Axx5YR2z+LvpUbmPNXxuBU45lyRw==}
|
||||
|
@ -3564,17 +3558,18 @@ packages:
|
|||
'@vue/shared': 3.2.45
|
||||
dev: true
|
||||
|
||||
/@vue/compiler-dom@3.2.47:
|
||||
resolution: {integrity: sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==}
|
||||
dependencies:
|
||||
'@vue/compiler-core': 3.2.47
|
||||
'@vue/shared': 3.2.47
|
||||
|
||||
/@vue/compiler-dom@3.3.2:
|
||||
resolution: {integrity: sha512-6gS3auANuKXLw0XH6QxkWqyPYPunziS2xb6VRenM3JY7gVfZcJvkCBHkb5RuNY1FCbBO3lkIi0CdXUCW1c7SXw==}
|
||||
dependencies:
|
||||
'@vue/compiler-core': 3.3.2
|
||||
'@vue/shared': 3.3.2
|
||||
dev: false
|
||||
|
||||
/@vue/compiler-dom@3.3.4:
|
||||
resolution: {integrity: sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==}
|
||||
dependencies:
|
||||
'@vue/compiler-core': 3.3.4
|
||||
'@vue/shared': 3.3.4
|
||||
|
||||
/@vue/compiler-sfc@3.2.45:
|
||||
resolution: {integrity: sha512-1jXDuWah1ggsnSAOGsec8cFjT/K6TMZ0sPL3o3d84Ft2AYZi2jWJgRMjw4iaK0rBfA89L5gw427H4n1RZQBu6Q==}
|
||||
|
@ -3591,24 +3586,10 @@ packages:
|
|||
source-map: 0.6.1
|
||||
dev: true
|
||||
|
||||
/@vue/compiler-sfc@3.2.47:
|
||||
resolution: {integrity: sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==}
|
||||
dependencies:
|
||||
'@babel/parser': 7.21.5
|
||||
'@vue/compiler-core': 3.2.47
|
||||
'@vue/compiler-dom': 3.2.47
|
||||
'@vue/compiler-ssr': 3.2.47
|
||||
'@vue/reactivity-transform': 3.2.47
|
||||
'@vue/shared': 3.2.47
|
||||
estree-walker: 2.0.2
|
||||
magic-string: 0.25.7
|
||||
postcss: 8.4.24
|
||||
source-map: 0.6.1
|
||||
|
||||
/@vue/compiler-sfc@3.3.2:
|
||||
resolution: {integrity: sha512-jG4jQy28H4BqzEKsQqqW65BZgmo3vzdLHTBjF+35RwtDdlFE+Fk1VWJYUnDMMqkFBo6Ye1ltSKVOMPgkzYj7SQ==}
|
||||
dependencies:
|
||||
'@babel/parser': 7.21.5
|
||||
'@babel/parser': 7.22.4
|
||||
'@vue/compiler-core': 3.3.2
|
||||
'@vue/compiler-dom': 3.3.2
|
||||
'@vue/compiler-ssr': 3.3.2
|
||||
|
@ -3620,6 +3601,20 @@ packages:
|
|||
source-map-js: 1.0.2
|
||||
dev: false
|
||||
|
||||
/@vue/compiler-sfc@3.3.4:
|
||||
resolution: {integrity: sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==}
|
||||
dependencies:
|
||||
'@babel/parser': 7.22.4
|
||||
'@vue/compiler-core': 3.3.4
|
||||
'@vue/compiler-dom': 3.3.4
|
||||
'@vue/compiler-ssr': 3.3.4
|
||||
'@vue/reactivity-transform': 3.3.4
|
||||
'@vue/shared': 3.3.4
|
||||
estree-walker: 2.0.2
|
||||
magic-string: 0.30.0
|
||||
postcss: 8.4.24
|
||||
source-map-js: 1.0.2
|
||||
|
||||
/@vue/compiler-ssr@3.2.45:
|
||||
resolution: {integrity: sha512-6BRaggEGqhWht3lt24CrIbQSRD5O07MTmd+LjAn5fJj568+R9eUD2F7wMQJjX859seSlrYog7sUtrZSd7feqrQ==}
|
||||
dependencies:
|
||||
|
@ -3627,12 +3622,6 @@ packages:
|
|||
'@vue/shared': 3.2.45
|
||||
dev: true
|
||||
|
||||
/@vue/compiler-ssr@3.2.47:
|
||||
resolution: {integrity: sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==}
|
||||
dependencies:
|
||||
'@vue/compiler-dom': 3.2.47
|
||||
'@vue/shared': 3.2.47
|
||||
|
||||
/@vue/compiler-ssr@3.3.2:
|
||||
resolution: {integrity: sha512-K8OfY5FQtZaSOJHHe8xhEfIfLrefL/Y9frv4k4NsyQL3+0lRKxr9QuJhfdBDjkl7Fhz8CzKh63mULvmOfx3l2w==}
|
||||
dependencies:
|
||||
|
@ -3640,6 +3629,12 @@ packages:
|
|||
'@vue/shared': 3.3.2
|
||||
dev: false
|
||||
|
||||
/@vue/compiler-ssr@3.3.4:
|
||||
resolution: {integrity: sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==}
|
||||
dependencies:
|
||||
'@vue/compiler-dom': 3.3.4
|
||||
'@vue/shared': 3.3.4
|
||||
|
||||
/@vue/devtools-api@6.2.1:
|
||||
resolution: {integrity: sha512-OEgAMeQXvCoJ+1x8WyQuVZzFo0wcyCmUR3baRVLmKBo1LmYZWMlRiXlux5jd0fqVJu6PfDbOrZItVqUEzLobeQ==}
|
||||
dev: false
|
||||
|
@ -3679,9 +3674,9 @@ packages:
|
|||
dependencies:
|
||||
'@volar/language-core': 1.7.8
|
||||
'@volar/source-map': 1.7.8
|
||||
'@vue/compiler-dom': 3.3.2
|
||||
'@vue/reactivity': 3.3.2
|
||||
'@vue/shared': 3.3.2
|
||||
'@vue/compiler-dom': 3.3.4
|
||||
'@vue/reactivity': 3.3.4
|
||||
'@vue/shared': 3.3.4
|
||||
minimatch: 9.0.0
|
||||
muggle-string: 0.3.1
|
||||
typescript: 5.1.3
|
||||
|
@ -3698,15 +3693,6 @@ packages:
|
|||
magic-string: 0.25.7
|
||||
dev: true
|
||||
|
||||
/@vue/reactivity-transform@3.2.47:
|
||||
resolution: {integrity: sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==}
|
||||
dependencies:
|
||||
'@babel/parser': 7.22.4
|
||||
'@vue/compiler-core': 3.2.47
|
||||
'@vue/shared': 3.2.47
|
||||
estree-walker: 2.0.2
|
||||
magic-string: 0.25.7
|
||||
|
||||
/@vue/reactivity-transform@3.3.2:
|
||||
resolution: {integrity: sha512-iu2WaQvlJHdnONrsyv4ibIEnSsuKF+aHFngGj/y1lwpHQtalpVhKg9wsKMoiKXS9zPNjG9mNKzJS9vudvjzvyg==}
|
||||
dependencies:
|
||||
|
@ -3717,59 +3703,64 @@ packages:
|
|||
magic-string: 0.30.0
|
||||
dev: false
|
||||
|
||||
/@vue/reactivity@3.2.47:
|
||||
resolution: {integrity: sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==}
|
||||
/@vue/reactivity-transform@3.3.4:
|
||||
resolution: {integrity: sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==}
|
||||
dependencies:
|
||||
'@vue/shared': 3.2.47
|
||||
'@babel/parser': 7.22.4
|
||||
'@vue/compiler-core': 3.3.4
|
||||
'@vue/shared': 3.3.4
|
||||
estree-walker: 2.0.2
|
||||
magic-string: 0.30.0
|
||||
|
||||
/@vue/reactivity@3.3.2:
|
||||
resolution: {integrity: sha512-yX8C4uTgg2Tdj+512EEMnMKbLveoITl7YdQX35AYgx8vBvQGszKiiCN46g4RY6/deeo/5DLbeUUGxCq1qWMf5g==}
|
||||
/@vue/reactivity@3.3.4:
|
||||
resolution: {integrity: sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==}
|
||||
dependencies:
|
||||
'@vue/shared': 3.3.2
|
||||
dev: true
|
||||
'@vue/shared': 3.3.4
|
||||
|
||||
/@vue/runtime-core@3.2.47:
|
||||
resolution: {integrity: sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==}
|
||||
/@vue/runtime-core@3.3.4:
|
||||
resolution: {integrity: sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==}
|
||||
dependencies:
|
||||
'@vue/reactivity': 3.2.47
|
||||
'@vue/shared': 3.2.47
|
||||
'@vue/reactivity': 3.3.4
|
||||
'@vue/shared': 3.3.4
|
||||
|
||||
/@vue/runtime-dom@3.2.47:
|
||||
resolution: {integrity: sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==}
|
||||
/@vue/runtime-dom@3.3.4:
|
||||
resolution: {integrity: sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==}
|
||||
dependencies:
|
||||
'@vue/runtime-core': 3.2.47
|
||||
'@vue/shared': 3.2.47
|
||||
csstype: 2.6.19
|
||||
'@vue/runtime-core': 3.3.4
|
||||
'@vue/shared': 3.3.4
|
||||
csstype: 3.1.2
|
||||
|
||||
/@vue/server-renderer@3.2.47(vue@3.2.47):
|
||||
resolution: {integrity: sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==}
|
||||
/@vue/server-renderer@3.3.4(vue@3.3.4):
|
||||
resolution: {integrity: sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==}
|
||||
requiresBuild: true
|
||||
peerDependencies:
|
||||
vue: 3.2.47
|
||||
vue: 3.3.4
|
||||
dependencies:
|
||||
'@vue/compiler-ssr': 3.2.47
|
||||
'@vue/shared': 3.2.47
|
||||
vue: 3.2.47
|
||||
'@vue/compiler-ssr': 3.3.4
|
||||
'@vue/shared': 3.3.4
|
||||
vue: 3.3.4
|
||||
|
||||
/@vue/shared@3.2.45:
|
||||
resolution: {integrity: sha512-Ewzq5Yhimg7pSztDV+RH1UDKBzmtqieXQlpTVm2AwraoRL/Rks96mvd8Vgi7Lj+h+TH8dv7mXD3FRZR3TUvbSg==}
|
||||
dev: true
|
||||
|
||||
/@vue/shared@3.2.47:
|
||||
resolution: {integrity: sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==}
|
||||
|
||||
/@vue/shared@3.3.2:
|
||||
resolution: {integrity: sha512-0rFu3h8JbclbnvvKrs7Fe5FNGV9/5X2rPD7KmOzhLSUAiQH5//Hq437Gv0fR5Mev3u/nbtvmLl8XgwCU20/ZfQ==}
|
||||
dev: false
|
||||
|
||||
/@vue/test-utils@2.3.2(vue@3.2.47):
|
||||
/@vue/shared@3.3.4:
|
||||
resolution: {integrity: sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==}
|
||||
|
||||
/@vue/test-utils@2.3.2(vue@3.3.4):
|
||||
resolution: {integrity: sha512-hJnVaYhbrIm0yBS0+e1Y0Sj85cMyAi+PAbK4JHqMRUZ6S622Goa+G7QzkRSyvCteG8wop7tipuEbHoZo26wsSA==}
|
||||
peerDependencies:
|
||||
vue: ^3.0.1
|
||||
dependencies:
|
||||
js-beautify: 1.14.6
|
||||
vue: 3.2.47
|
||||
vue: 3.3.4
|
||||
optionalDependencies:
|
||||
'@vue/compiler-dom': 3.3.2
|
||||
'@vue/server-renderer': 3.2.47(vue@3.2.47)
|
||||
'@vue/compiler-dom': 3.3.4
|
||||
'@vue/server-renderer': 3.3.4(vue@3.3.4)
|
||||
dev: true
|
||||
|
||||
/@vue/tsconfig@0.4.0:
|
||||
|
@ -3785,25 +3776,25 @@ packages:
|
|||
- typescript
|
||||
dev: true
|
||||
|
||||
/@vueuse/core@10.2.0(vue@3.2.47):
|
||||
/@vueuse/core@10.2.0(vue@3.3.4):
|
||||
resolution: {integrity: sha512-aHBnoCteIS3hFu7ZZkVB93SanVDY6t4TIb7XDLxJT/HQdAZz+2RdIEJ8rj5LUoEJr7Damb5+sJmtpCwGez5ozQ==}
|
||||
dependencies:
|
||||
'@types/web-bluetooth': 0.0.17
|
||||
'@vueuse/metadata': 10.2.0
|
||||
'@vueuse/shared': 10.2.0(vue@3.2.47)
|
||||
vue-demi: 0.14.5(vue@3.2.47)
|
||||
'@vueuse/shared': 10.2.0(vue@3.3.4)
|
||||
vue-demi: 0.14.5(vue@3.3.4)
|
||||
transitivePeerDependencies:
|
||||
- '@vue/composition-api'
|
||||
- vue
|
||||
dev: false
|
||||
|
||||
/@vueuse/core@9.13.0(vue@3.2.47):
|
||||
/@vueuse/core@9.13.0(vue@3.3.4):
|
||||
resolution: {integrity: sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==}
|
||||
dependencies:
|
||||
'@types/web-bluetooth': 0.0.16
|
||||
'@vueuse/metadata': 9.13.0
|
||||
'@vueuse/shared': 9.13.0(vue@3.2.47)
|
||||
vue-demi: 0.12.1(vue@3.2.47)
|
||||
'@vueuse/shared': 9.13.0(vue@3.3.4)
|
||||
vue-demi: 0.12.1(vue@3.3.4)
|
||||
transitivePeerDependencies:
|
||||
- '@vue/composition-api'
|
||||
- vue
|
||||
|
@ -3817,19 +3808,19 @@ packages:
|
|||
resolution: {integrity: sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==}
|
||||
dev: false
|
||||
|
||||
/@vueuse/shared@10.2.0(vue@3.2.47):
|
||||
/@vueuse/shared@10.2.0(vue@3.3.4):
|
||||
resolution: {integrity: sha512-dIeA8+g9Av3H5iF4NXR/sft4V6vys76CpZ6hxwj8eMXybXk2WRl3scSsOVi+kQ9SX38COR7AH7WwY83UcuxbSg==}
|
||||
dependencies:
|
||||
vue-demi: 0.14.5(vue@3.2.47)
|
||||
vue-demi: 0.14.5(vue@3.3.4)
|
||||
transitivePeerDependencies:
|
||||
- '@vue/composition-api'
|
||||
- vue
|
||||
dev: false
|
||||
|
||||
/@vueuse/shared@9.13.0(vue@3.2.47):
|
||||
/@vueuse/shared@9.13.0(vue@3.3.4):
|
||||
resolution: {integrity: sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==}
|
||||
dependencies:
|
||||
vue-demi: 0.14.0(vue@3.2.47)
|
||||
vue-demi: 0.14.0(vue@3.3.4)
|
||||
transitivePeerDependencies:
|
||||
- '@vue/composition-api'
|
||||
- vue
|
||||
|
@ -4763,12 +4754,8 @@ packages:
|
|||
cssom: 0.3.8
|
||||
dev: true
|
||||
|
||||
/csstype@2.6.19:
|
||||
resolution: {integrity: sha512-ZVxXaNy28/k3kJg0Fou5MiYpp88j7H9hLZp8PDC3jV0WFjfH5E9xHb56L0W59cPbKbcHXeP4qyT8PrHp8t6LcQ==}
|
||||
|
||||
/csstype@3.1.2:
|
||||
resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==}
|
||||
dev: true
|
||||
|
||||
/cypress@12.14.0:
|
||||
resolution: {integrity: sha512-HiLIXKXZaIT1RT7sw1sVPt+qKtis3uYNm6KwC4qoYjabwLKaqZlyS/P+uVvvlBNcHIwL/BC6nQZajpbUd7hOgQ==}
|
||||
|
@ -5693,14 +5680,14 @@ packages:
|
|||
dev: false
|
||||
patched: true
|
||||
|
||||
/floating-vue@2.0.0-beta.22(vue@3.2.47):
|
||||
/floating-vue@2.0.0-beta.22(vue@3.3.4):
|
||||
resolution: {integrity: sha512-1iqpX3Rc3KpghLgBZ7zXfn6EceezujBUDKXYcTKPxv9P8CZxhS+3oouayd1fv3o+x/xeVSryWhF0Q7+4HEM7rA==}
|
||||
peerDependencies:
|
||||
vue: ^3.2.0
|
||||
dependencies:
|
||||
'@floating-ui/dom': 1.1.1
|
||||
vue: 3.2.47
|
||||
vue-resize: 2.0.0-alpha.1(vue@3.2.47)
|
||||
vue: 3.3.4
|
||||
vue-resize: 2.0.0-alpha.1(vue@3.3.4)
|
||||
dev: false
|
||||
|
||||
/follow-redirects@1.15.1(debug@4.3.4):
|
||||
|
@ -6872,6 +6859,7 @@ packages:
|
|||
resolution: {integrity: sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==}
|
||||
dependencies:
|
||||
sourcemap-codec: 1.4.8
|
||||
dev: true
|
||||
|
||||
/magic-string@0.30.0:
|
||||
resolution: {integrity: sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==}
|
||||
|
@ -7486,7 +7474,7 @@ packages:
|
|||
engines: {node: '>=0.10.0'}
|
||||
dev: true
|
||||
|
||||
/pinia@2.0.36(typescript@5.1.3)(vue@3.2.47):
|
||||
/pinia@2.0.36(typescript@5.1.3)(vue@3.3.4):
|
||||
resolution: {integrity: sha512-4UKApwjlmJH+VuHKgA+zQMddcCb3ezYnyewQ9NVrsDqZ/j9dMv5+rh+1r48whKNdpFkZAWVxhBp5ewYaYX9JcQ==}
|
||||
peerDependencies:
|
||||
'@vue/composition-api': ^1.4.0
|
||||
|
@ -7500,8 +7488,8 @@ packages:
|
|||
dependencies:
|
||||
'@vue/devtools-api': 6.5.0
|
||||
typescript: 5.1.3
|
||||
vue: 3.2.47
|
||||
vue-demi: 0.14.0(vue@3.2.47)
|
||||
vue: 3.3.4
|
||||
vue-demi: 0.14.0(vue@3.3.4)
|
||||
dev: false
|
||||
|
||||
/pkg-dir@4.2.0:
|
||||
|
@ -8505,6 +8493,7 @@ packages:
|
|||
/sourcemap-codec@1.4.8:
|
||||
resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==}
|
||||
deprecated: Please use @jridgewell/sourcemap-codec instead
|
||||
dev: true
|
||||
|
||||
/spdx-correct@3.1.1:
|
||||
resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==}
|
||||
|
@ -9368,7 +9357,7 @@ packages:
|
|||
- terser
|
||||
dev: true
|
||||
|
||||
/vue-advanced-cropper@2.8.8(vue@3.2.47):
|
||||
/vue-advanced-cropper@2.8.8(vue@3.3.4):
|
||||
resolution: {integrity: sha512-yDM7Jb/gnxcs//JdbOogBUoHr1bhCQSto7/ohgETKAe4wvRpmqIkKSppMm1huVQr+GP1YoVlX/fkjKxvYzwwDQ==}
|
||||
engines: {node: '>=8', npm: '>=5'}
|
||||
peerDependencies:
|
||||
|
@ -9377,10 +9366,10 @@ packages:
|
|||
classnames: 2.3.1
|
||||
debounce: 1.2.1
|
||||
easy-bem: 1.1.1
|
||||
vue: 3.2.47
|
||||
vue: 3.3.4
|
||||
dev: false
|
||||
|
||||
/vue-demi@0.12.1(vue@3.2.47):
|
||||
/vue-demi@0.12.1(vue@3.3.4):
|
||||
resolution: {integrity: sha512-QL3ny+wX8c6Xm1/EZylbgzdoDolye+VpCXRhI2hug9dJTP3OUJ3lmiKN3CsVV3mOJKwFi0nsstbgob0vG7aoIw==}
|
||||
engines: {node: '>=12'}
|
||||
hasBin: true
|
||||
|
@ -9392,10 +9381,10 @@ packages:
|
|||
'@vue/composition-api':
|
||||
optional: true
|
||||
dependencies:
|
||||
vue: 3.2.47
|
||||
vue: 3.3.4
|
||||
dev: false
|
||||
|
||||
/vue-demi@0.14.0(vue@3.2.47):
|
||||
/vue-demi@0.14.0(vue@3.3.4):
|
||||
resolution: {integrity: sha512-gt58r2ogsNQeVoQ3EhoUAvUsH9xviydl0dWJj7dabBC/2L4uBId7ujtCwDRD0JhkGsV1i0CtfLAeyYKBht9oWg==}
|
||||
engines: {node: '>=12'}
|
||||
hasBin: true
|
||||
|
@ -9407,10 +9396,10 @@ packages:
|
|||
'@vue/composition-api':
|
||||
optional: true
|
||||
dependencies:
|
||||
vue: 3.2.47
|
||||
vue: 3.3.4
|
||||
dev: false
|
||||
|
||||
/vue-demi@0.14.5(vue@3.2.47):
|
||||
/vue-demi@0.14.5(vue@3.3.4):
|
||||
resolution: {integrity: sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==}
|
||||
engines: {node: '>=12'}
|
||||
hasBin: true
|
||||
|
@ -9422,7 +9411,7 @@ packages:
|
|||
'@vue/composition-api':
|
||||
optional: true
|
||||
dependencies:
|
||||
vue: 3.2.47
|
||||
vue: 3.3.4
|
||||
dev: false
|
||||
|
||||
/vue-eslint-parser@9.1.1(eslint@8.43.0):
|
||||
|
@ -9461,17 +9450,17 @@ packages:
|
|||
- supports-color
|
||||
dev: true
|
||||
|
||||
/vue-flatpickr-component@11.0.3(vue@3.2.47):
|
||||
/vue-flatpickr-component@11.0.3(vue@3.3.4):
|
||||
resolution: {integrity: sha512-SYNW/lqK1q9gzr5kQpNDwnlgUIDnXJpG1AmoDxVyOYVtUD7mLaDU1w+MJLFI644NYtwh9NrCt5LpojlsjtbvqA==}
|
||||
engines: {node: '>=14.13.0'}
|
||||
peerDependencies:
|
||||
vue: ^3.2.0
|
||||
dependencies:
|
||||
flatpickr: 4.6.13
|
||||
vue: 3.2.47
|
||||
vue: 3.3.4
|
||||
dev: false
|
||||
|
||||
/vue-i18n@9.2.2(vue@3.2.47):
|
||||
/vue-i18n@9.2.2(vue@3.3.4):
|
||||
resolution: {integrity: sha512-yswpwtj89rTBhegUAv9Mu37LNznyu3NpyLQmozF3i1hYOhwpG8RjcjIFIIfnu+2MDZJGSZPXaKWvnQA71Yv9TQ==}
|
||||
engines: {node: '>= 14'}
|
||||
peerDependencies:
|
||||
|
@ -9481,24 +9470,24 @@ packages:
|
|||
'@intlify/shared': 9.2.2
|
||||
'@intlify/vue-devtools': 9.2.2
|
||||
'@vue/devtools-api': 6.2.1
|
||||
vue: 3.2.47
|
||||
vue: 3.3.4
|
||||
dev: false
|
||||
|
||||
/vue-resize@2.0.0-alpha.1(vue@3.2.47):
|
||||
/vue-resize@2.0.0-alpha.1(vue@3.3.4):
|
||||
resolution: {integrity: sha512-7+iqOueLU7uc9NrMfrzbG8hwMqchfVfSzpVlCMeJQe4pyibqyoifDNbKTZvwxZKDvGkB+PdFeKvnGZMoEb8esg==}
|
||||
peerDependencies:
|
||||
vue: ^3.0.0
|
||||
dependencies:
|
||||
vue: 3.2.47
|
||||
vue: 3.3.4
|
||||
dev: false
|
||||
|
||||
/vue-router@4.2.2(vue@3.2.47):
|
||||
/vue-router@4.2.2(vue@3.3.4):
|
||||
resolution: {integrity: sha512-cChBPPmAflgBGmy3tBsjeoe3f3VOSG6naKyY5pjtrqLGbNEXdzCigFUHgBvp9e3ysAtFtEx7OLqcSDh/1Cq2TQ==}
|
||||
peerDependencies:
|
||||
vue: ^3.2.0
|
||||
dependencies:
|
||||
'@vue/devtools-api': 6.5.0
|
||||
vue: 3.2.47
|
||||
vue: 3.3.4
|
||||
dev: false
|
||||
|
||||
/vue-template-compiler@2.7.14:
|
||||
|
@ -9520,14 +9509,14 @@ packages:
|
|||
typescript: 5.1.3
|
||||
dev: true
|
||||
|
||||
/vue@3.2.47:
|
||||
resolution: {integrity: sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==}
|
||||
/vue@3.3.4:
|
||||
resolution: {integrity: sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==}
|
||||
dependencies:
|
||||
'@vue/compiler-dom': 3.2.47
|
||||
'@vue/compiler-sfc': 3.2.47
|
||||
'@vue/runtime-dom': 3.2.47
|
||||
'@vue/server-renderer': 3.2.47(vue@3.2.47)
|
||||
'@vue/shared': 3.2.47
|
||||
'@vue/compiler-dom': 3.3.4
|
||||
'@vue/compiler-sfc': 3.3.4
|
||||
'@vue/runtime-dom': 3.3.4
|
||||
'@vue/server-renderer': 3.3.4(vue@3.3.4)
|
||||
'@vue/shared': 3.3.4
|
||||
|
||||
/w3c-keyname@2.2.6:
|
||||
resolution: {integrity: sha512-f+fciywl1SJEniZHD6H+kUO8gOnwIr7f4ijKA6+ZvJFjeGi1r4PDLl53Ayud9O/rk64RqgoQine0feoeOU0kXg==}
|
||||
|
@ -9976,11 +9965,11 @@ packages:
|
|||
engines: {node: '>=12.20'}
|
||||
dev: true
|
||||
|
||||
/zhyswan-vuedraggable@4.1.3(vue@3.2.47):
|
||||
/zhyswan-vuedraggable@4.1.3(vue@3.3.4):
|
||||
resolution: {integrity: sha512-q4Mp52tQIvTAWG0CKxLCVLyG/3RnIskDxoJvfjDZ2kM8yTcMkY80VTc8rd3q9KwqJ0UVtjEGLufb23sjDp0peQ==}
|
||||
peerDependencies:
|
||||
vue: ^3.0.1
|
||||
dependencies:
|
||||
sortablejs: 1.14.0
|
||||
vue: 3.2.47
|
||||
vue: 3.3.4
|
||||
dev: false
|
||||
|
|
|
@ -63,7 +63,7 @@ import {unrefElement} from '@vueuse/core'
|
|||
import {ref, type HTMLAttributes} from 'vue'
|
||||
import type {RouteLocationRaw} from 'vue-router'
|
||||
|
||||
export interface BaseButtonProps extends HTMLAttributes {
|
||||
export interface BaseButtonProps extends /* @vue-ignore */ HTMLAttributes {
|
||||
type?: BaseButtonTypes
|
||||
disabled?: boolean
|
||||
to?: RouteLocationRaw
|
||||
|
|
|
@ -84,14 +84,17 @@ import ColorBubble from '@/components/misc/colorBubble.vue'
|
|||
import ProjectsNavigation from '@/components/home/ProjectsNavigation.vue'
|
||||
import {canNestProjectDeeper} from '@/helpers/canNestProjectDeeper'
|
||||
|
||||
const props = withDefaults(defineProps<{
|
||||
const {
|
||||
project,
|
||||
isLoading,
|
||||
canCollapse,
|
||||
level = 0,
|
||||
} = defineProps<{
|
||||
project: IProject,
|
||||
isLoading?: boolean,
|
||||
canCollapse?: boolean,
|
||||
level?: number,
|
||||
}>(), {
|
||||
level: 0,
|
||||
})
|
||||
}>()
|
||||
|
||||
const projectStore = useProjectStore()
|
||||
const baseStore = useBaseStore()
|
||||
|
@ -104,12 +107,12 @@ const childProjects = computed(() => {
|
|||
return []
|
||||
}
|
||||
|
||||
return projectStore.getChildProjects(props.project.id)
|
||||
return projectStore.getChildProjects(project.id)
|
||||
.filter(p => !p.isArchived)
|
||||
.sort((a, b) => a.position - b.position)
|
||||
})
|
||||
|
||||
const canNestDeeper = computed(() => canNestProjectDeeper(props.level))
|
||||
const canNestDeeper = computed(() => canNestProjectDeeper(level))
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import {computed, ref, toRef, watch} from 'vue'
|
||||
import {computed, ref, watch} from 'vue'
|
||||
import {createRandomID} from '@/helpers/randomId'
|
||||
import XButton from '@/components/input/button.vue'
|
||||
|
||||
|
@ -53,22 +53,16 @@ const lastChangeTimeout = ref<ReturnType<typeof setTimeout> | null>(null)
|
|||
const defaultColors = ref(DEFAULT_COLORS)
|
||||
const colorListID = ref(createRandomID())
|
||||
|
||||
const props = defineProps({
|
||||
modelValue: {
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
menuPosition: {
|
||||
type: String,
|
||||
default: 'top',
|
||||
},
|
||||
})
|
||||
const {
|
||||
modelValue,
|
||||
} = defineProps<{
|
||||
modelValue: string,
|
||||
}>()
|
||||
|
||||
const emit = defineEmits(['update:modelValue'])
|
||||
|
||||
const modelValue = toRef(props, 'modelValue')
|
||||
watch(
|
||||
modelValue,
|
||||
() => modelValue,
|
||||
(newValue) => {
|
||||
color.value = newValue
|
||||
},
|
||||
|
|
|
@ -47,7 +47,7 @@ import BaseButton, {type BaseButtonProps} from '@/components/base/BaseButton.vue
|
|||
import type { IconProp } from '@fortawesome/fontawesome-svg-core'
|
||||
|
||||
// extending the props of the BaseButton
|
||||
export interface ButtonProps extends BaseButtonProps {
|
||||
export interface ButtonProps extends /* @vue-ignore */ BaseButtonProps {
|
||||
variant?: ButtonTypes
|
||||
icon?: IconProp
|
||||
iconColor?: string
|
||||
|
|
|
@ -14,7 +14,7 @@ import BaseButton, { type BaseButtonProps } from '@/components/base//BaseButton.
|
|||
import Icon from '@/components/misc/Icon'
|
||||
import type { IconProp } from '@fortawesome/fontawesome-svg-core'
|
||||
|
||||
export interface DropDownItemProps extends BaseButtonProps {
|
||||
export interface DropDownItemProps extends /* @vue-ignore */ BaseButtonProps {
|
||||
icon?: IconProp,
|
||||
}
|
||||
|
||||
|
|
|
@ -75,17 +75,19 @@ import BaseButton from '@/components/base/BaseButton.vue'
|
|||
import {ref, useAttrs, watchEffect} from 'vue'
|
||||
import {useScrollLock} from '@vueuse/core'
|
||||
|
||||
const props = withDefaults(defineProps<{
|
||||
const {
|
||||
enabled = true,
|
||||
overflow,
|
||||
wide,
|
||||
transitionName = 'modal',
|
||||
variant = 'default',
|
||||
} = defineProps<{
|
||||
enabled?: boolean,
|
||||
overflow?: boolean,
|
||||
wide?: boolean,
|
||||
transitionName?: 'modal' | 'fade',
|
||||
variant?: 'default' | 'hint-modal' | 'scrolling',
|
||||
}>(), {
|
||||
enabled: true,
|
||||
transitionName: 'modal',
|
||||
variant: 'default',
|
||||
})
|
||||
}>()
|
||||
|
||||
defineEmits(['close', 'submit'])
|
||||
|
||||
|
@ -95,7 +97,7 @@ const modal = ref<HTMLElement | null>(null)
|
|||
const scrollLock = useScrollLock(modal)
|
||||
|
||||
watchEffect(() => {
|
||||
scrollLock.value = props.enabled
|
||||
scrollLock.value = enabled
|
||||
})
|
||||
</script>
|
||||
|
||||
|
@ -200,10 +202,10 @@ $modal-width: 1024px;
|
|||
right: $close-button-padding;
|
||||
color: var(--grey-900);
|
||||
font-size: 2rem;
|
||||
|
||||
|
||||
@media screen and (min-width: $desktop) and (max-width: calc(#{$desktop } + #{$close-button-min-space})) {
|
||||
top: calc(5px + $modal-margin);
|
||||
right: 50%;
|
||||
right: 50%;
|
||||
// we align the close button to the modal until there is enough space outside for it
|
||||
transform: translateX(calc((#{$modal-width} / 2) - #{$close-button-padding}));
|
||||
}
|
||||
|
|
|
@ -44,8 +44,6 @@
|
|||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import {toRef, type PropType} from 'vue'
|
||||
|
||||
import type {IProject} from '@/modelTypes/IProject'
|
||||
|
||||
import BaseButton from '@/components/base/BaseButton.vue'
|
||||
|
@ -53,14 +51,13 @@ import BaseButton from '@/components/base/BaseButton.vue'
|
|||
import {useProjectBackground} from './useProjectBackground'
|
||||
import {useProjectStore} from '@/stores/projects'
|
||||
|
||||
const props = defineProps({
|
||||
project: {
|
||||
type: Object as PropType<IProject>,
|
||||
required: true,
|
||||
},
|
||||
})
|
||||
const {
|
||||
project,
|
||||
} = defineProps<{
|
||||
project: IProject,
|
||||
}>()
|
||||
|
||||
const {background, blurHashUrl} = useProjectBackground(toRef(props, 'project'))
|
||||
const {background, blurHashUrl} = useProjectBackground(project)
|
||||
|
||||
const projectStore = useProjectStore()
|
||||
</script>
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
import {ref, watch, type Ref} from 'vue'
|
||||
import {ref, watch, type ShallowReactive} from 'vue'
|
||||
import ProjectService from '@/services/project'
|
||||
import type {IProject} from '@/modelTypes/IProject'
|
||||
import {getBlobFromBlurHash} from '@/helpers/getBlobFromBlurHash'
|
||||
|
||||
export function useProjectBackground(project: Ref<IProject>) {
|
||||
export function useProjectBackground(project: ShallowReactive<IProject>) {
|
||||
const background = ref<string | null>(null)
|
||||
const backgroundLoading = ref(false)
|
||||
const blurHashUrl = ref('')
|
||||
|
||||
watch(
|
||||
() => [project.value.id, project.value.backgroundBlurHash] as [IProject['id'], IProject['backgroundBlurHash']],
|
||||
() => [project.id, project.backgroundBlurHash] as [IProject['id'], IProject['backgroundBlurHash']],
|
||||
async ([projectId, blurHash], oldValue) => {
|
||||
if (
|
||||
project.value === null ||
|
||||
!project.value.backgroundInformation ||
|
||||
project === null ||
|
||||
!project.backgroundInformation ||
|
||||
backgroundLoading.value
|
||||
) {
|
||||
return
|
||||
|
@ -36,7 +36,7 @@ export function useProjectBackground(project: Ref<IProject>) {
|
|||
})
|
||||
|
||||
const projectService = new ProjectService()
|
||||
const backgroundPromise = projectService.background(project.value).then((result) => {
|
||||
const backgroundPromise = projectService.background(project).then((result) => {
|
||||
background.value = result
|
||||
})
|
||||
await Promise.all([blurHashPromise, backgroundPromise])
|
||||
|
|
|
@ -180,13 +180,13 @@ import {useI18n} from 'vue-i18n'
|
|||
const taskStore = useTaskStore()
|
||||
const {t} = useI18n({useScope: 'global'})
|
||||
|
||||
const props = withDefaults(defineProps<{
|
||||
const {
|
||||
task,
|
||||
editEnabled = true,
|
||||
} = defineProps<{
|
||||
task: ITask,
|
||||
initialAttachments?: IAttachment[],
|
||||
editEnabled: boolean,
|
||||
}>(), {
|
||||
editEnabled: true,
|
||||
})
|
||||
}>()
|
||||
|
||||
// FIXME: this should go through the store
|
||||
const emit = defineEmits(['task-changed'])
|
||||
|
@ -223,7 +223,7 @@ function uploadNewAttachment() {
|
|||
}
|
||||
|
||||
function uploadFilesToTask(files: File[] | FileList) {
|
||||
uploadFiles(attachmentService, props.task.id, files)
|
||||
uploadFiles(attachmentService, task.id, files)
|
||||
}
|
||||
|
||||
const attachmentToDelete = ref<IAttachment | null>(null)
|
||||
|
@ -260,11 +260,11 @@ async function viewOrDownload(attachment: IAttachment) {
|
|||
const copy = useCopyToClipboard()
|
||||
|
||||
function copyUrl(attachment: IAttachment) {
|
||||
copy(generateAttachmentUrl(props.task.id, attachment.id))
|
||||
copy(generateAttachmentUrl(task.id, attachment.id))
|
||||
}
|
||||
|
||||
async function setCoverImage(attachment: IAttachment | null) {
|
||||
const task = await taskStore.setCoverImage(props.task, attachment)
|
||||
const task = await taskStore.setCoverImage(task, attachment)
|
||||
emit('task-changed', task)
|
||||
success({message: t('task.attachment.successfullyChangedCoverImage')})
|
||||
}
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import {ref, shallowReactive, computed, watch, onMounted, onBeforeUnmount, toRef, type PropType} from 'vue'
|
||||
import {ref, shallowReactive, computed, watch, onMounted, onBeforeUnmount} from 'vue'
|
||||
import {useI18n} from 'vue-i18n'
|
||||
import flatPickr from 'vue-flatpickr-component'
|
||||
|
||||
|
@ -46,12 +46,12 @@ import TaskService from '@/services/task'
|
|||
import type {ITask} from '@/modelTypes/ITask'
|
||||
import {useAuthStore} from '@/stores/auth'
|
||||
|
||||
const props = defineProps({
|
||||
modelValue: {
|
||||
type: Object as PropType<ITask>,
|
||||
required: true,
|
||||
},
|
||||
})
|
||||
const {
|
||||
modelValue,
|
||||
} = defineProps<{
|
||||
modelValue: ITask,
|
||||
}>()
|
||||
|
||||
const emit = defineEmits(['update:modelValue'])
|
||||
|
||||
const {t} = useI18n({useScope: 'global'})
|
||||
|
@ -66,7 +66,7 @@ const lastValue = ref<Date | null>()
|
|||
const changeInterval = ref<ReturnType<typeof setInterval>>()
|
||||
|
||||
watch(
|
||||
toRef(props, 'modelValue'),
|
||||
() => modelValue,
|
||||
(value) => {
|
||||
task.value = { ...value }
|
||||
dueDate.value = value.dueDate
|
||||
|
|
|
@ -96,14 +96,15 @@ const router = useRouter()
|
|||
|
||||
const loadingInternal = ref(false)
|
||||
|
||||
const props = withDefaults(defineProps<{
|
||||
const {
|
||||
task,
|
||||
loading = false,
|
||||
} = defineProps<{
|
||||
task: ITask,
|
||||
loading: boolean,
|
||||
}>(), {
|
||||
loading: false,
|
||||
})
|
||||
}>()
|
||||
|
||||
const color = computed(() => getHexColor(props.task.hexColor))
|
||||
const color = computed(() => getHexColor(task.hexColor))
|
||||
|
||||
async function toggleTaskDone(task: ITask) {
|
||||
loadingInternal.value = true
|
||||
|
@ -120,7 +121,7 @@ async function toggleTaskDone(task: ITask) {
|
|||
function openTaskDetail() {
|
||||
router.push({
|
||||
name: 'task.detail',
|
||||
params: {id: props.task.id},
|
||||
params: {id: task.id},
|
||||
state: {backdropView: router.currentRoute.value.fullPath},
|
||||
})
|
||||
}
|
||||
|
@ -128,12 +129,12 @@ function openTaskDetail() {
|
|||
const coverImageBlobUrl = ref<string | null>(null)
|
||||
|
||||
async function maybeDownloadCoverImage() {
|
||||
if (!props.task.coverImageAttachmentId) {
|
||||
if (!task.coverImageAttachmentId) {
|
||||
coverImageBlobUrl.value = null
|
||||
return
|
||||
}
|
||||
|
||||
const attachment = props.task.attachments.find(a => a.id === props.task.coverImageAttachmentId)
|
||||
const attachment = task.attachments.find(a => a.id === task.coverImageAttachmentId)
|
||||
if (!attachment || !SUPPORTED_IMAGE_SUFFIX.some((suffix) => attachment.file.name.endsWith(suffix))) {
|
||||
return
|
||||
}
|
||||
|
@ -143,7 +144,7 @@ async function maybeDownloadCoverImage() {
|
|||
}
|
||||
|
||||
watch(
|
||||
() => props.task.coverImageAttachmentId,
|
||||
() => task.coverImageAttachmentId,
|
||||
maybeDownloadCoverImage,
|
||||
{immediate: true},
|
||||
)
|
||||
|
|
|
@ -65,7 +65,6 @@
|
|||
|
||||
<script setup lang="ts">
|
||||
import {computed, ref, watch} from 'vue'
|
||||
import {toRef} from '@vueuse/core'
|
||||
import {SECONDS_A_DAY, SECONDS_A_HOUR} from '@/constants/date'
|
||||
import {IReminderPeriodRelativeTo, REMINDER_PERIOD_RELATIVE_TO_TYPES} from '@/types/IReminderPeriodRelativeTo'
|
||||
import {useI18n} from 'vue-i18n'
|
||||
|
@ -84,28 +83,27 @@ import SimpleButton from '@/components/input/SimpleButton.vue'
|
|||
|
||||
const {t} = useI18n({useScope: 'global'})
|
||||
|
||||
const props = withDefaults(defineProps<{
|
||||
const {
|
||||
modelValue,
|
||||
clearAfterUpdate = false,
|
||||
defaultRelativeTo = REMINDER_PERIOD_RELATIVE_TO_TYPES.DUEDATE,
|
||||
} = defineProps<{
|
||||
modelValue?: ITaskReminder,
|
||||
disabled?: boolean,
|
||||
clearAfterUpdate?: boolean,
|
||||
defaultRelativeTo?: null | IReminderPeriodRelativeTo,
|
||||
}>(), {
|
||||
disabled: false,
|
||||
clearAfterUpdate: false,
|
||||
defaultRelativeTo: REMINDER_PERIOD_RELATIVE_TO_TYPES.DUEDATE,
|
||||
})
|
||||
}>()
|
||||
|
||||
const emit = defineEmits(['update:modelValue'])
|
||||
|
||||
const reminder = ref<ITaskReminder>(new TaskReminderModel())
|
||||
|
||||
const presets = computed<TaskReminderModel[]>(() => [
|
||||
{reminder: null, relativePeriod: 0, relativeTo: props.defaultRelativeTo},
|
||||
{reminder: null, relativePeriod: -2 * SECONDS_A_HOUR, relativeTo: props.defaultRelativeTo},
|
||||
{reminder: null, relativePeriod: -1 * SECONDS_A_DAY, relativeTo: props.defaultRelativeTo},
|
||||
{reminder: null, relativePeriod: -1 * SECONDS_A_DAY * 3, relativeTo: props.defaultRelativeTo},
|
||||
{reminder: null, relativePeriod: -1 * SECONDS_A_DAY * 7, relativeTo: props.defaultRelativeTo},
|
||||
{reminder: null, relativePeriod: -1 * SECONDS_A_DAY * 30, relativeTo: props.defaultRelativeTo},
|
||||
{reminder: null, relativePeriod: 0, relativeTo: defaultRelativeTo},
|
||||
{reminder: null, relativePeriod: -2 * SECONDS_A_HOUR, relativeTo: defaultRelativeTo},
|
||||
{reminder: null, relativePeriod: -1 * SECONDS_A_DAY, relativeTo: defaultRelativeTo},
|
||||
{reminder: null, relativePeriod: -1 * SECONDS_A_DAY * 3, relativeTo: defaultRelativeTo},
|
||||
{reminder: null, relativePeriod: -1 * SECONDS_A_DAY * 7, relativeTo: defaultRelativeTo},
|
||||
{reminder: null, relativePeriod: -1 * SECONDS_A_DAY * 30, relativeTo: defaultRelativeTo},
|
||||
])
|
||||
const reminderDate = ref(null)
|
||||
|
||||
|
@ -114,7 +112,7 @@ type availableForms = null | 'relative' | 'absolute'
|
|||
const showFormSwitch = ref<availableForms>(null)
|
||||
|
||||
const activeForm = computed<availableForms>(() => {
|
||||
if (props.defaultRelativeTo === null) {
|
||||
if (defaultRelativeTo === null) {
|
||||
return 'absolute'
|
||||
}
|
||||
|
||||
|
@ -134,9 +132,8 @@ const reminderText = computed(() => {
|
|||
return t('task.addReminder')
|
||||
})
|
||||
|
||||
const modelValue = toRef(props, 'modelValue')
|
||||
watch(
|
||||
modelValue,
|
||||
() => modelValue,
|
||||
(newReminder) => {
|
||||
reminder.value = newReminder || new TaskReminderModel()
|
||||
},
|
||||
|
@ -146,7 +143,7 @@ watch(
|
|||
function updateData() {
|
||||
emit('update:modelValue', reminder.value)
|
||||
|
||||
if (props.clearAfterUpdate) {
|
||||
if (clearAfterUpdate) {
|
||||
reminder.value = new TaskReminderModel()
|
||||
}
|
||||
}
|
||||
|
@ -168,7 +165,7 @@ function setReminderFromPreset(preset, toggle) {
|
|||
|
||||
function updateDataAndMaybeClose(toggle) {
|
||||
updateData()
|
||||
if (props.clearAfterUpdate) {
|
||||
if (clearAfterUpdate) {
|
||||
toggle()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -47,8 +47,7 @@
|
|||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import {ref, watch, type PropType} from 'vue'
|
||||
import {toRef} from '@vueuse/core'
|
||||
import {ref, watch} from 'vue'
|
||||
|
||||
import {periodToSeconds, PeriodUnit, secondsToPeriod} from '@/helpers/time/period'
|
||||
|
||||
|
@ -57,16 +56,11 @@ import TaskReminderModel from '@/models/taskReminder'
|
|||
import type {ITaskReminder} from '@/modelTypes/ITaskReminder'
|
||||
import {REMINDER_PERIOD_RELATIVE_TO_TYPES, type IReminderPeriodRelativeTo} from '@/types/IReminderPeriodRelativeTo'
|
||||
|
||||
const props = defineProps({
|
||||
modelValue: {
|
||||
type: Object as PropType<ITaskReminder>,
|
||||
required: false,
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
})
|
||||
const {
|
||||
modelValue,
|
||||
} = defineProps<{
|
||||
modelValue?: ITaskReminder,
|
||||
}>()
|
||||
|
||||
const emit = defineEmits(['update:modelValue'])
|
||||
|
||||
|
@ -86,9 +80,8 @@ const period = ref<PeriodInput>({
|
|||
sign: -1,
|
||||
})
|
||||
|
||||
const modelValue = toRef(props, 'modelValue')
|
||||
watch(
|
||||
modelValue,
|
||||
() => modelValue,
|
||||
(value) => {
|
||||
const p = secondsToPeriod(value?.relativePeriod)
|
||||
period.value.durationUnit = p.unit
|
||||
|
|
|
@ -41,20 +41,20 @@ import ReminderDetail from '@/components/tasks/partials/reminder-detail.vue'
|
|||
import type {ITask} from '@/modelTypes/ITask'
|
||||
import {REMINDER_PERIOD_RELATIVE_TO_TYPES} from '@/types/IReminderPeriodRelativeTo'
|
||||
|
||||
const props = withDefaults(defineProps<{
|
||||
const {
|
||||
modelValue,
|
||||
disabled = false,
|
||||
} = defineProps<{
|
||||
modelValue: ITask,
|
||||
disabled?: boolean,
|
||||
}>(), {
|
||||
modelValue: [],
|
||||
disabled: false,
|
||||
})
|
||||
}>()
|
||||
|
||||
const emit = defineEmits(['update:modelValue'])
|
||||
|
||||
const reminders = ref<ITaskReminder[]>([])
|
||||
|
||||
watch(
|
||||
() => props.modelValue.reminders,
|
||||
() => modelValue.reminders,
|
||||
(newVal) => {
|
||||
reminders.value = newVal
|
||||
},
|
||||
|
@ -62,19 +62,19 @@ watch(
|
|||
)
|
||||
|
||||
const defaultRelativeTo = computed(() => {
|
||||
if (typeof props.modelValue === 'undefined') {
|
||||
if (typeof modelValue === 'undefined') {
|
||||
return null
|
||||
}
|
||||
|
||||
if (props.modelValue?.dueDate) {
|
||||
if (modelValue?.dueDate) {
|
||||
return REMINDER_PERIOD_RELATIVE_TO_TYPES.DUEDATE
|
||||
}
|
||||
|
||||
if (props.modelValue.dueDate === null && props.modelValue.startDate !== null) {
|
||||
if (modelValue.dueDate === null && modelValue.startDate !== null) {
|
||||
return REMINDER_PERIOD_RELATIVE_TO_TYPES.STARTDATE
|
||||
}
|
||||
|
||||
if (props.modelValue.dueDate === null && props.modelValue.startDate === null && props.modelValue.endDate !== null) {
|
||||
if (modelValue.dueDate === null && modelValue.startDate === null && modelValue.endDate !== null) {
|
||||
return REMINDER_PERIOD_RELATIVE_TO_TYPES.ENDDATE
|
||||
}
|
||||
|
||||
|
@ -83,7 +83,7 @@ const defaultRelativeTo = computed(() => {
|
|||
|
||||
function updateData() {
|
||||
emit('update:modelValue', {
|
||||
...props.modelValue,
|
||||
...modelValue,
|
||||
reminders: reminders.value,
|
||||
})
|
||||
}
|
||||
|
|
|
@ -126,7 +126,7 @@
|
|||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import {ref, watch, shallowReactive, toRef, type PropType, onMounted, onBeforeUnmount, computed} from 'vue'
|
||||
import {ref, watch, shallowReactive, onMounted, onBeforeUnmount, computed} from 'vue'
|
||||
import {useI18n} from 'vue-i18n'
|
||||
|
||||
import TaskModel, { getHexColor } from '@/models/task'
|
||||
|
@ -153,32 +153,21 @@ import {useProjectStore} from '@/stores/projects'
|
|||
import {useBaseStore} from '@/stores/base'
|
||||
import {useTaskStore} from '@/stores/tasks'
|
||||
|
||||
const props = defineProps({
|
||||
theTask: {
|
||||
type: Object as PropType<ITask>,
|
||||
required: true,
|
||||
},
|
||||
isArchived: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
showProject: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
showProjectColor: {
|
||||
type: Boolean,
|
||||
default: true,
|
||||
},
|
||||
canMarkAsDone: {
|
||||
type: Boolean,
|
||||
default: true,
|
||||
},
|
||||
})
|
||||
const {
|
||||
theTask,
|
||||
isArchived = false,
|
||||
showProject = false,
|
||||
disabled = false,
|
||||
showProjectColor = false,
|
||||
canMarkAsDone = true,
|
||||
} = defineProps<{
|
||||
theTask: ITask,
|
||||
isArchived?: boolean,
|
||||
showProject?: boolean,
|
||||
disabled?: boolean,
|
||||
showProjectColor?: boolean,
|
||||
canMarkAsDone?: boolean,
|
||||
}>()
|
||||
|
||||
const emit = defineEmits(['task-updated'])
|
||||
|
||||
|
@ -188,17 +177,15 @@ const taskService = shallowReactive(new TaskService())
|
|||
const task = ref<ITask>(new TaskModel())
|
||||
const showDefer = ref(false)
|
||||
|
||||
const theTask = toRef(props, 'theTask')
|
||||
|
||||
watch(
|
||||
theTask,
|
||||
() => theTask,
|
||||
newVal => {
|
||||
task.value = newVal
|
||||
},
|
||||
)
|
||||
|
||||
onMounted(() => {
|
||||
task.value = theTask.value
|
||||
task.value = theTask
|
||||
document.addEventListener('click', hideDeferDueDatePopup)
|
||||
})
|
||||
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
import {ref, shallowReactive, watch, computed} from 'vue'
|
||||
import {ref, shallowReactive, watch, computed, type ShallowReactive} from 'vue'
|
||||
import {useRoute} from 'vue-router'
|
||||
|
||||
import TaskCollectionService from '@/services/taskCollection'
|
||||
import type {ITask} from '@/modelTypes/ITask'
|
||||
import {error} from '@/message'
|
||||
import type {IProject} from '@/modelTypes/IProject'
|
||||
|
||||
export type Order = 'asc' | 'desc' | 'none'
|
||||
|
||||
|
@ -60,7 +61,7 @@ const SORT_BY_DEFAULT: SortBy = {
|
|||
/**
|
||||
* This mixin provides a base set of methods and properties to get tasks.
|
||||
*/
|
||||
export function useTaskList(projectId, sortByDefault: SortBy = SORT_BY_DEFAULT) {
|
||||
export function useTaskList(projectId: ShallowReactive<IProject['id']>, sortByDefault: SortBy = SORT_BY_DEFAULT) {
|
||||
const params = ref({...getDefaultParams()})
|
||||
|
||||
const search = ref('')
|
||||
|
@ -80,7 +81,7 @@ export function useTaskList(projectId, sortByDefault: SortBy = SORT_BY_DEFAULT)
|
|||
loadParams = formatSortOrder(sortBy.value, loadParams)
|
||||
|
||||
return [
|
||||
{projectId: projectId.value},
|
||||
{projectId: projectId},
|
||||
loadParams,
|
||||
page.value || 1,
|
||||
]
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<template #header>
|
||||
<span>{{ $t('filters.delete.header') }}</span>
|
||||
</template>
|
||||
|
||||
|
||||
<template #text>
|
||||
<p>{{ $t('filters.delete.text') }}</p>
|
||||
</template>
|
||||
|
@ -14,11 +14,14 @@
|
|||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import {toRef} from 'vue'
|
||||
import type {IProject} from '@/modelTypes/IProject'
|
||||
import {useSavedFilter} from '@/services/savedFilter'
|
||||
|
||||
const props = defineProps<{ projectId: IProject['id'] }>()
|
||||
const {
|
||||
projectId,
|
||||
} = defineProps<{
|
||||
projectId: IProject['id'],
|
||||
}>()
|
||||
|
||||
const {deleteFilter} = useSavedFilter(toRef(props, 'projectId'))
|
||||
const {deleteFilter} = useSavedFilter(projectId)
|
||||
</script>
|
||||
|
|
|
@ -54,8 +54,6 @@
|
|||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import {toRef} from 'vue'
|
||||
|
||||
import Editor from '@/components/input/AsyncEditor'
|
||||
import CreateEdit from '@/components/misc/create-edit.vue'
|
||||
import Filters from '@/components/project/partials/filters.vue'
|
||||
|
@ -64,7 +62,11 @@ import {useSavedFilter} from '@/services/savedFilter'
|
|||
|
||||
import type {IProject} from '@/modelTypes/IProject'
|
||||
|
||||
const props = defineProps<{ projectId: IProject['id'] }>()
|
||||
const {
|
||||
projectId,
|
||||
} = defineProps<{
|
||||
projectId: IProject['id'],
|
||||
}>()
|
||||
|
||||
const {
|
||||
saveFilterWithValidation,
|
||||
|
@ -73,5 +75,5 @@ const {
|
|||
filterService,
|
||||
titleValid,
|
||||
validateTitleField,
|
||||
} = useSavedFilter(toRef(props, 'projectId'))
|
||||
} = useSavedFilter(projectId)
|
||||
</script>
|
||||
|
|
|
@ -120,7 +120,7 @@ export default { name: 'List' }
|
|||
</script>
|
||||
|
||||
<script setup lang="ts">
|
||||
import {ref, computed, toRef, nextTick, onMounted, type PropType} from 'vue'
|
||||
import {ref, computed, nextTick, onMounted} from 'vue'
|
||||
import draggable from 'zhyswan-vuedraggable'
|
||||
import {useRoute, useRouter} from 'vue-router'
|
||||
|
||||
|
@ -144,12 +144,11 @@ import {useTaskStore} from '@/stores/tasks'
|
|||
|
||||
import type {IProject} from '@/modelTypes/IProject'
|
||||
|
||||
const props = defineProps({
|
||||
projectId: {
|
||||
type: Number as PropType<IProject['id']>,
|
||||
required: true,
|
||||
},
|
||||
})
|
||||
const {
|
||||
projectId,
|
||||
} = defineProps<{
|
||||
projectId: IProject['id'],
|
||||
}>()
|
||||
|
||||
const ctaVisible = ref(false)
|
||||
const showTaskSearch = ref(false)
|
||||
|
@ -169,7 +168,7 @@ const {
|
|||
searchTerm,
|
||||
params,
|
||||
sortByParam,
|
||||
} = useTaskList(toRef(props, 'projectId'), {position: 'asc' })
|
||||
} = useTaskList(projectId, {position: 'asc' })
|
||||
|
||||
|
||||
const isAlphabeticalSorting = computed(() => {
|
||||
|
|
|
@ -180,7 +180,7 @@
|
|||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import {toRef, computed, type Ref} from 'vue'
|
||||
import {computed, type Ref} from 'vue'
|
||||
|
||||
import {useStorage} from '@vueuse/core'
|
||||
|
||||
|
@ -200,6 +200,7 @@ import {useTaskList} from '@/composables/useTaskList'
|
|||
|
||||
import type {SortBy} from '@/composables/useTaskList'
|
||||
import type {ITask} from '@/modelTypes/ITask'
|
||||
import type {IProject} from '@/modelTypes/IProject'
|
||||
|
||||
const ACTIVE_COLUMNS_DEFAULT = {
|
||||
index: true,
|
||||
|
@ -217,12 +218,11 @@ const ACTIVE_COLUMNS_DEFAULT = {
|
|||
createdBy: false,
|
||||
}
|
||||
|
||||
const props = defineProps({
|
||||
projectId: {
|
||||
type: Number,
|
||||
required: true,
|
||||
},
|
||||
})
|
||||
const {
|
||||
projectId,
|
||||
} = defineProps<{
|
||||
projectId: IProject['id'],
|
||||
}>()
|
||||
|
||||
const SORT_BY_DEFAULT: SortBy = {
|
||||
index: 'desc',
|
||||
|
@ -231,7 +231,7 @@ const SORT_BY_DEFAULT: SortBy = {
|
|||
const activeColumns = useStorage('tableViewColumns', {...ACTIVE_COLUMNS_DEFAULT})
|
||||
const sortBy = useStorage<SortBy>('tableViewSortBy', {...SORT_BY_DEFAULT})
|
||||
|
||||
const taskList = useTaskList(toRef(props, 'projectId'), sortBy.value)
|
||||
const taskList = useTaskList(projectId, sortBy.value)
|
||||
|
||||
const {
|
||||
loading,
|
||||
|
|
|
@ -216,7 +216,7 @@
|
|||
{{ $t('task.attributes.labels') }}
|
||||
</div>
|
||||
<edit-labels
|
||||
:disabled="!canWrite"
|
||||
:disabled="!canWrite"
|
||||
:task-id="taskId"
|
||||
:ref="e => setFieldRef('labels', e)"
|
||||
v-model="task.labels"/>
|
||||
|
@ -270,7 +270,7 @@
|
|||
</h3>
|
||||
<div class="field has-addons">
|
||||
<div class="control is-expanded">
|
||||
<project-search
|
||||
<project-search
|
||||
@update:modelValue="changeProject"
|
||||
:ref="e => setFieldRef('moveProject', e)"
|
||||
/>
|
||||
|
@ -447,7 +447,7 @@
|
|||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import {ref, reactive, toRef, shallowReactive, computed, watch, watchEffect, nextTick, type PropType} from 'vue'
|
||||
import {ref, reactive, toRef, shallowReactive, computed, watch, watchEffect, nextTick} from 'vue'
|
||||
import {useRouter, type RouteLocation} from 'vue-router'
|
||||
import {useI18n} from 'vue-i18n'
|
||||
import {unrefElement} from '@vueuse/core'
|
||||
|
@ -500,15 +500,13 @@ import type {Action as MessageAction} from '@/message'
|
|||
import {useProjectStore} from '@/stores/projects'
|
||||
import {TASK_REPEAT_MODES} from '@/types/IRepeatMode'
|
||||
|
||||
const props = defineProps({
|
||||
taskId: {
|
||||
type: Number as PropType<ITask['id']>,
|
||||
required: true,
|
||||
},
|
||||
backdropView: {
|
||||
type: String as PropType<RouteLocation['fullPath']>,
|
||||
},
|
||||
})
|
||||
const {
|
||||
taskId,
|
||||
backdropView,
|
||||
} = defineProps<{
|
||||
taskId: ITask['id'],
|
||||
backdropView?: RouteLocation['fullPath'],
|
||||
}>()
|
||||
|
||||
defineEmits(['close'])
|
||||
|
||||
|
@ -535,8 +533,6 @@ const taskColor = ref<ITask['hexColor']>('')
|
|||
// Used to avoid flashing of empty elements if the task content is not yet loaded.
|
||||
const visible = ref(false)
|
||||
|
||||
const taskId = toRef(props, 'taskId')
|
||||
|
||||
const project = computed(() => projectStore.projects[task.value.projectId])
|
||||
watchEffect(() => {
|
||||
if (typeof project.value === 'undefined') {
|
||||
|
@ -559,7 +555,7 @@ const color = computed(() => {
|
|||
const color = task.value.getHexColor
|
||||
? task.value.getHexColor()
|
||||
: undefined
|
||||
|
||||
|
||||
return color === TASK_DEFAULT_COLOR
|
||||
? ''
|
||||
: color
|
||||
|
@ -567,13 +563,14 @@ const color = computed(() => {
|
|||
|
||||
const hasAttachments = computed(() => attachmentStore.attachments.length > 0)
|
||||
|
||||
const isModal = computed(() => Boolean(props.backdropView))
|
||||
const isModal = computed(() => Boolean(backdropView))
|
||||
|
||||
function attachmentUpload(file: File, onSuccess?: (url: string) => void) {
|
||||
return uploadFile(taskId.value, file, onSuccess)
|
||||
return uploadFile(taskId, file, onSuccess)
|
||||
}
|
||||
|
||||
const heading = ref<HTMLElement | null>(null)
|
||||
|
||||
async function scrollToHeading() {
|
||||
scrollIntoView(unrefElement(heading))
|
||||
}
|
||||
|
@ -581,22 +578,24 @@ async function scrollToHeading() {
|
|||
const taskService = shallowReactive(new TaskService())
|
||||
|
||||
// load task
|
||||
watch(taskId, async (id) => {
|
||||
if (id === undefined) {
|
||||
return
|
||||
}
|
||||
watch(
|
||||
() => taskId,
|
||||
async (id) => {
|
||||
if (id === undefined) {
|
||||
return
|
||||
}
|
||||
|
||||
try {
|
||||
Object.assign(task.value, await taskService.get({id}))
|
||||
attachmentStore.set(task.value.attachments)
|
||||
taskColor.value = task.value.hexColor
|
||||
setActiveFields()
|
||||
} finally {
|
||||
await nextTick()
|
||||
scrollToHeading()
|
||||
visible.value = true
|
||||
}
|
||||
}, {immediate: true})
|
||||
try {
|
||||
Object.assign(task.value, await taskService.get({id}))
|
||||
attachmentStore.set(task.value.attachments)
|
||||
taskColor.value = task.value.hexColor
|
||||
setActiveFields()
|
||||
} finally {
|
||||
await nextTick()
|
||||
scrollToHeading()
|
||||
visible.value = true
|
||||
}
|
||||
}, {immediate: true})
|
||||
|
||||
type FieldType =
|
||||
| 'assignees'
|
||||
|
@ -613,7 +612,7 @@ type FieldType =
|
|||
| 'repeatAfter'
|
||||
| 'startDate'
|
||||
|
||||
const activeFields : {[type in FieldType]: boolean} = reactive({
|
||||
const activeFields: { [type in FieldType]: boolean } = reactive({
|
||||
assignees: false,
|
||||
attachments: false,
|
||||
color: false,
|
||||
|
@ -648,7 +647,7 @@ function setActiveFields() {
|
|||
activeFields.startDate = task.value.startDate !== null
|
||||
}
|
||||
|
||||
const activeFieldElements : {[id in FieldType]: HTMLElement | null} = reactive({
|
||||
const activeFieldElements: { [id in FieldType]: HTMLElement | null } = reactive({
|
||||
assignees: null,
|
||||
attachments: null,
|
||||
color: null,
|
||||
|
@ -676,7 +675,7 @@ function setFieldActive(fieldName: keyof typeof activeFields) {
|
|||
if (!el) {
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
el.focus()
|
||||
|
||||
// scroll the field to the center of the screen if not in viewport already
|
||||
|
@ -691,7 +690,7 @@ async function saveTask(
|
|||
if (currentTask === null) {
|
||||
currentTask = klona(task.value)
|
||||
}
|
||||
|
||||
|
||||
if (!canWrite.value) {
|
||||
return
|
||||
}
|
||||
|
@ -723,6 +722,7 @@ async function saveTask(
|
|||
}
|
||||
|
||||
const showDeleteModal = ref(false)
|
||||
|
||||
async function deleteTask() {
|
||||
await taskStore.delete(task.value)
|
||||
success({message: t('task.detail.deleteSuccess')})
|
||||
|
@ -784,32 +784,32 @@ async function removeRepeatAfter() {
|
|||
// simulate sass lighten($primary, 30) by increasing lightness 30% to 73%
|
||||
--primary-light: hsla(var(--primary-h), var(--primary-s), 73%, var(--primary-a));
|
||||
padding-bottom: 0;
|
||||
|
||||
@media screen and (min-width: $desktop) {
|
||||
|
||||
@media screen and (min-width: $desktop) {
|
||||
padding-bottom: 1rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.task-view {
|
||||
padding-top: 1rem;
|
||||
padding-inline: .5rem;
|
||||
background-color: var(--site-background);
|
||||
|
||||
@media screen and (min-width: $desktop) {
|
||||
background-color: var(--site-background);
|
||||
|
||||
@media screen and (min-width: $desktop) {
|
||||
padding: 1rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.is-modal .task-view {
|
||||
border-radius: $radius;
|
||||
padding: 1rem;
|
||||
color: var(--text);
|
||||
background-color: var(--site-background) !important;
|
||||
border-radius: $radius;
|
||||
padding: 1rem;
|
||||
color: var(--text);
|
||||
background-color: var(--site-background) !important;
|
||||
|
||||
@media screen and (max-width: 800px) {
|
||||
border-radius: 0;
|
||||
padding-top: 2rem;
|
||||
}
|
||||
@media screen and (max-width: 800px) {
|
||||
border-radius: 0;
|
||||
padding-top: 2rem;
|
||||
}
|
||||
}
|
||||
|
||||
.task-view * {
|
||||
|
@ -837,6 +837,7 @@ h3 .button {
|
|||
.icon.is-grey {
|
||||
color: var(--grey-400);
|
||||
}
|
||||
|
||||
.date-input {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
@ -960,11 +961,11 @@ h3 .button {
|
|||
top: $navbar-height + 1.5rem;
|
||||
align-self: flex-start;
|
||||
}
|
||||
|
||||
|
||||
.button {
|
||||
width: 100%;
|
||||
margin-bottom: .5rem;
|
||||
justify-content: left;
|
||||
justify-content: left;
|
||||
|
||||
&.has-light-text {
|
||||
color: var(--white);
|
||||
|
@ -989,8 +990,8 @@ h3 .button {
|
|||
}
|
||||
|
||||
.detail-content {
|
||||
@media print {
|
||||
@media print {
|
||||
width: 100% !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -121,6 +121,9 @@ export default defineConfig(({mode}) => {
|
|||
plugins: [
|
||||
vue({
|
||||
reactivityTransform: true,
|
||||
script: {
|
||||
propsDestructure: true,
|
||||
},
|
||||
}),
|
||||
legacy,
|
||||
svgLoader({
|
||||
|
|
Reference in New Issue
Block a user