@adyen/kyc-components
Version:
This guide assumes that you have already an account with Adyen. A legalEntity needs to be created, and you need to have a `legalEntityId` to instatiate a Component.
651 lines (650 loc) • 30.3 kB
JavaScript
try {
let e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "ea80962b-c0d4-42f1-9812-95bc75127940", e._sentryDebugIdIdentifier = "sentry-dbid-ea80962b-c0d4-42f1-9812-95bc75127940");
} catch (e) {}
import { c as __exportAll, n as addResourceBundles, o as createLogger, r as useTranslation } from "./translation-BYvhW5zA.js";
import { A as _rolldown_dynamic_import_helper_default, a as doesLegalEntityRequiresLegalRepresentative, j as useToggleContext, x as Alert } from "./resolveEnvironment-DNmu53Rr.js";
import { r as Loader, t as Button } from "./Button-i8I2dHP8.js";
import { n as httpGet, r as httpPost, s as useApiContext } from "./http-8qgzqVqk.js";
import { r as useLegalEntity, t as ROOT_LE } from "./useLegalEntity-CtlUQv_J.js";
import { t as LegalEntityTypes } from "./legal-entity-type-0MfCGzUf.js";
import { t as getLegalEntityCountry } from "./getLegalEntityCountry-BHh7Ux8v.js";
import { t as StackLayout } from "./StackLayout-IUdNMDgW.js";
import { t as TaskTypes } from "./taskTypes-NawDTp5n.js";
import { a as getLegalRepresentative } from "./entityAssociationUtil-C-wflW8q.js";
import { a as getOwnSignatories } from "./decisionMakerRoles-DIG8zo1C.js";
import { n as useTermsOfServiceAcceptanceInfos, t as useTermsOfServiceStatus } from "./useTermsOfServiceStatus-D1_ECrkO.js";
import { t as Card } from "./Card-BCGLpdw7.js";
import { i as useAnalyticsContext } from "./Modal-BLP2aF-u.js";
import { n as useToastContext, t as useInvalidateRootLegalEntity } from "./invalidateRootLegalEntity-DLpPeD5p.js";
import { t as EndStateLayout } from "./EndStateLayout-CBRHUXyY.js";
import { t as downloadFile } from "./file-1IenVoh8.js";
import { r as LoaderWrapper, t as getLanguageCode } from "./utils-C1buyvRw.js";
import { n as getLegalEntityNameBasedOnType } from "./getName-D4ECvzcI.js";
import { t as useTaskLandedEvent } from "./useTaskLandedEvent-BXtOctC4.js";
import { t as MaybeModal } from "./MaybeModal-DWfb_GRW.js";
import { t as ProgressBar } from "./ProgressBar-DWFxLMUA.js";
import { t as localizeDateString } from "./localizeDateString-Bmx3yBcR.js";
import { t as Field } from "./Field-DoXLi6EY.js";
import { t as Select } from "./Select-DUo2rOfa.js";
import { t as Checkbox } from "./Checkbox-D7BRIoQL.js";
import { t as useForm } from "./useForm-C5EykRLY.js";
import { t as FormNavigation } from "./FormNavigation-mEocY-KU.js";
import { t as ContractViewer } from "./ContractViewer-JtnAXSDa.js";
import { useCallback, useEffect, useMemo, useState } from "preact/hooks";
import { Fragment, jsx, jsxs } from "preact/jsx-runtime";
import { skipToken, useMutation, useQuery } from "@tanstack/preact-query";
//#region src/api/termsOfService/useAcceptTermsOfService.ts
var acceptTermsOfService = async (legalEntityId, baseUrl, termsOfServiceDocumentId, data) => {
return httpPost({
baseUrl,
path: `legalEntities/${legalEntityId}/termsOfService/accept`
}, {
...data,
legalEntityReference: legalEntityId,
termsOfServiceDocumentId
});
};
var useAcceptTermsOfService = (options) => {
const { rootLegalEntityId, baseUrl } = useApiContext();
const invalidateRootLegalEntity = useInvalidateRootLegalEntity();
return useMutation({
mutationFn: (data) => acceptTermsOfService(rootLegalEntityId.value, baseUrl.value, data.termsOfServiceDocumentId, data),
onSuccess: async () => {
await invalidateRootLegalEntity();
},
...options
});
};
//#endregion
//#region src/api/termsOfService/useAcceptedTermsOfService.ts
var getAcceptedTermsOfService = async (legalEntityId, baseUrl, termsOfServiceAcceptanceReference, documentFormat) => {
return httpGet({
baseUrl,
path: `legalEntities/${legalEntityId}/termsOfService/acceptedTermsOfServiceDocument/${termsOfServiceAcceptanceReference}?documentformat=${documentFormat} `
});
};
var useAcceptedTermsOfService = (termsOfServiceAcceptanceReference, documentFormat, options) => {
const { rootLegalEntityId, baseUrl } = useApiContext();
return useQuery({
queryKey: [
"acceptedTermsOfService",
termsOfServiceAcceptanceReference,
documentFormat
],
queryFn: termsOfServiceAcceptanceReference ? () => getAcceptedTermsOfService(rootLegalEntityId.value, baseUrl.value, termsOfServiceAcceptanceReference, documentFormat) : skipToken,
...options
});
};
//#endregion
//#region src/api/termsOfService/useTermsOfService.ts
var getTermsOfService = async (legalEntityId, baseUrl, data) => {
return httpPost({
baseUrl,
path: `legalEntities/${legalEntityId}/termsOfService`
}, data);
};
var useTermsOfService = (data, options) => {
const { rootLegalEntityId, baseUrl } = useApiContext();
return useQuery({
queryKey: ["termsOfService", data],
queryFn: () => getTermsOfService(rootLegalEntityId.value, baseUrl.value, data),
...options
});
};
var ServiceAgreementDropin_module_default = {
"tos-signed-alert": "_tos-signed-alert_rzwx5_1",
tosSignedAlert: "_tos-signed-alert_rzwx5_1",
"tos-container": "_tos-container_rzwx5_5",
tosContainer: "_tos-container_rzwx5_5",
"tos-content": "_tos-content_rzwx5_9",
tosContent: "_tos-content_rzwx5_9",
"tos-signer-field": "_tos-signer-field_rzwx5_19",
tosSignerField: "_tos-signer-field_rzwx5_19",
"tos-actions": "_tos-actions_rzwx5_27",
tosActions: "_tos-actions_rzwx5_27"
};
//#endregion
//#region src/components/Contract/tasks/ServiceAgreementDropin/useServiceAgreement.ts
var logger$1 = createLogger();
var FALLBACK_LANGUAGE_CODE$1 = "en";
var useServiceAgreement = ({ handleServiceAgreementIsNotAvailableInThatLanguage, acceptanceId, serviceAgreementType, language }) => {
const [agreementLanguage, setAgreementLanguage] = useState(language);
useEffect(() => {
if (agreementLanguage !== language) setAgreementLanguage(language);
}, [language]);
const { data: unAcceptedServiceAgreement, isSuccess: isUnAcceptedServiceAgreementSuccess, isError, error } = useTermsOfService({
language: agreementLanguage,
type: serviceAgreementType,
termsOfServiceDocumentFormat: "JSON"
}, { enabled: !acceptanceId });
const { data: acceptedServiceAgreement, isSuccess: isAcceptedServiceAgreementSuccess } = useAcceptedTermsOfService(acceptanceId, "JSON");
const fetchedServiceAgreement = useMemo(() => {
const termsOfService = unAcceptedServiceAgreement ?? acceptedServiceAgreement;
const documentId = unAcceptedServiceAgreement?.termsOfServiceDocumentId ?? acceptedServiceAgreement?.termsOfServiceAcceptanceReference;
if (termsOfService?.document && documentId) return {
loading: "success",
serviceAgreement: {
id: documentId,
contract: JSON.parse(decodeURIComponent(escape(window.atob(termsOfService.document))))
}
};
}, [acceptedServiceAgreement, unAcceptedServiceAgreement]);
if ((isUnAcceptedServiceAgreementSuccess || isAcceptedServiceAgreementSuccess) && fetchedServiceAgreement) return fetchedServiceAgreement;
if (isError) {
if (agreementLanguage !== FALLBACK_LANGUAGE_CODE$1) {
handleServiceAgreementIsNotAvailableInThatLanguage();
setAgreementLanguage(FALLBACK_LANGUAGE_CODE$1);
} else logger$1.error(error);
return {
loading: "success",
serviceAgreement: void 0
};
}
return {
loading: "loading",
serviceAgreement: void 0
};
};
//#endregion
//#region src/components/Contract/tasks/ServiceAgreementDropin/validate.ts
var serviceAgreementValidationRules = {
signer: {
modes: ["blur"],
validate: (signer) => !!signer,
errorMessage: "fieldIsRequired"
},
acceptServiceAgreement: {
modes: ["blur"],
validate: (acceptServiceAgreement) => !!acceptServiceAgreement,
errorMessage: "fieldIsRequired"
}
};
//#endregion
//#region src/components/Contract/tasks/ServiceAgreementDropin/ServiceAgreementDropin.tsx
var serviceAgreementTypesTranslationMapping = {
adyenForPlatformsManage: "paymentProcessingTerms",
adyenIssuing: "accountHolderTerms",
adyenForPlatformsAdvanced: "paymentProcessingTerms",
adyenCapital: "capitalUserTerms",
adyenAccount: "businessAccountTerms",
adyenCard: "cardUserTerms",
adyenFranchisee: "franchiseesTAndCs",
adyenPccr: "pccr",
adyenChargeCard: "chargeCardUserAgreement",
kycOnInvite: "kycOnInvite",
directDebit: "directDebit"
};
var logger = createLogger();
var FALLBACK_LANGUAGE_CODE = "en";
function ServiceAgreementDropin({ legalEntityResponse, handleAddSigner, handleSign, serviceAgreementTypes, serviceAgreementAcceptanceInfos, asEmbedded = false, asModal = false, handleCloseClick, showInitialBackButton = false, onComplete }) {
const { t, i18n } = useTranslation(["contract", "common"]);
const userEvents = useAnalyticsContext();
const { showToast } = useToastContext();
const { isFeatureEnabled } = useToggleContext();
const isAgeVerificationEnabled = isFeatureEnabled("EnableAgeVerification");
const { rootLegalEntityId, baseUrl } = useApiContext();
const [loadingStatus, setLoadingStatus] = useState();
const country = getLegalEntityCountry(legalEntityResponse);
const acceptanceMessageKey = (() => {
switch (country) {
case "IT": return "iHaveReadAndIAcceptTheseTermsIT";
default: return "iHaveReadAndIAcceptTheseTerms";
}
})();
const signedForms = serviceAgreementAcceptanceInfos.map((serviceAgreementAcceptanceInfo) => ({
formId: serviceAgreementAcceptanceInfo.id,
serviceAgreementType: serviceAgreementAcceptanceInfo.type,
acceptanceId: serviceAgreementAcceptanceInfo.id,
createdAt: serviceAgreementAcceptanceInfo.createdAt,
formName: serviceAgreementTypesTranslationMapping[serviceAgreementAcceptanceInfo.type],
isValid: true
}));
const formsToBeSigned = serviceAgreementTypes.map((serviceAgreementType) => ({
formId: serviceAgreementType,
serviceAgreementType,
formName: serviceAgreementTypesTranslationMapping[serviceAgreementType],
isValid: false
}));
const forms = [...signedForms, ...formsToBeSigned];
const [activeFormIndex, setActiveFormIndex] = useState(0);
const [activeForm, setActiveForm] = useState(forms[activeFormIndex]);
const [hasFinished, setHasFinished] = useState(false);
const canSign = serviceAgreementTypes.includes(activeForm.serviceAgreementType) && !activeForm.acceptanceId;
const isFirstStep = activeFormIndex === 0;
const isLastStep = activeFormIndex === forms.length - 1;
const showSignedAlert = !!activeForm.acceptanceId;
const { refetch: downloadAcceptedTermsAsPdf } = useAcceptedTermsOfService(activeForm.acceptanceId, "PDF", { enabled: false });
const { loading: contractLoadingStatus, serviceAgreement } = useServiceAgreement({
handleServiceAgreementIsNotAvailableInThatLanguage: useCallback(() => {
showToast({
label: t(($) => $["failedToGetServiceAgreementInSelectedLanguageFallbackToEn"]),
variant: "error"
});
}, [t, showToast]),
acceptanceId: activeForm.acceptanceId,
serviceAgreementType: activeForm.serviceAgreementType,
language: getLanguageCode(i18n.language)
});
const { handleChangeFor, triggerValidation, data, valid, isValid, errors } = useForm({
schema: ["signer", "acceptServiceAgreement"],
rules: serviceAgreementValidationRules
});
const getSigners = () => {
if (legalEntityResponse.type === LegalEntityTypes.ORGANIZATION) return getOwnSignatories(legalEntityResponse).map(({ legalEntityId: id, name }) => ({
id: id ?? "",
name: name ?? ""
}));
if (isAgeVerificationEnabled && doesLegalEntityRequiresLegalRepresentative(legalEntityResponse)) {
const legalRepresentative = getLegalRepresentative(legalEntityResponse);
return legalRepresentative ? [{
id: legalRepresentative.legalEntityId,
name: legalRepresentative.name
}] : [];
}
return [{
id: legalEntityResponse.id,
name: `${legalEntityResponse.individual?.name.firstName ?? ""} ${legalEntityResponse.individual?.name.lastName ?? ""}`
}];
};
const signers = getSigners();
const handleSignClick = async () => {
const baseTracking = { actionType: "sign" };
triggerValidation();
if (loadingStatus === "loading" || !serviceAgreement || !data.signer) return;
if (isValid) try {
setLoadingStatus("loading");
await handleSign(legalEntityResponse.id, serviceAgreement.id, { acceptedBy: data.signer });
setLoadingStatus("success");
showToast({
label: t(($) => $["serviceAgreementSignedSuccessfully"]),
variant: "success"
});
userEvents.addTaskEvent("Success", baseTracking);
data.acceptServiceAgreement = false;
data.signer = void 0;
} catch (e) {
setLoadingStatus("success");
showToast({
label: t(($) => $["signingFailed"]),
variant: "error"
});
userEvents.addTaskEvent("Encountered error", {
...baseTracking,
returnType: e?.errorCode || "backend",
returnValue: e?.title ?? e?.message
});
}
else userEvents.addTaskEvent("Encountered error", {
...baseTracking,
returnType: "validation",
returnValue: Object.entries(valid).filter(([, value]) => !value).map(([key]) => key)
});
};
const handleExpandSection = useCallback((title) => {
userEvents.addFieldEvent("Clicked accordion", {
actionType: "open",
field: title
});
}, []);
useEffect(() => {
if (!serviceAgreementAcceptanceInfos.length) return;
gotoForm(serviceAgreementAcceptanceInfos.length - 1);
}, [serviceAgreementAcceptanceInfos]);
/**
* Analytics
*/
useTaskLandedEvent("SERVICE_AGREEMENT");
useEffect(() => {
gotoForm(forms.length === signedForms.length ? 0 : signedForms.length);
}, []);
useEffect(() => {
userEvents.updateSharedEventProperties({ page: activeForm?.formName });
}, [activeForm]);
const gotoForm = (index) => {
setActiveForm(forms[index]);
setActiveFormIndex(index);
};
const onDownloadAcceptedTermsOfServiceDocument = async () => {
const { isError, isSuccess, data } = await downloadAcceptedTermsAsPdf();
if (isSuccess && data.document) await downloadFile(data.document, `${t(($) => $[activeForm.formName], { ns: "common" })}.pdf`);
if (isError) showToast({
label: t(($) => $["failedToDownloadAcceptedServiceAgreementDocument"]),
variant: "error"
});
};
const onDownloadUnacceptedTermsOfServiceDocument = async () => {
const languageCode = getLanguageCode(i18n.language);
const requestAndDownload = async (languageCode) => {
const response = await getTermsOfService(rootLegalEntityId.value, baseUrl.value, {
type: activeForm.serviceAgreementType,
language: languageCode,
termsOfServiceDocumentFormat: "PDF"
});
if (!response.document) throw new Error(`No terms Of service document found in response`);
await downloadFile(response.document, `${t(($) => $[activeForm.formName], { ns: "common" })}.pdf`);
};
try {
if (["fr", "en"].includes(i18n.language)) await requestAndDownload(languageCode);
await requestAndDownload("en");
} catch {
if (languageCode !== FALLBACK_LANGUAGE_CODE) {
await requestAndDownload(FALLBACK_LANGUAGE_CODE).catch(logger.error);
return;
}
showToast({
label: t(($) => $["failedToDownloadServiceAgreementDocument"]),
variant: "error"
});
}
};
const isIndividual = legalEntityResponse.type === "individual";
const addSignerAlert = handleAddSigner && /* @__PURE__ */ jsx(Alert, {
variant: signers.length ? "info" : "warning",
className: "u-margin-top-16",
title: t(($) => $[signers.length ? "isYourNameMissingFromSigners" : "thereAreNoSigners"]),
children: /* @__PURE__ */ jsx(Button, {
onClick: handleAddSigner,
variant: "link",
children: t(($) => $["addYourselfAsSigner"])
})
});
const getSignedName = (acceptanceId) => {
if (!acceptanceId) return "";
const signatory = serviceAgreementAcceptanceInfos.find(({ id }) => id === acceptanceId);
return (legalEntityResponse.entityAssociations?.find(({ legalEntityId }) => legalEntityId === signatory?.acceptedBy))?.name ?? getLegalEntityNameBasedOnType(legalEntityResponse);
};
const signedAlert = showSignedAlert && /* @__PURE__ */ jsx(Alert, {
variant: "success",
className: ServiceAgreementDropin_module_default.tosSignedAlert,
title: t(($) => $["signedByOn"], {
date: localizeDateString(activeForm.createdAt, i18n.language) ?? "",
signer: getSignedName(activeForm.acceptanceId)
})
});
const sidebar = /* @__PURE__ */ jsx(LoaderWrapper, {
status: loadingStatus,
formOpacityWhenLoading: .3,
showSpinner: false,
className: "adyen-kyc-dropin__sidebar-wrapper",
children: /* @__PURE__ */ jsx(FormNavigation, {
forms,
activeForm,
gotoForm,
taskName: "signServiceAgreement",
className: "u-margin-bottom-24"
})
});
const content = /* @__PURE__ */ jsxs(LoaderWrapper, {
status: loadingStatus,
formOpacityWhenLoading: .3,
showSpinner: false,
className: "adyen-kyc-form-container",
children: [/* @__PURE__ */ jsxs(LoaderWrapper, {
status: contractLoadingStatus,
formOpacityWhenLoading: .3,
showSpinner: false,
children: [serviceAgreement && /* @__PURE__ */ jsxs(StackLayout, { children: [
signedAlert,
/* @__PURE__ */ jsx(Card, { children: /* @__PURE__ */ jsx(ContractViewer, {
contract: serviceAgreement.contract,
onExpandSection: handleExpandSection,
showSectionNumbering: true
}) }),
/* @__PURE__ */ jsx(Button, {
variant: "secondary",
onClick: activeForm?.acceptanceId ? onDownloadAcceptedTermsOfServiceDocument : onDownloadUnacceptedTermsOfServiceDocument,
icon: "download",
children: t(($) => $["downloadAsPdf"])
})
] }), !forms.length && /* @__PURE__ */ jsx(Alert, {
variant: "info",
title: t(($) => $["nothingNeedsToBeSigned"])
})]
}), canSign && /* @__PURE__ */ jsxs(Fragment, { children: [
!!signers.length && /* @__PURE__ */ jsx(Field, {
name: "signer",
label: t(($) => $["signer"]),
className: ServiceAgreementDropin_module_default.tosSignerField,
errorMessage: errors.signer?.errorMessage,
isValid: valid.signer,
dataTestId: "signer",
children: (childProps) => /* @__PURE__ */ jsx(Select, {
...childProps,
onChange: handleChangeFor("signer", "blur"),
name: "signer",
placeholder: t(($) => $["selectSigner"]),
selected: data.signer,
items: signers
})
}),
!isIndividual && addSignerAlert,
/* @__PURE__ */ jsx(Field, {
name: "acceptServiceAgreement",
className: "u-margin-top-16",
errorMessage: errors.acceptServiceAgreement?.errorMessage,
isValid: valid.acceptServiceAgreement,
children: (childProps) => /* @__PURE__ */ jsx(Checkbox, {
...childProps,
label: t(($) => $[acceptanceMessageKey], { ns: "contract" }),
checked: data.acceptServiceAgreement ?? false,
name: "acceptServiceAgreement",
onChange: handleChangeFor("acceptServiceAgreement")
})
})
] })]
});
const currentStep = signedForms.length;
const totalSteps = forms.length;
const handleClick = () => {
if (canSign) handleSignClick();
else if (!isLastStep) gotoForm(activeFormIndex + 1);
else setHasFinished(true);
};
/** The finish button needs to trigger both consumer onClose and onComplete */
const handleFinishClick = () => {
handleCloseClick();
onComplete?.();
};
const endScreen = hasFinished && /* @__PURE__ */ jsx(EndStateLayout, {
title: t(($) => $["serviceAgreementSignedAndDated"]),
action: /* @__PURE__ */ jsx(Button, {
onClick: handleFinishClick,
fullWidth: true,
children: t(($) => $["finish"], { ns: "common" })
})
});
const progress = Math.floor(currentStep / (totalSteps - 1) * 100);
return /* @__PURE__ */ jsx(MaybeModal, {
inline: !asModal,
onClose: handleCloseClick,
children: /* @__PURE__ */ jsxs("div", {
className: ServiceAgreementDropin_module_default.tosContainer,
children: [/* @__PURE__ */ jsxs("div", {
className: ServiceAgreementDropin_module_default.tosContent,
children: [!asEmbedded && sidebar, endScreen || content]
}), !hasFinished && /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx(ProgressBar, {
ariaLabel: t(($) => $["progress"], { ns: "common" }),
progress
}), /* @__PURE__ */ jsxs("div", {
className: ServiceAgreementDropin_module_default.tosActions,
children: [isFirstStep ? showInitialBackButton && /* @__PURE__ */ jsx(Button, {
onClick: handleCloseClick,
variant: "secondary",
children: t(($) => $["cancel"], { ns: "common" })
}) : /* @__PURE__ */ jsx(Button, {
icon: "chevron-left",
onClick: () => {
gotoForm(activeFormIndex - 1);
},
variant: "secondary",
children: t(($) => $["back"], { ns: "common" })
}), /* @__PURE__ */ jsx(Button, {
variant: canSign ? "primary" : "secondary",
onClick: handleClick,
children: canSign ? t(($) => $["sign"], { ns: "common" }) : t(($) => $["continue"], { ns: "common" })
})]
})] })]
})
});
}
//#endregion
//#region src/components/EmbeddedDropins/AcceptTermsOfServiceComponent/AcceptTermsOfServiceComponent.tsx
var AcceptTermsOfServiceComponent_exports = /* @__PURE__ */ __exportAll({ AcceptTermsOfServiceComponent: () => AcceptTermsOfServiceComponent });
function AcceptTermsOfServiceComponent({ legalEntityId, modalView = false, asEmbedded = true, onClose, onComplete, onUnmount, onAccept, handleAddSigner }) {
if (!legalEntityId) throw new Error("Must provide at-least a legalEntityId");
const { i18n } = useTranslation();
addResourceBundles(i18n, [
{
ns: "common",
importFn: (lang) => _rolldown_dynamic_import_helper_default(/* @__PURE__ */ Object.assign({
"../../../language/locales/bg-BG.json": () => import("./bg-BG-BcmC41vE.js"),
"../../../language/locales/cs-CZ.json": () => import("./cs-CZ-ghdW0Tc6.js"),
"../../../language/locales/da-DK.json": () => import("./da-DK-CBOVFYaa.js"),
"../../../language/locales/de-DE.json": () => import("./de-DE-CA81fzkA.js"),
"../../../language/locales/el-GR.json": () => import("./el-GR-BjOmQ_B_.js"),
"../../../language/locales/en-US.instructions.json": () => import("./en-US.instructions-FOYUYA3c.js"),
"../../../language/locales/en-US.json": () => import("./en-US-Dab7moVA.js"),
"../../../language/locales/es-ES.json": () => import("./es-ES-BEYl7Z8S.js"),
"../../../language/locales/es-LA.json": () => import("./es-LA-D741KUNg.js"),
"../../../language/locales/et-EE.json": () => import("./et-EE-CfgyGext.js"),
"../../../language/locales/fi-FI.json": () => import("./fi-FI-DFO20YZY.js"),
"../../../language/locales/fr-FR.json": () => import("./fr-FR-wvWrk_PU.js"),
"../../../language/locales/hr-HR.json": () => import("./hr-HR-D0zfmZK6.js"),
"../../../language/locales/hu-HU.json": () => import("./hu-HU-CL021irk.js"),
"../../../language/locales/it-IT.json": () => import("./it-IT-6VoxKX97.js"),
"../../../language/locales/ja-JP.json": () => import("./ja-JP-Cja4dur8.js"),
"../../../language/locales/lt-LT.json": () => import("./lt-LT-CNFgOeH4.js"),
"../../../language/locales/lv-LV.json": () => import("./lv-LV-BdSdhjTP.js"),
"../../../language/locales/nl-NL.json": () => import("./nl-NL-CclRrN3_.js"),
"../../../language/locales/no-NO.json": () => import("./no-NO-CO5xyGPh.js"),
"../../../language/locales/pl-PL.json": () => import("./pl-PL-DUH23AYC.js"),
"../../../language/locales/pt-BR.json": () => import("./pt-BR-MAQR_CUu2.js"),
"../../../language/locales/pt-PT.json": () => import("./pt-PT-CoKsjpyN.js"),
"../../../language/locales/ro-RO.json": () => import("./ro-RO-Cpv5pKod.js"),
"../../../language/locales/sk-SK.json": () => import("./sk-SK-p_p2X_aA.js"),
"../../../language/locales/sl-SI.json": () => import("./sl-SI-BpZp1MAq.js"),
"../../../language/locales/sv-SE.json": () => import("./sv-SE-BoXCPhGb.js")
}), `../../../language/locales/${lang}.json`, 6)
},
{
ns: "contract",
importFn: (lang) => _rolldown_dynamic_import_helper_default(/* @__PURE__ */ Object.assign({
"../../Contract/language/bg-BG.json": () => import("./bg-BG-BKPnSg5G.js"),
"../../Contract/language/cs-CZ.json": () => import("./cs-CZ-BBnvx4CY.js"),
"../../Contract/language/da-DK.json": () => import("./da-DK-CRp6gV0v.js"),
"../../Contract/language/de-DE.json": () => import("./de-DE-asP1wacy.js"),
"../../Contract/language/el-GR.json": () => import("./el-GR-B18pS-T4.js"),
"../../Contract/language/en-US.json": () => import("./en-US-CmzloEL3.js"),
"../../Contract/language/es-ES.json": () => import("./es-ES-BN2YT82N.js"),
"../../Contract/language/es-LA.json": () => import("./es-LA-DK1UJyRv.js"),
"../../Contract/language/et-EE.json": () => import("./et-EE-6Fsbs-mA.js"),
"../../Contract/language/fi-FI.json": () => import("./fi-FI-C4Ta33KJ.js"),
"../../Contract/language/fr-FR.json": () => import("./fr-FR-DKTSJHnY.js"),
"../../Contract/language/hr-HR.json": () => import("./hr-HR-CII1fh9u.js"),
"../../Contract/language/hu-HU.json": () => import("./hu-HU-CAlsW_OP.js"),
"../../Contract/language/it-IT.json": () => import("./it-IT-BUwmmlzT.js"),
"../../Contract/language/ja-JP.json": () => import("./ja-JP-XWbEAz1Y.js"),
"../../Contract/language/lt-LT.json": () => import("./lt-LT-Vhhg1gZf.js"),
"../../Contract/language/lv-LV.json": () => import("./lv-LV-x-MIpGh3.js"),
"../../Contract/language/nl-NL.json": () => import("./nl-NL-CvSvFKVp.js"),
"../../Contract/language/no-NO.json": () => import("./no-NO-TyUIFxXT.js"),
"../../Contract/language/pl-PL.json": () => import("./pl-PL-BYzL4w2k.js"),
"../../Contract/language/pt-BR.json": () => import("./pt-BR-D5r3Ig2a.js"),
"../../Contract/language/pt-PT.json": () => import("./pt-PT-Dsxz9fKe.js"),
"../../Contract/language/ro-RO.json": () => import("./ro-RO-BfVd2Ps9.js"),
"../../Contract/language/sk-SK.json": () => import("./sk-SK-ID0z1rIS.js"),
"../../Contract/language/sl-SI.json": () => import("./sl-SI-hxmAPrRM.js"),
"../../Contract/language/sv-SE.json": () => import("./sv-SE-BuzHXTQj.js")
}), `../../Contract/language/${lang}.json`, 5)
},
{
ns: "ui",
importFn: (lang) => _rolldown_dynamic_import_helper_default(/* @__PURE__ */ Object.assign({
"../../ui/language/bg-BG.json": () => import("./bg-BG-CzXoDIev.js"),
"../../ui/language/cs-CZ.json": () => import("./cs-CZ-JUprtMsH.js"),
"../../ui/language/da-DK.json": () => import("./da-DK-D2RrHm98.js"),
"../../ui/language/de-DE.json": () => import("./de-DE-o8i-cfnA.js"),
"../../ui/language/el-GR.json": () => import("./el-GR-BAhj1djs.js"),
"../../ui/language/en-US.json": () => import("./en-US-COWs58AF.js"),
"../../ui/language/es-ES.json": () => import("./es-ES-BNjxmV8Q.js"),
"../../ui/language/es-LA.json": () => import("./es-LA-BIPVrwXX.js"),
"../../ui/language/et-EE.json": () => import("./et-EE-Dl6n-Am8.js"),
"../../ui/language/fi-FI.json": () => import("./fi-FI-T33BAikx.js"),
"../../ui/language/fr-FR.json": () => import("./fr-FR-CRO4taJU.js"),
"../../ui/language/hr-HR.json": () => import("./hr-HR-CbEXwWeO.js"),
"../../ui/language/hu-HU.json": () => import("./hu-HU-B9JCbRow.js"),
"../../ui/language/it-IT.json": () => import("./it-IT-DE_Dkl_X.js"),
"../../ui/language/ja-JP.json": () => import("./ja-JP-BaD-vLXo.js"),
"../../ui/language/lt-LT.json": () => import("./lt-LT-5OY6az4F.js"),
"../../ui/language/lv-LV.json": () => import("./lv-LV-DjAUG4pi.js"),
"../../ui/language/nl-NL.json": () => import("./nl-NL-C3cXv5PD.js"),
"../../ui/language/no-NO.json": () => import("./no-NO-DyMlgewS.js"),
"../../ui/language/pl-PL.json": () => import("./pl-PL-ClUTW9pd.js"),
"../../ui/language/pt-BR.json": () => import("./pt-BR-Bk2xOhdi.js"),
"../../ui/language/pt-PT.json": () => import("./pt-PT-5O7ohkQD.js"),
"../../ui/language/ro-RO.json": () => import("./ro-RO-BOV_LMAu.js"),
"../../ui/language/sk-SK.json": () => import("./sk-SK-BUGTKkOC.js"),
"../../ui/language/sl-SI.json": () => import("./sl-SI-DffYWi9P.js"),
"../../ui/language/sv-SE.json": () => import("./sv-SE-D_bagacj.js")
}), `../../ui/language/${lang}.json`, 5)
}
]);
const [stepsData, setStepsData] = useState({
unAcceptedTermsOfServiceTypes: [],
acceptedTermsOfServices: []
});
const { data: legalEntity } = useLegalEntity(ROOT_LE);
const { data: serviceAgreementStatus, isLoading: isStatusLoading } = useTermsOfServiceStatus();
const { data: serviceAgreementAcceptanceInfos, isLoading: isAcceptanceInfoLoading } = useTermsOfServiceAcceptanceInfos();
const { mutateAsync: acceptTermsOfService } = useAcceptTermsOfService();
const handleOnClose = () => {
if (modalView) onUnmount?.();
onClose?.();
};
const handleSign = useCallback(async (legalEntityId, termsOfServiceDocumentId, signedBy) => {
const acceptedTermsOfService = await acceptTermsOfService({
acceptedBy: signedBy.acceptedBy,
legalEntityReference: legalEntityId,
termsOfServiceDocumentId
});
const paramAllowList = {
type: acceptedTermsOfService.type,
acceptedBy: acceptedTermsOfService.acceptedBy,
id: acceptedTermsOfService.id,
language: acceptedTermsOfService.language,
termsOfServiceDocumentId: acceptedTermsOfService.termsOfServiceDocumentId
};
const { acceptedTermsOfServices } = stepsData;
acceptedTermsOfServices.push(paramAllowList);
const newStepsData = {
unAcceptedTermsOfServiceTypes: serviceAgreementStatus?.termsOfServiceTypes?.filter((tosType) => tosType !== acceptedTermsOfService.type) ?? [],
acceptedTermsOfServices
};
setStepsData(newStepsData);
onAccept?.(newStepsData);
}, [
onAccept,
stepsData,
acceptTermsOfService,
serviceAgreementStatus?.termsOfServiceTypes
]);
const handleOnComplete = () => {
onComplete?.(stepsData);
};
return isStatusLoading || isAcceptanceInfoLoading || !legalEntity ? /* @__PURE__ */ jsx(Loader, {}) : /* @__PURE__ */ jsx(ServiceAgreementDropin, {
taskType: TaskTypes.SERVICE_AGREEMENT,
legalEntityResponse: legalEntity,
serviceAgreementTypes: serviceAgreementStatus?.termsOfServiceTypes ?? [],
serviceAgreementAcceptanceInfos: serviceAgreementAcceptanceInfos?.data ?? [],
handleSign,
asEmbedded,
asModal: modalView,
handleCloseClick: handleOnClose,
showInitialBackButton: !!onClose,
onComplete: handleOnComplete,
handleAddSigner
});
}
//#endregion
export { AcceptTermsOfServiceComponent_exports as n, AcceptTermsOfServiceComponent as t };