From ddbef801e7f99231f399f1747631ff351657de81 Mon Sep 17 00:00:00 2001
From: OraldoDoci <117348307+OraldoDoci@users.noreply.github.com>
Date: Tue, 5 Nov 2024 15:22:21 +0100
Subject: [PATCH 01/10] [SELC-5918] Feat: Hide sidebar for add role page +
refactor names of files
---
src/pages/dashboard/Dashboard.tsx | 4 +-
.../DashboardHandleDelegatesPage.tsx} | 4 +-
.../DashboardHandleDelegatesPage.test.tsx | 20 ++++++++++
.../components/EmptyFilterResults.tsx | 0
.../components/EnhanchedTableHeader.tsx | 0
.../components/TableCellWithTooltip.tsx | 0
.../components}/TechPartnersTable.tsx | 16 ++++----
.../components}/TechnologyPartnerTable.tsx | 6 +--
.../__tests__/DashboardTablePT.test.tsx | 8 ++--
src/routes.tsx | 11 ++---
.../__tests__/utils.test.ts | 3 +-
src/utils/test-utils.tsx | 40 +++++++++----------
12 files changed, 67 insertions(+), 45 deletions(-)
rename src/pages/{dashboardTechnologyPartnerPage/DashboardTechnologyPartnerPage.tsx => dashboardHandleDelegatesPage/DashboardHandleDelegatesPage.tsx} (84%)
create mode 100644 src/pages/dashboardHandleDelegatesPage/__tests__/DashboardHandleDelegatesPage.test.tsx
rename src/pages/{dashboardTechnologyPartnerPage => dashboardHandleDelegatesPage}/components/EmptyFilterResults.tsx (100%)
rename src/pages/{dashboardTechnologyPartnerPage => dashboardHandleDelegatesPage}/components/EnhanchedTableHeader.tsx (100%)
rename src/pages/{dashboardTechnologyPartnerPage => dashboardHandleDelegatesPage}/components/TableCellWithTooltip.tsx (100%)
rename src/pages/{dashboardTechnologyPartnerPage => dashboardHandleDelegatesPage/components}/TechPartnersTable.tsx (95%)
rename src/pages/{dashboardTechnologyPartnerPage => dashboardHandleDelegatesPage/components}/TechnologyPartnerTable.tsx (90%)
rename src/pages/{dashboardTechnologyPartnerPage => dashboardHandleDelegatesPage/components}/__tests__/DashboardTablePT.test.tsx (86%)
rename src/{pages/dashboardTechnologyPartnerPage => utils}/__tests__/utils.test.ts (93%)
diff --git a/src/pages/dashboard/Dashboard.tsx b/src/pages/dashboard/Dashboard.tsx
index 024f91dc..cac668bc 100644
--- a/src/pages/dashboard/Dashboard.tsx
+++ b/src/pages/dashboard/Dashboard.tsx
@@ -23,7 +23,7 @@ import { DASHBOARD_ROUTES, RouteConfig, RoutesObject } from '../../routes';
import { ENV } from '../../utils/env';
import DashboardDelegationsPage from '../dashboardDelegations/DashboardDelegationsPage';
import AddDelegationPage from '../dashboardDelegationsAdd/AddDelegationPage';
-import DashboardTechnologyPartnerPage from '../dashboardTechnologyPartnerPage/DashboardTechnologyPartnerPage';
+import DashboardHandleDelegatesPage from '../dashboardHandleDelegatesPage/DashboardHandleDelegatesPage';
import DashboardSideMenu from './components/dashboardSideMenu/DashboardSideMenu';
export type DashboardPageProps = {
@@ -344,7 +344,7 @@ const Dashboard = () => {
/>
-
+
{buildRoutes(party, products, activeProducts, productsMap, decorators, DASHBOARD_ROUTES)}
diff --git a/src/pages/dashboardTechnologyPartnerPage/DashboardTechnologyPartnerPage.tsx b/src/pages/dashboardHandleDelegatesPage/DashboardHandleDelegatesPage.tsx
similarity index 84%
rename from src/pages/dashboardTechnologyPartnerPage/DashboardTechnologyPartnerPage.tsx
rename to src/pages/dashboardHandleDelegatesPage/DashboardHandleDelegatesPage.tsx
index 903fc0f8..fdfa0f4a 100644
--- a/src/pages/dashboardTechnologyPartnerPage/DashboardTechnologyPartnerPage.tsx
+++ b/src/pages/dashboardHandleDelegatesPage/DashboardHandleDelegatesPage.tsx
@@ -3,13 +3,13 @@ import { Box } from '@mui/system';
import { TitleBox } from '@pagopa/selfcare-common-frontend/lib';
import { useTranslation } from 'react-i18next';
import { Party } from '../../model/Party';
-import TechnologyPartnerTable from './TechnologyPartnerTable';
+import TechnologyPartnerTable from './components/TechnologyPartnerTable';
type Props = {
party: Party;
};
-export default function DashboardTechnologyPartnerPage({ party }: Readonly) {
+export default function DashboardHandleDelegatesPage({ party }: Readonly) {
const { t } = useTranslation();
return (
diff --git a/src/pages/dashboardHandleDelegatesPage/__tests__/DashboardHandleDelegatesPage.test.tsx b/src/pages/dashboardHandleDelegatesPage/__tests__/DashboardHandleDelegatesPage.test.tsx
new file mode 100644
index 00000000..33cc8b16
--- /dev/null
+++ b/src/pages/dashboardHandleDelegatesPage/__tests__/DashboardHandleDelegatesPage.test.tsx
@@ -0,0 +1,20 @@
+import React from 'react';
+import { mockedParties } from '../../../services/__mocks__/partyService';
+import { renderWithProviders } from '../../../utils/test-utils';
+import DashboardHandleDelegatesPage from '../DashboardHandleDelegatesPage';
+import { fireEvent, screen } from '@testing-library/react';
+
+test('Should render component DashboardHandleDelegatesPage with populated props', async () => {
+ const mockedPartyRoma = mockedParties[2];
+ renderWithProviders();
+});
+
+test('a party that is Aggregator can click on a delegated institution of type EA', async () => {
+ const mockedPartyAgencyOnboarded = mockedParties[4];
+ renderWithProviders();
+
+ const delegatedInstitionName = await screen.findByText('Institution Name 0');
+ expect(delegatedInstitionName).toBeInTheDocument();
+ fireEvent.click(delegatedInstitionName);
+
+});
diff --git a/src/pages/dashboardTechnologyPartnerPage/components/EmptyFilterResults.tsx b/src/pages/dashboardHandleDelegatesPage/components/EmptyFilterResults.tsx
similarity index 100%
rename from src/pages/dashboardTechnologyPartnerPage/components/EmptyFilterResults.tsx
rename to src/pages/dashboardHandleDelegatesPage/components/EmptyFilterResults.tsx
diff --git a/src/pages/dashboardTechnologyPartnerPage/components/EnhanchedTableHeader.tsx b/src/pages/dashboardHandleDelegatesPage/components/EnhanchedTableHeader.tsx
similarity index 100%
rename from src/pages/dashboardTechnologyPartnerPage/components/EnhanchedTableHeader.tsx
rename to src/pages/dashboardHandleDelegatesPage/components/EnhanchedTableHeader.tsx
diff --git a/src/pages/dashboardTechnologyPartnerPage/components/TableCellWithTooltip.tsx b/src/pages/dashboardHandleDelegatesPage/components/TableCellWithTooltip.tsx
similarity index 100%
rename from src/pages/dashboardTechnologyPartnerPage/components/TableCellWithTooltip.tsx
rename to src/pages/dashboardHandleDelegatesPage/components/TableCellWithTooltip.tsx
diff --git a/src/pages/dashboardTechnologyPartnerPage/TechPartnersTable.tsx b/src/pages/dashboardHandleDelegatesPage/components/TechPartnersTable.tsx
similarity index 95%
rename from src/pages/dashboardTechnologyPartnerPage/TechPartnersTable.tsx
rename to src/pages/dashboardHandleDelegatesPage/components/TechPartnersTable.tsx
index 0febc291..a4f9e335 100644
--- a/src/pages/dashboardTechnologyPartnerPage/TechPartnersTable.tsx
+++ b/src/pages/dashboardHandleDelegatesPage/components/TechPartnersTable.tsx
@@ -22,14 +22,14 @@ import { ButtonNaked } from '@pagopa/mui-italia';
import { resolvePathVariables } from '@pagopa/selfcare-common-frontend/lib/utils/routes-utils';
import { useEffect, useState } from 'react';
import { useTranslation } from 'react-i18next';
-import { DelegationWithInfo } from '../../api/generated/b4f-dashboard/DelegationWithInfo';
-import { useAppSelector } from '../../redux/hooks';
-import { partiesSelectors } from '../../redux/slices/partiesSlice';
-import ROUTES from '../../routes';
-import { compareDates, compareStrings } from '../../utils/helperFunctions';
-import EmptyFilterResults from './components/EmptyFilterResults';
-import EnhancedTableHeader from './components/EnhanchedTableHeader';
-import TableCellWithTooltip from './components/TableCellWithTooltip';
+import { DelegationWithInfo } from '../../../api/generated/b4f-dashboard/DelegationWithInfo';
+import { useAppSelector } from '../../../redux/hooks';
+import { partiesSelectors } from '../../../redux/slices/partiesSlice';
+import ROUTES from '../../../routes';
+import { compareDates, compareStrings } from '../../../utils/helperFunctions';
+import EmptyFilterResults from './EmptyFilterResults';
+import EnhancedTableHeader from './EnhanchedTableHeader';
+import TableCellWithTooltip from './TableCellWithTooltip';
type Props = {
delegationsWithoutDuplicates: Array;
diff --git a/src/pages/dashboardTechnologyPartnerPage/TechnologyPartnerTable.tsx b/src/pages/dashboardHandleDelegatesPage/components/TechnologyPartnerTable.tsx
similarity index 90%
rename from src/pages/dashboardTechnologyPartnerPage/TechnologyPartnerTable.tsx
rename to src/pages/dashboardHandleDelegatesPage/components/TechnologyPartnerTable.tsx
index cde2a12a..a3af2a48 100644
--- a/src/pages/dashboardTechnologyPartnerPage/TechnologyPartnerTable.tsx
+++ b/src/pages/dashboardHandleDelegatesPage/components/TechnologyPartnerTable.tsx
@@ -4,9 +4,9 @@ import { Box } from '@mui/system';
import { useErrorDispatcher } from '@pagopa/selfcare-common-frontend/lib';
import { useEffect, useState } from 'react';
import { useTranslation } from 'react-i18next';
-import { DelegationWithInfo } from '../../api/generated/b4f-dashboard/DelegationWithInfo';
-import { Party } from '../../model/Party';
-import { getDelegatingInstitutions } from '../../services/technologyPartnerService';
+import { DelegationWithInfo } from '../../../api/generated/b4f-dashboard/DelegationWithInfo';
+import { Party } from '../../../model/Party';
+import { getDelegatingInstitutions } from '../../../services/technologyPartnerService';
import TechPartnersTable from './TechPartnersTable';
type Props = {
diff --git a/src/pages/dashboardTechnologyPartnerPage/__tests__/DashboardTablePT.test.tsx b/src/pages/dashboardHandleDelegatesPage/components/__tests__/DashboardTablePT.test.tsx
similarity index 86%
rename from src/pages/dashboardTechnologyPartnerPage/__tests__/DashboardTablePT.test.tsx
rename to src/pages/dashboardHandleDelegatesPage/components/__tests__/DashboardTablePT.test.tsx
index 2aeb6cc4..97f05c7c 100644
--- a/src/pages/dashboardTechnologyPartnerPage/__tests__/DashboardTablePT.test.tsx
+++ b/src/pages/dashboardHandleDelegatesPage/components/__tests__/DashboardTablePT.test.tsx
@@ -4,10 +4,10 @@ import { createMemoryHistory } from 'history';
import React from 'react';
import { Provider } from 'react-redux';
import { Router } from 'react-router';
-import { TypeEnum } from '../../../api/generated/b4f-dashboard/DelegationResource';
-import { DelegationWithInfo } from '../../../api/generated/b4f-dashboard/DelegationWithInfo';
-import { DelegationWithPagination } from '../../../api/generated/b4f-dashboard/DelegationWithPagination';
-import { createStore } from '../../../redux/store';
+import { TypeEnum } from '../../../../api/generated/b4f-dashboard/DelegationResource';
+import { DelegationWithInfo } from '../../../../api/generated/b4f-dashboard/DelegationWithInfo';
+import { DelegationWithPagination } from '../../../../api/generated/b4f-dashboard/DelegationWithPagination';
+import { createStore } from '../../../../redux/store';
import TechPartnersTable from '../TechPartnersTable';
const mockedDelegation: DelegationWithPagination = {
diff --git a/src/routes.tsx b/src/routes.tsx
index 1c887e8c..a46daa27 100644
--- a/src/routes.tsx
+++ b/src/routes.tsx
@@ -1,12 +1,13 @@
-import { Redirect, useParams } from 'react-router';
import { resolvePathVariables } from '@pagopa/selfcare-common-frontend/lib/utils/routes-utils';
+import { Redirect, useParams } from 'react-router';
import Dashboard from './pages/dashboard/Dashboard';
+import DashboardDelegationsPage from './pages/dashboardDelegations/DashboardDelegationsPage';
+import AddDelegationPage from './pages/dashboardDelegationsAdd/AddDelegationPage';
+import DashboardHandleDelegatesPage from './pages/dashboardHandleDelegatesPage/DashboardHandleDelegatesPage';
import DashboardOverview from './pages/dashboardOverview/DashboardOverview';
import PartySelectionContainer from './pages/partySelectionContainer/PartySelectionContainer';
import { ENV } from './utils/env';
-import DashboardDelegationsPage from './pages/dashboardDelegations/DashboardDelegationsPage';
-import AddDelegationPage from './pages/dashboardDelegationsAdd/AddDelegationPage';
-import DashboardTechnologyPartnerPage from './pages/dashboardTechnologyPartnerPage/DashboardTechnologyPartnerPage';
+
export const BASE_ROUTE = ENV.PUBLIC_URL;
@@ -61,7 +62,7 @@ export const DASHBOARD_ROUTES = {
TECHPARTNER: {
path: `${BASE_ROUTE}/:partyId/delegate`,
exact: true,
- component: DashboardTechnologyPartnerPage,
+ component: DashboardHandleDelegatesPage,
},
ADD_DELEGATE: {
path: `${BASE_ROUTE}/:partyId/delegations/add`,
diff --git a/src/pages/dashboardTechnologyPartnerPage/__tests__/utils.test.ts b/src/utils/__tests__/utils.test.ts
similarity index 93%
rename from src/pages/dashboardTechnologyPartnerPage/__tests__/utils.test.ts
rename to src/utils/__tests__/utils.test.ts
index af85a083..0874f28b 100644
--- a/src/pages/dashboardTechnologyPartnerPage/__tests__/utils.test.ts
+++ b/src/utils/__tests__/utils.test.ts
@@ -1,4 +1,5 @@
-import { compareDates, compareStrings } from '../../../utils/helperFunctions';
+import { compareDates, compareStrings } from '../helperFunctions';
+
describe('compareDates', () => {
it('should return 0 when both dates are undefined', () => {
diff --git a/src/utils/test-utils.tsx b/src/utils/test-utils.tsx
index ca787e8d..e6b20dbb 100644
--- a/src/utils/test-utils.tsx
+++ b/src/utils/test-utils.tsx
@@ -1,20 +1,20 @@
-import { Router } from 'react-router-dom';
-import { Provider } from 'react-redux';
-import { render } from '@testing-library/react';
-import { createMemoryHistory } from 'history';
-import { createStore } from '../redux/store';
-
-export const renderWithProviders = (
- component: React.ReactElement,
- injectedStore?: ReturnType,
- injectedHistory?: ReturnType
-) => {
- const store = injectedStore ? injectedStore : createStore();
- const history = injectedHistory ? injectedHistory : createMemoryHistory();
- render(
-
- {component}
-
- );
- return { store, history };
-};
+import { Router } from 'react-router-dom';
+import { Provider } from 'react-redux';
+import { render } from '@testing-library/react';
+import { createMemoryHistory } from 'history';
+import { createStore } from '../redux/store';
+
+export const renderWithProviders = (
+ component: React.ReactElement,
+ injectedStore?: ReturnType,
+ injectedHistory?: ReturnType
+) => {
+ const store = injectedStore || createStore();
+ const history = injectedHistory || createMemoryHistory();
+ render(
+
+ {component}
+
+ );
+ return { store, history };
+};
From d715573a746c5135983a6cb2a23e59fc9e4afeb5 Mon Sep 17 00:00:00 2001
From: OraldoDoci <117348307+OraldoDoci@users.noreply.github.com>
Date: Wed, 6 Nov 2024 13:55:31 +0100
Subject: [PATCH 02/10] [SELC-5920] Feat: hide sidebar for edit user detail
page
---
src/pages/dashboard/Dashboard.tsx | 7 +++++-
.../dashboard/__tests__/Dashboard.test.tsx | 24 ++++++++++++++++---
.../DashboardSidenavItem.tsx | 2 +-
3 files changed, 28 insertions(+), 5 deletions(-)
diff --git a/src/pages/dashboard/Dashboard.tsx b/src/pages/dashboard/Dashboard.tsx
index cac668bc..e03f1633 100644
--- a/src/pages/dashboard/Dashboard.tsx
+++ b/src/pages/dashboard/Dashboard.tsx
@@ -174,7 +174,12 @@ const Dashboard = () => {
]);
// Check if the current route matches any path in the array
- const paths = [DASHBOARD_ROUTES.ADD_DELEGATE.path, `${ENV.ROUTES.USERS}/add`];
+ const paths = [
+ DASHBOARD_ROUTES.ADD_DELEGATE.path,
+ `${ENV.ROUTES.USERS}/add`,
+ `${ENV.ROUTES.USERS}/:userId/edit`,
+ `${ENV.ROUTES.USERS}/:userId/add-product`,
+ ];
const match = matchPath(location.pathname, {
path: paths,
diff --git a/src/pages/dashboard/__tests__/Dashboard.test.tsx b/src/pages/dashboard/__tests__/Dashboard.test.tsx
index ce15d2b8..6f63fe4f 100644
--- a/src/pages/dashboard/__tests__/Dashboard.test.tsx
+++ b/src/pages/dashboard/__tests__/Dashboard.test.tsx
@@ -1,5 +1,5 @@
import useMediaQuery from '@mui/material/useMediaQuery';
-import { fireEvent, render, screen, waitFor, within } from '@testing-library/react';
+import { cleanup, fireEvent, render, screen, waitFor, within } from '@testing-library/react';
import { createMemoryHistory } from 'history';
import React from 'react';
import { Provider } from 'react-redux';
@@ -27,12 +27,17 @@ afterAll(() => {
Object.defineProperty(window, 'location', { value: oldWindowLocation });
});
+afterEach(() => {
+ jest.clearAllMocks();
+ cleanup();
+});
+
const renderDashboard = (
injectedStore?: ReturnType,
injectedHistory?: ReturnType
) => {
- const store = injectedStore ? injectedStore : createStore();
- const history = injectedHistory ? injectedHistory : createMemoryHistory();
+ const store = injectedStore || createStore();
+ const history = injectedHistory || createMemoryHistory();
render(
@@ -87,6 +92,8 @@ test('Test rendering on mobile', async () => {
const drawer = await waitFor(() => screen.getByRole('presentation'));
expect(drawer).toBeInTheDocument();
+ fireEvent.click(drawer);
+
const drawerNav = within(drawer).getByRole('navigation');
const overviewButtonInDrawer = within(drawerNav).getByText('Panoramica');
@@ -98,3 +105,14 @@ test('Test rendering on mobile', async () => {
expect(screen.queryByRole('presentation')).not.toBeInTheDocument();
});
});
+
+test('Test rendering on desktop', async () => {
+ (useMediaQuery as jest.Mock).mockReturnValue(false);
+
+ renderDashboard();
+
+ const sideBarCloseIcon = await screen.findByTestId('DehazeIcon');
+
+ fireEvent.click(sideBarCloseIcon);
+
+});
\ No newline at end of file
diff --git a/src/pages/dashboard/components/dashboardSideMenu/DashboardSidenavItem.tsx b/src/pages/dashboard/components/dashboardSideMenu/DashboardSidenavItem.tsx
index c9f9fa21..0ea2e3c8 100644
--- a/src/pages/dashboard/components/dashboardSideMenu/DashboardSidenavItem.tsx
+++ b/src/pages/dashboard/components/dashboardSideMenu/DashboardSidenavItem.tsx
@@ -35,7 +35,7 @@ export default function DashboardSidenavItem({
isPtSelected,
handleClickPtPage,
hideLabels,
-}: Props) {
+}: Readonly) {
const theme = useTheme();
const isMobile = useMediaQuery(theme.breakpoints.down('lg'));
return (
From 068d6bcb5aa4e678217cad354cdbac543980c4e1 Mon Sep 17 00:00:00 2001
From: OraldoDoci <117348307+OraldoDoci@users.noreply.github.com>
Date: Thu, 7 Nov 2024 09:28:18 +0100
Subject: [PATCH 03/10] [SELC-5888] Fix: rederict interop production enviroment
---
src/components/DashboardHeader.tsx | 2 +-
.../__tests__/AddDelegationPage.test.tsx | 22 +++++++++++++++++++
.../__tests__/DashboardOverview.test.tsx | 1 +
.../__tests__/ActiveProductsSection.test.tsx | 17 ++++++++++++++
.../components/ActiveProductCardContainer.tsx | 3 ++-
5 files changed, 43 insertions(+), 2 deletions(-)
create mode 100644 src/pages/dashboardDelegationsAdd/__tests__/AddDelegationPage.test.tsx
create mode 100644 src/pages/dashboardOverview/components/__tests__/ActiveProductsSection.test.tsx
diff --git a/src/components/DashboardHeader.tsx b/src/components/DashboardHeader.tsx
index f805b1d0..6f416a9e 100644
--- a/src/components/DashboardHeader.tsx
+++ b/src/components/DashboardHeader.tsx
@@ -84,7 +84,7 @@ const DashboardHeader = ({ onExit, loggedUser, parties }: Props) => {
const lang = i18n.language;
return (
-
+
{
+ const mockedAgencyOnboarded = mockedParties[4];
+ renderWithProviders(
+
+ );
+});
+
+test('should render component AddDelegationPage with populated props', () => {
+ const mockedAgencyOnboarded = mockedParties[4];
+ renderWithProviders(
+ p.delegable)}
+ party={mockedAgencyOnboarded}
+ />
+ );
+});
diff --git a/src/pages/dashboardOverview/__tests__/DashboardOverview.test.tsx b/src/pages/dashboardOverview/__tests__/DashboardOverview.test.tsx
index 38325c85..4e7eb366 100644
--- a/src/pages/dashboardOverview/__tests__/DashboardOverview.test.tsx
+++ b/src/pages/dashboardOverview/__tests__/DashboardOverview.test.tsx
@@ -108,3 +108,4 @@ test('should render component DashboardOverview with geoTaxonomy', async () => {
fireEvent.click(closeModal);
});
+
diff --git a/src/pages/dashboardOverview/components/__tests__/ActiveProductsSection.test.tsx b/src/pages/dashboardOverview/components/__tests__/ActiveProductsSection.test.tsx
new file mode 100644
index 00000000..a1a35875
--- /dev/null
+++ b/src/pages/dashboardOverview/components/__tests__/ActiveProductsSection.test.tsx
@@ -0,0 +1,17 @@
+import React from 'react';
+import { mockedParties } from '../../../../services/__mocks__/partyService';
+import { mockedPartyProducts } from '../../../../services/__mocks__/productService';
+import { renderWithProviders } from '../../../../utils/test-utils';
+import ActiveProductsSection from '../activeProductsSection/ActiveProductsSection';
+
+test('should render component ActiveProductsSection empty props', () => {
+ const mockedAgencyOnboarded = mockedParties[4];
+ renderWithProviders();
+});
+
+test('should render component ActiveProductsSection', () => {
+ const mockedAgencyOnboarded = mockedParties[4];
+ renderWithProviders(
+
+ );
+});
diff --git a/src/pages/dashboardOverview/components/activeProductsSection/components/ActiveProductCardContainer.tsx b/src/pages/dashboardOverview/components/activeProductsSection/components/ActiveProductCardContainer.tsx
index bcb42def..dac55e45 100644
--- a/src/pages/dashboardOverview/components/activeProductsSection/components/ActiveProductCardContainer.tsx
+++ b/src/pages/dashboardOverview/components/activeProductsSection/components/ActiveProductCardContainer.tsx
@@ -44,6 +44,7 @@ export default function ActiveProductCardContainer({
);
const productOnboarded = products.find((p) => p.id === product.productId);
+ const interopProduction = products.find((p) => p.id === INTEROP_PRODUCT_ENUM.INTEROP);
const isOperatorWithNoAuthorizedProduct = party.userRole === 'LIMITED' && isDisabled;
@@ -95,7 +96,7 @@ export default function ActiveProductCardContainer({
}
onConfirmLabel={t('overview.activeProducts.activeProductsEnvModal.enterButton')}
onCloseLabel={t('overview.activeProducts.activeProductsEnvModal.backButton')}
- onConfirm={() => invokeProductBo(productOnboarded, party, undefined, lang)}
+ onConfirm={() => invokeProductBo(interopProduction as Product, party, undefined, lang)}
handleClose={() => {
setOpenCustomEnvInteropModal(false);
}}
From 9f9def03ef3c84a624e9862f8868019fa9aa45c5 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 7 Nov 2024 10:01:54 +0100
Subject: [PATCH 04/10] build(deps): bump express from 4.18.1 to 4.21.1
Signed-off-by: dependabot[bot]
Co-authored-by: loremedda <98110186+loremedda@users.noreply.github.com>
Co-authored-by: Manuel Rafeli
Co-authored-by: Filippo Baudanza
Co-authored-by: OraldoDoci <117348307+OraldoDoci@users.noreply.github.com>
Co-authored-by: andrea-putzu <106688558+andrea-putzu@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
yarn.lock | 92 +++++++++++++++++++++++++++----------------------------
1 file changed, 45 insertions(+), 47 deletions(-)
diff --git a/yarn.lock b/yarn.lock
index dccae70d..783117ef 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3742,7 +3742,7 @@ bluebird@~3.4.1:
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.4.7.tgz#f72d760be09b7f76d08ed8fae98b289a8d05fab3"
integrity sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==
-body-parser@1.20.0, body-parser@^1.20.3:
+body-parser@1.20.3, body-parser@^1.20.3:
version "1.20.3"
resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.3.tgz#1953431221c6fb5cd63c4b36d53fab0928e548c6"
integrity sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==
@@ -4255,10 +4255,10 @@ cookie-signature@1.0.6:
resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==
-cookie@0.5.0:
- version "0.5.0"
- resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b"
- integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==
+cookie@0.7.1:
+ version "0.7.1"
+ resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.1.tgz#2f73c42142d5d5cf71310a74fc4ae61670e5dbc9"
+ integrity sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==
cookiejar@^2.1.0:
version "2.1.3"
@@ -4970,6 +4970,11 @@ encodeurl@~1.0.2:
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==
+encodeurl@~2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58"
+ integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==
+
encoding@^0.1.11:
version "0.1.13"
resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9"
@@ -5480,36 +5485,36 @@ expect@^27.5.1:
jest-message-util "^27.5.1"
express@^4.17.3:
- version "4.18.1"
- resolved "https://registry.yarnpkg.com/express/-/express-4.18.1.tgz#7797de8b9c72c857b9cd0e14a5eea80666267caf"
- integrity sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==
+ version "4.21.1"
+ resolved "https://registry.yarnpkg.com/express/-/express-4.21.1.tgz#9dae5dda832f16b4eec941a4e44aa89ec481b281"
+ integrity sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==
dependencies:
accepts "~1.3.8"
array-flatten "1.1.1"
- body-parser "1.20.0"
+ body-parser "1.20.3"
content-disposition "0.5.4"
content-type "~1.0.4"
- cookie "0.5.0"
+ cookie "0.7.1"
cookie-signature "1.0.6"
debug "2.6.9"
depd "2.0.0"
- encodeurl "~1.0.2"
+ encodeurl "~2.0.0"
escape-html "~1.0.3"
etag "~1.8.1"
- finalhandler "1.2.0"
+ finalhandler "1.3.1"
fresh "0.5.2"
http-errors "2.0.0"
- merge-descriptors "1.0.1"
+ merge-descriptors "1.0.3"
methods "~1.1.2"
on-finished "2.4.1"
parseurl "~1.3.3"
- path-to-regexp "0.1.7"
+ path-to-regexp "0.1.10"
proxy-addr "~2.0.7"
- qs "6.10.3"
+ qs "6.13.0"
range-parser "~1.2.1"
safe-buffer "5.2.1"
- send "0.18.0"
- serve-static "1.15.0"
+ send "0.19.0"
+ serve-static "1.16.2"
setprototypeof "1.2.0"
statuses "2.0.1"
type-is "~1.6.18"
@@ -5645,13 +5650,13 @@ fill-range@^7.1.1:
dependencies:
to-regex-range "^5.0.1"
-finalhandler@1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32"
- integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==
+finalhandler@1.3.1:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.3.1.tgz#0c575f1d1d324ddd1da35ad7ece3df7d19088019"
+ integrity sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==
dependencies:
debug "2.6.9"
- encodeurl "~1.0.2"
+ encodeurl "~2.0.0"
escape-html "~1.0.3"
on-finished "2.4.1"
parseurl "~1.3.3"
@@ -7866,10 +7871,10 @@ memorystream@^0.3.1:
resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2"
integrity sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==
-merge-descriptors@1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
- integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==
+merge-descriptors@1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.3.tgz#d80319a65f3c7935351e5cfdac8f9318504dbed5"
+ integrity sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==
merge-stream@^2.0.0:
version "2.0.0"
@@ -8490,10 +8495,10 @@ path-parse@^1.0.6, path-parse@^1.0.7:
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
-path-to-regexp@0.1.7:
- version "0.1.7"
- resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
- integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==
+path-to-regexp@0.1.10:
+ version "0.1.10"
+ resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.10.tgz#67e9108c5c0551b9e5326064387de4763c4d5f8b"
+ integrity sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==
path-to-regexp@^1.7.0:
version "1.8.0"
@@ -9226,13 +9231,6 @@ q@0.9.7:
resolved "https://registry.yarnpkg.com/q/-/q-0.9.7.tgz#4de2e6cb3b29088c9e4cbc03bf9d42fb96ce2f75"
integrity sha512-ijt0LhxWClXBtc1RCt8H0WhlZLAdVX26nWbpsJy+Hblmp81d2F/pFsvlrJhJDDruFHM+ECtxP0H0HzGSrARkwg==
-qs@6.10.3:
- version "6.10.3"
- resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e"
- integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==
- dependencies:
- side-channel "^1.0.4"
-
qs@6.13.0:
version "6.13.0"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.0.tgz#6ca3bd58439f7e245655798997787b0d88a51906"
@@ -10016,10 +10014,10 @@ semver@^7.3.2, semver@^7.3.5, semver@^7.3.7:
dependencies:
lru-cache "^6.0.0"
-send@0.18.0:
- version "0.18.0"
- resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be"
- integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==
+send@0.19.0:
+ version "0.19.0"
+ resolved "https://registry.yarnpkg.com/send/-/send-0.19.0.tgz#bbc5a388c8ea6c048967049dbeac0e4a3f09d7f8"
+ integrity sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==
dependencies:
debug "2.6.9"
depd "2.0.0"
@@ -10062,15 +10060,15 @@ serve-index@^1.9.1:
mime-types "~2.1.17"
parseurl "~1.3.2"
-serve-static@1.15.0:
- version "1.15.0"
- resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540"
- integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==
+serve-static@1.16.2:
+ version "1.16.2"
+ resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.16.2.tgz#b6a5343da47f6bdd2673848bf45754941e803296"
+ integrity sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==
dependencies:
- encodeurl "~1.0.2"
+ encodeurl "~2.0.0"
escape-html "~1.0.3"
parseurl "~1.3.3"
- send "0.18.0"
+ send "0.19.0"
set-function-length@^1.2.1:
version "1.2.2"
From a5c4de3757676bccacce2cf9bacbae422ee0beb5 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 7 Nov 2024 11:07:01 +0100
Subject: [PATCH 05/10] build(deps): bump webpack from 5.73.0 to 5.90.2
Signed-off-by: dependabot[bot]
Co-authored-by: loremedda <98110186+loremedda@users.noreply.github.com>
Co-authored-by: Manuel Rafeli
Co-authored-by: Filippo Baudanza
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: OraldoDoci <117348307+OraldoDoci@users.noreply.github.com>
---
yarn.lock | 358 ++++++++++++++++++++++++++++++++++--------------------
1 file changed, 223 insertions(+), 135 deletions(-)
diff --git a/yarn.lock b/yarn.lock
index 783117ef..cfb355a0 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1776,6 +1776,14 @@
"@jridgewell/gen-mapping" "^0.3.0"
"@jridgewell/trace-mapping" "^0.3.9"
+"@jridgewell/source-map@^0.3.3":
+ version "0.3.5"
+ resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.5.tgz#a3bb4d5c6825aab0d281268f47f6ad5853431e91"
+ integrity sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==
+ dependencies:
+ "@jridgewell/gen-mapping" "^0.3.0"
+ "@jridgewell/trace-mapping" "^0.3.9"
+
"@jridgewell/sourcemap-codec@^1.4.10":
version "1.4.14"
resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24"
@@ -2477,7 +2485,7 @@
"@types/estree" "*"
"@types/json-schema" "*"
-"@types/estree@*", "@types/estree@^0.0.51":
+"@types/estree@*":
version "0.0.51"
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40"
integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==
@@ -2487,6 +2495,11 @@
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f"
integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==
+"@types/estree@^1.0.5":
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4"
+ integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==
+
"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18":
version "4.17.28"
resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz#c47def9f34ec81dc6328d0b1b5303d1ec98d86b8"
@@ -2921,125 +2934,125 @@
"@typescript-eslint/types" "5.30.0"
eslint-visitor-keys "^3.3.0"
-"@webassemblyjs/ast@1.11.1":
- version "1.11.1"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7"
- integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==
+"@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5":
+ version "1.11.6"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.6.tgz#db046555d3c413f8966ca50a95176a0e2c642e24"
+ integrity sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==
dependencies:
- "@webassemblyjs/helper-numbers" "1.11.1"
- "@webassemblyjs/helper-wasm-bytecode" "1.11.1"
+ "@webassemblyjs/helper-numbers" "1.11.6"
+ "@webassemblyjs/helper-wasm-bytecode" "1.11.6"
-"@webassemblyjs/floating-point-hex-parser@1.11.1":
- version "1.11.1"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f"
- integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==
+"@webassemblyjs/floating-point-hex-parser@1.11.6":
+ version "1.11.6"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz#dacbcb95aff135c8260f77fa3b4c5fea600a6431"
+ integrity sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==
-"@webassemblyjs/helper-api-error@1.11.1":
- version "1.11.1"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16"
- integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==
+"@webassemblyjs/helper-api-error@1.11.6":
+ version "1.11.6"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz#6132f68c4acd59dcd141c44b18cbebbd9f2fa768"
+ integrity sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==
-"@webassemblyjs/helper-buffer@1.11.1":
- version "1.11.1"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5"
- integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==
+"@webassemblyjs/helper-buffer@1.11.6":
+ version "1.11.6"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz#b66d73c43e296fd5e88006f18524feb0f2c7c093"
+ integrity sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==
-"@webassemblyjs/helper-numbers@1.11.1":
- version "1.11.1"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae"
- integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==
+"@webassemblyjs/helper-numbers@1.11.6":
+ version "1.11.6"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz#cbce5e7e0c1bd32cf4905ae444ef64cea919f1b5"
+ integrity sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==
dependencies:
- "@webassemblyjs/floating-point-hex-parser" "1.11.1"
- "@webassemblyjs/helper-api-error" "1.11.1"
+ "@webassemblyjs/floating-point-hex-parser" "1.11.6"
+ "@webassemblyjs/helper-api-error" "1.11.6"
"@xtuc/long" "4.2.2"
-"@webassemblyjs/helper-wasm-bytecode@1.11.1":
- version "1.11.1"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1"
- integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==
+"@webassemblyjs/helper-wasm-bytecode@1.11.6":
+ version "1.11.6"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz#bb2ebdb3b83aa26d9baad4c46d4315283acd51e9"
+ integrity sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==
-"@webassemblyjs/helper-wasm-section@1.11.1":
- version "1.11.1"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a"
- integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==
+"@webassemblyjs/helper-wasm-section@1.11.6":
+ version "1.11.6"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz#ff97f3863c55ee7f580fd5c41a381e9def4aa577"
+ integrity sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==
dependencies:
- "@webassemblyjs/ast" "1.11.1"
- "@webassemblyjs/helper-buffer" "1.11.1"
- "@webassemblyjs/helper-wasm-bytecode" "1.11.1"
- "@webassemblyjs/wasm-gen" "1.11.1"
+ "@webassemblyjs/ast" "1.11.6"
+ "@webassemblyjs/helper-buffer" "1.11.6"
+ "@webassemblyjs/helper-wasm-bytecode" "1.11.6"
+ "@webassemblyjs/wasm-gen" "1.11.6"
-"@webassemblyjs/ieee754@1.11.1":
- version "1.11.1"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614"
- integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==
+"@webassemblyjs/ieee754@1.11.6":
+ version "1.11.6"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz#bb665c91d0b14fffceb0e38298c329af043c6e3a"
+ integrity sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==
dependencies:
"@xtuc/ieee754" "^1.2.0"
-"@webassemblyjs/leb128@1.11.1":
- version "1.11.1"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5"
- integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==
+"@webassemblyjs/leb128@1.11.6":
+ version "1.11.6"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz#70e60e5e82f9ac81118bc25381a0b283893240d7"
+ integrity sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==
dependencies:
"@xtuc/long" "4.2.2"
-"@webassemblyjs/utf8@1.11.1":
- version "1.11.1"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff"
- integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==
-
-"@webassemblyjs/wasm-edit@1.11.1":
- version "1.11.1"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6"
- integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==
- dependencies:
- "@webassemblyjs/ast" "1.11.1"
- "@webassemblyjs/helper-buffer" "1.11.1"
- "@webassemblyjs/helper-wasm-bytecode" "1.11.1"
- "@webassemblyjs/helper-wasm-section" "1.11.1"
- "@webassemblyjs/wasm-gen" "1.11.1"
- "@webassemblyjs/wasm-opt" "1.11.1"
- "@webassemblyjs/wasm-parser" "1.11.1"
- "@webassemblyjs/wast-printer" "1.11.1"
-
-"@webassemblyjs/wasm-gen@1.11.1":
- version "1.11.1"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76"
- integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==
- dependencies:
- "@webassemblyjs/ast" "1.11.1"
- "@webassemblyjs/helper-wasm-bytecode" "1.11.1"
- "@webassemblyjs/ieee754" "1.11.1"
- "@webassemblyjs/leb128" "1.11.1"
- "@webassemblyjs/utf8" "1.11.1"
-
-"@webassemblyjs/wasm-opt@1.11.1":
- version "1.11.1"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2"
- integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==
- dependencies:
- "@webassemblyjs/ast" "1.11.1"
- "@webassemblyjs/helper-buffer" "1.11.1"
- "@webassemblyjs/wasm-gen" "1.11.1"
- "@webassemblyjs/wasm-parser" "1.11.1"
-
-"@webassemblyjs/wasm-parser@1.11.1":
- version "1.11.1"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199"
- integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==
- dependencies:
- "@webassemblyjs/ast" "1.11.1"
- "@webassemblyjs/helper-api-error" "1.11.1"
- "@webassemblyjs/helper-wasm-bytecode" "1.11.1"
- "@webassemblyjs/ieee754" "1.11.1"
- "@webassemblyjs/leb128" "1.11.1"
- "@webassemblyjs/utf8" "1.11.1"
-
-"@webassemblyjs/wast-printer@1.11.1":
- version "1.11.1"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0"
- integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==
- dependencies:
- "@webassemblyjs/ast" "1.11.1"
+"@webassemblyjs/utf8@1.11.6":
+ version "1.11.6"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz#90f8bc34c561595fe156603be7253cdbcd0fab5a"
+ integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==
+
+"@webassemblyjs/wasm-edit@^1.11.5":
+ version "1.11.6"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz#c72fa8220524c9b416249f3d94c2958dfe70ceab"
+ integrity sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==
+ dependencies:
+ "@webassemblyjs/ast" "1.11.6"
+ "@webassemblyjs/helper-buffer" "1.11.6"
+ "@webassemblyjs/helper-wasm-bytecode" "1.11.6"
+ "@webassemblyjs/helper-wasm-section" "1.11.6"
+ "@webassemblyjs/wasm-gen" "1.11.6"
+ "@webassemblyjs/wasm-opt" "1.11.6"
+ "@webassemblyjs/wasm-parser" "1.11.6"
+ "@webassemblyjs/wast-printer" "1.11.6"
+
+"@webassemblyjs/wasm-gen@1.11.6":
+ version "1.11.6"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz#fb5283e0e8b4551cc4e9c3c0d7184a65faf7c268"
+ integrity sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==
+ dependencies:
+ "@webassemblyjs/ast" "1.11.6"
+ "@webassemblyjs/helper-wasm-bytecode" "1.11.6"
+ "@webassemblyjs/ieee754" "1.11.6"
+ "@webassemblyjs/leb128" "1.11.6"
+ "@webassemblyjs/utf8" "1.11.6"
+
+"@webassemblyjs/wasm-opt@1.11.6":
+ version "1.11.6"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz#d9a22d651248422ca498b09aa3232a81041487c2"
+ integrity sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==
+ dependencies:
+ "@webassemblyjs/ast" "1.11.6"
+ "@webassemblyjs/helper-buffer" "1.11.6"
+ "@webassemblyjs/wasm-gen" "1.11.6"
+ "@webassemblyjs/wasm-parser" "1.11.6"
+
+"@webassemblyjs/wasm-parser@1.11.6", "@webassemblyjs/wasm-parser@^1.11.5":
+ version "1.11.6"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz#bb85378c527df824004812bbdb784eea539174a1"
+ integrity sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==
+ dependencies:
+ "@webassemblyjs/ast" "1.11.6"
+ "@webassemblyjs/helper-api-error" "1.11.6"
+ "@webassemblyjs/helper-wasm-bytecode" "1.11.6"
+ "@webassemblyjs/ieee754" "1.11.6"
+ "@webassemblyjs/leb128" "1.11.6"
+ "@webassemblyjs/utf8" "1.11.6"
+
+"@webassemblyjs/wast-printer@1.11.6":
+ version "1.11.6"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz#a7bf8dd7e362aeb1668ff43f35cb849f188eff20"
+ integrity sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==
+ dependencies:
+ "@webassemblyjs/ast" "1.11.6"
"@xtuc/long" "4.2.2"
"@xtuc/ieee754@^1.2.0":
@@ -3090,10 +3103,10 @@ acorn-globals@^6.0.0:
acorn "^7.1.1"
acorn-walk "^7.1.1"
-acorn-import-assertions@^1.7.6:
- version "1.8.0"
- resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9"
- integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==
+acorn-import-assertions@^1.9.0:
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac"
+ integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==
acorn-jsx@^5.3.2:
version "5.3.2"
@@ -3129,6 +3142,11 @@ acorn@^8.2.4, acorn@^8.4.1, acorn@^8.5.0, acorn@^8.7.1:
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.1.tgz#0197122c843d1bf6d0a5e83220a788f278f63c30"
integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==
+acorn@^8.8.2:
+ version "8.11.3"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a"
+ integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==
+
address@^1.0.1, address@^1.1.2:
version "1.2.0"
resolved "https://registry.yarnpkg.com/address/-/address-1.2.0.tgz#d352a62c92fee90f89a693eccd2a8b2139ab02d9"
@@ -3802,7 +3820,7 @@ browser-process-hrtime@^1.0.0:
resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626"
integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==
-browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.16.6, browserslist@^4.18.1, browserslist@^4.20.2, browserslist@^4.20.3:
+browserslist@^4.0.0, browserslist@^4.16.6, browserslist@^4.18.1, browserslist@^4.20.2, browserslist@^4.20.3:
version "4.20.4"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.4.tgz#98096c9042af689ee1e0271333dbc564b8ce4477"
integrity sha512-ok1d+1WpnU24XYN7oC3QWgTyMhY/avPJ/r9T00xxvUOIparA/gc+UPUMaod3i+G6s+nI2nUb9xZ5k794uIwShw==
@@ -3813,6 +3831,16 @@ browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.16.6, browserslist@^4
node-releases "^2.0.5"
picocolors "^1.0.0"
+browserslist@^4.21.10:
+ version "4.23.0"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.0.tgz#8f3acc2bbe73af7213399430890f86c63a5674ab"
+ integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==
+ dependencies:
+ caniuse-lite "^1.0.30001587"
+ electron-to-chromium "^1.4.668"
+ node-releases "^2.0.14"
+ update-browserslist-db "^1.0.13"
+
bser@2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05"
@@ -3930,6 +3958,11 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001335, caniuse-lite@^1.0.30001349:
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001350.tgz#f0acc6472469d066a4357765eb73be5973eda918"
integrity sha512-NZBql38Pzd+rAu5SPXv+qmTWGQuFsRiemHCJCAPvkoDxWV19/xqL2YHF32fDJ9SDLdLqfax8+S0CO3ncDCp9Iw==
+caniuse-lite@^1.0.30001587:
+ version "1.0.30001587"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001587.tgz#a0bce920155fa56a1885a69c74e1163fc34b4881"
+ integrity sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==
+
case-sensitive-paths-webpack-plugin@^2.4.0:
version "2.4.0"
resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz#db64066c6422eed2e08cc14b986ca43796dbc6d4"
@@ -4933,6 +4966,11 @@ electron-to-chromium@^1.4.147:
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.148.tgz#437430e03c58ccd1d05701f66980afe54d2253ec"
integrity sha512-8MJk1bcQUAYkuvCyWZxaldiwoDG0E0AMzBGA6cv3WfuvJySiPgfidEPBFCRRH3cZm6SVZwo/oRlK1ehi1QNEIQ==
+electron-to-chromium@^1.4.668:
+ version "1.4.670"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.670.tgz#0fc5ac92ada8371e898ea72d577ffc888167a017"
+ integrity sha512-hcijYOWjOtjKrKPtNA6tuLlA/bTLO3heFG8pQA6mLpq7dRydSWicXova5lyxDzp1iVJaYhK7J2OQlGE52KYn7A==
+
emitter-listener@^1.0.1, emitter-listener@^1.1.1:
version "1.1.2"
resolved "https://registry.yarnpkg.com/emitter-listener/-/emitter-listener-1.1.2.tgz#56b140e8f6992375b3d7cb2cab1cc7432d9632e8"
@@ -4989,10 +5027,10 @@ end-of-stream@^1.0.0, end-of-stream@^1.4.1:
dependencies:
once "^1.4.0"
-enhanced-resolve@^5.9.3:
- version "5.9.3"
- resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz#44a342c012cbc473254af5cc6ae20ebd0aae5d88"
- integrity sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow==
+enhanced-resolve@^5.15.0:
+ version "5.15.0"
+ resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz#1af946c7d93603eb88e9896cee4904dc012e9c35"
+ integrity sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==
dependencies:
graceful-fs "^4.2.4"
tapable "^2.2.0"
@@ -5050,6 +5088,11 @@ es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.2, es-abstract@^1.19
string.prototype.trimstart "^1.0.5"
unbox-primitive "^1.0.2"
+es-module-lexer@^1.2.1:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.4.1.tgz#41ea21b43908fe6a287ffcbe4300f790555331f5"
+ integrity sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==
+
es-define-property@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845"
@@ -5062,11 +5105,6 @@ es-errors@^1.3.0:
resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f"
integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==
-es-module-lexer@^0.9.0:
- version "0.9.3"
- resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19"
- integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==
-
es-shim-unscopables@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241"
@@ -8093,6 +8131,11 @@ node-readfiles@^0.2.0:
dependencies:
es6-promise "^3.2.1"
+node-releases@^2.0.14:
+ version "2.0.14"
+ resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b"
+ integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==
+
node-releases@^2.0.5:
version "2.0.5"
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.5.tgz#280ed5bc3eba0d96ce44897d8aee478bfb3d9666"
@@ -9961,7 +10004,7 @@ schema-utils@^2.6.5:
ajv "^6.12.4"
ajv-keywords "^3.5.2"
-schema-utils@^3.0.0, schema-utils@^3.1.0, schema-utils@^3.1.1:
+schema-utils@^3.0.0, schema-utils@^3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281"
integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==
@@ -9970,6 +10013,15 @@ schema-utils@^3.0.0, schema-utils@^3.1.0, schema-utils@^3.1.1:
ajv "^6.12.5"
ajv-keywords "^3.5.2"
+schema-utils@^3.2.0:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe"
+ integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==
+ dependencies:
+ "@types/json-schema" "^7.0.8"
+ ajv "^6.12.5"
+ ajv-keywords "^3.5.2"
+
schema-utils@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.0.0.tgz#60331e9e3ae78ec5d16353c467c34b3a0a1d3df7"
@@ -10047,6 +10099,13 @@ serialize-javascript@^6.0.0:
dependencies:
randombytes "^2.1.0"
+serialize-javascript@^6.0.1:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2"
+ integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==
+ dependencies:
+ randombytes "^2.1.0"
+
serve-index@^1.9.1:
version "1.9.1"
resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239"
@@ -10768,7 +10827,7 @@ terminal-link@^2.0.0:
ansi-escapes "^4.2.1"
supports-hyperlinks "^2.0.0"
-terser-webpack-plugin@^5.1.3, terser-webpack-plugin@^5.2.5:
+terser-webpack-plugin@^5.2.5:
version "5.3.3"
resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.3.tgz#8033db876dd5875487213e87c627bca323e5ed90"
integrity sha512-Fx60G5HNYknNTNQnzQ1VePRuu89ZVYWfjRAeT5rITuCY/1b08s49e5kSQwHDirKZWuoKOBRFS98EUUoZ9kLEwQ==
@@ -10779,6 +10838,17 @@ terser-webpack-plugin@^5.1.3, terser-webpack-plugin@^5.2.5:
serialize-javascript "^6.0.0"
terser "^5.7.2"
+terser-webpack-plugin@^5.3.10:
+ version "5.3.10"
+ resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz#904f4c9193c6fd2a03f693a2150c62a92f40d199"
+ integrity sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==
+ dependencies:
+ "@jridgewell/trace-mapping" "^0.3.20"
+ jest-worker "^27.4.5"
+ schema-utils "^3.1.1"
+ serialize-javascript "^6.0.1"
+ terser "^5.26.0"
+
terser@^5.0.0, terser@^5.10.0, terser@^5.7.2:
version "5.14.2"
resolved "https://registry.yarnpkg.com/terser/-/terser-5.14.2.tgz#9ac9f22b06994d736174f4091aa368db896f1c10"
@@ -10789,6 +10859,16 @@ terser@^5.0.0, terser@^5.10.0, terser@^5.7.2:
commander "^2.20.0"
source-map-support "~0.5.20"
+terser@^5.26.0:
+ version "5.27.1"
+ resolved "https://registry.yarnpkg.com/terser/-/terser-5.27.1.tgz#b0092975ea1b379d166088a1a57e32f0839d84a2"
+ integrity sha512-29wAr6UU/oQpnTw5HoadwjUZnFQXGdOfj0LjZ4sVxzqwHh/QVkvr7m8y9WoR4iN3FRitVduTc6KdjcW38Npsug==
+ dependencies:
+ "@jridgewell/source-map" "^0.3.3"
+ acorn "^8.8.2"
+ commander "^2.20.0"
+ source-map-support "~0.5.20"
+
test-exclude@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e"
@@ -11106,6 +11186,14 @@ upath@^1.2.0:
resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894"
integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==
+update-browserslist-db@^1.0.13:
+ version "1.0.13"
+ resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4"
+ integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==
+ dependencies:
+ escalade "^3.1.1"
+ picocolors "^1.0.0"
+
uri-js@^4.2.2:
version "4.4.1"
resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
@@ -11233,7 +11321,7 @@ walker@^1.0.7:
dependencies:
makeerror "1.0.12"
-watchpack@^2.3.1:
+watchpack@^2.4.0:
version "2.4.0"
resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d"
integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==
@@ -11361,21 +11449,21 @@ webpack-sources@^3.2.3:
integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==
webpack@^5.64.4:
- version "5.73.0"
- resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.73.0.tgz#bbd17738f8a53ee5760ea2f59dce7f3431d35d38"
- integrity sha512-svjudQRPPa0YiOYa2lM/Gacw0r6PvxptHj4FuEKQ2kX05ZLkjbVc5MnPs6its5j7IZljnIqSVo/OsY2X0IpHGA==
+ version "5.90.2"
+ resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.90.2.tgz#189686a8a292427076db9907d495625345805fab"
+ integrity sha512-ziXu8ABGr0InCMEYFnHrYweinHK2PWrMqnwdHk2oK3rRhv/1B+2FnfwYv5oD+RrknK/Pp/Hmyvu+eAsaMYhzCw==
dependencies:
"@types/eslint-scope" "^3.7.3"
- "@types/estree" "^0.0.51"
- "@webassemblyjs/ast" "1.11.1"
- "@webassemblyjs/wasm-edit" "1.11.1"
- "@webassemblyjs/wasm-parser" "1.11.1"
- acorn "^8.4.1"
- acorn-import-assertions "^1.7.6"
- browserslist "^4.14.5"
+ "@types/estree" "^1.0.5"
+ "@webassemblyjs/ast" "^1.11.5"
+ "@webassemblyjs/wasm-edit" "^1.11.5"
+ "@webassemblyjs/wasm-parser" "^1.11.5"
+ acorn "^8.7.1"
+ acorn-import-assertions "^1.9.0"
+ browserslist "^4.21.10"
chrome-trace-event "^1.0.2"
- enhanced-resolve "^5.9.3"
- es-module-lexer "^0.9.0"
+ enhanced-resolve "^5.15.0"
+ es-module-lexer "^1.2.1"
eslint-scope "5.1.1"
events "^3.2.0"
glob-to-regexp "^0.4.1"
@@ -11384,10 +11472,10 @@ webpack@^5.64.4:
loader-runner "^4.2.0"
mime-types "^2.1.27"
neo-async "^2.6.2"
- schema-utils "^3.1.0"
+ schema-utils "^3.2.0"
tapable "^2.1.1"
- terser-webpack-plugin "^5.1.3"
- watchpack "^2.3.1"
+ terser-webpack-plugin "^5.3.10"
+ watchpack "^2.4.0"
webpack-sources "^3.2.3"
websocket-driver@>=0.5.1, websocket-driver@^0.7.4:
From 282f7905cb72e44c8219675dd2f2fbb30854af8e Mon Sep 17 00:00:00 2001
From: OraldoDoci <117348307+OraldoDoci@users.noreply.github.com>
Date: Thu, 14 Nov 2024 11:07:15 +0100
Subject: [PATCH 06/10] [SELC-5966] Feat: integrate new file json with
configuration for wich institutitions type can onboard
---
src/model/Product.tsx | 105 ++++++++++--------
.../dashboardOverview/DashboardOverview.tsx | 68 ++++++------
.../NotActiveProductsSection.tsx | 45 +-------
.../NotActiveProductsSection.test.tsx | 8 +-
.../components/productFilters.ts | 68 ++++++++++++
src/services/__mocks__/productService.ts | 53 +++++++--
6 files changed, 208 insertions(+), 139 deletions(-)
create mode 100644 src/pages/dashboardOverview/components/notActiveProductsSection/components/productFilters.ts
diff --git a/src/model/Product.tsx b/src/model/Product.tsx
index db94f280..45ea3459 100644
--- a/src/model/Product.tsx
+++ b/src/model/Product.tsx
@@ -1,49 +1,56 @@
-import { ProductsResource } from '../api/generated/b4f-dashboard/ProductsResource';
-import { StatusEnum, SubProductResource } from '../api/generated/b4f-dashboard/SubProductResource';
-
-export type Product = {
- description: string;
- id: string;
- logo: string;
- title: string;
- urlBO: string;
- backOfficeEnvironmentConfigurations?: Array<{
- environment?: string;
- url?: string;
- }>;
- urlPublic?: string;
- tag?: string;
- // product status.The intrinsic state of the product. Product status is unrelated to product onboarding status.
- status: StatusEnum;
- imageUrl: string;
- subProducts?: Array;
- logoBgColor?: string;
- delegable: boolean;
- invoiceable?: boolean;
-};
-
-export type ProductsMap = { [id: string]: Product };
-
-export const buildProductsMap = (products: Array): ProductsMap =>
- products.reduce((acc, p) => {
- // eslint-disable-next-line functional/immutable-data
- acc[p.id] = p;
- return acc;
- }, {} as ProductsMap);
-
-export const productResource2Product = (resource: ProductsResource): Product => ({
- description: resource.description ?? '',
- id: resource.id ?? '',
- imageUrl: resource.imageUrl ?? '',
- logo: resource.logo ?? '',
- status: resource.status ?? StatusEnum.INACTIVE,
- title: resource.title ?? '',
- urlBO: resource.urlBO ?? '',
- backOfficeEnvironmentConfigurations: resource.backOfficeEnvironmentConfigurations?.slice(),
- logoBgColor: resource.logoBgColor,
- urlPublic: resource.urlPublic,
- tag: undefined,
- subProducts: resource.children as Array,
- delegable: resource.delegable ?? false,
- invoiceable: resource.invoiceable ?? false,
-});
+import { ProductsResource } from '../api/generated/b4f-dashboard/ProductsResource';
+import { StatusEnum, SubProductResource } from '../api/generated/b4f-dashboard/SubProductResource';
+
+export type Product = {
+ description: string;
+ id: string;
+ logo: string;
+ title: string;
+ urlBO: string;
+ backOfficeEnvironmentConfigurations?: Array<{
+ environment?: string;
+ url?: string;
+ }>;
+ urlPublic?: string;
+ tag?: string;
+ // product status.The intrinsic state of the product. Product status is unrelated to product onboarding status.
+ status: StatusEnum;
+ imageUrl: string;
+ subProducts?: Array;
+ logoBgColor?: string;
+ delegable: boolean;
+ invoiceable?: boolean;
+};
+
+export type ProductsMap = { [id: string]: Product };
+
+export type ProductInstitutionMap = {
+ [productId: string]: {
+ [institutionType: string]: Record;
+ };
+};
+
+
+export const buildProductsMap = (products: Array): ProductsMap =>
+ products.reduce((acc, p) => {
+ // eslint-disable-next-line functional/immutable-data
+ acc[p.id] = p;
+ return acc;
+ }, {} as ProductsMap);
+
+export const productResource2Product = (resource: ProductsResource): Product => ({
+ description: resource.description ?? '',
+ id: resource.id ?? '',
+ imageUrl: resource.imageUrl ?? '',
+ logo: resource.logo ?? '',
+ status: resource.status ?? StatusEnum.INACTIVE,
+ title: resource.title ?? '',
+ urlBO: resource.urlBO ?? '',
+ backOfficeEnvironmentConfigurations: resource.backOfficeEnvironmentConfigurations?.slice(),
+ logoBgColor: resource.logoBgColor,
+ urlPublic: resource.urlPublic,
+ tag: undefined,
+ subProducts: resource.children as Array,
+ delegable: resource.delegable ?? false,
+ invoiceable: resource.invoiceable ?? false,
+});
diff --git a/src/pages/dashboardOverview/DashboardOverview.tsx b/src/pages/dashboardOverview/DashboardOverview.tsx
index 99d505ec..67ac7852 100644
--- a/src/pages/dashboardOverview/DashboardOverview.tsx
+++ b/src/pages/dashboardOverview/DashboardOverview.tsx
@@ -2,11 +2,14 @@ import { Box, Grid } from '@mui/material';
import { usePermissions } from '@pagopa/selfcare-common-frontend/lib';
import { Actions } from '@pagopa/selfcare-common-frontend/lib/utils/constants';
import { useEffect, useState } from 'react';
+import { ProductOnBoardingStatusEnum } from '../../api/generated/b4f-dashboard/OnboardedProductResource';
+import { StatusEnum } from '../../api/generated/b4f-dashboard/SubProductResource';
import { Party } from '../../model/Party';
-import { Product } from '../../model/Product';
+import { Product, ProductInstitutionMap } from '../../model/Product';
import { mockedCategories } from '../../services/__mocks__/productService';
import { ENV } from '../../utils/env';
import ActiveProductsSection from './components/activeProductsSection/ActiveProductsSection';
+import { filterProducts } from './components/notActiveProductsSection/components/productFilters';
import NotActiveProductsSection from './components/notActiveProductsSection/NotActiveProductsSection';
import { PartyDetailModal } from './components/partyDetailModal/PartyDetailModal';
import WelcomeDashboard from './components/welcomeDashboard/WelcomeDashboard';
@@ -18,14 +21,15 @@ type Props = {
const DashboardOverview = ({ party, products }: Props) => {
const [open, setOpen] = useState(false);
- const [allowedCategoriesOnProdPN, setAllowedCategoriesOnProdPN] = useState>([]);
+ const [allowedInstitutionTypes, setAllowedInstitutionTypes] = useState();
+ const [filteredProducts, setFilteredProducts] = useState>([]);
const { getAllProductsWithPermission } = usePermissions();
const showInfoBanner = party.institutionType === 'PA';
-
+ /*
const isInstitutionTypeAllowedOnb =
party.institutionType && !['PT', 'SA', 'AS'].includes(party.institutionType);
-
+*/
const canUploadLogo = getAllProductsWithPermission(Actions.UploadLogo).length > 0;
const canSeeActiveProductsList =
@@ -34,27 +38,21 @@ const DashboardOverview = ({ party, products }: Props) => {
const canSeeNotActiveProductsList =
getAllProductsWithPermission(Actions.ListAvailableProducts).length > 0;
- const getCategoriesOnboardingAllowed = async () => {
+ const getOnboardingAllowedByInstitutionType = async () => {
if (process.env.REACT_APP_API_MOCK_PARTIES === 'true') {
- await Promise.resolve(
- mockedCategories.product['prod-pn']?.ipa.PA?.split(',').map((c: string) => c.trim())
- );
+ await Promise.resolve(mockedCategories);
} else {
try {
- const response = await fetch(ENV.BASE_PATH_CDN_URL + '/assets/config.json');
+ const response = await fetch(
+ ENV.BASE_PATH_CDN_URL + '/assets/product_institution_types.json'
+ );
if (!response.ok) {
console.error(`Failed to fetch config.json: ${response.status} - ${response.statusText}`);
return;
}
- const categoriesAllowedJSON = await response.json();
-
- const categoriesStringToArray = categoriesAllowedJSON?.product['prod-pn']?.ipa.PA?.split(
- ','
- ).map((c: string) => c.trim());
-
- setAllowedCategoriesOnProdPN(categoriesStringToArray);
+ setAllowedInstitutionTypes(await response.json());
} catch (error) {
console.error(error);
}
@@ -62,9 +60,26 @@ const DashboardOverview = ({ party, products }: Props) => {
};
useEffect(() => {
- void getCategoriesOnboardingAllowed();
+ void getOnboardingAllowedByInstitutionType();
}, []);
+ useEffect(() => {
+ if (canSeeNotActiveProductsList && allowedInstitutionTypes) {
+ const filterConfig = {
+ institutionType: party.institutionType ?? '',
+ categoryCode: party.categoryCode,
+ allowedInstitutionTypes,
+ };
+ const productsWithStatusActive = products.filter((p) => p.status === StatusEnum.ACTIVE);
+ const onboardedProducts = party.products.filter(
+ (p) => p.productOnBoardingStatus === ProductOnBoardingStatusEnum.ACTIVE
+ );
+ setFilteredProducts(
+ filterProducts(productsWithStatusActive, filterConfig, onboardedProducts)
+ );
+ }
+ }, [canSeeNotActiveProductsList, allowedInstitutionTypes, party.institutionType]);
+
return (
{
{canSeeActiveProductsList && }
- {canSeeNotActiveProductsList &&
- isInstitutionTypeAllowedOnb &&
- products &&
- products.findIndex(
- (product) =>
- product.status === 'ACTIVE' &&
- party.products.map(
- (us) => us.productId === product.id && us.productOnBoardingStatus !== 'ACTIVE'
- )
- ) > -1 && (
-
- )}
+ {canSeeNotActiveProductsList && filteredProducts.length > 0 && (
+
+ )}
);
diff --git a/src/pages/dashboardOverview/components/notActiveProductsSection/NotActiveProductsSection.tsx b/src/pages/dashboardOverview/components/notActiveProductsSection/NotActiveProductsSection.tsx
index f50213b5..48bcc0e8 100644
--- a/src/pages/dashboardOverview/components/notActiveProductsSection/NotActiveProductsSection.tsx
+++ b/src/pages/dashboardOverview/components/notActiveProductsSection/NotActiveProductsSection.tsx
@@ -1,8 +1,6 @@
/* eslint-disable sonarjs/no-identical-functions */
import { Grid } from '@mui/material';
-import { usePermissions } from '@pagopa/selfcare-common-frontend/lib';
import TitleBox from '@pagopa/selfcare-common-frontend/lib/components/TitleBox';
-import { Actions } from '@pagopa/selfcare-common-frontend/lib/utils/constants';
import React from 'react';
import { useTranslation } from 'react-i18next';
import { Party } from '../../../../model/Party';
@@ -11,48 +9,11 @@ import NotActiveProductCardContainer from './components/NotActiveProductCardCont
type Props = {
party: Party;
- products: Array;
- allowedCategoriesOnProdPN: Array;
+ filteredProducts: Array;
};
-export default function NotActiveProductsSection({
- party,
- products,
- allowedCategoriesOnProdPN,
-}: Readonly) {
+export default function NotActiveProductsSection({ party, filteredProducts }: Readonly) {
const { t } = useTranslation();
- const { hasPermission } = usePermissions();
-
- const isOnboardingAllowedInProdPN = (categoryCode?: string): boolean =>
- allowedCategoriesOnProdPN.includes(categoryCode ?? '');
-
- const isProductEligible = (product: Product) => {
- const isActive = product.status === 'ACTIVE';
- const isNotOnboarded = !party.products.some(
- (pp) => pp.productId === product.id && pp.productOnBoardingStatus === 'ACTIVE'
- );
- const hasEligibleSubProducts =
- product.subProducts &&
- party.products.find(
- (pp) =>
- pp.productId === product.id &&
- hasPermission(pp.productId, Actions.AccessProductBackoffice)
- ) &&
- product.subProducts.some(
- (subProduct) => !party.products.some((pp) => pp.productId === subProduct.id)
- );
-
- return isActive && (isNotOnboarded || hasEligibleSubProducts);
- };
-
- const isProductAllowed = (product: Product) => {
- if (party.institutionType === 'PSP' && product.id === 'prod-pagopa') {
- return false;
- }
- return !(product.id === 'prod-pn' && !isOnboardingAllowedInProdPN(party?.categoryCode));
- };
-
- const eligibleProducts = products.filter(isProductEligible).filter(isProductAllowed);
return (
@@ -64,7 +25,7 @@ export default function NotActiveProductsSection({
titleFontSize="22px"
/>
- {eligibleProducts.map((product) => (
+ {filteredProducts.map((product) => (
))}
diff --git a/src/pages/dashboardOverview/components/notActiveProductsSection/__tests__/NotActiveProductsSection.test.tsx b/src/pages/dashboardOverview/components/notActiveProductsSection/__tests__/NotActiveProductsSection.test.tsx
index 899d86f2..7f4cde50 100644
--- a/src/pages/dashboardOverview/components/notActiveProductsSection/__tests__/NotActiveProductsSection.test.tsx
+++ b/src/pages/dashboardOverview/components/notActiveProductsSection/__tests__/NotActiveProductsSection.test.tsx
@@ -6,18 +6,20 @@ import NotActiveProductsSection from '../NotActiveProductsSection';
describe('NotActiveProductsSection test suite', () => {
test('NotActiveProductsSection render', () => {
- renderWithProviders();
+ renderWithProviders(
+
+ );
});
test('NotActiveProductsSection render with products', () => {
renderWithProviders(
-
+
);
});
test('NotActiveProductsSection render with products', () => {
renderWithProviders(
-
+
);
});
});
diff --git a/src/pages/dashboardOverview/components/notActiveProductsSection/components/productFilters.ts b/src/pages/dashboardOverview/components/notActiveProductsSection/components/productFilters.ts
new file mode 100644
index 00000000..9be8ef63
--- /dev/null
+++ b/src/pages/dashboardOverview/components/notActiveProductsSection/components/productFilters.ts
@@ -0,0 +1,68 @@
+import { OnboardedProduct } from '../../../../../api/generated/b4f-dashboard/OnboardedProduct';
+import { OnboardedProductResource } from '../../../../../api/generated/b4f-dashboard/OnboardedProductResource';
+import { StatusEnum } from '../../../../../api/generated/b4f-dashboard/SubProductResource';
+import { Product, ProductInstitutionMap } from '../../../../../model/Product';
+
+type FilterConfig = {
+ institutionType: string;
+ categoryCode?: string;
+ allowedInstitutionTypes: ProductInstitutionMap;
+};
+
+const institutionTypeFilter = (
+ productsWithStatusActive: Array,
+ { institutionType, categoryCode, allowedInstitutionTypes }: FilterConfig
+): Array =>
+ productsWithStatusActive.filter((product) => {
+ // Check if product is allowed for the institution type
+ const allowedTypes = allowedInstitutionTypes[product.id] ?? allowedInstitutionTypes?.default;
+ if (!allowedTypes || !allowedTypes[institutionType]) {
+ return false;
+ }
+
+ // If categories are required, check if the institution's category is in the allowed list
+ if (allowedTypes[institutionType].categories) {
+ const categories = categoryCode && (allowedTypes[institutionType].categories as string);
+ const categoriesArray = categories?.split(',');
+ return categoriesArray && categoryCode ? categoriesArray.includes(categoryCode) : false;
+ }
+
+ return true;
+ });
+
+const onboardingStatusFilter = (
+ productsWithStatusActive: Array,
+ onboardedProducts: Array
+): Array => {
+ const onboardedProductIds = onboardedProducts.map((p) => p.productId);
+
+ return productsWithStatusActive.filter((product) => {
+ // For productsWithStatusActive with active base version, show eligible children
+ if (product.subProducts && product.subProducts?.length > 0) {
+ return product.subProducts.some(
+ (child) =>
+ !onboardedProductIds.includes(child.id ?? '') && child.status === StatusEnum.ACTIVE
+ );
+ }
+
+ // Exclude productsWithStatusActive that are already onboarded
+ return !onboardedProductIds.includes(product.id);
+ });
+};
+
+/**
+ * Applies all the product filters in the correct order.
+ * @param productsWithStatusActive - The list of productsWithStatusActive to filter
+ * @param config - The filter configuration, including institution type, category code, and allowed product types
+ * @param onboardedProducts - The list of productsWithStatusActive that are already onboarded for the institution
+ * @returns The filtered list of productsWithStatusActive
+ */
+export const filterProducts = (
+ productsWithStatusActive: Array,
+ config: FilterConfig,
+ onboardedProducts: Array
+): Array =>
+ onboardingStatusFilter(
+ institutionTypeFilter(productsWithStatusActive, config),
+ onboardedProducts
+ );
diff --git a/src/services/__mocks__/productService.ts b/src/services/__mocks__/productService.ts
index 1f6330ba..e5f5dc59 100644
--- a/src/services/__mocks__/productService.ts
+++ b/src/services/__mocks__/productService.ts
@@ -1,6 +1,6 @@
import { StatusEnum } from '../../api/generated/b4f-dashboard/SubProductResource';
import { Party } from '../../model/Party';
-import { Product } from '../../model/Product';
+import { Product, ProductInstitutionMap } from '../../model/Product';
import { ProductRole } from '../../model/ProductRole';
export const mockedPartyProducts: Array = [
@@ -213,19 +213,48 @@ export const mockedProductRoles: Array = [
},
];
-export const mockedCategories = {
- product: {
- 'prod-pn': {
- ipa: {
- PA: 'L6,L4,L45,L35,L5,L17,L15,C14',
- },
+export const mockedCategories: ProductInstitutionMap = {
+ 'prod-interop': {
+ PA: {},
+ GSP: {},
+ SA: {},
+ SCP: {},
+ AS: {},
+ PRV: {},
+ },
+ 'prod-pn': {
+ PA: {
+ categories: 'L6,L4,L45,L35,L5,L17,L15,L7,L22',
},
- default: {
- ipa: {
- GSP: 'L37,SAG',
- PA: 'C17,C16,L10,L19,L13,L2,C10,L20,L21,L22,L15,L1,C13,C5,L40,L11,L39,L46,L8,L34,L7,L35,L45,L47,L6,L12,L24,L28,L42,L36,L44,C8,C3,C7,C14,L16,C11,L33,C12,L43,C2,L38,C1,L5,L4,L31,L18,L17,S01,SA',
- },
+ },
+ 'prod-idpay': {
+ PA: {},
+ },
+ 'prod-io': {
+ PA: {},
+ GSP: {},
+ PT: {},
+ },
+ 'prod-pagopa': {
+ PA: {},
+ GSP: {},
+ PSP: {},
+ PT: {},
+ PRV: {},
+ },
+ 'prod-io-sign': {
+ PA: {},
+ GSP: {},
+ },
+ default: {
+ PA: {
+ categories:
+ 'C17,C16,L10,L19,L13,L2,C10,L20,L21,L22,L15,L1,C13,C5,L40,L11,L39,L46,L8,L34,L7,L35,L45,L47,L6,L12,L24,L28,L42,L36,L44,C8,C3,C7,C14,L16,C11,L33,C12,L43,C2,L38,C1,L5,L4,L31,L18,L17,S01,SA',
+ },
+ GSP: {
+ categories: 'L37,SAG',
},
+ SCP: {},
},
};
From b76d3c3239bc15fcb996f537e3ee04b9d7a50ea4 Mon Sep 17 00:00:00 2001
From: OraldoDoci <117348307+OraldoDoci@users.noreply.github.com>
Date: Thu, 14 Nov 2024 15:39:10 +0100
Subject: [PATCH 07/10] [SELC-5996] Fix: filter on party id change
---
src/pages/dashboardOverview/DashboardOverview.tsx | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/pages/dashboardOverview/DashboardOverview.tsx b/src/pages/dashboardOverview/DashboardOverview.tsx
index 67ac7852..83353c95 100644
--- a/src/pages/dashboardOverview/DashboardOverview.tsx
+++ b/src/pages/dashboardOverview/DashboardOverview.tsx
@@ -64,7 +64,7 @@ const DashboardOverview = ({ party, products }: Props) => {
}, []);
useEffect(() => {
- if (canSeeNotActiveProductsList && allowedInstitutionTypes) {
+ if (canSeeNotActiveProductsList && allowedInstitutionTypes && party) {
const filterConfig = {
institutionType: party.institutionType ?? '',
categoryCode: party.categoryCode,
@@ -78,7 +78,7 @@ const DashboardOverview = ({ party, products }: Props) => {
filterProducts(productsWithStatusActive, filterConfig, onboardedProducts)
);
}
- }, [canSeeNotActiveProductsList, allowedInstitutionTypes, party.institutionType]);
+ }, [canSeeNotActiveProductsList, allowedInstitutionTypes, party.partyId]);
return (
From cbcfc425ae31cb7a8fd086cff5d83033b9397d21 Mon Sep 17 00:00:00 2001
From: loremedda <98110186+loremedda@users.noreply.github.com>
Date: Fri, 15 Nov 2024 12:07:03 +0100
Subject: [PATCH 08/10] feat: added italian language fallback
---
src/locale/index.ts | 6 +++++-
src/locale/it.ts | 12 +++++++++---
.../components/welcomeDashboard/WelcomeDashboard.tsx | 2 +-
3 files changed, 15 insertions(+), 5 deletions(-)
diff --git a/src/locale/index.ts b/src/locale/index.ts
index e9fbf9b5..c0917e06 100644
--- a/src/locale/index.ts
+++ b/src/locale/index.ts
@@ -1,4 +1,8 @@
import i18n, { configureI18n } from '@pagopa/selfcare-common-frontend/lib/locale/locale-utils';
import it from './it';
+import en from './it';
+import fr from './it';
+import sl from './it';
+import de from './it';
-configureI18n({ i18n, it });
+configureI18n({ i18n, it, en, fr, sl, de });
diff --git a/src/locale/it.ts b/src/locale/it.ts
index 1763032a..8ff29f8a 100644
--- a/src/locale/it.ts
+++ b/src/locale/it.ts
@@ -1,4 +1,8 @@
export default {
+ customAlert: {
+ message:
+ 'Per migliorare la tua esperienza e offrirti una gestione più mirata, vedrai solo le informazioni e i prodotti di cui sei amministratore.',
+ },
session: {
expired: {
title: 'Sessione scaduta',
@@ -36,8 +40,9 @@ export default {
description:
'L’Area Riservata è dedicata agli enti che utilizzano i prodotti <1 /> PagoPA. Se lavori per un ente, chiedi a un Amministratore <3 /> di aggiungerti nella sezione Utenti.',
backHome: 'Chiudi',
- addAdmin:'Gli attuali Amministratori non sono più disponibili e hai l’esigenza<1 /> di gestire i prodotti? <3>Aggiungi un nuovo Amministratore3>',
- moreInformationOnRoles:'Più informazioni sui ruoli',
+ addAdmin:
+ 'Gli attuali Amministratori non sono più disponibili e hai l’esigenza<1 /> di gestire i prodotti? <3>Aggiungi un nuovo Amministratore3>',
+ moreInformationOnRoles: 'Più informazioni sui ruoli',
},
activeProductCard: {
disableInfo: 'Non hai un ruolo per gestire questo prodotto',
@@ -199,7 +204,8 @@ export default {
},
delegationsPage: {
title: 'Deleghe',
- subTitle: 'Qui trovi l’elenco degli enti a cui hai affidato la gestione di uno o più prodotti. Puoi anche aggiungere una nuova delega.',
+ subTitle:
+ 'Qui trovi l’elenco degli enti a cui hai affidato la gestione di uno o più prodotti. Puoi anche aggiungere una nuova delega.',
whatIsDelegation: 'Cos’è una delega?',
addDelegationsBtn: 'Aggiungi delega',
delegationsNavigationBar: {
diff --git a/src/pages/dashboardOverview/components/welcomeDashboard/WelcomeDashboard.tsx b/src/pages/dashboardOverview/components/welcomeDashboard/WelcomeDashboard.tsx
index 768d2451..89d1a7ba 100644
--- a/src/pages/dashboardOverview/components/welcomeDashboard/WelcomeDashboard.tsx
+++ b/src/pages/dashboardOverview/components/welcomeDashboard/WelcomeDashboard.tsx
@@ -52,7 +52,7 @@ export default function WelcomeDashboard({ setOpen }: Props) {
-
+
>
);
From c43d463a0d928bd89cb77ffcaf7abc87de730cf0 Mon Sep 17 00:00:00 2001
From: Logos <155662221+logos-trad@users.noreply.github.com>
Date: Fri, 15 Nov 2024 14:43:50 +0100
Subject: [PATCH 09/10] Consegna traduzioni selfcare-dashboard-frontend [SEND]
Co-authored-by: loremedda <98110186+loremedda@users.noreply.github.com>
---
src/locale/de.ts | 296 +++++++++++++++++++++++++++++++++++++++++++++++
src/locale/en.ts | 296 +++++++++++++++++++++++++++++++++++++++++++++++
src/locale/fr.ts | 296 +++++++++++++++++++++++++++++++++++++++++++++++
src/locale/sl.ts | 296 +++++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 1184 insertions(+)
create mode 100644 src/locale/de.ts
create mode 100644 src/locale/en.ts
create mode 100644 src/locale/fr.ts
create mode 100644 src/locale/sl.ts
diff --git a/src/locale/de.ts b/src/locale/de.ts
new file mode 100644
index 00000000..0baac354
--- /dev/null
+++ b/src/locale/de.ts
@@ -0,0 +1,296 @@
+export default {
+ session: {
+ expired: {
+ title: 'Sitzung abgelaufen',
+ message: 'Du wirst zur Anmeldeseite weitergeleitet...',
+ },
+ },
+ partySelection: {
+ title: 'Wähle deine Körperschaft',
+ subTitle:
+ 'Se operi per più enti, potrai modificare la tua scelta dopo aver <1 /> effettuato l’accesso.',
+ partyStatus: {
+ pending: 'Zu vervollständigen',
+ toBeValidated: 'Warten',
+ },
+ continueButton: 'Anmelden',
+ backButton: 'Zurück',
+ label: 'Körperschaft suchen',
+ notFoundResults: 'Kein Ergebnis',
+ },
+ noActiveParty: {
+ pending: {
+ title: 'Es liegen keine <1 /> Beitrittsanträge für diese Körperschaft vor',
+ description:
+ "Der Beitritt wird möglicherweise noch bearbeitet. <1 /> Überprüfe, ob alle erforderlichen Schritte abgeschlossen sind.",
+ },
+ toBeValidated: {
+ title: 'Die Registrierungsanfrage ist <1 />noch nicht validiert',
+ description:
+ 'La richiesta di registrazione per l’ente {{partyName}} deve <3 />essere ancora confermata. Per accedere, attendi la conferma <5 />che arriverà all’indirizzo PEC dell’ente.',
+ },
+ close: 'Beenden',
+ },
+ noParty: {
+ title: 'Zugriff unzulässig',
+ description:
+ 'L’Area Riservata è dedicata agli enti che utilizzano i prodotti <1 /> PagoPA. Se lavori per un ente, chiedi a un Amministratore <3 /> di aggiungerti nella sezione Utenti.',
+ backHome: 'Beenden',
+ addAdmin:'Gli attuali Amministratori non sono più disponibili e hai l’esigenza<1 /> di gestire i prodotti? <3>Aggiungi un nuovo Amministratore3>',
+ moreInformationOnRoles:'Più informazioni sui ruoli',
+ },
+ activeProductCard: {
+ disableInfo: 'Um dieses Produkt zu verwalten, frage einen seiner Administratoren',
+ },
+ overview: {
+ title: 'Übersicht',
+ subTitle:
+ 'Gestisci i prodotti PagoPA attivi e, se hai i permessi, puoi aderire a nuovi prodotti.',
+ sideMenu: {
+ institutionManagement: {
+ title: 'Körperschaftsverwaltung',
+ overview: {
+ title: 'Übersicht',
+ },
+ delegations: {
+ title: 'Vollmachten',
+ },
+ referents: {
+ title: 'Benutzer',
+ },
+ groups: {
+ title: 'Gruppen',
+ },
+ invoices: {
+ title: 'Rechnungsstellung',
+ },
+ },
+ product: {
+ overview: 'Übersicht',
+ users: 'Benutzer',
+ },
+ },
+ activeProductsSection: {
+ title: 'Aktive Produkte',
+ },
+ activeProducts: {
+ activationOf: 'Aktiv seit ',
+ active: 'Aktiv',
+ premiumProduct: 'Premium',
+ manageButton: 'Verwalten',
+ activeProductsEnvModal: {
+ title: 'In welche Umgebung möchtest du?',
+ message: `Sei stato abilitato ad operare negli ambienti riportati di seguito per il prodotto <1>{{productTitle}}1>.`,
+ messageProduct:
+ 'L’ambiente di test ti permette di conoscere <1>{{productTitle}}1> e fare prove in tutta sicurezza. L’ambiente di Produzione è il prodotto in esercizio effettivo.',
+ devEnviromentMessage:
+ 'Ti permette di conoscere il prodotto e fare prove in tutta sicurezza',
+ uatEnviromentMessage: 'Hiermit kannst du das Produkt erkunden',
+ prodEnviromentMessage: 'Verwendetes Produkt',
+ envDevButton: 'Testumgebung',
+ envLocalButton: 'Lokale Umgebung',
+ envUatButton: 'Bescheinigungsumgebung',
+ envProdButton: 'Produktionsumgebung',
+ enterButton: 'Einwählen',
+ backButton: 'Abbrechen',
+ },
+ },
+ lastServiceActive: 'Letzter aktivierter Dienst: ',
+ notActiveProductsSection: {
+ title: 'Verfügbare Produkte',
+ },
+ notActiveProducts: {
+ joinButton: 'Beitreten',
+ },
+ depictOf: 'Darstellung von',
+ discoverMore: '<0> MEHR HIERZU → 0>',
+ adhesionPopup: {
+ title: 'Beitritt wird bearbeitet',
+ description:
+ 'Per questo prodotto c’è già una richiesta di adesione in corso. Vuoi procedere lo stesso?',
+ confirmButton: 'Mit neuem Beitritt fortfahren',
+ closeButton: 'Beenden',
+ },
+ partyLogo: {
+ upload: "Logo der Körperschaft laden",
+ modify: 'Anderes Bild wählen',
+ uploadError: {
+ title: 'Laden fehlgeschlagen',
+ description:
+ 'Il caricamento del logo non è andato a buon fine. Verifica che il formato e la dimensione siano corretti e caricalo di nuovo',
+ },
+ modifyError: {
+ title: 'Laden fehlgeschlagen',
+ description: 'Leider ist etwas schiefgelaufen. Bitte später erneut versuchen',
+ },
+ size: 'Genaue Größe 300 x <1/> 300px - Format .png',
+ info: 'Füg nur das Logo deiner Körperschaft ein. Du bist für das Einfügen anderer Bilder als der angegebenen verantwortlich.',
+ infoEditLabel: 'Genaue Größe 300 x 300px - Format .jpg oder .png',
+ },
+ changeDetails: 'Daten der Körperschaft verwalten',
+ partyDetail: {
+ institutionType: 'Typ',
+ category: 'Kategorie',
+ originId: 'Code',
+ companyName: 'Firmenbezeichnung',
+ denomination: 'Bezeichnung',
+ structure: 'Struktur',
+ uniqueCode: 'Eindeutiger Code',
+ geographicTaxonomies: {
+ label: 'Geografisches Gebiet',
+ modalSections: {
+ national: 'National',
+ local: 'Lokal',
+ inputLabel: 'Gemeinde, Provinz oder Region',
+ addMoreArea: 'Gebiet hinzufügen',
+ error: {
+ notMatchedArea: 'Wähle einen Ort aus der Liste',
+ },
+ },
+ firstTimeInsertGeographicTaxonomiesModal: {
+ title: 'Geografisches Gebiet angeben',
+ description:
+ 'Seleziona il territorio in cui opera il tuo ente. Se locale, puoi scegliere una o più aree di competenza. La scelta verrà applicata a tutti i prodotti PagoPA a cui l’ente aderirà.',
+ add: 'Hinzufügen',
+ },
+ addNewGeographicTaxonomiesModal: {
+ title: 'Geografisches Gebiet ändern',
+ description:
+ 'Seleziona il territorio in cui opera il tuo ente. Se locale, puoi scegliere una o più aree di competenza. La modifica verrà applicata a tutti i prodotti PagoPA a cui l’ente ha già aderito.',
+ modify: 'Ändern',
+ back: 'Beenden',
+ },
+ },
+ fiscalCode: 'Steuernummer',
+ pec: 'Primäre PEC-Adresse',
+ registeredOffice: 'Geschäftssitz',
+ sdiCode: 'SDI-Code',
+ aooParentCode: 'Referenz-AOO',
+ contactToModify:
+ "<0>Einige Daten können in diesem Abschnitt nicht geändert werden. Gehe hierzu auf die Website des Index der öffentlichen Verwaltung (IPA)0>",
+ goToIPA: 'Besuche die Website',
+ institutionTypeValue: {
+ GSP: 'Betreiber öffentlicher Dienstleistungen',
+ PA: 'Öffentliche Verwaltung',
+ PT: 'Technologischer Partner',
+ SCP: 'Öffentlich kontrollierte Gesellschaft',
+ PSP: 'Zahlungsverkehrsdienstleister',
+ SA: 'Privater Betreiber einer E-Beschaffungsplattform',
+ AS: 'Versicherungsgesellschaft',
+ PG: 'Unternehmen',
+ REC: 'Zusteller',
+ CON: 'Konsolidierer',
+ },
+ delegationBanner: {
+ title: 'Betraut einen Partner oder Vermittler mit dem Produktmanagement',
+ subTitle:
+ 'Se ti avvali di figure come Partner o Intermediari tecnologici, puoi delegare la gestione di alcuni prodotti.',
+ goToButton: 'Gehe zu',
+ },
+ vatNumberGroupValues: {
+ yes: 'Ja',
+ no: 'Nein',
+ },
+ supportEmail: 'E-Mail-Adresse für Bürger sichtbar',
+ vatNumberGroup: 'USt.-IdNr. Gruppe',
+ isTaxCodeEquals2Piva: 'Steuernummer / USt.IdNr.',
+ vatNumber: 'USt.-IdNr.',
+ },
+ delegationsPage: {
+ title: 'Vollmachten',
+ subTitle: 'Füge Bevollmächtigte für das Produktmanagement hinzu oder zeige sie an. ',
+ whatIsDelegation: 'Was ist eine Vollmacht?',
+ addDelegationsBtn: 'Vollmacht hinzufügen',
+ delegationsNavigationBar: {
+ redirectDescription: 'Übersicht',
+ titlePageDescription: 'Vollmachten',
+ },
+ productsSection: {
+ title: 'Produkte',
+ labelDelegates: 'Bevollmächtigter',
+ noDelegatesLabel: 'Kein Bevollmächtigter für dieses Produkt <1>Vollmacht hinzufügen1>',
+ },
+ },
+ ptPage: {
+ title: 'Verwaltete Körperschaften',
+ subTitle:
+ 'Qui trovi l’elenco degli enti che ti hanno delegato la gestione di uno o più prodotti. ',
+ tableEmptyLabel: 'Du wurdest noch von keiner Körperschaft bevollmächtigt.',
+ headerPtTableLabels: {
+ party: 'Körperschaft',
+ taxCode: 'Steuernummer',
+ product: 'Produkt',
+ createdAt: 'Bevollmächtigt am',
+ },
+ bodyPtTable: {
+ showMoreButtonLabel: 'Alle ansehen',
+ },
+ filterTechPartner: {
+ searchBy: 'Suchen nach',
+ insert: 'Einfügen',
+ name: 'Name',
+ taxCode: 'Steuernummer',
+ textfieldLabel: 'Suchen nach Namen',
+ productSelectLabel: 'Produkt',
+ buttonLabel: 'Filtern',
+ allProductsLabel: 'Alle Produkte',
+ resetFilter: 'Filter entfernen',
+ emptyFilterResult:
+ 'I filtri che hai applicato non hanno dato nessun risultato. <1>Rimuovi filtri1>',
+ },
+ },
+ genericError: {
+ title: 'Leider ist etwas schiefgelaufen.',
+ description: `A causa di un errore del sistema non è possibile completare la procedura.
+ <1/>
+ Ti chiediamo di riprovare più tardi.`,
+ backAction: 'Schließen',
+ },
+ },
+ addDelegationPage: {
+ title: 'Vollmacht hinzufügen',
+ subTitle: 'Wähle das Produkt und gib an, wer es im Namen deiner Körperschaft verwalten kann.',
+ navigationBar: {
+ overview: 'Übersicht',
+ delegations: 'Vollmachten',
+ addDelegation: 'Vollmacht hinzufügen',
+ },
+ addOneDelegation: 'Eine Vollmacht hinzufügen',
+ formSubTitle: 'Gib an, für welches Produkt du die Verwaltung bevollmächtigen möchtest',
+ findOutMore: 'Zweifel? Zur Anleitung',
+ chooseProduct: 'Wähle das Produkt',
+ selectTechPartner: {
+ title: 'Wähle, wer das Produkt verwalten soll',
+ subTitle: 'Suche über die Firmenbezeichnung oder die Steuernummer der Körperschaft',
+ radioName: 'Firmenbezeichnung',
+ radioFiscalCode: 'Steuernummer der Körperschaft',
+ labelName: 'Firmenbezeichnung eingeben',
+ labelFiscalCode: 'Steuernummer eingeben',
+ groupByName: 'Firmenbezeichnung',
+ groupByFiscalCode: 'Steuernummer',
+ notFoundTechPartnerOptions: 'Kein Ergebnis',
+ actions: {
+ back: 'Zurück',
+ continue: 'Weiter',
+ exit: 'Beenden',
+ confirm: 'Bestätigen',
+ },
+ },
+ delegationSuccessfulCreated: 'Vollmacht korrekt hinzugefügt',
+ delegationNotCreated: 'Die Vollmacht konnte nicht hinzugefügt werden. Erneut versuchen.',
+ alreadyDelegated: 'Der gewählte Partner ist bereits mit der Körperschaft verbunden',
+ },
+ subHeader: {
+ partySelectionSearch: {
+ title: 'Verwaltete Körperschaften',
+ label: 'Verwaltete Körperschaften',
+ },
+ backButton: 'Beenden',
+ },
+ SessionModalInteropProduct: {
+ closeButton: 'Abbrechen',
+ confirmButton: 'Erneut versuchen',
+ testLabel: 'Test',
+ uatLabel: 'Bescheinigung',
+ },
+};
diff --git a/src/locale/en.ts b/src/locale/en.ts
new file mode 100644
index 00000000..a253691f
--- /dev/null
+++ b/src/locale/en.ts
@@ -0,0 +1,296 @@
+export default {
+ session: {
+ expired: {
+ title: 'Session expired',
+ message: 'You are being redirected to the login page...',
+ },
+ },
+ partySelection: {
+ title: 'Select your institution',
+ subTitle:
+ 'Se operi per più enti, potrai modificare la tua scelta dopo aver <1 /> effettuato l’accesso.',
+ partyStatus: {
+ pending: 'To be completed',
+ toBeValidated: 'Wait',
+ },
+ continueButton: 'Login',
+ backButton: 'Go back',
+ label: 'Search for the institution',
+ notFoundResults: 'No result',
+ },
+ noActiveParty: {
+ pending: {
+ title: 'There are no registration requests <1 /> for this institution',
+ description:
+ "Registration may still be in progress. <1 /> Check that all required steps have been completed.",
+ },
+ toBeValidated: {
+ title: 'The registration request is <1 />is being validated',
+ description:
+ 'La richiesta di registrazione per l’ente {{partyName}} deve <3 />essere ancora confermata. Per accedere, attendi la conferma <5 />che arriverà all’indirizzo PEC dell’ente.',
+ },
+ close: 'Close',
+ },
+ noParty: {
+ title: 'Access not permitted',
+ description:
+ 'L’Area Riservata è dedicata agli enti che utilizzano i prodotti <1 /> PagoPA. Se lavori per un ente, chiedi a un Amministratore <3 /> di aggiungerti nella sezione Utenti.',
+ backHome: 'Close',
+ addAdmin:'Gli attuali Amministratori non sono più disponibili e hai l’esigenza<1 /> di gestire i prodotti? <3>Aggiungi un nuovo Amministratore3>',
+ moreInformationOnRoles:'Più informazioni sui ruoli',
+ },
+ activeProductCard: {
+ disableInfo: 'To manage this product, contact one of your administrators',
+ },
+ overview: {
+ title: 'Overview',
+ subTitle:
+ 'Gestisci i prodotti PagoPA attivi e, se hai i permessi, puoi aderire a nuovi prodotti.',
+ sideMenu: {
+ institutionManagement: {
+ title: 'Institution management',
+ overview: {
+ title: 'Overview',
+ },
+ delegations: {
+ title: 'Delegations',
+ },
+ referents: {
+ title: 'Users',
+ },
+ groups: {
+ title: 'Groups',
+ },
+ invoices: {
+ title: 'Invoicing',
+ },
+ },
+ product: {
+ overview: 'Overview',
+ users: 'Users',
+ },
+ },
+ activeProductsSection: {
+ title: 'Active products',
+ },
+ activeProducts: {
+ activationOf: 'Active since ',
+ active: 'Active',
+ premiumProduct: 'Premium',
+ manageButton: 'Manage',
+ activeProductsEnvModal: {
+ title: 'Which environment do you want to enter?',
+ message: `Sei stato abilitato ad operare negli ambienti riportati di seguito per il prodotto <1>{{productTitle}}1>.`,
+ messageProduct:
+ 'L’ambiente di test ti permette di conoscere <1>{{productTitle}}1> e fare prove in tutta sicurezza. L’ambiente di Produzione è il prodotto in esercizio effettivo.',
+ devEnviromentMessage:
+ 'Ti permette di conoscere il prodotto e fare prove in tutta sicurezza',
+ uatEnviromentMessage: 'It allows you to explore the product',
+ prodEnviromentMessage: 'Product in use',
+ envDevButton: 'Test environment',
+ envLocalButton: 'Local environment',
+ envUatButton: 'Certification environment',
+ envProdButton: 'Production environment',
+ enterButton: 'Enter',
+ backButton: 'Cancel',
+ },
+ },
+ lastServiceActive: 'Last service activated: ',
+ notActiveProductsSection: {
+ title: 'Available products',
+ },
+ notActiveProducts: {
+ joinButton: 'Register',
+ },
+ depictOf: 'Representation of',
+ discoverMore: '<0> DISCOVER MORE → 0>',
+ adhesionPopup: {
+ title: 'Registration in progress',
+ description:
+ 'Per questo prodotto c’è già una richiesta di adesione in corso. Vuoi procedere lo stesso?',
+ confirmButton: 'Proceed with a new registration',
+ closeButton: 'Exit',
+ },
+ partyLogo: {
+ upload: "Upload your institution’s logo",
+ modify: 'Change image',
+ uploadError: {
+ title: 'Uploading unsuccessful',
+ description:
+ 'Il caricamento del logo non è andato a buon fine. Verifica che il formato e la dimensione siano corretti e caricalo di nuovo',
+ },
+ modifyError: {
+ title: 'Uploading unsuccessful',
+ description: 'Sorry, something went wrong. Try again later',
+ },
+ size: 'Exact dimensions 300 x <1/> 300px - Format .png',
+ info: 'Enter only the logo of your institution. You will be responsible for entering images different than the one indicated.',
+ infoEditLabel: 'Exact dimensions 300 x 300px - Format .jpg or .png',
+ },
+ changeDetails: 'Manage the institution data',
+ partyDetail: {
+ institutionType: 'Type',
+ category: 'Category',
+ originId: 'Code',
+ companyName: 'Company name',
+ denomination: 'Name',
+ structure: 'Structure',
+ uniqueCode: 'Univocal code',
+ geographicTaxonomies: {
+ label: 'Geographical area',
+ modalSections: {
+ national: 'National',
+ local: 'Local',
+ inputLabel: 'City, Province or Region',
+ addMoreArea: 'Add area',
+ error: {
+ notMatchedArea: 'Select a city from the list',
+ },
+ },
+ firstTimeInsertGeographicTaxonomiesModal: {
+ title: 'Indicate the geographical area',
+ description:
+ 'Seleziona il territorio in cui opera il tuo ente. Se locale, puoi scegliere una o più aree di competenza. La scelta verrà applicata a tutti i prodotti PagoPA a cui l’ente aderirà.',
+ add: 'Add',
+ },
+ addNewGeographicTaxonomiesModal: {
+ title: 'Change the geographical area',
+ description:
+ 'Seleziona il territorio in cui opera il tuo ente. Se locale, puoi scegliere una o più aree di competenza. La modifica verrà applicata a tutti i prodotti PagoPA a cui l’ente ha già aderito.',
+ modify: 'Modify',
+ back: 'Exit',
+ },
+ },
+ fiscalCode: 'Fiscal code',
+ pec: 'Primary PEC address',
+ registeredOffice: 'Registered office',
+ sdiCode: 'SDI code',
+ aooParentCode: 'AOO (Homogeneous Organizational Area) of reference',
+ contactToModify:
+ "<0>Some data cannot be changed in this section. To do so, go to the website of the Public Administration Index (IPA)0>",
+ goToIPA: 'Visit the website',
+ institutionTypeValue: {
+ GSP: 'Public Service Provider',
+ PA: 'Public Administration',
+ PT: 'Technological partner',
+ SCP: 'State-owned companies',
+ PSP: 'Payment Service Providers',
+ SA: 'Private e-procurement platform operator',
+ AS: 'Insurance company',
+ PG: 'Company',
+ REC: 'Delivering party',
+ CON: 'Consolidator',
+ },
+ delegationBanner: {
+ title: 'Delegate the management of products to a Partner or an Intermediary',
+ subTitle:
+ 'Se ti avvali di figure come Partner o Intermediari tecnologici, puoi delegare la gestione di alcuni prodotti.',
+ goToButton: 'Go',
+ },
+ vatNumberGroupValues: {
+ yes: 'Yes',
+ no: 'No',
+ },
+ supportEmail: 'Email address visible to citizens',
+ vatNumberGroup: 'Group VAT no.',
+ isTaxCodeEquals2Piva: 'Fiscal code/VAT no.',
+ vatNumber: 'VAT no.',
+ },
+ delegationsPage: {
+ title: 'Delegations',
+ subTitle: 'Add or display the delegations for product management. ',
+ whatIsDelegation: 'What is a delegation?',
+ addDelegationsBtn: 'Add delegation',
+ delegationsNavigationBar: {
+ redirectDescription: 'Overview',
+ titlePageDescription: 'Delegations',
+ },
+ productsSection: {
+ title: 'Products',
+ labelDelegates: 'Representative',
+ noDelegatesLabel: 'No representative for this product. <1>Add delegation1>',
+ },
+ },
+ ptPage: {
+ title: 'Managed institutions',
+ subTitle:
+ 'Qui trovi l’elenco degli enti che ti hanno delegato la gestione di uno o più prodotti. ',
+ tableEmptyLabel: 'You do not represent any institution.',
+ headerPtTableLabels: {
+ party: 'Institution',
+ taxCode: 'Fiscal code',
+ product: 'Product',
+ createdAt: 'Delegated on',
+ },
+ bodyPtTable: {
+ showMoreButtonLabel: 'See all',
+ },
+ filterTechPartner: {
+ searchBy: 'Search by',
+ insert: 'Enter',
+ name: 'Name',
+ taxCode: 'Fiscal code',
+ textfieldLabel: 'Search by name',
+ productSelectLabel: 'Product',
+ buttonLabel: 'Filter',
+ allProductsLabel: 'All products',
+ resetFilter: 'Reset filters',
+ emptyFilterResult:
+ 'I filtri che hai applicato non hanno dato nessun risultato. <1>Rimuovi filtri1>',
+ },
+ },
+ genericError: {
+ title: 'Sorry, something went wrong.',
+ description: `A causa di un errore del sistema non è possibile completare la procedura.
+ <1/>
+ Ti chiediamo di riprovare più tardi.`,
+ backAction: 'Close',
+ },
+ },
+ addDelegationPage: {
+ title: 'Add delegation',
+ subTitle: 'Select the product and indicate who can manage it on behalf of the institution.',
+ navigationBar: {
+ overview: 'Overview',
+ delegations: 'Delegations',
+ addDelegation: 'Add delegation',
+ },
+ addOneDelegation: 'Add a delegation',
+ formSubTitle: 'Indicate for which product you want to delegate management',
+ findOutMore: 'Questions? Consult the manual',
+ chooseProduct: 'Select the product',
+ selectTechPartner: {
+ title: 'Select who will manage the product',
+ subTitle: 'Search using the company name or fiscal code of the institution',
+ radioName: 'Company name',
+ radioFiscalCode: 'Company Fiscal Code',
+ labelName: 'Enter the company name',
+ labelFiscalCode: 'Enter the fiscal code',
+ groupByName: 'Company name',
+ groupByFiscalCode: 'Fiscal code',
+ notFoundTechPartnerOptions: 'No result',
+ actions: {
+ back: 'Go back',
+ continue: 'Continue',
+ exit: 'Exit',
+ confirm: 'Confirm',
+ },
+ },
+ delegationSuccessfulCreated: 'Delegation added correctly.',
+ delegationNotCreated: 'It was not possible to add the delegation. Try again.',
+ alreadyDelegated: 'The selected partner is already associated with the institution.',
+ },
+ subHeader: {
+ partySelectionSearch: {
+ title: 'Managed institutions',
+ label: 'Managed institutions',
+ },
+ backButton: 'Exit',
+ },
+ SessionModalInteropProduct: {
+ closeButton: 'Cancel',
+ confirmButton: 'Try again',
+ testLabel: 'Test',
+ uatLabel: 'Certification',
+ },
+};
diff --git a/src/locale/fr.ts b/src/locale/fr.ts
new file mode 100644
index 00000000..d33f0bbc
--- /dev/null
+++ b/src/locale/fr.ts
@@ -0,0 +1,296 @@
+export default {
+ session: {
+ expired: {
+ title: 'Session expirée',
+ message: 'Vous allez être redirigé vers la page de connexion...',
+ },
+ },
+ partySelection: {
+ title: 'Sélectionnez votre organisme',
+ subTitle:
+ 'Se operi per più enti, potrai modificare la tua scelta dopo aver <1 /> effettuato l’accesso.',
+ partyStatus: {
+ pending: 'À compléter',
+ toBeValidated: 'En attente',
+ },
+ continueButton: 'Se connecter',
+ backButton: 'Retour',
+ label: 'Chercher un organisme',
+ notFoundResults: 'Aucun résultat',
+ },
+ noActiveParty: {
+ pending: {
+ title: 'Aucune demande d’<1 />adhésion pour cet organisme',
+ description:
+ "L’adhésion pourrait encore être en cours. <1 /> Vérifier que tous les passages requis ont été complétés.",
+ },
+ toBeValidated: {
+ title: 'La demande d’enregistrement est <1 />en attente de validation',
+ description:
+ 'La richiesta di registrazione per l’ente {{partyName}} deve <3 />essere ancora confermata. Per accedere, attendi la conferma <5 />che arriverà all’indirizzo PEC dell’ente.',
+ },
+ close: 'Fermer',
+ },
+ noParty: {
+ title: 'Accès non autorisé',
+ description:
+ 'L’Area Riservata è dedicata agli enti che utilizzano i prodotti <1 /> PagoPA. Se lavori per un ente, chiedi a un Amministratore <3 /> di aggiungerti nella sezione Utenti.',
+ backHome: 'Fermer',
+ addAdmin:'Gli attuali Amministratori non sono più disponibili e hai l’esigenza<1 /> di gestire i prodotti? <3>Aggiungi un nuovo Amministratore3>',
+ moreInformationOnRoles:'Più informazioni sui ruoli',
+ },
+ activeProductCard: {
+ disableInfo: 'Pour gérer ce produit, demandez à l’un de ses Administrateurs',
+ },
+ overview: {
+ title: 'Aperçu',
+ subTitle:
+ 'Gestisci i prodotti PagoPA attivi e, se hai i permessi, puoi aderire a nuovi prodotti.',
+ sideMenu: {
+ institutionManagement: {
+ title: 'Gestion Organisme',
+ overview: {
+ title: 'Aperçu',
+ },
+ delegations: {
+ title: 'Procurations',
+ },
+ referents: {
+ title: 'Utilisateurs',
+ },
+ groups: {
+ title: 'Groupes',
+ },
+ invoices: {
+ title: 'Facturation',
+ },
+ },
+ product: {
+ overview: 'Aperçu',
+ users: 'Utilisateurs',
+ },
+ },
+ activeProductsSection: {
+ title: 'Produits activés',
+ },
+ activeProducts: {
+ activationOf: 'Activé à partir du ',
+ active: 'Activé',
+ premiumProduct: 'Premium',
+ manageButton: 'Gérer',
+ activeProductsEnvModal: {
+ title: 'Dans quel environnement souhaitez-vous entrer ?',
+ message: `Sei stato abilitato ad operare negli ambienti riportati di seguito per il prodotto <1>{{productTitle}}1>.`,
+ messageProduct:
+ 'L’ambiente di test ti permette di conoscere <1>{{productTitle}}1> e fare prove in tutta sicurezza. L’ambiente di Produzione è il prodotto in esercizio effettivo.',
+ devEnviromentMessage:
+ 'Ti permette di conoscere il prodotto e fare prove in tutta sicurezza',
+ uatEnviromentMessage: 'Vous permet d’explorer le produit',
+ prodEnviromentMessage: 'Produit en cours d’utilisation',
+ envDevButton: 'Environnement de test',
+ envLocalButton: 'Environnement local',
+ envUatButton: 'Environnement d’attestation',
+ envProdButton: 'Environnement de production',
+ enterButton: 'Entrer',
+ backButton: 'Annuler',
+ },
+ },
+ lastServiceActive: 'Dernier service activé : ',
+ notActiveProductsSection: {
+ title: 'Produits disponibles',
+ },
+ notActiveProducts: {
+ joinButton: 'Adhérer',
+ },
+ depictOf: 'Représentation de',
+ discoverMore: '<0> EN SAVOIR PLUS → 0>',
+ adhesionPopup: {
+ title: 'Adhésion en cours',
+ description:
+ 'Per questo prodotto c’è già una richiesta di adesione in corso. Vuoi procedere lo stesso?',
+ confirmButton: 'Procéder à une nouvelle adhésion',
+ closeButton: 'Sortir',
+ },
+ partyLogo: {
+ upload: "Télécharger le logo de l’organisme",
+ modify: 'Modifier l’image',
+ uploadError: {
+ title: 'Échec du téléchargement',
+ description:
+ 'Il caricamento del logo non è andato a buon fine. Verifica che il formato e la dimensione siano corretti e caricalo di nuovo',
+ },
+ modifyError: {
+ title: 'Échec du téléchargement',
+ description: 'Désolé, un problème est survenu. Réessayer plus tard',
+ },
+ size: 'Dimension exacte 300 x <1/> 300px - Format .png',
+ info: 'N’entrez que le logo de votre organisme. Vous serez responsable de l’insertion d’images autres que celle indiquée.',
+ infoEditLabel: 'Dimension exacte 300 x 300px - Format .png',
+ },
+ changeDetails: 'Gérer les données de l’organisme',
+ partyDetail: {
+ institutionType: 'Typologie',
+ category: 'Catégorie',
+ originId: 'Code',
+ companyName: 'Raison sociale',
+ denomination: 'Dénomination',
+ structure: 'Structure',
+ uniqueCode: 'Code Unique',
+ geographicTaxonomies: {
+ label: 'Zone géographique',
+ modalSections: {
+ national: 'Nationale',
+ local: 'Locale',
+ inputLabel: 'Commune, Province ou Région',
+ addMoreArea: 'Ajouter une zone',
+ error: {
+ notMatchedArea: 'Choisir une localité dans la liste',
+ },
+ },
+ firstTimeInsertGeographicTaxonomiesModal: {
+ title: 'Indiquer la zone géographique',
+ description:
+ 'Seleziona il territorio in cui opera il tuo ente. Se locale, puoi scegliere una o più aree di competenza. La scelta verrà applicata a tutti i prodotti PagoPA a cui l’ente aderirà.',
+ add: 'Ajouter',
+ },
+ addNewGeographicTaxonomiesModal: {
+ title: 'Modifier la zone géographique',
+ description:
+ 'Seleziona il territorio in cui opera il tuo ente. Se locale, puoi scegliere una o più aree di competenza. La modifica verrà applicata a tutti i prodotti PagoPA a cui l’ente ha già aderito.',
+ modify: 'Modifier',
+ back: 'Sortir',
+ },
+ },
+ fiscalCode: 'Code Fiscal',
+ pec: 'Adresse PEC primaire',
+ registeredOffice: 'Siège Social',
+ sdiCode: 'Code SDI',
+ aooParentCode: 'ZOH de référence',
+ contactToModify:
+ "<0>Certaines données ne sont pas modifiables à partir de cette section. Pour ce faire, aller sur le site de l’Indice de l’administration publique (IAP)0>",
+ goToIPA: 'Accédez au site',
+ institutionTypeValue: {
+ GSP: 'Opérateur de services publics',
+ PA: 'Administration Publique',
+ PT: 'Partenaire technologique',
+ SCP: 'Société à contrôle public',
+ PSP: 'Fournisseur de Services de Paiement',
+ SA: 'Opérateur privé de plateforme e-procurement',
+ AS: 'Compagnie d’assurance',
+ PG: 'Entreprise',
+ REC: 'Livreur',
+ CON: 'Consolidateur',
+ },
+ delegationBanner: {
+ title: 'Délègue la gestion des produits à un Partenaire ou à un Intermédiaire',
+ subTitle:
+ 'Se ti avvali di figure come Partner o Intermediari tecnologici, puoi delegare la gestione di alcuni prodotti.',
+ goToButton: 'Aller',
+ },
+ vatNumberGroupValues: {
+ yes: 'Oui',
+ no: 'Non',
+ },
+ supportEmail: 'Adresse électronique visible par les citoyens',
+ vatNumberGroup: 'Numéro de TVA de groupe',
+ isTaxCodeEquals2Piva: 'Code Fiscal / N° de TVA',
+ vatNumber: 'N° de TVA',
+ },
+ delegationsPage: {
+ title: 'Procurations',
+ subTitle: 'Ajouter ou visualiser les délégués pour la gestion des produits. ',
+ whatIsDelegation: 'Qu’est-ce qu’une procuration ?',
+ addDelegationsBtn: 'Ajouter procuration',
+ delegationsNavigationBar: {
+ redirectDescription: 'Aperçu',
+ titlePageDescription: 'Procurations',
+ },
+ productsSection: {
+ title: 'Produits',
+ labelDelegates: 'Délégué',
+ noDelegatesLabel: 'Aucun délégué pour ce produit. <1>Ajouter procuration1>',
+ },
+ },
+ ptPage: {
+ title: 'Organismes gérés',
+ subTitle:
+ 'Qui trovi l’elenco degli enti che ti hanno delegato la gestione di uno o più prodotti. ',
+ tableEmptyLabel: 'Vous n’avez pas encore été délégué par un organisme.',
+ headerPtTableLabels: {
+ party: 'Organisme',
+ taxCode: 'Code fiscal',
+ product: 'Produit',
+ createdAt: 'Délégué le',
+ },
+ bodyPtTable: {
+ showMoreButtonLabel: 'Voir tous',
+ },
+ filterTechPartner: {
+ searchBy: 'Recherche par',
+ insert: 'Entrer',
+ name: 'Nom',
+ taxCode: 'Code fiscal',
+ textfieldLabel: 'Recherche par nom',
+ productSelectLabel: 'Produit',
+ buttonLabel: 'Filtrer',
+ allProductsLabel: 'Tous les produits',
+ resetFilter: 'Supprimer filtres',
+ emptyFilterResult:
+ 'I filtri che hai applicato non hanno dato nessun risultato. <1>Rimuovi filtri1>',
+ },
+ },
+ genericError: {
+ title: 'Désolé, un problème est survenu.',
+ description: `A causa di un errore del sistema non è possibile completare la procedura.
+ <1/>
+ Ti chiediamo di riprovare più tardi.`,
+ backAction: 'Fermer',
+ },
+ },
+ addDelegationPage: {
+ title: 'Ajouter procuration',
+ subTitle: 'Choisissez le produit et indiquez qui pourra le gérer au nom de votre organisme.',
+ navigationBar: {
+ overview: 'Aperçu',
+ delegations: 'Procurations',
+ addDelegation: 'Ajouter procuration',
+ },
+ addOneDelegation: 'Ajouter une procuration',
+ formSubTitle: 'Indiquez pour quel produit vous souhaitez déléguer la gestion',
+ findOutMore: 'Des doutes ? Aller au manuel',
+ chooseProduct: 'Choisir le produit',
+ selectTechPartner: {
+ title: 'Choisir qui gérera le produit',
+ subTitle: 'Recherche par la raison sociale ou le Code Fiscal de l’organisme',
+ radioName: 'Raison sociale',
+ radioFiscalCode: 'Code Fiscal organisme',
+ labelName: 'Saisir la raison sociale',
+ labelFiscalCode: 'Saisir le Code Fiscal',
+ groupByName: 'Raison sociale',
+ groupByFiscalCode: 'Code Fiscal',
+ notFoundTechPartnerOptions: 'Aucun résultat',
+ actions: {
+ back: 'Retour',
+ continue: 'Continuer',
+ exit: 'Sortir',
+ confirm: 'Confirmer',
+ },
+ },
+ delegationSuccessfulCreated: 'Procuration ajoutée correctement.',
+ delegationNotCreated: 'Impossible d’ajouter la procuration. Réessayer.',
+ alreadyDelegated: 'Le Partenaire sélectionné est déjà associé à l’organisme.',
+ },
+ subHeader: {
+ partySelectionSearch: {
+ title: 'Organismes gérés',
+ label: 'Organismes gérés',
+ },
+ backButton: 'Sortir',
+ },
+ SessionModalInteropProduct: {
+ closeButton: 'Annuler',
+ confirmButton: 'Réessayer',
+ testLabel: 'Essai',
+ uatLabel: 'Attestation',
+ },
+};
diff --git a/src/locale/sl.ts b/src/locale/sl.ts
new file mode 100644
index 00000000..568ae88d
--- /dev/null
+++ b/src/locale/sl.ts
@@ -0,0 +1,296 @@
+export default {
+ session: {
+ expired: {
+ title: 'Seja je potekla',
+ message: 'Preusmerjeni boste na stran za prijavo ...',
+ },
+ },
+ partySelection: {
+ title: 'Izberite svojo organizacijo',
+ subTitle:
+ 'Se operi per più enti, potrai modificare la tua scelta dopo aver <1 /> effettuato l’accesso.',
+ partyStatus: {
+ pending: 'Izpolniti',
+ toBeValidated: 'V postopku',
+ },
+ continueButton: 'Prijavite se',
+ backButton: 'Nazaj',
+ label: 'Poiščite organizacijo',
+ notFoundResults: 'Brez rezultatov',
+ },
+ noActiveParty: {
+ pending: {
+ title: 'Za to organizacijo ni prošenj za <1 /> članstvo',
+ description:
+ "Članstvo morda še traja. <1 /> Preverite, ali so bili opravljeni vsi zahtevani koraki.",
+ },
+ toBeValidated: {
+ title: 'Zahteva za registracijo <1 />v postopku na potrditev',
+ description:
+ 'La richiesta di registrazione per l’ente {{partyName}} deve <3 />essere ancora confermata. Per accedere, attendi la conferma <5 />che arriverà all’indirizzo PEC dell’ente.',
+ },
+ close: 'Zapri',
+ },
+ noParty: {
+ title: 'Dostop ni dovoljen',
+ description:
+ 'L’Area Riservata è dedicata agli enti che utilizzano i prodotti <1 /> PagoPA. Se lavori per un ente, chiedi a un Amministratore <3 /> di aggiungerti nella sezione Utenti.',
+ backHome: 'Zapri',
+ addAdmin:'Gli attuali Amministratori non sono più disponibili e hai l’esigenza<1 /> di gestire i prodotti? <3>Aggiungi un nuovo Amministratore3>',
+ moreInformationOnRoles:'Più informazioni sui ruoli',
+ },
+ activeProductCard: {
+ disableInfo: 'Za upravljanje tega produkta se obrnite na enega od njegovih skrbnikov',
+ },
+ overview: {
+ title: 'Pregled',
+ subTitle:
+ 'Gestisci i prodotti PagoPA attivi e, se hai i permessi, puoi aderire a nuovi prodotti.',
+ sideMenu: {
+ institutionManagement: {
+ title: 'Upravljanje organizacije',
+ overview: {
+ title: 'Pregled',
+ },
+ delegations: {
+ title: 'Pooblastila',
+ },
+ referents: {
+ title: 'Uporabniki',
+ },
+ groups: {
+ title: 'Skupine',
+ },
+ invoices: {
+ title: 'Obračunavanje',
+ },
+ },
+ product: {
+ overview: 'Pregled',
+ users: 'Uporabniki',
+ },
+ },
+ activeProductsSection: {
+ title: 'Aktivni produkti',
+ },
+ activeProducts: {
+ activationOf: 'Aktiven od ',
+ active: 'Aktiven',
+ premiumProduct: 'Premium',
+ manageButton: 'Upravljaj',
+ activeProductsEnvModal: {
+ title: 'V katero okolje želite vstopiti?',
+ message: `Sei stato abilitato ad operare negli ambienti riportati di seguito per il prodotto <1>{{productTitle}}1>.`,
+ messageProduct:
+ 'L’ambiente di test ti permette di conoscere <1>{{productTitle}}1> e fare prove in tutta sicurezza. L’ambiente di Produzione è il prodotto in esercizio effettivo.',
+ devEnviromentMessage:
+ 'Ti permette di conoscere il prodotto e fare prove in tutta sicurezza',
+ uatEnviromentMessage: 'Omogoča vam raziskovanje produkta',
+ prodEnviromentMessage: 'Produkt v uporabi',
+ envDevButton: 'Testno okolje',
+ envLocalButton: 'Lokalno okolje',
+ envUatButton: 'Okolje za potrjevanje',
+ envProdButton: 'Proizvodno okolje',
+ enterButton: 'Vnesi',
+ backButton: 'Prekliči',
+ },
+ },
+ lastServiceActive: 'Zadnja aktivirana storitev: ',
+ notActiveProductsSection: {
+ title: 'Produkt na voljo',
+ },
+ notActiveProducts: {
+ joinButton: 'Pridružite se',
+ },
+ depictOf: 'Zastopanje',
+ discoverMore: '<0> IZVEDITE VEČ → 0>',
+ adhesionPopup: {
+ title: 'Članstvo v teku',
+ description:
+ 'Per questo prodotto c’è già una richiesta di adesione in corso. Vuoi procedere lo stesso?',
+ confirmButton: 'Nadaljujte z novim članstvom',
+ closeButton: 'Izhod',
+ },
+ partyLogo: {
+ upload: "Naložite logotip svoje organizacije",
+ modify: 'Spremenite sliko',
+ uploadError: {
+ title: 'Nalaganje ni uspelo',
+ description:
+ 'Il caricamento del logo non è andato a buon fine. Verifica che il formato e la dimensione siano corretti e caricalo di nuovo',
+ },
+ modifyError: {
+ title: 'Nalaganje ni uspelo',
+ description: 'Žal, nekaj je šlo narobe. Poskusite znova pozneje',
+ },
+ size: 'Natančna velikost 300 x <1/> 300px – Format .png',
+ info: 'Vnesite samo logotip svoje organizacije. Prevzemate odgovornost za vstavljanje slik, ki so drugačne od navedenih.',
+ infoEditLabel: 'Natančna velikost 300 x 300px – Format .jpg ali .png',
+ },
+ changeDetails: 'Upravljajte podatke organizacije',
+ partyDetail: {
+ institutionType: 'Tipologija',
+ category: 'Kategorija',
+ originId: 'Koda',
+ companyName: 'Naziv podjetja',
+ denomination: 'Naziv',
+ structure: 'Struktura',
+ uniqueCode: 'Edinstvena koda',
+ geographicTaxonomies: {
+ label: 'Geografsko območje',
+ modalSections: {
+ national: 'Nacionalno',
+ local: 'Lokalno',
+ inputLabel: 'Občina, pokrajina ali regija',
+ addMoreArea: 'Dodajte območje',
+ error: {
+ notMatchedArea: 'Izberite lokacijo s seznama',
+ },
+ },
+ firstTimeInsertGeographicTaxonomiesModal: {
+ title: 'Označuje geografsko območje',
+ description:
+ 'Seleziona il territorio in cui opera il tuo ente. Se locale, puoi scegliere una o più aree di competenza. La scelta verrà applicata a tutti i prodotti PagoPA a cui l’ente aderirà.',
+ add: 'Dodaj',
+ },
+ addNewGeographicTaxonomiesModal: {
+ title: 'Spremenite geografsko območje',
+ description:
+ 'Seleziona il territorio in cui opera il tuo ente. Se locale, puoi scegliere una o più aree di competenza. La modifica verrà applicata a tutti i prodotti PagoPA a cui l’ente ha già aderito.',
+ modify: 'Spremeni',
+ back: 'Izhod',
+ },
+ },
+ fiscalCode: 'Davčna številka',
+ pec: 'Primarni naslov PEC',
+ registeredOffice: 'Registrirani sedež',
+ sdiCode: 'Koda SDI',
+ aooParentCode: 'Referenca AOO',
+ contactToModify:
+ "<0>Nekaterih podatkov v tem razdelku ni mogoče spreminjati. To storite tako, da obiščete spletno mesto Indeksa javne uprave (IPA)0>",
+ goToIPA: 'Pojdite na spletno mesto',
+ institutionTypeValue: {
+ GSP: 'Vodja javne službe',
+ PA: 'Javna uprava',
+ PT: 'Tehnološki partner',
+ SCP: 'Družba pod javnim nadzorom',
+ PSP: 'Ponudniki plačilnih storitev',
+ SA: 'Zasebni upravitelj platforme za e-javna naročila',
+ AS: 'Zavarovalnica',
+ PG: 'Agencija',
+ REC: 'Dostavljavec',
+ CON: 'Združevalec',
+ },
+ delegationBanner: {
+ title: 'Prenesite upravljanje produktov na partnerja ali posrednika',
+ subTitle:
+ 'Se ti avvali di figure come Partner o Intermediari tecnologici, puoi delegare la gestione di alcuni prodotti.',
+ goToButton: 'Pojdi',
+ },
+ vatNumberGroupValues: {
+ yes: 'Da',
+ no: 'Ne',
+ },
+ supportEmail: 'E-poštni naslov, viden državljanom',
+ vatNumberGroup: 'Številka za DDV skupine',
+ isTaxCodeEquals2Piva: 'Davčna številka / Številka za DDV',
+ vatNumber: 'Številka za DDV',
+ },
+ delegationsPage: {
+ title: 'Pooblastila',
+ subTitle: 'Dodajte ali si oglejte pooblaščence za upravljanje produktov. ',
+ whatIsDelegation: 'Kaj je pooblastilo?',
+ addDelegationsBtn: 'Dodajte pooblastilo',
+ delegationsNavigationBar: {
+ redirectDescription: 'Pregled',
+ titlePageDescription: 'Pooblastila',
+ },
+ productsSection: {
+ title: 'Produkti',
+ labelDelegates: 'Pooblaščenec',
+ noDelegatesLabel: 'Za ta izdelek ni pooblaščenca. <1>Dodajte pooblastilo1>',
+ },
+ },
+ ptPage: {
+ title: 'Upravljane organizacije',
+ subTitle:
+ 'Qui trovi l’elenco degli enti che ti hanno delegato la gestione di uno o più prodotti. ',
+ tableEmptyLabel: 'Noben organ vas še ni pooblastil.',
+ headerPtTableLabels: {
+ party: 'Organizacija',
+ taxCode: 'Davčna številka',
+ product: 'Produkt',
+ createdAt: 'Pooblaščeno dne',
+ },
+ bodyPtTable: {
+ showMoreButtonLabel: 'Prikaži vse',
+ },
+ filterTechPartner: {
+ searchBy: 'Išči po',
+ insert: 'Vstavi',
+ name: 'Ime',
+ taxCode: 'Davčna številka',
+ textfieldLabel: 'Išči po imenu',
+ productSelectLabel: 'Produkt',
+ buttonLabel: 'Filtriraj',
+ allProductsLabel: 'Vsi produkti',
+ resetFilter: 'Odstranite filtre',
+ emptyFilterResult:
+ 'I filtri che hai applicato non hanno dato nessun risultato. <1>Rimuovi filtri1>',
+ },
+ },
+ genericError: {
+ title: 'Žal, nekaj je šlo narobe.',
+ description: `A causa di un errore del sistema non è possibile completare la procedura.
+ <1/>
+ Ti chiediamo di riprovare più tardi.`,
+ backAction: 'Zapri',
+ },
+ },
+ addDelegationPage: {
+ title: 'Dodajte pooblastilo',
+ subTitle: 'Izberite produkt in navedite, kdo ga lahko upravlja v imenu vaše organizacije.',
+ navigationBar: {
+ overview: 'Pregled',
+ delegations: 'Pooblastila',
+ addDelegation: 'Dodajte pooblastilo',
+ },
+ addOneDelegation: 'Dodajte pooblastilo',
+ formSubTitle: 'Označite, za kateri produkt želite prenesti upravljanje',
+ findOutMore: 'Ste v dvomih? Pojdite na priročnik',
+ chooseProduct: 'Izberite produkt',
+ selectTechPartner: {
+ title: 'Izberite, kdo bo upravljal produkt',
+ subTitle: 'Iščite po nazivu podjetja ali davčni številki organizacije',
+ radioName: 'Naziv podjetja',
+ radioFiscalCode: 'Davčna številka organizacije',
+ labelName: 'Vnesite ime svojega podjetja',
+ labelFiscalCode: 'Vnesite svojo davčno številko',
+ groupByName: 'Naziv podjetja',
+ groupByFiscalCode: 'Davčna številka',
+ notFoundTechPartnerOptions: 'Brez rezultatov',
+ actions: {
+ back: 'Nazaj',
+ continue: 'Nadaljuj',
+ exit: 'Izhod',
+ confirm: 'Potrdi',
+ },
+ },
+ delegationSuccessfulCreated: 'Pooblastilo jo bila uspešno dodano.',
+ delegationNotCreated: 'Pooblastila ni bilo mogoče dodati. Poskusite znova.',
+ alreadyDelegated: 'Izbrani partner je že povezan z organizacijo.',
+ },
+ subHeader: {
+ partySelectionSearch: {
+ title: 'Upravljane organizacije',
+ label: 'Upravljane organizacije',
+ },
+ backButton: 'Izhod',
+ },
+ SessionModalInteropProduct: {
+ closeButton: 'Prekliči',
+ confirmButton: 'Poskusite znova',
+ testLabel: 'Testiranje',
+ uatLabel: 'Potrdilo',
+ },
+};
From 3b34ba06e1ee2e276930b4328877ffa1555872be Mon Sep 17 00:00:00 2001
From: loremedda <98110186+loremedda@users.noreply.github.com>
Date: Mon, 18 Nov 2024 10:53:48 +0100
Subject: [PATCH 10/10] [SELC-5986] feat: Removed italian fallback and using
the translations provided for each language
---
src/locale/index.ts | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/locale/index.ts b/src/locale/index.ts
index c0917e06..3620fcdc 100644
--- a/src/locale/index.ts
+++ b/src/locale/index.ts
@@ -1,8 +1,8 @@
import i18n, { configureI18n } from '@pagopa/selfcare-common-frontend/lib/locale/locale-utils';
import it from './it';
-import en from './it';
-import fr from './it';
-import sl from './it';
-import de from './it';
+import en from './en';
+import fr from './fr';
+import sl from './sl';
+import de from './de';
configureI18n({ i18n, it, en, fr, sl, de });