Compare commits

..

1 Commits

Author SHA1 Message Date
8d9ae6bd73 fix(deps): update dependency @kyvg/vue3-notification to v3.1.4
Some checks failed
continuous-integration/drone/pr Build is failing
2024-02-04 11:20:05 +00:00
19 changed files with 260 additions and 321 deletions

View File

@ -25,7 +25,7 @@ export DOCKER_BUILDKIT=1
docker build -t vikunja/frontend .
```
Refer to [multi-platform documentation](https://docs.docker.com/build/building/multi-platform/) in order to build for different platforms.
Refer to Refer [to multi-platform documentation](https://docs.docker.com/build/building/multi-platform/) in order to build for the different platform.
## Project setup
@ -49,4 +49,4 @@ pnpm run build
```shell
pnpm run lint
```
```

View File

@ -562,7 +562,7 @@ describe('Task', () => {
.click()
const today = new Date()
const day = today.toLocaleString('default', {day: 'numeric'})
const day = today.toLocaleString('default', {day: '2-digit'})
const month = today.toLocaleString('default', {month: 'short'})
const year = today.toLocaleString('default', {year: 'numeric'})
const date = `${day} ${month} ${year}, 12:00:00`
@ -605,7 +605,7 @@ describe('Task', () => {
.click()
const today = new Date()
const day = today.toLocaleString('default', {day: 'numeric'})
const day = today.toLocaleString('default', {day: '2-digit'})
const month = today.toLocaleString('default', {month: 'short'})
const year = today.toLocaleString('default', {year: 'numeric'})
const date = `${day} ${month} ${year}, 12:00:00`

View File

@ -55,39 +55,39 @@
"@kyvg/vue3-notification": "3.1.4",
"@sentry/tracing": "7.99.0",
"@sentry/vue": "7.99.0",
"@tiptap/core": "2.2.1",
"@tiptap/extension-blockquote": "2.2.1",
"@tiptap/extension-bold": "2.2.1",
"@tiptap/extension-bullet-list": "2.2.1",
"@tiptap/extension-code": "2.2.1",
"@tiptap/extension-code-block-lowlight": "2.2.1",
"@tiptap/extension-document": "2.2.1",
"@tiptap/extension-dropcursor": "2.2.1",
"@tiptap/extension-gapcursor": "2.2.1",
"@tiptap/extension-hard-break": "2.2.1",
"@tiptap/extension-heading": "2.2.1",
"@tiptap/extension-history": "2.2.1",
"@tiptap/extension-horizontal-rule": "2.2.1",
"@tiptap/extension-image": "2.2.1",
"@tiptap/extension-italic": "2.2.1",
"@tiptap/extension-link": "2.2.1",
"@tiptap/extension-list-item": "2.2.1",
"@tiptap/extension-ordered-list": "2.2.1",
"@tiptap/extension-paragraph": "2.2.1",
"@tiptap/extension-placeholder": "2.2.1",
"@tiptap/extension-strike": "2.2.1",
"@tiptap/extension-table": "2.2.1",
"@tiptap/extension-table-cell": "2.2.1",
"@tiptap/extension-table-header": "2.2.1",
"@tiptap/extension-table-row": "2.2.1",
"@tiptap/extension-task-item": "2.2.1",
"@tiptap/extension-task-list": "2.2.1",
"@tiptap/extension-text": "2.2.1",
"@tiptap/extension-typography": "2.2.1",
"@tiptap/extension-underline": "2.2.1",
"@tiptap/pm": "2.2.1",
"@tiptap/suggestion": "2.2.1",
"@tiptap/vue-3": "2.2.1",
"@tiptap/core": "2.2.0",
"@tiptap/extension-blockquote": "2.2.0",
"@tiptap/extension-bold": "2.2.0",
"@tiptap/extension-bullet-list": "2.2.0",
"@tiptap/extension-code": "2.2.0",
"@tiptap/extension-code-block-lowlight": "2.2.0",
"@tiptap/extension-document": "2.2.0",
"@tiptap/extension-dropcursor": "2.2.0",
"@tiptap/extension-gapcursor": "2.2.0",
"@tiptap/extension-hard-break": "2.2.0",
"@tiptap/extension-heading": "2.2.0",
"@tiptap/extension-history": "2.2.0",
"@tiptap/extension-horizontal-rule": "2.2.0",
"@tiptap/extension-image": "2.2.0",
"@tiptap/extension-italic": "2.2.0",
"@tiptap/extension-link": "2.2.0",
"@tiptap/extension-list-item": "2.2.0",
"@tiptap/extension-ordered-list": "2.2.0",
"@tiptap/extension-paragraph": "2.2.0",
"@tiptap/extension-placeholder": "2.2.0",
"@tiptap/extension-strike": "2.2.0",
"@tiptap/extension-table": "2.2.0",
"@tiptap/extension-table-cell": "2.2.0",
"@tiptap/extension-table-header": "2.2.0",
"@tiptap/extension-table-row": "2.2.0",
"@tiptap/extension-task-item": "2.2.0",
"@tiptap/extension-task-list": "2.2.0",
"@tiptap/extension-text": "2.2.0",
"@tiptap/extension-typography": "2.2.0",
"@tiptap/extension-underline": "2.2.0",
"@tiptap/pm": "2.2.0",
"@tiptap/suggestion": "2.2.0",
"@tiptap/vue-3": "2.2.0",
"@types/is-touch-device": "1.0.2",
"@types/lodash.clonedeep": "4.5.9",
"@vueuse/core": "10.7.2",

View File

@ -41,104 +41,104 @@ dependencies:
specifier: 7.99.0
version: 7.99.0(vue@3.4.15)
'@tiptap/core':
specifier: 2.2.1
version: 2.2.1(@tiptap/pm@2.2.1)
specifier: 2.2.0
version: 2.2.0(@tiptap/pm@2.2.0)
'@tiptap/extension-blockquote':
specifier: 2.2.1
version: 2.2.1(@tiptap/core@2.2.1)
specifier: 2.2.0
version: 2.2.0(@tiptap/core@2.2.0)
'@tiptap/extension-bold':
specifier: 2.2.1
version: 2.2.1(@tiptap/core@2.2.1)
specifier: 2.2.0
version: 2.2.0(@tiptap/core@2.2.0)
'@tiptap/extension-bullet-list':
specifier: 2.2.1
version: 2.2.1(@tiptap/core@2.2.1)
specifier: 2.2.0
version: 2.2.0(@tiptap/core@2.2.0)
'@tiptap/extension-code':
specifier: 2.2.1
version: 2.2.1(@tiptap/core@2.2.1)
specifier: 2.2.0
version: 2.2.0(@tiptap/core@2.2.0)
'@tiptap/extension-code-block-lowlight':
specifier: 2.2.1
version: 2.2.1(@tiptap/core@2.2.1)(@tiptap/extension-code-block@2.1.12)(@tiptap/pm@2.2.1)
specifier: 2.2.0
version: 2.2.0(@tiptap/core@2.2.0)(@tiptap/extension-code-block@2.1.12)(@tiptap/pm@2.2.0)
'@tiptap/extension-document':
specifier: 2.2.1
version: 2.2.1(@tiptap/core@2.2.1)
specifier: 2.2.0
version: 2.2.0(@tiptap/core@2.2.0)
'@tiptap/extension-dropcursor':
specifier: 2.2.1
version: 2.2.1(@tiptap/core@2.2.1)(@tiptap/pm@2.2.1)
specifier: 2.2.0
version: 2.2.0(@tiptap/core@2.2.0)(@tiptap/pm@2.2.0)
'@tiptap/extension-gapcursor':
specifier: 2.2.1
version: 2.2.1(@tiptap/core@2.2.1)(@tiptap/pm@2.2.1)
specifier: 2.2.0
version: 2.2.0(@tiptap/core@2.2.0)(@tiptap/pm@2.2.0)
'@tiptap/extension-hard-break':
specifier: 2.2.1
version: 2.2.1(@tiptap/core@2.2.1)
specifier: 2.2.0
version: 2.2.0(@tiptap/core@2.2.0)
'@tiptap/extension-heading':
specifier: 2.2.1
version: 2.2.1(@tiptap/core@2.2.1)
specifier: 2.2.0
version: 2.2.0(@tiptap/core@2.2.0)
'@tiptap/extension-history':
specifier: 2.2.1
version: 2.2.1(@tiptap/core@2.2.1)(@tiptap/pm@2.2.1)
specifier: 2.2.0
version: 2.2.0(@tiptap/core@2.2.0)(@tiptap/pm@2.2.0)
'@tiptap/extension-horizontal-rule':
specifier: 2.2.1
version: 2.2.1(@tiptap/core@2.2.1)(@tiptap/pm@2.2.1)
specifier: 2.2.0
version: 2.2.0(@tiptap/core@2.2.0)(@tiptap/pm@2.2.0)
'@tiptap/extension-image':
specifier: 2.2.1
version: 2.2.1(@tiptap/core@2.2.1)
specifier: 2.2.0
version: 2.2.0(@tiptap/core@2.2.0)
'@tiptap/extension-italic':
specifier: 2.2.1
version: 2.2.1(@tiptap/core@2.2.1)
specifier: 2.2.0
version: 2.2.0(@tiptap/core@2.2.0)
'@tiptap/extension-link':
specifier: 2.2.1
version: 2.2.1(@tiptap/core@2.2.1)(@tiptap/pm@2.2.1)
specifier: 2.2.0
version: 2.2.0(@tiptap/core@2.2.0)(@tiptap/pm@2.2.0)
'@tiptap/extension-list-item':
specifier: 2.2.1
version: 2.2.1(@tiptap/core@2.2.1)
specifier: 2.2.0
version: 2.2.0(@tiptap/core@2.2.0)
'@tiptap/extension-ordered-list':
specifier: 2.2.1
version: 2.2.1(@tiptap/core@2.2.1)
specifier: 2.2.0
version: 2.2.0(@tiptap/core@2.2.0)
'@tiptap/extension-paragraph':
specifier: 2.2.1
version: 2.2.1(@tiptap/core@2.2.1)
specifier: 2.2.0
version: 2.2.0(@tiptap/core@2.2.0)
'@tiptap/extension-placeholder':
specifier: 2.2.1
version: 2.2.1(@tiptap/core@2.2.1)(@tiptap/pm@2.2.1)
specifier: 2.2.0
version: 2.2.0(@tiptap/core@2.2.0)(@tiptap/pm@2.2.0)
'@tiptap/extension-strike':
specifier: 2.2.1
version: 2.2.1(@tiptap/core@2.2.1)
specifier: 2.2.0
version: 2.2.0(@tiptap/core@2.2.0)
'@tiptap/extension-table':
specifier: 2.2.1
version: 2.2.1(@tiptap/core@2.2.1)(@tiptap/pm@2.2.1)
specifier: 2.2.0
version: 2.2.0(@tiptap/core@2.2.0)(@tiptap/pm@2.2.0)
'@tiptap/extension-table-cell':
specifier: 2.2.1
version: 2.2.1(@tiptap/core@2.2.1)
specifier: 2.2.0
version: 2.2.0(@tiptap/core@2.2.0)
'@tiptap/extension-table-header':
specifier: 2.2.1
version: 2.2.1(@tiptap/core@2.2.1)
specifier: 2.2.0
version: 2.2.0(@tiptap/core@2.2.0)
'@tiptap/extension-table-row':
specifier: 2.2.1
version: 2.2.1(@tiptap/core@2.2.1)
specifier: 2.2.0
version: 2.2.0(@tiptap/core@2.2.0)
'@tiptap/extension-task-item':
specifier: 2.2.1
version: 2.2.1(@tiptap/core@2.2.1)(@tiptap/pm@2.2.1)
specifier: 2.2.0
version: 2.2.0(@tiptap/core@2.2.0)(@tiptap/pm@2.2.0)
'@tiptap/extension-task-list':
specifier: 2.2.1
version: 2.2.1(@tiptap/core@2.2.1)
specifier: 2.2.0
version: 2.2.0(@tiptap/core@2.2.0)
'@tiptap/extension-text':
specifier: 2.2.1
version: 2.2.1(@tiptap/core@2.2.1)
specifier: 2.2.0
version: 2.2.0(@tiptap/core@2.2.0)
'@tiptap/extension-typography':
specifier: 2.2.1
version: 2.2.1(@tiptap/core@2.2.1)
specifier: 2.2.0
version: 2.2.0(@tiptap/core@2.2.0)
'@tiptap/extension-underline':
specifier: 2.2.1
version: 2.2.1(@tiptap/core@2.2.1)
specifier: 2.2.0
version: 2.2.0(@tiptap/core@2.2.0)
'@tiptap/pm':
specifier: 2.2.1
version: 2.2.1
specifier: 2.2.0
version: 2.2.0
'@tiptap/suggestion':
specifier: 2.2.1
version: 2.2.1(@tiptap/core@2.2.1)(@tiptap/pm@2.2.1)
specifier: 2.2.0
version: 2.2.0(@tiptap/core@2.2.0)(@tiptap/pm@2.2.0)
'@tiptap/vue-3':
specifier: 2.2.1
version: 2.2.1(@tiptap/core@2.2.1)(@tiptap/pm@2.2.1)(vue@3.4.15)
specifier: 2.2.0
version: 2.2.0(@tiptap/core@2.2.0)(@tiptap/pm@2.2.0)(vue@3.4.15)
'@types/is-touch-device':
specifier: 1.0.2
version: 1.0.2
@ -4378,301 +4378,301 @@ packages:
defer-to-connect: 1.1.3
dev: true
/@tiptap/core@2.2.1(@tiptap/pm@2.2.1):
resolution: {integrity: sha512-9G6N2d5q4M5i/elK61qu28uO5MBDKEbStQnHuVKNe+LVNpb6xZal1AcIilmq1FVeuCUh3kYl3cFH3nBQOXtZUw==}
/@tiptap/core@2.2.0(@tiptap/pm@2.2.0):
resolution: {integrity: sha512-ped7XlQ9k5VyE2xUwyRegn1yVF/CAsaF+riBUBJ9+71/gSo2mCZ+6gQvee+LVN1+rD1qN/vWgKhKNDVaU+VaFg==}
peerDependencies:
'@tiptap/pm': ^2.0.0
dependencies:
'@tiptap/pm': 2.2.1
'@tiptap/pm': 2.2.0
dev: false
/@tiptap/extension-blockquote@2.2.1(@tiptap/core@2.2.1):
resolution: {integrity: sha512-KfL7c28ueH8yKTkZiO9LlErAVjZyi5j+Kw42pu06aOrXWNH6TW8CSufR6UB2XZcFX6Sixi2qYpwxs1YNnItmcg==}
/@tiptap/extension-blockquote@2.2.0(@tiptap/core@2.2.0):
resolution: {integrity: sha512-zINqjH/Kb0qiDxb4ndlruN/g5ZDt+Og2QTyrYGs27xoNmFoHez0Xqi+ID5yFSYBSCGkf0GeNMqW9LjfiCObvww==}
peerDependencies:
'@tiptap/core': ^2.0.0
dependencies:
'@tiptap/core': 2.2.1(@tiptap/pm@2.2.1)
'@tiptap/core': 2.2.0(@tiptap/pm@2.2.0)
dev: false
/@tiptap/extension-bold@2.2.1(@tiptap/core@2.2.1):
resolution: {integrity: sha512-MSFbbrUG0hErM9sUmJenGPRBjQV/HfcLf7kqpxduPoxA4r2XOsbUKGSbPEQ3vU3vMi9Obkknt0JLnS5WofIIGw==}
/@tiptap/extension-bold@2.2.0(@tiptap/core@2.2.0):
resolution: {integrity: sha512-GlrI0FzUSzYhXoYbctcXALbyc22uKfZ0nv1k0qTw8qkKbWsz6qT/rm+rcB2YgugW3r6cu5n5HDQbzbgjapNAEA==}
peerDependencies:
'@tiptap/core': ^2.0.0
dependencies:
'@tiptap/core': 2.2.1(@tiptap/pm@2.2.1)
'@tiptap/core': 2.2.0(@tiptap/pm@2.2.0)
dev: false
/@tiptap/extension-bubble-menu@2.2.1(@tiptap/core@2.2.1)(@tiptap/pm@2.2.1):
resolution: {integrity: sha512-FQO1CDS777E34T8jwnYDBz3VmGyVzv3Olj0o01c3fHR7OSnA7urAxx+z9Z4CWqUJhRMV9td0v0wiZjQ4q1DdYw==}
/@tiptap/extension-bubble-menu@2.2.0(@tiptap/core@2.2.0)(@tiptap/pm@2.2.0):
resolution: {integrity: sha512-ukwFb9wbwA/GkM7wGGv/ScKRBn4QSZkNzObhU6TgDKISjo1b7gGaUdC6gPoAFtQamCOCL8559PJIXXJ4wtL5/w==}
peerDependencies:
'@tiptap/core': ^2.0.0
'@tiptap/pm': ^2.0.0
dependencies:
'@tiptap/core': 2.2.1(@tiptap/pm@2.2.1)
'@tiptap/pm': 2.2.1
'@tiptap/core': 2.2.0(@tiptap/pm@2.2.0)
'@tiptap/pm': 2.2.0
tippy.js: 6.3.7
dev: false
/@tiptap/extension-bullet-list@2.2.1(@tiptap/core@2.2.1):
resolution: {integrity: sha512-MvMQRykJUdIocLNmilHO8smbttWwuXUGlnlW+DpIAK7DNih3aHjdFlRbixPqVQLicFMiI5+ixw+EM1ZQr0S59A==}
/@tiptap/extension-bullet-list@2.2.0(@tiptap/core@2.2.0):
resolution: {integrity: sha512-V/jVw5g1c7EIKo+44Rw1WeQ9NUzXjtecnCclDALXOlhZ3Kz+a6mBOkuMSeoZhlH0sZ7Cq5u4W+64IuDOstA9yg==}
peerDependencies:
'@tiptap/core': ^2.0.0
dependencies:
'@tiptap/core': 2.2.1(@tiptap/pm@2.2.1)
'@tiptap/core': 2.2.0(@tiptap/pm@2.2.0)
dev: false
/@tiptap/extension-code-block-lowlight@2.2.1(@tiptap/core@2.2.1)(@tiptap/extension-code-block@2.1.12)(@tiptap/pm@2.2.1):
resolution: {integrity: sha512-XrgDfqfuyYQ7xtjCALUbh5Qu4NAD9WXjE8T51C9aL60A6eMcd78QUDYtNEpHEIARqHLC1lWfUN1HhdkG3bFtuA==}
/@tiptap/extension-code-block-lowlight@2.2.0(@tiptap/core@2.2.0)(@tiptap/extension-code-block@2.1.12)(@tiptap/pm@2.2.0):
resolution: {integrity: sha512-s/ZvePEwyovQtoTHFq/TYZU/+rTdWEAhocsnbRD6BVolwFi5NiE9iRtIt2gTL1PVxi6UNK/zxqrtBaQpBffeqg==}
peerDependencies:
'@tiptap/core': ^2.0.0
'@tiptap/extension-code-block': ^2.0.0
'@tiptap/pm': ^2.0.0
dependencies:
'@tiptap/core': 2.2.1(@tiptap/pm@2.2.1)
'@tiptap/extension-code-block': 2.1.12(@tiptap/core@2.2.1)(@tiptap/pm@2.2.1)
'@tiptap/pm': 2.2.1
'@tiptap/core': 2.2.0(@tiptap/pm@2.2.0)
'@tiptap/extension-code-block': 2.1.12(@tiptap/core@2.2.0)(@tiptap/pm@2.2.0)
'@tiptap/pm': 2.2.0
dev: false
/@tiptap/extension-code-block@2.1.12(@tiptap/core@2.2.1)(@tiptap/pm@2.2.1):
/@tiptap/extension-code-block@2.1.12(@tiptap/core@2.2.0)(@tiptap/pm@2.2.0):
resolution: {integrity: sha512-RXtSYCVsnk8D+K80uNZShClfZjvv1EgO42JlXLVGWQdIgaNyuOv/6I/Jdf+ZzhnpsBnHufW+6TJjwP5vJPSPHA==}
peerDependencies:
'@tiptap/core': ^2.0.0
'@tiptap/pm': ^2.0.0
dependencies:
'@tiptap/core': 2.2.1(@tiptap/pm@2.2.1)
'@tiptap/pm': 2.2.1
'@tiptap/core': 2.2.0(@tiptap/pm@2.2.0)
'@tiptap/pm': 2.2.0
dev: false
/@tiptap/extension-code@2.2.1(@tiptap/core@2.2.1):
resolution: {integrity: sha512-nRYeiw9MtV6x3klcQd2X3fJ7r8J1Zy+KHTvfJFYsK8SacSVl+tYi8/FsjbmzGmnO3NYUlDzdyPq/woT+cKk20Q==}
/@tiptap/extension-code@2.2.0(@tiptap/core@2.2.0):
resolution: {integrity: sha512-SqAoJFuwqMzxyaKoULxEgo0e0fJjr/iOLQbnPSQEOuhgVaqRsaBSS3dbxgm94Gt29P7YPZ6IMqLSv/QZQzyjXw==}
peerDependencies:
'@tiptap/core': ^2.0.0
dependencies:
'@tiptap/core': 2.2.1(@tiptap/pm@2.2.1)
'@tiptap/core': 2.2.0(@tiptap/pm@2.2.0)
dev: false
/@tiptap/extension-document@2.2.1(@tiptap/core@2.2.1):
resolution: {integrity: sha512-Pb0jSY6wYSKd8fgDotKiQN3mc4dKLWVq0IzYOpBGTLn+37WmyPzWCnA1vWjp81u2XRXvr3gFQBEa+zYXonG//w==}
/@tiptap/extension-document@2.2.0(@tiptap/core@2.2.0):
resolution: {integrity: sha512-P21yqZP8DQQ03Q84jO4l73XPswCqjCPb318/eSdovF7m7xXcY55HkHtWU5Fvt/KJxhwvG6WWGmvoox9/bDW0DQ==}
peerDependencies:
'@tiptap/core': ^2.0.0
dependencies:
'@tiptap/core': 2.2.1(@tiptap/pm@2.2.1)
'@tiptap/core': 2.2.0(@tiptap/pm@2.2.0)
dev: false
/@tiptap/extension-dropcursor@2.2.1(@tiptap/core@2.2.1)(@tiptap/pm@2.2.1):
resolution: {integrity: sha512-Y9MmqRv0MMzhy8efVvHV1zAwr4oEiodggYOLC8Vav0IubWXqd8mVDCdz3DjEqGOdeR9Qy/zt4ohQlbkRno9twA==}
/@tiptap/extension-dropcursor@2.2.0(@tiptap/core@2.2.0)(@tiptap/pm@2.2.0):
resolution: {integrity: sha512-7OfGn/EmDp3IN+OyjlFrgeO/GfmBZXMzwW/yWl+42ulhWItqeQ1qmApxOAj1zWes0hbVcULZXIpw3alfTvfPOA==}
peerDependencies:
'@tiptap/core': ^2.0.0
'@tiptap/pm': ^2.0.0
dependencies:
'@tiptap/core': 2.2.1(@tiptap/pm@2.2.1)
'@tiptap/pm': 2.2.1
'@tiptap/core': 2.2.0(@tiptap/pm@2.2.0)
'@tiptap/pm': 2.2.0
dev: false
/@tiptap/extension-floating-menu@2.2.1(@tiptap/core@2.2.1)(@tiptap/pm@2.2.1):
resolution: {integrity: sha512-2lQaEIUbexw8yCGDLxNqhCwpZMoclnDtAdObDKCgufLcA+tVSdVirfcx7HJZ4kmRXmUhdG3uvawQVchZJ7FGiw==}
/@tiptap/extension-floating-menu@2.2.0(@tiptap/core@2.2.0)(@tiptap/pm@2.2.0):
resolution: {integrity: sha512-psvRz/69Q/DnVHABYwMKlZv2C6AuLmcQQKTrEBHZKz7OX6E3pLveRVIjaetFg8jci8ZeNMPupKmeLzBVuN8U2A==}
peerDependencies:
'@tiptap/core': ^2.0.0
'@tiptap/pm': ^2.0.0
dependencies:
'@tiptap/core': 2.2.1(@tiptap/pm@2.2.1)
'@tiptap/pm': 2.2.1
'@tiptap/core': 2.2.0(@tiptap/pm@2.2.0)
'@tiptap/pm': 2.2.0
tippy.js: 6.3.7
dev: false
/@tiptap/extension-gapcursor@2.2.1(@tiptap/core@2.2.1)(@tiptap/pm@2.2.1):
resolution: {integrity: sha512-/OCQDwa1/LwFVEFWCkU4dnUt4pGt1IJKOEzT2JETrRQB4VzP1flIpwPAy5tJ3i2abkCZtnEGOJ5ZsXC01LgOxg==}
/@tiptap/extension-gapcursor@2.2.0(@tiptap/core@2.2.0)(@tiptap/pm@2.2.0):
resolution: {integrity: sha512-FsIoLA2xC1tUCK2cw5jWOKlwYNZgex3puMRwQaZjbph2oz8Jel8SRAzAwsfoi4JkaN9TpNlRP1i00xzGGaezow==}
peerDependencies:
'@tiptap/core': ^2.0.0
'@tiptap/pm': ^2.0.0
dependencies:
'@tiptap/core': 2.2.1(@tiptap/pm@2.2.1)
'@tiptap/pm': 2.2.1
'@tiptap/core': 2.2.0(@tiptap/pm@2.2.0)
'@tiptap/pm': 2.2.0
dev: false
/@tiptap/extension-hard-break@2.2.1(@tiptap/core@2.2.1):
resolution: {integrity: sha512-wKRujmJlaBOv+PEnaUL2C9fEjiq1YDsm/SbHzAPYn/+8CRHOLrcJpUAq9rUo7u6+bEBD2PxbN1pPNrfS3QtPLw==}
/@tiptap/extension-hard-break@2.2.0(@tiptap/core@2.2.0):
resolution: {integrity: sha512-VptjsgvYOK6EcErn7GdEZZ5CjRkC4O6dsz2cRFA/DIY1IecB628X81n4G6cCyVsb+D98cYnsY44D3Qo+70Xkzw==}
peerDependencies:
'@tiptap/core': ^2.0.0
dependencies:
'@tiptap/core': 2.2.1(@tiptap/pm@2.2.1)
'@tiptap/core': 2.2.0(@tiptap/pm@2.2.0)
dev: false
/@tiptap/extension-heading@2.2.1(@tiptap/core@2.2.1):
resolution: {integrity: sha512-BI14qTOWTcabvobSo8QBAXQqmz4vQ9HjInK9btKEAJ027BHFk08n6YoovQDcTH5Z2nvwPN4N3RW0JupmgwflAQ==}
/@tiptap/extension-heading@2.2.0(@tiptap/core@2.2.0):
resolution: {integrity: sha512-4VwRtGDhRhUtP/c8BB6pPMS6g8PRv5cs+pYxCp466en5awSBhM4AN2cxDD6ruXP4YvNTDprky9H0IKjhs6Ym4Q==}
peerDependencies:
'@tiptap/core': ^2.0.0
dependencies:
'@tiptap/core': 2.2.1(@tiptap/pm@2.2.1)
'@tiptap/core': 2.2.0(@tiptap/pm@2.2.0)
dev: false
/@tiptap/extension-history@2.2.1(@tiptap/core@2.2.1)(@tiptap/pm@2.2.1):
resolution: {integrity: sha512-MZyIKWgNLzsEysyzWwsUE705+x4GRuLluS5cWGzZ/CKjSEUO152DVlM50MPpKqH+o1SW3cR7RUvDPJlpM7Lymw==}
/@tiptap/extension-history@2.2.0(@tiptap/core@2.2.0)(@tiptap/pm@2.2.0):
resolution: {integrity: sha512-djHQxD5KP4EI3U6cri0/wcJxyMspU1B6+UVXL1G7867JiV9mvAw/HUoZsHTOsn+kajTi8szFfl2exa6dCYVrmA==}
peerDependencies:
'@tiptap/core': ^2.0.0
'@tiptap/pm': ^2.0.0
dependencies:
'@tiptap/core': 2.2.1(@tiptap/pm@2.2.1)
'@tiptap/pm': 2.2.1
'@tiptap/core': 2.2.0(@tiptap/pm@2.2.0)
'@tiptap/pm': 2.2.0
dev: false
/@tiptap/extension-horizontal-rule@2.2.1(@tiptap/core@2.2.1)(@tiptap/pm@2.2.1):
resolution: {integrity: sha512-M6mi6CPMeO/1i/0qqEIVbObB3VDT6HhO4cxvjiaWxRXsU+79kdvx33Mk6GHKuXZizAYN1qxeM7byAtFiRu/aIw==}
/@tiptap/extension-horizontal-rule@2.2.0(@tiptap/core@2.2.0)(@tiptap/pm@2.2.0):
resolution: {integrity: sha512-AmaMBZwCEBH2eoy9Qt8Z+fiP6olSelz/cODz8/8XiXXi8ydY6oHW2s4pmrEYZH0un9dQAGWMP/LGUwyQZof1GQ==}
peerDependencies:
'@tiptap/core': ^2.0.0
'@tiptap/pm': ^2.0.0
dependencies:
'@tiptap/core': 2.2.1(@tiptap/pm@2.2.1)
'@tiptap/pm': 2.2.1
'@tiptap/core': 2.2.0(@tiptap/pm@2.2.0)
'@tiptap/pm': 2.2.0
dev: false
/@tiptap/extension-image@2.2.1(@tiptap/core@2.2.1):
resolution: {integrity: sha512-Rbj3dwcAfmLmKgv6ymfLUWlpb5xS3W4Bl/xC9EKbTFvRG+OHJyDjKxUipjNlaycuhgO01i2N9Jftclg4ZVed+g==}
/@tiptap/extension-image@2.2.0(@tiptap/core@2.2.0):
resolution: {integrity: sha512-xP+V+n6GQ/iHbDzX7wKy++klTUFQsvrtOtS2cWJCmUUH9qHJ2vHoaLEKAaroIaAaq/QMroCuEItpbevC3hbnpg==}
peerDependencies:
'@tiptap/core': ^2.0.0
dependencies:
'@tiptap/core': 2.2.1(@tiptap/pm@2.2.1)
'@tiptap/core': 2.2.0(@tiptap/pm@2.2.0)
dev: false
/@tiptap/extension-italic@2.2.1(@tiptap/core@2.2.1):
resolution: {integrity: sha512-x3cWWgup7SZIq8ugfJ8IFpvOROwU0KuAZFJlSk9eL9Qszff2ZG8kPUuQ8HklSdmoafSluv0mUhDSFTc52E/Yzg==}
/@tiptap/extension-italic@2.2.0(@tiptap/core@2.2.0):
resolution: {integrity: sha512-eOesosmbf8mXCJ8E58PnuhO5gtDpviCTpi3ZaGn1yP0gLRV3wlo8wpCbxlGXLStgFT0tejN26MGbEHCJHkRkFQ==}
peerDependencies:
'@tiptap/core': ^2.0.0
dependencies:
'@tiptap/core': 2.2.1(@tiptap/pm@2.2.1)
'@tiptap/core': 2.2.0(@tiptap/pm@2.2.0)
dev: false
/@tiptap/extension-link@2.2.1(@tiptap/core@2.2.1)(@tiptap/pm@2.2.1):
resolution: {integrity: sha512-3oh+tRFGtj3Scv3i6FBJOakX650NBI+cmemJxggaiH8PPw3+q+eZneqDQHqINcgel5/HQXFdXWSpfYsZi7EDoQ==}
/@tiptap/extension-link@2.2.0(@tiptap/core@2.2.0)(@tiptap/pm@2.2.0):
resolution: {integrity: sha512-1evYv5Fjod47kobd/0RsHYyCFWrkU5IYZSIBC7bAGsnzG4fId2O5SEyn9SPsMYOVtEL2EIhiqb0i+wcwXf6jOQ==}
peerDependencies:
'@tiptap/core': ^2.0.0
'@tiptap/pm': ^2.0.0
dependencies:
'@tiptap/core': 2.2.1(@tiptap/pm@2.2.1)
'@tiptap/pm': 2.2.1
'@tiptap/core': 2.2.0(@tiptap/pm@2.2.0)
'@tiptap/pm': 2.2.0
linkifyjs: 4.1.1
dev: false
/@tiptap/extension-list-item@2.2.1(@tiptap/core@2.2.1):
resolution: {integrity: sha512-6seOMXbji+ptW9OiOig8BVBxnGZhHgWEU6tmsMxsf61dt8b1CElf04oTbvn1hzkCjQQXJbsztU87Q7FLTfLE0w==}
/@tiptap/extension-list-item@2.2.0(@tiptap/core@2.2.0):
resolution: {integrity: sha512-st5S4z2+IXsaX9Otm+4y1NZhE/yLtfFELn5VIUX69PwnNThaN2/ioBXkO1o2ZdLex++D0oMaY5ILIW/PhCWP8Q==}
peerDependencies:
'@tiptap/core': ^2.0.0
dependencies:
'@tiptap/core': 2.2.1(@tiptap/pm@2.2.1)
'@tiptap/core': 2.2.0(@tiptap/pm@2.2.0)
dev: false
/@tiptap/extension-ordered-list@2.2.1(@tiptap/core@2.2.1):
resolution: {integrity: sha512-6OcdBALgYnj/TKSV+ouT202U1ydJGenGL9ofhpdogC1scE0oMaR25f1T9k7RMUGAv+7FNIcVZp2+bf1SLCTX1A==}
/@tiptap/extension-ordered-list@2.2.0(@tiptap/core@2.2.0):
resolution: {integrity: sha512-LR+RQdv8yEqSYkTBGYuh099wr4r0QIosxfGe/ZlshwDJ4qFKVhyWSZ8qyaEiufmXDadTasj7WQvlbpVAhrVTBQ==}
peerDependencies:
'@tiptap/core': ^2.0.0
dependencies:
'@tiptap/core': 2.2.1(@tiptap/pm@2.2.1)
'@tiptap/core': 2.2.0(@tiptap/pm@2.2.0)
dev: false
/@tiptap/extension-paragraph@2.2.1(@tiptap/core@2.2.1):
resolution: {integrity: sha512-SaSnWml4DTzG9kTEq/diL6XQGSgNaZJPOIGTPL2/1idHrx4/JrZ87VIbChJwVqbDuAvAxbidAqxKJuYObSzhhg==}
/@tiptap/extension-paragraph@2.2.0(@tiptap/core@2.2.0):
resolution: {integrity: sha512-niuvuBEkhz9gnQvFHbxs5z044bpDXRH9zz8QW2bA8+IDSxWHfnVmSZ3AZsed7OJ4EK1AcgGxy+gFOpAcZ73XTw==}
peerDependencies:
'@tiptap/core': ^2.0.0
dependencies:
'@tiptap/core': 2.2.1(@tiptap/pm@2.2.1)
'@tiptap/core': 2.2.0(@tiptap/pm@2.2.0)
dev: false
/@tiptap/extension-placeholder@2.2.1(@tiptap/core@2.2.1)(@tiptap/pm@2.2.1):
resolution: {integrity: sha512-QEUEhzvUOLRjdvzm45CGNqdzqNalKjYgnkmdiNr7HPsmXJ+Teoe/dP7HTo2ssGRqkziE9OJrDRu12kCr+H73MQ==}
/@tiptap/extension-placeholder@2.2.0(@tiptap/core@2.2.0)(@tiptap/pm@2.2.0):
resolution: {integrity: sha512-YAvq4VwjI9SitRHHQBoI2YHvKlmXvLag+z336HYyEiHDkoadek6zWLIb+RY/D0lAPBMBzgN+LoknYhC1VdgdYA==}
peerDependencies:
'@tiptap/core': ^2.0.0
'@tiptap/pm': ^2.0.0
dependencies:
'@tiptap/core': 2.2.1(@tiptap/pm@2.2.1)
'@tiptap/pm': 2.2.1
'@tiptap/core': 2.2.0(@tiptap/pm@2.2.0)
'@tiptap/pm': 2.2.0
dev: false
/@tiptap/extension-strike@2.2.1(@tiptap/core@2.2.1):
resolution: {integrity: sha512-4XntI9CLteDeu1ZBWqTygiuut2mJbS5E6SxDD0LZ6EtXM1LdTkh5xhDdviErsqlAe1PUtrFcGUAfdyMOdp26uQ==}
/@tiptap/extension-strike@2.2.0(@tiptap/core@2.2.0):
resolution: {integrity: sha512-AMVC94mWNCAXLyZdkB5KqLai9FMUaQDkWAZSD1DKCRq2OJeA71nW9G1eDPa2TzQezl2IVTW9mU4m37hcsTmRfg==}
peerDependencies:
'@tiptap/core': ^2.0.0
dependencies:
'@tiptap/core': 2.2.1(@tiptap/pm@2.2.1)
'@tiptap/core': 2.2.0(@tiptap/pm@2.2.0)
dev: false
/@tiptap/extension-table-cell@2.2.1(@tiptap/core@2.2.1):
resolution: {integrity: sha512-AeoIAuE+WLh69r/irk9lXo0wVCYpV1CI7aTcrWRP8P4t+wELfBPq/2dT1ETZ1dFWg1JXdq4FFtZ0Cw8lqlJnFQ==}
/@tiptap/extension-table-cell@2.2.0(@tiptap/core@2.2.0):
resolution: {integrity: sha512-wWLJnQdxF7tnS0oyZGWlUj3k+wf0R2fbq1n0n0EbnOmZV9CWhYwmKnUbdMEsW/HCYm1lgc94TAYGwaHkqQvHWQ==}
peerDependencies:
'@tiptap/core': ^2.0.0
dependencies:
'@tiptap/core': 2.2.1(@tiptap/pm@2.2.1)
'@tiptap/core': 2.2.0(@tiptap/pm@2.2.0)
dev: false
/@tiptap/extension-table-header@2.2.1(@tiptap/core@2.2.1):
resolution: {integrity: sha512-OQR9hNFSTGQFnoWf4SBIsnjgim8yWgMHT/SfCKyFWvgJnSGJS0VHVRItML1sFs8U4xJccfeNK8AiaaQUbMRiFg==}
/@tiptap/extension-table-header@2.2.0(@tiptap/core@2.2.0):
resolution: {integrity: sha512-U2XQcXinMNlx4fhRI7mivx8mFclajR7q3+gU1sFwGaRuyufOUM/1LwoiuzHK1VqMQWkWq8u+XEqtw9K6BtmyNw==}
peerDependencies:
'@tiptap/core': ^2.0.0
dependencies:
'@tiptap/core': 2.2.1(@tiptap/pm@2.2.1)
'@tiptap/core': 2.2.0(@tiptap/pm@2.2.0)
dev: false
/@tiptap/extension-table-row@2.2.1(@tiptap/core@2.2.1):
resolution: {integrity: sha512-3eFeuxOBzyEVcoo8CyFjJHPY4V1doZDxCdVXuFVoDcukQV12aJaV9TCeo3XjjAvs6Sqmm5G49M7JyIlCYIx20g==}
/@tiptap/extension-table-row@2.2.0(@tiptap/core@2.2.0):
resolution: {integrity: sha512-sR0MWUz5hy6QZsaaI/v4+wC8V8IKRZOZvl7PMhKAJVnAGr5nF34V8h/E9kWGDDyYw2mKi5dSf1E/cEZVAwdlVQ==}
peerDependencies:
'@tiptap/core': ^2.0.0
dependencies:
'@tiptap/core': 2.2.1(@tiptap/pm@2.2.1)
'@tiptap/core': 2.2.0(@tiptap/pm@2.2.0)
dev: false
/@tiptap/extension-table@2.2.1(@tiptap/core@2.2.1)(@tiptap/pm@2.2.1):
resolution: {integrity: sha512-5CovUPpa1yC0JEkuQ80B1r/i2SP/NjMCG+1AMCxQJg/a+rjP3DWK+FubhE67455YvwjxdllCvlZyruludCWXxQ==}
/@tiptap/extension-table@2.2.0(@tiptap/core@2.2.0)(@tiptap/pm@2.2.0):
resolution: {integrity: sha512-Kv9QhD3DXroygoQ9yY0fiZFsEDyiM10kwRrBdv05EE3+QJhkv+NaX6OgRxiOa6/AyxC1/SyTjjeKz0IgA/XZgA==}
peerDependencies:
'@tiptap/core': ^2.0.0
'@tiptap/pm': ^2.0.0
dependencies:
'@tiptap/core': 2.2.1(@tiptap/pm@2.2.1)
'@tiptap/pm': 2.2.1
'@tiptap/core': 2.2.0(@tiptap/pm@2.2.0)
'@tiptap/pm': 2.2.0
dev: false
/@tiptap/extension-task-item@2.2.1(@tiptap/core@2.2.1)(@tiptap/pm@2.2.1):
resolution: {integrity: sha512-gu8XJ6OCw1VZNe/Q/bTzk214d9bq5B/zN4BR/l+2ogbb5eXi00yEiatqMX40Ee4HzVqVGHJhclDHYRK9k+oAIw==}
/@tiptap/extension-task-item@2.2.0(@tiptap/core@2.2.0)(@tiptap/pm@2.2.0):
resolution: {integrity: sha512-5Tty8sEE7fS6Ymdpd81Y+ci9FS8bctvPfqF2CPjgrbd4TesXGmPoUz6XBm2Pfh2MBBQhUIy0+3au5mDzcVq2SA==}
peerDependencies:
'@tiptap/core': ^2.0.0
'@tiptap/pm': ^2.0.0
dependencies:
'@tiptap/core': 2.2.1(@tiptap/pm@2.2.1)
'@tiptap/pm': 2.2.1
'@tiptap/core': 2.2.0(@tiptap/pm@2.2.0)
'@tiptap/pm': 2.2.0
dev: false
/@tiptap/extension-task-list@2.2.1(@tiptap/core@2.2.1):
resolution: {integrity: sha512-hE/h7a2fYm0olWax7ywm+K10L4whyWZdlwDSTHiuE44++o+ANn4AcV/izz8/qFBbPUnf9qG0QZituzLQlTTenw==}
/@tiptap/extension-task-list@2.2.0(@tiptap/core@2.2.0):
resolution: {integrity: sha512-+W4uVup/v/P67sSJ8bAbbR7lCKZl+Jrm66lIV4etGjhO9Hs2ZnV9KrAjTHh8SbZZSNybDTOOaV74Wo73KqoVUQ==}
peerDependencies:
'@tiptap/core': ^2.0.0
dependencies:
'@tiptap/core': 2.2.1(@tiptap/pm@2.2.1)
'@tiptap/core': 2.2.0(@tiptap/pm@2.2.0)
dev: false
/@tiptap/extension-text@2.2.1(@tiptap/core@2.2.1):
resolution: {integrity: sha512-1zjPuGyhLIODsYpCYeRSUgzfzdzk5uSo8PsV/WaF75ouilJYE3QvMQegivkuNmPBLz0nukPkOcXfQUI/D8wNOA==}
/@tiptap/extension-text@2.2.0(@tiptap/core@2.2.0):
resolution: {integrity: sha512-h3lJRUZaUBisqUSQDEO+NU4SgKW7rj/vvbsbML8klWdEhg8U9btdv4eZgoJxbsqOdpUc6Cy6dBhre4myWI8Y2w==}
peerDependencies:
'@tiptap/core': ^2.0.0
dependencies:
'@tiptap/core': 2.2.1(@tiptap/pm@2.2.1)
'@tiptap/core': 2.2.0(@tiptap/pm@2.2.0)
dev: false
/@tiptap/extension-typography@2.2.1(@tiptap/core@2.2.1):
resolution: {integrity: sha512-V/ULb2aoyNo4k4a890N8+WiGDAAF8iJZ7XSGXzuXLUyabVGhdDO4xRymZpLROHjmreYRbfMzuTOTvOWi30DOvw==}
/@tiptap/extension-typography@2.2.0(@tiptap/core@2.2.0):
resolution: {integrity: sha512-te9JQqqjZbaEBPeNJeEDiy9HU/lvlG0lCq9Zz8EnHIJG69A3rXHpwLAbGY/WiQNk/MCx6HjBeVyjRCeHvo56Cw==}
peerDependencies:
'@tiptap/core': ^2.0.0
dependencies:
'@tiptap/core': 2.2.1(@tiptap/pm@2.2.1)
'@tiptap/core': 2.2.0(@tiptap/pm@2.2.0)
dev: false
/@tiptap/extension-underline@2.2.1(@tiptap/core@2.2.1):
resolution: {integrity: sha512-lGPoFFzVhqApG2Q4dIsxzMVbdhJw6bLqFHN9g1Ei53NZ3uGMJbaHoB9bbRGWPkuG+K6Y5shf5fByXbmSjBvBuA==}
/@tiptap/extension-underline@2.2.0(@tiptap/core@2.2.0):
resolution: {integrity: sha512-y+D9gUWa/sVeCftZBMCEpcD1tD4OgNXfjsS7/qxv6ge9t0HCRhAJfHWm6rX8P7QybjacinZuun/T6CudRdGbMg==}
peerDependencies:
'@tiptap/core': ^2.0.0
dependencies:
'@tiptap/core': 2.2.1(@tiptap/pm@2.2.1)
'@tiptap/core': 2.2.0(@tiptap/pm@2.2.0)
dev: false
/@tiptap/pm@2.2.1:
resolution: {integrity: sha512-jfbrvUlDZ5t6zgk7pXT6GtHX7v48PL6K9TfDEzROywJS2iXSt/0iHUi2Ap8u8hvfv4rBDO7m7LVLS0+rRa5Cyg==}
/@tiptap/pm@2.2.0:
resolution: {integrity: sha512-CL/ys9rvUgYcRHyeQFuIQdw09+0LUgKAfYWzCr6Pu4DDdbRooiex/a9M29imnRMEgS9SwuHN2v17fKHH0w65Hg==}
dependencies:
prosemirror-changeset: 2.2.1
prosemirror-collab: 1.3.1
@ -4694,27 +4694,27 @@ packages:
prosemirror-view: 1.32.7
dev: false
/@tiptap/suggestion@2.2.1(@tiptap/core@2.2.1)(@tiptap/pm@2.2.1):
resolution: {integrity: sha512-DIT4zR5CoP0Q5n9BJj68EqmbFGzdyDgDon8yfX1NkynW8PtDrcfGhe5/31tcH6YuM6ZijqNV3fdCt+LPrVr/Nw==}
/@tiptap/suggestion@2.2.0(@tiptap/core@2.2.0)(@tiptap/pm@2.2.0):
resolution: {integrity: sha512-xcjGEVgRB0tx21LdNTr5F/HEKNlFuq9cnJlVGDLlNP43ixXM6aODAeY3VvEZ3XtEtLpHsiCVrinrjRNtpUf+eQ==}
peerDependencies:
'@tiptap/core': ^2.0.0
'@tiptap/pm': ^2.0.0
dependencies:
'@tiptap/core': 2.2.1(@tiptap/pm@2.2.1)
'@tiptap/pm': 2.2.1
'@tiptap/core': 2.2.0(@tiptap/pm@2.2.0)
'@tiptap/pm': 2.2.0
dev: false
/@tiptap/vue-3@2.2.1(@tiptap/core@2.2.1)(@tiptap/pm@2.2.1)(vue@3.4.15):
resolution: {integrity: sha512-vRYTPnpKJBrpQEjj+7WDx7AKcjNskOlHMEfgCPlwFMG6o1dwbDDtXWj9U53SyiZfitRkudb7WAbX0RyleBjdIQ==}
/@tiptap/vue-3@2.2.0(@tiptap/core@2.2.0)(@tiptap/pm@2.2.0)(vue@3.4.15):
resolution: {integrity: sha512-S61ENjHm8Y0agwGFw+BZBVuZpL7/rPtMQCOL0eaDrJbqLi6nwFhhWzZ71zis0EgU310NwPCQ+j3XHD5hj1R3gQ==}
peerDependencies:
'@tiptap/core': ^2.0.0
'@tiptap/pm': ^2.0.0
vue: ^3.0.0
dependencies:
'@tiptap/core': 2.2.1(@tiptap/pm@2.2.1)
'@tiptap/extension-bubble-menu': 2.2.1(@tiptap/core@2.2.1)(@tiptap/pm@2.2.1)
'@tiptap/extension-floating-menu': 2.2.1(@tiptap/core@2.2.1)(@tiptap/pm@2.2.1)
'@tiptap/pm': 2.2.1
'@tiptap/core': 2.2.0(@tiptap/pm@2.2.0)
'@tiptap/extension-bubble-menu': 2.2.0(@tiptap/core@2.2.0)(@tiptap/pm@2.2.0)
'@tiptap/extension-floating-menu': 2.2.0(@tiptap/core@2.2.0)(@tiptap/pm@2.2.0)
'@tiptap/pm': 2.2.0
vue: 3.4.15(typescript@5.3.3)
dev: false

View File

@ -30,7 +30,7 @@
</span>
<span
v-if="project.id > 0"
class="icon menu-item-icon handle"
class="icon menu-item-icon handle lines-handle"
:class="{'has-color-bubble': project.hexColor !== ''}"
>
<icon icon="grip-lines"/>

View File

@ -304,6 +304,7 @@ watch(
)
const editor = useEditor({
content: modelValue,
editable: isEditing.value,
extensions: [
// Starterkit:
@ -745,7 +746,7 @@ watch(
height: auto;
&.ProseMirror-selectednode {
outline: 3px solid var(--primary);
outline: 3px solid #68cef8;
}
}

View File

@ -156,8 +156,6 @@ async function markAllRead() {
const notificationService = new NotificationService()
await notificationService.markAllRead()
success({message: t('notification.markAllReadSuccess')})
notifications.value.forEach(n => n.readAt = new Date())
}
</script>

View File

@ -123,23 +123,6 @@ watch(
function transformTaskToGanttBar(t: ITask) {
const black = 'var(--grey-800)'
const taskColor = getHexColor(t.hexColor)
let textColor = black
let backgroundColor = 'var(--grey-100)'
if(t.startDate) {
backgroundColor = taskColor ?? ''
if(typeof taskColor === 'undefined') {
textColor = 'white'
backgroundColor = 'var(--primary)'
} else if(colorIsDark(taskColor)) {
textColor = black
} else {
textColor = 'white'
}
}
return [{
startDate: isoToKebabDate(t.startDate ? t.startDate.toISOString() : props.defaultTaskStartDate),
endDate: isoToKebabDate(t.endDate ? t.endDate.toISOString() : props.defaultTaskEndDate),
@ -148,8 +131,8 @@ function transformTaskToGanttBar(t: ITask) {
label: t.title,
hasHandles: true,
style: {
color: textColor,
backgroundColor,
color: t.startDate ? (colorIsDark(getHexColor(t.hexColor)) ? black : 'white') : black,
backgroundColor: t.startDate ? getHexColor(t.hexColor) : 'var(--grey-100)',
border: t.startDate ? '' : '2px dashed var(--grey-300)',
'text-decoration': t.done ? 'line-through' : null,
},

View File

@ -33,7 +33,7 @@ const hasDelete = computed(() => typeof remove !== 'undefined' && !disabled)
:avatar-size="avatarSize"
:show-username="false"
:user="user"
:class="{'m-2': hasDelete}"
:class="{'m-2': hasDelete, 'mr-3': !hasDelete}"
/>
<BaseButton
:key="'delete'+user.id"

View File

@ -1,7 +1,5 @@
<template>
<Multiselect
class="edit-assignees"
:class="{'has-assignees': assignees.length > 0}"
:loading="projectUserService.loading"
:placeholder="$t('task.assignee.placeholder')"
:multiple="true"
@ -117,9 +115,3 @@ async function findUser(query: string) {
})
}
</script>
<style lang="scss">
.edit-assignees.has-assignees.multiselect .input {
padding-left: 0;
}
</style>

View File

@ -4,10 +4,10 @@
:class="{
'is-loading': loadingInternal || loading,
'draggable': !(loadingInternal || loading),
'has-light-text': !colorIsDark(color),
'has-custom-background-color': color ?? undefined,
'has-light-text': color !== TASK_DEFAULT_COLOR && !colorIsDark(color),
'has-custom-background-color': color !== TASK_DEFAULT_COLOR ? color : undefined,
}"
:style="{'background-color': color ?? undefined}"
:style="{'background-color': color !== TASK_DEFAULT_COLOR ? color : undefined}"
@click.exact="openTaskDetail()"
@click.ctrl="() => toggleTaskDone(task)"
@click.meta="() => toggleTaskDone(task)"
@ -83,7 +83,7 @@ import Done from '@/components/misc/Done.vue'
import Labels from '@/components/tasks/partials/labels.vue'
import ChecklistSummary from './checklist-summary.vue'
import {getHexColor} from '@/models/task'
import {TASK_DEFAULT_COLOR, getHexColor} from '@/models/task'
import type {ITask} from '@/modelTypes/ITask'
import {SUPPORTED_IMAGE_SUFFIX} from '@/models/attachment'
import AttachmentService from '@/services/attachment'

View File

@ -25,9 +25,5 @@ defineProps({
<style lang="scss" scoped>
.label-wrapper {
display: inline;
:deep(.tag) {
margin-bottom: .25rem;
}
}
</style>

View File

@ -46,7 +46,7 @@
<DatepickerInline
v-if="activeForm === 'absolute'"
v-model="reminderDate"
@update:modelValue="setReminderDateAndClose(close)"
@update:modelValue="setReminderDate(close)"
/>
<x-button
@ -105,7 +105,7 @@ const presets = computed<TaskReminderModel[]>(() => [
{reminder: null, relativePeriod: -1 * SECONDS_A_DAY * 7, relativeTo: defaultRelativeTo},
{reminder: null, relativePeriod: -1 * SECONDS_A_DAY * 30, relativeTo: defaultRelativeTo},
])
const reminderDate = ref<Date|null>(null)
const reminderDate = ref(null)
type availableForms = null | 'relative' | 'absolute'
@ -135,17 +135,7 @@ const reminderText = computed(() => {
watch(
() => modelValue,
(newReminder) => {
if(newReminder) {
reminder.value = newReminder
if(newReminder.relativeTo === null) {
reminderDate.value = new Date(newReminder.reminder)
}
return
}
reminder.value = new TaskReminderModel()
reminder.value = newReminder || new TaskReminderModel()
},
{immediate: true},
)
@ -158,7 +148,7 @@ function updateData() {
}
}
function setReminderDateAndClose(close) {
function setReminderDate(close) {
reminder.value.reminder = reminderDate.value === null
? null
: new Date(reminderDate.value)

View File

@ -2,7 +2,7 @@
<div>
<div
:class="{'is-loading': taskService.loading}"
class="task loader-container single-task"
class="task loader-container"
@mouseup.stop.self="openTaskDetail"
@mousedown.stop.self="focusTaskLink"
ref="taskContainerRef"
@ -435,12 +435,21 @@ function focusTaskLink() {
}
}
.handle {
opacity: 1;
transition: opacity $transition;
margin-right: .25rem;
cursor: grab;
}
@media(hover: hover) and (pointer: fine) {
& .favorite {
& .favorite,
& .handle {
opacity: 0;
}
&:hover .favorite {
&:hover .favorite,
&:hover .handle {
opacity: 1;
}
}

View File

@ -21,7 +21,6 @@ export const SUPPORTED_LOCALES = {
'hu-HU': 'Magyar',
'ar-SA': 'اَلْعَرَبِيَّةُ',
'sl-SI': 'Slovenščina',
// IMPORTANT: Also add new languages to useDayjsLanguageSync
} as const
export type SupportedLocale = keyof typeof SUPPORTED_LOCALES

View File

@ -15,13 +15,6 @@ export const DAYJS_LOCALE_MAPPING = {
'nl-nl': 'nl',
'pt-pt': 'pt',
'zh-cn': 'zh-cn',
'no-NO': 'nn',
'es-ES': 'es',
'da-DK': 'da',
'ja-JP': 'ja',
'hu-HU': 'hu',
'ar-SA': 'ar-sa',
'sl-SI': 'sl',
} as Record<SupportedLocale, ISOLanguage>
export const DAYJS_LANGUAGE_IMPORTS = {
@ -36,13 +29,6 @@ export const DAYJS_LANGUAGE_IMPORTS = {
'nl-nl': () => import('dayjs/locale/nl'),
'pt-pt': () => import('dayjs/locale/pt'),
'zh-cn': () => import('dayjs/locale/zh-cn'),
'no-no': () => import('dayjs/locale/nn'),
'es-es': () => import('dayjs/locale/es'),
'da-dk': () => import('dayjs/locale/da'),
'ja-jp': () => import('dayjs/locale/ja'),
'hu-hu': () => import('dayjs/locale/hu'),
'ar-sa': () => import('dayjs/locale/ar-sa'),
'sl-si': () => import('dayjs/locale/sl'),
} as Record<SupportedLocale, () => Promise<ILocale>>
export function useDayjsLanguageSync(dayjsGlobal: typeof dayjs) {

View File

@ -23,9 +23,11 @@ import type {ITaskReminder} from '@/modelTypes/ITaskReminder'
import TaskReminderModel from '@/models/taskReminder'
import {secondsToPeriod} from '@/helpers/time/period'
export function getHexColor(hexColor: string): string | undefined {
export const TASK_DEFAULT_COLOR = '#1973ff'
export function getHexColor(hexColor: string): string {
if (hexColor === '' || hexColor === '#') {
return undefined
return TASK_DEFAULT_COLOR
}
return hexColor

View File

@ -333,23 +333,4 @@ function prepareFiltersAndLoadTasks() {
.control.has-icons-right .icon {
transition: all $transition;
}
:deep(.single-task) {
.handle {
opacity: 1;
transition: opacity $transition;
margin-right: .25rem;
cursor: grab;
}
@media(hover: hover) and (pointer: fine) {
& .handle {
opacity: 0;
}
&:hover .handle {
opacity: 1;
}
}
}
</style>

View File

@ -472,7 +472,7 @@ import {klona} from 'klona/lite'
import {eventToHotkeyString} from '@github/hotkey'
import TaskService from '@/services/task'
import TaskModel from '@/models/task'
import TaskModel, {TASK_DEFAULT_COLOR} from '@/models/task'
import type {ITask} from '@/modelTypes/ITask'
import type {IProject} from '@/modelTypes/IProject'
@ -582,7 +582,9 @@ const color = computed(() => {
? task.value.getHexColor()
: undefined
return color
return color === TASK_DEFAULT_COLOR
? ''
: color
})
const hasAttachments = computed(() => attachmentStore.attachments.length > 0)