-
-
- {t('hycu_order')}
-
+ <>
+
+ {tError('manager_error_page_default')}
+
+ }
+ >
+
+
+
+
+
+ {
+ navigate(urls.order);
+ }}
+ inline
+ >
+ {t('hycu_order')}
+
+
+ {columns && flattenData && (
+
+ )}
- {columns && flattenData && (
-
- )}
-
-
-
-
+
+
+
+
+ >
);
}
diff --git a/packages/manager/apps/hycu/src/pages/listing/Listing.spec.tsx b/packages/manager/apps/hycu/src/pages/listing/Listing.spec.tsx
index 396747dc0831..e2bdb8a70f5e 100644
--- a/packages/manager/apps/hycu/src/pages/listing/Listing.spec.tsx
+++ b/packages/manager/apps/hycu/src/pages/listing/Listing.spec.tsx
@@ -1,4 +1,4 @@
-import { act, screen, waitFor } from '@testing-library/react';
+import { act, fireEvent, screen, waitFor } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
import { renderTestApp } from '@/utils/tests/renderTestApp';
import '@testing-library/jest-dom';
@@ -8,7 +8,7 @@ import HYCU_CONFIG from '@/hycu.config';
describe('License Hycu listing test suite', () => {
it('should redirect to the onboarding page when the license hycu list is empty', async () => {
- await renderTestApp({ nbLicenseHycu: 0 });
+ await renderTestApp('/', { nbLicenseHycu: 0 });
expect(screen.getByText(HYCU_CONFIG.rootLabel)).toBeVisible();
expect(
@@ -40,9 +40,104 @@ describe('License Hycu listing test suite', () => {
await waitFor(
() =>
expect(
- screen.getByText(labels.dashboard.general_informations),
+ screen.getAllByText(
+ labels.dashboard.hycu_dashboard_generals_informations_title,
+ )[0],
).toBeVisible(),
{ timeout: 30_000 },
);
});
+
+ it('should navigate to hycu order on click order button ', async () => {
+ await renderTestApp();
+
+ await act(() =>
+ userEvent.click(screen.getByText(labels.listing.hycu_order)),
+ );
+
+ await waitFor(
+ () =>
+ expect(screen.getByText(labels.order.hycu_order_title)).toBeVisible(),
+ { timeout: 30_000 },
+ );
+ });
+
+ it('open terminate modal on click on resiliate', async () => {
+ const user = userEvent.setup();
+ await renderTestApp(`/`);
+
+ const resiliateButton = await screen.getAllByText(
+ labels.terminate.hycu_terminate_confirm_label,
+ {
+ exact: true,
+ },
+ );
+
+ await waitFor(
+ () => {
+ expect(
+ screen.getAllByText(licensesHycu[0].serviceName)[0],
+ ).toBeVisible();
+ expect(resiliateButton[resiliateButton.length - 1]).not.toHaveAttribute(
+ 'disabled',
+ );
+ },
+ { timeout: 30_000 },
+ );
+
+ await act(() => user.click(resiliateButton[resiliateButton.length - 1]));
+
+ await waitFor(
+ () =>
+ expect(
+ screen.getByText(labels.terminate.hycu_terminate_description),
+ ).toBeVisible(),
+ { timeout: 10_000 },
+ );
+ });
+
+ it('See success message after terminate service', async () => {
+ const user = userEvent.setup();
+ await renderTestApp(`/terminate/${licensesHycu[0].serviceName}`);
+
+ await waitFor(
+ () =>
+ expect(
+ screen.getByText(labels.terminate.hycu_terminate_description),
+ ).toBeVisible(),
+ { timeout: 10_000 },
+ );
+
+ await act(() =>
+ fireEvent.change(screen.getByLabelText('delete-input'), {
+ target: { value: 'TERMINATE' },
+ }),
+ );
+
+ const resiliateButton = await screen.getAllByText(
+ labels.terminate.hycu_terminate_confirm_label,
+ {
+ exact: true,
+ },
+ );
+
+ await waitFor(
+ () =>
+ expect(resiliateButton[resiliateButton.length - 1]).not.toHaveAttribute(
+ 'disabled',
+ ),
+ { timeout: 10_000 },
+ );
+
+ await act(() => user.click(resiliateButton[resiliateButton.length - 1]));
+
+ await waitFor(
+ () => {
+ expect(
+ screen.queryByText(labels.terminate.hycu_terminate_description),
+ ).not.toBeInTheDocument();
+ },
+ { timeout: 10_000 },
+ );
+ });
});
diff --git a/packages/manager/apps/hycu/src/pages/listing/menu/HycuActionMenu.component.tsx b/packages/manager/apps/hycu/src/pages/listing/menu/HycuActionMenu.component.tsx
index 24d7466a0bbc..1b758a0071fb 100644
--- a/packages/manager/apps/hycu/src/pages/listing/menu/HycuActionMenu.component.tsx
+++ b/packages/manager/apps/hycu/src/pages/listing/menu/HycuActionMenu.component.tsx
@@ -1,21 +1,35 @@
-import { ActionMenu, ActionMenuItem } from '@ovh-ux/manager-react-components';
+import {
+ ActionMenu,
+ ActionMenuItem,
+ useServiceDetails,
+} from '@ovh-ux/manager-react-components';
import { ODS_THEME_COLOR_INTENT } from '@ovhcloud/ods-common-theming';
+import { useNavigate } from 'react-router-dom';
import React from 'react';
-import { ODS_ICON_NAME } from '@ovhcloud/ods-components';
+import { ODS_BUTTON_VARIANT, ODS_ICON_NAME } from '@ovhcloud/ods-components';
import { useTranslation } from 'react-i18next';
-import { IHycuDetails } from '@/type/hycu.details.interface';
+import { IHycuDetails } from '@/types/hycu.details.interface';
+import { subRoutes, urls } from '@/routes/routes.constant';
-const HycuActionMenu = ({
- serviceName: _serviceName,
-}: Pick
) => {
+const HycuActionMenu = ({ serviceName }: Pick) => {
const { t } = useTranslation('hycu/listing');
+ const navigate = useNavigate();
+ const openTerminateModal = () =>
+ navigate(
+ urls.listing_terminate.replace(subRoutes.serviceName, serviceName),
+ );
+ const { data: serviceDetails } = useServiceDetails({
+ resourceName: serviceName,
+ });
const items: ActionMenuItem[] = [
{
id: 1,
label: t('hycu_service_listing_terminate'),
color: ODS_THEME_COLOR_INTENT.error,
- onClick: () => {},
+ onClick: openTerminateModal,
+ disabled:
+ serviceDetails?.data.resource.state === 'suspended' || undefined,
},
];
@@ -23,6 +37,7 @@ const HycuActionMenu = ({
);
diff --git a/packages/manager/apps/hycu/src/pages/onboarding/Onboarding.page.tsx b/packages/manager/apps/hycu/src/pages/onboarding/Onboarding.page.tsx
index 3e8b8641a796..540de1555857 100644
--- a/packages/manager/apps/hycu/src/pages/onboarding/Onboarding.page.tsx
+++ b/packages/manager/apps/hycu/src/pages/onboarding/Onboarding.page.tsx
@@ -1,11 +1,14 @@
import React from 'react';
import { useTranslation } from 'react-i18next';
import { Card, OnboardingLayout } from '@ovh-ux/manager-react-components';
+import { useNavigate } from 'react-router-dom';
import useGuideUtils from '@/hooks/guide/useGuideUtils';
import onboardingImgSrc from './hycu-x-ovhcloud.svg';
import HYCU_CONFIG from '@/hycu.config';
+import { urls } from '@/routes/routes.constant';
export default function Onboarding() {
+ const navigate = useNavigate();
const { t } = useTranslation('hycu/onboarding');
const { t: tCommon } = useTranslation('hycu');
const link = useGuideUtils();
@@ -53,7 +56,9 @@ export default function Onboarding() {
img={imgSrc}
description={description}
orderButtonLabel={t('orderButtonLabel')}
- orderHref={t('orderButtonLink')}
+ onOrderButtonClick={() => {
+ navigate(urls.order);
+ }}
moreInfoButtonLabel={t('moreInfoButtonLabel')}
moreInfoHref={link?.main}
>
diff --git a/packages/manager/apps/hycu/src/pages/order/Order.page.tsx b/packages/manager/apps/hycu/src/pages/order/Order.page.tsx
new file mode 100644
index 000000000000..6591e7d62ef1
--- /dev/null
+++ b/packages/manager/apps/hycu/src/pages/order/Order.page.tsx
@@ -0,0 +1,214 @@
+import React, { useContext, useState } from 'react';
+import { Trans, useTranslation } from 'react-i18next';
+import { useNavigate } from 'react-router-dom';
+
+import {
+ BaseLayout,
+ Description,
+ OvhSubsidiary,
+ Subtitle,
+} from '@ovh-ux/manager-react-components';
+import { ShellContext } from '@ovh-ux/manager-react-shell-client';
+import {
+ ODS_THEME_COLOR_INTENT,
+ ODS_THEME_TYPOGRAPHY_LEVEL,
+ ODS_THEME_TYPOGRAPHY_SIZE,
+} from '@ovhcloud/ods-common-theming';
+import { OdsHTMLAnchorElementTarget } from '@ovhcloud/ods-common-core';
+import {
+ ODS_BUTTON_SIZE,
+ ODS_BUTTON_VARIANT,
+ ODS_ICON_NAME,
+ ODS_ICON_SIZE,
+ ODS_LINK_REFERRER_POLICY,
+} from '@ovhcloud/ods-components';
+import {
+ OsdsButton,
+ OsdsIcon,
+ OsdsLink,
+ OsdsText,
+ OsdsTile,
+} from '@ovhcloud/ods-components/react';
+
+import Breadcrumb from '@/components/Breadcrumb/Breadcrumb.component';
+import Errors from '@/components/Error/Error';
+import Loading from '@/components/Loading/Loading.component';
+import {
+ OrderTile,
+ OrderTileWrapper,
+} from '@/components/Order/OrderTile.component';
+import { BreadcrumbItem } from '@/hooks/breadcrumb/useBreadcrumb';
+import { useOrderCatalogHYCU } from '@/hooks/order/useOrderCatalogHYCU';
+import useOrderHYCU from '@/hooks/order/useOrderHYCU';
+import { urls } from '@/routes/routes.constant';
+import { CONTACT_URL_BY_SUBSIDIARY } from '@/utils/contactList';
+import { sortPacksByPrice } from '@/utils/sortPacks';
+import { getRenewPrice } from '@/utils/getRenewPrice';
+
+export default function Order() {
+ const { t } = useTranslation('hycu/order');
+ const { t: tCommon } = useTranslation('hycu');
+ const { t: tError } = useTranslation('hycu/error');
+ const navigate = useNavigate();
+
+ const { environment } = useContext(ShellContext);
+ const subsidiary: OvhSubsidiary = environment.getUser()
+ .ovhSubsidiary as OvhSubsidiary;
+
+ const [selectedPack, setSelectedPack] = useState(null);
+ const [isOrderInitiated, setIsOrderInitiated] = useState(false);
+
+ const { data: orderCatalogHYCU, isLoading, isError } = useOrderCatalogHYCU(
+ subsidiary,
+ {
+ refetchOnWindowFocus: false,
+ keepPreviousData: true,
+ },
+ );
+ const { orderLink, redirectToOrder } = useOrderHYCU({
+ planCode: selectedPack,
+ region: subsidiary,
+ });
+
+ const header = {
+ title: t('hycu_order_title'),
+ };
+ const description: string = t('hycu_order_description');
+
+ const breadcrumbItems: BreadcrumbItem[] = [
+ {
+ id: 'order',
+ label: t('hycu_order_title'),
+ },
+ ];
+
+ if (isError) return {tError('manager_error_page_default')};
+
+ if (isLoading) return ;
+
+ return (
+ }
+ description={description}
+ header={header}
+ >
+ {!isOrderInitiated ? (
+ <>
+ {t('hycu_order_subtitle')}
+
+
+ ),
+ }}
+ >
+
+
+ {sortPacksByPrice(orderCatalogHYCU?.plans).map((product) => (
+ {
+ setSelectedPack(product.planCode);
+ }}
+ >
+ ))}
+
+
+ {
+ navigate(urls.listing);
+ }}
+ slot="actions"
+ variant={ODS_BUTTON_VARIANT.ghost}
+ >
+ {tCommon('hycu_cta_cancel')}
+
+ {
+ setIsOrderInitiated(true);
+ redirectToOrder();
+ }}
+ slot="actions"
+ >
+ {tCommon('hycu_cta_order')}
+
+
+ >
+ ) : (
+ <>
+
+
+
+
+ {t('hycu_order_initiated_title')}
+
+
+ {t('hycu_order_initiated_description')}
+
+
+ {orderLink}
+
+
+
+
+
+ {t('hycu_order_initiated_info')}
+
+
+
+
+ {
+ navigate(urls.listing);
+ }}
+ >
+ {tCommon('hycu_cta_done')}
+
+ >
+ )}
+
+ );
+}
diff --git a/packages/manager/apps/hycu/src/pages/order/Order.spec.tsx b/packages/manager/apps/hycu/src/pages/order/Order.spec.tsx
new file mode 100644
index 000000000000..e5c9acfa4e30
--- /dev/null
+++ b/packages/manager/apps/hycu/src/pages/order/Order.spec.tsx
@@ -0,0 +1,73 @@
+import { act, screen, waitFor } from '@testing-library/react';
+import userEvent from '@testing-library/user-event';
+import { vi } from 'vitest';
+import { renderTestApp } from '@/utils/tests/renderTestApp';
+import '@testing-library/jest-dom';
+import { labels } from '@/utils/tests/init.i18n';
+import { catalog } from '@/mocks/catalogHycu/catalogHycu.data';
+
+describe('License Hycu order test suite', () => {
+ it('should display the hycu order page', async () => {
+ await renderTestApp('/order');
+
+ await waitFor(() => screen.getByText(labels.order.hycu_order_title), {
+ timeout: 10_000,
+ });
+
+ expect(screen.getByText(labels.order.hycu_order_title)).toBeVisible();
+ expect(screen.getByText(labels.order.hycu_order_description)).toBeVisible();
+ expect(screen.getByText(labels.order.hycu_order_subtitle)).toBeVisible();
+
+ expect(
+ screen.queryByText(labels.order.hycu_order_initiated_title),
+ ).not.toBeInTheDocument();
+ });
+
+ it('should enable order button when pack is selected', async () => {
+ await renderTestApp('/order');
+
+ await waitFor(() => screen.getByText(catalog.plans[0].invoiceName), {
+ timeout: 10_000,
+ });
+
+ expect(screen.getByText(labels.common.hycu_cta_order)).toBeDisabled();
+
+ await act(() =>
+ userEvent.click(screen.getByText(catalog.plans[0].invoiceName)),
+ );
+
+ expect(screen.getByText(labels.common.hycu_cta_order)).toBeEnabled();
+ });
+
+ it('should redirect to express order and change page informations', async () => {
+ const closeSpy = vi.fn();
+ window.open = vi.fn().mockReturnValue({ close: closeSpy });
+
+ await renderTestApp('/order');
+
+ await waitFor(() => screen.getByText(catalog.plans[0].invoiceName), {
+ timeout: 10_000,
+ });
+
+ // Pack selection
+ await act(() =>
+ userEvent.click(screen.getByText(catalog.plans[0].invoiceName)),
+ );
+
+ // Click on order button
+ await act(() =>
+ userEvent.click(screen.getByText(labels.common.hycu_cta_order)),
+ );
+
+ expect(window.open).toHaveBeenCalled();
+
+ // Check page has changed to display express order info
+ expect(
+ screen.getByText(labels.order.hycu_order_initiated_title),
+ ).toBeVisible();
+
+ expect(
+ screen.queryByText(labels.order.hycu_order_subtitle),
+ ).not.toBeInTheDocument();
+ });
+});
diff --git a/packages/manager/apps/hycu/src/pages/terminate/terminate-hycu.tsx b/packages/manager/apps/hycu/src/pages/terminate/terminate-hycu.tsx
new file mode 100644
index 000000000000..ec643fe5da43
--- /dev/null
+++ b/packages/manager/apps/hycu/src/pages/terminate/terminate-hycu.tsx
@@ -0,0 +1,46 @@
+import {
+ DeleteServiceModal,
+ useNotifications,
+} from '@ovh-ux/manager-react-components';
+import { AxiosError } from 'axios';
+import React from 'react';
+import { useTranslation } from 'react-i18next';
+import { useNavigate, useParams } from 'react-router-dom';
+
+export const TerminateLicensePage = () => {
+ const { t } = useTranslation('hycu/terminate');
+ const { serviceName } = useParams();
+ const navigate = useNavigate();
+ const { addSuccess, addError } = useNotifications();
+
+ const closeModal = () => {
+ navigate('..');
+ };
+
+ const handleSuccessDelete = async () => {
+ closeModal();
+ addSuccess(t('hycu_terminate_success_message', { serviceName }), true);
+ };
+
+ const handleErrorDelete = async (error: AxiosError) => {
+ closeModal();
+ addError(t('hycu_terminate_error_message', { error: error.message }));
+ };
+
+ return (
+ {}}
+ />
+ );
+};
+
+export default TerminateLicensePage;
diff --git a/packages/manager/apps/hycu/src/routes/routes.constant.ts b/packages/manager/apps/hycu/src/routes/routes.constant.ts
index 61e0fa44744f..a89e3c902c13 100644
--- a/packages/manager/apps/hycu/src/routes/routes.constant.ts
+++ b/packages/manager/apps/hycu/src/routes/routes.constant.ts
@@ -1,12 +1,20 @@
export const subRoutes = {
+ editPack: 'edit-pack',
onboarding: 'onboarding',
+ order: 'order',
serviceName: ':serviceName',
};
export const urls = {
root: '/',
- onboarding: `/${subRoutes.onboarding}`,
listing: '/',
+ onboarding: `/${subRoutes.onboarding}`,
+ order: `/${subRoutes.order}`,
dashboard: `/${subRoutes.serviceName}`,
- tab2: 'Tab2',
+ editPack: `/${subRoutes.serviceName}/${subRoutes.editPack}`,
+ activateLicense: `/${subRoutes.serviceName}/activate-license`,
+ regenerateLicense: `/${subRoutes.serviceName}/regenerate-license`,
+ editName: `/${subRoutes.serviceName}/edit-name`,
+ dashboard_terminate: `/${subRoutes.serviceName}/terminate`,
+ listing_terminate: `/terminate/${subRoutes.serviceName}`,
} as const;
diff --git a/packages/manager/apps/hycu/src/routes/routes.tsx b/packages/manager/apps/hycu/src/routes/routes.tsx
index 0fa1bc776da3..bd1f9e683ecd 100644
--- a/packages/manager/apps/hycu/src/routes/routes.tsx
+++ b/packages/manager/apps/hycu/src/routes/routes.tsx
@@ -25,6 +25,15 @@ export const Routes: any = [
id: 'listing',
path: urls.listing,
...lazyRouteConfig(() => import('@/pages/listing/Listing.page')),
+ children: [
+ {
+ id: 'listing_terminate',
+ path: urls.listing_terminate,
+ ...lazyRouteConfig(() =>
+ import('@/pages/terminate/terminate-hycu'),
+ ),
+ },
+ ],
handle: {
tracking: {
pageName: 'listing',
@@ -50,17 +59,42 @@ export const Routes: any = [
pageType: PageType.dashboard,
},
},
- },
- {
- id: 'dashboard.tab2',
- path: 'Tab2',
- ...lazyRouteConfig(() => import('@/pages/dashboard/tab2')),
- handle: {
- tracking: {
- pageName: 'tab2',
- pageType: PageType.dashboard,
+ children: [
+ {
+ id: 'activate-license',
+ path: urls.activateLicense,
+ ...lazyRouteConfig(() =>
+ import(
+ '@/pages/dashboard/general-information/activation-license-modal/ActivationLicenseModal.page'
+ ),
+ ),
},
- },
+ {
+ id: 'regenerate-license',
+ path: urls.regenerateLicense,
+ ...lazyRouteConfig(() =>
+ import(
+ '@/pages/dashboard/general-information/regenerate-license-modal/RegenerateLicenseModal.page'
+ ),
+ ),
+ },
+ {
+ id: 'edit-name',
+ path: urls.editName,
+ ...lazyRouteConfig(() =>
+ import(
+ '@/pages/dashboard/general-information/edit-display-name/EditHycuDisplayName.page'
+ ),
+ ),
+ },
+ {
+ id: 'dashboard_terminate',
+ path: urls.dashboard_terminate,
+ ...lazyRouteConfig(() =>
+ import('@/pages/terminate/terminate-hycu'),
+ ),
+ },
+ ],
},
],
},
@@ -75,6 +109,28 @@ export const Routes: any = [
},
},
},
+ {
+ id: 'order',
+ path: urls.order,
+ ...lazyRouteConfig(() => import('@/pages/order/Order.page')),
+ handle: {
+ tracking: {
+ pageName: 'order',
+ pageType: PageType.dashboard,
+ },
+ },
+ },
+ {
+ id: 'edit-pack',
+ path: urls.editPack,
+ ...lazyRouteConfig(() => import('@/pages/edit-pack/EditPack.page')),
+ handle: {
+ tracking: {
+ pageName: 'edit-pack',
+ pageType: PageType.dashboard,
+ },
+ },
+ },
],
},
{
diff --git a/packages/manager/apps/hycu/src/type/hycu.details.interface.ts b/packages/manager/apps/hycu/src/types/hycu.details.interface.ts
similarity index 91%
rename from packages/manager/apps/hycu/src/type/hycu.details.interface.ts
rename to packages/manager/apps/hycu/src/types/hycu.details.interface.ts
index 64b1af7066ff..3008a8a8de38 100644
--- a/packages/manager/apps/hycu/src/type/hycu.details.interface.ts
+++ b/packages/manager/apps/hycu/src/types/hycu.details.interface.ts
@@ -1,14 +1,14 @@
export enum LicenseStatus {
- ACTIVATED = 'activated',
+ ACTIVATED = 'active',
TO_ACTIVATE = 'toActivate',
- PENDING = 'pending',
+ PENDING = 'processing',
ERROR = 'error',
}
export interface IamDetails {
id: string;
urn: string;
- serviceName?: string;
+ displayName?: string;
}
export interface IHycuDetails {
diff --git a/packages/manager/apps/hycu/src/types/orderCatalogHYCU.type.ts b/packages/manager/apps/hycu/src/types/orderCatalogHYCU.type.ts
new file mode 100644
index 000000000000..bf4ad3547835
--- /dev/null
+++ b/packages/manager/apps/hycu/src/types/orderCatalogHYCU.type.ts
@@ -0,0 +1,26 @@
+import { IntervalUnitType } from '@ovh-ux/manager-react-components';
+
+type HYCUCatalogPlanConfiguration = {
+ isCustom: boolean;
+ isMandatory: boolean;
+ name: string;
+ values: string[];
+};
+
+export type HYCUCatalogPlanPricing = {
+ capacities: ['installation' | 'upgrade' | 'renew'];
+ price: number;
+ intervalUnit: IntervalUnitType;
+ tax: number;
+};
+
+export type HYCUCatalogPlan = {
+ configurations: HYCUCatalogPlanConfiguration[];
+ invoiceName: string;
+ planCode: string;
+ pricings: HYCUCatalogPlanPricing[];
+};
+
+export type HYCUCatalog = {
+ plans: HYCUCatalogPlan[];
+};
diff --git a/packages/manager/apps/hycu/src/utils/contactList.ts b/packages/manager/apps/hycu/src/utils/contactList.ts
new file mode 100644
index 000000000000..674453700f71
--- /dev/null
+++ b/packages/manager/apps/hycu/src/utils/contactList.ts
@@ -0,0 +1,30 @@
+import { OvhSubsidiary } from '@ovh-ux/manager-react-components';
+
+export const CONTACT_URL_BY_SUBSIDIARY: Record = {
+ ASIA: 'https://www.ovhcloud.com/asia/contact/',
+ CZ: 'https://www.ovhcloud.com/en-ie/contact',
+ DE: 'https://www.ovhcloud.com/de/contact/',
+ ES: 'https://www.ovhcloud.com/es-es/contact/',
+ FI: 'https://www.ovhcloud.com/en-ie/contact',
+ WS: 'https://www.ovhcloud.com/es/contact/',
+ IE: 'https://www.ovhcloud.com/en-ie/contact/',
+ IT: 'https://www.ovhcloud.com/it/contact/',
+ LT: 'https://www.ovhcloud.com/en-ie/contact',
+ PL: 'https://www.ovhcloud.com/pl/contact/',
+ PT: 'https://www.ovhcloud.com/pt/contact/',
+ FR: 'https://www.ovhcloud.com/fr/contact/',
+ GB: 'https://www.ovhcloud.com/en-gb/contact/',
+ CA: 'https://www.ovhcloud.com/en-ca/contact/',
+ QC: 'https://www.ovhcloud.com/fr-ca/contact/',
+ US: 'https://www.ovhcloud.com/en/contact/',
+ AU: 'https://www.ovhcloud.com/en-au/contact/',
+ SG: 'https://www.ovhcloud.com/en-sg/contact/',
+ MA: 'https://www.ovhcloud.com/fr-ma/contact/',
+ SN: 'https://www.ovhcloud.com/fr-sn/contact/',
+ TN: 'https://www.ovhcloud.com/fr-tn/contact/',
+ NL: 'https://www.ovhcloud.com/nl/contact/',
+ IN: 'https://www.ovhcloud.com/en-in/contact/',
+ WE: 'https://www.ovhcloud.com/en/contact/',
+ EU: 'https://www.ovhcloud.com/fr/contact/',
+ DEFAULT: 'https://www.ovhcloud.com/fr/contact/',
+};
diff --git a/packages/manager/apps/hycu/src/utils/downloadTextAsFile.ts b/packages/manager/apps/hycu/src/utils/downloadTextAsFile.ts
new file mode 100644
index 000000000000..147c702550f2
--- /dev/null
+++ b/packages/manager/apps/hycu/src/utils/downloadTextAsFile.ts
@@ -0,0 +1,11 @@
+export function downloadTextAsFile(filename: string, text: string) {
+ const blob = new Blob([text], { type: 'text/plain' });
+ const link = document.createElement('a');
+ link.href = URL.createObjectURL(blob);
+ link.download = filename;
+
+ document.body.appendChild(link);
+ link.click();
+
+ document.body.removeChild(link);
+}
diff --git a/packages/manager/apps/hycu/src/utils/getRenewPrice.ts b/packages/manager/apps/hycu/src/utils/getRenewPrice.ts
new file mode 100644
index 000000000000..62d341093dca
--- /dev/null
+++ b/packages/manager/apps/hycu/src/utils/getRenewPrice.ts
@@ -0,0 +1,14 @@
+import { HYCUCatalogPlanPricing } from '@/types/orderCatalogHYCU.type';
+
+/**
+ *
+ * @param pricings
+ * @returns pricing which correspond to renew capacity
+ */
+export const getRenewPrice = (
+ pricings: HYCUCatalogPlanPricing[],
+): HYCUCatalogPlanPricing => {
+ return pricings.find((pricing) =>
+ pricing.capacities.find((capacity) => capacity === 'renew'),
+ );
+};
diff --git a/packages/manager/apps/hycu/src/utils/iam.constants.ts b/packages/manager/apps/hycu/src/utils/iam.constants.ts
new file mode 100644
index 000000000000..6e0eae2d410b
--- /dev/null
+++ b/packages/manager/apps/hycu/src/utils/iam.constants.ts
@@ -0,0 +1,8 @@
+export const IAM_ACTIONS = {
+ licenseHycuApiOvhGet: 'licenseHycu:apiovh:license/get',
+ licenseHycuApiOvhActivate: 'licenseHycu:apiovh:activate',
+ licenseHycuApiOvhRefresh: 'licenseHycu:apiovh:refresh',
+ licenseHycuApiOvhEdit: 'licenseHycu:apiovh:edit',
+ licenseHycuApiOvhServiceEdit: 'account:apiovh:service/edit',
+ licenseHycuApiOvhTerminate: 'account:apiovh:services/terminate',
+} as const;
diff --git a/packages/manager/apps/hycu/src/utils/sortPacks.ts b/packages/manager/apps/hycu/src/utils/sortPacks.ts
new file mode 100644
index 000000000000..e1e403e2cb2c
--- /dev/null
+++ b/packages/manager/apps/hycu/src/utils/sortPacks.ts
@@ -0,0 +1,10 @@
+import { HYCUCatalogPlan } from '@/types/orderCatalogHYCU.type';
+
+/**
+ *
+ * @param packs
+ * @returns packs ordered by price
+ */
+export const sortPacksByPrice = (packs: HYCUCatalogPlan[]) => {
+ return packs.sort((a, b) => a.pricings[2].price - b.pricings[2].price);
+};
diff --git a/packages/manager/apps/hycu/src/utils/statusColor.ts b/packages/manager/apps/hycu/src/utils/statusColor.ts
index 1aedb85a5ad8..a904a26482d2 100644
--- a/packages/manager/apps/hycu/src/utils/statusColor.ts
+++ b/packages/manager/apps/hycu/src/utils/statusColor.ts
@@ -1,6 +1,7 @@
import { ODS_THEME_COLOR_INTENT } from '@ovhcloud/ods-common-theming';
-import { LicenseStatus } from '@/type/hycu.details.interface';
+import { LicenseStatus } from '@/types/hycu.details.interface';
+/* v8 ignore start */
export const getStatusColor = (
licenseStatus: LicenseStatus,
): ODS_THEME_COLOR_INTENT => {
diff --git a/packages/manager/apps/hycu/src/utils/tests/TestApp.tsx b/packages/manager/apps/hycu/src/utils/tests/TestApp.tsx
index b016f4d6ec24..0ec94df2580f 100644
--- a/packages/manager/apps/hycu/src/utils/tests/TestApp.tsx
+++ b/packages/manager/apps/hycu/src/utils/tests/TestApp.tsx
@@ -3,9 +3,9 @@ import { QueryClientProvider, QueryClient } from '@tanstack/react-query';
import { createMemoryRouter, RouterProvider } from 'react-router-dom';
import { Routes } from '../../routes/routes';
-export function TestApp() {
+export function TestApp({ initialRoute = '/' }: { initialRoute: string }) {
const router = createMemoryRouter(Routes, {
- initialEntries: ['/'],
+ initialEntries: [initialRoute],
initialIndex: 0,
});
diff --git a/packages/manager/apps/hycu/src/utils/tests/init.i18n.ts b/packages/manager/apps/hycu/src/utils/tests/init.i18n.ts
index 9af278be892c..e52f9bda6765 100644
--- a/packages/manager/apps/hycu/src/utils/tests/init.i18n.ts
+++ b/packages/manager/apps/hycu/src/utils/tests/init.i18n.ts
@@ -1,8 +1,12 @@
-import i18next, { i18n } from 'i18next';
+import i18next, { i18n, InitOptions } from 'i18next';
+import error from '@ovh-ux/manager-react-components/dist/src/components/templates/error/translations/Messages_fr_FR.json';
import common from '../../../public/translations/hycu/Messages_fr_FR.json';
-import dashboard from '../../../public/translations/dashboard/Messages_fr_FR.json';
+import dashboard from '../../../public/translations/hycu/dashboard/Messages_fr_FR.json';
import listing from '../../../public/translations/hycu/listing/Messages_fr_FR.json';
import onboarding from '../../../public/translations/hycu/onboarding/Messages_fr_FR.json';
+import order from '../../../public/translations/hycu/order/Messages_fr_FR.json';
+import terminate from '../../../public/translations/hycu/terminate/Messages_fr_FR.json';
+import editPack from '../../../public/translations/hycu/edit-pack/Messages_fr_FR.json';
export const defaultLocale = 'fr_FR';
export const defaultAvailableLocales = [defaultLocale];
@@ -10,9 +14,13 @@ export const defaultAvailableLocales = [defaultLocale];
function addTranslations() {
i18next
.addResources(defaultLocale, 'hycu', common)
- .addResources(defaultLocale, 'dashboard', dashboard)
+ .addResources(defaultLocale, 'hycu/dashboard', dashboard)
.addResources(defaultLocale, 'hycu/listing', listing)
.addResources(defaultLocale, 'hycu/onboarding', onboarding)
+ .addResources(defaultLocale, 'hycu/order', order)
+ .addResources(defaultLocale, 'hycu/terminate', terminate)
+ .addResources(defaultLocale, 'hycu/edit-pack', editPack)
+ .addResources(defaultLocale, 'error', error)
.use({
type: 'postProcessor',
name: 'normalize',
@@ -21,18 +29,20 @@ function addTranslations() {
});
}
+export const getTesti18nParams = (): InitOptions => ({
+ lng: defaultLocale,
+ defaultNS: 'hycu',
+ ns: [],
+ supportedLngs: defaultAvailableLocales,
+ postProcess: 'normalize',
+ interpolation: {
+ escapeValue: false,
+ },
+});
+
export const initTestI18n = () =>
new Promise((resolve) => {
- i18next.init({
- lng: defaultLocale,
- defaultNS: 'hycu',
- ns: [],
- supportedLngs: defaultAvailableLocales,
- postProcess: 'normalize',
- interpolation: {
- escapeValue: false,
- },
- });
+ i18next.init(getTesti18nParams());
if (i18next.isInitialized) {
addTranslations();
@@ -49,4 +59,8 @@ export const labels = {
dashboard,
listing,
onboarding,
+ order,
+ terminate,
+ editPack,
+ error,
};
diff --git a/packages/manager/apps/hycu/src/utils/tests/renderTestApp.tsx b/packages/manager/apps/hycu/src/utils/tests/renderTestApp.tsx
index 3fde0e151880..1ada82284418 100644
--- a/packages/manager/apps/hycu/src/utils/tests/renderTestApp.tsx
+++ b/packages/manager/apps/hycu/src/utils/tests/renderTestApp.tsx
@@ -15,19 +15,34 @@ import { TestApp } from './TestApp';
import { initTestI18n } from './init.i18n';
import { toMswHandlers } from '../../../../../../../playwright-helpers';
import { getAuthenticationMocks } from '../../../../../../../playwright-helpers/mocks/auth';
-import { getLicenseHycuMocks, GetLicenseHycuMocksParams } from '@/mocks';
+import {
+ CatalogHycuMocksParams,
+ getCatalogHycuMocks,
+ getLicenseHycuMocks,
+ GetLicenseHycuMocksParams,
+} from '@/mocks';
+import { getIamMocks } from '@/mocks/iam/iam.handler';
+import { licensesHycuService } from '@/mocks/serviceLicenseHycu/serviceLicenseHycu.data';
let context: ShellContextType;
let i18nValue: i18n;
export const renderTestApp = async (
- mockParams: GetServicesMocksParams & GetLicenseHycuMocksParams = {},
+ initialRoute = '/',
+ mockParams: GetServicesMocksParams &
+ GetLicenseHycuMocksParams &
+ CatalogHycuMocksParams = {},
) => {
global.server?.resetHandlers(
...toMswHandlers([
...getAuthenticationMocks({ isAuthMocked: true }),
- ...getServicesMocks(mockParams),
+ ...getIamMocks(),
...getLicenseHycuMocks(mockParams),
+ ...getServicesMocks({
+ ...mockParams,
+ serviceResponse: mockParams.serviceResponse ?? licensesHycuService,
+ }),
+ ...getCatalogHycuMocks(mockParams),
]),
);
@@ -42,18 +57,20 @@ export const renderTestApp = async (
const result = render(
-
+
,
);
- await waitFor(
- () =>
- expect(
- screen.getAllByText('HYCU', { exact: false }).length,
- ).toBeGreaterThan(0),
- { timeout: 30000 },
- );
+ if (!initialRoute || initialRoute === '/') {
+ await waitFor(
+ () =>
+ expect(
+ screen.getAllByText('HYCU', { exact: false }).length,
+ ).toBeGreaterThan(0),
+ { timeout: 30000 },
+ );
+ }
return result;
};
diff --git a/packages/manager/apps/hycu/vitest.config.js b/packages/manager/apps/hycu/vitest.config.js
index 5ad6ce3dccf7..887795743e8d 100644
--- a/packages/manager/apps/hycu/vitest.config.js
+++ b/packages/manager/apps/hycu/vitest.config.js
@@ -10,12 +10,16 @@ export default defineConfig({
environment: 'jsdom',
setupFiles: ['./src/setupTests.tsx'],
coverage: {
+ provider: 'v8',
+ reporter: ['text'],
include: ['src'],
exclude: [
+ 'src/mocks',
'src/App.tsx',
'src/index.tsx',
'src/tracking.constant.ts',
'src/vite-hmr.ts',
+ 'src/utils/downloadTextAsFile.ts',
],
},
testTimeout: 60000,
diff --git a/packages/manager/apps/key-management-service/CHANGELOG.md b/packages/manager/apps/key-management-service/CHANGELOG.md
index 97ca15b78a59..1a8805b15b41 100644
--- a/packages/manager/apps/key-management-service/CHANGELOG.md
+++ b/packages/manager/apps/key-management-service/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [0.11.1](https://github.com/ovh/manager/compare/@ovh-ux/manager-key-management-service-app@0.11.0...@ovh-ux/manager-key-management-service-app@0.11.1) (2024-11-20)
+
+**Note:** Version bump only for package @ovh-ux/manager-key-management-service-app
+
+
+
+
+
# [0.11.0](https://github.com/ovh/manager/compare/@ovh-ux/manager-key-management-service-app@0.10.2...@ovh-ux/manager-key-management-service-app@0.11.0) (2024-11-18)
diff --git a/packages/manager/apps/key-management-service/package.json b/packages/manager/apps/key-management-service/package.json
index f57a102c32bc..5226b60ba026 100644
--- a/packages/manager/apps/key-management-service/package.json
+++ b/packages/manager/apps/key-management-service/package.json
@@ -1,6 +1,6 @@
{
"name": "@ovh-ux/manager-key-management-service-app",
- "version": "0.11.0",
+ "version": "0.11.1",
"private": true,
"description": "ovh key-management-service",
"repository": {
@@ -26,7 +26,7 @@
"@ovh-ux/manager-config": "^8.0.0",
"@ovh-ux/manager-core-api": "^0.9.0",
"@ovh-ux/manager-core-utils": "*",
- "@ovh-ux/manager-module-order": "^0.7.1",
+ "@ovh-ux/manager-module-order": "^0.8.0",
"@ovh-ux/manager-react-components": "^1.41.1",
"@ovh-ux/manager-react-core-application": "^0.11.1",
"@ovh-ux/manager-react-shell-client": "^0.8.1",
diff --git a/packages/manager/apps/nasha/CHANGELOG.md b/packages/manager/apps/nasha/CHANGELOG.md
index 04598599ec3d..08be8e5843ba 100644
--- a/packages/manager/apps/nasha/CHANGELOG.md
+++ b/packages/manager/apps/nasha/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [4.0.3](https://github.com/ovh/manager/compare/@ovh-ux/manager-nasha-app@4.0.2...@ovh-ux/manager-nasha-app@4.0.3) (2024-11-20)
+
+**Note:** Version bump only for package @ovh-ux/manager-nasha-app
+
+
+
+
+
## [4.0.2](https://github.com/ovh/manager/compare/@ovh-ux/manager-nasha-app@4.0.1...@ovh-ux/manager-nasha-app@4.0.2) (2024-11-19)
**Note:** Version bump only for package @ovh-ux/manager-nasha-app
diff --git a/packages/manager/apps/nasha/package.json b/packages/manager/apps/nasha/package.json
index b981a3447cc6..3d8f6161fed8 100644
--- a/packages/manager/apps/nasha/package.json
+++ b/packages/manager/apps/nasha/package.json
@@ -1,6 +1,6 @@
{
"name": "@ovh-ux/manager-nasha-app",
- "version": "4.0.2",
+ "version": "4.0.3",
"private": true,
"description": "NAS-HA standalone application.",
"repository": {
@@ -19,7 +19,7 @@
"start:watch": "lerna exec --stream --parallel --scope='@ovh-ux/manager-nasha-app' --include-dependencies -- npm run dev:watch --if-present"
},
"dependencies": {
- "@ovh-ux/manager-billing-components": "^4.0.1",
+ "@ovh-ux/manager-billing-components": "^4.1.0",
"@ovh-ux/manager-catalog-price": "^1.8.0",
"@ovh-ux/manager-components": "^1.22.2",
"@ovh-ux/manager-config": "^8.0.0",
diff --git a/packages/manager/apps/netapp/CHANGELOG.md b/packages/manager/apps/netapp/CHANGELOG.md
index 7af85e4a3b56..d22d5a24d1ad 100644
--- a/packages/manager/apps/netapp/CHANGELOG.md
+++ b/packages/manager/apps/netapp/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [0.9.3](https://github.com/ovh/manager/compare/@ovh-ux/manager-netapp-app@0.9.2...@ovh-ux/manager-netapp-app@0.9.3) (2024-11-20)
+
+**Note:** Version bump only for package @ovh-ux/manager-netapp-app
+
+
+
+
+
## [0.9.2](https://github.com/ovh/manager/compare/@ovh-ux/manager-netapp-app@0.9.1...@ovh-ux/manager-netapp-app@0.9.2) (2024-11-19)
**Note:** Version bump only for package @ovh-ux/manager-netapp-app
diff --git a/packages/manager/apps/netapp/package.json b/packages/manager/apps/netapp/package.json
index f12feffe3052..f08453e3aede 100644
--- a/packages/manager/apps/netapp/package.json
+++ b/packages/manager/apps/netapp/package.json
@@ -1,6 +1,6 @@
{
"name": "@ovh-ux/manager-netapp-app",
- "version": "0.9.2",
+ "version": "0.9.3",
"private": true,
"description": "NetApp standalone application",
"repository": {
@@ -20,7 +20,7 @@
},
"dependencies": {
"@ovh-ux/manager-advices": "^1.8.1",
- "@ovh-ux/manager-billing-components": "^4.0.1",
+ "@ovh-ux/manager-billing-components": "^4.1.0",
"@ovh-ux/manager-catalog-price": "^1.8.0",
"@ovh-ux/manager-components": "^1.22.2",
"@ovh-ux/manager-config": "^8.0.0",
diff --git a/packages/manager/apps/pci-public-ip/CHANGELOG.md b/packages/manager/apps/pci-public-ip/CHANGELOG.md
index a9acb4f8125b..f301b6ac8715 100644
--- a/packages/manager/apps/pci-public-ip/CHANGELOG.md
+++ b/packages/manager/apps/pci-public-ip/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [0.7.13](https://github.com/ovh/manager/compare/@ovh-ux/manager-pci-public-ip-app@0.7.12...@ovh-ux/manager-pci-public-ip-app@0.7.13) (2024-11-20)
+
+**Note:** Version bump only for package @ovh-ux/manager-pci-public-ip-app
+
+
+
+
+
## [0.7.12](https://github.com/ovh/manager/compare/@ovh-ux/manager-pci-public-ip-app@0.7.11...@ovh-ux/manager-pci-public-ip-app@0.7.12) (2024-11-13)
**Note:** Version bump only for package @ovh-ux/manager-pci-public-ip-app
diff --git a/packages/manager/apps/pci-public-ip/package.json b/packages/manager/apps/pci-public-ip/package.json
index a1dc68d9f53d..2125f7e360e6 100644
--- a/packages/manager/apps/pci-public-ip/package.json
+++ b/packages/manager/apps/pci-public-ip/package.json
@@ -1,6 +1,6 @@
{
"name": "@ovh-ux/manager-pci-public-ip-app",
- "version": "0.7.12",
+ "version": "0.7.13",
"private": true,
"description": "PCI Public IPs react app",
"type": "module",
@@ -18,7 +18,7 @@
"dependencies": {
"@ovh-ux/manager-config": "^8.0.0",
"@ovh-ux/manager-core-api": "^0.9.0",
- "@ovh-ux/manager-module-order": "^0.7.1",
+ "@ovh-ux/manager-module-order": "^0.8.0",
"@ovh-ux/manager-pci-common": "^0.8.1",
"@ovh-ux/manager-react-components": "^1.41.1",
"@ovh-ux/manager-react-core-application": "^0.11.1",
diff --git a/packages/manager/apps/vrack-services/CHANGELOG.md b/packages/manager/apps/vrack-services/CHANGELOG.md
index 37376a9154f4..ba56bb9c2fb1 100644
--- a/packages/manager/apps/vrack-services/CHANGELOG.md
+++ b/packages/manager/apps/vrack-services/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [0.9.2](https://github.com/ovh/manager/compare/@ovh-ux/manager-vrack-services-app@0.9.1...@ovh-ux/manager-vrack-services-app@0.9.2) (2024-11-20)
+
+**Note:** Version bump only for package @ovh-ux/manager-vrack-services-app
+
+
+
+
+
## [0.9.1](https://github.com/ovh/manager/compare/@ovh-ux/manager-vrack-services-app@0.9.0...@ovh-ux/manager-vrack-services-app@0.9.1) (2024-11-13)
**Note:** Version bump only for package @ovh-ux/manager-vrack-services-app
diff --git a/packages/manager/apps/vrack-services/package.json b/packages/manager/apps/vrack-services/package.json
index c93985dc7f81..291e2c9febe2 100644
--- a/packages/manager/apps/vrack-services/package.json
+++ b/packages/manager/apps/vrack-services/package.json
@@ -1,6 +1,6 @@
{
"name": "@ovh-ux/manager-vrack-services-app",
- "version": "0.9.1",
+ "version": "0.9.2",
"private": true,
"description": "OVHcloud VrackServices app",
"repository": {
@@ -24,7 +24,7 @@
"dependencies": {
"@ovh-ux/manager-config": "^8.0.0",
"@ovh-ux/manager-core-api": "^0.9.0",
- "@ovh-ux/manager-module-order": "^0.7.1",
+ "@ovh-ux/manager-module-order": "^0.8.0",
"@ovh-ux/manager-react-components": "^1.41.1",
"@ovh-ux/manager-react-core-application": "^0.11.1",
"@ovh-ux/manager-react-shell-client": "^0.8.1",
diff --git a/packages/manager/apps/web-paas/CHANGELOG.md b/packages/manager/apps/web-paas/CHANGELOG.md
index 333760f16a5a..7888fae330f2 100644
--- a/packages/manager/apps/web-paas/CHANGELOG.md
+++ b/packages/manager/apps/web-paas/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [3.0.2](https://github.com/ovh/manager/compare/@ovh-ux/manager-web-paas-app@3.0.1...@ovh-ux/manager-web-paas-app@3.0.2) (2024-11-20)
+
+**Note:** Version bump only for package @ovh-ux/manager-web-paas-app
+
+
+
+
+
## [3.0.1](https://github.com/ovh/manager/compare/@ovh-ux/manager-web-paas-app@3.0.0...@ovh-ux/manager-web-paas-app@3.0.1) (2024-11-19)
**Note:** Version bump only for package @ovh-ux/manager-web-paas-app
diff --git a/packages/manager/apps/web-paas/package.json b/packages/manager/apps/web-paas/package.json
index a74a14254daf..cc25e23aaf4d 100644
--- a/packages/manager/apps/web-paas/package.json
+++ b/packages/manager/apps/web-paas/package.json
@@ -1,6 +1,6 @@
{
"name": "@ovh-ux/manager-web-paas-app",
- "version": "3.0.1",
+ "version": "3.0.2",
"private": true,
"repository": {
"type": "git",
@@ -18,7 +18,7 @@
"start:watch": "lerna exec --stream --parallel --scope='@ovh-ux/manager-web-paas-app' --include-dependencies -- npm run dev:watch --if-present"
},
"dependencies": {
- "@ovh-ux/manager-billing-components": "^4.0.1",
+ "@ovh-ux/manager-billing-components": "^4.1.0",
"@ovh-ux/manager-config": "^8.0.0",
"@ovh-ux/manager-core": "^13.0.1",
"@ovh-ux/manager-ng-layout-helpers": "^2.9.1",
diff --git a/packages/manager/modules/billing-components/CHANGELOG.md b/packages/manager/modules/billing-components/CHANGELOG.md
index 3e4552ad2b99..46d12a028fde 100644
--- a/packages/manager/modules/billing-components/CHANGELOG.md
+++ b/packages/manager/modules/billing-components/CHANGELOG.md
@@ -3,6 +3,24 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+# [4.1.0](https://github.com/ovh/manager/compare/@ovh-ux/manager-billing-components@4.0.1...@ovh-ux/manager-billing-components@4.1.0) (2024-11-20)
+
+
+### Bug Fixes
+
+* **hycu:** fix translations on dashboard ([aac3ac1](https://github.com/ovh/manager/commit/aac3ac117ad57989e0b46acb6ea895ce8982d7b4))
+* **i18n:** add missing translations [CDS 3494] ([cafbeb3](https://github.com/ovh/manager/commit/cafbeb3760646da4ea18528ad3f94f0fd490d0d3))
+
+
+### Features
+
+* **billing-component:** add resiliation agora service for HYCU ([8176b67](https://github.com/ovh/manager/commit/8176b67ab85d2e5258d7764cb7ed05d5cb9d9a37))
+* **hycu:** add agora termination for hycu service ([dfecf5a](https://github.com/ovh/manager/commit/dfecf5a6f404676ae618e1220cd9f44a1f79afb4))
+
+
+
+
+
## [4.0.1](https://github.com/ovh/manager/compare/@ovh-ux/manager-billing-components@4.0.0...@ovh-ux/manager-billing-components@4.0.1) (2024-11-19)
**Note:** Version bump only for package @ovh-ux/manager-billing-components
diff --git a/packages/manager/modules/billing-components/package.json b/packages/manager/modules/billing-components/package.json
index 21b2fa3fa346..00992ad4e431 100644
--- a/packages/manager/modules/billing-components/package.json
+++ b/packages/manager/modules/billing-components/package.json
@@ -1,6 +1,6 @@
{
"name": "@ovh-ux/manager-billing-components",
- "version": "4.0.1",
+ "version": "4.1.0",
"private": true,
"description": "OVHcloud manager billing components",
"repository": {
diff --git a/packages/manager/modules/billing-components/src/components/cancellation-form/billing-confirmTerminate.service.js b/packages/manager/modules/billing-components/src/components/cancellation-form/billing-confirmTerminate.service.js
index b3542a9a5312..364301571359 100644
--- a/packages/manager/modules/billing-components/src/components/cancellation-form/billing-confirmTerminate.service.js
+++ b/packages/manager/modules/billing-components/src/components/cancellation-form/billing-confirmTerminate.service.js
@@ -1,6 +1,7 @@
import { map } from 'lodash-es';
import { Service } from '@ovh-ux/manager-models';
import {
+ SERVICE_GROUP_WITH_AGORA_TERMINATION_REGEX,
SERVICE_WITH_AGORA_TERMINATION,
TERMINATION_FORM_NAME,
} from './confirm-terminate.constants';
@@ -34,11 +35,16 @@ export default class BillingTerminate {
);
}
- confirmTermination(service, token) {
- const isAgoraService = SERVICE_WITH_AGORA_TERMINATION.includes(
- service.billing?.plan?.code || '',
+ static hasAgoraTermination(planCode) {
+ return (
+ SERVICE_WITH_AGORA_TERMINATION.includes(planCode) ||
+ SERVICE_GROUP_WITH_AGORA_TERMINATION_REGEX.test(planCode)
);
- return isAgoraService
+ }
+
+ confirmTermination(service, token) {
+ const planCode = service.billing?.plan?.code || '';
+ return BillingTerminate.hasAgoraTermination(planCode)
? this.$http.post(`/services/${service.serviceId}/terminate/confirm`, {
token,
})
diff --git a/packages/manager/modules/billing-components/src/components/cancellation-form/confirm-terminate.constants.js b/packages/manager/modules/billing-components/src/components/cancellation-form/confirm-terminate.constants.js
index fc973d395857..2cc47f58282a 100644
--- a/packages/manager/modules/billing-components/src/components/cancellation-form/confirm-terminate.constants.js
+++ b/packages/manager/modules/billing-components/src/components/cancellation-form/confirm-terminate.constants.js
@@ -6,12 +6,13 @@ export const SERVICE_WITH_AGORA_TERMINATION = [
'vrack-services',
'okms',
'logs-account',
- 'logs-enterprise',
- 'logs-enterprise-hds',
];
+export const SERVICE_GROUP_WITH_AGORA_TERMINATION_REGEX = /hycu-vms-*|(logs-enterprise(-hds)?$)/;
+
export default {
SPECIAL_CONDITIONS_SUBSIDIARIES,
TERMINATION_FORM_NAME,
SERVICE_WITH_AGORA_TERMINATION,
+ SERVICE_GROUP_WITH_AGORA_TERMINATION_REGEX,
};
diff --git a/packages/manager/modules/billing-components/src/components/services-actions/service-actions.constants.js b/packages/manager/modules/billing-components/src/components/services-actions/service-actions.constants.js
index d790b464760b..c02ae82f7fe5 100644
--- a/packages/manager/modules/billing-components/src/components/services-actions/service-actions.constants.js
+++ b/packages/manager/modules/billing-components/src/components/services-actions/service-actions.constants.js
@@ -4,6 +4,7 @@ export const SERVICE_TYPE = {
EXCHANGE: 'EMAIL_EXCHANGE',
HOSTING_PRIVATE_DATABASE: 'HOSTING_PRIVATE_DATABASE',
HOSTING_WEB: 'HOSTING_WEB',
+ LICENSE_HYCU: 'LICENSE_HYCU',
OVH_CLOUD_CONNECT: 'OVH_CLOUD_CONNECT',
PACK_XDSL: 'PACK_XDSL',
SMS: 'SMS',
diff --git a/packages/manager/modules/billing-components/src/components/services-actions/services-actions.controller.js b/packages/manager/modules/billing-components/src/components/services-actions/services-actions.controller.js
index 0fc02e097fd9..363e873f6221 100644
--- a/packages/manager/modules/billing-components/src/components/services-actions/services-actions.controller.js
+++ b/packages/manager/modules/billing-components/src/components/services-actions/services-actions.controller.js
@@ -116,6 +116,7 @@ export default class ServicesActionsCtrl {
break;
case SERVICE_TYPE.OKMS:
case SERVICE_TYPE.VRACK_SERVICES:
+ case SERVICE_TYPE.LICENSE_HYCU:
this.resiliateLink = `${this.autorenewLink}/terminate-service?id=${this.service.id}${serviceTypeParam}`;
break;
default:
diff --git a/packages/manager/modules/billing-components/src/components/services-actions/translations/Messages_de_DE.json b/packages/manager/modules/billing-components/src/components/services-actions/translations/Messages_de_DE.json
index 0e7624b1d878..96abce612ef8 100644
--- a/packages/manager/modules/billing-components/src/components/services-actions/translations/Messages_de_DE.json
+++ b/packages/manager/modules/billing-components/src/components/services-actions/translations/Messages_de_DE.json
@@ -20,5 +20,6 @@
"billing_services_actions_menu_see_dashboard": "Dienstdetails anzeigen",
"billing_services_actions_menu_commit": "Meine Abonnementlaufzeit verwalten",
"billing_services_actions_menu_commit_cancel": "Abonnementbestellung mit fester Laufzeit stornieren",
- "billing_services_actions_menu_resiliate_my_engagement": "Meine Vertragsbindung kündigen"
+ "billing_services_actions_menu_resiliate_my_engagement": "Meine Vertragsbindung kündigen",
+ "billing_services_actions_menu_resiliate_LICENSE_HYCU": "Meine HYCU-Lizenz löschen"
}
diff --git a/packages/manager/modules/billing-components/src/components/services-actions/translations/Messages_en_GB.json b/packages/manager/modules/billing-components/src/components/services-actions/translations/Messages_en_GB.json
index a2177d2c3061..b7f8ce1b5a0b 100644
--- a/packages/manager/modules/billing-components/src/components/services-actions/translations/Messages_en_GB.json
+++ b/packages/manager/modules/billing-components/src/components/services-actions/translations/Messages_en_GB.json
@@ -20,5 +20,6 @@
"billing_services_actions_menu_see_dashboard": "View service details",
"billing_services_actions_menu_commit": "Manage my commitment",
"billing_services_actions_menu_commit_cancel": "Cancel subscription request",
- "billing_services_actions_menu_resiliate_my_engagement": "Cancel subscription"
+ "billing_services_actions_menu_resiliate_my_engagement": "Cancel subscription",
+ "billing_services_actions_menu_resiliate_LICENSE_HYCU": "Delete my Hycu licence"
}
diff --git a/packages/manager/modules/billing-components/src/components/services-actions/translations/Messages_es_ES.json b/packages/manager/modules/billing-components/src/components/services-actions/translations/Messages_es_ES.json
index 629e88967ff2..3f42d4519a13 100644
--- a/packages/manager/modules/billing-components/src/components/services-actions/translations/Messages_es_ES.json
+++ b/packages/manager/modules/billing-components/src/components/services-actions/translations/Messages_es_ES.json
@@ -20,5 +20,6 @@
"billing_services_actions_menu_see_dashboard": "Ver el detalle del servicio",
"billing_services_actions_menu_commit": "Gestionar mi compromiso de permanencia",
"billing_services_actions_menu_commit_cancel": "Cancelar la solicitud de contratación con compromiso de permanencia",
- "billing_services_actions_menu_resiliate_my_engagement": "Cancelar mi compromiso"
+ "billing_services_actions_menu_resiliate_my_engagement": "Cancelar mi compromiso",
+ "billing_services_actions_menu_resiliate_LICENSE_HYCU": "Eliminar mi licencia HYCU"
}
diff --git a/packages/manager/modules/billing-components/src/components/services-actions/translations/Messages_fr_CA.json b/packages/manager/modules/billing-components/src/components/services-actions/translations/Messages_fr_CA.json
index 219001192e19..1b81a70ca451 100644
--- a/packages/manager/modules/billing-components/src/components/services-actions/translations/Messages_fr_CA.json
+++ b/packages/manager/modules/billing-components/src/components/services-actions/translations/Messages_fr_CA.json
@@ -15,6 +15,7 @@
"billing_services_actions_menu_resiliate_HOSTING_WEB": "Supprimer immédiatement l'hébergement",
"billing_services_actions_menu_resiliate_HOSTING_PRIVATE_DATABASE": "Supprimer mon hébergement SQL privé",
"billing_services_actions_menu_resiliate_WEBCOACH": "Supprimer mon WebCoach",
+ "billing_services_actions_menu_resiliate_LICENSE_HYCU": "Supprimer ma licence Hycu",
"billing_services_actions_menu_sms_credit": "Ajouter des crédits",
"billing_services_actions_menu_sms_renew": "Configurer la recharge automatique",
"billing_services_actions_menu_resiliate_cancel": "Annuler la résiliation du service",
diff --git a/packages/manager/modules/billing-components/src/components/services-actions/translations/Messages_fr_FR.json b/packages/manager/modules/billing-components/src/components/services-actions/translations/Messages_fr_FR.json
index 219001192e19..1b81a70ca451 100644
--- a/packages/manager/modules/billing-components/src/components/services-actions/translations/Messages_fr_FR.json
+++ b/packages/manager/modules/billing-components/src/components/services-actions/translations/Messages_fr_FR.json
@@ -15,6 +15,7 @@
"billing_services_actions_menu_resiliate_HOSTING_WEB": "Supprimer immédiatement l'hébergement",
"billing_services_actions_menu_resiliate_HOSTING_PRIVATE_DATABASE": "Supprimer mon hébergement SQL privé",
"billing_services_actions_menu_resiliate_WEBCOACH": "Supprimer mon WebCoach",
+ "billing_services_actions_menu_resiliate_LICENSE_HYCU": "Supprimer ma licence Hycu",
"billing_services_actions_menu_sms_credit": "Ajouter des crédits",
"billing_services_actions_menu_sms_renew": "Configurer la recharge automatique",
"billing_services_actions_menu_resiliate_cancel": "Annuler la résiliation du service",
diff --git a/packages/manager/modules/billing-components/src/components/services-actions/translations/Messages_it_IT.json b/packages/manager/modules/billing-components/src/components/services-actions/translations/Messages_it_IT.json
index 3240da99d6ea..a328a7c8f77f 100644
--- a/packages/manager/modules/billing-components/src/components/services-actions/translations/Messages_it_IT.json
+++ b/packages/manager/modules/billing-components/src/components/services-actions/translations/Messages_it_IT.json
@@ -20,5 +20,6 @@
"billing_services_actions_menu_see_dashboard": "Mostra i dettagli del server",
"billing_services_actions_menu_commit": "Gestisci il tuo impegno contrattuale",
"billing_services_actions_menu_commit_cancel": "Annulla la richiesta di sottoscrizione di un impegno contrattuale",
- "billing_services_actions_menu_resiliate_my_engagement": "Rescindi l’impegno contrattuale"
+ "billing_services_actions_menu_resiliate_my_engagement": "Rescindi l’impegno contrattuale",
+ "billing_services_actions_menu_resiliate_LICENSE_HYCU": "Eliminare la tua licenza HYCU"
}
diff --git a/packages/manager/modules/billing-components/src/components/services-actions/translations/Messages_pl_PL.json b/packages/manager/modules/billing-components/src/components/services-actions/translations/Messages_pl_PL.json
index d521f7cc3f79..4393fb26a572 100644
--- a/packages/manager/modules/billing-components/src/components/services-actions/translations/Messages_pl_PL.json
+++ b/packages/manager/modules/billing-components/src/components/services-actions/translations/Messages_pl_PL.json
@@ -20,5 +20,6 @@
"billing_services_actions_menu_see_dashboard": "Wyświetl szczegółowe informacje o usłudze",
"billing_services_actions_menu_commit": "Zarządzanie usługą z opcją umowy terminowej",
"billing_services_actions_menu_commit_cancel": "Anuluj zamówienie usługi z opcją umowy terminowej",
- "billing_services_actions_menu_resiliate_my_engagement": "Rezygnacja z umowy terminowej"
+ "billing_services_actions_menu_resiliate_my_engagement": "Rezygnacja z umowy terminowej",
+ "billing_services_actions_menu_resiliate_LICENSE_HYCU": "Usuń licencję HYCU"
}
diff --git a/packages/manager/modules/billing-components/src/components/services-actions/translations/Messages_pt_PT.json b/packages/manager/modules/billing-components/src/components/services-actions/translations/Messages_pt_PT.json
index 46715d8a602a..f12a551f60d8 100644
--- a/packages/manager/modules/billing-components/src/components/services-actions/translations/Messages_pt_PT.json
+++ b/packages/manager/modules/billing-components/src/components/services-actions/translations/Messages_pt_PT.json
@@ -20,5 +20,6 @@
"billing_services_actions_menu_see_dashboard": "Ver os detalhes do serviço",
"billing_services_actions_menu_commit": "Gerir o meu compromisso",
"billing_services_actions_menu_commit_cancel": "Anular o pedido de compromisso",
- "billing_services_actions_menu_resiliate_my_engagement": "Rescindir o meu compromisso"
+ "billing_services_actions_menu_resiliate_my_engagement": "Rescindir o meu compromisso",
+ "billing_services_actions_menu_resiliate_LICENSE_HYCU": "Eliminar a minha licença Hycu"
}
diff --git a/packages/manager/modules/billing/CHANGELOG.md b/packages/manager/modules/billing/CHANGELOG.md
index b7bc19c67642..41d231b5d851 100644
--- a/packages/manager/modules/billing/CHANGELOG.md
+++ b/packages/manager/modules/billing/CHANGELOG.md
@@ -3,6 +3,24 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+# [0.22.0](https://github.com/ovh/manager/compare/@ovh-ux/manager-billing@0.21.0...@ovh-ux/manager-billing@0.22.0) (2024-11-20)
+
+
+### Bug Fixes
+
+* **i18n:** add missing translations [CDS 3494] ([cafbeb3](https://github.com/ovh/manager/commit/cafbeb3760646da4ea18528ad3f94f0fd490d0d3))
+
+
+### Features
+
+* **billing-component:** add resiliation agora service for HYCU ([8176b67](https://github.com/ovh/manager/commit/8176b67ab85d2e5258d7764cb7ed05d5cb9d9a37))
+* **hycu:** add agora termination for hycu service ([dfecf5a](https://github.com/ovh/manager/commit/dfecf5a6f404676ae618e1220cd9f44a1f79afb4))
+* **hycu:** add hycu service on hub and my services ([9f10592](https://github.com/ovh/manager/commit/9f1059281f2b8fa3883b04fc41358749d376bb69))
+
+
+
+
+
# [0.21.0](https://github.com/ovh/manager/compare/@ovh-ux/manager-billing@0.20.0...@ovh-ux/manager-billing@0.21.0) (2024-11-19)
diff --git a/packages/manager/modules/billing/package.json b/packages/manager/modules/billing/package.json
index b9baf63f7411..af00ed39b80b 100644
--- a/packages/manager/modules/billing/package.json
+++ b/packages/manager/modules/billing/package.json
@@ -1,6 +1,6 @@
{
"name": "@ovh-ux/manager-billing",
- "version": "0.21.0",
+ "version": "0.22.0",
"private": true,
"description": "Manager billing section",
"repository": {
diff --git a/packages/manager/modules/billing/src/autoRenew/actions/terminate-agora-service/translations/Messages_de_DE.json b/packages/manager/modules/billing/src/autoRenew/actions/terminate-agora-service/translations/Messages_de_DE.json
index 0b4052dedfb4..dc7df049291f 100644
--- a/packages/manager/modules/billing/src/autoRenew/actions/terminate-agora-service/translations/Messages_de_DE.json
+++ b/packages/manager/modules/billing/src/autoRenew/actions/terminate-agora-service/translations/Messages_de_DE.json
@@ -11,5 +11,9 @@
"autorenew_agora_terminate_service_VRACK_SERVICES_RESOURCE": "vRack Services kündigen",
"autorenew_agora_terminate_service_warning_VRACK_SERVICES_RESOURCE": "Bitte bestätigen Sie die Kündigung von vRack Services.",
"autorenew_agora_terminate_service_success_VRACK_SERVICES_RESOURCE": "Ihre Anfrage zur Kündigung von vRack Services wurde registriert. Eine E-Mail mit weiteren Informationen zur Vorgehensweise wurde soeben an Sie versandt.",
- "autorenew_agora_terminate_service_error_VRACK_SERVICES_RESOURCE": "Bei der Kündigung von vRack Services ist ein Fehler aufgetreten. {{error}}"
+ "autorenew_agora_terminate_service_error_VRACK_SERVICES_RESOURCE": "Bei der Kündigung von vRack Services ist ein Fehler aufgetreten. {{error}}",
+ "autorenew_agora_terminate_service_LICENSE_HYCU": "Meine HYCU-Lizenz kündigen",
+ "autorenew_agora_terminate_service_warning_LICENSE_HYCU": "Bitte bestätigen Sie die Kündigung Ihrer HYCU-Lizenz.",
+ "autorenew_agora_terminate_service_success_LICENSE_HYCU": "Ihre Anfrage zur Kündigung Ihrer HYCU-Lizenz wurde registriert. Eine E-Mail mit weiteren Informationen zur Vorgehensweise wurde soeben an Sie versandt.",
+ "autorenew_agora_terminate_service_error_LICENSE_HYCU": "Bei der Anfrage zur Kündigung Ihrer HYCU-Lizenz ist ein Fehler aufgetreten. {{error}}"
}
diff --git a/packages/manager/modules/billing/src/autoRenew/actions/terminate-agora-service/translations/Messages_en_GB.json b/packages/manager/modules/billing/src/autoRenew/actions/terminate-agora-service/translations/Messages_en_GB.json
index c1cf00a52c7e..fb9494baaf0e 100644
--- a/packages/manager/modules/billing/src/autoRenew/actions/terminate-agora-service/translations/Messages_en_GB.json
+++ b/packages/manager/modules/billing/src/autoRenew/actions/terminate-agora-service/translations/Messages_en_GB.json
@@ -11,5 +11,9 @@
"autorenew_agora_terminate_service_VRACK_SERVICES_RESOURCE": "Cancel vRack Services",
"autorenew_agora_terminate_service_warning_VRACK_SERVICES_RESOURCE": "Please confirm the cancellation of vRack Services",
"autorenew_agora_terminate_service_success_VRACK_SERVICES_RESOURCE": "Your request to cancel vRack Services has been processed. You have been sent an email detailing the procedure to follow.",
- "autorenew_agora_terminate_service_error_VRACK_SERVICES_RESOURCE": "An error has occurred cancelling vRack Services. {{error}}"
+ "autorenew_agora_terminate_service_error_VRACK_SERVICES_RESOURCE": "An error has occurred cancelling vRack Services. {{error}}",
+ "autorenew_agora_terminate_service_LICENSE_HYCU": "Cancel my HYCU licence",
+ "autorenew_agora_terminate_service_warning_LICENSE_HYCU": "Please confirm the cancellation of your HYCU licence",
+ "autorenew_agora_terminate_service_success_LICENSE_HYCU": "Your request to cancel your HYCU licence has been processed. You have been sent an email detailing the procedure to follow.",
+ "autorenew_agora_terminate_service_error_LICENSE_HYCU": "An error has occurred submitting your HYCU licence cancellation request. {{error}}"
}
diff --git a/packages/manager/modules/billing/src/autoRenew/actions/terminate-agora-service/translations/Messages_es_ES.json b/packages/manager/modules/billing/src/autoRenew/actions/terminate-agora-service/translations/Messages_es_ES.json
index 9fa3c4a578c8..1ce9b4cd8d09 100644
--- a/packages/manager/modules/billing/src/autoRenew/actions/terminate-agora-service/translations/Messages_es_ES.json
+++ b/packages/manager/modules/billing/src/autoRenew/actions/terminate-agora-service/translations/Messages_es_ES.json
@@ -11,5 +11,9 @@
"autorenew_agora_terminate_service_VRACK_SERVICES_RESOURCE": "Dar de baja los vRack Services",
"autorenew_agora_terminate_service_warning_VRACK_SERVICES_RESOURCE": "Por favor, confirme la baja de los vRack Services",
"autorenew_agora_terminate_service_success_VRACK_SERVICES_RESOURCE": "La solicitud de baja de los vRack Services se ha enviado correctamente. Le hemos enviado un mensaje de correo electrónico con el procedimiento que debe seguir.",
- "autorenew_agora_terminate_service_error_VRACK_SERVICES_RESOURCE": "Se ha producido un error al solicitar la baja de los vRack Services: {{error}}"
+ "autorenew_agora_terminate_service_error_VRACK_SERVICES_RESOURCE": "Se ha producido un error al solicitar la baja de los vRack Services: {{error}}",
+ "autorenew_agora_terminate_service_LICENSE_HYCU": "Dar de baja mi licencia HYCU",
+ "autorenew_agora_terminate_service_warning_LICENSE_HYCU": "Por favor, confirme la baja de su licencia HYCU",
+ "autorenew_agora_terminate_service_success_LICENSE_HYCU": "La solicitud de baja de su licencia HYCU se ha enviado. Le hemos enviado un mensaje de correo electrónico con el procedimiento que debe seguir.",
+ "autorenew_agora_terminate_service_error_LICENSE_HYCU": "Se ha producido un error al solicitar la baja de su licencia HYCU. {{error}}"
}
diff --git a/packages/manager/modules/billing/src/autoRenew/actions/terminate-agora-service/translations/Messages_fr_CA.json b/packages/manager/modules/billing/src/autoRenew/actions/terminate-agora-service/translations/Messages_fr_CA.json
index 538233fa726b..93ad21923a09 100644
--- a/packages/manager/modules/billing/src/autoRenew/actions/terminate-agora-service/translations/Messages_fr_CA.json
+++ b/packages/manager/modules/billing/src/autoRenew/actions/terminate-agora-service/translations/Messages_fr_CA.json
@@ -1,10 +1,14 @@
{
+ "autorenew_agora_terminate_service_LICENSE_HYCU": "Résilier ma licence HYCU",
"autorenew_agora_terminate_service_OKMS_RESOURCE": "Résilier mon KMS",
"autorenew_agora_terminate_service_VRACK_SERVICES_RESOURCE": "Résilier vRack Services",
+ "autorenew_agora_terminate_service_warning_LICENSE_HYCU": "Veuillez confirmer la résiliation de votre licence HYCU",
"autorenew_agora_terminate_service_warning_OKMS_RESOURCE": "Veuillez confirmer la résiliation de votre KMS",
"autorenew_agora_terminate_service_warning_VRACK_SERVICES_RESOURCE": "Veuillez confirmer la résiliation de vRAck Services",
+ "autorenew_agora_terminate_service_success_LICENSE_HYCU": "Votre demande de résiliation de votre licence HYCU a été prise en compte. Un e-mail contenant la procédure vous a été envoyé.",
"autorenew_agora_terminate_service_success_OKMS_RESOURCE": "Votre demande de résiliation de votre KMS a été prise en compte. Un e-mail contenant la procédure vous a été envoyé.",
"autorenew_agora_terminate_service_success_VRACK_SERVICES_RESOURCE": "Votre demande de résiliation de vRAck Services a été prise en compte. Un e-mail contenant la procédure vous a été envoyé.",
+ "autorenew_agora_terminate_service_error_LICENSE_HYCU": "Une erreur est survenue lors de la demande de résiliation de votre licence HYCU. {{error}}",
"autorenew_agora_terminate_service_error_OKMS_RESOURCE": "Une erreur est survenue lors de la demande de résiliation de votre KMS. {{error}}",
"autorenew_agora_terminate_service_DBAAS_LOGS": "Résilier mon LDP",
"autorenew_agora_terminate_service_warning_DBAAS_LOGS": "Veuillez confirmer la résiliation de votre LDP",
diff --git a/packages/manager/modules/billing/src/autoRenew/actions/terminate-agora-service/translations/Messages_fr_FR.json b/packages/manager/modules/billing/src/autoRenew/actions/terminate-agora-service/translations/Messages_fr_FR.json
index 538233fa726b..93ad21923a09 100644
--- a/packages/manager/modules/billing/src/autoRenew/actions/terminate-agora-service/translations/Messages_fr_FR.json
+++ b/packages/manager/modules/billing/src/autoRenew/actions/terminate-agora-service/translations/Messages_fr_FR.json
@@ -1,10 +1,14 @@
{
+ "autorenew_agora_terminate_service_LICENSE_HYCU": "Résilier ma licence HYCU",
"autorenew_agora_terminate_service_OKMS_RESOURCE": "Résilier mon KMS",
"autorenew_agora_terminate_service_VRACK_SERVICES_RESOURCE": "Résilier vRack Services",
+ "autorenew_agora_terminate_service_warning_LICENSE_HYCU": "Veuillez confirmer la résiliation de votre licence HYCU",
"autorenew_agora_terminate_service_warning_OKMS_RESOURCE": "Veuillez confirmer la résiliation de votre KMS",
"autorenew_agora_terminate_service_warning_VRACK_SERVICES_RESOURCE": "Veuillez confirmer la résiliation de vRAck Services",
+ "autorenew_agora_terminate_service_success_LICENSE_HYCU": "Votre demande de résiliation de votre licence HYCU a été prise en compte. Un e-mail contenant la procédure vous a été envoyé.",
"autorenew_agora_terminate_service_success_OKMS_RESOURCE": "Votre demande de résiliation de votre KMS a été prise en compte. Un e-mail contenant la procédure vous a été envoyé.",
"autorenew_agora_terminate_service_success_VRACK_SERVICES_RESOURCE": "Votre demande de résiliation de vRAck Services a été prise en compte. Un e-mail contenant la procédure vous a été envoyé.",
+ "autorenew_agora_terminate_service_error_LICENSE_HYCU": "Une erreur est survenue lors de la demande de résiliation de votre licence HYCU. {{error}}",
"autorenew_agora_terminate_service_error_OKMS_RESOURCE": "Une erreur est survenue lors de la demande de résiliation de votre KMS. {{error}}",
"autorenew_agora_terminate_service_DBAAS_LOGS": "Résilier mon LDP",
"autorenew_agora_terminate_service_warning_DBAAS_LOGS": "Veuillez confirmer la résiliation de votre LDP",
diff --git a/packages/manager/modules/billing/src/autoRenew/actions/terminate-agora-service/translations/Messages_it_IT.json b/packages/manager/modules/billing/src/autoRenew/actions/terminate-agora-service/translations/Messages_it_IT.json
index 88a753e99eab..a81e2b690fb9 100644
--- a/packages/manager/modules/billing/src/autoRenew/actions/terminate-agora-service/translations/Messages_it_IT.json
+++ b/packages/manager/modules/billing/src/autoRenew/actions/terminate-agora-service/translations/Messages_it_IT.json
@@ -11,5 +11,9 @@
"autorenew_agora_terminate_service_VRACK_SERVICES_RESOURCE": "Disattivare vRack Services",
"autorenew_agora_terminate_service_warning_VRACK_SERVICES_RESOURCE": "Conferma la disattivazione di vRack Services",
"autorenew_agora_terminate_service_success_VRACK_SERVICES_RESOURCE": "La tua richiesta di disattivazione di vRack Services è stata presa in carico. Ti abbiamo inviato un’email con la procedura da seguire.",
- "autorenew_agora_terminate_service_error_VRACK_SERVICES_RESOURCE": "Si è verificato un errore durante la richiesta di disattivazione di vRack Services. {{error}}"
+ "autorenew_agora_terminate_service_error_VRACK_SERVICES_RESOURCE": "Si è verificato un errore durante la richiesta di disattivazione di vRack Services. {{error}}",
+ "autorenew_agora_terminate_service_LICENSE_HYCU": "Disattivare la tua licenza HYCU",
+ "autorenew_agora_terminate_service_warning_LICENSE_HYCU": "Conferma la disattivazione della tua licenza HYCU",
+ "autorenew_agora_terminate_service_success_LICENSE_HYCU": "La tua richiesta di disattivazione della licenza HYCU è stata presa in carico. Ti abbiamo inviato un’email con la procedura da seguire.",
+ "autorenew_agora_terminate_service_error_LICENSE_HYCU": "Si è verificato un errore durante la richiesta di disattivazione della tua licenza HYCU: {{error}}"
}
diff --git a/packages/manager/modules/billing/src/autoRenew/actions/terminate-agora-service/translations/Messages_pl_PL.json b/packages/manager/modules/billing/src/autoRenew/actions/terminate-agora-service/translations/Messages_pl_PL.json
index 45bc1da37ef3..4442eecb4ddf 100644
--- a/packages/manager/modules/billing/src/autoRenew/actions/terminate-agora-service/translations/Messages_pl_PL.json
+++ b/packages/manager/modules/billing/src/autoRenew/actions/terminate-agora-service/translations/Messages_pl_PL.json
@@ -11,5 +11,9 @@
"autorenew_agora_terminate_service_VRACK_SERVICES_RESOURCE": "Rezygnacja z vRack Services",
"autorenew_agora_terminate_service_warning_VRACK_SERVICES_RESOURCE": "Potwierdź rezygnację z vRAck Services",
"autorenew_agora_terminate_service_success_VRACK_SERVICES_RESOURCE": "Rezygnacja z vRAck Services została zarejestrowana. Otrzymasz e-mail z opisem dalszej procedury.",
- "autorenew_agora_terminate_service_error_VRACK_SERVICES_RESOURCE": "Wystąpił błąd podczas rezygnacji z vRack Services. {{error}}"
+ "autorenew_agora_terminate_service_error_VRACK_SERVICES_RESOURCE": "Wystąpił błąd podczas rezygnacji z vRack Services. {{error}}",
+ "autorenew_agora_terminate_service_LICENSE_HYCU": "Rezygnacja z licencji HYCU",
+ "autorenew_agora_terminate_service_warning_LICENSE_HYCU": "Potwierdź rezygnację z licencji HYCU",
+ "autorenew_agora_terminate_service_success_LICENSE_HYCU": "Rezygnacja z licencji HYCU została przyjęta. Otrzymasz e-mail z opisem dalszej procedury.",
+ "autorenew_agora_terminate_service_error_LICENSE_HYCU": "Wystąpił błąd podczas składania rezygnacji z licencji HYCU. {{error}}"
}
diff --git a/packages/manager/modules/billing/src/autoRenew/actions/terminate-agora-service/translations/Messages_pt_PT.json b/packages/manager/modules/billing/src/autoRenew/actions/terminate-agora-service/translations/Messages_pt_PT.json
index 59540bdf05c7..57900007b479 100644
--- a/packages/manager/modules/billing/src/autoRenew/actions/terminate-agora-service/translations/Messages_pt_PT.json
+++ b/packages/manager/modules/billing/src/autoRenew/actions/terminate-agora-service/translations/Messages_pt_PT.json
@@ -11,5 +11,9 @@
"autorenew_agora_terminate_service_VRACK_SERVICES_RESOURCE": "Rescindir vRack Services",
"autorenew_agora_terminate_service_warning_VRACK_SERVICES_RESOURCE": "Confirme a rescisão de vRack Services",
"autorenew_agora_terminate_service_success_VRACK_SERVICES_RESOURCE": "O seu pedido de rescisão de vRack Services foi registado com êxito. Um e-mail com o procedimento foi-lhe enviado.",
- "autorenew_agora_terminate_service_error_VRACK_SERVICES_RESOURCE": "Ocorreu um erro aquando do pedido de rescisão de vRack Services. {{error}}"
+ "autorenew_agora_terminate_service_error_VRACK_SERVICES_RESOURCE": "Ocorreu um erro aquando do pedido de rescisão de vRack Services. {{error}}",
+ "autorenew_agora_terminate_service_LICENSE_HYCU": "Cancelar a minha licença HYCU",
+ "autorenew_agora_terminate_service_warning_LICENSE_HYCU": "Confirme o cancelamento da sua licença HYCU",
+ "autorenew_agora_terminate_service_success_LICENSE_HYCU": "O seu pedido de cancelamento da sua licença HYCU foi registado com êxito. Um e-mail com o procedimento foi-lhe enviado.",
+ "autorenew_agora_terminate_service_error_LICENSE_HYCU": "Ocorreu um erro aquando do pedido de cancelamento da sua licença HYCU. {{error}}"
}
diff --git a/packages/manager/modules/billing/src/autoRenew/translations/Messages_de_DE.json b/packages/manager/modules/billing/src/autoRenew/translations/Messages_de_DE.json
index 159724837b4b..2a6386b3bc73 100644
--- a/packages/manager/modules/billing/src/autoRenew/translations/Messages_de_DE.json
+++ b/packages/manager/modules/billing/src/autoRenew/translations/Messages_de_DE.json
@@ -154,5 +154,6 @@
"billing_autorenew_service_type_DEDICATED_CLUSTER": "Region 3-AZ",
"billing_autorenew_service_type_OKMS_RESOURCE": "OVHcloud KMS",
"billing_autorenew_service_type_VRACK_SERVICES_RESOURCE": "vRack Services",
- "billing_autorenew_service_type_VMWARE_CLOUD_DIRECTOR_ORGANIZATION": "Managed VCD"
+ "billing_autorenew_service_type_VMWARE_CLOUD_DIRECTOR_ORGANIZATION": "Managed VCD",
+ "billing_autorenew_service_type_LICENSE_HYCU": "HYCU"
}
diff --git a/packages/manager/modules/billing/src/autoRenew/translations/Messages_en_GB.json b/packages/manager/modules/billing/src/autoRenew/translations/Messages_en_GB.json
index dec2e79237e0..cc7e8c3f2590 100644
--- a/packages/manager/modules/billing/src/autoRenew/translations/Messages_en_GB.json
+++ b/packages/manager/modules/billing/src/autoRenew/translations/Messages_en_GB.json
@@ -154,5 +154,6 @@
"billing_autorenew_service_type_DEDICATED_CLUSTER": " 3-AZ Region",
"billing_autorenew_service_type_OKMS_RESOURCE": "OVHcloud KMS",
"billing_autorenew_service_type_VRACK_SERVICES_RESOURCE": "vRack Services",
- "billing_autorenew_service_type_VMWARE_CLOUD_DIRECTOR_ORGANIZATION": "Managed VCD"
+ "billing_autorenew_service_type_VMWARE_CLOUD_DIRECTOR_ORGANIZATION": "Managed VCD",
+ "billing_autorenew_service_type_LICENSE_HYCU": "HYCU"
}
diff --git a/packages/manager/modules/billing/src/autoRenew/translations/Messages_es_ES.json b/packages/manager/modules/billing/src/autoRenew/translations/Messages_es_ES.json
index c35c53413f7b..b0a1f7b1cbe6 100644
--- a/packages/manager/modules/billing/src/autoRenew/translations/Messages_es_ES.json
+++ b/packages/manager/modules/billing/src/autoRenew/translations/Messages_es_ES.json
@@ -154,5 +154,6 @@
"billing_autorenew_service_type_DEDICATED_CLUSTER": "Región 3-AZ",
"billing_autorenew_service_type_OKMS_RESOURCE": "OVHcloud KMS",
"billing_autorenew_service_type_VRACK_SERVICES_RESOURCE": "vRack Services",
- "billing_autorenew_service_type_VMWARE_CLOUD_DIRECTOR_ORGANIZATION": "Managed VCD"
+ "billing_autorenew_service_type_VMWARE_CLOUD_DIRECTOR_ORGANIZATION": "Managed VCD",
+ "billing_autorenew_service_type_LICENSE_HYCU": "HYCU"
}
diff --git a/packages/manager/modules/billing/src/autoRenew/translations/Messages_fr_CA.json b/packages/manager/modules/billing/src/autoRenew/translations/Messages_fr_CA.json
index a2061afbd2e6..b905a258f263 100644
--- a/packages/manager/modules/billing/src/autoRenew/translations/Messages_fr_CA.json
+++ b/packages/manager/modules/billing/src/autoRenew/translations/Messages_fr_CA.json
@@ -149,6 +149,7 @@
"billing_autorenew_service_type_LICENSE_SQLSERVER": "Licences SQL Server",
"billing_autorenew_service_type_LICENCE_SQLSERVER": "Licences SQL Server",
"billing_autorenew_service_type_LICENSE_OFFICE_PREPAID": "Licences Office 365",
+ "billing_autorenew_service_type_LICENSE_HYCU": "HYCU",
"billing_autorenew_service_type_MS_SERVICES_SHAREPOINT": "Microsoft SharePoint",
"billing_autorenew_service_type_PACK_XDSL": "Packs xDSL",
"billing_autorenew_service_type_VRACK": "vRacks",
diff --git a/packages/manager/modules/billing/src/autoRenew/translations/Messages_fr_FR.json b/packages/manager/modules/billing/src/autoRenew/translations/Messages_fr_FR.json
index a2061afbd2e6..b905a258f263 100644
--- a/packages/manager/modules/billing/src/autoRenew/translations/Messages_fr_FR.json
+++ b/packages/manager/modules/billing/src/autoRenew/translations/Messages_fr_FR.json
@@ -149,6 +149,7 @@
"billing_autorenew_service_type_LICENSE_SQLSERVER": "Licences SQL Server",
"billing_autorenew_service_type_LICENCE_SQLSERVER": "Licences SQL Server",
"billing_autorenew_service_type_LICENSE_OFFICE_PREPAID": "Licences Office 365",
+ "billing_autorenew_service_type_LICENSE_HYCU": "HYCU",
"billing_autorenew_service_type_MS_SERVICES_SHAREPOINT": "Microsoft SharePoint",
"billing_autorenew_service_type_PACK_XDSL": "Packs xDSL",
"billing_autorenew_service_type_VRACK": "vRacks",
diff --git a/packages/manager/modules/billing/src/autoRenew/translations/Messages_it_IT.json b/packages/manager/modules/billing/src/autoRenew/translations/Messages_it_IT.json
index 21cbddd2200c..933306f6d7ae 100644
--- a/packages/manager/modules/billing/src/autoRenew/translations/Messages_it_IT.json
+++ b/packages/manager/modules/billing/src/autoRenew/translations/Messages_it_IT.json
@@ -154,5 +154,6 @@
"billing_autorenew_service_type_DEDICATED_CLUSTER": "Region 3-AZ",
"billing_autorenew_service_type_OKMS_RESOURCE": "OVHcloud KMS",
"billing_autorenew_service_type_VRACK_SERVICES_RESOURCE": "vRack Services",
- "billing_autorenew_service_type_VMWARE_CLOUD_DIRECTOR_ORGANIZATION": "Managed VCD"
+ "billing_autorenew_service_type_VMWARE_CLOUD_DIRECTOR_ORGANIZATION": "Managed VCD",
+ "billing_autorenew_service_type_LICENSE_HYCU": "HYCU"
}
diff --git a/packages/manager/modules/billing/src/autoRenew/translations/Messages_pl_PL.json b/packages/manager/modules/billing/src/autoRenew/translations/Messages_pl_PL.json
index e3a6fc88ece7..d7541329680a 100644
--- a/packages/manager/modules/billing/src/autoRenew/translations/Messages_pl_PL.json
+++ b/packages/manager/modules/billing/src/autoRenew/translations/Messages_pl_PL.json
@@ -154,5 +154,6 @@
"billing_autorenew_service_type_DEDICATED_CLUSTER": "Region 3-AZ",
"billing_autorenew_service_type_OKMS_RESOURCE": "OVHcloud KMS",
"billing_autorenew_service_type_VRACK_SERVICES_RESOURCE": "vRack Services",
- "billing_autorenew_service_type_VMWARE_CLOUD_DIRECTOR_ORGANIZATION": "Managed VCD"
+ "billing_autorenew_service_type_VMWARE_CLOUD_DIRECTOR_ORGANIZATION": "Managed VCD",
+ "billing_autorenew_service_type_LICENSE_HYCU": "HYCU"
}
diff --git a/packages/manager/modules/billing/src/autoRenew/translations/Messages_pt_PT.json b/packages/manager/modules/billing/src/autoRenew/translations/Messages_pt_PT.json
index f110014f341d..37a7c7fc9ad4 100644
--- a/packages/manager/modules/billing/src/autoRenew/translations/Messages_pt_PT.json
+++ b/packages/manager/modules/billing/src/autoRenew/translations/Messages_pt_PT.json
@@ -154,5 +154,6 @@
"billing_autorenew_service_type_DEDICATED_CLUSTER": "Região 3-AZ",
"billing_autorenew_service_type_OKMS_RESOURCE": "OVHcloud KMS",
"billing_autorenew_service_type_VRACK_SERVICES_RESOURCE": "vRack Services",
- "billing_autorenew_service_type_VMWARE_CLOUD_DIRECTOR_ORGANIZATION": "Managed VCD"
+ "billing_autorenew_service_type_VMWARE_CLOUD_DIRECTOR_ORGANIZATION": "Managed VCD",
+ "billing_autorenew_service_type_LICENSE_HYCU": "HYCU"
}
diff --git a/packages/manager/modules/billing/src/confirmTerminate/termination.routing.js b/packages/manager/modules/billing/src/confirmTerminate/termination.routing.js
index 8c63794a958c..0030531e19b4 100644
--- a/packages/manager/modules/billing/src/confirmTerminate/termination.routing.js
+++ b/packages/manager/modules/billing/src/confirmTerminate/termination.routing.js
@@ -1,4 +1,3 @@
-import { SERVICE_WITH_AGORA_TERMINATION } from '../../../billing-components/src/components/cancellation-form/confirm-terminate.constants';
import controller from './legacy/termination-legacy.controller';
import template from './legacy/termination-legacy.html';
@@ -12,17 +11,21 @@ export default /* @ngInject */ ($stateProvider, coreConfigProvider) => {
translations: { value: ['./legacy', '../autoRenew'], format: 'json' },
redirectTo: (transition) => {
const injector = transition.injector();
- return injector.getAsync('planCode').then((planCode) => {
- return SERVICE_WITH_AGORA_TERMINATION.includes(planCode)
- ? 'app.account.billing.confirmTerminateAgora'
- : false;
- });
+ return injector
+ .getAsync('hasAgoraTermination')
+ .then((hasAgoraTermination) => {
+ return hasAgoraTermination
+ ? 'app.account.billing.confirmTerminateAgora'
+ : false;
+ });
},
resolve: {
planCode: /* @ngInject */ (BillingTerminate, $transition$) =>
BillingTerminate.getServiceApi($transition$.params().id).then(
(service) => service.billing.plan.code,
),
+ hasAgoraTermination: /* @ngInject */ (BillingTerminate, planCode) =>
+ BillingTerminate.constructor.hasAgoraTermination(planCode),
hideBreadcrumb: () => true,
},
});
@@ -33,11 +36,13 @@ export default /* @ngInject */ ($stateProvider, coreConfigProvider) => {
component: 'billingConfirmTermination',
redirectTo: (transition) => {
const injector = transition.injector();
- return injector.getAsync('planCode').then((planCode) => {
- return !SERVICE_WITH_AGORA_TERMINATION.includes(planCode)
- ? 'app.account.billing.confirmTerminate'
- : false;
- });
+ return injector
+ .getAsync('hasAgoraTermination')
+ .then((hasAgoraTermination) => {
+ return !hasAgoraTermination
+ ? 'app.account.billing.confirmTerminate'
+ : false;
+ });
},
resolve: {
confirmTermination: /* @ngInject */ (
@@ -55,6 +60,8 @@ export default /* @ngInject */ ($stateProvider, coreConfigProvider) => {
serviceId: /* @ngInject */ ($transition$) => $transition$.params().id,
token: /* @ngInject */ ($transition$) => $transition$.params().token,
user: /* @ngInject */ (currentUser) => currentUser,
+ hasAgoraTermination: /* @ngInject */ (BillingTerminate, planCode) =>
+ BillingTerminate.constructor.hasAgoraTermination(planCode),
hideBreadcrumb: () => true,
},
});
diff --git a/packages/manager/modules/hub/CHANGELOG.md b/packages/manager/modules/hub/CHANGELOG.md
index 84235de05da5..8f1c09ba8c9a 100644
--- a/packages/manager/modules/hub/CHANGELOG.md
+++ b/packages/manager/modules/hub/CHANGELOG.md
@@ -3,6 +3,22 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+# [4.1.0](https://github.com/ovh/manager/compare/@ovh-ux/manager-hub@4.0.1...@ovh-ux/manager-hub@4.1.0) (2024-11-20)
+
+
+### Bug Fixes
+
+* **i18n:** add missing translations [CDS 3494] ([cafbeb3](https://github.com/ovh/manager/commit/cafbeb3760646da4ea18528ad3f94f0fd490d0d3))
+
+
+### Features
+
+* **hycu:** add hycu service on hub and my services ([9f10592](https://github.com/ovh/manager/commit/9f1059281f2b8fa3883b04fc41358749d376bb69))
+
+
+
+
+
## [4.0.1](https://github.com/ovh/manager/compare/@ovh-ux/manager-hub@4.0.0...@ovh-ux/manager-hub@4.0.1) (2024-11-19)
**Note:** Version bump only for package @ovh-ux/manager-hub
diff --git a/packages/manager/modules/hub/package.json b/packages/manager/modules/hub/package.json
index 124031a34024..541c38a0c855 100644
--- a/packages/manager/modules/hub/package.json
+++ b/packages/manager/modules/hub/package.json
@@ -1,6 +1,6 @@
{
"name": "@ovh-ux/manager-hub",
- "version": "4.0.1",
+ "version": "4.1.0",
"private": true,
"description": "Set of components for Manager Hub",
"repository": {
diff --git a/packages/manager/modules/hub/src/components/products/listing-pages.constants.js b/packages/manager/modules/hub/src/components/products/listing-pages.constants.js
index 5336ca6e6a29..60bc5c2bf96d 100644
--- a/packages/manager/modules/hub/src/components/products/listing-pages.constants.js
+++ b/packages/manager/modules/hub/src/components/products/listing-pages.constants.js
@@ -99,6 +99,10 @@ const productListingPages = {
application: 'dedicated',
hash: '#/license',
},
+ LICENSE_HYCU: {
+ application: 'hycu',
+ hash: '#',
+ },
LICENSE_OFFICE: {
application: 'web',
hash: '#/office/license',
diff --git a/packages/manager/modules/hub/src/components/products/translations/Messages_de_DE.json b/packages/manager/modules/hub/src/components/products/translations/Messages_de_DE.json
index 4efff679df00..a8c25f754fae 100644
--- a/packages/manager/modules/hub/src/components/products/translations/Messages_de_DE.json
+++ b/packages/manager/modules/hub/src/components/products/translations/Messages_de_DE.json
@@ -68,5 +68,6 @@
"manager_hub_products_VEEAM_ENTERPRISE": "Veeam Enterprise",
"manager_hub_products_VRACK_SERVICES": "vRack Services",
"manager_hub_products_KEY_MANAGEMENT_SERVICE": "Key Management Service",
- "manager_hub_products_VMWARE_CLOUD_DIRECTOR": "Managed VCD"
+ "manager_hub_products_VMWARE_CLOUD_DIRECTOR": "Managed VCD",
+ "manager_hub_products_LICENSE_HYCU": "HYCU"
}
diff --git a/packages/manager/modules/hub/src/components/products/translations/Messages_en_GB.json b/packages/manager/modules/hub/src/components/products/translations/Messages_en_GB.json
index 22735935f71e..af2c44e74cf8 100644
--- a/packages/manager/modules/hub/src/components/products/translations/Messages_en_GB.json
+++ b/packages/manager/modules/hub/src/components/products/translations/Messages_en_GB.json
@@ -68,5 +68,6 @@
"manager_hub_products_see_all": "See all",
"manager_hub_products_VRACK_SERVICES": "vRack Services",
"manager_hub_products_KEY_MANAGEMENT_SERVICE": "Key Management Service",
- "manager_hub_products_VMWARE_CLOUD_DIRECTOR": "Managed VCD"
+ "manager_hub_products_VMWARE_CLOUD_DIRECTOR": "Managed VCD",
+ "manager_hub_products_LICENSE_HYCU": "HYCU"
}
diff --git a/packages/manager/modules/hub/src/components/products/translations/Messages_es_ES.json b/packages/manager/modules/hub/src/components/products/translations/Messages_es_ES.json
index 47aedb138b8d..981f10ba9f37 100644
--- a/packages/manager/modules/hub/src/components/products/translations/Messages_es_ES.json
+++ b/packages/manager/modules/hub/src/components/products/translations/Messages_es_ES.json
@@ -68,5 +68,6 @@
"manager_hub_products_VEEAM_ENTERPRISE": "Veeam Enterprise",
"manager_hub_products_VRACK_SERVICES": "vRack Services",
"manager_hub_products_KEY_MANAGEMENT_SERVICE": "Key Management Service",
- "manager_hub_products_VMWARE_CLOUD_DIRECTOR": "Managed VCD"
+ "manager_hub_products_VMWARE_CLOUD_DIRECTOR": "Managed VCD",
+ "manager_hub_products_LICENSE_HYCU": "HYCU"
}
diff --git a/packages/manager/modules/hub/src/components/products/translations/Messages_fr_CA.json b/packages/manager/modules/hub/src/components/products/translations/Messages_fr_CA.json
index 194be480d691..a1a408d8a402 100644
--- a/packages/manager/modules/hub/src/components/products/translations/Messages_fr_CA.json
+++ b/packages/manager/modules/hub/src/components/products/translations/Messages_fr_CA.json
@@ -36,6 +36,7 @@
"manager_hub_products_LICENSE_VIRTUOZZO": "Licences Virtuozzo",
"manager_hub_products_LICENSE_WORKLIGHT": "Licences Worklight",
"manager_hub_products_LICENSE_SQLSERVER": "Licences SQL Server",
+ "manager_hub_products_LICENSE_HYCU": "HYCU",
"manager_hub_products_LICENCE_WINDOWS": "Licences Windows",
"manager_hub_products_LICENCE_OFFICE": "Licences Office 365",
"manager_hub_products_LICENCE_CLOUD_LINUX": "Licences CloudLinux",
diff --git a/packages/manager/modules/hub/src/components/products/translations/Messages_fr_FR.json b/packages/manager/modules/hub/src/components/products/translations/Messages_fr_FR.json
index 194be480d691..a1a408d8a402 100644
--- a/packages/manager/modules/hub/src/components/products/translations/Messages_fr_FR.json
+++ b/packages/manager/modules/hub/src/components/products/translations/Messages_fr_FR.json
@@ -36,6 +36,7 @@
"manager_hub_products_LICENSE_VIRTUOZZO": "Licences Virtuozzo",
"manager_hub_products_LICENSE_WORKLIGHT": "Licences Worklight",
"manager_hub_products_LICENSE_SQLSERVER": "Licences SQL Server",
+ "manager_hub_products_LICENSE_HYCU": "HYCU",
"manager_hub_products_LICENCE_WINDOWS": "Licences Windows",
"manager_hub_products_LICENCE_OFFICE": "Licences Office 365",
"manager_hub_products_LICENCE_CLOUD_LINUX": "Licences CloudLinux",
diff --git a/packages/manager/modules/hub/src/components/products/translations/Messages_it_IT.json b/packages/manager/modules/hub/src/components/products/translations/Messages_it_IT.json
index 269b49e808ed..8d3985e6d3b0 100644
--- a/packages/manager/modules/hub/src/components/products/translations/Messages_it_IT.json
+++ b/packages/manager/modules/hub/src/components/products/translations/Messages_it_IT.json
@@ -68,5 +68,6 @@
"manager_hub_products_VEEAM_ENTERPRISE": "Veeam Enterprise",
"manager_hub_products_VRACK_SERVICES": "vRack Services",
"manager_hub_products_KEY_MANAGEMENT_SERVICE": "Key Management Service",
- "manager_hub_products_VMWARE_CLOUD_DIRECTOR": "Managed VCD"
+ "manager_hub_products_VMWARE_CLOUD_DIRECTOR": "Managed VCD",
+ "manager_hub_products_LICENSE_HYCU": "HYCU"
}
diff --git a/packages/manager/modules/hub/src/components/products/translations/Messages_pl_PL.json b/packages/manager/modules/hub/src/components/products/translations/Messages_pl_PL.json
index 49e4cf103b9b..d190473d323a 100644
--- a/packages/manager/modules/hub/src/components/products/translations/Messages_pl_PL.json
+++ b/packages/manager/modules/hub/src/components/products/translations/Messages_pl_PL.json
@@ -68,5 +68,6 @@
"manager_hub_products_VEEAM_ENTERPRISE": "Veeam Enterprise",
"manager_hub_products_VRACK_SERVICES": "vRack Services",
"manager_hub_products_KEY_MANAGEMENT_SERVICE": "Key Management Service",
- "manager_hub_products_VMWARE_CLOUD_DIRECTOR": "Managed VCD"
+ "manager_hub_products_VMWARE_CLOUD_DIRECTOR": "Managed VCD",
+ "manager_hub_products_LICENSE_HYCU": "HYCU"
}
diff --git a/packages/manager/modules/hub/src/components/products/translations/Messages_pt_PT.json b/packages/manager/modules/hub/src/components/products/translations/Messages_pt_PT.json
index 6be161c7a751..a006d84a8624 100644
--- a/packages/manager/modules/hub/src/components/products/translations/Messages_pt_PT.json
+++ b/packages/manager/modules/hub/src/components/products/translations/Messages_pt_PT.json
@@ -68,5 +68,6 @@
"manager_hub_products_VEEAM_ENTERPRISE": "Veeam Enterprise",
"manager_hub_products_VRACK_SERVICES": "vRack Services",
"manager_hub_products_KEY_MANAGEMENT_SERVICE": "Key Management Service",
- "manager_hub_products_VMWARE_CLOUD_DIRECTOR": "Managed VCD"
+ "manager_hub_products_VMWARE_CLOUD_DIRECTOR": "Managed VCD",
+ "manager_hub_products_LICENSE_HYCU": "HYCU"
}
diff --git a/packages/manager/modules/order/CHANGELOG.md b/packages/manager/modules/order/CHANGELOG.md
index 86cbe2e71b28..5cc8fe161c69 100644
--- a/packages/manager/modules/order/CHANGELOG.md
+++ b/packages/manager/modules/order/CHANGELOG.md
@@ -3,6 +3,22 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+# [0.8.0](https://github.com/ovh/manager/compare/@ovh-ux/manager-module-order@0.7.1...@ovh-ux/manager-module-order@0.8.0) (2024-11-20)
+
+
+### Bug Fixes
+
+* **hycu:** express order URLs and edit pack parameters ([334b709](https://github.com/ovh/manager/commit/334b709426ef463e36fdcc27fbbdb6ec91f3412b))
+
+
+### Features
+
+* **hycu:** create order page ([da78d05](https://github.com/ovh/manager/commit/da78d05e2d4d254fb185995df3acf508c61a5176))
+
+
+
+
+
## [0.7.1](https://github.com/ovh/manager/compare/@ovh-ux/manager-module-order@0.7.0...@ovh-ux/manager-module-order@0.7.1) (2024-11-13)
**Note:** Version bump only for package @ovh-ux/manager-module-order
diff --git a/packages/manager/modules/order/package.json b/packages/manager/modules/order/package.json
index d0d434cd2030..a5fb2b520fe3 100644
--- a/packages/manager/modules/order/package.json
+++ b/packages/manager/modules/order/package.json
@@ -1,6 +1,6 @@
{
"name": "@ovh-ux/manager-module-order",
- "version": "0.7.1",
+ "version": "0.8.0",
"private": true,
"description": "OVHcloud manager module order.",
"repository": {
diff --git a/packages/manager/modules/order/src/order.constant.ts b/packages/manager/modules/order/src/order.constant.ts
index e70c8a5f7d9a..c93cd220c4cb 100644
--- a/packages/manager/modules/order/src/order.constant.ts
+++ b/packages/manager/modules/order/src/order.constant.ts
@@ -56,6 +56,24 @@ export const getVcdProductSettings = ({
: undefined,
});
+export const getHYCUProductSettings = ({
+ planCode,
+ region,
+ serviceName = '',
+}: {
+ planCode: string;
+ region: string;
+ serviceName?: string;
+}) =>
+ JSURL.stringify({
+ productId: 'licenseHycu',
+ serviceName,
+ planCode,
+ duration: 'P1M',
+ pricingMode: 'default',
+ configuration: [{ label: 'region', value: region }],
+ });
+
export const ORDER_URLS = {
EU: {
DEDICATED: {
@@ -188,19 +206,19 @@ export const ORDER_URLS = {
TN: 'https://eco.ovhcloud.com/fr-tn/',
},
express_review_base: {
- CZ: 'https://www.ovh.cz/order/express/#/express/review',
+ CZ: 'https://www.ovh.ie/order/express/#/express/review',
DE: 'https://www.ovh.de/order/express/#/express/review',
ES: 'https://www.ovh.es/order/express/#/express/review',
- FI: 'https://www.ovh-hosting.fi/order/express/#/express/review',
+ FI: 'https://www.ovh.ie/order/express/#/express/review',
FR: 'https://www.ovh.com/fr/order/express/#/express/review',
GB: 'https://www.ovh.co.uk/order/express/#/express/review',
IE: 'https://www.ovh.ie/order/express/#/express/review',
IT: 'https://www.ovh.it/order/express/#/express/review',
- LT: 'https://www.ovh.lt/order/express/#/express/review',
+ LT: 'https://www.ovh.ie/order/express/#/express/review',
NL: 'https://www.ovh.nl/order/express/#/express/review',
PL: 'https://www.ovh.pl/order/express/#/express/review',
PT: 'https://www.ovh.pt/order/express/#/express/review',
- MA: 'https://www.ovh.ma/order/express/#/express/review',
+ MA: 'https://www.ovh.com/ma/order/express/#/express/review',
SN: 'https://www.ovh.sn/order/express/#/express/review',
TN: 'https://www.ovh.com/tn/order/express/#/express/review',
},
diff --git a/yarn.lock b/yarn.lock
index 98800e0a3df0..e490461f7ce6 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3198,7 +3198,22 @@
dependencies:
"@floating-ui/utils" "^0.2.5"
-"@floating-ui/dom@1.6.3", "@floating-ui/dom@^1.0.1", "@floating-ui/dom@^1.6.1":
+"@floating-ui/core@^1.6.0":
+ version "1.6.8"
+ resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.6.8.tgz#aa43561be075815879305965020f492cdb43da12"
+ integrity sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==
+ dependencies:
+ "@floating-ui/utils" "^0.2.8"
+
+"@floating-ui/dom@1.6.11":
+ version "1.6.11"
+ resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.6.11.tgz#8631857838d34ee5712339eb7cbdfb8ad34da723"
+ integrity sha512-qkMCxSR24v2vGkhYDo/UzxfJN3D4syqSjyuTFz6C7XcpU1pASPRieNI0Kj5VP3/503mOfYiGY891ugBX1GlABQ==
+ dependencies:
+ "@floating-ui/core" "^1.6.0"
+ "@floating-ui/utils" "^0.2.8"
+
+"@floating-ui/dom@^1.0.1", "@floating-ui/dom@^1.6.1":
version "1.6.3"
resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.6.3.tgz#954e46c1dd3ad48e49db9ada7218b0985cee75ef"
integrity sha512-RnDthu3mzPlQ31Ss/BTwQ1zjzIhr3lk1gZB1OC56h/1vEtaXkESrOqL5fQVMfXpwGtRwX+YsZBdyHtJMQnkArw==
@@ -3223,6 +3238,11 @@
resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.5.tgz#105c37d9d9620ce69b7f692a20c821bf1ad2cbf9"
integrity sha512-sTcG+QZ6fdEUObICavU+aB3Mp8HY4n14wYHdxK4fXjPmv3PXZZeY5RaguJmGyeH/CJQhX3fqKUtS4qc1LoHwhQ==
+"@floating-ui/utils@^0.2.8":
+ version "0.2.8"
+ resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.8.tgz#21a907684723bbbaa5f0974cf7730bd797eb8e62"
+ integrity sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==
+
"@fortawesome/fontawesome-free@^5.11.2":
version "5.15.4"
resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.15.4.tgz#ecda5712b61ac852c760d8b3c79c96adca5554e5"
@@ -5307,6 +5327,11 @@
resolved "https://registry.yarnpkg.com/@ovh-ux/ui-kit/-/ui-kit-6.10.5.tgz#cdde47452edb326aa1224eb447ed40ae2b169b81"
integrity sha512-0PrFAOM0/ylPlVeC6hsJMHGe+pWB/ooMrjQySH5ytqsPYZrvzuiLoecEZHmX8VbnAJ6nF63sFLGp/DuicaSiCQ==
+"@ovh-ux/url-builder@^1.3.0-alpha.0":
+ version "1.3.0-alpha.0"
+ resolved "https://registry.yarnpkg.com/@ovh-ux/url-builder/-/url-builder-1.3.0-alpha.0.tgz#4627fd845c97cdabc7e78e78bbf00e45d094555a"
+ integrity sha512-2454x+qlS+vnpc+c/L829RG/BlNmjBAymcciNx5ZEW4ivYhY1gZ9m2QxGO6tO1AH2FD5fzlskIVTOM7iaAlm7Q==
+
"@ovhcloud/ods-common-core@17.2.1":
version "17.2.1"
resolved "https://registry.yarnpkg.com/@ovhcloud/ods-common-core/-/ods-common-core-17.2.1.tgz#c5cc5ec6dede4ddf7b8e45a52bbc3eeab5bd6812"
@@ -5363,12 +5388,12 @@
"@ovhcloud/ods-common-stencil" "17.2.2"
"@ovhcloud/ods-common-theming" "17.2.2"
-"@ovhcloud/ods-components@18.0.0":
- version "18.0.0"
- resolved "https://registry.npmjs.org/@ovhcloud/ods-components/-/ods-components-18.0.0.tgz#b0e4da6c35c19004f35bac6b34abb1f78c6d1af0"
- integrity sha512-Nhgi8iMX/+tWJb6D8WSN8qNqC32XEwdDL0rc7o9V0OwcXPwSqu7QtTYKB+1s1kGTDxfyl7HGrSDYbqgUI0niMw==
+"@ovhcloud/ods-components@^18.3.0":
+ version "18.3.0"
+ resolved "https://registry.yarnpkg.com/@ovhcloud/ods-components/-/ods-components-18.3.0.tgz#f5fa856bb45ad7df3ebe421d64ab334f41c7206c"
+ integrity sha512-E2bDV7RDnNty8fR7Fbvkxug2pySmsy4BQIt9rY0VTZWtcbaUlazmKbr+l+TjeL7vRxiPR4+9xLidI1kwt26O9A==
dependencies:
- "@floating-ui/dom" "1.6.3"
+ "@floating-ui/dom" "1.6.11"
"@stencil/core" "4.16.0"
google-libphonenumber "3.2.35"
tom-select "2.3.1"
@@ -5389,10 +5414,10 @@
dependencies:
"@ovhcloud/ods-common-theming" "17.2.2"
-"@ovhcloud/ods-themes@18.0.0":
- version "18.0.0"
- resolved "https://registry.npmjs.org/@ovhcloud/ods-themes/-/ods-themes-18.0.0.tgz#0a7c658e0e9d572262ed41896fee4819c2764167"
- integrity sha512-0PfXUyF6bX9emb/a6S16QThKsSXyvrNYT3n1zQF/le8tMXP7292TGKIgqXhsZmkcD9tCdD6VLXuJTS8Zv3a5Yg==
+"@ovhcloud/ods-themes@^18.3.0":
+ version "18.3.0"
+ resolved "https://registry.yarnpkg.com/@ovhcloud/ods-themes/-/ods-themes-18.3.0.tgz#804e3502e6791f7ec2efc24abb107d27cd4e02e0"
+ integrity sha512-mTxtcM4tCUPk98x65PeslXqGONJraTryXgkbgbZuvtOYf9SgVl+zFJfyisD2sYGuJvVf6hJP1NvJkyrxOUqtSw==
"@ovhcloud/reket-axios-client@^0.2.1":
version "0.2.1"
@@ -6827,14 +6852,6 @@
resolved "https://registry.npmjs.org/@stencil/core/-/core-4.16.0.tgz#79c430d5875e0ce3a7666607b6fb53512890577b"
integrity sha512-gXaC5IrquV/Hw5JIZTCWkM5lJEbBQtnvHLhDebjar6A6+YBqxah04dardS+YUNVuRbnE6Hcja7KKiAXT3oVsvw==
-"@storybook/addon-a11y@8.0.4":
- version "8.0.4"
- resolved "https://registry.npmjs.org/@storybook/addon-a11y/-/addon-a11y-8.0.4.tgz#2e62ab86a016a9ed6e4b52d61e0549c2568b0923"
- integrity sha512-5OyZNzjNXjNUD9vBfjxFnJjMMcBFYWyI4zy5qmJcbAvBv/COiXNfNg2cr2YPNtU5WfA6nsaIESfHFGBHI3GDAg==
- dependencies:
- "@storybook/addon-highlight" "8.0.4"
- axe-core "^4.2.0"
-
"@storybook/addon-actions@7.5.3":
version "7.5.3"
resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-7.5.3.tgz#e0d0d819488d1d19918b23469b3ea6610fee5f07"
@@ -6970,13 +6987,6 @@
"@storybook/global" "^5.0.0"
"@storybook/preview-api" "7.5.3"
-"@storybook/addon-highlight@8.0.4":
- version "8.0.4"
- resolved "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-8.0.4.tgz#32f21a1f850394e83277a1cd553a33c86cb603f4"
- integrity sha512-tnEiVaJlXL07v8JBox+QtRPVruoy0YovOTAOWY7fKDiKzF1I9wLaJjQF3wOsvwspHTHu00OZw2gsazgXiH4wLQ==
- dependencies:
- "@storybook/global" "^5.0.0"
-
"@storybook/addon-interactions@7.5.3":
version "7.5.3"
resolved "https://registry.yarnpkg.com/@storybook/addon-interactions/-/addon-interactions-7.5.3.tgz#5aef96b3fa24aaafb88c0fc501f6a7e8cfa2a342"
@@ -8620,6 +8630,14 @@
lodash "^4.17.21"
redent "^3.0.0"
+"@testing-library/react-hooks@^8.0.1":
+ version "8.0.1"
+ resolved "https://registry.yarnpkg.com/@testing-library/react-hooks/-/react-hooks-8.0.1.tgz#0924bbd5b55e0c0c0502d1754657ada66947ca12"
+ integrity sha512-Aqhl2IVmLt8IovEVarNDFuJDVWVvhnr9/GCU6UUnrYXwgDFF9h2L2o2P9KBni1AST5sT6riAyoukFLyjQUgD/g==
+ dependencies:
+ "@babel/runtime" "^7.12.5"
+ react-error-boundary "^3.1.0"
+
"@testing-library/react@14.0.0":
version "14.0.0"
resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-14.0.0.tgz#59030392a6792450b9ab8e67aea5f3cc18d6347c"
@@ -9780,6 +9798,24 @@
test-exclude "^7.0.1"
tinyrainbow "^1.2.0"
+"@vitest/coverage-v8@^2.1.3":
+ version "2.1.4"
+ resolved "https://registry.yarnpkg.com/@vitest/coverage-v8/-/coverage-v8-2.1.4.tgz#c0df11cda12b3a04570e8065754917d35baa0c55"
+ integrity sha512-FPKQuJfR6VTfcNMcGpqInmtJuVXFSCd9HQltYncfR01AzXhLucMEtQ5SinPdZxsT5x/5BK7I5qFJ5/ApGCmyTQ==
+ dependencies:
+ "@ampproject/remapping" "^2.3.0"
+ "@bcoe/v8-coverage" "^0.2.3"
+ debug "^4.3.7"
+ istanbul-lib-coverage "^3.2.2"
+ istanbul-lib-report "^3.0.1"
+ istanbul-lib-source-maps "^5.0.6"
+ istanbul-reports "^3.1.7"
+ magic-string "^0.30.12"
+ magicast "^0.3.5"
+ std-env "^3.7.0"
+ test-exclude "^7.0.1"
+ tinyrainbow "^1.2.0"
+
"@vitest/expect@1.3.1":
version "1.3.1"
resolved "https://registry.npmjs.org/@vitest/expect/-/expect-1.3.1.tgz#d4c14b89c43a25fd400a6b941f51ba27fe0cb918"
@@ -9827,6 +9863,16 @@
chai "^5.1.1"
tinyrainbow "^1.2.0"
+"@vitest/expect@2.1.4":
+ version "2.1.4"
+ resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-2.1.4.tgz#48f4f53a01092a3bdc118cff245f79ef388bdd8e"
+ integrity sha512-DOETT0Oh1avie/D/o2sgMHGrzYUFFo3zqESB2Hn70z6QB1HrS2IQ9z5DfyTqU8sg4Bpu13zZe9V4+UTNQlUeQA==
+ dependencies:
+ "@vitest/spy" "2.1.4"
+ "@vitest/utils" "2.1.4"
+ chai "^5.1.2"
+ tinyrainbow "^1.2.0"
+
"@vitest/mocker@2.1.3":
version "2.1.3"
resolved "https://registry.yarnpkg.com/@vitest/mocker/-/mocker-2.1.3.tgz#a3593b426551be5715fa108faf04f8a9ddb0a9cc"
@@ -9836,6 +9882,15 @@
estree-walker "^3.0.3"
magic-string "^0.30.11"
+"@vitest/mocker@2.1.4":
+ version "2.1.4"
+ resolved "https://registry.yarnpkg.com/@vitest/mocker/-/mocker-2.1.4.tgz#0dc07edb9114f7f080a0181fbcdb16cd4a2d855d"
+ integrity sha512-Ky/O1Lc0QBbutJdW0rqLeFNbuLEyS+mIPiNdlVlp2/yhJ0SbyYqObS5IHdhferJud8MbbwMnexg4jordE5cCoQ==
+ dependencies:
+ "@vitest/spy" "2.1.4"
+ estree-walker "^3.0.3"
+ magic-string "^0.30.12"
+
"@vitest/pretty-format@2.0.5", "@vitest/pretty-format@^2.0.5":
version "2.0.5"
resolved "https://registry.yarnpkg.com/@vitest/pretty-format/-/pretty-format-2.0.5.tgz#91d2e6d3a7235c742e1a6cc50e7786e2f2979b1e"
@@ -9850,6 +9905,13 @@
dependencies:
tinyrainbow "^1.2.0"
+"@vitest/pretty-format@2.1.4", "@vitest/pretty-format@^2.1.4":
+ version "2.1.4"
+ resolved "https://registry.yarnpkg.com/@vitest/pretty-format/-/pretty-format-2.1.4.tgz#fc31993bdc1ef5a6c1a4aa6844e7ba55658a4f9f"
+ integrity sha512-L95zIAkEuTDbUX1IsjRl+vyBSLh3PwLLgKpghl37aCK9Jvw0iP+wKwIFhfjdUtA2myLgjrG6VU6JCFLv8q/3Ww==
+ dependencies:
+ tinyrainbow "^1.2.0"
+
"@vitest/runner@1.4.0":
version "1.4.0"
resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-1.4.0.tgz#907c2d17ad5975b70882c25ab7a13b73e5a28da9"
@@ -9884,6 +9946,14 @@
"@vitest/utils" "2.1.3"
pathe "^1.1.2"
+"@vitest/runner@2.1.4":
+ version "2.1.4"
+ resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-2.1.4.tgz#f9346500bdd0be1c926daaac5d683bae87ceda2c"
+ integrity sha512-sKRautINI9XICAMl2bjxQM8VfCMTB0EbsBc/EDFA57V6UQevEKY/TOPOF5nzcvCALltiLfXWbq4MaAwWx/YxIA==
+ dependencies:
+ "@vitest/utils" "2.1.4"
+ pathe "^1.1.2"
+
"@vitest/snapshot@1.4.0":
version "1.4.0"
resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-1.4.0.tgz#2945b3fb53767a3f4f421919e93edfef2935b8bd"
@@ -9920,6 +9990,15 @@
magic-string "^0.30.11"
pathe "^1.1.2"
+"@vitest/snapshot@2.1.4":
+ version "2.1.4"
+ resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-2.1.4.tgz#ef8c3f605fbc23a32773256d37d3fdfd9b23d353"
+ integrity sha512-3Kab14fn/5QZRog5BPj6Rs8dc4B+mim27XaKWFWHWA87R56AKjHTGcBFKpvZKDzC4u5Wd0w/qKsUIio3KzWW4Q==
+ dependencies:
+ "@vitest/pretty-format" "2.1.4"
+ magic-string "^0.30.12"
+ pathe "^1.1.2"
+
"@vitest/spy@1.3.1":
version "1.3.1"
resolved "https://registry.npmjs.org/@vitest/spy/-/spy-1.3.1.tgz#814245d46d011b99edd1c7528f5725c64e85a88b"
@@ -9955,6 +10034,13 @@
dependencies:
tinyspy "^3.0.0"
+"@vitest/spy@2.1.4":
+ version "2.1.4"
+ resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-2.1.4.tgz#4e90f9783437c5841a27c80f8fd84d7289a6100a"
+ integrity sha512-4JOxa+UAizJgpZfaCPKK2smq9d8mmjZVPMt2kOsg/R8QkoRzydHH1qHxIYNvr1zlEaFj4SXiaaJWxq/LPLKaLg==
+ dependencies:
+ tinyspy "^3.0.2"
+
"@vitest/ui@^1.4.0":
version "1.6.0"
resolved "https://registry.yarnpkg.com/@vitest/ui/-/ui-1.6.0.tgz#ffcc97ebcceca7fec840c29ab68632d0cd01db93"
@@ -10017,6 +10103,15 @@
loupe "^3.1.1"
tinyrainbow "^1.2.0"
+"@vitest/utils@2.1.4":
+ version "2.1.4"
+ resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-2.1.4.tgz#6d67ac966647a21ce8bc497472ce230de3b64537"
+ integrity sha512-MXDnZn0Awl2S86PSNIim5PWXgIAx8CIkzu35mBdSApUip6RFOGXBCf3YFyeEu8n1IHk4bWD46DeYFu9mQlFIRg==
+ dependencies:
+ "@vitest/pretty-format" "2.1.4"
+ loupe "^3.1.2"
+ tinyrainbow "^1.2.0"
+
"@volar/language-core@1.11.1", "@volar/language-core@~1.11.1":
version "1.11.1"
resolved "https://registry.yarnpkg.com/@volar/language-core/-/language-core-1.11.1.tgz#ecdf12ea8dc35fb8549e517991abcbf449a5ad4f"
@@ -11352,11 +11447,6 @@ aws4@^1.8.0:
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.12.0.tgz#ce1c9d143389679e253b314241ea9aa5cec980d3"
integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==
-axe-core@^4.2.0:
- version "4.10.0"
- resolved "https://registry.npmjs.org/axe-core/-/axe-core-4.10.0.tgz#d9e56ab0147278272739a000880196cdfe113b59"
- integrity sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g==
-
axios@^0.21.1:
version "0.21.4"
resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575"
@@ -12268,6 +12358,17 @@ chai@^5.1.1:
loupe "^3.1.0"
pathval "^2.0.0"
+chai@^5.1.2:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/chai/-/chai-5.1.2.tgz#3afbc340b994ae3610ca519a6c70ace77ad4378d"
+ integrity sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==
+ dependencies:
+ assertion-error "^2.0.1"
+ check-error "^2.1.1"
+ deep-eql "^5.0.1"
+ loupe "^3.1.0"
+ pathval "^2.0.0"
+
chalk@4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a"
@@ -13928,7 +14029,7 @@ debug@^3.1.0, debug@^3.2.7:
dependencies:
ms "^2.1.1"
-debug@^4.3.5, debug@^4.3.6:
+debug@^4.3.5, debug@^4.3.6, debug@^4.3.7:
version "4.3.7"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52"
integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==
@@ -15787,6 +15888,11 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2:
dependencies:
homedir-polyfill "^1.0.1"
+expect-type@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/expect-type/-/expect-type-1.1.0.tgz#a146e414250d13dfc49eafcfd1344a4060fa4c75"
+ integrity sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==
+
expect@^26.6.2:
version "26.6.2"
resolved "https://registry.yarnpkg.com/expect/-/expect-26.6.2.tgz#c6b996bf26bf3fe18b67b2d0f51fc981ba934417"
@@ -21041,6 +21147,11 @@ loupe@^3.1.0, loupe@^3.1.1:
dependencies:
get-func-name "^2.0.1"
+loupe@^3.1.2:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/loupe/-/loupe-3.1.2.tgz#c86e0696804a02218f2206124c45d8b15291a240"
+ integrity sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==
+
lower-case@^1.1.1:
version "1.1.4"
resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac"
@@ -21140,7 +21251,7 @@ magic-string@^0.30.10:
dependencies:
"@jridgewell/sourcemap-codec" "^1.5.0"
-magic-string@^0.30.11:
+magic-string@^0.30.11, magic-string@^0.30.12:
version "0.30.12"
resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.12.tgz#9eb11c9d072b9bcb4940a5b2c2e1a217e4ee1a60"
integrity sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==
@@ -21156,7 +21267,7 @@ magicast@^0.3.3:
"@babel/types" "^7.23.6"
source-map-js "^1.0.2"
-magicast@^0.3.4:
+magicast@^0.3.4, magicast@^0.3.5:
version "0.3.5"
resolved "https://registry.yarnpkg.com/magicast/-/magicast-0.3.5.tgz#8301c3c7d66704a0771eb1bad74274f0ec036739"
integrity sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==
@@ -24262,6 +24373,13 @@ react-element-to-jsx-string@^15.0.0:
is-plain-object "5.0.0"
react-is "18.1.0"
+react-error-boundary@^3.1.0:
+ version "3.1.4"
+ resolved "https://registry.yarnpkg.com/react-error-boundary/-/react-error-boundary-3.1.4.tgz#255db92b23197108757a888b01e5b729919abde0"
+ integrity sha512-uM9uPzZJTF6wRQORmSrvOIgt4lJ9MC1sNgEOj2XGsDTRE4kmpWxg7ENK9EWNKJRMAOY9z0MuF4yIfl6gp4sotA==
+ dependencies:
+ "@babel/runtime" "^7.12.5"
+
react-hook-form@^7.47.0, react-hook-form@^7.50.1:
version "7.51.2"
resolved "https://registry.yarnpkg.com/react-hook-form/-/react-hook-form-7.51.2.tgz#79f7f72ee217c5114ff831012d1a7ec344096e7f"
@@ -24277,6 +24395,11 @@ react-hook-form@^7.52.1:
resolved "https://registry.yarnpkg.com/react-hook-form/-/react-hook-form-7.52.2.tgz#ff40f4776250b86ddfcde6be68d34aa82b1c60fe"
integrity sha512-pqfPEbERnxxiNMPd0bzmt1tuaPcVccywFDpyk2uV5xCIBphHV5T8SVnX9/o3kplPE1zzKt77+YIoq+EMwJp56A==
+react-hook-form@^7.53.1:
+ version "7.53.1"
+ resolved "https://registry.yarnpkg.com/react-hook-form/-/react-hook-form-7.53.1.tgz#3f2cd1ed2b3af99416a4ac674da2d526625add67"
+ integrity sha512-6aiQeBda4zjcuaugWvim9WsGqisoUk+etmFEsSUMm451/Ic8L/UAb7sRtMj3V+Hdzm6mMjU1VhiSzYUZeBm0Vg==
+
react-i18next@^11.18.1, react-i18next@^11.18.6:
version "11.18.6"
resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-11.18.6.tgz#e159c2960c718c1314f1e8fcaa282d1c8b167887"
@@ -27497,7 +27620,7 @@ tinybench@^2.8.0, tinybench@^2.9.0:
resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.9.0.tgz#103c9f8ba6d7237a47ab6dd1dcff77251863426b"
integrity sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==
-tinyexec@^0.3.0:
+tinyexec@^0.3.0, tinyexec@^0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-0.3.1.tgz#0ab0daf93b43e2c211212396bdb836b468c97c98"
integrity sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==
@@ -27512,7 +27635,7 @@ tinypool@^0.8.3:
resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-0.8.4.tgz#e217fe1270d941b39e98c625dcecebb1408c9aa8"
integrity sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==
-tinypool@^1.0.0:
+tinypool@^1.0.0, tinypool@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-1.0.1.tgz#c64233c4fac4304e109a64340178760116dbe1fe"
integrity sha512-URZYihUbRPcGv95En+sz6MfghfIc2OJ1sv/RmhWZLouPY0/8Vo80viwPvg3dlaS9fuq7fQMEfgRRK7BBZThBEA==
@@ -27527,7 +27650,7 @@ tinyspy@^2.2.0:
resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-2.2.0.tgz#9dc04b072746520b432f77ea2c2d17933de5d6ce"
integrity sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==
-tinyspy@^3.0.0:
+tinyspy@^3.0.0, tinyspy@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-3.0.2.tgz#86dd3cf3d737b15adcf17d7887c84a75201df20a"
integrity sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==
@@ -28902,6 +29025,16 @@ vite-node@2.1.3:
pathe "^1.1.2"
vite "^5.0.0"
+vite-node@2.1.4:
+ version "2.1.4"
+ resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-2.1.4.tgz#97ffb6de913fd8d42253afe441f9512e9dbdfd5c"
+ integrity sha512-kqa9v+oi4HwkG6g8ufRnb5AeplcRw8jUF6/7/Qz1qRQOXHImG8YnLbB+LLszENwFnoBl9xIf9nVdCFzNd7GQEg==
+ dependencies:
+ cac "^6.7.14"
+ debug "^4.3.7"
+ pathe "^1.1.2"
+ vite "^5.0.0"
+
vite-plugin-dts@3.5.1:
version "3.5.1"
resolved "https://registry.yarnpkg.com/vite-plugin-dts/-/vite-plugin-dts-3.5.1.tgz#58c225f7ecabff2ed76027e003e1ec8ca964a078"
@@ -29133,6 +29266,32 @@ vitest@^2.1.2:
vite-node "2.1.3"
why-is-node-running "^2.3.0"
+vitest@^2.1.3:
+ version "2.1.4"
+ resolved "https://registry.yarnpkg.com/vitest/-/vitest-2.1.4.tgz#ba8f4589fb639cf5a9e6af54781667312b3e8230"
+ integrity sha512-eDjxbVAJw1UJJCHr5xr/xM86Zx+YxIEXGAR+bmnEID7z9qWfoxpHw0zdobz+TQAFOLT+nEXz3+gx6nUJ7RgmlQ==
+ dependencies:
+ "@vitest/expect" "2.1.4"
+ "@vitest/mocker" "2.1.4"
+ "@vitest/pretty-format" "^2.1.4"
+ "@vitest/runner" "2.1.4"
+ "@vitest/snapshot" "2.1.4"
+ "@vitest/spy" "2.1.4"
+ "@vitest/utils" "2.1.4"
+ chai "^5.1.2"
+ debug "^4.3.7"
+ expect-type "^1.1.0"
+ magic-string "^0.30.12"
+ pathe "^1.1.2"
+ std-env "^3.7.0"
+ tinybench "^2.9.0"
+ tinyexec "^0.3.1"
+ tinypool "^1.0.1"
+ tinyrainbow "^1.2.0"
+ vite "^5.0.0"
+ vite-node "2.1.4"
+ why-is-node-running "^2.3.0"
+
void-elements@3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-3.1.0.tgz#614f7fbf8d801f0bb5f0661f5b2f5785750e4f09"
@@ -29996,4 +30155,4 @@ zustand@^4.5.5:
zwitch@^1.0.0:
version "1.0.5"
resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-1.0.5.tgz#d11d7381ffed16b742f6af7b3f223d5cd9fe9920"
- integrity sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==
\ No newline at end of file
+ integrity sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==