From 8d386150b106fb2f506deb536398d343ae1b3977 Mon Sep 17 00:00:00 2001 From: Tom Herold Date: Mon, 2 Sep 2024 16:51:13 +0200 Subject: [PATCH 01/24] update libs to react 18.3 --- package.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 97cbb6ab595..7755afb2450 100644 --- a/package.json +++ b/package.json @@ -26,8 +26,8 @@ "@types/pako": "^2.0.0", "@types/pixelmatch": "^5.2.4", "@types/pngjs": "^6.0.1", - "@types/react": "^17.0.43", - "@types/react-dom": "^17.0.14", + "@types/react": "^18.3.1", + "@types/react-dom": "^18.3.0", "@types/react-redux": "^7.1.23", "@types/react-router-dom": "^5.3.3", "@types/react-virtualized": "^9.21.21", @@ -186,12 +186,12 @@ "process": "^0.11.10", "protobufjs": "^6.11.4", "rc-util": "^5.24.4", - "react": "^17.0.2", + "react": "^18.3.1", "react-colorful": "^5.6.1", "react-debounce-render": "^8.0.1", "react-dnd": "^16.0.0", "react-dnd-html5-backend": "^16.0.0", - "react-dom": "^17.0.2", + "react-dom": "^18.3.0", "react-dropzone": "^11.3.1", "react-flow-renderer": "^10.3.16", "react-json-tree": "^0.17.0", From 9bbc863f6dae3520c0d56331deb868e4d0d6ea69 Mon Sep 17 00:00:00 2001 From: Tom Herold Date: Mon, 2 Sep 2024 16:51:42 +0200 Subject: [PATCH 02/24] update reactDom to createRoot --- frontend/javascripts/libs/render_independently.tsx | 11 ++++++----- frontend/javascripts/main.tsx | 8 ++++---- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/frontend/javascripts/libs/render_independently.tsx b/frontend/javascripts/libs/render_independently.tsx index 88d23667607..c9d7c6ec2d1 100644 --- a/frontend/javascripts/libs/render_independently.tsx +++ b/frontend/javascripts/libs/render_independently.tsx @@ -3,6 +3,7 @@ import ReactDOM from "react-dom"; import { document } from "libs/window"; import { Provider } from "react-redux"; import GlobalThemeProvider from "theme"; +import { createRoot } from "react-dom/client"; type DestroyFunction = () => void; // The returned promise gets resolved once the element is destroyed. @@ -14,6 +15,7 @@ export default function renderIndependently( import("oxalis/throttled_store").then((_Store) => { const Store = _Store.default; const div = document.createElement("div"); + const react_root = createRoot(div); if (!document.body) { resolve(); @@ -23,21 +25,20 @@ export default function renderIndependently( document.body.appendChild(div); function destroy() { - const unmountResult = ReactDOM.unmountComponentAtNode(div); + react_root.unmount(); - if (unmountResult && div.parentNode) { + if (div.parentNode) { div.parentNode.removeChild(div); } resolve(); } - - ReactDOM.render( + + react_root.render( // @ts-ignore {getComponent(destroy)} , - div, ); }); }); diff --git a/frontend/javascripts/main.tsx b/frontend/javascripts/main.tsx index 9c48adddd51..407e2bb1342 100644 --- a/frontend/javascripts/main.tsx +++ b/frontend/javascripts/main.tsx @@ -1,6 +1,5 @@ import { Provider } from "react-redux"; -import React from "react"; -import ReactDOM from "react-dom"; +import { createRoot } from 'react-dom/client'; import window, { document } from "libs/window"; import rootSaga from "oxalis/model/sagas/root_saga"; import UnthrottledStore, { startSagas } from "oxalis/store"; @@ -103,8 +102,10 @@ document.addEventListener("DOMContentLoaded", async () => { await Promise.all([loadOrganization()]); const containerElement = document.getElementById("main-container"); + if (containerElement) { - ReactDOM.render( + const react_root = createRoot(containerElement); + react_root.render( {/* @ts-ignore */} @@ -121,7 +122,6 @@ document.addEventListener("DOMContentLoaded", async () => { , - containerElement, ); } }); From c55662763d1893b6cf2de058f2f56a13f08e9e55 Mon Sep 17 00:00:00 2001 From: Tom Herold Date: Mon, 2 Sep 2024 16:52:13 +0200 Subject: [PATCH 03/24] remove antd resolutions in package.json --- package.json | 7 +- yarn.lock | 268 ++++++++++++++++++++++++++++++++------------------- 2 files changed, 171 insertions(+), 104 deletions(-) diff --git a/package.json b/package.json index 7755afb2450..909a8eeca76 100644 --- a/package.json +++ b/package.json @@ -143,7 +143,7 @@ "@tanstack/react-query-persist-client": "^4.14.1", "@zip.js/zip.js": "^2.7.32", "ansi-to-react": "^6.1.6", - "antd": "^5.16.0", + "antd": "^5.16.5", "ball-morphology": "^0.1.0", "base64-js": "^1.2.1", "beautiful-react-hooks": "^3.11.1", @@ -215,9 +215,8 @@ }, "resolutions": { "**/mini-store": "^1.1.0", - "**/redux": "3.7.2", - "**/rc-resize-observer": "^1.4.0", - "**/rc-util": "^5.39.1" + "**/redux": "3.7.2" + }, "ava": { "files": [ diff --git a/yarn.lock b/yarn.lock index c618472c9fd..676270ba267 100644 --- a/yarn.lock +++ b/yarn.lock @@ -43,6 +43,15 @@ dependencies: "@ctrl/tinycolor" "^3.6.1" +"@ant-design/cssinjs-utils@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@ant-design/cssinjs-utils/-/cssinjs-utils-1.0.3.tgz#d68e46be9680cf9f416374a03aff0dd11bd1728d" + integrity sha512-BrztZZKuoYcJK8uEH40ylBemf/Mu/QPiDos56g2bv6eUoniQkgQHOCOvA3+pncoFO1TaS8xcUCIqGzDA0I+ZVQ== + dependencies: + "@ant-design/cssinjs" "^1.21.0" + "@babel/runtime" "^7.23.2" + rc-util "^5.38.0" + "@ant-design/cssinjs@^1.21.0": version "1.21.0" resolved "https://registry.yarnpkg.com/@ant-design/cssinjs/-/cssinjs-1.21.0.tgz#de7289bfd71c7a494a28b96569ad88f999619105" @@ -56,12 +65,19 @@ rc-util "^5.35.0" stylis "^4.0.13" +"@ant-design/fast-color@^2.0.6": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@ant-design/fast-color/-/fast-color-2.0.6.tgz#ab4d4455c1542c9017d367c2fa8ca3e4215d0ba2" + integrity sha512-y2217gk4NqL35giHl72o6Zzqji9O7vHh9YmhUVkPtAOpoTCH4uWxo/pr4VE8t0+ChEPs0qo4eJRC5Q1eXWo3vA== + dependencies: + "@babel/runtime" "^7.24.7" + "@ant-design/icons-svg@^4.4.0": version "4.4.2" resolved "https://registry.yarnpkg.com/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz#ed2be7fb4d82ac7e1d45a54a5b06d6cecf8be6f6" integrity sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA== -"@ant-design/icons@^5.3.7", "@ant-design/icons@^5.4.0": +"@ant-design/icons@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ant-design/icons/-/icons-5.4.0.tgz#4bd8f335c68207cc06fe9943d164a81cdfcfbeac" integrity sha512-QZbWC5xQYexCI5q4/fehSEkchJr5UGtvAJweT743qKUQQGs9IH2DehNLP49DJ3Ii9m9CijD2HN6fNy3WKhIFdA== @@ -1223,13 +1239,13 @@ dependencies: "@babel/runtime" "^7.24.4" -"@rc-component/color-picker@~1.5.3": - version "1.5.3" - resolved "https://registry.yarnpkg.com/@rc-component/color-picker/-/color-picker-1.5.3.tgz#f3b0e14bb67ec5ee77d1fd5d261f63dd4fd00449" - integrity sha512-+tGGH3nLmYXTalVe0L8hSZNs73VTP5ueSHwUlDC77KKRaN7G4DS4wcpG5DTDzdcV/Yas+rzA6UGgIyzd8fS4cw== +"@rc-component/color-picker@~2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@rc-component/color-picker/-/color-picker-2.0.1.tgz#6b9b96152466a9d4475cbe72b40b594bfda164be" + integrity sha512-WcZYwAThV/b2GISQ8F+7650r5ZZJ043E57aVBFkQ+kSY4C6wdofXgB0hBx+GPGpIU0Z81eETNoDUJMr7oy/P8Q== dependencies: + "@ant-design/fast-color" "^2.0.6" "@babel/runtime" "^7.23.6" - "@ctrl/tinycolor" "^3.6.1" classnames "^2.2.6" rc-util "^5.38.1" @@ -1284,10 +1300,10 @@ classnames "^2.3.2" rc-util "^5.38.0" -"@rc-component/tour@~1.15.0": - version "1.15.0" - resolved "https://registry.yarnpkg.com/@rc-component/tour/-/tour-1.15.0.tgz#37a66ae5af8eefaf0ab0e22ddd8e6fecdbdc14a7" - integrity sha512-h6hyILDwL+In9GAgRobwRWihLqqsD7Uft3fZGrJ7L4EiyCoxbnNYwzPXDfz7vNDhWeVyvAWQJj9fJCzpI4+b4g== +"@rc-component/tour@~1.15.1": + version "1.15.1" + resolved "https://registry.yarnpkg.com/@rc-component/tour/-/tour-1.15.1.tgz#9b79808254185fc19e964172d99e25e8c6800ded" + integrity sha512-Tr2t7J1DKZUpfJuDZWHxyxWpfmj8EZrqSgyMZ+BCdvKZ6r1UDsfU46M/iWAAFBy961Ssfom2kv5f3UcjIL2CmQ== dependencies: "@babel/runtime" "^7.18.0" "@rc-component/portal" "^1.0.0-9" @@ -1295,7 +1311,7 @@ classnames "^2.3.2" rc-util "^5.24.4" -"@rc-component/trigger@^2.0.0", "@rc-component/trigger@^2.1.1", "@rc-component/trigger@^2.2.0": +"@rc-component/trigger@^2.0.0", "@rc-component/trigger@^2.1.1": version "2.2.0" resolved "https://registry.yarnpkg.com/@rc-component/trigger/-/trigger-2.2.0.tgz#503a48b0895a2cfddee0a5b7b11492c3df2a493d" integrity sha512-QarBCji02YE9aRFhZgRZmOpXBj0IZutRippsVBv85sxvG4FGk/vRxwAlkn3MS9zK5mwbETd86mAVg2tKqTkdJA== @@ -1307,6 +1323,18 @@ rc-resize-observer "^1.3.1" rc-util "^5.38.0" +"@rc-component/trigger@^2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@rc-component/trigger/-/trigger-2.2.1.tgz#e6c5c1d9b36550104e23fe5c4e347170c77fb611" + integrity sha512-fuU11J8pOt6+U/tU6/CAv8wjCwGaNeRk9f5k8HQth7JBbJ6MMH62WhGycVW75VnXfBZgL/7kO+wbiO2Xc9U9sQ== + dependencies: + "@babel/runtime" "^7.23.2" + "@rc-component/portal" "^1.1.0" + classnames "^2.3.2" + rc-motion "^2.0.0" + rc-resize-observer "^1.3.1" + rc-util "^5.38.0" + "@react-dnd/asap@^5.0.1": version "5.0.2" resolved "https://registry.yarnpkg.com/@react-dnd/asap/-/asap-5.0.2.tgz#1f81f124c1cd6f39511c11a881cfb0f715343488" @@ -2066,10 +2094,10 @@ resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== -"@types/react-dom@^17.0.14": - version "17.0.14" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.14.tgz#c8f917156b652ddf807711f5becbd2ab018dea9f" - integrity sha512-H03xwEP1oXmSfl3iobtmQ/2dHF5aBHr8aUMwyGZya6OW45G+xtdzmq6HkncefiBt5JU8DVyaWl/nWZbjZCnzAQ== +"@types/react-dom@^18.3.0": + version "18.3.0" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.3.0.tgz#0cbc818755d87066ab6ca74fbedb2547d74a82b0" + integrity sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg== dependencies: "@types/react" "*" @@ -2125,13 +2153,12 @@ "@types/scheduler" "*" csstype "^3.0.2" -"@types/react@^17.0.43": - version "17.0.43" - resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.43.tgz#4adc142887dd4a2601ce730bc56c3436fdb07a55" - integrity sha512-8Q+LNpdxf057brvPu1lMtC5Vn7J119xrP1aq4qiaefNioQUYANF/CYeK4NsKorSZyUGJ66g0IM+4bbjwx45o2A== +"@types/react@^18.3.1": + version "18.3.5" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.5.tgz#5f524c2ad2089c0ff372bbdabc77ca2c4dbadf8f" + integrity sha512-WeqMfGJLGuLCqHGYRGHxnKrXcTitc6L/nBUWfWPcTarG3t9PsquqUMuVeXZeca+mglY4Vo5GZjCi0A3Or2lnxA== dependencies: "@types/prop-types" "*" - "@types/scheduler" "*" csstype "^3.0.2" "@types/request@2.48.7": @@ -2681,22 +2708,23 @@ ansi-to-react@^6.1.6: anser "^1.4.1" escape-carriage "^1.3.0" -antd@^5.16.0: - version "5.19.2" - resolved "https://registry.yarnpkg.com/antd/-/antd-5.19.2.tgz#54e367514e062f065147e912108fa69ec9295017" - integrity sha512-377Sqqbr5PQj1rwLXqjSSAB23sNO6KCsFm0LKjU6OdpHktdDk7MYcqep3q/Azo7tHrqgE+EntxaTk4lY0dx8eA== +antd@^5.16.5: + version "5.20.4" + resolved "https://registry.yarnpkg.com/antd/-/antd-5.20.4.tgz#91fa4cbe719f196c94a20178635a0c02bcfe207a" + integrity sha512-ZBJYXuiaBUQdv+zrecbQyCX1oUnmQQUkaMd5EeACADeeSfWLAJOqC7cgtsp18420zw8aWTyrJ1TiruW4bHECSA== dependencies: "@ant-design/colors" "^7.1.0" "@ant-design/cssinjs" "^1.21.0" - "@ant-design/icons" "^5.3.7" + "@ant-design/cssinjs-utils" "^1.0.3" + "@ant-design/icons" "^5.4.0" "@ant-design/react-slick" "~1.1.2" - "@babel/runtime" "^7.24.7" + "@babel/runtime" "^7.24.8" "@ctrl/tinycolor" "^3.6.1" - "@rc-component/color-picker" "~1.5.3" + "@rc-component/color-picker" "~2.0.1" "@rc-component/mutate-observer" "^1.1.0" "@rc-component/qrcode" "~1.0.0" - "@rc-component/tour" "~1.15.0" - "@rc-component/trigger" "^2.2.0" + "@rc-component/tour" "~1.15.1" + "@rc-component/trigger" "^2.2.1" classnames "^2.5.1" copy-to-clipboard "^3.3.3" dayjs "^1.11.11" @@ -2706,34 +2734,34 @@ antd@^5.16.0: rc-dialog "~9.5.2" rc-drawer "~7.2.0" rc-dropdown "~4.2.0" - rc-field-form "~2.2.1" + rc-field-form "~2.4.0" rc-image "~7.9.0" - rc-input "~1.5.1" - rc-input-number "~9.1.0" - rc-mentions "~2.14.0" + rc-input "~1.6.3" + rc-input-number "~9.2.0" + rc-mentions "~2.15.0" rc-menu "~9.14.1" rc-motion "^2.9.2" rc-notification "~5.6.0" rc-pagination "~4.2.0" - rc-picker "~4.6.9" + rc-picker "~4.6.14" rc-progress "~4.0.0" rc-rate "~2.13.0" rc-resize-observer "^1.4.0" rc-segmented "~2.3.0" - rc-select "~14.15.0" - rc-slider "~10.6.2" + rc-select "~14.15.1" + rc-slider "~11.1.5" rc-steps "~6.0.1" rc-switch "~4.1.0" rc-table "~7.45.7" rc-tabs "~15.1.1" - rc-textarea "~1.7.0" + rc-textarea "~1.8.1" rc-tooltip "~6.2.0" rc-tree "~5.8.8" - rc-tree-select "~5.22.1" - rc-upload "~4.6.0" + rc-tree-select "~5.22.2" + rc-upload "~4.7.0" rc-util "^5.43.0" scroll-into-view-if-needed "^3.1.0" - throttle-debounce "^5.0.0" + throttle-debounce "^5.0.2" any-base@^1.1.0: version "1.1.0" @@ -8383,10 +8411,10 @@ rc-dropdown@~4.2.0: classnames "^2.2.6" rc-util "^5.17.0" -rc-field-form@~2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/rc-field-form/-/rc-field-form-2.2.1.tgz#0a8c76a0103535c229311dac7f91d32ea13cd3bc" - integrity sha512-uoNqDoR7A4tn4QTSqoWPAzrR7ZwOK5I+vuZ/qdcHtbKx+ZjEsTg7QXm2wk/jalDiSksAQmATxL0T5LJkRREdIA== +rc-field-form@~2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/rc-field-form/-/rc-field-form-2.4.0.tgz#26997160d12ae43a94c356c1290bfc011c69b3ca" + integrity sha512-XZ/lF9iqf9HXApIHQHqzJK5v2w4mkUMsVqAzOyWVzoiwwXEavY6Tpuw7HavgzIoD+huVff4JghSGcgEfX6eycg== dependencies: "@babel/runtime" "^7.18.0" "@rc-component/async-validator" "^5.0.3" @@ -8404,37 +8432,37 @@ rc-image@~7.9.0: rc-motion "^2.6.2" rc-util "^5.34.1" -rc-input-number@~9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/rc-input-number/-/rc-input-number-9.1.0.tgz#fd577db284b65548c156500322a2feaa04321565" - integrity sha512-NqJ6i25Xn/AgYfVxynlevIhX3FuKlMwIFpucGG1h98SlK32wQwDK0zhN9VY32McOmuaqzftduNYWWooWz8pXQA== +rc-input-number@~9.2.0: + version "9.2.0" + resolved "https://registry.yarnpkg.com/rc-input-number/-/rc-input-number-9.2.0.tgz#7e9344ff054421d2bfff0eebd7c1b8ef22d12220" + integrity sha512-5XZFhBCV5f9UQ62AZ2hFbEY8iZT/dm23Q1kAg0H8EvOgD3UDbYYJAayoVIkM3lQaCqYAW5gV0yV3vjw1XtzWHg== dependencies: "@babel/runtime" "^7.10.1" "@rc-component/mini-decimal" "^1.0.1" classnames "^2.2.5" - rc-input "~1.5.0" + rc-input "~1.6.0" rc-util "^5.40.1" -rc-input@~1.5.0, rc-input@~1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/rc-input/-/rc-input-1.5.1.tgz#36d37eb045f1fa17de7da1a3fab94edfa331ab92" - integrity sha512-+nOzQJDeIfIpNP/SgY45LXSKbuMlp4Yap2y8c+ZpU7XbLmNzUd6+d5/S75sA/52jsVE6S/AkhkkDEAOjIu7i6g== +rc-input@~1.6.0, rc-input@~1.6.3: + version "1.6.3" + resolved "https://registry.yarnpkg.com/rc-input/-/rc-input-1.6.3.tgz#f1708fc3d5e68f95cb20faeb3eed1df8543cd444" + integrity sha512-wI4NzuqBS8vvKr8cljsvnTUqItMfG1QbJoxovCgL+DX4eVUcHIjVwharwevIxyy7H/jbLryh+K7ysnJr23aWIA== dependencies: "@babel/runtime" "^7.11.1" classnames "^2.2.1" rc-util "^5.18.1" -rc-mentions@~2.14.0: - version "2.14.0" - resolved "https://registry.yarnpkg.com/rc-mentions/-/rc-mentions-2.14.0.tgz#7cad133de2e95b7478c0ebb5d2a4315dbe9bda29" - integrity sha512-qKR59FMuF8PK4ZqsbWX3UuA5P1M/snzyqV6Yt3y1DCFbCEdqUGIBgQp6vEfLCO6Z0RoRFlzXtCeSlBTcDDpg1A== +rc-mentions@~2.15.0: + version "2.15.0" + resolved "https://registry.yarnpkg.com/rc-mentions/-/rc-mentions-2.15.0.tgz#ada022b32e68fa067a859ee0024c3f2aa7a9c871" + integrity sha512-f5v5i7VdqvBDXbphoqcQWmXDif2Msd2arritVoWybrVDuHE6nQ7XCYsybHbV//WylooK52BFDouFvyaRDtXZEw== dependencies: "@babel/runtime" "^7.22.5" "@rc-component/trigger" "^2.0.0" classnames "^2.2.6" - rc-input "~1.5.0" + rc-input "~1.6.0" rc-menu "~9.14.0" - rc-textarea "~1.7.0" + rc-textarea "~1.8.0" rc-util "^5.34.1" rc-menu@~9.14.0, rc-menu@~9.14.1: @@ -8523,10 +8551,10 @@ rc-pagination@~4.2.0: classnames "^2.3.2" rc-util "^5.38.0" -rc-picker@~4.6.9: - version "4.6.9" - resolved "https://registry.yarnpkg.com/rc-picker/-/rc-picker-4.6.9.tgz#b8bf0c648f50374e63d96b647a14580b6d7f9469" - integrity sha512-kwQq5xDNJ1VcX7pauLlVBiuQorpZGUwA/YczVJTO1e33YsTyDuVjaQkYAiAupXbEPUBCU3doGZo0J25HGq2ZOQ== +rc-picker@~4.6.14: + version "4.6.14" + resolved "https://registry.yarnpkg.com/rc-picker/-/rc-picker-4.6.14.tgz#86f6836794a593a54b929cfde201f42f02ef85b0" + integrity sha512-7DuTfUFdkxmsNpWQ0TWv6FPGna5e6KKC4nxtx3x9xhumLz7jb3fhlDdWQvqEL6tpt9DOb1+N5j+wB+lDOSS9kg== dependencies: "@babel/runtime" "^7.24.7" "@rc-component/trigger" "^2.0.0" @@ -8586,10 +8614,23 @@ rc-select@~14.15.0: rc-util "^5.16.1" rc-virtual-list "^3.5.2" -rc-slider@~10.6.2: - version "10.6.2" - resolved "https://registry.yarnpkg.com/rc-slider/-/rc-slider-10.6.2.tgz#8bd3b63b24f2f3682ea1bf86d021073189cf33eb" - integrity sha512-FjkoFjyvUQWcBo1F3RgSglky3ar0+qHLM41PlFVYB4Bj3RD8E/Mv7kqMouLFBU+3aFglMzzctAIWRwajEuueSw== +rc-select@~14.15.1: + version "14.15.1" + resolved "https://registry.yarnpkg.com/rc-select/-/rc-select-14.15.1.tgz#1c8ab356cfdf1b24e974d62aec752620845d95a7" + integrity sha512-mGvuwW1RMm1NCSI8ZUoRoLRK51R2Nb+QJnmiAvbDRcjh2//ulCkxeV6ZRFTECPpE1t2DPfyqZMPw90SVJzQ7wQ== + dependencies: + "@babel/runtime" "^7.10.1" + "@rc-component/trigger" "^2.1.1" + classnames "2.x" + rc-motion "^2.0.1" + rc-overflow "^1.3.1" + rc-util "^5.16.1" + rc-virtual-list "^3.5.2" + +rc-slider@~11.1.5: + version "11.1.5" + resolved "https://registry.yarnpkg.com/rc-slider/-/rc-slider-11.1.5.tgz#9a596464a36d78feb90589fee4eb0bf7cec40584" + integrity sha512-b77H5PbjMKsvkYXAYIkn50QuFX6ICQmCTibDinI9q+BHx65/TV4TeU25+oadhSRzykxs0/vBWeKBwRyySOeWlg== dependencies: "@babel/runtime" "^7.10.1" classnames "^2.2.5" @@ -8638,14 +8679,14 @@ rc-tabs@~15.1.1: rc-resize-observer "^1.0.0" rc-util "^5.34.1" -rc-textarea@~1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/rc-textarea/-/rc-textarea-1.7.0.tgz#115c421359dddee58c601008ec2209b41cb8f8df" - integrity sha512-UxizYJkWkmxP3zofXgc487QiGyDmhhheDLLjIWbFtDmiru1ls30KpO8odDaPyqNUIy9ugj5djxTEuezIn6t3Jg== +rc-textarea@~1.8.0, rc-textarea@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/rc-textarea/-/rc-textarea-1.8.1.tgz#0313ed2e7980269e1bd4f3c203a4e9a84cad8e2d" + integrity sha512-bm36N2ZqwZAP60ZQg2OY9mPdqWC+m6UTjHc+CqEZOxb3Ia29BGHazY/s5bI8M4113CkqTzhtFUDNA078ZiOx3Q== dependencies: "@babel/runtime" "^7.10.1" classnames "^2.2.1" - rc-input "~1.5.0" + rc-input "~1.6.0" rc-resize-observer "^1.0.0" rc-util "^5.27.0" @@ -8658,10 +8699,10 @@ rc-tooltip@~6.2.0: "@rc-component/trigger" "^2.0.0" classnames "^2.3.1" -rc-tree-select@~5.22.1: - version "5.22.1" - resolved "https://registry.yarnpkg.com/rc-tree-select/-/rc-tree-select-5.22.1.tgz#02daa09624378107f4c13d4deadcf6327c669cd8" - integrity sha512-b8mAK52xEpRgS+b2PTapCt29GoIrO5cO8jB7AfHttFsIJfcnynY9FCtnYzURsKXJkGHbFY6UzSEB2I3TETtdWg== +rc-tree-select@~5.22.2: + version "5.22.2" + resolved "https://registry.yarnpkg.com/rc-tree-select/-/rc-tree-select-5.22.2.tgz#c2fcd50074574c639ef7a4c0bba45d88d9b05246" + integrity sha512-WHmWCck4+8mf4/KFTjw70AlnoNPkX4C1TOIzzwxfZ7w8hcNO4bzggoeO2Q3fAedjZteN5I3t2dT0BCZAnHedlQ== dependencies: "@babel/runtime" "^7.10.1" classnames "2.x" @@ -8691,16 +8732,16 @@ rc-tree@~5.8.8: rc-util "^5.16.1" rc-virtual-list "^3.5.1" -rc-upload@~4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/rc-upload/-/rc-upload-4.6.0.tgz#6f6d8ea4fe52ab4cd1d0d025da621e96d035c767" - integrity sha512-Zr0DT1NHw/ApxrP7UAoxOtGaVYuzarrrCVr0ld7RiEFsKX07uFhE1EpCBxwL11ruFn89GMcshOKWp+s6FLyAlA== +rc-upload@~4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/rc-upload/-/rc-upload-4.7.0.tgz#719c6e66549844f4db8c57f066f2758c0a43b525" + integrity sha512-eUwxYNHlsYe5vYhKFAUGrQG95JrnPzY+BmPi1Daq39fWNl/eOc7v4UODuWrVp2LFkQBuV3cMCG/I68iub6oBrg== dependencies: "@babel/runtime" "^7.18.3" classnames "^2.2.5" rc-util "^5.2.0" -rc-util@^5.0.1, rc-util@^5.16.1, rc-util@^5.17.0, rc-util@^5.18.1, rc-util@^5.2.0, rc-util@^5.2.1, rc-util@^5.20.1, rc-util@^5.21.0, rc-util@^5.24.4, rc-util@^5.25.2, rc-util@^5.27.0, rc-util@^5.30.0, rc-util@^5.31.1, rc-util@^5.32.2, rc-util@^5.34.1, rc-util@^5.35.0, rc-util@^5.36.0, rc-util@^5.37.0, rc-util@^5.38.0, rc-util@^5.38.1, rc-util@^5.39.1, rc-util@^5.40.1, rc-util@^5.43.0: +rc-util@^5.0.1, rc-util@^5.16.1, rc-util@^5.17.0, rc-util@^5.18.1, rc-util@^5.2.0, rc-util@^5.2.1, rc-util@^5.20.1, rc-util@^5.21.0, rc-util@^5.24.4, rc-util@^5.25.2, rc-util@^5.27.0, rc-util@^5.30.0, rc-util@^5.31.1, rc-util@^5.32.2, rc-util@^5.34.1, rc-util@^5.35.0, rc-util@^5.36.0, rc-util@^5.37.0, rc-util@^5.38.0, rc-util@^5.38.1, rc-util@^5.40.1, rc-util@^5.43.0: version "5.43.0" resolved "https://registry.yarnpkg.com/rc-util/-/rc-util-5.43.0.tgz#bba91fbef2c3e30ea2c236893746f3e9b05ecc4c" integrity sha512-AzC7KKOXFqAdIBqdGWepL9Xn7cm3vnAmjlHqUnoQaTMZYhM4VlXGLkkHHxj/BZ7Td0+SOPKB4RGPboBVKT9htw== @@ -8782,14 +8823,13 @@ react-dom@^16.13.1: prop-types "^15.6.2" scheduler "^0.19.1" -react-dom@^17.0.2: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23" - integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA== +react-dom@^18.3.0: + version "18.3.1" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.3.1.tgz#c2265d79511b57d479b3dd3fdfa51536494c5cb4" + integrity sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw== dependencies: loose-envify "^1.1.0" - object-assign "^4.1.1" - scheduler "^0.20.2" + scheduler "^0.23.2" react-dropzone@^11.3.1: version "11.3.1" @@ -8957,13 +8997,12 @@ react@^16.13.1: object-assign "^4.1.1" prop-types "^15.6.2" -react@^17.0.2: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" - integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== +react@^18.3.1: + version "18.3.1" + resolved "https://registry.yarnpkg.com/react/-/react-18.3.1.tgz#49ab892009c53933625bd16b2533fc754cab2891" + integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ== dependencies: loose-envify "^1.1.0" - object-assign "^4.1.1" read-chunk@^1.0.1: version "1.0.1" @@ -9423,13 +9462,12 @@ scheduler@^0.19.1: loose-envify "^1.1.0" object-assign "^4.1.1" -scheduler@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91" - integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ== +scheduler@^0.23.2: + version "0.23.2" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.2.tgz#414ba64a3b282892e944cf2108ecc078d115cdc3" + integrity sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ== dependencies: loose-envify "^1.1.0" - object-assign "^4.1.1" schema-utils@^3.0.0, schema-utils@^3.1.0, schema-utils@^3.1.1: version "3.1.1" @@ -9916,7 +9954,16 @@ string-convert@^0.2.0: resolved "https://registry.yarnpkg.com/string-convert/-/string-convert-0.2.1.tgz#6982cc3049fbb4cd85f8b24568b9d9bf39eeff97" integrity sha1-aYLMMEn7tM2F+LJFaLnZvznu/5c= -"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0": + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -9979,7 +10026,14 @@ stringify-entities@^4.0.0: character-entities-html4 "^2.0.0" character-entities-legacy "^3.0.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -10180,6 +10234,11 @@ throttle-debounce@^5.0.0: resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-5.0.0.tgz#a17a4039e82a2ed38a5e7268e4132d6960d41933" integrity sha512-2iQTSgkkc1Zyk0MeVrt/3BvuOXYPl/R8Z0U2xxo9rjwNciaHDG3R+Lm6dh4EeUci49DanvBnuqI6jshoQQRGEg== +throttle-debounce@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-5.0.2.tgz#ec5549d84e053f043c9fd0f2a6dd892ff84456b1" + integrity sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A== + through2@~0.4.1: version "0.4.2" resolved "https://registry.yarnpkg.com/through2/-/through2-0.4.2.tgz#dbf5866031151ec8352bb6c4db64a2292a840b9b" @@ -11051,7 +11110,16 @@ worker-loader@^3.0.8: loader-utils "^2.0.0" schema-utils "^3.0.0" -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== From 0c4b43470f7139588cabdde662f04f1c4a6533f4 Mon Sep 17 00:00:00 2001 From: Tom Herold Date: Mon, 2 Sep 2024 17:54:12 +0200 Subject: [PATCH 04/24] update antd to version 5.17.4 --- .../javascripts/libs/render_independently.tsx | 6 +- frontend/javascripts/main.tsx | 5 +- package.json | 6 +- yarn.lock | 489 ++++++------------ 4 files changed, 168 insertions(+), 338 deletions(-) diff --git a/frontend/javascripts/libs/render_independently.tsx b/frontend/javascripts/libs/render_independently.tsx index c9d7c6ec2d1..902f160f677 100644 --- a/frontend/javascripts/libs/render_independently.tsx +++ b/frontend/javascripts/libs/render_independently.tsx @@ -15,7 +15,7 @@ export default function renderIndependently( import("oxalis/throttled_store").then((_Store) => { const Store = _Store.default; const div = document.createElement("div"); - const react_root = createRoot(div); + const react_root = createRoot(div); if (!document.body) { resolve(); @@ -25,7 +25,7 @@ export default function renderIndependently( document.body.appendChild(div); function destroy() { - react_root.unmount(); + react_root.unmount(); if (div.parentNode) { div.parentNode.removeChild(div); @@ -33,7 +33,7 @@ export default function renderIndependently( resolve(); } - + react_root.render( // @ts-ignore diff --git a/frontend/javascripts/main.tsx b/frontend/javascripts/main.tsx index 407e2bb1342..f6d4200c44c 100644 --- a/frontend/javascripts/main.tsx +++ b/frontend/javascripts/main.tsx @@ -1,5 +1,5 @@ import { Provider } from "react-redux"; -import { createRoot } from 'react-dom/client'; +import { createRoot } from "react-dom/client"; import window, { document } from "libs/window"; import rootSaga from "oxalis/model/sagas/root_saga"; import UnthrottledStore, { startSagas } from "oxalis/store"; @@ -102,9 +102,8 @@ document.addEventListener("DOMContentLoaded", async () => { await Promise.all([loadOrganization()]); const containerElement = document.getElementById("main-container"); - if (containerElement) { - const react_root = createRoot(containerElement); + const react_root = createRoot(containerElement); react_root.render( {/* @ts-ignore */} diff --git a/package.json b/package.json index 909a8eeca76..c15ed938cf1 100644 --- a/package.json +++ b/package.json @@ -107,7 +107,7 @@ "stash-pop-cmake-cache": "[ -f webknossos-jni/target/native/x86_64-linux/build/CMakeCache.txt.bak ] && mv webknossos-jni/target/native/x86_64-linux/build/CMakeCache.txt.bak webknossos-jni/target/native/x86_64-linux/build/CMakeCache.txt || true", "refresh-e2e-snapshots": "yarn remove-e2e-snapshots && mkdir -p frontend/javascripts/test/snapshots/type-check && yarn stash-cmake-cache && docker compose down && docker compose up e2e-tests && yarn stash-pop-cmake-cache", "refresh-all-snapshots": "yarn remove-all-snapshots && yarn test && yarn refresh-e2e-snapshots", - "check-frontend": "yarn run biome check frontend --organize-imports-enabled=false && tools/assert-no-test-only.sh", + "check-frontend": "yarn run biome check frontend package.json --organize-imports-enabled=false && tools/assert-no-test-only.sh", "fix-frontend": "yarn run biome check frontend package.json --write --organize-imports-enabled=false && echo Please proofread the applied suggestions, as they may not be safe.", "format-backend": "sbt \";scalafmt; util/scalafmt; webknossosTracingstore/scalafmt; webknossosDatastore/scalafmt\"", "lint-backend": "sbt \";scapegoat\"", @@ -143,7 +143,7 @@ "@tanstack/react-query-persist-client": "^4.14.1", "@zip.js/zip.js": "^2.7.32", "ansi-to-react": "^6.1.6", - "antd": "^5.16.5", + "antd": "5.17.4", "ball-morphology": "^0.1.0", "base64-js": "^1.2.1", "beautiful-react-hooks": "^3.11.1", @@ -185,7 +185,6 @@ "pretty-bytes": "^5.1.0", "process": "^0.11.10", "protobufjs": "^6.11.4", - "rc-util": "^5.24.4", "react": "^18.3.1", "react-colorful": "^5.6.1", "react-debounce-render": "^8.0.1", @@ -216,7 +215,6 @@ "resolutions": { "**/mini-store": "^1.1.0", "**/redux": "3.7.2" - }, "ava": { "files": [ diff --git a/yarn.lock b/yarn.lock index 676270ba267..0f992a67c80 100644 --- a/yarn.lock +++ b/yarn.lock @@ -36,26 +36,17 @@ dependencies: "@ctrl/tinycolor" "^3.6.1" -"@ant-design/colors@^7.1.0": +"@ant-design/colors@^7.0.2": version "7.1.0" resolved "https://registry.yarnpkg.com/@ant-design/colors/-/colors-7.1.0.tgz#60eadfa2e21871d8948dac5d50b9f056062f8af3" integrity sha512-MMoDGWn1y9LdQJQSHiCC20x3uZ3CwQnv9QMz6pCmJOrqdgM9YxsoVVY0wtrdXbmfSgnV0KNk6zi09NAhMR2jvg== dependencies: "@ctrl/tinycolor" "^3.6.1" -"@ant-design/cssinjs-utils@^1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@ant-design/cssinjs-utils/-/cssinjs-utils-1.0.3.tgz#d68e46be9680cf9f416374a03aff0dd11bd1728d" - integrity sha512-BrztZZKuoYcJK8uEH40ylBemf/Mu/QPiDos56g2bv6eUoniQkgQHOCOvA3+pncoFO1TaS8xcUCIqGzDA0I+ZVQ== - dependencies: - "@ant-design/cssinjs" "^1.21.0" - "@babel/runtime" "^7.23.2" - rc-util "^5.38.0" - -"@ant-design/cssinjs@^1.21.0": - version "1.21.0" - resolved "https://registry.yarnpkg.com/@ant-design/cssinjs/-/cssinjs-1.21.0.tgz#de7289bfd71c7a494a28b96569ad88f999619105" - integrity sha512-gIilraPl+9EoKdYxnupxjHB/Q6IHNRjEXszKbDxZdsgv4sAZ9pjkCq8yanDWNvyfjp4leir2OVAJm0vxwKK8YA== +"@ant-design/cssinjs@^1.19.1": + version "1.21.1" + resolved "https://registry.yarnpkg.com/@ant-design/cssinjs/-/cssinjs-1.21.1.tgz#7320813c5f747e0cde52c388eff5198d78d57230" + integrity sha512-tyWnlK+XH7Bumd0byfbCiZNK43HEubMoCcu9VxwsAwiHdHTgWa+tMN0/yvxa+e8EzuFP1WdUNNPclRpVtD33lg== dependencies: "@babel/runtime" "^7.11.1" "@emotion/hash" "^0.8.0" @@ -63,21 +54,14 @@ classnames "^2.3.1" csstype "^3.1.3" rc-util "^5.35.0" - stylis "^4.0.13" - -"@ant-design/fast-color@^2.0.6": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@ant-design/fast-color/-/fast-color-2.0.6.tgz#ab4d4455c1542c9017d367c2fa8ca3e4215d0ba2" - integrity sha512-y2217gk4NqL35giHl72o6Zzqji9O7vHh9YmhUVkPtAOpoTCH4uWxo/pr4VE8t0+ChEPs0qo4eJRC5Q1eXWo3vA== - dependencies: - "@babel/runtime" "^7.24.7" + stylis "^4.3.3" "@ant-design/icons-svg@^4.4.0": version "4.4.2" resolved "https://registry.yarnpkg.com/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz#ed2be7fb4d82ac7e1d45a54a5b06d6cecf8be6f6" integrity sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA== -"@ant-design/icons@^5.4.0": +"@ant-design/icons@^5.3.7", "@ant-design/icons@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@ant-design/icons/-/icons-5.4.0.tgz#4bd8f335c68207cc06fe9943d164a81cdfcfbeac" integrity sha512-QZbWC5xQYexCI5q4/fehSEkchJr5UGtvAJweT743qKUQQGs9IH2DehNLP49DJ3Ii9m9CijD2HN6fNy3WKhIFdA== @@ -364,34 +348,20 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/runtime@^7.10.1", "@babel/runtime@^7.10.4", "@babel/runtime@^7.11.1": - version "7.13.10" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.13.10.tgz#47d42a57b6095f4468da440388fdbad8bebf0d7d" - integrity sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.24.8": - version "7.25.0" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.25.0.tgz#3af9a91c1b739c569d5d80cc917280919c544ecb" - integrity sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw== +"@babel/runtime@^7.10.1", "@babel/runtime@^7.10.4", "@babel/runtime@^7.11.1", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.7", "@babel/runtime@^7.18.0", "@babel/runtime@^7.18.3", "@babel/runtime@^7.20.0", "@babel/runtime@^7.20.7", "@babel/runtime@^7.21.0", "@babel/runtime@^7.22.5", "@babel/runtime@^7.23.2", "@babel/runtime@^7.23.6", "@babel/runtime@^7.23.9", "@babel/runtime@^7.24.4", "@babel/runtime@^7.24.5", "@babel/runtime@^7.24.8": + version "7.25.6" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.25.6.tgz#9afc3289f7184d8d7f98b099884c26317b9264d2" + integrity sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ== dependencies: regenerator-runtime "^0.14.0" -"@babel/runtime@^7.16.7", "@babel/runtime@^7.18.3", "@babel/runtime@^7.18.9": +"@babel/runtime@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.9.tgz#b4fcfce55db3d2e5e080d2490f608a3b9f407f4a" integrity sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw== dependencies: regenerator-runtime "^0.13.4" -"@babel/runtime@^7.18.0": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.2.tgz#674575748fa99cf03694e77fc00de8e5117b42a0" - integrity sha512-mTV1PibQHr88R1p4nH/uhR/TJ0mXGEgKTx6Mnd1cn/DSA9r8fqbd+d31xujI2C1pRWtxjy+HAcmtB+MEcF4VNg== - dependencies: - regenerator-runtime "^0.13.4" - "@babel/runtime@^7.2.0": version "7.22.6" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.6.tgz#57d64b9ae3cff1d67eb067ae117dac087f5bd438" @@ -399,27 +369,6 @@ dependencies: regenerator-runtime "^0.13.11" -"@babel/runtime@^7.20.0", "@babel/runtime@^7.20.7": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.5.tgz#11edb98f8aeec529b82b211028177679144242db" - integrity sha512-NdUTHcPe4C99WxPub+K9l9tK5/lV4UXIoaHSYgzco9BCyjKAAwzdBI+wWtYqHt7LJdbo74ZjRPJgzVweq1sz0w== - dependencies: - regenerator-runtime "^0.14.0" - -"@babel/runtime@^7.21.0", "@babel/runtime@^7.22.5", "@babel/runtime@^7.23.2", "@babel/runtime@^7.23.6": - version "7.23.8" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.8.tgz#8ee6fe1ac47add7122902f257b8ddf55c898f650" - integrity sha512-Y7KbAP984rn1VGMbGqKmBLio9V7y5Je9GvU4rQPCPinCyNfUcToxIXl06d59URp/F3LwinvODxab5N/G6qggkw== - dependencies: - regenerator-runtime "^0.14.0" - -"@babel/runtime@^7.23.9", "@babel/runtime@^7.24.4", "@babel/runtime@^7.24.7": - version "7.24.8" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.24.8.tgz#5d958c3827b13cc6d05e038c07fb2e5e3420d82e" - integrity sha512-5F7SDGs1T72ZczbRwbGO9lQi0NLjQxzl6i4lJxLxfW9U5UluCSyEJeniWvnhl3/euNiqQVbo8zruhsDfid0esA== - dependencies: - regenerator-runtime "^0.14.0" - "@babel/template@^7.16.0": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.0.tgz#d16a35ebf4cd74e202083356fab21dd89363ddd6" @@ -1239,13 +1188,13 @@ dependencies: "@babel/runtime" "^7.24.4" -"@rc-component/color-picker@~2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@rc-component/color-picker/-/color-picker-2.0.1.tgz#6b9b96152466a9d4475cbe72b40b594bfda164be" - integrity sha512-WcZYwAThV/b2GISQ8F+7650r5ZZJ043E57aVBFkQ+kSY4C6wdofXgB0hBx+GPGpIU0Z81eETNoDUJMr7oy/P8Q== +"@rc-component/color-picker@~1.5.3": + version "1.5.3" + resolved "https://registry.yarnpkg.com/@rc-component/color-picker/-/color-picker-1.5.3.tgz#f3b0e14bb67ec5ee77d1fd5d261f63dd4fd00449" + integrity sha512-+tGGH3nLmYXTalVe0L8hSZNs73VTP5ueSHwUlDC77KKRaN7G4DS4wcpG5DTDzdcV/Yas+rzA6UGgIyzd8fS4cw== dependencies: - "@ant-design/fast-color" "^2.0.6" "@babel/runtime" "^7.23.6" + "@ctrl/tinycolor" "^3.6.1" classnames "^2.2.6" rc-util "^5.38.1" @@ -1273,16 +1222,7 @@ classnames "^2.3.2" rc-util "^5.24.4" -"@rc-component/portal@^1.0.0-8", "@rc-component/portal@^1.0.2": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@rc-component/portal/-/portal-1.1.0.tgz#6b94450d2c2b00d50b141bd7a0be23bd96503dbe" - integrity sha512-tbXM9SB1r5FOuZjRCljERFByFiEUcMmCWMXLog/NmgCzlAzreXyf23Vei3ZpSMxSMavzPnhCovfZjZdmxS3d1w== - dependencies: - "@babel/runtime" "^7.18.0" - classnames "^2.3.2" - rc-util "^5.24.4" - -"@rc-component/portal@^1.0.0-9", "@rc-component/portal@^1.1.0", "@rc-component/portal@^1.1.1": +"@rc-component/portal@^1.0.0-8", "@rc-component/portal@^1.0.0-9", "@rc-component/portal@^1.0.2", "@rc-component/portal@^1.1.0", "@rc-component/portal@^1.1.1": version "1.1.2" resolved "https://registry.yarnpkg.com/@rc-component/portal/-/portal-1.1.2.tgz#55db1e51d784e034442e9700536faaa6ab63fc71" integrity sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg== @@ -1291,16 +1231,7 @@ classnames "^2.3.2" rc-util "^5.24.4" -"@rc-component/qrcode@~1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@rc-component/qrcode/-/qrcode-1.0.0.tgz#48a8de5eb11d0e65926f1377c4b1ef4c888997f5" - integrity sha512-L+rZ4HXP2sJ1gHMGHjsg9jlYBX/SLN2D6OxP9Zn3qgtpMWtO2vUfxVFwiogHpAIqs54FnALxraUy/BCO1yRIgg== - dependencies: - "@babel/runtime" "^7.24.7" - classnames "^2.3.2" - rc-util "^5.38.0" - -"@rc-component/tour@~1.15.1": +"@rc-component/tour@~1.15.0": version "1.15.1" resolved "https://registry.yarnpkg.com/@rc-component/tour/-/tour-1.15.1.tgz#9b79808254185fc19e964172d99e25e8c6800ded" integrity sha512-Tr2t7J1DKZUpfJuDZWHxyxWpfmj8EZrqSgyMZ+BCdvKZ6r1UDsfU46M/iWAAFBy961Ssfom2kv5f3UcjIL2CmQ== @@ -1312,18 +1243,6 @@ rc-util "^5.24.4" "@rc-component/trigger@^2.0.0", "@rc-component/trigger@^2.1.1": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@rc-component/trigger/-/trigger-2.2.0.tgz#503a48b0895a2cfddee0a5b7b11492c3df2a493d" - integrity sha512-QarBCji02YE9aRFhZgRZmOpXBj0IZutRippsVBv85sxvG4FGk/vRxwAlkn3MS9zK5mwbETd86mAVg2tKqTkdJA== - dependencies: - "@babel/runtime" "^7.23.2" - "@rc-component/portal" "^1.1.0" - classnames "^2.3.2" - rc-motion "^2.0.0" - rc-resize-observer "^1.3.1" - rc-util "^5.38.0" - -"@rc-component/trigger@^2.2.1": version "2.2.1" resolved "https://registry.yarnpkg.com/@rc-component/trigger/-/trigger-2.2.1.tgz#e6c5c1d9b36550104e23fe5c4e347170c77fb611" integrity sha512-fuU11J8pOt6+U/tU6/CAv8wjCwGaNeRk9f5k8HQth7JBbJ6MMH62WhGycVW75VnXfBZgL/7kO+wbiO2Xc9U9sQ== @@ -2708,60 +2627,59 @@ ansi-to-react@^6.1.6: anser "^1.4.1" escape-carriage "^1.3.0" -antd@^5.16.5: - version "5.20.4" - resolved "https://registry.yarnpkg.com/antd/-/antd-5.20.4.tgz#91fa4cbe719f196c94a20178635a0c02bcfe207a" - integrity sha512-ZBJYXuiaBUQdv+zrecbQyCX1oUnmQQUkaMd5EeACADeeSfWLAJOqC7cgtsp18420zw8aWTyrJ1TiruW4bHECSA== +antd@5.17.4: + version "5.17.4" + resolved "https://registry.yarnpkg.com/antd/-/antd-5.17.4.tgz#a73bdf4ef35f909ecbf299f91af973d3fcb51d93" + integrity sha512-oDWrcibe1s72223vpvA3/dNBEotGkggyWQVX1+GVrhuVXt/QYE3oU3Tsg3PeMurohvO8kjxambqG/zbmsMG34g== dependencies: - "@ant-design/colors" "^7.1.0" - "@ant-design/cssinjs" "^1.21.0" - "@ant-design/cssinjs-utils" "^1.0.3" - "@ant-design/icons" "^5.4.0" + "@ant-design/colors" "^7.0.2" + "@ant-design/cssinjs" "^1.19.1" + "@ant-design/icons" "^5.3.7" "@ant-design/react-slick" "~1.1.2" - "@babel/runtime" "^7.24.8" + "@babel/runtime" "^7.24.5" "@ctrl/tinycolor" "^3.6.1" - "@rc-component/color-picker" "~2.0.1" + "@rc-component/color-picker" "~1.5.3" "@rc-component/mutate-observer" "^1.1.0" - "@rc-component/qrcode" "~1.0.0" - "@rc-component/tour" "~1.15.1" - "@rc-component/trigger" "^2.2.1" + "@rc-component/tour" "~1.15.0" + "@rc-component/trigger" "^2.1.1" classnames "^2.5.1" copy-to-clipboard "^3.3.3" - dayjs "^1.11.11" - rc-cascader "~3.27.0" + dayjs "^1.11.10" + qrcode.react "^3.1.0" + rc-cascader "~3.26.0" rc-checkbox "~3.3.0" rc-collapse "~3.7.3" - rc-dialog "~9.5.2" - rc-drawer "~7.2.0" + rc-dialog "~9.4.0" + rc-drawer "~7.1.0" rc-dropdown "~4.2.0" - rc-field-form "~2.4.0" - rc-image "~7.9.0" - rc-input "~1.6.3" - rc-input-number "~9.2.0" - rc-mentions "~2.15.0" - rc-menu "~9.14.1" - rc-motion "^2.9.2" - rc-notification "~5.6.0" - rc-pagination "~4.2.0" - rc-picker "~4.6.14" + rc-field-form "~2.0.1" + rc-image "~7.6.0" + rc-input "~1.5.1" + rc-input-number "~9.1.0" + rc-mentions "~2.13.1" + rc-menu "~9.14.0" + rc-motion "^2.9.1" + rc-notification "~5.4.0" + rc-pagination "~4.0.4" + rc-picker "~4.5.0" rc-progress "~4.0.0" - rc-rate "~2.13.0" + rc-rate "~2.12.0" rc-resize-observer "^1.4.0" rc-segmented "~2.3.0" - rc-select "~14.15.1" - rc-slider "~11.1.5" + rc-select "~14.14.0" + rc-slider "~10.6.2" rc-steps "~6.0.1" rc-switch "~4.1.0" - rc-table "~7.45.7" - rc-tabs "~15.1.1" - rc-textarea "~1.8.1" + rc-table "~7.45.6" + rc-tabs "~15.1.0" + rc-textarea "~1.7.0" rc-tooltip "~6.2.0" - rc-tree "~5.8.8" - rc-tree-select "~5.22.2" - rc-upload "~4.7.0" - rc-util "^5.43.0" + rc-tree "~5.8.7" + rc-tree-select "~5.21.0" + rc-upload "~4.5.2" + rc-util "^5.41.0" scroll-into-view-if-needed "^3.1.0" - throttle-debounce "^5.0.2" + throttle-debounce "^5.0.0" any-base@^1.1.0: version "1.1.0" @@ -3407,26 +3325,16 @@ classcat@^5.0.3: resolved "https://registry.yarnpkg.com/classcat/-/classcat-5.0.4.tgz#e12d1dfe6df6427f260f03b80dc63571a5107ba6" integrity sha512-sbpkOw6z413p+HDGcBENe498WM9woqWHiJxCq7nvmxe9WmrUmqfAcxpIwAiMtM5Q3AhYkzXcNQHqsWq0mND51g== -classnames@2.x, classnames@^2.2.1, classnames@^2.2.3, classnames@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.1.tgz#dfcfa3891e306ec1dad105d0e88f4417b8535e8e" - integrity sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA== +classnames@2.x, classnames@^2.2.1, classnames@^2.2.3, classnames@^2.2.6, classnames@^2.3.0, classnames@^2.3.1, classnames@^2.3.2, classnames@^2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.5.1.tgz#ba774c614be0f016da105c858e7159eae8e7687b" + integrity sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow== classnames@^2.2.5: version "2.2.6" resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce" integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q== -classnames@^2.2.6, classnames@^2.3.0, classnames@^2.5.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.5.1.tgz#ba774c614be0f016da105c858e7159eae8e7687b" - integrity sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow== - -classnames@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.2.tgz#351d813bf0137fcc6a76a16b88208d2560a0d924" - integrity sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw== - cli-cursor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" @@ -4009,7 +3917,7 @@ date-time@^3.1.0: dependencies: time-zone "^1.0.0" -dayjs@^1.11.11, dayjs@^1.11.13: +dayjs@^1.11.10, dayjs@^1.11.13: version "1.11.13" resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.13.tgz#92430b0139055c3ebb60150aa13e860a4b5a366c" integrity sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg== @@ -6241,7 +6149,7 @@ json-stringify-safe@~5.0.1: json2mq@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/json2mq/-/json2mq-0.2.0.tgz#b637bd3ba9eabe122c83e9720483aeb10d2c904a" - integrity sha1-tje9O6nqvhIsg+lyBIOusQ0skEo= + integrity sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA== dependencies: string-convert "^0.2.0" @@ -8291,6 +8199,11 @@ puppeteer@^19.7.2: proxy-from-env "1.1.0" puppeteer-core "19.7.2" +qrcode.react@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/qrcode.react/-/qrcode.react-3.2.0.tgz#97daabd4ff641a3f3c678f87be106ebc55f9cd07" + integrity sha512-YietHHltOHA4+l5na1srdaMx4sVSOjV9tamHs+mwiLWAMr6QVACRUw1Neax5CptFILcNoITctJY0Ipyn5enQ8g== + qs@6.11.0: version "6.11.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" @@ -8348,15 +8261,15 @@ raw-body@2.5.2: iconv-lite "0.4.24" unpipe "1.0.0" -rc-cascader@~3.27.0: - version "3.27.0" - resolved "https://registry.yarnpkg.com/rc-cascader/-/rc-cascader-3.27.0.tgz#efb1a3c20e0d834b5b0b0b5dd3a9abf16ffa3860" - integrity sha512-z5uq8VvQadFUBiuZJ7YF5UAUGNkZtdEtcEYiIA94N/Kc2MIKr6lEbN5HyVddvYSgwWlKqnL6pH5bFXFuIK3MNg== +rc-cascader@~3.26.0: + version "3.26.0" + resolved "https://registry.yarnpkg.com/rc-cascader/-/rc-cascader-3.26.0.tgz#1bcc9c29451047dc99e28fdd125c94828d7ddf76" + integrity sha512-L1dml383TPSJD1I11YwxuVbmqaJY64psZqFp1ETlgl3LEOwDu76Cyl11fw5dmjJhMlUWwM5dECQfqJgfebhUjg== dependencies: "@babel/runtime" "^7.12.5" array-tree-filter "^2.1.0" classnames "^2.3.1" - rc-select "~14.15.0" + rc-select "~14.14.0" rc-tree "~5.8.1" rc-util "^5.37.0" @@ -8379,10 +8292,10 @@ rc-collapse@~3.7.3: rc-motion "^2.3.4" rc-util "^5.27.0" -rc-dialog@~9.5.2: - version "9.5.2" - resolved "https://registry.yarnpkg.com/rc-dialog/-/rc-dialog-9.5.2.tgz#4cf7cca23aedb6fd3d9344ea8ffd14daa94ee3a0" - integrity sha512-qVUjc8JukG+j/pNaHVSRa2GO2/KbV2thm7yO4hepQ902eGdYK913sGkwg/fh9yhKYV1ql3BKIN2xnud3rEXAPw== +rc-dialog@~9.4.0: + version "9.4.0" + resolved "https://registry.yarnpkg.com/rc-dialog/-/rc-dialog-9.4.0.tgz#194c107d34cb36a56f1db4a49dc73f6d59eeae85" + integrity sha512-AScCexaLACvf8KZRqCPz12BJ8olszXOS4lKlkMyzDQHS1m0zj1KZMYgmMCh39ee0Dcv8kyrj8mTqxuLyhH+QuQ== dependencies: "@babel/runtime" "^7.10.1" "@rc-component/portal" "^1.0.0-8" @@ -8390,10 +8303,10 @@ rc-dialog@~9.5.2: rc-motion "^2.3.0" rc-util "^5.21.0" -rc-drawer@~7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/rc-drawer/-/rc-drawer-7.2.0.tgz#8d7de2f1fd52f3ac5a25f54afbb8ac14c62e5663" - integrity sha512-9lOQ7kBekEJRdEpScHvtmEtXnAsy+NGDXiRWc2ZVC7QXAazNVbeT4EraQKYwCME8BJLa8Bxqxvs5swwyOepRwg== +rc-drawer@~7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/rc-drawer/-/rc-drawer-7.1.0.tgz#2beabb8bab1784aea255d0d850bc206c3dc715da" + integrity sha512-nBE1rF5iZvpavoyqhSSz2mk/yANltA7g3aF0U45xkx381n3we/RKs9cJfNKp9mSWCedOKWt9FLEwZDaAaOGn2w== dependencies: "@babel/runtime" "^7.23.9" "@rc-component/portal" "^1.1.1" @@ -8411,61 +8324,61 @@ rc-dropdown@~4.2.0: classnames "^2.2.6" rc-util "^5.17.0" -rc-field-form@~2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/rc-field-form/-/rc-field-form-2.4.0.tgz#26997160d12ae43a94c356c1290bfc011c69b3ca" - integrity sha512-XZ/lF9iqf9HXApIHQHqzJK5v2w4mkUMsVqAzOyWVzoiwwXEavY6Tpuw7HavgzIoD+huVff4JghSGcgEfX6eycg== +rc-field-form@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/rc-field-form/-/rc-field-form-2.0.1.tgz#97dc352f3899e9617f2abfd0c09bf0fcd17409e2" + integrity sha512-3WK/POHBcfMFKrzScrkmgMIXqoVQ0KgVwcVnej/ukwuQG4ZHCJaTi2KhM+tWTK4WODBXbmjKg5pKHj2IVmSg4A== dependencies: "@babel/runtime" "^7.18.0" "@rc-component/async-validator" "^5.0.3" rc-util "^5.32.2" -rc-image@~7.9.0: - version "7.9.0" - resolved "https://registry.yarnpkg.com/rc-image/-/rc-image-7.9.0.tgz#2d700a5cf891bb3d0d800b7c38348927ebb9f49b" - integrity sha512-l4zqO5E0quuLMCtdKfBgj4Suv8tIS011F5k1zBBlK25iMjjiNHxA0VeTzGFtUZERSA45gvpXDg8/P6qNLjR25g== +rc-image@~7.6.0: + version "7.6.0" + resolved "https://registry.yarnpkg.com/rc-image/-/rc-image-7.6.0.tgz#2867087b77c8595ea9eb37d18ca863e47904b191" + integrity sha512-tL3Rvd1sS+frZQ01i+tkeUPaOeFz2iG9/scAt/Cfs0hyCRVA/w0Pu1J/JxIX8blalvmHE0bZQRYdOmRAzWu4Hg== dependencies: "@babel/runtime" "^7.11.2" "@rc-component/portal" "^1.0.2" classnames "^2.2.6" - rc-dialog "~9.5.2" + rc-dialog "~9.4.0" rc-motion "^2.6.2" rc-util "^5.34.1" -rc-input-number@~9.2.0: - version "9.2.0" - resolved "https://registry.yarnpkg.com/rc-input-number/-/rc-input-number-9.2.0.tgz#7e9344ff054421d2bfff0eebd7c1b8ef22d12220" - integrity sha512-5XZFhBCV5f9UQ62AZ2hFbEY8iZT/dm23Q1kAg0H8EvOgD3UDbYYJAayoVIkM3lQaCqYAW5gV0yV3vjw1XtzWHg== +rc-input-number@~9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/rc-input-number/-/rc-input-number-9.1.0.tgz#fd577db284b65548c156500322a2feaa04321565" + integrity sha512-NqJ6i25Xn/AgYfVxynlevIhX3FuKlMwIFpucGG1h98SlK32wQwDK0zhN9VY32McOmuaqzftduNYWWooWz8pXQA== dependencies: "@babel/runtime" "^7.10.1" "@rc-component/mini-decimal" "^1.0.1" classnames "^2.2.5" - rc-input "~1.6.0" + rc-input "~1.5.0" rc-util "^5.40.1" -rc-input@~1.6.0, rc-input@~1.6.3: - version "1.6.3" - resolved "https://registry.yarnpkg.com/rc-input/-/rc-input-1.6.3.tgz#f1708fc3d5e68f95cb20faeb3eed1df8543cd444" - integrity sha512-wI4NzuqBS8vvKr8cljsvnTUqItMfG1QbJoxovCgL+DX4eVUcHIjVwharwevIxyy7H/jbLryh+K7ysnJr23aWIA== +rc-input@~1.5.0, rc-input@~1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/rc-input/-/rc-input-1.5.1.tgz#36d37eb045f1fa17de7da1a3fab94edfa331ab92" + integrity sha512-+nOzQJDeIfIpNP/SgY45LXSKbuMlp4Yap2y8c+ZpU7XbLmNzUd6+d5/S75sA/52jsVE6S/AkhkkDEAOjIu7i6g== dependencies: "@babel/runtime" "^7.11.1" classnames "^2.2.1" rc-util "^5.18.1" -rc-mentions@~2.15.0: - version "2.15.0" - resolved "https://registry.yarnpkg.com/rc-mentions/-/rc-mentions-2.15.0.tgz#ada022b32e68fa067a859ee0024c3f2aa7a9c871" - integrity sha512-f5v5i7VdqvBDXbphoqcQWmXDif2Msd2arritVoWybrVDuHE6nQ7XCYsybHbV//WylooK52BFDouFvyaRDtXZEw== +rc-mentions@~2.13.1: + version "2.13.2" + resolved "https://registry.yarnpkg.com/rc-mentions/-/rc-mentions-2.13.2.tgz#6f7ce0a5ff722880f83c588cf2a4242e424d18b3" + integrity sha512-gJCF6MDax/2wl2CzvJEN9yyQKYDzGKA2hmmymQiEPiYUNUOk6UKvQFSB3TBfAi57vxntPMJZGfxNtda1BDb4kA== dependencies: "@babel/runtime" "^7.22.5" "@rc-component/trigger" "^2.0.0" classnames "^2.2.6" - rc-input "~1.6.0" + rc-input "~1.5.0" rc-menu "~9.14.0" - rc-textarea "~1.8.0" + rc-textarea "~1.7.0" rc-util "^5.34.1" -rc-menu@~9.14.0, rc-menu@~9.14.1: +rc-menu@~9.14.0: version "9.14.1" resolved "https://registry.yarnpkg.com/rc-menu/-/rc-menu-9.14.1.tgz#5c2aea72bdce421e9d50bf721ad8b76c154ae66f" integrity sha512-5wlRb3M8S4yGlWhSoEYJ7ZVRElyScdcpUHxgiLxkeig1tEdyKrnED3B2fhpN0Rrpdp9jyhnmZR/Lwq2fH5VvDQ== @@ -8477,43 +8390,7 @@ rc-menu@~9.14.0, rc-menu@~9.14.1: rc-overflow "^1.3.1" rc-util "^5.27.0" -rc-motion@^2.0.0, rc-motion@^2.0.1, rc-motion@^2.3.0, rc-motion@^2.3.4: - version "2.4.1" - resolved "https://registry.yarnpkg.com/rc-motion/-/rc-motion-2.4.1.tgz#323f47c8635e6b2bc0cba2dfad25fc415b58e1dc" - integrity sha512-TWLvymfMu8SngPx5MDH8dQ0D2RYbluNTfam4hY/dNNx9RQ3WtGuZ/GXHi2ymLMzH+UNd6EEFYkOuR5JTTtm8Xg== - dependencies: - "@babel/runtime" "^7.11.1" - classnames "^2.2.1" - rc-util "^5.2.1" - -rc-motion@^2.4.3, rc-motion@^2.4.4: - version "2.6.0" - resolved "https://registry.yarnpkg.com/rc-motion/-/rc-motion-2.6.0.tgz#c60c3e7f15257f55a8cd7794a539f0e2cc751399" - integrity sha512-1MDWA9+i174CZ0SIDenSYm2Wb9YbRkrexjZWR0CUFu7D6f23E8Y0KsTgk9NGOLJsGak5ELZK/Y5lOlf5wQdzbw== - dependencies: - "@babel/runtime" "^7.11.1" - classnames "^2.2.1" - rc-util "^5.21.0" - -rc-motion@^2.6.1, rc-motion@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/rc-motion/-/rc-motion-2.6.2.tgz#3d31f97e41fb8e4f91a4a4189b6a98ac63342869" - integrity sha512-4w1FaX3dtV749P8GwfS4fYnFG4Rb9pxvCYPc/b2fw1cmlHJWNNgOFIz7ysiD+eOrzJSvnLJWlNQQncpNMXwwpg== - dependencies: - "@babel/runtime" "^7.11.1" - classnames "^2.2.1" - rc-util "^5.21.0" - -rc-motion@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/rc-motion/-/rc-motion-2.9.0.tgz#9e18a1b8d61e528a97369cf9a7601e9b29205710" - integrity sha512-XIU2+xLkdIr1/h6ohPZXyPBMvOmuyFZQ/T0xnawz+Rh+gh4FINcnZmMT5UTIj6hgI0VLDjTaPeRd+smJeSPqiQ== - dependencies: - "@babel/runtime" "^7.11.1" - classnames "^2.2.1" - rc-util "^5.21.0" - -rc-motion@^2.9.2: +rc-motion@^2.0.0, rc-motion@^2.0.1, rc-motion@^2.3.0, rc-motion@^2.3.4, rc-motion@^2.4.3, rc-motion@^2.4.4, rc-motion@^2.6.1, rc-motion@^2.6.2, rc-motion@^2.9.0, rc-motion@^2.9.1: version "2.9.2" resolved "https://registry.yarnpkg.com/rc-motion/-/rc-motion-2.9.2.tgz#f7c6d480250df8a512d0cfdce07ff3da906958cf" integrity sha512-fUAhHKLDdkAXIDLH0GYwof3raS58dtNUmzLF2MeiR8o6n4thNpSDQhOqQzWE4WfFZDCi9VEN8n7tiB7czREcyw== @@ -8522,10 +8399,10 @@ rc-motion@^2.9.2: classnames "^2.2.1" rc-util "^5.43.0" -rc-notification@~5.6.0: - version "5.6.0" - resolved "https://registry.yarnpkg.com/rc-notification/-/rc-notification-5.6.0.tgz#1639aa30686d79ee4bb8ace05a698a5a104aaa74" - integrity sha512-TGQW5T7waOxLwgJG7fXcw8l7AQiFOjaZ7ISF5PrU526nunHRNcTMuzKihQHaF4E/h/KfOCDk3Mv8eqzbu2e28w== +rc-notification@~5.4.0: + version "5.4.0" + resolved "https://registry.yarnpkg.com/rc-notification/-/rc-notification-5.4.0.tgz#c5ea20bfe4ed2dbacc7ef945777626c050945db8" + integrity sha512-li19y9RoYJciF3WRFvD+DvWS70jdL8Fr+Gfb/OshK+iY6iTkwzoigmSIp76/kWh5tF5i/i9im12X3nsF85GYdA== dependencies: "@babel/runtime" "^7.10.1" classnames "2.x" @@ -8542,26 +8419,26 @@ rc-overflow@^1.3.1, rc-overflow@^1.3.2: rc-resize-observer "^1.0.0" rc-util "^5.37.0" -rc-pagination@~4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/rc-pagination/-/rc-pagination-4.2.0.tgz#b7222b429dec38f6c74e139a30ae7765e9a0b8a6" - integrity sha512-V6qeANJsT6tmOcZ4XiUmj8JXjRLbkusuufpuoBw2GiAn94fIixYjFLmbruD1Sbhn8fPLDnWawPp4CN37zQorvw== +rc-pagination@~4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/rc-pagination/-/rc-pagination-4.0.4.tgz#ea401388ae86eac17ed5b41212d487f12b65b773" + integrity sha512-GGrLT4NgG6wgJpT/hHIpL9nELv27A1XbSZzECIuQBQTVSf4xGKxWr6I/jhpRPauYEWEbWVw22ObG6tJQqwJqWQ== dependencies: "@babel/runtime" "^7.10.1" classnames "^2.3.2" rc-util "^5.38.0" -rc-picker@~4.6.14: - version "4.6.14" - resolved "https://registry.yarnpkg.com/rc-picker/-/rc-picker-4.6.14.tgz#86f6836794a593a54b929cfde201f42f02ef85b0" - integrity sha512-7DuTfUFdkxmsNpWQ0TWv6FPGna5e6KKC4nxtx3x9xhumLz7jb3fhlDdWQvqEL6tpt9DOb1+N5j+wB+lDOSS9kg== +rc-picker@~4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/rc-picker/-/rc-picker-4.5.0.tgz#ae7a028ed6184e0ef40a2c8aaeb9d5dbef89d4b8" + integrity sha512-suqz9bzuhBQlf7u+bZd1bJLPzhXpk12w6AjQ9BTPTiFwexVZgUKViG1KNLyfFvW6tCUZZK0HmCCX7JAyM+JnCg== dependencies: - "@babel/runtime" "^7.24.7" + "@babel/runtime" "^7.10.1" "@rc-component/trigger" "^2.0.0" classnames "^2.2.1" rc-overflow "^1.3.2" rc-resize-observer "^1.4.0" - rc-util "^5.43.0" + rc-util "^5.38.1" rc-progress@~4.0.0: version "4.0.0" @@ -8572,10 +8449,10 @@ rc-progress@~4.0.0: classnames "^2.2.6" rc-util "^5.16.1" -rc-rate@~2.13.0: - version "2.13.0" - resolved "https://registry.yarnpkg.com/rc-rate/-/rc-rate-2.13.0.tgz#642f591ccf55c3a5d84d8d212caf1f7951d203a8" - integrity sha512-oxvx1Q5k5wD30sjN5tqAyWTvJfLNNJn7Oq3IeS4HxWfAiC4BOXMITNAsw7u/fzdtO4MS8Ki8uRLOzcnEuoQiAw== +rc-rate@~2.12.0: + version "2.12.0" + resolved "https://registry.yarnpkg.com/rc-rate/-/rc-rate-2.12.0.tgz#0182deffed3b009cdcc61660da8746c39ed91ed5" + integrity sha512-g092v5iZCdVzbjdn28FzvWebK2IutoVoiTeqoLTj9WM7SjA/gOJIw5/JFZMRyJYYVe1jLAU2UhAfstIpCNRozg== dependencies: "@babel/runtime" "^7.10.1" classnames "^2.2.5" @@ -8601,23 +8478,10 @@ rc-segmented@~2.3.0: rc-motion "^2.4.4" rc-util "^5.17.0" -rc-select@~14.15.0: - version "14.15.0" - resolved "https://registry.yarnpkg.com/rc-select/-/rc-select-14.15.0.tgz#5f07ea130a337b7a6df3c6379031d7539d15fef0" - integrity sha512-BDqnDLhhm/8VyyyDlX7ju06S75k6ObJvbsN86zqZ4SY1Fu2ANQxeSWPo7pnwx5nwA5JgG+HcQevtddAgsdeBVQ== - dependencies: - "@babel/runtime" "^7.10.1" - "@rc-component/trigger" "^2.1.1" - classnames "2.x" - rc-motion "^2.0.1" - rc-overflow "^1.3.1" - rc-util "^5.16.1" - rc-virtual-list "^3.5.2" - -rc-select@~14.15.1: - version "14.15.1" - resolved "https://registry.yarnpkg.com/rc-select/-/rc-select-14.15.1.tgz#1c8ab356cfdf1b24e974d62aec752620845d95a7" - integrity sha512-mGvuwW1RMm1NCSI8ZUoRoLRK51R2Nb+QJnmiAvbDRcjh2//ulCkxeV6ZRFTECPpE1t2DPfyqZMPw90SVJzQ7wQ== +rc-select@~14.14.0: + version "14.14.0" + resolved "https://registry.yarnpkg.com/rc-select/-/rc-select-14.14.0.tgz#110771fad72496843b245236bcb0007553b9fe0d" + integrity sha512-Uo2wulrjoPPRLCPd7zlK4ZFVJxlTN//yp1xWP/U+TUOQCyXrT+Duvq/Si5OzVcmQyWAUSbsplc2OwNNhvbOeKQ== dependencies: "@babel/runtime" "^7.10.1" "@rc-component/trigger" "^2.1.1" @@ -8627,10 +8491,10 @@ rc-select@~14.15.1: rc-util "^5.16.1" rc-virtual-list "^3.5.2" -rc-slider@~11.1.5: - version "11.1.5" - resolved "https://registry.yarnpkg.com/rc-slider/-/rc-slider-11.1.5.tgz#9a596464a36d78feb90589fee4eb0bf7cec40584" - integrity sha512-b77H5PbjMKsvkYXAYIkn50QuFX6ICQmCTibDinI9q+BHx65/TV4TeU25+oadhSRzykxs0/vBWeKBwRyySOeWlg== +rc-slider@~10.6.2: + version "10.6.2" + resolved "https://registry.yarnpkg.com/rc-slider/-/rc-slider-10.6.2.tgz#8bd3b63b24f2f3682ea1bf86d021073189cf33eb" + integrity sha512-FjkoFjyvUQWcBo1F3RgSglky3ar0+qHLM41PlFVYB4Bj3RD8E/Mv7kqMouLFBU+3aFglMzzctAIWRwajEuueSw== dependencies: "@babel/runtime" "^7.10.1" classnames "^2.2.5" @@ -8654,7 +8518,7 @@ rc-switch@~4.1.0: classnames "^2.2.1" rc-util "^5.30.0" -rc-table@~7.45.7: +rc-table@~7.45.6: version "7.45.7" resolved "https://registry.yarnpkg.com/rc-table/-/rc-table-7.45.7.tgz#f7c509e05c677a30ad5b212750122da6f5318004" integrity sha512-wi9LetBL1t1csxyGkMB2p3mCiMt+NDexMlPbXHvQFmBBAsMxrgNSAPwUci2zDLUq9m8QdWc1Nh8suvrpy9mXrg== @@ -8666,7 +8530,7 @@ rc-table@~7.45.7: rc-util "^5.37.0" rc-virtual-list "^3.14.2" -rc-tabs@~15.1.1: +rc-tabs@~15.1.0: version "15.1.1" resolved "https://registry.yarnpkg.com/rc-tabs/-/rc-tabs-15.1.1.tgz#99f4c7647e01d3e22216d94222d717e928ed98d0" integrity sha512-Tc7bJvpEdkWIVCUL7yQrMNBJY3j44NcyWS48jF/UKMXuUlzaXK+Z/pEL5LjGcTadtPvVmNqA40yv7hmr+tCOAw== @@ -8679,14 +8543,14 @@ rc-tabs@~15.1.1: rc-resize-observer "^1.0.0" rc-util "^5.34.1" -rc-textarea@~1.8.0, rc-textarea@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/rc-textarea/-/rc-textarea-1.8.1.tgz#0313ed2e7980269e1bd4f3c203a4e9a84cad8e2d" - integrity sha512-bm36N2ZqwZAP60ZQg2OY9mPdqWC+m6UTjHc+CqEZOxb3Ia29BGHazY/s5bI8M4113CkqTzhtFUDNA078ZiOx3Q== +rc-textarea@~1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/rc-textarea/-/rc-textarea-1.7.0.tgz#115c421359dddee58c601008ec2209b41cb8f8df" + integrity sha512-UxizYJkWkmxP3zofXgc487QiGyDmhhheDLLjIWbFtDmiru1ls30KpO8odDaPyqNUIy9ugj5djxTEuezIn6t3Jg== dependencies: "@babel/runtime" "^7.10.1" classnames "^2.2.1" - rc-input "~1.6.0" + rc-input "~1.5.0" rc-resize-observer "^1.0.0" rc-util "^5.27.0" @@ -8699,29 +8563,18 @@ rc-tooltip@~6.2.0: "@rc-component/trigger" "^2.0.0" classnames "^2.3.1" -rc-tree-select@~5.22.2: - version "5.22.2" - resolved "https://registry.yarnpkg.com/rc-tree-select/-/rc-tree-select-5.22.2.tgz#c2fcd50074574c639ef7a4c0bba45d88d9b05246" - integrity sha512-WHmWCck4+8mf4/KFTjw70AlnoNPkX4C1TOIzzwxfZ7w8hcNO4bzggoeO2Q3fAedjZteN5I3t2dT0BCZAnHedlQ== +rc-tree-select@~5.21.0: + version "5.21.0" + resolved "https://registry.yarnpkg.com/rc-tree-select/-/rc-tree-select-5.21.0.tgz#4ff94d5c28cba9810c4970d1f12ab7248c3b6e55" + integrity sha512-w+9qEu6zh0G3wt9N/hzWNSnqYH1i9mH1Nqxo0caxLRRFXF5yZWYmpCDoDTMdQM1Y4z3Q5yj08qyrPH/d4AtumA== dependencies: "@babel/runtime" "^7.10.1" classnames "2.x" - rc-select "~14.15.0" + rc-select "~14.14.0" rc-tree "~5.8.1" rc-util "^5.16.1" -rc-tree@~5.8.1: - version "5.8.2" - resolved "https://registry.yarnpkg.com/rc-tree/-/rc-tree-5.8.2.tgz#ed3a3f7c56597bbeab3303407a9e1739bbf15621" - integrity sha512-xH/fcgLHWTLmrSuNphU8XAqV7CdaOQgm4KywlLGNoTMhDAcNR3GVNP6cZzb0GrKmIZ9yae+QLot/cAgUdPRMzg== - dependencies: - "@babel/runtime" "^7.10.1" - classnames "2.x" - rc-motion "^2.0.1" - rc-util "^5.16.1" - rc-virtual-list "^3.5.1" - -rc-tree@~5.8.8: +rc-tree@~5.8.1, rc-tree@~5.8.7: version "5.8.8" resolved "https://registry.yarnpkg.com/rc-tree/-/rc-tree-5.8.8.tgz#650a13ec825a5a4feec6bbaf6a380465986ee0db" integrity sha512-S+mCMWo91m5AJqjz3PdzKilGgbFm7fFJRFiTDOcoRbD7UfMOPnerXwMworiga0O2XIo383UoWuEfeHs1WOltag== @@ -8732,16 +8585,16 @@ rc-tree@~5.8.8: rc-util "^5.16.1" rc-virtual-list "^3.5.1" -rc-upload@~4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/rc-upload/-/rc-upload-4.7.0.tgz#719c6e66549844f4db8c57f066f2758c0a43b525" - integrity sha512-eUwxYNHlsYe5vYhKFAUGrQG95JrnPzY+BmPi1Daq39fWNl/eOc7v4UODuWrVp2LFkQBuV3cMCG/I68iub6oBrg== +rc-upload@~4.5.2: + version "4.5.2" + resolved "https://registry.yarnpkg.com/rc-upload/-/rc-upload-4.5.2.tgz#ea493fbaaf57d9369ee954b20e1d8bc35c818a1a" + integrity sha512-QO3ne77DwnAPKFn0bA5qJM81QBjQi0e0NHdkvpFyY73Bea2NfITiotqJqVjHgeYPOJu5lLVR32TNGP084aSoXA== dependencies: "@babel/runtime" "^7.18.3" classnames "^2.2.5" rc-util "^5.2.0" -rc-util@^5.0.1, rc-util@^5.16.1, rc-util@^5.17.0, rc-util@^5.18.1, rc-util@^5.2.0, rc-util@^5.2.1, rc-util@^5.20.1, rc-util@^5.21.0, rc-util@^5.24.4, rc-util@^5.25.2, rc-util@^5.27.0, rc-util@^5.30.0, rc-util@^5.31.1, rc-util@^5.32.2, rc-util@^5.34.1, rc-util@^5.35.0, rc-util@^5.36.0, rc-util@^5.37.0, rc-util@^5.38.0, rc-util@^5.38.1, rc-util@^5.40.1, rc-util@^5.43.0: +rc-util@^5.0.1, rc-util@^5.16.1, rc-util@^5.17.0, rc-util@^5.18.1, rc-util@^5.2.0, rc-util@^5.20.1, rc-util@^5.21.0, rc-util@^5.24.4, rc-util@^5.25.2, rc-util@^5.27.0, rc-util@^5.30.0, rc-util@^5.31.1, rc-util@^5.32.2, rc-util@^5.34.1, rc-util@^5.35.0, rc-util@^5.36.0, rc-util@^5.37.0, rc-util@^5.38.0, rc-util@^5.38.1, rc-util@^5.40.1, rc-util@^5.41.0, rc-util@^5.43.0: version "5.43.0" resolved "https://registry.yarnpkg.com/rc-util/-/rc-util-5.43.0.tgz#bba91fbef2c3e30ea2c236893746f3e9b05ecc4c" integrity sha512-AzC7KKOXFqAdIBqdGWepL9Xn7cm3vnAmjlHqUnoQaTMZYhM4VlXGLkkHHxj/BZ7Td0+SOPKB4RGPboBVKT9htw== @@ -8749,7 +8602,7 @@ rc-util@^5.0.1, rc-util@^5.16.1, rc-util@^5.17.0, rc-util@^5.18.1, rc-util@^5.2. "@babel/runtime" "^7.18.3" react-is "^18.2.0" -rc-virtual-list@^3.14.2: +rc-virtual-list@^3.14.2, rc-virtual-list@^3.5.1, rc-virtual-list@^3.5.2: version "3.14.5" resolved "https://registry.yarnpkg.com/rc-virtual-list/-/rc-virtual-list-3.14.5.tgz#593cd13fe05eabf4ad098329704a30c77701869e" integrity sha512-ZMOnkCLv2wUN8Jz7yI4XiSLa9THlYvf00LuMhb1JlsQCewuU7ydPuHw1rGVPhe9VZYl/5UqODtNd7QKJ2DMGfg== @@ -8759,16 +8612,6 @@ rc-virtual-list@^3.14.2: rc-resize-observer "^1.0.0" rc-util "^5.36.0" -rc-virtual-list@^3.5.1, rc-virtual-list@^3.5.2: - version "3.11.3" - resolved "https://registry.yarnpkg.com/rc-virtual-list/-/rc-virtual-list-3.11.3.tgz#77d4e12e20c1ba314b43c0e37e118296674c5401" - integrity sha512-tu5UtrMk/AXonHwHxUogdXAWynaXsrx1i6dsgg+lOo/KJSF8oBAcprh1z5J3xgnPJD5hXxTL58F8s8onokdt0Q== - dependencies: - "@babel/runtime" "^7.20.0" - classnames "^2.2.6" - rc-resize-observer "^1.0.0" - rc-util "^5.36.0" - react-base16-styling@^0.9.1: version "0.9.1" resolved "https://registry.yarnpkg.com/react-base16-styling/-/react-base16-styling-0.9.1.tgz#4906b4c0a51636f2dca2cea8b682175aa8bd0c92" @@ -8859,16 +8702,11 @@ react-is@^16.13.1, react-is@^16.6.0, react-is@^16.6.3, react-is@^16.7.0, react-i resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== -react-is@^18.0.0: +react-is@^18.0.0, react-is@^18.2.0: version "18.3.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e" integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== -react-is@^18.2.0: - version "18.2.0" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" - integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== - react-json-tree@^0.17.0: version "0.17.0" resolved "https://registry.yarnpkg.com/react-json-tree/-/react-json-tree-0.17.0.tgz#aca02cb8c2d3d944e128763c5d814bafa92511d4" @@ -9142,9 +8980,9 @@ regenerator-runtime@^0.13.11, regenerator-runtime@^0.13.3, regenerator-runtime@^ integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== regenerator-runtime@^0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" - integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== + version "0.14.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" + integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== regexp.prototype.flags@^1.2.0: version "1.4.1" @@ -9952,7 +9790,7 @@ stream-to@~0.2.0: string-convert@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/string-convert/-/string-convert-0.2.1.tgz#6982cc3049fbb4cd85f8b24568b9d9bf39eeff97" - integrity sha1-aYLMMEn7tM2F+LJFaLnZvznu/5c= + integrity sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A== "string-width-cjs@npm:string-width@^4.2.0": version "4.2.3" @@ -10076,10 +9914,10 @@ style-to-object@^0.4.0: dependencies: inline-style-parser "0.1.1" -stylis@^4.0.13: - version "4.3.1" - resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.3.1.tgz#ed8a9ebf9f76fe1e12d462f5cc3c4c980b23a7eb" - integrity sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ== +stylis@^4.3.3: + version "4.3.4" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.3.4.tgz#ca5c6c4a35c4784e4e93a2a24dc4e9fa075250a4" + integrity sha512-osIBl6BGUmSfDkyH2mB7EFvCJntXDrLhKjHTRj/rK6xLH0yuPrHULDRQzKokSOD4VoorhtKpfcfW1GAntu8now== supertap@^3.0.1: version "3.0.1" @@ -10230,11 +10068,6 @@ three@^0.137.0: integrity sha512-rTyr+HDFxjnN8+N/guZjDgfVxgHptZQpf6xfL/Mo7a5JYIFwK6tAq3bzxYYB4Ae0RosDZlDuP+X5aXDXz+XnHQ== throttle-debounce@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-5.0.0.tgz#a17a4039e82a2ed38a5e7268e4132d6960d41933" - integrity sha512-2iQTSgkkc1Zyk0MeVrt/3BvuOXYPl/R8Z0U2xxo9rjwNciaHDG3R+Lm6dh4EeUci49DanvBnuqI6jshoQQRGEg== - -throttle-debounce@^5.0.2: version "5.0.2" resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-5.0.2.tgz#ec5549d84e053f043c9fd0f2a6dd892ff84456b1" integrity sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A== @@ -10309,7 +10142,7 @@ to-regex-range@^5.0.1: toggle-selection@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/toggle-selection/-/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32" - integrity sha1-bkWxJj8gF/oKzH2J14sVuL932jI= + integrity sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ== toidentifier@1.0.1: version "1.0.1" From a00bcbafdc6f0e22c2faff24257723d18e28b9db Mon Sep 17 00:00:00 2001 From: Tom Herold Date: Tue, 3 Sep 2024 10:12:48 +0200 Subject: [PATCH 05/24] updated redux to v4.0.5 --- package.json | 9 +++---- yarn.lock | 75 ++++++++++++++++++++++++++-------------------------- 2 files changed, 42 insertions(+), 42 deletions(-) diff --git a/package.json b/package.json index c15ed938cf1..0bad63e8fac 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,6 @@ "@types/pngjs": "^6.0.1", "@types/react": "^18.3.1", "@types/react-dom": "^18.3.0", - "@types/react-redux": "^7.1.23", "@types/react-router-dom": "^5.3.3", "@types/react-virtualized": "^9.21.21", "@types/sinon": "^10.0.11", @@ -195,12 +194,12 @@ "react-flow-renderer": "^10.3.16", "react-json-tree": "^0.17.0", "react-markdown": "^8.0.7", - "react-redux": "^7.2.0", + "react-redux": "^8.1.0", "react-router-dom": "^5.1.2", "react-sortable-hoc": "^2.0.0", "react-tooltip": "^5.27.1", "react-virtualized": "^9.22.4", - "redux": "^3.6.0", + "redux": "4.0.5", "redux-batched-actions": "^0.5.0", "redux-saga": "^1.3.0", "resumablejs": "^1.1.0", @@ -213,8 +212,8 @@ "worker-loader": "^3.0.8" }, "resolutions": { - "**/mini-store": "^1.1.0", - "**/redux": "3.7.2" + "**/mini-store": "^1.1.0" + }, "ava": { "files": [ diff --git a/yarn.lock b/yarn.lock index 0f992a67c80..a76c04eb8e8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -348,7 +348,7 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/runtime@^7.10.1", "@babel/runtime@^7.10.4", "@babel/runtime@^7.11.1", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.7", "@babel/runtime@^7.18.0", "@babel/runtime@^7.18.3", "@babel/runtime@^7.20.0", "@babel/runtime@^7.20.7", "@babel/runtime@^7.21.0", "@babel/runtime@^7.22.5", "@babel/runtime@^7.23.2", "@babel/runtime@^7.23.6", "@babel/runtime@^7.23.9", "@babel/runtime@^7.24.4", "@babel/runtime@^7.24.5", "@babel/runtime@^7.24.8": +"@babel/runtime@^7.10.1", "@babel/runtime@^7.10.4", "@babel/runtime@^7.11.1", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.7", "@babel/runtime@^7.18.0", "@babel/runtime@^7.18.3", "@babel/runtime@^7.20.0", "@babel/runtime@^7.20.7", "@babel/runtime@^7.21.0", "@babel/runtime@^7.22.5", "@babel/runtime@^7.23.2", "@babel/runtime@^7.23.6", "@babel/runtime@^7.23.9", "@babel/runtime@^7.24.4", "@babel/runtime@^7.24.5", "@babel/runtime@^7.24.8", "@babel/runtime@^7.9.2": version "7.25.6" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.25.6.tgz#9afc3289f7184d8d7f98b099884c26317b9264d2" integrity sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ== @@ -1821,10 +1821,10 @@ resolved "https://registry.yarnpkg.com/@types/history/-/history-4.7.11.tgz#56588b17ae8f50c53983a524fc3cc47437969d64" integrity sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA== -"@types/hoist-non-react-statics@^3.3.0": - version "3.3.1" - resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz#1124aafe5118cb591977aeb1ceaaed1070eb039f" - integrity sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA== +"@types/hoist-non-react-statics@^3.3.1": + version "3.3.5" + resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz#dab7867ef789d87e2b4b0003c9d65c49cc44a494" + integrity sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg== dependencies: "@types/react" "*" hoist-non-react-statics "^3.3.0" @@ -2020,16 +2020,6 @@ dependencies: "@types/react" "*" -"@types/react-redux@^7.1.23": - version "7.1.23" - resolved "https://registry.yarnpkg.com/@types/react-redux/-/react-redux-7.1.23.tgz#3c2bb1bcc698ae69d70735f33c5a8e95f41ac528" - integrity sha512-D02o3FPfqQlfu2WeEYwh3x2otYd2Dk1o8wAfsA0B1C2AJEFxE663Ozu7JzuWbznGgW248NaOF6wsqCGNq9d3qw== - dependencies: - "@types/hoist-non-react-statics" "^3.3.0" - "@types/react" "*" - hoist-non-react-statics "^3.3.0" - redux "^4.0.0" - "@types/react-router-dom@^5.3.3": version "5.3.3" resolved "https://registry.yarnpkg.com/@types/react-router-dom/-/react-router-dom-5.3.3.tgz#e9d6b4a66fcdbd651a5f106c2656a30088cc1e83" @@ -2188,6 +2178,11 @@ resolved "https://registry.yarnpkg.com/@types/url-join/-/url-join-4.0.1.tgz#4989c97f969464647a8586c7252d97b449cdc045" integrity sha512-wDXw9LEEUHyV+7UWy7U315nrJGJ7p1BzaCxDpEoLr789Dk1WDVMMlf3iBfbG2F8NdWnYyFbtTxUn2ZNbm1Q4LQ== +"@types/use-sync-external-store@^0.0.3": + version "0.0.3" + resolved "https://registry.yarnpkg.com/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz#b6725d5f4af24ace33b36fafd295136e75509f43" + integrity sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA== + "@types/webxr@*": version "0.5.0" resolved "https://registry.yarnpkg.com/@types/webxr/-/webxr-0.5.0.tgz#aae1cef3210d88fd4204f8c33385a0bbc4da07c9" @@ -6366,11 +6361,6 @@ locate-path@^7.1.0: dependencies: p-locate "^6.0.0" -lodash-es@^4.2.1: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" - integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== - lodash.curry@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/lodash.curry/-/lodash.curry-4.1.1.tgz#248e36072ede906501d75966200a86dab8b23170" @@ -6396,7 +6386,7 @@ lodash.throttle@^4.1.1: resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" integrity sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ= -lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.21, lodash@^4.2.1: +lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -8757,16 +8747,17 @@ react-popper@^1.3.4: typed-styles "^0.0.7" warning "^4.0.2" -react-redux@^7.2.0: - version "7.2.2" - resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-7.2.2.tgz#03862e803a30b6b9ef8582dadcc810947f74b736" - integrity sha512-8+CQ1EvIVFkYL/vu6Olo7JFLWop1qRUeb46sGtIMDCSpgwPQq8fPLpirIB0iTqFe9XYEFPHssdX8/UwN6pAkEA== +react-redux@^8.1.0: + version "8.1.3" + resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-8.1.3.tgz#4fdc0462d0acb59af29a13c27ffef6f49ab4df46" + integrity sha512-n0ZrutD7DaX/j9VscF+uTALI3oUPa/pO4Z3soOBIjuRn/FzVu6aehhysxZCLi6y7duMf52WNZGMl7CtuK5EnRw== dependencies: "@babel/runtime" "^7.12.1" + "@types/hoist-non-react-statics" "^3.3.1" + "@types/use-sync-external-store" "^0.0.3" hoist-non-react-statics "^3.3.2" - loose-envify "^1.4.0" - prop-types "^15.7.2" - react-is "^16.13.1" + react-is "^18.0.0" + use-sync-external-store "^1.0.0" react-router-dom@^5.1.2: version "5.2.0" @@ -8964,15 +8955,20 @@ redux-saga@^1.3.0: dependencies: "@redux-saga/core" "^1.3.0" -redux@3.7.2, redux@^3.6.0, redux@^4.0.0, redux@^4.2.0: - version "3.7.2" - resolved "https://registry.yarnpkg.com/redux/-/redux-3.7.2.tgz#06b73123215901d25d065be342eb026bc1c8537b" - integrity sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A== +redux@4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/redux/-/redux-4.0.5.tgz#4db5de5816e17891de8a80c424232d06f051d93f" + integrity sha512-VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w== dependencies: - lodash "^4.2.1" - lodash-es "^4.2.1" - loose-envify "^1.1.0" - symbol-observable "^1.0.3" + loose-envify "^1.4.0" + symbol-observable "^1.2.0" + +redux@^4.2.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/redux/-/redux-4.2.1.tgz#c08f4306826c49b5e9dc901dee0452ea8fce6197" + integrity sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w== + dependencies: + "@babel/runtime" "^7.9.2" regenerator-runtime@^0.13.11, regenerator-runtime@^0.13.3, regenerator-runtime@^0.13.4: version "0.13.11" @@ -9960,7 +9956,7 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -symbol-observable@^1.0.3: +symbol-observable@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== @@ -10537,6 +10533,11 @@ url@^0.11.0: punycode "1.3.2" querystring "0.2.0" +use-sync-external-store@^1.0.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz#c3b6390f3a30eba13200d2302dcdf1e7b57b2ef9" + integrity sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw== + use-sync-external-store@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a" From 724ea0e0fd47866f2074436af1f53fe071384a49 Mon Sep 17 00:00:00 2001 From: Tom Herold Date: Tue, 3 Sep 2024 11:05:14 +0200 Subject: [PATCH 06/24] updated react.router-dom to v5.3.4 --- package.json | 3 +-- yarn.lock | 65 +++++++++++++++------------------------------------- 2 files changed, 20 insertions(+), 48 deletions(-) diff --git a/package.json b/package.json index 0bad63e8fac..adb69ab6b08 100644 --- a/package.json +++ b/package.json @@ -195,7 +195,7 @@ "react-json-tree": "^0.17.0", "react-markdown": "^8.0.7", "react-redux": "^8.1.0", - "react-router-dom": "^5.1.2", + "react-router-dom": "5.3.4", "react-sortable-hoc": "^2.0.0", "react-tooltip": "^5.27.1", "react-virtualized": "^9.22.4", @@ -213,7 +213,6 @@ }, "resolutions": { "**/mini-store": "^1.1.0" - }, "ava": { "files": [ diff --git a/yarn.lock b/yarn.lock index a76c04eb8e8..93a1245cb34 100644 --- a/yarn.lock +++ b/yarn.lock @@ -348,7 +348,7 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/runtime@^7.10.1", "@babel/runtime@^7.10.4", "@babel/runtime@^7.11.1", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.7", "@babel/runtime@^7.18.0", "@babel/runtime@^7.18.3", "@babel/runtime@^7.20.0", "@babel/runtime@^7.20.7", "@babel/runtime@^7.21.0", "@babel/runtime@^7.22.5", "@babel/runtime@^7.23.2", "@babel/runtime@^7.23.6", "@babel/runtime@^7.23.9", "@babel/runtime@^7.24.4", "@babel/runtime@^7.24.5", "@babel/runtime@^7.24.8", "@babel/runtime@^7.9.2": +"@babel/runtime@^7.10.1", "@babel/runtime@^7.10.4", "@babel/runtime@^7.11.1", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.7", "@babel/runtime@^7.18.0", "@babel/runtime@^7.18.3", "@babel/runtime@^7.20.0", "@babel/runtime@^7.20.7", "@babel/runtime@^7.21.0", "@babel/runtime@^7.22.5", "@babel/runtime@^7.23.2", "@babel/runtime@^7.23.6", "@babel/runtime@^7.23.9", "@babel/runtime@^7.24.4", "@babel/runtime@^7.24.5", "@babel/runtime@^7.24.8", "@babel/runtime@^7.9.2": version "7.25.6" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.25.6.tgz#9afc3289f7184d8d7f98b099884c26317b9264d2" integrity sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ== @@ -1988,12 +1988,7 @@ resolved "https://registry.yarnpkg.com/@types/promise-polyfill/-/promise-polyfill-6.0.4.tgz#c56670c70c601264c67191a85875fe2cf98a4cfd" integrity sha512-GSCjjH6mDS8jgpT22rEOkZVqZcYj7i9AHJu4ntpvoohEpa0mLAKP/Kz3POMKqABaFsS4TyNHOeoyWpzycddcoQ== -"@types/prop-types@*": - version "15.7.3" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7" - integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw== - -"@types/prop-types@^15.0.0": +"@types/prop-types@*", "@types/prop-types@^15.0.0": version "15.7.12" resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.12.tgz#12bb1e2be27293c1406acb6af1c3f3a1481d98c6" integrity sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q== @@ -2045,10 +2040,10 @@ "@types/prop-types" "*" "@types/react" "^17" -"@types/react@*": - version "17.0.0" - resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.0.tgz#5af3eb7fad2807092f0046a1302b7823e27919b8" - integrity sha512-aj/L7RIMsRlWML3YB6KZiXB3fV2t41+5RBGYF8z+tAKU43Px8C3cYUZsDvf1/+Bm4FK21QWBrDutu8ZJ/70qOw== +"@types/react@*", "@types/react@^18.3.1": + version "18.3.5" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.5.tgz#5f524c2ad2089c0ff372bbdabc77ca2c4dbadf8f" + integrity sha512-WeqMfGJLGuLCqHGYRGHxnKrXcTitc6L/nBUWfWPcTarG3t9PsquqUMuVeXZeca+mglY4Vo5GZjCi0A3Or2lnxA== dependencies: "@types/prop-types" "*" csstype "^3.0.2" @@ -2062,14 +2057,6 @@ "@types/scheduler" "*" csstype "^3.0.2" -"@types/react@^18.3.1": - version "18.3.5" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.5.tgz#5f524c2ad2089c0ff372bbdabc77ca2c4dbadf8f" - integrity sha512-WeqMfGJLGuLCqHGYRGHxnKrXcTitc6L/nBUWfWPcTarG3t9PsquqUMuVeXZeca+mglY4Vo5GZjCi0A3Or2lnxA== - dependencies: - "@types/prop-types" "*" - csstype "^3.0.2" - "@types/request@2.48.7": version "2.48.7" resolved "https://registry.yarnpkg.com/@types/request/-/request-2.48.7.tgz#a962d11a26e0d71d9a9913d96bb806dc4d4c2f19" @@ -3750,12 +3737,7 @@ csstype@^3.0.10: resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.0.tgz#4ddcac3718d787cf9df0d1b7d15033925c8f29f2" integrity sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA== -csstype@^3.0.2: - version "3.0.5" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.5.tgz#7fdec6a28a67ae18647c51668a9ff95bb2fa7bb8" - integrity sha512-uVDi8LpBUKQj6sdxNaTetL6FpeCqTjOvAQuQUa/qAqq8oOd4ivkbhgnqayl0dnPal8Tb/yB1tF+gOvCBiicaiQ== - -csstype@^3.1.3: +csstype@^3.0.2, csstype@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== @@ -7086,14 +7068,6 @@ min-document@^2.19.0: dependencies: dom-walk "^0.1.0" -mini-create-react-context@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz#072171561bfdc922da08a60c2197a497cc2d1d5e" - integrity sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ== - dependencies: - "@babel/runtime" "^7.12.1" - tiny-warning "^1.0.3" - mini-css-extract-plugin@^2.5.2: version "2.5.2" resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.5.2.tgz#b3b9b98320c2c054d92c16f6a94ddfdbbba13755" @@ -8759,29 +8733,28 @@ react-redux@^8.1.0: react-is "^18.0.0" use-sync-external-store "^1.0.0" -react-router-dom@^5.1.2: - version "5.2.0" - resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.2.0.tgz#9e65a4d0c45e13289e66c7b17c7e175d0ea15662" - integrity sha512-gxAmfylo2QUjcwxI63RhQ5G85Qqt4voZpUXSEqCwykV0baaOTQDR1f0PmY8AELqIyVc0NEZUj0Gov5lNGcXgsA== +react-router-dom@5.3.4: + version "5.3.4" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.3.4.tgz#2ed62ffd88cae6db134445f4a0c0ae8b91d2e5e6" + integrity sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ== dependencies: - "@babel/runtime" "^7.1.2" + "@babel/runtime" "^7.12.13" history "^4.9.0" loose-envify "^1.3.1" prop-types "^15.6.2" - react-router "5.2.0" + react-router "5.3.4" tiny-invariant "^1.0.2" tiny-warning "^1.0.0" -react-router@5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.2.0.tgz#424e75641ca8747fbf76e5ecca69781aa37ea293" - integrity sha512-smz1DUuFHRKdcJC0jobGo8cVbhO3x50tCL4icacOlcwDOEQPq4TMqwx3sY1TP+DvtTgz4nm3thuo7A+BK2U0Dw== +react-router@5.3.4: + version "5.3.4" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.3.4.tgz#8ca252d70fcc37841e31473c7a151cf777887bb5" + integrity sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA== dependencies: - "@babel/runtime" "^7.1.2" + "@babel/runtime" "^7.12.13" history "^4.9.0" hoist-non-react-statics "^3.1.0" loose-envify "^1.3.1" - mini-create-react-context "^0.4.0" path-to-regexp "^1.7.0" prop-types "^15.6.2" react-is "^16.6.0" @@ -10101,7 +10074,7 @@ tiny-invariant@^1.0.2: resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.1.0.tgz#634c5f8efdc27714b7f386c35e6760991d230875" integrity sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw== -tiny-warning@^1.0.0, tiny-warning@^1.0.3: +tiny-warning@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== From e660e7e443b853440c89ea4da38626cb7d1d681a Mon Sep 17 00:00:00 2001 From: Tom Herold Date: Wed, 4 Sep 2024 11:13:27 +0200 Subject: [PATCH 07/24] replace react-virtualized with react-virtualized-auto-sizer lib --- .../oxalis/view/right-border-tabs/bounding_box_tab.tsx | 2 +- .../view/right-border-tabs/comment_tab/comment_tab_view.tsx | 2 +- .../view/right-border-tabs/connectome_tab/synapse_tree.tsx | 2 +- .../view/right-border-tabs/segments_tab/segments_view.tsx | 2 +- .../oxalis/view/right-border-tabs/tree_hierarchy_view.tsx | 2 +- package.json | 3 +-- 6 files changed, 6 insertions(+), 7 deletions(-) diff --git a/frontend/javascripts/oxalis/view/right-border-tabs/bounding_box_tab.tsx b/frontend/javascripts/oxalis/view/right-border-tabs/bounding_box_tab.tsx index 92ac6c4f431..ff4e0ff040e 100644 --- a/frontend/javascripts/oxalis/view/right-border-tabs/bounding_box_tab.tsx +++ b/frontend/javascripts/oxalis/view/right-border-tabs/bounding_box_tab.tsx @@ -22,7 +22,7 @@ import * as Utils from "libs/utils"; import type { OxalisState, UserBoundingBox } from "oxalis/store"; import DownloadModalView from "../action-bar/download_modal_view"; import { APIJobType } from "types/api_flow_types"; -import { AutoSizer } from "react-virtualized"; +import AutoSizer from "react-virtualized-auto-sizer"; const ADD_BBOX_BUTTON_HEIGHT = 32; diff --git a/frontend/javascripts/oxalis/view/right-border-tabs/comment_tab/comment_tab_view.tsx b/frontend/javascripts/oxalis/view/right-border-tabs/comment_tab/comment_tab_view.tsx index 1dc7b8a2436..4dc79152378 100644 --- a/frontend/javascripts/oxalis/view/right-border-tabs/comment_tab/comment_tab_view.tsx +++ b/frontend/javascripts/oxalis/view/right-border-tabs/comment_tab/comment_tab_view.tsx @@ -39,7 +39,7 @@ import AdvancedSearchPopover from "../advanced_search_popover"; import type { MenuProps } from "rc-menu"; import type { Comparator } from "types/globals"; import type { EventDataNode } from "antd/es/tree"; -import { AutoSizer } from "react-virtualized"; +import AutoSizer from "react-virtualized-auto-sizer"; import { useEffectOnlyOnce } from "libs/react_hooks"; import { ColoredDotIcon } from "../segments_tab/segment_list_item"; import { useLifecycle } from "beautiful-react-hooks"; diff --git a/frontend/javascripts/oxalis/view/right-border-tabs/connectome_tab/synapse_tree.tsx b/frontend/javascripts/oxalis/view/right-border-tabs/connectome_tab/synapse_tree.tsx index 7da9055e076..2f9cc9d07c2 100644 --- a/frontend/javascripts/oxalis/view/right-border-tabs/connectome_tab/synapse_tree.tsx +++ b/frontend/javascripts/oxalis/view/right-border-tabs/connectome_tab/synapse_tree.tsx @@ -1,4 +1,4 @@ -import { AutoSizer } from "react-virtualized"; +import AutoSizer from "react-virtualized-auto-sizer"; import { Dropdown, type MenuProps, Tag, Tree, type TreeProps } from "antd"; import React from "react"; import _ from "lodash"; diff --git a/frontend/javascripts/oxalis/view/right-border-tabs/segments_tab/segments_view.tsx b/frontend/javascripts/oxalis/view/right-border-tabs/segments_tab/segments_view.tsx index a3ad26ca070..b787e612718 100644 --- a/frontend/javascripts/oxalis/view/right-border-tabs/segments_tab/segments_view.tsx +++ b/frontend/javascripts/oxalis/view/right-border-tabs/segments_tab/segments_view.tsx @@ -103,7 +103,7 @@ import { import SegmentListItem from "oxalis/view/right-border-tabs/segments_tab/segment_list_item"; import React, { type Key } from "react"; import { connect, useSelector } from "react-redux"; -import { AutoSizer } from "react-virtualized"; +import AutoSizer from "react-virtualized-auto-sizer"; import type { Dispatch } from "redux"; import type { APIDataset, APIMeshFile, APISegmentationLayer, APIUser } from "types/api_flow_types"; import DeleteGroupModalView from "../delete_group_modal_view"; diff --git a/frontend/javascripts/oxalis/view/right-border-tabs/tree_hierarchy_view.tsx b/frontend/javascripts/oxalis/view/right-border-tabs/tree_hierarchy_view.tsx index 3a28b292619..c0bcbc148a8 100644 --- a/frontend/javascripts/oxalis/view/right-border-tabs/tree_hierarchy_view.tsx +++ b/frontend/javascripts/oxalis/view/right-border-tabs/tree_hierarchy_view.tsx @@ -1,7 +1,7 @@ import { DownOutlined } from "@ant-design/icons"; import { Tree as AntdTree, type GetRef, type MenuProps, Modal, type TreeProps } from "antd"; import React, { useCallback, useEffect, useRef, useState } from "react"; -import { AutoSizer } from "react-virtualized"; +import AutoSizer from "react-virtualized-auto-sizer"; import { mapGroups } from "oxalis/model/accessors/skeletontracing_accessor"; import { setTreeGroupAction, diff --git a/package.json b/package.json index adb69ab6b08..e4b3a829414 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,6 @@ "@types/react": "^18.3.1", "@types/react-dom": "^18.3.0", "@types/react-router-dom": "^5.3.3", - "@types/react-virtualized": "^9.21.21", "@types/sinon": "^10.0.11", "@types/three": "^0.142.0", "@types/url-join": "^4.0.0", @@ -198,7 +197,7 @@ "react-router-dom": "5.3.4", "react-sortable-hoc": "^2.0.0", "react-tooltip": "^5.27.1", - "react-virtualized": "^9.22.4", + "react-virtualized-auto-sizer": "^1.0.24", "redux": "4.0.5", "redux-batched-actions": "^0.5.0", "redux-saga": "^1.3.0", From a5bae3fe5828d72b9e6441a2a93901727ac832a0 Mon Sep 17 00:00:00 2001 From: Tom Herold Date: Wed, 4 Sep 2024 11:14:31 +0200 Subject: [PATCH 08/24] replace react-sortable-hoc with dnd-kit 1/2 --- .../color_layer_ordering_component.tsx | 95 +++++++++++-------- package.json | 2 + 2 files changed, 56 insertions(+), 41 deletions(-) diff --git a/frontend/javascripts/dashboard/dataset/color_layer_ordering_component.tsx b/frontend/javascripts/dashboard/dataset/color_layer_ordering_component.tsx index 419f1a727b4..6e026d63b64 100644 --- a/frontend/javascripts/dashboard/dataset/color_layer_ordering_component.tsx +++ b/frontend/javascripts/dashboard/dataset/color_layer_ordering_component.tsx @@ -1,23 +1,31 @@ import { MenuOutlined, InfoCircleOutlined } from "@ant-design/icons"; import { List, Collapse, Tooltip, type CollapseProps } from "antd"; -import React from "react"; -import type { SortEnd } from "react-sortable-hoc"; -import { SortableContainer, SortableElement, SortableHandle } from "react-sortable-hoc"; import { settings, settingsTooltips } from "messages"; +import { DndContext, type DragEndEvent } from "@dnd-kit/core"; +import { CSS } from "@dnd-kit/utilities"; +import { SortableContext, useSortable, verticalListSortingStrategy } from "@dnd-kit/sortable"; -// Example taken and modified from https://4x.ant.design/components/table/#components-table-demo-drag-sorting-handler. +// Example taken and modified from https://ant.design/components/table/#components-table-demo-drag-sorting-handler. -const DragHandle = SortableHandle(() => ); +function SortableListItem({ colorLayerName }: { colorLayerName: string }) { + const { attributes, listeners, setNodeRef, transform, transition, isDragging } = useSortable({ + id: colorLayerName, + }); -const SortableItem = SortableElement(({ name }: { name: string }) => ( - - {name} - -)); + const style = { + transform: CSS.Transform.toString(transform), + transition, + zIndex: isDragging ? "100" : "auto", + opacity: isDragging ? 0.3 : 1, + }; -const SortableLayerSettingsContainer = SortableContainer(({ children }: { children: any }) => { - return
{children}
; -}); + return ( + + {" "} + {colorLayerName} + + ); +} export default function ColorLayerOrderingTable({ colorLayerNames, @@ -25,18 +33,27 @@ export default function ColorLayerOrderingTable({ }: { colorLayerNames?: string[]; onChange?: (newColorLayerNames: string[]) => void; -}): JSX.Element { - const onSortEnd = ({ oldIndex, newIndex }: SortEnd) => { - document.body.classList.remove("is-dragging"); - if (oldIndex !== newIndex && onChange && colorLayerNames) { - const movedElement = colorLayerNames[oldIndex]; - const newColorLayerNames = colorLayerNames.filter((_, index) => index !== oldIndex); - newColorLayerNames.splice(newIndex, 0, movedElement); - onChange(newColorLayerNames); +}) { + const onSortEnd = (event: DragEndEvent) => { + const { active, over } = event; + + if (active && over && colorLayerNames) { + const oldIndex = colorLayerNames.indexOf(active.id as string); + const newIndex = colorLayerNames.indexOf(over.id as string); + + document.body.classList.remove("is-dragging"); + + if (oldIndex !== newIndex && onChange) { + const movedElement = colorLayerNames[oldIndex]; + const newColorLayerNames = colorLayerNames.filter((_, index) => index !== oldIndex); + newColorLayerNames.splice(newIndex, 0, movedElement); + onChange(newColorLayerNames); + } } }; const isSettingEnabled = colorLayerNames && colorLayerNames.length > 1; + const sortingItems = isSettingEnabled ? colorLayerNames.map((name) => name) : []; const collapsibleDisabledExplanation = "The order of layers can only be configured when the dataset has multiple color layers."; @@ -55,29 +72,25 @@ export default function ColorLayerOrderingTable({ { label: panelTitle, key: "1", - children: ( - - colorLayerNames && - colorLayerNames.length > 1 && - document.body.classList.add("is-dragging") - } - useDragHandle - > - {colorLayerNames?.map((name, index) => ( - - ))} - - ), + children: sortingItems.map((name) => ), }, ]; return ( - + { + colorLayerNames && colorLayerNames.length > 1 && document.body.classList.add("is-dragging"); + }} + onDragEnd={onSortEnd} + > + + + + ); } diff --git a/package.json b/package.json index e4b3a829414..d9d065e0604 100644 --- a/package.json +++ b/package.json @@ -133,6 +133,8 @@ "@airbrake/browser": "^2.1.7", "@ant-design/colors": "^6.0.0", "@ant-design/icons": "^5.4.0", + "@dnd-kit/core": "^6.1.0", + "@dnd-kit/sortable": "^8.0.0", "@fortawesome/fontawesome-free": "^5.15.4", "@rehooks/document-title": "^1.0.2", "@scalableminds/prop-types": "^15.8.1", From 6d48ecfb2565cd89c54595f0767e5afe944a904d Mon Sep 17 00:00:00 2001 From: Tom Herold Date: Wed, 4 Sep 2024 14:29:15 +0200 Subject: [PATCH 09/24] replace react-sortable-hoc with dnd-kit 2/2 --- .../left-border-tabs/layer_settings_tab.tsx | 125 ++++++++++-------- package.json | 3 +- 2 files changed, 74 insertions(+), 54 deletions(-) diff --git a/frontend/javascripts/oxalis/view/left-border-tabs/layer_settings_tab.tsx b/frontend/javascripts/oxalis/view/left-border-tabs/layer_settings_tab.tsx index 54af99c36f2..f0438f382e6 100644 --- a/frontend/javascripts/oxalis/view/left-border-tabs/layer_settings_tab.tsx +++ b/frontend/javascripts/oxalis/view/left-border-tabs/layer_settings_tab.tsx @@ -1,4 +1,4 @@ -import { Button, Col, Divider, Dropdown, type MenuProps, Modal, Row, Switch } from "antd"; +import { Button, Col, Divider, Dropdown, type MenuProps, Modal, Row, Switch, Tooltip } from "antd"; import type { Dispatch } from "redux"; import { EditOutlined, @@ -20,7 +20,6 @@ import React, { useCallback } from "react"; import _ from "lodash"; import classnames from "classnames"; import update from "immutability-helper"; -import { SortableContainer, SortableElement, SortableHandle } from "react-sortable-hoc"; import { APIAnnotationTypeEnum, type APIDataLayer, @@ -124,6 +123,9 @@ import { transformPointUnscaled, } from "oxalis/model/helpers/transformation_helpers"; import FastTooltip from "components/fast_tooltip"; +import { SortableContext, useSortable, verticalListSortingStrategy } from "@dnd-kit/sortable"; +import { DndContext, type DragEndEvent } from "@dnd-kit/core"; +import { CSS } from "@dnd-kit/utilities"; type DatasetSettingsProps = { userConfiguration: UserConfiguration; @@ -163,15 +165,7 @@ type State = { layerToMergeWithFallback: APIDataLayer | null | undefined; }; -const SortableLayerSettingsContainer = SortableContainer(({ children }: { children: any }) => { - return
{children}
; -}); - -type DragHandleProps = { - hasLessThanTwoColorLayers: boolean; -}; - -function dragHandleIcon(isDisabled: boolean = false) { +function DragHandleIcon({ isDisabled = false }: { isDisabled?: boolean }) { return (
); } -const DragHandle = SortableHandle(({ hasLessThanTwoColorLayers }: DragHandleProps) => { - return hasLessThanTwoColorLayers ? ( - - {dragHandleIcon(true)} - - ) : ( - dragHandleIcon() +function DragHandle({ id }: { id: string }) { + const { attributes, listeners } = useSortable({ + id, + }); + + return ( +
+ +
); -}); +} -function DummyDragHandle({ layerType }: { layerType: string }) { +function DummyDragHandle({ tooltipTitle }: { tooltipTitle: string }) { return ( - - {dragHandleIcon(true)} + + ); } @@ -709,13 +705,19 @@ class DatasetSettings extends React.PureComponent { : null, ]; const items = possibleItems.filter((el) => el); + const dragHandle = isColorLayer ? ( + hasLessThanTwoColorLayers ? ( + + ) : ( + + ) + ) : ( + + ); + return (
- {isColorLayer ? ( - - ) : ( - - )} + {dragHandle} {this.getEnableDisableLayerSwitch(isDisabled, onChange)}
{ isLastLayer: boolean; hasLessThanTwoColorLayers?: boolean; }) => { + const { setNodeRef, transform, transition, isDragging } = useSortable({ id: layerName }); + // Ensure that every layer needs a layer configuration and that color layers have a color layer. if (!layerConfiguration || (isColorLayer && !layerConfiguration.color)) { return null; } const elementClass = getElementClass(this.props.dataset, layerName); const { isDisabled, isInEditMode } = layerConfiguration; - const lastLayerMarginBottom = isLastLayer ? { marginBottom: 30 } : {}; const betweenLayersMarginBottom = isLastLayer ? {} : { marginBottom: 30 }; + + const style = { + transform: CSS.Transform.toString(transform), + transition, + zIndex: isDragging ? "100" : "auto", + opacity: isDragging ? 0.3 : 1, + marginBottom: isLastLayer ? 30 : 0, + }; + return ( -
+
{this.getLayerSettingsHeader( isDisabled, isColorLayer, @@ -984,8 +996,6 @@ class DatasetSettings extends React.PureComponent { ); }; - SortableLayerSettings = SortableElement(this.LayerSettings); - handleFindData = async ( layerName: string, isDataLayer: boolean, @@ -1151,7 +1161,7 @@ class DatasetSettings extends React.PureComponent { paddingRight: 1, }} > - +
{ }); }; - onSortLayerSettingsEnd = ({ oldIndex, newIndex }: { oldIndex: number; newIndex: number }) => { + onSortLayerSettingsEnd = (event: DragEndEvent) => { + const { active, over } = event; + // Fix for having a grabbing cursor during dragging from https://github.com/clauderic/react-sortable-hoc/issues/328#issuecomment-1005835670. document.body.classList.remove("is-dragging"); const { colorLayerOrder } = this.props.datasetConfiguration; - const movedElement = colorLayerOrder[oldIndex]; - newIndex = Math.min(newIndex, colorLayerOrder.length - 1); - const newLayerOrder = update(colorLayerOrder, { - $splice: [ - [oldIndex, 1], - [newIndex, 0, movedElement], - ], - }); - this.props.onChange("colorLayerOrder", newLayerOrder); + + if (over) { + const oldIndex = colorLayerOrder.indexOf(active.id as string); + const newIndex = colorLayerOrder.indexOf(over.id as string); + const movedElement = colorLayerOrder[oldIndex]; + + const newIndexClipped = Math.min(newIndex, colorLayerOrder.length - 1); + const newLayerOrder = update(colorLayerOrder, { + $splice: [ + [oldIndex, 1], + [newIndexClipped, 0, movedElement], + ], + }); + this.props.onChange("colorLayerOrder", newLayerOrder); + } }; render() { const { layers, colorLayerOrder } = this.props.datasetConfiguration; const LayerSettings = this.LayerSettings; - const SortableLayerSettings = this.SortableLayerSettings; const segmentationLayerNames = Object.keys(layers).filter( (layerName) => !getIsColorLayer(this.props.dataset, layerName), @@ -1421,14 +1438,12 @@ class DatasetSettings extends React.PureComponent { const hasLessThanTwoColorLayers = colorLayerOrder.length < 2; const colorLayerSettings = colorLayerOrder.map((layerName, index) => { return ( - ); @@ -1450,17 +1465,23 @@ class DatasetSettings extends React.PureComponent { this.props.tracing.skeleton === null && this.props.tracing.annotationType === APIAnnotationTypeEnum.Explorational && state.task === null; + return (
- + colorLayerOrder.length > 1 && document.body.classList.add("is-dragging") } - useDragHandle > - {colorLayerSettings} - + layerName)} + strategy={verticalListSortingStrategy} + > + {colorLayerSettings} + + + {segmentationLayerSettings} {this.getSkeletonLayer()} diff --git a/package.json b/package.json index d9d065e0604..e78ae686f02 100644 --- a/package.json +++ b/package.json @@ -197,10 +197,9 @@ "react-markdown": "^8.0.7", "react-redux": "^8.1.0", "react-router-dom": "5.3.4", - "react-sortable-hoc": "^2.0.0", "react-tooltip": "^5.27.1", "react-virtualized-auto-sizer": "^1.0.24", - "redux": "4.0.5", + "redux": "4.1.2", "redux-batched-actions": "^0.5.0", "redux-saga": "^1.3.0", "resumablejs": "^1.1.0", From bf51f6ebef08710db764327ba2fc88044f751c64 Mon Sep 17 00:00:00 2001 From: Tom Herold Date: Wed, 4 Sep 2024 14:29:31 +0200 Subject: [PATCH 10/24] fix typescript errors --- .../javascripts/admin/team/team_list_view.tsx | 4 ++- .../admin/voxelytics/ai_model_list_view.tsx | 3 ++- .../admin/voxelytics/workflow_list_view.tsx | 6 ++--- .../components/pricing_enforcers.tsx | 26 ++++++++++--------- .../color_layer_ordering_component.tsx | 2 +- .../explorative_annotations_view.tsx | 2 +- .../dashboard/folders/folder_tree.tsx | 6 ++--- frontend/javascripts/libs/react_helpers.tsx | 4 +-- .../materials/plane_material_factory.ts | 2 +- .../helpers/overwrite_action_middleware.ts | 1 + frontend/javascripts/oxalis/store.ts | 2 +- .../oxalis/view/action-bar/toolbar_view.tsx | 2 +- .../view/components/setting_input_views.tsx | 6 +++-- 13 files changed, 37 insertions(+), 29 deletions(-) diff --git a/frontend/javascripts/admin/team/team_list_view.tsx b/frontend/javascripts/admin/team/team_list_view.tsx index eb212048226..a07bb04605c 100644 --- a/frontend/javascripts/admin/team/team_list_view.tsx +++ b/frontend/javascripts/admin/team/team_list_view.tsx @@ -54,7 +54,9 @@ export function filterTeamMembersOf(team: APITeam, user: APIUser): boolean { export function renderUsersForTeam( team: APITeam, allUsers: APIUser[] | null, - renderAdditionalContent = (_teamMember: APIUser, _team: APITeam) => {}, + renderAdditionalContent = (_teamMember: APIUser, _team: APITeam): React.ReactNode => { + return null; + }, ) { if (allUsers === null) return; const teamMembers = allUsers.filter((user) => filterTeamMembersOf(team, user)); diff --git a/frontend/javascripts/admin/voxelytics/ai_model_list_view.tsx b/frontend/javascripts/admin/voxelytics/ai_model_list_view.tsx index dd840f2070b..317649a6067 100644 --- a/frontend/javascripts/admin/voxelytics/ai_model_list_view.tsx +++ b/frontend/javascripts/admin/voxelytics/ai_model_list_view.tsx @@ -12,6 +12,7 @@ import { JobState } from "admin/job/job_list_view"; import { Link } from "react-router-dom"; import { useGuardedFetch } from "libs/react_helpers"; import { PageNotAvailableToNormalUser } from "components/permission_enforcer"; +import type { Key } from "react"; export default function AiModelListView() { const activeUser = useSelector((state: OxalisState) => state.activeUser); @@ -63,7 +64,7 @@ export default function AiModelListView() { value: username, }), ), - onFilter: (value: string | number | boolean, model: AiModel) => + onFilter: (value: Key | boolean, model: AiModel) => formatUserName(null, model.user).startsWith(String(value)), filterSearch: true, }, diff --git a/frontend/javascripts/admin/voxelytics/workflow_list_view.tsx b/frontend/javascripts/admin/voxelytics/workflow_list_view.tsx index c8f5b93457d..0a378dccf16 100644 --- a/frontend/javascripts/admin/voxelytics/workflow_list_view.tsx +++ b/frontend/javascripts/admin/voxelytics/workflow_list_view.tsx @@ -1,5 +1,5 @@ import type React from "react"; -import { useEffect, useMemo, useState } from "react"; +import { type Key, useEffect, useMemo, useState } from "react"; import { SyncOutlined } from "@ant-design/icons"; import { Table, Progress, Tooltip, Button, Input } from "antd"; import { Link } from "react-router-dom"; @@ -211,7 +211,7 @@ export default function WorkflowListView() { text: username || "", value: username || "", })), - onFilter: (value: string | number | boolean, run: RenderRunInfo) => + onFilter: (value: Key | boolean, run: RenderRunInfo) => run.userDisplayName?.startsWith(String(value)) || false, filterSearch: true, }, @@ -223,7 +223,7 @@ export default function WorkflowListView() { text: hostname, value: hostname, })), - onFilter: (value: string | number | boolean, run: RenderRunInfo) => + onFilter: (value: Key | boolean, run: RenderRunInfo) => run.hostName.startsWith(String(value)), filterSearch: true, }, diff --git a/frontend/javascripts/components/pricing_enforcers.tsx b/frontend/javascripts/components/pricing_enforcers.tsx index fd228e6bfd4..480602fac4b 100644 --- a/frontend/javascripts/components/pricing_enforcers.tsx +++ b/frontend/javascripts/components/pricing_enforcers.tsx @@ -16,6 +16,7 @@ import UpgradePricingPlanModal from "admin/organization/upgrade_plan_modal"; import type { APIOrganization, APIUser } from "types/api_flow_types"; import type { TooltipPlacement } from "antd/lib/tooltip"; import { SwitchSetting } from "oxalis/view/components/setting_input_views"; +import type { PopoverProps } from "antd/lib"; const PRIMARY_COLOR_HEX = rgbToHex(PRIMARY_COLOR); @@ -50,20 +51,21 @@ const useActiveUserAndOrganization = (): [APIUser | null | undefined, APIOrganiz return [activeUser, activeOrganization]; }; -type PopoverEnforcedProps = RequiredPricingProps & { - activeUser: APIUser | null | undefined; - activeOrganization: APIOrganization | null; - placement?: TooltipPlacement; - zIndex?: number; -}; -const PricingEnforcedPopover: React.FunctionComponent = ({ +type PopoverEnforcedProps = RequiredPricingProps & + PopoverProps & { + activeUser: APIUser | null | undefined; + activeOrganization: APIOrganization | null; + placement?: TooltipPlacement; + zIndex?: number; + }; +const PricingEnforcedPopover = function ({ children, requiredPricingPlan, activeUser, activeOrganization, placement, zIndex, -}) => { +}: PopoverEnforcedProps) { return ( = ({ ); }; -export const PricingEnforcedSpan: React.FunctionComponent = ({ +export const PricingEnforcedSpan = function ({ children, requiredPricingPlan, -}) => { +}: RequiredPricingProps & { children: React.ReactNode }) { const [activeUser, activeOrganization] = useActiveUserAndOrganization(); const isFeatureAllowed = isFeatureAllowedByPricingPlan(activeOrganization, requiredPricingPlan); @@ -173,11 +175,11 @@ export const PricingEnforcedSwitchSetting: React.FunctionComponent< ); }; -export const PricingEnforcedBlur: React.FunctionComponent = ({ +export const PricingEnforcedBlur = function ({ children, requiredPricingPlan, ...restProps -}) => { +}: RequiredPricingProps & { children: React.ReactNode }) { const [activeUser, activeOrganization] = useActiveUserAndOrganization(); const isFeatureAllowed = isFeatureAllowedByPricingPlan(activeOrganization, requiredPricingPlan); diff --git a/frontend/javascripts/dashboard/dataset/color_layer_ordering_component.tsx b/frontend/javascripts/dashboard/dataset/color_layer_ordering_component.tsx index 6e026d63b64..67a37ab5953 100644 --- a/frontend/javascripts/dashboard/dataset/color_layer_ordering_component.tsx +++ b/frontend/javascripts/dashboard/dataset/color_layer_ordering_component.tsx @@ -84,7 +84,7 @@ export default function ColorLayerOrderingTable({ }} onDragEnd={onSortEnd} > - + { width: 300, filters: ownerAndTeamsFilters, filterMode: "tree", - onFilter: (value: string | number | boolean, tracing: APIAnnotationInfo) => + onFilter: (value: React.Key | boolean, tracing: APIAnnotationInfo) => (tracing.owner != null && tracing.owner.id === value.toString()) || tracing.teams.some((team) => team.id === value), sorter: Utils.localeCompareBy((annotation) => annotation.owner?.firstName || ""), diff --git a/frontend/javascripts/dashboard/folders/folder_tree.tsx b/frontend/javascripts/dashboard/folders/folder_tree.tsx index 7fc3b6d4845..e05782d0571 100644 --- a/frontend/javascripts/dashboard/folders/folder_tree.tsx +++ b/frontend/javascripts/dashboard/folders/folder_tree.tsx @@ -10,7 +10,7 @@ import { import { DeleteOutlined, EditOutlined, PlusOutlined } from "@ant-design/icons"; import { Dropdown, Modal, type MenuProps, Tree } from "antd"; import Toast from "libs/toast"; -import type { DataNode, DirectoryTreeProps } from "antd/lib/tree"; +import type { AntTreeNodeSelectedEvent, DataNode, DirectoryTreeProps } from "antd/lib/tree"; import memoizeOne from "memoize-one"; import classNames from "classnames"; import type { FolderItem } from "types/api_flow_types"; @@ -78,7 +78,7 @@ export function FolderTreeSidebar({ }); const onSelect: DirectoryTreeProps["onSelect"] = useCallback( - (keys, event) => { + (keys: React.Key[], info: AntTreeNodeBaseEvent) => { // Without the following check, the onSelect callback would also be called by antd // when the user clicks on a menu entry in the context menu (e.g., deleting a folder // would directly select it afterwards). @@ -86,7 +86,7 @@ export function FolderTreeSidebar({ // the ant-tree container. Therefore, we can use this property to filter out those // click events. // The classic preventDefault() didn't work as an alternative workaround. - const doesEventReferToTreeUi = event.nativeEvent.target.closest(".ant-tree") != null; + const doesEventReferToTreeUi = info.nativeEvent.target.closest(".ant-tree") != null; if (keys.length > 0 && doesEventReferToTreeUi) { context.setActiveFolderId(keys[0] as string); context.setSelectedDatasets([]); diff --git a/frontend/javascripts/libs/react_helpers.tsx b/frontend/javascripts/libs/react_helpers.tsx index d92bf8ddde8..bc02006603a 100644 --- a/frontend/javascripts/libs/react_helpers.tsx +++ b/frontend/javascripts/libs/react_helpers.tsx @@ -97,8 +97,8 @@ export function useGuardedFetch( updates. */ export function usePolledState(callback: (arg0: OxalisState) => void, interval: number = 1000) { - const store = useStore(); - const oldState = useRef(null); + const store = useStore(); + const oldState = useRef(null); useInterval(() => { const state = store.getState(); diff --git a/frontend/javascripts/oxalis/geometries/materials/plane_material_factory.ts b/frontend/javascripts/oxalis/geometries/materials/plane_material_factory.ts index 51bb9ea2ada..58bc4049eea 100644 --- a/frontend/javascripts/oxalis/geometries/materials/plane_material_factory.ts +++ b/frontend/javascripts/oxalis/geometries/materials/plane_material_factory.ts @@ -1006,7 +1006,7 @@ class PlaneMaterialFactory { // The third parameter returns the number of globally available layers (this is not always equal // to the sum of the lengths of the first two arrays, as not all layers might be rendered.) const state = Store.getState(); - const allSanitizedOrderedColorLayerNames = + const allSanitizedOrderedColorLayerNames: string[] = state.datasetConfiguration.colorLayerOrder.map(sanitizeName); const colorLayerNames = getSanitizedColorLayerNames(); const segmentationLayerNames = Model.getSegmentationLayers().map((layer) => diff --git a/frontend/javascripts/oxalis/model/helpers/overwrite_action_middleware.ts b/frontend/javascripts/oxalis/model/helpers/overwrite_action_middleware.ts index 90b4204917d..c51d2debc60 100644 --- a/frontend/javascripts/oxalis/model/helpers/overwrite_action_middleware.ts +++ b/frontend/javascripts/oxalis/model/helpers/overwrite_action_middleware.ts @@ -1,5 +1,6 @@ import type { Dispatch, MiddlewareAPI } from "redux"; import type { Action } from "oxalis/model/actions/actions"; + type OverwriteFunction = (store: S, next: (action: A) => void, action: A) => A | Promise; const overwrites: Record> = {}; diff --git a/frontend/javascripts/oxalis/store.ts b/frontend/javascripts/oxalis/store.ts index f3ddf1e2d79..bfeb684ce82 100644 --- a/frontend/javascripts/oxalis/store.ts +++ b/frontend/javascripts/oxalis/store.ts @@ -636,7 +636,7 @@ const combinedReducers = reduceReducers( OrganizationReducer, ); -const store = createStore( +const store = createStore( enableBatching(combinedReducers), defaultState, applyMiddleware(actionLoggerMiddleware, overwriteActionMiddleware, sagaMiddleware as Middleware), diff --git a/frontend/javascripts/oxalis/view/action-bar/toolbar_view.tsx b/frontend/javascripts/oxalis/view/action-bar/toolbar_view.tsx index 1322de813e2..c5b0237d690 100644 --- a/frontend/javascripts/oxalis/view/action-bar/toolbar_view.tsx +++ b/frontend/javascripts/oxalis/view/action-bar/toolbar_view.tsx @@ -359,7 +359,7 @@ function VolumeInterpolationButton() { }; const buttonsRender = useCallback( - ([leftButton, rightButton]) => [ + ([leftButton, rightButton]: React.ReactNode[]) => [ {React.cloneElement(leftButton as React.ReactElement, { disabled: isDisabled, diff --git a/frontend/javascripts/oxalis/view/components/setting_input_views.tsx b/frontend/javascripts/oxalis/view/components/setting_input_views.tsx index 1bb468c6ab8..8dc29e5f801 100644 --- a/frontend/javascripts/oxalis/view/components/setting_input_views.tsx +++ b/frontend/javascripts/oxalis/view/components/setting_input_views.tsx @@ -217,7 +217,8 @@ export class LogSliderSetting extends React.PureComponent ); } } -export type SwitchSettingProps = { + +type SwitchSettingProps = React.PropsWithChildren<{ onChange: (value: boolean) => void | Promise; value: boolean; label: string | React.ReactNode; @@ -227,7 +228,8 @@ export type SwitchSettingProps = { labelSpan?: number | null; postSwitchIcon: React.ReactNode | null | undefined; disabledReason?: string | null; -}; +}>; + export class SwitchSetting extends React.PureComponent { static defaultProps = { disabled: false, From aab53be31f44d5ddcd67352d18074f2fb87c2baa Mon Sep 17 00:00:00 2001 From: Tom Herold Date: Wed, 4 Sep 2024 15:25:34 +0200 Subject: [PATCH 11/24] updated yarn lock --- yarn.lock | 126 +++++++++++++++++++----------------------------------- 1 file changed, 43 insertions(+), 83 deletions(-) diff --git a/yarn.lock b/yarn.lock index 93a1245cb34..7e6730dc40f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -341,7 +341,7 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.10.tgz#824600d59e96aea26a5a2af5a9d812af05c3ae81" integrity sha512-PJdRPwyoOqFAWfLytxrWwGrAxghCgh/yTNCYciOz8QgjflA7aZhECPZAa2VUedKg2+QMWkI0L9lynh2SNmNEgA== -"@babel/runtime@^7.1.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.7": +"@babel/runtime@^7.1.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2": version "7.12.5" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.5.tgz#410e7e487441e1b360c29be715d870d9b985882e" integrity sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg== @@ -362,13 +362,6 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/runtime@^7.2.0": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.6.tgz#57d64b9ae3cff1d67eb067ae117dac087f5bd438" - integrity sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ== - dependencies: - regenerator-runtime "^0.13.11" - "@babel/template@^7.16.0": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.0.tgz#d16a35ebf4cd74e202083356fab21dd89363ddd6" @@ -518,6 +511,37 @@ resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== +"@dnd-kit/accessibility@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@dnd-kit/accessibility/-/accessibility-3.1.0.tgz#1054e19be276b5f1154ced7947fc0cb5d99192e0" + integrity sha512-ea7IkhKvlJUv9iSHJOnxinBcoOI3ppGnnL+VDJ75O45Nss6HtZd8IdN8touXPDtASfeI2T2LImb8VOZcL47wjQ== + dependencies: + tslib "^2.0.0" + +"@dnd-kit/core@^6.1.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@dnd-kit/core/-/core-6.1.0.tgz#e81a3d10d9eca5d3b01cbf054171273a3fe01def" + integrity sha512-J3cQBClB4TVxwGo3KEjssGEXNJqGVWx17aRTZ1ob0FliR5IjYgTxl5YJbKTzA6IzrtelotH19v6y7uoIRUZPSg== + dependencies: + "@dnd-kit/accessibility" "^3.1.0" + "@dnd-kit/utilities" "^3.2.2" + tslib "^2.0.0" + +"@dnd-kit/sortable@^8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@dnd-kit/sortable/-/sortable-8.0.0.tgz#086b7ac6723d4618a4ccb6f0227406d8a8862a96" + integrity sha512-U3jk5ebVXe1Lr7c2wU7SBZjcWdQP+j7peHJfCspnA81enlu88Mgd7CC8Q+pub9ubP7eKVETzJW+IBAhsqbSu/g== + dependencies: + "@dnd-kit/utilities" "^3.2.2" + tslib "^2.0.0" + +"@dnd-kit/utilities@^3.2.2": + version "3.2.2" + resolved "https://registry.yarnpkg.com/@dnd-kit/utilities/-/utilities-3.2.2.tgz#5a32b6af356dc5f74d61b37d6f7129a4040ced7b" + integrity sha512-+MKAJEOfaBe5SmV6t34p80MMKhjvUz0vRrvVJbPT0WElzaOJ/1xs+D+KDv+tD/NE5ujfrChEcshd4fLn0wpiqg== + dependencies: + tslib "^2.0.0" + "@emotion/hash@^0.8.0": version "0.8.0" resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.8.0.tgz#bbbff68978fefdbe68ccb533bc8cbe1d1afb5413" @@ -2032,14 +2056,6 @@ "@types/history" "^4.7.11" "@types/react" "*" -"@types/react-virtualized@^9.21.21": - version "9.21.21" - resolved "https://registry.yarnpkg.com/@types/react-virtualized/-/react-virtualized-9.21.21.tgz#65c96f25314f0fb3d40536929dc78112753b49e1" - integrity sha512-Exx6I7p4Qn+BBA1SRyj/UwQlZ0I0Pq7g7uhAp0QQ4JWzZunqEqNBGTmCmMmS/3N9wFgAGWuBD16ap7k8Y14VPA== - dependencies: - "@types/prop-types" "*" - "@types/react" "^17" - "@types/react@*", "@types/react@^18.3.1": version "18.3.5" resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.5.tgz#5f524c2ad2089c0ff372bbdabc77ca2c4dbadf8f" @@ -2048,15 +2064,6 @@ "@types/prop-types" "*" csstype "^3.0.2" -"@types/react@^17": - version "17.0.44" - resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.44.tgz#c3714bd34dd551ab20b8015d9d0dbec812a51ec7" - integrity sha512-Ye0nlw09GeMp2Suh8qoOv0odfgCoowfM/9MG6WeRD60Gq9wS90bdkdRtYbRkNhXOpG4H+YXGvj4wOWhAC0LJ1g== - dependencies: - "@types/prop-types" "*" - "@types/scheduler" "*" - csstype "^3.0.2" - "@types/request@2.48.7": version "2.48.7" resolved "https://registry.yarnpkg.com/@types/request/-/request-2.48.7.tgz#a962d11a26e0d71d9a9913d96bb806dc4d4c2f19" @@ -2077,11 +2084,6 @@ resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.2.tgz#ed279a64fa438bb69f2480eda44937912bb7480a" integrity sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow== -"@types/scheduler@*": - version "0.16.2" - resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" - integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== - "@types/send@*": version "0.17.4" resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.4.tgz#6619cd24e7270793702e4e6a4b958a9010cfc57a" @@ -3378,11 +3380,6 @@ clone@^1.0.2: resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= -clsx@^1.0.4: - version "1.1.1" - resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188" - integrity sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA== - code-excerpt@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/code-excerpt/-/code-excerpt-4.0.0.tgz#2de7d46e98514385cb01f7b3b741320115f4c95e" @@ -4172,14 +4169,6 @@ documentation@^14.0.2: "@vue/compiler-sfc" "^3.2.37" vue-template-compiler "^2.7.8" -dom-helpers@^5.1.3: - version "5.2.0" - resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.0.tgz#57fd054c5f8f34c52a3eeffdb7e7e93cd357d95b" - integrity sha512-Ru5o9+V8CpunKnz5LGgWXkmrH/20cGKwcHwS4m73zIvs54CN9epEmT/HLqFJW3kXpakAFkEdzgy1hzlJe3E4OQ== - dependencies: - "@babel/runtime" "^7.8.7" - csstype "^3.0.2" - dom-walk@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" @@ -5600,13 +5589,6 @@ interpret@^3.1.1: resolved "https://registry.yarnpkg.com/interpret/-/interpret-3.1.1.tgz#5be0ceed67ca79c6c4bc5cf0d7ee843dcea110c4" integrity sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ== -invariant@^2.2.4: - version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== - dependencies: - loose-envify "^1.0.0" - iota-array@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/iota-array/-/iota-array-1.0.0.tgz#81ef57fe5d05814cd58c2483632a99c30a0e8087" @@ -8010,7 +7992,7 @@ promise-polyfill@^8.1.3: resolved "https://registry.yarnpkg.com/promise-polyfill/-/promise-polyfill-8.2.1.tgz#1fa955b325bee4f6b8a4311e18148d4e5b46d254" integrity sha512-3p9zj0cEHbp7NVUxEYUWjQlffXqnXaZIMPkAO7HhFh8u5636xLRDHOUo2vpWSK0T2mqm6fKLXYn1KP6PAZ2gKg== -prop-types@^15.0.0, prop-types@^15.5.7, prop-types@^15.7.2, prop-types@^15.8.1: +prop-types@^15.0.0, prop-types@^15.7.2, prop-types@^15.8.1: version "15.8.1" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== @@ -8761,15 +8743,6 @@ react-router@5.3.4: tiny-invariant "^1.0.2" tiny-warning "^1.0.0" -react-sortable-hoc@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/react-sortable-hoc/-/react-sortable-hoc-2.0.0.tgz#f6780d8aa4b922a21f3e754af542f032677078b7" - integrity sha512-JZUw7hBsAHXK7PTyErJyI7SopSBFRcFHDjWW5SWjcugY0i6iH7f+eJkY8cJmGMlZ1C9xz1J3Vjz0plFpavVeRg== - dependencies: - "@babel/runtime" "^7.2.0" - invariant "^2.2.4" - prop-types "^15.5.7" - react-tooltip@^5.27.1: version "5.27.1" resolved "https://registry.yarnpkg.com/react-tooltip/-/react-tooltip-5.27.1.tgz#a94481ba146d828d31642f14d6ab29b56998fcda" @@ -8778,17 +8751,10 @@ react-tooltip@^5.27.1: "@floating-ui/dom" "^1.6.1" classnames "^2.3.0" -react-virtualized@^9.22.4: - version "9.22.5" - resolved "https://registry.yarnpkg.com/react-virtualized/-/react-virtualized-9.22.5.tgz#bfb96fed519de378b50d8c0064b92994b3b91620" - integrity sha512-YqQMRzlVANBv1L/7r63OHa2b0ZsAaDp1UhVNEdUaXI8A5u6hTpA5NYtUueLH2rFuY/27mTGIBl7ZhqFKzw18YQ== - dependencies: - "@babel/runtime" "^7.7.2" - clsx "^1.0.4" - dom-helpers "^5.1.3" - loose-envify "^1.4.0" - prop-types "^15.7.2" - react-lifecycles-compat "^3.0.4" +react-virtualized-auto-sizer@^1.0.24: + version "1.0.24" + resolved "https://registry.yarnpkg.com/react-virtualized-auto-sizer/-/react-virtualized-auto-sizer-1.0.24.tgz#3ebdc92f4b05ad65693b3cc8e7d8dd54924c0227" + integrity sha512-3kCn7N9NEb3FlvJrSHWGQ4iVl+ydQObq2fHMn12i5wbtm74zHOPhz/i64OL3c1S1vi9i2GXtZqNqUJTQ+BnNfg== react@^16.13.1: version "16.14.0" @@ -8928,13 +8894,12 @@ redux-saga@^1.3.0: dependencies: "@redux-saga/core" "^1.3.0" -redux@4.0.5: - version "4.0.5" - resolved "https://registry.yarnpkg.com/redux/-/redux-4.0.5.tgz#4db5de5816e17891de8a80c424232d06f051d93f" - integrity sha512-VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w== +redux@4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/redux/-/redux-4.1.2.tgz#140f35426d99bb4729af760afcf79eaaac407104" + integrity sha512-SH8PglcebESbd/shgf6mii6EIoRM0zrQyjcuQ+ojmfxjTtE0z9Y8pa62iA/OJ58qjP6j27uyW4kUF4jl/jd6sw== dependencies: - loose-envify "^1.4.0" - symbol-observable "^1.2.0" + "@babel/runtime" "^7.9.2" redux@^4.2.0: version "4.2.1" @@ -8943,7 +8908,7 @@ redux@^4.2.0: dependencies: "@babel/runtime" "^7.9.2" -regenerator-runtime@^0.13.11, regenerator-runtime@^0.13.3, regenerator-runtime@^0.13.4: +regenerator-runtime@^0.13.3, regenerator-runtime@^0.13.4: version "0.13.11" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== @@ -9929,11 +9894,6 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -symbol-observable@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" - integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== - symbol-tree@^3.2.4: version "3.2.4" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" From bab759498529ad535388c8873e5a95b6ea055b6d Mon Sep 17 00:00:00 2001 From: Tom Herold Date: Wed, 4 Sep 2024 16:01:52 +0200 Subject: [PATCH 12/24] updated tanstack/query --- .../dashboard/folders/folder_tree.tsx | 5 +++-- .../view/action-bar/private_links_view.tsx | 7 +++++-- package.json | 4 ++-- yarn.lock | 19 +++++++++++++------ 4 files changed, 23 insertions(+), 12 deletions(-) diff --git a/frontend/javascripts/dashboard/folders/folder_tree.tsx b/frontend/javascripts/dashboard/folders/folder_tree.tsx index e05782d0571..20c4ca2f900 100644 --- a/frontend/javascripts/dashboard/folders/folder_tree.tsx +++ b/frontend/javascripts/dashboard/folders/folder_tree.tsx @@ -16,6 +16,7 @@ import classNames from "classnames"; import type { FolderItem } from "types/api_flow_types"; import { PricingEnforcedSpan } from "components/pricing_enforcers"; import { PricingPlanEnum } from "admin/organization/pricing_plan_utils"; +import { AntTreeNodeBaseEvent } from "antd/es/tree/Tree"; const { DirectoryTree } = Tree; @@ -78,7 +79,7 @@ export function FolderTreeSidebar({ }); const onSelect: DirectoryTreeProps["onSelect"] = useCallback( - (keys: React.Key[], info: AntTreeNodeBaseEvent) => { + (keys: React.Key[], {nativeEvent}: {nativeEvent:React.MouseEvent}) => { // Without the following check, the onSelect callback would also be called by antd // when the user clicks on a menu entry in the context menu (e.g., deleting a folder // would directly select it afterwards). @@ -86,7 +87,7 @@ export function FolderTreeSidebar({ // the ant-tree container. Therefore, we can use this property to filter out those // click events. // The classic preventDefault() didn't work as an alternative workaround. - const doesEventReferToTreeUi = info.nativeEvent.target.closest(".ant-tree") != null; + const doesEventReferToTreeUi = nativeEvent.target.closest(".ant-tree") != null; if (keys.length > 0 && doesEventReferToTreeUi) { context.setActiveFolderId(keys[0] as string); context.setSelectedDatasets([]); diff --git a/frontend/javascripts/oxalis/view/action-bar/private_links_view.tsx b/frontend/javascripts/oxalis/view/action-bar/private_links_view.tsx index 638b299b785..924646f773f 100644 --- a/frontend/javascripts/oxalis/view/action-bar/private_links_view.tsx +++ b/frontend/javascripts/oxalis/view/action-bar/private_links_view.tsx @@ -46,8 +46,11 @@ import { useSelector } from "react-redux"; import { getDataLayers } from "oxalis/model/accessors/dataset_accessor"; import { getReadableNameByVolumeTracingId } from "oxalis/model/accessors/volumetracing_accessor"; + +// TODO Remove explicit (error) type declaration when updateing to tanstack/query >= 5 +// https://github.com/TanStack/query/pull/4706 function useLinksQuery(annotationId: string) { - return useQuery(["links", annotationId], () => getPrivateLinksByAnnotation(annotationId), { + return useQuery(["links", annotationId], () => getPrivateLinksByAnnotation(annotationId), { refetchOnWindowFocus: false, }); } @@ -324,7 +327,7 @@ function PrivateLinksView({ annotationId }: { annotationId: string }) { const deleteMutation = useDeleteLinkMutation(annotationId); if (error) { - return Error while loading the private links: {error}; + return Error while loading the private links: {error.message}; } const columns: ColumnsType = [ diff --git a/package.json b/package.json index e78ae686f02..91a6752e1cb 100644 --- a/package.json +++ b/package.json @@ -139,8 +139,8 @@ "@rehooks/document-title": "^1.0.2", "@scalableminds/prop-types": "^15.8.1", "@tanstack/query-sync-storage-persister": "^4.14.1", - "@tanstack/react-query": "^4.14.1", - "@tanstack/react-query-persist-client": "^4.14.1", + "@tanstack/react-query": "^4.36.1", + "@tanstack/react-query-persist-client": "4.36.1", "@zip.js/zip.js": "^2.7.32", "ansi-to-react": "^6.1.6", "antd": "5.17.4", diff --git a/yarn.lock b/yarn.lock index 7e6730dc40f..bc311ec7b55 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1448,6 +1448,13 @@ resolved "https://registry.yarnpkg.com/@tanstack/query-persist-client-core/-/query-persist-client-core-4.14.1.tgz#4f010d9ab401bcc1661ac93a127d59fae19947e3" integrity sha512-zikaeGw8LBvJMeRrX1ssST2CQtacOIfcpcs/SvVOB2oEUe6X2amHX9wgQeGNqnXCTIAZ47ozrLUoNuQC0Q+6LA== +"@tanstack/query-persist-client-core@4.36.1": + version "4.36.1" + resolved "https://registry.yarnpkg.com/@tanstack/query-persist-client-core/-/query-persist-client-core-4.36.1.tgz#4d7284994bdc2a15fe6cbe7161be21e03033fe12" + integrity sha512-eocgCeI7D7TRv1IUUBMfVwOI0wdSmMkBIbkKhqEdTrnUHUQEeOaYac8oeZk2cumAWJdycu6P/wB+WqGynTnzXg== + dependencies: + "@tanstack/query-core" "4.36.1" + "@tanstack/query-sync-storage-persister@^4.14.1": version "4.14.1" resolved "https://registry.yarnpkg.com/@tanstack/query-sync-storage-persister/-/query-sync-storage-persister-4.14.1.tgz#00bbead0e02a359cff1ab3fb9f69951bfc496dc5" @@ -1455,14 +1462,14 @@ dependencies: "@tanstack/query-persist-client-core" "4.14.1" -"@tanstack/react-query-persist-client@^4.14.1": - version "4.14.1" - resolved "https://registry.yarnpkg.com/@tanstack/react-query-persist-client/-/react-query-persist-client-4.14.1.tgz#11056e46927bd3daea147dba13cf1f8bee1d30d2" - integrity sha512-W4pJtz/f1+ol6jkJKBHLeh3gTaU90VRnCMvGim7mRrh4042YQQ2UOAW1Hkx/LaJUtzwoPV5MScs/ak9DNUNSPw== +"@tanstack/react-query-persist-client@4.36.1": + version "4.36.1" + resolved "https://registry.yarnpkg.com/@tanstack/react-query-persist-client/-/react-query-persist-client-4.36.1.tgz#d96fa44cdc661534379623423da596a7b5dc13a7" + integrity sha512-32I5b9aAu4NCiXZ7Te/KEQLfHbYeTNriVPrKYcvEThnZ9tlW01vLcSoxpUIsMYRsembvJUUAkzYBAiZHLOd6pQ== dependencies: - "@tanstack/query-persist-client-core" "4.14.1" + "@tanstack/query-persist-client-core" "4.36.1" -"@tanstack/react-query@^4.14.1": +"@tanstack/react-query@^4.36.1": version "4.36.1" resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-4.36.1.tgz#acb589fab4085060e2e78013164868c9c785e5d2" integrity sha512-y7ySVHFyyQblPl3J3eQBWpXZkliroki3ARnBKsdJchlgt7yJLRDUcf4B8soufgiYt3pEQIkBWBx1N9/ZPIeUWw== From c409b3e66cdcfc1d9417764f19b9320ec7d421d8 Mon Sep 17 00:00:00 2001 From: Tom Herold Date: Wed, 4 Sep 2024 16:01:52 +0200 Subject: [PATCH 13/24] updated tanstack/query --- .../dashboard/folders/folder_tree.tsx | 5 +++-- .../view/action-bar/private_links_view.tsx | 7 +++++-- package.json | 6 +++--- yarn.lock | 19 +++++++++++++------ 4 files changed, 24 insertions(+), 13 deletions(-) diff --git a/frontend/javascripts/dashboard/folders/folder_tree.tsx b/frontend/javascripts/dashboard/folders/folder_tree.tsx index e05782d0571..20c4ca2f900 100644 --- a/frontend/javascripts/dashboard/folders/folder_tree.tsx +++ b/frontend/javascripts/dashboard/folders/folder_tree.tsx @@ -16,6 +16,7 @@ import classNames from "classnames"; import type { FolderItem } from "types/api_flow_types"; import { PricingEnforcedSpan } from "components/pricing_enforcers"; import { PricingPlanEnum } from "admin/organization/pricing_plan_utils"; +import { AntTreeNodeBaseEvent } from "antd/es/tree/Tree"; const { DirectoryTree } = Tree; @@ -78,7 +79,7 @@ export function FolderTreeSidebar({ }); const onSelect: DirectoryTreeProps["onSelect"] = useCallback( - (keys: React.Key[], info: AntTreeNodeBaseEvent) => { + (keys: React.Key[], {nativeEvent}: {nativeEvent:React.MouseEvent}) => { // Without the following check, the onSelect callback would also be called by antd // when the user clicks on a menu entry in the context menu (e.g., deleting a folder // would directly select it afterwards). @@ -86,7 +87,7 @@ export function FolderTreeSidebar({ // the ant-tree container. Therefore, we can use this property to filter out those // click events. // The classic preventDefault() didn't work as an alternative workaround. - const doesEventReferToTreeUi = info.nativeEvent.target.closest(".ant-tree") != null; + const doesEventReferToTreeUi = nativeEvent.target.closest(".ant-tree") != null; if (keys.length > 0 && doesEventReferToTreeUi) { context.setActiveFolderId(keys[0] as string); context.setSelectedDatasets([]); diff --git a/frontend/javascripts/oxalis/view/action-bar/private_links_view.tsx b/frontend/javascripts/oxalis/view/action-bar/private_links_view.tsx index 638b299b785..924646f773f 100644 --- a/frontend/javascripts/oxalis/view/action-bar/private_links_view.tsx +++ b/frontend/javascripts/oxalis/view/action-bar/private_links_view.tsx @@ -46,8 +46,11 @@ import { useSelector } from "react-redux"; import { getDataLayers } from "oxalis/model/accessors/dataset_accessor"; import { getReadableNameByVolumeTracingId } from "oxalis/model/accessors/volumetracing_accessor"; + +// TODO Remove explicit (error) type declaration when updateing to tanstack/query >= 5 +// https://github.com/TanStack/query/pull/4706 function useLinksQuery(annotationId: string) { - return useQuery(["links", annotationId], () => getPrivateLinksByAnnotation(annotationId), { + return useQuery(["links", annotationId], () => getPrivateLinksByAnnotation(annotationId), { refetchOnWindowFocus: false, }); } @@ -324,7 +327,7 @@ function PrivateLinksView({ annotationId }: { annotationId: string }) { const deleteMutation = useDeleteLinkMutation(annotationId); if (error) { - return Error while loading the private links: {error}; + return Error while loading the private links: {error.message}; } const columns: ColumnsType = [ diff --git a/package.json b/package.json index e78ae686f02..d7f92424da6 100644 --- a/package.json +++ b/package.json @@ -138,9 +138,9 @@ "@fortawesome/fontawesome-free": "^5.15.4", "@rehooks/document-title": "^1.0.2", "@scalableminds/prop-types": "^15.8.1", - "@tanstack/query-sync-storage-persister": "^4.14.1", - "@tanstack/react-query": "^4.14.1", - "@tanstack/react-query-persist-client": "^4.14.1", + "@tanstack/query-sync-storage-persister": "4.36.1", + "@tanstack/react-query": "^4.36.1", + "@tanstack/react-query-persist-client": "4.36.1", "@zip.js/zip.js": "^2.7.32", "ansi-to-react": "^6.1.6", "antd": "5.17.4", diff --git a/yarn.lock b/yarn.lock index 7e6730dc40f..bc311ec7b55 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1448,6 +1448,13 @@ resolved "https://registry.yarnpkg.com/@tanstack/query-persist-client-core/-/query-persist-client-core-4.14.1.tgz#4f010d9ab401bcc1661ac93a127d59fae19947e3" integrity sha512-zikaeGw8LBvJMeRrX1ssST2CQtacOIfcpcs/SvVOB2oEUe6X2amHX9wgQeGNqnXCTIAZ47ozrLUoNuQC0Q+6LA== +"@tanstack/query-persist-client-core@4.36.1": + version "4.36.1" + resolved "https://registry.yarnpkg.com/@tanstack/query-persist-client-core/-/query-persist-client-core-4.36.1.tgz#4d7284994bdc2a15fe6cbe7161be21e03033fe12" + integrity sha512-eocgCeI7D7TRv1IUUBMfVwOI0wdSmMkBIbkKhqEdTrnUHUQEeOaYac8oeZk2cumAWJdycu6P/wB+WqGynTnzXg== + dependencies: + "@tanstack/query-core" "4.36.1" + "@tanstack/query-sync-storage-persister@^4.14.1": version "4.14.1" resolved "https://registry.yarnpkg.com/@tanstack/query-sync-storage-persister/-/query-sync-storage-persister-4.14.1.tgz#00bbead0e02a359cff1ab3fb9f69951bfc496dc5" @@ -1455,14 +1462,14 @@ dependencies: "@tanstack/query-persist-client-core" "4.14.1" -"@tanstack/react-query-persist-client@^4.14.1": - version "4.14.1" - resolved "https://registry.yarnpkg.com/@tanstack/react-query-persist-client/-/react-query-persist-client-4.14.1.tgz#11056e46927bd3daea147dba13cf1f8bee1d30d2" - integrity sha512-W4pJtz/f1+ol6jkJKBHLeh3gTaU90VRnCMvGim7mRrh4042YQQ2UOAW1Hkx/LaJUtzwoPV5MScs/ak9DNUNSPw== +"@tanstack/react-query-persist-client@4.36.1": + version "4.36.1" + resolved "https://registry.yarnpkg.com/@tanstack/react-query-persist-client/-/react-query-persist-client-4.36.1.tgz#d96fa44cdc661534379623423da596a7b5dc13a7" + integrity sha512-32I5b9aAu4NCiXZ7Te/KEQLfHbYeTNriVPrKYcvEThnZ9tlW01vLcSoxpUIsMYRsembvJUUAkzYBAiZHLOd6pQ== dependencies: - "@tanstack/query-persist-client-core" "4.14.1" + "@tanstack/query-persist-client-core" "4.36.1" -"@tanstack/react-query@^4.14.1": +"@tanstack/react-query@^4.36.1": version "4.36.1" resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-4.36.1.tgz#acb589fab4085060e2e78013164868c9c785e5d2" integrity sha512-y7ySVHFyyQblPl3J3eQBWpXZkliroki3ARnBKsdJchlgt7yJLRDUcf4B8soufgiYt3pEQIkBWBx1N9/ZPIeUWw== From 71f4ba048218429332e6f6c34a7bcc29e07c868c Mon Sep 17 00:00:00 2001 From: Tom Herold Date: Wed, 4 Sep 2024 16:47:42 +0200 Subject: [PATCH 14/24] update flex layout --- .../javascripts/oxalis/view/layouting/flex_layout_wrapper.tsx | 3 ++- package.json | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/frontend/javascripts/oxalis/view/layouting/flex_layout_wrapper.tsx b/frontend/javascripts/oxalis/view/layouting/flex_layout_wrapper.tsx index 5d83579de3d..b40d2d2c99e 100644 --- a/frontend/javascripts/oxalis/view/layouting/flex_layout_wrapper.tsx +++ b/frontend/javascripts/oxalis/view/layouting/flex_layout_wrapper.tsx @@ -1,7 +1,8 @@ import type { Dispatch } from "redux"; import { Layout } from "antd"; import { connect } from "react-redux"; -import FlexLayout, { type BorderNode, type TabNode, type TabSetNode } from "flexlayout-react"; +import * as FlexLayout from "flexlayout-react" +import type { BorderNode, TabNode, TabSetNode } from "flexlayout-react"; import * as React from "react"; import _ from "lodash"; import features from "features"; diff --git a/package.json b/package.json index d7f92424da6..bc419751de8 100644 --- a/package.json +++ b/package.json @@ -161,7 +161,7 @@ "distance-transform": "^1.0.2", "esbuild-loader": "^4.1.0", "file-saver": "^2.0.1", - "flexlayout-react": "^0.5.5", + "flexlayout-react": "0.7.15", "hammerjs": "^2.0.8", "history": "^4.7.2", "html2canvas": "^1.4.1", From d4d1017183501fc3be421f10f73bbc2139ce3897 Mon Sep 17 00:00:00 2001 From: Tom Herold Date: Wed, 4 Sep 2024 16:47:59 +0200 Subject: [PATCH 15/24] update react-json-tree --- package.json | 2 +- yarn.lock | 111 +++++++++++++++++++-------------------------------- 2 files changed, 41 insertions(+), 72 deletions(-) diff --git a/package.json b/package.json index bc419751de8..73215b90443 100644 --- a/package.json +++ b/package.json @@ -193,7 +193,7 @@ "react-dom": "^18.3.0", "react-dropzone": "^11.3.1", "react-flow-renderer": "^10.3.16", - "react-json-tree": "^0.17.0", + "react-json-tree": "0.19.0", "react-markdown": "^8.0.7", "react-redux": "^8.1.0", "react-router-dom": "5.3.4", diff --git a/yarn.lock b/yarn.lock index bc311ec7b55..f3a9ff444c6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1443,11 +1443,6 @@ resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-4.36.1.tgz#79f8c1a539d47c83104210be2388813a7af2e524" integrity sha512-DJSilV5+ytBP1FbFcEJovv4rnnm/CokuVvrBEtW/Va9DvuJ3HksbXUJEpI0aV1KtuL4ZoO9AVE6PyNLzF7tLeA== -"@tanstack/query-persist-client-core@4.14.1": - version "4.14.1" - resolved "https://registry.yarnpkg.com/@tanstack/query-persist-client-core/-/query-persist-client-core-4.14.1.tgz#4f010d9ab401bcc1661ac93a127d59fae19947e3" - integrity sha512-zikaeGw8LBvJMeRrX1ssST2CQtacOIfcpcs/SvVOB2oEUe6X2amHX9wgQeGNqnXCTIAZ47ozrLUoNuQC0Q+6LA== - "@tanstack/query-persist-client-core@4.36.1": version "4.36.1" resolved "https://registry.yarnpkg.com/@tanstack/query-persist-client-core/-/query-persist-client-core-4.36.1.tgz#4d7284994bdc2a15fe6cbe7161be21e03033fe12" @@ -1455,12 +1450,12 @@ dependencies: "@tanstack/query-core" "4.36.1" -"@tanstack/query-sync-storage-persister@^4.14.1": - version "4.14.1" - resolved "https://registry.yarnpkg.com/@tanstack/query-sync-storage-persister/-/query-sync-storage-persister-4.14.1.tgz#00bbead0e02a359cff1ab3fb9f69951bfc496dc5" - integrity sha512-jfER4phfqplQQyTST3dX6n8BTuNnJFQfk+uxVf1QM/uZAHJ/J3Lx2AUgr+mlDsDRcjVJZNm+g9aKlMI1T2KlBQ== +"@tanstack/query-sync-storage-persister@4.36.1": + version "4.36.1" + resolved "https://registry.yarnpkg.com/@tanstack/query-sync-storage-persister/-/query-sync-storage-persister-4.36.1.tgz#bf5d800d54416bc88f150792a53e25ed8aa8769f" + integrity sha512-yMEt5hWe2+1eclf1agMtXHnPIkxEida0lYWkfdhR8U6KXk/lO4Vca6piJmhKI85t0NHlx3l/z6zX+t/Fn5O9NA== dependencies: - "@tanstack/query-persist-client-core" "4.14.1" + "@tanstack/query-persist-client-core" "4.36.1" "@tanstack/react-query-persist-client@4.36.1": version "4.36.1" @@ -1477,11 +1472,6 @@ "@tanstack/query-core" "4.36.1" use-sync-external-store "^1.2.0" -"@types/base16@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@types/base16/-/base16-1.0.2.tgz#eb3a07db52309bfefb9ba010dfdb3c0784971f65" - integrity sha512-oYO/U4VD1DavwrKuCSQWdLG+5K22SLPem2OQaHmFcQuwHoVeGC+JGVRji2MUqZUAIQZHEonOeVfAX09hYiLsdg== - "@types/body-parser@*": version "1.19.2" resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" @@ -1882,10 +1872,10 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== -"@types/lodash@^4.14.178", "@types/lodash@^4.14.182": - version "4.14.184" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.184.tgz#23f96cd2a21a28e106dc24d825d4aa966de7a9fe" - integrity sha512-RoZphVtHbxPZizt4IcILciSWiC6dcn+eZ8oX9IWEYfDMcocdd42f7NPI6fQj+6zI8y4E0L7gu2pcZKLGTRaV9Q== +"@types/lodash@^4.17.0": + version "4.17.7" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.7.tgz#2f776bcb53adc9e13b2c0dfd493dfcbd7de43612" + integrity sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA== "@types/lodash@^4.17.4": version "4.17.4" @@ -2024,11 +2014,6 @@ resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.12.tgz#12bb1e2be27293c1406acb6af1c3f3a1481d98c6" integrity sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q== -"@types/prop-types@^15.7.5": - version "15.7.5" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" - integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== - "@types/qs@*": version "6.9.7" resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" @@ -2847,11 +2832,6 @@ ball-morphology@^0.1.0: ndarray-ops "~1.1.0" typedarray-pool "~0.1.1" -base16@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/base16/-/base16-1.0.0.tgz#e297f60d7ec1014a7a971a39ebc8a98c0b681e70" - integrity sha512-pNdYkNPiJUnEhnfXV56+sQy8+AaPcG3POZAUnwr4EeqCUZFz4u2PePbo3e5Gj4ziYPCWGUZT9RHisvJKnwFuBQ== - base64-arraybuffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz#1c37589a7c4b0746e34bd1feb951da2df01c1bdc" @@ -3394,7 +3374,7 @@ code-excerpt@^4.0.0: dependencies: convert-to-spaces "^2.0.1" -color-convert@^1.9.0, color-convert@^1.9.3: +color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== @@ -3423,7 +3403,7 @@ color-name@^1.0.0, color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -color-string@^1.6.0: +color-string@^1.9.0: version "1.9.1" resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== @@ -3436,13 +3416,13 @@ color-support@^1.1.2: resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== -color@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" - integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== +color@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/color/-/color-4.2.3.tgz#d781ecb5e57224ee43ea9627560107c0e0c6463a" + integrity sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A== dependencies: - color-convert "^1.9.3" - color-string "^1.6.0" + color-convert "^2.0.1" + color-string "^1.9.0" colorette@^2.0.10, colorette@^2.0.14: version "2.0.16" @@ -3736,11 +3716,6 @@ cssstyle@^4.0.1: dependencies: rrweb-cssom "^0.6.0" -csstype@^3.0.10: - version "3.1.0" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.0.tgz#4ddcac3718d787cf9df0d1b7d15033925c8f29f2" - integrity sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA== - csstype@^3.0.2, csstype@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" @@ -4798,10 +4773,10 @@ find-up@^6.3.0: locate-path "^7.1.0" path-exists "^5.0.0" -flexlayout-react@^0.5.5: - version "0.5.5" - resolved "https://registry.yarnpkg.com/flexlayout-react/-/flexlayout-react-0.5.5.tgz#e96dbb61bd29868836aff5139d558fb13abf1287" - integrity sha512-y8fQQ1nfBdSmBELoD/nEplEIxRZfDtHT1Lg50M4iXkvlF9blnkQktmngiYR2tO/wr6fy2+2cV+tX0HXoeHY8cQ== +flexlayout-react@0.7.15: + version "0.7.15" + resolved "https://registry.yarnpkg.com/flexlayout-react/-/flexlayout-react-0.7.15.tgz#9b6a06e8dec82db78d61bd246f1f002ddf3f74f4" + integrity sha512-ydTMdEoQO5BniylxVkSxa59rEY0+96lqqRII+QK+yq6028eHywPuxZawt4g45y5pMb9ptP4N9HPAQXAFsxwowQ== follow-redirects@^1.0.0: version "1.14.9" @@ -6332,10 +6307,10 @@ locate-path@^7.1.0: dependencies: p-locate "^6.0.0" -lodash.curry@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.curry/-/lodash.curry-4.1.1.tgz#248e36072ede906501d75966200a86dab8b23170" - integrity sha512-/u14pXGviLaweY5JI0IUzgzF2J6Ne8INyzAZjImcryjgkZ+ebruBxy2/JaOOkTqScddcYtakjhSaeemV8lR0tA== +lodash-es@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" + integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== lodash.debounce@^4.0.8: version "4.0.8" @@ -7999,7 +7974,7 @@ promise-polyfill@^8.1.3: resolved "https://registry.yarnpkg.com/promise-polyfill/-/promise-polyfill-8.2.1.tgz#1fa955b325bee4f6b8a4311e18148d4e5b46d254" integrity sha512-3p9zj0cEHbp7NVUxEYUWjQlffXqnXaZIMPkAO7HhFh8u5636xLRDHOUo2vpWSK0T2mqm6fKLXYn1KP6PAZ2gKg== -prop-types@^15.0.0, prop-types@^15.7.2, prop-types@^15.8.1: +prop-types@^15.0.0, prop-types@^15.7.2: version "15.8.1" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== @@ -8565,18 +8540,15 @@ rc-virtual-list@^3.14.2, rc-virtual-list@^3.5.1, rc-virtual-list@^3.5.2: rc-resize-observer "^1.0.0" rc-util "^5.36.0" -react-base16-styling@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/react-base16-styling/-/react-base16-styling-0.9.1.tgz#4906b4c0a51636f2dca2cea8b682175aa8bd0c92" - integrity sha512-1s0CY1zRBOQ5M3T61wetEpvQmsYSNtWEcdYzyZNxKa8t7oDvaOn9d21xrGezGAHFWLM7SHcktPuPTrvoqxSfKw== +react-base16-styling@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/react-base16-styling/-/react-base16-styling-0.10.0.tgz#5d5f019bd4dc5870c3e92fd9d5410533a0bbb0c6" + integrity sha512-H1k2eFB6M45OaiRru3PBXkuCcn2qNmx+gzLb4a9IPMR7tMH8oBRXU5jGbPDYG1Hz+82d88ED0vjR8BmqU3pQdg== dependencies: - "@babel/runtime" "^7.16.7" - "@types/base16" "^1.0.2" - "@types/lodash" "^4.14.178" - base16 "^1.0.0" - color "^3.2.1" - csstype "^3.0.10" - lodash.curry "^4.1.1" + "@types/lodash" "^4.17.0" + color "^4.2.3" + csstype "^3.1.3" + lodash-es "^4.17.21" react-colorful@^5.6.1: version "5.6.1" @@ -8660,16 +8632,13 @@ react-is@^18.0.0, react-is@^18.2.0: resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e" integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== -react-json-tree@^0.17.0: - version "0.17.0" - resolved "https://registry.yarnpkg.com/react-json-tree/-/react-json-tree-0.17.0.tgz#aca02cb8c2d3d944e128763c5d814bafa92511d4" - integrity sha512-hcWjibI/fAvsKnfYk+lka5OrE1Lvb1jH5pSnFhIU5T8cCCxB85r6h/NOzDPggSSgErjmx4rl3+2EkeclIKBOhg== +react-json-tree@0.19.0: + version "0.19.0" + resolved "https://registry.yarnpkg.com/react-json-tree/-/react-json-tree-0.19.0.tgz#655b59f1ee31a1d0a81221478dfae2ee9d6da3a6" + integrity sha512-PqT1WRVcWP+RROsZPQfNEKIC1iM/ZMfY4g5jN6oDnXp5593PPRAYgoHcgYCDjflAHQMtxl8XGdlTwIBdEGUXvw== dependencies: - "@babel/runtime" "^7.18.3" - "@types/lodash" "^4.14.182" - "@types/prop-types" "^15.7.5" - prop-types "^15.8.1" - react-base16-styling "^0.9.1" + "@types/lodash" "^4.17.0" + react-base16-styling "^0.10.0" react-lifecycles-compat@^3.0.4: version "3.0.4" From 2592486bc6a4de7f6e7dc3b375cb65dc9bd8aab4 Mon Sep 17 00:00:00 2001 From: Tom Herold Date: Wed, 4 Sep 2024 17:12:31 +0200 Subject: [PATCH 16/24] fix remaining typescript errors --- .../javascripts/admin/voxelytics/task_view.tsx | 17 +++++++++-------- .../dashboard/folders/folder_tree.tsx | 12 +++++++----- .../oxalis/model/actions/annotation_actions.ts | 1 + .../view/action-bar/private_links_view.tsx | 11 +++++++---- .../view/layouting/flex_layout_wrapper.tsx | 18 +++++++++++------- 5 files changed, 35 insertions(+), 24 deletions(-) diff --git a/frontend/javascripts/admin/voxelytics/task_view.tsx b/frontend/javascripts/admin/voxelytics/task_view.tsx index 3e0e6ff2761..c25eada23eb 100644 --- a/frontend/javascripts/admin/voxelytics/task_view.tsx +++ b/frontend/javascripts/admin/voxelytics/task_view.tsx @@ -1,5 +1,5 @@ import React from "react"; -import { JSONTree } from "react-json-tree"; +import { JSONTree, type ShouldExpandNodeInitially, type LabelRenderer } from "react-json-tree"; import { Progress, Tabs, type TabsProps, Tooltip } from "antd"; import Markdown from "libs/markdown_adapter"; import { @@ -14,11 +14,11 @@ import LogTab from "./log_tab"; import StatisticsTab from "./statistics_tab"; import { runStateToStatus, useTheme } from "./utils"; import { formatNumber } from "libs/format_utils"; -function labelRenderer(_keyPath: Array) { + +const labelRenderer: LabelRenderer = function (_keyPath) { const keyPath = _keyPath.slice().reverse(); - const divWithId =
{keyPath.slice(-1)[0]}
; - return divWithId; -} + return
{keyPath.slice(-1)[0]}
; +}; function TaskView({ taskName, @@ -39,9 +39,10 @@ function TaskView({ taskInfo: VoxelyticsTaskInfo; onSelectTask: (id: string) => void; }) { - const shouldExpandNode = (_keyPath: Array, data: any) => + const shouldExpandNode: ShouldExpandNodeInitially = function (_keyPath, data) { // Expand all with at most 10 keys - (data.length || 0) <= 10; + return ((data as any[]).length || 0) <= 10; + }; const ingoingEdges = dag.edges.filter((edge) => edge.target === taskName); const [theme, invertTheme] = useTheme(); @@ -54,7 +55,7 @@ function TaskView({ }) => { + (keys: React.Key[], { nativeEvent }: { nativeEvent: MouseEvent }) => { // Without the following check, the onSelect callback would also be called by antd // when the user clicks on a menu entry in the context menu (e.g., deleting a folder // would directly select it afterwards). @@ -87,10 +87,12 @@ export function FolderTreeSidebar({ // the ant-tree container. Therefore, we can use this property to filter out those // click events. // The classic preventDefault() didn't work as an alternative workaround. - const doesEventReferToTreeUi = nativeEvent.target.closest(".ant-tree") != null; - if (keys.length > 0 && doesEventReferToTreeUi) { - context.setActiveFolderId(keys[0] as string); - context.setSelectedDatasets([]); + if (nativeEvent.target && nativeEvent.target instanceof HTMLElement) { + const doesEventReferToTreeUi = nativeEvent.target.closest(".ant-tree") != null; + if (keys.length > 0 && doesEventReferToTreeUi) { + context.setActiveFolderId(keys[0] as string); + context.setSelectedDatasets([]); + } } }, [context], diff --git a/frontend/javascripts/oxalis/model/actions/annotation_actions.ts b/frontend/javascripts/oxalis/model/actions/annotation_actions.ts index 11793231c8e..1aa7ff5e470 100644 --- a/frontend/javascripts/oxalis/model/actions/annotation_actions.ts +++ b/frontend/javascripts/oxalis/model/actions/annotation_actions.ts @@ -68,6 +68,7 @@ export type AnnotationActionTypes = | MaybeFetchMeshFilesAction | UpdateMeshVisibilityAction | TriggerMeshDownloadAction + | TriggerMeshesDownloadAction | RefreshMeshesAction | RefreshMeshAction | StartedLoadingMeshAction diff --git a/frontend/javascripts/oxalis/view/action-bar/private_links_view.tsx b/frontend/javascripts/oxalis/view/action-bar/private_links_view.tsx index 924646f773f..98ab25bcce6 100644 --- a/frontend/javascripts/oxalis/view/action-bar/private_links_view.tsx +++ b/frontend/javascripts/oxalis/view/action-bar/private_links_view.tsx @@ -46,13 +46,16 @@ import { useSelector } from "react-redux"; import { getDataLayers } from "oxalis/model/accessors/dataset_accessor"; import { getReadableNameByVolumeTracingId } from "oxalis/model/accessors/volumetracing_accessor"; - // TODO Remove explicit (error) type declaration when updateing to tanstack/query >= 5 // https://github.com/TanStack/query/pull/4706 function useLinksQuery(annotationId: string) { - return useQuery(["links", annotationId], () => getPrivateLinksByAnnotation(annotationId), { - refetchOnWindowFocus: false, - }); + return useQuery( + ["links", annotationId], + () => getPrivateLinksByAnnotation(annotationId), + { + refetchOnWindowFocus: false, + }, + ); } function useCreateLinkMutation(annotationId: string) { diff --git a/frontend/javascripts/oxalis/view/layouting/flex_layout_wrapper.tsx b/frontend/javascripts/oxalis/view/layouting/flex_layout_wrapper.tsx index b40d2d2c99e..a754e7d1bfd 100644 --- a/frontend/javascripts/oxalis/view/layouting/flex_layout_wrapper.tsx +++ b/frontend/javascripts/oxalis/view/layouting/flex_layout_wrapper.tsx @@ -1,7 +1,7 @@ import type { Dispatch } from "redux"; import { Layout } from "antd"; import { connect } from "react-redux"; -import * as FlexLayout from "flexlayout-react" +import * as FlexLayout from "flexlayout-react"; import type { BorderNode, TabNode, TabSetNode } from "flexlayout-react"; import * as React from "react"; import _ from "lodash"; @@ -460,12 +460,16 @@ class FlexLayoutWrapper extends React.PureComponent { // @ts-expect-error ts-migrate(2339) FIXME: Property 'blur' does not exist on type 'Element'. document.activeElement.blur(); } - - const toggledViewportId = this.state.model.getNodeById(data.node).getChildren()[0].getId(); - - if (toggledViewportId in OrthoViews) { - // @ts-ignore Typescript doesn't agree that toggledViewportId exists in OrthoViews - this.props.setActiveViewport(OrthoViews[toggledViewportId]); + if (data?.node) { + const node = this.state.model.getNodeById(data.node); + if (node) { + const toggledViewportId = node.getChildren()[0].getId(); + + if (toggledViewportId in OrthoViews) { + // @ts-ignore Typescript doesn't agree that toggledViewportId exists in OrthoViews + this.props.setActiveViewport(OrthoViews[toggledViewportId]); + } + } } } From 8d6bc45f0dd7faa66a5afc158dbe062fbb67c563 Mon Sep 17 00:00:00 2001 From: Tom Herold Date: Thu, 5 Sep 2024 11:24:13 +0200 Subject: [PATCH 17/24] mock renderIndenpently in unit tests --- frontend/javascripts/test/sagas/saga_integration.mock.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/frontend/javascripts/test/sagas/saga_integration.mock.ts b/frontend/javascripts/test/sagas/saga_integration.mock.ts index 56ea4af9ba2..39f6ae34636 100644 --- a/frontend/javascripts/test/sagas/saga_integration.mock.ts +++ b/frontend/javascripts/test/sagas/saga_integration.mock.ts @@ -7,7 +7,9 @@ const REQUEST_ID = "dummyRequestId"; const UidMock = { getUid: () => REQUEST_ID, }; + mockRequire("libs/uid_generator", UidMock); + mockRequire("antd", { ...antd, Dropdown: {}, @@ -18,9 +20,14 @@ mockRequire("antd", { success: () => {}, }, }); + mockRequire("libs/toast", { error: _.noop, warning: _.noop, close: _.noop, success: _.noop, }); + +mockRequire("libs/render_independently", { + renderIndependently: _.noop +}); From f3ef1a56e22f4150f472a6a6b881d551604de1d6 Mon Sep 17 00:00:00 2001 From: Tom Herold Date: Thu, 5 Sep 2024 11:44:09 +0200 Subject: [PATCH 18/24] formatting --- frontend/javascripts/test/sagas/saga_integration.mock.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/javascripts/test/sagas/saga_integration.mock.ts b/frontend/javascripts/test/sagas/saga_integration.mock.ts index 39f6ae34636..00ce6ccc38b 100644 --- a/frontend/javascripts/test/sagas/saga_integration.mock.ts +++ b/frontend/javascripts/test/sagas/saga_integration.mock.ts @@ -29,5 +29,5 @@ mockRequire("libs/toast", { }); mockRequire("libs/render_independently", { - renderIndependently: _.noop + renderIndependently: _.noop, }); From f4441d4efc6195b38b14244e879ea24d7a04c1d5 Mon Sep 17 00:00:00 2001 From: Tom Herold Date: Thu, 5 Sep 2024 15:21:44 +0200 Subject: [PATCH 19/24] fix unit tests --- frontend/javascripts/test/sagas/saga_integration.mock.ts | 4 +--- frontend/javascripts/test/sagas/saga_integration.spec.ts | 6 ++++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/frontend/javascripts/test/sagas/saga_integration.mock.ts b/frontend/javascripts/test/sagas/saga_integration.mock.ts index 00ce6ccc38b..355bd12cea6 100644 --- a/frontend/javascripts/test/sagas/saga_integration.mock.ts +++ b/frontend/javascripts/test/sagas/saga_integration.mock.ts @@ -28,6 +28,4 @@ mockRequire("libs/toast", { success: _.noop, }); -mockRequire("libs/render_independently", { - renderIndependently: _.noop, -}); +mockRequire("libs/render_independently", _.noop); diff --git a/frontend/javascripts/test/sagas/saga_integration.spec.ts b/frontend/javascripts/test/sagas/saga_integration.spec.ts index fbeafc9ed7f..771fb88b194 100644 --- a/frontend/javascripts/test/sagas/saga_integration.spec.ts +++ b/frontend/javascripts/test/sagas/saga_integration.spec.ts @@ -25,6 +25,7 @@ const { addTreesAndGroupsAction, deleteNodeAction } = mockRequire.reRequire( ); const { discardSaveQueuesAction } = mockRequire.reRequire("oxalis/model/actions/save_actions"); const UpdateActions = mockRequire.reRequire("oxalis/model/sagas/update_actions"); + test.beforeEach(async (t) => { // Setup oxalis, this will execute model.fetch(...) and initialize the store with the tracing, etc. Store.dispatch(restartSagaAction()); @@ -34,12 +35,14 @@ test.beforeEach(async (t) => { // Dispatch the wkReadyAction, so the sagas are started Store.dispatch(wkReadyAction()); }); + test.afterEach(async (t) => { // Saving after each test and checking that the root saga didn't crash, // ensures that each test is cleanly exited. Without it weird output can // occur (e.g., a promise gets resolved which interferes with the next test). t.false(hasRootSagaCrashed()); }); + test.serial( "watchTreeNames saga should rename empty trees in tasks and these updates should be persisted", (t) => { @@ -75,6 +78,7 @@ test.serial( t.deepEqual(expectedSaveQueue, actualSaveQueue); }, ); + test.serial("Save actions should not be chunked below the chunk limit (1/3)", (t) => { Store.dispatch(discardSaveQueuesAction()); t.deepEqual(Store.getState().save.queue.skeleton, []); @@ -86,6 +90,7 @@ test.serial("Save actions should not be chunked below the chunk limit (1/3)", (t MAXIMUM_ACTION_COUNT_PER_BATCH.skeleton, ); }); + test.serial("Save actions should be chunked above the chunk limit (2/3)", (t) => { Store.dispatch(discardSaveQueuesAction()); t.deepEqual(Store.getState().save.queue.skeleton, []); @@ -95,6 +100,7 @@ test.serial("Save actions should be chunked above the chunk limit (2/3)", (t) => t.true(state.save.queue.skeleton.length > 1); t.is(state.save.queue.skeleton[0].actions.length, MAXIMUM_ACTION_COUNT_PER_BATCH.skeleton); }); + test.serial("Save actions should be chunked after compacting (3/3)", (t) => { const nodeCount = 20000; // Test that a tree split is detected even when the involved node count is above the chunk limit From 4222dc813826ffb09ba4feda67536a90de69a55f Mon Sep 17 00:00:00 2001 From: Tom Herold Date: Fri, 6 Sep 2024 12:53:58 +0200 Subject: [PATCH 20/24] fix dark mode overwrite for flex layout --- frontend/stylesheets/flex_layout_overwrites.less | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/frontend/stylesheets/flex_layout_overwrites.less b/frontend/stylesheets/flex_layout_overwrites.less index d63248d8e63..12b0d36ee4a 100644 --- a/frontend/stylesheets/flex_layout_overwrites.less +++ b/frontend/stylesheets/flex_layout_overwrites.less @@ -69,6 +69,16 @@ font-size: 14px; } +// Fix min/max window button in dark mode +.flexlayout__tab_toolbar_button:hover { + background-color: var(--ant-color-bg-base); + cursor: pointer; + + svg { + fill: var(--ant-color-link); + } +} + .flexlayout__tab_button { margin: 0; padding: 0px 5px; @@ -77,6 +87,7 @@ font-size: 14px; font-weight: 400; font-family: @font-family; + &:hover { cursor: move; } From 12b2ce011d52051ad159c1f0ae718f8ab1252a11 Mon Sep 17 00:00:00 2001 From: Tom Herold Date: Fri, 6 Sep 2024 12:55:49 +0200 Subject: [PATCH 21/24] changelog --- CHANGELOG.unreleased.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.unreleased.md b/CHANGELOG.unreleased.md index f7830f21909..4fe35a7d1a2 100644 --- a/CHANGELOG.unreleased.md +++ b/CHANGELOG.unreleased.md @@ -14,6 +14,7 @@ For upgrade instructions, please check the [migration guide](MIGRATIONS.released ### Changed - For self-hosted versions, the text in the data set upload view was updated to recommend switching to webknossos.org. [#7996](https://github.com/scalableminds/webknossos/pull/7996) +- Updated React to version 18. Updated many peer dependencies inlcuding Redux, React-Router, antd, and FlexLayout. [#8048](https://github.com/scalableminds/webknossos/pull/8048) ### Fixed From ad7db4ade7baff7a962c8bd54b726bce745b8bf6 Mon Sep 17 00:00:00 2001 From: Tom Herold Date: Tue, 10 Sep 2024 14:56:13 +0200 Subject: [PATCH 22/24] apply PR feedback for TS typing --- .../javascripts/components/pricing_enforcers.tsx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/frontend/javascripts/components/pricing_enforcers.tsx b/frontend/javascripts/components/pricing_enforcers.tsx index 480602fac4b..ec5fde4cbe0 100644 --- a/frontend/javascripts/components/pricing_enforcers.tsx +++ b/frontend/javascripts/components/pricing_enforcers.tsx @@ -58,14 +58,14 @@ type PopoverEnforcedProps = RequiredPricingProps & placement?: TooltipPlacement; zIndex?: number; }; -const PricingEnforcedPopover = function ({ +const PricingEnforcedPopover = ({ children, requiredPricingPlan, activeUser, activeOrganization, placement, zIndex, -}: PopoverEnforcedProps) { +}: React.PropsWithChildren) => { return ( ) => { const [activeUser, activeOrganization] = useActiveUserAndOrganization(); const isFeatureAllowed = isFeatureAllowedByPricingPlan(activeOrganization, requiredPricingPlan); @@ -175,11 +175,11 @@ export const PricingEnforcedSwitchSetting: React.FunctionComponent< ); }; -export const PricingEnforcedBlur = function ({ +export const PricingEnforcedBlur = ({ children, requiredPricingPlan, ...restProps -}: RequiredPricingProps & { children: React.ReactNode }) { +}: React.PropsWithChildren) => { const [activeUser, activeOrganization] = useActiveUserAndOrganization(); const isFeatureAllowed = isFeatureAllowedByPricingPlan(activeOrganization, requiredPricingPlan); From e673f0e4e58e30cfa60a87f81454d256b6297ae8 Mon Sep 17 00:00:00 2001 From: Tom Herold Date: Tue, 10 Sep 2024 15:08:01 +0200 Subject: [PATCH 23/24] fix dark mode layer handles --- .../oxalis/view/left-border-tabs/layer_settings_tab.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/javascripts/oxalis/view/left-border-tabs/layer_settings_tab.tsx b/frontend/javascripts/oxalis/view/left-border-tabs/layer_settings_tab.tsx index aa945797c51..e0c644d0bf9 100644 --- a/frontend/javascripts/oxalis/view/left-border-tabs/layer_settings_tab.tsx +++ b/frontend/javascripts/oxalis/view/left-border-tabs/layer_settings_tab.tsx @@ -173,7 +173,7 @@ function DragHandleIcon({ isDisabled = false }: { isDisabled?: boolean }) { justifyContent: "center", cursor: "grab", alignItems: "center", - color: isDisabled ? "rgba(0, 0, 0, 0.25)" : "rgba(0, 0, 0, 0.60)", + opacity: isDisabled ? 0.3 : 0.60, }} > Date: Tue, 10 Sep 2024 15:09:30 +0200 Subject: [PATCH 24/24] format --- .../oxalis/view/left-border-tabs/layer_settings_tab.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/javascripts/oxalis/view/left-border-tabs/layer_settings_tab.tsx b/frontend/javascripts/oxalis/view/left-border-tabs/layer_settings_tab.tsx index e0c644d0bf9..757db35bf95 100644 --- a/frontend/javascripts/oxalis/view/left-border-tabs/layer_settings_tab.tsx +++ b/frontend/javascripts/oxalis/view/left-border-tabs/layer_settings_tab.tsx @@ -173,7 +173,7 @@ function DragHandleIcon({ isDisabled = false }: { isDisabled?: boolean }) { justifyContent: "center", cursor: "grab", alignItems: "center", - opacity: isDisabled ? 0.3 : 0.60, + opacity: isDisabled ? 0.3 : 0.6, }} >