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 Amministratore', - 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 Amministratore', + 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 Amministratore', + 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}}.`, + messageProduct: + 'L’ambiente di test ti permette di conoscere <1>{{productTitle}} 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 → ', + 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)", + 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ügen', + }, + }, + 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 filtri', + }, + }, + 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 Amministratore', + 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}}.`, + messageProduct: + 'L’ambiente di test ti permette di conoscere <1>{{productTitle}} 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 → ', + 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)", + 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 delegation', + }, + }, + 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 filtri', + }, + }, + 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 Amministratore', + 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}}.`, + messageProduct: + 'L’ambiente di test ti permette di conoscere <1>{{productTitle}} 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 → ', + 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)", + 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 procuration', + }, + }, + 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 filtri', + }, + }, + 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 Amministratore', + 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}}.`, + messageProduct: + 'L’ambiente di test ti permette di conoscere <1>{{productTitle}} 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Č → ', + 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)", + 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 pooblastilo', + }, + }, + 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 filtri', + }, + }, + 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 });