@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.
652 lines (651 loc) • 30 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] = "8e2a0035-91f6-40b0-be3c-5cae924f5803", e._sentryDebugIdIdentifier = "sentry-dbid-8e2a0035-91f6-40b0-be3c-5cae924f5803");
} catch (e) {}
import { n as addResourceBundles, o as createLogger, r as useTranslation } from "./translation-BFxyJ1c5.js";
import { r as Loader, t as Button } from "./Button-oj6H8OrC.js";
import { n as httpGet, r as httpPost, s as useApiContext } from "./http-D1NDkBxF.js";
import { r as useLegalEntity, t as ROOT_LE } from "./useLegalEntity-yxi9XhLi.js";
import { t as LegalEntityTypes } from "./legal-entity-type-VIfNYnJP.js";
import { t as useAnalyticsContext } from "./useAnalyticsContext-BVFDMrVE.js";
import { t as useToggleContext } from "./useToggleContext-DaQUBF8O.js";
import { n as getLanguageCode } from "./utils-B807QaDx.js";
import { t as _rolldown_dynamic_import_helper_default } from "./_rolldown_dynamic_import_helper-rq_tsyLP.js";
import { t as Alert } from "./Alert-C6gL3JIt.js";
import { a as getLegalRepresentative, p as TaskTypes } from "./entityAssociationUtil-BEzUdPbm.js";
import { a as getOwnSignatories } from "./decisionMakerRoles-CAy-eeNV.js";
import { t as doesLegalEntityRequiresLegalRepresentative } from "./birthDateUtils-C686KOxO.js";
import { n as useTermsOfServiceAcceptanceInfos, t as useTermsOfServiceStatus } from "./useTermsOfServiceStatus-YBxJYvyS.js";
import { t as Card } from "./Card-vYndix5Y.js";
import { t as useToastContext } from "./useToastContext-CYgfHjSb.js";
import { t as EndStateLayout } from "./EndStateLayout-ChS-vdMt.js";
import { t as downloadFile } from "./file-6a0FDVyq.js";
import { t as useInvalidateRootLegalEntity } from "./invalidateRootLegalEntity-CZr0iiji.js";
import { t as LoaderWrapper } from "./LoaderWrapper-Dq8TNJCi.js";
import { n as getLegalEntityNameBasedOnType } from "./getName-Bdwp_hkV.js";
import { t as useTaskLandedEvent } from "./useTaskLandedEvent-DInxWeqN.js";
import { t as MaybeModal } from "./MaybeModal-CeTBIah3.js";
import { t as ProgressBar } from "./ProgressBar-BlxQvN7D.js";
import { t as localizeDateString } from "./localizeDateString-1A3eC6hp.js";
import { t as Field } from "./Field-pcJkjIG_.js";
import { t as Select } from "./Select-CcSRI-H0.js";
import { t as Checkbox } from "./Checkbox-BCYjFPa4.js";
import { t as useForm } from "./useForm-pUkvCLc9.js";
import { t as FormNavigation } from "./FormNavigation-ikhirSjM.js";
import { t as ContractViewer } from "./ContractViewer-Bm8_7yzG.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": "adyen-kyc-tos-signed-alert",
tosSignedAlert: "adyen-kyc-tos-signed-alert",
"tos-container": "adyen-kyc-tos-container",
tosContainer: "adyen-kyc-tos-container",
"tos-content": "adyen-kyc-tos-content",
tosContent: "adyen-kyc-tos-content",
"tos-signer-field": "adyen-kyc-tos-signer-field",
tosSignerField: "adyen-kyc-tos-signer-field",
"tos-actions": "adyen-kyc-tos-actions",
tosActions: "adyen-kyc-tos-actions"
};
//#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 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: "adyen-kyc-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: "adyen-kyc-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(Fragment, { children: [
/* @__PURE__ */ jsx("div", {
className: "adyen-kyc-u-margin-bottom-16",
children: signedAlert
}),
/* @__PURE__ */ jsx(Card, { children: /* @__PURE__ */ jsx(ContractViewer, {
contract: serviceAgreement.contract,
onExpandSection: handleExpandSection,
showSectionNumbering: true
}) }),
/* @__PURE__ */ jsx("div", {
className: "adyen-kyc-u-margin-top-16",
children: signedAlert
}),
/* @__PURE__ */ jsx("div", {
className: "adyen-kyc-u-margin-y-16",
children: /* @__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: "adyen-kyc-u-margin-top-16",
errorMessage: errors.acceptServiceAgreement?.errorMessage,
isValid: valid.acceptServiceAgreement,
children: (childProps) => /* @__PURE__ */ jsx(Checkbox, {
...childProps,
label: t(($) => $["iHaveReadAndIAcceptTheseTerms"]),
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
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-COHRuTI-.js"),
"../../../language/locales/cs-CZ.json": () => import("./cs-CZ-CmcYZLZp.js"),
"../../../language/locales/da-DK.json": () => import("./da-DK-C_oe1bpM.js"),
"../../../language/locales/de-DE.json": () => import("./de-DE-CMc1Fpfl.js"),
"../../../language/locales/el-GR.json": () => import("./el-GR-Bv2QgmVV.js"),
"../../../language/locales/en-US.instructions.json": () => import("./en-US.instructions-DJharl6b.js"),
"../../../language/locales/en-US.json": () => import("./en-US-cJAmQhFR.js").then((n) => n.n),
"../../../language/locales/es-ES.json": () => import("./es-ES-DtlXpZ_5.js"),
"../../../language/locales/et-EE.json": () => import("./et-EE-PTcJ2hRW.js"),
"../../../language/locales/fi-FI.json": () => import("./fi-FI-C1Ns3CEo.js"),
"../../../language/locales/fr-FR.json": () => import("./fr-FR-DgPRYmmJ.js"),
"../../../language/locales/hr-HR.json": () => import("./hr-HR-BQfjrcPC.js"),
"../../../language/locales/hu-HU.json": () => import("./hu-HU-DfYPelYo.js"),
"../../../language/locales/it-IT.json": () => import("./it-IT-cnETv3Cg.js"),
"../../../language/locales/ja-JP.json": () => import("./ja-JP-D0gz56Ni.js"),
"../../../language/locales/lt-LT.json": () => import("./lt-LT-Bbh9MWxc.js"),
"../../../language/locales/lv-LV.json": () => import("./lv-LV-C8fqHR2g.js"),
"../../../language/locales/nl-NL.json": () => import("./nl-NL-CQSu4iNn.js"),
"../../../language/locales/no-NO.json": () => import("./no-NO-C0DXekH-.js"),
"../../../language/locales/pl-PL.json": () => import("./pl-PL-10KUcobm.js"),
"../../../language/locales/pt-BR.json": () => import("./pt-BR-DWKF33yP.js"),
"../../../language/locales/pt-PT.json": () => import("./pt-PT-CjIFIi4R.js"),
"../../../language/locales/ro-RO.json": () => import("./ro-RO-DQFRJwp8.js"),
"../../../language/locales/sk-SK.json": () => import("./sk-SK-BfoXFhAL.js"),
"../../../language/locales/sl-SI.json": () => import("./sl-SI-CyIN1sc5.js"),
"../../../language/locales/sv-SE.json": () => import("./sv-SE-Xh17T6yC.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-DaiKPUAP.js"),
"../../Contract/language/cs-CZ.json": () => import("./cs-CZ-Dit1sTZS.js"),
"../../Contract/language/da-DK.json": () => import("./da-DK-CSuIOYvv.js"),
"../../Contract/language/de-DE.json": () => import("./de-DE-UxQXcw2Z.js"),
"../../Contract/language/el-GR.json": () => import("./el-GR-JdIfiWWD.js"),
"../../Contract/language/en-US.json": () => import("./en-US-DtWDVC_l.js"),
"../../Contract/language/es-ES.json": () => import("./es-ES-CgcvvmLv.js"),
"../../Contract/language/et-EE.json": () => import("./et-EE-BtoIECkX.js"),
"../../Contract/language/fi-FI.json": () => import("./fi-FI-CUapPvf9.js"),
"../../Contract/language/fr-FR.json": () => import("./fr-FR-D34baGa-.js"),
"../../Contract/language/hr-HR.json": () => import("./hr-HR-C4sBzG1i.js"),
"../../Contract/language/hu-HU.json": () => import("./hu-HU-DgjvclPA.js"),
"../../Contract/language/it-IT.json": () => import("./it-IT-BZrpE0qK.js"),
"../../Contract/language/ja-JP.json": () => import("./ja-JP-DB56llc7.js"),
"../../Contract/language/lt-LT.json": () => import("./lt-LT-DFZD-gis.js"),
"../../Contract/language/lv-LV.json": () => import("./lv-LV-BJgLY-OW.js"),
"../../Contract/language/nl-NL.json": () => import("./nl-NL-CBBxSKzB.js"),
"../../Contract/language/no-NO.json": () => import("./no-NO-3PlX_ro5.js"),
"../../Contract/language/pl-PL.json": () => import("./pl-PL-ComkJGTw.js"),
"../../Contract/language/pt-BR.json": () => import("./pt-BR-Ct1Nhi9U.js"),
"../../Contract/language/pt-PT.json": () => import("./pt-PT-BhEGejvl.js"),
"../../Contract/language/ro-RO.json": () => import("./ro-RO-QlHjtTpP.js"),
"../../Contract/language/sk-SK.json": () => import("./sk-SK-CxisoTfT.js"),
"../../Contract/language/sl-SI.json": () => import("./sl-SI-CG07y9Cp.js"),
"../../Contract/language/sv-SE.json": () => import("./sv-SE-C2lw5FJ7.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-BUBUyZgz.js"),
"../../ui/language/cs-CZ.json": () => import("./cs-CZ-BFJyFYpX.js"),
"../../ui/language/da-DK.json": () => import("./da-DK-BNvIcL59.js"),
"../../ui/language/de-DE.json": () => import("./de-DE-B8Eby_UK.js"),
"../../ui/language/el-GR.json": () => import("./el-GR-DYmDnzZe.js"),
"../../ui/language/en-US.json": () => import("./en-US-Mma5wIWL.js"),
"../../ui/language/es-ES.json": () => import("./es-ES-DLBRDQJZ.js"),
"../../ui/language/et-EE.json": () => import("./et-EE-C_Z4PWda.js"),
"../../ui/language/fi-FI.json": () => import("./fi-FI-azwPyx-k.js"),
"../../ui/language/fr-FR.json": () => import("./fr-FR-CzdHSH04.js"),
"../../ui/language/hr-HR.json": () => import("./hr-HR-C7Hp8OgD.js"),
"../../ui/language/hu-HU.json": () => import("./hu-HU-B34uBEZ9.js"),
"../../ui/language/it-IT.json": () => import("./it-IT-BCqVu72_.js"),
"../../ui/language/ja-JP.json": () => import("./ja-JP-C7_6K98B.js"),
"../../ui/language/lt-LT.json": () => import("./lt-LT-BhzsTniu.js"),
"../../ui/language/lv-LV.json": () => import("./lv-LV-B6yxwa6Z.js"),
"../../ui/language/nl-NL.json": () => import("./nl-NL-4iZ44kzK.js"),
"../../ui/language/no-NO.json": () => import("./no-NO-BSJ1rjY4.js"),
"../../ui/language/pl-PL.json": () => import("./pl-PL-BHjlKdWC.js"),
"../../ui/language/pt-BR.json": () => import("./pt-BR-BMIZHo3V.js"),
"../../ui/language/pt-PT.json": () => import("./pt-PT-s_KcBKav.js"),
"../../ui/language/ro-RO.json": () => import("./ro-RO-DsFmqo3p.js"),
"../../ui/language/sk-SK.json": () => import("./sk-SK-BspZv60l.js"),
"../../ui/language/sl-SI.json": () => import("./sl-SI-D26FDPwq.js"),
"../../ui/language/sv-SE.json": () => import("./sv-SE-JKGeqd9J.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 as t };