UNPKG

@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
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 };