From f7ec3b56690ee31c17c301a42dda5da5108d4dec Mon Sep 17 00:00:00 2001 From: vitPinchuk Date: Tue, 14 Jan 2025 11:33:16 +0300 Subject: [PATCH 1/8] add field settings per user --- docker-compose.yml | 3 +- package-lock.json | 1808 ++++++++++++----- package.json | 2 +- src/TimeSeriesPanel.tsx | 95 +- src/app/types/frameSettings.ts | 10 + .../frameSettings/FrameSettingsEditor.tsx | 251 +++ src/utils.test.ts | 17 +- src/utils.ts | 25 + 8 files changed, 1727 insertions(+), 484 deletions(-) create mode 100644 src/app/types/frameSettings.ts create mode 100644 src/plugins/frameSettings/FrameSettingsEditor.tsx diff --git a/docker-compose.yml b/docker-compose.yml index 53d449e..e831428 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,12 +1,13 @@ services: grafana: - image: grafana/grafana:11.1.0 + image: grafana/grafana:main ports: - 3000:3000/tcp environment: - GF_DEFAULT_APP_MODE=development - GF_DASHBOARDS_DEFAULT_HOME_DASHBOARD_PATH=/etc/grafana/provisioning/dashboards/panels.json - GF_INSTALL_PLUGINS=volkovlabs-variable-panel + - GF_FEATURE_TOGGLES_ENABLE=userStorageAPI volumes: - ./dist:/var/lib/grafana/plugins/volkovlabs-timeseries-panel - ./provisioning:/etc/grafana/provisioning diff --git a/package-lock.json b/package-lock.json index 26b3f2f..2ba34a5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "@emotion/css": "^11.13.0", "@grafana/data": "^11.1.4", - "@grafana/runtime": "^11.1.4", + "@grafana/runtime": "^11.5.0-216340", "@grafana/schema": "^11.1.4", "@grafana/ui": "^11.1.4", "@reduxjs/toolkit": "^2.2.7", @@ -1676,9 +1676,9 @@ "dev": true }, "node_modules/@babel/runtime": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz", - "integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", + "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -1856,15 +1856,15 @@ } }, "node_modules/@emotion/babel-plugin": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.12.0.tgz", - "integrity": "sha512-y2WQb+oP8Jqvvclh8Q55gLUyb7UFvgv7eJfsj7td5TToBrIUtPay2kMrZi4xjq9qw2vD0ZR5fSho0yqoFgX7Rw==", + "version": "11.13.5", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.13.5.tgz", + "integrity": "sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==", "dependencies": { "@babel/helper-module-imports": "^7.16.7", "@babel/runtime": "^7.18.3", "@emotion/hash": "^0.9.2", "@emotion/memoize": "^0.9.0", - "@emotion/serialize": "^1.2.0", + "@emotion/serialize": "^1.3.3", "babel-plugin-macros": "^3.1.0", "convert-source-map": "^1.5.0", "escape-string-regexp": "^4.0.0", @@ -1874,32 +1874,27 @@ } }, "node_modules/@emotion/cache": { - "version": "11.13.1", - "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.13.1.tgz", - "integrity": "sha512-iqouYkuEblRcXmylXIwwOodiEK5Ifl7JcX7o6V4jI3iW4mLXX3dmt5xwBtIkJiQEXFAI+pC8X0i67yiPkH9Ucw==", + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.14.0.tgz", + "integrity": "sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==", "dependencies": { "@emotion/memoize": "^0.9.0", "@emotion/sheet": "^1.4.0", - "@emotion/utils": "^1.4.0", + "@emotion/utils": "^1.4.2", "@emotion/weak-memoize": "^0.4.0", "stylis": "4.2.0" } }, - "node_modules/@emotion/cache/node_modules/@emotion/weak-memoize": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz", - "integrity": "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==" - }, "node_modules/@emotion/css": { - "version": "11.13.0", - "resolved": "https://registry.npmjs.org/@emotion/css/-/css-11.13.0.tgz", - "integrity": "sha512-BUk99ylT+YHl+W/HN7nv1RCTkDYmKKqa1qbvM/qLSQEg61gipuBF5Hptk/2/ERmX2DCv0ccuFGhz9i0KSZOqPg==", + "version": "11.13.5", + "resolved": "https://registry.npmjs.org/@emotion/css/-/css-11.13.5.tgz", + "integrity": "sha512-wQdD0Xhkn3Qy2VNcIzbLP9MR8TafI0MJb7BEAXKp+w4+XqErksWR4OXomuDzPsN4InLdGhVe6EYcn2ZIUCpB8w==", "dependencies": { - "@emotion/babel-plugin": "^11.12.0", - "@emotion/cache": "^11.13.0", - "@emotion/serialize": "^1.3.0", + "@emotion/babel-plugin": "^11.13.5", + "@emotion/cache": "^11.13.5", + "@emotion/serialize": "^1.3.3", "@emotion/sheet": "^1.4.0", - "@emotion/utils": "^1.4.0" + "@emotion/utils": "^1.4.2" } }, "node_modules/@emotion/hash": { @@ -1913,17 +1908,17 @@ "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==" }, "node_modules/@emotion/react": { - "version": "11.11.4", - "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.11.4.tgz", - "integrity": "sha512-t8AjMlF0gHpvvxk5mAtCqR4vmxiGHCeJBaQO6gncUSdklELOgtwjerNY2yuJNfwnc6vi16U/+uMF+afIawJ9iw==", + "version": "11.13.3", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.13.3.tgz", + "integrity": "sha512-lIsdU6JNrmYfJ5EbUCf4xW1ovy5wKQ2CkPRM4xogziOxH1nXxBSjpC9YqbFAP7circxMfYp+6x676BqWcEiixg==", "dependencies": { "@babel/runtime": "^7.18.3", - "@emotion/babel-plugin": "^11.11.0", - "@emotion/cache": "^11.11.0", - "@emotion/serialize": "^1.1.3", - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", - "@emotion/utils": "^1.2.1", - "@emotion/weak-memoize": "^0.3.1", + "@emotion/babel-plugin": "^11.12.0", + "@emotion/cache": "^11.13.0", + "@emotion/serialize": "^1.3.1", + "@emotion/use-insertion-effect-with-fallbacks": "^1.1.0", + "@emotion/utils": "^1.4.0", + "@emotion/weak-memoize": "^0.4.0", "hoist-non-react-statics": "^3.3.1" }, "peerDependencies": { @@ -1936,14 +1931,14 @@ } }, "node_modules/@emotion/serialize": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.0.tgz", - "integrity": "sha512-jACuBa9SlYajnpIVXB+XOXnfJHyckDfe6fOpORIM6yhBDlqGuExvDdZYHDQGoDf3bZXGv7tNr+LpLjJqiEQ6EA==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.3.tgz", + "integrity": "sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==", "dependencies": { "@emotion/hash": "^0.9.2", "@emotion/memoize": "^0.9.0", - "@emotion/unitless": "^0.9.0", - "@emotion/utils": "^1.4.0", + "@emotion/unitless": "^0.10.0", + "@emotion/utils": "^1.4.2", "csstype": "^3.0.2" } }, @@ -1953,27 +1948,27 @@ "integrity": "sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==" }, "node_modules/@emotion/unitless": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.9.0.tgz", - "integrity": "sha512-TP6GgNZtmtFaFcsOgExdnfxLLpRDla4Q66tnenA9CktvVSdNKDvMVuUah4QvWPIpNjrWsGg3qeGo9a43QooGZQ==" + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.10.0.tgz", + "integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==" }, "node_modules/@emotion/use-insertion-effect-with-fallbacks": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.1.0.tgz", - "integrity": "sha512-+wBOcIV5snwGgI2ya3u99D7/FJquOIniQT1IKyDsBmEgwvpxMNeS65Oib7OnE2d2aY+3BU4OiH+0Wchf8yk3Hw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.2.0.tgz", + "integrity": "sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==", "peerDependencies": { "react": ">=16.8.0" } }, "node_modules/@emotion/utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.0.tgz", - "integrity": "sha512-spEnrA1b6hDR/C68lC2M7m6ALPUHZC0lIY7jAS/B/9DuuO1ZP04eov8SMv/6fwRd8pzmsn2AuJEznRREWlQrlQ==" + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.2.tgz", + "integrity": "sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==" }, "node_modules/@emotion/weak-memoize": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz", - "integrity": "sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==" + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz", + "integrity": "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==" }, "node_modules/@es-joy/jsdoccomment": { "version": "0.40.1", @@ -2091,12 +2086,12 @@ } }, "node_modules/@floating-ui/react": { - "version": "0.26.16", - "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.26.16.tgz", - "integrity": "sha512-HEf43zxZNAI/E781QIVpYSF3K2VH4TTYZpqecjdsFkjsaU1EbaWcM++kw0HXFffj7gDUcBFevX8s0rQGQpxkow==", + "version": "0.26.24", + "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.26.24.tgz", + "integrity": "sha512-2ly0pCkZIGEQUq5H8bBK0XJmc1xIK/RM3tvVzY3GBER7IOD1UgmC2Y2tjj4AuS+TC+vTE1KJv2053290jua0Sw==", "dependencies": { - "@floating-ui/react-dom": "^2.1.0", - "@floating-ui/utils": "^0.2.0", + "@floating-ui/react-dom": "^2.1.2", + "@floating-ui/utils": "^0.2.8", "tabbable": "^6.0.0" }, "peerDependencies": { @@ -2105,9 +2100,9 @@ } }, "node_modules/@floating-ui/react-dom": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.1.tgz", - "integrity": "sha512-4h84MJt3CHrtG18mGsXuLCHMrug49d7DFkU0RMIyshRveBeyV2hmV/pDaF2Uxtu8kgq5r46llp5E5FQiR0K2Yg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.2.tgz", + "integrity": "sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==", "dependencies": { "@floating-ui/dom": "^1.0.0" }, @@ -2117,61 +2112,63 @@ } }, "node_modules/@floating-ui/utils": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.7.tgz", - "integrity": "sha512-X8R8Oj771YRl/w+c1HqAC1szL8zWQRwFvgDwT129k9ACdBoud/+/rX9V0qiMl6LWUdP9voC2nDVZYPMQQsb6eA==" + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz", + "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==" }, "node_modules/@formatjs/ecma402-abstract": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.0.0.tgz", - "integrity": "sha512-rRqXOqdFmk7RYvj4khklyqzcfQl9vEL/usogncBHRZfZBDOwMGuSRNFl02fu5KGHXdbinju+YXyuR+Nk8xlr/g==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.3.2.tgz", + "integrity": "sha512-6sE5nyvDloULiyOMbOTJEEgWL32w+VHkZQs8S02Lnn8Y/O5aQhjOEXwWzvR7SsBE/exxlSpY2EsWZgqHbtLatg==", "dependencies": { - "@formatjs/intl-localematcher": "0.5.4", - "tslib": "^2.4.0" + "@formatjs/fast-memoize": "2.2.6", + "@formatjs/intl-localematcher": "0.5.10", + "decimal.js": "10", + "tslib": "2" } }, "node_modules/@formatjs/fast-memoize": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.0.tgz", - "integrity": "sha512-hnk/nY8FyrL5YxwP9e4r9dqeM6cAbo8PeU9UjyXojZMNvVad2Z06FAVHyR3Ecw6fza+0GH7vdJgiKIVXTMbSBA==", + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.6.tgz", + "integrity": "sha512-luIXeE2LJbQnnzotY1f2U2m7xuQNj2DA8Vq4ce1BY9ebRZaoPB1+8eZ6nXpLzsxuW5spQxr7LdCg+CApZwkqkw==", "dependencies": { - "tslib": "^2.4.0" + "tslib": "2" } }, "node_modules/@formatjs/icu-messageformat-parser": { - "version": "2.7.8", - "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.7.8.tgz", - "integrity": "sha512-nBZJYmhpcSX0WeJ5SDYUkZ42AgR3xiyhNCsQweFx3cz/ULJjym8bHAzWKvG5e2+1XO98dBYC0fWeeAECAVSwLA==", + "version": "2.9.8", + "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.9.8.tgz", + "integrity": "sha512-hZlLNI3+Lev8IAXuwehLoN7QTKqbx3XXwFW1jh0AdIA9XJdzn9Uzr+2LLBspPm/PX0+NLIfykj/8IKxQqHUcUQ==", "dependencies": { - "@formatjs/ecma402-abstract": "2.0.0", - "@formatjs/icu-skeleton-parser": "1.8.2", - "tslib": "^2.4.0" + "@formatjs/ecma402-abstract": "2.3.2", + "@formatjs/icu-skeleton-parser": "1.8.12", + "tslib": "2" } }, "node_modules/@formatjs/icu-skeleton-parser": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.2.tgz", - "integrity": "sha512-k4ERKgw7aKGWJZgTarIcNEmvyTVD9FYh0mTrrBMHZ1b8hUu6iOJ4SzsZlo3UNAvHYa+PnvntIwRPt1/vy4nA9Q==", + "version": "1.8.12", + "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.12.tgz", + "integrity": "sha512-QRAY2jC1BomFQHYDMcZtClqHR55EEnB96V7Xbk/UiBodsuFc5kujybzt87+qj1KqmJozFhk6n4KiT1HKwAkcfg==", "dependencies": { - "@formatjs/ecma402-abstract": "2.0.0", - "tslib": "^2.4.0" + "@formatjs/ecma402-abstract": "2.3.2", + "tslib": "2" } }, "node_modules/@formatjs/intl-localematcher": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.5.4.tgz", - "integrity": "sha512-zTwEpWOzZ2CiKcB93BLngUX59hQkuZjT2+SAQEscSm52peDW/getsawMcWF1rGRpMCX6D7nSJA3CzJ8gn13N/g==", + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.5.10.tgz", + "integrity": "sha512-af3qATX+m4Rnd9+wHcjJ4w2ijq+rAVP3CCinJQvFv1kgSu1W6jypUmvleJxcewdxmutM8dmIRZFxO/IQBZmP2Q==", "dependencies": { - "tslib": "^2.4.0" + "tslib": "2" } }, "node_modules/@grafana/data": { - "version": "11.1.4", - "resolved": "https://registry.npmjs.org/@grafana/data/-/data-11.1.4.tgz", - "integrity": "sha512-JvVtk3DheRA8MwS9+kUYfIeRq4snr9WO8WEM15hoohQRLesYN8DrIySgW8Pwo5FpVOQL8yEL0pbKH3U7PPbtvA==", + "version": "11.4.0", + "resolved": "https://registry.npmjs.org/@grafana/data/-/data-11.4.0.tgz", + "integrity": "sha512-/Og3njCvDRR+jYWAYlEjNZfyO0KaYiH/3Hvz5lXYd/B29sN8ZOfyvdB3lp+727y4sHIG+Jb1NiX0L3qHD7dLgQ==", "dependencies": { "@braintree/sanitize-url": "7.0.1", - "@grafana/schema": "11.1.4", + "@grafana/schema": "11.4.0", "@types/d3-interpolate": "^3.0.0", "@types/string-hash": "1.1.3", "d3-interpolate": "3.0.1", @@ -2182,17 +2179,17 @@ "history": "4.10.1", "lodash": "4.17.21", "marked": "12.0.2", - "marked-mangle": "1.1.7", + "marked-mangle": "1.1.9", "moment": "2.30.1", - "moment-timezone": "0.5.45", + "moment-timezone": "0.5.46", "ol": "7.4.0", "papaparse": "5.4.1", - "react-use": "17.5.0", + "react-use": "17.5.1", "rxjs": "7.8.1", "string-hash": "^1.1.3", "tinycolor2": "1.6.0", - "tslib": "2.6.3", - "uplot": "1.6.30", + "tslib": "2.7.0", + "uplot": "1.6.31", "xss": "^1.0.14" }, "peerDependencies": { @@ -2237,26 +2234,19 @@ } }, "node_modules/@grafana/e2e-selectors": { - "version": "11.1.4", - "resolved": "https://registry.npmjs.org/@grafana/e2e-selectors/-/e2e-selectors-11.1.4.tgz", - "integrity": "sha512-nbZ34X0Exk5B2cxfFKQLb5cael9XV8f3CGna8YHgxxqrmTL3qctj9v8TLEiG+8foVNChPJVAzB0i97mUnsGfbA==", + "version": "11.4.0", + "resolved": "https://registry.npmjs.org/@grafana/e2e-selectors/-/e2e-selectors-11.4.0.tgz", + "integrity": "sha512-6VRsmTpqtmNuXJvuUNJudHFdZJR7oc1DtZMDoaOY+3Y3yPU+4oEdM2MtsyYHPkMbfTONlJ4fdIC0WFnWhDIhLA==", "dependencies": { - "@grafana/tsconfig": "^1.3.0-rc1", - "tslib": "2.6.3", - "typescript": "5.4.5" + "@grafana/tsconfig": "^2.0.0", + "tslib": "2.7.0", + "typescript": "5.5.4" } }, - "node_modules/@grafana/e2e-selectors/node_modules/typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } + "node_modules/@grafana/e2e-selectors/node_modules/@grafana/tsconfig": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@grafana/tsconfig/-/tsconfig-2.0.0.tgz", + "integrity": "sha512-cxC3Htv/GidI5FeVGAzj/lYZTMMz/Cfsc8VOQFO3Ichjx3hUjyjeoBUIpVSVMnIjKUdA5ycdxtMYPHIuIrk8+A==" }, "node_modules/@grafana/e2e/node_modules/@babel/core": { "version": "7.23.2", @@ -2543,6 +2533,15 @@ "node": ">=14.17" } }, + "node_modules/@grafana/e2e/node_modules/uuid": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/@grafana/e2e/node_modules/workerpool": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", @@ -2810,89 +2809,685 @@ } }, "node_modules/@grafana/runtime": { - "version": "11.1.4", - "resolved": "https://registry.npmjs.org/@grafana/runtime/-/runtime-11.1.4.tgz", - "integrity": "sha512-iaIfjGdEFEo0YLs6be5SlVRH6SJDSxybaqM3w1LR9gQGLJd7XUU2Q0s+FFVU5WbohUemWWzKSln6wSGIYG5IGQ==", + "version": "11.5.0-216340", + "resolved": "https://registry.npmjs.org/@grafana/runtime/-/runtime-11.5.0-216340.tgz", + "integrity": "sha512-rszaOakmsdRTZigt8RSBqCHz1l4Qt1KBQ73f3AoHlE52kIBGEQRA+fAnEccnZE0GqYs6FOX3DmrQLnV1eaWuYw==", "dependencies": { - "@grafana/data": "11.1.4", - "@grafana/e2e-selectors": "11.1.4", + "@grafana/data": "11.5.0-216340", + "@grafana/e2e-selectors": "11.5.0-216340", "@grafana/faro-web-sdk": "^1.3.6", - "@grafana/schema": "11.1.4", - "@grafana/ui": "11.1.4", + "@grafana/schema": "11.5.0-216340", + "@grafana/ui": "11.5.0-216340", "history": "4.10.1", "lodash": "4.17.21", + "react-use": "17.6.0", "rxjs": "7.8.1", - "tslib": "2.6.3" + "tslib": "2.8.1" }, "peerDependencies": { "react": "^18.0.0", "react-dom": "^18.0.0" } }, - "node_modules/@grafana/scenes": { - "version": "5.20.4", - "resolved": "https://registry.npmjs.org/@grafana/scenes/-/scenes-5.20.4.tgz", - "integrity": "sha512-4ucIjm3jfWFz6U64WNBXQUzZAliCag9um8fMWrkHOKI2cLVJZOeL04ImYW+hropvkIuf8ENYgfCXo2IIKszbzQ==", + "node_modules/@grafana/runtime/node_modules/@emotion/react": { + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.14.0.tgz", + "integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==", "dependencies": { - "@floating-ui/react": "0.26.16", - "@grafana/e2e-selectors": "^11.0.0", - "@leeoniya/ufuzzy": "^1.0.14", - "@tanstack/react-virtual": "^3.9.0", - "react-grid-layout": "1.3.4", - "react-use": "17.5.0", - "react-virtualized-auto-sizer": "1.0.24", - "uuid": "^9.0.0" + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.13.5", + "@emotion/cache": "^11.14.0", + "@emotion/serialize": "^1.3.3", + "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0", + "@emotion/utils": "^1.4.2", + "@emotion/weak-memoize": "^0.4.0", + "hoist-non-react-statics": "^3.3.1" + }, + "peerDependencies": { + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@grafana/runtime/node_modules/@floating-ui/react": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.27.3.tgz", + "integrity": "sha512-CLHnes3ixIFFKVQDdICjel8muhFLOBdQH7fgtHNPY8UbCNqbeKZ262G7K66lGQOUQWWnYocf7ZbUsLJgGfsLHg==", + "dependencies": { + "@floating-ui/react-dom": "^2.1.2", + "@floating-ui/utils": "^0.2.9", + "tabbable": "^6.0.0" + }, + "peerDependencies": { + "react": ">=17.0.0", + "react-dom": ">=17.0.0" + } + }, + "node_modules/@grafana/runtime/node_modules/@grafana/data": { + "version": "11.5.0-216340", + "resolved": "https://registry.npmjs.org/@grafana/data/-/data-11.5.0-216340.tgz", + "integrity": "sha512-0W0qFErZVcaeee24UNygEpi+PgMOyuMQLWUPJNXALRz/ekehY0zEEwzmADcHK9mDsUv38uhIoc92NsU27FSDeQ==", + "dependencies": { + "@braintree/sanitize-url": "7.0.1", + "@grafana/schema": "11.5.0-216340", + "@types/d3-interpolate": "^3.0.0", + "@types/string-hash": "1.1.3", + "d3-interpolate": "3.0.1", + "date-fns": "4.1.0", + "dompurify": "3.2.3", + "eventemitter3": "5.0.1", + "fast_array_intersect": "1.1.0", + "history": "4.10.1", + "lodash": "4.17.21", + "marked": "15.0.6", + "marked-mangle": "1.1.10", + "moment": "2.30.1", + "moment-timezone": "0.5.46", + "ol": "7.4.0", + "papaparse": "5.4.1", + "react-use": "17.6.0", + "rxjs": "7.8.1", + "string-hash": "^1.1.3", + "tinycolor2": "1.6.0", + "tslib": "2.8.1", + "uplot": "1.6.31", + "xss": "^1.0.14" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@grafana/runtime/node_modules/@grafana/e2e-selectors": { + "version": "11.5.0-216340", + "resolved": "https://registry.npmjs.org/@grafana/e2e-selectors/-/e2e-selectors-11.5.0-216340.tgz", + "integrity": "sha512-zg4xjLSMqSePLxQ12o7cm3/9iVhE5UwYpxQbauqWPLnzQC9JupE6jxD/2XeTQidsRCaOZOastvqY3tR+dvKQ3A==", + "dependencies": { + "@grafana/tsconfig": "^2.0.0", + "semver": "7.6.3", + "tslib": "2.8.1", + "typescript": "5.7.3" + } + }, + "node_modules/@grafana/runtime/node_modules/@grafana/schema": { + "version": "11.5.0-216340", + "resolved": "https://registry.npmjs.org/@grafana/schema/-/schema-11.5.0-216340.tgz", + "integrity": "sha512-fZuMFnUl/CCbH9cS+MH61Gy9d2bwObztqq61jh2E3Um9VqUGzrV8VEmrgvpi948giekDAlP+65tINjVH9vBsGA==", + "dependencies": { + "tslib": "2.8.1" + } + }, + "node_modules/@grafana/runtime/node_modules/@grafana/tsconfig": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@grafana/tsconfig/-/tsconfig-2.0.0.tgz", + "integrity": "sha512-cxC3Htv/GidI5FeVGAzj/lYZTMMz/Cfsc8VOQFO3Ichjx3hUjyjeoBUIpVSVMnIjKUdA5ycdxtMYPHIuIrk8+A==" + }, + "node_modules/@grafana/runtime/node_modules/@grafana/ui": { + "version": "11.5.0-216340", + "resolved": "https://registry.npmjs.org/@grafana/ui/-/ui-11.5.0-216340.tgz", + "integrity": "sha512-RQ1iIooE6hMeLuQCtbqqkeQAZLH6/cAiT51l11JEj/4UQdu31zerzXZvQpaZ6EdsggNRXm3Wc5VyCv/MBqqi9w==", + "dependencies": { + "@emotion/css": "11.13.5", + "@emotion/react": "11.14.0", + "@emotion/serialize": "1.3.3", + "@floating-ui/react": "0.27.3", + "@grafana/data": "11.5.0-216340", + "@grafana/e2e-selectors": "11.5.0-216340", + "@grafana/faro-web-sdk": "^1.3.6", + "@grafana/schema": "11.5.0-216340", + "@hello-pangea/dnd": "17.0.0", + "@leeoniya/ufuzzy": "1.0.18", + "@monaco-editor/react": "4.6.0", + "@popperjs/core": "2.11.8", + "@react-aria/dialog": "3.5.20", + "@react-aria/focus": "3.19.0", + "@react-aria/overlays": "3.24.0", + "@react-aria/utils": "3.26.0", + "@tanstack/react-virtual": "^3.5.1", + "@types/jquery": "3.5.32", + "@types/lodash": "4.17.14", + "@types/react-table": "7.7.20", + "calculate-size": "1.1.1", + "classnames": "2.5.1", + "d3": "7.9.0", + "date-fns": "4.1.0", + "downshift": "^9.0.6", + "hoist-non-react-statics": "3.3.2", + "i18next": "^24.0.0", + "i18next-browser-languagedetector": "^8.0.0", + "immutable": "5.0.3", + "is-hotkey": "0.2.0", + "jquery": "3.7.1", + "lodash": "4.17.21", + "micro-memoize": "^4.1.2", + "moment": "2.30.1", + "monaco-editor": "0.34.1", + "ol": "7.4.0", + "prismjs": "1.29.0", + "rc-cascader": "3.31.0", + "rc-drawer": "7.2.0", + "rc-slider": "11.1.8", + "rc-time-picker": "^3.7.3", + "rc-tooltip": "6.3.2", + "react-calendar": "^5.1.0", + "react-colorful": "5.6.1", + "react-custom-scrollbars-2": "4.5.0", + "react-dropzone": "14.3.5", + "react-highlight-words": "0.20.0", + "react-hook-form": "^7.49.2", + "react-i18next": "^15.0.0", + "react-inlinesvg": "4.1.5", + "react-loading-skeleton": "3.5.0", + "react-router-dom": "5.3.3", + "react-router-dom-v5-compat": "^6.26.1", + "react-select": "5.9.0", + "react-table": "7.8.0", + "react-transition-group": "4.4.5", + "react-use": "17.6.0", + "react-window": "1.8.11", + "rxjs": "7.8.1", + "slate": "0.47.9", + "slate-plain-serializer": "0.7.13", + "slate-react": "0.22.10", + "tinycolor2": "1.6.0", + "tslib": "2.8.1", + "uplot": "1.6.31", + "uuid": "11.0.4" }, "peerDependencies": { - "@grafana/data": ">=10.4", - "@grafana/runtime": ">=10.4", - "@grafana/schema": ">=10.4", - "@grafana/ui": ">=10.4", "react": "^18.0.0", "react-dom": "^18.0.0" } }, + "node_modules/@grafana/runtime/node_modules/@leeoniya/ufuzzy": { + "version": "1.0.18", + "resolved": "https://registry.npmjs.org/@leeoniya/ufuzzy/-/ufuzzy-1.0.18.tgz", + "integrity": "sha512-5D54A86/VaPvJVf7UWJgy+UyhDtstUxq0iQd8UOZ2TG3NjV2oSoa9m4qW3VsotDD6dH2SNHDQwSPq+IAuudnag==" + }, + "node_modules/@grafana/runtime/node_modules/@react-aria/dialog": { + "version": "3.5.20", + "resolved": "https://registry.npmjs.org/@react-aria/dialog/-/dialog-3.5.20.tgz", + "integrity": "sha512-l0GZVLgeOd3kL3Yj8xQW7wN3gn9WW3RLd/SGI9t7ciTq+I/FhftjXCWzXLlOCCTLMf+gv7eazecECtmoWUaZWQ==", + "dependencies": { + "@react-aria/focus": "^3.19.0", + "@react-aria/overlays": "^3.24.0", + "@react-aria/utils": "^3.26.0", + "@react-types/dialog": "^3.5.14", + "@react-types/shared": "^3.26.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@grafana/runtime/node_modules/@react-aria/focus": { + "version": "3.19.0", + "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.19.0.tgz", + "integrity": "sha512-hPF9EXoUQeQl1Y21/rbV2H4FdUR2v+4/I0/vB+8U3bT1CJ+1AFj1hc/rqx2DqEwDlEwOHN+E4+mRahQmlybq0A==", + "dependencies": { + "@react-aria/interactions": "^3.22.5", + "@react-aria/utils": "^3.26.0", + "@react-types/shared": "^3.26.0", + "@swc/helpers": "^0.5.0", + "clsx": "^2.0.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@grafana/runtime/node_modules/@react-aria/overlays": { + "version": "3.24.0", + "resolved": "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.24.0.tgz", + "integrity": "sha512-0kAXBsMNTc/a3M07tK9Cdt/ea8CxTAEJ223g8YgqImlmoBBYAL7dl5G01IOj67TM64uWPTmZrOklBchHWgEm3A==", + "dependencies": { + "@react-aria/focus": "^3.19.0", + "@react-aria/i18n": "^3.12.4", + "@react-aria/interactions": "^3.22.5", + "@react-aria/ssr": "^3.9.7", + "@react-aria/utils": "^3.26.0", + "@react-aria/visually-hidden": "^3.8.18", + "@react-stately/overlays": "^3.6.12", + "@react-types/button": "^3.10.1", + "@react-types/overlays": "^3.8.11", + "@react-types/shared": "^3.26.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@grafana/runtime/node_modules/@react-aria/utils": { + "version": "3.26.0", + "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.26.0.tgz", + "integrity": "sha512-LkZouGSjjQ0rEqo4XJosS4L3YC/zzQkfRM3KoqK6fUOmUJ9t0jQ09WjiF+uOoG9u+p30AVg3TrZRUWmoTS+koQ==", + "dependencies": { + "@react-aria/ssr": "^3.9.7", + "@react-stately/utils": "^3.10.5", + "@react-types/shared": "^3.26.0", + "@swc/helpers": "^0.5.0", + "clsx": "^2.0.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@grafana/runtime/node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@grafana/runtime/node_modules/date-fns": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz", + "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/kossnocorp" + } + }, + "node_modules/@grafana/runtime/node_modules/file-selector": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/file-selector/-/file-selector-2.1.2.tgz", + "integrity": "sha512-QgXo+mXTe8ljeqUFaX3QVHc5osSItJ/Km+xpocx0aSqWGMSCf6qYs/VnzZgS864Pjn5iceMRFigeAV7AfTlaig==", + "dependencies": { + "tslib": "^2.7.0" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/@grafana/runtime/node_modules/i18next": { + "version": "24.2.1", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-24.2.1.tgz", + "integrity": "sha512-Q2wC1TjWcSikn1VAJg13UGIjc+okpFxQTxjVAymOnSA3RpttBQNMPf2ovcgoFVsV4QNxTfNZMAxorXZXsk4fBA==", + "funding": [ + { + "type": "individual", + "url": "https://locize.com" + }, + { + "type": "individual", + "url": "https://locize.com/i18next.html" + }, + { + "type": "individual", + "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project" + } + ], + "dependencies": { + "@babel/runtime": "^7.23.2" + }, + "peerDependencies": { + "typescript": "^5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@grafana/runtime/node_modules/i18next-browser-languagedetector": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-8.0.2.tgz", + "integrity": "sha512-shBvPmnIyZeD2VU5jVGIOWP7u9qNG3Lj7mpaiPFpbJ3LVfHZJvVzKR4v1Cb91wAOFpNw442N+LGPzHOHsten2g==", + "dependencies": { + "@babel/runtime": "^7.23.2" + } + }, + "node_modules/@grafana/runtime/node_modules/immutable": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.0.3.tgz", + "integrity": "sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw==" + }, + "node_modules/@grafana/runtime/node_modules/marked": { + "version": "15.0.6", + "resolved": "https://registry.npmjs.org/marked/-/marked-15.0.6.tgz", + "integrity": "sha512-Y07CUOE+HQXbVDCGl3LXggqJDbXDP2pArc2C1N1RRMN0ONiShoSsIInMd5Gsxupe7fKLpgimTV+HOJ9r7bA+pg==", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@grafana/runtime/node_modules/marked-mangle": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/marked-mangle/-/marked-mangle-1.1.10.tgz", + "integrity": "sha512-TrpN67SMJJdzXXWIzOd/QmnpsC5o1B44PUYaG2bh1XEbqVjA0UCI2ijFuE5LWESwKeI2gCP5FqcUHRGQwFtDIA==", + "peerDependencies": { + "marked": ">=4 <16" + } + }, + "node_modules/@grafana/runtime/node_modules/rc-cascader": { + "version": "3.31.0", + "resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-3.31.0.tgz", + "integrity": "sha512-uA5szCBHnpz+wHeuLkuSoZXFqSD9rVfrgOQUvcMexK3I3eQs2MLPzgsNCBi+paRevnsMFHLVhbmXPvueRgQVFA==", + "dependencies": { + "@babel/runtime": "^7.25.7", + "classnames": "^2.3.1", + "rc-select": "~14.16.2", + "rc-tree": "~5.11.0", + "rc-util": "^5.43.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@grafana/runtime/node_modules/rc-select": { + "version": "14.16.4", + "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-14.16.4.tgz", + "integrity": "sha512-jP6qf7+vjnxGvPpfPWbGYfFlSl3h8L2XcD4O7g2GYXmEeBC0mw+nPD7i++OOE8v3YGqP8xtYjRKAWCMLfjgxlw==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/trigger": "^2.1.1", + "classnames": "2.x", + "rc-motion": "^2.0.1", + "rc-overflow": "^1.3.1", + "rc-util": "^5.16.1", + "rc-virtual-list": "^3.5.2" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/@grafana/runtime/node_modules/rc-slider": { + "version": "11.1.8", + "resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-11.1.8.tgz", + "integrity": "sha512-2gg/72YFSpKP+Ja5AjC5DPL1YnV8DEITDQrcc1eASrUYjl0esptaBVJBh5nLTXCCp15eD8EuGjwezVGSHhs9tQ==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.5", + "rc-util": "^5.36.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@grafana/runtime/node_modules/rc-tooltip": { + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-6.3.2.tgz", + "integrity": "sha512-oA4HZIiZJbUQ5ojigM0y4XtWxaH/aQlJSzknjICRWNpqyemy1sL3X3iEQV2eSPBWEq+bqU3+aSs81z+28j9luA==", + "dependencies": { + "@babel/runtime": "^7.11.2", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.3.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@grafana/runtime/node_modules/rc-tree": { + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-5.11.0.tgz", + "integrity": "sha512-AAe4SNAug6GDvyfhbzzxURibBXZQK1USpTLkZa97CgOGDgFKL0brnBVyMR1xQpnCaiIR3QawRuJosYRDrU1bYA==", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "2.x", + "rc-motion": "^2.0.1", + "rc-util": "^5.16.1", + "rc-virtual-list": "^3.5.1" + }, + "engines": { + "node": ">=10.x" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/@grafana/runtime/node_modules/react-calendar": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/react-calendar/-/react-calendar-5.1.0.tgz", + "integrity": "sha512-09o/rQHPZGEi658IXAJtWfra1N69D1eFnuJ3FQm9qUVzlzNnos1+GWgGiUeSs22QOpNm32aoVFOimq0p3Ug9Eg==", + "dependencies": { + "@wojtekmaj/date-utils": "^1.1.3", + "clsx": "^2.0.0", + "get-user-locale": "^2.2.1", + "warning": "^4.0.0" + }, + "funding": { + "url": "https://github.com/wojtekmaj/react-calendar?sponsor=1" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@grafana/runtime/node_modules/react-dropzone": { + "version": "14.3.5", + "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-14.3.5.tgz", + "integrity": "sha512-9nDUaEEpqZLOz5v5SUcFA0CjM4vq8YbqO0WRls+EYT7+DvxUdzDPKNCPLqGfj3YL9MsniCLCD4RFA6M95V6KMQ==", + "dependencies": { + "attr-accept": "^2.2.4", + "file-selector": "^2.1.0", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">= 10.13" + }, + "peerDependencies": { + "react": ">= 16.8 || 18.0.0" + } + }, + "node_modules/@grafana/runtime/node_modules/react-from-dom": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/react-from-dom/-/react-from-dom-0.7.3.tgz", + "integrity": "sha512-9IK6R7+eD1wOAMC2ZCrENev0eK1625cb7vX+cnnOR9LBRNbjKiaJk4ij2zQbcefEXTWjXFhA7CTO1cd8wMONnw==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@grafana/runtime/node_modules/react-i18next": { + "version": "15.4.0", + "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-15.4.0.tgz", + "integrity": "sha512-Py6UkX3zV08RTvL6ZANRoBh9sL/ne6rQq79XlkHEdd82cZr2H9usbWpUNVadJntIZP2pu3M2rL1CN+5rQYfYFw==", + "dependencies": { + "@babel/runtime": "^7.25.0", + "html-parse-stringify": "^3.0.1" + }, + "peerDependencies": { + "i18next": ">= 23.2.3", + "react": ">= 16.8.0" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, + "node_modules/@grafana/runtime/node_modules/react-inlinesvg": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/react-inlinesvg/-/react-inlinesvg-4.1.5.tgz", + "integrity": "sha512-DcCnmHhpKAUNp6iLPEEB2HJP3simDlyiy8JPZ1DwGCynrQQGQD04GJTFtai8JK8vRhCmoiBV6hSgj31D42Z3Lg==", + "dependencies": { + "react-from-dom": "^0.7.3" + }, + "peerDependencies": { + "react": "16.8 - 19" + } + }, + "node_modules/@grafana/runtime/node_modules/react-select": { + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/react-select/-/react-select-5.9.0.tgz", + "integrity": "sha512-nwRKGanVHGjdccsnzhFte/PULziueZxGD8LL2WojON78Mvnq7LdAMEtu2frrwld1fr3geixg3iiMBIc/LLAZpw==", + "dependencies": { + "@babel/runtime": "^7.12.0", + "@emotion/cache": "^11.4.0", + "@emotion/react": "^11.8.1", + "@floating-ui/dom": "^1.0.1", + "@types/react-transition-group": "^4.4.0", + "memoize-one": "^6.0.0", + "prop-types": "^15.6.0", + "react-transition-group": "^4.3.0", + "use-isomorphic-layout-effect": "^1.2.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@grafana/runtime/node_modules/react-select/node_modules/memoize-one": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", + "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" + }, + "node_modules/@grafana/runtime/node_modules/react-use": { + "version": "17.6.0", + "resolved": "https://registry.npmjs.org/react-use/-/react-use-17.6.0.tgz", + "integrity": "sha512-OmedEScUMKFfzn1Ir8dBxiLLSOzhKe/dPZwVxcujweSj45aNM7BEGPb9BEVIgVEqEXx6f3/TsXzwIktNgUR02g==", + "dependencies": { + "@types/js-cookie": "^2.2.6", + "@xobotyi/scrollbar-width": "^1.9.5", + "copy-to-clipboard": "^3.3.1", + "fast-deep-equal": "^3.1.3", + "fast-shallow-equal": "^1.0.0", + "js-cookie": "^2.2.1", + "nano-css": "^5.6.2", + "react-universal-interface": "^0.6.2", + "resize-observer-polyfill": "^1.5.1", + "screenfull": "^5.1.0", + "set-harmonic-interval": "^1.0.1", + "throttle-debounce": "^3.0.1", + "ts-easing": "^0.2.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/@grafana/runtime/node_modules/react-window": { + "version": "1.8.11", + "resolved": "https://registry.npmjs.org/react-window/-/react-window-1.8.11.tgz", + "integrity": "sha512-+SRbUVT2scadgFSWx+R1P754xHPEqvcfSfVX10QYg6POOz+WNgkN48pS+BtZNIMGiL1HYrSEiCkwsMS15QogEQ==", + "dependencies": { + "@babel/runtime": "^7.0.0", + "memoize-one": ">=3.1.1 <6" + }, + "engines": { + "node": ">8.0.0" + }, + "peerDependencies": { + "react": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@grafana/runtime/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@grafana/runtime/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + }, + "node_modules/@grafana/runtime/node_modules/typescript": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/@grafana/runtime/node_modules/uuid": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.0.4.tgz", + "integrity": "sha512-IzL6VtTTYcAhA/oghbFJ1Dkmqev+FpQWnCBaKq/gUluLxliWvO8DPFWfIviRmYbtaavtSQe4WBL++rFjdcGWEg==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/esm/bin/uuid" + } + }, "node_modules/@grafana/schema": { - "version": "11.1.4", - "resolved": "https://registry.npmjs.org/@grafana/schema/-/schema-11.1.4.tgz", - "integrity": "sha512-U4GxHJe1jUSxBJktlwmy4egLsemmy+cfOc3R+pFASprTvUqsFE5l9MpZDAKF3pPY6EeBQWIemGg4ig8ydwbuOQ==", + "version": "11.4.0", + "resolved": "https://registry.npmjs.org/@grafana/schema/-/schema-11.4.0.tgz", + "integrity": "sha512-ZcUZtVdNSuBmTjwPAgWwQ/9/ilozAXggfXye797Odp3mXU9erQX7CqV9JV3y5pyj1+KMd+khzfjxEZotsjHWIA==", "dependencies": { - "tslib": "2.6.3" + "tslib": "2.7.0" } }, "node_modules/@grafana/tsconfig": { "version": "1.3.0-rc1", "resolved": "https://registry.npmjs.org/@grafana/tsconfig/-/tsconfig-1.3.0-rc1.tgz", - "integrity": "sha512-bi+qFOptejg/a2/WmCDVxQLQtobhKd3y+B6mxFBOMmzElqgr30MPnN60THTou6dGwtfw+ExX1H5FGm9DM35Qrw==" + "integrity": "sha512-bi+qFOptejg/a2/WmCDVxQLQtobhKd3y+B6mxFBOMmzElqgr30MPnN60THTou6dGwtfw+ExX1H5FGm9DM35Qrw==", + "dev": true }, "node_modules/@grafana/ui": { - "version": "11.1.4", - "resolved": "https://registry.npmjs.org/@grafana/ui/-/ui-11.1.4.tgz", - "integrity": "sha512-aUCRmgjkKKjHz9nIr8gOjIImjMW1vUZOWG8b2tmSWvmZKwm+nKWmfgFOA1EtPDPENwWc9NzRBaQ8fJ6yFuk91g==", - "dependencies": { - "@emotion/css": "11.11.2", - "@emotion/react": "11.11.4", - "@floating-ui/react": "0.26.16", - "@grafana/data": "11.1.4", - "@grafana/e2e-selectors": "11.1.4", + "version": "11.4.0", + "resolved": "https://registry.npmjs.org/@grafana/ui/-/ui-11.4.0.tgz", + "integrity": "sha512-Z2J+b6RCizecdn7gbribmzkJIZxANXFp6wvt0pZa4toZ/BTe9CK30Y2/x1KiGa9VAzIhS1pqihc+PrcJU9I5LA==", + "dependencies": { + "@emotion/css": "11.13.4", + "@emotion/react": "11.13.3", + "@emotion/serialize": "1.3.2", + "@floating-ui/react": "0.26.24", + "@grafana/data": "11.4.0", + "@grafana/e2e-selectors": "11.4.0", "@grafana/faro-web-sdk": "^1.3.6", - "@grafana/schema": "11.1.4", + "@grafana/schema": "11.4.0", + "@hello-pangea/dnd": "16.6.0", "@leeoniya/ufuzzy": "1.0.14", "@monaco-editor/react": "4.6.0", "@popperjs/core": "2.11.8", - "@react-aria/dialog": "3.5.14", - "@react-aria/focus": "3.17.1", - "@react-aria/overlays": "3.22.1", - "@react-aria/utils": "3.24.1", + "@react-aria/dialog": "3.5.18", + "@react-aria/focus": "3.18.3", + "@react-aria/overlays": "3.23.3", + "@react-aria/utils": "3.25.3", + "@tanstack/react-virtual": "^3.5.1", + "@types/jquery": "3.5.31", + "@types/lodash": "4.17.10", + "@types/react-table": "7.7.20", "ansicolor": "1.1.100", "calculate-size": "1.1.1", "classnames": "2.5.1", "d3": "7.9.0", "date-fns": "3.6.0", + "downshift": "^9.0.6", "hoist-non-react-statics": "3.3.2", "i18next": "^23.0.0", "i18next-browser-languagedetector": "^7.0.2", - "immutable": "4.3.6", + "immutable": "4.3.7", "is-hotkey": "0.2.0", "jquery": "3.7.1", "lodash": "4.17.21", @@ -2901,51 +3496,115 @@ "monaco-editor": "0.34.1", "ol": "7.4.0", "prismjs": "1.29.0", - "rc-cascader": "3.26.0", + "rc-cascader": "3.28.1", "rc-drawer": "7.2.0", - "rc-slider": "10.6.2", + "rc-slider": "11.1.7", "rc-time-picker": "^3.7.3", - "rc-tooltip": "6.2.0", - "react-beautiful-dnd": "13.1.1", - "react-calendar": "4.8.0", + "rc-tooltip": "6.2.1", + "react-calendar": "5.0.0", "react-colorful": "5.6.1", "react-custom-scrollbars-2": "4.5.0", - "react-dropzone": "14.2.3", + "react-dropzone": "14.2.9", "react-highlight-words": "0.20.0", "react-hook-form": "^7.49.2", "react-i18next": "^14.0.0", "react-inlinesvg": "3.0.2", - "react-loading-skeleton": "3.4.0", - "react-router-dom": "5.3.3", - "react-select": "5.8.0", + "react-loading-skeleton": "3.5.0", + "react-router-dom-v5-compat": "^6.26.1", + "react-select": "5.8.1", "react-table": "7.8.0", "react-transition-group": "4.4.5", - "react-use": "17.5.0", + "react-use": "17.5.1", "react-window": "1.8.10", "rxjs": "7.8.1", "slate": "0.47.9", "slate-plain-serializer": "0.7.13", "slate-react": "0.22.10", "tinycolor2": "1.6.0", - "tslib": "2.6.3", - "uplot": "1.6.30", + "tslib": "2.7.0", + "uplot": "1.6.31", "uuid": "9.0.1" }, "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@grafana/ui/node_modules/@emotion/css": { + "version": "11.13.4", + "resolved": "https://registry.npmjs.org/@emotion/css/-/css-11.13.4.tgz", + "integrity": "sha512-CthbOD5EBw+iN0rfM96Tuv5kaZN4nxPyYDvGUs0bc7wZBBiU/0mse+l+0O9RshW2d+v5HH1cme+BAbLJ/3Folw==", + "dependencies": { + "@emotion/babel-plugin": "^11.12.0", + "@emotion/cache": "^11.13.0", + "@emotion/serialize": "^1.3.0", + "@emotion/sheet": "^1.4.0", + "@emotion/utils": "^1.4.0" + } + }, + "node_modules/@grafana/ui/node_modules/@emotion/serialize": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.2.tgz", + "integrity": "sha512-grVnMvVPK9yUVE6rkKfAJlYZgo0cu3l9iMC77V7DW6E1DUIrU68pSEXRmFZFOFB1QFo57TncmOcvcbMDWsL4yA==", + "dependencies": { + "@emotion/hash": "^0.9.2", + "@emotion/memoize": "^0.9.0", + "@emotion/unitless": "^0.10.0", + "@emotion/utils": "^1.4.1", + "csstype": "^3.0.2" + } + }, + "node_modules/@grafana/ui/node_modules/@hello-pangea/dnd": { + "version": "16.6.0", + "resolved": "https://registry.npmjs.org/@hello-pangea/dnd/-/dnd-16.6.0.tgz", + "integrity": "sha512-vfZ4GydqbtUPXSLfAvKvXQ6xwRzIjUSjVU0Sx+70VOhc2xx6CdmJXJ8YhH70RpbTUGjxctslQTHul9sIOxCfFQ==", + "dependencies": { + "@babel/runtime": "^7.24.1", + "css-box-model": "^1.2.1", + "memoize-one": "^6.0.0", + "raf-schd": "^4.0.3", + "react-redux": "^8.1.3", + "redux": "^4.2.1", + "use-memo-one": "^1.1.3" + }, + "peerDependencies": { + "react": "^16.8.5 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.5 || ^17.0.0 || ^18.0.0" } }, - "node_modules/@grafana/ui/node_modules/@emotion/css": { - "version": "11.11.2", - "resolved": "https://registry.npmjs.org/@emotion/css/-/css-11.11.2.tgz", - "integrity": "sha512-VJxe1ucoMYMS7DkiMdC2T7PWNbrEI0a39YRiyDvK2qq4lXwjRbVP/z4lpG+odCsRzadlR+1ywwrTzhdm5HNdew==", + "node_modules/@grafana/ui/node_modules/@types/jquery": { + "version": "3.5.31", + "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.31.tgz", + "integrity": "sha512-rf/iB+cPJ/YZfMwr+FVuQbm7IaWC4y3FVYfVDxRGqmUCFjjPII0HWaP0vTPJGp6m4o13AXySCcMbWfrWtBFAKw==", + "dependencies": { + "@types/sizzle": "*" + } + }, + "node_modules/@grafana/ui/node_modules/@types/lodash": { + "version": "4.17.10", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.10.tgz", + "integrity": "sha512-YpS0zzoduEhuOWjAotS6A5AVCva7X4lVlYLF0FYHAY9sdraBfnatttHItlWeZdGhuEkf+OzMNg2ZYAx8t+52uQ==" + }, + "node_modules/@grafana/ui/node_modules/memoize-one": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", + "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" + }, + "node_modules/@grafana/ui/node_modules/rc-slider": { + "version": "11.1.7", + "resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-11.1.7.tgz", + "integrity": "sha512-ytYbZei81TX7otdC0QvoYD72XSlxvTihNth5OeZ6PMXyEDq/vHdWFulQmfDGyXK1NwKwSlKgpvINOa88uT5g2A==", "dependencies": { - "@emotion/babel-plugin": "^11.11.0", - "@emotion/cache": "^11.11.0", - "@emotion/serialize": "^1.1.2", - "@emotion/sheet": "^1.2.2", - "@emotion/utils": "^1.2.1" + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.5", + "rc-util": "^5.36.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" } }, "node_modules/@grafana/ui/node_modules/uuid": { @@ -2960,6 +3619,66 @@ "uuid": "dist/bin/uuid" } }, + "node_modules/@hello-pangea/dnd": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@hello-pangea/dnd/-/dnd-17.0.0.tgz", + "integrity": "sha512-LDDPOix/5N0j5QZxubiW9T0M0+1PR0rTDWeZF5pu1Tz91UQnuVK4qQ/EjY83Qm2QeX0eM8qDXANfDh3VVqtR4Q==", + "dependencies": { + "@babel/runtime": "^7.25.6", + "css-box-model": "^1.2.1", + "memoize-one": "^6.0.0", + "raf-schd": "^4.0.3", + "react-redux": "^9.1.2", + "redux": "^5.0.1", + "use-memo-one": "^1.1.3" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@hello-pangea/dnd/node_modules/@types/react": { + "version": "19.0.4", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.4.tgz", + "integrity": "sha512-3O4QisJDYr1uTUMZHA2YswiQZRq+Pd8D+GdVFYikTutYsTz+QZgWkAPnP7rx9txoI6EXKcPiluMqWPFV3tT9Wg==", + "optional": true, + "peer": true, + "dependencies": { + "csstype": "^3.0.2" + } + }, + "node_modules/@hello-pangea/dnd/node_modules/memoize-one": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", + "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" + }, + "node_modules/@hello-pangea/dnd/node_modules/react-redux": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.2.0.tgz", + "integrity": "sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g==", + "dependencies": { + "@types/use-sync-external-store": "^0.0.6", + "use-sync-external-store": "^1.4.0" + }, + "peerDependencies": { + "@types/react": "^18.2.25 || ^19", + "react": "^18.0 || ^19", + "redux": "^5.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "redux": { + "optional": true + } + } + }, + "node_modules/@hello-pangea/dnd/node_modules/redux": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", + "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==" + }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.14", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", @@ -2996,34 +3715,34 @@ "dev": true }, "node_modules/@internationalized/date": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.5.5.tgz", - "integrity": "sha512-H+CfYvOZ0LTJeeLOqm19E3uj/4YjrmOFtBufDHPfvtI80hFAMqtrp7oCACpe4Cil5l8S0Qu/9dYfZc/5lY8WQQ==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.6.0.tgz", + "integrity": "sha512-+z6ti+CcJnRlLHok/emGEsWQhe7kfSmEW+/6qCzvKY67YPh7YOBfvc7+/+NXq+zJlbArg30tYpqLjNgcAYv2YQ==", "dependencies": { "@swc/helpers": "^0.5.0" } }, "node_modules/@internationalized/message": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@internationalized/message/-/message-3.1.4.tgz", - "integrity": "sha512-Dygi9hH1s7V9nha07pggCkvmRfDd3q2lWnMGvrJyrOwYMe1yj4D2T9BoH9I6MGR7xz0biQrtLPsqUkqXzIrBOw==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@internationalized/message/-/message-3.1.6.tgz", + "integrity": "sha512-JxbK3iAcTIeNr1p0WIFg/wQJjIzJt9l/2KNY/48vXV7GRGZSv3zMxJsce008fZclk2cDC8y0Ig3odceHO7EfNQ==", "dependencies": { "@swc/helpers": "^0.5.0", "intl-messageformat": "^10.1.0" } }, "node_modules/@internationalized/number": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/@internationalized/number/-/number-3.5.3.tgz", - "integrity": "sha512-rd1wA3ebzlp0Mehj5YTuTI50AQEx80gWFyHcQu+u91/5NgdwBecO8BH6ipPfE+lmQ9d63vpB3H9SHoIUiupllw==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@internationalized/number/-/number-3.6.0.tgz", + "integrity": "sha512-PtrRcJVy7nw++wn4W2OuePQQfTqDzfusSuY1QTtui4wa7r+rGVtR75pO8CyKvHvzyQYi3Q1uO5sY0AsB4e65Bw==", "dependencies": { "@swc/helpers": "^0.5.0" } }, "node_modules/@internationalized/string": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/@internationalized/string/-/string-3.2.3.tgz", - "integrity": "sha512-9kpfLoA8HegiWTeCbR2livhdVeKobCnVv8tlJ6M2jF+4tcMqDo94ezwlnrUANBWPgd8U7OXIHCk2Ov2qhk4KXw==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@internationalized/string/-/string-3.2.5.tgz", + "integrity": "sha512-rKs71Zvl2OKOHM+mzAFMIyqR5hI1d1O6BBkMK2/lkfg3fkmVh9Eeg0awcA8W2WqYqDOv6a86DIOlFpggwLtbuw==", "dependencies": { "@swc/helpers": "^0.5.0" } @@ -4310,35 +5029,35 @@ } }, "node_modules/@react-aria/dialog": { - "version": "3.5.14", - "resolved": "https://registry.npmjs.org/@react-aria/dialog/-/dialog-3.5.14.tgz", - "integrity": "sha512-oqDCjQ8hxe3GStf48XWBf2CliEnxlR9GgSYPHJPUc69WBj68D9rVcCW3kogJnLAnwIyf3FnzbX4wSjvUa88sAQ==", - "dependencies": { - "@react-aria/focus": "^3.17.1", - "@react-aria/overlays": "^3.22.1", - "@react-aria/utils": "^3.24.1", - "@react-types/dialog": "^3.5.10", - "@react-types/shared": "^3.23.1", + "version": "3.5.18", + "resolved": "https://registry.npmjs.org/@react-aria/dialog/-/dialog-3.5.18.tgz", + "integrity": "sha512-j0x0OwDZKyW2GqBZl2Dw/pHl0uSCzhHOg5jNeulkZC8xQa8COuksQf5NFzPmgRPnzqpbgvSzCSs41ymS8spmFg==", + "dependencies": { + "@react-aria/focus": "^3.18.3", + "@react-aria/overlays": "^3.23.3", + "@react-aria/utils": "^3.25.3", + "@react-types/dialog": "^3.5.13", + "@react-types/shared": "^3.25.0", "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" } }, "node_modules/@react-aria/focus": { - "version": "3.17.1", - "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.17.1.tgz", - "integrity": "sha512-FLTySoSNqX++u0nWZJPPN5etXY0WBxaIe/YuL/GTEeuqUIuC/2bJSaw5hlsM6T2yjy6Y/VAxBcKSdAFUlU6njQ==", + "version": "3.18.3", + "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.18.3.tgz", + "integrity": "sha512-WKUElg+5zS0D3xlVn8MntNnkzJql2J6MuzAMP8Sv5WTgFDse/XGR842dsxPTIyKKdrWVCRegCuwa4m3n/GzgJw==", "dependencies": { - "@react-aria/interactions": "^3.21.3", - "@react-aria/utils": "^3.24.1", - "@react-types/shared": "^3.23.1", + "@react-aria/interactions": "^3.22.3", + "@react-aria/utils": "^3.25.3", + "@react-types/shared": "^3.25.0", "@swc/helpers": "^0.5.0", "clsx": "^2.0.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" } }, "node_modules/@react-aria/focus/node_modules/clsx": { @@ -4350,36 +5069,36 @@ } }, "node_modules/@react-aria/i18n": { - "version": "3.12.1", - "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.12.1.tgz", - "integrity": "sha512-0q3gyogF9Ekah+9LOo6tcfshxsk2Ope+KdbtFHJVhznedMxn6RpHGcVur5ImbQ1dYafA5CmjBUGJW70b56+BGA==", - "dependencies": { - "@internationalized/date": "^3.5.5", - "@internationalized/message": "^3.1.4", - "@internationalized/number": "^3.5.3", - "@internationalized/string": "^3.2.3", - "@react-aria/ssr": "^3.9.5", - "@react-aria/utils": "^3.25.1", - "@react-types/shared": "^3.24.1", + "version": "3.12.4", + "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.12.4.tgz", + "integrity": "sha512-j9+UL3q0Ls8MhXV9gtnKlyozq4aM95YywXqnmJtzT1rYeBx7w28hooqrWkCYLfqr4OIryv1KUnPiCSLwC2OC7w==", + "dependencies": { + "@internationalized/date": "^3.6.0", + "@internationalized/message": "^3.1.6", + "@internationalized/number": "^3.6.0", + "@internationalized/string": "^3.2.5", + "@react-aria/ssr": "^3.9.7", + "@react-aria/utils": "^3.26.0", + "@react-types/shared": "^3.26.0", "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-aria/i18n/node_modules/@react-aria/utils": { - "version": "3.25.1", - "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.25.1.tgz", - "integrity": "sha512-5Uj864e7T5+yj78ZfLnfHqmypLiqW2mN+nsdslog2z5ssunTqjolVeM15ootXskjISlZ7MojLpq97kIC4nlnAw==", + "version": "3.26.0", + "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.26.0.tgz", + "integrity": "sha512-LkZouGSjjQ0rEqo4XJosS4L3YC/zzQkfRM3KoqK6fUOmUJ9t0jQ09WjiF+uOoG9u+p30AVg3TrZRUWmoTS+koQ==", "dependencies": { - "@react-aria/ssr": "^3.9.5", - "@react-stately/utils": "^3.10.2", - "@react-types/shared": "^3.24.1", + "@react-aria/ssr": "^3.9.7", + "@react-stately/utils": "^3.10.5", + "@react-types/shared": "^3.26.0", "@swc/helpers": "^0.5.0", "clsx": "^2.0.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-aria/i18n/node_modules/clsx": { @@ -4391,32 +5110,32 @@ } }, "node_modules/@react-aria/interactions": { - "version": "3.22.1", - "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.22.1.tgz", - "integrity": "sha512-5TLzQaDAQQ5C70yG8GInbO4wIylKY67RfTIIwQPGR/4n5OIjbUD8BOj3NuSsuZ/frUPaBXo1VEBBmSO23fxkjw==", + "version": "3.22.5", + "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.22.5.tgz", + "integrity": "sha512-kMwiAD9E0TQp+XNnOs13yVJghiy8ET8L0cbkeuTgNI96sOAp/63EJ1FSrDf17iD8sdjt41LafwX/dKXW9nCcLQ==", "dependencies": { - "@react-aria/ssr": "^3.9.5", - "@react-aria/utils": "^3.25.1", - "@react-types/shared": "^3.24.1", + "@react-aria/ssr": "^3.9.7", + "@react-aria/utils": "^3.26.0", + "@react-types/shared": "^3.26.0", "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-aria/interactions/node_modules/@react-aria/utils": { - "version": "3.25.1", - "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.25.1.tgz", - "integrity": "sha512-5Uj864e7T5+yj78ZfLnfHqmypLiqW2mN+nsdslog2z5ssunTqjolVeM15ootXskjISlZ7MojLpq97kIC4nlnAw==", + "version": "3.26.0", + "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.26.0.tgz", + "integrity": "sha512-LkZouGSjjQ0rEqo4XJosS4L3YC/zzQkfRM3KoqK6fUOmUJ9t0jQ09WjiF+uOoG9u+p30AVg3TrZRUWmoTS+koQ==", "dependencies": { - "@react-aria/ssr": "^3.9.5", - "@react-stately/utils": "^3.10.2", - "@react-types/shared": "^3.24.1", + "@react-aria/ssr": "^3.9.7", + "@react-stately/utils": "^3.10.5", + "@react-types/shared": "^3.26.0", "@swc/helpers": "^0.5.0", "clsx": "^2.0.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-aria/interactions/node_modules/clsx": { @@ -4428,31 +5147,31 @@ } }, "node_modules/@react-aria/overlays": { - "version": "3.22.1", - "resolved": "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.22.1.tgz", - "integrity": "sha512-GHiFMWO4EQ6+j6b5QCnNoOYiyx1Gk8ZiwLzzglCI4q1NY5AG2EAmfU4Z1+Gtrf2S5Y0zHbumC7rs9GnPoGLUYg==", - "dependencies": { - "@react-aria/focus": "^3.17.1", - "@react-aria/i18n": "^3.11.1", - "@react-aria/interactions": "^3.21.3", - "@react-aria/ssr": "^3.9.4", - "@react-aria/utils": "^3.24.1", - "@react-aria/visually-hidden": "^3.8.12", - "@react-stately/overlays": "^3.6.7", - "@react-types/button": "^3.9.4", - "@react-types/overlays": "^3.8.7", - "@react-types/shared": "^3.23.1", + "version": "3.23.3", + "resolved": "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.23.3.tgz", + "integrity": "sha512-vRW4DL466a27BBIP6dQqmmei4nX/nsur6DyF0Hmd46ygwOdvdA+5MwvXZUz9yUamB79UeS9BMQZuBVwhjoMwBQ==", + "dependencies": { + "@react-aria/focus": "^3.18.3", + "@react-aria/i18n": "^3.12.3", + "@react-aria/interactions": "^3.22.3", + "@react-aria/ssr": "^3.9.6", + "@react-aria/utils": "^3.25.3", + "@react-aria/visually-hidden": "^3.8.16", + "@react-stately/overlays": "^3.6.11", + "@react-types/button": "^3.10.0", + "@react-types/overlays": "^3.8.10", + "@react-types/shared": "^3.25.0", "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" } }, "node_modules/@react-aria/ssr": { - "version": "3.9.5", - "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.5.tgz", - "integrity": "sha512-xEwGKoysu+oXulibNUSkXf8itW0npHHTa6c4AyYeZIJyRoegeteYuFpZUBPtIDE8RfHdNsSmE1ssOkxRnwbkuQ==", + "version": "3.9.7", + "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.7.tgz", + "integrity": "sha512-GQygZaGlmYjmYM+tiNBA5C6acmiDWF52Nqd40bBp0Znk4M4hP+LTmI0lpI1BuKMw45T8RIhrAsICIfKwZvi2Gg==", "dependencies": { "@swc/helpers": "^0.5.0" }, @@ -4460,22 +5179,22 @@ "node": ">= 12" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-aria/utils": { - "version": "3.24.1", - "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.24.1.tgz", - "integrity": "sha512-O3s9qhPMd6n42x9sKeJ3lhu5V1Tlnzhu6Yk8QOvDuXf7UGuUjXf9mzfHJt1dYzID4l9Fwm8toczBzPM9t0jc8Q==", + "version": "3.25.3", + "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.25.3.tgz", + "integrity": "sha512-PR5H/2vaD8fSq0H/UB9inNbc8KDcVmW6fYAfSWkkn+OAdhTTMVKqXXrZuZBWyFfSD5Ze7VN6acr4hrOQm2bmrA==", "dependencies": { - "@react-aria/ssr": "^3.9.4", - "@react-stately/utils": "^3.10.1", - "@react-types/shared": "^3.23.1", + "@react-aria/ssr": "^3.9.6", + "@react-stately/utils": "^3.10.4", + "@react-types/shared": "^3.25.0", "@swc/helpers": "^0.5.0", "clsx": "^2.0.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" } }, "node_modules/@react-aria/utils/node_modules/clsx": { @@ -4487,32 +5206,32 @@ } }, "node_modules/@react-aria/visually-hidden": { - "version": "3.8.14", - "resolved": "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.8.14.tgz", - "integrity": "sha512-DV3yagbAgO4ywQTq6D/AxcIaTC8c77r/SxlIMhQBMQ6vScJWTCh6zFG55wmLe3NKqvRrowv1OstlmYfZQ4v/XA==", + "version": "3.8.18", + "resolved": "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.8.18.tgz", + "integrity": "sha512-l/0igp+uub/salP35SsNWq5mGmg3G5F5QMS1gDZ8p28n7CgjvzyiGhJbbca7Oxvaw1HRFzVl9ev+89I7moNnFQ==", "dependencies": { - "@react-aria/interactions": "^3.22.1", - "@react-aria/utils": "^3.25.1", - "@react-types/shared": "^3.24.1", + "@react-aria/interactions": "^3.22.5", + "@react-aria/utils": "^3.26.0", + "@react-types/shared": "^3.26.0", "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-aria/visually-hidden/node_modules/@react-aria/utils": { - "version": "3.25.1", - "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.25.1.tgz", - "integrity": "sha512-5Uj864e7T5+yj78ZfLnfHqmypLiqW2mN+nsdslog2z5ssunTqjolVeM15ootXskjISlZ7MojLpq97kIC4nlnAw==", + "version": "3.26.0", + "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.26.0.tgz", + "integrity": "sha512-LkZouGSjjQ0rEqo4XJosS4L3YC/zzQkfRM3KoqK6fUOmUJ9t0jQ09WjiF+uOoG9u+p30AVg3TrZRUWmoTS+koQ==", "dependencies": { - "@react-aria/ssr": "^3.9.5", - "@react-stately/utils": "^3.10.2", - "@react-types/shared": "^3.24.1", + "@react-aria/ssr": "^3.9.7", + "@react-stately/utils": "^3.10.5", + "@react-types/shared": "^3.26.0", "@swc/helpers": "^0.5.0", "clsx": "^2.0.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-aria/visually-hidden/node_modules/clsx": { @@ -4524,69 +5243,69 @@ } }, "node_modules/@react-stately/overlays": { - "version": "3.6.9", - "resolved": "https://registry.npmjs.org/@react-stately/overlays/-/overlays-3.6.9.tgz", - "integrity": "sha512-4chfyzKw7P2UEainm0yzjUgYwG1ovBejN88eTrn+O62x5huuMCwe0cbMxmYh4y7IhRFSee3jIJd0SP0u/+i39w==", + "version": "3.6.12", + "resolved": "https://registry.npmjs.org/@react-stately/overlays/-/overlays-3.6.12.tgz", + "integrity": "sha512-QinvZhwZgj8obUyPIcyURSCjTZlqZYRRCS60TF8jH8ZpT0tEAuDb3wvhhSXuYA3Xo9EHLwvLjEf3tQKKdAQArw==", "dependencies": { - "@react-stately/utils": "^3.10.2", - "@react-types/overlays": "^3.8.9", + "@react-stately/utils": "^3.10.5", + "@react-types/overlays": "^3.8.11", "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-stately/utils": { - "version": "3.10.2", - "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.10.2.tgz", - "integrity": "sha512-fh6OTQtbeQC0ywp6LJuuKs6tKIgFvt/DlIZEcIpGho6/oZG229UnIk6TUekwxnDbumuYyan6D9EgUtEMmT8UIg==", + "version": "3.10.5", + "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.10.5.tgz", + "integrity": "sha512-iMQSGcpaecghDIh3mZEpZfoFH3ExBwTtuBEcvZ2XnGzCgQjeYXcMdIUwAfVQLXFTdHUHGF6Gu6/dFrYsCzySBQ==", "dependencies": { "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-types/button": { - "version": "3.9.6", - "resolved": "https://registry.npmjs.org/@react-types/button/-/button-3.9.6.tgz", - "integrity": "sha512-8lA+D5JLbNyQikf8M/cPP2cji91aVTcqjrGpDqI7sQnaLFikM8eFR6l1ZWGtZS5MCcbfooko77ha35SYplSQvw==", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@react-types/button/-/button-3.10.1.tgz", + "integrity": "sha512-XTtap8o04+4QjPNAshFWOOAusUTxQlBjU2ai0BTVLShQEjHhRVDBIWsI2B2FKJ4KXT6AZ25llaxhNrreWGonmA==", "dependencies": { - "@react-types/shared": "^3.24.1" + "@react-types/shared": "^3.26.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-types/dialog": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/@react-types/dialog/-/dialog-3.5.12.tgz", - "integrity": "sha512-JmpQbSpXltqEyYfEwoqDolABIiojeExkqolHNdQlayIsfFuSxZxNwXZPOpz58Ri/iwv21JP7K3QF0Gb2Ohxl9w==", + "version": "3.5.14", + "resolved": "https://registry.npmjs.org/@react-types/dialog/-/dialog-3.5.14.tgz", + "integrity": "sha512-OXWMjrALwrlgw8aHD8SeRm/s3tbAssdaEh2h73KUSeFau3fU3n5mfKv+WnFqsEaOtN261o48l7hTlS6615H9AA==", "dependencies": { - "@react-types/overlays": "^3.8.9", - "@react-types/shared": "^3.24.1" + "@react-types/overlays": "^3.8.11", + "@react-types/shared": "^3.26.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-types/overlays": { - "version": "3.8.9", - "resolved": "https://registry.npmjs.org/@react-types/overlays/-/overlays-3.8.9.tgz", - "integrity": "sha512-9ni9upQgXPnR+K9cWmbYWvm3ll9gH8P/XsEZprqIV5zNLMF334jADK48h4jafb1X9RFnj0WbHo6BqcSObzjTig==", + "version": "3.8.11", + "resolved": "https://registry.npmjs.org/@react-types/overlays/-/overlays-3.8.11.tgz", + "integrity": "sha512-aw7T0rwVI3EuyG5AOaEIk8j7dZJQ9m34XAztXJVZ/W2+4pDDkLDbJ/EAPnuo2xGYRGhowuNDn4tDju01eHYi+w==", "dependencies": { - "@react-types/shared": "^3.24.1" + "@react-types/shared": "^3.26.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-types/shared": { - "version": "3.24.1", - "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.24.1.tgz", - "integrity": "sha512-AUQeGYEm/zDTN6zLzdXolDxz3Jk5dDL7f506F07U8tBwxNNI3WRdhU84G0/AaFikOZzDXhOZDr3MhQMzyE7Ydw==", + "version": "3.26.0", + "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.26.0.tgz", + "integrity": "sha512-6FuPqvhmjjlpEDLTiYx29IJCbCNWPlsyO+ZUmCUXzhUv2ttShOXfw8CmeHWHftT/b2KweAWuzqSlfeXPR76jpw==", "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@reduxjs/toolkit": { @@ -4625,6 +5344,14 @@ "redux": "^5.0.0" } }, + "node_modules/@remix-run/router": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.21.0.tgz", + "integrity": "sha512-xfSkCAchbdG5PnbrKqFWwia4Bi61nH+wm8wLEqfHDyp7Y3dZzgqS2itV8i4gAq9pC2HsTpwyBC6Ds8VHZ96JlA==", + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/@sinclair/typebox": { "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", @@ -4919,19 +5646,19 @@ } }, "node_modules/@tanstack/react-virtual": { - "version": "3.10.8", - "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.10.8.tgz", - "integrity": "sha512-VbzbVGSsZlQktyLrP5nxE+vE1ZR+U0NFAWPbJLoG2+DKPwd2D7dVICTVIIaYlJqX1ZCEnYDbaOpmMwbsyhBoIA==", + "version": "3.11.2", + "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.11.2.tgz", + "integrity": "sha512-OuFzMXPF4+xZgx8UzJha0AieuMihhhaWG0tCqpp6tDzlFwOmNBPYMuLOtMJ1Tr4pXLHmgjcWhG6RlknY2oNTdQ==", "dependencies": { - "@tanstack/virtual-core": "3.10.8" + "@tanstack/virtual-core": "3.11.2" }, "funding": { "type": "github", "url": "https://github.com/sponsors/tannerlinsley" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "node_modules/@tanstack/table-core": { @@ -4947,9 +5674,9 @@ } }, "node_modules/@tanstack/virtual-core": { - "version": "3.10.8", - "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.10.8.tgz", - "integrity": "sha512-PBu00mtt95jbKFi6Llk9aik8bnR3tR/oQP1o3TSi+iG//+Q2RTIzCEgKkHG8BB86kxMNW6O8wku+Lmi+QFR6jA==", + "version": "3.11.2", + "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.11.2.tgz", + "integrity": "sha512-vTtpNt7mKCiZ1pwU9hfKPhpdVO2sVzFQsxoVBGtOSHxlrRRzYr8iQ2TlwbAcRYCcEiZ9ECAM8kBzH0v2+VzfKw==", "funding": { "type": "github", "url": "https://github.com/sponsors/tannerlinsley" @@ -5300,9 +6027,9 @@ "dev": true }, "node_modules/@types/hoist-non-react-statics": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", - "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.6.tgz", + "integrity": "sha512-lPByRJUer/iN/xa4qpyL0qmL11DqNW81iU/IG1S3uvRUq4oKagz8VCxZjiWkumgt66YT3vOdDgZ0o32sGKtCEw==", "dependencies": { "@types/react": "*", "hoist-non-react-statics": "^3.3.0" @@ -5374,6 +6101,14 @@ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", "dev": true }, + "node_modules/@types/jquery": { + "version": "3.5.32", + "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.32.tgz", + "integrity": "sha512-b9Xbf4CkMqS02YH8zACqN1xzdxc3cO735Qe5AbSUFmyOiaWAbcpqh9Wna+Uk0vgACvoQHpWDg2rGdHkYPLmCiQ==", + "dependencies": { + "@types/sizzle": "*" + } + }, "node_modules/@types/js-cookie": { "version": "2.2.7", "resolved": "https://registry.npmjs.org/@types/js-cookie/-/js-cookie-2.2.7.tgz", @@ -5397,10 +6132,9 @@ "dev": true }, "node_modules/@types/lodash": { - "version": "4.17.7", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.7.tgz", - "integrity": "sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA==", - "dev": true + "version": "4.17.14", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.14.tgz", + "integrity": "sha512-jsxagdikDiDBeIRaPYtArcT8my4tN1og7MtMRquFT3XNA6axxyHDRUemqDz/taRDdOUn0GnGHRCuff4q48sW9A==" }, "node_modules/@types/logfmt": { "version": "1.2.6", @@ -5449,17 +6183,6 @@ "@types/react": "*" } }, - "node_modules/@types/react-redux": { - "version": "7.1.25", - "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.25.tgz", - "integrity": "sha512-bAGh4e+w5D8dajd6InASVIyCo4pZLJ66oLb80F9OBLO1gKESbZcRCJpTT6uLXX+HAB57zw1WTdwJdAsewuTweg==", - "dependencies": { - "@types/hoist-non-react-statics": "^3.3.0", - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0", - "redux": "^4.0.0" - } - }, "node_modules/@types/react-router": { "version": "5.1.20", "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.20.tgz", @@ -5481,6 +6204,14 @@ "@types/react-router": "*" } }, + "node_modules/@types/react-table": { + "version": "7.7.20", + "resolved": "https://registry.npmjs.org/@types/react-table/-/react-table-7.7.20.tgz", + "integrity": "sha512-ahMp4pmjVlnExxNwxyaDrFgmKxSbPwU23sGQw2gJK4EhCvnvmib2s/O/+y1dfV57dXOwpr2plfyBol+vEHbi2w==", + "dependencies": { + "@types/react": "*" + } + }, "node_modules/@types/react-transition-group": { "version": "4.4.11", "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.11.tgz", @@ -5509,8 +6240,7 @@ "node_modules/@types/sizzle": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz", - "integrity": "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==", - "dev": true + "integrity": "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==" }, "node_modules/@types/stack-utils": { "version": "2.0.1", @@ -5544,6 +6274,17 @@ "integrity": "sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==", "dev": true }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "optional": true + }, + "node_modules/@types/use-sync-external-store": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz", + "integrity": "sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==" + }, "node_modules/@types/uuid": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-10.0.0.tgz", @@ -5858,6 +6599,54 @@ "react-dom": "^18.0.0" } }, + "node_modules/@volkovlabs/components/node_modules/@grafana/runtime": { + "version": "11.4.0", + "resolved": "https://registry.npmjs.org/@grafana/runtime/-/runtime-11.4.0.tgz", + "integrity": "sha512-yZIaNqHKncf97/6QjjHvI+v02+PvGpG6wWNDN+/H1R8vzrMe21asBNDm0EEW/mPUlRLtmAAGcUAt6jL6vRe+6g==", + "dependencies": { + "@grafana/data": "11.4.0", + "@grafana/e2e-selectors": "11.4.0", + "@grafana/faro-web-sdk": "^1.3.6", + "@grafana/schema": "11.4.0", + "@grafana/ui": "11.4.0", + "history": "4.10.1", + "lodash": "4.17.21", + "rxjs": "7.8.1", + "tslib": "2.7.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@volkovlabs/components/node_modules/@grafana/scenes": { + "version": "5.36.4", + "resolved": "https://registry.npmjs.org/@grafana/scenes/-/scenes-5.36.4.tgz", + "integrity": "sha512-jFiSQa6jssqBKez0857oVA/qVASZ0FL+pm2fA01hj6pLb/KQ8Q2lRpF9kFgQYpDlea73Jb+C9/QrhbwcF3683g==", + "dependencies": { + "@floating-ui/react": "^0.26.16", + "@leeoniya/ufuzzy": "^1.0.16", + "@tanstack/react-virtual": "^3.9.0", + "react-grid-layout": "^1.3.4", + "react-use": "^17.5.0", + "react-virtualized-auto-sizer": "^1.0.24", + "uuid": "^9.0.0" + }, + "peerDependencies": { + "@grafana/data": ">=10.4", + "@grafana/e2e-selectors": ">=10.4", + "@grafana/runtime": ">=10.4", + "@grafana/schema": ">=10.4", + "@grafana/ui": ">=10.4", + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@volkovlabs/components/node_modules/@leeoniya/ufuzzy": { + "version": "1.0.18", + "resolved": "https://registry.npmjs.org/@leeoniya/ufuzzy/-/ufuzzy-1.0.18.tgz", + "integrity": "sha512-5D54A86/VaPvJVf7UWJgy+UyhDtstUxq0iQd8UOZ2TG3NjV2oSoa9m4qW3VsotDD6dH2SNHDQwSPq+IAuudnag==" + }, "node_modules/@volkovlabs/components/node_modules/@testing-library/react": { "version": "16.0.1", "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.0.1.tgz", @@ -5893,6 +6682,18 @@ "@testing-library/react": "^16.0.1" } }, + "node_modules/@volkovlabs/components/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/@webassemblyjs/ast": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", @@ -6554,9 +7355,9 @@ } }, "node_modules/attr-accept": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-2.2.2.tgz", - "integrity": "sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg==", + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-2.2.5.tgz", + "integrity": "sha512-0bDNnY/u6pPwHDMoF0FieU354oBi0a8rD9FcsLwzcGWbc8KS8KPIi7y+s13OlVY+gMWc/9xEMUgNE6Qm8ZllYQ==", "engines": { "node": ">=4" } @@ -7554,6 +8355,11 @@ "resolved": "https://registry.npmjs.org/component-indexof/-/component-indexof-0.0.3.tgz", "integrity": "sha512-puDQKvx/64HZXb4hBwIcvQLaLgux8o1CbWl39s41hrIIZDl1lJiD5jc22gj3RBeGK0ovxALDYpIbyjqDUUl0rw==" }, + "node_modules/compute-scroll-into-view": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.0.tgz", + "integrity": "sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg==" + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -8740,8 +9546,7 @@ "node_modules/decimal.js": { "version": "10.4.3", "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", - "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", - "dev": true + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" }, "node_modules/dedent": { "version": "1.5.3", @@ -8939,9 +9744,32 @@ } }, "node_modules/dompurify": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.1.6.tgz", - "integrity": "sha512-cTOAhc36AalkjtBpfG6O8JimdTMWNXjiePT2xQH/ppBGi/4uIpmj8eKyIkMJErXWARyINV/sB38yf8JCLF5pbQ==" + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.3.tgz", + "integrity": "sha512-U1U5Hzc2MO0oW3DF+G9qYN0aT7atAou4AgI0XjWz061nyBPbdxkfdhfy5uMgGn6+oLFCfn44ZGbdDqCzVmlOWA==", + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" + } + }, + "node_modules/downshift": { + "version": "9.0.8", + "resolved": "https://registry.npmjs.org/downshift/-/downshift-9.0.8.tgz", + "integrity": "sha512-59BWD7+hSUQIM1DeNPLirNNnZIO9qMdIK5GQ/Uo8q34gT4B78RBlb9dhzgnh0HfQTJj4T/JKYD8KoLAlMWnTsA==", + "dependencies": { + "@babel/runtime": "^7.24.5", + "compute-scroll-into-view": "^3.1.0", + "prop-types": "^15.8.1", + "react-is": "18.2.0", + "tslib": "^2.6.2" + }, + "peerDependencies": { + "react": ">=16.12.0" + } + }, + "node_modules/downshift/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" }, "node_modules/earcut": { "version": "2.2.4", @@ -10044,6 +10872,11 @@ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, + "node_modules/fast-equals": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-4.0.3.tgz", + "integrity": "sha512-G3BSX9cfKttjr+2o1O22tYMLq0DPluZnYtq1rXumE1SpL/F/SLIfHx08WYQoWSIpeMYf8sRbJ8++71+v6Pnxfg==" + }, "node_modules/fast-glob": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", @@ -11355,9 +12188,9 @@ } }, "node_modules/immutable": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.6.tgz", - "integrity": "sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ==" + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz", + "integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==" }, "node_modules/import-fresh": { "version": "3.3.0", @@ -11496,14 +12329,14 @@ } }, "node_modules/intl-messageformat": { - "version": "10.5.14", - "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.5.14.tgz", - "integrity": "sha512-IjC6sI0X7YRjjyVH9aUgdftcmZK7WXdHeil4KwbjDnRWjnVitKpAx3rr6t6di1joFp5188VqKcobOPA6mCLG/w==", + "version": "10.7.11", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.7.11.tgz", + "integrity": "sha512-IB2N1tmI24k2EFH3PWjU7ivJsnWyLwOWOva0jnXFa29WzB6fb0JZ5EMQGu+XN5lDtjHYFo0/UooP67zBwUg7rQ==", "dependencies": { - "@formatjs/ecma402-abstract": "2.0.0", - "@formatjs/fast-memoize": "2.2.0", - "@formatjs/icu-messageformat-parser": "2.7.8", - "tslib": "^2.4.0" + "@formatjs/ecma402-abstract": "2.3.2", + "@formatjs/fast-memoize": "2.2.6", + "@formatjs/icu-messageformat-parser": "2.9.8", + "tslib": "2" } }, "node_modules/invariant": { @@ -14535,11 +15368,6 @@ "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", "dev": true }, - "node_modules/lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" - }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -14874,11 +15702,11 @@ } }, "node_modules/marked-mangle": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/marked-mangle/-/marked-mangle-1.1.7.tgz", - "integrity": "sha512-bLsXKovJEEs/Dl++TBPmjX8ALFmrH5G0doTs+BdDOloBKWYRf3acyJghce78SnwInDkNPJ6crubr4MnFG7urOA==", + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/marked-mangle/-/marked-mangle-1.1.9.tgz", + "integrity": "sha512-eLTXr1xQzba/WZp/trPS0HkR9W02ifasH6IWPrBv++eO2m8POiwV4muQ6Tof2C5Fhdo3z8ggXs6VGw1f931Vsg==", "peerDependencies": { - "marked": ">=4 <13" + "marked": ">=4 <15" } }, "node_modules/mdn-data": { @@ -15443,9 +16271,9 @@ } }, "node_modules/moment-timezone": { - "version": "0.5.45", - "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.45.tgz", - "integrity": "sha512-HIWmqA86KcmCAhnMAN0wuDOARV/525R2+lOLotuGFzn4HO+FH+/645z2wx0Dt3iDv6/p61SIvKnDstISainhLQ==", + "version": "0.5.46", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.46.tgz", + "integrity": "sha512-ZXm9b36esbe7OmdABqIWJuBBiLLwAjrN7CE+7sYdCCx82Nabt1wHDj8TVseS59QIlfFPbOoiBPm6ca9BioG4hw==", "dependencies": { "moment": "^2.29.4" }, @@ -16637,15 +17465,15 @@ } }, "node_modules/rc-cascader": { - "version": "3.26.0", - "resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-3.26.0.tgz", - "integrity": "sha512-L1dml383TPSJD1I11YwxuVbmqaJY64psZqFp1ETlgl3LEOwDu76Cyl11fw5dmjJhMlUWwM5dECQfqJgfebhUjg==", + "version": "3.28.1", + "resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-3.28.1.tgz", + "integrity": "sha512-9+8oHIMWVLHxuaapDiqFNmD9KSyKN/P4bo9x/MBuDbyTqP8f2/POmmZxdXWBO3yq/uE3pKyQCXYNUxrNfHRv2A==", "dependencies": { "@babel/runtime": "^7.12.5", "array-tree-filter": "^2.1.0", "classnames": "^2.3.1", - "rc-select": "~14.14.0", - "rc-tree": "~5.8.1", + "rc-select": "~14.15.0", + "rc-tree": "~5.9.0", "rc-util": "^5.37.0" }, "peerDependencies": { @@ -16714,9 +17542,9 @@ } }, "node_modules/rc-select": { - "version": "14.14.0", - "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-14.14.0.tgz", - "integrity": "sha512-Uo2wulrjoPPRLCPd7zlK4ZFVJxlTN//yp1xWP/U+TUOQCyXrT+Duvq/Si5OzVcmQyWAUSbsplc2OwNNhvbOeKQ==", + "version": "14.15.2", + "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-14.15.2.tgz", + "integrity": "sha512-oNoXlaFmpqXYcQDzcPVLrEqS2J9c+/+oJuGrlXeVVX/gVgrbHa5YcyiRUXRydFjyuA7GP3elRuLF7Y3Tfwltlw==", "dependencies": { "@babel/runtime": "^7.10.1", "@rc-component/trigger": "^2.1.1", @@ -16765,9 +17593,9 @@ } }, "node_modules/rc-tooltip": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-6.2.0.tgz", - "integrity": "sha512-iS/3iOAvtDh9GIx1ulY7EFUXUtktFccNLsARo3NPgLf0QW9oT0w3dA9cYWlhqAKmD+uriEwdWz1kH0Qs4zk2Aw==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-6.2.1.tgz", + "integrity": "sha512-rws0duD/3sHHsD905Nex7FvoUGy2UBQRhTkKxeEvr2FB+r21HsOxcDJI0TzyO8NHhnAA8ILr8pfbSBg5Jj5KBg==", "dependencies": { "@babel/runtime": "^7.11.2", "@rc-component/trigger": "^2.0.0", @@ -16779,9 +17607,9 @@ } }, "node_modules/rc-tree": { - "version": "5.8.8", - "resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-5.8.8.tgz", - "integrity": "sha512-S+mCMWo91m5AJqjz3PdzKilGgbFm7fFJRFiTDOcoRbD7UfMOPnerXwMworiga0O2XIo383UoWuEfeHs1WOltag==", + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-5.9.0.tgz", + "integrity": "sha512-CPrgOvm9d/9E+izTONKSngNzQdIEjMox2PBufWjS1wf7vxtvmCWzK1SlpHbRY6IaBfJIeZ+88RkcIevf729cRg==", "dependencies": { "@babel/runtime": "^7.10.1", "classnames": "2.x", @@ -16870,42 +17698,23 @@ "node": ">=0.10.0" } }, - "node_modules/react-beautiful-dnd": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/react-beautiful-dnd/-/react-beautiful-dnd-13.1.1.tgz", - "integrity": "sha512-0Lvs4tq2VcrEjEgDXHjT98r+63drkKEgqyxdA7qD3mvKwga6a5SscbdLPO2IExotU1jW8L0Ksdl0Cj2AF67nPQ==", - "dependencies": { - "@babel/runtime": "^7.9.2", - "css-box-model": "^1.2.0", - "memoize-one": "^5.1.1", - "raf-schd": "^4.0.2", - "react-redux": "^7.2.0", - "redux": "^4.0.4", - "use-memo-one": "^1.1.1" - }, - "peerDependencies": { - "react": "^16.8.5 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.5 || ^17.0.0 || ^18.0.0" - } - }, "node_modules/react-calendar": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/react-calendar/-/react-calendar-4.8.0.tgz", - "integrity": "sha512-qFgwo+p58sgv1QYMI1oGNaop90eJVKuHTZ3ZgBfrrpUb+9cAexxsKat0sAszgsizPMVo7vOXedV7Lqa0GQGMvA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/react-calendar/-/react-calendar-5.0.0.tgz", + "integrity": "sha512-bHcE5e5f+VUKLd4R19BGkcSQLpuwjKBVG0fKz74cwPW5xDfNsReHdDbfd4z3mdjuUuZzVtw4Q920mkwK5/ZOEg==", "dependencies": { "@wojtekmaj/date-utils": "^1.1.3", "clsx": "^2.0.0", "get-user-locale": "^2.2.1", - "prop-types": "^15.6.0", "warning": "^4.0.0" }, "funding": { "url": "https://github.com/wojtekmaj/react-calendar?sponsor=1" }, "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" }, "peerDependenciesMeta": { "@types/react": { @@ -16970,9 +17779,9 @@ } }, "node_modules/react-dropzone": { - "version": "14.2.3", - "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-14.2.3.tgz", - "integrity": "sha512-O3om8I+PkFKbxCukfIR3QAGftYXDZfOE2N1mr/7qebQJHs7U+/RSL/9xomJNpRg9kM5h9soQSdf0Gc7OHF5Fug==", + "version": "14.2.9", + "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-14.2.9.tgz", + "integrity": "sha512-jRZsMC7h48WONsOLHcmhyn3cRWJoIPQjPApvt/sJVfnYaB3Qltn025AoRTTJaj4WdmmgmLl6tUQg1s0wOhpodQ==", "dependencies": { "attr-accept": "^2.2.2", "file-selector": "^0.6.0", @@ -16999,21 +17808,30 @@ } }, "node_modules/react-grid-layout": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/react-grid-layout/-/react-grid-layout-1.3.4.tgz", - "integrity": "sha512-sB3rNhorW77HUdOjB4JkelZTdJGQKuXLl3gNg+BI8gJkTScspL1myfZzW/EM0dLEn+1eH+xW+wNqk0oIM9o7cw==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/react-grid-layout/-/react-grid-layout-1.5.0.tgz", + "integrity": "sha512-WBKX7w/LsTfI99WskSu6nX2nbJAUD7GD6nIXcwYLyPpnslojtmql2oD3I2g5C3AK8hrxIarYT8awhuDIp7iQ5w==", "dependencies": { - "clsx": "^1.1.1", - "lodash.isequal": "^4.0.0", + "clsx": "^2.0.0", + "fast-equals": "^4.0.3", "prop-types": "^15.8.1", - "react-draggable": "^4.0.0", - "react-resizable": "^3.0.4" + "react-draggable": "^4.4.5", + "react-resizable": "^3.0.5", + "resize-observer-polyfill": "^1.5.1" }, "peerDependencies": { "react": ">= 16.3.0", "react-dom": ">= 16.3.0" } }, + "node_modules/react-grid-layout/node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "engines": { + "node": ">=6" + } + }, "node_modules/react-highlight-words": { "version": "0.20.0", "resolved": "https://registry.npmjs.org/react-highlight-words/-/react-highlight-words-0.20.0.tgz", @@ -17102,9 +17920,9 @@ "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" }, "node_modules/react-loading-skeleton": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/react-loading-skeleton/-/react-loading-skeleton-3.4.0.tgz", - "integrity": "sha512-1oJEBc9+wn7BbkQQk7YodlYEIjgeR+GrRjD+QXkVjwZN7LGIcAFHrx4NhT7UHGBxNY1+zax3c+Fo6XQM4R7CgA==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/react-loading-skeleton/-/react-loading-skeleton-3.5.0.tgz", + "integrity": "sha512-gxxSyLbrEAdXTKgfbpBEFZCO/P153DnqSCQau2+o6lNy1jgMRr2MmRmOzMmyrwSaSYLRB8g7b0waYPmUjz7IhQ==", "peerDependencies": { "react": ">=16.8.0" } @@ -17124,33 +17942,52 @@ } }, "node_modules/react-redux": { - "version": "7.2.9", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.2.9.tgz", - "integrity": "sha512-Gx4L3uM182jEEayZfRbI/G11ZpYdNAnBs70lFVMNdHJI76XYtR+7m0MN+eAs7UHBPhWXcnFPaS+9owSCJQHNpQ==", + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-8.1.3.tgz", + "integrity": "sha512-n0ZrutD7DaX/j9VscF+uTALI3oUPa/pO4Z3soOBIjuRn/FzVu6aehhysxZCLi6y7duMf52WNZGMl7CtuK5EnRw==", "dependencies": { - "@babel/runtime": "^7.15.4", - "@types/react-redux": "^7.1.20", + "@babel/runtime": "^7.12.1", + "@types/hoist-non-react-statics": "^3.3.1", + "@types/use-sync-external-store": "^0.0.3", "hoist-non-react-statics": "^3.3.2", - "loose-envify": "^1.4.0", - "prop-types": "^15.7.2", - "react-is": "^17.0.2" + "react-is": "^18.0.0", + "use-sync-external-store": "^1.0.0" }, "peerDependencies": { - "react": "^16.8.3 || ^17 || ^18" + "@types/react": "^16.8 || ^17.0 || ^18.0", + "@types/react-dom": "^16.8 || ^17.0 || ^18.0", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0", + "react-native": ">=0.59", + "redux": "^4 || ^5.0.0-beta.0" }, "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + }, "react-dom": { "optional": true }, "react-native": { "optional": true + }, + "redux": { + "optional": true } } }, + "node_modules/react-redux/node_modules/@types/use-sync-external-store": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz", + "integrity": "sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==" + }, "node_modules/react-redux/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" }, "node_modules/react-resizable": { "version": "3.0.5", @@ -17201,6 +18038,46 @@ "react": ">=15" } }, + "node_modules/react-router-dom-v5-compat": { + "version": "6.28.1", + "resolved": "https://registry.npmjs.org/react-router-dom-v5-compat/-/react-router-dom-v5-compat-6.28.1.tgz", + "integrity": "sha512-yJLpBnJd69x6RoUNCGNAScTWyc3/N8ztwXYM6si8EfleWHs3JYI800/HrwtpBgifOy6oHYtJQ2cpFlPbFosR+Q==", + "dependencies": { + "@remix-run/router": "1.21.0", + "history": "^5.3.0", + "react-router": "6.28.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8", + "react-router-dom": "4 || 5" + } + }, + "node_modules/react-router-dom-v5-compat/node_modules/history": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/history/-/history-5.3.0.tgz", + "integrity": "sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==", + "dependencies": { + "@babel/runtime": "^7.7.6" + } + }, + "node_modules/react-router-dom-v5-compat/node_modules/react-router": { + "version": "6.28.1", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.28.1.tgz", + "integrity": "sha512-2omQTA3rkMljmrvvo6WtewGdVh45SpL9hGiCI9uUrwGGfNFDIvGK4gYJsKlJoNVi6AQZcopSCballL+QGOm7fA==", + "dependencies": { + "@remix-run/router": "1.21.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, "node_modules/react-router/node_modules/mini-create-react-context": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz", @@ -17216,9 +18093,9 @@ } }, "node_modules/react-select": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/react-select/-/react-select-5.8.0.tgz", - "integrity": "sha512-TfjLDo58XrhP6VG5M/Mi56Us0Yt8X7xD6cDybC7yoRMUNm7BGO7qk8J0TLQOua/prb8vUOtsfnXZwfm30HGsAA==", + "version": "5.8.1", + "resolved": "https://registry.npmjs.org/react-select/-/react-select-5.8.1.tgz", + "integrity": "sha512-RT1CJmuc+ejqm5MPgzyZujqDskdvB9a9ZqrdnVLsvAHjJ3Tj0hELnLeVPQlmYdVKCdCpxanepl6z7R5KhXhWzg==", "dependencies": { "@babel/runtime": "^7.12.0", "@emotion/cache": "^11.4.0", @@ -17277,9 +18154,9 @@ } }, "node_modules/react-use": { - "version": "17.5.0", - "resolved": "https://registry.npmjs.org/react-use/-/react-use-17.5.0.tgz", - "integrity": "sha512-PbfwSPMwp/hoL847rLnm/qkjg3sTRCvn6YhUZiHaUa3FA6/aNoFX79ul5Xt70O1rK+9GxSVqkY0eTwMdsR/bWg==", + "version": "17.5.1", + "resolved": "https://registry.npmjs.org/react-use/-/react-use-17.5.1.tgz", + "integrity": "sha512-LG/uPEVRflLWMwi3j/sZqR00nF6JGqTTDblkXK2nzXsIvij06hXl1V/MZIlwj1OKIQUtlh1l9jK8gLsRyCQxMg==", "dependencies": { "@types/js-cookie": "^2.2.6", "@xobotyi/scrollbar-width": "^1.9.5", @@ -17287,7 +18164,7 @@ "fast-deep-equal": "^3.1.3", "fast-shallow-equal": "^1.0.0", "js-cookie": "^2.2.1", - "nano-css": "^5.6.1", + "nano-css": "^5.6.2", "react-universal-interface": "^0.6.2", "resize-observer-polyfill": "^1.5.1", "screenfull": "^5.1.0", @@ -17302,12 +18179,12 @@ } }, "node_modules/react-virtualized-auto-sizer": { - "version": "1.0.24", - "resolved": "https://registry.npmjs.org/react-virtualized-auto-sizer/-/react-virtualized-auto-sizer-1.0.24.tgz", - "integrity": "sha512-3kCn7N9NEb3FlvJrSHWGQ4iVl+ydQObq2fHMn12i5wbtm74zHOPhz/i64OL3c1S1vi9i2GXtZqNqUJTQ+BnNfg==", + "version": "1.0.25", + "resolved": "https://registry.npmjs.org/react-virtualized-auto-sizer/-/react-virtualized-auto-sizer-1.0.25.tgz", + "integrity": "sha512-YHsksEGDfsHbHuaBVDYwJmcktblcHGafz4ZVuYPQYuSHMUGjpwmUCrAOcvMSGMwwk1eFWj1M/1GwYpNPuyhaBg==", "peerDependencies": { - "react": "^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0", - "react-dom": "^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0" + "react": "^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "node_modules/react-window": { @@ -19513,9 +20390,9 @@ } }, "node_modules/tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" }, "node_modules/tunnel-agent": { "version": "0.6.0", @@ -19650,7 +20527,6 @@ "version": "5.5.4", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", - "dev": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -19808,9 +20684,9 @@ } }, "node_modules/uplot": { - "version": "1.6.30", - "resolved": "https://registry.npmjs.org/uplot/-/uplot-1.6.30.tgz", - "integrity": "sha512-48oVVRALM/128ttW19F2a2xobc2WfGdJ0VJFX00099CfqbCTuML7L2OrTKxNzeFP34eo1+yJbqFSoFAp2u28/Q==" + "version": "1.6.31", + "resolved": "https://registry.npmjs.org/uplot/-/uplot-1.6.31.tgz", + "integrity": "sha512-sQZqSwVCbJGnFB4IQjQYopzj5CoTZJ4Br1fG/xdONimqgHmsacvCjNesdGDypNKFbrhLGIeshYhy89FxPF+H+w==" }, "node_modules/uri-js": { "version": "4.4.1", @@ -19832,11 +20708,11 @@ } }, "node_modules/use-isomorphic-layout-effect": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz", - "integrity": "sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.2.0.tgz", + "integrity": "sha512-q6ayo8DWoPZT0VdG4u3D3uxcgONP3Mevx2i2b0434cwWBoL+aelL1DzkXI6w3PhTZzUeR2kaVlZn70iCiseP6w==", "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" }, "peerDependenciesMeta": { "@types/react": { @@ -19852,20 +20728,20 @@ "react": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, + "node_modules/use-sync-external-store": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz", + "integrity": "sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, - "node_modules/uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, "node_modules/v8-compile-cache-lib": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", diff --git a/package.json b/package.json index 97436b7..e6e7af4 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "dependencies": { "@emotion/css": "^11.13.0", "@grafana/data": "^11.1.4", - "@grafana/runtime": "^11.1.4", + "@grafana/runtime": "^11.5.0-216340", "@grafana/schema": "^11.1.4", "@grafana/ui": "^11.1.4", "@reduxjs/toolkit": "^2.2.7", diff --git a/src/TimeSeriesPanel.tsx b/src/TimeSeriesPanel.tsx index 9b81d60..0a813d6 100644 --- a/src/TimeSeriesPanel.tsx +++ b/src/TimeSeriesPanel.tsx @@ -1,11 +1,13 @@ import { config } from 'app/core/config'; import React, { useCallback, useEffect, useMemo, useState } from 'react'; import { DashboardCursorSync, DataFrame, DataFrameType, PanelProps, toDataFrame, VizOrientation } from '@grafana/data'; -import { getBackendSrv, PanelDataErrorView, TimeRangeUpdatedEvent } from '@grafana/runtime'; +import { getBackendSrv, PanelDataErrorView, TimeRangeUpdatedEvent, usePluginUserStorage } from '@grafana/runtime'; import { TooltipDisplayMode } from '@grafana/schema'; import { Button, EventBusPlugin, KeyboardPlugin, TooltipPlugin2, usePanelContext, useTheme2 } from '@grafana/ui'; import { useDashboardRefresh } from '@volkovlabs/components'; import { TimeSeries } from 'app/core/components/TimeSeries/TimeSeries'; +import { FrameSettingsEditor } from 'plugins/frameSettings/FrameSettingsEditor'; +import { FieldSettings } from 'app/types/frameSettings'; import { Options } from './panelcfg.gen'; import { ExemplarsPlugin, getVisibleLabels } from './plugins/ExemplarsPlugin'; import { OutsideRangePlugin } from './plugins/OutsideRangePlugin'; @@ -65,7 +67,22 @@ export const TimeSeriesPanel = ({ const theme = useTheme2(); const [isAddingTimescale, setAddingTimescale] = useState(false); - const [timescaleTriggerCoords, setTimescaleTriggerCoords] = useState<{ left: number; top: number } | null>(null); + const [fieldSettings, setFieldSettings] = useState([]); + const [showFrameSettings, setShowFrameSettings] = useState(false); + const [triggerCoords, setTriggerCoords] = useState<{ left: number; top: number } | null>(null); + + const storage = usePluginUserStorage(); + + useEffect(() => { + storage.getItem('volkovlabs.TimeSeriesPanel.frameSettings').then((value: string | null) => { + setFieldSettings(value ? JSON.parse(value) : []); + }); + + /** + * Load once + */ + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); /** * Dashboard Refresh @@ -73,7 +90,23 @@ export const TimeSeriesPanel = ({ const dashboardRefresh = useDashboardRefresh(); const isVerticallyOriented = options.orientation === VizOrientation.Vertical; - const frames = useMemo(() => prepareGraphableFields(data.series, config.theme2, timeRange), [data.series, timeRange]); + const frames = useMemo( + () => prepareGraphableFields(data.series, config.theme2, fieldSettings, timeRange), + [data.series, fieldSettings, timeRange] + ); + + /** + * revId use for structureRev + * Should be changed when data changes or frame changes to render TimeSeries correctly + */ + const revId = useMemo(() => { + if (!!frames?.length || data.structureRev) { + const structureRev = data.structureRev || 0; + return structureRev + Math.random(); + } + return Math.random(); + }, [data.structureRev, frames]); + const timezones = useMemo(() => getTimezones(options.timezone, timeZone), [options.timezone, timeZone]); const [timescalesFrame, setTimescalesFrame] = useState(null); @@ -243,7 +276,10 @@ export const TimeSeriesPanel = ({ return ( } footerContent={ - <> +
- + +
} /> ); @@ -439,12 +499,29 @@ export const TimeSeriesPanel = ({ scales={scales} style={{ position: 'absolute', - left: timescaleTriggerCoords?.left, - top: timescaleTriggerCoords?.top, + left: triggerCoords?.left, + top: triggerCoords?.top, }} timescalesFrame={timescalesFrame} /> )} + {showFrameSettings && ( + { + setFieldSettings(settings); + storage.setItem('volkovlabs.TimeSeriesPanel.frameSettings', JSON.stringify(settings)); + setShowFrameSettings(false); + }} + onDismiss={() => setShowFrameSettings(false)} + style={{ + position: 'absolute', + left: triggerCoords?.left, + top: triggerCoords?.top, + }} + fieldSettings={fieldSettings} + frames={frames} + /> + )} ); }} diff --git a/src/app/types/frameSettings.ts b/src/app/types/frameSettings.ts new file mode 100644 index 0000000..bca59e1 --- /dev/null +++ b/src/app/types/frameSettings.ts @@ -0,0 +1,10 @@ +import { AxisPlacement } from '@grafana/ui'; + +export interface FieldSettings { + refId?: string; + name: string; + axisPlacement: AxisPlacement; + hideFrom: { + viz: boolean; + }; +} diff --git a/src/plugins/frameSettings/FrameSettingsEditor.tsx b/src/plugins/frameSettings/FrameSettingsEditor.tsx new file mode 100644 index 0000000..2265ad8 --- /dev/null +++ b/src/plugins/frameSettings/FrameSettingsEditor.tsx @@ -0,0 +1,251 @@ +import React, { HTMLAttributes, useMemo, useRef, useState } from 'react'; +import { usePopper } from 'react-popper'; +import { AxisPlacement, IconButton, Portal, RadioButtonGroup, Stack, useStyles2 } from '@grafana/ui'; +import { DataFrame, FieldType, GrafanaTheme2 } from '@grafana/data'; +import useClickAway from 'react-use/lib/useClickAway'; +import { css } from '@emotion/css'; +import { FieldSettings } from 'app/types/frameSettings'; + +interface FrameSettingsEditorProps extends HTMLAttributes { + onSave: (settings: FieldSettings[]) => void; + onDismiss: () => void; + fieldSettings: FieldSettings[]; + frames: DataFrame[]; +} + +/** + * Display Options + */ +const placementOptions = [ + { + value: AxisPlacement.Auto, + label: 'Auto', + description: 'First field on the left, everything else on the right', + }, + { + value: AxisPlacement.Left, + label: 'Left', + }, + { + value: AxisPlacement.Right, + label: 'Right', + }, +]; + +export const FrameSettingsEditor: React.FC = ({ + onDismiss, + onSave, + style, + frames, + fieldSettings, +}) => { + const styles = useStyles2(getStyles); + + const [popperTrigger, setPopperTrigger] = useState(null); + const [editorPopover, setEditorPopover] = useState(null); + + const clickAwayRef = useRef(null); + + const fields = useMemo( + () => + frames.flatMap((frame) => + frame.fields + .filter((field) => field.type !== FieldType.time) + .map((field) => ({ + ...field, + refId: frame.refId, + })) + ), + [frames] + ); + + useClickAway(clickAwayRef, () => { + onDismiss(); + }); + + const popper = usePopper(popperTrigger, editorPopover, { + modifiers: [ + { name: 'arrow', enabled: false }, + { + name: 'preventOverflow', + enabled: true, + options: { + rootBoundary: 'viewport', + }, + }, + ], + }); + + return ( + + <> +
+
+
+
+ +
Set Frame settings
+ +
+
+
+ {fields.map((field) => { + const fieldVisibility = !field.config.custom.hideFrom.viz; + + return ( +
+

{field.name} :

+
+ { + /** + * Check field exist in user frame settings + */ + const existingIndex = fieldSettings.findIndex( + (item) => item.refId === field.refId && item.name === field.name + ); + + let updatedSettings: FieldSettings[] = []; + + if (existingIndex >= 0) { + /** + * Update settings + */ + updatedSettings = fieldSettings.map((item, index) => { + return existingIndex === index + ? { + ...item, + axisPlacement: placement, + } + : item; + }); + } else { + /** + * Add field to settings + */ + updatedSettings = [ + ...fieldSettings, + { + refId: field.refId, + name: field.name, + axisPlacement: field.config.custom.axisPlacement, + hideFrom: { + viz: field.config.custom.hideFrom.viz, + }, + }, + ]; + } + + /** + * Save settings + */ + onSave(updatedSettings); + }} + /> + { + /** + * Check field exist in user frame settings + */ + const existingIndex = fieldSettings.findIndex( + (item) => item.refId === field.refId && item.name === field.name + ); + + let updatedSettings: FieldSettings[] = []; + + if (existingIndex >= 0) { + /** + * Update settings + */ + updatedSettings = fieldSettings.map((item, index) => { + return existingIndex === index + ? { + ...item, + hideFrom: { + viz: !field.config.custom.hideFrom.viz, + }, + } + : item; + }); + } else { + /** + * Add field to settings + */ + updatedSettings = [ + ...fieldSettings, + { + refId: field.refId, + name: field.name, + axisPlacement: field.config.custom.axisPlacement, + hideFrom: { + viz: !field.config.custom.hideFrom.viz, + }, + }, + ]; + } + onSave(updatedSettings); + }} + /> +
+
+ ); + })} +
+
+
+ + + ); +}; + +const getStyles = (theme: GrafanaTheme2) => { + return { + editor: css` + background: ${theme.colors.background.primary}; + box-shadow: ${theme.shadows.z3}; + z-index: ${theme.zIndex.dropdown}; + border: 1px solid ${theme.colors.border.weak}; + border-radius: ${theme.shape.radius.default}; + width: 460px; + `, + header: css` + border-bottom: 1px solid ${theme.colors.border.weak}; + padding: ${theme.spacing(1.5, 1)}; + `, + fieldsWrapper: css` + border-bottom: 1px solid ${theme.colors.border.weak}; + padding: ${theme.spacing(1.5, 1)}; + display: flex; + flex-direction: column; + `, + field: css` + display: flex; + flex-direction: row; + align-items: center; + padding: ${theme.spacing(1.5, 0)}; + border-bottom: 1px solid ${theme.colors.border.weak}; + justify-content: space-between; + `, + fieldName: css` + padding-right: ${theme.spacing(0.5)}; + margin: 0px; + `, + controls: css` + display: flex; + align-items: center; + width: 50%; + flex-shrink: 0; + `, + iconButton: css` + margin-left: ${theme.spacing(1)}; + `, + title: css` + font-weight: ${theme.typography.fontWeightMedium}; + `, + }; +}; diff --git a/src/utils.test.ts b/src/utils.test.ts index c0fe731..591f4a9 100644 --- a/src/utils.test.ts +++ b/src/utils.test.ts @@ -1,8 +1,11 @@ import { createTheme, FieldType, toDataFrame } from '@grafana/data'; import { prepareGraphableFields } from './utils'; +import { FieldSettings } from 'app/types/frameSettings'; describe('prepare timeseries graph', () => { + const fieldSettingsDefault: FieldSettings[] = []; + it('errors with no time fields', () => { const input = [ toDataFrame({ @@ -12,7 +15,7 @@ describe('prepare timeseries graph', () => { ], }), ]; - const frames = prepareGraphableFields(input, createTheme()); + const frames = prepareGraphableFields(input, createTheme(), fieldSettingsDefault); expect(frames).toBeNull(); }); @@ -25,7 +28,7 @@ describe('prepare timeseries graph', () => { ], }), ]; - const frames = prepareGraphableFields(input, createTheme()); + const frames = prepareGraphableFields(input, createTheme(), fieldSettingsDefault); expect(frames).toBeNull(); }); @@ -41,7 +44,7 @@ describe('prepare timeseries graph', () => { ], }), ]; - const frames = prepareGraphableFields(input, createTheme()); + const frames = prepareGraphableFields(input, createTheme(), fieldSettingsDefault); expect(frames![0].fields.map((f) => f.state?.seriesIndex)).toEqual([undefined, undefined, 0, undefined, 1]); }); @@ -56,7 +59,7 @@ describe('prepare timeseries graph', () => { ], }), ]; - const frames = prepareGraphableFields(input, createTheme()); + const frames = prepareGraphableFields(input, createTheme(), fieldSettingsDefault); const out = frames![0]; expect(out.fields.map((f) => f.name)).toEqual(['a', 'b', 'c', 'd']); @@ -82,7 +85,7 @@ describe('prepare timeseries graph', () => { { name: 'a', values: [-10, NaN, 10, -Infinity, +Infinity] }, ], }); - const frames = prepareGraphableFields([df], createTheme()); + const frames = prepareGraphableFields([df], createTheme(), fieldSettingsDefault); const field = frames![0].fields.find((f) => f.name === 'a'); expect(field!.values).toMatchInlineSnapshot(` @@ -103,7 +106,7 @@ describe('prepare timeseries graph', () => { { name: 'a', values: [1, 2, 3] }, ], }); - const frames = prepareGraphableFields([df], createTheme()); + const frames = prepareGraphableFields([df], createTheme(), fieldSettingsDefault); const field = frames![0].fields.find((f) => f.name === 'a'); expect(field!.values).toMatchInlineSnapshot(` @@ -127,7 +130,7 @@ describe('prepare timeseries graph', () => { { name: 'a', config: { noValue: '20' }, values: [1, 2, 3] }, ], }); - const frames = prepareGraphableFields([df], createTheme()); + const frames = prepareGraphableFields([df], createTheme(), fieldSettingsDefault); const field = frames![0].fields.find((f) => f.name === 'a'); expect(field!.values).toMatchInlineSnapshot(` diff --git a/src/utils.ts b/src/utils.ts index c2dad68..1905c7f 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -13,6 +13,7 @@ import { convertFieldType } from 'app/core/utils/convertFieldType'; import { GraphFieldConfig, LineInterpolation, TooltipDisplayMode, VizTooltipOptions } from '@grafana/schema'; import { applyNullInsertThreshold } from '@grafana/ui/src/components/GraphNG/nullInsertThreshold'; import { nullToValue } from '@grafana/ui/src/components/GraphNG/nullToValue'; +import { FieldSettings } from 'app/types/frameSettings'; /** * Returns null if there are no graphable fields @@ -20,6 +21,7 @@ import { nullToValue } from '@grafana/ui/src/components/GraphNG/nullToValue'; export function prepareGraphableFields( series: DataFrame[], theme: GrafanaTheme2, + fieldSettings: FieldSettings[], timeRange?: TimeRange, // numeric X requires a single frame where the first field is numeric xNumFieldIdx?: number @@ -149,6 +151,11 @@ export function prepareGraphableFields( if (frames.length) { setClassicPaletteIdxs(frames, theme, 0); + /** + * Apply user settings from user storage + */ + applyUserSettingsForFrame(frames, fieldSettings); + return frames; } @@ -171,6 +178,24 @@ const setClassicPaletteIdxs = (frames: DataFrame[], theme: GrafanaTheme2, skipFi }); }; +/** + * applyUserSettingsForFrame + */ +const applyUserSettingsForFrame = (frames: DataFrame[], fieldSettings: FieldSettings[]) => { + frames.forEach((frame) => { + frame.fields.forEach((field) => { + const existedField = fieldSettings.find((item) => item.refId === frame.refId && item.name === field.name); + if (existedField) { + field.config.custom.axisPlacement = existedField.axisPlacement; + field.config.custom.hideFrom = { + ...field.config.custom.hideFrom, + viz: existedField.hideFrom.viz, + }; + } + }); + }); +}; + export function getTimezones(timezones: string[] | undefined, defaultTimezone: string): string[] { if (!timezones || !timezones.length) { return [defaultTimezone]; From 924aaa084e07b88c942f7fde14e9ce3d32fd737a Mon Sep 17 00:00:00 2001 From: vitPinchuk Date: Tue, 14 Jan 2025 12:09:04 +0300 Subject: [PATCH 2/8] refactoring rename key --- src/TimeSeriesPanel.tsx | 4 ++-- src/plugins/frameSettings/FrameSettingsEditor.tsx | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/TimeSeriesPanel.tsx b/src/TimeSeriesPanel.tsx index 323d684..7e2a9a3 100644 --- a/src/TimeSeriesPanel.tsx +++ b/src/TimeSeriesPanel.tsx @@ -61,7 +61,7 @@ export const TimeSeriesPanel = ({ const storage = usePluginUserStorage(); useEffect(() => { - storage.getItem('volkovlabs.TimeSeriesPanel.frameSettings').then((value: string | null) => { + storage.getItem('volkovlabs.TimeSeriesPanel.fieldSettings').then((value: string | null) => { setFieldSettings(value ? JSON.parse(value) : []); }); @@ -480,7 +480,7 @@ export const TimeSeriesPanel = ({ { setFieldSettings(settings); - storage.setItem('volkovlabs.TimeSeriesPanel.frameSettings', JSON.stringify(settings)); + storage.setItem('volkovlabs.TimeSeriesPanel.fieldSettings', JSON.stringify(settings)); setShowFrameSettings(false); }} onDismiss={() => setShowFrameSettings(false)} diff --git a/src/plugins/frameSettings/FrameSettingsEditor.tsx b/src/plugins/frameSettings/FrameSettingsEditor.tsx index 2265ad8..83bc2e2 100644 --- a/src/plugins/frameSettings/FrameSettingsEditor.tsx +++ b/src/plugins/frameSettings/FrameSettingsEditor.tsx @@ -130,7 +130,7 @@ export const FrameSettingsEditor: React.FC = ({ { refId: field.refId, name: field.name, - axisPlacement: field.config.custom.axisPlacement, + axisPlacement: placement, hideFrom: { viz: field.config.custom.hideFrom.viz, }, From 06656b4b89c88827cdf0ac35ad8ca493664b87fd Mon Sep 17 00:00:00 2001 From: vitPinchuk Date: Tue, 14 Jan 2025 22:00:52 +0300 Subject: [PATCH 3/8] update to table; add modal if all fields hidden --- src/TimeSeriesPanel.tsx | 48 ++- src/app/types/frameSettings.ts | 4 +- .../frameSettings/FrameSettingsEditor.tsx | 273 ++++++++++-------- .../FieldsEditableTable.styles.ts | 49 ++++ .../FieldsEditableTable.tsx | 169 +++++++++++ .../components/FieldsEditableTable/index.ts | 1 + src/plugins/frameSettings/components/index.ts | 1 + .../EditableTable/EditableTable.tsx | 5 + src/utils.ts | 24 +- 9 files changed, 435 insertions(+), 139 deletions(-) create mode 100644 src/plugins/frameSettings/components/FieldsEditableTable/FieldsEditableTable.styles.ts create mode 100644 src/plugins/frameSettings/components/FieldsEditableTable/FieldsEditableTable.tsx create mode 100644 src/plugins/frameSettings/components/FieldsEditableTable/index.ts create mode 100644 src/plugins/frameSettings/components/index.ts diff --git a/src/TimeSeriesPanel.tsx b/src/TimeSeriesPanel.tsx index 7e2a9a3..001a5fb 100644 --- a/src/TimeSeriesPanel.tsx +++ b/src/TimeSeriesPanel.tsx @@ -1,6 +1,14 @@ import { config } from 'app/core/config'; import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'; -import { DashboardCursorSync, DataFrame, DataFrameType, PanelProps, toDataFrame, VizOrientation } from '@grafana/data'; +import { + DashboardCursorSync, + DataFrame, + DataFrameType, + FieldType, + PanelProps, + toDataFrame, + VizOrientation, +} from '@grafana/data'; import { getBackendSrv, PanelDataErrorView, TimeRangeUpdatedEvent, usePluginUserStorage } from '@grafana/runtime'; import { TooltipDisplayMode } from '@grafana/schema'; import { Button, EventBusPlugin, KeyboardPlugin, TooltipPlugin2, usePanelContext } from '@grafana/ui'; @@ -84,6 +92,15 @@ export const TimeSeriesPanel = ({ [data.series, fieldSettings, timeRange] ); + const isAllFieldsHidden = useMemo(() => { + const currentFields = frames?.flatMap((frame) => frame.fields).filter((field) => field.type !== FieldType.time); + + /** + * hidden property has true flag + */ + return currentFields?.every((field) => field.config.custom.hideFrom.viz); + }, [frames]); + /** * revId use for structureRev * Should be changed when data changes or frame changes to render TimeSeries correctly @@ -263,7 +280,24 @@ export const TimeSeriesPanel = ({ } return ( -
+
{ + /** + * Show modal for field settings if all fields are hidden + */ + if (isAllFieldsHidden && !showFrameSettings) { + if (panelRoot.current) { + /** + * setTriggerCoords + */ + const { right, bottom } = panelRoot.current?.getBoundingClientRect(); + setTriggerCoords({ left: right / 2, top: bottom / 2 }); + } + setShowFrameSettings(true); + } + }} + > { setFieldSettings(settings); storage.setItem('volkovlabs.TimeSeriesPanel.fieldSettings', JSON.stringify(settings)); setShowFrameSettings(false); }} onDismiss={() => setShowFrameSettings(false)} - style={{ - position: 'absolute', - left: triggerCoords?.left, - top: triggerCoords?.top, - }} fieldSettings={fieldSettings} frames={frames} /> diff --git a/src/app/types/frameSettings.ts b/src/app/types/frameSettings.ts index bca59e1..9863395 100644 --- a/src/app/types/frameSettings.ts +++ b/src/app/types/frameSettings.ts @@ -4,7 +4,5 @@ export interface FieldSettings { refId?: string; name: string; axisPlacement: AxisPlacement; - hideFrom: { - viz: boolean; - }; + visibility: boolean; } diff --git a/src/plugins/frameSettings/FrameSettingsEditor.tsx b/src/plugins/frameSettings/FrameSettingsEditor.tsx index 83bc2e2..5d442aa 100644 --- a/src/plugins/frameSettings/FrameSettingsEditor.tsx +++ b/src/plugins/frameSettings/FrameSettingsEditor.tsx @@ -1,10 +1,51 @@ -import React, { HTMLAttributes, useMemo, useRef, useState } from 'react'; +import React, { HTMLAttributes, useEffect, useMemo, useRef, useState } from 'react'; import { usePopper } from 'react-popper'; -import { AxisPlacement, IconButton, Portal, RadioButtonGroup, Stack, useStyles2 } from '@grafana/ui'; +import { IconButton, Portal, Stack, useStyles2 } from '@grafana/ui'; import { DataFrame, FieldType, GrafanaTheme2 } from '@grafana/data'; import useClickAway from 'react-use/lib/useClickAway'; import { css } from '@emotion/css'; import { FieldSettings } from 'app/types/frameSettings'; +import { ColumnDef } from '@tanstack/react-table'; +import { FieldsEditableTable } from './components'; + +/** + * Constants + */ +const MaxRows = 10; +const RowHeight = 40.5; + +/** + * Timescale Item + */ +export interface FieldSettingItem { + /** + * Field name + * + * @type {string} + */ + name: string; + + /** + * Frame refId + * + * @type {string} + */ + refId?: string; + + /** + * Visibility + * + * @type {boolean} + */ + visibility: boolean; + + /** + * Axis Placement + * + * @type {string} + */ + axisPlacement: string; +} interface FrameSettingsEditorProps extends HTMLAttributes { onSave: (settings: FieldSettings[]) => void; @@ -13,25 +54,6 @@ interface FrameSettingsEditorProps extends HTMLAttributes { frames: DataFrame[]; } -/** - * Display Options - */ -const placementOptions = [ - { - value: AxisPlacement.Auto, - label: 'Auto', - description: 'First field on the left, everything else on the right', - }, - { - value: AxisPlacement.Left, - label: 'Left', - }, - { - value: AxisPlacement.Right, - label: 'Right', - }, -]; - export const FrameSettingsEditor: React.FC = ({ onDismiss, onSave, @@ -44,6 +66,16 @@ export const FrameSettingsEditor: React.FC = ({ const [popperTrigger, setPopperTrigger] = useState(null); const [editorPopover, setEditorPopover] = useState(null); + const [size, setSize] = useState({ + width: 0, + height: 0, + }); + + /** + * Editable Table Data + */ + const [editableTableData, setEditableTableData] = useState([]); + const clickAwayRef = useRef(null); const fields = useMemo( @@ -59,6 +91,16 @@ export const FrameSettingsEditor: React.FC = ({ [frames] ); + useEffect(() => { + const formElement = document.querySelector(`.${styles.editor}`); + if (formElement && fields) { + setSize({ + width: formElement.clientWidth, + height: (Math.min(fields.length, MaxRows) + 1) * RowHeight, + }); + } + }, [styles.editor, fields]); + useClickAway(clickAwayRef, () => { onDismiss(); }); @@ -76,6 +118,68 @@ export const FrameSettingsEditor: React.FC = ({ ], }); + /** + * Transform fields into editableTable Data + */ + useEffect(() => { + if (!fields.length) { + return; + } + + /** + * Set Table Data + */ + setEditableTableData( + fields.map((field) => { + return { + name: field.name, + refId: field.refId, + visibility: field.config.custom.hideFrom.viz, + axisPlacement: field.config.custom.axisPlacement, + }; + }) + ); + }, [fields]); + + /** + * Editable Table Columns + */ + const columns: Array> = useMemo(() => { + return [ + { + id: 'name', + accessorKey: 'name', + header: () => 'Field', + cell: ({ getValue }) => { + const value = getValue() as string; + return value.charAt(0).toUpperCase() + value.slice(1); + }, + enableResizing: false, + meta: { + fieldSettings: fieldSettings, + }, + }, + { + id: 'visibility', + accessorKey: 'visibility', + header: () => 'Visibility', + enableResizing: false, + meta: { + fieldSettings: fieldSettings, + }, + }, + { + id: 'axisPlacement', + accessorKey: 'axisPlacement', + header: () => 'Axis Placement', + enableResizing: false, + meta: { + fieldSettings: fieldSettings, + }, + }, + ]; + }, [fieldSettings]); + return ( <> @@ -88,113 +192,22 @@ export const FrameSettingsEditor: React.FC = ({
-
- {fields.map((field) => { - const fieldVisibility = !field.config.custom.hideFrom.viz; - - return ( -
-

{field.name} :

-
- { - /** - * Check field exist in user frame settings - */ - const existingIndex = fieldSettings.findIndex( - (item) => item.refId === field.refId && item.name === field.name - ); - - let updatedSettings: FieldSettings[] = []; - - if (existingIndex >= 0) { - /** - * Update settings - */ - updatedSettings = fieldSettings.map((item, index) => { - return existingIndex === index - ? { - ...item, - axisPlacement: placement, - } - : item; - }); - } else { - /** - * Add field to settings - */ - updatedSettings = [ - ...fieldSettings, - { - refId: field.refId, - name: field.name, - axisPlacement: placement, - hideFrom: { - viz: field.config.custom.hideFrom.viz, - }, - }, - ]; - } - - /** - * Save settings - */ - onSave(updatedSettings); - }} - /> - { - /** - * Check field exist in user frame settings - */ - const existingIndex = fieldSettings.findIndex( - (item) => item.refId === field.refId && item.name === field.name - ); - - let updatedSettings: FieldSettings[] = []; - - if (existingIndex >= 0) { - /** - * Update settings - */ - updatedSettings = fieldSettings.map((item, index) => { - return existingIndex === index - ? { - ...item, - hideFrom: { - viz: !field.config.custom.hideFrom.viz, - }, - } - : item; - }); - } else { - /** - * Add field to settings - */ - updatedSettings = [ - ...fieldSettings, - { - refId: field.refId, - name: field.name, - axisPlacement: field.config.custom.axisPlacement, - hideFrom: { - viz: !field.config.custom.hideFrom.viz, - }, - }, - ]; - } - onSave(updatedSettings); - }} - /> -
-
- ); - })} +
+
+ {!!editableTableData.length && ( + { + /** + * Save settings + */ + console.log('console > save settings -> value', value); + onSave(value as FieldSettings[]); + }} + /> + )} +
@@ -213,6 +226,10 @@ const getStyles = (theme: GrafanaTheme2) => { border-radius: ${theme.shape.radius.default}; width: 460px; `, + table: css` + margin-bottom: ${theme.spacing(1)}; + overflow: auto; + `, header: css` border-bottom: 1px solid ${theme.colors.border.weak}; padding: ${theme.spacing(1.5, 1)}; diff --git a/src/plugins/frameSettings/components/FieldsEditableTable/FieldsEditableTable.styles.ts b/src/plugins/frameSettings/components/FieldsEditableTable/FieldsEditableTable.styles.ts new file mode 100644 index 0000000..27b2c7d --- /dev/null +++ b/src/plugins/frameSettings/components/FieldsEditableTable/FieldsEditableTable.styles.ts @@ -0,0 +1,49 @@ +import { css } from '@emotion/css'; +import { GrafanaTheme2 } from '@grafana/data'; + +/** + * Styles + */ +export const Styles = (theme: GrafanaTheme2) => { + const rowHoverBg = theme.colors.emphasize(theme.colors.background.primary, 0.03); + + return { + table: css` + border-radius: ${theme.shape.radius.default}; + width: 100%; + + td { + padding: ${theme.spacing(0.5, 1)}; + + &:not(:last-child) { + border-right: 1px solid ${theme.colors.border.weak}; + } + } + `, + disableGrow: css` + width: 0; + `, + header: css` + position: sticky; + background-color: ${theme.colors.background.primary}; + box-shadow: 0 1px ${theme.colors.border.weak}; + `, + headerCell: css` + padding: ${theme.spacing(1)}; + `, + row: css` + border-bottom: 1px solid ${theme.colors.border.weak}; + + &:hover { + background-color: ${rowHoverBg}; + } + + &:last-child { + border-bottom: 0; + } + `, + cellCenter: css` + text-align: center; + `, + }; +}; diff --git a/src/plugins/frameSettings/components/FieldsEditableTable/FieldsEditableTable.tsx b/src/plugins/frameSettings/components/FieldsEditableTable/FieldsEditableTable.tsx new file mode 100644 index 0000000..ccb96be --- /dev/null +++ b/src/plugins/frameSettings/components/FieldsEditableTable/FieldsEditableTable.tsx @@ -0,0 +1,169 @@ +import React from 'react'; +import { AxisPlacement, Checkbox, RadioButtonGroup, useStyles2 } from '@grafana/ui'; +import { ColumnDef, flexRender, getCoreRowModel, useReactTable } from '@tanstack/react-table'; +import { cx } from '@emotion/css'; +import { Styles } from './FieldsEditableTable.styles'; +import { FieldSettingItem } from 'plugins/frameSettings/FrameSettingsEditor'; +import { updateFrameSettings } from '../../../../utils'; + +/** + * Properties + */ +interface Props { + /** + * Data + */ + data: TData[]; + + /** + * Columns + */ + columns: Array>; + + /** + * On Update Data + */ + onUpdateData: (rowIndex: number, columnId: string, value: unknown) => void; +} + +/** + * Display Options + */ +const placementOptions = [ + { + value: AxisPlacement.Auto, + label: 'Auto', + description: 'First field on the left, everything else on the right', + }, + { + value: AxisPlacement.Left, + label: 'Left', + }, + { + value: AxisPlacement.Right, + label: 'Right', + }, +]; + +/** + * Default Column + */ +const defaultColumn: Partial> = { + cell: ({ getValue, row, column, table }) => { + const value = getValue(); + const currentSettings = column.columnDef.meta?.fieldSettings; + + const onSaveValue = (value: unknown) => { + table.options.meta?.updateData(row.index, column.id, value); + }; + + if (column.id === 'visibility') { + return ( + { + if (currentSettings) { + const updatedSettings = updateFrameSettings(currentSettings, { + ...row.original, + visibility: !e.currentTarget.checked, + } as FieldSettingItem); + onSaveValue(updatedSettings); + } + }} + /> + ); + } + + return ( + { + if (currentSettings) { + const updatedSettings = updateFrameSettings(currentSettings, { + ...row.original, + axisPlacement: placement, + } as FieldSettingItem); + onSaveValue(updatedSettings); + } + }} + /> + ); + }, +}; + +/** + * Fields Editable Table + */ +export const FieldsEditableTable = ({ data, columns, onUpdateData }: Props) => { + /** + * Styles + */ + const styles = useStyles2(Styles); + + /** + * Instance + */ + const tableInstance = useReactTable({ + columns, + data, + defaultColumn, + getCoreRowModel: getCoreRowModel(), + meta: { + updateData: (rowIndex, columnId, value) => { + onUpdateData(rowIndex, columnId, value); + }, + }, + }); + + return ( + + + {tableInstance.getHeaderGroups().map((headerGroup) => { + return ( + + {headerGroup.headers.map((header) => { + return ( + + ); + })} + + ); + })} + + + + {tableInstance.getRowModel().rows.map((row) => { + return ( + + {row.getVisibleCells().map((cell) => { + return ( + + ); + })} + + ); + })} + +
+ {flexRender(header.column.columnDef.header, header.getContext())} +
+ {flexRender(cell.column.columnDef.cell, cell.getContext())} +
+ ); +}; diff --git a/src/plugins/frameSettings/components/FieldsEditableTable/index.ts b/src/plugins/frameSettings/components/FieldsEditableTable/index.ts new file mode 100644 index 0000000..fd13e94 --- /dev/null +++ b/src/plugins/frameSettings/components/FieldsEditableTable/index.ts @@ -0,0 +1 @@ +export * from './FieldsEditableTable'; diff --git a/src/plugins/frameSettings/components/index.ts b/src/plugins/frameSettings/components/index.ts new file mode 100644 index 0000000..fd13e94 --- /dev/null +++ b/src/plugins/frameSettings/components/index.ts @@ -0,0 +1 @@ +export * from './FieldsEditableTable'; diff --git a/src/plugins/timescales/components/EditableTable/EditableTable.tsx b/src/plugins/timescales/components/EditableTable/EditableTable.tsx index 2ddd1c3..6a12606 100644 --- a/src/plugins/timescales/components/EditableTable/EditableTable.tsx +++ b/src/plugins/timescales/components/EditableTable/EditableTable.tsx @@ -3,6 +3,7 @@ import { Checkbox, Input, useStyles2 } from '@grafana/ui'; import { ColumnDef, flexRender, getCoreRowModel, RowData, useReactTable } from '@tanstack/react-table'; import { cx } from '@emotion/css'; import { Styles } from './EditableTable.styles'; +import { FieldSettings } from 'app/types/frameSettings'; /** * Properties @@ -28,6 +29,10 @@ declare module '@tanstack/react-table' { interface TableMeta { updateData: (rowIndex: number, columnId: string, value: unknown) => void; } + + interface ColumnMeta { + fieldSettings?: FieldSettings[]; + } } /** diff --git a/src/utils.ts b/src/utils.ts index 1905c7f..318253a 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -14,6 +14,7 @@ import { GraphFieldConfig, LineInterpolation, TooltipDisplayMode, VizTooltipOpti import { applyNullInsertThreshold } from '@grafana/ui/src/components/GraphNG/nullInsertThreshold'; import { nullToValue } from '@grafana/ui/src/components/GraphNG/nullToValue'; import { FieldSettings } from 'app/types/frameSettings'; +import { FieldSettingItem } from 'plugins/frameSettings/FrameSettingsEditor'; /** * Returns null if there are no graphable fields @@ -189,7 +190,11 @@ const applyUserSettingsForFrame = (frames: DataFrame[], fieldSettings: FieldSett field.config.custom.axisPlacement = existedField.axisPlacement; field.config.custom.hideFrom = { ...field.config.custom.hideFrom, - viz: existedField.hideFrom.viz, + /** + * Hide from visualization and legend + */ + viz: existedField.visibility, + legend: existedField.visibility, }; } }); @@ -239,3 +244,20 @@ export function regenerateLinksSupplier( export const isTooltipScrollable = (tooltipOptions: VizTooltipOptions | any) => { return tooltipOptions.mode === TooltipDisplayMode.Multi && tooltipOptions.maxHeight != null; }; + +export const updateFrameSettings = (currentSettings: FieldSettings[] | undefined, updatedField: FieldSettingItem) => { + /** + * Check field exist in user frame settings + */ + const existingIndex = currentSettings!.findIndex( + (item) => item.refId === updatedField.refId && item.name === updatedField.name + ); + + if (existingIndex >= 0) { + return currentSettings?.map((item, index) => { + return existingIndex === index ? updatedField : item; + }); + } + + return [...currentSettings!, updatedField]; +}; From 193d55a7f9d234ff3dbb3d04684c35d406875a25 Mon Sep 17 00:00:00 2001 From: vitPinchuk Date: Fri, 17 Jan 2025 17:01:51 +0300 Subject: [PATCH 4/8] getFieldLinksForExplore removed --- src/app/features/explore/utils/links.ts | 204 +----------------------- 1 file changed, 2 insertions(+), 202 deletions(-) diff --git a/src/app/features/explore/utils/links.ts b/src/app/features/explore/utils/links.ts index c01dcb7..563f840 100644 --- a/src/app/features/explore/utils/links.ts +++ b/src/app/features/explore/utils/links.ts @@ -1,41 +1,7 @@ import { uniqBy } from 'lodash'; -import { useCallback } from 'react'; -import { - CoreApp, - DataFrame, - DataLink, - DataLinkConfigOrigin, - DisplayValue, - Field, - getFieldDisplayValuesProxy, - InterpolateFunction, - LinkModel, - mapInternalLinkToExplore, - ScopedVars, - SplitOpen, - SplitOpenOptions, - TimeRange, -} from '@grafana/data'; -import { getTemplateSrv, reportInteraction, VariableInterpolation } from '@grafana/runtime'; -import { DataQuery } from '@grafana/schema'; -// import { contextSrv } from 'app/core/services/context_srv'; -import { getTransformationVars } from 'app/features/correlations/transformations'; - -import { getLinkSrv } from '../../panel/panellinks/link_srv'; - -type DataLinkFilter = (link: DataLink, scopedVars: ScopedVars) => boolean; - -const dataLinkHasRequiredPermissionsFilter = (link: DataLink) => { - return !link.internal; - // return !link.internal || contextSrv.hasAccessToExplore(); -}; - -/** - * Fixed list of filters used in Explore. DataLinks that do not pass all the filters will not - * be passed back to the visualization. - */ -const DATA_LINK_FILTERS: DataLinkFilter[] = [dataLinkHasRequiredPermissionsFilter]; +import { DataLink, Field, LinkModel, ScopedVars } from '@grafana/data'; +import { getTemplateSrv, VariableInterpolation } from '@grafana/runtime'; /** * This extension of the LinkModel was done to support correlations, which need the variables' names @@ -48,146 +14,6 @@ export interface ExploreFieldLinkModel extends LinkModel { variables?: VariableInterpolation[]; } -const DATA_LINK_USAGE_KEY = 'grafana_data_link_clicked'; - -/** - * Get links from the field of a dataframe and in addition check if there is associated - * metadata with datasource in which case we will add onClick to open the link in new split window. This assumes - * that we just supply datasource name and field value and Explore split window will know how to render that - * appropriately. This is for example used for transition from log with traceId to trace datasource to show that - * trace. - * - * Note: accessing a field via ${__data.fields.variable} will stay consistent with dashboards and return as existing but with an empty string - * Accessing a field with ${variable} will return undefined as this is unique to explore. - */ -export const getFieldLinksForExplore = (options: { - field: Field; - rowIndex: number; - splitOpenFn?: SplitOpen; - range: TimeRange; - vars?: ScopedVars; - dataFrame?: DataFrame; -}): ExploreFieldLinkModel[] => { - const { field, vars, splitOpenFn, range, rowIndex, dataFrame } = options; - const scopedVars: ScopedVars = { ...(vars || {}) }; - scopedVars['__value'] = { - value: { - raw: field.values[rowIndex], - }, - text: 'Raw value', - }; - - let fieldDisplayValuesProxy: Record | undefined = undefined; - - // If we have a dataFrame we can allow referencing other columns and their values in the interpolation. - if (dataFrame) { - fieldDisplayValuesProxy = getFieldDisplayValuesProxy({ - frame: dataFrame, - rowIndex, - }); - - scopedVars['__data'] = { - value: { - name: dataFrame.name, - refId: dataFrame.refId, - fields: fieldDisplayValuesProxy, - }, - text: 'Data', - }; - - dataFrame.fields.forEach((f) => { - if (fieldDisplayValuesProxy && fieldDisplayValuesProxy[f.name]) { - scopedVars[f.name] = { - value: fieldDisplayValuesProxy[f.name], - }; - } - }); - - // add this for convenience - scopedVars['__targetField'] = { - value: fieldDisplayValuesProxy[field.name], - }; - } - - if (field.config.links) { - const links = field.config.links.filter((link) => { - return DATA_LINK_FILTERS.every((filter) => filter(link, scopedVars)); - }); - - const fieldLinks = links.map((link) => { - if (!link.internal) { - const replace: InterpolateFunction = (value, vars) => - getTemplateSrv().replace(value, { ...vars, ...scopedVars }); - - const linkModel = getLinkSrv().getDataLinkUIModel(link, replace, field); - if (!linkModel.title) { - linkModel.title = getTitleFromHref(linkModel.href); - } - return linkModel; - } else { - let internalLinkSpecificVars: ScopedVars = {}; - if (link.internal?.transformations) { - link.internal?.transformations.forEach((transformation) => { - let fieldValue; - if (transformation.field) { - const transformField = dataFrame?.fields.find((field) => field.name === transformation.field); - fieldValue = transformField?.values[rowIndex]; - } else { - fieldValue = field.values[rowIndex]; - } - - internalLinkSpecificVars = { - ...internalLinkSpecificVars, - ...getTransformationVars(transformation, fieldValue, field.name), - }; - }); - } - - const allVars = { ...scopedVars, ...internalLinkSpecificVars }; - const variableData = getVariableUsageInfo(link, allVars); - let variables: VariableInterpolation[] = []; - - // if the link has no variables (static link), add it with the right key but an empty value so we know what field the static link is associated with - if (variableData.variables.length === 0) { - const fieldName = field.name.toString(); - variables.push({ variableName: fieldName, value: '', match: '' }); - } else { - variables = variableData.variables; - } - - const splitFnWithTracking = (options?: SplitOpenOptions) => { - reportInteraction(DATA_LINK_USAGE_KEY, { - origin: link.origin || DataLinkConfigOrigin.Datasource, - app: CoreApp.Explore, - internal: true, - }); - - splitOpenFn?.(options); - }; - - if (variableData.allVariablesDefined) { - const internalLink = mapInternalLinkToExplore({ - link, - internalLink: link.internal, - scopedVars: allVars, - range, - field, - // Don't track internal links without split view as they are used only in Dashboards - // TODO: It should be revisited in #66570 - onClickFn: options.splitOpenFn ? (options) => splitFnWithTracking(options) : undefined, - replaceVariables: getTemplateSrv().replace.bind(getTemplateSrv()), - }); - return { ...internalLink, variables: variables }; - } else { - return undefined; - } - } - }); - return fieldLinks.filter((link): link is ExploreFieldLinkModel => !!link); - } - return []; -}; - /** * @internal */ @@ -208,32 +34,6 @@ export function getTitleFromHref(href: string): string { return title; } -/** - * Hook that returns a function that can be used to retrieve all the links for a row. This returns all the links from - * all the fields so is useful for visualisation where the whole row is represented as single clickable item like a - * service map. - */ -export function useLinks(range: TimeRange, splitOpenFn?: SplitOpen) { - return useCallback( - (dataFrame: DataFrame, rowIndex: number) => { - return dataFrame.fields.flatMap((f) => { - if (f.config?.links && f.config?.links.length) { - return getFieldLinksForExplore({ - field: f, - rowIndex: rowIndex, - range, - dataFrame, - splitOpenFn, - }); - } else { - return []; - } - }); - }, - [range, splitOpenFn] - ); -} - /** * Use variable map from templateSrv to determine if all variables have values * @param query From 3892800a4b18b6f73aead1d982a1ce2acf00540a Mon Sep 17 00:00:00 2001 From: vitPinchuk Date: Fri, 17 Jan 2025 17:07:48 +0300 Subject: [PATCH 5/8] don`t close frame settings after change --- src/TimeSeriesPanel.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/src/TimeSeriesPanel.tsx b/src/TimeSeriesPanel.tsx index 001a5fb..5605d74 100644 --- a/src/TimeSeriesPanel.tsx +++ b/src/TimeSeriesPanel.tsx @@ -520,7 +520,6 @@ export const TimeSeriesPanel = ({ onSave={(settings: FieldSettings[]) => { setFieldSettings(settings); storage.setItem('volkovlabs.TimeSeriesPanel.fieldSettings', JSON.stringify(settings)); - setShowFrameSettings(false); }} onDismiss={() => setShowFrameSettings(false)} fieldSettings={fieldSettings} From 3943e757be14ecf7f950893287fc9a03a3518e5d Mon Sep 17 00:00:00 2001 From: vitPinchuk Date: Fri, 17 Jan 2025 17:20:57 +0300 Subject: [PATCH 6/8] key place to constant; remove console --- src/TimeSeriesPanel.tsx | 6 ++++-- src/plugins/frameSettings/FrameSettingsEditor.tsx | 1 - 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/TimeSeriesPanel.tsx b/src/TimeSeriesPanel.tsx index 5605d74..5154e97 100644 --- a/src/TimeSeriesPanel.tsx +++ b/src/TimeSeriesPanel.tsx @@ -33,6 +33,8 @@ import { PinnedPoint } from 'app/types'; interface TimeSeriesPanelProps extends PanelProps {} +const USER_FIELD_SETTINGS_KEY = 'volkovlabs.TimeSeriesPanel.fieldSettings'; + const getPinnedPointKey = (dataIdxs: Array, seriesIdx: number | null): string => { return `${seriesIdx}-${dataIdxs.join('-')}`; }; @@ -69,7 +71,7 @@ export const TimeSeriesPanel = ({ const storage = usePluginUserStorage(); useEffect(() => { - storage.getItem('volkovlabs.TimeSeriesPanel.fieldSettings').then((value: string | null) => { + storage.getItem(USER_FIELD_SETTINGS_KEY).then((value: string | null) => { setFieldSettings(value ? JSON.parse(value) : []); }); @@ -519,7 +521,7 @@ export const TimeSeriesPanel = ({ }} onSave={(settings: FieldSettings[]) => { setFieldSettings(settings); - storage.setItem('volkovlabs.TimeSeriesPanel.fieldSettings', JSON.stringify(settings)); + storage.setItem(USER_FIELD_SETTINGS_KEY, JSON.stringify(settings)); }} onDismiss={() => setShowFrameSettings(false)} fieldSettings={fieldSettings} diff --git a/src/plugins/frameSettings/FrameSettingsEditor.tsx b/src/plugins/frameSettings/FrameSettingsEditor.tsx index 5d442aa..9ed6b9a 100644 --- a/src/plugins/frameSettings/FrameSettingsEditor.tsx +++ b/src/plugins/frameSettings/FrameSettingsEditor.tsx @@ -202,7 +202,6 @@ export const FrameSettingsEditor: React.FC = ({ /** * Save settings */ - console.log('console > save settings -> value', value); onSave(value as FieldSettings[]); }} /> From aacae7ca2745a732f9b36da63679c6a341c0461e Mon Sep 17 00:00:00 2001 From: vitPinchuk Date: Tue, 4 Feb 2025 14:24:31 +0300 Subject: [PATCH 7/8] update versions --- docker-compose.yml | 3 +- package-lock.json | 1332 +++++++++++--------------------------------- package.json | 2 +- 3 files changed, 336 insertions(+), 1001 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index e831428..9210e90 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,13 +1,12 @@ services: grafana: - image: grafana/grafana:main + image: grafana/grafana:11.5.1 ports: - 3000:3000/tcp environment: - GF_DEFAULT_APP_MODE=development - GF_DASHBOARDS_DEFAULT_HOME_DASHBOARD_PATH=/etc/grafana/provisioning/dashboards/panels.json - GF_INSTALL_PLUGINS=volkovlabs-variable-panel - - GF_FEATURE_TOGGLES_ENABLE=userStorageAPI volumes: - ./dist:/var/lib/grafana/plugins/volkovlabs-timeseries-panel - ./provisioning:/etc/grafana/provisioning diff --git a/package-lock.json b/package-lock.json index 2ba34a5..9a4423d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "@emotion/css": "^11.13.0", "@grafana/data": "^11.1.4", - "@grafana/runtime": "^11.5.0-216340", + "@grafana/runtime": "^11.5.1", "@grafana/schema": "^11.1.4", "@grafana/ui": "^11.1.4", "@reduxjs/toolkit": "^2.2.7", @@ -1908,16 +1908,16 @@ "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==" }, "node_modules/@emotion/react": { - "version": "11.13.3", - "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.13.3.tgz", - "integrity": "sha512-lIsdU6JNrmYfJ5EbUCf4xW1ovy5wKQ2CkPRM4xogziOxH1nXxBSjpC9YqbFAP7circxMfYp+6x676BqWcEiixg==", + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.14.0.tgz", + "integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==", "dependencies": { "@babel/runtime": "^7.18.3", - "@emotion/babel-plugin": "^11.12.0", - "@emotion/cache": "^11.13.0", - "@emotion/serialize": "^1.3.1", - "@emotion/use-insertion-effect-with-fallbacks": "^1.1.0", - "@emotion/utils": "^1.4.0", + "@emotion/babel-plugin": "^11.13.5", + "@emotion/cache": "^11.14.0", + "@emotion/serialize": "^1.3.3", + "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0", + "@emotion/utils": "^1.4.2", "@emotion/weak-memoize": "^0.4.0", "hoist-non-react-statics": "^3.3.1" }, @@ -2136,9 +2136,9 @@ } }, "node_modules/@formatjs/icu-messageformat-parser": { - "version": "2.9.8", - "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.9.8.tgz", - "integrity": "sha512-hZlLNI3+Lev8IAXuwehLoN7QTKqbx3XXwFW1jh0AdIA9XJdzn9Uzr+2LLBspPm/PX0+NLIfykj/8IKxQqHUcUQ==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.11.0.tgz", + "integrity": "sha512-Hp81uTjjdTk3FLh/dggU5NK7EIsVWc5/ZDWrIldmf2rBuPejuZ13CZ/wpVE2SToyi4EiroPTQ1XJcJuZFIxTtw==", "dependencies": { "@formatjs/ecma402-abstract": "2.3.2", "@formatjs/icu-skeleton-parser": "1.8.12", @@ -2163,32 +2163,32 @@ } }, "node_modules/@grafana/data": { - "version": "11.4.0", - "resolved": "https://registry.npmjs.org/@grafana/data/-/data-11.4.0.tgz", - "integrity": "sha512-/Og3njCvDRR+jYWAYlEjNZfyO0KaYiH/3Hvz5lXYd/B29sN8ZOfyvdB3lp+727y4sHIG+Jb1NiX0L3qHD7dLgQ==", + "version": "11.5.1", + "resolved": "https://registry.npmjs.org/@grafana/data/-/data-11.5.1.tgz", + "integrity": "sha512-boN98B8ZMlqieexjOhVqOzF5a8sByR5QihdHhCw7MScBh/6YroLhzxCgJb0T369zF5AGhxVj08WgLQ2m/Q492g==", "dependencies": { "@braintree/sanitize-url": "7.0.1", - "@grafana/schema": "11.4.0", + "@grafana/schema": "11.5.1", "@types/d3-interpolate": "^3.0.0", "@types/string-hash": "1.1.3", "d3-interpolate": "3.0.1", - "date-fns": "3.6.0", - "dompurify": "^3.0.0", + "date-fns": "4.1.0", + "dompurify": "3.2.3", "eventemitter3": "5.0.1", "fast_array_intersect": "1.1.0", "history": "4.10.1", "lodash": "4.17.21", - "marked": "12.0.2", - "marked-mangle": "1.1.9", + "marked": "15.0.6", + "marked-mangle": "1.1.10", "moment": "2.30.1", "moment-timezone": "0.5.46", "ol": "7.4.0", "papaparse": "5.4.1", - "react-use": "17.5.1", + "react-use": "17.6.0", "rxjs": "7.8.1", "string-hash": "^1.1.3", "tinycolor2": "1.6.0", - "tslib": "2.7.0", + "tslib": "2.8.1", "uplot": "1.6.31", "xss": "^1.0.14" }, @@ -2234,13 +2234,14 @@ } }, "node_modules/@grafana/e2e-selectors": { - "version": "11.4.0", - "resolved": "https://registry.npmjs.org/@grafana/e2e-selectors/-/e2e-selectors-11.4.0.tgz", - "integrity": "sha512-6VRsmTpqtmNuXJvuUNJudHFdZJR7oc1DtZMDoaOY+3Y3yPU+4oEdM2MtsyYHPkMbfTONlJ4fdIC0WFnWhDIhLA==", + "version": "11.5.1", + "resolved": "https://registry.npmjs.org/@grafana/e2e-selectors/-/e2e-selectors-11.5.1.tgz", + "integrity": "sha512-pvWax2RBAGarEoXdby5wftX6P+PZluWAF1ylN93OZfwJqvqVNbN1BHmYe2Y83HOKzhne9ML1kTH0KaJMiefaBA==", "dependencies": { "@grafana/tsconfig": "^2.0.0", - "tslib": "2.7.0", - "typescript": "5.5.4" + "semver": "7.6.3", + "tslib": "2.8.1", + "typescript": "5.7.3" } }, "node_modules/@grafana/e2e-selectors/node_modules/@grafana/tsconfig": { @@ -2248,6 +2249,29 @@ "resolved": "https://registry.npmjs.org/@grafana/tsconfig/-/tsconfig-2.0.0.tgz", "integrity": "sha512-cxC3Htv/GidI5FeVGAzj/lYZTMMz/Cfsc8VOQFO3Ichjx3hUjyjeoBUIpVSVMnIjKUdA5ycdxtMYPHIuIrk8+A==" }, + "node_modules/@grafana/e2e-selectors/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@grafana/e2e-selectors/node_modules/typescript": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, "node_modules/@grafana/e2e/node_modules/@babel/core": { "version": "7.23.2", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.2.tgz", @@ -2809,15 +2833,15 @@ } }, "node_modules/@grafana/runtime": { - "version": "11.5.0-216340", - "resolved": "https://registry.npmjs.org/@grafana/runtime/-/runtime-11.5.0-216340.tgz", - "integrity": "sha512-rszaOakmsdRTZigt8RSBqCHz1l4Qt1KBQ73f3AoHlE52kIBGEQRA+fAnEccnZE0GqYs6FOX3DmrQLnV1eaWuYw==", + "version": "11.5.1", + "resolved": "https://registry.npmjs.org/@grafana/runtime/-/runtime-11.5.1.tgz", + "integrity": "sha512-WHJa+RAPFJU8sS7oKC1iYiS02y7U50HQYFTt9loPKYxKDLpKx+1DJlpSPZqTJiyeMLo84sBJTxQgueEAGRzsNw==", "dependencies": { - "@grafana/data": "11.5.0-216340", - "@grafana/e2e-selectors": "11.5.0-216340", + "@grafana/data": "11.5.1", + "@grafana/e2e-selectors": "11.5.1", "@grafana/faro-web-sdk": "^1.3.6", - "@grafana/schema": "11.5.0-216340", - "@grafana/ui": "11.5.0-216340", + "@grafana/schema": "11.5.1", + "@grafana/ui": "11.5.1", "history": "4.10.1", "lodash": "4.17.21", "react-use": "17.6.0", @@ -2829,115 +2853,33 @@ "react-dom": "^18.0.0" } }, - "node_modules/@grafana/runtime/node_modules/@emotion/react": { - "version": "11.14.0", - "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.14.0.tgz", - "integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==", - "dependencies": { - "@babel/runtime": "^7.18.3", - "@emotion/babel-plugin": "^11.13.5", - "@emotion/cache": "^11.14.0", - "@emotion/serialize": "^1.3.3", - "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0", - "@emotion/utils": "^1.4.2", - "@emotion/weak-memoize": "^0.4.0", - "hoist-non-react-statics": "^3.3.1" - }, - "peerDependencies": { - "react": ">=16.8.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@grafana/runtime/node_modules/@floating-ui/react": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.27.3.tgz", - "integrity": "sha512-CLHnes3ixIFFKVQDdICjel8muhFLOBdQH7fgtHNPY8UbCNqbeKZ262G7K66lGQOUQWWnYocf7ZbUsLJgGfsLHg==", - "dependencies": { - "@floating-ui/react-dom": "^2.1.2", - "@floating-ui/utils": "^0.2.9", - "tabbable": "^6.0.0" - }, - "peerDependencies": { - "react": ">=17.0.0", - "react-dom": ">=17.0.0" - } - }, - "node_modules/@grafana/runtime/node_modules/@grafana/data": { - "version": "11.5.0-216340", - "resolved": "https://registry.npmjs.org/@grafana/data/-/data-11.5.0-216340.tgz", - "integrity": "sha512-0W0qFErZVcaeee24UNygEpi+PgMOyuMQLWUPJNXALRz/ekehY0zEEwzmADcHK9mDsUv38uhIoc92NsU27FSDeQ==", - "dependencies": { - "@braintree/sanitize-url": "7.0.1", - "@grafana/schema": "11.5.0-216340", - "@types/d3-interpolate": "^3.0.0", - "@types/string-hash": "1.1.3", - "d3-interpolate": "3.0.1", - "date-fns": "4.1.0", - "dompurify": "3.2.3", - "eventemitter3": "5.0.1", - "fast_array_intersect": "1.1.0", - "history": "4.10.1", - "lodash": "4.17.21", - "marked": "15.0.6", - "marked-mangle": "1.1.10", - "moment": "2.30.1", - "moment-timezone": "0.5.46", - "ol": "7.4.0", - "papaparse": "5.4.1", - "react-use": "17.6.0", - "rxjs": "7.8.1", - "string-hash": "^1.1.3", - "tinycolor2": "1.6.0", - "tslib": "2.8.1", - "uplot": "1.6.31", - "xss": "^1.0.14" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@grafana/runtime/node_modules/@grafana/e2e-selectors": { - "version": "11.5.0-216340", - "resolved": "https://registry.npmjs.org/@grafana/e2e-selectors/-/e2e-selectors-11.5.0-216340.tgz", - "integrity": "sha512-zg4xjLSMqSePLxQ12o7cm3/9iVhE5UwYpxQbauqWPLnzQC9JupE6jxD/2XeTQidsRCaOZOastvqY3tR+dvKQ3A==", - "dependencies": { - "@grafana/tsconfig": "^2.0.0", - "semver": "7.6.3", - "tslib": "2.8.1", - "typescript": "5.7.3" - } - }, - "node_modules/@grafana/runtime/node_modules/@grafana/schema": { - "version": "11.5.0-216340", - "resolved": "https://registry.npmjs.org/@grafana/schema/-/schema-11.5.0-216340.tgz", - "integrity": "sha512-fZuMFnUl/CCbH9cS+MH61Gy9d2bwObztqq61jh2E3Um9VqUGzrV8VEmrgvpi948giekDAlP+65tINjVH9vBsGA==", + "node_modules/@grafana/schema": { + "version": "11.5.1", + "resolved": "https://registry.npmjs.org/@grafana/schema/-/schema-11.5.1.tgz", + "integrity": "sha512-i8Ep003k1ThI48ARlPRA2iUpCp7+DtECQ9KWv2DUDd605DWpaGsIujp4YLb6Xnq+oFOHSZeA5TDgHYZjsJBxwg==", "dependencies": { "tslib": "2.8.1" } }, - "node_modules/@grafana/runtime/node_modules/@grafana/tsconfig": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@grafana/tsconfig/-/tsconfig-2.0.0.tgz", - "integrity": "sha512-cxC3Htv/GidI5FeVGAzj/lYZTMMz/Cfsc8VOQFO3Ichjx3hUjyjeoBUIpVSVMnIjKUdA5ycdxtMYPHIuIrk8+A==" + "node_modules/@grafana/tsconfig": { + "version": "1.3.0-rc1", + "resolved": "https://registry.npmjs.org/@grafana/tsconfig/-/tsconfig-1.3.0-rc1.tgz", + "integrity": "sha512-bi+qFOptejg/a2/WmCDVxQLQtobhKd3y+B6mxFBOMmzElqgr30MPnN60THTou6dGwtfw+ExX1H5FGm9DM35Qrw==", + "dev": true }, - "node_modules/@grafana/runtime/node_modules/@grafana/ui": { - "version": "11.5.0-216340", - "resolved": "https://registry.npmjs.org/@grafana/ui/-/ui-11.5.0-216340.tgz", - "integrity": "sha512-RQ1iIooE6hMeLuQCtbqqkeQAZLH6/cAiT51l11JEj/4UQdu31zerzXZvQpaZ6EdsggNRXm3Wc5VyCv/MBqqi9w==", + "node_modules/@grafana/ui": { + "version": "11.5.1", + "resolved": "https://registry.npmjs.org/@grafana/ui/-/ui-11.5.1.tgz", + "integrity": "sha512-SpH3QnME+fxk9GORTZ/fhnC2RcK5WJq/O4fomElprXpAkZkvDIHcUGWMNyddWez9wBnVnRWa6KjiSHnd2cYx5Q==", "dependencies": { "@emotion/css": "11.13.5", "@emotion/react": "11.14.0", "@emotion/serialize": "1.3.3", "@floating-ui/react": "0.27.3", - "@grafana/data": "11.5.0-216340", - "@grafana/e2e-selectors": "11.5.0-216340", + "@grafana/data": "11.5.1", + "@grafana/e2e-selectors": "11.5.1", "@grafana/faro-web-sdk": "^1.3.6", - "@grafana/schema": "11.5.0-216340", + "@grafana/schema": "11.5.1", "@hello-pangea/dnd": "17.0.0", "@leeoniya/ufuzzy": "1.0.18", "@monaco-editor/react": "4.6.0", @@ -2995,215 +2937,33 @@ "tinycolor2": "1.6.0", "tslib": "2.8.1", "uplot": "1.6.31", - "uuid": "11.0.4" + "uuid": "11.0.5" }, "peerDependencies": { "react": "^18.0.0", "react-dom": "^18.0.0" } }, - "node_modules/@grafana/runtime/node_modules/@leeoniya/ufuzzy": { - "version": "1.0.18", - "resolved": "https://registry.npmjs.org/@leeoniya/ufuzzy/-/ufuzzy-1.0.18.tgz", - "integrity": "sha512-5D54A86/VaPvJVf7UWJgy+UyhDtstUxq0iQd8UOZ2TG3NjV2oSoa9m4qW3VsotDD6dH2SNHDQwSPq+IAuudnag==" - }, - "node_modules/@grafana/runtime/node_modules/@react-aria/dialog": { - "version": "3.5.20", - "resolved": "https://registry.npmjs.org/@react-aria/dialog/-/dialog-3.5.20.tgz", - "integrity": "sha512-l0GZVLgeOd3kL3Yj8xQW7wN3gn9WW3RLd/SGI9t7ciTq+I/FhftjXCWzXLlOCCTLMf+gv7eazecECtmoWUaZWQ==", - "dependencies": { - "@react-aria/focus": "^3.19.0", - "@react-aria/overlays": "^3.24.0", - "@react-aria/utils": "^3.26.0", - "@react-types/dialog": "^3.5.14", - "@react-types/shared": "^3.26.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@grafana/runtime/node_modules/@react-aria/focus": { - "version": "3.19.0", - "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.19.0.tgz", - "integrity": "sha512-hPF9EXoUQeQl1Y21/rbV2H4FdUR2v+4/I0/vB+8U3bT1CJ+1AFj1hc/rqx2DqEwDlEwOHN+E4+mRahQmlybq0A==", - "dependencies": { - "@react-aria/interactions": "^3.22.5", - "@react-aria/utils": "^3.26.0", - "@react-types/shared": "^3.26.0", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@grafana/runtime/node_modules/@react-aria/overlays": { - "version": "3.24.0", - "resolved": "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.24.0.tgz", - "integrity": "sha512-0kAXBsMNTc/a3M07tK9Cdt/ea8CxTAEJ223g8YgqImlmoBBYAL7dl5G01IOj67TM64uWPTmZrOklBchHWgEm3A==", - "dependencies": { - "@react-aria/focus": "^3.19.0", - "@react-aria/i18n": "^3.12.4", - "@react-aria/interactions": "^3.22.5", - "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.26.0", - "@react-aria/visually-hidden": "^3.8.18", - "@react-stately/overlays": "^3.6.12", - "@react-types/button": "^3.10.1", - "@react-types/overlays": "^3.8.11", - "@react-types/shared": "^3.26.0", - "@swc/helpers": "^0.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@grafana/runtime/node_modules/@react-aria/utils": { - "version": "3.26.0", - "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.26.0.tgz", - "integrity": "sha512-LkZouGSjjQ0rEqo4XJosS4L3YC/zzQkfRM3KoqK6fUOmUJ9t0jQ09WjiF+uOoG9u+p30AVg3TrZRUWmoTS+koQ==", - "dependencies": { - "@react-aria/ssr": "^3.9.7", - "@react-stately/utils": "^3.10.5", - "@react-types/shared": "^3.26.0", - "@swc/helpers": "^0.5.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" - } - }, - "node_modules/@grafana/runtime/node_modules/clsx": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/@grafana/runtime/node_modules/date-fns": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz", - "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/kossnocorp" - } - }, - "node_modules/@grafana/runtime/node_modules/file-selector": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/file-selector/-/file-selector-2.1.2.tgz", - "integrity": "sha512-QgXo+mXTe8ljeqUFaX3QVHc5osSItJ/Km+xpocx0aSqWGMSCf6qYs/VnzZgS864Pjn5iceMRFigeAV7AfTlaig==", - "dependencies": { - "tslib": "^2.7.0" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/@grafana/runtime/node_modules/i18next": { - "version": "24.2.1", - "resolved": "https://registry.npmjs.org/i18next/-/i18next-24.2.1.tgz", - "integrity": "sha512-Q2wC1TjWcSikn1VAJg13UGIjc+okpFxQTxjVAymOnSA3RpttBQNMPf2ovcgoFVsV4QNxTfNZMAxorXZXsk4fBA==", - "funding": [ - { - "type": "individual", - "url": "https://locize.com" - }, - { - "type": "individual", - "url": "https://locize.com/i18next.html" - }, - { - "type": "individual", - "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project" - } - ], + "node_modules/@grafana/ui/node_modules/@floating-ui/react": { + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.27.3.tgz", + "integrity": "sha512-CLHnes3ixIFFKVQDdICjel8muhFLOBdQH7fgtHNPY8UbCNqbeKZ262G7K66lGQOUQWWnYocf7ZbUsLJgGfsLHg==", "dependencies": { - "@babel/runtime": "^7.23.2" + "@floating-ui/react-dom": "^2.1.2", + "@floating-ui/utils": "^0.2.9", + "tabbable": "^6.0.0" }, "peerDependencies": { - "typescript": "^5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@grafana/runtime/node_modules/i18next-browser-languagedetector": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-8.0.2.tgz", - "integrity": "sha512-shBvPmnIyZeD2VU5jVGIOWP7u9qNG3Lj7mpaiPFpbJ3LVfHZJvVzKR4v1Cb91wAOFpNw442N+LGPzHOHsten2g==", - "dependencies": { - "@babel/runtime": "^7.23.2" + "react": ">=17.0.0", + "react-dom": ">=17.0.0" } }, - "node_modules/@grafana/runtime/node_modules/immutable": { + "node_modules/@grafana/ui/node_modules/immutable": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.0.3.tgz", "integrity": "sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw==" }, - "node_modules/@grafana/runtime/node_modules/marked": { - "version": "15.0.6", - "resolved": "https://registry.npmjs.org/marked/-/marked-15.0.6.tgz", - "integrity": "sha512-Y07CUOE+HQXbVDCGl3LXggqJDbXDP2pArc2C1N1RRMN0ONiShoSsIInMd5Gsxupe7fKLpgimTV+HOJ9r7bA+pg==", - "bin": { - "marked": "bin/marked.js" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@grafana/runtime/node_modules/marked-mangle": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/marked-mangle/-/marked-mangle-1.1.10.tgz", - "integrity": "sha512-TrpN67SMJJdzXXWIzOd/QmnpsC5o1B44PUYaG2bh1XEbqVjA0UCI2ijFuE5LWESwKeI2gCP5FqcUHRGQwFtDIA==", - "peerDependencies": { - "marked": ">=4 <16" - } - }, - "node_modules/@grafana/runtime/node_modules/rc-cascader": { - "version": "3.31.0", - "resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-3.31.0.tgz", - "integrity": "sha512-uA5szCBHnpz+wHeuLkuSoZXFqSD9rVfrgOQUvcMexK3I3eQs2MLPzgsNCBi+paRevnsMFHLVhbmXPvueRgQVFA==", - "dependencies": { - "@babel/runtime": "^7.25.7", - "classnames": "^2.3.1", - "rc-select": "~14.16.2", - "rc-tree": "~5.11.0", - "rc-util": "^5.43.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/@grafana/runtime/node_modules/rc-select": { - "version": "14.16.4", - "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-14.16.4.tgz", - "integrity": "sha512-jP6qf7+vjnxGvPpfPWbGYfFlSl3h8L2XcD4O7g2GYXmEeBC0mw+nPD7i++OOE8v3YGqP8xtYjRKAWCMLfjgxlw==", - "dependencies": { - "@babel/runtime": "^7.10.1", - "@rc-component/trigger": "^2.1.1", - "classnames": "2.x", - "rc-motion": "^2.0.1", - "rc-overflow": "^1.3.1", - "rc-util": "^5.16.1", - "rc-virtual-list": "^3.5.2" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": "*", - "react-dom": "*" - } - }, - "node_modules/@grafana/runtime/node_modules/rc-slider": { + "node_modules/@grafana/ui/node_modules/rc-slider": { "version": "11.1.8", "resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-11.1.8.tgz", "integrity": "sha512-2gg/72YFSpKP+Ja5AjC5DPL1YnV8DEITDQrcc1eASrUYjl0esptaBVJBh5nLTXCCp15eD8EuGjwezVGSHhs9tQ==", @@ -3211,412 +2971,13 @@ "@babel/runtime": "^7.10.1", "classnames": "^2.2.5", "rc-util": "^5.36.0" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/@grafana/runtime/node_modules/rc-tooltip": { - "version": "6.3.2", - "resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-6.3.2.tgz", - "integrity": "sha512-oA4HZIiZJbUQ5ojigM0y4XtWxaH/aQlJSzknjICRWNpqyemy1sL3X3iEQV2eSPBWEq+bqU3+aSs81z+28j9luA==", - "dependencies": { - "@babel/runtime": "^7.11.2", - "@rc-component/trigger": "^2.0.0", - "classnames": "^2.3.1" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/@grafana/runtime/node_modules/rc-tree": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-5.11.0.tgz", - "integrity": "sha512-AAe4SNAug6GDvyfhbzzxURibBXZQK1USpTLkZa97CgOGDgFKL0brnBVyMR1xQpnCaiIR3QawRuJosYRDrU1bYA==", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "2.x", - "rc-motion": "^2.0.1", - "rc-util": "^5.16.1", - "rc-virtual-list": "^3.5.1" - }, - "engines": { - "node": ">=10.x" - }, - "peerDependencies": { - "react": "*", - "react-dom": "*" - } - }, - "node_modules/@grafana/runtime/node_modules/react-calendar": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/react-calendar/-/react-calendar-5.1.0.tgz", - "integrity": "sha512-09o/rQHPZGEi658IXAJtWfra1N69D1eFnuJ3FQm9qUVzlzNnos1+GWgGiUeSs22QOpNm32aoVFOimq0p3Ug9Eg==", - "dependencies": { - "@wojtekmaj/date-utils": "^1.1.3", - "clsx": "^2.0.0", - "get-user-locale": "^2.2.1", - "warning": "^4.0.0" - }, - "funding": { - "url": "https://github.com/wojtekmaj/react-calendar?sponsor=1" - }, - "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@grafana/runtime/node_modules/react-dropzone": { - "version": "14.3.5", - "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-14.3.5.tgz", - "integrity": "sha512-9nDUaEEpqZLOz5v5SUcFA0CjM4vq8YbqO0WRls+EYT7+DvxUdzDPKNCPLqGfj3YL9MsniCLCD4RFA6M95V6KMQ==", - "dependencies": { - "attr-accept": "^2.2.4", - "file-selector": "^2.1.0", - "prop-types": "^15.8.1" - }, - "engines": { - "node": ">= 10.13" - }, - "peerDependencies": { - "react": ">= 16.8 || 18.0.0" - } - }, - "node_modules/@grafana/runtime/node_modules/react-from-dom": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/react-from-dom/-/react-from-dom-0.7.3.tgz", - "integrity": "sha512-9IK6R7+eD1wOAMC2ZCrENev0eK1625cb7vX+cnnOR9LBRNbjKiaJk4ij2zQbcefEXTWjXFhA7CTO1cd8wMONnw==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/@grafana/runtime/node_modules/react-i18next": { - "version": "15.4.0", - "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-15.4.0.tgz", - "integrity": "sha512-Py6UkX3zV08RTvL6ZANRoBh9sL/ne6rQq79XlkHEdd82cZr2H9usbWpUNVadJntIZP2pu3M2rL1CN+5rQYfYFw==", - "dependencies": { - "@babel/runtime": "^7.25.0", - "html-parse-stringify": "^3.0.1" - }, - "peerDependencies": { - "i18next": ">= 23.2.3", - "react": ">= 16.8.0" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - }, - "react-native": { - "optional": true - } - } - }, - "node_modules/@grafana/runtime/node_modules/react-inlinesvg": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/react-inlinesvg/-/react-inlinesvg-4.1.5.tgz", - "integrity": "sha512-DcCnmHhpKAUNp6iLPEEB2HJP3simDlyiy8JPZ1DwGCynrQQGQD04GJTFtai8JK8vRhCmoiBV6hSgj31D42Z3Lg==", - "dependencies": { - "react-from-dom": "^0.7.3" - }, - "peerDependencies": { - "react": "16.8 - 19" - } - }, - "node_modules/@grafana/runtime/node_modules/react-select": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/react-select/-/react-select-5.9.0.tgz", - "integrity": "sha512-nwRKGanVHGjdccsnzhFte/PULziueZxGD8LL2WojON78Mvnq7LdAMEtu2frrwld1fr3geixg3iiMBIc/LLAZpw==", - "dependencies": { - "@babel/runtime": "^7.12.0", - "@emotion/cache": "^11.4.0", - "@emotion/react": "^11.8.1", - "@floating-ui/dom": "^1.0.1", - "@types/react-transition-group": "^4.4.0", - "memoize-one": "^6.0.0", - "prop-types": "^15.6.0", - "react-transition-group": "^4.3.0", - "use-isomorphic-layout-effect": "^1.2.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@grafana/runtime/node_modules/react-select/node_modules/memoize-one": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", - "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" - }, - "node_modules/@grafana/runtime/node_modules/react-use": { - "version": "17.6.0", - "resolved": "https://registry.npmjs.org/react-use/-/react-use-17.6.0.tgz", - "integrity": "sha512-OmedEScUMKFfzn1Ir8dBxiLLSOzhKe/dPZwVxcujweSj45aNM7BEGPb9BEVIgVEqEXx6f3/TsXzwIktNgUR02g==", - "dependencies": { - "@types/js-cookie": "^2.2.6", - "@xobotyi/scrollbar-width": "^1.9.5", - "copy-to-clipboard": "^3.3.1", - "fast-deep-equal": "^3.1.3", - "fast-shallow-equal": "^1.0.0", - "js-cookie": "^2.2.1", - "nano-css": "^5.6.2", - "react-universal-interface": "^0.6.2", - "resize-observer-polyfill": "^1.5.1", - "screenfull": "^5.1.0", - "set-harmonic-interval": "^1.0.1", - "throttle-debounce": "^3.0.1", - "ts-easing": "^0.2.0", - "tslib": "^2.1.0" - }, - "peerDependencies": { - "react": "*", - "react-dom": "*" - } - }, - "node_modules/@grafana/runtime/node_modules/react-window": { - "version": "1.8.11", - "resolved": "https://registry.npmjs.org/react-window/-/react-window-1.8.11.tgz", - "integrity": "sha512-+SRbUVT2scadgFSWx+R1P754xHPEqvcfSfVX10QYg6POOz+WNgkN48pS+BtZNIMGiL1HYrSEiCkwsMS15QogEQ==", - "dependencies": { - "@babel/runtime": "^7.0.0", - "memoize-one": ">=3.1.1 <6" - }, - "engines": { - "node": ">8.0.0" - }, - "peerDependencies": { - "react": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@grafana/runtime/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@grafana/runtime/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" - }, - "node_modules/@grafana/runtime/node_modules/typescript": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", - "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/@grafana/runtime/node_modules/uuid": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.0.4.tgz", - "integrity": "sha512-IzL6VtTTYcAhA/oghbFJ1Dkmqev+FpQWnCBaKq/gUluLxliWvO8DPFWfIviRmYbtaavtSQe4WBL++rFjdcGWEg==", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "bin": { - "uuid": "dist/esm/bin/uuid" - } - }, - "node_modules/@grafana/schema": { - "version": "11.4.0", - "resolved": "https://registry.npmjs.org/@grafana/schema/-/schema-11.4.0.tgz", - "integrity": "sha512-ZcUZtVdNSuBmTjwPAgWwQ/9/ilozAXggfXye797Odp3mXU9erQX7CqV9JV3y5pyj1+KMd+khzfjxEZotsjHWIA==", - "dependencies": { - "tslib": "2.7.0" - } - }, - "node_modules/@grafana/tsconfig": { - "version": "1.3.0-rc1", - "resolved": "https://registry.npmjs.org/@grafana/tsconfig/-/tsconfig-1.3.0-rc1.tgz", - "integrity": "sha512-bi+qFOptejg/a2/WmCDVxQLQtobhKd3y+B6mxFBOMmzElqgr30MPnN60THTou6dGwtfw+ExX1H5FGm9DM35Qrw==", - "dev": true - }, - "node_modules/@grafana/ui": { - "version": "11.4.0", - "resolved": "https://registry.npmjs.org/@grafana/ui/-/ui-11.4.0.tgz", - "integrity": "sha512-Z2J+b6RCizecdn7gbribmzkJIZxANXFp6wvt0pZa4toZ/BTe9CK30Y2/x1KiGa9VAzIhS1pqihc+PrcJU9I5LA==", - "dependencies": { - "@emotion/css": "11.13.4", - "@emotion/react": "11.13.3", - "@emotion/serialize": "1.3.2", - "@floating-ui/react": "0.26.24", - "@grafana/data": "11.4.0", - "@grafana/e2e-selectors": "11.4.0", - "@grafana/faro-web-sdk": "^1.3.6", - "@grafana/schema": "11.4.0", - "@hello-pangea/dnd": "16.6.0", - "@leeoniya/ufuzzy": "1.0.14", - "@monaco-editor/react": "4.6.0", - "@popperjs/core": "2.11.8", - "@react-aria/dialog": "3.5.18", - "@react-aria/focus": "3.18.3", - "@react-aria/overlays": "3.23.3", - "@react-aria/utils": "3.25.3", - "@tanstack/react-virtual": "^3.5.1", - "@types/jquery": "3.5.31", - "@types/lodash": "4.17.10", - "@types/react-table": "7.7.20", - "ansicolor": "1.1.100", - "calculate-size": "1.1.1", - "classnames": "2.5.1", - "d3": "7.9.0", - "date-fns": "3.6.0", - "downshift": "^9.0.6", - "hoist-non-react-statics": "3.3.2", - "i18next": "^23.0.0", - "i18next-browser-languagedetector": "^7.0.2", - "immutable": "4.3.7", - "is-hotkey": "0.2.0", - "jquery": "3.7.1", - "lodash": "4.17.21", - "micro-memoize": "^4.1.2", - "moment": "2.30.1", - "monaco-editor": "0.34.1", - "ol": "7.4.0", - "prismjs": "1.29.0", - "rc-cascader": "3.28.1", - "rc-drawer": "7.2.0", - "rc-slider": "11.1.7", - "rc-time-picker": "^3.7.3", - "rc-tooltip": "6.2.1", - "react-calendar": "5.0.0", - "react-colorful": "5.6.1", - "react-custom-scrollbars-2": "4.5.0", - "react-dropzone": "14.2.9", - "react-highlight-words": "0.20.0", - "react-hook-form": "^7.49.2", - "react-i18next": "^14.0.0", - "react-inlinesvg": "3.0.2", - "react-loading-skeleton": "3.5.0", - "react-router-dom-v5-compat": "^6.26.1", - "react-select": "5.8.1", - "react-table": "7.8.0", - "react-transition-group": "4.4.5", - "react-use": "17.5.1", - "react-window": "1.8.10", - "rxjs": "7.8.1", - "slate": "0.47.9", - "slate-plain-serializer": "0.7.13", - "slate-react": "0.22.10", - "tinycolor2": "1.6.0", - "tslib": "2.7.0", - "uplot": "1.6.31", - "uuid": "9.0.1" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@grafana/ui/node_modules/@emotion/css": { - "version": "11.13.4", - "resolved": "https://registry.npmjs.org/@emotion/css/-/css-11.13.4.tgz", - "integrity": "sha512-CthbOD5EBw+iN0rfM96Tuv5kaZN4nxPyYDvGUs0bc7wZBBiU/0mse+l+0O9RshW2d+v5HH1cme+BAbLJ/3Folw==", - "dependencies": { - "@emotion/babel-plugin": "^11.12.0", - "@emotion/cache": "^11.13.0", - "@emotion/serialize": "^1.3.0", - "@emotion/sheet": "^1.4.0", - "@emotion/utils": "^1.4.0" - } - }, - "node_modules/@grafana/ui/node_modules/@emotion/serialize": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.2.tgz", - "integrity": "sha512-grVnMvVPK9yUVE6rkKfAJlYZgo0cu3l9iMC77V7DW6E1DUIrU68pSEXRmFZFOFB1QFo57TncmOcvcbMDWsL4yA==", - "dependencies": { - "@emotion/hash": "^0.9.2", - "@emotion/memoize": "^0.9.0", - "@emotion/unitless": "^0.10.0", - "@emotion/utils": "^1.4.1", - "csstype": "^3.0.2" - } - }, - "node_modules/@grafana/ui/node_modules/@hello-pangea/dnd": { - "version": "16.6.0", - "resolved": "https://registry.npmjs.org/@hello-pangea/dnd/-/dnd-16.6.0.tgz", - "integrity": "sha512-vfZ4GydqbtUPXSLfAvKvXQ6xwRzIjUSjVU0Sx+70VOhc2xx6CdmJXJ8YhH70RpbTUGjxctslQTHul9sIOxCfFQ==", - "dependencies": { - "@babel/runtime": "^7.24.1", - "css-box-model": "^1.2.1", - "memoize-one": "^6.0.0", - "raf-schd": "^4.0.3", - "react-redux": "^8.1.3", - "redux": "^4.2.1", - "use-memo-one": "^1.1.3" - }, - "peerDependencies": { - "react": "^16.8.5 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.5 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/@grafana/ui/node_modules/@types/jquery": { - "version": "3.5.31", - "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.31.tgz", - "integrity": "sha512-rf/iB+cPJ/YZfMwr+FVuQbm7IaWC4y3FVYfVDxRGqmUCFjjPII0HWaP0vTPJGp6m4o13AXySCcMbWfrWtBFAKw==", - "dependencies": { - "@types/sizzle": "*" - } - }, - "node_modules/@grafana/ui/node_modules/@types/lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-YpS0zzoduEhuOWjAotS6A5AVCva7X4lVlYLF0FYHAY9sdraBfnatttHItlWeZdGhuEkf+OzMNg2ZYAx8t+52uQ==" - }, - "node_modules/@grafana/ui/node_modules/memoize-one": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", - "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" - }, - "node_modules/@grafana/ui/node_modules/rc-slider": { - "version": "11.1.7", - "resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-11.1.7.tgz", - "integrity": "sha512-ytYbZei81TX7otdC0QvoYD72XSlxvTihNth5OeZ6PMXyEDq/vHdWFulQmfDGyXK1NwKwSlKgpvINOa88uT5g2A==", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.5", - "rc-util": "^5.36.0" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/@grafana/ui/node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "bin": { - "uuid": "dist/bin/uuid" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" } }, "node_modules/@hello-pangea/dnd": { @@ -3638,20 +2999,15 @@ } }, "node_modules/@hello-pangea/dnd/node_modules/@types/react": { - "version": "19.0.4", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.4.tgz", - "integrity": "sha512-3O4QisJDYr1uTUMZHA2YswiQZRq+Pd8D+GdVFYikTutYsTz+QZgWkAPnP7rx9txoI6EXKcPiluMqWPFV3tT9Wg==", + "version": "19.0.8", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.8.tgz", + "integrity": "sha512-9P/o1IGdfmQxrujGbIMDyYaaCykhLKc0NGCtYcECNUr9UAaDe4gwvV9bR6tvd5Br1SG0j+PBpbKr2UYY8CwqSw==", "optional": true, "peer": true, "dependencies": { "csstype": "^3.0.2" } }, - "node_modules/@hello-pangea/dnd/node_modules/memoize-one": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", - "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" - }, "node_modules/@hello-pangea/dnd/node_modules/react-redux": { "version": "9.2.0", "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.2.0.tgz", @@ -3674,11 +3030,6 @@ } } }, - "node_modules/@hello-pangea/dnd/node_modules/redux": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", - "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==" - }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.14", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", @@ -3715,9 +3066,9 @@ "dev": true }, "node_modules/@internationalized/date": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.6.0.tgz", - "integrity": "sha512-+z6ti+CcJnRlLHok/emGEsWQhe7kfSmEW+/6qCzvKY67YPh7YOBfvc7+/+NXq+zJlbArg30tYpqLjNgcAYv2YQ==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.7.0.tgz", + "integrity": "sha512-VJ5WS3fcVx0bejE/YHfbDKR/yawZgKqn/if+oEeLqNwBtPzVB06olkfcnojTmEMX+gTpH+FlQ69SHNitJ8/erQ==", "dependencies": { "@swc/helpers": "^0.5.0" } @@ -4675,9 +4026,9 @@ } }, "node_modules/@leeoniya/ufuzzy": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/@leeoniya/ufuzzy/-/ufuzzy-1.0.14.tgz", - "integrity": "sha512-/xF4baYuCQMo+L/fMSUrZnibcu0BquEGnbxfVPiZhs/NbJeKj4c/UmFpQzW9Us0w45ui/yYW3vyaqawhNYsTzA==" + "version": "1.0.18", + "resolved": "https://registry.npmjs.org/@leeoniya/ufuzzy/-/ufuzzy-1.0.18.tgz", + "integrity": "sha512-5D54A86/VaPvJVf7UWJgy+UyhDtstUxq0iQd8UOZ2TG3NjV2oSoa9m4qW3VsotDD6dH2SNHDQwSPq+IAuudnag==" }, "node_modules/@mapbox/jsonlint-lines-primitives": { "version": "2.0.2", @@ -5029,35 +4380,35 @@ } }, "node_modules/@react-aria/dialog": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@react-aria/dialog/-/dialog-3.5.18.tgz", - "integrity": "sha512-j0x0OwDZKyW2GqBZl2Dw/pHl0uSCzhHOg5jNeulkZC8xQa8COuksQf5NFzPmgRPnzqpbgvSzCSs41ymS8spmFg==", - "dependencies": { - "@react-aria/focus": "^3.18.3", - "@react-aria/overlays": "^3.23.3", - "@react-aria/utils": "^3.25.3", - "@react-types/dialog": "^3.5.13", - "@react-types/shared": "^3.25.0", + "version": "3.5.20", + "resolved": "https://registry.npmjs.org/@react-aria/dialog/-/dialog-3.5.20.tgz", + "integrity": "sha512-l0GZVLgeOd3kL3Yj8xQW7wN3gn9WW3RLd/SGI9t7ciTq+I/FhftjXCWzXLlOCCTLMf+gv7eazecECtmoWUaZWQ==", + "dependencies": { + "@react-aria/focus": "^3.19.0", + "@react-aria/overlays": "^3.24.0", + "@react-aria/utils": "^3.26.0", + "@react-types/dialog": "^3.5.14", + "@react-types/shared": "^3.26.0", "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-aria/focus": { - "version": "3.18.3", - "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.18.3.tgz", - "integrity": "sha512-WKUElg+5zS0D3xlVn8MntNnkzJql2J6MuzAMP8Sv5WTgFDse/XGR842dsxPTIyKKdrWVCRegCuwa4m3n/GzgJw==", + "version": "3.19.0", + "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.19.0.tgz", + "integrity": "sha512-hPF9EXoUQeQl1Y21/rbV2H4FdUR2v+4/I0/vB+8U3bT1CJ+1AFj1hc/rqx2DqEwDlEwOHN+E4+mRahQmlybq0A==", "dependencies": { - "@react-aria/interactions": "^3.22.3", - "@react-aria/utils": "^3.25.3", - "@react-types/shared": "^3.25.0", + "@react-aria/interactions": "^3.22.5", + "@react-aria/utils": "^3.26.0", + "@react-types/shared": "^3.26.0", "@swc/helpers": "^0.5.0", "clsx": "^2.0.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-aria/focus/node_modules/clsx": { @@ -5069,36 +4420,38 @@ } }, "node_modules/@react-aria/i18n": { - "version": "3.12.4", - "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.12.4.tgz", - "integrity": "sha512-j9+UL3q0Ls8MhXV9gtnKlyozq4aM95YywXqnmJtzT1rYeBx7w28hooqrWkCYLfqr4OIryv1KUnPiCSLwC2OC7w==", + "version": "3.12.5", + "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.12.5.tgz", + "integrity": "sha512-ooeop2pTG94PuaHoN2OTk2hpkqVuoqgEYxRvnc1t7DVAtsskfhS/gVOTqyWGsxvwAvRi7m/CnDu6FYdeQ/bK5w==", "dependencies": { - "@internationalized/date": "^3.6.0", + "@internationalized/date": "^3.7.0", "@internationalized/message": "^3.1.6", "@internationalized/number": "^3.6.0", "@internationalized/string": "^3.2.5", "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.26.0", - "@react-types/shared": "^3.26.0", + "@react-aria/utils": "^3.27.0", + "@react-types/shared": "^3.27.0", "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-aria/i18n/node_modules/@react-aria/utils": { - "version": "3.26.0", - "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.26.0.tgz", - "integrity": "sha512-LkZouGSjjQ0rEqo4XJosS4L3YC/zzQkfRM3KoqK6fUOmUJ9t0jQ09WjiF+uOoG9u+p30AVg3TrZRUWmoTS+koQ==", + "version": "3.27.0", + "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.27.0.tgz", + "integrity": "sha512-p681OtApnKOdbeN8ITfnnYqfdHS0z7GE+4l8EXlfLnr70Rp/9xicBO6d2rU+V/B3JujDw2gPWxYKEnEeh0CGCw==", "dependencies": { "@react-aria/ssr": "^3.9.7", "@react-stately/utils": "^3.10.5", - "@react-types/shared": "^3.26.0", + "@react-types/shared": "^3.27.0", "@swc/helpers": "^0.5.0", "clsx": "^2.0.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-aria/i18n/node_modules/clsx": { @@ -5110,32 +4463,34 @@ } }, "node_modules/@react-aria/interactions": { - "version": "3.22.5", - "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.22.5.tgz", - "integrity": "sha512-kMwiAD9E0TQp+XNnOs13yVJghiy8ET8L0cbkeuTgNI96sOAp/63EJ1FSrDf17iD8sdjt41LafwX/dKXW9nCcLQ==", + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.23.0.tgz", + "integrity": "sha512-0qR1atBIWrb7FzQ+Tmr3s8uH5mQdyRH78n0krYaG8tng9+u1JlSi8DGRSaC9ezKyNB84m7vHT207xnHXGeJ3Fg==", "dependencies": { "@react-aria/ssr": "^3.9.7", - "@react-aria/utils": "^3.26.0", - "@react-types/shared": "^3.26.0", + "@react-aria/utils": "^3.27.0", + "@react-types/shared": "^3.27.0", "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-aria/interactions/node_modules/@react-aria/utils": { - "version": "3.26.0", - "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.26.0.tgz", - "integrity": "sha512-LkZouGSjjQ0rEqo4XJosS4L3YC/zzQkfRM3KoqK6fUOmUJ9t0jQ09WjiF+uOoG9u+p30AVg3TrZRUWmoTS+koQ==", + "version": "3.27.0", + "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.27.0.tgz", + "integrity": "sha512-p681OtApnKOdbeN8ITfnnYqfdHS0z7GE+4l8EXlfLnr70Rp/9xicBO6d2rU+V/B3JujDw2gPWxYKEnEeh0CGCw==", "dependencies": { "@react-aria/ssr": "^3.9.7", "@react-stately/utils": "^3.10.5", - "@react-types/shared": "^3.26.0", + "@react-types/shared": "^3.27.0", "@swc/helpers": "^0.5.0", "clsx": "^2.0.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-aria/interactions/node_modules/clsx": { @@ -5147,25 +4502,25 @@ } }, "node_modules/@react-aria/overlays": { - "version": "3.23.3", - "resolved": "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.23.3.tgz", - "integrity": "sha512-vRW4DL466a27BBIP6dQqmmei4nX/nsur6DyF0Hmd46ygwOdvdA+5MwvXZUz9yUamB79UeS9BMQZuBVwhjoMwBQ==", - "dependencies": { - "@react-aria/focus": "^3.18.3", - "@react-aria/i18n": "^3.12.3", - "@react-aria/interactions": "^3.22.3", - "@react-aria/ssr": "^3.9.6", - "@react-aria/utils": "^3.25.3", - "@react-aria/visually-hidden": "^3.8.16", - "@react-stately/overlays": "^3.6.11", - "@react-types/button": "^3.10.0", - "@react-types/overlays": "^3.8.10", - "@react-types/shared": "^3.25.0", + "version": "3.24.0", + "resolved": "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.24.0.tgz", + "integrity": "sha512-0kAXBsMNTc/a3M07tK9Cdt/ea8CxTAEJ223g8YgqImlmoBBYAL7dl5G01IOj67TM64uWPTmZrOklBchHWgEm3A==", + "dependencies": { + "@react-aria/focus": "^3.19.0", + "@react-aria/i18n": "^3.12.4", + "@react-aria/interactions": "^3.22.5", + "@react-aria/ssr": "^3.9.7", + "@react-aria/utils": "^3.26.0", + "@react-aria/visually-hidden": "^3.8.18", + "@react-stately/overlays": "^3.6.12", + "@react-types/button": "^3.10.1", + "@react-types/overlays": "^3.8.11", + "@react-types/shared": "^3.26.0", "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0", - "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-aria/ssr": { @@ -5183,18 +4538,18 @@ } }, "node_modules/@react-aria/utils": { - "version": "3.25.3", - "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.25.3.tgz", - "integrity": "sha512-PR5H/2vaD8fSq0H/UB9inNbc8KDcVmW6fYAfSWkkn+OAdhTTMVKqXXrZuZBWyFfSD5Ze7VN6acr4hrOQm2bmrA==", + "version": "3.26.0", + "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.26.0.tgz", + "integrity": "sha512-LkZouGSjjQ0rEqo4XJosS4L3YC/zzQkfRM3KoqK6fUOmUJ9t0jQ09WjiF+uOoG9u+p30AVg3TrZRUWmoTS+koQ==", "dependencies": { - "@react-aria/ssr": "^3.9.6", - "@react-stately/utils": "^3.10.4", - "@react-types/shared": "^3.25.0", + "@react-aria/ssr": "^3.9.7", + "@react-stately/utils": "^3.10.5", + "@react-types/shared": "^3.26.0", "@swc/helpers": "^0.5.0", "clsx": "^2.0.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-aria/utils/node_modules/clsx": { @@ -5206,32 +4561,34 @@ } }, "node_modules/@react-aria/visually-hidden": { - "version": "3.8.18", - "resolved": "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.8.18.tgz", - "integrity": "sha512-l/0igp+uub/salP35SsNWq5mGmg3G5F5QMS1gDZ8p28n7CgjvzyiGhJbbca7Oxvaw1HRFzVl9ev+89I7moNnFQ==", + "version": "3.8.19", + "resolved": "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.8.19.tgz", + "integrity": "sha512-MZgCCyQ3sdG94J5iJz7I7Ai3IxoN0U5d/+EaUnA1mfK7jf2fSYQBqi6Eyp8sWUYzBTLw4giXB5h0RGAnWzk9hA==", "dependencies": { - "@react-aria/interactions": "^3.22.5", - "@react-aria/utils": "^3.26.0", - "@react-types/shared": "^3.26.0", + "@react-aria/interactions": "^3.23.0", + "@react-aria/utils": "^3.27.0", + "@react-types/shared": "^3.27.0", "@swc/helpers": "^0.5.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-aria/visually-hidden/node_modules/@react-aria/utils": { - "version": "3.26.0", - "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.26.0.tgz", - "integrity": "sha512-LkZouGSjjQ0rEqo4XJosS4L3YC/zzQkfRM3KoqK6fUOmUJ9t0jQ09WjiF+uOoG9u+p30AVg3TrZRUWmoTS+koQ==", + "version": "3.27.0", + "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.27.0.tgz", + "integrity": "sha512-p681OtApnKOdbeN8ITfnnYqfdHS0z7GE+4l8EXlfLnr70Rp/9xicBO6d2rU+V/B3JujDw2gPWxYKEnEeh0CGCw==", "dependencies": { "@react-aria/ssr": "^3.9.7", "@react-stately/utils": "^3.10.5", - "@react-types/shared": "^3.26.0", + "@react-types/shared": "^3.27.0", "@swc/helpers": "^0.5.0", "clsx": "^2.0.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-aria/visually-hidden/node_modules/clsx": { @@ -5243,12 +4600,12 @@ } }, "node_modules/@react-stately/overlays": { - "version": "3.6.12", - "resolved": "https://registry.npmjs.org/@react-stately/overlays/-/overlays-3.6.12.tgz", - "integrity": "sha512-QinvZhwZgj8obUyPIcyURSCjTZlqZYRRCS60TF8jH8ZpT0tEAuDb3wvhhSXuYA3Xo9EHLwvLjEf3tQKKdAQArw==", + "version": "3.6.13", + "resolved": "https://registry.npmjs.org/@react-stately/overlays/-/overlays-3.6.13.tgz", + "integrity": "sha512-WsU85Gf/b+HbWsnnYw7P/Ila3wD+C37Uk/WbU4/fHgJ26IEOWsPE6wlul8j54NZ1PnLNhV9Fn+Kffi+PaJMQXQ==", "dependencies": { "@react-stately/utils": "^3.10.5", - "@react-types/overlays": "^3.8.11", + "@react-types/overlays": "^3.8.12", "@swc/helpers": "^0.5.0" }, "peerDependencies": { @@ -5267,43 +4624,43 @@ } }, "node_modules/@react-types/button": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/@react-types/button/-/button-3.10.1.tgz", - "integrity": "sha512-XTtap8o04+4QjPNAshFWOOAusUTxQlBjU2ai0BTVLShQEjHhRVDBIWsI2B2FKJ4KXT6AZ25llaxhNrreWGonmA==", + "version": "3.10.2", + "resolved": "https://registry.npmjs.org/@react-types/button/-/button-3.10.2.tgz", + "integrity": "sha512-h8SB/BLoCgoBulCpyzaoZ+miKXrolK9XC48+n1dKJXT8g4gImrficurDW6+PRTQWaRai0Q0A6bu8UibZOU4syg==", "dependencies": { - "@react-types/shared": "^3.26.0" + "@react-types/shared": "^3.27.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-types/dialog": { - "version": "3.5.14", - "resolved": "https://registry.npmjs.org/@react-types/dialog/-/dialog-3.5.14.tgz", - "integrity": "sha512-OXWMjrALwrlgw8aHD8SeRm/s3tbAssdaEh2h73KUSeFau3fU3n5mfKv+WnFqsEaOtN261o48l7hTlS6615H9AA==", + "version": "3.5.15", + "resolved": "https://registry.npmjs.org/@react-types/dialog/-/dialog-3.5.15.tgz", + "integrity": "sha512-BX1+mV35Oa0aIlhu98OzJaSB7uiCWDPQbr0AkpFBajSSlESUoAjntN+4N+QJmj24z2v6UE9zxGQ85/U/0Le+bw==", "dependencies": { - "@react-types/overlays": "^3.8.11", - "@react-types/shared": "^3.26.0" + "@react-types/overlays": "^3.8.12", + "@react-types/shared": "^3.27.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-types/overlays": { - "version": "3.8.11", - "resolved": "https://registry.npmjs.org/@react-types/overlays/-/overlays-3.8.11.tgz", - "integrity": "sha512-aw7T0rwVI3EuyG5AOaEIk8j7dZJQ9m34XAztXJVZ/W2+4pDDkLDbJ/EAPnuo2xGYRGhowuNDn4tDju01eHYi+w==", + "version": "3.8.12", + "resolved": "https://registry.npmjs.org/@react-types/overlays/-/overlays-3.8.12.tgz", + "integrity": "sha512-ZvR1t0YV7/6j+6OD8VozKYjvsXT92+C/2LOIKozy7YUNS5KI4MkXbRZzJvkuRECVZOmx8JXKTUzhghWJM/3QuQ==", "dependencies": { - "@react-types/shared": "^3.26.0" + "@react-types/shared": "^3.27.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } }, "node_modules/@react-types/shared": { - "version": "3.26.0", - "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.26.0.tgz", - "integrity": "sha512-6FuPqvhmjjlpEDLTiYx29IJCbCNWPlsyO+ZUmCUXzhUv2ttShOXfw8CmeHWHftT/b2KweAWuzqSlfeXPR76jpw==", + "version": "3.27.0", + "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.27.0.tgz", + "integrity": "sha512-gvznmLhi6JPEf0bsq7SwRYTHAKKq/wcmKqFez9sRdbED+SPMUmK5omfZ6w3EwUFQHbYUa4zPBYedQ7Knv70RMw==", "peerDependencies": { "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" } @@ -5331,11 +4688,6 @@ } } }, - "node_modules/@reduxjs/toolkit/node_modules/redux": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", - "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==" - }, "node_modules/@reduxjs/toolkit/node_modules/redux-thunk": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-3.1.0.tgz", @@ -6030,6 +5382,8 @@ "version": "3.3.6", "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.6.tgz", "integrity": "sha512-lPByRJUer/iN/xa4qpyL0qmL11DqNW81iU/IG1S3uvRUq4oKagz8VCxZjiWkumgt66YT3vOdDgZ0o32sGKtCEw==", + "optional": true, + "peer": true, "dependencies": { "@types/react": "*", "hoist-non-react-statics": "^3.3.0" @@ -6213,10 +5567,10 @@ } }, "node_modules/@types/react-transition-group": { - "version": "4.4.11", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.11.tgz", - "integrity": "sha512-RM05tAniPZ5DZPzzNFP+DmrcOdD0efDUxMy3145oljWSl3x9ZV5vhme98gTxFrj2lhXvmGNnUiuDyJgY9IKkNA==", - "dependencies": { + "version": "4.4.12", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.12.tgz", + "integrity": "sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==", + "peerDependencies": { "@types/react": "*" } }, @@ -6599,26 +5953,6 @@ "react-dom": "^18.0.0" } }, - "node_modules/@volkovlabs/components/node_modules/@grafana/runtime": { - "version": "11.4.0", - "resolved": "https://registry.npmjs.org/@grafana/runtime/-/runtime-11.4.0.tgz", - "integrity": "sha512-yZIaNqHKncf97/6QjjHvI+v02+PvGpG6wWNDN+/H1R8vzrMe21asBNDm0EEW/mPUlRLtmAAGcUAt6jL6vRe+6g==", - "dependencies": { - "@grafana/data": "11.4.0", - "@grafana/e2e-selectors": "11.4.0", - "@grafana/faro-web-sdk": "^1.3.6", - "@grafana/schema": "11.4.0", - "@grafana/ui": "11.4.0", - "history": "4.10.1", - "lodash": "4.17.21", - "rxjs": "7.8.1", - "tslib": "2.7.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, "node_modules/@volkovlabs/components/node_modules/@grafana/scenes": { "version": "5.36.4", "resolved": "https://registry.npmjs.org/@grafana/scenes/-/scenes-5.36.4.tgz", @@ -6642,11 +5976,6 @@ "react-dom": "^18.0.0" } }, - "node_modules/@volkovlabs/components/node_modules/@leeoniya/ufuzzy": { - "version": "1.0.18", - "resolved": "https://registry.npmjs.org/@leeoniya/ufuzzy/-/ufuzzy-1.0.18.tgz", - "integrity": "sha512-5D54A86/VaPvJVf7UWJgy+UyhDtstUxq0iQd8UOZ2TG3NjV2oSoa9m4qW3VsotDD6dH2SNHDQwSPq+IAuudnag==" - }, "node_modules/@volkovlabs/components/node_modules/@testing-library/react": { "version": "16.0.1", "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.0.1.tgz", @@ -7109,11 +6438,6 @@ "node": ">=4" } }, - "node_modules/ansicolor": { - "version": "1.1.100", - "resolved": "https://registry.npmjs.org/ansicolor/-/ansicolor-1.1.100.tgz", - "integrity": "sha512-Jl0pxRfa9WaQVUX57AB8/V2my6FJxrOR1Pp2qqFbig20QB4HzUoQ48THTKAgHlUCJeQm/s2WoOPcoIDhyCL/kw==" - }, "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", @@ -7212,11 +6536,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array-tree-filter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-tree-filter/-/array-tree-filter-2.1.0.tgz", - "integrity": "sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==" - }, "node_modules/array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", @@ -9494,9 +8813,9 @@ } }, "node_modules/date-fns": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.6.0.tgz", - "integrity": "sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz", + "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==", "funding": { "type": "github", "url": "https://github.com/sponsors/kossnocorp" @@ -10782,11 +10101,6 @@ "node": ">=4" } }, - "node_modules/exenv": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz", - "integrity": "sha512-Z+ktTxTwv9ILfgKCk32OX3n/doe+OcLTRtqK9pcL+JsP3J1/VW8Uvl4ZjLlKqeW4rzK4oesDOGMEMRIZqtP4Iw==" - }, "node_modules/exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", @@ -11012,11 +10326,11 @@ } }, "node_modules/file-selector": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/file-selector/-/file-selector-0.6.0.tgz", - "integrity": "sha512-QlZ5yJC0VxHxQQsQhXvBaC7VRJ2uaxTf+Tfpu4Z/OcVQJVpZO+DGU0rkoVW5ce2SccxugvpBJoMvUs59iILYdw==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/file-selector/-/file-selector-2.1.2.tgz", + "integrity": "sha512-QgXo+mXTe8ljeqUFaX3QVHc5osSItJ/Km+xpocx0aSqWGMSCf6qYs/VnzZgS864Pjn5iceMRFigeAV7AfTlaig==", "dependencies": { - "tslib": "^2.4.0" + "tslib": "^2.7.0" }, "engines": { "node": ">= 12" @@ -12086,9 +11400,9 @@ "integrity": "sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw==" }, "node_modules/i18next": { - "version": "23.12.3", - "resolved": "https://registry.npmjs.org/i18next/-/i18next-23.12.3.tgz", - "integrity": "sha512-DyigQmrR10V9U2N6pjhbfahW13GY7n8BQD9swN09JuRRropgsksWVi4vRLeex0Qf7zCPnBfIqQfhcBzdZBQBYw==", + "version": "24.2.2", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-24.2.2.tgz", + "integrity": "sha512-NE6i86lBCKRYZa5TaUDkU5S4HFgLIEJRLr3Whf2psgaxBleQ2LC1YW1Vc+SCgkAW7VEzndT6al6+CzegSUHcTQ==", "funding": [ { "type": "individual", @@ -12105,12 +11419,20 @@ ], "dependencies": { "@babel/runtime": "^7.23.2" + }, + "peerDependencies": { + "typescript": "^5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, "node_modules/i18next-browser-languagedetector": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-7.2.1.tgz", - "integrity": "sha512-h/pM34bcH6tbz8WgGXcmWauNpQupCGr25XPp9cZwZInR9XHSjIFDYp1SIok7zSPsTOMxdvuLyu86V+g2Kycnfw==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-8.0.2.tgz", + "integrity": "sha512-shBvPmnIyZeD2VU5jVGIOWP7u9qNG3Lj7mpaiPFpbJ3LVfHZJvVzKR4v1Cb91wAOFpNw442N+LGPzHOHsten2g==", "dependencies": { "@babel/runtime": "^7.23.2" } @@ -12329,13 +11651,13 @@ } }, "node_modules/intl-messageformat": { - "version": "10.7.11", - "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.7.11.tgz", - "integrity": "sha512-IB2N1tmI24k2EFH3PWjU7ivJsnWyLwOWOva0jnXFa29WzB6fb0JZ5EMQGu+XN5lDtjHYFo0/UooP67zBwUg7rQ==", + "version": "10.7.14", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.7.14.tgz", + "integrity": "sha512-mMGnE4E1otdEutV5vLUdCxRJygHB5ozUBxsPB5qhitewssrS/qGruq9bmvIRkkGsNeK5ZWLfYRld18UHGTIifQ==", "dependencies": { "@formatjs/ecma402-abstract": "2.3.2", "@formatjs/fast-memoize": "2.2.6", - "@formatjs/icu-messageformat-parser": "2.9.8", + "@formatjs/icu-messageformat-parser": "2.11.0", "tslib": "2" } }, @@ -15691,9 +15013,9 @@ "integrity": "sha512-VJ6nB8emkO9VODI0Fk+TQ/0zKBTqmf/Pkt8Xv0kHstoc0iXRajA00DAid4Kc3K5xeFIOoiZrVxijEzj0GLVO2w==" }, "node_modules/marked": { - "version": "12.0.2", - "resolved": "https://registry.npmjs.org/marked/-/marked-12.0.2.tgz", - "integrity": "sha512-qXUm7e/YKFoqFPYPa3Ukg9xlI5cyAtGmyEIzMfW//m6kXwCy2Ps9DYf5ioijFKQ8qyuscrHoY04iJGctu2Kg0Q==", + "version": "15.0.6", + "resolved": "https://registry.npmjs.org/marked/-/marked-15.0.6.tgz", + "integrity": "sha512-Y07CUOE+HQXbVDCGl3LXggqJDbXDP2pArc2C1N1RRMN0ONiShoSsIInMd5Gsxupe7fKLpgimTV+HOJ9r7bA+pg==", "bin": { "marked": "bin/marked.js" }, @@ -15702,11 +15024,11 @@ } }, "node_modules/marked-mangle": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/marked-mangle/-/marked-mangle-1.1.9.tgz", - "integrity": "sha512-eLTXr1xQzba/WZp/trPS0HkR9W02ifasH6IWPrBv++eO2m8POiwV4muQ6Tof2C5Fhdo3z8ggXs6VGw1f931Vsg==", + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/marked-mangle/-/marked-mangle-1.1.10.tgz", + "integrity": "sha512-TrpN67SMJJdzXXWIzOd/QmnpsC5o1B44PUYaG2bh1XEbqVjA0UCI2ijFuE5LWESwKeI2gCP5FqcUHRGQwFtDIA==", "peerDependencies": { - "marked": ">=4 <15" + "marked": ">=4 <16" } }, "node_modules/mdn-data": { @@ -15750,9 +15072,9 @@ } }, "node_modules/memoize-one": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", - "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==" + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", + "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" }, "node_modules/memory-fs": { "version": "0.5.0", @@ -17465,16 +16787,15 @@ } }, "node_modules/rc-cascader": { - "version": "3.28.1", - "resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-3.28.1.tgz", - "integrity": "sha512-9+8oHIMWVLHxuaapDiqFNmD9KSyKN/P4bo9x/MBuDbyTqP8f2/POmmZxdXWBO3yq/uE3pKyQCXYNUxrNfHRv2A==", + "version": "3.31.0", + "resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-3.31.0.tgz", + "integrity": "sha512-uA5szCBHnpz+wHeuLkuSoZXFqSD9rVfrgOQUvcMexK3I3eQs2MLPzgsNCBi+paRevnsMFHLVhbmXPvueRgQVFA==", "dependencies": { - "@babel/runtime": "^7.12.5", - "array-tree-filter": "^2.1.0", + "@babel/runtime": "^7.25.7", "classnames": "^2.3.1", - "rc-select": "~14.15.0", - "rc-tree": "~5.9.0", - "rc-util": "^5.37.0" + "rc-select": "~14.16.2", + "rc-tree": "~5.11.0", + "rc-util": "^5.43.0" }, "peerDependencies": { "react": ">=16.9.0", @@ -17512,9 +16833,9 @@ } }, "node_modules/rc-overflow": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/rc-overflow/-/rc-overflow-1.3.2.tgz", - "integrity": "sha512-nsUm78jkYAoPygDAcGZeC2VwIg/IBGSodtOY3pMof4W3M9qRJgqaDYm03ZayHlde3I6ipliAxbN0RUcGf5KOzw==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rc-overflow/-/rc-overflow-1.4.1.tgz", + "integrity": "sha512-3MoPQQPV1uKyOMVNd6SZfONi+f3st0r8PksexIdBTeIYbMX0Jr+k7pHEDvsXtR4BpCv90/Pv2MovVNhktKrwvw==", "dependencies": { "@babel/runtime": "^7.11.1", "classnames": "^2.2.1", @@ -17542,9 +16863,9 @@ } }, "node_modules/rc-select": { - "version": "14.15.2", - "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-14.15.2.tgz", - "integrity": "sha512-oNoXlaFmpqXYcQDzcPVLrEqS2J9c+/+oJuGrlXeVVX/gVgrbHa5YcyiRUXRydFjyuA7GP3elRuLF7Y3Tfwltlw==", + "version": "14.16.6", + "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-14.16.6.tgz", + "integrity": "sha512-YPMtRPqfZWOm2XGTbx5/YVr1HT0vn//8QS77At0Gjb3Lv+Lbut0IORJPKLWu1hQ3u4GsA0SrDzs7nI8JG7Zmyg==", "dependencies": { "@babel/runtime": "^7.10.1", "@rc-component/trigger": "^2.1.1", @@ -17593,9 +16914,9 @@ } }, "node_modules/rc-tooltip": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-6.2.1.tgz", - "integrity": "sha512-rws0duD/3sHHsD905Nex7FvoUGy2UBQRhTkKxeEvr2FB+r21HsOxcDJI0TzyO8NHhnAA8ILr8pfbSBg5Jj5KBg==", + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-6.3.2.tgz", + "integrity": "sha512-oA4HZIiZJbUQ5ojigM0y4XtWxaH/aQlJSzknjICRWNpqyemy1sL3X3iEQV2eSPBWEq+bqU3+aSs81z+28j9luA==", "dependencies": { "@babel/runtime": "^7.11.2", "@rc-component/trigger": "^2.0.0", @@ -17607,9 +16928,9 @@ } }, "node_modules/rc-tree": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-5.9.0.tgz", - "integrity": "sha512-CPrgOvm9d/9E+izTONKSngNzQdIEjMox2PBufWjS1wf7vxtvmCWzK1SlpHbRY6IaBfJIeZ+88RkcIevf729cRg==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-5.11.0.tgz", + "integrity": "sha512-AAe4SNAug6GDvyfhbzzxURibBXZQK1USpTLkZa97CgOGDgFKL0brnBVyMR1xQpnCaiIR3QawRuJosYRDrU1bYA==", "dependencies": { "@babel/runtime": "^7.10.1", "classnames": "2.x", @@ -17670,9 +16991,9 @@ "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" }, "node_modules/rc-virtual-list": { - "version": "3.14.5", - "resolved": "https://registry.npmjs.org/rc-virtual-list/-/rc-virtual-list-3.14.5.tgz", - "integrity": "sha512-ZMOnkCLv2wUN8Jz7yI4XiSLa9THlYvf00LuMhb1JlsQCewuU7ydPuHw1rGVPhe9VZYl/5UqODtNd7QKJ2DMGfg==", + "version": "3.18.1", + "resolved": "https://registry.npmjs.org/rc-virtual-list/-/rc-virtual-list-3.18.1.tgz", + "integrity": "sha512-ARSsD/dey/I4yNQHFYYUaKLUkD1wnD4lRZIvb3rCLMbTMmoFQJRVrWuSfbNt5P5MzMNooEBDvqrUPM4QN7BMNA==", "dependencies": { "@babel/runtime": "^7.20.0", "classnames": "^2.2.6", @@ -17699,9 +17020,9 @@ } }, "node_modules/react-calendar": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/react-calendar/-/react-calendar-5.0.0.tgz", - "integrity": "sha512-bHcE5e5f+VUKLd4R19BGkcSQLpuwjKBVG0fKz74cwPW5xDfNsReHdDbfd4z3mdjuUuZzVtw4Q920mkwK5/ZOEg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/react-calendar/-/react-calendar-5.1.0.tgz", + "integrity": "sha512-09o/rQHPZGEi658IXAJtWfra1N69D1eFnuJ3FQm9qUVzlzNnos1+GWgGiUeSs22QOpNm32aoVFOimq0p3Ug9Eg==", "dependencies": { "@wojtekmaj/date-utils": "^1.1.3", "clsx": "^2.0.0", @@ -17779,12 +17100,12 @@ } }, "node_modules/react-dropzone": { - "version": "14.2.9", - "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-14.2.9.tgz", - "integrity": "sha512-jRZsMC7h48WONsOLHcmhyn3cRWJoIPQjPApvt/sJVfnYaB3Qltn025AoRTTJaj4WdmmgmLl6tUQg1s0wOhpodQ==", + "version": "14.3.5", + "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-14.3.5.tgz", + "integrity": "sha512-9nDUaEEpqZLOz5v5SUcFA0CjM4vq8YbqO0WRls+EYT7+DvxUdzDPKNCPLqGfj3YL9MsniCLCD4RFA6M95V6KMQ==", "dependencies": { - "attr-accept": "^2.2.2", - "file-selector": "^0.6.0", + "attr-accept": "^2.2.4", + "file-selector": "^2.1.0", "prop-types": "^15.8.1" }, "engines": { @@ -17800,11 +17121,11 @@ "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==" }, "node_modules/react-from-dom": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/react-from-dom/-/react-from-dom-0.6.2.tgz", - "integrity": "sha512-qvWWTL/4xw4k/Dywd41RBpLQUSq97csuv15qrxN+izNeLYlD9wn5W8LspbfYe5CWbaSdkZ72BsaYBPQf2x4VbQ==", + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/react-from-dom/-/react-from-dom-0.7.5.tgz", + "integrity": "sha512-CO92PmMKo/23uYPm6OFvh5CtZbMgHs/Xn+o095Lz/TZj9t8DSDhGdSOMLxBxwWI4sr0MF17KUn9yJWc5Q00R/w==", "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "react": "16.8 - 19" } }, "node_modules/react-grid-layout": { @@ -17866,11 +17187,11 @@ } }, "node_modules/react-i18next": { - "version": "14.1.3", - "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-14.1.3.tgz", - "integrity": "sha512-wZnpfunU6UIAiJ+bxwOiTmBOAaB14ha97MjOEnLGac2RJ+h/maIYXZuTHlmyqQVX1UVHmU1YDTQ5vxLmwfXTjw==", + "version": "15.4.0", + "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-15.4.0.tgz", + "integrity": "sha512-Py6UkX3zV08RTvL6ZANRoBh9sL/ne6rQq79XlkHEdd82cZr2H9usbWpUNVadJntIZP2pu3M2rL1CN+5rQYfYFw==", "dependencies": { - "@babel/runtime": "^7.23.9", + "@babel/runtime": "^7.25.0", "html-parse-stringify": "^3.0.1" }, "peerDependencies": { @@ -17898,15 +17219,14 @@ } }, "node_modules/react-inlinesvg": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/react-inlinesvg/-/react-inlinesvg-3.0.2.tgz", - "integrity": "sha512-BEzkpMGQwEY68fgaouY7ZWvAUPb8jbj7dE9iDbWZxstDhMuz9qfpxNgvGSENKcDMdpq/XHduSk/LAmNKin4nKw==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/react-inlinesvg/-/react-inlinesvg-4.1.5.tgz", + "integrity": "sha512-DcCnmHhpKAUNp6iLPEEB2HJP3simDlyiy8JPZ1DwGCynrQQGQD04GJTFtai8JK8vRhCmoiBV6hSgj31D42Z3Lg==", "dependencies": { - "exenv": "^1.2.2", - "react-from-dom": "^0.6.2" + "react-from-dom": "^0.7.3" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "react": "16.8 - 19" } }, "node_modules/react-is": { @@ -17945,6 +17265,8 @@ "version": "8.1.3", "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-8.1.3.tgz", "integrity": "sha512-n0ZrutD7DaX/j9VscF+uTALI3oUPa/pO4Z3soOBIjuRn/FzVu6aehhysxZCLi6y7duMf52WNZGMl7CtuK5EnRw==", + "optional": true, + "peer": true, "dependencies": { "@babel/runtime": "^7.12.1", "@types/hoist-non-react-statics": "^3.3.1", @@ -17982,12 +17304,16 @@ "node_modules/react-redux/node_modules/@types/use-sync-external-store": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz", - "integrity": "sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==" + "integrity": "sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==", + "optional": true, + "peer": true }, "node_modules/react-redux/node_modules/react-is": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "optional": true, + "peer": true }, "node_modules/react-resizable": { "version": "3.0.5", @@ -18093,9 +17419,9 @@ } }, "node_modules/react-select": { - "version": "5.8.1", - "resolved": "https://registry.npmjs.org/react-select/-/react-select-5.8.1.tgz", - "integrity": "sha512-RT1CJmuc+ejqm5MPgzyZujqDskdvB9a9ZqrdnVLsvAHjJ3Tj0hELnLeVPQlmYdVKCdCpxanepl6z7R5KhXhWzg==", + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/react-select/-/react-select-5.9.0.tgz", + "integrity": "sha512-nwRKGanVHGjdccsnzhFte/PULziueZxGD8LL2WojON78Mvnq7LdAMEtu2frrwld1fr3geixg3iiMBIc/LLAZpw==", "dependencies": { "@babel/runtime": "^7.12.0", "@emotion/cache": "^11.4.0", @@ -18105,18 +17431,13 @@ "memoize-one": "^6.0.0", "prop-types": "^15.6.0", "react-transition-group": "^4.3.0", - "use-isomorphic-layout-effect": "^1.1.2" + "use-isomorphic-layout-effect": "^1.2.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, - "node_modules/react-select/node_modules/memoize-one": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", - "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==" - }, "node_modules/react-table": { "version": "7.8.0", "resolved": "https://registry.npmjs.org/react-table/-/react-table-7.8.0.tgz", @@ -18154,9 +17475,9 @@ } }, "node_modules/react-use": { - "version": "17.5.1", - "resolved": "https://registry.npmjs.org/react-use/-/react-use-17.5.1.tgz", - "integrity": "sha512-LG/uPEVRflLWMwi3j/sZqR00nF6JGqTTDblkXK2nzXsIvij06hXl1V/MZIlwj1OKIQUtlh1l9jK8gLsRyCQxMg==", + "version": "17.6.0", + "resolved": "https://registry.npmjs.org/react-use/-/react-use-17.6.0.tgz", + "integrity": "sha512-OmedEScUMKFfzn1Ir8dBxiLLSOzhKe/dPZwVxcujweSj45aNM7BEGPb9BEVIgVEqEXx6f3/TsXzwIktNgUR02g==", "dependencies": { "@types/js-cookie": "^2.2.6", "@xobotyi/scrollbar-width": "^1.9.5", @@ -18188,9 +17509,9 @@ } }, "node_modules/react-window": { - "version": "1.8.10", - "resolved": "https://registry.npmjs.org/react-window/-/react-window-1.8.10.tgz", - "integrity": "sha512-Y0Cx+dnU6NLa5/EvoHukUD0BklJ8qITCtVEPY1C/nL8wwoZ0b5aEw8Ff1dOVHw7fCzMt55XfJDd8S8W8LCaUCg==", + "version": "1.8.11", + "resolved": "https://registry.npmjs.org/react-window/-/react-window-1.8.11.tgz", + "integrity": "sha512-+SRbUVT2scadgFSWx+R1P754xHPEqvcfSfVX10QYg6POOz+WNgkN48pS+BtZNIMGiL1HYrSEiCkwsMS15QogEQ==", "dependencies": { "@babel/runtime": "^7.0.0", "memoize-one": ">=3.1.1 <6" @@ -18199,10 +17520,15 @@ "node": ">8.0.0" }, "peerDependencies": { - "react": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0" + "react": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, + "node_modules/react-window/node_modules/memoize-one": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", + "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==" + }, "node_modules/readable-stream": { "version": "1.1.14", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", @@ -18253,12 +17579,9 @@ } }, "node_modules/redux": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", - "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", - "dependencies": { - "@babel/runtime": "^7.9.2" - } + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", + "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==" }, "node_modules/reflect.getprototypeof": { "version": "1.0.6", @@ -20390,9 +19713,9 @@ } }, "node_modules/tslib": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", - "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" }, "node_modules/tunnel-agent": { "version": "0.6.0", @@ -20527,6 +19850,7 @@ "version": "5.5.4", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", + "devOptional": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -20742,6 +20066,18 @@ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, + "node_modules/uuid": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.0.5.tgz", + "integrity": "sha512-508e6IcKLrhxKdBbcA2b4KQZlLVp2+J5UwQ6F7Drckkc5N9ZJwFa4TgWtsww9UG8fGHbm6gbV19TdM5pQ4GaIA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/esm/bin/uuid" + } + }, "node_modules/v8-compile-cache-lib": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", diff --git a/package.json b/package.json index e6e7af4..b6267be 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "dependencies": { "@emotion/css": "^11.13.0", "@grafana/data": "^11.1.4", - "@grafana/runtime": "^11.5.0-216340", + "@grafana/runtime": "^11.5.1", "@grafana/schema": "^11.1.4", "@grafana/ui": "^11.1.4", "@reduxjs/toolkit": "^2.2.7", From b758c31fb179c3e787e1fa41d900d9b3202b1cc6 Mon Sep 17 00:00:00 2001 From: vitPinchuk Date: Tue, 4 Feb 2025 14:29:17 +0300 Subject: [PATCH 8/8] CI update --- .../ui/src/components/uPlot/config/UPlotConfigBuilder.test.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/@grafana/ui/src/components/uPlot/config/UPlotConfigBuilder.test.ts b/src/@grafana/ui/src/components/uPlot/config/UPlotConfigBuilder.test.ts index 46a67b3..27d7769 100644 --- a/src/@grafana/ui/src/components/uPlot/config/UPlotConfigBuilder.test.ts +++ b/src/@grafana/ui/src/components/uPlot/config/UPlotConfigBuilder.test.ts @@ -413,7 +413,7 @@ describe('UPlotConfigBuilder', () => { "axes": [ { "filter": undefined, - "font": "12px "Inter", "Helvetica", "Arial", sans-serif", + "font": "12px 'Inter', 'Helvetica', 'Arial', sans-serif", "gap": 5, "grid": { "show": false, @@ -422,7 +422,7 @@ describe('UPlotConfigBuilder', () => { }, "incrs": undefined, "label": "test label", - "labelFont": "12px "Inter", "Helvetica", "Arial", sans-serif", + "labelFont": "12px 'Inter', 'Helvetica', 'Arial', sans-serif", "labelGap": 8, "labelSize": 20, "rotate": undefined,