From cc5708bcb13ceac97c7ac7871e4a1a915de5e5c6 Mon Sep 17 00:00:00 2001 From: bartoval Date: Fri, 31 Jan 2025 14:39:19 +0100 Subject: [PATCH] refactor(Metrics): :recycle: Polish charts resize --- README.md | 2 +- __tests__/__snapshots__/Metric.spec.tsx.snap | 15 +- package.json | 14 +- src/config/labels.ts | 10 +- src/core/components/SkChartArea/index.tsx | 25 +- src/core/components/SkChartPie/index.tsx | 2 +- .../shared/Metrics/components/Latency.tsx | 29 +- .../Metrics/components/LatencyCharts.tsx | 59 +- .../shared/Metrics/components/Request.tsx | 10 +- .../Metrics/components/RequestCharts.tsx | 9 +- .../shared/Metrics/components/Response.tsx | 1 + .../Metrics/components/ResponseCharts.tsx | 18 +- .../Metrics/components/TcpConnection.tsx | 6 +- .../shared/Metrics/components/Traffic.tsx | 63 +- .../Metrics/components/TrafficCharts.tsx | 48 +- yarn.lock | 558 +++++++++--------- 16 files changed, 456 insertions(+), 413 deletions(-) diff --git a/README.md b/README.md index 46d3a749..b90e6710 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ ![alt text](https://github.com/user-attachments/assets/b5c7941f-bc4d-4f72-875a-d12890c1e9a7) -![alt text](https://github.com/user-attachments/assets/862e61a3-067d-48ed-b612-bee1efd1ffc2) +![alt text](https://github.com/user-attachments/assets/ba57d9ce-369c-4ada-b41c-993fba830350) ## Enable the console from Skupper diff --git a/__tests__/__snapshots__/Metric.spec.tsx.snap b/__tests__/__snapshots__/Metric.spec.tsx.snap index 20f78ba8..5dfe546c 100644 --- a/__tests__/__snapshots__/Metric.spec.tsx.snap +++ b/__tests__/__snapshots__/Metric.spec.tsx.snap @@ -407,6 +407,11 @@ exports[`Metrics Component > renders correctly 1`] = ` +
+ +
@@ -513,8 +518,8 @@ exports[`Metrics Component > renders correctly 1`] = ` class="pf-v6-l-stack__item" >
renders correctly 1`] = `
- Latency + Tcp latency
@@ -576,6 +581,7 @@ exports[`Metrics Component > renders correctly 1`] = ` >
renders correctly 1`] = `
+
diff --git a/package.json b/package.json index 518d25e2..086b1b82 100644 --- a/package.json +++ b/package.json @@ -41,13 +41,13 @@ "@patternfly/react-icons": "6.1.0", "@patternfly/react-table": "6.1.0", "@patternfly/react-tokens": "6.1.0", - "@tanstack/react-query": "5.64.2", + "@tanstack/react-query": "5.66.0", "axios": "1.7.9", "react": "18.3.1", "react-dom": "18.3.1", "react-error-boundary": "5.0.0", - "react-router-dom": "7.1.3", - "victory": "37.3.2" + "react-router-dom": "7.1.4", + "victory": "37.3.6" }, "_comment": "Note: Victory 37.3.4 break legend in @patternfly/react-charts", "devDependencies": { @@ -58,7 +58,7 @@ "@testing-library/jest-dom": "^6.6.3", "@testing-library/react": "^16.2.0", "@testing-library/user-event": "^14.6.1", - "@types/node": "^22.10.10", + "@types/node": "^22.12.0", "@types/react": "^19.0.8", "@types/react-dom": "^19.0.3", "@vitejs/plugin-react": "^4.3.4", @@ -68,7 +68,7 @@ "commitizen": "^4.3.1", "copy-webpack-plugin": "^12.0.2", "css-loader": "^7.1.2", - "cypress": "^14.0.0", + "cypress": "^14.0.1", "cz-git": "^1.11.0", "eslint": "^9.19.0", "eslint-config-prettier": "^10.0.1", @@ -80,7 +80,7 @@ "html-webpack-plugin": "^5.6.3", "husky": "^9.1.7", "jsdom": "^26.0.0", - "lint-staged": "^15.4.2", + "lint-staged": "^15.4.3", "mini-css-extract-plugin": "^2.9.2", "miragejs": "^0.1.48", "prettier": "^3.4.2", @@ -88,7 +88,7 @@ "terser-webpack-plugin": "^5.3.11", "ts-loader": "^9.5.2", "typescript": "^5.7.3", - "typescript-eslint": "^8.21.0", + "typescript-eslint": "^8.22.0", "vite": "^6.0.11", "vitest": "^3.0.4", "webpack": "^5.97.1", diff --git a/src/config/labels.ts b/src/config/labels.ts index 119d315b..d1203bb4 100644 --- a/src/config/labels.ts +++ b/src/config/labels.ts @@ -31,6 +31,7 @@ export const Labels = { TerminatedConnections: 'Closed connections', LiveConnections: 'Open connections', Requests: 'Http requests', + RequestRateByMethod: 'Requests Per Second by Method', Responses: 'Http responses', Created: 'Created', @@ -58,6 +59,7 @@ export const Labels = { Inbound: 'Inbound', NoClients: 'No Clients', OpenConnections: 'Open connections', + ConnectionActivity: 'Connection Activity', OldConnections: 'Connection history', TcpTrafficTx: 'Outbound traffic ', TcpTrafficRx: 'Inbound traffic', @@ -102,8 +104,6 @@ export const Labels = { AllConnectedProcesses: 'All connected processes', AllProtocols: 'All protocols', - PercentileOverTimeIn: 'Inbound Connections', - PercentileOverTimeOut: 'Outbound Connections', LatencyMetric50quantile: '50th percentile', LatencyMetric90quantile: '90th percentile', LatencyMetric95quantile: '95th percentile', @@ -143,7 +143,7 @@ export const Labels = { BytesOut: 'Data Out', BytesIn: 'Data In', ByteRate: 'Byte rate', - Latency: 'Latency', + Latency: 'Tcp latency', LatencyOut: 'Tcp latency Out', LatencyIn: 'Tcp latency In', @@ -177,6 +177,6 @@ export const Labels = { 'No metrics are currently accessible or meet the filter criteria. Please modify all filters, then attempt the operation again.', NoBiflowFoundDescription: 'As new connections or requests are established, they will be dynamically added to the table for display', - ByteRateDataOutDescription: 'Analyze outbound and inbound traffic when sending data', - ByteRateDataInDescription: 'Analyze outbound and inbound traffic when receiving data' + ByteRateDataOutDescription: 'Client Role Traffic', + ByteRateDataInDescription: 'Server Role Traffic' } as const; // makes sure that all values are treated as literal types diff --git a/src/core/components/SkChartArea/index.tsx b/src/core/components/SkChartArea/index.tsx index 92012197..5a54deee 100644 --- a/src/core/components/SkChartArea/index.tsx +++ b/src/core/components/SkChartArea/index.tsx @@ -11,20 +11,22 @@ import { ChartArea, ChartLine } from '@patternfly/react-charts/victory'; -import { getResizeObserver } from '@patternfly/react-core'; +import { getResizeObserver, Title } from '@patternfly/react-core'; import { skAxisXY } from '../../../types/SkChartArea.interfaces'; import { formatChartDate } from '../../utils/formatChartDate'; const DEFAULT_CHART_PADDING = { - bottom: 70, + bottom: 0, left: 70, right: 0, - top: 20 + top: 0 }; interface SkChartAreaProps extends ChartProps { data: skAxisXY[][]; + title?: string; + subTitle?: string; formatY?: Function; formatYTooltip?: Function; formatX?: Function; @@ -44,6 +46,8 @@ const SkChartArea: FC = function ({ legendLabels = [], showLegend = true, isChartLine = false, + title, + subTitle, height = 300, ...props }) { @@ -74,10 +78,15 @@ const SkChartArea: FC = function ({ const startDate = data[0][0]?.x; return ( -
+
+
+ {title} +

{subTitle}

+
+ = function ({ > tick && formatX(tick, startDate)} showGrid @@ -116,8 +125,8 @@ const SkChartArea: FC = function ({ dependentAxis minDomain={{ y: 0 }} style={{ - tickLabels: { fontSize: 10 }, - axisLabel: { fontSize: 15, padding: 90 } + tickLabels: { fontSize: 12 }, + axisLabel: { fontSize: 15, padding: 0 } }} tickFormat={(tick) => tick && formatY(tick < 0.001 ? 0 : tick)} showGrid diff --git a/src/core/components/SkChartPie/index.tsx b/src/core/components/SkChartPie/index.tsx index 9813de4e..087c073f 100644 --- a/src/core/components/SkChartPie/index.tsx +++ b/src/core/components/SkChartPie/index.tsx @@ -57,7 +57,7 @@ const SkChartPie: FC = function ({ })); return ( -
+
= function ({ title = '', selectedFilters, refetchInterval }) { const [isExpanded, setIsExpanded] = useState(true); @@ -45,30 +47,23 @@ const Latency: FC = function ({ title = '', selectedFilters, refet }, [isExpanded]); return ( - + {title} - {/*display grid center the child SKEmptyData */} - + {dataIn.isLoading && dataOut.isLoading && } - {!dataIn.isLoading && dataIn.data?.length && ( - <> - {!dataIn.isLoading && dataIn.isRefetching && } - - - )} - - {!dataOut.isLoading && dataOut.data?.length && ( - <> - {!dataOut.isLoading && dataOut.isRefetching && } - - - )} - + {!dataIn.isLoading && !dataOut.isLoading && !dataIn.data?.length && !dataOut.data?.length && ( = memo(({ latenciesData, title }) => ( - - - {title} - label)} - data={latenciesData.map(({ data }) => data)} - isChartLine={true} - /> - - -)); +interface LatencyChartsProps { + inboundData?: LatencyMetrics[] | null; + outboundData?: LatencyMetrics[] | null; + isInboundLoading: boolean; + isOutboundLoading: boolean; + isInboundRefetching: boolean; + isOutboundRefetching: boolean; +} + +const LatencyCharts: FC = memo( + ({ inboundData, outboundData, isInboundLoading, isOutboundLoading, isInboundRefetching, isOutboundRefetching }) => ( + + {!isOutboundLoading && outboundData?.length && ( + + {!isOutboundLoading && isOutboundRefetching && } + label)} + data={outboundData.map(({ data }) => data)} + isChartLine={true} + /> + + )} + {!isInboundLoading && inboundData?.length && ( + + {!isInboundLoading && isInboundRefetching && } + label)} + data={inboundData.map(({ data }) => data)} + isChartLine={true} + /> + + )} + + ) +); export default LatencyCharts; diff --git a/src/pages/shared/Metrics/components/Request.tsx b/src/pages/shared/Metrics/components/Request.tsx index 5959393a..f49c08dd 100644 --- a/src/pages/shared/Metrics/components/Request.tsx +++ b/src/pages/shared/Metrics/components/Request.tsx @@ -1,6 +1,6 @@ import { FC, useCallback, useState } from 'react'; -import { Card, CardBody, CardExpandableContent, CardHeader, CardTitle, Title } from '@patternfly/react-core'; +import { Card, CardBody, CardExpandableContent, CardHeader, CardTitle } from '@patternfly/react-core'; import { SearchIcon } from '@patternfly/react-icons'; import { keepPreviousData, useQuery } from '@tanstack/react-query'; @@ -43,6 +43,7 @@ const Request: FC = function ({ selectedFilters, refetchInterval } {Labels.Requests} + {/*display grid center the child SKEmptyData */} @@ -51,8 +52,11 @@ const Request: FC = function ({ selectedFilters, refetchInterval } {!isLoading && request?.requestRateData?.length && ( <> {isRefetching && } - {Labels.RequestRate} - + )} diff --git a/src/pages/shared/Metrics/components/RequestCharts.tsx b/src/pages/shared/Metrics/components/RequestCharts.tsx index 4907542e..0ab4b314 100644 --- a/src/pages/shared/Metrics/components/RequestCharts.tsx +++ b/src/pages/shared/Metrics/components/RequestCharts.tsx @@ -9,12 +9,14 @@ import { formatToDecimalPlacesIfCents } from '../../../../core/utils/formatToDec import { RequestMetrics } from '../../../../types/Metrics.interfaces'; const RequestCharts: FC<{ + title?: string; requestRateData: RequestMetrics[]; requestPerf: { avg: number; max: number; current: number; label: string }[] | undefined; -}> = memo(({ requestRateData, requestPerf }) => ( +}> = memo(({ requestRateData, requestPerf, title }) => ( data)} formatY={(y: number) => `${formatToDecimalPlacesIfCents(y, 3)} rps`} legendLabels={requestRateData.map(({ label }) => `${label}`)} @@ -22,7 +24,8 @@ const RequestCharts: FC<{ - + + @@ -43,7 +46,7 @@ const RequestCharts: FC<{ ))}
-
+
)); diff --git a/src/pages/shared/Metrics/components/Response.tsx b/src/pages/shared/Metrics/components/Response.tsx index da5f0888..4bbe7177 100644 --- a/src/pages/shared/Metrics/components/Response.tsx +++ b/src/pages/shared/Metrics/components/Response.tsx @@ -72,6 +72,7 @@ const Response: FC = function ({ selectedFilters, refetchInterval {Labels.Responses} + {/*display grid center the child SKEmptyData */} diff --git a/src/pages/shared/Metrics/components/ResponseCharts.tsx b/src/pages/shared/Metrics/components/ResponseCharts.tsx index 25998c12..81e8a931 100644 --- a/src/pages/shared/Metrics/components/ResponseCharts.tsx +++ b/src/pages/shared/Metrics/components/ResponseCharts.tsx @@ -12,8 +12,7 @@ import { convertToPercentage } from '../../../../core/utils/convertToPercentage' import { formatToDecimalPlacesIfCents } from '../../../../core/utils/formatToDecimalPlacesIfCents'; import { ResponseMetrics } from '../../../../types/Metrics.interfaces'; -const errorDistributionPadding = { left: 0, bottom: 65, top: 50, right: 0 }; -const errorRateChartPadding = { left: 40, bottom: 80, top: 50, right: 40 }; +const errorRateChartPadding = { left: 40, bottom: 0, top: 0, right: 40 }; function createStatusLabel(label: string) { return `${label}xx`; @@ -24,28 +23,28 @@ const ResponseCharts: FC<{ responseRateData: ResponseMetrics | null; responseDat <> {/* HTTP stats */} - + - + - + - +

{/* Errors distribution */} - + formatToDecimalPlacesIfCents(y, 3)} @@ -85,6 +81,7 @@ const ResponseCharts: FC<{ responseRateData: ResponseMetrics | null; responseDat `${y} ${Labels.Errors}`} data={[ { @@ -96,7 +93,6 @@ const ResponseCharts: FC<{ responseRateData: ResponseMetrics | null; responseDat y: responseData.statusCode5xx.total } ]} - padding={errorDistributionPadding} themeColor={ChartThemeColor.orange} /> diff --git a/src/pages/shared/Metrics/components/TcpConnection.tsx b/src/pages/shared/Metrics/components/TcpConnection.tsx index dbaa9f94..e3ee6fc0 100644 --- a/src/pages/shared/Metrics/components/TcpConnection.tsx +++ b/src/pages/shared/Metrics/components/TcpConnection.tsx @@ -65,7 +65,11 @@ const TcpConnection: FC = function ({ selectedFilters, refet {connections.liveConnectionsSerie && ( - + )} diff --git a/src/pages/shared/Metrics/components/Traffic.tsx b/src/pages/shared/Metrics/components/Traffic.tsx index 8d98addd..64a28962 100644 --- a/src/pages/shared/Metrics/components/Traffic.tsx +++ b/src/pages/shared/Metrics/components/Traffic.tsx @@ -1,6 +1,6 @@ import { FC, useCallback, useState } from 'react'; -import { Card, CardBody, CardExpandableContent, CardHeader, CardTitle, Title } from '@patternfly/react-core'; +import { Card, CardBody, CardExpandableContent, CardHeader, CardTitle, Stack, StackItem } from '@patternfly/react-core'; import { SearchIcon } from '@patternfly/react-icons'; import { keepPreviousData, useQuery } from '@tanstack/react-query'; @@ -52,39 +52,38 @@ const Traffic: FC = function ({ selectedFilters, refetchInterval } {isLoading && } - {(!!data?.traffic.txTimeSerie?.data.length || !!data?.traffic.rxTimeSerie?.data.length) && ( - <> - {!isLoading && isRefetching && } - {`${Labels.ByteRate}`} - - - )} - - {isOnlyClientOrServer && - (!!data?.trafficClient.txTimeSerie?.data.length || !!data?.trafficClient.rxTimeSerie?.data.length) && ( - <> - {!isLoading && isRefetching && } - {`${Labels.ByteRate} as Client`} - {Labels.ByteRateDataOutDescription} - - - )} - - {isOnlyClientOrServer && - (!!data?.trafficServer.txTimeSerie?.data.length || !!data?.trafficServer.rxTimeSerie?.data.length) && ( - <> + + {(!!data?.traffic.txTimeSerie?.data.length || !!data?.traffic.rxTimeSerie?.data.length) && ( + {!isLoading && isRefetching && } - {`${Labels.ByteRate} as Server`} - {Labels.ByteRateDataInDescription} - - + + )} + {isOnlyClientOrServer && + (!!data?.trafficClient.txTimeSerie?.data.length || !!data?.trafficClient.rxTimeSerie?.data.length) && ( + + {!isLoading && isRefetching && } +







+ +
+ )} + {isOnlyClientOrServer && + (!!data?.trafficServer.txTimeSerie?.data.length || !!data?.trafficServer.rxTimeSerie?.data.length) && ( + + {!isLoading && isRefetching && } +







+ +
+ )}{' '} +
{!isLoading && !data?.traffic.txTimeSerie?.data.length && !data?.traffic.rxTimeSerie?.data.length && ( = memo( - ({ byteRateData, colorScale }) => ( - +const TrafficCharts: FC<{ byteRateData: ByteRateMetrics; colorScale?: string[]; title?: string; subTitle?: string }> = + memo(({ byteRateData, colorScale, title, subTitle }) => ( + - - + - - + - + @@ -71,13 +69,14 @@ const TrafficCharts: FC<{ byteRateData: ByteRateMetrics; colorScale?: string[] } colorScale={colorScale} format={formatBytes} themeColor={ChartThemeColor.multi} + height={350} data={[ { - x: Labels.BytesIn, + x: Labels.Inbound, y: byteRateData?.totalRxValue || 0 }, { - x: Labels.BytesOut, + x: Labels.Outbound, y: byteRateData?.totalTxValue || 0 } ]} @@ -85,7 +84,6 @@ const TrafficCharts: FC<{ byteRateData: ByteRateMetrics; colorScale?: string[] } - ) -); + )); export default TrafficCharts; diff --git a/yarn.lock b/yarn.lock index 617b90eb..9f436d9f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1286,17 +1286,17 @@ resolved "https://registry.yarnpkg.com/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz#719df7fb41766bc143369eaa0dd56d8dc87c9958" integrity sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg== -"@tanstack/query-core@5.64.2": - version "5.64.2" - resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-5.64.2.tgz#be06e7c7966d14ea3e7c82bea1086b463f2f6809" - integrity sha512-hdO8SZpWXoADNTWXV9We8CwTkXU88OVWRBcsiFrk7xJQnhm6WRlweDzMD+uH+GnuieTBVSML6xFa17C2cNV8+g== +"@tanstack/query-core@5.66.0": + version "5.66.0" + resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-5.66.0.tgz#163f670b3b4e3b3cdbff6698ad44b2edfcaed185" + integrity sha512-J+JeBtthiKxrpzUu7rfIPDzhscXF2p5zE/hVdrqkACBP8Yu0M96mwJ5m/8cPPYQE9aRNvXztXHlNwIh4FEeMZw== -"@tanstack/react-query@5.64.2": - version "5.64.2" - resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-5.64.2.tgz#199c8a5a8ff92a8565f8cdd378747398347512a2" - integrity sha512-3pakNscZNm8KJkxmovvtZ4RaXLyiYYobwleTMvpIGUoKRa8j8VlrQKNl5W8VUEfVfZKkikvXVddLuWMbcSCA1Q== +"@tanstack/react-query@5.66.0": + version "5.66.0" + resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-5.66.0.tgz#9f7aa1b3e844ea6a0ad2ee61fccaed76e614b865" + integrity sha512-z3sYixFQJe8hndFnXgWu7C79ctL+pI0KAelYyW+khaNJ1m22lWrhJU2QrsTcRKMuVPtoZvfBYrTStIdKo+x0Xw== dependencies: - "@tanstack/query-core" "5.64.2" + "@tanstack/query-core" "5.66.0" "@testing-library/dom@^10.4.0": version "10.4.0" @@ -1505,10 +1505,10 @@ dependencies: undici-types "~6.20.0" -"@types/node@^22.10.10": - version "22.10.10" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.10.10.tgz#85fe89f8bf459dc57dfef1689bd5b52ad1af07e6" - integrity sha512-X47y/mPNzxviAGY5TcYPtYL8JsY3kAq2n8fMmKoRCxq/c4v4pyGNCzM2R6+M5/umG4ZfHuT+sgqDYqWc9rJ6ww== +"@types/node@^22.12.0": + version "22.12.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.12.0.tgz#bf8af3b2af0837b5a62a368756ff2b705ae0048c" + integrity sha512-Fll2FZ1riMjNmlmJOdAyY5pUbkftXslB5DgEzlIuNaiWhXd00FhWxVC/r4yV/4wBb9JfImTu+jiSvXTkJ7F/gA== dependencies: undici-types "~6.20.0" @@ -1546,62 +1546,62 @@ dependencies: "@types/node" "*" -"@typescript-eslint/eslint-plugin@8.21.0": - version "8.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.21.0.tgz#395014a75112ecdb81142b866ab6bb62e3be0f2a" - integrity sha512-eTH+UOR4I7WbdQnG4Z48ebIA6Bgi7WO8HvFEneeYBxG8qCOYgTOFPSg6ek9ITIDvGjDQzWHcoWHCDO2biByNzA== +"@typescript-eslint/eslint-plugin@8.22.0": + version "8.22.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.22.0.tgz#63a1b0d24d85a971949f8d71d693019f58d2e861" + integrity sha512-4Uta6REnz/xEJMvwf72wdUnC3rr4jAQf5jnTkeRQ9b6soxLxhDEbS/pfMPoJLDfFPNVRdryqWUIV/2GZzDJFZw== dependencies: "@eslint-community/regexpp" "^4.10.0" - "@typescript-eslint/scope-manager" "8.21.0" - "@typescript-eslint/type-utils" "8.21.0" - "@typescript-eslint/utils" "8.21.0" - "@typescript-eslint/visitor-keys" "8.21.0" + "@typescript-eslint/scope-manager" "8.22.0" + "@typescript-eslint/type-utils" "8.22.0" + "@typescript-eslint/utils" "8.22.0" + "@typescript-eslint/visitor-keys" "8.22.0" graphemer "^1.4.0" ignore "^5.3.1" natural-compare "^1.4.0" ts-api-utils "^2.0.0" -"@typescript-eslint/parser@8.21.0": - version "8.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.21.0.tgz#312c638aaba4f640d45bfde7c6795a9d75deb088" - integrity sha512-Wy+/sdEH9kI3w9civgACwabHbKl+qIOu0uFZ9IMKzX3Jpv9og0ZBJrZExGrPpFAY7rWsXuxs5e7CPPP17A4eYA== +"@typescript-eslint/parser@8.22.0": + version "8.22.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.22.0.tgz#f21c5db24271f182ebbb4ba8c7ad3eb76e5f5f3a" + integrity sha512-MqtmbdNEdoNxTPzpWiWnqNac54h8JDAmkWtJExBVVnSrSmi9z+sZUt0LfKqk9rjqmKOIeRhO4fHHJ1nQIjduIQ== dependencies: - "@typescript-eslint/scope-manager" "8.21.0" - "@typescript-eslint/types" "8.21.0" - "@typescript-eslint/typescript-estree" "8.21.0" - "@typescript-eslint/visitor-keys" "8.21.0" + "@typescript-eslint/scope-manager" "8.22.0" + "@typescript-eslint/types" "8.22.0" + "@typescript-eslint/typescript-estree" "8.22.0" + "@typescript-eslint/visitor-keys" "8.22.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@8.21.0": - version "8.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.21.0.tgz#d08d94e2a34b4ccdcc975543c25bb62917437500" - integrity sha512-G3IBKz0/0IPfdeGRMbp+4rbjfSSdnGkXsM/pFZA8zM9t9klXDnB/YnKOBQ0GoPmoROa4bCq2NeHgJa5ydsQ4mA== +"@typescript-eslint/scope-manager@8.22.0": + version "8.22.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.22.0.tgz#e85836ddeb8eae715f870628bcc32fe96aaf4d0e" + integrity sha512-/lwVV0UYgkj7wPSw0o8URy6YI64QmcOdwHuGuxWIYznO6d45ER0wXUbksr9pYdViAofpUCNJx/tAzNukgvaaiQ== dependencies: - "@typescript-eslint/types" "8.21.0" - "@typescript-eslint/visitor-keys" "8.21.0" + "@typescript-eslint/types" "8.22.0" + "@typescript-eslint/visitor-keys" "8.22.0" -"@typescript-eslint/type-utils@8.21.0": - version "8.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.21.0.tgz#2e69d1a93cdbedc73fe694cd6ae4dfedd00430a0" - integrity sha512-95OsL6J2BtzoBxHicoXHxgk3z+9P3BEcQTpBKriqiYzLKnM2DeSqs+sndMKdamU8FosiadQFT3D+BSL9EKnAJQ== +"@typescript-eslint/type-utils@8.22.0": + version "8.22.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.22.0.tgz#cd9f23c23f021357ef0baa3490d4d96edcc97509" + integrity sha512-NzE3aB62fDEaGjaAYZE4LH7I1MUwHooQ98Byq0G0y3kkibPJQIXVUspzlFOmOfHhiDLwKzMlWxaNv+/qcZurJA== dependencies: - "@typescript-eslint/typescript-estree" "8.21.0" - "@typescript-eslint/utils" "8.21.0" + "@typescript-eslint/typescript-estree" "8.22.0" + "@typescript-eslint/utils" "8.22.0" debug "^4.3.4" ts-api-utils "^2.0.0" -"@typescript-eslint/types@8.21.0": - version "8.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.21.0.tgz#58f30aec8db8212fd886835dc5969cdf47cb29f5" - integrity sha512-PAL6LUuQwotLW2a8VsySDBwYMm129vFm4tMVlylzdoTybTHaAi0oBp7Ac6LhSrHHOdLM3efH+nAR6hAWoMF89A== +"@typescript-eslint/types@8.22.0": + version "8.22.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.22.0.tgz#d9dec7116479ad03aeb6c8ac9c5223c4c79cf360" + integrity sha512-0S4M4baNzp612zwpD4YOieP3VowOARgK2EkN/GBn95hpyF8E2fbMT55sRHWBq+Huaqk3b3XK+rxxlM8sPgGM6A== -"@typescript-eslint/typescript-estree@8.21.0": - version "8.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.21.0.tgz#5ce71acdbed3b97b959f6168afba5a03c88f69a9" - integrity sha512-x+aeKh/AjAArSauz0GiQZsjT8ciadNMHdkUSwBB9Z6PrKc/4knM4g3UfHml6oDJmKC88a6//cdxnO/+P2LkMcg== +"@typescript-eslint/typescript-estree@8.22.0": + version "8.22.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.22.0.tgz#c188c3e19529d5b3145577c0bd967e2683b114df" + integrity sha512-SJX99NAS2ugGOzpyhMza/tX+zDwjvwAtQFLsBo3GQxiGcvaKlqGBkmZ+Y1IdiSi9h4Q0Lr5ey+Cp9CGWNY/F/w== dependencies: - "@typescript-eslint/types" "8.21.0" - "@typescript-eslint/visitor-keys" "8.21.0" + "@typescript-eslint/types" "8.22.0" + "@typescript-eslint/visitor-keys" "8.22.0" debug "^4.3.4" fast-glob "^3.3.2" is-glob "^4.0.3" @@ -1609,22 +1609,22 @@ semver "^7.6.0" ts-api-utils "^2.0.0" -"@typescript-eslint/utils@8.21.0": - version "8.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.21.0.tgz#bc4874fbc30feb3298b926e3b03d94570b3999c5" - integrity sha512-xcXBfcq0Kaxgj7dwejMbFyq7IOHgpNMtVuDveK7w3ZGwG9owKzhALVwKpTF2yrZmEwl9SWdetf3fxNzJQaVuxw== +"@typescript-eslint/utils@8.22.0": + version "8.22.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.22.0.tgz#c8cc4e52a9c711af8a741a82dc5d7242b7a8dd44" + integrity sha512-T8oc1MbF8L+Bk2msAvCUzjxVB2Z2f+vXYfcucE2wOmYs7ZUwco5Ep0fYZw8quNwOiw9K8GYVL+Kgc2pETNTLOg== dependencies: "@eslint-community/eslint-utils" "^4.4.0" - "@typescript-eslint/scope-manager" "8.21.0" - "@typescript-eslint/types" "8.21.0" - "@typescript-eslint/typescript-estree" "8.21.0" + "@typescript-eslint/scope-manager" "8.22.0" + "@typescript-eslint/types" "8.22.0" + "@typescript-eslint/typescript-estree" "8.22.0" -"@typescript-eslint/visitor-keys@8.21.0": - version "8.21.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.21.0.tgz#a89744c4cdc83b5c761eb5878befe6c33d1481b2" - integrity sha512-BkLMNpdV6prozk8LlyK/SOoWLmUFi+ZD+pcqti9ILCbVvHGk1ui1g4jJOc2WDLaeExz2qWwojxlPce5PljcT3w== +"@typescript-eslint/visitor-keys@8.22.0": + version "8.22.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.22.0.tgz#02cc005014c372033eb9171e2275b76cba722a3f" + integrity sha512-AWpYAXnUgvLNabGTy3uBylkgZoosva/miNd1I8Bz3SjotmQPbVqhO4Cczo8AsZ44XVErEBPr/CRSgaj8sG7g0w== dependencies: - "@typescript-eslint/types" "8.21.0" + "@typescript-eslint/types" "8.22.0" eslint-visitor-keys "^4.2.0" "@vitejs/plugin-react@^4.3.4": @@ -2739,10 +2739,10 @@ csstype@^3.0.2, csstype@^3.0.8: resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== -cypress@^14.0.0: - version "14.0.0" - resolved "https://registry.yarnpkg.com/cypress/-/cypress-14.0.0.tgz#a71cb0a243a0bfeb97b6973ab9c5291ca5288e93" - integrity sha512-kEGqQr23so5IpKeg/dp6GVi7RlHx1NmW66o2a2Q4wk9gRaAblLZQSiZJuDI8UMC4LlG5OJ7Q6joAiqTrfRNbTw== +cypress@^14.0.1: + version "14.0.1" + resolved "https://registry.yarnpkg.com/cypress/-/cypress-14.0.1.tgz#8ecf8aab261213fe7ed6043cb7f8a5f662144733" + integrity sha512-gBAvKZE3f6eBaW1v8OtrwAFP90rjNZjjOO40M2KvOvmwVXk96Ps5Yjyck1EzGkXmNCaC/8kXFOY/1KD/wsaWpQ== dependencies: "@cypress/request" "^3.0.6" "@cypress/xvfb" "^1.2.4" @@ -5110,10 +5110,10 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== -lint-staged@^15.4.2: - version "15.4.2" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-15.4.2.tgz#f986bcb6b03822a996c600447c692c69640c7607" - integrity sha512-gCqzB/Li281uZJgReNci+oXXqUEdrFAQAzTE/LwoxxiEuP41vozNe4BATS+4ehdqkWn+Z6bGc3EDcBja3npBVw== +lint-staged@^15.4.3: + version "15.4.3" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-15.4.3.tgz#e73587cc857f580c99f907abefe9ac8d8d5e74c1" + integrity sha512-FoH1vOeouNh1pw+90S+cnuoFwRfUD9ijY2GKy5h7HS3OR7JVir2N2xrsa0+Twc1B7cW72L+88geG5cW4wIhn7g== dependencies: chalk "^5.4.1" commander "^13.1.0" @@ -6114,17 +6114,17 @@ react-refresh@^0.14.2: resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.2.tgz#3833da01ce32da470f1f936b9d477da5c7028bf9" integrity sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA== -react-router-dom@7.1.3: - version "7.1.3" - resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-7.1.3.tgz#2788f7c670aa50275e16bb033b9b04b01a45b6dc" - integrity sha512-qQGTE+77hleBzv9SIUIkGRvuFBQGagW+TQKy53UTZAO/3+YFNBYvRsNIZ1GT17yHbc63FylMOdS+m3oUriF1GA== +react-router-dom@7.1.4: + version "7.1.4" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-7.1.4.tgz#64acabb6c767784cc7c36024c4df379f51f7cdb1" + integrity sha512-p474cAeRKfPNp+9QtpdVEa025iWLIIIBhYCnjsSwFmZH3c5DBHOc7vB7zmL6lL747o0ArfrLblNTebtL6lt0lA== dependencies: - react-router "7.1.3" + react-router "7.1.4" -react-router@7.1.3: - version "7.1.3" - resolved "https://registry.yarnpkg.com/react-router/-/react-router-7.1.3.tgz#6c15c28838b799cb3058943e8e8015dbd6c16c7b" - integrity sha512-EezYymLY6Guk/zLQ2vRA8WvdUhWFEj5fcE3RfWihhxXBW7+cd1LsIiA3lmx+KCmneAGQuyBv820o44L2+TtkSA== +react-router@7.1.4: + version "7.1.4" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-7.1.4.tgz#dcac613c1acd623f8aa314e7ea54db88c7968b1e" + integrity sha512-aJWVrKoLI0nIK1lfbTU3d5al1ZEUiwtSus/xjYL8K5sv2hyPesiOIojHM7QnaNLVtroOB1McZsWk37fMQVoc6A== dependencies: "@types/cookie" "^0.6.0" cookie "^1.0.1" @@ -7116,14 +7116,14 @@ typed-array-length@^1.0.7: possible-typed-array-names "^1.0.0" reflect.getprototypeof "^1.0.6" -typescript-eslint@^8.21.0: - version "8.21.0" - resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.21.0.tgz#78bdb83a6d771f0312b128297d84a3111885fd08" - integrity sha512-txEKYY4XMKwPXxNkN8+AxAdX6iIJAPiJbHE/FpQccs/sxw8Lf26kqwC3cn0xkHlW8kEbLhkhCsjWuMveaY9Rxw== +typescript-eslint@^8.22.0: + version "8.22.0" + resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.22.0.tgz#1d4becf1d65385e57e9271fbd557ccc22f6c0f53" + integrity sha512-Y2rj210FW1Wb6TWXzQc5+P+EWI9/zdS57hLEc0gnyuvdzWo8+Y8brKlbj0muejonhMI/xAZCnZZwjbIfv1CkOw== dependencies: - "@typescript-eslint/eslint-plugin" "8.21.0" - "@typescript-eslint/parser" "8.21.0" - "@typescript-eslint/utils" "8.21.0" + "@typescript-eslint/eslint-plugin" "8.22.0" + "@typescript-eslint/parser" "8.22.0" + "@typescript-eslint/utils" "8.22.0" typescript@^5.7.3: version "5.7.3" @@ -7199,229 +7199,229 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" -victory-area@37.3.2: - version "37.3.2" - resolved "https://registry.yarnpkg.com/victory-area/-/victory-area-37.3.2.tgz#390f494cb70b45cc7403a0670f46348b89f4b7c2" - integrity sha512-djqvyMv6asEkdS/84ZpJWM6PvNvPsW6DsA507ylo+R1SB+JSLgPeroLSKkPfMq3NH8Aej16aDm8J+LrEH51pqg== +victory-area@37.3.6: + version "37.3.6" + resolved "https://registry.yarnpkg.com/victory-area/-/victory-area-37.3.6.tgz#968f1ae2e402c5afa426ec743b4045068b53be75" + integrity sha512-wVC8LKrZJLiSySNuJLRCB449qZTsPiRyzLlNoJwe21y+XA/a2HJbmJSeywmo8P153aX8viKe1H8ygDsTFXQhHw== dependencies: lodash "^4.17.19" - victory-core "37.3.2" - victory-vendor "37.3.2" + victory-core "37.3.6" + victory-vendor "37.3.6" -victory-axis@37.3.2: - version "37.3.2" - resolved "https://registry.yarnpkg.com/victory-axis/-/victory-axis-37.3.2.tgz#ab2d477ddd583e68c894c30e3b0c5fc21f863705" - integrity sha512-Wv3k3pfY///lIcfcGga/7x9HvyaJ+oybKo1QDeOPEKU6n8i4ri1KAWCNko4fLNXu+9McJoOMAaWDvSdQy8My/g== +victory-axis@37.3.6: + version "37.3.6" + resolved "https://registry.yarnpkg.com/victory-axis/-/victory-axis-37.3.6.tgz#29eee1a82d896507bfdf9f63fa1c6eecabc46e80" + integrity sha512-Vi0dZvgmXmnCdoqc49WckeG5cMXnl7FTtqVhXu9JweA9cgCnkZabBd5mRvAjblb3Lo4j0HZCSPKHYWUPW70qZg== dependencies: lodash "^4.17.19" - victory-core "37.3.2" + victory-core "37.3.6" -victory-bar@37.3.2: - version "37.3.2" - resolved "https://registry.yarnpkg.com/victory-bar/-/victory-bar-37.3.2.tgz#51c74949594cd46c4398b6945ef962f9acb73b2a" - integrity sha512-inqb9HLgxheidOAJw7jTMBBR18I7rCgtfH4WuCSMPPtZtUBAEDYFIJzAKzL/LrpC/sWi91fQC2tzmphTD3DS+Q== +victory-bar@37.3.6: + version "37.3.6" + resolved "https://registry.yarnpkg.com/victory-bar/-/victory-bar-37.3.6.tgz#7adacc1c629d1355ab70fdfb91019e4c3a580ca4" + integrity sha512-jdATFRWL1LUW/yEpKWx/aId2BiU2o1pPF9+Kh1TFISBduJoI4ZqvZD90H1QK4f/z50PikqiqiDECaKoKM1jfOQ== dependencies: lodash "^4.17.19" - victory-core "37.3.2" - victory-vendor "37.3.2" + victory-core "37.3.6" + victory-vendor "37.3.6" -victory-box-plot@37.3.2: - version "37.3.2" - resolved "https://registry.yarnpkg.com/victory-box-plot/-/victory-box-plot-37.3.2.tgz#de785ebfc785c2f84f136a74934bc800301ebffd" - integrity sha512-voHSHhijQbqjD0Gqv8B/WmhtumXGNQWvqm18W5NZ752jZ5tzhX1mPdOAUFN7FGpPuMNKaYFm/By7YIntlYCGeQ== +victory-box-plot@37.3.6: + version "37.3.6" + resolved "https://registry.yarnpkg.com/victory-box-plot/-/victory-box-plot-37.3.6.tgz#7f9632e7db69117f81d9ca199f4d3c5a29c61326" + integrity sha512-GOucnD63h14ScBuISC/nd1GBTEx6gIZfLE+0P0gyeH1poBKq0trTTvpQDvAMuGR8zICfEETG3ltmUMCwRrFyUg== dependencies: lodash "^4.17.19" - victory-core "37.3.2" - victory-vendor "37.3.2" + victory-core "37.3.6" + victory-vendor "37.3.6" -victory-brush-container@37.3.2: - version "37.3.2" - resolved "https://registry.yarnpkg.com/victory-brush-container/-/victory-brush-container-37.3.2.tgz#0d0ec8dfeff03ec421497ad48dcf916fe09630c4" - integrity sha512-SZ4LuM8l3tpGkcnTaGGYREs8gz9E17/c9k3X8uObnXGpz9M3RXkL5hEP0ewtcCjbTr1nwRK3hB4tc1b5BTDj9w== +victory-brush-container@37.3.6: + version "37.3.6" + resolved "https://registry.yarnpkg.com/victory-brush-container/-/victory-brush-container-37.3.6.tgz#f0316381620770233a82c7b118107e3c2237d978" + integrity sha512-LfZ2CgX1cYAqCtYxcSB68OfZS2v0T2VLXoEArd0lCXfRBY1Gya7GacCUcuo7GoK9XOXeslx7S/U95aVutt1VLg== dependencies: lodash "^4.17.19" react-fast-compare "^3.2.0" - victory-core "37.3.2" + victory-core "37.3.6" -victory-brush-line@37.3.2: - version "37.3.2" - resolved "https://registry.yarnpkg.com/victory-brush-line/-/victory-brush-line-37.3.2.tgz#4d28d68b5046d8186d666f23189f573863275eeb" - integrity sha512-RwfHV/Kp5Nd6KtAXDH0eX/9Z8HCrRUnqtR88ww/n99c9Ty19aCYWYO2PxwxfVaza0Xr9pKzCzP5U4jauTUdn8w== +victory-brush-line@37.3.6: + version "37.3.6" + resolved "https://registry.yarnpkg.com/victory-brush-line/-/victory-brush-line-37.3.6.tgz#eb6317c61a13fda5036ab9f6c32b3e6946d42d32" + integrity sha512-zsZJfF1fUj4F7mUoIMV+h73qoTClPA4bKM1terlYrDBD8l/c/f0KBbEotu3E1X+n4QMmDRruswaB/YUdqK5QLA== dependencies: lodash "^4.17.19" react-fast-compare "^3.2.0" - victory-core "37.3.2" + victory-core "37.3.6" -victory-candlestick@37.3.2: - version "37.3.2" - resolved "https://registry.yarnpkg.com/victory-candlestick/-/victory-candlestick-37.3.2.tgz#807b7041e780fa33c378527c1b662df411565d97" - integrity sha512-PDtkdQJ0lcIqQdr0FWxqg8P7R00RhZGTXgx0reTKCrfjFV/gHbu+ymgLOdA3qB5seXEfO+9wmBOKo08vOgkMJg== +victory-candlestick@37.3.6: + version "37.3.6" + resolved "https://registry.yarnpkg.com/victory-candlestick/-/victory-candlestick-37.3.6.tgz#f11ccee29e5c236f274ba569751e4c27a5754dc6" + integrity sha512-h/mOmkCrsWrirn4dFnpLxJPXpxT+uHxuYxnXGrAyH+YUOrVj3iKaDJlEiVlz5vy30syE5j5hzTQCMsZ/hzHNdg== dependencies: lodash "^4.17.19" - victory-core "37.3.2" + victory-core "37.3.6" -victory-canvas@37.3.2: - version "37.3.2" - resolved "https://registry.yarnpkg.com/victory-canvas/-/victory-canvas-37.3.2.tgz#528879107a29acd13f05d2711dabbaec2f316bba" - integrity sha512-3v6w8Y6YD8qWPJpP5LOutIx5Ft/kI90phVbMaqojDiT7qrWziLv7dCmPE2KI74pi5x8FAuNr+PCo7Iil3m4KbQ== +victory-canvas@37.3.6: + version "37.3.6" + resolved "https://registry.yarnpkg.com/victory-canvas/-/victory-canvas-37.3.6.tgz#67aedf6592641649f5b00629edb523af92ba886e" + integrity sha512-1CD4S0uZ92sUGGSIEQferEfSqd/z9EXw9G6zkzPIoJeTKFshpfqCjUkNRx9Iu9Upxt3fUpId8Qwl1YfchmbrFg== dependencies: lodash "^4.17.19" - victory-bar "37.3.2" - victory-core "37.3.2" + victory-bar "37.3.6" + victory-core "37.3.6" -victory-chart@37.3.2: - version "37.3.2" - resolved "https://registry.yarnpkg.com/victory-chart/-/victory-chart-37.3.2.tgz#87341269386f4c53ce2ac012d617bde31ca9f59b" - integrity sha512-ksb3hEytkSVfR654rA/Uo9CeuWNVpH49F3BiUash69nwD+TkAr7lelRo9WLF7oQOVRHHwGCsiGiGrsjT4ObhmA== +victory-chart@37.3.6: + version "37.3.6" + resolved "https://registry.yarnpkg.com/victory-chart/-/victory-chart-37.3.6.tgz#66d67fbbf810f14e9873b19d8e067b23d85a139b" + integrity sha512-IkPo/W4AJ7bPu902TGER09OseR9ODm+FQAKfOBw4JsdEhZZ7BiG9zgd/25+x0r5EsTLu81CYGQVkBa+ZazcOlA== dependencies: lodash "^4.17.19" react-fast-compare "^3.2.0" - victory-axis "37.3.2" - victory-core "37.3.2" - victory-polar-axis "37.3.2" - victory-shared-events "37.3.2" + victory-axis "37.3.6" + victory-core "37.3.6" + victory-polar-axis "37.3.6" + victory-shared-events "37.3.6" -victory-core@37.3.2: - version "37.3.2" - resolved "https://registry.yarnpkg.com/victory-core/-/victory-core-37.3.2.tgz#459165c78693f8c765bf647a70f1dec41811d220" - integrity sha512-ez/QW9OGltj0uo9EzsRrGEu/hS49dXoraQKblQJO4PEUkDZclV3Gy3CJ2cRW2qBM3ljTsVITiQvKt3urVj+RDw== +victory-core@37.3.6: + version "37.3.6" + resolved "https://registry.yarnpkg.com/victory-core/-/victory-core-37.3.6.tgz#716c9cc2e6ff227692532db31aa14590be78ff7e" + integrity sha512-aFgO6KokxPbUCPznZP5UPhOdI22pMuwDXKDt6eoQOnkVim66Ia+K95TQar2nwVKGYV5j26aKVf/n9blwphGJRw== dependencies: lodash "^4.17.21" react-fast-compare "^3.2.0" - victory-vendor "37.3.2" + victory-vendor "37.3.6" -victory-create-container@37.3.2: - version "37.3.2" - resolved "https://registry.yarnpkg.com/victory-create-container/-/victory-create-container-37.3.2.tgz#8a5b6f7e67fa0ef9c7f9a5263607e60df40200b1" - integrity sha512-+hEHeTzeANX1knGOqbeykN1mPUy+zQ8A6LLUSiF8dER+DO2IcF/521LHjBSCRcyjUDik75shfhMc//wryxGBmQ== +victory-create-container@37.3.6: + version "37.3.6" + resolved "https://registry.yarnpkg.com/victory-create-container/-/victory-create-container-37.3.6.tgz#80b1d3f0c5bac213e3f0f9dd06014a5c9a0bee3b" + integrity sha512-Uf5bFQvqUsXCjqpvBW4LhrdrHkM6dBqxYgub6FCsBb86f84xZQ3vY7jFkg/JfvF0oGKMoWXYYrYLC1sk+fcWVA== dependencies: lodash "^4.17.19" - victory-brush-container "37.3.2" - victory-core "37.3.2" - victory-cursor-container "37.3.2" - victory-selection-container "37.3.2" - victory-voronoi-container "37.3.2" - victory-zoom-container "37.3.2" - -victory-cursor-container@37.3.2: - version "37.3.2" - resolved "https://registry.yarnpkg.com/victory-cursor-container/-/victory-cursor-container-37.3.2.tgz#a8166aba32ac6686299a7dee9fbbca90cf5ce461" - integrity sha512-PpBIexoxV/D9S0JTwgI/AmGC5PEjVFbBg+dxbr0iBskXtIckIdXYg11Tejk4iatvUIuvXrJALMjH+y4Jhl+bGw== + victory-brush-container "37.3.6" + victory-core "37.3.6" + victory-cursor-container "37.3.6" + victory-selection-container "37.3.6" + victory-voronoi-container "37.3.6" + victory-zoom-container "37.3.6" + +victory-cursor-container@37.3.6: + version "37.3.6" + resolved "https://registry.yarnpkg.com/victory-cursor-container/-/victory-cursor-container-37.3.6.tgz#c84dbf1bda427f28a3fc04fb3afc69df5699df7c" + integrity sha512-+Oiw57d5nE+iq8As8RvepknzmNtKq1Gsc50u1X3IRd4jXtX8zqZrgXGlVZ+BP/tkLsWnGYVjKulwKBf2oaEUuw== dependencies: lodash "^4.17.19" - victory-core "37.3.2" + victory-core "37.3.6" -victory-errorbar@37.3.2: - version "37.3.2" - resolved "https://registry.yarnpkg.com/victory-errorbar/-/victory-errorbar-37.3.2.tgz#4a4dcb41933b941c6b2c40125e3c7c886ce445cd" - integrity sha512-QvXJ+8B1DGwYewZSAUKdO6FB/AgSp1tj2iH9yQGJZ6Zww2ZxFjpvehrM9BD+PPrxRxyJXxSojP/+qBlqa+X1vA== +victory-errorbar@37.3.6: + version "37.3.6" + resolved "https://registry.yarnpkg.com/victory-errorbar/-/victory-errorbar-37.3.6.tgz#5b00d63b5cdaaac9e5b06466589beef39fe34ff3" + integrity sha512-WGAv/qizOlfmwKv+Yfxr4q6pDgTfloNQwi3Z3M0h8povjMZt74tHYkvi/TASSRYr3zv5kjUqUJ28qAyGMWwryQ== dependencies: lodash "^4.17.19" - victory-core "37.3.2" + victory-core "37.3.6" -victory-group@37.3.2: - version "37.3.2" - resolved "https://registry.yarnpkg.com/victory-group/-/victory-group-37.3.2.tgz#58ef8811c527d0a9f4eb90fb7f8160ecfed1be4f" - integrity sha512-TB0ClboJsCR+ATIwUMgSdkdmau4XUiVaZtc5vehZYB7j50lv3SUtltc4qpztOrilsp1osoKHgUHpj7J8yhRtMw== +victory-group@37.3.6: + version "37.3.6" + resolved "https://registry.yarnpkg.com/victory-group/-/victory-group-37.3.6.tgz#d4b086d33e3a5a71476062d2b7d76edd571caefc" + integrity sha512-kgy/Azl5BxwlJAV0KDPGypv35TMrOD1J2ZxnJW2Wyyq+e8i0GGBIv5MoBzou64BRsDlS9V0CYRIjnkHgrBpB5w== dependencies: lodash "^4.17.19" react-fast-compare "^3.2.0" - victory-core "37.3.2" - victory-shared-events "37.3.2" + victory-core "37.3.6" + victory-shared-events "37.3.6" -victory-histogram@37.3.2: - version "37.3.2" - resolved "https://registry.yarnpkg.com/victory-histogram/-/victory-histogram-37.3.2.tgz#4e1efb0e3097dcdc610848fbfd7e8f6fff078278" - integrity sha512-8HOITjHvaZijN3bwHIGZyPg1NsAHr7J08ZwGWc8njZ9utSQmI3U48AhmrPBHyTsfKNRJbNph8THSwpG6mXv14Q== +victory-histogram@37.3.6: + version "37.3.6" + resolved "https://registry.yarnpkg.com/victory-histogram/-/victory-histogram-37.3.6.tgz#6173c3df14bd6561156a2f9fbc99c12cd5224297" + integrity sha512-K4d43MpXHYnGCLEMzfRpJ+lCRRDKALPi/juxfMGVzBPzSMgjC8h9x6hKdxaejiTd/E04UdzNO7J24plL3Uz8rA== dependencies: lodash "^4.17.19" react-fast-compare "^3.2.0" - victory-bar "37.3.2" - victory-core "37.3.2" - victory-vendor "37.3.2" + victory-bar "37.3.6" + victory-core "37.3.6" + victory-vendor "37.3.6" -victory-legend@37.3.2: - version "37.3.2" - resolved "https://registry.yarnpkg.com/victory-legend/-/victory-legend-37.3.2.tgz#b01ed9ad81575a1ad257b589be44681c145fd219" - integrity sha512-NrXnStmdqWtfA2AkwOVVWGwXswN9C9TNnmUKzXY52BMWR4OQfIaeO0etRV3vSrv8yUD/rt+rm0UOAAI7pSb1Tw== +victory-legend@37.3.6: + version "37.3.6" + resolved "https://registry.yarnpkg.com/victory-legend/-/victory-legend-37.3.6.tgz#95a3d16b80309aad27fb7d802418d9349be98ab4" + integrity sha512-vRRrhj3/ENqKVLdaBMzEmR83N6BOjox1bthYT1eJjN2H5SIK35bxn30IkiV/Pz3y627EqZe4TAWaxc0jiJlCiA== dependencies: lodash "^4.17.19" - victory-core "37.3.2" + victory-core "37.3.6" -victory-line@37.3.2: - version "37.3.2" - resolved "https://registry.yarnpkg.com/victory-line/-/victory-line-37.3.2.tgz#a11aa769e44c9c027352a0b24a619c6b2a0b2ad8" - integrity sha512-ZA6A3te2A+egmSPG7jTRu/ZetRE66ggUix11yPaf+7DMZSnRw9f6KXduiUV+fz1otwefJ9pL6vMpXo2SIt9jFQ== +victory-line@37.3.6: + version "37.3.6" + resolved "https://registry.yarnpkg.com/victory-line/-/victory-line-37.3.6.tgz#4228144e07362e8b6ccc0b1fbd45e84e95d32537" + integrity sha512-Ke817uf/qFbN9jU7Dba7CrcHXYO5wAZuKKnyeHJmLDeQeFST0773xejnIuC+dBgZipjFr4KIbSd+VcUafFNE1g== dependencies: lodash "^4.17.19" - victory-core "37.3.2" - victory-vendor "37.3.2" + victory-core "37.3.6" + victory-vendor "37.3.6" -victory-pie@37.3.2: - version "37.3.2" - resolved "https://registry.yarnpkg.com/victory-pie/-/victory-pie-37.3.2.tgz#27e4da2b6e92adb2a119091e97912129e6d17dc4" - integrity sha512-et7Z9d1paoqXdSL8yNpdTadhhhpPgQTrqO5n7vISNJsjOmt0FTLe4/VeKIyugIhERirVkU5Va0CMlMInbNIysw== +victory-pie@37.3.6: + version "37.3.6" + resolved "https://registry.yarnpkg.com/victory-pie/-/victory-pie-37.3.6.tgz#17a4ca211c1694e6eb922d042a49ec7ed07a81a2" + integrity sha512-tvdgAZ/HQWlo3KDDe0XAVbizHuaNMbgkkiF7zfA7Ww+3bHSs+0P9dsDtK2xP365D8gBCOv8pWmuzvKRhzNbqeA== dependencies: lodash "^4.17.19" - victory-core "37.3.2" - victory-vendor "37.3.2" + victory-core "37.3.6" + victory-vendor "37.3.6" -victory-polar-axis@37.3.2: - version "37.3.2" - resolved "https://registry.yarnpkg.com/victory-polar-axis/-/victory-polar-axis-37.3.2.tgz#0bd12aaac235274defa0ec81210d8caaa7f5cd5c" - integrity sha512-qxH4ev+0IOy8P1xQJc8OQ+GtnQtahJOJzmIy1cNherPHg3H9AY+GIlK7ApgKW8/+ZNt5u0XZvRhvjulZG2Gwgw== +victory-polar-axis@37.3.6: + version "37.3.6" + resolved "https://registry.yarnpkg.com/victory-polar-axis/-/victory-polar-axis-37.3.6.tgz#cf1d2a4bf4c7784fb83afdf68cc779367d9e96e5" + integrity sha512-RpFsCkzHezJq5P+C/wtVdjEHX25JIFsSgs6qYSnfr/hayaFbWgK5HhRFpriQm5hg61cx47WxAOLyHvzf0nasvw== dependencies: lodash "^4.17.19" - victory-core "37.3.2" + victory-core "37.3.6" -victory-scatter@37.3.2: - version "37.3.2" - resolved "https://registry.yarnpkg.com/victory-scatter/-/victory-scatter-37.3.2.tgz#8a941f971c6202ae77ac8e1ef09384ca2bb0e384" - integrity sha512-mFFIvFC5U+AX1uAgl19HI21L4Mf1rt2YlnjjzPFkJcgy0a2Fv6otjUd4qeqA6pAkVU4e/Dqj8ZZPV2PtfXNeyQ== +victory-scatter@37.3.6: + version "37.3.6" + resolved "https://registry.yarnpkg.com/victory-scatter/-/victory-scatter-37.3.6.tgz#226e6e4b8242bc3af1c7207da970d02886b94dfd" + integrity sha512-fp95zMTPXgW1cmTowzDXhn+KxePMVDrzU0lotsHQMdBV7eB+ioXdu9hORlx4VHmMYg2ihsGwRTF+VAZ7rGxphA== dependencies: lodash "^4.17.19" - victory-core "37.3.2" + victory-core "37.3.6" -victory-selection-container@37.3.2: - version "37.3.2" - resolved "https://registry.yarnpkg.com/victory-selection-container/-/victory-selection-container-37.3.2.tgz#2ead32f01e6fe431be09e03ffa74d51516f0bc5f" - integrity sha512-g/26Xo4Rxco91GPjZ4jgIQDm95AT4zdG2RqXdQTWEgLbWi+Z/Tk1nodhr1jVjwIjZ6RNMeXcAtcVhFjIPLsWzQ== +victory-selection-container@37.3.6: + version "37.3.6" + resolved "https://registry.yarnpkg.com/victory-selection-container/-/victory-selection-container-37.3.6.tgz#b50e04ff29da1bb35a60f8a0aed1d2134f08b045" + integrity sha512-gd3qODDlBtLEJM7+2jCXk2YcLBUmIpYEEHswytMhwc6zihxXipGBUHRulhLj/I05mKay2gaOAg5ewiJHd4Awgw== dependencies: lodash "^4.17.19" - victory-core "37.3.2" + victory-core "37.3.6" -victory-shared-events@37.3.2: - version "37.3.2" - resolved "https://registry.yarnpkg.com/victory-shared-events/-/victory-shared-events-37.3.2.tgz#9bef48abef842a534c87b54c17c6bb629729c466" - integrity sha512-L/p/JzbP7O0x/DrWZicVByyiq0YMsDsvc2uinUCoI+XMAXbp7flxC2lbd7YBq41Sg13BHoPBiEoCXH4nKmo8hw== +victory-shared-events@37.3.6: + version "37.3.6" + resolved "https://registry.yarnpkg.com/victory-shared-events/-/victory-shared-events-37.3.6.tgz#7b04e1c480a0ccbaac3ca261c2f1adf38638cfad" + integrity sha512-ygrbOtzLUTbtKebacZKyQRekhSAROnAvMkVI/PKsAGsz0ClY9P7qDEJG7eTUUygjO6ax0tI6WNE6JogQzeD1gw== dependencies: json-stringify-safe "^5.0.1" lodash "^4.17.19" react-fast-compare "^3.2.0" - victory-core "37.3.2" + victory-core "37.3.6" -victory-stack@37.3.2: - version "37.3.2" - resolved "https://registry.yarnpkg.com/victory-stack/-/victory-stack-37.3.2.tgz#9a15fa14766a3dcce4171a040b0d4d1b5381445b" - integrity sha512-lD8EyzYKTPyWam7h++6VfPxOw4Soj5kYjHqPlbjFjdxoGWYquHrcbHhJ4ra1p+Il9k6iDhy0lIU2DbLa2Ff0wA== +victory-stack@37.3.6: + version "37.3.6" + resolved "https://registry.yarnpkg.com/victory-stack/-/victory-stack-37.3.6.tgz#7a242f863a6a92bb8499cbd5f2f45aa73069bdbd" + integrity sha512-ldod04RdqGJGH5p5eWXCofdTkbhZqIp3iwW7NpxSbMDLs8zPQIVvDFVtuJgMwQiC5vnIpbhMmxVeFbr8m64ZKA== dependencies: lodash "^4.17.19" react-fast-compare "^3.2.0" - victory-core "37.3.2" - victory-shared-events "37.3.2" + victory-core "37.3.6" + victory-shared-events "37.3.6" -victory-tooltip@37.3.2: - version "37.3.2" - resolved "https://registry.yarnpkg.com/victory-tooltip/-/victory-tooltip-37.3.2.tgz#2887b44cc28d8ab64a283bf06cfa306703530bac" - integrity sha512-UsEIGY5lqf3pOGr3ikB7oHw+QZtS+Qui/vqLPhoAL1YJ2bQ0WkIhVx2jLTlyCLIrj6aCvyvdePppApFF43E7Zg== +victory-tooltip@37.3.6: + version "37.3.6" + resolved "https://registry.yarnpkg.com/victory-tooltip/-/victory-tooltip-37.3.6.tgz#ef1ef2d4d221e6ce14ee989d68898c99ef46d927" + integrity sha512-vqaJS9noauOqDDBBAV9Ln9duOY/i17h1DCfCPAqhwPFyvFbwKvAub9zPTeYWAm/14VvWX5O/0yekFCVbcC7hjg== dependencies: lodash "^4.17.19" - victory-core "37.3.2" + victory-core "37.3.6" -victory-vendor@37.3.2: - version "37.3.2" - resolved "https://registry.yarnpkg.com/victory-vendor/-/victory-vendor-37.3.2.tgz#75815955dc3a79b8af3022fa1e449431882b1e40" - integrity sha512-2N8j0DIHocffTo2UeZbcd8fcB5+CrQq2KMOSbyTIzYuCVHP10XoS0R/ln7YOU5WoNS6/6L3GEdFWBaGYAAMErQ== +victory-vendor@37.3.6: + version "37.3.6" + resolved "https://registry.yarnpkg.com/victory-vendor/-/victory-vendor-37.3.6.tgz#401ac4b029a0b3d33e0cba8e8a1d765c487254da" + integrity sha512-SbPDPdDBYp+5MJHhBCAyI7wKM3d5ivekigc2Dk2s7pgbZ9wIgIBYGVw4zGHBml/qTFbexrofXW6Gu4noGxrOwQ== dependencies: "@types/d3-array" "^3.0.3" "@types/d3-ease" "^3.0.0" @@ -7438,66 +7438,66 @@ victory-vendor@37.3.2: d3-time "^3.0.0" d3-timer "^3.0.1" -victory-voronoi-container@37.3.2: - version "37.3.2" - resolved "https://registry.yarnpkg.com/victory-voronoi-container/-/victory-voronoi-container-37.3.2.tgz#c83aec6042fb0c4161c4736b306c4071f1fa2a1e" - integrity sha512-Y5NiUcVa6SlAMl5yAI5pRRBRCUCDHJHYeUMCiccTOjA+G2B2pUJkJ5NKeFzMLt7hW1LQv0nnRs9ywpMdViF8nQ== +victory-voronoi-container@37.3.6: + version "37.3.6" + resolved "https://registry.yarnpkg.com/victory-voronoi-container/-/victory-voronoi-container-37.3.6.tgz#19073ea19035fb0a9d5a5cfc34011a60e1069816" + integrity sha512-qAAG0rMuK7A4EoJ4cyUk5wNdOW+HuCXNKPOko+hYK6wWOYXJvFhiglYyA85a695YyAXECc6JyJS/crm4IOEFag== dependencies: delaunay-find "0.0.6" lodash "^4.17.19" react-fast-compare "^3.2.0" - victory-core "37.3.2" - victory-tooltip "37.3.2" + victory-core "37.3.6" + victory-tooltip "37.3.6" -victory-voronoi@37.3.2: - version "37.3.2" - resolved "https://registry.yarnpkg.com/victory-voronoi/-/victory-voronoi-37.3.2.tgz#e6ba63c367d18bb953d1dee46a78c8375ff44ab2" - integrity sha512-Bfei4AgrFXBZeS7F9A9SOpUlhYLWGmicVvwrvRqWyCj01IMtJt/rk4fc1lGbcL0XE8kEJtCZ+fHE1ZyFvTbv2A== +victory-voronoi@37.3.6: + version "37.3.6" + resolved "https://registry.yarnpkg.com/victory-voronoi/-/victory-voronoi-37.3.6.tgz#83a59b2880094cc122f739a5ffb4be0161b5f115" + integrity sha512-Q+1FWHp8IAbmDL9pGWS0y0N4Cb5qmD9OOgxoxCfIDsLlhGvd6LddhRoknWsN7WnreaK+XiwjSfQkdMTCZ4hdhQ== dependencies: d3-voronoi "^1.1.4" lodash "^4.17.19" - victory-core "37.3.2" + victory-core "37.3.6" -victory-zoom-container@37.3.2: - version "37.3.2" - resolved "https://registry.yarnpkg.com/victory-zoom-container/-/victory-zoom-container-37.3.2.tgz#ca6471a7d4f1c9eff4afd49c2461a469d47c8ea1" - integrity sha512-znF3L6+LpQ8hN+7aW8RO+dsHPl1XsMAvf52IKc0OAXZzukIwx1+yW2/OLtHU7G0DzAl3Cxzt5BNd7jFLVXWQJw== +victory-zoom-container@37.3.6: + version "37.3.6" + resolved "https://registry.yarnpkg.com/victory-zoom-container/-/victory-zoom-container-37.3.6.tgz#49a43b3a086d030b333265758e234babb01066f5" + integrity sha512-AGL+k20mI44OL5b0VgIxlmnNSefIoFmbbim5NraPmIxbtns9qQW/56ivIncJcYomBungIx99gUpsEpcQaMNHgQ== dependencies: lodash "^4.17.19" - victory-core "37.3.2" - -victory@37.3.2: - version "37.3.2" - resolved "https://registry.yarnpkg.com/victory/-/victory-37.3.2.tgz#39e1980070208a07e244df7740a242ac76aa8a74" - integrity sha512-nGoJVcsOBREUpjjiUJiJsor/PSgFFyxp8BfpOLP5NWxhlLD7sW/Nt7mG3Bd7TjSJeKc4FmwcXjCnwn7ltESkOw== - dependencies: - victory-area "37.3.2" - victory-axis "37.3.2" - victory-bar "37.3.2" - victory-box-plot "37.3.2" - victory-brush-container "37.3.2" - victory-brush-line "37.3.2" - victory-candlestick "37.3.2" - victory-canvas "37.3.2" - victory-chart "37.3.2" - victory-core "37.3.2" - victory-create-container "37.3.2" - victory-cursor-container "37.3.2" - victory-errorbar "37.3.2" - victory-group "37.3.2" - victory-histogram "37.3.2" - victory-legend "37.3.2" - victory-line "37.3.2" - victory-pie "37.3.2" - victory-polar-axis "37.3.2" - victory-scatter "37.3.2" - victory-selection-container "37.3.2" - victory-shared-events "37.3.2" - victory-stack "37.3.2" - victory-tooltip "37.3.2" - victory-voronoi "37.3.2" - victory-voronoi-container "37.3.2" - victory-zoom-container "37.3.2" + victory-core "37.3.6" + +victory@37.3.6: + version "37.3.6" + resolved "https://registry.yarnpkg.com/victory/-/victory-37.3.6.tgz#9506632c1306f8d221e50e60259781e98a2a5c2f" + integrity sha512-CZ1vjvra0R1U3T2dMI4EsjI8Ng+JmQ2ox/EweSzjkTnHfW/Vn5ylryadawDiYjDMcBvABjO3uODsIlSEm4d/Sw== + dependencies: + victory-area "37.3.6" + victory-axis "37.3.6" + victory-bar "37.3.6" + victory-box-plot "37.3.6" + victory-brush-container "37.3.6" + victory-brush-line "37.3.6" + victory-candlestick "37.3.6" + victory-canvas "37.3.6" + victory-chart "37.3.6" + victory-core "37.3.6" + victory-create-container "37.3.6" + victory-cursor-container "37.3.6" + victory-errorbar "37.3.6" + victory-group "37.3.6" + victory-histogram "37.3.6" + victory-legend "37.3.6" + victory-line "37.3.6" + victory-pie "37.3.6" + victory-polar-axis "37.3.6" + victory-scatter "37.3.6" + victory-selection-container "37.3.6" + victory-shared-events "37.3.6" + victory-stack "37.3.6" + victory-tooltip "37.3.6" + victory-voronoi "37.3.6" + victory-voronoi-container "37.3.6" + victory-zoom-container "37.3.6" vite-node@3.0.4: version "3.0.4"