From 532f4f9d09dda5372b215ff9c2f080d3bdc1153f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 16 Sep 2024 10:22:18 +0000 Subject: [PATCH 01/17] (chore): Bump the lint-dependencies group with 2 updates Bumps the lint-dependencies group with 2 updates: [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) and [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react). Updates `eslint-plugin-jsdoc` from 50.2.2 to 50.2.3 - [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases) - [Changelog](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/.releaserc) - [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v50.2.2...v50.2.3) Updates `eslint-plugin-react` from 7.36.0 to 7.36.1 - [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases) - [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md) - [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.36.0...v7.36.1) --- updated-dependencies: - dependency-name: eslint-plugin-jsdoc dependency-type: direct:development update-type: version-update:semver-patch dependency-group: lint-dependencies - dependency-name: eslint-plugin-react dependency-type: direct:development update-type: version-update:semver-patch dependency-group: lint-dependencies ... Signed-off-by: dependabot[bot] --- package-lock.json | 17 ++++++++--------- package.json | 4 ++-- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9079b5915..17147606b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -70,11 +70,11 @@ "eslint": "^9.10.0", "eslint-plugin-formatjs": "^4.13.3", "eslint-plugin-jest-dom": "^5.4.0", - "eslint-plugin-jsdoc": "^50.2.2", + "eslint-plugin-jsdoc": "^50.2.3", "eslint-plugin-markdown": "^5.1.0", "eslint-plugin-patternfly-react": "^5.4.0", "eslint-plugin-prettier": "^5.2.1", - "eslint-plugin-react": "^7.36.0", + "eslint-plugin-react": "^7.36.1", "eslint-plugin-simple-import-sort": "^12.1.1", "eslint-plugin-sort-keys-fix": "^1.1.2", "eslint-plugin-testing-library": "^6.3.0", @@ -8566,9 +8566,9 @@ "dev": true }, "node_modules/eslint-plugin-jsdoc": { - "version": "50.2.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-50.2.2.tgz", - "integrity": "sha512-i0ZMWA199DG7sjxlzXn5AeYZxpRfMJjDPUl7lL9eJJX8TPRoIaxJU4ys/joP5faM5AXE1eqW/dslCj3uj4Nqpg==", + "version": "50.2.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-50.2.3.tgz", + "integrity": "sha512-aNh/dz3wSkyo53y2KWDCrA8fDuXDMtMVflcbesd8AFPgcF8ugOv9mJxC7qKB95R96nzCB91iEwU7MMznh/7okQ==", "dev": true, "dependencies": { "@es-joy/jsdoccomment": "~0.48.0", @@ -8903,11 +8903,10 @@ } }, "node_modules/eslint-plugin-react": { - "version": "7.36.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.36.0.tgz", - "integrity": "sha512-c+RvVxBH0JE2kHt/8p043nPPhIohSnyQOZApIzGJqM2tXnjEzcZzyKIAg72gymLtuwuKfgGxW2H2aqTJqRgTfQ==", + "version": "7.36.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.36.1.tgz", + "integrity": "sha512-/qwbqNXZoq+VP30s1d4Nc1C5GTxjJQjk4Jzs4Wq2qzxFM7dSmuG2UkIjg2USMLh3A/aVcUNrK7v0J5U1XEGGwA==", "dev": true, - "license": "MIT", "dependencies": { "array-includes": "^3.1.8", "array.prototype.findlast": "^1.2.5", diff --git a/package.json b/package.json index b02423e48..6586a17c5 100644 --- a/package.json +++ b/package.json @@ -111,11 +111,11 @@ "eslint": "^9.10.0", "eslint-plugin-formatjs": "^4.13.3", "eslint-plugin-jest-dom": "^5.4.0", - "eslint-plugin-jsdoc": "^50.2.2", + "eslint-plugin-jsdoc": "^50.2.3", "eslint-plugin-markdown": "^5.1.0", "eslint-plugin-patternfly-react": "^5.4.0", "eslint-plugin-prettier": "^5.2.1", - "eslint-plugin-react": "^7.36.0", + "eslint-plugin-react": "^7.36.1", "eslint-plugin-simple-import-sort": "^12.1.1", "eslint-plugin-sort-keys-fix": "^1.1.2", "eslint-plugin-testing-library": "^6.3.0", From 24c22ce5786446782bf506a14e5877b935cdce36 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 16 Sep 2024 10:24:23 +0000 Subject: [PATCH 02/17] (chore): Bump the ci-dependencies group with 2 updates Bumps the ci-dependencies group with 2 updates: [date-fns](https://github.com/date-fns/date-fns) and [@types/qs](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/qs). Updates `date-fns` from 3.6.0 to 4.0.0 - [Release notes](https://github.com/date-fns/date-fns/releases) - [Changelog](https://github.com/date-fns/date-fns/blob/main/CHANGELOG.md) - [Commits](https://github.com/date-fns/date-fns/commits) Updates `@types/qs` from 6.9.15 to 6.9.16 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/qs) --- updated-dependencies: - dependency-name: date-fns dependency-type: direct:production update-type: version-update:semver-major dependency-group: ci-dependencies - dependency-name: "@types/qs" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: ci-dependencies ... Signed-off-by: dependabot[bot] --- package-lock.json | 16 ++++++++-------- package.json | 4 ++-- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9079b5915..71ddd76fe 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,7 +25,7 @@ "@reduxjs/toolkit": "^2.2.7", "@unleash/proxy-client-react": "^4.3.1", "axios": "^1.7.7", - "date-fns": "^3.6.0", + "date-fns": "^4.0.0", "js-file-download": "^0.4.12", "lodash": "^4.17.21", "qs": "^6.13.0", @@ -58,7 +58,7 @@ "@testing-library/react": "^16.0.1", "@testing-library/user-event": "^14.5.2", "@types/jest": "^29.5.12", - "@types/qs": "^6.9.15", + "@types/qs": "^6.9.16", "@types/react": "^18.3.5", "@types/react-dom": "^18.3.0", "@types/react-redux": "^7.1.33", @@ -3921,9 +3921,9 @@ "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==" }, "node_modules/@types/qs": { - "version": "6.9.15", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz", - "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==", + "version": "6.9.16", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.16.tgz", + "integrity": "sha512-7i+zxXdPD0T4cKDuxCUXJ4wHcsJLwENa6Z3dCu8cfCK743OGy5Nu1RmAGqDPsoTDINVEcdXKRvR/zre+P2Ku1A==", "dev": true }, "node_modules/@types/range-parser": { @@ -6996,9 +6996,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.0.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.0.0.tgz", + "integrity": "sha512-6K33+I8fQ5otvHgLIvKK1xmMbLAh0pduyrx7dwMXKiGYeoWhmk6M3Zoak9n7bXHMJQlHq1yqmdGy1QxKddJjUA==", "funding": { "type": "github", "url": "https://github.com/sponsors/kossnocorp" diff --git a/package.json b/package.json index b02423e48..d3fe45c8d 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ "@reduxjs/toolkit": "^2.2.7", "@unleash/proxy-client-react": "^4.3.1", "axios": "^1.7.7", - "date-fns": "^3.6.0", + "date-fns": "^4.0.0", "js-file-download": "^0.4.12", "lodash": "^4.17.21", "qs": "^6.13.0", @@ -99,7 +99,7 @@ "@testing-library/react": "^16.0.1", "@testing-library/user-event": "^14.5.2", "@types/jest": "^29.5.12", - "@types/qs": "^6.9.15", + "@types/qs": "^6.9.16", "@types/react": "^18.3.5", "@types/react-dom": "^18.3.0", "@types/react-redux": "^7.1.33", From 400911c937df9d949fbc251dab848216151e0394 Mon Sep 17 00:00:00 2001 From: Dan Labrecque Date: Mon, 16 Sep 2024 15:18:47 -0400 Subject: [PATCH 03/17] Refactor empty state for when there is no source status --- src/routes/components/page/noData/noData.styles.ts | 9 --------- src/routes/components/page/noData/noDataState.tsx | 5 +---- .../providerDetails/providerDetails.styles.ts | 5 +++++ .../components/providerDetails/providerDetails.tsx | 14 +++++++++++++- .../providerDetails/providerDetailsTable.tsx | 12 ++++-------- 5 files changed, 23 insertions(+), 22 deletions(-) delete mode 100644 src/routes/components/page/noData/noData.styles.ts diff --git a/src/routes/components/page/noData/noData.styles.ts b/src/routes/components/page/noData/noData.styles.ts deleted file mode 100644 index 1cb3c59b6..000000000 --- a/src/routes/components/page/noData/noData.styles.ts +++ /dev/null @@ -1,9 +0,0 @@ -import global_spacer_xl from '@patternfly/react-tokens/dist/js/global_spacer_xl'; -import type React from 'react'; - -export const styles = { - details: { - marginBottom: global_spacer_xl.value, - marginTop: global_spacer_xl.value, - }, -} as { [className: string]: React.CSSProperties }; diff --git a/src/routes/components/page/noData/noDataState.tsx b/src/routes/components/page/noData/noDataState.tsx index adddbfd57..171528301 100644 --- a/src/routes/components/page/noData/noDataState.tsx +++ b/src/routes/components/page/noData/noDataState.tsx @@ -1,5 +1,4 @@ import { - Bullseye, Button, EmptyState, EmptyStateBody, @@ -14,8 +13,6 @@ import React from 'react'; import type { WrappedComponentProps } from 'react-intl'; import { injectIntl } from 'react-intl'; -import { styles } from './noData.styles'; - interface NoDataStateOwnProps { detailsComponent?: React.ReactNode; showReload?: boolean; @@ -36,7 +33,7 @@ class NoDataStateBase extends React.Component { /> {intl.formatMessage(messages.noDataStateDesc)} - {detailsComponent && {detailsComponent}} + {detailsComponent && detailsComponent} {intl.formatMessage(messages.noDataStateRefreshDesc)} diff --git a/src/routes/details/components/providerDetails/providerDetails.styles.ts b/src/routes/details/components/providerDetails/providerDetails.styles.ts index baedf2d15..944909be1 100644 --- a/src/routes/details/components/providerDetails/providerDetails.styles.ts +++ b/src/routes/details/components/providerDetails/providerDetails.styles.ts @@ -1,5 +1,6 @@ import global_BackgroundColor_light_100 from '@patternfly/react-tokens/dist/js/global_BackgroundColor_light_100'; import global_FontSize_xs from '@patternfly/react-tokens/dist/js/global_FontSize_xs'; +import global_spacer_xl from '@patternfly/react-tokens/dist/js/global_spacer_xl'; import type React from 'react'; export const styles = { @@ -9,4 +10,8 @@ export const styles = { loading: { backgroundColor: global_BackgroundColor_light_100.value, }, + detailsTable: { + marginBottom: global_spacer_xl.value, + marginTop: global_spacer_xl.value, + }, } as { [className: string]: React.CSSProperties }; diff --git a/src/routes/details/components/providerDetails/providerDetails.tsx b/src/routes/details/components/providerDetails/providerDetails.tsx index 5739a9c88..f191acd4b 100644 --- a/src/routes/details/components/providerDetails/providerDetails.tsx +++ b/src/routes/details/components/providerDetails/providerDetails.tsx @@ -1,3 +1,4 @@ +import { Bullseye } from '@patternfly/react-core'; import type { Providers } from 'api/providers'; import { ProviderType } from 'api/providers'; import { getProvidersQuery } from 'api/queries/providersQuery'; @@ -8,6 +9,7 @@ import { useIntl } from 'react-intl'; import { useSelector } from 'react-redux'; import { NotAvailable } from 'routes/components/page/notAvailable'; import { LoadingState } from 'routes/components/state/loadingState'; +import { filterProviders } from 'routes/utils/providers'; import type { RootState } from 'store'; import { FetchStatus } from 'store/common'; import { providersQuery, providersSelectors } from 'store/providers'; @@ -47,7 +49,17 @@ const ProviderDetails: React.FC = ({ providerType }: Provi ); } - return ; + // Filter providers to skip an extra API request + const filteredProviders = filterProviders(providers, providerType)?.data?.filter(data => data.status !== null); + if (filteredProviders.length === 0) { + return; + } + + return ( + + + + ); }; const useMapToProps = (): ProviderDetailsStateProps => { diff --git a/src/routes/details/components/providerDetails/providerDetailsTable.tsx b/src/routes/details/components/providerDetails/providerDetailsTable.tsx index 8f44e93a1..2997dc3dd 100644 --- a/src/routes/details/components/providerDetails/providerDetailsTable.tsx +++ b/src/routes/details/components/providerDetails/providerDetailsTable.tsx @@ -1,16 +1,15 @@ -import type { Providers, ProviderType } from 'api/providers'; +import type { Provider, ProviderType } from 'api/providers'; import messages from 'locales/messages'; import React, { useEffect, useState } from 'react'; import { useIntl } from 'react-intl'; import { DataTable } from 'routes/components/dataTable'; -import { filterProviders } from 'routes/utils/providers'; import { OverallStatus } from './components/overallStatus'; import { SourceLink } from './components/sourceLink'; import { ProviderDetailsModal } from './providerDetailsModal'; interface ProviderDetailsTableOwnProps { - providers?: Providers; + providers?: Provider[]; providerType?: ProviderType; } @@ -26,9 +25,6 @@ const ProviderDetailsTable: React.FC = ({ providers, return; } - // Filter OCP providers to skip an extra API request - const filteredProviders = filterProviders(providers, providerType)?.data?.filter(data => data.status !== null); - const newRows = []; const newColumns = [ { @@ -45,7 +41,7 @@ const ProviderDetailsTable: React.FC = ({ providers, }, ]; - filteredProviders?.map(item => { + providers?.map(item => { // const clusterId = item?.authentication?.credentials?.cluster_id; newRows.push({ @@ -67,7 +63,7 @@ const ProviderDetailsTable: React.FC = ({ providers, initDatum(); }, [providers]); - return ; + return rows.length ? : null; }; export { ProviderDetailsTable }; From d0e69727bc2e484300954914663b58923ed13898 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 16 Sep 2024 20:49:51 +0000 Subject: [PATCH 04/17] (chore): Bump @types/jest in the test-dependencies group Bumps the test-dependencies group with 1 update: [@types/jest](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jest). Updates `@types/jest` from 29.5.12 to 29.5.13 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jest) --- updated-dependencies: - dependency-name: "@types/jest" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: test-dependencies ... Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index beb2e6ce1..109a44be8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -57,7 +57,7 @@ "@testing-library/jest-dom": "^6.5.0", "@testing-library/react": "^16.0.1", "@testing-library/user-event": "^14.5.2", - "@types/jest": "^29.5.12", + "@types/jest": "^29.5.13", "@types/qs": "^6.9.16", "@types/react": "^18.3.5", "@types/react-dom": "^18.3.0", @@ -3789,9 +3789,9 @@ } }, "node_modules/@types/jest": { - "version": "29.5.12", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.12.tgz", - "integrity": "sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==", + "version": "29.5.13", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.13.tgz", + "integrity": "sha512-wd+MVEZCHt23V0/L642O5APvspWply/rGY5BcW4SUETo2UzPU3Z26qr8jC2qxpimI2jjx9h7+2cj2FwIr01bXg==", "dev": true, "dependencies": { "expect": "^29.0.0", diff --git a/package.json b/package.json index 84ae5364f..d1e174feb 100644 --- a/package.json +++ b/package.json @@ -98,7 +98,7 @@ "@testing-library/jest-dom": "^6.5.0", "@testing-library/react": "^16.0.1", "@testing-library/user-event": "^14.5.2", - "@types/jest": "^29.5.12", + "@types/jest": "^29.5.13", "@types/qs": "^6.9.16", "@types/react": "^18.3.5", "@types/react-dom": "^18.3.0", From 661faa52de5c7adcceb1f2b37ff769e3a5aadf54 Mon Sep 17 00:00:00 2001 From: Dan Labrecque Date: Wed, 18 Sep 2024 12:04:01 -0400 Subject: [PATCH 05/17] Dependency updates --- package-lock.json | 652 ++++++++---------- package.json | 23 +- .../historicalCostChart.test.tsx.snap | 48 +- .../historicalTrendChart.test.tsx.snap | 28 +- .../historicalUsageChart.test.tsx.snap | 30 +- .../__snapshots__/trendChart.test.tsx.snap | 18 +- .../__snapshots__/usageChart.test.tsx.snap | 26 +- 7 files changed, 355 insertions(+), 470 deletions(-) diff --git a/package-lock.json b/package-lock.json index 109a44be8..cc47f8fee 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "license": "GNU AGPLv3", "dependencies": { "@patternfly/patternfly": "5.4.0", - "@patternfly/react-charts": "7.4.0", + "@patternfly/react-charts": "7.4.1", "@patternfly/react-component-groups": "^5.2.0", "@patternfly/react-core": "5.4.0", "@patternfly/react-icons": "5.4.0", @@ -25,7 +25,7 @@ "@reduxjs/toolkit": "^2.2.7", "@unleash/proxy-client-react": "^4.3.1", "axios": "^1.7.7", - "date-fns": "^4.0.0", + "date-fns": "^4.1.0", "js-file-download": "^0.4.12", "lodash": "^4.17.21", "qs": "^6.13.0", @@ -37,10 +37,7 @@ "redux": "^5.0.1", "redux-thunk": "^3.1.0", "typesafe-actions": "^5.1.0", - "victory-core": "37.0.2", - "victory-create-container": "37.0.2", - "victory-cursor-container": "37.0.2", - "victory-voronoi-container": "37.0.2" + "victory": "^37.1.1" }, "devDependencies": { "@eslint/compat": "^1.1.1", @@ -50,7 +47,7 @@ "@formatjs/ecma402-abstract": "^2.0.0", "@formatjs/icu-messageformat-parser": "^2.7.8", "@redhat-cloud-services/eslint-config-redhat-cloud-services": "^2.0.4", - "@redhat-cloud-services/frontend-components-config": "^6.2.8", + "@redhat-cloud-services/frontend-components-config": "^6.2.9", "@redhat-cloud-services/tsc-transform-imports": "^1.0.16", "@swc/core": "^1.7.26", "@swc/jest": "^0.2.36", @@ -59,12 +56,12 @@ "@testing-library/user-event": "^14.5.2", "@types/jest": "^29.5.13", "@types/qs": "^6.9.16", - "@types/react": "^18.3.5", + "@types/react": "^18.3.7", "@types/react-dom": "^18.3.0", "@types/react-redux": "^7.1.33", "@types/react-router-dom": "^5.3.3", - "@typescript-eslint/eslint-plugin": "^8.5.0", - "@typescript-eslint/parser": "^8.5.0", + "@typescript-eslint/eslint-plugin": "^8.6.0", + "@typescript-eslint/parser": "^8.6.0", "aphrodite": "^2.4.0", "copy-webpack-plugin": "^12.0.2", "eslint": "^9.10.0", @@ -2173,9 +2170,9 @@ "license": "MIT" }, "node_modules/@patternfly/react-charts": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@patternfly/react-charts/-/react-charts-7.4.0.tgz", - "integrity": "sha512-2nvjoGw+ndAwiSFds041wMb4c1BnflyWLAutyC1kYTawhlKrSDGsd4heKWmquzg7GTLBzr1w6YbxKv2i2l7Z7g==", + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@patternfly/react-charts/-/react-charts-7.4.1.tgz", + "integrity": "sha512-mjB61tMY2ApcmPP+02Vr4sY1s/Q1qfM8qufIxPiHcAfvW9aK2govrSiOKYpeof4/upOVSEbWpCPqEMA7EM8TMw==", "license": "MIT", "dependencies": { "@patternfly/react-styles": "^5.4.0", @@ -2183,23 +2180,23 @@ "hoist-non-react-statics": "^3.3.2", "lodash": "^4.17.21", "tslib": "^2.6.3", - "victory-area": "^37.0.2", - "victory-axis": "^37.0.2", - "victory-bar": "^37.0.2", - "victory-box-plot": "^37.0.2", - "victory-chart": "^37.0.2", - "victory-core": "^37.0.2", - "victory-create-container": "^37.0.2", - "victory-cursor-container": "^37.0.2", - "victory-group": "^37.0.2", - "victory-legend": "^37.0.2", - "victory-line": "^37.0.2", - "victory-pie": "^37.0.2", - "victory-scatter": "^37.0.2", - "victory-stack": "^37.0.2", - "victory-tooltip": "^37.0.2", - "victory-voronoi-container": "^37.0.2", - "victory-zoom-container": "^37.0.2" + "victory-area": "^37.1.1", + "victory-axis": "^37.1.1", + "victory-bar": "^37.1.1", + "victory-box-plot": "^37.1.1", + "victory-chart": "^37.1.1", + "victory-core": "^37.1.1", + "victory-create-container": "^37.1.1", + "victory-cursor-container": "^37.1.1", + "victory-group": "^37.1.1", + "victory-legend": "^37.1.1", + "victory-line": "^37.1.1", + "victory-pie": "^37.1.1", + "victory-scatter": "^37.1.1", + "victory-stack": "^37.1.1", + "victory-tooltip": "^37.1.1", + "victory-voronoi-container": "^37.1.1", + "victory-zoom-container": "^37.1.1" }, "peerDependencies": { "react": "^17 || ^18", @@ -2458,9 +2455,9 @@ } }, "node_modules/@redhat-cloud-services/frontend-components-config": { - "version": "6.2.8", - "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components-config/-/frontend-components-config-6.2.8.tgz", - "integrity": "sha512-1B8DFu8kSfcxuc7AULKzLulnaN3HfQwQcArDBLGz/uN8hRmBxe02ZER23HptNieXlzKQ3zt1d6vTMey0AbfSEw==", + "version": "6.2.9", + "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components-config/-/frontend-components-config-6.2.9.tgz", + "integrity": "sha512-tJHyse/6y53lehKUx8tY1kIAezuj2yV1Gmgl6Ye9vfnm9DfcsFYObz9nQOdp/pmeNNrUO3u3fpzYSPxoamKqHg==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -3933,9 +3930,9 @@ "dev": true }, "node_modules/@types/react": { - "version": "18.3.5", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.5.tgz", - "integrity": "sha512-WeqMfGJLGuLCqHGYRGHxnKrXcTitc6L/nBUWfWPcTarG3t9PsquqUMuVeXZeca+mglY4Vo5GZjCi0A3Or2lnxA==", + "version": "18.3.7", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.7.tgz", + "integrity": "sha512-KUnDCJF5+AiZd8owLIeVHqmW9yM4sqmDVf2JRJiBMFkGvkoZ4/WyV2lL4zVsoinmRS/W3FeEdZLEWFRofnT2FQ==", "license": "MIT", "dependencies": { "@types/prop-types": "*", @@ -4147,17 +4144,17 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.5.0.tgz", - "integrity": "sha512-lHS5hvz33iUFQKuPFGheAB84LwcJ60G8vKnEhnfcK1l8kGVLro2SFYW6K0/tj8FUhRJ0VHyg1oAfg50QGbPPHw==", + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.6.0.tgz", + "integrity": "sha512-UOaz/wFowmoh2G6Mr9gw60B1mm0MzUtm6Ic8G2yM1Le6gyj5Loi/N+O5mocugRGY+8OeeKmkMmbxNqUCq3B4Sg==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.5.0", - "@typescript-eslint/type-utils": "8.5.0", - "@typescript-eslint/utils": "8.5.0", - "@typescript-eslint/visitor-keys": "8.5.0", + "@typescript-eslint/scope-manager": "8.6.0", + "@typescript-eslint/type-utils": "8.6.0", + "@typescript-eslint/utils": "8.6.0", + "@typescript-eslint/visitor-keys": "8.6.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -4181,16 +4178,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.5.0.tgz", - "integrity": "sha512-gF77eNv0Xz2UJg/NbpWJ0kqAm35UMsvZf1GHj8D9MRFTj/V3tAciIWXfmPLsAAF/vUlpWPvUDyH1jjsr0cMVWw==", + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.6.0.tgz", + "integrity": "sha512-eQcbCuA2Vmw45iGfcyG4y6rS7BhWfz9MQuk409WD47qMM+bKCGQWXxvoOs1DUp+T7UBMTtRTVT+kXr7Sh4O9Ow==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/scope-manager": "8.5.0", - "@typescript-eslint/types": "8.5.0", - "@typescript-eslint/typescript-estree": "8.5.0", - "@typescript-eslint/visitor-keys": "8.5.0", + "@typescript-eslint/scope-manager": "8.6.0", + "@typescript-eslint/types": "8.6.0", + "@typescript-eslint/typescript-estree": "8.6.0", + "@typescript-eslint/visitor-keys": "8.6.0", "debug": "^4.3.4" }, "engines": { @@ -4210,14 +4207,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.5.0.tgz", - "integrity": "sha512-06JOQ9Qgj33yvBEx6tpC8ecP9o860rsR22hWMEd12WcTRrfaFgHr2RB/CA/B+7BMhHkXT4chg2MyboGdFGawYg==", + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.6.0.tgz", + "integrity": "sha512-ZuoutoS5y9UOxKvpc/GkvF4cuEmpokda4wRg64JEia27wX+PysIE9q+lzDtlHHgblwUWwo5/Qn+/WyTUvDwBHw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.5.0", - "@typescript-eslint/visitor-keys": "8.5.0" + "@typescript-eslint/types": "8.6.0", + "@typescript-eslint/visitor-keys": "8.6.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -4228,14 +4225,14 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.5.0.tgz", - "integrity": "sha512-N1K8Ix+lUM+cIDhL2uekVn/ZD7TZW+9/rwz8DclQpcQ9rk4sIL5CAlBC0CugWKREmDjBzI/kQqU4wkg46jWLYA==", + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.6.0.tgz", + "integrity": "sha512-dtePl4gsuenXVwC7dVNlb4mGDcKjDT/Ropsk4za/ouMBPplCLyznIaR+W65mvCvsyS97dymoBRrioEXI7k0XIg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.5.0", - "@typescript-eslint/utils": "8.5.0", + "@typescript-eslint/typescript-estree": "8.6.0", + "@typescript-eslint/utils": "8.6.0", "debug": "^4.3.4", "ts-api-utils": "^1.3.0" }, @@ -4253,9 +4250,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.5.0.tgz", - "integrity": "sha512-qjkormnQS5wF9pjSi6q60bKUHH44j2APxfh9TQRXK8wbYVeDYYdYJGIROL87LGZZ2gz3Rbmjc736qyL8deVtdw==", + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.6.0.tgz", + "integrity": "sha512-rojqFZGd4MQxw33SrOy09qIDS8WEldM8JWtKQLAjf/X5mGSeEFh5ixQlxssMNyPslVIk9yzWqXCsV2eFhYrYUw==", "dev": true, "license": "MIT", "engines": { @@ -4267,14 +4264,14 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.5.0.tgz", - "integrity": "sha512-vEG2Sf9P8BPQ+d0pxdfndw3xIXaoSjliG0/Ejk7UggByZPKXmJmw3GW5jV2gHNQNawBUyfahoSiCFVov0Ruf7Q==", + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.6.0.tgz", + "integrity": "sha512-MOVAzsKJIPIlLK239l5s06YXjNqpKTVhBVDnqUumQJja5+Y94V3+4VUFRA0G60y2jNnTVwRCkhyGQpavfsbq/g==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/types": "8.5.0", - "@typescript-eslint/visitor-keys": "8.5.0", + "@typescript-eslint/types": "8.6.0", + "@typescript-eslint/visitor-keys": "8.6.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -4325,16 +4322,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.5.0.tgz", - "integrity": "sha512-6yyGYVL0e+VzGYp60wvkBHiqDWOpT63pdMV2CVG4LVDd5uR6q1qQN/7LafBZtAtNIn/mqXjsSeS5ggv/P0iECw==", + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.6.0.tgz", + "integrity": "sha512-eNp9cWnYf36NaOVjkEUznf6fEgVy1TWpE0o52e4wtojjBx7D1UV2WAWGzR+8Y5lVFtpMLPwNbC67T83DWSph4A==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.5.0", - "@typescript-eslint/types": "8.5.0", - "@typescript-eslint/typescript-estree": "8.5.0" + "@typescript-eslint/scope-manager": "8.6.0", + "@typescript-eslint/types": "8.6.0", + "@typescript-eslint/typescript-estree": "8.6.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -4348,13 +4345,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.5.0.tgz", - "integrity": "sha512-yTPqMnbAZJNy2Xq2XU8AdtOW9tJIr+UQb64aXB9f3B1498Zx9JorVgFJcZpEc9UBuCCrdzKID2RGAMkYcDtZOw==", + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.6.0.tgz", + "integrity": "sha512-wapVFfZg9H0qOYh4grNVQiMklJGluQrOUiOhYRrQWhx7BY/+I1IYb8BczWNbbUpO+pqy0rDciv3lQH5E1bCLrg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.5.0", + "@typescript-eslint/types": "8.6.0", "eslint-visitor-keys": "^3.4.3" }, "engines": { @@ -6924,6 +6921,12 @@ "node": ">=12" } }, + "node_modules/d3-voronoi": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/d3-voronoi/-/d3-voronoi-1.1.4.tgz", + "integrity": "sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg==", + "license": "BSD-3-Clause" + }, "node_modules/damerau-levenshtein": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", @@ -6996,9 +6999,10 @@ } }, "node_modules/date-fns": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.0.0.tgz", - "integrity": "sha512-6K33+I8fQ5otvHgLIvKK1xmMbLAh0pduyrx7dwMXKiGYeoWhmk6M3Zoak9n7bXHMJQlHq1yqmdGy1QxKddJjUA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz", + "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/kossnocorp" @@ -19548,503 +19552,387 @@ "node": ">= 0.8" } }, - "node_modules/victory-area": { - "version": "37.1.0", - "resolved": "https://registry.npmjs.org/victory-area/-/victory-area-37.1.0.tgz", - "integrity": "sha512-SfXlOl2Tg700/2+yuq4sNUP2x0VvsZeQz07QohnN4n9ag17Vj650gp8Yx5vj+CWRSZKWd77OcWiQ5FvBAZbr6A==", + "node_modules/victory": { + "version": "37.1.1", + "resolved": "https://registry.npmjs.org/victory/-/victory-37.1.1.tgz", + "integrity": "sha512-3tyIZ79YVd9bxS3KocGa6UuQdCA4Kenqzh3Th7QBB7Am96MHXVyePsYwhg0KorOmKqocQxYgLShGIjEHT1Qv+w==", "license": "MIT", "dependencies": { - "lodash": "^4.17.19", - "victory-core": "37.1.0", - "victory-vendor": "37.1.0" + "victory-area": "37.1.1", + "victory-axis": "37.1.1", + "victory-bar": "37.1.1", + "victory-box-plot": "37.1.1", + "victory-brush-container": "37.1.1", + "victory-brush-line": "37.1.1", + "victory-candlestick": "37.1.1", + "victory-canvas": "37.1.1", + "victory-chart": "37.1.1", + "victory-core": "37.1.1", + "victory-create-container": "37.1.1", + "victory-cursor-container": "37.1.1", + "victory-errorbar": "37.1.1", + "victory-group": "37.1.1", + "victory-histogram": "37.1.1", + "victory-legend": "37.1.1", + "victory-line": "37.1.1", + "victory-pie": "37.1.1", + "victory-polar-axis": "37.1.1", + "victory-scatter": "37.1.1", + "victory-selection-container": "37.1.1", + "victory-shared-events": "37.1.1", + "victory-stack": "37.1.1", + "victory-tooltip": "37.1.1", + "victory-voronoi": "37.1.1", + "victory-voronoi-container": "37.1.1", + "victory-zoom-container": "37.1.1" }, "peerDependencies": { "react": ">=16.6.0" } }, - "node_modules/victory-area/node_modules/victory-core": { - "version": "37.1.0", - "resolved": "https://registry.npmjs.org/victory-core/-/victory-core-37.1.0.tgz", - "integrity": "sha512-K1PVc0AIO+p5XmmgjK1L87MXZS+UKyguohTR1dNT1Ltveerj9TR5hys8DTdMPpWhR+W7R6U9RLQeACbQSOcbnQ==", + "node_modules/victory-area": { + "version": "37.1.1", + "resolved": "https://registry.npmjs.org/victory-area/-/victory-area-37.1.1.tgz", + "integrity": "sha512-9OVILTIT5DW/BsMksZ1xCjmNrT0iIhsHnumeNJDvvfzWUeqLyYPwmqp8e2wRraj1VRhRAAgZGXAHi7XA3rJkgQ==", "license": "MIT", "dependencies": { - "lodash": "^4.17.21", - "react-fast-compare": "^3.2.0", - "victory-vendor": "37.1.0" + "lodash": "^4.17.19", + "victory-core": "37.1.1", + "victory-vendor": "37.1.1" }, "peerDependencies": { "react": ">=16.6.0" } }, "node_modules/victory-axis": { - "version": "37.1.0", - "resolved": "https://registry.npmjs.org/victory-axis/-/victory-axis-37.1.0.tgz", - "integrity": "sha512-7c0zWLEX+L7GzQ6gNUnJHnCnRkgSU57KU41w95XYfmNOpT9bsPwAGmVRfMEvZVWlhpiWshNRzaW2RQ9wSrNZPA==", + "version": "37.1.1", + "resolved": "https://registry.npmjs.org/victory-axis/-/victory-axis-37.1.1.tgz", + "integrity": "sha512-LqlXoAHNxvS/GdAKR6YSHZf0I9egMZf84kqUb7dG3NNLE8M1XnaEkYlfIOJsL+vsZJqm4kqoe67yI56eqIY5Hw==", "license": "MIT", "dependencies": { "lodash": "^4.17.19", - "victory-core": "37.1.0" - }, - "peerDependencies": { - "react": ">=16.6.0" - } - }, - "node_modules/victory-axis/node_modules/victory-core": { - "version": "37.1.0", - "resolved": "https://registry.npmjs.org/victory-core/-/victory-core-37.1.0.tgz", - "integrity": "sha512-K1PVc0AIO+p5XmmgjK1L87MXZS+UKyguohTR1dNT1Ltveerj9TR5hys8DTdMPpWhR+W7R6U9RLQeACbQSOcbnQ==", - "license": "MIT", - "dependencies": { - "lodash": "^4.17.21", - "react-fast-compare": "^3.2.0", - "victory-vendor": "37.1.0" + "victory-core": "37.1.1" }, "peerDependencies": { "react": ">=16.6.0" } }, "node_modules/victory-bar": { - "version": "37.1.0", - "resolved": "https://registry.npmjs.org/victory-bar/-/victory-bar-37.1.0.tgz", - "integrity": "sha512-vww8UGioxXC8+zV0dzPOVBkk6Dzd+SQcGF+SzFVg3rPyVvTDf5ALL3Hp8Qt6rIkV2rWLjSVh2H3RcEHtkffPEw==", + "version": "37.1.1", + "resolved": "https://registry.npmjs.org/victory-bar/-/victory-bar-37.1.1.tgz", + "integrity": "sha512-1e1QtVDMgFRwXZDrt9nT1Fqv57yHL9Z9ssA2mgyzV/wi/HRneuUXE958Q/t59z4cTEkRYwNrUE3dODBCpxXMKw==", "license": "MIT", "dependencies": { "lodash": "^4.17.19", - "victory-core": "37.1.0", - "victory-vendor": "37.1.0" - }, - "peerDependencies": { - "react": ">=16.6.0" - } - }, - "node_modules/victory-bar/node_modules/victory-core": { - "version": "37.1.0", - "resolved": "https://registry.npmjs.org/victory-core/-/victory-core-37.1.0.tgz", - "integrity": "sha512-K1PVc0AIO+p5XmmgjK1L87MXZS+UKyguohTR1dNT1Ltveerj9TR5hys8DTdMPpWhR+W7R6U9RLQeACbQSOcbnQ==", - "license": "MIT", - "dependencies": { - "lodash": "^4.17.21", - "react-fast-compare": "^3.2.0", - "victory-vendor": "37.1.0" + "victory-core": "37.1.1", + "victory-vendor": "37.1.1" }, "peerDependencies": { "react": ">=16.6.0" } }, "node_modules/victory-box-plot": { - "version": "37.1.0", - "resolved": "https://registry.npmjs.org/victory-box-plot/-/victory-box-plot-37.1.0.tgz", - "integrity": "sha512-26RRltwrvs3hU7I5x1VHF71eDdVdYpfOfWDbQlte73/sfJotkOI2s8GApkG7fxLbuoYfu4n+2eOPM6FIbFdbtA==", + "version": "37.1.1", + "resolved": "https://registry.npmjs.org/victory-box-plot/-/victory-box-plot-37.1.1.tgz", + "integrity": "sha512-cdmAxg1Sqt/c2lbPJdD8+4qBNj8UMav8fLtsGd/uCNHWYzv52+0g9B8ToE6ImsKyBFRGnW+c0BD5vKbtyW6tJw==", "license": "MIT", "dependencies": { "lodash": "^4.17.19", - "victory-core": "37.1.0", - "victory-vendor": "37.1.0" + "victory-core": "37.1.1", + "victory-vendor": "37.1.1" }, "peerDependencies": { "react": ">=16.6.0" } }, - "node_modules/victory-box-plot/node_modules/victory-core": { - "version": "37.1.0", - "resolved": "https://registry.npmjs.org/victory-core/-/victory-core-37.1.0.tgz", - "integrity": "sha512-K1PVc0AIO+p5XmmgjK1L87MXZS+UKyguohTR1dNT1Ltveerj9TR5hys8DTdMPpWhR+W7R6U9RLQeACbQSOcbnQ==", + "node_modules/victory-brush-container": { + "version": "37.1.1", + "resolved": "https://registry.npmjs.org/victory-brush-container/-/victory-brush-container-37.1.1.tgz", + "integrity": "sha512-iZkp/r7uzkc7UN3EgAWe4aDDEFHe7BQs0nv/mmyFeFYIXG5e2uiKs28OsZnfgp6CDIHDqUoV8DAGOccotUbUaQ==", "license": "MIT", "dependencies": { - "lodash": "^4.17.21", + "lodash": "^4.17.19", "react-fast-compare": "^3.2.0", - "victory-vendor": "37.1.0" + "victory-core": "37.1.1" }, "peerDependencies": { "react": ">=16.6.0" } }, - "node_modules/victory-brush-container": { - "version": "37.1.0", - "resolved": "https://registry.npmjs.org/victory-brush-container/-/victory-brush-container-37.1.0.tgz", - "integrity": "sha512-TYw/7ujVvBNwbjzefnPWQj8K+IqyX62G4JNWw+M83ZTnetuN7yZBhch57JCHCh6tCBll9HZijzvuw4ftt8x+sA==", + "node_modules/victory-brush-line": { + "version": "37.1.1", + "resolved": "https://registry.npmjs.org/victory-brush-line/-/victory-brush-line-37.1.1.tgz", + "integrity": "sha512-nsuJW7VFYFO2R+i0wveC4nizOhLj/UcTHwv98J6PYt3c0LQXa04YMFOfrRuKV/+Qsrj4DOVO3/GU6/PSUwozlQ==", "license": "MIT", "dependencies": { "lodash": "^4.17.19", "react-fast-compare": "^3.2.0", - "victory-core": "37.1.0" + "victory-core": "37.1.1" }, "peerDependencies": { "react": ">=16.6.0" } }, - "node_modules/victory-brush-container/node_modules/victory-core": { - "version": "37.1.0", - "resolved": "https://registry.npmjs.org/victory-core/-/victory-core-37.1.0.tgz", - "integrity": "sha512-K1PVc0AIO+p5XmmgjK1L87MXZS+UKyguohTR1dNT1Ltveerj9TR5hys8DTdMPpWhR+W7R6U9RLQeACbQSOcbnQ==", + "node_modules/victory-candlestick": { + "version": "37.1.1", + "resolved": "https://registry.npmjs.org/victory-candlestick/-/victory-candlestick-37.1.1.tgz", + "integrity": "sha512-M5ftMbFi8HM9QYLrPb1DfrHOYKCwnDkxe8ct8MjE2ibsnKNCxUrwjJbkh0QXPa4ndk5y4jl98T9FmJS1Q14nPg==", "license": "MIT", "dependencies": { - "lodash": "^4.17.21", - "react-fast-compare": "^3.2.0", - "victory-vendor": "37.1.0" + "lodash": "^4.17.19", + "victory-core": "37.1.1" }, "peerDependencies": { "react": ">=16.6.0" } }, - "node_modules/victory-chart": { - "version": "37.1.0", - "resolved": "https://registry.npmjs.org/victory-chart/-/victory-chart-37.1.0.tgz", - "integrity": "sha512-3wCOLCyJ94o03Uvj2XvNyY3AiFvGfVgq/8PZDnPu649ntSOG3MRGgwiazq8BHkPy9Im9MXN0dZ+WcemhPRZfPA==", + "node_modules/victory-canvas": { + "version": "37.1.1", + "resolved": "https://registry.npmjs.org/victory-canvas/-/victory-canvas-37.1.1.tgz", + "integrity": "sha512-nq+du3x2D8sdRfNNg2idieElJbwq7vI2DO5FoFyFyowX6plXjOXoJZAOX/+7GTBQ4FP7tktNka5AQ9z8u5Sxbw==", "license": "MIT", "dependencies": { "lodash": "^4.17.19", - "react-fast-compare": "^3.2.0", - "victory-axis": "37.1.0", - "victory-core": "37.1.0", - "victory-polar-axis": "37.1.0", - "victory-shared-events": "37.1.0" + "victory-bar": "37.1.1", + "victory-core": "37.1.1" }, "peerDependencies": { "react": ">=16.6.0" } }, - "node_modules/victory-chart/node_modules/victory-core": { - "version": "37.1.0", - "resolved": "https://registry.npmjs.org/victory-core/-/victory-core-37.1.0.tgz", - "integrity": "sha512-K1PVc0AIO+p5XmmgjK1L87MXZS+UKyguohTR1dNT1Ltveerj9TR5hys8DTdMPpWhR+W7R6U9RLQeACbQSOcbnQ==", + "node_modules/victory-chart": { + "version": "37.1.1", + "resolved": "https://registry.npmjs.org/victory-chart/-/victory-chart-37.1.1.tgz", + "integrity": "sha512-p//04lKzUX1ocXmp9RWmQMOsQUcP7m1CsrYkBOvqzD1sjgMhDzTqZdn38rMUzW0bpbCs0Tl6wbOzxMN+/PA8fQ==", "license": "MIT", "dependencies": { - "lodash": "^4.17.21", + "lodash": "^4.17.19", "react-fast-compare": "^3.2.0", - "victory-vendor": "37.1.0" + "victory-axis": "37.1.1", + "victory-core": "37.1.1", + "victory-polar-axis": "37.1.1", + "victory-shared-events": "37.1.1" }, "peerDependencies": { "react": ">=16.6.0" } }, "node_modules/victory-core": { - "version": "37.0.2", - "resolved": "https://registry.npmjs.org/victory-core/-/victory-core-37.0.2.tgz", - "integrity": "sha512-B3A3yCanjskShZTFtA1Bp8BLXniaTtjzaKHOChjCkay8oRkWjGMy0aZdCL7ezfUWVHAaFUIw248PgqApMn1K/w==", + "version": "37.1.1", + "resolved": "https://registry.npmjs.org/victory-core/-/victory-core-37.1.1.tgz", + "integrity": "sha512-4UK1S1+9CFBn1Nwu18JsOf2EtaTI/DOE4Eoi5byLd6kFO8/luSbaLvc7BDPxiLpSj0BGiX/Hbqs12T2gPaEnAA==", "license": "MIT", "dependencies": { "lodash": "^4.17.21", "react-fast-compare": "^3.2.0", - "victory-vendor": "^37.0.2" + "victory-vendor": "37.1.1" }, "peerDependencies": { "react": ">=16.6.0" } }, "node_modules/victory-create-container": { - "version": "37.0.2", - "resolved": "https://registry.npmjs.org/victory-create-container/-/victory-create-container-37.0.2.tgz", - "integrity": "sha512-cojSUT/TWunznM3rMlchlYZ+QdTLKHQE519ZQdomA04rKdU+rK/X+XaeMHDWZVRZHp4YrfUmR7OfOb4AHBTm7w==", + "version": "37.1.1", + "resolved": "https://registry.npmjs.org/victory-create-container/-/victory-create-container-37.1.1.tgz", + "integrity": "sha512-t/soXK97TcP4yxHYwvfCWJW9jGlRyYS4zdhjLe9Q2iETY0ngiVk+bpETZVPMgubPxq3JPaogMQKgd+1hDWjBMg==", "license": "MIT", "dependencies": { "lodash": "^4.17.19", - "victory-brush-container": "^37.0.2", - "victory-core": "^37.0.2", - "victory-cursor-container": "^37.0.2", - "victory-selection-container": "^37.0.2", - "victory-voronoi-container": "^37.0.2", - "victory-zoom-container": "^37.0.2" + "victory-brush-container": "37.1.1", + "victory-core": "37.1.1", + "victory-cursor-container": "37.1.1", + "victory-selection-container": "37.1.1", + "victory-voronoi-container": "37.1.1", + "victory-zoom-container": "37.1.1" }, "peerDependencies": { "react": ">=16.6.0" } }, "node_modules/victory-cursor-container": { - "version": "37.0.2", - "resolved": "https://registry.npmjs.org/victory-cursor-container/-/victory-cursor-container-37.0.2.tgz", - "integrity": "sha512-07PB8XNYi9AqnwZjCxQ6gKcJip6p2fwUT1+aHYDUAy/ncL6xBZD4t3sXErPHT3ha/itx7I861OsehDLZCjnkHA==", + "version": "37.1.1", + "resolved": "https://registry.npmjs.org/victory-cursor-container/-/victory-cursor-container-37.1.1.tgz", + "integrity": "sha512-m2YS7nmAcGHatVhuqjuJW7jXRXutI0e1pBz9PbHm692HNAJbMfFTJAKtgPXUj5wYVae4OAr6f0551/ekkcL7xQ==", "license": "MIT", "dependencies": { "lodash": "^4.17.19", - "victory-core": "^37.0.2" + "victory-core": "37.1.1" }, "peerDependencies": { "react": ">=16.6.0" } }, - "node_modules/victory-group": { - "version": "37.1.0", - "resolved": "https://registry.npmjs.org/victory-group/-/victory-group-37.1.0.tgz", - "integrity": "sha512-PXR9BJEeMONej3N9kRk6xPD07o7Umes9HsSNvcm6TV4K86VuMXzLuYg5Q3PmknWnDF1eECDr1pfWZbLy1vTi/Q==", + "node_modules/victory-errorbar": { + "version": "37.1.1", + "resolved": "https://registry.npmjs.org/victory-errorbar/-/victory-errorbar-37.1.1.tgz", + "integrity": "sha512-1nDaa6zT/OaA99DYwznwEwbD3lHfsnBV0UbUlQn91Hv99sg0Rvyk9cZinQWTZ0nNf8cNBYOzZlpFxY35XbQVSA==", "license": "MIT", "dependencies": { "lodash": "^4.17.19", - "react-fast-compare": "^3.2.0", - "victory-core": "37.1.0", - "victory-shared-events": "37.1.0" + "victory-core": "37.1.1" }, "peerDependencies": { "react": ">=16.6.0" } }, - "node_modules/victory-group/node_modules/victory-core": { - "version": "37.1.0", - "resolved": "https://registry.npmjs.org/victory-core/-/victory-core-37.1.0.tgz", - "integrity": "sha512-K1PVc0AIO+p5XmmgjK1L87MXZS+UKyguohTR1dNT1Ltveerj9TR5hys8DTdMPpWhR+W7R6U9RLQeACbQSOcbnQ==", + "node_modules/victory-group": { + "version": "37.1.1", + "resolved": "https://registry.npmjs.org/victory-group/-/victory-group-37.1.1.tgz", + "integrity": "sha512-170CnQ6+doT8VUPZzcq6IIluSMSYqactT9J0ANSDEwHsO/+r0tFwez44FtA4/DgdDh5ObWQ6VfQx330urMG5bA==", "license": "MIT", "dependencies": { - "lodash": "^4.17.21", + "lodash": "^4.17.19", "react-fast-compare": "^3.2.0", - "victory-vendor": "37.1.0" + "victory-core": "37.1.1", + "victory-shared-events": "37.1.1" }, "peerDependencies": { "react": ">=16.6.0" } }, - "node_modules/victory-legend": { - "version": "37.1.0", - "resolved": "https://registry.npmjs.org/victory-legend/-/victory-legend-37.1.0.tgz", - "integrity": "sha512-fxxvSkq6AUgEZawfgo4gJtNleFATwwICkad+6JxRii0F73YY0hzbfbkC2YrLSK920JxbnzLWf0ixMtbFzT/yew==", + "node_modules/victory-histogram": { + "version": "37.1.1", + "resolved": "https://registry.npmjs.org/victory-histogram/-/victory-histogram-37.1.1.tgz", + "integrity": "sha512-2KnfdQYaO+MELM/PB3saPHcUf+tHg0SwbaLHKRk+Im7+aQRUlprlHH7sHZJM/TYXCkJdqbQQNoW6R9VK/kQiGg==", "license": "MIT", "dependencies": { "lodash": "^4.17.19", - "victory-core": "37.1.0" - }, - "peerDependencies": { - "react": ">=16.6.0" - } - }, - "node_modules/victory-legend/node_modules/victory-core": { - "version": "37.1.0", - "resolved": "https://registry.npmjs.org/victory-core/-/victory-core-37.1.0.tgz", - "integrity": "sha512-K1PVc0AIO+p5XmmgjK1L87MXZS+UKyguohTR1dNT1Ltveerj9TR5hys8DTdMPpWhR+W7R6U9RLQeACbQSOcbnQ==", - "license": "MIT", - "dependencies": { - "lodash": "^4.17.21", "react-fast-compare": "^3.2.0", - "victory-vendor": "37.1.0" + "victory-bar": "37.1.1", + "victory-core": "37.1.1", + "victory-vendor": "37.1.1" }, "peerDependencies": { "react": ">=16.6.0" } }, - "node_modules/victory-line": { - "version": "37.1.0", - "resolved": "https://registry.npmjs.org/victory-line/-/victory-line-37.1.0.tgz", - "integrity": "sha512-5IejHIbYrDjsOFdbftG+NhBf1mcAb9YNwrV14SGNN9PMejeCS7PN4nT+tC8BFdGF17ORS0gDP464AvVIn7jlbg==", + "node_modules/victory-legend": { + "version": "37.1.1", + "resolved": "https://registry.npmjs.org/victory-legend/-/victory-legend-37.1.1.tgz", + "integrity": "sha512-8F51DbYzG+jkMJoGp2Ulqqxgoq00TWgvQcBTZptdrN2PFlc2b1Ug7z3lbK1ziUCunrVbHQpAhge0onDoRyn1Vg==", "license": "MIT", "dependencies": { "lodash": "^4.17.19", - "victory-core": "37.1.0", - "victory-vendor": "37.1.0" + "victory-core": "37.1.1" }, "peerDependencies": { "react": ">=16.6.0" } }, - "node_modules/victory-line/node_modules/victory-core": { - "version": "37.1.0", - "resolved": "https://registry.npmjs.org/victory-core/-/victory-core-37.1.0.tgz", - "integrity": "sha512-K1PVc0AIO+p5XmmgjK1L87MXZS+UKyguohTR1dNT1Ltveerj9TR5hys8DTdMPpWhR+W7R6U9RLQeACbQSOcbnQ==", + "node_modules/victory-line": { + "version": "37.1.1", + "resolved": "https://registry.npmjs.org/victory-line/-/victory-line-37.1.1.tgz", + "integrity": "sha512-YLR9/i7BwN3taBvHCfmc5hA0po16QFQuFnO61NPNCBZtv8kNf39m3BpDTDYMeuEgEBCnMw0znR0C1NASZcJDWQ==", "license": "MIT", "dependencies": { - "lodash": "^4.17.21", - "react-fast-compare": "^3.2.0", - "victory-vendor": "37.1.0" + "lodash": "^4.17.19", + "victory-core": "37.1.1", + "victory-vendor": "37.1.1" }, "peerDependencies": { "react": ">=16.6.0" } }, "node_modules/victory-pie": { - "version": "37.1.0", - "resolved": "https://registry.npmjs.org/victory-pie/-/victory-pie-37.1.0.tgz", - "integrity": "sha512-6wLs/XBrp+nq8U7L81TiEQGIqn+InTCiNMBMbABRWdsQQVviysovoZ0Q+GhEcGl5+BWhbRPe3LGMfEQTwQYX/Q==", + "version": "37.1.1", + "resolved": "https://registry.npmjs.org/victory-pie/-/victory-pie-37.1.1.tgz", + "integrity": "sha512-GWHR4prUq6ZNeMd0IEywHvvWn3dkn7vS3fkLMVTKitpbMIRPGlFxo5gLTkAQv3nnA/762GLSyELbcFgFQXOQUA==", "license": "MIT", "dependencies": { "lodash": "^4.17.19", - "victory-core": "37.1.0", - "victory-vendor": "37.1.0" - }, - "peerDependencies": { - "react": ">=16.6.0" - } - }, - "node_modules/victory-pie/node_modules/victory-core": { - "version": "37.1.0", - "resolved": "https://registry.npmjs.org/victory-core/-/victory-core-37.1.0.tgz", - "integrity": "sha512-K1PVc0AIO+p5XmmgjK1L87MXZS+UKyguohTR1dNT1Ltveerj9TR5hys8DTdMPpWhR+W7R6U9RLQeACbQSOcbnQ==", - "license": "MIT", - "dependencies": { - "lodash": "^4.17.21", - "react-fast-compare": "^3.2.0", - "victory-vendor": "37.1.0" + "victory-core": "37.1.1", + "victory-vendor": "37.1.1" }, "peerDependencies": { "react": ">=16.6.0" } }, "node_modules/victory-polar-axis": { - "version": "37.1.0", - "resolved": "https://registry.npmjs.org/victory-polar-axis/-/victory-polar-axis-37.1.0.tgz", - "integrity": "sha512-NY5RPLRFqeGDWMTlZ8EZERtMS7gcviBtcO7h9lvDbUHFrrDdxBe4YwzgEgdzIdwVJpV9bSngVjBaOrDb8NPXyw==", + "version": "37.1.1", + "resolved": "https://registry.npmjs.org/victory-polar-axis/-/victory-polar-axis-37.1.1.tgz", + "integrity": "sha512-I9okmw1MauiucV6WxylHDOZtW5mgrozYmfglOSR6fnQ9gcxPoXSgBNxo801kyV2/pu8BP6dD07Uz1QLbCh3KSA==", "license": "MIT", "dependencies": { "lodash": "^4.17.19", - "victory-core": "37.1.0" - }, - "peerDependencies": { - "react": ">=16.6.0" - } - }, - "node_modules/victory-polar-axis/node_modules/victory-core": { - "version": "37.1.0", - "resolved": "https://registry.npmjs.org/victory-core/-/victory-core-37.1.0.tgz", - "integrity": "sha512-K1PVc0AIO+p5XmmgjK1L87MXZS+UKyguohTR1dNT1Ltveerj9TR5hys8DTdMPpWhR+W7R6U9RLQeACbQSOcbnQ==", - "license": "MIT", - "dependencies": { - "lodash": "^4.17.21", - "react-fast-compare": "^3.2.0", - "victory-vendor": "37.1.0" + "victory-core": "37.1.1" }, "peerDependencies": { "react": ">=16.6.0" } }, "node_modules/victory-scatter": { - "version": "37.1.0", - "resolved": "https://registry.npmjs.org/victory-scatter/-/victory-scatter-37.1.0.tgz", - "integrity": "sha512-movtEagWZjFnI4Wbrn1zb2rgV5UTnCwipVnj+Rj8IEu7NUIjuA1B8ZQsdo6yJs1JzMQeslfbuN1PP3dWiJ/MvA==", + "version": "37.1.1", + "resolved": "https://registry.npmjs.org/victory-scatter/-/victory-scatter-37.1.1.tgz", + "integrity": "sha512-2jt0HgYnLngw8oVAY5Tcq2MEHVc3FDo47gMQf7LysFvsuCtBLvgkaDuRPnF+8Ty3hP/7qwjV9tgM7Ui2cSfZSg==", "license": "MIT", "dependencies": { "lodash": "^4.17.19", - "victory-core": "37.1.0" - }, - "peerDependencies": { - "react": ">=16.6.0" - } - }, - "node_modules/victory-scatter/node_modules/victory-core": { - "version": "37.1.0", - "resolved": "https://registry.npmjs.org/victory-core/-/victory-core-37.1.0.tgz", - "integrity": "sha512-K1PVc0AIO+p5XmmgjK1L87MXZS+UKyguohTR1dNT1Ltveerj9TR5hys8DTdMPpWhR+W7R6U9RLQeACbQSOcbnQ==", - "license": "MIT", - "dependencies": { - "lodash": "^4.17.21", - "react-fast-compare": "^3.2.0", - "victory-vendor": "37.1.0" + "victory-core": "37.1.1" }, "peerDependencies": { "react": ">=16.6.0" } }, "node_modules/victory-selection-container": { - "version": "37.1.0", - "resolved": "https://registry.npmjs.org/victory-selection-container/-/victory-selection-container-37.1.0.tgz", - "integrity": "sha512-AXBWydZAlVV+Vo6Hj9IskTHijnhA/rcrjxwk1kfbhClPDFwnREtkdzO8r6BLqlFlAQlXYK5vDONBzpLR0q22FA==", + "version": "37.1.1", + "resolved": "https://registry.npmjs.org/victory-selection-container/-/victory-selection-container-37.1.1.tgz", + "integrity": "sha512-5FYlMQNt7uV+EfndtCTYkE5/yjnHo243ZnBiUzXmvXU+IBCjzXmcOeyqyn7IY7+p1fvA2Hc698mDLGydd8QJrA==", "license": "MIT", "dependencies": { "lodash": "^4.17.19", - "victory-core": "37.1.0" - }, - "peerDependencies": { - "react": ">=16.6.0" - } - }, - "node_modules/victory-selection-container/node_modules/victory-core": { - "version": "37.1.0", - "resolved": "https://registry.npmjs.org/victory-core/-/victory-core-37.1.0.tgz", - "integrity": "sha512-K1PVc0AIO+p5XmmgjK1L87MXZS+UKyguohTR1dNT1Ltveerj9TR5hys8DTdMPpWhR+W7R6U9RLQeACbQSOcbnQ==", - "license": "MIT", - "dependencies": { - "lodash": "^4.17.21", - "react-fast-compare": "^3.2.0", - "victory-vendor": "37.1.0" + "victory-core": "37.1.1" }, "peerDependencies": { "react": ">=16.6.0" } }, "node_modules/victory-shared-events": { - "version": "37.1.0", - "resolved": "https://registry.npmjs.org/victory-shared-events/-/victory-shared-events-37.1.0.tgz", - "integrity": "sha512-j7ppVc14UeOXr3l2xZEtSxochlOcHq875MfuDjyzZUsAkpIgJ+fFwUUYVn9Inzi0iuJwghXWki/916IQjOTqvQ==", + "version": "37.1.1", + "resolved": "https://registry.npmjs.org/victory-shared-events/-/victory-shared-events-37.1.1.tgz", + "integrity": "sha512-hMZI4GMLNWoIQ/Yso/tiTKpx5wUgNi2iwozrxWDesr11I5uqwutkBeHpIBMBwsGRWy6plkMyBp9lCf2Etkxm4A==", "license": "MIT", "dependencies": { "json-stringify-safe": "^5.0.1", "lodash": "^4.17.19", "react-fast-compare": "^3.2.0", - "victory-core": "37.1.0" - }, - "peerDependencies": { - "react": ">=16.6.0" - } - }, - "node_modules/victory-shared-events/node_modules/victory-core": { - "version": "37.1.0", - "resolved": "https://registry.npmjs.org/victory-core/-/victory-core-37.1.0.tgz", - "integrity": "sha512-K1PVc0AIO+p5XmmgjK1L87MXZS+UKyguohTR1dNT1Ltveerj9TR5hys8DTdMPpWhR+W7R6U9RLQeACbQSOcbnQ==", - "license": "MIT", - "dependencies": { - "lodash": "^4.17.21", - "react-fast-compare": "^3.2.0", - "victory-vendor": "37.1.0" + "victory-core": "37.1.1" }, "peerDependencies": { "react": ">=16.6.0" } }, "node_modules/victory-stack": { - "version": "37.1.0", - "resolved": "https://registry.npmjs.org/victory-stack/-/victory-stack-37.1.0.tgz", - "integrity": "sha512-Mipm4Lzn7Ely1qHCTZRRC/ug4zIueNFzlgHHXObMgjt9iXz2sBAYe8eJXNkdJIDo67XTU8nTVLgzXsuiyz++eg==", + "version": "37.1.1", + "resolved": "https://registry.npmjs.org/victory-stack/-/victory-stack-37.1.1.tgz", + "integrity": "sha512-jIHV7xRZW8jEuOGjrEreIh/u1mddDix98NmIJnd2+qMk1EuWIHngC2neCKQ0iF3wc8eAMuaK8gGr6ksSkpsqPA==", "license": "MIT", "dependencies": { "lodash": "^4.17.19", "react-fast-compare": "^3.2.0", - "victory-core": "37.1.0", - "victory-shared-events": "37.1.0" - }, - "peerDependencies": { - "react": ">=16.6.0" - } - }, - "node_modules/victory-stack/node_modules/victory-core": { - "version": "37.1.0", - "resolved": "https://registry.npmjs.org/victory-core/-/victory-core-37.1.0.tgz", - "integrity": "sha512-K1PVc0AIO+p5XmmgjK1L87MXZS+UKyguohTR1dNT1Ltveerj9TR5hys8DTdMPpWhR+W7R6U9RLQeACbQSOcbnQ==", - "license": "MIT", - "dependencies": { - "lodash": "^4.17.21", - "react-fast-compare": "^3.2.0", - "victory-vendor": "37.1.0" + "victory-core": "37.1.1", + "victory-shared-events": "37.1.1" }, "peerDependencies": { "react": ">=16.6.0" } }, "node_modules/victory-tooltip": { - "version": "37.1.0", - "resolved": "https://registry.npmjs.org/victory-tooltip/-/victory-tooltip-37.1.0.tgz", - "integrity": "sha512-OiXZ40dC/XTaW05oiwm8V4JJATfnedCrvuSCE/yiRp/RPysw5ZhbgAdVFDglJnT5aTxKcafRrr8NTy6nNNLgCw==", + "version": "37.1.1", + "resolved": "https://registry.npmjs.org/victory-tooltip/-/victory-tooltip-37.1.1.tgz", + "integrity": "sha512-n5TTR92jIDaeXSADV+edevcMcNLz1iPwzQr7CNX38vWU6RWf/FRcdiBlBNg3v4rNh41+sO8jjMQhjOpDti6Rvw==", "license": "MIT", "dependencies": { "lodash": "^4.17.19", - "victory-core": "37.1.0" - }, - "peerDependencies": { - "react": ">=16.6.0" - } - }, - "node_modules/victory-tooltip/node_modules/victory-core": { - "version": "37.1.0", - "resolved": "https://registry.npmjs.org/victory-core/-/victory-core-37.1.0.tgz", - "integrity": "sha512-K1PVc0AIO+p5XmmgjK1L87MXZS+UKyguohTR1dNT1Ltveerj9TR5hys8DTdMPpWhR+W7R6U9RLQeACbQSOcbnQ==", - "license": "MIT", - "dependencies": { - "lodash": "^4.17.21", - "react-fast-compare": "^3.2.0", - "victory-vendor": "37.1.0" + "victory-core": "37.1.1" }, "peerDependencies": { "react": ">=16.6.0" } }, "node_modules/victory-vendor": { - "version": "37.1.0", - "resolved": "https://registry.npmjs.org/victory-vendor/-/victory-vendor-37.1.0.tgz", - "integrity": "sha512-ecXgkii9uNdLQvEmRQgSawdGLVLT5jAbSuyIyDeS0T5O3diTEW/UcyK+JmXJxVaNb1ZHPZ+zEW/bNg2pyGraIw==", + "version": "37.1.1", + "resolved": "https://registry.npmjs.org/victory-vendor/-/victory-vendor-37.1.1.tgz", + "integrity": "sha512-WDnoGOSqmgyFgY/+7v4i40Vc/I/iOqc9JpUniWO9TvLCWAVEmwAjKxrorBlxEv+vQxQuhxGKOf3PcJqfjZqA9g==", "license": "MIT AND ISC", "dependencies": { "@types/d3-array": "^3.0.3", @@ -20063,44 +19951,44 @@ "d3-timer": "^3.0.1" } }, - "node_modules/victory-voronoi-container": { - "version": "37.0.2", - "resolved": "https://registry.npmjs.org/victory-voronoi-container/-/victory-voronoi-container-37.0.2.tgz", - "integrity": "sha512-iqx/35Rx9vMDKkHw+2xibAF8OT4MTHZk9GG7sPxnlYWoZqDSuuaqR5SmrHosDmw2oqXbj7AqG2wqfxmbMp7ZhA==", + "node_modules/victory-voronoi": { + "version": "37.1.1", + "resolved": "https://registry.npmjs.org/victory-voronoi/-/victory-voronoi-37.1.1.tgz", + "integrity": "sha512-LIGT4JLP+9GxzvA1rka3W8iHXx8TXvGDzcgDhj3E14dSjkDkYaX0/tyBBirHo7T3IFHThAO6GNPsfMrCzz8Z9w==", "license": "MIT", "dependencies": { - "delaunay-find": "0.0.6", + "d3-voronoi": "^1.1.4", "lodash": "^4.17.19", - "react-fast-compare": "^3.2.0", - "victory-core": "^37.0.2", - "victory-tooltip": "^37.0.2" + "victory-core": "37.1.1" }, "peerDependencies": { "react": ">=16.6.0" } }, - "node_modules/victory-zoom-container": { - "version": "37.1.0", - "resolved": "https://registry.npmjs.org/victory-zoom-container/-/victory-zoom-container-37.1.0.tgz", - "integrity": "sha512-GTW15lHBj+YVDAu2ONIPteVKzPbRWt/Lhzc/9p1e+VOvkfQtL+skZLt1Pq6diYZzcqyimzk6Z+FeipXiig8AMQ==", + "node_modules/victory-voronoi-container": { + "version": "37.1.1", + "resolved": "https://registry.npmjs.org/victory-voronoi-container/-/victory-voronoi-container-37.1.1.tgz", + "integrity": "sha512-OIiT/KroQCvPaITEGcZfPd7B5Byw2vjo52RiUfzdg5WfCvqxuOURnvXsv6lh8nTNS/VI9uWaxHYdATXqXtNgfA==", "license": "MIT", "dependencies": { + "delaunay-find": "0.0.6", "lodash": "^4.17.19", - "victory-core": "37.1.0" + "react-fast-compare": "^3.2.0", + "victory-core": "37.1.1", + "victory-tooltip": "37.1.1" }, "peerDependencies": { "react": ">=16.6.0" } }, - "node_modules/victory-zoom-container/node_modules/victory-core": { - "version": "37.1.0", - "resolved": "https://registry.npmjs.org/victory-core/-/victory-core-37.1.0.tgz", - "integrity": "sha512-K1PVc0AIO+p5XmmgjK1L87MXZS+UKyguohTR1dNT1Ltveerj9TR5hys8DTdMPpWhR+W7R6U9RLQeACbQSOcbnQ==", + "node_modules/victory-zoom-container": { + "version": "37.1.1", + "resolved": "https://registry.npmjs.org/victory-zoom-container/-/victory-zoom-container-37.1.1.tgz", + "integrity": "sha512-pBW64iT9zlFqmo468+MXkqNwJuuM+Q/+5/llFCKBoMA6wE1SwpkgHQ8RITWQUDCY9dR3y/bJFLEQg2aqoFB8/g==", "license": "MIT", "dependencies": { - "lodash": "^4.17.21", - "react-fast-compare": "^3.2.0", - "victory-vendor": "37.1.0" + "lodash": "^4.17.19", + "victory-core": "37.1.1" }, "peerDependencies": { "react": ">=16.6.0" diff --git a/package.json b/package.json index d1e174feb..01e518349 100644 --- a/package.json +++ b/package.json @@ -14,9 +14,9 @@ "scripts": { "build": "npm run build:prod", "build:prod": "fec build", + "check:dependencies": "npx npm-check-updates", + "check:dependencies:update": "npx npm-check-updates -u", "check:messages": "sh scripts/unused-messages.sh", - "check:updates": "npx npm-check-updates", - "check:updates:upgrade": "npx npm-check-updates -u", "clean": "rimraf dist .cache .swc", "codemods": "npx @patternfly/pf-codemods@latest src", "deploy": "npm-run-all build lint test", @@ -52,7 +52,7 @@ }, "dependencies": { "@patternfly/patternfly": "5.4.0", - "@patternfly/react-charts": "7.4.0", + "@patternfly/react-charts": "7.4.1", "@patternfly/react-component-groups": "^5.2.0", "@patternfly/react-core": "5.4.0", "@patternfly/react-icons": "5.4.0", @@ -66,7 +66,7 @@ "@reduxjs/toolkit": "^2.2.7", "@unleash/proxy-client-react": "^4.3.1", "axios": "^1.7.7", - "date-fns": "^4.0.0", + "date-fns": "^4.1.0", "js-file-download": "^0.4.12", "lodash": "^4.17.21", "qs": "^6.13.0", @@ -78,10 +78,7 @@ "redux": "^5.0.1", "redux-thunk": "^3.1.0", "typesafe-actions": "^5.1.0", - "victory-core": "37.0.2", - "victory-create-container": "37.0.2", - "victory-cursor-container": "37.0.2", - "victory-voronoi-container": "37.0.2" + "victory": "^37.1.1" }, "devDependencies": { "@eslint/compat": "^1.1.1", @@ -91,7 +88,7 @@ "@formatjs/ecma402-abstract": "^2.0.0", "@formatjs/icu-messageformat-parser": "^2.7.8", "@redhat-cloud-services/eslint-config-redhat-cloud-services": "^2.0.4", - "@redhat-cloud-services/frontend-components-config": "^6.2.8", + "@redhat-cloud-services/frontend-components-config": "^6.2.9", "@redhat-cloud-services/tsc-transform-imports": "^1.0.16", "@swc/core": "^1.7.26", "@swc/jest": "^0.2.36", @@ -100,12 +97,12 @@ "@testing-library/user-event": "^14.5.2", "@types/jest": "^29.5.13", "@types/qs": "^6.9.16", - "@types/react": "^18.3.5", + "@types/react": "^18.3.7", "@types/react-dom": "^18.3.0", "@types/react-redux": "^7.1.33", "@types/react-router-dom": "^5.3.3", - "@typescript-eslint/eslint-plugin": "^8.5.0", - "@typescript-eslint/parser": "^8.5.0", + "@typescript-eslint/eslint-plugin": "^8.6.0", + "@typescript-eslint/parser": "^8.6.0", "aphrodite": "^2.4.0", "copy-webpack-plugin": "^12.0.2", "eslint": "^9.10.0", @@ -137,7 +134,7 @@ "webpack-bundle-analyzer": "^4.10.2" }, "overrides": { - "@typescript-eslint/eslint-plugin": "^8.5.0", + "@typescript-eslint/eslint-plugin": "^8.6.0", "eslint": "^9.10.0", "redux": "^5.0.1" }, diff --git a/src/routes/components/charts/historicalCostChart/__snapshots__/historicalCostChart.test.tsx.snap b/src/routes/components/charts/historicalCostChart/__snapshots__/historicalCostChart.test.tsx.snap index 72375b858..f35661dea 100644 --- a/src/routes/components/charts/historicalCostChart/__snapshots__/historicalCostChart.test.tsx.snap +++ b/src/routes/components/charts/historicalCostChart/__snapshots__/historicalCostChart.test.tsx.snap @@ -28,17 +28,17 @@ exports[`null previous and current reports are handled 1`] = `
@@ -439,17 +439,17 @@ exports[`reports are formatted to datums 1`] = `
diff --git a/src/routes/components/charts/historicalTrendChart/__snapshots__/historicalTrendChart.test.tsx.snap b/src/routes/components/charts/historicalTrendChart/__snapshots__/historicalTrendChart.test.tsx.snap index f33121793..bdd3404fa 100644 --- a/src/routes/components/charts/historicalTrendChart/__snapshots__/historicalTrendChart.test.tsx.snap +++ b/src/routes/components/charts/historicalTrendChart/__snapshots__/historicalTrendChart.test.tsx.snap @@ -27,17 +27,17 @@ exports[`null previous and current reports are handled 1`] = `
@@ -401,17 +401,17 @@ exports[`reports are formatted to datums 1`] = `
diff --git a/src/routes/components/charts/historicalUsageChart/__snapshots__/historicalUsageChart.test.tsx.snap b/src/routes/components/charts/historicalUsageChart/__snapshots__/historicalUsageChart.test.tsx.snap index e20450b42..bdc2fac6c 100644 --- a/src/routes/components/charts/historicalUsageChart/__snapshots__/historicalUsageChart.test.tsx.snap +++ b/src/routes/components/charts/historicalUsageChart/__snapshots__/historicalUsageChart.test.tsx.snap @@ -27,17 +27,17 @@ exports[`reports are formatted to datums 1`] = `
diff --git a/src/routes/components/charts/trendChart/__snapshots__/trendChart.test.tsx.snap b/src/routes/components/charts/trendChart/__snapshots__/trendChart.test.tsx.snap index f5f43266a..520d90ebf 100644 --- a/src/routes/components/charts/trendChart/__snapshots__/trendChart.test.tsx.snap +++ b/src/routes/components/charts/trendChart/__snapshots__/trendChart.test.tsx.snap @@ -22,25 +22,25 @@ exports[`reports are formatted to datums 1`] = ` style="height: 100%; width: 100%; user-select: none; pointer-events: none; position: relative;" > Example Trend Title
diff --git a/src/routes/components/charts/usageChart/__snapshots__/usageChart.test.tsx.snap b/src/routes/components/charts/usageChart/__snapshots__/usageChart.test.tsx.snap index fa66ea952..0450bf780 100644 --- a/src/routes/components/charts/usageChart/__snapshots__/usageChart.test.tsx.snap +++ b/src/routes/components/charts/usageChart/__snapshots__/usageChart.test.tsx.snap @@ -10,25 +10,25 @@ exports[`reports are formatted to datums 1`] = ` style="height: 100%; width: 100%; user-select: none; pointer-events: none; position: relative;" > Usage Chart
From 9c38af284a12f6b337cd638f3477165e0d48e22d Mon Sep 17 00:00:00 2001 From: "red-hat-konflux[bot]" <126015336+red-hat-konflux[bot]@users.noreply.github.com> Date: Thu, 19 Sep 2024 09:16:54 -0400 Subject: [PATCH 06/17] chore(deps): update konflux references (#4023) Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com> Co-authored-by: red-hat-konflux[bot] <126015336+red-hat-konflux[bot]@users.noreply.github.com> --- .tekton/koku-frontend-pull-request.yaml | 16 ++++++++-------- .tekton/koku-frontend-push.yaml | 16 ++++++++-------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/.tekton/koku-frontend-pull-request.yaml b/.tekton/koku-frontend-pull-request.yaml index 0319341f2..21b848ba2 100644 --- a/.tekton/koku-frontend-pull-request.yaml +++ b/.tekton/koku-frontend-pull-request.yaml @@ -194,7 +194,7 @@ spec: - name: name value: prefetch-dependencies - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-prefetch-dependencies:0.1@sha256:fd1fda0dcf53938860ae6fcba37f5572ae25ae02dba44c15754fb7ba7549fb5c + value: quay.io/konflux-ci/tekton-catalog/task-prefetch-dependencies:0.1@sha256:fe7234e3824d1e65d6a7aac352e7a6bbce623d90d8d7da9aceeee108ad2c61be - name: kind value: task resolver: bundles @@ -299,7 +299,7 @@ spec: - name: name value: buildah - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-buildah:0.2@sha256:a523f60203d90e149f96ec776b47ce85a7acfd6d634ddfc18f4a03f14e08ea0e + value: quay.io/konflux-ci/tekton-catalog/task-buildah:0.2@sha256:71d3bb81d1c7c9f99946b5f1d4844664f2036636fd114cf5232db644bc088981 - name: kind value: task resolver: bundles @@ -331,7 +331,7 @@ spec: - name: name value: build-image-index - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-build-image-index:0.1@sha256:18eecec92fcdb96dc346aecbbe88fb5fd95e34ee6ef4ad714dc1303723a8e4ea + value: quay.io/konflux-ci/tekton-catalog/task-build-image-index:0.1@sha256:e4871851566d8b496966b37bcb8c5ce9748a52487f116373d96c6cd28ef684c6 - name: kind value: task resolver: bundles @@ -380,7 +380,7 @@ spec: - name: name value: deprecated-image-check - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-deprecated-image-check:0.4@sha256:d98fa9daf5ee12dfbf00880b83d092d01ce9994d79836548d2f82748bb0c64a2 + value: quay.io/konflux-ci/tekton-catalog/task-deprecated-image-check:0.4@sha256:592bbced9d8529c5391ecd3464a2276d25946514fe0b4fd91f2cdbe5730aa732 - name: kind value: task resolver: bundles @@ -402,7 +402,7 @@ spec: - name: name value: clair-scan - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-clair-scan:0.1@sha256:baea4be429cf8d91f7c758378cea42819fe324f25a7f957bf9805409cab6d123 + value: quay.io/konflux-ci/tekton-catalog/task-clair-scan:0.2@sha256:772233e807b0bb27e32566b3a6fe13da4c7588b573319a09b20c52c1225b0002 - name: kind value: task resolver: bundles @@ -444,7 +444,7 @@ spec: - name: name value: sast-snyk-check - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-sast-snyk-check:0.2@sha256:82c42d27c9c59db6cf6c235e89f7b37f5cdfc75d0d361ca0ee91ae703ba72301 + value: quay.io/konflux-ci/tekton-catalog/task-sast-snyk-check:0.2@sha256:60ef0fa39e101f007e0abfdaafa69f0ab71ebe443c8a0923e1892035acc91dda - name: kind value: task resolver: bundles @@ -469,7 +469,7 @@ spec: - name: name value: clamav-scan - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-clamav-scan:0.1@sha256:7bb17b937c9342f305468e8a6d0a22493e3ecde58977bd2ffc8b50e2fa234d58 + value: quay.io/konflux-ci/tekton-catalog/task-clamav-scan:0.1@sha256:412e96edae67c8a0ad9500756dab5b611e0a665535879902155060064a72f28e - name: kind value: task resolver: bundles @@ -510,7 +510,7 @@ spec: - name: name value: push-dockerfile - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-push-dockerfile:0.1@sha256:92d63edd09636f97961ca18fac14b67935179d2c14b4a4d5f8087c614e8c2bd9 + value: quay.io/konflux-ci/tekton-catalog/task-push-dockerfile:0.1@sha256:0d2b6d31dc8bc02c5493d7d28a163bb6c867be5f86c3a82388b0d5c69e18d352 - name: kind value: task resolver: bundles diff --git a/.tekton/koku-frontend-push.yaml b/.tekton/koku-frontend-push.yaml index 04d3ef2b4..9f27d0e64 100644 --- a/.tekton/koku-frontend-push.yaml +++ b/.tekton/koku-frontend-push.yaml @@ -191,7 +191,7 @@ spec: - name: name value: prefetch-dependencies - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-prefetch-dependencies:0.1@sha256:fd1fda0dcf53938860ae6fcba37f5572ae25ae02dba44c15754fb7ba7549fb5c + value: quay.io/konflux-ci/tekton-catalog/task-prefetch-dependencies:0.1@sha256:fe7234e3824d1e65d6a7aac352e7a6bbce623d90d8d7da9aceeee108ad2c61be - name: kind value: task resolver: bundles @@ -296,7 +296,7 @@ spec: - name: name value: buildah - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-buildah:0.2@sha256:a523f60203d90e149f96ec776b47ce85a7acfd6d634ddfc18f4a03f14e08ea0e + value: quay.io/konflux-ci/tekton-catalog/task-buildah:0.2@sha256:71d3bb81d1c7c9f99946b5f1d4844664f2036636fd114cf5232db644bc088981 - name: kind value: task resolver: bundles @@ -328,7 +328,7 @@ spec: - name: name value: build-image-index - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-build-image-index:0.1@sha256:18eecec92fcdb96dc346aecbbe88fb5fd95e34ee6ef4ad714dc1303723a8e4ea + value: quay.io/konflux-ci/tekton-catalog/task-build-image-index:0.1@sha256:e4871851566d8b496966b37bcb8c5ce9748a52487f116373d96c6cd28ef684c6 - name: kind value: task resolver: bundles @@ -377,7 +377,7 @@ spec: - name: name value: deprecated-image-check - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-deprecated-image-check:0.4@sha256:d98fa9daf5ee12dfbf00880b83d092d01ce9994d79836548d2f82748bb0c64a2 + value: quay.io/konflux-ci/tekton-catalog/task-deprecated-image-check:0.4@sha256:592bbced9d8529c5391ecd3464a2276d25946514fe0b4fd91f2cdbe5730aa732 - name: kind value: task resolver: bundles @@ -399,7 +399,7 @@ spec: - name: name value: clair-scan - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-clair-scan:0.1@sha256:baea4be429cf8d91f7c758378cea42819fe324f25a7f957bf9805409cab6d123 + value: quay.io/konflux-ci/tekton-catalog/task-clair-scan:0.2@sha256:772233e807b0bb27e32566b3a6fe13da4c7588b573319a09b20c52c1225b0002 - name: kind value: task resolver: bundles @@ -441,7 +441,7 @@ spec: - name: name value: sast-snyk-check - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-sast-snyk-check:0.2@sha256:82c42d27c9c59db6cf6c235e89f7b37f5cdfc75d0d361ca0ee91ae703ba72301 + value: quay.io/konflux-ci/tekton-catalog/task-sast-snyk-check:0.2@sha256:60ef0fa39e101f007e0abfdaafa69f0ab71ebe443c8a0923e1892035acc91dda - name: kind value: task resolver: bundles @@ -466,7 +466,7 @@ spec: - name: name value: clamav-scan - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-clamav-scan:0.1@sha256:7bb17b937c9342f305468e8a6d0a22493e3ecde58977bd2ffc8b50e2fa234d58 + value: quay.io/konflux-ci/tekton-catalog/task-clamav-scan:0.1@sha256:412e96edae67c8a0ad9500756dab5b611e0a665535879902155060064a72f28e - name: kind value: task resolver: bundles @@ -507,7 +507,7 @@ spec: - name: name value: push-dockerfile - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-push-dockerfile:0.1@sha256:92d63edd09636f97961ca18fac14b67935179d2c14b4a4d5f8087c614e8c2bd9 + value: quay.io/konflux-ci/tekton-catalog/task-push-dockerfile:0.1@sha256:0d2b6d31dc8bc02c5493d7d28a163bb6c867be5f86c3a82388b0d5c69e18d352 - name: kind value: task resolver: bundles From 8fef5df35395e215a1f8ac74bbaffd3b18a31267 Mon Sep 17 00:00:00 2001 From: Dan Labrecque Date: Thu, 19 Sep 2024 15:35:02 -0400 Subject: [PATCH 07/17] Dependency updates --- package-lock.json | 34 ++++++++++++++++++---------------- package.json | 8 ++++---- 2 files changed, 22 insertions(+), 20 deletions(-) diff --git a/package-lock.json b/package-lock.json index cc47f8fee..09e60902b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "license": "GNU AGPLv3", "dependencies": { "@patternfly/patternfly": "5.4.0", - "@patternfly/react-charts": "7.4.1", + "@patternfly/react-charts": "7.4.2", "@patternfly/react-component-groups": "^5.2.0", "@patternfly/react-core": "5.4.0", "@patternfly/react-icons": "5.4.0", @@ -21,7 +21,7 @@ "@redhat-cloud-services/frontend-components-notifications": "^4.1.0", "@redhat-cloud-services/frontend-components-translations": "^3.2.8", "@redhat-cloud-services/frontend-components-utilities": "^4.0.17", - "@redhat-cloud-services/rbac-client": "^2.2.2", + "@redhat-cloud-services/rbac-client": "^2.2.3", "@reduxjs/toolkit": "^2.2.7", "@unleash/proxy-client-react": "^4.3.1", "axios": "^1.7.7", @@ -56,7 +56,7 @@ "@testing-library/user-event": "^14.5.2", "@types/jest": "^29.5.13", "@types/qs": "^6.9.16", - "@types/react": "^18.3.7", + "@types/react": "^18.3.8", "@types/react-dom": "^18.3.0", "@types/react-redux": "^7.1.33", "@types/react-router-dom": "^5.3.3", @@ -67,7 +67,7 @@ "eslint": "^9.10.0", "eslint-plugin-formatjs": "^4.13.3", "eslint-plugin-jest-dom": "^5.4.0", - "eslint-plugin-jsdoc": "^50.2.3", + "eslint-plugin-jsdoc": "^50.2.4", "eslint-plugin-markdown": "^5.1.0", "eslint-plugin-patternfly-react": "^5.4.0", "eslint-plugin-prettier": "^5.2.1", @@ -2170,9 +2170,9 @@ "license": "MIT" }, "node_modules/@patternfly/react-charts": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@patternfly/react-charts/-/react-charts-7.4.1.tgz", - "integrity": "sha512-mjB61tMY2ApcmPP+02Vr4sY1s/Q1qfM8qufIxPiHcAfvW9aK2govrSiOKYpeof4/upOVSEbWpCPqEMA7EM8TMw==", + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/@patternfly/react-charts/-/react-charts-7.4.2.tgz", + "integrity": "sha512-R46g/xrCmAduc6aWth/z+qmDkkJxAN4RrPLFN8Kecy3Lwk115qqyuxBikXg4jEdGhycVDzzNXHS68XQEmxBYAg==", "license": "MIT", "dependencies": { "@patternfly/react-styles": "^5.4.0", @@ -2764,9 +2764,10 @@ } }, "node_modules/@redhat-cloud-services/rbac-client": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@redhat-cloud-services/rbac-client/-/rbac-client-2.2.2.tgz", - "integrity": "sha512-GsHHRyYcfh8BJaW9jdBuKLnA+n2YpfGU4kfibCS04BWQz+g8F6jF6gHhJAymHicN+lgvFo8Z1WvF4TRfI17qNg==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@redhat-cloud-services/rbac-client/-/rbac-client-2.2.3.tgz", + "integrity": "sha512-kyaSo8xtcU5ycrZ+12kjeIAxkcuVjyxutV3IjAs5SOQrO9DKhEJiWrWU0LtTHx7rbSigRuJ8OIx/GYh6S7t4SQ==", + "license": "Apache-2.0", "dependencies": { "@redhat-cloud-services/javascript-clients-shared": "^1.2.2", "axios": "^1.7.2", @@ -3930,9 +3931,9 @@ "dev": true }, "node_modules/@types/react": { - "version": "18.3.7", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.7.tgz", - "integrity": "sha512-KUnDCJF5+AiZd8owLIeVHqmW9yM4sqmDVf2JRJiBMFkGvkoZ4/WyV2lL4zVsoinmRS/W3FeEdZLEWFRofnT2FQ==", + "version": "18.3.8", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.8.tgz", + "integrity": "sha512-syBUrW3/XpnW4WJ41Pft+I+aPoDVbrBVQGEnbD7NijDGlVC+8gV/XKRY+7vMDlfPpbwYt0l1vd/Sj8bJGMbs9Q==", "license": "MIT", "dependencies": { "@types/prop-types": "*", @@ -8570,10 +8571,11 @@ "dev": true }, "node_modules/eslint-plugin-jsdoc": { - "version": "50.2.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-50.2.3.tgz", - "integrity": "sha512-aNh/dz3wSkyo53y2KWDCrA8fDuXDMtMVflcbesd8AFPgcF8ugOv9mJxC7qKB95R96nzCB91iEwU7MMznh/7okQ==", + "version": "50.2.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-50.2.4.tgz", + "integrity": "sha512-020jA+dXaXdb+TML3ZJBvpPmzwbNROjnYuTYi/g6A5QEmEjhptz4oPJDKkOGMIByNxsPpdTLzSU1HYVqebOX1w==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@es-joy/jsdoccomment": "~0.48.0", "are-docs-informative": "^0.0.2", diff --git a/package.json b/package.json index 01e518349..e1b2fa56b 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ }, "dependencies": { "@patternfly/patternfly": "5.4.0", - "@patternfly/react-charts": "7.4.1", + "@patternfly/react-charts": "7.4.2", "@patternfly/react-component-groups": "^5.2.0", "@patternfly/react-core": "5.4.0", "@patternfly/react-icons": "5.4.0", @@ -62,7 +62,7 @@ "@redhat-cloud-services/frontend-components-notifications": "^4.1.0", "@redhat-cloud-services/frontend-components-translations": "^3.2.8", "@redhat-cloud-services/frontend-components-utilities": "^4.0.17", - "@redhat-cloud-services/rbac-client": "^2.2.2", + "@redhat-cloud-services/rbac-client": "^2.2.3", "@reduxjs/toolkit": "^2.2.7", "@unleash/proxy-client-react": "^4.3.1", "axios": "^1.7.7", @@ -97,7 +97,7 @@ "@testing-library/user-event": "^14.5.2", "@types/jest": "^29.5.13", "@types/qs": "^6.9.16", - "@types/react": "^18.3.7", + "@types/react": "^18.3.8", "@types/react-dom": "^18.3.0", "@types/react-redux": "^7.1.33", "@types/react-router-dom": "^5.3.3", @@ -108,7 +108,7 @@ "eslint": "^9.10.0", "eslint-plugin-formatjs": "^4.13.3", "eslint-plugin-jest-dom": "^5.4.0", - "eslint-plugin-jsdoc": "^50.2.3", + "eslint-plugin-jsdoc": "^50.2.4", "eslint-plugin-markdown": "^5.1.0", "eslint-plugin-patternfly-react": "^5.4.0", "eslint-plugin-prettier": "^5.2.1", From 92d890d9dd9ffb924a6aa724f3d7d4531d67e2e4 Mon Sep 17 00:00:00 2001 From: Sam Doran Date: Thu, 19 Sep 2024 17:23:53 -0400 Subject: [PATCH 08/17] Update default image --- deploy/frontend.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deploy/frontend.yaml b/deploy/frontend.yaml index d66e3144d..b8c4ffce2 100644 --- a/deploy/frontend.yaml +++ b/deploy/frontend.yaml @@ -65,4 +65,4 @@ parameters: - name: IMAGE_TAG required: true - name: IMAGE - value: quay.io/cloudservices/hccm-frontend + value: quay.io/redhat-services-prod/cost-mgmt-dev-tenant/koku-frontend From 1bb69ceb0b208d48de8c9b0aed2bb559efa24706 Mon Sep 17 00:00:00 2001 From: Dan Labrecque Date: Fri, 20 Sep 2024 10:35:06 -0400 Subject: [PATCH 09/17] omit resource_id / account_id if it is identical to alias https://issues.redhat.com/browse/COST-5526 --- .../awsBreakdown/instances/instancesTable.tsx | 13 +++++++++---- src/routes/details/awsDetails/detailsTable.tsx | 8 ++++---- src/routes/details/azureDetails/detailsTable.tsx | 8 ++++---- src/routes/details/gcpDetails/detailsTable.tsx | 8 ++++---- src/routes/details/ibmDetails/detailsTable.tsx | 8 ++++---- src/routes/details/ociDetails/detailsTable.tsx | 8 ++++---- src/routes/details/ocpDetails/detailsTable.tsx | 8 ++++---- src/routes/details/rhelDetails/detailsTable.tsx | 8 ++++---- src/routes/explorer/explorerTable.tsx | 4 ++-- 9 files changed, 39 insertions(+), 34 deletions(-) diff --git a/src/routes/details/awsBreakdown/instances/instancesTable.tsx b/src/routes/details/awsBreakdown/instances/instancesTable.tsx index 698612349..41eb4be7d 100644 --- a/src/routes/details/awsBreakdown/instances/instancesTable.tsx +++ b/src/routes/details/awsBreakdown/instances/instancesTable.tsx @@ -133,22 +133,27 @@ const InstancesTable: React.FC = ({ const cost = getTotalCost(item); const actions = getActions(item); + const accountDesc = + item?.account !== item.account_alias ?
{item.account}
: null; + const instanceDesc = + item?.resource_id !== item.instance_name ?
{item.resource_id}
: null; + newRows.push({ cells: [ {}, // Empty cell for row selection { value: ( <> -
{item.instance_name ? item.instance_name : null}
-
{item.resource_id ? item.resource_id : null}
+ {item.instance_name ? item.instance_name : null} + {instanceDesc} ), }, { value: ( <> -
{item.account_alias ? item.account_alias : null}
-
{item.account ? item.account : null}
+ {item.account_alias ? item.account_alias : null} + {accountDesc} ), }, diff --git a/src/routes/details/awsDetails/detailsTable.tsx b/src/routes/details/awsDetails/detailsTable.tsx index 1e8f4d2fa..62b09cc5e 100644 --- a/src/routes/details/awsDetails/detailsTable.tsx +++ b/src/routes/details/awsDetails/detailsTable.tsx @@ -152,12 +152,12 @@ class DetailsTableBase extends React.Component { const cost = this.getTotalCost(item, index); const monthOverMonth = this.getMonthOverMonthCost(item, index); - const label = item && item.label && item.label !== null ? item.label : ''; + const label = item?.label && item.label !== null ? item.label : ''; const isDisabled = label === `${noPrefix}${groupBy}` || label === `${noPrefix}${groupByCostCategory}` || label === `${noPrefix}${groupByTagKey}`; - const desc = item.id && item.id !== item.label ?
{item.id}
: null; + const desc = item?.id !== item.label ?
{item.id}
: null; const actions = this.getActions(item, isDisabled); const name = isDisabled ? ( @@ -190,10 +190,10 @@ class DetailsTableBase extends React.Component + <> {name} {desc} -
+ ), }, { value: monthOverMonth }, diff --git a/src/routes/details/azureDetails/detailsTable.tsx b/src/routes/details/azureDetails/detailsTable.tsx index 94a34217a..0894e7c36 100644 --- a/src/routes/details/azureDetails/detailsTable.tsx +++ b/src/routes/details/azureDetails/detailsTable.tsx @@ -127,10 +127,10 @@ class DetailsTableBase extends React.Component { const cost = this.getTotalCost(item, index); - const label = item && item.label && item.label !== null ? item.label : ''; + const label = item?.label && item.label !== null ? item.label : ''; const monthOverMonth = this.getMonthOverMonthCost(item, index); const isDisabled = label === `${noPrefix}${groupBy}` || label === `${noPrefix}${groupByTagKey}`; - const desc = item.id && item.id !== item.label ?
{item.id}
: null; + const desc = item?.id !== item.label ?
{item.id}
: null; const actions = this.getActions(item, isDisabled); const name = isDisabled ? ( @@ -161,10 +161,10 @@ class DetailsTableBase extends React.Component + <> {name} {desc} -
+ ), }, { value: monthOverMonth }, diff --git a/src/routes/details/gcpDetails/detailsTable.tsx b/src/routes/details/gcpDetails/detailsTable.tsx index 2987916e5..524a9edab 100644 --- a/src/routes/details/gcpDetails/detailsTable.tsx +++ b/src/routes/details/gcpDetails/detailsTable.tsx @@ -127,10 +127,10 @@ class DetailsTableBase extends React.Component { const cost = this.getTotalCost(item, index); - const label = item && item.label !== null ? item.label : ''; + const label = item?.label !== null ? item.label : ''; const monthOverMonth = this.getMonthOverMonthCost(item, index); const isDisabled = label === `${noPrefix}${groupBy}` || label === `${noPrefix}${groupByTagKey}`; - const desc = item.id && item.id !== item.label ?
{item.id}
: null; + const desc = item?.id !== item.label ?
{item.id}
: null; const actions = this.getActions(item, isDisabled); const name = isDisabled ? ( @@ -161,10 +161,10 @@ class DetailsTableBase extends React.Component + <> {name} {desc} -
+ ), }, { value: monthOverMonth }, diff --git a/src/routes/details/ibmDetails/detailsTable.tsx b/src/routes/details/ibmDetails/detailsTable.tsx index 287d120b9..4f1b8d2d4 100644 --- a/src/routes/details/ibmDetails/detailsTable.tsx +++ b/src/routes/details/ibmDetails/detailsTable.tsx @@ -127,10 +127,10 @@ class DetailsTableBase extends React.Component { const cost = this.getTotalCost(item, index); - const label = item && item.label !== null ? item.label : ''; + const label = item?.label !== null ? item.label : ''; const monthOverMonth = this.getMonthOverMonthCost(item, index); const isDisabled = label === `${noPrefix}${groupBy}` || label === `${noPrefix}${groupByTagKey}`; - const desc = item.id && item.id !== item.label ?
{item.id}
: null; + const desc = item?.id !== item.label ?
{item.id}
: null; const actions = this.getActions(item, isDisabled); const name = isDisabled ? ( @@ -161,10 +161,10 @@ class DetailsTableBase extends React.Component + <> {name} {desc} -
+ ), }, { value: monthOverMonth }, diff --git a/src/routes/details/ociDetails/detailsTable.tsx b/src/routes/details/ociDetails/detailsTable.tsx index e3ec79e61..69b61c5ec 100644 --- a/src/routes/details/ociDetails/detailsTable.tsx +++ b/src/routes/details/ociDetails/detailsTable.tsx @@ -127,10 +127,10 @@ class DetailsTableBase extends React.Component { const cost = this.getTotalCost(item, index); - const label = item && item.label !== null ? item.label : ''; + const label = item?.label !== null ? item.label : ''; const monthOverMonth = this.getMonthOverMonthCost(item, index); const isDisabled = label === `${noPrefix}${groupBy}` || label === `${noPrefix}${groupByTagKey}`; - const desc = item.id && item.id !== item.label ?
{item.id}
: null; + const desc = item?.id !== item.label ?
{item.id}
: null; const actions = this.getActions(item, isDisabled); const name = isDisabled ? ( @@ -161,10 +161,10 @@ class DetailsTableBase extends React.Component + <> {name} {desc} -
+ ), }, { value: monthOverMonth }, diff --git a/src/routes/details/ocpDetails/detailsTable.tsx b/src/routes/details/ocpDetails/detailsTable.tsx index 583e5f41d..7a63d2852 100644 --- a/src/routes/details/ocpDetails/detailsTable.tsx +++ b/src/routes/details/ocpDetails/detailsTable.tsx @@ -212,7 +212,7 @@ class DetailsTableBase extends React.Component { const cost = this.getTotalCost(item, index); - const label = item && item.label !== null ? item.label : ''; + const label = item?.label !== null ? item.label : ''; const monthOverMonth = this.getMonthOverMonthCost(item, index); const supplementaryCost = this.getSupplementaryCost(item, index); const InfrastructureCost = this.getInfrastructureCost(item, index); @@ -227,7 +227,7 @@ class DetailsTableBase extends React.Component 0 || item.cost?.storageUnattributedDistributed?.value > 0 || item.cost?.workerUnallocatedDistributed?.value > 0); - const desc = item.id && item.id !== item.label ?
{item.id}
: null; + const desc = item?.id !== item.label ?
{item.id}
: null; const isDisabled = label === `${noPrefix}${groupBy}` || label === `${noPrefix}${groupByTagKey}`; const isLinkDisabled = isDisabled || isUnallocatedProject || isUnattributedCosts; const actions = this.getActions(item, isDisabled); @@ -262,8 +262,8 @@ class DetailsTableBase extends React.Component -
{name}
-
{desc}
+ {name} + {desc} ), }, diff --git a/src/routes/details/rhelDetails/detailsTable.tsx b/src/routes/details/rhelDetails/detailsTable.tsx index 425aad110..5be425e40 100644 --- a/src/routes/details/rhelDetails/detailsTable.tsx +++ b/src/routes/details/rhelDetails/detailsTable.tsx @@ -191,11 +191,11 @@ class DetailsTableBase extends React.Component { const cost = this.getTotalCost(item, index); - const label = item && item.label !== null ? item.label : ''; + const label = item?.label !== null ? item.label : ''; const monthOverMonth = this.getMonthOverMonthCost(item, index); const supplementaryCost = this.getSupplementaryCost(item, index); const InfrastructureCost = this.getInfrastructureCost(item, index); - const desc = item.id && item.id !== item.label ?
{item.id}
: null; + const desc = item?.id !== item.label ?
{item.id}
: null; const isDisabled = label === `${noPrefix}${groupBy}` || label === `${noPrefix}${groupByTagKey}`; const actions = this.getActions(item, isDisabled); @@ -228,8 +228,8 @@ class DetailsTableBase extends React.Component -
{name}
-
{desc}
+ {name} + {desc} ), }, diff --git a/src/routes/explorer/explorerTable.tsx b/src/routes/explorer/explorerTable.tsx index daad735bf..7089bd11e 100644 --- a/src/routes/explorer/explorerTable.tsx +++ b/src/routes/explorer/explorerTable.tsx @@ -250,10 +250,10 @@ class ExplorerTableBase extends React.Component { if (!name) { - name = item?.label && item?.label !== null ? item.label : null; + name = item?.label !== null ? item.label : null; } if (!desc) { - desc = item.id && item.id !== item.label ?
{item.id}
: null; + desc = item?.id !== item.label ?
{item.id}
: null; } if (!tooltipContent) { tooltipContent = ( From 241f18dae8fc9abe1021315e1a25e36ab32e381e Mon Sep 17 00:00:00 2001 From: Dan Labrecque Date: Fri, 20 Sep 2024 12:46:46 -0400 Subject: [PATCH 10/17] EC2 page should use a common filter key https://issues.redhat.com/browse/COST-5524 --- src/api/resources/resource.ts | 2 +- src/routes/details/awsBreakdown/instances/instancesToolbar.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/api/resources/resource.ts b/src/api/resources/resource.ts index 076859a5c..9f8817a65 100644 --- a/src/api/resources/resource.ts +++ b/src/api/resources/resource.ts @@ -13,7 +13,7 @@ export type Resource = PagedResponse; export const enum ResourceType { account = 'account', aws_category = 'aws_category', - aws_ec2_instance = 'instance_name', + aws_ec2_instance = 'instance', aws_ec2_os = 'operating_system', cluster = 'cluster', gcpProject = 'gcp_project', diff --git a/src/routes/details/awsBreakdown/instances/instancesToolbar.tsx b/src/routes/details/awsBreakdown/instances/instancesToolbar.tsx index 0f899d2df..fd3d60f96 100644 --- a/src/routes/details/awsBreakdown/instances/instancesToolbar.tsx +++ b/src/routes/details/awsBreakdown/instances/instancesToolbar.tsx @@ -100,7 +100,7 @@ export class InstancesToolbarBase extends React.Component Date: Fri, 20 Sep 2024 13:53:58 -0400 Subject: [PATCH 11/17] add support for cost-management.ui.ocp-cloud-group-bys Unleash flag --- src/components/featureToggle/featureToggle.tsx | 8 ++++++++ .../__snapshots__/featureToggle.test.ts.snap | 1 + src/store/featureToggle/featureToggleActions.ts | 1 + src/store/featureToggle/featureToggleReducer.ts | 3 +++ src/store/featureToggle/featureToggleSelectors.ts | 2 ++ 5 files changed, 15 insertions(+) diff --git a/src/components/featureToggle/featureToggle.tsx b/src/components/featureToggle/featureToggle.tsx index 5f7dffc55..e19eac088 100644 --- a/src/components/featureToggle/featureToggle.tsx +++ b/src/components/featureToggle/featureToggle.tsx @@ -11,6 +11,7 @@ export const enum FeatureToggle { exports = 'cost-management.ui.exports', // Async exports https://issues.redhat.com/browse/COST-2223 finsights = 'cost-management.ui.finsights', // RHEL support for FINsights https://issues.redhat.com/browse/COST-3306 ibm = 'cost-management.ui.ibm', // IBM https://issues.redhat.com/browse/COST-935 + ocpCloudGroupBys = 'cost-management.ui.ocp-cloud-group-bys', // https://issues.redhat.com/browse/COST-5514 ocpCloudNetworking = 'cost-management.ui.ocp-cloud-networking', // https://issues.redhat.com/browse/COST-4781 ocpProjectStorage = 'cost-management.ui.ocp-project-storage', // https://issues.redhat.com/browse/COST-4856 ros = 'cost-management.ui.ros', // ROS support https://issues.redhat.com/browse/COST-3477 @@ -45,6 +46,10 @@ export const useIsIbmToggleEnabled = () => { return useIsToggleEnabled(FeatureToggle.ibm); }; +export const useIsOcpCloudGroupBysToggleEnabled = () => { + return useIsToggleEnabled(FeatureToggle.ocpCloudGroupBys); +}; + export const useIsOcpCloudNetworkingToggleEnabled = () => { return useIsToggleEnabled(FeatureToggle.ocpCloudNetworking); }; @@ -68,6 +73,7 @@ export const useFeatureToggle = () => { const isExportsToggleEnabled = useIsExportsToggleEnabled(); const isFinsightsToggleEnabled = useIsFinsightsToggleEnabled(); const isIbmToggleEnabled = useIsIbmToggleEnabled(); + const isOcpCloudGroupBysToggleEnabled = useIsOcpCloudGroupBysToggleEnabled(); const isOcpCloudNetworkingToggleEnabled = useIsOcpCloudNetworkingToggleEnabled(); const isOcpProjectStorageToggleEnabled = useIsOcpProjectStorageToggleEnabled(); const isRosToggleEnabled = useIsRosToggleEnabled(); @@ -88,6 +94,7 @@ export const useFeatureToggle = () => { isExportsToggleEnabled, isFinsightsToggleEnabled, isIbmToggleEnabled, + isOcpCloudGroupBysToggleEnabled, isOcpCloudNetworkingToggleEnabled, isOcpProjectStorageToggleEnabled, isRosToggleEnabled, @@ -104,6 +111,7 @@ export const useFeatureToggle = () => { isExportsToggleEnabled, isFinsightsToggleEnabled, isIbmToggleEnabled, + isOcpCloudGroupBysToggleEnabled, isOcpCloudNetworkingToggleEnabled, isOcpProjectStorageToggleEnabled, isRosToggleEnabled, diff --git a/src/store/featureToggle/__snapshots__/featureToggle.test.ts.snap b/src/store/featureToggle/__snapshots__/featureToggle.test.ts.snap index 226af3c9a..d83a00e99 100644 --- a/src/store/featureToggle/__snapshots__/featureToggle.test.ts.snap +++ b/src/store/featureToggle/__snapshots__/featureToggle.test.ts.snap @@ -9,6 +9,7 @@ exports[`default state 1`] = ` "isExportsToggleEnabled": false, "isFinsightsToggleEnabled": false, "isIbmToggleEnabled": false, + "isOcpCloudGroupBysToggleEnabled": false, "isOcpCloudNetworkingToggleEnabled": false, "isOcpProjectStorageToggleEnabled": false, "isRosToggleEnabled": false, diff --git a/src/store/featureToggle/featureToggleActions.ts b/src/store/featureToggle/featureToggleActions.ts index ba6ffc57b..355af1728 100644 --- a/src/store/featureToggle/featureToggleActions.ts +++ b/src/store/featureToggle/featureToggleActions.ts @@ -7,6 +7,7 @@ export interface FeatureToggleActionMeta { isExportsToggleEnabled?: boolean; isFinsightsToggleEnabled?: boolean; isIbmToggleEnabled?: boolean; + isOcpCloudGroupBysToggleEnabled?: boolean; isOcpCloudNetworkingToggleEnabled?: boolean; isOcpProjectStorageToggleEnabled?: boolean; isRosToggleEnabled?: boolean; diff --git a/src/store/featureToggle/featureToggleReducer.ts b/src/store/featureToggle/featureToggleReducer.ts index c2208bd68..fadc7a4b2 100644 --- a/src/store/featureToggle/featureToggleReducer.ts +++ b/src/store/featureToggle/featureToggleReducer.ts @@ -14,6 +14,7 @@ export type FeatureToggleState = Readonly<{ isExportsToggleEnabled: boolean; isFinsightsToggleEnabled: boolean; isIbmToggleEnabled: boolean; + isOcpCloudGroupBysToggleEnabled: boolean; isOcpCloudNetworkingToggleEnabled: boolean; isOcpProjectStorageToggleEnabled: boolean; isRosToggleEnabled: boolean; @@ -27,6 +28,7 @@ export const defaultState: FeatureToggleState = { isExportsToggleEnabled: false, isFinsightsToggleEnabled: false, isIbmToggleEnabled: false, + isOcpCloudGroupBysToggleEnabled: false, isOcpCloudNetworkingToggleEnabled: false, isOcpProjectStorageToggleEnabled: false, isRosToggleEnabled: false, @@ -46,6 +48,7 @@ export function FeatureToggleReducer(state = defaultState, action: FeatureToggle isExportsToggleEnabled: action.payload.isExportsToggleEnabled, isFinsightsToggleEnabled: action.payload.isFinsightsToggleEnabled, isIbmToggleEnabled: action.payload.isIbmToggleEnabled, + isOcpCloudGroupBysToggleEnabled: action.payload.isOcpCloudGroupBysToggleEnabled, isOcpCloudNetworkingToggleEnabled: action.payload.isOcpCloudNetworkingToggleEnabled, isOcpProjectStorageToggleEnabled: action.payload.isOcpProjectStorageToggleEnabled, isRosToggleEnabled: action.payload.isRosToggleEnabled, diff --git a/src/store/featureToggle/featureToggleSelectors.ts b/src/store/featureToggle/featureToggleSelectors.ts index 57e296873..fdd6cc603 100644 --- a/src/store/featureToggle/featureToggleSelectors.ts +++ b/src/store/featureToggle/featureToggleSelectors.ts @@ -16,6 +16,8 @@ export const selectIsExportsToggleEnabled = (state: RootState) => export const selectIsFinsightsToggleEnabled = (state: RootState) => selectFeatureToggleState(state).isFinsightsToggleEnabled; export const selectIsIbmToggleEnabled = (state: RootState) => selectFeatureToggleState(state).isIbmToggleEnabled; +export const selectIsOcpCloudGroupBysToggleEnabled = (state: RootState) => + selectFeatureToggleState(state).isOcpCloudGroupBysToggleEnabled; export const selectIsOcpCloudNetworkingToggleEnabled = (state: RootState) => selectFeatureToggleState(state).isOcpCloudNetworkingToggleEnabled; export const selectIsOcpProjectStorageToggleEnabled = (state: RootState) => From 91e8cab0b1a333582aa229ca5dc6b89478dd5629 Mon Sep 17 00:00:00 2001 From: Dan Labrecque Date: Fri, 20 Sep 2024 15:02:04 -0400 Subject: [PATCH 12/17] Remove unused Unleash flags --- .../featureToggle/featureToggle.tsx | 24 ---------- src/components/permissions/permissions.tsx | 5 +- .../historicalCostChart.test.tsx.snap | 20 ++++---- .../historicalCostChart.tsx | 7 ++- .../historicalUsageChart.tsx | 7 ++- .../components/breakdown/breakdownBase.tsx | 4 +- .../costOverview/costOverviewBase.tsx | 6 --- .../historicalData/historicalDataBase.tsx | 8 ++-- .../details/ocpBreakdown/costOverview.tsx | 2 - .../details/ocpBreakdown/historicalData.tsx | 3 -- .../details/ocpBreakdown/ocpBreakdown.tsx | 2 - .../details/ocpDetails/detailsTable.tsx | 8 ++-- src/routes/details/ocpDetails/ocpDetails.tsx | 6 +-- .../components/dashboardWidgetBase.tsx | 5 +- .../ocpDashboard/ocpDashboardWidget.tsx | 4 -- .../costModels/costModel/distribution.tsx | 31 +++++------- .../costModel/updateDistributionDialog.tsx | 48 ++++++------------- .../costModelWizard/distribution.tsx | 43 +++++++---------- .../costModels/costModelWizard/review.tsx | 43 +++++++---------- .../__snapshots__/featureToggle.test.ts.snap | 3 -- src/store/featureToggle/featureToggle.test.ts | 24 ++++------ .../featureToggle/featureToggleActions.ts | 3 -- .../featureToggle/featureToggleReducer.ts | 9 ---- .../featureToggle/featureToggleSelectors.ts | 5 -- 24 files changed, 103 insertions(+), 217 deletions(-) diff --git a/src/components/featureToggle/featureToggle.tsx b/src/components/featureToggle/featureToggle.tsx index e19eac088..a9b74de2f 100644 --- a/src/components/featureToggle/featureToggle.tsx +++ b/src/components/featureToggle/featureToggle.tsx @@ -12,9 +12,6 @@ export const enum FeatureToggle { finsights = 'cost-management.ui.finsights', // RHEL support for FINsights https://issues.redhat.com/browse/COST-3306 ibm = 'cost-management.ui.ibm', // IBM https://issues.redhat.com/browse/COST-935 ocpCloudGroupBys = 'cost-management.ui.ocp-cloud-group-bys', // https://issues.redhat.com/browse/COST-5514 - ocpCloudNetworking = 'cost-management.ui.ocp-cloud-networking', // https://issues.redhat.com/browse/COST-4781 - ocpProjectStorage = 'cost-management.ui.ocp-project-storage', // https://issues.redhat.com/browse/COST-4856 - ros = 'cost-management.ui.ros', // ROS support https://issues.redhat.com/browse/COST-3477 } const useIsToggleEnabled = (toggle: FeatureToggle) => { @@ -50,18 +47,6 @@ export const useIsOcpCloudGroupBysToggleEnabled = () => { return useIsToggleEnabled(FeatureToggle.ocpCloudGroupBys); }; -export const useIsOcpCloudNetworkingToggleEnabled = () => { - return useIsToggleEnabled(FeatureToggle.ocpCloudNetworking); -}; - -export const useIsOcpProjectStorageToggleEnabled = () => { - return useIsToggleEnabled(FeatureToggle.ocpProjectStorage); -}; - -export const useIsRosToggleEnabled = () => { - return useIsToggleEnabled(FeatureToggle.ros); -}; - // The FeatureToggle component saves feature toggles in store for places where Unleash hooks not available export const useFeatureToggle = () => { const dispatch = useDispatch(); @@ -74,9 +59,6 @@ export const useFeatureToggle = () => { const isFinsightsToggleEnabled = useIsFinsightsToggleEnabled(); const isIbmToggleEnabled = useIsIbmToggleEnabled(); const isOcpCloudGroupBysToggleEnabled = useIsOcpCloudGroupBysToggleEnabled(); - const isOcpCloudNetworkingToggleEnabled = useIsOcpCloudNetworkingToggleEnabled(); - const isOcpProjectStorageToggleEnabled = useIsOcpProjectStorageToggleEnabled(); - const isRosToggleEnabled = useIsRosToggleEnabled(); const fetchUser = callback => { auth.getUser().then(user => { @@ -95,9 +77,6 @@ export const useFeatureToggle = () => { isFinsightsToggleEnabled, isIbmToggleEnabled, isOcpCloudGroupBysToggleEnabled, - isOcpCloudNetworkingToggleEnabled, - isOcpProjectStorageToggleEnabled, - isRosToggleEnabled, }) ); if (isDebugToggleEnabled) { @@ -112,9 +91,6 @@ export const useFeatureToggle = () => { isFinsightsToggleEnabled, isIbmToggleEnabled, isOcpCloudGroupBysToggleEnabled, - isOcpCloudNetworkingToggleEnabled, - isOcpProjectStorageToggleEnabled, - isRosToggleEnabled, ]); }; diff --git a/src/components/permissions/permissions.tsx b/src/components/permissions/permissions.tsx index 3ad91ede1..e145ee677 100644 --- a/src/components/permissions/permissions.tsx +++ b/src/components/permissions/permissions.tsx @@ -34,7 +34,6 @@ interface PermissionsOwnProps extends ChromeComponentProps { interface PermissionsStateProps { isFinsightsToggleEnabled?: boolean; isIbmToggleEnabled?: boolean; - isRosToggleEnabled?: boolean; userAccess: UserAccess; userAccessError: AxiosError; userAccessFetchStatus: FetchStatus; @@ -48,7 +47,6 @@ const PermissionsBase: React.FC = ({ // chrome, isFinsightsToggleEnabled, isIbmToggleEnabled, - isRosToggleEnabled, userAccess, userAccessError, userAccessFetchStatus, @@ -66,7 +64,7 @@ const PermissionsBase: React.FC = ({ const oci = hasOciAccess(userAccess); const ocp = hasOcpAccess(userAccess); const rhel = isFinsightsToggleEnabled && hasRhelAccess(userAccess); - const ros = isRosToggleEnabled && hasRosAccess(userAccess); + const ros = hasRosAccess(userAccess); const settings = costModel || hasSettingsAccess(userAccess); switch (pathname) { @@ -135,7 +133,6 @@ const mapStateToProps = createMapStateToProps { return this.getChart(s, index); })} - +
diff --git a/src/routes/components/charts/historicalUsageChart/historicalUsageChart.tsx b/src/routes/components/charts/historicalUsageChart/historicalUsageChart.tsx index afba816e7..c77b54ae7 100644 --- a/src/routes/components/charts/historicalUsageChart/historicalUsageChart.tsx +++ b/src/routes/components/charts/historicalUsageChart/historicalUsageChart.tsx @@ -405,7 +405,12 @@ class HistoricalUsageChartBase extends React.Component { return this.getChart(s, index); })} - +
diff --git a/src/routes/details/components/breakdown/breakdownBase.tsx b/src/routes/details/components/breakdown/breakdownBase.tsx index fbf20ea0c..69d0dc8e3 100644 --- a/src/routes/details/components/breakdown/breakdownBase.tsx +++ b/src/routes/details/components/breakdown/breakdownBase.tsx @@ -71,7 +71,6 @@ export interface BreakdownStateProps { instancesComponent?: React.ReactNode; isAwsEc2InstancesToggleEnabled?: boolean; isOptimizationsTab?: boolean; - isRosToggleEnabled?: boolean; optimizationsBadgeComponent?: React.ReactNode; optimizationsComponent?: React.ReactNode; providers?: Providers; @@ -136,7 +135,6 @@ class BreakdownBase extends React.Component { historicalDataComponent, instancesComponent, isAwsEc2InstancesToggleEnabled, - isRosToggleEnabled, optimizationsComponent, } = this.props; @@ -159,7 +157,7 @@ class BreakdownBase extends React.Component { tab: BreakdownTab.instances, }); } - if (optimizationsComponent && isRosToggleEnabled) { + if (optimizationsComponent) { availableTabs.push({ contentRef: React.createRef(), showBadge: true, diff --git a/src/routes/details/components/costOverview/costOverviewBase.tsx b/src/routes/details/components/costOverview/costOverviewBase.tsx index 4875c98c9..0cae77a3c 100644 --- a/src/routes/details/components/costOverview/costOverviewBase.tsx +++ b/src/routes/details/components/costOverview/costOverviewBase.tsx @@ -43,7 +43,6 @@ interface CostOverviewOwnProps { } export interface CostOverviewStateProps { - isOcpProjectStorageToggleEnabled?: boolean; selectWidgets?: Record; title?: string; widgets: number[]; @@ -358,8 +357,6 @@ class CostOverviewsBase extends React.Component { // Returns rendered widget based on type private renderWidget(widget: CostOverviewWidget) { - const { isOcpProjectStorageToggleEnabled } = this.props; - switch (widget.type) { case CostOverviewWidgetType.cluster: return this.getClusterCard(widget); @@ -374,9 +371,6 @@ class CostOverviewsBase extends React.Component { case CostOverviewWidgetType.pvc: return this.getPvcChart(widget); case CostOverviewWidgetType.reportSummary: - if (widget.reportType === ReportType.volume && !isOcpProjectStorageToggleEnabled) { - return null; - } return this.getReportSummaryCard(widget); case CostOverviewWidgetType.volumeUsage: return this.getVolumeUsageChart(widget); diff --git a/src/routes/details/components/historicalData/historicalDataBase.tsx b/src/routes/details/components/historicalData/historicalDataBase.tsx index e08e614b7..b791d0b0e 100644 --- a/src/routes/details/components/historicalData/historicalDataBase.tsx +++ b/src/routes/details/components/historicalData/historicalDataBase.tsx @@ -21,8 +21,6 @@ interface HistoricalDataOwnProps { } export interface HistoricalDataStateProps { - isOcpCloudNetworkingToggleEnabled?: boolean; - isOcpProjectStorageToggleEnabled?: boolean; selectWidgets?: Record; widgets: number[]; } @@ -190,7 +188,7 @@ class HistoricalDatasBase extends React.Component { // Returns rendered widget based on type private renderWidget(widgetId: number) { - const { isOcpCloudNetworkingToggleEnabled, isOcpProjectStorageToggleEnabled, selectWidgets } = this.props; + const { selectWidgets } = this.props; const widget = selectWidgets[widgetId]; let result = null; @@ -200,7 +198,7 @@ class HistoricalDatasBase extends React.Component { result = this.getCostChart(widget); break; case HistoricalDataWidgetType.network: - result = isOcpCloudNetworkingToggleEnabled ? this.getNetworkChart(widget) : null; + result = this.getNetworkChart(widget); break; case HistoricalDataWidgetType.trend: result = this.getTrendChart(widget); @@ -209,7 +207,7 @@ class HistoricalDatasBase extends React.Component { result = this.getUsageChart(widget); break; case HistoricalDataWidgetType.volume: - result = isOcpProjectStorageToggleEnabled ? this.getVolumeChart(widget) : null; + result = this.getVolumeChart(widget); break; } return result !== null ? {result} : null; diff --git a/src/routes/details/ocpBreakdown/costOverview.tsx b/src/routes/details/ocpBreakdown/costOverview.tsx index 047a596d3..a88eb69d2 100644 --- a/src/routes/details/ocpBreakdown/costOverview.tsx +++ b/src/routes/details/ocpBreakdown/costOverview.tsx @@ -3,7 +3,6 @@ import type { CostOverviewStateProps } from 'routes/details/components/costOverv import { CostOverviewBase } from 'routes/details/components/costOverview'; import { ocpCostOverviewSelectors } from 'store/breakdown/costOverview/ocpCostOverview'; import { createMapStateToProps } from 'store/common'; -import { FeatureToggleSelectors } from 'store/featureToggle'; interface OcpCostOverviewOwnProps { title?: string; @@ -11,7 +10,6 @@ interface OcpCostOverviewOwnProps { const mapStateToProps = createMapStateToProps((state, { title }) => { return { - isOcpProjectStorageToggleEnabled: FeatureToggleSelectors.selectIsOcpProjectStorageToggleEnabled(state), selectWidgets: ocpCostOverviewSelectors.selectWidgets(state), widgets: ocpCostOverviewSelectors.selectCurrentWidgets(state), title, diff --git a/src/routes/details/ocpBreakdown/historicalData.tsx b/src/routes/details/ocpBreakdown/historicalData.tsx index 0913d1b66..4ec1caf74 100644 --- a/src/routes/details/ocpBreakdown/historicalData.tsx +++ b/src/routes/details/ocpBreakdown/historicalData.tsx @@ -3,7 +3,6 @@ import type { HistoricalDataStateProps } from 'routes/details/components/histori import { HistoricalDataBase } from 'routes/details/components/historicalData'; import { ocpHistoricalDataSelectors } from 'store/breakdown/historicalData/ocpHistoricalData'; import { createMapStateToProps } from 'store/common'; -import { FeatureToggleSelectors } from 'store/featureToggle'; interface OcpHistoricalDataOwnProps { // TBD... @@ -12,8 +11,6 @@ interface OcpHistoricalDataOwnProps { // eslint-disable-next-line @typescript-eslint/no-unused-vars const mapStateToProps = createMapStateToProps((state, props) => { return { - isOcpCloudNetworkingToggleEnabled: FeatureToggleSelectors.selectIsOcpCloudNetworkingToggleEnabled(state), - isOcpProjectStorageToggleEnabled: FeatureToggleSelectors.selectIsOcpProjectStorageToggleEnabled(state), selectWidgets: ocpHistoricalDataSelectors.selectWidgets(state), widgets: ocpHistoricalDataSelectors.selectCurrentWidgets(state), }; diff --git a/src/routes/details/ocpBreakdown/ocpBreakdown.tsx b/src/routes/details/ocpBreakdown/ocpBreakdown.tsx index cfe1c2a2e..bd9483270 100644 --- a/src/routes/details/ocpBreakdown/ocpBreakdown.tsx +++ b/src/routes/details/ocpBreakdown/ocpBreakdown.tsx @@ -18,7 +18,6 @@ import { getGroupById, getGroupByValue } from 'routes/utils/groupBy'; import { filterProviders } from 'routes/utils/providers'; import { getQueryState } from 'routes/utils/queryState'; import { createMapStateToProps } from 'store/common'; -import { FeatureToggleSelectors } from 'store/featureToggle'; import { providersQuery, providersSelectors } from 'store/providers'; import { reportActions, reportSelectors } from 'store/reports'; import { uiActions } from 'store/ui'; @@ -125,7 +124,6 @@ const mapStateToProps = createMapStateToProps ), isOptimizationsTab: queryFromRoute.optimizationsTab !== undefined, - isRosToggleEnabled: FeatureToggleSelectors.selectIsRosToggleEnabled(state), optimizationsComponent: groupBy === 'project' && groupByValue !== '*' ? : undefined, providers: filterProviders(providers, ProviderType.ocp), providersFetchStatus, diff --git a/src/routes/details/ocpDetails/detailsTable.tsx b/src/routes/details/ocpDetails/detailsTable.tsx index 7a63d2852..c994c8db6 100644 --- a/src/routes/details/ocpDetails/detailsTable.tsx +++ b/src/routes/details/ocpDetails/detailsTable.tsx @@ -40,7 +40,6 @@ interface DetailsTableOwnProps extends RouterComponentProps, WrappedComponentPro hiddenColumns?: Set; isAllSelected?: boolean; isLoading?: boolean; - isRosToggleEnabled?: boolean; onSelect(items: ComputedReportItem[], isSelected: boolean); onSort(sortType: string, isSortAscending: boolean); orderBy?: any; @@ -100,7 +99,6 @@ class DetailsTableBase extends React.Component { }; private getTable = () => { - const { costDistribution, isRosToggleEnabled, query, report, reportFetchStatus, reportQueryString, router } = - this.props; + const { costDistribution, query, report, reportFetchStatus, reportQueryString, router } = this.props; const { hiddenColumns, isAllSelected, selectedItems } = this.state; const groupById = getIdKeyForGroupBy(query.group_by); @@ -269,7 +267,6 @@ class OcpDetails extends React.Component { hiddenColumns={hiddenColumns} isAllSelected={isAllSelected} isLoading={reportFetchStatus === FetchStatus.inProgress} - isRosToggleEnabled={isRosToggleEnabled} onSelect={this.handleOnSelect} onSort={(sortType, isSortAscending) => handleOnSort(query, router, sortType, isSortAscending)} orderBy={query.order_by} @@ -531,7 +528,6 @@ const mapStateToProps = createMapStateToProps string; - isRosToggleEnabled?: boolean; previousReport?: Report; previousReportError?: AxiosError; previousReportFetchStatus?: number; @@ -572,9 +571,9 @@ class DashboardWidgetBase extends React.Component = ({ isUpdateDialogOpen, }) => { const intl = useIntl(); - const isOcpCloudNetworkingToggleEnabled = useIsOcpCloudNetworkingToggleEnabled(); - const isOcpProjectStorageToggleEnabled = useIsOcpProjectStorageToggleEnabled(); return ( <> @@ -74,22 +71,18 @@ const DistributionCardBase: React.FC = ({ value: current.distribution_info.worker_cost, })} - {isOcpCloudNetworkingToggleEnabled && ( -
- {intl.formatMessage(messages.distributeCosts, { - value: current.distribution_info.network_unattributed || false, - type: 'network', - })} -
- )} - {isOcpProjectStorageToggleEnabled && ( -
- {intl.formatMessage(messages.distributeCosts, { - value: current.distribution_info.storage_unattributed || false, - type: 'storage', - })} -
- )} +
+ {intl.formatMessage(messages.distributeCosts, { + value: current.distribution_info.network_unattributed || false, + type: 'network', + })} +
+
+ {intl.formatMessage(messages.distributeCosts, { + value: current.distribution_info.storage_unattributed || false, + type: 'storage', + })} +
diff --git a/src/routes/settings/costModels/costModel/updateDistributionDialog.tsx b/src/routes/settings/costModels/costModel/updateDistributionDialog.tsx index 8d9ff31b9..8d0dd5414 100644 --- a/src/routes/settings/costModels/costModel/updateDistributionDialog.tsx +++ b/src/routes/settings/costModels/costModel/updateDistributionDialog.tsx @@ -22,7 +22,6 @@ import { injectIntl } from 'react-intl'; import { connect } from 'react-redux'; import { createMapStateToProps } from 'store/common'; import { costModelsActions, costModelsSelectors } from 'store/costModels'; -import { FeatureToggleSelectors } from 'store/featureToggle'; import { styles } from './costCalc.styles'; @@ -33,8 +32,6 @@ interface UpdateDistributionDialogOwnProps extends WrappedComponentProps { interface UpdateDistributionDialogStateProps { error?: string; isLoading?: boolean; - isOcpCloudNetworkingToggleEnabled?: boolean; - isOcpProjectStorageToggleEnabled?: boolean; } interface UpdateDistributionDialogDispatchProps { @@ -91,16 +88,7 @@ class UpdateDistributionDialogBase extends React.Component< }; public render() { - const { - error, - current, - intl, - isLoading, - isOcpCloudNetworkingToggleEnabled, - isOcpProjectStorageToggleEnabled, - onClose, - updateCostModel, - } = this.props; + const { error, current, intl, isLoading, onClose, updateCostModel } = this.props; return ( - {isOcpCloudNetworkingToggleEnabled && ( - - )} - {isOcpProjectStorageToggleEnabled && ( - - )} + + @@ -232,8 +216,6 @@ const mapStateToProps = createMapStateToProps { return { isLoading: costModelsSelectors.updateProcessing(state), - isOcpCloudNetworkingToggleEnabled: FeatureToggleSelectors.selectIsOcpCloudNetworkingToggleEnabled(state), - isOcpProjectStorageToggleEnabled: FeatureToggleSelectors.selectIsOcpProjectStorageToggleEnabled(state), error: costModelsSelectors.updateError(state), }; } diff --git a/src/routes/settings/costModels/costModelWizard/distribution.tsx b/src/routes/settings/costModels/costModelWizard/distribution.tsx index d99749ee1..022655c24 100644 --- a/src/routes/settings/costModels/costModelWizard/distribution.tsx +++ b/src/routes/settings/costModels/costModelWizard/distribution.tsx @@ -16,7 +16,6 @@ import { injectIntl } from 'react-intl'; import { connect } from 'react-redux'; import { Form } from 'routes/settings/costModels/components/forms/form'; import { createMapStateToProps } from 'store/common'; -import { FeatureToggleSelectors } from 'store/featureToggle'; import { CostModelContext } from './context'; import { styles } from './wizard.styles'; @@ -26,15 +25,14 @@ interface DistributionOwnProps extends WrappedComponentProps { } interface DistributionStateProps { - isOcpCloudNetworkingToggleEnabled?: boolean; - isOcpProjectStorageToggleEnabled?: boolean; + // TBD... } type DistributionProps = DistributionOwnProps & DistributionStateProps; class DistributionBase extends React.Component { public render() { - const { isOcpCloudNetworkingToggleEnabled, isOcpProjectStorageToggleEnabled, intl } = this.props; + const { intl } = this.props; return ( @@ -114,24 +112,20 @@ class DistributionBase extends React.Component - {isOcpCloudNetworkingToggleEnabled && ( - - )} - {isOcpProjectStorageToggleEnabled && ( - - )} + + @@ -143,10 +137,9 @@ class DistributionBase extends React.Component(state => { +const mapStateToProps = createMapStateToProps(() => { return { - isOcpCloudNetworkingToggleEnabled: FeatureToggleSelectors.selectIsOcpCloudNetworkingToggleEnabled(state), - isOcpProjectStorageToggleEnabled: FeatureToggleSelectors.selectIsOcpProjectStorageToggleEnabled(state), + // TBD... }; }); diff --git a/src/routes/settings/costModels/costModelWizard/review.tsx b/src/routes/settings/costModels/costModelWizard/review.tsx index d5707b0e2..6f1196bd3 100644 --- a/src/routes/settings/costModels/costModelWizard/review.tsx +++ b/src/routes/settings/costModels/costModelWizard/review.tsx @@ -28,7 +28,6 @@ import { connect } from 'react-redux'; import { RateTable } from 'routes/settings/costModels/components/rateTable'; import { WarningIcon } from 'routes/settings/costModels/components/warningIcon'; import { createMapStateToProps } from 'store/common'; -import { FeatureToggleSelectors } from 'store/featureToggle'; import { CostModelContext } from './context'; @@ -67,17 +66,12 @@ interface ReviewDetailsOwnProps extends WrappedComponentProps { } interface ReviewDetailsStateProps { - isOcpCloudNetworkingToggleEnabled?: boolean; - isOcpProjectStorageToggleEnabled?: boolean; + // TBD... } type ReviewDetailsProps = ReviewDetailsOwnProps & ReviewDetailsStateProps; -const ReviewDetailsBase: React.FC = ({ - intl, - isOcpCloudNetworkingToggleEnabled, - isOcpProjectStorageToggleEnabled, -}) => ( +const ReviewDetailsBase: React.FC = ({ intl }) => ( {({ checked, @@ -172,22 +166,18 @@ const ReviewDetailsBase: React.FC = ({ value: distributeWorkerUnallocated, })} - {isOcpCloudNetworkingToggleEnabled && ( - - {intl.formatMessage(messages.distributeCosts, { - value: distributeNetwork, - type: 'network', - })} - - )} - {isOcpProjectStorageToggleEnabled && ( - - {intl.formatMessage(messages.distributeCosts, { - value: distributeStorage, - type: 'storage', - })} - - )} + + {intl.formatMessage(messages.distributeCosts, { + value: distributeNetwork, + type: 'network', + })} + + + {intl.formatMessage(messages.distributeCosts, { + value: distributeStorage, + type: 'storage', + })} + )} @@ -209,10 +199,9 @@ const ReviewDetailsBase: React.FC = ({ ); -const mapStateToProps = createMapStateToProps(state => { +const mapStateToProps = createMapStateToProps(() => { return { - isOcpCloudNetworkingToggleEnabled: FeatureToggleSelectors.selectIsOcpCloudNetworkingToggleEnabled(state), - isOcpProjectStorageToggleEnabled: FeatureToggleSelectors.selectIsOcpProjectStorageToggleEnabled(state), + // TBD... }; }); diff --git a/src/store/featureToggle/__snapshots__/featureToggle.test.ts.snap b/src/store/featureToggle/__snapshots__/featureToggle.test.ts.snap index d83a00e99..45946a25e 100644 --- a/src/store/featureToggle/__snapshots__/featureToggle.test.ts.snap +++ b/src/store/featureToggle/__snapshots__/featureToggle.test.ts.snap @@ -10,8 +10,5 @@ exports[`default state 1`] = ` "isFinsightsToggleEnabled": false, "isIbmToggleEnabled": false, "isOcpCloudGroupBysToggleEnabled": false, - "isOcpCloudNetworkingToggleEnabled": false, - "isOcpProjectStorageToggleEnabled": false, - "isRosToggleEnabled": false, } `; diff --git a/src/store/featureToggle/featureToggle.test.ts b/src/store/featureToggle/featureToggle.test.ts index 7ff31eb53..6c2ea9111 100644 --- a/src/store/featureToggle/featureToggle.test.ts +++ b/src/store/featureToggle/featureToggle.test.ts @@ -14,6 +14,12 @@ test('default state', async () => { expect(selectors.selectFeatureToggleState(store.getState())).toMatchSnapshot(); }); +test('Account info empty state feature is enabled', async () => { + const store = createUIStore(); + store.dispatch(actions.setFeatureToggle({ isAccountInfoEmptyStateToggleEnabled: true })); + expect(FeatureToggleSelectors.selectIsAccountInfoEmptyStateToggleEnabled(store.getState())).toBe(true); +}); + test('AWS EC2 instances feature is enabled', async () => { const store = createUIStore(); store.dispatch(actions.setFeatureToggle({ isAwsEc2InstancesToggleEnabled: true })); @@ -44,20 +50,8 @@ test('IBM feature is enabled', async () => { expect(FeatureToggleSelectors.selectIsIbmToggleEnabled(store.getState())).toBe(true); }); -test('OCP on cloud networking feature is enabled', async () => { - const store = createUIStore(); - store.dispatch(actions.setFeatureToggle({ isOcpCloudNetworkingToggleEnabled: true })); - expect(FeatureToggleSelectors.selectIsOcpCloudNetworkingToggleEnabled(store.getState())).toBe(true); -}); - -test('OCP project storage feature is enabled', async () => { - const store = createUIStore(); - store.dispatch(actions.setFeatureToggle({ isOcpProjectStorageToggleEnabled: true })); - expect(FeatureToggleSelectors.selectIsOcpProjectStorageToggleEnabled(store.getState())).toBe(true); -}); - -test('ROS feature is enabled', async () => { +test('OCP on cloud group bys feature is enabled', async () => { const store = createUIStore(); - store.dispatch(actions.setFeatureToggle({ isRosToggleEnabled: true })); - expect(FeatureToggleSelectors.selectIsRosToggleEnabled(store.getState())).toBe(true); + store.dispatch(actions.setFeatureToggle({ isOcpCloudGroupBysToggleEnabled: true })); + expect(FeatureToggleSelectors.selectIsOcpCloudGroupBysToggleEnabled(store.getState())).toBe(true); }); diff --git a/src/store/featureToggle/featureToggleActions.ts b/src/store/featureToggle/featureToggleActions.ts index 355af1728..ba0f03901 100644 --- a/src/store/featureToggle/featureToggleActions.ts +++ b/src/store/featureToggle/featureToggleActions.ts @@ -8,9 +8,6 @@ export interface FeatureToggleActionMeta { isFinsightsToggleEnabled?: boolean; isIbmToggleEnabled?: boolean; isOcpCloudGroupBysToggleEnabled?: boolean; - isOcpCloudNetworkingToggleEnabled?: boolean; - isOcpProjectStorageToggleEnabled?: boolean; - isRosToggleEnabled?: boolean; } export const setFeatureToggle = createAction('feature/init_feature_toggle')(); diff --git a/src/store/featureToggle/featureToggleReducer.ts b/src/store/featureToggle/featureToggleReducer.ts index fadc7a4b2..f31821667 100644 --- a/src/store/featureToggle/featureToggleReducer.ts +++ b/src/store/featureToggle/featureToggleReducer.ts @@ -15,9 +15,6 @@ export type FeatureToggleState = Readonly<{ isFinsightsToggleEnabled: boolean; isIbmToggleEnabled: boolean; isOcpCloudGroupBysToggleEnabled: boolean; - isOcpCloudNetworkingToggleEnabled: boolean; - isOcpProjectStorageToggleEnabled: boolean; - isRosToggleEnabled: boolean; }>; export const defaultState: FeatureToggleState = { @@ -29,9 +26,6 @@ export const defaultState: FeatureToggleState = { isFinsightsToggleEnabled: false, isIbmToggleEnabled: false, isOcpCloudGroupBysToggleEnabled: false, - isOcpCloudNetworkingToggleEnabled: false, - isOcpProjectStorageToggleEnabled: false, - isRosToggleEnabled: false, }; export const stateKey = 'FeatureToggle'; @@ -49,9 +43,6 @@ export function FeatureToggleReducer(state = defaultState, action: FeatureToggle isFinsightsToggleEnabled: action.payload.isFinsightsToggleEnabled, isIbmToggleEnabled: action.payload.isIbmToggleEnabled, isOcpCloudGroupBysToggleEnabled: action.payload.isOcpCloudGroupBysToggleEnabled, - isOcpCloudNetworkingToggleEnabled: action.payload.isOcpCloudNetworkingToggleEnabled, - isOcpProjectStorageToggleEnabled: action.payload.isOcpProjectStorageToggleEnabled, - isRosToggleEnabled: action.payload.isRosToggleEnabled, }; default: diff --git a/src/store/featureToggle/featureToggleSelectors.ts b/src/store/featureToggle/featureToggleSelectors.ts index fdd6cc603..a3e1ec578 100644 --- a/src/store/featureToggle/featureToggleSelectors.ts +++ b/src/store/featureToggle/featureToggleSelectors.ts @@ -18,8 +18,3 @@ export const selectIsFinsightsToggleEnabled = (state: RootState) => export const selectIsIbmToggleEnabled = (state: RootState) => selectFeatureToggleState(state).isIbmToggleEnabled; export const selectIsOcpCloudGroupBysToggleEnabled = (state: RootState) => selectFeatureToggleState(state).isOcpCloudGroupBysToggleEnabled; -export const selectIsOcpCloudNetworkingToggleEnabled = (state: RootState) => - selectFeatureToggleState(state).isOcpCloudNetworkingToggleEnabled; -export const selectIsOcpProjectStorageToggleEnabled = (state: RootState) => - selectFeatureToggleState(state).isOcpProjectStorageToggleEnabled; -export const selectIsRosToggleEnabled = (state: RootState) => selectFeatureToggleState(state).isRosToggleEnabled; From 1db73ecf44ef757d3e415ce12ae0222a4dd226c1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 23 Sep 2024 10:03:47 +0000 Subject: [PATCH 13/17] (chore): Bump the lint-dependencies group with 2 updates Bumps the lint-dependencies group with 2 updates: [@eslint/js](https://github.com/eslint/eslint/tree/HEAD/packages/js) and [eslint-plugin-formatjs](https://github.com/formatjs/formatjs). Updates `@eslint/js` from 9.10.0 to 9.11.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/commits/v9.11.0/packages/js) Updates `eslint-plugin-formatjs` from 4.13.3 to 4.14.0 - [Release notes](https://github.com/formatjs/formatjs/releases) - [Commits](https://github.com/formatjs/formatjs/compare/eslint-plugin-formatjs@4.13.3...eslint-plugin-formatjs@4.14.0) --- updated-dependencies: - dependency-name: "@eslint/js" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: lint-dependencies - dependency-name: eslint-plugin-formatjs dependency-type: direct:development update-type: version-update:semver-minor dependency-group: lint-dependencies ... Signed-off-by: dependabot[bot] --- package-lock.json | 157 +++++++++++++++++++--------------------------- package.json | 4 +- 2 files changed, 65 insertions(+), 96 deletions(-) diff --git a/package-lock.json b/package-lock.json index 09e60902b..1c0d583db 100644 --- a/package-lock.json +++ b/package-lock.json @@ -42,7 +42,7 @@ "devDependencies": { "@eslint/compat": "^1.1.1", "@eslint/eslintrc": "^3.1.0", - "@eslint/js": "^9.10.0", + "@eslint/js": "^9.11.0", "@formatjs/cli": "^6.2.12", "@formatjs/ecma402-abstract": "^2.0.0", "@formatjs/icu-messageformat-parser": "^2.7.8", @@ -65,7 +65,7 @@ "aphrodite": "^2.4.0", "copy-webpack-plugin": "^12.0.2", "eslint": "^9.10.0", - "eslint-plugin-formatjs": "^4.13.3", + "eslint-plugin-formatjs": "^4.14.0", "eslint-plugin-jest-dom": "^5.4.0", "eslint-plugin-jsdoc": "^50.2.4", "eslint-plugin-markdown": "^5.1.0", @@ -814,9 +814,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.10.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.10.0.tgz", - "integrity": "sha512-fuXtbiP5GWIn8Fz+LWoOMVf/Jxm+aajZYkhi6CuEm4SxymFM+eUWzbO9qXT+L0iCkL5+KGYMCSGxo686H19S1g==", + "version": "9.11.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.11.0.tgz", + "integrity": "sha512-LPkkenkDqyzTFauZLLAPhIb48fj6drrfMvRGSL9tS3AcZBSVTllemLSNyCvHNNL2t797S/6DJNSIwRwXgMO/eQ==", "dev": true, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3668,9 +3668,9 @@ "integrity": "sha512-awNxydYSU+E2vL7EiOAMtiSOfL5gUM5X4YSE2A92qpxDJQ/rXz6oMPYBFDcDywlUmvIDI6zsqgq17cGm5CITQw==" }, "node_modules/@types/eslint": { - "version": "8.56.5", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.5.tgz", - "integrity": "sha512-u5/YPJHo1tvkSF2CE0USEkxon82Z5DBy2xR+qfyYNszpX9qcs4sT6uq2kBbj4BXY1+DBGDPnrhMZV3pKWGNukw==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", "dev": true, "dependencies": { "@types/estree": "*", @@ -4293,22 +4293,6 @@ } } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", @@ -8136,16 +8120,16 @@ } }, "node_modules/eslint-plugin-formatjs": { - "version": "4.13.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-formatjs/-/eslint-plugin-formatjs-4.13.3.tgz", - "integrity": "sha512-4j3IVwaLEXblnvH2/ZIOZwc9zaaZf2+zyn/b8oLJRt6kMCTu2rIs4UsIxy5nBRYZzsBSh7k34JJ5/ngGtJ3kYw==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-formatjs/-/eslint-plugin-formatjs-4.14.0.tgz", + "integrity": "sha512-nlXziJTBHDxb1lMO/51Xz6nXDygLTBYfJaQT5IGRhTaeMKtu8N4zN0TuNKpjA8rekY3smdLXp8chjZMRyN1t4A==", "dev": true, "dependencies": { "@formatjs/icu-messageformat-parser": "2.7.8", "@formatjs/ts-transformer": "3.13.14", - "@types/eslint": "7 || 8", + "@types/eslint": "9", "@types/picomatch": "^2.3.0", - "@typescript-eslint/utils": "^6.18.1", + "@typescript-eslint/utils": "8.5.0", "emoji-regex": "^10.2.1", "magic-string": "^0.30.0", "picomatch": "^2.3.1", @@ -8154,20 +8138,20 @@ "unicode-emoji-utils": "^1.2.0" }, "peerDependencies": { - "eslint": "7 || 8" + "eslint": "9" } }, "node_modules/eslint-plugin-formatjs/node_modules/@typescript-eslint/scope-manager": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", - "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.5.0.tgz", + "integrity": "sha512-06JOQ9Qgj33yvBEx6tpC8ecP9o860rsR22hWMEd12WcTRrfaFgHr2RB/CA/B+7BMhHkXT4chg2MyboGdFGawYg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0" + "@typescript-eslint/types": "8.5.0", + "@typescript-eslint/visitor-keys": "8.5.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -8175,12 +8159,12 @@ } }, "node_modules/eslint-plugin-formatjs/node_modules/@typescript-eslint/types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", - "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.5.0.tgz", + "integrity": "sha512-qjkormnQS5wF9pjSi6q60bKUHH44j2APxfh9TQRXK8wbYVeDYYdYJGIROL87LGZZ2gz3Rbmjc736qyL8deVtdw==", "dev": true, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -8188,22 +8172,22 @@ } }, "node_modules/eslint-plugin-formatjs/node_modules/@typescript-eslint/typescript-estree": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", - "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.5.0.tgz", + "integrity": "sha512-vEG2Sf9P8BPQ+d0pxdfndw3xIXaoSjliG0/Ejk7UggByZPKXmJmw3GW5jV2gHNQNawBUyfahoSiCFVov0Ruf7Q==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", + "@typescript-eslint/types": "8.5.0", + "@typescript-eslint/visitor-keys": "8.5.0", "debug": "^4.3.4", - "globby": "^11.1.0", + "fast-glob": "^3.3.2", "is-glob": "^4.0.3", - "minimatch": "9.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -8216,41 +8200,38 @@ } }, "node_modules/eslint-plugin-formatjs/node_modules/@typescript-eslint/utils": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz", - "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.5.0.tgz", + "integrity": "sha512-6yyGYVL0e+VzGYp60wvkBHiqDWOpT63pdMV2CVG4LVDd5uR6q1qQN/7LafBZtAtNIn/mqXjsSeS5ggv/P0iECw==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.21.0", - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/typescript-estree": "6.21.0", - "semver": "^7.5.4" + "@typescript-eslint/scope-manager": "8.5.0", + "@typescript-eslint/types": "8.5.0", + "@typescript-eslint/typescript-estree": "8.5.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "eslint": "^8.57.0 || ^9.0.0" } }, "node_modules/eslint-plugin-formatjs/node_modules/@typescript-eslint/visitor-keys": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", - "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.5.0.tgz", + "integrity": "sha512-yTPqMnbAZJNy2Xq2XU8AdtOW9tJIr+UQb64aXB9f3B1498Zx9JorVgFJcZpEc9UBuCCrdzKID2RGAMkYcDtZOw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.21.0", - "eslint-visitor-keys": "^3.4.1" + "@typescript-eslint/types": "8.5.0", + "eslint-visitor-keys": "^3.4.3" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -8269,26 +8250,11 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint-plugin-formatjs/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/eslint-plugin-formatjs/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -8296,12 +8262,6 @@ "node": ">=10" } }, - "node_modules/eslint-plugin-formatjs/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/eslint-plugin-import": { "version": "2.29.1", "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", @@ -9288,6 +9248,15 @@ "node": ">=10" } }, + "node_modules/eslint/node_modules/@eslint/js": { + "version": "9.10.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.10.0.tgz", + "integrity": "sha512-fuXtbiP5GWIn8Fz+LWoOMVf/Jxm+aajZYkhi6CuEm4SxymFM+eUWzbO9qXT+L0iCkL5+KGYMCSGxo686H19S1g==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/eslint/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -15180,9 +15149,9 @@ "dev": true }, "node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" diff --git a/package.json b/package.json index e1b2fa56b..1b256456f 100644 --- a/package.json +++ b/package.json @@ -83,7 +83,7 @@ "devDependencies": { "@eslint/compat": "^1.1.1", "@eslint/eslintrc": "^3.1.0", - "@eslint/js": "^9.10.0", + "@eslint/js": "^9.11.0", "@formatjs/cli": "^6.2.12", "@formatjs/ecma402-abstract": "^2.0.0", "@formatjs/icu-messageformat-parser": "^2.7.8", @@ -106,7 +106,7 @@ "aphrodite": "^2.4.0", "copy-webpack-plugin": "^12.0.2", "eslint": "^9.10.0", - "eslint-plugin-formatjs": "^4.13.3", + "eslint-plugin-formatjs": "^4.14.0", "eslint-plugin-jest-dom": "^5.4.0", "eslint-plugin-jsdoc": "^50.2.4", "eslint-plugin-markdown": "^5.1.0", From 92f53637b2e3687c0250c49dcdb4c06c335e155c Mon Sep 17 00:00:00 2001 From: Dan Labrecque Date: Mon, 23 Sep 2024 08:32:01 -0400 Subject: [PATCH 14/17] Dependency updates --- package-lock.json | 63 +++++++++++++++++++---------------------------- package.json | 8 +++--- 2 files changed, 30 insertions(+), 41 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1c0d583db..0083a15cb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,7 +21,7 @@ "@redhat-cloud-services/frontend-components-notifications": "^4.1.0", "@redhat-cloud-services/frontend-components-translations": "^3.2.8", "@redhat-cloud-services/frontend-components-utilities": "^4.0.17", - "@redhat-cloud-services/rbac-client": "^2.2.3", + "@redhat-cloud-services/rbac-client": "^2.2.4", "@reduxjs/toolkit": "^2.2.7", "@unleash/proxy-client-react": "^4.3.1", "axios": "^1.7.7", @@ -31,7 +31,7 @@ "qs": "^6.13.0", "react": "^18.3.1", "react-dom": "^18.3.1", - "react-intl": "^6.6.8", + "react-intl": "6.6.8", "react-redux": "^9.1.2", "react-router-dom": "^6.26.2", "redux": "^5.0.1", @@ -64,7 +64,7 @@ "@typescript-eslint/parser": "^8.6.0", "aphrodite": "^2.4.0", "copy-webpack-plugin": "^12.0.2", - "eslint": "^9.10.0", + "eslint": "^9.11.0", "eslint-plugin-formatjs": "^4.14.0", "eslint-plugin-jest-dom": "^5.4.0", "eslint-plugin-jsdoc": "^50.2.4", @@ -833,9 +833,9 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.1.0.tgz", - "integrity": "sha512-autAXT203ixhqei9xt+qkYOvY8l6LAFIdT2UXc/RPNeUVfqRF1BV94GTJyVPFKT8nFM6MyVJhjLj9E8JWvf5zQ==", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.0.tgz", + "integrity": "sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -906,6 +906,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.0.tgz", "integrity": "sha512-hnk/nY8FyrL5YxwP9e4r9dqeM6cAbo8PeU9UjyXojZMNvVad2Z06FAVHyR3Ecw6fza+0GH7vdJgiKIVXTMbSBA==", + "license": "MIT", "dependencies": { "tslib": "^2.4.0" } @@ -933,6 +934,7 @@ "version": "2.10.4", "resolved": "https://registry.npmjs.org/@formatjs/intl/-/intl-2.10.4.tgz", "integrity": "sha512-56483O+HVcL0c7VucAS2tyH020mt9XTozZO67cwtGg0a7KWDukS/FzW3OnvaHmTHDuYsoPIzO+ZHVfU6fT/bJw==", + "license": "MIT", "dependencies": { "@formatjs/ecma402-abstract": "2.0.0", "@formatjs/fast-memoize": "2.2.0", @@ -955,6 +957,7 @@ "version": "6.6.8", "resolved": "https://registry.npmjs.org/@formatjs/intl-displaynames/-/intl-displaynames-6.6.8.tgz", "integrity": "sha512-Lgx6n5KxN16B3Pb05z3NLEBQkGoXnGjkTBNCZI+Cn17YjHJ3fhCeEJJUqRlIZmJdmaXQhjcQVDp6WIiNeRYT5g==", + "license": "MIT", "dependencies": { "@formatjs/ecma402-abstract": "2.0.0", "@formatjs/intl-localematcher": "0.5.4", @@ -965,6 +968,7 @@ "version": "7.5.7", "resolved": "https://registry.npmjs.org/@formatjs/intl-listformat/-/intl-listformat-7.5.7.tgz", "integrity": "sha512-MG2TSChQJQT9f7Rlv+eXwUFiG24mKSzmF144PLb8m8OixyXqn4+YWU+5wZracZGCgVTVmx8viCf7IH3QXoiB2g==", + "license": "MIT", "dependencies": { "@formatjs/ecma402-abstract": "2.0.0", "@formatjs/intl-localematcher": "0.5.4", @@ -2746,30 +2750,22 @@ "integrity": "sha512-dKYYSLU0cwNkOSq5kSvdKWzgwFGBk45uwAwoHGi44PMQdWkuz+tXhYLrKKAXoSXVahR6VFjBDONlaxok8Lzkcw==" }, "node_modules/@redhat-cloud-services/javascript-clients-shared": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@redhat-cloud-services/javascript-clients-shared/-/javascript-clients-shared-1.2.2.tgz", - "integrity": "sha512-Sr2HIAL+3WM6L3iEXzaukMbF/AwgaSkW9ftYPUWS/GuocFY8MbbSMZQwRAWplk4+jS71I+vz0G4f9PhhBzBtUg==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@redhat-cloud-services/javascript-clients-shared/-/javascript-clients-shared-1.2.4.tgz", + "integrity": "sha512-afD1wZZMdwfSLDKt2hOkrlUtdl4lslOJJvYoGJu7m+Ivymt/5RYR29FxNxbrRNqQaIyGPzmpTdPb7olJZCEN/A==", + "license": "Apache-2.0", "dependencies": { - "axios": "^0.27.2", + "axios": "^1.7.2", "tslib": "^2.6.2" } }, - "node_modules/@redhat-cloud-services/javascript-clients-shared/node_modules/axios": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", - "dependencies": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" - } - }, "node_modules/@redhat-cloud-services/rbac-client": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@redhat-cloud-services/rbac-client/-/rbac-client-2.2.3.tgz", - "integrity": "sha512-kyaSo8xtcU5ycrZ+12kjeIAxkcuVjyxutV3IjAs5SOQrO9DKhEJiWrWU0LtTHx7rbSigRuJ8OIx/GYh6S7t4SQ==", + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/@redhat-cloud-services/rbac-client/-/rbac-client-2.2.4.tgz", + "integrity": "sha512-lGqwkV7Wf++/WWXkF3bAC3Vi8wODoApSJ21NdR5E4Hd2EHOF/xRiSjn9aeGc+nN5WQz3uJgV91w/Yvtrs77NDA==", "license": "Apache-2.0", "dependencies": { - "@redhat-cloud-services/javascript-clients-shared": "^1.2.2", + "@redhat-cloud-services/javascript-clients-shared": "^1.2.4", "axios": "^1.7.2", "tslib": "^2.6.2" } @@ -7850,9 +7846,9 @@ } }, "node_modules/eslint": { - "version": "9.10.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.10.0.tgz", - "integrity": "sha512-Y4D0IgtBZfOcOUAIQTSXBKoNGfY0REGqHJG6+Q81vNippW5YlKjHFj4soMxamKK1NXHUWuBZTLdU3Km+L/pcHw==", + "version": "9.11.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.11.0.tgz", + "integrity": "sha512-yVS6XODx+tMFMDFcG4+Hlh+qG7RM6cCJXtQhCKLSsr3XkLvWggHjCqjfh0XsPPnt1c56oaT6PMgW9XWQQjdHXA==", "dev": true, "license": "MIT", "dependencies": { @@ -7860,8 +7856,8 @@ "@eslint-community/regexpp": "^4.11.0", "@eslint/config-array": "^0.18.0", "@eslint/eslintrc": "^3.1.0", - "@eslint/js": "9.10.0", - "@eslint/plugin-kit": "^0.1.0", + "@eslint/js": "9.11.0", + "@eslint/plugin-kit": "^0.2.0", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.3.0", "@nodelib/fs.walk": "^1.2.8", @@ -9248,15 +9244,6 @@ "node": ">=10" } }, - "node_modules/eslint/node_modules/@eslint/js": { - "version": "9.10.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.10.0.tgz", - "integrity": "sha512-fuXtbiP5GWIn8Fz+LWoOMVf/Jxm+aajZYkhi6CuEm4SxymFM+eUWzbO9qXT+L0iCkL5+KGYMCSGxo686H19S1g==", - "dev": true, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, "node_modules/eslint/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -11253,6 +11240,7 @@ "version": "10.5.14", "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.5.14.tgz", "integrity": "sha512-IjC6sI0X7YRjjyVH9aUgdftcmZK7WXdHeil4KwbjDnRWjnVitKpAx3rr6t6di1joFp5188VqKcobOPA6mCLG/w==", + "license": "BSD-3-Clause", "dependencies": { "@formatjs/ecma402-abstract": "2.0.0", "@formatjs/fast-memoize": "2.2.0", @@ -16745,6 +16733,7 @@ "version": "6.6.8", "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-6.6.8.tgz", "integrity": "sha512-M0pkhzcgV31h++2901BiRXWl69hp2zPyLxRrSwRjd1ErXbNoubz/f4M6DrRTd4OiSUrT4ajRQzrmtS5plG4FtA==", + "license": "BSD-3-Clause", "dependencies": { "@formatjs/ecma402-abstract": "2.0.0", "@formatjs/icu-messageformat-parser": "2.7.8", diff --git a/package.json b/package.json index 1b256456f..9eb460022 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "@redhat-cloud-services/frontend-components-notifications": "^4.1.0", "@redhat-cloud-services/frontend-components-translations": "^3.2.8", "@redhat-cloud-services/frontend-components-utilities": "^4.0.17", - "@redhat-cloud-services/rbac-client": "^2.2.3", + "@redhat-cloud-services/rbac-client": "^2.2.4", "@reduxjs/toolkit": "^2.2.7", "@unleash/proxy-client-react": "^4.3.1", "axios": "^1.7.7", @@ -72,7 +72,7 @@ "qs": "^6.13.0", "react": "^18.3.1", "react-dom": "^18.3.1", - "react-intl": "^6.6.8", + "react-intl": "6.6.8", "react-redux": "^9.1.2", "react-router-dom": "^6.26.2", "redux": "^5.0.1", @@ -105,7 +105,7 @@ "@typescript-eslint/parser": "^8.6.0", "aphrodite": "^2.4.0", "copy-webpack-plugin": "^12.0.2", - "eslint": "^9.10.0", + "eslint": "^9.11.0", "eslint-plugin-formatjs": "^4.14.0", "eslint-plugin-jest-dom": "^5.4.0", "eslint-plugin-jsdoc": "^50.2.4", @@ -135,7 +135,7 @@ }, "overrides": { "@typescript-eslint/eslint-plugin": "^8.6.0", - "eslint": "^9.10.0", + "eslint": "^9.11.0", "redux": "^5.0.1" }, "insights": { From be6888b1ce1899f6fc634559f365ca8603eaf97a Mon Sep 17 00:00:00 2001 From: Dan Labrecque Date: Mon, 23 Sep 2024 12:11:23 -0400 Subject: [PATCH 15/17] Add cluster/node/project group by/filtering to OCP on cloud-type perspectives https://issues.redhat.com/browse/COST-5514 --- src/api/resources/awsOcpResource.ts | 3 +++ src/api/resources/azureOcpResource.ts | 3 +++ src/api/resources/gcpOcpResource.ts | 3 +++ src/routes/explorer/explorerFilter.tsx | 7 +++++-- src/routes/explorer/explorerHeader.tsx | 5 ++++- src/routes/explorer/explorerUtils.ts | 16 ++++++++++++---- 6 files changed, 30 insertions(+), 7 deletions(-) diff --git a/src/api/resources/awsOcpResource.ts b/src/api/resources/awsOcpResource.ts index b955c84fe..b2e0cad63 100644 --- a/src/api/resources/awsOcpResource.ts +++ b/src/api/resources/awsOcpResource.ts @@ -6,6 +6,9 @@ import { ResourceType } from './resource'; export const ResourceTypePaths: Partial> = { [ResourceType.account]: 'resource-types/aws-accounts/', [ResourceType.aws_category]: 'resource-types/aws-categories/', + [ResourceType.cluster]: 'resource-types/openshift-clusters/', + [ResourceType.node]: 'resource-types/openshift-nodes/', + [ResourceType.project]: 'resource-types/openshift-projects/', [ResourceType.region]: 'resource-types/aws-regions/', [ResourceType.service]: 'resource-types/aws-services/', }; diff --git a/src/api/resources/azureOcpResource.ts b/src/api/resources/azureOcpResource.ts index 9128d77e8..f5b4774b0 100644 --- a/src/api/resources/azureOcpResource.ts +++ b/src/api/resources/azureOcpResource.ts @@ -4,6 +4,9 @@ import type { Resource } from './resource'; import { ResourceType } from './resource'; export const ResourceTypePaths: Partial> = { + [ResourceType.cluster]: 'resource-types/openshift-clusters/', + [ResourceType.node]: 'resource-types/openshift-nodes/', + [ResourceType.project]: 'resource-types/openshift-projects/', [ResourceType.resourceLocation]: 'resource-types/azure-regions/', [ResourceType.subscriptionGuid]: 'resource-types/azure-subscription-guids/', [ResourceType.serviceName]: 'resource-types/azure-services/', diff --git a/src/api/resources/gcpOcpResource.ts b/src/api/resources/gcpOcpResource.ts index f1ab0824b..0a2281cb7 100644 --- a/src/api/resources/gcpOcpResource.ts +++ b/src/api/resources/gcpOcpResource.ts @@ -5,7 +5,10 @@ import { ResourceType } from './resource'; export const ResourceTypePaths: Partial> = { [ResourceType.account]: 'resource-types/gcp-accounts/', + [ResourceType.cluster]: 'resource-types/openshift-clusters/', [ResourceType.gcpProject]: 'resource-types/gcp-projects/', + [ResourceType.node]: 'resource-types/openshift-nodes/', + [ResourceType.project]: 'resource-types/openshift-projects/', [ResourceType.region]: 'resource-types/gcp-regions/', [ResourceType.service]: 'resource-types/gcp-services/', }; diff --git a/src/routes/explorer/explorerFilter.tsx b/src/routes/explorer/explorerFilter.tsx index eb59e774a..d110d2b38 100644 --- a/src/routes/explorer/explorerFilter.tsx +++ b/src/routes/explorer/explorerFilter.tsx @@ -21,6 +21,7 @@ import type { Filter } from 'routes/utils/filter'; import { getRouteForQuery } from 'routes/utils/query'; import type { FetchStatus } from 'store/common'; import { createMapStateToProps } from 'store/common'; +import { FeatureToggleSelectors } from 'store/featureToggle'; import { orgActions, orgSelectors } from 'store/orgs'; import { resourceActions, resourceSelectors } from 'store/resources'; import { tagActions, tagSelectors } from 'store/tags'; @@ -53,6 +54,7 @@ interface ExplorerFilterOwnProps extends RouterComponentProps, WrappedComponentP interface ExplorerFilterStateProps { dateRangeType: DateRangeType; + isOcpCloudGroupBysToggleEnabled?: boolean; orgPathsType?: OrgPathsType; orgQueryString?: string; orgReport?: Org; @@ -120,10 +122,10 @@ export class ExplorerFilterBase extends React.Component { - const { orgReport, perspective, intl, resourceReport, tagReport } = this.props; + const { orgReport, perspective, intl, isOcpCloudGroupBysToggleEnabled, resourceReport, tagReport } = this.props; const options = []; - const groupByOptions = getGroupByOptions(perspective); + const groupByOptions = getGroupByOptions(perspective, isOcpCloudGroupBysToggleEnabled); groupByOptions.map(option => { options.push({ name: intl.formatMessage(messages.filterByValues, { value: option.label }), @@ -326,6 +328,7 @@ const mapStateToProps = createMapStateToProps { return result; }; -export const getGroupByOptions = (perspective: string) => { +export const getGroupByOptions = (perspective: string, isOcpCloudGroupBysToggleEnabled) => { let result; switch (perspective) { case PerspectiveType.aws: - case PerspectiveType.awsOcp: result = groupByAwsOptions; break; + case PerspectiveType.awsOcp: + result = isOcpCloudGroupBysToggleEnabled ? [...groupByAwsOptions, ...groupByOcpOptions] : [...groupByAwsOptions]; + break; case PerspectiveType.azure: - case PerspectiveType.azureOcp: result = groupByAzureOptions; break; + case PerspectiveType.azureOcp: + result = isOcpCloudGroupBysToggleEnabled + ? [...groupByAzureOptions, ...groupByOcpOptions] + : [...groupByAzureOptions]; + break; case PerspectiveType.gcp: result = groupByGcpOptions; break; case PerspectiveType.gcpOcp: - result = groupByGcpOcpOptions; + result = isOcpCloudGroupBysToggleEnabled + ? [...groupByGcpOcpOptions, ...groupByOcpOptions] + : [...groupByGcpOcpOptions]; break; case PerspectiveType.ibm: result = groupByIbmOptions; From 83948e80e64f073fdf594b37340cf7873547b237 Mon Sep 17 00:00:00 2001 From: "red-hat-konflux[bot]" <126015336+red-hat-konflux[bot]@users.noreply.github.com> Date: Tue, 24 Sep 2024 08:08:22 +0000 Subject: [PATCH 16/17] chore(deps): update konflux references Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com> --- .tekton/koku-frontend-pull-request.yaml | 12 ++++++------ .tekton/koku-frontend-push.yaml | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.tekton/koku-frontend-pull-request.yaml b/.tekton/koku-frontend-pull-request.yaml index 21b848ba2..6f54203c7 100644 --- a/.tekton/koku-frontend-pull-request.yaml +++ b/.tekton/koku-frontend-pull-request.yaml @@ -169,7 +169,7 @@ spec: - name: name value: git-clone - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-git-clone:0.1@sha256:0bb1be8363557e8e07ec34a3c5daaaaa23c9d533f0bb12f00dc604d00de50814 + value: quay.io/konflux-ci/tekton-catalog/task-git-clone:0.1@sha256:2cccdf8729ad4d5adf65e8b66464f8efa1e1c87ba16d343b4a6c621a2a40f7e1 - name: kind value: task resolver: bundles @@ -299,7 +299,7 @@ spec: - name: name value: buildah - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-buildah:0.2@sha256:71d3bb81d1c7c9f99946b5f1d4844664f2036636fd114cf5232db644bc088981 + value: quay.io/konflux-ci/tekton-catalog/task-buildah:0.2@sha256:2c3426a2a7ff46a413c56f8f18055f9385eb323d41e6e8cf1b9dd9d10013daaf - name: kind value: task resolver: bundles @@ -380,7 +380,7 @@ spec: - name: name value: deprecated-image-check - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-deprecated-image-check:0.4@sha256:592bbced9d8529c5391ecd3464a2276d25946514fe0b4fd91f2cdbe5730aa732 + value: quay.io/konflux-ci/tekton-catalog/task-deprecated-image-check:0.4@sha256:b4f9599f5770ea2e6e4d031224ccc932164c1ecde7f85f68e16e99c98d754003 - name: kind value: task resolver: bundles @@ -402,7 +402,7 @@ spec: - name: name value: clair-scan - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-clair-scan:0.2@sha256:772233e807b0bb27e32566b3a6fe13da4c7588b573319a09b20c52c1225b0002 + value: quay.io/konflux-ci/tekton-catalog/task-clair-scan:0.2@sha256:9f4ddafd599e06b319cece5a4b8ac36b9e7ec46bea378bc6c6af735d3f7f8060 - name: kind value: task resolver: bundles @@ -444,7 +444,7 @@ spec: - name: name value: sast-snyk-check - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-sast-snyk-check:0.2@sha256:60ef0fa39e101f007e0abfdaafa69f0ab71ebe443c8a0923e1892035acc91dda + value: quay.io/konflux-ci/tekton-catalog/task-sast-snyk-check:0.2@sha256:69ae591831f0f96d31c85d360273c1ce436ae1dbbfa3d0b22a083cb228c9e82c - name: kind value: task resolver: bundles @@ -469,7 +469,7 @@ spec: - name: name value: clamav-scan - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-clamav-scan:0.1@sha256:412e96edae67c8a0ad9500756dab5b611e0a665535879902155060064a72f28e + value: quay.io/konflux-ci/tekton-catalog/task-clamav-scan:0.1@sha256:5ac9b24cff7cfb391bc54cd5135536892090354862327d1028fa08872d759c03 - name: kind value: task resolver: bundles diff --git a/.tekton/koku-frontend-push.yaml b/.tekton/koku-frontend-push.yaml index 9f27d0e64..da5615df7 100644 --- a/.tekton/koku-frontend-push.yaml +++ b/.tekton/koku-frontend-push.yaml @@ -166,7 +166,7 @@ spec: - name: name value: git-clone - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-git-clone:0.1@sha256:0bb1be8363557e8e07ec34a3c5daaaaa23c9d533f0bb12f00dc604d00de50814 + value: quay.io/konflux-ci/tekton-catalog/task-git-clone:0.1@sha256:2cccdf8729ad4d5adf65e8b66464f8efa1e1c87ba16d343b4a6c621a2a40f7e1 - name: kind value: task resolver: bundles @@ -296,7 +296,7 @@ spec: - name: name value: buildah - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-buildah:0.2@sha256:71d3bb81d1c7c9f99946b5f1d4844664f2036636fd114cf5232db644bc088981 + value: quay.io/konflux-ci/tekton-catalog/task-buildah:0.2@sha256:2c3426a2a7ff46a413c56f8f18055f9385eb323d41e6e8cf1b9dd9d10013daaf - name: kind value: task resolver: bundles @@ -377,7 +377,7 @@ spec: - name: name value: deprecated-image-check - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-deprecated-image-check:0.4@sha256:592bbced9d8529c5391ecd3464a2276d25946514fe0b4fd91f2cdbe5730aa732 + value: quay.io/konflux-ci/tekton-catalog/task-deprecated-image-check:0.4@sha256:b4f9599f5770ea2e6e4d031224ccc932164c1ecde7f85f68e16e99c98d754003 - name: kind value: task resolver: bundles @@ -399,7 +399,7 @@ spec: - name: name value: clair-scan - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-clair-scan:0.2@sha256:772233e807b0bb27e32566b3a6fe13da4c7588b573319a09b20c52c1225b0002 + value: quay.io/konflux-ci/tekton-catalog/task-clair-scan:0.2@sha256:9f4ddafd599e06b319cece5a4b8ac36b9e7ec46bea378bc6c6af735d3f7f8060 - name: kind value: task resolver: bundles @@ -441,7 +441,7 @@ spec: - name: name value: sast-snyk-check - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-sast-snyk-check:0.2@sha256:60ef0fa39e101f007e0abfdaafa69f0ab71ebe443c8a0923e1892035acc91dda + value: quay.io/konflux-ci/tekton-catalog/task-sast-snyk-check:0.2@sha256:69ae591831f0f96d31c85d360273c1ce436ae1dbbfa3d0b22a083cb228c9e82c - name: kind value: task resolver: bundles @@ -466,7 +466,7 @@ spec: - name: name value: clamav-scan - name: bundle - value: quay.io/konflux-ci/tekton-catalog/task-clamav-scan:0.1@sha256:412e96edae67c8a0ad9500756dab5b611e0a665535879902155060064a72f28e + value: quay.io/konflux-ci/tekton-catalog/task-clamav-scan:0.1@sha256:5ac9b24cff7cfb391bc54cd5135536892090354862327d1028fa08872d759c03 - name: kind value: task resolver: bundles From 6b103424e8984fe925da6770475bd0b24bed2d6e Mon Sep 17 00:00:00 2001 From: Dan Labrecque Date: Tue, 24 Sep 2024 10:21:52 -0400 Subject: [PATCH 17/17] EC2 page should use a common filter key for export https://issues.redhat.com/browse/COST-5524 --- src/routes/details/awsBreakdown/instances/instances.tsx | 2 +- src/routes/details/awsBreakdown/instances/instancesTable.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/routes/details/awsBreakdown/instances/instances.tsx b/src/routes/details/awsBreakdown/instances/instances.tsx index ea95384aa..5e9674818 100644 --- a/src/routes/details/awsBreakdown/instances/instances.tsx +++ b/src/routes/details/awsBreakdown/instances/instances.tsx @@ -135,7 +135,7 @@ const Instances: React.FC = ({ costType, currency }) => { 0} - groupBy="resource_id" + groupBy="instance" isOpen={isExportModalOpen} isTimeScoped items={items} diff --git a/src/routes/details/awsBreakdown/instances/instancesTable.tsx b/src/routes/details/awsBreakdown/instances/instancesTable.tsx index 41eb4be7d..134dae975 100644 --- a/src/routes/details/awsBreakdown/instances/instancesTable.tsx +++ b/src/routes/details/awsBreakdown/instances/instancesTable.tsx @@ -202,7 +202,7 @@ const InstancesTable: React.FC = ({ // There is no group by for instances, but we use it to format messages return (