From 82a0ab516ee93870f06167ead82c4a7d5ba918ad Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 21:28:25 +0000 Subject: [PATCH 1/2] chore(deps): update all non-major dependencies (#4557) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- documentation/package.json | 2 +- documentation/yarn.lock | 10 +- examples/yarn.lock | 8 +- react-components/package.json | 2 +- react-components/yarn.lock | 832 +++++++++++++++++----------------- viewer/yarn.lock | 361 +++++++-------- 6 files changed, 598 insertions(+), 617 deletions(-) diff --git a/documentation/package.json b/documentation/package.json index 724d2bffd70..31c19fd86ca 100644 --- a/documentation/package.json +++ b/documentation/package.json @@ -24,7 +24,7 @@ "ws:replace": "replace" }, "dependencies": { - "@azure/msal-browser": "3.14.0", + "@azure/msal-browser": "3.15.0", "@codemirror/lang-javascript": "6.2.2", "@docusaurus/core": "2.4.3", "@docusaurus/preset-classic": "2.4.3", diff --git a/documentation/yarn.lock b/documentation/yarn.lock index e70c59a3e50..f85e5a9c775 100644 --- a/documentation/yarn.lock +++ b/documentation/yarn.lock @@ -182,12 +182,12 @@ __metadata: languageName: node linkType: hard -"@azure/msal-browser@npm:3.14.0": - version: 3.14.0 - resolution: "@azure/msal-browser@npm:3.14.0" +"@azure/msal-browser@npm:3.15.0": + version: 3.15.0 + resolution: "@azure/msal-browser@npm:3.15.0" dependencies: "@azure/msal-common": 14.10.0 - checksum: 747cd3df32f082e515c5e268d64f0d16afa0ce21ab5154e235ee0eb0fd0e2902504d12bac1f94839afaf9cc94c823d961775c3f57c3f20f12864d13a5ed0fa44 + checksum: b13937c0ff4f153b5ad145ff5292a1fdb8e3e586869ffc145fa6de3347f571e011423144606e37faa907c43ae6ffb9483c9091e85b04421740ca50849a7b4a92 languageName: node linkType: hard @@ -1899,7 +1899,7 @@ __metadata: version: 0.0.0-use.local resolution: "@cognite/reveal-documentation@workspace:." dependencies: - "@azure/msal-browser": 3.14.0 + "@azure/msal-browser": 3.15.0 "@codemirror/lang-javascript": 6.2.2 "@docusaurus/core": 2.4.3 "@docusaurus/preset-classic": 2.4.3 diff --git a/examples/yarn.lock b/examples/yarn.lock index 5d9a32f3a87..86a5bd7ca02 100644 --- a/examples/yarn.lock +++ b/examples/yarn.lock @@ -3,9 +3,9 @@ "@azure/msal-browser@^3.0.0": - version "3.14.0" - resolved "https://registry.yarnpkg.com/@azure/msal-browser/-/msal-browser-3.14.0.tgz#1cb5cab438a9943212aa50c403d11f775c787b21" - integrity sha512-Un85LhOoecJ3HDTS3Uv3UWnXC9/43ZSO+Kc+anSqpZvcEt58SiO/3DuVCAe1A3I5UIBYJNMgTmZPGXQ0MVYrwA== + version "3.15.0" + resolved "https://registry.yarnpkg.com/@azure/msal-browser/-/msal-browser-3.15.0.tgz#a3b223e79e46db827f54057021a200f3755cbdf7" + integrity sha512-jqngIR0zGLtEHCAhgXLl+VZTFcU/9DmRSjGj5RbrLnFPL/0L9Hr68k8grvLrTIq7tjhTM5Xgh6Xc0l7JlViHQQ== dependencies: "@azure/msal-common" "14.10.0" @@ -22,7 +22,7 @@ commander "^2.15.1" "@cognite/reveal@link:../viewer": - version "4.14.3" + version "4.14.5" dependencies: "@rajesh896/broprint.js" "^2.1.1" "@tweenjs/tween.js" "^23.1.1" diff --git a/react-components/package.json b/react-components/package.json index ea61b78c7a0..57dd5426459 100644 --- a/react-components/package.json +++ b/react-components/package.json @@ -53,7 +53,7 @@ "@storybook/blocks": "^8.0.9", "@storybook/react": "^8.0.9", "@storybook/react-vite": "^8.0.9", - "@storybook/test": "8.1.3", + "@storybook/test": "8.1.5", "@tanstack/react-query-devtools": "^5.32.0", "@testing-library/react": "^15.0.5", "@types/lodash": "^4.17.0", diff --git a/react-components/yarn.lock b/react-components/yarn.lock index 5681b01acaa..3300d2975cd 100644 --- a/react-components/yarn.lock +++ b/react-components/yarn.lock @@ -1756,7 +1756,7 @@ __metadata: "@storybook/blocks": "npm:^8.0.9" "@storybook/react": "npm:^8.0.9" "@storybook/react-vite": "npm:^8.0.9" - "@storybook/test": "npm:8.1.3" + "@storybook/test": "npm:8.1.5" "@tanstack/react-query": "npm:^5.32.0" "@tanstack/react-query-devtools": "npm:^5.32.0" "@testing-library/react": "npm:^15.0.5" @@ -3714,60 +3714,60 @@ __metadata: languageName: node linkType: hard -"@storybook/addon-actions@npm:8.1.3": - version: 8.1.3 - resolution: "@storybook/addon-actions@npm:8.1.3" +"@storybook/addon-actions@npm:8.1.5": + version: 8.1.5 + resolution: "@storybook/addon-actions@npm:8.1.5" dependencies: - "@storybook/core-events": "npm:8.1.3" + "@storybook/core-events": "npm:8.1.5" "@storybook/global": "npm:^5.0.0" "@types/uuid": "npm:^9.0.1" dequal: "npm:^2.0.2" polished: "npm:^4.2.2" uuid: "npm:^9.0.0" - checksum: 10/553dabea313e1a377b9ab9905d9427f9f2acc80ebfbe87b4ccb97407781c58bb5094e352db8594cbd2d3fad78ed4196dc7cab4cd9c4e3761d0d8e0bc9e46eefa + checksum: 10/982bcf831ac1cc59d2771cb29a0970481a0ce8e70267ce4192733a8f0b81b2c0bc9e2b7d37b6227d1d5dc852a6869db1162f2c51db7cad9d2472bc69d86059ac languageName: node linkType: hard -"@storybook/addon-backgrounds@npm:8.1.3": - version: 8.1.3 - resolution: "@storybook/addon-backgrounds@npm:8.1.3" +"@storybook/addon-backgrounds@npm:8.1.5": + version: 8.1.5 + resolution: "@storybook/addon-backgrounds@npm:8.1.5" dependencies: "@storybook/global": "npm:^5.0.0" memoizerific: "npm:^1.11.3" ts-dedent: "npm:^2.0.0" - checksum: 10/f5e88afbdac4ad3dd065093c1c872cf9ae15580e98236bd9e71e3eb5574771a77fdd398c6d9455c333c56ea03a443b897b7c28eee80050d9f08ac9de7c550843 + checksum: 10/5e8ee61d735b7c4083306eb7e9ab30a3f8ee4b9be1faa4068a16d3001b2a7decca02bb64a39c6cf156d35625447fb8fe3e47c6fd360d1d6c46424a67d84512f3 languageName: node linkType: hard -"@storybook/addon-controls@npm:8.1.3": - version: 8.1.3 - resolution: "@storybook/addon-controls@npm:8.1.3" +"@storybook/addon-controls@npm:8.1.5": + version: 8.1.5 + resolution: "@storybook/addon-controls@npm:8.1.5" dependencies: - "@storybook/blocks": "npm:8.1.3" + "@storybook/blocks": "npm:8.1.5" dequal: "npm:^2.0.2" lodash: "npm:^4.17.21" ts-dedent: "npm:^2.0.0" - checksum: 10/9afad63df40509f5e0c6cb25a8c98165adfe79fbbaefc21cdaafffd3f192d21c5dd59d567d0e7f1713907e7c519ecc03385622bbad69c8ca0fb8bb367597d64c + checksum: 10/4e69e053a07c387e0f2ef4b3e5afef58088c729431939855d25b78cba3536b7b102baeaa360f0db11bf042599cb25963aeff06caa2803c0a7b93a3c85cd88c69 languageName: node linkType: hard -"@storybook/addon-docs@npm:8.1.3": - version: 8.1.3 - resolution: "@storybook/addon-docs@npm:8.1.3" +"@storybook/addon-docs@npm:8.1.5": + version: 8.1.5 + resolution: "@storybook/addon-docs@npm:8.1.5" dependencies: "@babel/core": "npm:^7.24.4" "@mdx-js/react": "npm:^3.0.0" - "@storybook/blocks": "npm:8.1.3" - "@storybook/client-logger": "npm:8.1.3" - "@storybook/components": "npm:8.1.3" - "@storybook/csf-plugin": "npm:8.1.3" - "@storybook/csf-tools": "npm:8.1.3" + "@storybook/blocks": "npm:8.1.5" + "@storybook/client-logger": "npm:8.1.5" + "@storybook/components": "npm:8.1.5" + "@storybook/csf-plugin": "npm:8.1.5" + "@storybook/csf-tools": "npm:8.1.5" "@storybook/global": "npm:^5.0.0" - "@storybook/node-logger": "npm:8.1.3" - "@storybook/preview-api": "npm:8.1.3" - "@storybook/react-dom-shim": "npm:8.1.3" - "@storybook/theming": "npm:8.1.3" - "@storybook/types": "npm:8.1.3" + "@storybook/node-logger": "npm:8.1.5" + "@storybook/preview-api": "npm:8.1.5" + "@storybook/react-dom-shim": "npm:8.1.5" + "@storybook/theming": "npm:8.1.5" + "@storybook/types": "npm:8.1.5" "@types/react": "npm:^16.8.0 || ^17.0.0 || ^18.0.0" fs-extra: "npm:^11.1.0" react: "npm:^16.8.0 || ^17.0.0 || ^18.0.0" @@ -3775,58 +3775,58 @@ __metadata: rehype-external-links: "npm:^3.0.0" rehype-slug: "npm:^6.0.0" ts-dedent: "npm:^2.0.0" - checksum: 10/76af531db044401c3cbfe61320699540a3cd6f6a101fa9aa79862ed54d48bf1a4431c209cf7675f2dcec7585fb3ed3dab372997598416c8338c3b5ea9af3c058 + checksum: 10/1df8def08e1b470c0f1e0dd0ae029167771146411ee9f75a2aa76ac5c256aaa25c465d9f5fe6148d85c4e8c1a00d69372d136222e5742f311f4439f99223e373 languageName: node linkType: hard "@storybook/addon-essentials@npm:^8.0.9": - version: 8.1.3 - resolution: "@storybook/addon-essentials@npm:8.1.3" - dependencies: - "@storybook/addon-actions": "npm:8.1.3" - "@storybook/addon-backgrounds": "npm:8.1.3" - "@storybook/addon-controls": "npm:8.1.3" - "@storybook/addon-docs": "npm:8.1.3" - "@storybook/addon-highlight": "npm:8.1.3" - "@storybook/addon-measure": "npm:8.1.3" - "@storybook/addon-outline": "npm:8.1.3" - "@storybook/addon-toolbars": "npm:8.1.3" - "@storybook/addon-viewport": "npm:8.1.3" - "@storybook/core-common": "npm:8.1.3" - "@storybook/manager-api": "npm:8.1.3" - "@storybook/node-logger": "npm:8.1.3" - "@storybook/preview-api": "npm:8.1.3" + version: 8.1.5 + resolution: "@storybook/addon-essentials@npm:8.1.5" + dependencies: + "@storybook/addon-actions": "npm:8.1.5" + "@storybook/addon-backgrounds": "npm:8.1.5" + "@storybook/addon-controls": "npm:8.1.5" + "@storybook/addon-docs": "npm:8.1.5" + "@storybook/addon-highlight": "npm:8.1.5" + "@storybook/addon-measure": "npm:8.1.5" + "@storybook/addon-outline": "npm:8.1.5" + "@storybook/addon-toolbars": "npm:8.1.5" + "@storybook/addon-viewport": "npm:8.1.5" + "@storybook/core-common": "npm:8.1.5" + "@storybook/manager-api": "npm:8.1.5" + "@storybook/node-logger": "npm:8.1.5" + "@storybook/preview-api": "npm:8.1.5" ts-dedent: "npm:^2.0.0" - checksum: 10/62ae2cb466c0d365500921c08c78f00f002f015851e2cc6d4a7ca3cc44339319a35a40f7155482ca5fa832aecaf5eb1bf209e0a79024be3465e98280cefe947b + checksum: 10/ed41297cc76f80629c36ea0ba2614a9307ca7e84b1046db128bbbbaaf07cd540aa67f61060a4470b4de3a675f9659bfb090cfc738b7b43f89d2a038c17f38181 languageName: node linkType: hard -"@storybook/addon-highlight@npm:8.1.3": - version: 8.1.3 - resolution: "@storybook/addon-highlight@npm:8.1.3" +"@storybook/addon-highlight@npm:8.1.5": + version: 8.1.5 + resolution: "@storybook/addon-highlight@npm:8.1.5" dependencies: "@storybook/global": "npm:^5.0.0" - checksum: 10/d20705aa5c8a8b876e5393faf740dafe4069a12a5ac35fa43240ef73e1e3410d08f5d06bedc3da08ae4ca3a3bd7d64e0baf299df460addff004947acd4043d63 + checksum: 10/ac5846a12ef3e5f830e51f2dbddd5e946d03dcac72594659b369e155b50df7cfcb2554d38e60944994d7a85f5e7fb5c00a1d2b3d0196b0779d83d3adf048cbcc languageName: node linkType: hard "@storybook/addon-interactions@npm:^8.0.9": - version: 8.1.3 - resolution: "@storybook/addon-interactions@npm:8.1.3" + version: 8.1.5 + resolution: "@storybook/addon-interactions@npm:8.1.5" dependencies: "@storybook/global": "npm:^5.0.0" - "@storybook/instrumenter": "npm:8.1.3" - "@storybook/test": "npm:8.1.3" - "@storybook/types": "npm:8.1.3" + "@storybook/instrumenter": "npm:8.1.5" + "@storybook/test": "npm:8.1.5" + "@storybook/types": "npm:8.1.5" polished: "npm:^4.2.2" ts-dedent: "npm:^2.2.0" - checksum: 10/3f9a0b5cbf4250b1f20aa16fc4e39aab58b6f5a2c2d16e758e5e59e6fd3fe9e2f27494c5d8ba63048d1e5a8d39b3e8a4ab285a73bd333fa29cd620526c7d805e + checksum: 10/38bedd694affff7e7d83f7eff2c9f0032a2bbdf862338e690b2ff31494456bcf7bf02e5cd8c4fa5ef98a6bef6aa9adfde501af1bbc3732d17a45b4923ac6e9d9 languageName: node linkType: hard "@storybook/addon-links@npm:^8.0.9": - version: 8.1.3 - resolution: "@storybook/addon-links@npm:8.1.3" + version: 8.1.5 + resolution: "@storybook/addon-links@npm:8.1.5" dependencies: "@storybook/csf": "npm:^0.1.7" "@storybook/global": "npm:^5.0.0" @@ -3836,62 +3836,62 @@ __metadata: peerDependenciesMeta: react: optional: true - checksum: 10/062016c865f163a82fccec97d132ac6fd4ce6d11e738b1b990226fb553664af5ccf372fd25340b3fb2b87fb2ba2363df8f7b1b6971772e2b78b40b9f7aaee1d7 + checksum: 10/47c08bfd6e540697d9f97d22e771a7b9755095d664f560e5656be6f4b014502eaf3f6bd7bbc2b9fa1f56bb7f6513594082181ecd01de972d47e3d7d1b9ba680b languageName: node linkType: hard -"@storybook/addon-measure@npm:8.1.3": - version: 8.1.3 - resolution: "@storybook/addon-measure@npm:8.1.3" +"@storybook/addon-measure@npm:8.1.5": + version: 8.1.5 + resolution: "@storybook/addon-measure@npm:8.1.5" dependencies: "@storybook/global": "npm:^5.0.0" tiny-invariant: "npm:^1.3.1" - checksum: 10/7ab6dd70fae5f4e657f09003ea0ecbf5869440b97bf7c45ce0f2a1729732b245119457273a6027ae334342345d2b5b91db19a9c59cf08109d857b26476df30af + checksum: 10/2ab5fe69743944dd0f13324814ce6f329a4bf1dae4a93b85d02665c3b83f3a24b5c33cbdb51ec581dc5a9edc51832fe1cc9bc0b463dacb292c48398943963bfb languageName: node linkType: hard -"@storybook/addon-outline@npm:8.1.3": - version: 8.1.3 - resolution: "@storybook/addon-outline@npm:8.1.3" +"@storybook/addon-outline@npm:8.1.5": + version: 8.1.5 + resolution: "@storybook/addon-outline@npm:8.1.5" dependencies: "@storybook/global": "npm:^5.0.0" ts-dedent: "npm:^2.0.0" - checksum: 10/d1bd9a45ce7effce2ac515f6899371f875673c10a33577674bc9e1be8d0e8dae1f35d5f6466fd20302e933aac1a93daa788b8468d5b0ce60a23c415b804f6abc + checksum: 10/a676f3816b4524a688d2d5196fbf07335042deb116cc5f093886f95a468f75374ae387c05f75356f6408df36a4471e3d1eefa477c5b6184e31f4b3df85f31266 languageName: node linkType: hard -"@storybook/addon-toolbars@npm:8.1.3": - version: 8.1.3 - resolution: "@storybook/addon-toolbars@npm:8.1.3" - checksum: 10/1c41b75866461046033df2512733703c67abff9e1f2882cda50678c211e3791347cbb62f9b6c9ee6d74ade6c6d82bc37abcd704656f08ade982e267591c834ed +"@storybook/addon-toolbars@npm:8.1.5": + version: 8.1.5 + resolution: "@storybook/addon-toolbars@npm:8.1.5" + checksum: 10/18eb96df77b8250833dbfe7c5ff4eb0610ac823370b6dc8c520e3a83c8ac753aaec740eab7018d996ae0d1cd416fc3e603fdfe38a2e1444d6edc1488f797c5d9 languageName: node linkType: hard -"@storybook/addon-viewport@npm:8.1.3": - version: 8.1.3 - resolution: "@storybook/addon-viewport@npm:8.1.3" +"@storybook/addon-viewport@npm:8.1.5": + version: 8.1.5 + resolution: "@storybook/addon-viewport@npm:8.1.5" dependencies: memoizerific: "npm:^1.11.3" - checksum: 10/92a3b9a0c828cd0de39b6762df4884fbba246768d67ff2da84d0a4458789f2da8f230be073ee0f52e1e77fda0c59d53b57a5b726f3b2bc9feb97b2e6d7e7b4b3 + checksum: 10/ca78400d65c8e3ec35fc37e918db13337123c5588d498e312b9f2394cb73541dcbe5e29807fad54dd593051979d394ec1e65502fb8d17872889c4458aa9b899c languageName: node linkType: hard -"@storybook/blocks@npm:8.1.3, @storybook/blocks@npm:^8.0.9": - version: 8.1.3 - resolution: "@storybook/blocks@npm:8.1.3" +"@storybook/blocks@npm:8.1.5, @storybook/blocks@npm:^8.0.9": + version: 8.1.5 + resolution: "@storybook/blocks@npm:8.1.5" dependencies: - "@storybook/channels": "npm:8.1.3" - "@storybook/client-logger": "npm:8.1.3" - "@storybook/components": "npm:8.1.3" - "@storybook/core-events": "npm:8.1.3" + "@storybook/channels": "npm:8.1.5" + "@storybook/client-logger": "npm:8.1.5" + "@storybook/components": "npm:8.1.5" + "@storybook/core-events": "npm:8.1.5" "@storybook/csf": "npm:^0.1.7" - "@storybook/docs-tools": "npm:8.1.3" + "@storybook/docs-tools": "npm:8.1.5" "@storybook/global": "npm:^5.0.0" "@storybook/icons": "npm:^1.2.5" - "@storybook/manager-api": "npm:8.1.3" - "@storybook/preview-api": "npm:8.1.3" - "@storybook/theming": "npm:8.1.3" - "@storybook/types": "npm:8.1.3" + "@storybook/manager-api": "npm:8.1.5" + "@storybook/preview-api": "npm:8.1.5" + "@storybook/theming": "npm:8.1.5" + "@storybook/types": "npm:8.1.5" "@types/lodash": "npm:^4.14.167" color-convert: "npm:^2.0.1" dequal: "npm:^2.0.2" @@ -3912,18 +3912,18 @@ __metadata: optional: true react-dom: optional: true - checksum: 10/981082993b2640c688e45cdf246072f4848b2fd1452a6558376f550194dce2a4a3092d9006cb6ff3b3601bd892a82de61e696fd3bc7cab01d03f012d37d2570d + checksum: 10/4895ae61eb8e89db620c07c7a06c8e52864f5c81dfce49b1f121b7dffe4d58381fe79e29d6637cdf26840b748c2533acc9d378d4b2538abbfac2be861599af30 languageName: node linkType: hard -"@storybook/builder-manager@npm:8.1.3": - version: 8.1.3 - resolution: "@storybook/builder-manager@npm:8.1.3" +"@storybook/builder-manager@npm:8.1.5": + version: 8.1.5 + resolution: "@storybook/builder-manager@npm:8.1.5" dependencies: "@fal-works/esbuild-plugin-global-externals": "npm:^2.1.2" - "@storybook/core-common": "npm:8.1.3" - "@storybook/manager": "npm:8.1.3" - "@storybook/node-logger": "npm:8.1.3" + "@storybook/core-common": "npm:8.1.5" + "@storybook/manager": "npm:8.1.5" + "@storybook/node-logger": "npm:8.1.5" "@types/ejs": "npm:^3.1.1" "@yarnpkg/esbuild-plugin-pnp": "npm:^3.0.0-rc.10" browser-assert: "npm:^1.2.1" @@ -3934,23 +3934,23 @@ __metadata: fs-extra: "npm:^11.1.0" process: "npm:^0.11.10" util: "npm:^0.12.4" - checksum: 10/b1f39c8b2b98dd3ae910ebd77d70d01ce269edcb5c09fe6a59fea5fbeae5252d3025383119a6b14f71762a85aa5dc8dac5570f1066d124df7f424550a969ae64 + checksum: 10/dd064a27f9ae11ce825ae777a36c033ef610b336f82e2e03d80b569b6fd5930cd2259dfe87f1abdcd3fc46a02bb111fab36a16fa28973d8e1e89dbaf62411938 languageName: node linkType: hard -"@storybook/builder-vite@npm:8.1.3": - version: 8.1.3 - resolution: "@storybook/builder-vite@npm:8.1.3" +"@storybook/builder-vite@npm:8.1.5": + version: 8.1.5 + resolution: "@storybook/builder-vite@npm:8.1.5" dependencies: - "@storybook/channels": "npm:8.1.3" - "@storybook/client-logger": "npm:8.1.3" - "@storybook/core-common": "npm:8.1.3" - "@storybook/core-events": "npm:8.1.3" - "@storybook/csf-plugin": "npm:8.1.3" - "@storybook/node-logger": "npm:8.1.3" - "@storybook/preview": "npm:8.1.3" - "@storybook/preview-api": "npm:8.1.3" - "@storybook/types": "npm:8.1.3" + "@storybook/channels": "npm:8.1.5" + "@storybook/client-logger": "npm:8.1.5" + "@storybook/core-common": "npm:8.1.5" + "@storybook/core-events": "npm:8.1.5" + "@storybook/csf-plugin": "npm:8.1.5" + "@storybook/node-logger": "npm:8.1.5" + "@storybook/preview": "npm:8.1.5" + "@storybook/preview-api": "npm:8.1.5" + "@storybook/types": "npm:8.1.5" "@types/find-cache-dir": "npm:^3.2.1" browser-assert: "npm:^1.2.1" es-module-lexer: "npm:^1.5.0" @@ -3971,38 +3971,38 @@ __metadata: optional: true vite-plugin-glimmerx: optional: true - checksum: 10/1bb5ec6dcfcabc2a9f18e7591d22b4e351785758b2ee2deac06dec4b1f51a77c55948e6c26a9764601912f63eee9bb628d4f1d9e05e536d0e4b5246b51b22a61 + checksum: 10/75689c5d9cce508dd09b38d6c6c2502015a156ac311d3cb49b7b607d36b3be73407c1ae9d27db72c5ff56380f484419b6c911a348e361a80fbb3242eb6d8244d languageName: node linkType: hard -"@storybook/channels@npm:8.1.3": - version: 8.1.3 - resolution: "@storybook/channels@npm:8.1.3" +"@storybook/channels@npm:8.1.5": + version: 8.1.5 + resolution: "@storybook/channels@npm:8.1.5" dependencies: - "@storybook/client-logger": "npm:8.1.3" - "@storybook/core-events": "npm:8.1.3" + "@storybook/client-logger": "npm:8.1.5" + "@storybook/core-events": "npm:8.1.5" "@storybook/global": "npm:^5.0.0" telejson: "npm:^7.2.0" tiny-invariant: "npm:^1.3.1" - checksum: 10/c7e0c7765b355499aadfe8b74e9723a38d48e0f1d83dd54baa89c1cc6ec3ccc024c55bfd4d5f9d83d3b37c5e6639823da57f32096f96395d7150ed76cc420b95 + checksum: 10/a179641ab5dc914f1ca303b4a0812233bb9bc8983543a314250152ece60d9a8a6eec6c6d3d2a29edd4cca1eede84b76714dd9a1c71f5e5dae95f4e2d4cc935d0 languageName: node linkType: hard -"@storybook/cli@npm:8.1.3": - version: 8.1.3 - resolution: "@storybook/cli@npm:8.1.3" +"@storybook/cli@npm:8.1.5": + version: 8.1.5 + resolution: "@storybook/cli@npm:8.1.5" dependencies: "@babel/core": "npm:^7.24.4" "@babel/types": "npm:^7.24.0" "@ndelangen/get-tarball": "npm:^3.0.7" - "@storybook/codemod": "npm:8.1.3" - "@storybook/core-common": "npm:8.1.3" - "@storybook/core-events": "npm:8.1.3" - "@storybook/core-server": "npm:8.1.3" - "@storybook/csf-tools": "npm:8.1.3" - "@storybook/node-logger": "npm:8.1.3" - "@storybook/telemetry": "npm:8.1.3" - "@storybook/types": "npm:8.1.3" + "@storybook/codemod": "npm:8.1.5" + "@storybook/core-common": "npm:8.1.5" + "@storybook/core-events": "npm:8.1.5" + "@storybook/core-server": "npm:8.1.5" + "@storybook/csf-tools": "npm:8.1.5" + "@storybook/node-logger": "npm:8.1.5" + "@storybook/telemetry": "npm:8.1.5" + "@storybook/types": "npm:8.1.5" "@types/semver": "npm:^7.3.4" "@yarnpkg/fslib": "npm:2.10.3" "@yarnpkg/libzip": "npm:2.3.0" @@ -4025,36 +4025,36 @@ __metadata: read-pkg-up: "npm:^7.0.1" semver: "npm:^7.3.7" strip-json-comments: "npm:^3.0.1" - tempy: "npm:^1.0.1" + tempy: "npm:^3.1.0" tiny-invariant: "npm:^1.3.1" ts-dedent: "npm:^2.0.0" bin: getstorybook: ./bin/index.js sb: ./bin/index.js - checksum: 10/5cfdb1846583ef8091991cd3b7ffe13a21861b79dd7aed5c3fc7f412c477727e11896bb05bb93b3bbbef7f01fcd8efb7e03477008e5e782bdd90642c0e2f7d2f + checksum: 10/9169976677323f46e6f91641036d45b41f99c70398d6e55665f50c7fe483e057368ea40f5b45fe8be34b3ec5a691d219451bcb02db1a71ecb5e5923d0c6bebd8 languageName: node linkType: hard -"@storybook/client-logger@npm:8.1.3": - version: 8.1.3 - resolution: "@storybook/client-logger@npm:8.1.3" +"@storybook/client-logger@npm:8.1.5": + version: 8.1.5 + resolution: "@storybook/client-logger@npm:8.1.5" dependencies: "@storybook/global": "npm:^5.0.0" - checksum: 10/c7735d2ef39c07b89faade51fe26a56816eadc61e9b4ab952c087dbbd7e7ef3acfd49d437460d8503cb02d17613a4734267c5a56ccc6f9f2a1b2330b8f5459e5 + checksum: 10/4d3d35941f7bcf65524d01dcb3416af77863412fee24d095825cf0cff4fa7a91b1d5ef74e6011f881b3ceacbc336f1091defb9f3e66e1e825a9d9de9a47e0dfe languageName: node linkType: hard -"@storybook/codemod@npm:8.1.3": - version: 8.1.3 - resolution: "@storybook/codemod@npm:8.1.3" +"@storybook/codemod@npm:8.1.5": + version: 8.1.5 + resolution: "@storybook/codemod@npm:8.1.5" dependencies: "@babel/core": "npm:^7.24.4" "@babel/preset-env": "npm:^7.24.4" "@babel/types": "npm:^7.24.0" "@storybook/csf": "npm:^0.1.7" - "@storybook/csf-tools": "npm:8.1.3" - "@storybook/node-logger": "npm:8.1.3" - "@storybook/types": "npm:8.1.3" + "@storybook/csf-tools": "npm:8.1.5" + "@storybook/node-logger": "npm:8.1.5" + "@storybook/types": "npm:8.1.5" "@types/cross-spawn": "npm:^6.0.2" cross-spawn: "npm:^7.0.3" globby: "npm:^14.0.1" @@ -4063,39 +4063,39 @@ __metadata: prettier: "npm:^3.1.1" recast: "npm:^0.23.5" tiny-invariant: "npm:^1.3.1" - checksum: 10/eeaf00b01e7acfad0403f2a6d1f955a065a0ad3dfcc836a620ef4322b23df4739bc3bd2318e40331e0ac2ea21f793441e08850c312372302eadd139a8adbf39c + checksum: 10/b4eb1aece94148ddff9e2d72c6044ae04406f1d8fd6a61ccff9fb51408368683927e0ee85c2c832fd50da5515072c24c2187028194166d9c74eb1ddd33b02d2b languageName: node linkType: hard -"@storybook/components@npm:8.1.3": - version: 8.1.3 - resolution: "@storybook/components@npm:8.1.3" +"@storybook/components@npm:8.1.5": + version: 8.1.5 + resolution: "@storybook/components@npm:8.1.5" dependencies: "@radix-ui/react-dialog": "npm:^1.0.5" "@radix-ui/react-slot": "npm:^1.0.2" - "@storybook/client-logger": "npm:8.1.3" + "@storybook/client-logger": "npm:8.1.5" "@storybook/csf": "npm:^0.1.7" "@storybook/global": "npm:^5.0.0" "@storybook/icons": "npm:^1.2.5" - "@storybook/theming": "npm:8.1.3" - "@storybook/types": "npm:8.1.3" + "@storybook/theming": "npm:8.1.5" + "@storybook/types": "npm:8.1.5" memoizerific: "npm:^1.11.3" util-deprecate: "npm:^1.0.2" peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - checksum: 10/b53b257e43519c8952caf0241ea0adb7a50addcb5b00f92fa01362f7562a27a524b5ab17b702013e610c869612bac8608c1e230f0d33b7cfeb6278d20f0f3896 + checksum: 10/a5a4dd490b87e142fd7f362d8694baa6d9828713ed25d3476a3f233f294cf66011400045381c6a793e1b98de21e772a95409072e8bc9bb87be2cc7f867b39b86 languageName: node linkType: hard -"@storybook/core-common@npm:8.1.3": - version: 8.1.3 - resolution: "@storybook/core-common@npm:8.1.3" +"@storybook/core-common@npm:8.1.5": + version: 8.1.5 + resolution: "@storybook/core-common@npm:8.1.5" dependencies: - "@storybook/core-events": "npm:8.1.3" - "@storybook/csf-tools": "npm:8.1.3" - "@storybook/node-logger": "npm:8.1.3" - "@storybook/types": "npm:8.1.3" + "@storybook/core-events": "npm:8.1.5" + "@storybook/csf-tools": "npm:8.1.5" + "@storybook/node-logger": "npm:8.1.5" + "@storybook/types": "npm:8.1.5" "@yarnpkg/fslib": "npm:2.10.3" "@yarnpkg/libzip": "npm:2.3.0" chalk: "npm:^4.1.0" @@ -4117,7 +4117,7 @@ __metadata: pretty-hrtime: "npm:^1.0.3" resolve-from: "npm:^5.0.0" semver: "npm:^7.3.7" - tempy: "npm:^1.0.1" + tempy: "npm:^3.1.0" tiny-invariant: "npm:^1.3.1" ts-dedent: "npm:^2.0.0" util: "npm:^0.12.4" @@ -4126,42 +4126,42 @@ __metadata: peerDependenciesMeta: prettier: optional: true - checksum: 10/29cd5c88715b5967d59a06836dfc751a921d4d5075c9bcd99fc2f9972f77130e08a5f671224da1bc93433dc10813fbdeaa44294575ce8da4e45750bbf9ffbc11 + checksum: 10/458c8f6c697101a4853a713e45e75fe7e91fc8d294ed762f5179e4ea04d278a6fde53d53dcbf9b7259e133a677a05b3c349f266ee3641e007358d78beff1fb9a languageName: node linkType: hard -"@storybook/core-events@npm:8.1.3": - version: 8.1.3 - resolution: "@storybook/core-events@npm:8.1.3" +"@storybook/core-events@npm:8.1.5": + version: 8.1.5 + resolution: "@storybook/core-events@npm:8.1.5" dependencies: "@storybook/csf": "npm:^0.1.7" ts-dedent: "npm:^2.0.0" - checksum: 10/dc4cf5a7d0f36fff14ce7e9630e44f826ea748700753cd53be64a7d7b0d3e99b227224eb72267a92baf533823579bd51a9b6999926736e0067b437ca1d0452ed + checksum: 10/628f5b31b25361ca0ebdf530230f355d822251339e8656c8aed92e9a3f71de6f606216f7fc92da27d76af9ddf67ff1b97467c32710867ba49b228f2233a87d1b languageName: node linkType: hard -"@storybook/core-server@npm:8.1.3": - version: 8.1.3 - resolution: "@storybook/core-server@npm:8.1.3" +"@storybook/core-server@npm:8.1.5": + version: 8.1.5 + resolution: "@storybook/core-server@npm:8.1.5" dependencies: "@aw-web-design/x-default-browser": "npm:1.4.126" "@babel/core": "npm:^7.24.4" "@babel/parser": "npm:^7.24.4" "@discoveryjs/json-ext": "npm:^0.5.3" - "@storybook/builder-manager": "npm:8.1.3" - "@storybook/channels": "npm:8.1.3" - "@storybook/core-common": "npm:8.1.3" - "@storybook/core-events": "npm:8.1.3" + "@storybook/builder-manager": "npm:8.1.5" + "@storybook/channels": "npm:8.1.5" + "@storybook/core-common": "npm:8.1.5" + "@storybook/core-events": "npm:8.1.5" "@storybook/csf": "npm:^0.1.7" - "@storybook/csf-tools": "npm:8.1.3" + "@storybook/csf-tools": "npm:8.1.5" "@storybook/docs-mdx": "npm:3.1.0-next.0" "@storybook/global": "npm:^5.0.0" - "@storybook/manager": "npm:8.1.3" - "@storybook/manager-api": "npm:8.1.3" - "@storybook/node-logger": "npm:8.1.3" - "@storybook/preview-api": "npm:8.1.3" - "@storybook/telemetry": "npm:8.1.3" - "@storybook/types": "npm:8.1.3" + "@storybook/manager": "npm:8.1.5" + "@storybook/manager-api": "npm:8.1.5" + "@storybook/node-logger": "npm:8.1.5" + "@storybook/preview-api": "npm:8.1.5" + "@storybook/telemetry": "npm:8.1.5" + "@storybook/types": "npm:8.1.5" "@types/detect-port": "npm:^1.3.0" "@types/diff": "npm:^5.0.9" "@types/node": "npm:^18.0.0" @@ -4190,34 +4190,34 @@ __metadata: util-deprecate: "npm:^1.0.2" watchpack: "npm:^2.2.0" ws: "npm:^8.2.3" - checksum: 10/d4ebc1724815005fc538c54d0bdce7279fe7c983ef40c9963e6ee842dd80c33385d7ba9324e6c04d720d2d556ddec96ea717a9b724066d6dac1298d77f6290b3 + checksum: 10/1a13d99d2f4d6b82ccf18e014e67e0d1b62621392949cc0d4088922c3f4c4ecea01967bda9b4c2b1d93f25544eb378280d36840c4c050c33e630cf2420b9d579 languageName: node linkType: hard -"@storybook/csf-plugin@npm:8.1.3": - version: 8.1.3 - resolution: "@storybook/csf-plugin@npm:8.1.3" +"@storybook/csf-plugin@npm:8.1.5": + version: 8.1.5 + resolution: "@storybook/csf-plugin@npm:8.1.5" dependencies: - "@storybook/csf-tools": "npm:8.1.3" + "@storybook/csf-tools": "npm:8.1.5" unplugin: "npm:^1.3.1" - checksum: 10/d987a38225594e231aa5ef45355611ff9bd96a9f1b24cf2044f09e9100b3e6b895fb420d6a226b4e36fa3cf3baee82071fd04fbef01d53a9dab50e3dccac1025 + checksum: 10/96b51c1e38eaa41e296cfeb1e73ab1933c793146ba7db26e8f31a3c2ad828de6498503ccb49402f7595f444e9eda02c00ee6b663be052486eb36d668548077d2 languageName: node linkType: hard -"@storybook/csf-tools@npm:8.1.3": - version: 8.1.3 - resolution: "@storybook/csf-tools@npm:8.1.3" +"@storybook/csf-tools@npm:8.1.5": + version: 8.1.5 + resolution: "@storybook/csf-tools@npm:8.1.5" dependencies: "@babel/generator": "npm:^7.24.4" "@babel/parser": "npm:^7.24.4" "@babel/traverse": "npm:^7.24.1" "@babel/types": "npm:^7.24.0" "@storybook/csf": "npm:^0.1.7" - "@storybook/types": "npm:8.1.3" + "@storybook/types": "npm:8.1.5" fs-extra: "npm:^11.1.0" recast: "npm:^0.23.5" ts-dedent: "npm:^2.0.0" - checksum: 10/5d385ea82cc698e6a51600c6ed7826e00925e9c8d116aefe4fd7d269096099801eb02aed303de3316c2f957d3110f39214208be24ea6566151735b4a188abc0f + checksum: 10/5ed787d32077783fe3e3b612664257076861b7972bacef36e8f26b92a49b476fb9845f63ec50de38d530429886e2bebfe79a0488fbc05b5a33634b438644d552 languageName: node linkType: hard @@ -4237,19 +4237,19 @@ __metadata: languageName: node linkType: hard -"@storybook/docs-tools@npm:8.1.3": - version: 8.1.3 - resolution: "@storybook/docs-tools@npm:8.1.3" +"@storybook/docs-tools@npm:8.1.5": + version: 8.1.5 + resolution: "@storybook/docs-tools@npm:8.1.5" dependencies: - "@storybook/core-common": "npm:8.1.3" - "@storybook/core-events": "npm:8.1.3" - "@storybook/preview-api": "npm:8.1.3" - "@storybook/types": "npm:8.1.3" + "@storybook/core-common": "npm:8.1.5" + "@storybook/core-events": "npm:8.1.5" + "@storybook/preview-api": "npm:8.1.5" + "@storybook/types": "npm:8.1.5" "@types/doctrine": "npm:^0.0.3" assert: "npm:^2.1.0" doctrine: "npm:^3.0.0" lodash: "npm:^4.17.21" - checksum: 10/3eac6ddd48db53c9f8759cfcc9dd01958bb396ea194c9d4705a7a2016e6ff19996e71148cca4691ea64de5452ba5b64eba86d811dd38d805988ce1d63a216865 + checksum: 10/1249df8daebe3bc9d660e789c48ea2385c38d291d72e1b99d31487ae466723b2e5523553c7b104831e8db2fe523115b05f64ed120f3845f36a737315f7f8d838 languageName: node linkType: hard @@ -4270,68 +4270,68 @@ __metadata: languageName: node linkType: hard -"@storybook/instrumenter@npm:8.1.3": - version: 8.1.3 - resolution: "@storybook/instrumenter@npm:8.1.3" +"@storybook/instrumenter@npm:8.1.5": + version: 8.1.5 + resolution: "@storybook/instrumenter@npm:8.1.5" dependencies: - "@storybook/channels": "npm:8.1.3" - "@storybook/client-logger": "npm:8.1.3" - "@storybook/core-events": "npm:8.1.3" + "@storybook/channels": "npm:8.1.5" + "@storybook/client-logger": "npm:8.1.5" + "@storybook/core-events": "npm:8.1.5" "@storybook/global": "npm:^5.0.0" - "@storybook/preview-api": "npm:8.1.3" + "@storybook/preview-api": "npm:8.1.5" "@vitest/utils": "npm:^1.3.1" util: "npm:^0.12.4" - checksum: 10/dfca08300b7b98f99ee4f1d9fbb41206446c2cef911a3f7155b66310147af1e70cb0d96e8b7f35e9658e150d0611116541cf35996b36a4def777ea097f7e3d6f + checksum: 10/4c803321f677cbf21e5befeb1a69ccf17b2dbe8e32804defccddd812cdfb8f01c7c91a02ea03405d6c1bce63ac53162a4892d6433b9cc05e8c000066b8ad1717 languageName: node linkType: hard -"@storybook/manager-api@npm:8.1.3": - version: 8.1.3 - resolution: "@storybook/manager-api@npm:8.1.3" +"@storybook/manager-api@npm:8.1.5": + version: 8.1.5 + resolution: "@storybook/manager-api@npm:8.1.5" dependencies: - "@storybook/channels": "npm:8.1.3" - "@storybook/client-logger": "npm:8.1.3" - "@storybook/core-events": "npm:8.1.3" + "@storybook/channels": "npm:8.1.5" + "@storybook/client-logger": "npm:8.1.5" + "@storybook/core-events": "npm:8.1.5" "@storybook/csf": "npm:^0.1.7" "@storybook/global": "npm:^5.0.0" "@storybook/icons": "npm:^1.2.5" - "@storybook/router": "npm:8.1.3" - "@storybook/theming": "npm:8.1.3" - "@storybook/types": "npm:8.1.3" + "@storybook/router": "npm:8.1.5" + "@storybook/theming": "npm:8.1.5" + "@storybook/types": "npm:8.1.5" dequal: "npm:^2.0.2" lodash: "npm:^4.17.21" memoizerific: "npm:^1.11.3" store2: "npm:^2.14.2" telejson: "npm:^7.2.0" ts-dedent: "npm:^2.0.0" - checksum: 10/efad33bd2390588fb07afd7940f5d0d98d381f843199bcc83180aec44cde5f2187c81ddf7b0e72775faf6ae88947335d7190444696374f50182210818caa37b6 + checksum: 10/31044a5e22984f3522f80530e7f8b48a3f6596910a59275d3dde8014f4b7124f5b65b3c7dcd66a056c9d80b94208a5b9075a11c1a604b388f0fae0d1eb381a3f languageName: node linkType: hard -"@storybook/manager@npm:8.1.3": - version: 8.1.3 - resolution: "@storybook/manager@npm:8.1.3" - checksum: 10/fe6b01d6e2a301410d481779fc4d5932c544867ae74cc3c09df4b1c6b6826062ca0eefdf0021278097ccf1e079ecee20ae0728d65352ed2ec569b9d0727e3351 +"@storybook/manager@npm:8.1.5": + version: 8.1.5 + resolution: "@storybook/manager@npm:8.1.5" + checksum: 10/4b8360a4cd94e6f022d703452f1ef3774c83380aca285f6206c1171550587b107c4cbfc41c93b38cc354ac4cff7a363f49967b16a0fdcff814a476f2ca719366 languageName: node linkType: hard -"@storybook/node-logger@npm:8.1.3": - version: 8.1.3 - resolution: "@storybook/node-logger@npm:8.1.3" - checksum: 10/b3e372f7c56c5a8e60144ca8fd1755a964ceaf33031357649ea7da09a23756864df44f4ad081562ba81f034ac1861e4deb5bd129197e42e03f4a5d2037937cee +"@storybook/node-logger@npm:8.1.5": + version: 8.1.5 + resolution: "@storybook/node-logger@npm:8.1.5" + checksum: 10/3f34a03afe83c45ac441b06d3f7b2bedaaa5c0a77febabc055716a82755a5d86811f9d3fef84a2f52118075cc34c9ff8a80984580c509432e78b0259a15fe212 languageName: node linkType: hard -"@storybook/preview-api@npm:8.1.3": - version: 8.1.3 - resolution: "@storybook/preview-api@npm:8.1.3" +"@storybook/preview-api@npm:8.1.5": + version: 8.1.5 + resolution: "@storybook/preview-api@npm:8.1.5" dependencies: - "@storybook/channels": "npm:8.1.3" - "@storybook/client-logger": "npm:8.1.3" - "@storybook/core-events": "npm:8.1.3" + "@storybook/channels": "npm:8.1.5" + "@storybook/client-logger": "npm:8.1.5" + "@storybook/core-events": "npm:8.1.5" "@storybook/csf": "npm:^0.1.7" "@storybook/global": "npm:^5.0.0" - "@storybook/types": "npm:8.1.3" + "@storybook/types": "npm:8.1.5" "@types/qs": "npm:^6.9.5" dequal: "npm:^2.0.2" lodash: "npm:^4.17.21" @@ -4340,37 +4340,37 @@ __metadata: tiny-invariant: "npm:^1.3.1" ts-dedent: "npm:^2.0.0" util-deprecate: "npm:^1.0.2" - checksum: 10/5b760236cfee5fe268f9d997cdbcb7bcb7119aea583c515a1990e08573b112c8c6c979959837ae89e988bfda9767cd2c7f7b408fe780ba92ca47e52e7e7f053f + checksum: 10/03a30b37bc4e0077711c849fad11c4ec555d9c3d418d8c9a2c8ccbf1c3023670e26d46f49d14c0179aeb8fd37a7d470930bb24070a66620fb9ba97d6ff8d9cd2 languageName: node linkType: hard -"@storybook/preview@npm:8.1.3": - version: 8.1.3 - resolution: "@storybook/preview@npm:8.1.3" - checksum: 10/84abd5e08369bb0236cc66c9300edc38bf1ce370adeced6bb90da0ea8aa58c8c05f987c1612acd16a46577c5d8b4aec0b3856931288d225a5b43979100f77245 +"@storybook/preview@npm:8.1.5": + version: 8.1.5 + resolution: "@storybook/preview@npm:8.1.5" + checksum: 10/f7bb249c38e78368652b2a2561b6df25a2b11b3f12a1fa4b89bcfbd62ea1f7c4276084c330789367af91459f6e743c9ff99b1370c4a07d0bd8b9dffa69dfaaca languageName: node linkType: hard -"@storybook/react-dom-shim@npm:8.1.3": - version: 8.1.3 - resolution: "@storybook/react-dom-shim@npm:8.1.3" +"@storybook/react-dom-shim@npm:8.1.5": + version: 8.1.5 + resolution: "@storybook/react-dom-shim@npm:8.1.5" peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - checksum: 10/493df9b4d3f5241007c2d268e684002d499e5f6532538f40c4348fc5272b8f2732e2a94a4ccedc8f28c715e38f0acb55edcda6c540a855f344225e48159ca1e8 + checksum: 10/51a3572a3ab8898a5d8e667131bd7bc3c6bb0882129a42cbf1fe396ce0c7e4e11e2affd390343c8def3f87fe53160e9ca4a8aca181f1817f33bf65f8382666d4 languageName: node linkType: hard "@storybook/react-vite@npm:^8.0.9": - version: 8.1.3 - resolution: "@storybook/react-vite@npm:8.1.3" + version: 8.1.5 + resolution: "@storybook/react-vite@npm:8.1.5" dependencies: "@joshwooding/vite-plugin-react-docgen-typescript": "npm:0.3.1" "@rollup/pluginutils": "npm:^5.0.2" - "@storybook/builder-vite": "npm:8.1.3" - "@storybook/node-logger": "npm:8.1.3" - "@storybook/react": "npm:8.1.3" - "@storybook/types": "npm:8.1.3" + "@storybook/builder-vite": "npm:8.1.5" + "@storybook/node-logger": "npm:8.1.5" + "@storybook/react": "npm:8.1.5" + "@storybook/types": "npm:8.1.5" find-up: "npm:^5.0.0" magic-string: "npm:^0.30.0" react-docgen: "npm:^7.0.0" @@ -4380,20 +4380,20 @@ __metadata: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta vite: ^4.0.0 || ^5.0.0 - checksum: 10/a102eab5dbad5e222892ebe6e4225500ddd36537f990f884e46b6b901335e50a954eb528527f7952bc0340eda904260ac84ffe48c91da1ce718a5be14b0aefbc + checksum: 10/ac4a3b90b2537ccc3dae02f0859b7d8f7ea4736b6417b400e3dc0dc2c4c86cbdf786b4dfcecba170c203e8d6f57dd2dc1176362d647025030dfc9ddcd0799a9d languageName: node linkType: hard -"@storybook/react@npm:8.1.3, @storybook/react@npm:^8.0.9": - version: 8.1.3 - resolution: "@storybook/react@npm:8.1.3" +"@storybook/react@npm:8.1.5, @storybook/react@npm:^8.0.9": + version: 8.1.5 + resolution: "@storybook/react@npm:8.1.5" dependencies: - "@storybook/client-logger": "npm:8.1.3" - "@storybook/docs-tools": "npm:8.1.3" + "@storybook/client-logger": "npm:8.1.5" + "@storybook/docs-tools": "npm:8.1.5" "@storybook/global": "npm:^5.0.0" - "@storybook/preview-api": "npm:8.1.3" - "@storybook/react-dom-shim": "npm:8.1.3" - "@storybook/types": "npm:8.1.3" + "@storybook/preview-api": "npm:8.1.5" + "@storybook/react-dom-shim": "npm:8.1.5" + "@storybook/types": "npm:8.1.5" "@types/escodegen": "npm:^0.0.6" "@types/estree": "npm:^0.0.51" "@types/node": "npm:^18.0.0" @@ -4416,61 +4416,61 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10/8646b3afe337b2544e23a75ea8772578ac839e3d4de29bb401acc9792ea39c464c896db261bb776ad2e2bf141dd7fbdf893c975698872b9c756fc662dec1148a + checksum: 10/dbc762fad9573410eba665ba82598419078d000a8b780ada7c9f0f7cc3b8c01db79c23a0f30b93b5dd1f09945d4af9405d513254421efaa587c78491e329b9df languageName: node linkType: hard -"@storybook/router@npm:8.1.3": - version: 8.1.3 - resolution: "@storybook/router@npm:8.1.3" +"@storybook/router@npm:8.1.5": + version: 8.1.5 + resolution: "@storybook/router@npm:8.1.5" dependencies: - "@storybook/client-logger": "npm:8.1.3" + "@storybook/client-logger": "npm:8.1.5" memoizerific: "npm:^1.11.3" qs: "npm:^6.10.0" - checksum: 10/820946bea27ba2d55596b6c5b68ddeedf98224a4a06c3e41271a1240da9bfbc4d1d548f8d3fd0bbfa92206f065b6749a2af788bea2d666c362466c869fa0ba5a + checksum: 10/5f9cf87f2c0a5a0bf117a2dd165b764b05f925f885ebdcadb3b52330b13e493a8289113d072cfc0ab2f3e12096dfb8d2c160fd7c053c6df70d7d1ced85d52d7d languageName: node linkType: hard -"@storybook/telemetry@npm:8.1.3": - version: 8.1.3 - resolution: "@storybook/telemetry@npm:8.1.3" +"@storybook/telemetry@npm:8.1.5": + version: 8.1.5 + resolution: "@storybook/telemetry@npm:8.1.5" dependencies: - "@storybook/client-logger": "npm:8.1.3" - "@storybook/core-common": "npm:8.1.3" - "@storybook/csf-tools": "npm:8.1.3" + "@storybook/client-logger": "npm:8.1.5" + "@storybook/core-common": "npm:8.1.5" + "@storybook/csf-tools": "npm:8.1.5" chalk: "npm:^4.1.0" detect-package-manager: "npm:^2.0.1" fetch-retry: "npm:^5.0.2" fs-extra: "npm:^11.1.0" read-pkg-up: "npm:^7.0.1" - checksum: 10/3611f1f26489824d26e473f36d8d1271a3b68e86c4275f861d252c4df51ecc68ca1c9203a76636dd88d5873bdaeb5a6377dbe0da40a8717f81cf334d784f8d10 + checksum: 10/eb89526b3d5e79e3ee1da5012ad40a6c3254f77264f4a765c3e00c3eaaaaff35c17732c8e29ace0a2ed7eba6b9a760774838cb25f7b9779591ab6738ace6750d languageName: node linkType: hard -"@storybook/test@npm:8.1.3": - version: 8.1.3 - resolution: "@storybook/test@npm:8.1.3" +"@storybook/test@npm:8.1.5": + version: 8.1.5 + resolution: "@storybook/test@npm:8.1.5" dependencies: - "@storybook/client-logger": "npm:8.1.3" - "@storybook/core-events": "npm:8.1.3" - "@storybook/instrumenter": "npm:8.1.3" - "@storybook/preview-api": "npm:8.1.3" + "@storybook/client-logger": "npm:8.1.5" + "@storybook/core-events": "npm:8.1.5" + "@storybook/instrumenter": "npm:8.1.5" + "@storybook/preview-api": "npm:8.1.5" "@testing-library/dom": "npm:^9.3.4" "@testing-library/jest-dom": "npm:^6.4.2" "@testing-library/user-event": "npm:^14.5.2" "@vitest/expect": "npm:1.3.1" "@vitest/spy": "npm:^1.3.1" util: "npm:^0.12.4" - checksum: 10/740a8bfd3667509b8c86e83781ed145714a7a27cf732f0dbb860456aaad4f4a996bf3db66f33cc82a9e901960bf1a8bb8fdb7e8eef548d7a6aab20042406c8c7 + checksum: 10/1a3c262ff410c5305613fb02ae5fecf574adc6670f63d12643108a56de944a76455d642d4ccf96d81cd51deaf0bfc37b9e3dffbe9d3634dcce89dd31f56828b4 languageName: node linkType: hard -"@storybook/theming@npm:8.1.3": - version: 8.1.3 - resolution: "@storybook/theming@npm:8.1.3" +"@storybook/theming@npm:8.1.5": + version: 8.1.5 + resolution: "@storybook/theming@npm:8.1.5" dependencies: "@emotion/use-insertion-effect-with-fallbacks": "npm:^1.0.1" - "@storybook/client-logger": "npm:8.1.3" + "@storybook/client-logger": "npm:8.1.5" "@storybook/global": "npm:^5.0.0" memoizerific: "npm:^1.11.3" peerDependencies: @@ -4481,18 +4481,18 @@ __metadata: optional: true react-dom: optional: true - checksum: 10/a69fb8aaba73fe671a1c81234aef79f25a9146ccc6721b73238264978efac54a13a5cb4e697606222fd4000c6e70676ef2d12f5d5dee76f4e202df0286e5ec59 + checksum: 10/fa91537d839c6f3b5ed386df5a1d93a06cc34571821408f71e668f5e8e1eb446cf35bb69dc0a006aa83c2742239ce87cf72ca899c9f6ae0797c40b45c059d8a7 languageName: node linkType: hard -"@storybook/types@npm:8.1.3": - version: 8.1.3 - resolution: "@storybook/types@npm:8.1.3" +"@storybook/types@npm:8.1.5": + version: 8.1.5 + resolution: "@storybook/types@npm:8.1.5" dependencies: - "@storybook/channels": "npm:8.1.3" + "@storybook/channels": "npm:8.1.5" "@types/express": "npm:^4.7.0" file-system-cache: "npm:2.3.0" - checksum: 10/856dc930023a758e57a1512a9cfabf321f382fbfd78bcb27466a53850f857ed3f43351ca1a3003fbcf194dfe6296488e0dc75c6bfa80b3884e56517bfc4c8119 + checksum: 10/136018379def5feb1b63eb3dc283eadec00a765f0359c3508fbe7e499060015d4d2cb2608bac7f43a780a5ddfcffde6f4f7ae59b4f37931ca7c781c135393036 languageName: node linkType: hard @@ -4914,11 +4914,11 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:^20.12.7": - version: 20.12.12 - resolution: "@types/node@npm:20.12.12" + version: 20.14.0 + resolution: "@types/node@npm:20.14.0" dependencies: undici-types: "npm:~5.26.4" - checksum: 10/e3945da0a3017bdc1f88f15bdfb823f526b2a717bd58d4640082d6eb0bd2794b5c99bfb914b9e9324ec116dce36066990353ed1c777e8a7b0641f772575793c4 + checksum: 10/49b332fbf8aee4dc4f61cc1f1f6e130632510f795dd7b274e55894516feaf4bec8a3d13ea764e2443e340a64ce9bbeb006d14513bf6ccdd4f21161eccc7f311e languageName: node linkType: hard @@ -5104,14 +5104,14 @@ __metadata: linkType: hard "@typescript-eslint/eslint-plugin@npm:^7.8.0": - version: 7.10.0 - resolution: "@typescript-eslint/eslint-plugin@npm:7.10.0" + version: 7.12.0 + resolution: "@typescript-eslint/eslint-plugin@npm:7.12.0" dependencies: "@eslint-community/regexpp": "npm:^4.10.0" - "@typescript-eslint/scope-manager": "npm:7.10.0" - "@typescript-eslint/type-utils": "npm:7.10.0" - "@typescript-eslint/utils": "npm:7.10.0" - "@typescript-eslint/visitor-keys": "npm:7.10.0" + "@typescript-eslint/scope-manager": "npm:7.12.0" + "@typescript-eslint/type-utils": "npm:7.12.0" + "@typescript-eslint/utils": "npm:7.12.0" + "@typescript-eslint/visitor-keys": "npm:7.12.0" graphemer: "npm:^1.4.0" ignore: "npm:^5.3.1" natural-compare: "npm:^1.4.0" @@ -5122,7 +5122,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10/dfe505cdf718dd29e8637b902e4c544c6b7d246d2051fd1936090423eb3dadfe2bd757de51e565e6fd80e74cf1918e191c26fee6df515100484ec3efd9b8d111 + checksum: 10/a62a74b2a469d94d9a688c26d7dfafef111ee8d7db6b55a80147d319a39ab68036c659b62ad5d9a0138e5581b24c42372bcc543343b8a41bb8c3f96ffd32743b languageName: node linkType: hard @@ -5144,13 +5144,13 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:7.10.0": - version: 7.10.0 - resolution: "@typescript-eslint/scope-manager@npm:7.10.0" +"@typescript-eslint/scope-manager@npm:7.12.0": + version: 7.12.0 + resolution: "@typescript-eslint/scope-manager@npm:7.12.0" dependencies: - "@typescript-eslint/types": "npm:7.10.0" - "@typescript-eslint/visitor-keys": "npm:7.10.0" - checksum: 10/838a7a9573577d830b2f65801ce045abe6fad08ac7e04bac4cc9b2e5b7cbac07e645de9c79b9485f4cc361fe25da5319025aa0336fad618023fff62e4e980638 + "@typescript-eslint/types": "npm:7.12.0" + "@typescript-eslint/visitor-keys": "npm:7.12.0" + checksum: 10/49a1fa4c15a161258963c4ffe37d89a212138d1c09e39a73064cd3a962823b98e362546de7228698877bc7e7f515252f439c140245f9689ff59efd7b35be58a4 languageName: node linkType: hard @@ -5164,12 +5164,12 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:7.10.0": - version: 7.10.0 - resolution: "@typescript-eslint/type-utils@npm:7.10.0" +"@typescript-eslint/type-utils@npm:7.12.0": + version: 7.12.0 + resolution: "@typescript-eslint/type-utils@npm:7.12.0" dependencies: - "@typescript-eslint/typescript-estree": "npm:7.10.0" - "@typescript-eslint/utils": "npm:7.10.0" + "@typescript-eslint/typescript-estree": "npm:7.12.0" + "@typescript-eslint/utils": "npm:7.12.0" debug: "npm:^4.3.4" ts-api-utils: "npm:^1.3.0" peerDependencies: @@ -5177,14 +5177,14 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10/e62db9ffbfbccce60258108f7ed025005e04df18da897ff1b30049e3c10a47150e94c2fb5ac0ab9711ebb60517521213dcccbea6d08125107a87a67088a79042 + checksum: 10/c42d15aa5f0483ce361910b770cb4050e69739632ddb01436e189775df2baee6f7398f9e55633f1f1955d58c2a622a4597a093c5372eb61aafdda8a43bac2d57 languageName: node linkType: hard -"@typescript-eslint/types@npm:7.10.0": - version: 7.10.0 - resolution: "@typescript-eslint/types@npm:7.10.0" - checksum: 10/76075a7b87ddfff8e7e4aebf3d225e67bf79ead12a7709999d4d5c31611d9c0813ca69a9298f320efb018fe493ce3763c964a0e670a4c953d8eff000f10672c0 +"@typescript-eslint/types@npm:7.12.0": + version: 7.12.0 + resolution: "@typescript-eslint/types@npm:7.12.0" + checksum: 10/17b57ccd26278312299b27f587d7e9b34076ff37780b3973f848e4ac7bdf80d1bee7356082b54e900e0d77be8a0dda1feef1feb84843b9ec253855200cd93f36 languageName: node linkType: hard @@ -5195,12 +5195,12 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:7.10.0": - version: 7.10.0 - resolution: "@typescript-eslint/typescript-estree@npm:7.10.0" +"@typescript-eslint/typescript-estree@npm:7.12.0": + version: 7.12.0 + resolution: "@typescript-eslint/typescript-estree@npm:7.12.0" dependencies: - "@typescript-eslint/types": "npm:7.10.0" - "@typescript-eslint/visitor-keys": "npm:7.10.0" + "@typescript-eslint/types": "npm:7.12.0" + "@typescript-eslint/visitor-keys": "npm:7.12.0" debug: "npm:^4.3.4" globby: "npm:^11.1.0" is-glob: "npm:^4.0.3" @@ -5210,7 +5210,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10/d11d0c45749c9bd4a187b6dfdf5600e36ba8c87667cd2020d9158667c47c32ec0bcb1ef3b7eee5577b667def5f7f33d8131092a0f221b3d3e8105078800f923f + checksum: 10/45e7402e2e32782a96dbca671b4ad731b643e47c172d735e749930d1560071a1a1e2a8765396443d09bff83c69dad2fff07dc30a2ed212bff492e20aa6b2b790 languageName: node linkType: hard @@ -5233,27 +5233,27 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/utils@npm:7.10.0": - version: 7.10.0 - resolution: "@typescript-eslint/utils@npm:7.10.0" +"@typescript-eslint/utils@npm:7.12.0": + version: 7.12.0 + resolution: "@typescript-eslint/utils@npm:7.12.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" - "@typescript-eslint/scope-manager": "npm:7.10.0" - "@typescript-eslint/types": "npm:7.10.0" - "@typescript-eslint/typescript-estree": "npm:7.10.0" + "@typescript-eslint/scope-manager": "npm:7.12.0" + "@typescript-eslint/types": "npm:7.12.0" + "@typescript-eslint/typescript-estree": "npm:7.12.0" peerDependencies: eslint: ^8.56.0 - checksum: 10/62327b585295f9c3aa2508aefac639d562b6f7f270a229aa3a2af8dbd055f4a4d230a8facae75a8a53bb8222b0041162072d259add56b541f8bdfda8da36ea5f + checksum: 10/b66725cef2dcc4975714ea7528fa000cebd4e0b55bb6c43d7efe9ce21a6c7af5f8b2c49f1be3a5118c26666d4b0228470105741e78430e463b72f91fa62e0adf languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:7.10.0": - version: 7.10.0 - resolution: "@typescript-eslint/visitor-keys@npm:7.10.0" +"@typescript-eslint/visitor-keys@npm:7.12.0": + version: 7.12.0 + resolution: "@typescript-eslint/visitor-keys@npm:7.12.0" dependencies: - "@typescript-eslint/types": "npm:7.10.0" + "@typescript-eslint/types": "npm:7.12.0" eslint-visitor-keys: "npm:^3.4.3" - checksum: 10/44b555a075bdff38e3e13c454ceaac50aa2546635e81f907d1ea84822c8887487d1d6bb4ff690f627da9585dc19ad07e228847c162c30bb06c46fb119899d8cc + checksum: 10/5c03bbb68f6eb775005c83042da99de87513cdf9b5549c2ac30caf2c74dc9888cebec57d9eeb0dead8f63a57771288f59605c9a4d8aeec6b87b5390ac723cbd4 languageName: node linkType: hard @@ -5853,16 +5853,17 @@ __metadata: languageName: node linkType: hard -"array-includes@npm:^3.1.6, array-includes@npm:^3.1.7": - version: 3.1.7 - resolution: "array-includes@npm:3.1.7" +"array-includes@npm:^3.1.6, array-includes@npm:^3.1.7, array-includes@npm:^3.1.8": + version: 3.1.8 + resolution: "array-includes@npm:3.1.8" dependencies: - call-bind: "npm:^1.0.2" - define-properties: "npm:^1.2.0" - es-abstract: "npm:^1.22.1" - get-intrinsic: "npm:^1.2.1" + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.2" + es-object-atoms: "npm:^1.0.0" + get-intrinsic: "npm:^1.2.4" is-string: "npm:^1.0.7" - checksum: 10/856a8be5d118967665936ad33ff3b07adfc50b06753e596e91fb80c3da9b8c022e92e3cc6781156d6ad95db7109b9f603682c7df2d6a529ed01f7f6b39a4a360 + checksum: 10/290b206c9451f181fb2b1f79a3bf1c0b66bb259791290ffbada760c79b284eef6f5ae2aeb4bcff450ebc9690edd25732c4c73a3c2b340fcc0f4563aed83bf488 languageName: node linkType: hard @@ -5880,7 +5881,7 @@ __metadata: languageName: node linkType: hard -"array.prototype.findlast@npm:^1.2.4": +"array.prototype.findlast@npm:^1.2.5": version: 1.2.5 resolution: "array.prototype.findlast@npm:1.2.5" dependencies: @@ -6965,10 +6966,12 @@ __metadata: languageName: node linkType: hard -"crypto-random-string@npm:^2.0.0": - version: 2.0.0 - resolution: "crypto-random-string@npm:2.0.0" - checksum: 10/0283879f55e7c16fdceacc181f87a0a65c53bc16ffe1d58b9d19a6277adcd71900d02bb2c4843dd55e78c51e30e89b0fec618a7f170ebcc95b33182c28f05fd6 +"crypto-random-string@npm:^4.0.0": + version: 4.0.0 + resolution: "crypto-random-string@npm:4.0.0" + dependencies: + type-fest: "npm:^1.0.1" + checksum: 10/cd5d7ae13803de53680aaed4c732f67209af5988cbeec5f6b29082020347c2d8849ca921b2008be7d6bd1d9d198c3c3697e7441d6d0d3da1bf51e9e4d2032149 languageName: node linkType: hard @@ -7264,22 +7267,6 @@ __metadata: languageName: node linkType: hard -"del@npm:^6.0.0": - version: 6.1.1 - resolution: "del@npm:6.1.1" - dependencies: - globby: "npm:^11.0.1" - graceful-fs: "npm:^4.2.4" - is-glob: "npm:^4.0.1" - is-path-cwd: "npm:^2.2.0" - is-path-inside: "npm:^3.0.2" - p-map: "npm:^4.0.0" - rimraf: "npm:^3.0.2" - slash: "npm:^3.0.0" - checksum: 10/563288b73b8b19a7261c47fd21a330eeab6e2acd7c6208c49790dfd369127120dd7836cdf0c1eca216b77c94782a81507eac6b4734252d3bef2795cb366996b6 - languageName: node - linkType: hard - "delayed-stream@npm:~1.0.0": version: 1.0.0 resolution: "delayed-stream@npm:1.0.0" @@ -7717,7 +7704,7 @@ __metadata: languageName: node linkType: hard -"es-iterator-helpers@npm:^1.0.17": +"es-iterator-helpers@npm:^1.0.19": version: 1.0.19 resolution: "es-iterator-helpers@npm:1.0.19" dependencies: @@ -8105,30 +8092,30 @@ __metadata: linkType: hard "eslint-plugin-react@npm:^7.34.1": - version: 7.34.1 - resolution: "eslint-plugin-react@npm:7.34.1" + version: 7.34.2 + resolution: "eslint-plugin-react@npm:7.34.2" dependencies: - array-includes: "npm:^3.1.7" - array.prototype.findlast: "npm:^1.2.4" + array-includes: "npm:^3.1.8" + array.prototype.findlast: "npm:^1.2.5" array.prototype.flatmap: "npm:^1.3.2" array.prototype.toreversed: "npm:^1.1.2" array.prototype.tosorted: "npm:^1.1.3" doctrine: "npm:^2.1.0" - es-iterator-helpers: "npm:^1.0.17" + es-iterator-helpers: "npm:^1.0.19" estraverse: "npm:^5.3.0" jsx-ast-utils: "npm:^2.4.1 || ^3.0.0" minimatch: "npm:^3.1.2" - object.entries: "npm:^1.1.7" - object.fromentries: "npm:^2.0.7" - object.hasown: "npm:^1.1.3" - object.values: "npm:^1.1.7" + object.entries: "npm:^1.1.8" + object.fromentries: "npm:^2.0.8" + object.hasown: "npm:^1.1.4" + object.values: "npm:^1.2.0" prop-types: "npm:^15.8.1" resolve: "npm:^2.0.0-next.5" semver: "npm:^6.3.1" - string.prototype.matchall: "npm:^4.0.10" + string.prototype.matchall: "npm:^4.0.11" peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - checksum: 10/ee059971065ea7e73ab5d8728774235c7dbf7a5e9f937c3b47e97f8fa9a5a96ab511d2ae6d5ec76a7e705ca666673d454f1e75a94033720819d041827f50f9c8 + checksum: 10/6efccc29ad09a45fe1764089199e87b69b63a40152dd40cbbece639c6be4cda4306b58b15ba9b449f639705eb9a08ddc51b58308077c0394537769c455f976b7 languageName: node linkType: hard @@ -9075,7 +9062,7 @@ __metadata: languageName: node linkType: hard -"globby@npm:^11.0.1, globby@npm:^11.1.0": +"globby@npm:^11.1.0": version: 11.1.0 resolution: "globby@npm:11.1.0" dependencies: @@ -9331,13 +9318,13 @@ __metadata: linkType: hard "happy-dom@npm:^14.7.1": - version: 14.11.0 - resolution: "happy-dom@npm:14.11.0" + version: 14.12.0 + resolution: "happy-dom@npm:14.12.0" dependencies: entities: "npm:^4.5.0" webidl-conversions: "npm:^7.0.0" whatwg-mimetype: "npm:^3.0.0" - checksum: 10/864ffcd723242281e20f0abefbbf1ba90408e612b31f05db6ed018822f1bc1f885345143e5f295c57c627219c76558faabf0e4fe435f42f6ab176e16c8a34ab9 + checksum: 10/59aaea73f6127825194ed3ef076b18a4e6be233d9aaffebc667faf1f1ea8af040b07a21cccbb211faecde7ed65351e197ff4b894d4b24118f23ea664cc5c6392 languageName: node linkType: hard @@ -9947,14 +9934,7 @@ __metadata: languageName: node linkType: hard -"is-path-cwd@npm:^2.2.0": - version: 2.2.0 - resolution: "is-path-cwd@npm:2.2.0" - checksum: 10/46a840921bb8cc0dc7b5b423a14220e7db338072a4495743a8230533ce78812dc152548c86f4b828411fe98c5451959f07cf841c6a19f611e46600bd699e8048 - languageName: node - linkType: hard - -"is-path-inside@npm:^3.0.2, is-path-inside@npm:^3.0.3": +"is-path-inside@npm:^3.0.3": version: 3.0.3 resolution: "is-path-inside@npm:3.0.3" checksum: 10/abd50f06186a052b349c15e55b182326f1936c89a78bf6c8f2b707412517c097ce04bc49a0ca221787bc44e1049f51f09a2ffb63d22899051988d3a618ba13e9 @@ -11326,7 +11306,7 @@ __metadata: languageName: node linkType: hard -"object.entries@npm:^1.1.7": +"object.entries@npm:^1.1.8": version: 1.1.8 resolution: "object.entries@npm:1.1.8" dependencies: @@ -11337,14 +11317,15 @@ __metadata: languageName: node linkType: hard -"object.fromentries@npm:^2.0.7": - version: 2.0.7 - resolution: "object.fromentries@npm:2.0.7" +"object.fromentries@npm:^2.0.7, object.fromentries@npm:^2.0.8": + version: 2.0.8 + resolution: "object.fromentries@npm:2.0.8" dependencies: - call-bind: "npm:^1.0.2" - define-properties: "npm:^1.2.0" - es-abstract: "npm:^1.22.1" - checksum: 10/1bfbe42a51f8d84e417d193fae78e4b8eebb134514cdd44406480f8e8a0e075071e0717635d8e3eccd50fec08c1d555fe505c38804cbac0808397187653edd59 + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.2" + es-object-atoms: "npm:^1.0.0" + checksum: 10/5b2e80f7af1778b885e3d06aeb335dcc86965e39464671adb7167ab06ac3b0f5dd2e637a90d8ebd7426d69c6f135a4753ba3dd7d0fe2a7030cf718dcb910fd92 languageName: node linkType: hard @@ -11360,7 +11341,7 @@ __metadata: languageName: node linkType: hard -"object.hasown@npm:^1.1.3": +"object.hasown@npm:^1.1.4": version: 1.1.4 resolution: "object.hasown@npm:1.1.4" dependencies: @@ -11371,14 +11352,14 @@ __metadata: languageName: node linkType: hard -"object.values@npm:^1.1.6, object.values@npm:^1.1.7": - version: 1.1.7 - resolution: "object.values@npm:1.1.7" +"object.values@npm:^1.1.6, object.values@npm:^1.1.7, object.values@npm:^1.2.0": + version: 1.2.0 + resolution: "object.values@npm:1.2.0" dependencies: - call-bind: "npm:^1.0.2" - define-properties: "npm:^1.2.0" - es-abstract: "npm:^1.22.1" - checksum: 10/20ab42c0bbf984405c80e060114b18cf5d629a40a132c7eac4fb79c5d06deb97496311c19297dcf9c61f45c2539cd4c7f7c5d6230e51db360ff297bbc9910162 + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-object-atoms: "npm:^1.0.0" + checksum: 10/db2e498019c354428c5dd30d02980d920ac365b155fce4dcf63eb9433f98ccf0f72624309e182ce7cc227c95e45d474e1d483418e60de2293dd23fa3ebe34903 languageName: node linkType: hard @@ -14152,14 +14133,14 @@ __metadata: linkType: hard "storybook@npm:^8.0.9": - version: 8.1.3 - resolution: "storybook@npm:8.1.3" + version: 8.1.5 + resolution: "storybook@npm:8.1.5" dependencies: - "@storybook/cli": "npm:8.1.3" + "@storybook/cli": "npm:8.1.5" bin: sb: ./index.js storybook: ./index.js - checksum: 10/05b143b311a97587bc8da41e18de2070697877f1133c5389d281598a70ab0caf4148d90f138674114ecc9f2f9b47322c542da35cc3c57508f71f4efbd3e9ae0c + checksum: 10/92e02edb8e38213bd249ea5b7de1e7790ef0ca196fa835edb143d9dce4d2b3414f080ed19bc584261ae9a818f4225011a69c527052a1c2de4e8671b2994e3b4f languageName: node linkType: hard @@ -14220,7 +14201,7 @@ __metadata: languageName: node linkType: hard -"string.prototype.matchall@npm:^4.0.10": +"string.prototype.matchall@npm:^4.0.11": version: 4.0.11 resolution: "string.prototype.matchall@npm:4.0.11" dependencies: @@ -14562,10 +14543,10 @@ __metadata: languageName: node linkType: hard -"temp-dir@npm:^2.0.0": - version: 2.0.0 - resolution: "temp-dir@npm:2.0.0" - checksum: 10/cc4f0404bf8d6ae1a166e0e64f3f409b423f4d1274d8c02814a59a5529f07db6cd070a749664141b992b2c1af337fa9bb451a460a43bb9bcddc49f235d3115aa +"temp-dir@npm:^3.0.0": + version: 3.0.0 + resolution: "temp-dir@npm:3.0.0" + checksum: 10/577211e995d1d584dd60f1469351d45e8a5b4524e4a9e42d3bdd12cfde1d0bb8f5898311bef24e02aaafb69514c1feb58c7b4c33dcec7129da3b0861a4ca935b languageName: node linkType: hard @@ -14578,16 +14559,15 @@ __metadata: languageName: node linkType: hard -"tempy@npm:^1.0.1": - version: 1.0.1 - resolution: "tempy@npm:1.0.1" +"tempy@npm:^3.1.0": + version: 3.1.0 + resolution: "tempy@npm:3.1.0" dependencies: - del: "npm:^6.0.0" - is-stream: "npm:^2.0.0" - temp-dir: "npm:^2.0.0" - type-fest: "npm:^0.16.0" - unique-string: "npm:^2.0.0" - checksum: 10/e3a3857cd102db84c484b8e878203b496f0e927025b7c60dd118c0c9a0962f4589321c6b3093185d529576af5c58be65d755e72c2a6ad009ff340ab8cbbe4d33 + is-stream: "npm:^3.0.0" + temp-dir: "npm:^3.0.0" + type-fest: "npm:^2.12.2" + unique-string: "npm:^3.0.0" + checksum: 10/f5540bc24dcd9d41ab0b31e9eed73c3ef825080f1c8b1e854e4b73059155c889f72f5f7c15e8cd462d59aa10c9726e423c81d6a365d614b538c6cc78a1209cc6 languageName: node linkType: hard @@ -14825,13 +14805,6 @@ __metadata: languageName: node linkType: hard -"type-fest@npm:^0.16.0": - version: 0.16.0 - resolution: "type-fest@npm:0.16.0" - checksum: 10/fd8c47ccb90e9fe7bae8bfc0e116e200e096120200c1ab1737bf0bc9334b344dd4925f876ed698174ffd58cd179bb56a55467be96aedc22d5d72748eac428bc8 - languageName: node - linkType: hard - "type-fest@npm:^0.20.2": version: 0.20.2 resolution: "type-fest@npm:0.20.2" @@ -14853,7 +14826,14 @@ __metadata: languageName: node linkType: hard -"type-fest@npm:^2.19.0, type-fest@npm:~2.19": +"type-fest@npm:^1.0.1": + version: 1.4.0 + resolution: "type-fest@npm:1.4.0" + checksum: 10/89875c247564601c2650bacad5ff80b859007fbdb6c9e43713ae3ffa3f584552eea60f33711dd762e16496a1ab4debd409822627be14097d9a17e39c49db591a + languageName: node + linkType: hard + +"type-fest@npm:^2.12.2, type-fest@npm:^2.19.0, type-fest@npm:~2.19": version: 2.19.0 resolution: "type-fest@npm:2.19.0" checksum: 10/7bf9e8fdf34f92c8bb364c0af14ca875fac7e0183f2985498b77be129dc1b3b1ad0a6b3281580f19e48c6105c037fb966ad9934520c69c6434d17fd0af4eed78 @@ -15060,12 +15040,12 @@ __metadata: languageName: node linkType: hard -"unique-string@npm:^2.0.0": - version: 2.0.0 - resolution: "unique-string@npm:2.0.0" +"unique-string@npm:^3.0.0": + version: 3.0.0 + resolution: "unique-string@npm:3.0.0" dependencies: - crypto-random-string: "npm:^2.0.0" - checksum: 10/107cae65b0b618296c2c663b8e52e4d1df129e9af04ab38d53b4f2189e96da93f599c85f4589b7ffaf1a11c9327cbb8a34f04c71b8d4950d3e385c2da2a93828 + crypto-random-string: "npm:^4.0.0" + checksum: 10/1a1e2e7d02eab1bb10f720475da735e1990c8a5ff34edd1a3b6bc31590cb4210b7a1233d779360cc622ce11c211e43afa1628dd658f35d3e6a89964b622940df languageName: node linkType: hard @@ -15318,8 +15298,8 @@ __metadata: linkType: hard "vite@npm:^5.0.0, vite@npm:^5.2.10": - version: 5.2.11 - resolution: "vite@npm:5.2.11" + version: 5.2.12 + resolution: "vite@npm:5.2.12" dependencies: esbuild: "npm:^0.20.1" fsevents: "npm:~2.3.3" @@ -15353,7 +15333,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: 10/ee0ad038f0831c9514796522deb1e2dcb84bc311abbccb77e4b12216d37fc9559137f4f1b8e75187d51007b954e845c6518e36ee3acac2e2a2789c1181ebb16c + checksum: 10/c27d3efff93016e8171b6a362f605ad5f78e24086292987097ad4a7382ae78d9e0659065976a13bf7b51ba0f593d675579010692097ef36d8a5cc965f3efec4c languageName: node linkType: hard diff --git a/viewer/yarn.lock b/viewer/yarn.lock index d72a41ae774..18a684ab268 100644 --- a/viewer/yarn.lock +++ b/viewer/yarn.lock @@ -23,11 +23,11 @@ __metadata: linkType: hard "@azure/msal-browser@npm:^3.13.0": - version: 3.14.0 - resolution: "@azure/msal-browser@npm:3.14.0" + version: 3.15.0 + resolution: "@azure/msal-browser@npm:3.15.0" dependencies: "@azure/msal-common": "npm:14.10.0" - checksum: 10/cd4c6ee8ca7c84ef5057231a91363958bca572a00efa240358d1b04f4993ce7772fefbc781101b52d0daa01cd0769a8f6bcb8524193389ecd591deef4277d072 + checksum: 10/f19a1a1a8441731f513eb5438c9f5af0f5f82cd2db2e76fcce2ecff797574e036aaf1b56c52bde0219b30f9a6deb853a191a1b8c0e424bd6084b4736e6d2ef0c languageName: node linkType: hard @@ -573,9 +573,9 @@ __metadata: languageName: node linkType: hard -"@es-joy/jsdoccomment@npm:~0.43.0": - version: 0.43.0 - resolution: "@es-joy/jsdoccomment@npm:0.43.0" +"@es-joy/jsdoccomment@npm:~0.43.1": + version: 0.43.1 + resolution: "@es-joy/jsdoccomment@npm:0.43.1" dependencies: "@types/eslint": "npm:^8.56.5" "@types/estree": "npm:^1.0.5" @@ -583,7 +583,7 @@ __metadata: comment-parser: "npm:1.4.1" esquery: "npm:^1.5.0" jsdoc-type-pratt-parser: "npm:~4.0.0" - checksum: 10/b59c4af07bfa4eba1d597643242544acfa73fb59c7b8c6737acab18b0dc153ea4b95af54a98d1ae2fb79c0396e3b66a4ac2faa2fa9e6937193c141d6ab006ef6 + checksum: 10/c7b30648f3959a6779df9f1939467916f46d40a87b4067a3e53f0492019d5f644cc5e2bb7ded5202a43a01b0627d7b751e9f1f1b10625f5a99a988894e55d2ac languageName: node linkType: hard @@ -1032,28 +1032,28 @@ __metadata: languageName: node linkType: hard -"@microsoft/api-extractor-model@npm:7.28.19": - version: 7.28.19 - resolution: "@microsoft/api-extractor-model@npm:7.28.19" +"@microsoft/api-extractor-model@npm:7.29.2": + version: 7.29.2 + resolution: "@microsoft/api-extractor-model@npm:7.29.2" dependencies: - "@microsoft/tsdoc": "npm:0.14.2" - "@microsoft/tsdoc-config": "npm:~0.16.1" - "@rushstack/node-core-library": "npm:5.1.0" - checksum: 10/505c9113db5dec4a470f17acff5ad8373fd1cdc8eb2be40522cb444e1b758ee09e261190cfa34ae54f444dc7db1a3701070c6ecb61b6952210b859348fbf706e + "@microsoft/tsdoc": "npm:~0.15.0" + "@microsoft/tsdoc-config": "npm:~0.17.0" + "@rushstack/node-core-library": "npm:5.4.1" + checksum: 10/21cf0c7172ec68a95cf491b5a5acea5a8187975601e4d52aec38f21aedf04910d3209765588debd7288592101cec05eaef59ef49eb2de05cbf3d78e0798ca368 languageName: node linkType: hard "@microsoft/api-extractor@npm:^7.43.1": - version: 7.44.1 - resolution: "@microsoft/api-extractor@npm:7.44.1" + version: 7.46.2 + resolution: "@microsoft/api-extractor@npm:7.46.2" dependencies: - "@microsoft/api-extractor-model": "npm:7.28.19" - "@microsoft/tsdoc": "npm:0.14.2" - "@microsoft/tsdoc-config": "npm:~0.16.1" - "@rushstack/node-core-library": "npm:5.1.0" + "@microsoft/api-extractor-model": "npm:7.29.2" + "@microsoft/tsdoc": "npm:~0.15.0" + "@microsoft/tsdoc-config": "npm:~0.17.0" + "@rushstack/node-core-library": "npm:5.4.1" "@rushstack/rig-package": "npm:0.5.2" - "@rushstack/terminal": "npm:0.12.0" - "@rushstack/ts-command-line": "npm:4.21.2" + "@rushstack/terminal": "npm:0.13.0" + "@rushstack/ts-command-line": "npm:4.22.0" lodash: "npm:~4.17.15" minimatch: "npm:~3.0.3" resolve: "npm:~1.22.1" @@ -1062,26 +1062,26 @@ __metadata: typescript: "npm:5.4.2" bin: api-extractor: bin/api-extractor - checksum: 10/0ef7e3f316406b55c860ef4274f3ed0abb64df771df590bd8b81c85f2bb4de3a8a983b6952a620adeaa6d3315a431a2f3810e3b6580827bf2f51fc862e7d5718 + checksum: 10/2be049ee6cb7c77780520beb93ecebdb8b3b05672f7b81be979bbd0475119345ec49c4f5f0fe8ea74ff6b79ad2166255fb51c3352a970f4227a5b75de2822216 languageName: node linkType: hard -"@microsoft/tsdoc-config@npm:~0.16.1": - version: 0.16.2 - resolution: "@microsoft/tsdoc-config@npm:0.16.2" +"@microsoft/tsdoc-config@npm:~0.17.0": + version: 0.17.0 + resolution: "@microsoft/tsdoc-config@npm:0.17.0" dependencies: - "@microsoft/tsdoc": "npm:0.14.2" - ajv: "npm:~6.12.6" + "@microsoft/tsdoc": "npm:0.15.0" + ajv: "npm:~8.12.0" jju: "npm:~1.4.0" - resolve: "npm:~1.19.0" - checksum: 10/37fc35d83dab66771502165fad6a8380ec6d47e0fdaadcb60c09792e5b8172feea42f327ebf4e6026c3b22448e5e73d9ee53948a2d877ee00257679b162f3490 + resolve: "npm:~1.22.2" + checksum: 10/6e20f9b917d20e517b6752cbb46c84ccc4c8be7ce82d7424e413bd7111a2f1497714a72e61ac1a96df97d0050cb98b3a53006316eeb0cfea9bb6d7131432c7a8 languageName: node linkType: hard -"@microsoft/tsdoc@npm:0.14.2": - version: 0.14.2 - resolution: "@microsoft/tsdoc@npm:0.14.2" - checksum: 10/00c3d4fc184e8e09e17aef57e4a990402bd9752607a5d50bd62a9e85bc4b8791c985a51e238affa6b9a2d23110f24d373becbfc84e1e6e9a84cf977822e3b00a +"@microsoft/tsdoc@npm:0.15.0, @microsoft/tsdoc@npm:~0.15.0": + version: 0.15.0 + resolution: "@microsoft/tsdoc@npm:0.15.0" + checksum: 10/fd025e5e3966248cd5477b9ddad4e9aa0dd69291f372a207f18a686b3097dcf5ecf38325caf0f4ad2697f1f39fd45b536e4ada6756008b8bcc5eccbc3201313d languageName: node linkType: hard @@ -1396,18 +1396,18 @@ __metadata: languageName: unknown linkType: soft -"@rrweb/types@npm:^2.0.0-alpha.4": - version: 2.0.0-alpha.13 - resolution: "@rrweb/types@npm:2.0.0-alpha.13" +"@rrweb/types@npm:^2.0.0-alpha.13": + version: 2.0.0-alpha.14 + resolution: "@rrweb/types@npm:2.0.0-alpha.14" dependencies: - rrweb-snapshot: "npm:^2.0.0-alpha.13" - checksum: 10/a63a22bfc3b7d3dbfcfdbf127a3bdb1939f24a1d19c7243a9ce43b24287f75a7b4961478ee019fa033279abd255d9ef06cfacd2fb60cb692915c4a504574523a + rrweb-snapshot: "npm:^2.0.0-alpha.14" + checksum: 10/15f7d322aa4bdb0cf06723665fa32780b456d76b1db5be5637470c05477df0db7277f27c843188938044747ae41ad2a6821337fb43c3e5b072a4fb4c5e967f2c languageName: node linkType: hard -"@rushstack/node-core-library@npm:5.1.0": - version: 5.1.0 - resolution: "@rushstack/node-core-library@npm:5.1.0" +"@rushstack/node-core-library@npm:5.4.1": + version: 5.4.1 + resolution: "@rushstack/node-core-library@npm:5.4.1" dependencies: ajv: "npm:~8.13.0" ajv-draft-04: "npm:~1.0.0" @@ -1422,7 +1422,7 @@ __metadata: peerDependenciesMeta: "@types/node": optional: true - checksum: 10/86557fefde1c09857ba86c3579dee953df526b8e7a864679324c9772cc2f1c395c4d8203f88e13caa87eec0654452da21bb955387a803629e9815a5d19738243 + checksum: 10/7822a77987b99fa7ada0be01e715608820a0ca98b4e3c7c6cd7389fbe210f70ae1d4070d2d556a1ea0fd04fe624abafddf112092e407b53273bb019ad24cf6ce languageName: node linkType: hard @@ -1436,30 +1436,30 @@ __metadata: languageName: node linkType: hard -"@rushstack/terminal@npm:0.12.0": - version: 0.12.0 - resolution: "@rushstack/terminal@npm:0.12.0" +"@rushstack/terminal@npm:0.13.0": + version: 0.13.0 + resolution: "@rushstack/terminal@npm:0.13.0" dependencies: - "@rushstack/node-core-library": "npm:5.1.0" + "@rushstack/node-core-library": "npm:5.4.1" supports-color: "npm:~8.1.1" peerDependencies: "@types/node": "*" peerDependenciesMeta: "@types/node": optional: true - checksum: 10/2922d5d29bd7d2b8cc0372a1290ee41b7b2e13862c5e3404d007a1401c3df1c0391c732db0b6aa56f900b7135d35377b41dc7d90ef70fa6bc8cb323d9c9c1f10 + checksum: 10/099c00b7df196aafb345899c395a3600e578bebb905b3de7e49971da0f03501b9ebf7b6442f07ee894ed47fb11e216c8e219d8075bdf9abc6d292658301ae300 languageName: node linkType: hard -"@rushstack/ts-command-line@npm:4.21.2": - version: 4.21.2 - resolution: "@rushstack/ts-command-line@npm:4.21.2" +"@rushstack/ts-command-line@npm:4.22.0": + version: 4.22.0 + resolution: "@rushstack/ts-command-line@npm:4.22.0" dependencies: - "@rushstack/terminal": "npm:0.12.0" + "@rushstack/terminal": "npm:0.13.0" "@types/argparse": "npm:1.0.38" argparse: "npm:~1.0.9" string-argv: "npm:~0.3.1" - checksum: 10/87a467678649249ef7ffab858e4426cf3939cceb8af73c7e0abb7bf9ad281b1d1bf74133ab816691646579077c7a5a5ba8bcc7be8210e4c5fea91c7e3453a49a + checksum: 10/274a1e8221edbe49f2693b3a8fe4a2c9767a81c31a9e6116eb861e7e895470eddc9c6ed7c32e22d3bed08232d07448843d54b63426c2f114d2298f16cd1ea413 languageName: node linkType: hard @@ -1845,24 +1845,24 @@ __metadata: linkType: hard "@types/jsdom@npm:^20.0.0": - version: 20.0.0 - resolution: "@types/jsdom@npm:20.0.0" + version: 20.0.1 + resolution: "@types/jsdom@npm:20.0.1" dependencies: "@types/node": "npm:*" "@types/tough-cookie": "npm:*" parse5: "npm:^7.0.0" - checksum: 10/4cd814a948aa9b739652cde183acc6a9a10bcf04ed82c3a53f691bbc52d156b49269fa3046c70842680a29d240607fcd7be5f35a73ddbf571d95a664e8e49cec + checksum: 10/15fbb9a0bfb4a5845cf6e795f2fd12400aacfca53b8c7e5bca4a3e5e8fa8629f676327964d64258aefb127d2d8a2be86dad46359efbfca0e8c9c2b790e7f8a88 languageName: node linkType: hard "@types/jsdom@npm:^21.1.6": - version: 21.1.6 - resolution: "@types/jsdom@npm:21.1.6" + version: 21.1.7 + resolution: "@types/jsdom@npm:21.1.7" dependencies: "@types/node": "npm:*" "@types/tough-cookie": "npm:*" parse5: "npm:^7.0.0" - checksum: 10/423fcaf3ec57ca45bcdebb15bd18cbcef1daa472fd00b15af125d0a7783f572d78a610ce23177ace66667548a9d97e306d7185a4930ad7a002e612c3491e6765 + checksum: 10/a5ee54aec813ac928ef783f69828213af4d81325f584e1fe7573a9ae139924c40768d1d5249237e62d51b9a34ed06bde059c86c6b0248d627457ec5e5d532dfa languageName: node linkType: hard @@ -1911,11 +1911,11 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:^20.12.7": - version: 20.12.12 - resolution: "@types/node@npm:20.12.12" + version: 20.14.0 + resolution: "@types/node@npm:20.14.0" dependencies: undici-types: "npm:~5.26.4" - checksum: 10/e3945da0a3017bdc1f88f15bdfb823f526b2a717bd58d4640082d6eb0bd2794b5c99bfb914b9e9324ec116dce36066990353ed1c777e8a7b0641f772575793c4 + checksum: 10/49b332fbf8aee4dc4f61cc1f1f6e130632510f795dd7b274e55894516feaf4bec8a3d13ea764e2443e340a64ce9bbeb006d14513bf6ccdd4f21161eccc7f311e languageName: node linkType: hard @@ -2123,14 +2123,14 @@ __metadata: linkType: hard "@typescript-eslint/eslint-plugin@npm:^7.7.1": - version: 7.10.0 - resolution: "@typescript-eslint/eslint-plugin@npm:7.10.0" + version: 7.12.0 + resolution: "@typescript-eslint/eslint-plugin@npm:7.12.0" dependencies: "@eslint-community/regexpp": "npm:^4.10.0" - "@typescript-eslint/scope-manager": "npm:7.10.0" - "@typescript-eslint/type-utils": "npm:7.10.0" - "@typescript-eslint/utils": "npm:7.10.0" - "@typescript-eslint/visitor-keys": "npm:7.10.0" + "@typescript-eslint/scope-manager": "npm:7.12.0" + "@typescript-eslint/type-utils": "npm:7.12.0" + "@typescript-eslint/utils": "npm:7.12.0" + "@typescript-eslint/visitor-keys": "npm:7.12.0" graphemer: "npm:^1.4.0" ignore: "npm:^5.3.1" natural-compare: "npm:^1.4.0" @@ -2141,44 +2141,44 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10/dfe505cdf718dd29e8637b902e4c544c6b7d246d2051fd1936090423eb3dadfe2bd757de51e565e6fd80e74cf1918e191c26fee6df515100484ec3efd9b8d111 + checksum: 10/a62a74b2a469d94d9a688c26d7dfafef111ee8d7db6b55a80147d319a39ab68036c659b62ad5d9a0138e5581b24c42372bcc543343b8a41bb8c3f96ffd32743b languageName: node linkType: hard "@typescript-eslint/parser@npm:^7.7.1": - version: 7.10.0 - resolution: "@typescript-eslint/parser@npm:7.10.0" + version: 7.12.0 + resolution: "@typescript-eslint/parser@npm:7.12.0" dependencies: - "@typescript-eslint/scope-manager": "npm:7.10.0" - "@typescript-eslint/types": "npm:7.10.0" - "@typescript-eslint/typescript-estree": "npm:7.10.0" - "@typescript-eslint/visitor-keys": "npm:7.10.0" + "@typescript-eslint/scope-manager": "npm:7.12.0" + "@typescript-eslint/types": "npm:7.12.0" + "@typescript-eslint/typescript-estree": "npm:7.12.0" + "@typescript-eslint/visitor-keys": "npm:7.12.0" debug: "npm:^4.3.4" peerDependencies: eslint: ^8.56.0 peerDependenciesMeta: typescript: optional: true - checksum: 10/1fa71049b2debf2f7f5366fb433e3d4c8e1591c2061a15fa8797d14623a2b6984340a59e7717acc013ce8c6a2ed32c5c0e811fe948b5936d41c2a5a09b61d130 + checksum: 10/66b692ca1d00965b854e99784e78d8540adc49cf44a4e295e91ad2e809f236d6d1b3877eeddf3ee61f531a1313c9269ed7f16e083148a92f82c5de1337b06659 languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:7.10.0": - version: 7.10.0 - resolution: "@typescript-eslint/scope-manager@npm:7.10.0" +"@typescript-eslint/scope-manager@npm:7.12.0": + version: 7.12.0 + resolution: "@typescript-eslint/scope-manager@npm:7.12.0" dependencies: - "@typescript-eslint/types": "npm:7.10.0" - "@typescript-eslint/visitor-keys": "npm:7.10.0" - checksum: 10/838a7a9573577d830b2f65801ce045abe6fad08ac7e04bac4cc9b2e5b7cbac07e645de9c79b9485f4cc361fe25da5319025aa0336fad618023fff62e4e980638 + "@typescript-eslint/types": "npm:7.12.0" + "@typescript-eslint/visitor-keys": "npm:7.12.0" + checksum: 10/49a1fa4c15a161258963c4ffe37d89a212138d1c09e39a73064cd3a962823b98e362546de7228698877bc7e7f515252f439c140245f9689ff59efd7b35be58a4 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:7.10.0": - version: 7.10.0 - resolution: "@typescript-eslint/type-utils@npm:7.10.0" +"@typescript-eslint/type-utils@npm:7.12.0": + version: 7.12.0 + resolution: "@typescript-eslint/type-utils@npm:7.12.0" dependencies: - "@typescript-eslint/typescript-estree": "npm:7.10.0" - "@typescript-eslint/utils": "npm:7.10.0" + "@typescript-eslint/typescript-estree": "npm:7.12.0" + "@typescript-eslint/utils": "npm:7.12.0" debug: "npm:^4.3.4" ts-api-utils: "npm:^1.3.0" peerDependencies: @@ -2186,23 +2186,23 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10/e62db9ffbfbccce60258108f7ed025005e04df18da897ff1b30049e3c10a47150e94c2fb5ac0ab9711ebb60517521213dcccbea6d08125107a87a67088a79042 + checksum: 10/c42d15aa5f0483ce361910b770cb4050e69739632ddb01436e189775df2baee6f7398f9e55633f1f1955d58c2a622a4597a093c5372eb61aafdda8a43bac2d57 languageName: node linkType: hard -"@typescript-eslint/types@npm:7.10.0, @typescript-eslint/types@npm:^7.2.0": - version: 7.10.0 - resolution: "@typescript-eslint/types@npm:7.10.0" - checksum: 10/76075a7b87ddfff8e7e4aebf3d225e67bf79ead12a7709999d4d5c31611d9c0813ca69a9298f320efb018fe493ce3763c964a0e670a4c953d8eff000f10672c0 +"@typescript-eslint/types@npm:7.12.0, @typescript-eslint/types@npm:^7.2.0": + version: 7.12.0 + resolution: "@typescript-eslint/types@npm:7.12.0" + checksum: 10/17b57ccd26278312299b27f587d7e9b34076ff37780b3973f848e4ac7bdf80d1bee7356082b54e900e0d77be8a0dda1feef1feb84843b9ec253855200cd93f36 languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:7.10.0": - version: 7.10.0 - resolution: "@typescript-eslint/typescript-estree@npm:7.10.0" +"@typescript-eslint/typescript-estree@npm:7.12.0": + version: 7.12.0 + resolution: "@typescript-eslint/typescript-estree@npm:7.12.0" dependencies: - "@typescript-eslint/types": "npm:7.10.0" - "@typescript-eslint/visitor-keys": "npm:7.10.0" + "@typescript-eslint/types": "npm:7.12.0" + "@typescript-eslint/visitor-keys": "npm:7.12.0" debug: "npm:^4.3.4" globby: "npm:^11.1.0" is-glob: "npm:^4.0.3" @@ -2212,31 +2212,31 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10/d11d0c45749c9bd4a187b6dfdf5600e36ba8c87667cd2020d9158667c47c32ec0bcb1ef3b7eee5577b667def5f7f33d8131092a0f221b3d3e8105078800f923f + checksum: 10/45e7402e2e32782a96dbca671b4ad731b643e47c172d735e749930d1560071a1a1e2a8765396443d09bff83c69dad2fff07dc30a2ed212bff492e20aa6b2b790 languageName: node linkType: hard -"@typescript-eslint/utils@npm:7.10.0": - version: 7.10.0 - resolution: "@typescript-eslint/utils@npm:7.10.0" +"@typescript-eslint/utils@npm:7.12.0": + version: 7.12.0 + resolution: "@typescript-eslint/utils@npm:7.12.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" - "@typescript-eslint/scope-manager": "npm:7.10.0" - "@typescript-eslint/types": "npm:7.10.0" - "@typescript-eslint/typescript-estree": "npm:7.10.0" + "@typescript-eslint/scope-manager": "npm:7.12.0" + "@typescript-eslint/types": "npm:7.12.0" + "@typescript-eslint/typescript-estree": "npm:7.12.0" peerDependencies: eslint: ^8.56.0 - checksum: 10/62327b585295f9c3aa2508aefac639d562b6f7f270a229aa3a2af8dbd055f4a4d230a8facae75a8a53bb8222b0041162072d259add56b541f8bdfda8da36ea5f + checksum: 10/b66725cef2dcc4975714ea7528fa000cebd4e0b55bb6c43d7efe9ce21a6c7af5f8b2c49f1be3a5118c26666d4b0228470105741e78430e463b72f91fa62e0adf languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:7.10.0": - version: 7.10.0 - resolution: "@typescript-eslint/visitor-keys@npm:7.10.0" +"@typescript-eslint/visitor-keys@npm:7.12.0": + version: 7.12.0 + resolution: "@typescript-eslint/visitor-keys@npm:7.12.0" dependencies: - "@typescript-eslint/types": "npm:7.10.0" + "@typescript-eslint/types": "npm:7.12.0" eslint-visitor-keys: "npm:^3.4.3" - checksum: 10/44b555a075bdff38e3e13c454ceaac50aa2546635e81f907d1ea84822c8887487d1d6bb4ff690f627da9585dc19ad07e228847c162c30bb06c46fb119899d8cc + checksum: 10/5c03bbb68f6eb775005c83042da99de87513cdf9b5549c2ac30caf2c74dc9888cebec57d9eeb0dead8f63a57771288f59605c9a4d8aeec6b87b5390ac723cbd4 languageName: node linkType: hard @@ -2628,7 +2628,7 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^6.12.4, ajv@npm:^6.12.5, ajv@npm:~6.12.6": +"ajv@npm:^6.12.4, ajv@npm:^6.12.5": version: 6.12.6 resolution: "ajv@npm:6.12.6" dependencies: @@ -2652,6 +2652,18 @@ __metadata: languageName: node linkType: hard +"ajv@npm:~8.12.0": + version: 8.12.0 + resolution: "ajv@npm:8.12.0" + dependencies: + fast-deep-equal: "npm:^3.1.1" + json-schema-traverse: "npm:^1.0.0" + require-from-string: "npm:^2.0.2" + uri-js: "npm:^4.2.2" + checksum: 10/b406f3b79b5756ac53bfe2c20852471b08e122bc1ee4cde08ae4d6a800574d9cd78d60c81c69c63ff81e4da7cd0b638fafbb2303ae580d49cf1600b9059efb85 + languageName: node + linkType: hard + "ansi-escapes@npm:^4.2.1": version: 4.3.2 resolution: "ansi-escapes@npm:4.3.2" @@ -4411,20 +4423,20 @@ __metadata: linkType: hard "eslint-plugin-jsdoc@npm:^48.2.3": - version: 48.2.6 - resolution: "eslint-plugin-jsdoc@npm:48.2.6" + version: 48.2.7 + resolution: "eslint-plugin-jsdoc@npm:48.2.7" dependencies: - "@es-joy/jsdoccomment": "npm:~0.43.0" + "@es-joy/jsdoccomment": "npm:~0.43.1" are-docs-informative: "npm:^0.0.2" comment-parser: "npm:1.4.1" debug: "npm:^4.3.4" escape-string-regexp: "npm:^4.0.0" esquery: "npm:^1.5.0" - semver: "npm:^7.6.1" + semver: "npm:^7.6.2" spdx-expression-parse: "npm:^4.0.0" peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - checksum: 10/629a3f5cb77f52194da7d2ab2ee037d8bebcc0e4305e4819648ae76bb95a3c1e97aefcfaf210d29b67ffa36fccede6cbfa043f43916a2240fc259f97664d939f + checksum: 10/8d6762c1849f33a30cb5bb1bb93a90f9c54301c8ecde9c106a19bebac8b3c2d88aee30e67f7439c62ea399f0a4cb1c98e4b92545c78a60a69bf14e11ad99996d languageName: node linkType: hard @@ -5121,10 +5133,10 @@ __metadata: languageName: node linkType: hard -"function-bind@npm:^1.1.1": - version: 1.1.1 - resolution: "function-bind@npm:1.1.1" - checksum: 10/d83f2968030678f0b8c3f2183d63dcd969344eb8b55b4eb826a94ccac6de8b87c95bebffda37a6386c74f152284eb02956ff2c496897f35d32bdc2628ac68ac5 +"function-bind@npm:^1.1.1, function-bind@npm:^1.1.2": + version: 1.1.2 + resolution: "function-bind@npm:1.1.2" + checksum: 10/185e20d20f10c8d661d59aac0f3b63b31132d492e1b11fcc2a93cb2c47257ebaee7407c38513efd2b35cafdf972d9beb2ea4593c1e0f3bf8f2744836928d7454 languageName: node linkType: hard @@ -5610,6 +5622,15 @@ __metadata: languageName: node linkType: hard +"hasown@npm:^2.0.0": + version: 2.0.2 + resolution: "hasown@npm:2.0.2" + dependencies: + function-bind: "npm:^1.1.2" + checksum: 10/7898a9c1788b2862cf0f9c345a6bec77ba4a0c0983c7f19d610c382343d4f98fa260686b225dfb1f88393a66679d2ec58ee310c1d6868c081eda7918f32cc70a + languageName: node + linkType: hard + "he@npm:^1.2.0": version: 1.2.0 resolution: "he@npm:1.2.0" @@ -6105,12 +6126,12 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.1.0, is-core-module@npm:^2.9.0": - version: 2.11.0 - resolution: "is-core-module@npm:2.11.0" +"is-core-module@npm:^2.13.0": + version: 2.13.1 + resolution: "is-core-module@npm:2.13.1" dependencies: - has: "npm:^1.0.3" - checksum: 10/9b09ce78f1f281e20c596023e8464d51dfc93b5933bf23f00c002eafbebdaa766726be42bacfb4459c4cfe14569f0987db11fe6bc30d6e57985c9071a289966e + hasown: "npm:^2.0.0" + checksum: 10/d53bd0cc24b0a0351fb4b206ee3908f71b9bbf1c47e9c9e14e5f06d292af1663704d2abd7e67700d6487b2b7864e0d0f6f10a1edf1892864bdffcb197d1845a2 languageName: node linkType: hard @@ -7736,11 +7757,11 @@ __metadata: linkType: hard "mixpanel-browser@npm:^2.49.0": - version: 2.50.0 - resolution: "mixpanel-browser@npm:2.50.0" + version: 2.51.0 + resolution: "mixpanel-browser@npm:2.51.0" dependencies: - rrweb: "npm:2.0.0-alpha.4" - checksum: 10/68020c88ee0772c07add923e550de975938b16b3889d70c22f40e108a563efbaf2228262662752f65e6eb05382e0d97b9df23e1ec2590386dcaa4fe9551a87ad + rrweb: "npm:2.0.0-alpha.13" + checksum: 10/7a3f6ff405b47ef12da4501d557fa4dd4245bfa839a86ee505cc7e4d935bc67fe3a9f0dfc99862f3fcd2333cc9f24569b74e01cadedb45c078a9cffeebd158e6 languageName: node linkType: hard @@ -8342,7 +8363,7 @@ __metadata: languageName: node linkType: hard -"path-parse@npm:^1.0.6, path-parse@npm:^1.0.7": +"path-parse@npm:^1.0.7": version: 1.0.7 resolution: "path-parse@npm:1.0.7" checksum: 10/49abf3d81115642938a8700ec580da6e830dde670be21893c62f4e10bd7dd4c3742ddc603fe24f898cba7eb0c6bc1777f8d9ac14185d34540c6d4d80cd9cae8a @@ -8997,26 +9018,16 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.0.0, resolve@npm:^1.1.5, resolve@npm:^1.1.6, resolve@npm:^1.20.0, resolve@npm:^1.3.3, resolve@npm:~1.22.1": - version: 1.22.1 - resolution: "resolve@npm:1.22.1" +"resolve@npm:^1.0.0, resolve@npm:^1.1.5, resolve@npm:^1.1.6, resolve@npm:^1.20.0, resolve@npm:^1.3.3, resolve@npm:~1.22.1, resolve@npm:~1.22.2": + version: 1.22.8 + resolution: "resolve@npm:1.22.8" dependencies: - is-core-module: "npm:^2.9.0" + is-core-module: "npm:^2.13.0" path-parse: "npm:^1.0.7" supports-preserve-symlinks-flag: "npm:^1.0.0" bin: resolve: bin/resolve - checksum: 10/4adcfac33f0baf6fc46d6c3a11acfad5c9345eab8bb7280d65672dc40a9694ddab6d18be2feebccf6cfc581bedd7ebfa792f6bc86db1903a41d328c23161bd23 - languageName: node - linkType: hard - -"resolve@npm:~1.19.0": - version: 1.19.0 - resolution: "resolve@npm:1.19.0" - dependencies: - is-core-module: "npm:^2.1.0" - path-parse: "npm:^1.0.6" - checksum: 10/b0f326a85422ebc4db8524957990d49d89e028bd6c10f23f2e89db5ee923678c6c08eae596e594031a5cda20f1e19d4a371e22cd772907b0bcf3c932e2205753 + checksum: 10/c473506ee01eb45cbcfefb68652ae5759e092e6b0fb64547feadf9736a6394f258fbc6f88e00c5ca36d5477fbb65388b272432a3600fa223062e54333c156753 languageName: node linkType: hard @@ -9027,26 +9038,16 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@npm%3A^1.0.0#optional!builtin, resolve@patch:resolve@npm%3A^1.1.5#optional!builtin, resolve@patch:resolve@npm%3A^1.1.6#optional!builtin, resolve@patch:resolve@npm%3A^1.20.0#optional!builtin, resolve@patch:resolve@npm%3A^1.3.3#optional!builtin, resolve@patch:resolve@npm%3A~1.22.1#optional!builtin": - version: 1.22.1 - resolution: "resolve@patch:resolve@npm%3A1.22.1#optional!builtin::version=1.22.1&hash=c3c19d" +"resolve@patch:resolve@npm%3A^1.0.0#optional!builtin, resolve@patch:resolve@npm%3A^1.1.5#optional!builtin, resolve@patch:resolve@npm%3A^1.1.6#optional!builtin, resolve@patch:resolve@npm%3A^1.20.0#optional!builtin, resolve@patch:resolve@npm%3A^1.3.3#optional!builtin, resolve@patch:resolve@npm%3A~1.22.1#optional!builtin, resolve@patch:resolve@npm%3A~1.22.2#optional!builtin": + version: 1.22.8 + resolution: "resolve@patch:resolve@npm%3A1.22.8#optional!builtin::version=1.22.8&hash=c3c19d" dependencies: - is-core-module: "npm:^2.9.0" + is-core-module: "npm:^2.13.0" path-parse: "npm:^1.0.7" supports-preserve-symlinks-flag: "npm:^1.0.0" bin: resolve: bin/resolve - checksum: 10/551dd500765cce767c583747f5f21ceb51d437f539b01aee96d6ec39eb2c68a8ff5d646b083d690fe428a81329856bc1bbdb094379b8df4b3f10e7e1f6aa3839 - languageName: node - linkType: hard - -"resolve@patch:resolve@npm%3A~1.19.0#optional!builtin": - version: 1.19.0 - resolution: "resolve@patch:resolve@npm%3A1.19.0#optional!builtin::version=1.19.0&hash=c3c19d" - dependencies: - is-core-module: "npm:^2.1.0" - path-parse: "npm:^1.0.6" - checksum: 10/eb8853b1b7b9ef25f0156304c7c21e2a0d2b2ce247169282542e76565f460986e10adbb770eeb2549c06197fb546b433906cbf3700a3232c567aaaaa53490b88 + checksum: 10/f345cd37f56a2c0275e3fe062517c650bb673815d885e7507566df589375d165bbbf4bdb6aa95600a9bc55f4744b81f452b5a63f95b9f10a72787dba3c90890a languageName: node linkType: hard @@ -9104,12 +9105,12 @@ __metadata: languageName: node linkType: hard -"rrdom@npm:^0.1.7": - version: 0.1.7 - resolution: "rrdom@npm:0.1.7" +"rrdom@npm:^2.0.0-alpha.13": + version: 2.0.0-alpha.14 + resolution: "rrdom@npm:2.0.0-alpha.14" dependencies: - rrweb-snapshot: "npm:^2.0.0-alpha.4" - checksum: 10/73be5e8538002638867de7fa51be705f5f5ec90f842a8cb62ed25543ecef69cb4a1efe5e654ba455b7be627aefc12bb276c03823ef084b0d2985d18c825b5ad5 + rrweb-snapshot: "npm:^2.0.0-alpha.14" + checksum: 10/01eba890cf839ee8a3b0d3e08774dc03dbb1f44b39be2c38a5857ca7bed3f58a79e1782e95e7eaf434143d17cac100576e9894b72adadbb24f5a8578f81f96fe languageName: node linkType: hard @@ -9127,26 +9128,26 @@ __metadata: languageName: node linkType: hard -"rrweb-snapshot@npm:^2.0.0-alpha.13, rrweb-snapshot@npm:^2.0.0-alpha.4": - version: 2.0.0-alpha.13 - resolution: "rrweb-snapshot@npm:2.0.0-alpha.13" - checksum: 10/eca4b895e498efae903cff15fe963c1a093b52eb5d02bc0ebfac25a625013fa7ae5b9f3078632bca73b62dc09a62ec1746550a89fe4a30c9eb5119f1b90a4be8 +"rrweb-snapshot@npm:^2.0.0-alpha.13, rrweb-snapshot@npm:^2.0.0-alpha.14": + version: 2.0.0-alpha.14 + resolution: "rrweb-snapshot@npm:2.0.0-alpha.14" + checksum: 10/4ce89f7850a9222b3bba3ec713061c042472f3bde3050082c6970151611e94ea2fe2cf2ef8f41b98b4ba2dc6cb1e982ccaf60456e9e2423cc8a916ba96360ce2 languageName: node linkType: hard -"rrweb@npm:2.0.0-alpha.4": - version: 2.0.0-alpha.4 - resolution: "rrweb@npm:2.0.0-alpha.4" +"rrweb@npm:2.0.0-alpha.13": + version: 2.0.0-alpha.13 + resolution: "rrweb@npm:2.0.0-alpha.13" dependencies: - "@rrweb/types": "npm:^2.0.0-alpha.4" + "@rrweb/types": "npm:^2.0.0-alpha.13" "@types/css-font-loading-module": "npm:0.0.7" "@xstate/fsm": "npm:^1.4.0" base64-arraybuffer: "npm:^1.0.1" fflate: "npm:^0.4.4" mitt: "npm:^3.0.0" - rrdom: "npm:^0.1.7" - rrweb-snapshot: "npm:^2.0.0-alpha.4" - checksum: 10/1dab0a682933d1be2086ff02e630c9800b90aa37a353bbf9fb04190dd3f907aa883c2f5dbfdc261b41cfa4f6590e5091ba65a16a1299ec4e2a00b23c2c7e78d0 + rrdom: "npm:^2.0.0-alpha.13" + rrweb-snapshot: "npm:^2.0.0-alpha.13" + checksum: 10/5c677b14baea186b72a41ad2ef2662cd92abfa505633a647a5d318ff55f56f133840c3a45decf750defe564cc5c037c14f8f0b8038ea8d5b4ec31b34c2722623 languageName: node linkType: hard @@ -9265,7 +9266,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.6.1": +"semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.6.2": version: 7.6.2 resolution: "semver@npm:7.6.2" bin: @@ -10187,8 +10188,8 @@ __metadata: linkType: hard "ts-jest@npm:^29.1.2": - version: 29.1.3 - resolution: "ts-jest@npm:29.1.3" + version: 29.1.4 + resolution: "ts-jest@npm:29.1.4" dependencies: bs-logger: "npm:0.x" fast-json-stable-stringify: "npm:2.x" @@ -10218,7 +10219,7 @@ __metadata: optional: true bin: ts-jest: cli.js - checksum: 10/cc1f608bb5859e112ffb8a6d84ddb5c20954b7ec8c89a8c7f95e373368d8946b5843594fe7779078eec2b7e825962848f1a1ba7a44c71b8a08ed4e75d3a3f8d8 + checksum: 10/3103c0e2f9937ae6bb51918105883565bb2d11cae1121ae20aedd1c4374f843341463a4a1986e02a958d119be0d3a9b996d761bc4aac85152a29385e609fed3c languageName: node linkType: hard From bd358c31b85855ed2a15d2fa97c27091bb147976 Mon Sep 17 00:00:00 2001 From: Nils Petter Fremming <35219649+nilscognite@users.noreply.github.com> Date: Tue, 4 Jun 2024 12:21:33 +0200 Subject: [PATCH 2/2] (feat) Adding unit to measurments + fixing picking on the measurment views + Renaming (#4563) * Generalize more on Commands * Update MeasureBoxDomainObject.ts * Update CommandButton.tsx * Update and fix react stuff * Make implement line intersection * Add comment * Add a simple unit system * The final touch. Clean up some command issues and made it simpler * Smaller adjustments --- react-components/package.json | 4 +- .../architecture/base/commands/BaseCommand.ts | 35 ++++-- .../architecture/base/commands/BaseTool.ts | 4 - .../base/commands/NavigationTool.ts | 4 +- .../CopyToClipboardCommand.ts | 57 ++++++++++ .../DeleteDomainObjectCommand.ts | 42 +++++++ .../base/concreteCommands/FitViewCommand.ts | 4 +- .../SetFlexibleControlsTypeCommand.ts | 9 +- .../ToogleMetricUnitsCommand.ts | 35 ++++++ .../base/domainObjects/DomainObject.ts | 15 ++- .../base/domainObjects/RootDomainObject.ts | 10 ++ .../base/domainObjectsHelpers/Changes.ts | 1 + .../base/domainObjectsHelpers/PanelInfo.ts | 45 ++------ .../base/domainObjectsHelpers/Quantity.ts | 11 ++ .../reactUpdaters/DomainObjectPanelUpdater.ts | 2 +- .../base/renderTarget/UnitSystem.ts | 80 ++++++++++++++ .../base/utilities/TranslateKey.ts | 9 ++ .../geometry/ClosestGeometryFinder.ts | 62 +++++++++++ .../concrete/axis/SetAxisVisibleCommand.ts | 8 +- .../boxDomainObject/MeasureBoxDomainObject.ts | 35 +++--- .../boxDomainObject/MeasureBoxView.ts | 32 ++++-- .../MeasureLineDomainObject.ts | 14 +-- .../boxDomainObject/MeasureLineView.ts | 83 +++++++++++++- .../concrete/boxDomainObject/MeasureType.ts | 4 +- .../boxDomainObject/MeasurementTool.ts | 9 +- .../boxDomainObject/SetCropBoxCommand.ts | 8 +- .../SetMeasurmentTypeCommand.ts | 9 +- .../ShowMeasurmentsOnTopCommand.ts | 8 +- .../ExampleDomainObject.ts | 13 ++- .../exampleDomainObject/ExampleTool.ts | 6 +- .../commands/DeleteAllExamplesCommand.ts | 4 +- .../commands/ResetAllExamplesCommand.ts | 4 +- .../commands/ShowAllExamplesCommand.ts | 8 +- .../SetTerrainVisibleCommand.ts | 4 +- .../UpdateTerrainCommand.ts | 4 +- .../components/Architecture/CommandButton.tsx | 47 ++++++-- .../Architecture/DomainObjectPanel.tsx | 104 ++++++++---------- .../components/Architecture/RevealButtons.tsx | 14 +-- .../src/components/Architecture/Toolbar.tsx | 19 +--- .../RevealToolbar/SetFlexibleControlsType.tsx | 3 +- react-components/yarn.lock | 12 +- 41 files changed, 633 insertions(+), 248 deletions(-) create mode 100644 react-components/src/architecture/base/concreteCommands/CopyToClipboardCommand.ts create mode 100644 react-components/src/architecture/base/concreteCommands/DeleteDomainObjectCommand.ts create mode 100644 react-components/src/architecture/base/concreteCommands/ToogleMetricUnitsCommand.ts create mode 100644 react-components/src/architecture/base/domainObjectsHelpers/Quantity.ts create mode 100644 react-components/src/architecture/base/renderTarget/UnitSystem.ts create mode 100644 react-components/src/architecture/base/utilities/TranslateKey.ts create mode 100644 react-components/src/architecture/base/utilities/geometry/ClosestGeometryFinder.ts diff --git a/react-components/package.json b/react-components/package.json index 57dd5426459..035e6fd43c9 100644 --- a/react-components/package.json +++ b/react-components/package.json @@ -29,7 +29,7 @@ "sort-keys": "cdf-i18n-utils-cli sort-local-keys --namespace reveal-react-components --path ./src/common/i18n" }, "peerDependencies": { - "@cognite/cogs.js": ">=9", + "@cognite/cogs.js": ">=9.84.3", "@cognite/reveal": "4.14.5", "react": ">=18", "react-dom": ">=18", @@ -43,7 +43,7 @@ "devDependencies": { "@cognite/cdf-i18n-utils": "^0.7.5", "@cognite/cdf-utilities": "^3.6.0", - "@cognite/cogs.js": "^9.3.0", + "@cognite/cogs.js": "^9.84.3", "@cognite/reveal": "^4.14.5", "@cognite/sdk": "^9.13.0", "@playwright/test": "^1.43.1", diff --git a/react-components/src/architecture/base/commands/BaseCommand.ts b/react-components/src/architecture/base/commands/BaseCommand.ts index 04ee863126d..a01bd891b0d 100644 --- a/react-components/src/architecture/base/commands/BaseCommand.ts +++ b/react-components/src/architecture/base/commands/BaseCommand.ts @@ -2,31 +2,43 @@ * Copyright 2024 Cognite AS */ +import { type TranslateKey } from '../utilities/TranslateKey'; import { clear, remove } from '../utilities/extensions/arrayExtensions'; type UpdateDelegate = (command: BaseCommand) => void; -export type Tooltip = { - key: string; - fallback?: string; -}; - /** * Base class for all command and tools. Thses are object that can do a * user interaction with the system. It also have enough information to * generate the UI for the command. */ + export abstract class BaseCommand { + private static _counter: number = 0; // Counter for the unique index + // ================================================== // INSTANCE FIELDS // ================================================== private readonly _listeners: UpdateDelegate[] = []; + // Unique index for the command, used by in React to force rerender + // when the command changes for a button. + public readonly _uniqueIndex: number; + + public get uniqueIndex(): number { + return this._uniqueIndex; + } + // ================================================== // VIRTUAL METHODS (To be override) // ================================================= + constructor() { + BaseCommand._counter++; + this._uniqueIndex = BaseCommand._counter; + } + public get name(): string { return this.tooltip.fallback ?? this.tooltip.key; } @@ -35,7 +47,7 @@ export abstract class BaseCommand { return undefined; } - public get tooltip(): Tooltip { + public get tooltip(): TranslateKey { return { key: '' }; } @@ -51,11 +63,18 @@ export abstract class BaseCommand { return this.isEnabled; } - public get isCheckable(): boolean { + public get isChecked(): boolean { return false; } - public get isChecked(): boolean { + /** + * Gets a value indicating whether the command has data, for instance a reference + * to a specific domain object. Then the command cannot be reused or shared in the user interface. + * These command will not be added to the commandsController for updating, so update will + * not be done automatically. Typically used when the command is created for a specific domain object + * in the DomainObjectPanel. + */ + public get hasData(): boolean { return false; } diff --git a/react-components/src/architecture/base/commands/BaseTool.ts b/react-components/src/architecture/base/commands/BaseTool.ts index 6e5aced0ce0..3c29a71d546 100644 --- a/react-components/src/architecture/base/commands/BaseTool.ts +++ b/react-components/src/architecture/base/commands/BaseTool.ts @@ -30,10 +30,6 @@ export abstract class BaseTool extends RenderTargetCommand { // OVERRIDES // ================================================= - public override get isCheckable(): boolean { - return true; - } - public override get isChecked(): boolean { return this.renderTarget.commandsController.activeTool === this; } diff --git a/react-components/src/architecture/base/commands/NavigationTool.ts b/react-components/src/architecture/base/commands/NavigationTool.ts index fcd2b0266c3..d3bc621240c 100644 --- a/react-components/src/architecture/base/commands/NavigationTool.ts +++ b/react-components/src/architecture/base/commands/NavigationTool.ts @@ -4,8 +4,8 @@ */ import { BaseTool } from './BaseTool'; -import { type Tooltip } from './BaseCommand'; import { type IFlexibleCameraManager } from '@cognite/reveal'; +import { type TranslateKey } from '../utilities/TranslateKey'; /** * Represents a tool navigation tool used for camera manipulation. @@ -32,7 +32,7 @@ export class NavigationTool extends BaseTool { return 'Grab'; } - public override get tooltip(): Tooltip { + public override get tooltip(): TranslateKey { return { key: 'NAVIGATION', fallback: 'Navigation' }; } diff --git a/react-components/src/architecture/base/concreteCommands/CopyToClipboardCommand.ts b/react-components/src/architecture/base/concreteCommands/CopyToClipboardCommand.ts new file mode 100644 index 00000000000..430f25e6274 --- /dev/null +++ b/react-components/src/architecture/base/concreteCommands/CopyToClipboardCommand.ts @@ -0,0 +1,57 @@ +/*! + * Copyright 2024 Cognite AS + * BaseTool: Base class for the tool are used to interact with the render target. + */ + +import { BaseCommand } from '../commands/BaseCommand'; +import { type TranslateKey } from '../utilities/TranslateKey'; + +type GetStringDelegate = () => string; + +export class CopyToClipboardCommand extends BaseCommand { + private readonly _getString: GetStringDelegate; + + // ================================================== + // CONSTRUCTOR + // ================================================== + + public constructor(getString: GetStringDelegate) { + super(); + this._getString = getString; + } + + // ================================================== + // OVERRIDES + // ================================================== + + public override get tooltip(): TranslateKey { + return { key: 'COPY_TO_CLIPBOARD', fallback: 'Copy to clipboard' }; + } + + public override get icon(): string { + return 'Copy'; + } + + public override get isEnabled(): boolean { + return this._getString !== undefined; + } + + public override get hasData(): boolean { + return true; + } + + protected override invokeCore(): boolean { + if (this._getString === undefined) { + return false; + } + navigator.clipboard + .writeText(this._getString()) + .then((_result) => { + return true; + }) + .catch((error) => { + console.error(error); + }); + return true; + } +} diff --git a/react-components/src/architecture/base/concreteCommands/DeleteDomainObjectCommand.ts b/react-components/src/architecture/base/concreteCommands/DeleteDomainObjectCommand.ts new file mode 100644 index 00000000000..76293d36f48 --- /dev/null +++ b/react-components/src/architecture/base/concreteCommands/DeleteDomainObjectCommand.ts @@ -0,0 +1,42 @@ +/*! + * Copyright 2024 Cognite AS + * BaseTool: Base class for the tool are used to interact with the render target. + */ + +import { BaseCommand } from '../commands/BaseCommand'; +import { type TranslateKey } from '../utilities/TranslateKey'; +import { type DomainObject } from '../domainObjects/DomainObject'; + +export class DeleteDomainObjectCommand extends BaseCommand { + private readonly _domainObject: DomainObject | undefined = undefined; + public constructor(domainObject: DomainObject) { + super(); + this._domainObject = domainObject; + } + // ================================================== + // OVERRIDES + // ================================================== + + public override get tooltip(): TranslateKey { + return { key: 'DELETE', fallback: 'Delete' }; + } + + public override get icon(): string { + return 'Delete'; + } + + public override get isEnabled(): boolean { + return this._domainObject !== undefined && this._domainObject.canBeRemoved; + } + + public override get hasData(): boolean { + return true; + } + + protected override invokeCore(): boolean { + if (this._domainObject === undefined) { + return false; + } + return this._domainObject.removeInteractive(); + } +} diff --git a/react-components/src/architecture/base/concreteCommands/FitViewCommand.ts b/react-components/src/architecture/base/concreteCommands/FitViewCommand.ts index a3b1cfa64cb..7301eb47b85 100644 --- a/react-components/src/architecture/base/concreteCommands/FitViewCommand.ts +++ b/react-components/src/architecture/base/concreteCommands/FitViewCommand.ts @@ -3,14 +3,14 @@ */ import { RenderTargetCommand } from '../commands/RenderTargetCommand'; -import { type Tooltip } from '../commands/BaseCommand'; +import { type TranslateKey } from '../utilities/TranslateKey'; export class FitViewCommand extends RenderTargetCommand { public override get icon(): string { return 'ExpandAlternative'; } - public override get tooltip(): Tooltip { + public override get tooltip(): TranslateKey { return { key: 'FIT_VIEW_TOOLTIP', fallback: 'Fit view' }; } diff --git a/react-components/src/architecture/base/concreteCommands/SetFlexibleControlsTypeCommand.ts b/react-components/src/architecture/base/concreteCommands/SetFlexibleControlsTypeCommand.ts index 7c4056a1735..2dfbfa7b45f 100644 --- a/react-components/src/architecture/base/concreteCommands/SetFlexibleControlsTypeCommand.ts +++ b/react-components/src/architecture/base/concreteCommands/SetFlexibleControlsTypeCommand.ts @@ -5,7 +5,8 @@ import { RenderTargetCommand } from '../commands/RenderTargetCommand'; import { type RevealRenderTarget } from '../renderTarget/RevealRenderTarget'; import { FlexibleControlsType } from '@cognite/reveal'; -import { type BaseCommand, type Tooltip } from '../commands/BaseCommand'; +import { type BaseCommand } from '../commands/BaseCommand'; +import { type TranslateKey } from '../utilities/TranslateKey'; export class SetFlexibleControlsTypeCommand extends RenderTargetCommand { private readonly _controlsType: FlexibleControlsType; @@ -49,7 +50,7 @@ export class SetFlexibleControlsTypeCommand extends RenderTargetCommand { } } - public override get tooltip(): Tooltip { + public override get tooltip(): TranslateKey { switch (this._controlsType) { case FlexibleControlsType.FirstPerson: return { key: 'CONTROLS_TYPE_FIRST_PERSON', fallback: 'Fly' }; @@ -62,10 +63,6 @@ export class SetFlexibleControlsTypeCommand extends RenderTargetCommand { } } - public override get isCheckable(): boolean { - return true; - } - public override get isChecked(): boolean { const { renderTarget } = this; const { flexibleCameraManager } = renderTarget; diff --git a/react-components/src/architecture/base/concreteCommands/ToogleMetricUnitsCommand.ts b/react-components/src/architecture/base/concreteCommands/ToogleMetricUnitsCommand.ts new file mode 100644 index 00000000000..531a2035bc9 --- /dev/null +++ b/react-components/src/architecture/base/concreteCommands/ToogleMetricUnitsCommand.ts @@ -0,0 +1,35 @@ +/*! + * Copyright 2024 Cognite AS + * BaseTool: Base class for the tool are used to interact with the render target. + */ + +import { RenderTargetCommand } from '../commands/RenderTargetCommand'; +import { Changes } from '../domainObjectsHelpers/Changes'; +import { type TranslateKey } from '../utilities/TranslateKey'; + +export class ToogleMetricUnitsCommand extends RenderTargetCommand { + // ================================================== + // OVERRIDES of BaseCommand + // ================================================== + + public override get icon(): string { + return 'RulerAlternative'; + } + + public override get tooltip(): TranslateKey { + return { key: 'TOGGLE_METRIC_UNITS', fallback: 'm/ft' }; // Note: m/ft do not need to be translated! + } + + public override get isChecked(): boolean { + const { renderTarget } = this; + return renderTarget.rootDomainObject.unitSystem.isMetric; + } + + protected override invokeCore(): boolean { + const { renderTarget } = this; + const unitSystem = renderTarget.rootDomainObject.unitSystem; + unitSystem.isMetric = !unitSystem.isMetric; + renderTarget.rootDomainObject.notifyRecursive(Changes.unit); + return true; + } +} diff --git a/react-components/src/architecture/base/domainObjects/DomainObject.ts b/react-components/src/architecture/base/domainObjects/DomainObject.ts index 91c47deba95..484cb58c1f2 100644 --- a/react-components/src/architecture/base/domainObjects/DomainObject.ts +++ b/react-components/src/architecture/base/domainObjects/DomainObject.ts @@ -256,10 +256,13 @@ export abstract class DomainObject { ) ) { if (this.root instanceof RootDomainObject) { + // Update all the command buttons (in the toolbars). + // This goes fast and will not slow the system down. CommandsUpdater.update(this.root.renderTarget); } } if (this.hasPanelInfo) { + // Update the DomainObjectPanel if any DomainObjectPanelUpdater.notify(this, change); } } @@ -461,9 +464,16 @@ export abstract class DomainObject { } public get root(): DomainObject { + // Returns the root of the hierarcy, regardless what it is return this.parent === undefined ? this : this.parent.root; } + public get rootDomainObject(): RootDomainObject | undefined { + // Returns a RootDomainObject only if the root is a RootDomainObject, otherwise undefined + const root = this.root; + return root instanceof RootDomainObject ? root : undefined; + } + public get hasParent(): boolean { return this._parent !== undefined; } @@ -692,9 +702,9 @@ export abstract class DomainObject { return true; } - public removeInteractive(checkCanBeDeleted = true): void { + public removeInteractive(checkCanBeDeleted = true): boolean { if (checkCanBeDeleted && !this.canBeRemoved) { - return; + return false; } for (const child of this.children) { child.removeInteractive(false); // If parent can be removed, so the children also @@ -703,6 +713,7 @@ export abstract class DomainObject { this.notify(Changes.deleted); this.remove(); parent?.notify(Changes.childDeleted); + return true; } public sortChildrenByName(): void { diff --git a/react-components/src/architecture/base/domainObjects/RootDomainObject.ts b/react-components/src/architecture/base/domainObjects/RootDomainObject.ts index 14972f804da..70e336bd2af 100644 --- a/react-components/src/architecture/base/domainObjects/RootDomainObject.ts +++ b/react-components/src/architecture/base/domainObjects/RootDomainObject.ts @@ -3,10 +3,20 @@ */ import { type RevealRenderTarget } from '../renderTarget/RevealRenderTarget'; +import { UnitSystem } from '../renderTarget/UnitSystem'; import { DomainObject } from './DomainObject'; export class RootDomainObject extends DomainObject { + // ================================================== + // INSTANCE FIELDS + // ================================================== + private readonly _renderTarget: RevealRenderTarget; + public readonly unitSystem = new UnitSystem(); + + // ================================================== + // INSTANCE PROPERTIES + // ================================================== public get renderTarget(): RevealRenderTarget { return this._renderTarget; diff --git a/react-components/src/architecture/base/domainObjectsHelpers/Changes.ts b/react-components/src/architecture/base/domainObjectsHelpers/Changes.ts index 883275159eb..bf42d4d713b 100644 --- a/react-components/src/architecture/base/domainObjectsHelpers/Changes.ts +++ b/react-components/src/architecture/base/domainObjectsHelpers/Changes.ts @@ -16,6 +16,7 @@ export class Changes { public static readonly icon: symbol = Symbol('icon'); public static readonly colorMap: symbol = Symbol('colorMap'); public static readonly renderStyle: symbol = Symbol('renderStyle'); + public static readonly unit: symbol = Symbol('unit'); // Something in the geometry changed public static readonly geometry: symbol = Symbol('geometry'); diff --git a/react-components/src/architecture/base/domainObjectsHelpers/PanelInfo.ts b/react-components/src/architecture/base/domainObjectsHelpers/PanelInfo.ts index c1897bcc4a2..11e3c7b4dfe 100644 --- a/react-components/src/architecture/base/domainObjectsHelpers/PanelInfo.ts +++ b/react-components/src/architecture/base/domainObjectsHelpers/PanelInfo.ts @@ -2,21 +2,15 @@ * Copyright 2024 Cognite AS */ -export enum NumberType { - Unitless, - Length, - Area, - Volume, - Degrees -} +import { type TranslateKey } from '../utilities/TranslateKey'; +import { Quantity } from './Quantity'; type PanelItemProps = { - key?: string; + key: string; fallback?: string; icon?: string; value?: number; - numberType?: NumberType; - decimals?: number; + quantity?: Quantity; }; export class PanelInfo { @@ -37,7 +31,7 @@ export class PanelItem { public key?: string; public fallback?: string; - constructor(props: PanelItemProps) { + constructor(props: TranslateKey) { this.key = props.key; this.fallback = props.fallback; } @@ -46,37 +40,12 @@ export class PanelItem { export class NumberPanelItem extends PanelItem { public icon: string | undefined = undefined; public value: number; - public numberType: NumberType; - public decimals: number; + public quantity: Quantity; constructor(props: PanelItemProps) { super(props); this.icon = props.icon; this.value = props.value ?? 0; - this.numberType = props.numberType ?? NumberType.Unitless; - this.decimals = props.decimals ?? 2; - } - - public get valueAsString(): string { - return this.value.toFixed(this.decimals); - } - - public get unit(): string { - return getUnit(this.numberType); - } -} - -function getUnit(numberType: NumberType): string { - switch (numberType) { - case NumberType.Unitless: - return ''; - case NumberType.Length: - return 'm'; - case NumberType.Area: - return 'm²'; - case NumberType.Volume: - return 'm³'; - case NumberType.Degrees: - return '°'; + this.quantity = props.quantity ?? Quantity.Unitless; } } diff --git a/react-components/src/architecture/base/domainObjectsHelpers/Quantity.ts b/react-components/src/architecture/base/domainObjectsHelpers/Quantity.ts new file mode 100644 index 00000000000..f0a90367961 --- /dev/null +++ b/react-components/src/architecture/base/domainObjectsHelpers/Quantity.ts @@ -0,0 +1,11 @@ +/*! + * Copyright 2024 Cognite AS + */ + +export enum Quantity { + Unitless, + Length, + Area, + Volume, + Degrees +} diff --git a/react-components/src/architecture/base/reactUpdaters/DomainObjectPanelUpdater.ts b/react-components/src/architecture/base/reactUpdaters/DomainObjectPanelUpdater.ts index 6463ff1c495..46138a22ec7 100644 --- a/react-components/src/architecture/base/reactUpdaters/DomainObjectPanelUpdater.ts +++ b/react-components/src/architecture/base/reactUpdaters/DomainObjectPanelUpdater.ts @@ -43,7 +43,7 @@ export class DomainObjectPanelUpdater { if (change.isChanged(Changes.deleted)) { this.hide(); } - if (change.isChanged(Changes.selected, Changes.geometry, Changes.naming)) { + if (change.isChanged(Changes.selected, Changes.geometry, Changes.naming, Changes.unit)) { this.update(domainObject); } } else { diff --git a/react-components/src/architecture/base/renderTarget/UnitSystem.ts b/react-components/src/architecture/base/renderTarget/UnitSystem.ts new file mode 100644 index 00000000000..b1be8ad2ca2 --- /dev/null +++ b/react-components/src/architecture/base/renderTarget/UnitSystem.ts @@ -0,0 +1,80 @@ +/*! + * Copyright 2024 Cognite AS + */ + +import { Quantity } from '../domainObjectsHelpers/Quantity'; + +const METER_TO_FT = 1 / 0.3048; + +/** + * Represents a unit system that handles conversions and formatting of values based on the system's metric setting. + * This is a very basic unit system, but could be extended in the future to cover all use cases. + * Todo: Should use CogniteClient.units to get the unit and conversion factors + */ +export class UnitSystem { + // ================================================== + // INSTANCE FIELDS + // ================================================== + + public isMetric: boolean = true; + + // ================================================== + // INSTANCE METHODS: Convert number + // ================================================== + + public convertToUnit(value: number, quantity: Quantity): number { + if (!this.isMetric) { + switch (quantity) { + case Quantity.Length: + return value * METER_TO_FT; + case Quantity.Area: + return value * METER_TO_FT * METER_TO_FT; + case Quantity.Volume: + return value * METER_TO_FT * METER_TO_FT * METER_TO_FT; + } + } + return value; + } + + // ================================================== + // INSTANCE METHODS: Convert number to string + // ================================================== + + public toString(value: number, quantity: Quantity): string { + const fractionDigits = this.getFractionDigits(quantity); + const convertedValue = this.convertToUnit(value, quantity); + return convertedValue.toFixed(fractionDigits); + } + + public toStringWithUnit(value: number, quantity: Quantity): string { + return `${this.toString(value, quantity)} ${this.getUnit(quantity)}`; + } + + // ================================================== + // INSTANCE METHODS: Getters + // ================================================== + + public getUnit(quantity: Quantity): string { + switch (quantity) { + case Quantity.Unitless: + return ''; + case Quantity.Length: + return this.isMetric ? 'm' : 'ft'; + case Quantity.Area: + return this.isMetric ? 'm²' : 'ft²'; + case Quantity.Volume: + return this.isMetric ? 'm³' : 'ft³'; + case Quantity.Degrees: + return '°'; + } + } + + private getFractionDigits(quantity: Quantity): number { + switch (quantity) { + case Quantity.Degrees: + return 1; + default: + return 2; + } + } +} diff --git a/react-components/src/architecture/base/utilities/TranslateKey.ts b/react-components/src/architecture/base/utilities/TranslateKey.ts new file mode 100644 index 00000000000..54e05e2dc3e --- /dev/null +++ b/react-components/src/architecture/base/utilities/TranslateKey.ts @@ -0,0 +1,9 @@ +/*! + * Copyright 2024 Cognite AS + */ +export type TranslateDelegate = (key: string, fallback?: string) => string; + +export type TranslateKey = { + key: string; + fallback?: string; +}; diff --git a/react-components/src/architecture/base/utilities/geometry/ClosestGeometryFinder.ts b/react-components/src/architecture/base/utilities/geometry/ClosestGeometryFinder.ts new file mode 100644 index 00000000000..153a4280c96 --- /dev/null +++ b/react-components/src/architecture/base/utilities/geometry/ClosestGeometryFinder.ts @@ -0,0 +1,62 @@ +/*! + * Copyright 2024 Cognite AS + */ + +import { type Vector3 } from 'three'; + +export class ClosestGeometryFinder { + private closestGeometry: T | undefined = undefined; + private readonly origin: Vector3; + private minDistanceSquared = Number.MAX_VALUE; + + public constructor(origin: Vector3) { + this.origin = origin; + this.clear(); + } + + public set minDistance(value: number) { + this.minDistanceSquared = value * value; + } + + public get minDistance(): number { + return Math.sqrt(this.minDistanceSquared); + } + + public getClosestGeometry(): T | undefined { + return this.closestGeometry; + } + + public setClosestGeometry(geometry: T): void { + this.closestGeometry = geometry; + } + + public isClosest(point: Vector3): boolean { + const distanceSquared = point.distanceToSquared(this.origin); + if (distanceSquared > this.minDistanceSquared) { + return false; + } + this.minDistanceSquared = distanceSquared; + return true; + } + + public clear(): void { + this.closestGeometry = undefined; + this.minDistanceSquared = Number.MAX_VALUE; + } + + public add(point: Vector3, geometry: T): boolean { + if (!this.isClosest(point)) { + return false; + } + this.setClosestGeometry(geometry); + return true; + } + + public addLazy(point: Vector3, geometryCreator: () => T): boolean { + if (!this.isClosest(point)) { + return false; + } + this.setClosestGeometry(geometryCreator()); + return true; + } +} diff --git a/react-components/src/architecture/concrete/axis/SetAxisVisibleCommand.ts b/react-components/src/architecture/concrete/axis/SetAxisVisibleCommand.ts index 80882314e15..4e15bc94b67 100644 --- a/react-components/src/architecture/concrete/axis/SetAxisVisibleCommand.ts +++ b/react-components/src/architecture/concrete/axis/SetAxisVisibleCommand.ts @@ -4,7 +4,7 @@ */ import { RenderTargetCommand } from '../../base/commands/RenderTargetCommand'; -import { type Tooltip } from '../../base/commands/BaseCommand'; +import { type TranslateKey } from '../../base/utilities/TranslateKey'; import { AxisDomainObject } from './AxisDomainObject'; export class SetAxisVisibleCommand extends RenderTargetCommand { @@ -12,7 +12,7 @@ export class SetAxisVisibleCommand extends RenderTargetCommand { // OVERRIDES // ================================================== - public override get tooltip(): Tooltip { + public override get tooltip(): TranslateKey { return { key: 'SHOW_OR_HIDE_AXIS', fallback: 'Show or hide axis' }; } @@ -24,10 +24,6 @@ export class SetAxisVisibleCommand extends RenderTargetCommand { return true; } - public override get isCheckable(): boolean { - return true; - } - public override get isChecked(): boolean { const { renderTarget, rootDomainObject } = this; diff --git a/react-components/src/architecture/concrete/boxDomainObject/MeasureBoxDomainObject.ts b/react-components/src/architecture/concrete/boxDomainObject/MeasureBoxDomainObject.ts index 155991050d6..2817436b7a9 100644 --- a/react-components/src/architecture/concrete/boxDomainObject/MeasureBoxDomainObject.ts +++ b/react-components/src/architecture/concrete/boxDomainObject/MeasureBoxDomainObject.ts @@ -15,13 +15,13 @@ import { type BoxPickInfo } from '../../base/utilities/box/BoxPickInfo'; import { type BaseDragger } from '../../base/domainObjectsHelpers/BaseDragger'; import { MeasureBoxDragger } from './MeasureBoxDragger'; import { MeasureDomainObject } from './MeasureDomainObject'; -import { NumberType, PanelInfo } from '../../base/domainObjectsHelpers/PanelInfo'; +import { PanelInfo } from '../../base/domainObjectsHelpers/PanelInfo'; import { radToDeg } from 'three/src/math/MathUtils.js'; import { type CreateDraggerProps } from '../../base/domainObjects/VisualDomainObject'; import { Range3 } from '../../base/utilities/geometry/Range3'; -import { RootDomainObject } from '../../base/domainObjects/RootDomainObject'; import { CDF_TO_VIEWER_TRANSFORMATION } from '@cognite/reveal'; import { type DomainObjectChange } from '../../base/domainObjectsHelpers/DomainObjectChange'; +import { Quantity } from '../../base/domainObjectsHelpers/Quantity'; export const MIN_BOX_SIZE = 0.01; @@ -107,31 +107,36 @@ export class MeasureBoxDomainObject extends MeasureDomainObject { break; } if (isFinished || isValidSize(this.size.x)) { - add('MEASUREMENTS_LENGTH', 'Length', this.size.x, NumberType.Length); + add('MEASUREMENTS_LENGTH', 'Length', this.size.x, Quantity.Length); } if (measureType !== MeasureType.VerticalArea && (isFinished || isValidSize(this.size.y))) { - add('MEASUREMENTS_DEPTH', 'Depth', this.size.y, NumberType.Length); + add('MEASUREMENTS_DEPTH', 'Depth', this.size.y, Quantity.Length); } if (measureType !== MeasureType.HorizontalArea && (isFinished || isValidSize(this.size.z))) { - add('MEASUREMENTS_HEIGHT', 'Height', this.size.z, NumberType.Length); + add('MEASUREMENTS_HEIGHT', 'Height', this.size.z, Quantity.Length); } if (measureType !== MeasureType.Volume && (isFinished || this.hasArea)) { - add('MEASUREMENTS_AREA', 'Area', this.area, NumberType.Area); + add('MEASUREMENTS_AREA', 'Area', this.area, Quantity.Area); } if (measureType === MeasureType.Volume && (isFinished || this.hasHorizontalArea)) { - add('MEASUREMENTS_HORIZONTAL_AREA', 'Horizontal area', this.horizontalArea, NumberType.Area); + add('MEASUREMENTS_HORIZONTAL_AREA', 'Horizontal area', this.horizontalArea, Quantity.Area); } if (measureType === MeasureType.Volume && (isFinished || this.hasVolume)) { - add('MEASUREMENTS_VOLUME', 'Volume', this.volume, NumberType.Volume); + add('MEASUREMENTS_VOLUME', 'Volume', this.volume, Quantity.Volume); } // I forgot to add text for rotation angle before the deadline, so I used a icon instead. if (this.zRotation !== 0 && isFinished) { - info.add({ icon: 'Angle', value: radToDeg(this.zRotation), numberType: NumberType.Degrees }); + info.add({ + key: '', + icon: 'Angle', + value: radToDeg(this.zRotation), + quantity: Quantity.Degrees + }); } return info; - function add(key: string, fallback: string, value: number, numberType: NumberType): void { - info.add({ key, fallback, value, numberType }); + function add(key: string, fallback: string, value: number, quantity: Quantity): void { + info.add({ key, fallback, value, quantity }); } } @@ -249,16 +254,16 @@ export class MeasureBoxDomainObject extends MeasureDomainObject { } public get isUseAsCropBox(): boolean { - const root = this.root as RootDomainObject; - if (!(root instanceof RootDomainObject)) { + const root = this.rootDomainObject; + if (root === undefined) { return false; } return root.renderTarget.isGlobalCropBox(this); } public setUseAsCropBox(use: boolean): void { - const root = this.root as RootDomainObject; - if (!(root instanceof RootDomainObject)) { + const root = this.rootDomainObject; + if (root === undefined) { return; } if (!use) { diff --git a/react-components/src/architecture/concrete/boxDomainObject/MeasureBoxView.ts b/react-components/src/architecture/concrete/boxDomainObject/MeasureBoxView.ts index 8fde9669ae9..5f693aecc3e 100644 --- a/react-components/src/architecture/concrete/boxDomainObject/MeasureBoxView.ts +++ b/react-components/src/architecture/concrete/boxDomainObject/MeasureBoxView.ts @@ -46,6 +46,7 @@ import { radToDeg } from 'three/src/math/MathUtils.js'; import { Range1 } from '../../base/utilities/geometry/Range1'; import { MeasureType } from './MeasureType'; import { type MeasureRenderStyle } from './MeasureRenderStyle'; +import { Quantity } from '../../base/domainObjectsHelpers/Quantity'; const RELATIVE_RESIZE_RADIUS = 0.15; const RELATIVE_ROTATION_RADIUS = new Range1(0.6, 0.75); @@ -80,7 +81,15 @@ export class MeasureBoxView extends GroupThreeView { public override update(change: DomainObjectChange): void { super.update(change); - if (change.isChanged(Changes.selected, Changes.focus, Changes.renderStyle, Changes.color)) { + if ( + change.isChanged( + Changes.selected, + Changes.focus, + Changes.renderStyle, + Changes.color, + Changes.unit + ) + ) { this.removeChildren(); this.invalidateBoundingBox(); this.invalidateRenderTarget(); @@ -121,7 +130,7 @@ export class MeasureBoxView extends GroupThreeView { intersectInput: CustomObjectIntersectInput, closestDistance: number | undefined ): undefined | CustomObjectIntersection { - const { domainObject } = this; + const { domainObject, style } = this; if (domainObject.focusType === FocusType.Pending) { return undefined; // Should never be picked } @@ -135,7 +144,7 @@ export class MeasureBoxView extends GroupThreeView { return undefined; } const distanceToCamera = point.distanceTo(ray.origin); - if (closestDistance !== undefined && closestDistance < distanceToCamera) { + if (style.depthTest && closestDistance !== undefined && closestDistance < distanceToCamera) { return undefined; } if (!intersectInput.isVisible(point)) { @@ -230,12 +239,16 @@ export class MeasureBoxView extends GroupThreeView { return undefined; } const { domainObject } = this; + const { rootDomainObject } = domainObject; + if (rootDomainObject === undefined) { + return undefined; + } const degrees = radToDeg(domainObject.zRotation); - const text = degrees.toFixed(1); - if (text === '0.0') { + if (degrees === 0) { return undefined; // Not show when about 0 } - const sprite = createSprite(text + '°', this.style, spriteHeight); + const text = rootDomainObject.unitSystem.toStringWithUnit(degrees, Quantity.Degrees); + const sprite = createSprite(text, this.style, spriteHeight); if (sprite === undefined) { return undefined; } @@ -330,6 +343,10 @@ export class MeasureBoxView extends GroupThreeView { private addLabels(matrix: Matrix4): void { const { domainObject, style } = this; + const { rootDomainObject } = domainObject; + if (rootDomainObject === undefined) { + return undefined; + } const spriteHeight = this.getTextHeight(style.relativeTextSize); clear(this._sprites); for (let index = 0; index < 3; index++) { @@ -338,7 +355,8 @@ export class MeasureBoxView extends GroupThreeView { this._sprites.push(undefined); continue; } - const sprite = createSprite(size.toFixed(2), style, spriteHeight); + const text = rootDomainObject.unitSystem.toStringWithUnit(size, Quantity.Length); + const sprite = createSprite(text, style, spriteHeight); if (sprite === undefined) { this._sprites.push(undefined); continue; diff --git a/react-components/src/architecture/concrete/boxDomainObject/MeasureLineDomainObject.ts b/react-components/src/architecture/concrete/boxDomainObject/MeasureLineDomainObject.ts index 5fc700de2a8..746e6ab3fd8 100644 --- a/react-components/src/architecture/concrete/boxDomainObject/MeasureLineDomainObject.ts +++ b/react-components/src/architecture/concrete/boxDomainObject/MeasureLineDomainObject.ts @@ -14,9 +14,10 @@ import { horizontalDistanceTo, verticalDistanceTo } from '../../base/utilities/extensions/vectorExtensions'; -import { NumberType, PanelInfo } from '../../base/domainObjectsHelpers/PanelInfo'; +import { PanelInfo } from '../../base/domainObjectsHelpers/PanelInfo'; import { Changes } from '../../base/domainObjectsHelpers/Changes'; import { FocusType } from '../../base/domainObjectsHelpers/FocusType'; +import { Quantity } from '../../base/domainObjectsHelpers/Quantity'; export class MeasureLineDomainObject extends MeasureDomainObject { // ================================================== @@ -76,7 +77,7 @@ export class MeasureLineDomainObject extends MeasureDomainObject { 'MEASUREMENTS_HORIZONTAL_AREA', 'Horizontal area', this.getHorizontalArea(), - NumberType.Area + Quantity.Area ); } break; @@ -86,13 +87,8 @@ export class MeasureLineDomainObject extends MeasureDomainObject { } return info; - function add( - key: string, - fallback: string, - value: number, - numberType = NumberType.Length - ): void { - info.add({ key, fallback, value, numberType }); + function add(key: string, fallback: string, value: number, quantity = Quantity.Length): void { + info.add({ key, fallback, value, quantity }); } } diff --git a/react-components/src/architecture/concrete/boxDomainObject/MeasureLineView.ts b/react-components/src/architecture/concrete/boxDomainObject/MeasureLineView.ts index 2b536e4ceff..53b24136ff9 100644 --- a/react-components/src/architecture/concrete/boxDomainObject/MeasureLineView.ts +++ b/react-components/src/architecture/concrete/boxDomainObject/MeasureLineView.ts @@ -35,6 +35,10 @@ import { createSpriteWithText } from '../../base/utilities/sprites/createSprite' import { mergeGeometries } from 'three/examples/jsm/utils/BufferGeometryUtils.js'; import { FocusType } from '../../base/domainObjectsHelpers/FocusType'; import { MeasureRenderStyle } from './MeasureRenderStyle'; +import { DomainObjectIntersection } from '../../base/domainObjectsHelpers/DomainObjectIntersection'; +import { ClosestGeometryFinder } from '../../base/utilities/geometry/ClosestGeometryFinder'; +import { square } from '../../base/utilities/extensions/mathExtensions'; +import { Quantity } from '../../base/domainObjectsHelpers/Quantity'; const CYLINDER_DEFAULT_AXIS = new Vector3(0, 1, 0); const RENDER_ORDER = 100; @@ -58,7 +62,15 @@ export class MeasureLineView extends GroupThreeView { public override update(change: DomainObjectChange): void { super.update(change); - if (change.isChanged(Changes.selected, Changes.focus, Changes.renderStyle, Changes.color)) { + if ( + change.isChanged( + Changes.selected, + Changes.focus, + Changes.renderStyle, + Changes.color, + Changes.unit + ) + ) { this.removeChildren(); this.invalidateBoundingBox(); this.invalidateRenderTarget(); @@ -82,7 +94,59 @@ export class MeasureLineView extends GroupThreeView { if (this.domainObject.focusType === FocusType.Pending) { return undefined; // Should never be picked } - return super.intersectIfCloser(intersectInput, closestDistance); + // Implement the intersection logic here, because of bug in tree.js + const { domainObject, style } = this; + const radius = getRadius(domainObject, style); + if (radius <= 0) { + return; + } + const { points } = domainObject; + const { length } = points; + if (length < 2) { + return undefined; + } + // Just allocate all needed objects once + const prevPoint = new Vector3(); + const thisPoint = new Vector3(); + const intersection = new Vector3(); + + const radiusSquared = square(1.5 * radius); // Add 50% more to make it easier to pick + const ray = intersectInput.raycaster.ray; + const closestFinder = new ClosestGeometryFinder(ray.origin); + + // TODO: The line below will case a tiny bug. The best is that the main intersection algorithm + // in the vieweer intersects the objects with depthTest == false first, before any other object and + // returns out if any of those objects are intersected. Same for Boxes. Now the intersection is somewhat arbitrarly + // if style.depthTest == false. Then the last one added to the viewer will be picked first, + // regardless of the distance to the mouse. + if (style.depthTest && closestDistance !== undefined) { + closestFinder.minDistance = closestDistance; + } + const loopLength = domainObject.measureType === MeasureType.Polygon ? length + 1 : length; + for (let i = 0; i < loopLength; i++) { + thisPoint.copy(points[i % length]); + thisPoint.applyMatrix4(CDF_TO_VIEWER_TRANSFORMATION); + + if (i === 0) { + prevPoint.copy(thisPoint); + continue; + } + const distanceSq = ray.distanceSqToSegment(prevPoint, thisPoint, undefined, intersection); + if (distanceSq > radiusSquared || !closestFinder.isClosest(intersection)) { + prevPoint.copy(thisPoint); + continue; + } + const objectIntersection: DomainObjectIntersection = { + type: 'customObject', + point: intersection, + distanceToCamera: closestFinder.minDistance, + customObject: this, + domainObject + }; + closestFinder.setClosestGeometry(objectIntersection); + prevPoint.copy(thisPoint); + } + return closestFinder.getClosestGeometry(); } // ================================================== @@ -91,7 +155,7 @@ export class MeasureLineView extends GroupThreeView { private createPipe(): Mesh | undefined { const { domainObject, style } = this; - const radius = domainObject.isSelected ? style.selectedPipeRadius : style.pipeRadius; + const radius = getRadius(domainObject, style); if (radius <= 0) { return; } @@ -188,7 +252,10 @@ export class MeasureLineView extends GroupThreeView { private addLabels(): void { const { domainObject, style } = this; - const { points } = domainObject; + const { points, rootDomainObject } = domainObject; + if (rootDomainObject === undefined) { + return; + } const { length } = points; if (length < 2) { return; @@ -206,7 +273,9 @@ export class MeasureLineView extends GroupThreeView { center.copy(point1).add(point2).divideScalar(2); center.applyMatrix4(CDF_TO_VIEWER_TRANSFORMATION); - const sprite = createSprite(distance.toFixed(2), style, spriteHeight); + + const text = rootDomainObject.unitSystem.toStringWithUnit(distance, Quantity.Length); + const sprite = createSprite(text, style, spriteHeight); if (sprite === undefined) { continue; } @@ -284,3 +353,7 @@ function adjustLabel( point.y += (1.1 * spriteHeight) / 2 + style.pipeRadius; } } + +function getRadius(domainObject: MeasureLineDomainObject, style: MeasureLineRenderStyle): number { + return domainObject.isSelected ? style.selectedPipeRadius : style.pipeRadius; +} diff --git a/react-components/src/architecture/concrete/boxDomainObject/MeasureType.ts b/react-components/src/architecture/concrete/boxDomainObject/MeasureType.ts index c51b84d27b5..ef8b55de138 100644 --- a/react-components/src/architecture/concrete/boxDomainObject/MeasureType.ts +++ b/react-components/src/architecture/concrete/boxDomainObject/MeasureType.ts @@ -2,7 +2,7 @@ * Copyright 2024 Cognite AS */ -import { type Tooltip } from '../../base/commands/BaseCommand'; +import { type TranslateKey } from '../../base/utilities/TranslateKey'; export enum MeasureType { None, @@ -52,7 +52,7 @@ export function getNameByMeasureType(measureType: MeasureType): string { } } -export function getTooltipByMeasureType(measureType: MeasureType): Tooltip { +export function getTooltipByMeasureType(measureType: MeasureType): TranslateKey { switch (measureType) { case MeasureType.Line: return { diff --git a/react-components/src/architecture/concrete/boxDomainObject/MeasurementTool.ts b/react-components/src/architecture/concrete/boxDomainObject/MeasurementTool.ts index a316bc01e8d..23e0a41c104 100644 --- a/react-components/src/architecture/concrete/boxDomainObject/MeasurementTool.ts +++ b/react-components/src/architecture/concrete/boxDomainObject/MeasurementTool.ts @@ -4,7 +4,7 @@ import { MeasureBoxDomainObject } from './MeasureBoxDomainObject'; import { type AnyIntersection, CDF_TO_VIEWER_TRANSFORMATION } from '@cognite/reveal'; -import { type BaseCommand, type Tooltip } from '../../base/commands/BaseCommand'; +import { type BaseCommand } from '../../base/commands/BaseCommand'; import { isDomainObjectIntersection } from '../../base/domainObjectsHelpers/DomainObjectIntersection'; import { FocusType } from '../../base/domainObjectsHelpers/FocusType'; import { type BoxPickInfo } from '../../base/utilities/box/BoxPickInfo'; @@ -23,6 +23,8 @@ import { SetMeasurmentTypeCommand } from './SetMeasurmentTypeCommand'; import { PopupStyle } from '../../base/domainObjectsHelpers/PopupStyle'; import { type RootDomainObject } from '../../base/domainObjects/RootDomainObject'; import { CommandsUpdater } from '../../base/reactUpdaters/CommandsUpdater'; +import { type TranslateKey } from '../../base/utilities/TranslateKey'; +import { ToogleMetricUnitsCommand } from '../../base/concreteCommands/ToogleMetricUnitsCommand'; export class MeasurementTool extends BaseEditTool { // ================================================== @@ -40,7 +42,7 @@ export class MeasurementTool extends BaseEditTool { return 'Ruler'; } - public override get tooltip(): Tooltip { + public override get tooltip(): TranslateKey { return { key: 'MEASUREMENTS', fallback: 'Measurements' }; } @@ -53,6 +55,7 @@ export class MeasurementTool extends BaseEditTool { new SetMeasurmentTypeCommand(MeasureType.VerticalArea), new SetMeasurmentTypeCommand(MeasureType.Volume), undefined, // Separator + new ToogleMetricUnitsCommand(), new ShowMeasurmentsOnTopCommand() ]; } @@ -181,7 +184,6 @@ export class MeasurementTool extends BaseEditTool { const intersection = await this.getIntersection(event); if (intersection === undefined) { // Click in the "air" - await super.onClick(event); return; } const measurment = this.getMeasurement(intersection); @@ -194,7 +196,6 @@ export class MeasurementTool extends BaseEditTool { if (creator === undefined) { const creator = (this._creator = createCreator(this.measureType)); if (creator === undefined) { - await super.onClick(event); return; } if (creator.addPoint(ray, intersection)) { diff --git a/react-components/src/architecture/concrete/boxDomainObject/SetCropBoxCommand.ts b/react-components/src/architecture/concrete/boxDomainObject/SetCropBoxCommand.ts index 64007891a36..f2de2d5eb85 100644 --- a/react-components/src/architecture/concrete/boxDomainObject/SetCropBoxCommand.ts +++ b/react-components/src/architecture/concrete/boxDomainObject/SetCropBoxCommand.ts @@ -4,7 +4,7 @@ */ import { RenderTargetCommand } from '../../base/commands/RenderTargetCommand'; -import { type Tooltip } from '../../base/commands/BaseCommand'; +import { type TranslateKey } from '../../base/utilities/TranslateKey'; import { MeasureBoxDomainObject } from './MeasureBoxDomainObject'; import { MeasureType } from './MeasureType'; @@ -15,7 +15,7 @@ export class SetCropBoxCommand extends RenderTargetCommand { // OVERRIDES // ================================================== - public override get tooltip(): Tooltip { + public override get tooltip(): TranslateKey { return { key: 'CROP_BOX', fallback: 'Set as crop box' }; } @@ -30,10 +30,6 @@ export class SetCropBoxCommand extends RenderTargetCommand { return this.getMeasureBoxDomainObject() !== undefined; } - public override get isCheckable(): boolean { - return true; - } - public override get isChecked(): boolean { return this.renderTarget.isGlobalCropBoxActive; } diff --git a/react-components/src/architecture/concrete/boxDomainObject/SetMeasurmentTypeCommand.ts b/react-components/src/architecture/concrete/boxDomainObject/SetMeasurmentTypeCommand.ts index 8a1cb259ad5..5a91ddb3009 100644 --- a/react-components/src/architecture/concrete/boxDomainObject/SetMeasurmentTypeCommand.ts +++ b/react-components/src/architecture/concrete/boxDomainObject/SetMeasurmentTypeCommand.ts @@ -4,9 +4,10 @@ */ import { RenderTargetCommand } from '../../base/commands/RenderTargetCommand'; -import { type BaseCommand, type Tooltip } from '../../base/commands/BaseCommand'; +import { type BaseCommand } from '../../base/commands/BaseCommand'; import { MeasureType, getIconByMeasureType, getTooltipByMeasureType } from './MeasureType'; import { MeasurementTool } from './MeasurementTool'; +import { type TranslateKey } from '../../base/utilities/TranslateKey'; export class SetMeasurmentTypeCommand extends RenderTargetCommand { private readonly _measureType: MeasureType; @@ -28,7 +29,7 @@ export class SetMeasurmentTypeCommand extends RenderTargetCommand { return getIconByMeasureType(this._measureType); } - public override get tooltip(): Tooltip { + public override get tooltip(): TranslateKey { return getTooltipByMeasureType(this._measureType); } @@ -36,10 +37,6 @@ export class SetMeasurmentTypeCommand extends RenderTargetCommand { return this.measurementTool !== undefined; } - public override get isCheckable(): boolean { - return true; - } - public override get isChecked(): boolean { const { measurementTool } = this; if (measurementTool === undefined) { diff --git a/react-components/src/architecture/concrete/boxDomainObject/ShowMeasurmentsOnTopCommand.ts b/react-components/src/architecture/concrete/boxDomainObject/ShowMeasurmentsOnTopCommand.ts index 9d66341e6c5..cba24af00d3 100644 --- a/react-components/src/architecture/concrete/boxDomainObject/ShowMeasurmentsOnTopCommand.ts +++ b/react-components/src/architecture/concrete/boxDomainObject/ShowMeasurmentsOnTopCommand.ts @@ -4,8 +4,8 @@ */ import { RenderTargetCommand } from '../../base/commands/RenderTargetCommand'; -import { type Tooltip } from '../../base/commands/BaseCommand'; import { Changes } from '../../base/domainObjectsHelpers/Changes'; +import { type TranslateKey } from '../../base/utilities/TranslateKey'; import { MeasureDomainObject } from './MeasureDomainObject'; export class ShowMeasurmentsOnTopCommand extends RenderTargetCommand { @@ -13,7 +13,7 @@ export class ShowMeasurmentsOnTopCommand extends RenderTargetCommand { // OVERRIDES // ================================================== - public override get tooltip(): Tooltip { + public override get tooltip(): TranslateKey { return { key: 'MEASUREMENTS_SHOW_ON_TOP', fallback: 'Show all measurements on top' }; } @@ -26,10 +26,6 @@ export class ShowMeasurmentsOnTopCommand extends RenderTargetCommand { return domainObject !== undefined; } - public override get isCheckable(): boolean { - return true; - } - public override get isChecked(): boolean { return !this.getDepthTest(); } diff --git a/react-components/src/architecture/concrete/exampleDomainObject/ExampleDomainObject.ts b/react-components/src/architecture/concrete/exampleDomainObject/ExampleDomainObject.ts index a2fb3b0f25a..e26e4244c43 100644 --- a/react-components/src/architecture/concrete/exampleDomainObject/ExampleDomainObject.ts +++ b/react-components/src/architecture/concrete/exampleDomainObject/ExampleDomainObject.ts @@ -6,7 +6,7 @@ import { ExampleRenderStyle } from './ExampleRenderStyle'; import { type RenderStyle } from '../../base/domainObjectsHelpers/RenderStyle'; import { type ThreeView } from '../../base/views/ThreeView'; import { ExampleView } from './ExampleView'; -import { NumberType, PanelInfo } from '../../base/domainObjectsHelpers/PanelInfo'; +import { PanelInfo } from '../../base/domainObjectsHelpers/PanelInfo'; import { type CreateDraggerProps, VisualDomainObject @@ -15,6 +15,7 @@ import { Vector3 } from 'three'; import { PopupStyle } from '../../base/domainObjectsHelpers/PopupStyle'; import { type BaseDragger } from '../../base/domainObjectsHelpers/BaseDragger'; import { ExampleDragger } from './ExampleDragger'; +import { Quantity } from '../../base/domainObjectsHelpers/Quantity'; export class ExampleDomainObject extends VisualDomainObject { // ================================================== @@ -62,13 +63,13 @@ export class ExampleDomainObject extends VisualDomainObject { public override getPanelInfo(): PanelInfo | undefined { const info = new PanelInfo(); info.setHeader('NAME', this.name); - add('XCORDINATE', 'X coordinate', this.center.x, NumberType.Length); - add('YCORDINATE', 'Y coordinate', this.center.y, NumberType.Length); - add('ZCORDINATE', 'Z coordinate', this.center.z, NumberType.Length); + add('XCORDINATE', 'X coordinate', this.center.x, Quantity.Length); + add('YCORDINATE', 'Y coordinate', this.center.y, Quantity.Length); + add('ZCORDINATE', 'Z coordinate', this.center.z, Quantity.Length); return info; - function add(key: string, fallback: string, value: number, numberType: NumberType): void { - info.add({ key, fallback, value, numberType }); + function add(key: string, fallback: string, value: number, quantity: Quantity): void { + info.add({ key, fallback, value, quantity }); } } diff --git a/react-components/src/architecture/concrete/exampleDomainObject/ExampleTool.ts b/react-components/src/architecture/concrete/exampleDomainObject/ExampleTool.ts index b9f847338f4..b50190a282e 100644 --- a/react-components/src/architecture/concrete/exampleDomainObject/ExampleTool.ts +++ b/react-components/src/architecture/concrete/exampleDomainObject/ExampleTool.ts @@ -4,7 +4,7 @@ import { ExampleDomainObject } from './ExampleDomainObject'; import { CDF_TO_VIEWER_TRANSFORMATION } from '@cognite/reveal'; -import { type BaseCommand, type Tooltip } from '../../base/commands/BaseCommand'; +import { type BaseCommand } from '../../base/commands/BaseCommand'; import { BaseEditTool } from '../../base/commands/BaseEditTool'; import { Changes } from '../../base/domainObjectsHelpers/Changes'; import { ResetAllExamplesCommand } from './commands/ResetAllExamplesCommand'; @@ -13,6 +13,8 @@ import { ShowAllExamplesCommand } from './commands/ShowAllExamplesCommand'; import { clamp } from 'lodash'; import { type DomainObject } from '../../base/domainObjects/DomainObject'; import { type HSL } from 'three'; +import { type TranslateKey } from '../../base/utilities/TranslateKey'; + export class ExampleTool extends BaseEditTool { // ================================================== // OVERRIDES of BaseCommand @@ -22,7 +24,7 @@ export class ExampleTool extends BaseEditTool { return 'Circle'; } - public override get tooltip(): Tooltip { + public override get tooltip(): TranslateKey { return { key: 'EXAMPLE_EDIT', fallback: 'Create or edit a single point' }; } diff --git a/react-components/src/architecture/concrete/exampleDomainObject/commands/DeleteAllExamplesCommand.ts b/react-components/src/architecture/concrete/exampleDomainObject/commands/DeleteAllExamplesCommand.ts index e6729404595..d2ab8ffda47 100644 --- a/react-components/src/architecture/concrete/exampleDomainObject/commands/DeleteAllExamplesCommand.ts +++ b/react-components/src/architecture/concrete/exampleDomainObject/commands/DeleteAllExamplesCommand.ts @@ -4,7 +4,7 @@ */ import { RenderTargetCommand } from '../../../base/commands/RenderTargetCommand'; -import { type Tooltip } from '../../../base/commands/BaseCommand'; +import { type TranslateKey } from '../../../base/utilities/TranslateKey'; import { ExampleDomainObject } from '../ExampleDomainObject'; export class DeleteAllExamplesCommand extends RenderTargetCommand { @@ -12,7 +12,7 @@ export class DeleteAllExamplesCommand extends RenderTargetCommand { // OVERRIDES // ================================================== - public override get tooltip(): Tooltip { + public override get tooltip(): TranslateKey { return { key: 'EXAMPLES_DELETE', fallback: 'Remove all examples' }; } diff --git a/react-components/src/architecture/concrete/exampleDomainObject/commands/ResetAllExamplesCommand.ts b/react-components/src/architecture/concrete/exampleDomainObject/commands/ResetAllExamplesCommand.ts index 11606735822..9279f8ddf5f 100644 --- a/react-components/src/architecture/concrete/exampleDomainObject/commands/ResetAllExamplesCommand.ts +++ b/react-components/src/architecture/concrete/exampleDomainObject/commands/ResetAllExamplesCommand.ts @@ -4,16 +4,16 @@ */ import { RenderTargetCommand } from '../../../base/commands/RenderTargetCommand'; -import { type Tooltip } from '../../../base/commands/BaseCommand'; import { ExampleDomainObject } from '../ExampleDomainObject'; import { Changes } from '../../../base/domainObjectsHelpers/Changes'; +import { type TranslateKey } from '../../../base/utilities/TranslateKey'; export class ResetAllExamplesCommand extends RenderTargetCommand { // ================================================== // OVERRIDES // ================================================== - public override get tooltip(): Tooltip { + public override get tooltip(): TranslateKey { return { key: 'EXAMPLES_RESET', fallback: 'Reset all examples' }; } diff --git a/react-components/src/architecture/concrete/exampleDomainObject/commands/ShowAllExamplesCommand.ts b/react-components/src/architecture/concrete/exampleDomainObject/commands/ShowAllExamplesCommand.ts index ec288b355f3..9a16e75b228 100644 --- a/react-components/src/architecture/concrete/exampleDomainObject/commands/ShowAllExamplesCommand.ts +++ b/react-components/src/architecture/concrete/exampleDomainObject/commands/ShowAllExamplesCommand.ts @@ -4,7 +4,7 @@ */ import { RenderTargetCommand } from '../../../base/commands/RenderTargetCommand'; -import { type Tooltip } from '../../../base/commands/BaseCommand'; +import { type TranslateKey } from '../../../base/utilities/TranslateKey'; import { ExampleDomainObject } from '../ExampleDomainObject'; export class ShowAllExamplesCommand extends RenderTargetCommand { @@ -12,7 +12,7 @@ export class ShowAllExamplesCommand extends RenderTargetCommand { // OVERRIDES // ================================================== - public override get tooltip(): Tooltip { + public override get tooltip(): TranslateKey { return { key: 'EXAMPLES_SHOW', fallback: 'Show or hide all examples' }; } @@ -24,10 +24,6 @@ export class ShowAllExamplesCommand extends RenderTargetCommand { return this.getFirst() !== undefined; } - public override get isCheckable(): boolean { - return true; - } - public override get isChecked(): boolean { const domainObject = this.getFirst(); if (domainObject === undefined) { diff --git a/react-components/src/architecture/concrete/terrainDomainObject/SetTerrainVisibleCommand.ts b/react-components/src/architecture/concrete/terrainDomainObject/SetTerrainVisibleCommand.ts index 0e164f4e97f..08869ee34e0 100644 --- a/react-components/src/architecture/concrete/terrainDomainObject/SetTerrainVisibleCommand.ts +++ b/react-components/src/architecture/concrete/terrainDomainObject/SetTerrainVisibleCommand.ts @@ -8,7 +8,7 @@ import { Vector3 } from 'three'; import { Range3 } from '../../base/utilities/geometry/Range3'; import { createFractalRegularGrid2 } from './geometry/createFractalRegularGrid2'; import { DEFAULT_TERRAIN_NAME, TerrainDomainObject } from './TerrainDomainObject'; -import { type Tooltip } from '../../base/commands/BaseCommand'; +import { type TranslateKey } from '../../base/utilities/TranslateKey'; export class SetTerrainVisibleCommand extends RenderTargetCommand { // ================================================== @@ -19,7 +19,7 @@ export class SetTerrainVisibleCommand extends RenderTargetCommand { return 'EyeShow'; } - public override get tooltip(): Tooltip { + public override get tooltip(): TranslateKey { return { key: 'UNKNOWN', fallback: 'Set terrain visible. Create it if not done' }; } diff --git a/react-components/src/architecture/concrete/terrainDomainObject/UpdateTerrainCommand.ts b/react-components/src/architecture/concrete/terrainDomainObject/UpdateTerrainCommand.ts index 1358fb736ef..fe8ef24a2ef 100644 --- a/react-components/src/architecture/concrete/terrainDomainObject/UpdateTerrainCommand.ts +++ b/react-components/src/architecture/concrete/terrainDomainObject/UpdateTerrainCommand.ts @@ -9,7 +9,7 @@ import { Range3 } from '../../base/utilities/geometry/Range3'; import { createFractalRegularGrid2 } from './geometry/createFractalRegularGrid2'; import { DEFAULT_TERRAIN_NAME, TerrainDomainObject } from './TerrainDomainObject'; import { Changes } from '../../base/domainObjectsHelpers/Changes'; -import { type Tooltip } from '../../base/commands/BaseCommand'; +import { type TranslateKey } from '../../base/utilities/TranslateKey'; export class UpdateTerrainCommand extends RenderTargetCommand { // ================================================== @@ -20,7 +20,7 @@ export class UpdateTerrainCommand extends RenderTargetCommand { return 'Refresh'; } - public override get tooltip(): Tooltip { + public override get tooltip(): TranslateKey { return { key: 'UNKNOWN', fallback: 'Change the visible terrain' }; } diff --git a/react-components/src/components/Architecture/CommandButton.tsx b/react-components/src/components/Architecture/CommandButton.tsx index 22ad3fb44a4..921af49e30b 100644 --- a/react-components/src/components/Architecture/CommandButton.tsx +++ b/react-components/src/components/Architecture/CommandButton.tsx @@ -4,13 +4,29 @@ import { type ReactElement, useState, useEffect, useMemo } from 'react'; import { useRenderTarget } from '../RevealCanvas/ViewerContext'; -import { Button, Tooltip as CogsTooltip, type IconType } from '@cognite/cogs.js'; +import { Button, Tooltip as CogsTooltip, Divider, type IconType } from '@cognite/cogs.js'; import { useTranslation } from '../i18n/I18n'; import { type BaseCommand } from '../../architecture/base/commands/BaseCommand'; import { type RevealRenderTarget } from '../../architecture/base/renderTarget/RevealRenderTarget'; import { RenderTargetCommand } from '../../architecture/base/commands/RenderTargetCommand'; -export const CreateButton = (command: BaseCommand, isHorizontal = false): ReactElement => { +export const CommandButtons = ({ + commands, + isHorizontal = false +}: { + commands: Array; + isHorizontal: boolean; +}): ReactElement => { + return ( + <> + {commands.map( + (command, index): ReactElement => addCommandButton(command, isHorizontal, index) + )} + + ); +}; + +export const CreateCommandButton = (command: BaseCommand, isHorizontal = false): ReactElement => { return ; }; @@ -28,6 +44,7 @@ export const CommandButton = ({ const [isChecked, setChecked] = useState(false); const [isEnabled, setEnabled] = useState(true); const [isVisible, setVisible] = useState(true); + const [uniqueIndex, setUniqueIndex] = useState(0); const [icon, setIcon] = useState('Copy'); useEffect(() => { @@ -35,6 +52,7 @@ export const CommandButton = ({ setChecked(command.isChecked); setEnabled(command.isEnabled); setVisible(command.isVisible); + setUniqueIndex(command._uniqueIndex); setIcon(command.icon as IconType); } update(newCommand); @@ -54,6 +72,7 @@ export const CommandButton = ({ - - - )} - - - - - + - {info.items.map((item, _i) => addTextWithNumber(item))} + {info.items.map((item, _i) => addTextWithNumber(item, unitSystem))}
); - function addTextWithNumber(item: NumberPanelItem): ReactElement { + function addTextWithNumber(item: NumberPanelItem, unitSystem: UnitSystem): ReactElement { const icon = item.icon as IconType; - const { key, fallback, unit } = item; + const { key, fallback, quantity, value } = item; return ( {key !== undefined && {t(key, fallback)}} - {icon !== undefined && ( - - - - )} + {icon !== undefined && } <> - {item.valueAsString} + {unitSystem.toString(value, quantity)} - {unit} + {unitSystem.getUnit(quantity)} ); } +}; - async function copyTextToClipboard(info: PanelInfo): Promise { - let text = ''; - { - const { header } = info; - if (header !== undefined) { - const { key, fallback } = header; - if (key !== undefined) { - text += `${t(key, fallback)}\n`; - } - } - } - for (const item of info.items) { - const { key, fallback, unit } = item; +function toString(info: PanelInfo, translate: TranslateDelegate, unitSystem: UnitSystem): string { + let text = ''; + { + const { header } = info; + if (header !== undefined) { + const { key, fallback } = header; if (key !== undefined) { - text += `${t(key, fallback)}: `; + text += `${translate(key, fallback)}\n`; } - text += `${item.valueAsString} ${unit}\n`; } - await navigator.clipboard.writeText(text); } -}; + for (const item of info.items) { + const { key, fallback, quantity, value } = item; + if (key !== undefined) { + text += `${translate(key, fallback)}: `; + } + text += `${unitSystem.toStringWithUnit(value, quantity)}\n`; + } + return text; +} const NumberTh = styled.th` text-align: right; @@ -155,7 +143,7 @@ const PaddedTh = styled.th` size: small; `; -const Container = styled.div` +const Container = withSuppressRevealEvents(styled.div` zindex: 1000px; position: absolute; display: block; @@ -164,4 +152,4 @@ const Container = styled.div` overflow: hidden; background-color: white; box-shadow: 0px 1px 8px #4f52681a; -`; +`); diff --git a/react-components/src/components/Architecture/RevealButtons.tsx b/react-components/src/components/Architecture/RevealButtons.tsx index 2b321ea34ef..ff1aa096803 100644 --- a/react-components/src/components/Architecture/RevealButtons.tsx +++ b/react-components/src/components/Architecture/RevealButtons.tsx @@ -4,7 +4,7 @@ import { type ReactElement } from 'react'; import { NavigationTool } from '../../architecture/base/commands/NavigationTool'; -import { CreateButton } from './CommandButton'; +import { CreateCommandButton } from './CommandButton'; import { MeasurementTool } from '../../architecture/concrete/boxDomainObject/MeasurementTool'; import { FitViewCommand } from '../../architecture/base/concreteCommands/FitViewCommand'; import { FlexibleControlsType } from '@cognite/reveal'; @@ -12,14 +12,14 @@ import { SetFlexibleControlsTypeCommand } from '../../architecture/base/concrete import { SetAxisVisibleCommand } from '../../architecture/concrete/axis/SetAxisVisibleCommand'; export class RevealButtons { - static FitView = (): ReactElement => CreateButton(new FitViewCommand()); - static NavigationTool = (): ReactElement => CreateButton(new NavigationTool()); - static SetAxisVisible = (): ReactElement => CreateButton(new SetAxisVisibleCommand()); - static Measurement = (): ReactElement => CreateButton(new MeasurementTool()); + static FitView = (): ReactElement => CreateCommandButton(new FitViewCommand()); + static NavigationTool = (): ReactElement => CreateCommandButton(new NavigationTool()); + static SetAxisVisible = (): ReactElement => CreateCommandButton(new SetAxisVisibleCommand()); + static Measurement = (): ReactElement => CreateCommandButton(new MeasurementTool()); static SetFlexibleControlsTypeOrbit = (): ReactElement => - CreateButton(new SetFlexibleControlsTypeCommand(FlexibleControlsType.Orbit)); + CreateCommandButton(new SetFlexibleControlsTypeCommand(FlexibleControlsType.Orbit)); static SetFlexibleControlsTypeFirstPerson = (): ReactElement => - CreateButton(new SetFlexibleControlsTypeCommand(FlexibleControlsType.FirstPerson)); + CreateCommandButton(new SetFlexibleControlsTypeCommand(FlexibleControlsType.FirstPerson)); } diff --git a/react-components/src/components/Architecture/Toolbar.tsx b/react-components/src/components/Architecture/Toolbar.tsx index 10b929ec25a..dc6c441ed28 100644 --- a/react-components/src/components/Architecture/Toolbar.tsx +++ b/react-components/src/components/Architecture/Toolbar.tsx @@ -1,11 +1,11 @@ /*! * Copyright 2024 Cognite AS */ -import { Divider, ToolBar } from '@cognite/cogs.js'; +import { ToolBar } from '@cognite/cogs.js'; import styled from 'styled-components'; import { useState, type ReactElement } from 'react'; import { withSuppressRevealEvents } from '../../higher-order-components/withSuppressRevealEvents'; -import { CommandButton } from './CommandButton'; +import { CommandButtons } from './CommandButton'; import { type BaseCommand } from '../../architecture/base/commands/BaseCommand'; import { useRenderTarget } from '../RevealCanvas/ViewerContext'; import { ActiveToolUpdater } from '../../architecture/base/reactUpdaters/ActiveToolUpdater'; @@ -69,24 +69,12 @@ const CreateToolToolbar = ( flexFlow: style.flexFlow // Padding is not used here }}> - <>{commands.map((command, index): ReactElement => addCommand(command, style, index))} + ); }; -function addCommand( - command: BaseCommand | undefined, - style: PopupStyle, - index: number -): ReactElement { - if (command === undefined) { - const direction = style.isHorizontalDivider ? 'horizontal' : 'vertical'; - return ; - } - return ; -} - const Container = styled.div` zindex: 1000px; position: absolute; @@ -94,3 +82,4 @@ const Container = styled.div` `; const MyCustomToolbar = styled(withSuppressRevealEvents(ToolBar))``; +export { CommandButtons }; diff --git a/react-components/src/components/RevealToolbar/SetFlexibleControlsType.tsx b/react-components/src/components/RevealToolbar/SetFlexibleControlsType.tsx index 6dcb2a637d0..eff98682371 100644 --- a/react-components/src/components/RevealToolbar/SetFlexibleControlsType.tsx +++ b/react-components/src/components/RevealToolbar/SetFlexibleControlsType.tsx @@ -14,14 +14,13 @@ import { import { useTranslation } from '../i18n/I18n'; import styled from 'styled-components'; +import { type TranslateDelegate } from '../../architecture/base/utilities/TranslateKey'; type CustomSettingsProps = { includeOrbitInCenter?: boolean; orientation?: 'horizontal' | 'vertical'; }; -type TranslateDelegate = (key: string, fallback?: string) => string; - type ControlTypeSelectionProps = { selectedControlsType: FlexibleControlsType; setSelectedControlsType: (controlsType: FlexibleControlsType) => void; diff --git a/react-components/yarn.lock b/react-components/yarn.lock index 3300d2975cd..c530593fe25 100644 --- a/react-components/yarn.lock +++ b/react-components/yarn.lock @@ -1693,9 +1693,9 @@ __metadata: languageName: node linkType: hard -"@cognite/cogs.js@npm:^9.3.0": - version: 9.84.2 - resolution: "@cognite/cogs.js@npm:9.84.2" +"@cognite/cogs.js@npm:^9.84.3": + version: 9.84.3 + resolution: "@cognite/cogs.js@npm:9.84.3" dependencies: "@emotion/react": "npm:11.10.6" "@emotion/styled": "npm:11.10.6" @@ -1736,7 +1736,7 @@ __metadata: "@types/react": ^18.0.0 react: ^18.0.0 react-dom: ^18.0.0 - checksum: 10/4fdd6f11534e63ea7205b18f34ca448972309a7cba499a9eb2098b99d3ffe95f0b68ef9c93e172e5d30ea26c2bbe417705d05a0dd69d4cfd0bb98c16a268925a + checksum: 10/bc36fb3b01026068fee222c99fd422e72c8b3e37d4b92155ca3b4a22a46db0df820cbbc0e5ea9befac1adba0e7018caa07197550eee14c5b914f4a3123cfd2df languageName: node linkType: hard @@ -1746,7 +1746,7 @@ __metadata: dependencies: "@cognite/cdf-i18n-utils": "npm:^0.7.5" "@cognite/cdf-utilities": "npm:^3.6.0" - "@cognite/cogs.js": "npm:^9.3.0" + "@cognite/cogs.js": "npm:^9.84.3" "@cognite/reveal": "npm:^4.14.5" "@cognite/sdk": "npm:^9.13.0" "@playwright/test": "npm:^1.43.1" @@ -1801,7 +1801,7 @@ __metadata: vite-plugin-externalize-deps: "npm:^0.8.0" vitest: "npm:^1.5.3" peerDependencies: - "@cognite/cogs.js": ">=9" + "@cognite/cogs.js": ">=9.84.3" "@cognite/reveal": 4.14.5 react: ">=18" react-dom: ">=18"