diff --git a/package-lock.json b/package-lock.json index d94f7d193..91b1d791b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,7 @@ "@fullcalendar/multimonth": "6.1.19", "@fullcalendar/vue3": "6.1.19", "@google/model-viewer": "4.1.0", - "@sentry/vue": "10.29.0", + "@sentry/vue": "10.30.0", "@unhead/vue": "2.0.19", "@vuepic/vue-datepicker": "11.0.3", "async": "3.2.6", @@ -30,7 +30,7 @@ "exceljs": "4.4.0", "fabric": "cgwire/fabric.js", "file-saver": "2.0.5", - "lucide-vue-next": "0.556.0", + "lucide-vue-next": "0.561.0", "marked": "16.4.2", "marked-emoji": "2.0.2", "moment": "2.30.1", @@ -42,7 +42,7 @@ "socket.io-client": "4.8.1", "superagent": "10.2.3", "thenby": "1.3.4", - "three": "0.181.2", + "three": "0.182.0", "uuid": "13.0.0", "v-autosize": "2.0.1", "vue": "3.5.13", @@ -52,7 +52,7 @@ "vue-i18n": "9.14.5", "vue-meta": "2.4.0", "vue-multiselect": "3.4.0", - "vue-router": "4.6.3", + "vue-router": "4.6.4", "vue-websocket-next": "0.2.7", "vue3-emoji-picker": "1.1.8", "vuedraggable": "4.1.0", @@ -61,10 +61,10 @@ "wavesurfer.js": "7.11.1" }, "devDependencies": { - "@vitejs/plugin-vue": "6.0.2", + "@vitejs/plugin-vue": "6.0.3", "@vue/compiler-sfc": "3.5.13", "@vue/test-utils": "2.4.6", - "autoprefixer": "10.4.22", + "autoprefixer": "10.4.23", "eslint": "8.57.1", "eslint-config-prettier": "10.1.8", "eslint-plugin-prettier": "5.5.4", @@ -75,8 +75,8 @@ "lint-staged": "16.2.7", "localStorage": "1.0.4", "prettier": "3.7.4", - "sass": "1.94.2", - "vite": "7.2.7", + "sass": "1.97.0", + "vite": "7.3.0", "vitest": "4.0.15", "vitest-localstorage-mock": "0.1.2" }, @@ -683,9 +683,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", - "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.1.tgz", + "integrity": "sha512-HHB50pdsBX6k47S4u5g/CaLjqS3qwaOVE5ILsq64jyzgMhLuCuZ8rGzM9yhsAjfjkbgUPMzZEPa7DAp7yz6vuA==", "cpu": [ "ppc64" ], @@ -700,9 +700,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", - "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.1.tgz", + "integrity": "sha512-kFqa6/UcaTbGm/NncN9kzVOODjhZW8e+FRdSeypWe6j33gzclHtwlANs26JrupOntlcWmB0u8+8HZo8s7thHvg==", "cpu": [ "arm" ], @@ -717,9 +717,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", - "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.1.tgz", + "integrity": "sha512-45fuKmAJpxnQWixOGCrS+ro4Uvb4Re9+UTieUY2f8AEc+t7d4AaZ6eUJ3Hva7dtrxAAWHtlEFsXFMAgNnGU9uQ==", "cpu": [ "arm64" ], @@ -734,9 +734,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", - "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.1.tgz", + "integrity": "sha512-LBEpOz0BsgMEeHgenf5aqmn/lLNTFXVfoWMUox8CtWWYK9X4jmQzWjoGoNb8lmAYml/tQ/Ysvm8q7szu7BoxRQ==", "cpu": [ "x64" ], @@ -751,9 +751,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", - "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.1.tgz", + "integrity": "sha512-veg7fL8eMSCVKL7IW4pxb54QERtedFDfY/ASrumK/SbFsXnRazxY4YykN/THYqFnFwJ0aVjiUrVG2PwcdAEqQQ==", "cpu": [ "arm64" ], @@ -768,9 +768,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", - "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.1.tgz", + "integrity": "sha512-+3ELd+nTzhfWb07Vol7EZ+5PTbJ/u74nC6iv4/lwIU99Ip5uuY6QoIf0Hn4m2HoV0qcnRivN3KSqc+FyCHjoVQ==", "cpu": [ "x64" ], @@ -785,9 +785,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", - "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.1.tgz", + "integrity": "sha512-/8Rfgns4XD9XOSXlzUDepG8PX+AVWHliYlUkFI3K3GB6tqbdjYqdhcb4BKRd7C0BhZSoaCxhv8kTcBrcZWP+xg==", "cpu": [ "arm64" ], @@ -802,9 +802,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", - "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.1.tgz", + "integrity": "sha512-GITpD8dK9C+r+5yRT/UKVT36h/DQLOHdwGVwwoHidlnA168oD3uxA878XloXebK4Ul3gDBBIvEdL7go9gCUFzQ==", "cpu": [ "x64" ], @@ -819,9 +819,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", - "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.1.tgz", + "integrity": "sha512-ieMID0JRZY/ZeCrsFQ3Y3NlHNCqIhTprJfDgSB3/lv5jJZ8FX3hqPyXWhe+gvS5ARMBJ242PM+VNz/ctNj//eA==", "cpu": [ "arm" ], @@ -836,9 +836,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", - "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.1.tgz", + "integrity": "sha512-W9//kCrh/6in9rWIBdKaMtuTTzNj6jSeG/haWBADqLLa9P8O5YSRDzgD5y9QBok4AYlzS6ARHifAb75V6G670Q==", "cpu": [ "arm64" ], @@ -853,9 +853,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", - "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.1.tgz", + "integrity": "sha512-VIUV4z8GD8rtSVMfAj1aXFahsi/+tcoXXNYmXgzISL+KB381vbSTNdeZHHHIYqFyXcoEhu9n5cT+05tRv13rlw==", "cpu": [ "ia32" ], @@ -870,9 +870,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", - "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.1.tgz", + "integrity": "sha512-l4rfiiJRN7sTNI//ff65zJ9z8U+k6zcCg0LALU5iEWzY+a1mVZ8iWC1k5EsNKThZ7XCQ6YWtsZ8EWYm7r1UEsg==", "cpu": [ "loong64" ], @@ -887,9 +887,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", - "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.1.tgz", + "integrity": "sha512-U0bEuAOLvO/DWFdygTHWY8C067FXz+UbzKgxYhXC0fDieFa0kDIra1FAhsAARRJbvEyso8aAqvPdNxzWuStBnA==", "cpu": [ "mips64el" ], @@ -904,9 +904,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", - "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.1.tgz", + "integrity": "sha512-NzdQ/Xwu6vPSf/GkdmRNsOfIeSGnh7muundsWItmBsVpMoNPVpM61qNzAVY3pZ1glzzAxLR40UyYM23eaDDbYQ==", "cpu": [ "ppc64" ], @@ -921,9 +921,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", - "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.1.tgz", + "integrity": "sha512-7zlw8p3IApcsN7mFw0O1Z1PyEk6PlKMu18roImfl3iQHTnr/yAfYv6s4hXPidbDoI2Q0pW+5xeoM4eTCC0UdrQ==", "cpu": [ "riscv64" ], @@ -938,9 +938,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", - "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.1.tgz", + "integrity": "sha512-cGj5wli+G+nkVQdZo3+7FDKC25Uh4ZVwOAK6A06Hsvgr8WqBBuOy/1s+PUEd/6Je+vjfm6stX0kmib5b/O2Ykw==", "cpu": [ "s390x" ], @@ -955,9 +955,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", - "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.1.tgz", + "integrity": "sha512-z3H/HYI9MM0HTv3hQZ81f+AKb+yEoCRlUby1F80vbQ5XdzEMyY/9iNlAmhqiBKw4MJXwfgsh7ERGEOhrM1niMA==", "cpu": [ "x64" ], @@ -972,9 +972,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", - "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.1.tgz", + "integrity": "sha512-wzC24DxAvk8Em01YmVXyjl96Mr+ecTPyOuADAvjGg+fyBpGmxmcr2E5ttf7Im8D0sXZihpxzO1isus8MdjMCXQ==", "cpu": [ "arm64" ], @@ -989,9 +989,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", - "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.1.tgz", + "integrity": "sha512-1YQ8ybGi2yIXswu6eNzJsrYIGFpnlzEWRl6iR5gMgmsrR0FcNoV1m9k9sc3PuP5rUBLshOZylc9nqSgymI+TYg==", "cpu": [ "x64" ], @@ -1006,9 +1006,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", - "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.1.tgz", + "integrity": "sha512-5Z+DzLCrq5wmU7RDaMDe2DVXMRm2tTDvX2KU14JJVBN2CT/qov7XVix85QoJqHltpvAOZUAc3ndU56HSMWrv8g==", "cpu": [ "arm64" ], @@ -1023,9 +1023,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", - "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.1.tgz", + "integrity": "sha512-Q73ENzIdPF5jap4wqLtsfh8YbYSZ8Q0wnxplOlZUOyZy7B4ZKW8DXGWgTCZmF8VWD7Tciwv5F4NsRf6vYlZtqg==", "cpu": [ "x64" ], @@ -1040,9 +1040,9 @@ } }, "node_modules/@esbuild/openharmony-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", - "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.1.tgz", + "integrity": "sha512-ajbHrGM/XiK+sXM0JzEbJAen+0E+JMQZ2l4RR4VFwvV9JEERx+oxtgkpoKv1SevhjavK2z2ReHk32pjzktWbGg==", "cpu": [ "arm64" ], @@ -1057,9 +1057,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", - "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.1.tgz", + "integrity": "sha512-IPUW+y4VIjuDVn+OMzHc5FV4GubIwPnsz6ubkvN8cuhEqH81NovB53IUlrlBkPMEPxvNnf79MGBoz8rZ2iW8HA==", "cpu": [ "x64" ], @@ -1074,9 +1074,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", - "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.1.tgz", + "integrity": "sha512-RIVRWiljWA6CdVu8zkWcRmGP7iRRIIwvhDKem8UMBjPql2TXM5PkDVvvrzMtj1V+WFPB4K7zkIGM7VzRtFkjdg==", "cpu": [ "arm64" ], @@ -1091,9 +1091,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", - "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.1.tgz", + "integrity": "sha512-2BR5M8CPbptC1AK5JbJT1fWrHLvejwZidKx3UMSF0ecHMa+smhi16drIrCEggkgviBwLYd5nwrFLSl5Kho96RQ==", "cpu": [ "ia32" ], @@ -1108,9 +1108,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", - "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.1.tgz", + "integrity": "sha512-d5X6RMYv6taIymSk8JBP+nxv8DQAMY6A51GPgusqLdK9wBz5wWIXy1KjTck6HnjE9hqJzJRdk+1p/t5soSbCtw==", "cpu": [ "x64" ], @@ -1942,9 +1942,9 @@ } }, "node_modules/@rolldown/pluginutils": { - "version": "1.0.0-beta.50", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.50.tgz", - "integrity": "sha512-5e76wQiQVeL1ICOZVUg4LSOVYg9jyhGCin+icYozhsUzM+fHE7kddi1bdiE0jwVqTfkjba3jUFbEkoC9WkdvyA==", + "version": "1.0.0-beta.53", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.53.tgz", + "integrity": "sha512-vENRlFU4YbrwVqNDZ7fLvy+JR1CRkyr01jhSiDpE1u6py3OMzQfztQU2jxykW3ALNxO4kSlqIDeYyD0Y9RcQeQ==", "dev": true, "license": "MIT" }, @@ -2257,88 +2257,88 @@ ] }, "node_modules/@sentry-internal/browser-utils": { - "version": "10.29.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/browser-utils/-/browser-utils-10.29.0.tgz", - "integrity": "sha512-M3kycMY6f3KY9a8jDYac+yG0E3ZgWVWSxlOEC5MhYyX+g7mqxkwrb3LFQyuxSm/m+CCgMTCaPOOaB2twXP6EQg==", + "version": "10.30.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/browser-utils/-/browser-utils-10.30.0.tgz", + "integrity": "sha512-dVsHTUbvgaLNetWAQC6yJFnmgD0xUbVgCkmzNB7S28wIP570GcZ4cxFGPOkXbPx6dEBUfoOREeXzLqjJLtJPfg==", "license": "MIT", "dependencies": { - "@sentry/core": "10.29.0" + "@sentry/core": "10.30.0" }, "engines": { "node": ">=18" } }, "node_modules/@sentry-internal/feedback": { - "version": "10.29.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-10.29.0.tgz", - "integrity": "sha512-Y7IRsNeS99cEONu1mZWZc3HvbjNnu59Hgymm0swFFKbdgbCgdT6l85kn2oLsuq4Ew8Dw/pL/Sgpwsl9UgYFpUg==", + "version": "10.30.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-10.30.0.tgz", + "integrity": "sha512-+bnQZ6SNF265nTXrRlXTmq5Ila1fRfraDOAahlOT/VM4j6zqCvNZzmeDD9J6IbxiAdhlp/YOkrG3zbr5vgYo0A==", "license": "MIT", "dependencies": { - "@sentry/core": "10.29.0" + "@sentry/core": "10.30.0" }, "engines": { "node": ">=18" } }, "node_modules/@sentry-internal/replay": { - "version": "10.29.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/replay/-/replay-10.29.0.tgz", - "integrity": "sha512-45NVw9PwB9TQ8z+xJ6G6Za+wmQ1RTA35heBSzR6U4bknj8LmA04k2iwnobvxCBEQXeLfcJEO1vFgagMoqMZMBw==", + "version": "10.30.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay/-/replay-10.30.0.tgz", + "integrity": "sha512-Pj/fMIZQkXzIw6YWpxKWUE5+GXffKq6CgXwHszVB39al1wYz1gTIrTqJqt31IBLIihfCy8XxYddglR2EW0BVIQ==", "license": "MIT", "dependencies": { - "@sentry-internal/browser-utils": "10.29.0", - "@sentry/core": "10.29.0" + "@sentry-internal/browser-utils": "10.30.0", + "@sentry/core": "10.30.0" }, "engines": { "node": ">=18" } }, "node_modules/@sentry-internal/replay-canvas": { - "version": "10.29.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-10.29.0.tgz", - "integrity": "sha512-typY4JrpAQQGPuSyd/BD8+nNCbvTV2UVvKzr+iKgI0m1qc4Dz8tHZ4Nfais2Z8eYn/pL1kqVQN5ERTmJoYFdIw==", + "version": "10.30.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-10.30.0.tgz", + "integrity": "sha512-RIlIz+XQ4DUWaN60CjfmicJq2O2JRtDKM5lw0wB++M5ha0TBh6rv+Ojf6BDgiV3LOQ7lZvCM57xhmNUtrGmelg==", "license": "MIT", "dependencies": { - "@sentry-internal/replay": "10.29.0", - "@sentry/core": "10.29.0" + "@sentry-internal/replay": "10.30.0", + "@sentry/core": "10.30.0" }, "engines": { "node": ">=18" } }, "node_modules/@sentry/browser": { - "version": "10.29.0", - "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-10.29.0.tgz", - "integrity": "sha512-XdbyIR6F4qoR9Z1JCWTgunVcTJjS9p2Th+v4wYs4ME+ZdLC4tuKKmRgYg3YdSIWCn1CBfIgdI6wqETSf7H6Njw==", + "version": "10.30.0", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-10.30.0.tgz", + "integrity": "sha512-7M/IJUMLo0iCMLNxDV/OHTPI0WKyluxhCcxXJn7nrCcolu8A1aq9R8XjKxm0oTCO8ht5pz8bhGXUnYJj4eoEBA==", "license": "MIT", "dependencies": { - "@sentry-internal/browser-utils": "10.29.0", - "@sentry-internal/feedback": "10.29.0", - "@sentry-internal/replay": "10.29.0", - "@sentry-internal/replay-canvas": "10.29.0", - "@sentry/core": "10.29.0" + "@sentry-internal/browser-utils": "10.30.0", + "@sentry-internal/feedback": "10.30.0", + "@sentry-internal/replay": "10.30.0", + "@sentry-internal/replay-canvas": "10.30.0", + "@sentry/core": "10.30.0" }, "engines": { "node": ">=18" } }, "node_modules/@sentry/core": { - "version": "10.29.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-10.29.0.tgz", - "integrity": "sha512-olQ2DU9dA/Bwsz3PtA9KNXRMqBWRQSkPw+MxwWEoU1K1qtiM9L0j6lbEFb5iSY3d7WYD5MB+1d5COugjSBrHtw==", + "version": "10.30.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-10.30.0.tgz", + "integrity": "sha512-IfNuqIoGVO9pwphwbOptAEJJI1SCAfewS5LBU1iL7hjPBHYAnE8tCVzyZN+pooEkQQ47Q4rGanaG1xY8mjTT1A==", "license": "MIT", "engines": { "node": ">=18" } }, "node_modules/@sentry/vue": { - "version": "10.29.0", - "resolved": "https://registry.npmjs.org/@sentry/vue/-/vue-10.29.0.tgz", - "integrity": "sha512-04Ng/ducvkTohSDhfQvRWrBxwGuQfCggHjTcEoyE3uUrR9ReF5VwyiYo5Kq4ADgZhsao5xqj4JQVg3bc8oTZUA==", + "version": "10.30.0", + "resolved": "https://registry.npmjs.org/@sentry/vue/-/vue-10.30.0.tgz", + "integrity": "sha512-bGGchq1iMgd5qK/Z4czgEHBMJpoATIkMHz5JTRg3NjfSvl2IthigJvk83CviLqN/6TZ21/ycnqUxvT/jNJLr+w==", "license": "MIT", "dependencies": { - "@sentry/browser": "10.29.0", - "@sentry/core": "10.29.0" + "@sentry/browser": "10.30.0", + "@sentry/core": "10.30.0" }, "engines": { "node": ">=18" @@ -2437,19 +2437,19 @@ } }, "node_modules/@vitejs/plugin-vue": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-6.0.2.tgz", - "integrity": "sha512-iHmwV3QcVGGvSC1BG5bZ4z6iwa1SOpAPWmnjOErd4Ske+lZua5K9TtAVdx0gMBClJ28DViCbSmZitjWZsWO3LA==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-6.0.3.tgz", + "integrity": "sha512-TlGPkLFLVOY3T7fZrwdvKpjprR3s4fxRln0ORDo1VQ7HHyxJwTlrjKU3kpVWTlaAjIEuCTokmjkZnr8Tpc925w==", "dev": true, "license": "MIT", "dependencies": { - "@rolldown/pluginutils": "1.0.0-beta.50" + "@rolldown/pluginutils": "1.0.0-beta.53" }, "engines": { "node": "^20.19.0 || >=22.12.0" }, "peerDependencies": { - "vite": "^5.0.0 || ^6.0.0 || ^7.0.0", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0", "vue": "^3.2.25" } }, @@ -3030,9 +3030,9 @@ "license": "MIT" }, "node_modules/autoprefixer": { - "version": "10.4.22", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.22.tgz", - "integrity": "sha512-ARe0v/t9gO28Bznv6GgqARmVqcWOV3mfgUPn9becPHMiD3o9BwlRgaeccZnwTpZ7Zwqrm+c1sUSsMxIzQzc8Xg==", + "version": "10.4.23", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.23.tgz", + "integrity": "sha512-YYTXSFulfwytnjAPlw8QHncHJmlvFKtczb8InXaAx9Q0LbfDnfEYDE55omerIJKihhmU61Ft+cAOSzQVaBUmeA==", "dev": true, "funding": [ { @@ -3050,10 +3050,9 @@ ], "license": "MIT", "dependencies": { - "browserslist": "^4.27.0", - "caniuse-lite": "^1.0.30001754", + "browserslist": "^4.28.1", + "caniuse-lite": "^1.0.30001760", "fraction.js": "^5.3.4", - "normalize-range": "^0.1.2", "picocolors": "^1.1.1", "postcss-value-parser": "^4.2.0" }, @@ -3363,9 +3362,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001759", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001759.tgz", - "integrity": "sha512-Pzfx9fOKoKvevQf8oCXoyNRQ5QyxJj+3O0Rqx2V5oxT61KGx8+n6hV/IUyJeifUci2clnmmKVpvtiqRzgiWjSw==", + "version": "1.0.30001760", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001760.tgz", + "integrity": "sha512-7AAMPcueWELt1p3mi13HR/LHH0TJLT11cnwDJEs3xA4+CK/PLKeO9Kl1oru24htkyUKtkGCvAx4ohB0Ttry8Dw==", "dev": true, "funding": [ { @@ -4289,9 +4288,9 @@ } }, "node_modules/esbuild": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", - "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.1.tgz", + "integrity": "sha512-yY35KZckJJuVVPXpvjgxiCuVEJT67F6zDeVTv4rizyPrfGBUpZQsvmxnN+C371c2esD/hNMjj4tpBhuueLN7aA==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -4302,32 +4301,32 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.12", - "@esbuild/android-arm": "0.25.12", - "@esbuild/android-arm64": "0.25.12", - "@esbuild/android-x64": "0.25.12", - "@esbuild/darwin-arm64": "0.25.12", - "@esbuild/darwin-x64": "0.25.12", - "@esbuild/freebsd-arm64": "0.25.12", - "@esbuild/freebsd-x64": "0.25.12", - "@esbuild/linux-arm": "0.25.12", - "@esbuild/linux-arm64": "0.25.12", - "@esbuild/linux-ia32": "0.25.12", - "@esbuild/linux-loong64": "0.25.12", - "@esbuild/linux-mips64el": "0.25.12", - "@esbuild/linux-ppc64": "0.25.12", - "@esbuild/linux-riscv64": "0.25.12", - "@esbuild/linux-s390x": "0.25.12", - "@esbuild/linux-x64": "0.25.12", - "@esbuild/netbsd-arm64": "0.25.12", - "@esbuild/netbsd-x64": "0.25.12", - "@esbuild/openbsd-arm64": "0.25.12", - "@esbuild/openbsd-x64": "0.25.12", - "@esbuild/openharmony-arm64": "0.25.12", - "@esbuild/sunos-x64": "0.25.12", - "@esbuild/win32-arm64": "0.25.12", - "@esbuild/win32-ia32": "0.25.12", - "@esbuild/win32-x64": "0.25.12" + "@esbuild/aix-ppc64": "0.27.1", + "@esbuild/android-arm": "0.27.1", + "@esbuild/android-arm64": "0.27.1", + "@esbuild/android-x64": "0.27.1", + "@esbuild/darwin-arm64": "0.27.1", + "@esbuild/darwin-x64": "0.27.1", + "@esbuild/freebsd-arm64": "0.27.1", + "@esbuild/freebsd-x64": "0.27.1", + "@esbuild/linux-arm": "0.27.1", + "@esbuild/linux-arm64": "0.27.1", + "@esbuild/linux-ia32": "0.27.1", + "@esbuild/linux-loong64": "0.27.1", + "@esbuild/linux-mips64el": "0.27.1", + "@esbuild/linux-ppc64": "0.27.1", + "@esbuild/linux-riscv64": "0.27.1", + "@esbuild/linux-s390x": "0.27.1", + "@esbuild/linux-x64": "0.27.1", + "@esbuild/netbsd-arm64": "0.27.1", + "@esbuild/netbsd-x64": "0.27.1", + "@esbuild/openbsd-arm64": "0.27.1", + "@esbuild/openbsd-x64": "0.27.1", + "@esbuild/openharmony-arm64": "0.27.1", + "@esbuild/sunos-x64": "0.27.1", + "@esbuild/win32-arm64": "0.27.1", + "@esbuild/win32-ia32": "0.27.1", + "@esbuild/win32-x64": "0.27.1" } }, "node_modules/escalade": { @@ -6722,9 +6721,9 @@ } }, "node_modules/lucide-vue-next": { - "version": "0.556.0", - "resolved": "https://registry.npmjs.org/lucide-vue-next/-/lucide-vue-next-0.556.0.tgz", - "integrity": "sha512-JvdCM2smkWrMDhkfD/FpZiWekkbWD6MZLstIFx/FOVZgULrnMr5hegCB9LlTdgllEFnQYQs8hhHC1WYcAV9HTA==", + "version": "0.561.0", + "resolved": "https://registry.npmjs.org/lucide-vue-next/-/lucide-vue-next-0.561.0.tgz", + "integrity": "sha512-c5HUckO0qHklVSOf/0vaSR3pEb8fYImRDCRDLde56uqS9js0D/e3RAvq0/YFWjkmyOBKCb0/IdskdoHZQEkT5g==", "license": "ISC", "peerDependencies": { "vue": ">=3.0.1" @@ -7118,16 +7117,6 @@ "node": ">=0.10.0" } }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/npmlog": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", @@ -8060,9 +8049,9 @@ } }, "node_modules/sass": { - "version": "1.94.2", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.94.2.tgz", - "integrity": "sha512-N+7WK20/wOr7CzA2snJcUSSNTCzeCGUTFY3OgeQP3mZ1aj9NMQ0mSTXwlrnd89j33zzQJGqIN52GIOmYrfq46A==", + "version": "1.97.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.97.0.tgz", + "integrity": "sha512-KR0igP1z4avUJetEuIeOdDlwaUDvkH8wSx7FdSjyYBS3dpyX3TzHfAMO0G1Q4/3cdjcmi3r7idh+KCmKqS+KeQ==", "dev": true, "license": "MIT", "dependencies": { @@ -8754,9 +8743,9 @@ "license": "Apache-2.0" }, "node_modules/three": { - "version": "0.181.2", - "resolved": "https://registry.npmjs.org/three/-/three-0.181.2.tgz", - "integrity": "sha512-k/CjiZ80bYss6Qs7/ex1TBlPD11whT9oKfT8oTGiHa34W4JRd1NiH/Tr1DbHWQ2/vMUypxksLnF2CfmlmM5XFQ==", + "version": "0.182.0", + "resolved": "https://registry.npmjs.org/three/-/three-0.182.0.tgz", + "integrity": "sha512-GbHabT+Irv+ihI1/f5kIIsZ+Ef9Sl5A1Y7imvS5RQjWgtTPfPnZ43JmlYI7NtCRDK9zir20lQpfg8/9Yd02OvQ==", "license": "MIT" }, "node_modules/tinybench": { @@ -9111,13 +9100,13 @@ } }, "node_modules/vite": { - "version": "7.2.7", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.2.7.tgz", - "integrity": "sha512-ITcnkFeR3+fI8P1wMgItjGrR10170d8auB4EpMLPqmx6uxElH3a/hHGQabSHKdqd4FXWO1nFIp9rRn7JQ34ACQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.0.tgz", + "integrity": "sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg==", "dev": true, "license": "MIT", "dependencies": { - "esbuild": "^0.25.0", + "esbuild": "^0.27.0", "fdir": "^6.5.0", "picomatch": "^4.0.3", "postcss": "^8.5.6", @@ -9427,9 +9416,9 @@ } }, "node_modules/vue-router": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.6.3.tgz", - "integrity": "sha512-ARBedLm9YlbvQomnmq91Os7ck6efydTSpRP3nuOKCvgJOHNrhRoJDSKtee8kcL1Vf7nz6U+PMBL+hTvR3bTVQg==", + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.6.4.tgz", + "integrity": "sha512-Hz9q5sa33Yhduglwz6g9skT8OBPii+4bFn88w6J+J4MfEo4KRRpmiNG/hHHkdbRFlLBOqxN8y8gf2Fb0MTUgVg==", "license": "MIT", "dependencies": { "@vue/devtools-api": "^6.6.4" diff --git a/package.json b/package.json index 4913fd60e..281d832c4 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "@fullcalendar/multimonth": "6.1.19", "@fullcalendar/vue3": "6.1.19", "@google/model-viewer": "4.1.0", - "@sentry/vue": "10.29.0", + "@sentry/vue": "10.30.0", "@unhead/vue": "2.0.19", "@vuepic/vue-datepicker": "11.0.3", "async": "3.2.6", @@ -40,7 +40,7 @@ "exceljs": "4.4.0", "fabric": "cgwire/fabric.js", "file-saver": "2.0.5", - "lucide-vue-next": "0.556.0", + "lucide-vue-next": "0.561.0", "marked": "16.4.2", "marked-emoji": "2.0.2", "moment": "2.30.1", @@ -52,7 +52,7 @@ "socket.io-client": "4.8.1", "superagent": "10.2.3", "thenby": "1.3.4", - "three": "0.181.2", + "three": "0.182.0", "uuid": "13.0.0", "v-autosize": "2.0.1", "vue": "3.5.13", @@ -62,7 +62,7 @@ "vue-i18n": "9.14.5", "vue-meta": "2.4.0", "vue-multiselect": "3.4.0", - "vue-router": "4.6.3", + "vue-router": "4.6.4", "vue-websocket-next": "0.2.7", "vue3-emoji-picker": "1.1.8", "vuedraggable": "4.1.0", @@ -71,10 +71,10 @@ "wavesurfer.js": "7.11.1" }, "devDependencies": { - "@vitejs/plugin-vue": "6.0.2", + "@vitejs/plugin-vue": "6.0.3", "@vue/compiler-sfc": "3.5.13", "@vue/test-utils": "2.4.6", - "autoprefixer": "10.4.22", + "autoprefixer": "10.4.23", "eslint": "8.57.1", "eslint-config-prettier": "10.1.8", "eslint-plugin-prettier": "5.5.4", @@ -85,8 +85,8 @@ "lint-staged": "16.2.7", "localStorage": "1.0.4", "prettier": "3.7.4", - "sass": "1.94.2", - "vite": "7.2.7", + "sass": "1.97.0", + "vite": "7.3.0", "vitest": "4.0.15", "vitest-localstorage-mock": "0.1.2" }, diff --git a/src/components/cells/DepartmentNamesCell.vue b/src/components/cells/DepartmentNamesCell.vue index cbea31810..01b33106c 100644 --- a/src/components/cells/DepartmentNamesCell.vue +++ b/src/components/cells/DepartmentNamesCell.vue @@ -1,12 +1,10 @@ @@ -32,13 +30,13 @@ export default { }, computed: { - ...mapGetters(['departmentMap']) - }, + ...mapGetters(['departmentMap']), - methods: { - sortDepartments(departmentIds = []) { + sortedDepartments() { return sortByName( - departmentIds.map(departmentId => this.departmentMap.get(departmentId)) + this.departments + .map(departmentId => this.departmentMap.get(departmentId)) + .filter(Boolean) ) } } diff --git a/src/components/lists/PeopleList.vue b/src/components/lists/PeopleList.vue index a847b1d71..e7ba7fac9 100644 --- a/src/components/lists/PeopleList.vue +++ b/src/components/lists/PeopleList.vue @@ -281,10 +281,6 @@ export default { .departments { width: 180px; min-width: 180px; - - .departments-element { - padding: 5px; - } } .studio { diff --git a/src/components/lists/TaskList.vue b/src/components/lists/TaskList.vue index cd316f4d3..17aa1a94b 100644 --- a/src/components/lists/TaskList.vue +++ b/src/components/lists/TaskList.vue @@ -645,7 +645,7 @@ export default { } else { data = { start_date: null, - due_date: dueDate + due_date: task.due_date } } if (task.difficulty) { @@ -682,7 +682,7 @@ export default { ) } else { data = { - start_date: startDate, + start_date: task.start_date, due_date: null } } diff --git a/src/components/lists/TodosList.vue b/src/components/lists/TodosList.vue index d85d8c782..f83d76de8 100644 --- a/src/components/lists/TodosList.vue +++ b/src/components/lists/TodosList.vue @@ -773,7 +773,7 @@ export default { } else { data = { start_date: null, - due_date: dueDate + due_date: task.due_date } } if (this.isTaskChanged(task, data)) { @@ -807,7 +807,7 @@ export default { ) } else { data = { - start_date: startDate, + start_date: task.start_date, due_date: null } } diff --git a/src/components/modals/EditAssetModal.vue b/src/components/modals/EditAssetModal.vue index 906d692b2..96c54f06d 100644 --- a/src/components/modals/EditAssetModal.vue +++ b/src/components/modals/EditAssetModal.vue @@ -251,13 +251,13 @@ export default { getEntityTypeIdDefaultValue() { let entityTypeId = this.assetToEdit.asset_type_id if (!entityTypeId) { - entityTypeId = this.productionAssetTypeOptions[0].value + entityTypeId = this.productionAssetTypeOptions[0]?.value } - const isInOptions = this.productionAssetTypeOptions.find( + const isInOptions = this.productionAssetTypeOptions.some( option => option.value === entityTypeId ) if (!isInOptions) { - entityTypeId = this.productionAssetTypeOptions[0].value + entityTypeId = this.productionAssetTypeOptions[0]?.value } return entityTypeId }, diff --git a/src/components/modals/EditBackgroundModal.vue b/src/components/modals/EditBackgroundModal.vue index 040e22bc2..f15ae58a0 100644 --- a/src/components/modals/EditBackgroundModal.vue +++ b/src/components/modals/EditBackgroundModal.vue @@ -144,7 +144,7 @@ export default { this.form.name = file.name.slice(0, -4) } this.$nextTick(() => { - this.$refs.nameField.focus() + this.$refs.nameField?.focus() }) }, diff --git a/src/components/pages/Logs.vue b/src/components/pages/Logs.vue index 802ec62d6..0ea618c23 100644 --- a/src/components/pages/Logs.vue +++ b/src/components/pages/Logs.vue @@ -15,7 +15,7 @@ - + diff --git a/src/components/pages/Shots.vue b/src/components/pages/Shots.vue index d366fab19..ec56b28b7 100644 --- a/src/components/pages/Shots.vue +++ b/src/components/pages/Shots.vue @@ -454,7 +454,9 @@ export default { const finalize = () => { this.$nextTick(() => { // Needed to be sure the current production is set - this.loadShots() + this.loadShots(() => { + this.initialLoading = false + }) }) } diff --git a/src/components/pages/Task.vue b/src/components/pages/Task.vue index 096f36665..8a9d2290e 100644 --- a/src/components/pages/Task.vue +++ b/src/components/pages/Task.vue @@ -1288,7 +1288,7 @@ export default { this.$refs['preview-player'].displayFirst() this.deleteTaskPreview({ taskId: this.task.id, - commentId: comment.id, + commentId: comment?.id, previewId: this.currentExtraPreviewId }) .then(() => { diff --git a/src/components/pages/logs/Events.vue b/src/components/pages/logs/Events.vue index cc7a469d5..4046513a0 100644 --- a/src/components/pages/logs/Events.vue +++ b/src/components/pages/logs/Events.vue @@ -17,17 +17,16 @@ - - {{ filteredEvents.length }} {{ $t('logs.events') }} - -
+
{{ $t('logs.empty_list') }}
-
+
@@ -35,7 +34,7 @@ class="event-line" :key="event.id" @click="selectLine(event)" - v-for="event in displayedEvents" + v-for="event in filteredEvents" > {{ event.date }}
@@ -99,6 +99,8 @@ import PeopleField from '@/components/widgets/PeopleField.vue' import PeopleName from '@/components/widgets/PeopleName.vue' import Spinner from '@/components/widgets/Spinner.vue' +const PAGE_SIZE = 1000 + export default { name: 'events', @@ -114,15 +116,16 @@ export default { }, data() { - const PAGE_SIZE = 1000 return { - PAGE_SIZE, currentDate: new Date(), events: [], - isLoading: true, + hasMoreEvents: false, selectedEvents: {}, selectedPerson: null, - displayLimit: PAGE_SIZE + loading: { + events: false, + moreEvents: false + } } }, @@ -145,50 +148,69 @@ export default { ) } return events - }, - - displayedEvents() { - return this.filteredEvents.slice(0, this.displayLimit) - }, - - hasMoreEvents() { - return this.filteredEvents.length > this.displayLimit } }, methods: { ...mapActions(['loadEvents']), - loadDayEvents() { + async loadDayEvents() { const before = moment(this.currentDate).add(1, 'days') const after = moment(this.currentDate) this.selectedEvents = {} - this.displayLimit = this.PAGE_SIZE - this.isLoading = true - this.loadEvents({ - after: formatFullDateWithRevertedTimezone(after, this.timezone), - before: formatFullDateWithRevertedTimezone(before, this.timezone) - }) - .then(events => { - this.events = events.map(event => { - const [name, type] = event.name.split(':') - return { - id: event.id, - date: this.formatDate(event.created_at), - data: event.data, - name, - shortType: type.substring(0, 3), - type, - user_id: event.user_id - } - }) + this.events = [] + this.loading.events = true + try { + const events = await this.loadEvents({ + after: formatFullDateWithRevertedTimezone(after, this.timezone), + before: formatFullDateWithRevertedTimezone(before, this.timezone), + limit: PAGE_SIZE }) - .catch(err => { - console.error(err) - }) - .finally(() => { - this.isLoading = false + this.events = this.formatEvents(events) + this.hasMoreEvents = events.length >= PAGE_SIZE + } catch (err) { + console.error(err) + } finally { + this.loading.events = false + } + }, + + async loadMoreEvents() { + if (!this.events.length) return + + this.loading.moreEvents = true + const lastEventId = this.events[this.events.length - 1].id + const before = moment(this.currentDate).add(1, 'days') + const after = moment(this.currentDate) + try { + const events = await this.loadEvents({ + after: formatFullDateWithRevertedTimezone(after, this.timezone), + before: formatFullDateWithRevertedTimezone(before, this.timezone), + lastEventId, + limit: PAGE_SIZE }) + this.events = [...this.events, ...this.formatEvents(events)] + this.hasMoreEvents = events.length >= PAGE_SIZE + } catch (err) { + console.error(err) + } finally { + this.loading.moreEvents = false + } + }, + + formatEvents(events) { + return events.map(event => { + const [name, type] = event.name.split(':') + return { + id: event.id, + date: this.formatDate(event.created_at), + data: event.data, + name, + shortType: type.substring(0, 3), + type, + user_id: event.user_id + } + }) }, selectLine(event) { diff --git a/src/components/pages/logs/PreviewFiles.vue b/src/components/pages/logs/PreviewFiles.vue index f09f8538a..61644febe 100644 --- a/src/components/pages/logs/PreviewFiles.vue +++ b/src/components/pages/logs/PreviewFiles.vue @@ -3,54 +3,68 @@

{{ $t('logs.preview_files.explanation') }} - + +

+
+ +
+

+ {{ $t('logs.preview_files.empty_list') }}

-
@@ -101,12 +140,12 @@ em { } .status[data-status='broken'] { - color: white; + color: $white; background: $dark-red; } .status[data-status='processing'] { - color: white; + color: $white; background: $blue; } diff --git a/src/components/previews/BrowsingBar.vue b/src/components/previews/BrowsingBar.vue index 47ee1ba0c..1a2b5e1cd 100644 --- a/src/components/previews/BrowsingBar.vue +++ b/src/components/previews/BrowsingBar.vue @@ -97,11 +97,7 @@ export default { }, isMovie() { - if (this.previews.length < this.currentIndex) { - return false - } else { - return this.previews[this.currentIndex - 1].extension === 'mp4' - } + return this.previews[this.currentIndex - 1]?.extension === 'mp4' } } } diff --git a/src/components/previews/PdfViewer.vue b/src/components/previews/PdfViewer.vue index 10946746f..d1a893f45 100644 --- a/src/components/previews/PdfViewer.vue +++ b/src/components/previews/PdfViewer.vue @@ -1,17 +1,12 @@ @@ -119,38 +96,13 @@ watch( width: 100%; } -.loading-background { +.overlay { position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; + inset: 0; display: flex; align-items: center; justify-content: center; background: rgba(0, 0, 0, 0.5); - z-index: 10; - - .spinner { - color: $white; - } -} -.error-message { - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - display: flex; - align-items: center; - justify-content: center; color: $white; - background: rgba(0, 0, 0, 0.5); - - p { - margin: 0; - padding: 1em; - text-align: center; - } } diff --git a/src/components/previews/PreviewViewer.vue b/src/components/previews/PreviewViewer.vue index 197831ac6..b22faffc2 100644 --- a/src/components/previews/PreviewViewer.vue +++ b/src/components/previews/PreviewViewer.vue @@ -88,12 +88,9 @@ />
diff --git a/src/components/sides/TaskInfo.vue b/src/components/sides/TaskInfo.vue index 582f92097..0725f5103 100644 --- a/src/components/sides/TaskInfo.vue +++ b/src/components/sides/TaskInfo.vue @@ -1238,7 +1238,7 @@ export default { this.$refs['preview-player'].displayFirst() this.deleteTaskPreview({ taskId: this.task.id, - commentId: comment.id, + commentId: comment?.id, previewId }) .then(() => { diff --git a/src/components/widgets/ButtonSimple.vue b/src/components/widgets/ButtonSimple.vue index d5e3c65e8..ec9d671c9 100644 --- a/src/components/widgets/ButtonSimple.vue +++ b/src/components/widgets/ButtonSimple.vue @@ -49,6 +49,7 @@ + - - + + {{ department.name }} -