@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.
974 lines • 1.82 MB
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] = "b0a79239-1744-44f0-94a2-cf60150c8001", e._sentryDebugIdIdentifier = "sentry-dbid-b0a79239-1744-44f0-94a2-cf60150c8001");
} catch (e) {}
import { a as Icon, i as Typography, o as createLogger, r as useTranslation, t as Trans } from "./translation-BYvhW5zA.js";
import { C as useDataset, J as extractFieldName, M as ExperimentNames, N as FeatureNames, T as datasetUtilities, Z as hasEmptyFields, ft as useAccountHolder, j as useToggleContext, k as Header, nt as isEmpty, q as concatenateFieldNames, tt as isAccountIdentifierObscured, w as datasetIdentifier, x as Alert } from "./resolveEnvironment-DNmu53Rr.js";
import { t as Button } from "./Button-i8I2dHP8.js";
import { n as httpGet, r as httpPost, s as useApiContext } from "./http-8qgzqVqk.js";
import { t as LegalEntityTypes } from "./legal-entity-type-0MfCGzUf.js";
import { t as getLegalEntityCountry } from "./getLegalEntityCountry-BHh7Ux8v.js";
import { t as useSettingsContext } from "./useSettingsContext-Bpf4UqRT.js";
import { l as keysOf, n as cloneObject, o as objectsDeepEqual } from "./AnalyticsContext-BFrJmsp0.js";
import { t as StackLayout } from "./StackLayout-IUdNMDgW.js";
import { t as CountryCodes } from "./country-code-CJk2hdPu.js";
import { t as TaskTypes } from "./taskTypes-NawDTp5n.js";
import { d as hasOwnEntityAssociationOfType } from "./entityAssociationUtil-C-wflW8q.js";
import { t as EEA_Countries } from "./countries-CPj8hkLs.js";
import { t as Card } from "./Card-BCGLpdw7.js";
import { i as useAnalyticsContext, t as Modal } from "./Modal-BLP2aF-u.js";
import { t as SettingNames } from "./types-Cwq1JAWT.js";
import { n as useToastContext, t as useInvalidateRootLegalEntity } from "./invalidateRootLegalEntity-DLpPeD5p.js";
import { n as translateTranslatable, r as LoaderWrapper } from "./utils-C1buyvRw.js";
import { t as Confirm } from "./Confirm-CA-gL38n.js";
import { n as Image } from "./unincorporated-partnership-nnTW3FnG.js";
import { n as getLegalEntityNameBasedOnType, r as getPayoutAccountHolderName } from "./getName-D4ECvzcI.js";
import { i as FormFlow, n as addValidityToForms, o as useFormComposer, r as getRequiredForms, s as FormContextProvider, t as useFormContext } from "./useFormContext-CYHfY4k5.js";
import { r as getPropsFromConfigurations, t as augmentWithCountryConfigs } from "./process-field-configurations-DQlTj--V.js";
import { t as ErrorPanel } from "./ErrorPanel-DGlzO81g.js";
import { t as trackNavigation } from "./trackNavigation-DR70qR8T.js";
import { n as mergeFieldMetadataIntoProps, t as createFormUtils } from "./formUtils-DVc3a6gf.js";
import { n as summaryStep } from "./Summary-HxzWpI7W.js";
import { r as summaryItem } from "./summaryItem-uDWmtYtt.js";
import { n as isNotEmptyValidator, t as useMultiForm } from "./useMultiForm-ducdUyQ6.js";
import { a as useUnifyLoadingStatus, i as useScenarioConfiguration, o as payoutAccountFormat, r as getPageName, t as mapExistingFile } from "./mapExistingFile-BmI24MBQ.js";
import { t as useTaskLandedEvent } from "./useTaskLandedEvent-BXtOctC4.js";
import { a as alphanumericInputs, c as nonInputs, i as alphaInputs, l as numericInputs, o as customInputs, s as makeMask, t as MaskedInput, u as spacer } from "./MaskedInput-_dYxgb7_.js";
import { a as mapCreateOrUpdateTransferInstrumentErrorMessageToTranslatable, i as isValidationError, o as processValidationErrors, r as isIdDocumentUploadError, s as isMaintenanceModeError, t as isBankStatementUploadError } from "./validationError-COmWiy16.js";
import { a as createDocumentRequest, i as bytesToSize, l as getFileExtention, n as fileValidationRules, o as documentApiUtils, r as DropzoneFile, s as getDocument, t as defaultFileValidationOptions } from "./validate-DkjeS-zE.js";
import { t as omitObscuredFieldsIfUnchanged } from "./omitObscuredFieldsIfUnchanged-BehYhDYw.js";
import { t as uppercase } from "./uppercase-DvjwUM0n.js";
import { o as validatePatternOnBlur } from "./patternValidators-DFve5Dzt.js";
import { t as bankStatementDescriptionPattern } from "./basePatterns-plHFNzgJ.js";
import { t as resolveFieldMetadata } from "./fieldConfigurations-CZCFghnK.js";
import { t as Field } from "./Field-DoXLi6EY.js";
import { t as LandingLayout } from "./LandingLayout-CUAkXrpL.js";
import { t as Select } from "./Select-DUo2rOfa.js";
import { t as TextArea } from "./TextArea-CT04Dg1N.js";
import { t as Link } from "./Link-JFzfaUOa.js";
import { t as InputText } from "./InputText-B0N7am-q.js";
import { n as CountryField } from "./CountryField-D-Q958WF.js";
import { t as ContextGuidance } from "./ContextGuidance-R45SnI5u.js";
import { t as createFormRules } from "./form-rules-CUUQGacJ.js";
import { t as Tag } from "./Tag-CNeDHqKp.js";
import { n as useTransferInstrument, t as mapTransferInstrumentToPayoutAccount } from "./mapTransferInstrumentToPayoutAccount-CxdVWYkh.js";
import { t as Currencies } from "./currency-DQwXq9Mc.js";
import { t as currencyByCountry } from "./types-QSnyOf8p.js";
import { t as useUnincorporatedPartnershipMembers } from "./useUnincorporatedPartnershipMembers-7T2XW_zN.js";
import { t as Divider } from "./Divider-BENvVRnz.js";
import { lazy, memo, useMemo, useRef, useState } from "preact/compat";
import { useCallback as useCallback$1, useContext as useContext$1, useEffect as useEffect$1, useMemo as useMemo$1, useRef as useRef$1, useState as useState$1 } from "preact/hooks";
import cx from "classnames";
import { Fragment as Fragment$1, jsx, jsxs } from "preact/jsx-runtime";
import { signal } from "@preact/signals";
import { skipToken, useMutation, useQuery, useQueryClient } from "@tanstack/preact-query";
import { createContext as createContext$1 } from "preact";
import { Show } from "@preact/signals/utils";
import OpenBankingSDK from "@adyen/openbankingsdk";
//#region src/api/check/useCheck.ts
var performCheck = async (legalEntityId, baseUrl, data) => {
return httpPost({
baseUrl,
path: `legalEntities/${legalEntityId}/checks/bankAccount`
}, data);
};
var useCheck = (options) => {
const { rootLegalEntityId, baseUrl: url } = useApiContext();
return useMutation({
mutationFn: (data) => performCheck(rootLegalEntityId.value, url.value, data),
...options
});
};
//#endregion
//#region src/api/transferInstruments/useBankVerificationProviders.ts
var getBankVerificationProviders = async (legalEntityId, baseUrl, queryParams) => {
const { country, locale, configId } = queryParams;
return httpGet({
baseUrl,
path: `legalEntities/${legalEntityId}/transferInstruments/trusted/providers?${new URLSearchParams({
country,
locale,
...configId && { configId }
})}`
});
};
/**
* Retrieves the list of bank verification providers and their respective urls.
* Bank verification providers are used to instantly verify payout accounts.
* @param queryParams the relevant country, locale, and configId
* @param options additional options passed to Tanstack Query, eg; onSuccess
*/
var useBankVerificationProviders = (queryParams, options) => {
const { rootLegalEntityId, baseUrl } = useApiContext();
return useQuery({
queryKey: ["bankVerificationProviders", queryParams],
queryFn: () => getBankVerificationProviders(rootLegalEntityId.value, baseUrl.value, queryParams),
...options
});
};
//#endregion
//#region src/api/transferInstruments/useCreateTransferInstrument.ts
var createTransferInstrument = async (rootLegalEntityId, baseUrl, transferInstrument) => {
return httpPost({
baseUrl,
path: `legalEntities/${rootLegalEntityId}/transferInstruments`
}, transferInstrument);
};
//#endregion
//#region src/api/transferInstruments/useCreateTrustedTransferInstrument.ts
var createTrustedTransferInstrument = async (legalEntityId, baseUrl, data) => {
return httpPost({
baseUrl,
path: `legalEntities/${legalEntityId}/transferInstruments/trusted`
}, data);
};
/**
* Creates a trusted transfer instrument in LEM using the information provided by Open Banking
* @param options additional options passed to Tanstack Query, eg; onSuccess
*/
var useCreateTrustedTransferInstrument = (options) => {
const { rootLegalEntityId, baseUrl } = useApiContext();
return useMutation({
mutationFn: (data) => createTrustedTransferInstrument(rootLegalEntityId.value, baseUrl.value, data),
...options
});
};
//#endregion
//#region src/api/transferInstruments/useUpdateTransferInstrument.ts
var updateTransferInstrument = async (legalEntityId, baseUrl, transferInstrument, transferInstrumentId) => {
return httpPost({
baseUrl,
path: `legalEntities/${legalEntityId}/transferInstruments/${transferInstrumentId}`
}, transferInstrument);
};
/**
* Updates a transfer instrument associated with a legal entity
* When update is successful, updates the transfer instrument query and invalidates transfer instruments
* @param options additional options passed to Tanstack Query
*/
var useUpdateTransferInstrument = (options) => {
const { rootLegalEntityId, baseUrl } = useApiContext();
const queryClient = useQueryClient();
return useMutation({
mutationFn: ({ transferInstrument, transferInstrumentId }) => updateTransferInstrument(rootLegalEntityId.value, baseUrl.value, transferInstrument, transferInstrumentId),
onSuccess: async (transferInstrument) => {
queryClient.setQueryData(["transferInstrument", transferInstrument.id], transferInstrument);
await queryClient.invalidateQueries({ queryKey: ["transferInstruments"] });
},
...options
});
};
//#endregion
//#region src/api/transferInstruments/useUpdateTrustedTransferInstrument.ts
var updateTrustedTransferInstrument = async (legalEntityId, baseUrl, preferredCurrencyCode, transferInstrumentId) => {
return httpPost({
baseUrl,
path: `legalEntities/${legalEntityId}/transferInstruments/trusted/${transferInstrumentId}`
}, { preferredCurrencyCode });
};
/**
* Updates a trusted transfer instrument associated with a legal entity
* When update is successful, updates the transfer instrument query and invalidates transfer instruments
* @param options additional options passed to Tanstack Query
*/
var useUpdateTrustedTransferInstrument = (options) => {
const { rootLegalEntityId, baseUrl } = useApiContext();
return useMutation({
mutationFn: ({ preferredCurrencyCode, transferInstrumentId }) => updateTrustedTransferInstrument(rootLegalEntityId.value, baseUrl.value, preferredCurrencyCode, transferInstrumentId),
...options
});
};
//#endregion
//#region src/datasets/generators/getAccountFormatForCountry.ts
var accountFormatsImports = /* @__PURE__ */ Object.assign({
"../accountFormats/AD.json": () => import("./AD-Clkur2Hx.js"),
"../accountFormats/AE.json": () => import("./AE-BUOfE-VR.js"),
"../accountFormats/AI.json": () => import("./AI-BApAOdVW.js"),
"../accountFormats/AL.json": () => import("./AL-DfPgkH9x.js"),
"../accountFormats/AR.json": () => import("./AR-Bddz61XJ.js"),
"../accountFormats/AS.json": () => import("./AS-C3xgvOIz.js"),
"../accountFormats/AT.json": () => import("./AT-DnJdtYnd.js"),
"../accountFormats/AU.json": () => import("./AU-DL1fsj76.js"),
"../accountFormats/AX.json": () => import("./AX-BTtRN-MP.js"),
"../accountFormats/AZ.json": () => import("./AZ-CXVL6e85.js"),
"../accountFormats/BA.json": () => import("./BA-27B-jpFq.js"),
"../accountFormats/BE.json": () => import("./BE-BSUwgR6_.js"),
"../accountFormats/BG.json": () => import("./BG-ChvSTIBz.js"),
"../accountFormats/BH.json": () => import("./BH-D1HvWueK.js"),
"../accountFormats/BM.json": () => import("./BM-bLwVUrnz.js"),
"../accountFormats/BR.json": () => import("./BR-nSEEl5uz.js"),
"../accountFormats/BS.json": () => import("./BS-Bf402NRj.js"),
"../accountFormats/BV.json": () => import("./BV-CJwVioP4.js"),
"../accountFormats/BY.json": () => import("./BY-CYaB1wEE.js"),
"../accountFormats/CA.json": () => import("./CA-B49VPJKw.js"),
"../accountFormats/CH.json": () => import("./CH-BASES6q1.js"),
"../accountFormats/CN.json": () => import("./CN-CEIcYgEd.js"),
"../accountFormats/CR.json": () => import("./CR-CU6MVhAz.js"),
"../accountFormats/CY.json": () => import("./CY-DSZIX0eb.js"),
"../accountFormats/CZ.json": () => import("./CZ-CUYgGHVo.js"),
"../accountFormats/DE.json": () => import("./DE-3Qc-SfVV.js"),
"../accountFormats/DK.json": () => import("./DK--Bs4HfJM.js"),
"../accountFormats/DO.json": () => import("./DO-D4wgMRWE.js"),
"../accountFormats/EC.json": () => import("./EC-B2FGK-mr.js"),
"../accountFormats/EE.json": () => import("./EE-qXeASUC-.js"),
"../accountFormats/ES.json": () => import("./ES-BBz54aGb.js"),
"../accountFormats/FI.json": () => import("./FI-DHkXLS9S.js"),
"../accountFormats/FJ.json": () => import("./FJ-V_2w3UTO.js"),
"../accountFormats/FO.json": () => import("./FO-DR-Xnm7u.js"),
"../accountFormats/FR.json": () => import("./FR-CtpYelsq.js"),
"../accountFormats/GB.json": () => import("./GB-G_B8HSJg.js"),
"../accountFormats/GE.json": () => import("./GE-By9lo4py.js"),
"../accountFormats/GF.json": () => import("./GF-B0xFBl9q.js"),
"../accountFormats/GG.json": () => import("./GG-bAeosM_i.js"),
"../accountFormats/GI.json": () => import("./GI-DfkPsLw0.js"),
"../accountFormats/GL.json": () => import("./GL-DhRtJPZY.js"),
"../accountFormats/GP.json": () => import("./GP-DNyYQvJw.js"),
"../accountFormats/GR.json": () => import("./GR-DK-QrYIO.js"),
"../accountFormats/GT.json": () => import("./GT-BRuMYK92.js"),
"../accountFormats/GU.json": () => import("./GU-DAYIt05K.js"),
"../accountFormats/HK.json": () => import("./HK-DeKSh6yq.js"),
"../accountFormats/HR.json": () => import("./HR-D0EqC8kx.js"),
"../accountFormats/HU.json": () => import("./HU-DIT5cG5Z.js"),
"../accountFormats/ID.json": () => import("./ID-BBzj2tyK.js"),
"../accountFormats/IE.json": () => import("./IE-CxtzANSG.js"),
"../accountFormats/IL.json": () => import("./IL-CgJ0eWPT.js"),
"../accountFormats/IM.json": () => import("./IM-Ca1LRzUz.js"),
"../accountFormats/IN.json": () => import("./IN--pr2-g7e.js"),
"../accountFormats/IS.json": () => import("./IS-BZeqGau3.js"),
"../accountFormats/IT.json": () => import("./IT-BioiAQgd.js"),
"../accountFormats/JE.json": () => import("./JE-BCj36onT.js"),
"../accountFormats/JM.json": () => import("./JM-b03xrGTz.js"),
"../accountFormats/JO.json": () => import("./JO-CA8m_H5N.js"),
"../accountFormats/JP.json": () => import("./JP-DroDT2u3.js"),
"../accountFormats/KR.json": () => import("./KR-BkBLDQIT.js"),
"../accountFormats/KW.json": () => import("./KW-dB3SXEf8.js"),
"../accountFormats/KY.json": () => import("./KY-mZ-zKVkq.js"),
"../accountFormats/KZ.json": () => import("./KZ-CcyUPGdv.js"),
"../accountFormats/LB.json": () => import("./LB-DmtcVmjU.js"),
"../accountFormats/LI.json": () => import("./LI-haSXATP0.js"),
"../accountFormats/LT.json": () => import("./LT-CYlhLD3-.js"),
"../accountFormats/LU.json": () => import("./LU-CnQilYzI.js"),
"../accountFormats/LV.json": () => import("./LV-BJoOuCmD.js"),
"../accountFormats/MC.json": () => import("./MC-1OhRuam2.js"),
"../accountFormats/MD.json": () => import("./MD-DN7TRpmW.js"),
"../accountFormats/ME.json": () => import("./ME-CuMiA40n.js"),
"../accountFormats/MK.json": () => import("./MK-DGR-uR66.js"),
"../accountFormats/MP.json": () => import("./MP-xhfj0dkC.js"),
"../accountFormats/MQ.json": () => import("./MQ-CZu5G2-t.js"),
"../accountFormats/MR.json": () => import("./MR--V7elAIS.js"),
"../accountFormats/MT.json": () => import("./MT-BmkVDeF2.js"),
"../accountFormats/MU.json": () => import("./MU-LzgqzZzT.js"),
"../accountFormats/MX.json": () => import("./MX-z-WoZkPd.js"),
"../accountFormats/MY.json": () => import("./MY-WsFwWp2U.js"),
"../accountFormats/NC.json": () => import("./NC-B9M8cc6C.js"),
"../accountFormats/NL.json": () => import("./NL-CXjh0eXG.js"),
"../accountFormats/NO.json": () => import("./NO-BuWcaqBm.js"),
"../accountFormats/NZ.json": () => import("./NZ-BDDXct1F.js"),
"../accountFormats/PE.json": () => import("./PE-DJZc_8Lk.js"),
"../accountFormats/PF.json": () => import("./PF-D593LuXT.js"),
"../accountFormats/PH.json": () => import("./PH-CJRjYgx3.js"),
"../accountFormats/PK.json": () => import("./PK-C1TVRYA6.js"),
"../accountFormats/PL.json": () => import("./PL-C3tudSnw.js"),
"../accountFormats/PM.json": () => import("./PM-CPvVGX_s.js"),
"../accountFormats/PR.json": () => import("./PR-C6mnN4I1.js"),
"../accountFormats/PS.json": () => import("./PS-Bqa7HAb6.js"),
"../accountFormats/PT.json": () => import("./PT-BHFP2Jx8.js"),
"../accountFormats/QA.json": () => import("./QA-B2A0rFrR.js"),
"../accountFormats/RE.json": () => import("./RE-BSdvJRM5.js"),
"../accountFormats/RO.json": () => import("./RO-BZxtXYEM.js"),
"../accountFormats/RS.json": () => import("./RS-DAtcOeON.js"),
"../accountFormats/RU.json": () => import("./RU-CDpkuVOX.js"),
"../accountFormats/SA.json": () => import("./SA-BoAcP38a.js"),
"../accountFormats/SE.json": () => import("./SE-DX5R7MEM.js"),
"../accountFormats/SG.json": () => import("./SG-Dm4nWFwC.js"),
"../accountFormats/SI.json": () => import("./SI-CbzJWJo5.js"),
"../accountFormats/SJ.json": () => import("./SJ-C0EiPIY7.js"),
"../accountFormats/SK.json": () => import("./SK-Bg9K35hT.js"),
"../accountFormats/SM.json": () => import("./SM-BAP1izca.js"),
"../accountFormats/TF.json": () => import("./TF-BzLXwUD9.js"),
"../accountFormats/TH.json": () => import("./TH-wvwE8m03.js"),
"../accountFormats/TL.json": () => import("./TL-CAwOhktT.js"),
"../accountFormats/TN.json": () => import("./TN-Bs-VE6A_.js"),
"../accountFormats/TR.json": () => import("./TR-7uYc2xp7.js"),
"../accountFormats/TT.json": () => import("./TT-DbzL2xhJ.js"),
"../accountFormats/TW.json": () => import("./TW-BTAvA4FA.js"),
"../accountFormats/UA.json": () => import("./UA-BAkAL82L.js"),
"../accountFormats/US.json": () => import("./US-BXek71cY.js"),
"../accountFormats/UY.json": () => import("./UY-Bq43JSIl.js"),
"../accountFormats/VA.json": () => import("./VA-CHkQ7jk0.js"),
"../accountFormats/VG.json": () => import("./VG-DnUOjTKa.js"),
"../accountFormats/VI.json": () => import("./VI-CjjaTPrq.js"),
"../accountFormats/VN.json": () => import("./VN-DgqMueJl.js"),
"../accountFormats/WF.json": () => import("./WF-Czcwchbb.js"),
"../accountFormats/YT.json": () => import("./YT-BTQIBrb1.js"),
"../accountFormats/ZA.json": () => import("./ZA-BAufwt8q.js")
});
var getAccountFormatsForCountry = async (country) => {
const importForCountry = accountFormatsImports[`../accountFormats/${country}.json`];
if (!importForCountry) throw Error(`No account formats available for ${country}`);
return {
...(await importForCountry()).default,
numberAndBic: {
bankStatementRequirement: "OPTIONAL",
fields: ["bankAccountNumber", "swiftCode"]
}
};
};
//#endregion
//#region src/api/documentValidation/useDocumentMultipartValidate.ts
var validateDocumentMultipart = async (context, request) => {
const { baseUrl, rootLegalEntityId } = context;
const formData = new FormData();
formData.append("file", request.file, request.fileName);
formData.append("fileName", request.fileName);
formData.append("documentType", request.documentType);
formData.append("sessionId", request.sessionId);
return httpPost({
baseUrl,
path: `legalEntities/${rootLegalEntityId}/genai/classifyDocument`
}, formData);
};
var useValidateDocumentMultipart = (options) => {
const { rootLegalEntityId, baseUrl } = useApiContext();
return useMutation({
mutationFn: (payload) => validateDocumentMultipart({
rootLegalEntityId: rootLegalEntityId.value,
baseUrl: baseUrl.value
}, payload),
retry: 0,
...options
});
};
//#endregion
//#region src/components/ui/molecules/Dropzone/FilePicker.tsx
function FilePicker({ files, setFiles, isValid, errorMessage, multiple = false, label, name, iconPrefix = "generic-document", enableTracking = false, id, loading, allowedFileTypes, maxSize, isOptional, maxNumberOfFiles, "aria-describedby": ariaDescribedBy, "aria-labelledby": ariaLabelledBy }) {
const { t } = useTranslation("ui");
const userEvents = useAnalyticsContext();
const fileInput = useRef$1(null);
const [dragged, setDragged] = useState$1(false);
const hasRequiredError = errorMessage === "fieldIsRequired";
const showDropzone = files.length < maxNumberOfFiles;
const openFilePicker = () => fileInput.current?.click();
const handleFileDelete = (fileToDelete) => {
setFiles(files.filter((file) => file !== fileToDelete));
if (enableTracking) userEvents.addFieldEvent("Interacted with form field", {
actionType: "remove",
field: name || "dropzone"
});
};
const handleDragEnter = (e) => {
e.preventDefault();
e.stopPropagation();
};
const handleDragLeave = (e) => {
e.preventDefault();
e.stopPropagation();
setDragged(false);
};
const handleDragOver = (e) => {
e.preventDefault();
e.stopPropagation();
setDragged(true);
};
const handleDrop = (e) => {
e.preventDefault();
e.stopPropagation();
if (e.dataTransfer) addFiles(e.dataTransfer.files);
setDragged(false);
};
const handleFilesChosen = (e) => {
const fileInput = e.currentTarget;
if (fileInput.files) addFiles(fileInput.files);
};
const addFiles = (newFiles) => {
if (enableTracking) userEvents.addFieldEvent("Interacted with form field", {
actionType: "change",
field: name || "dropzone"
});
setFiles([...newFiles, ...files]);
};
const allowedFileTypesString = allowedFileTypes.join(", ");
return /* @__PURE__ */ jsxs("div", { children: [
label && /* @__PURE__ */ jsx("div", {
className: cx("adyen-kyc-label__text", { "adyen-kyc-label__text--error": hasRequiredError }),
children: label
}),
files.map((file) => /* @__PURE__ */ jsx(DropzoneFile, {
file,
onDelete: () => {
handleFileDelete(file);
},
errorMessage,
iconPrefix,
loading
}, file)),
showDropzone && /* @__PURE__ */ jsxs("div", {
role: "region",
className: cx("adyen-kyc-dropzone", {
"adyen-kyc-dropzone--dragged": dragged,
"adyen-kyc-dropzone--error": !dragged && hasRequiredError
}),
onDrop: handleDrop,
onDragOver: handleDragOver,
onDragEnter: handleDragEnter,
onDragLeave: handleDragLeave,
children: [
/* @__PURE__ */ jsx("div", {
className: "adyen-kyc-dropzone__icon",
children: /* @__PURE__ */ jsx(Icon, { name: "upload" })
}),
/* @__PURE__ */ jsxs("div", {
className: "adyen-kyc-dropzone__labels",
children: [
/* @__PURE__ */ jsx(Typography, {
el: "h4",
variant: "body-strongest",
children: t(($) => $["dropFileToUpload"])
}),
/* @__PURE__ */ jsx(Typography, {
color: "secondary",
children: t(($) => $["supportedFileTypes"], { fileTypes: allowedFileTypesString })
}),
/* @__PURE__ */ jsx(Typography, {
color: "secondary",
children: t(($) => $["maxFileSizeOnly"], { maxSize: bytesToSize(maxSize) })
}),
/* @__PURE__ */ jsx(Typography, {
color: "secondary",
children: t(($) => $["upToFiles"], { maxFiles: maxNumberOfFiles })
})
]
}),
/* @__PURE__ */ jsx("div", {
className: "adyen-kyc-dropzone__button",
children: /* @__PURE__ */ jsx(Button, {
onClick: openFilePicker,
variant: "secondary",
children: t(($) => $["browseFiles"])
})
}),
/* @__PURE__ */ jsx("input", {
id,
className: "adyen-kyc-dropzone__input",
ref: fileInput,
multiple,
accept: allowedFileTypesString,
onChange: handleFilesChosen,
type: "file",
"aria-required": !isOptional,
"aria-describedby": ariaDescribedBy,
"aria-labelledby": ariaLabelledBy,
"data-testid": "hidden-file-input",
"aria-invalid": !isValid
})
]
}),
hasRequiredError && /* @__PURE__ */ jsx("div", {
className: "adyen-kyc-error-text",
children: t(($) => $["fieldIsRequired"])
})
] });
}
//#endregion
//#region src/utils/getFormSlice.ts
function getFormSlice(form, formName) {
return {
data: form.data[formName],
valid: form.valid[formName],
errors: form.errors[formName],
requiredFields: form.requiredFields?.[formName],
optionalFields: form.optionalFields?.[formName],
obscuredFields: form.obscuredFields?.[formName],
trustedFields: form.trustedFields?.[formName],
handleChange: (key, mode) => form.handleChangeFor(formName, key, mode)
};
}
//#endregion
//#region src/components/BankAccount/fields/BankAccountNumber/fieldConfig.ts
var simpleBankAccountNumberMetadata = (example, length, maxLength) => {
if (maxLength) return {
validators: validatePatternOnBlur(new RegExp(`^\\d{${length},${maxLength}}$`)),
mask: { mask: makeMask(...numericInputs(length), ...numericInputs(maxLength - length, true)) },
guidanceText: {
key: "enterAMaximumOfNDigitsForExample",
values: {
maxDigits: `${maxLength}`,
example
}
}
};
return {
validators: validatePatternOnBlur(new RegExp(`^\\d{${length}}$`)),
mask: { mask: makeMask(...numericInputs(length)) },
guidanceText: {
key: "enterNDigitsForExample",
values: {
numDigits: `${length}`,
example
}
}
};
};
var defaultFieldMetadata$3 = { validators: isNotEmptyValidator };
var defaultFieldConfig$3 = {
[CountryCodes.CzechRepublic]: {
validators: validatePatternOnBlur(/^((\d{2}|\d{6})-)?\d*\d{2}$/),
mask: { mask: makeMask(...numericInputs(2), ...customInputs(1, /-|\d/), ...numericInputs(3), ...customInputs(1, /-|\d/), ...numericInputs(10)) },
guidanceText: {
key: "enterXToYDigitsWithOrWithoutPrefixForExample",
values: {
minDigits: "2",
maxDigits: "16",
firstExample: "19-123457",
secondExample: "123457"
}
}
},
[CountryCodes.Denmark]: simpleBankAccountNumberMetadata("2621955959", 10),
[CountryCodes.Norway]: simpleBankAccountNumberMetadata("86011117947", 11),
[CountryCodes.UnitedKingdom]: simpleBankAccountNumberMetadata("10000003", 8),
[CountryCodes.Australia]: simpleBankAccountNumberMetadata("0001234", 5, 10),
[CountryCodes.Brazil]: simpleBankAccountNumberMetadata("0009795493", 4, 12),
[CountryCodes.Canada]: simpleBankAccountNumberMetadata("10220001111", 5, 12),
[CountryCodes.HongKong]: {
validators: validatePatternOnBlur(new RegExp(`^\\d{6,18}$`)),
mask: { mask: makeMask(...numericInputs(6), ...numericInputs(12, true)) },
guidanceText: {
key: "enterAccountNumberWithBranchCodeForExample",
values: {
minDigits: "9",
maxDigits: "15",
example: "790000000"
}
}
},
[CountryCodes.Hungary]: simpleBankAccountNumberMetadata("117730161111101800000000", 24),
[CountryCodes.Singapore]: simpleBankAccountNumberMetadata("0052312891876", 4, 19),
[CountryCodes.Sweden]: simpleBankAccountNumberMetadata("123456789", 7, 10),
[CountryCodes.UnitedStates]: simpleBankAccountNumberMetadata("10220001111", 3, 17),
[CountryCodes.Poland]: {
validators: validatePatternOnBlur(/^\d{26}$/),
mask: { mask: makeMask(...numericInputs(2), spacer, ...numericInputs(4), spacer, ...numericInputs(4), spacer, ...numericInputs(4), spacer, ...numericInputs(4), spacer, ...numericInputs(4), spacer, ...numericInputs(4)) },
guidanceText: {
key: "enterNDigitsForExample",
values: {
numDigits: "26",
example: "98 1090 2402 7474 4662 2173 1624"
}
}
},
[CountryCodes.NewZealand]: {
validators: validatePatternOnBlur(/^\d{15,16}$/),
mask: { mask: makeMask(...numericInputs(2), ...nonInputs(" - "), ...numericInputs(4), ...nonInputs(" - "), ...numericInputs(7), ...nonInputs(" - "), ...numericInputs(2), ...numericInputs(1, true)) },
guidanceText: {
key: "enterXToYDigitsForExample",
values: {
minDigits: "15",
maxDigits: "16",
example: "12-8765-9876543-043"
}
}
}
};
//#endregion
//#region src/components/BankAccount/fields/BankCode/fieldConfig.ts
var defaultFieldMetadata$2 = {
label: "bankCode",
validators: isNotEmptyValidator
};
var simpleBankCodeMetadata = (length, example, label) => ({
label: label ?? "bankCode",
validators: validatePatternOnBlur(new RegExp(`^\\d{${length}}$`)),
mask: { mask: makeMask(...numericInputs(length)) },
guidanceText: {
key: "enterNDigitsForExample",
values: {
numDigits: `${length}`,
example
}
}
});
var defaultFieldConfig$2 = {
[CountryCodes.Brazil]: simpleBankCodeMetadata(3, "123"),
[CountryCodes.Canada]: simpleBankCodeMetadata(3, "001", "institutionNumber"),
[CountryCodes.CzechRepublic]: simpleBankCodeMetadata(4, "0800"),
[CountryCodes.Denmark]: simpleBankCodeMetadata(4, "5051"),
[CountryCodes.HongKong]: simpleBankCodeMetadata(3, "250"),
[CountryCodes.Norway]: simpleBankCodeMetadata(4, "8601"),
[CountryCodes.Ecuador]: simpleBankCodeMetadata(4, "1234"),
[CountryCodes.Japan]: simpleBankCodeMetadata(4, "1234"),
[CountryCodes.Taiwan]: simpleBankCodeMetadata(3, "123")
};
//#endregion
//#region src/components/BankAccount/fields/BranchCode/fieldConfig.ts
var defaultFieldMetadata$1 = {
label: "branchCode",
validators: isNotEmptyValidator
};
var defaultFieldConfig$1 = {
[CountryCodes.UnitedKingdom]: {
label: "sortCode",
validators: validatePatternOnBlur(/^\d{6}$/),
mask: { mask: makeMask(...numericInputs(6)) },
guidanceText: {
key: "enterNDigitsForExample",
values: {
numDigits: "6",
example: "401199"
}
}
},
[CountryCodes.Australia]: {
label: "bsbNumber",
validators: validatePatternOnBlur(/^\d{6}$/),
mask: { mask: makeMask(...numericInputs(3), ...nonInputs(" - "), ...numericInputs(3)) },
guidanceText: {
key: "enterNDigitsForExample",
values: {
numDigits: "6",
example: "033-547"
}
}
},
[CountryCodes.Brazil]: {
label: "branchCode",
validators: validatePatternOnBlur(/^\d{1,5}$/),
mask: { mask: makeMask(...numericInputs(1), ...numericInputs(4, true)) },
guidanceText: {
key: "enterAMaximumOfNDigitsForExample",
values: {
maxDigits: "5",
example: "36257"
}
}
},
[CountryCodes.Canada]: {
label: "transitNumber",
validators: validatePatternOnBlur(/^\d{5}$/),
mask: { mask: makeMask(...numericInputs(5)) },
guidanceText: {
key: "enterNDigitsForExample",
values: {
numDigits: "5",
example: "27601"
}
}
},
[CountryCodes.UnitedStates]: {
label: "routingNumber",
validators: validatePatternOnBlur(/^\d{9}$/),
mask: { mask: makeMask(...numericInputs(9)) },
guidanceText: {
key: "enterNDigitsForExample",
values: {
numDigits: "9",
example: "107005432"
}
}
},
[CountryCodes.Sweden]: {
label: "branchCode",
validators: validatePatternOnBlur(/^(\d{4}|8\d{4})$/),
mask: { mask: makeMask(...numericInputs(4), ...nonInputs(" - ", { displayEagerly: false }), ...numericInputs(1, true)) },
guidanceText: {
key: "enterXOrYDigitsForExample",
values: {
xDigits: "4",
yDigits: "5",
example: "5678 or 8635-2"
}
}
},
[CountryCodes.Indonesia]: {
label: "clearingCode",
validators: isNotEmptyValidator
}
};
//#endregion
//#region src/components/BankAccount/fields/Iban/ibanValidator.ts
/**
* Basic Bank Account Number pattern per country
*/
var bbanPatternsByCountry = {
[CountryCodes.Albania]: /\d{8}[\dA-Z]{16}/,
[CountryCodes.Andorra]: /\d{8}[\dA-Z]{12}/,
[CountryCodes.Austria]: /\d{16}/,
[CountryCodes.Azerbaijan]: /[\dA-Z]{4}\d{20}/,
[CountryCodes.Belgium]: /\d{12}/,
[CountryCodes.Bahrain]: /[A-Z]{4}[\dA-Z]{14}/,
[CountryCodes.BosniaAndHerzegovina]: /\d{16}/,
[CountryCodes.Brazil]: /\d{23}[A-Z][\dA-Z]/,
[CountryCodes.Bulgaria]: /[A-Z]{4}\d{6}[\dA-Z]{8}/,
[CountryCodes.CostaRica]: /\d{17}/,
[CountryCodes.Croatia]: /\d{17}/,
[CountryCodes.Cyprus]: /\d{8}[\dA-Z]{16}/,
[CountryCodes.CzechRepublic]: /\d{20}/,
[CountryCodes.Denmark]: /\d{14}/,
[CountryCodes.DominicanRepublic]: /[A-Z]{4}\d{20}/,
[CountryCodes.Estonia]: /\d{16}/,
[CountryCodes.FaroeIslands]: /\d{14}/,
[CountryCodes.Finland]: /\d{14}/,
[CountryCodes.France]: /\d{10}[\dA-Z]{11}\d{2}/,
[CountryCodes.Georgia]: /[\dA-Z]{2}\d{16}/,
[CountryCodes.Germany]: /\d{18}/,
[CountryCodes.Gibraltar]: /[A-Z]{4}[\dA-Z]{15}/,
[CountryCodes.Greece]: /\d{7}[\dA-Z]{16}/,
[CountryCodes.Greenland]: /\d{14}/,
[CountryCodes.Guatemala]: /[\dA-Z]{4}[\dA-Z]{20}/,
[CountryCodes.Hungary]: /\d{24}/,
[CountryCodes.Iceland]: /\d{22}/,
[CountryCodes.Ireland]: /[\dA-Z]{4}\d{14}/,
[CountryCodes.Israel]: /\d{19}/,
[CountryCodes.Italy]: /[A-Z]\d{10}[\dA-Z]{12}/,
[CountryCodes.Kazakhstan]: /\d{3}[\dA-Z]{13}/,
[CountryCodes.Kuwait]: /[A-Z]{4}[\dA-Z]{22}/,
[CountryCodes.Latvia]: /[A-Z]{4}[\dA-Z]{13}/,
[CountryCodes.Lebanon]: /\d{4}[\dA-Z]{20}/,
[CountryCodes.Liechtenstein]: /\d{5}[\dA-Z]{12}/,
[CountryCodes.Lithuania]: /\d{16}/,
[CountryCodes.Luxembourg]: /\d{3}[\dA-Z]{13}/,
[CountryCodes.Macedonia]: /\d{3}[\dA-Z]{10}\d{2}/,
[CountryCodes.Malta]: /[A-Z]{4}\d{5}[\dA-Z]{18}/,
[CountryCodes.Mauritania]: /\d{23}/,
[CountryCodes.Mauritius]: /[A-Z]{4}\d{19}[A-Z]{3}/,
[CountryCodes.Monaco]: /\d{10}[\dA-Z]{11}\d{2}/,
[CountryCodes.Moldova]: /[\dA-Z]{2}\d{18}/,
[CountryCodes.Montenegro]: /\d{18}/,
[CountryCodes.Netherlands]: /[A-Z]{4}\d{10}/,
[CountryCodes.Norway]: /\d{11}/,
[CountryCodes.Pakistan]: /[\dA-Z]{4}\d{16}/,
[CountryCodes.PalestinianTerritory]: /[\dA-Z]{4}\d{21}/,
[CountryCodes.Poland]: /\d{24}/,
[CountryCodes.Portugal]: /\d{21}/,
[CountryCodes.Romania]: /[A-Z]{4}[\dA-Z]{16}/,
[CountryCodes.SanMarino]: /[A-Z]\d{10}[\dA-Z]{12}/,
[CountryCodes.SaudiArabia]: /\d{2}[\dA-Z]{18}/,
[CountryCodes.Serbia]: /\d{18}/,
[CountryCodes.Slovakia]: /\d{20}/,
[CountryCodes.Slovenia]: /\d{15}/,
[CountryCodes.Spain]: /\d{20}/,
[CountryCodes.Sweden]: /\d{20}/,
[CountryCodes.Switzerland]: /\d{5}[\dA-Z]{12}/,
[CountryCodes.Tunisia]: /\d{20}/,
[CountryCodes.Turkey]: /\d{5}[\dA-Z]{17}/,
[CountryCodes.UnitedArabEmirates]: /\d{3}\d{16}/,
[CountryCodes.UnitedKingdom]: /[A-Z]{4}\d{14}/,
[CountryCodes.VirginIslandsBritish]: /[\dA-Z]{4}\d{16}/
};
/**
* For some regions the iban format is shared and therefore can accept IBANs starting
* with some other country code
*/
var customPrefixByCountry = {
[CountryCodes.Guernsey]: "GB",
[CountryCodes.Jersey]: "GB",
[CountryCodes.IsleOfMan]: "GB"
};
function ibanValidator(input, bankCountry) {
if (isEmpty(input)) return false;
const ibanInput = input.replace(/ /g, "").toUpperCase();
if (!/^([a-zA-Z0-9]{4} ){2,8}[a-zA-Z0-9]{1,4}|[a-zA-Z0-9]{12,34}$/.test(ibanInput)) return false;
const countryCode = ibanInput.substring(0, 2);
const allowedPrefix = customPrefixByCountry[bankCountry] ?? bankCountry;
if (countryCode !== allowedPrefix) return {
key: "yourIbanShouldBeginWith_",
values: { countryCode: allowedPrefix }
};
const bbanPattern = bbanPatternsByCountry[countryCode];
if (bbanPattern) {
if (!new RegExp(`^[A-Z]{2}\\d{2}${bbanPattern.source}$`, "").test(ibanInput)) return false;
}
const ibanCheck = ibanInput.substring(4, ibanInput.length) + ibanInput.substring(0, 4);
let leadingZeroes = true;
let ibanCheckDigits = "";
for (let i = 0; i < ibanCheck.length; i += 1) {
const charAt = ibanCheck.charAt(i);
if (charAt !== "0") leadingZeroes = false;
if (!leadingZeroes) ibanCheckDigits += "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".indexOf(charAt);
}
let cRest = 0;
for (let p = 0; p < ibanCheckDigits.length; p += 1) {
const cChar = ibanCheckDigits.charAt(p);
cRest = +`${cRest}${cChar}` % 97;
}
return cRest === 1;
}
//#endregion
//#region src/components/BankAccount/fields/Iban/fieldConfig.ts
var validateIbanOnBlurAndInput = (country) => ({
modes: ["blur", "input"],
validate: (iban) => ibanValidator(iban, country) === true,
errorMessage: (iban) => {
const result = ibanValidator(iban, country);
return typeof result === "boolean" ? void 0 : result;
}
});
var ibanMask = (country, inputLength, allowLettersInBban) => {
const tokens = [];
tokens.push(...nonInputs(country, { includeInValue: true }), ...numericInputs(2));
inputLength -= 2;
const inputToken = allowLettersInBban ? alphanumericInputs : numericInputs;
const numGroups = Math.floor(inputLength / 4);
const remainder = inputLength % 4;
for (let i = 0; i < numGroups; i += 1) tokens.push(spacer, ...inputToken(4));
if (remainder > 0) tokens.push(spacer, ...inputToken(remainder));
return {
mask: makeMask(...tokens),
transformOnType: allowLettersInBban ? uppercase : void 0
};
};
var ibanGuidance = (type, numDigitsOrChars, example) => type === "digits" ? {
key: "enterTheRemainingNDigitsForExample",
values: {
numDigits: `${numDigitsOrChars}`,
example
}
} : {
key: "enterTheRemainingNCharactersForExample",
values: {
numChars: `${numDigitsOrChars}`,
example
}
};
var ibanMetadata = (country, inputLength, example, allowLettersInBban) => ({
validators: validateIbanOnBlurAndInput(country),
mask: ibanMask(country, inputLength, allowLettersInBban),
guidanceText: ibanGuidance(allowLettersInBban ? "characters" : "digits", inputLength, example)
});
var gbIbanMetadata = ibanMetadata(CountryCodes.UnitedKingdom, 20, "GB09 BARC 2003 9554 8297 59", true);
var defaultFieldMetadata = { validators: isNotEmptyValidator };
var defaultFieldConfig = {
[CountryCodes.Austria]: ibanMetadata(CountryCodes.Austria, 18, "AT88 5400 0746 7265 9747"),
[CountryCodes.Belgium]: ibanMetadata(CountryCodes.Belgium, 14, "BE59 9788 6743 2226"),
[CountryCodes.Croatia]: ibanMetadata(CountryCodes.Croatia, 19, "HR51 2484 0083 5929 6973 8"),
[CountryCodes.Cyprus]: ibanMetadata(CountryCodes.Cyprus, 26, "CY17 0020 0128 0000 0012 0052 7600", true),
[CountryCodes.CzechRepublic]: ibanMetadata(CountryCodes.CzechRepublic, 22, "CZ65 0800 0000 1920 0014 5399"),
[CountryCodes.Denmark]: ibanMetadata(CountryCodes.Denmark, 16, "DK95 2000 0123 4567 89"),
[CountryCodes.Estonia]: ibanMetadata(CountryCodes.Estonia, 18, "EE26 1291 5123 1542 6371"),
[CountryCodes.Finland]: ibanMetadata(CountryCodes.Finland, 16, "FI21 1234 5600 0007 85"),
[CountryCodes.Germany]: ibanMetadata(CountryCodes.Germany, 20, "DE91 1000 0000 0123 4567 89"),
[CountryCodes.Greece]: ibanMetadata(CountryCodes.Greece, 25, "GR57 0107 7142 7681 6687 9575 217", true),
[CountryCodes.Hungary]: ibanMetadata(CountryCodes.Hungary, 26, "HU68 1070 0024 3428 4128 3192 4812"),
[CountryCodes.Lithuania]: ibanMetadata(CountryCodes.Lithuania, 18, "LT12 1000 0111 0100 1000"),
[CountryCodes.Luxembourg]: ibanMetadata(CountryCodes.Luxembourg, 18, "LU28 0019 4006 4475 0000", true),
[CountryCodes.Norway]: ibanMetadata(CountryCodes.Norway, 13, "NO83 3000 1234 567"),
[CountryCodes.Poland]: ibanMetadata(CountryCodes.Poland, 26, "PL98 1090 2402 7474 4662 2173 1624"),
[CountryCodes.Portugal]: ibanMetadata(CountryCodes.Portugal, 23, "PT42 0035 0651 8646 9119 5263 5"),
[CountryCodes.Slovakia]: ibanMetadata(CountryCodes.Slovakia, 22, "SK25 5173 1333 4916 3219 3521"),
[CountryCodes.Slovenia]: ibanMetadata(CountryCodes.Slovenia, 17, "SI56 1920 0123 4567 892"),
[CountryCodes.Spain]: ibanMetadata(CountryCodes.Spain, 22, "ES91 2100 0418 4502 0005 1332"),
[CountryCodes.Sweden]: ibanMetadata(CountryCodes.Sweden, 22, "SE72 8000 0810 3400 0978 3242"),
[CountryCodes.Bulgaria]: ibanMetadata(CountryCodes.Bulgaria, 20, "BG17 BNPA 9440 4432 7749 93", true),
[CountryCodes.France]: ibanMetadata(CountryCodes.France, 25, "FR64 1009 6000 4035 3425 9742 Y90", true),
[CountryCodes.Gibraltar]: ibanMetadata(CountryCodes.Gibraltar, 21, "GI75 NWBK 0000 0000 7099 453", true),
[CountryCodes.Ireland]: ibanMetadata(CountryCodes.Ireland, 20, "IE64 IRCE 9205 0112 3456 78", true),
[CountryCodes.Italy]: ibanMetadata(CountryCodes.Italy, 25, "IT06 L030 0203 2809 8485 8934 882", true),
[CountryCodes.Latvia]: ibanMetadata(CountryCodes.Latvia, 19, "LV80 BANK 0000 4351 9500 1", true),
[CountryCodes.Liechtenstein]: ibanMetadata(CountryCodes.Liechtenstein, 19, "LI21 0881 0000 2324 013A A", true),
[CountryCodes.Malta]: ibanMetadata(CountryCodes.Malta, 29, "MT84 MALT 0110 0001 2345 MTLC AST0 01S", true),
[CountryCodes.Monaco]: ibanMetadata(CountryCodes.Monaco, 25, "MC58 1122 2000 0101 2345 6789 030", true),
[CountryCodes.Netherlands]: ibanMetadata(CountryCodes.Netherlands, 16, "NL50 ABNA 4452 7591 49", true),
[CountryCodes.Romania]: ibanMetadata(CountryCodes.Romania, 22, "RO36 PORL 9596 9966 4965 4284", true),
[CountryCodes.Switzerland]: ibanMetadata(CountryCodes.Switzerland, 19, "CH56 0483 5012 3456 7800 9", true),
[CountryCodes.UnitedKingdom]: gbIbanMetadata,
[CountryCodes.Guernsey]: gbIbanMetadata,
[CountryCodes.Jersey]: gbIbanMetadata,
[CountryCodes.IsleOfMan]: gbIbanMetadata
};
//#endregion
//#region src/components/BankAccount/fields/SwiftCode/fieldConfig.ts
var swiftCodeFieldMetadata = {
validators: validatePatternOnBlur(/^([a-zA-Z0-9]{8}|[a-zA-Z0-9]{11})$/),
mask: {
mask: makeMask(...alphaInputs(6), ...alphanumericInputs(2), ...alphanumericInputs(3, true)),
transformOnType: uppercase
}
};
//#endregion
//#region src/components/BankAccount/forms/BankDocument/validate.ts
var bankDocumentValidationRules = { description: {
modes: ["blur"],
validate: (description) => description ? bankStatementDescriptionPattern.test(description) : true,
errorMessage: "invalidFormatBankStatementDescription"
} };
//#endregion
//#region src/components/BankAccount/forms/BankVerification/validate.ts
var bankVerificationValidationRules = {
verifiedAccountHolder: {
modes: ["blur"],
validate: (verifiedAccountHolder) => !isEmpty(verifiedAccountHolder),
errorMessage: "fieldIsRequired"
},
verifiedBankCountry: {
modes: ["blur"],
validate: (verifiedBankCountry) => !isEmpty(verifiedBankCountry),
errorMessage: "fieldIsRequired"
},
verifiedBankName: {
modes: ["blur"],
validate: (verifiedBankName) => !isEmpty(verifiedBankName),
errorMessage: "fieldIsRequired"
},
verifiedCurrencyCode: {
modes: ["blur"],
validate: (verifiedCurrencyCode) => !isEmpty(verifiedCurrencyCode),
errorMessage: "fieldIsRequired"
},
verifiedBankAccountNumber: {
modes: ["blur"],
validate: (verifiedBankAccountNumber) => !isEmpty(verifiedBankAccountNumber),
errorMessage: "fieldIsRequired"
}
};
//#endregion
//#region src/components/BankAccount/tasks/PayoutDetailsDropin/validate.ts
var bankStatementValidationOptions = {
...defaultFileValidationOptions,
isOptional: false
};
function payoutCountryDetailsValidators() {
return {};
}
function payoutVerificationMethodValidators() {
return { payoutVerificationMethod: {
modes: ["blur"],
validate: (payoutVerificationMethod) => !!payoutVerificationMethod
} };
}
function payoutAccountDetailsValidators({ country }) {
const branchCodeMetadata = resolveFieldMetadata(defaultFieldConfig$1[country], {}, defaultFieldMetadata$1);
const bankAccountNumberMetadata = resolveFieldMetadata(defaultFieldConfig$3[country], {}, defaultFieldMetadata$3);
const ibanMetadata = resolveFieldMetadata(defaultFieldConfig[country], {}, defaultFieldMetadata);
const bankCodeMetadata = resolveFieldMetadata(defaultFieldConfig$2[country], {}, defaultFieldMetadata$2);
return {
branchCode: branchCodeMetadata.validators,
bankAccountNumber: bankAccountNumberMetadata.validators,
iban: ibanMetadata.validators,
swiftCode: swiftCodeFieldMetadata.validators,
bankCode: bankCodeMetadata.validators
};
}
function payoutAccountDocumentsValidators() {
return {
...bankDocumentValidationRules,
bankStatementDocument: fileValidationRules(bankStatementValidationOptions)
};
}
function payoutAccountVerificationValidators() {
return bankVerificationValidationRules;
}
var BankDocumentClassification_module_default = {
"requirements-list": "_requirements-list_y0dep_1",
requirementsList: "_requirements-list_y0dep_1",
"file-picker-disabled": "_file-picker-disabled_y0dep_9",
filePickerDisabled: "_file-picker-disabled_y0dep_9",
"review-modal": "_review-modal_y0dep_14",
reviewModal: "_review-modal_y0dep_14",
preview: "_preview_y0dep_23",
"preview-image": "_preview-image_y0dep_37",
previewImage: "_preview-image_y0dep_37",
content: "_content_y0dep_53"
};
//#endregion
//#region src/components/BankAccount/forms/BankDocument/PdfPreview.tsx
var workerSrc = new URL("data:text/javascript;base64,LyoqCiAqIEBsaWNzdGFydCBUaGUgZm9sbG93aW5nIGlzIHRoZSBlbnRpcmUgbGljZW5zZSBub3RpY2UgZm9yIHRoZQogKiBKYXZhU2NyaXB0IGNvZGUgaW4gdGhpcyBwYWdlCiAqCiAqIENvcHlyaWdodCAyMDI0IE1vemlsbGEgRm91bmRhdGlvbgogKgogKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKICoKICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAogKgogKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgogKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgogKgogKiBAbGljZW5kIFRoZSBhYm92ZSBpcyB0aGUgZW50aXJlIGxpY2Vuc2Ugbm90aWNlIGZvciB0aGUKICogSmF2YVNjcmlwdCBjb2RlIGluIHRoaXMgcGFnZQogKi8KLyoqCiAqIHBkZmpzVmVyc2lvbiA9IDUuNy4yODQKICogcGRmanNCdWlsZCA9IDdlNWIzNmMyZAogKi9jb25zdCBlPSEoIm9iamVjdCIhPXR5cGVvZiBwcm9jZXNzfHxwcm9jZXNzKyIiIT0iW29iamVjdCBwcm9jZXNzXSJ8fHByb2Nlc3MudmVyc2lvbnMubnd8fHByb2Nlc3MudmVyc2lvbnMuZWxlY3Ryb24mJnByb2Nlc3MudHlwZSYmImJyb3dzZXIiIT09cHJvY2Vzcy50eXBlKSx0PVsxLzAsMS8wLC0xLzAsLTEvMF0sYT1uZXcgRmxvYXQzMkFycmF5KHQpLG49Wy4wMDEsMCwwLC4wMDEsMCwwXSxzPTEuMzUscj0uMzUsaT0uMjU5MjU5MjU5MjU5MjU5MjQsbz0xLGw9MixmPTQsYz04LGg9MTYsdT02NCxtPTEyOCxwPTI1NixkPSJwZGZqc19pbnRlcm5hbF9lZGl0b3JfIixnPTMsYj05LHc9MTMsaj0xNSxrPTEwMSx5PXtQUklOVDo0LE1PRElGWV9DT05URU5UUzo4LENPUFk6MTYsTU9ESUZZX0FOTk9UQVRJT05TOjMyLEZJTExfSU5URVJBQ1RJVkVfRk9STVM6MjU2LENPUFlfRk9SX0FDQ0VTU0lCSUxJVFk6NTEyLEFTU0VNQkxFOjEwMjQsUFJJTlRfSElHSF9RVUFMSVRZOjIwNDh9LHE9MSx2PTIsUz0zLHg9MCxDPTQsRj0xLFQ9MixPPTMsUj17VEVYVDoxLExJTks6MixGUkVFVEVYVDozLExJTkU6NCxTUVVBUkU6NSxDSVJDTEU6NixQT0xZR09OOjcsUE9MWUxJTkU6OCxISUdITElHSFQ6OSxVTkRFUkxJTkU6MTAsU1FVSUdHTFk6MTEsU1RSSUtFT1VUOjEyLFNUQU1QOjEzLENBUkVUOjE0LElOSzoxNSxQT1BVUDoxNixGSUxFQVRUQUNITUVOVDoxNyxTT1VORDoxOCxNT1ZJRToxOSxXSURHRVQ6MjAsU0NSRUVOOjIxLFBSSU5URVJNQVJLOjIyLFRSQVBORVQ6MjMsV0FURVJNQVJLOjI0LFRIUkVFRDoyNSxSRURBQ1Q6MjZ9LEg9Ikdyb3VwIixEPSJSIixNPTEsTj0yLEU9NCxfPTE2LHo9MzIsTD0xMjgsVT01MTIsWD0xLFc9MixLPTQwOTYsRz04MTkyLFY9MzI3NjgsJD02NTUzNixZPTEzMTA3MixKPTEwNDg1NzYsUT0yMDk3MTUyLFo9ODM4ODYwOCxlZT0xNjc3NzIxNix0ZT0xLGFlPTIsbmU9MyxzZT00LHJlPTUsaWU9e0U6Ik1vdXNlIEVudGVyIixYOiJNb3VzZSBFeGl0IixEOiJNb3VzZSBEb3duIixVOiJNb3VzZSBVcCIsRm86IkZvY3VzIixCbDoiQmx1ciIsUE86IlBhZ2VPcGVuIixQQzoiUGFnZUNsb3NlIixQVjoiUGFnZVZpc2libGUiLFBJOiJQYWdlSW52aXNpYmxlIixLOiJLZXlzdHJva2UiLEY6IkZvcm1hdCIsVjoiVmFsaWRhdGUiLEM6IkNhbGN1bGF0ZSJ9LG9lPXtXQzoiV2lsbENsb3NlIixXUzoiV2lsbFNhdmUiLERTOiJEaWRTYXZlIixXUDoiV2lsbFByaW50IixEUDoiRGlkUHJpbnQifSxsZT17TzoiUGFnZU9wZW4iLEM6IlBhZ2VDbG9zZSJ9LGZlPTEsY2U9NSxoZT0xLHVlPTIsbWU9MyxwZT00LGRlPTUsZ2U9NixiZT03LHdlPTgsamU9OSxrZT0xMCx5ZT0xMSxxZT0xMix2ZT0xMyxTZT0xNCxBZT0xNSx4ZT0xNixDZT0xNyxJZT0xOCxGZT0xOSxUZT0yMCxPZT0yMSxSZT0yMixIZT0yMyxCZT0yNCxEZT0yNSxNZT0yNixOZT0yNyxQZT0yOCxFZT0yOSxfZT0zMCx6ZT0zMSxMZT0zMixVZT0zMyxYZT0zNCxXZT0zNSxLZT0zNixHZT0zNyxWZT0zOCwkZT0zOSxZZT00MCxKZT00MSxRZT00MixaZT00MyxldD00NCx0dD00NSxhdD00NixudD00NyxzdD00OCxydD00OSxpdD01MCxvdD01MSxsdD01MixmdD01MyxjdD01NCxodD01NSx1dD01NixtdD01NyxwdD01OCxkdD01OSxndD02MCxidD02MSx3dD02MixqdD02MyxrdD02NCx5dD02NSxxdD02Nix2dD02NyxTdD02OCxBdD02OSx4dD03MCxDdD03MSxJdD03MixGdD03MyxUdD03NCxPdD03NSxSdD03NixIdD03NyxCdD04MCxEdD04MSxNdD04MyxOdD04NCxQdD04NSxFdD04NixfdD04Nyx6dD04OCxMdD04OSxVdD05MCxYdD05MSxXdD05MixLdD05MyxHdD05NCxWdD0wLCR0PTEsWXQ9MixKdD0zLFF0PTQsWnQ9MSxlYT0yO2xldCB0YT1mZTtmdW5jdGlvbiBnZXRWZXJib3NpdHlMZXZlbCgpe3JldHVybiB0YX1mdW5jdGlvbiBpbmZvKGUpe3RhPj1jZSYmY29uc29sZS5pbmZvKGBJbmZvOiAke2V9YCl9ZnVuY3Rpb24gd2FybihlKXt0YT49ZmUmJmNvbnNvbGUud2FybihgV2FybmluZzogJHtlfWApfWZ1bmN0aW9uIHVucmVhY2hhYmxlKGUpe3Rocm93IG5ldyBFcnJvcihlKX1mdW5jdGlvbiBhc3NlcnQoZSx0KXtlfHx1bnJlYWNoYWJsZSh0KX1mdW5jdGlvbiBjcmVhdGVWYWxpZEFic29sdXRlVXJsKGUsdD1udWxsLGE9bnVsbCl7aWYoIWUpcmV0dXJuIG51bGw7aWYoYSYmInN0cmluZyI9PXR5cGVvZiBlKXtpZihhLmFkZERlZmF1bHRQcm90b2NvbCYmZS5zdGFydHNXaXRoKCJ3d3cuIikpe2NvbnN0IHQ9ZS5tYXRjaCgvXC4vZyk7dD8ubGVuZ3RoPj0yJiYoZT1gaHR0cDovLyR7ZX1gKX1pZihhLnRyeUNvbnZlcnRFbmNvZGluZyl0cnl7ZT1zdHJpbmdUb1VURjhTdHJpbmcoZSl9Y2F0Y2h7fX1jb25zdCBuPXQ/VVJMLnBhcnNlKGUsdCk6VVJMLnBhcnNlKGUpO3JldHVybiBmdW5jdGlvbiBfaXNWYWxpZFByb3RvY29sKGUpe3N3aXRjaChlPy5wcm90b2NvbCl7Y2FzZSJodHRwOiI6Y2FzZSJodHRwczoiOmNhc2UiZnRwOiI6Y2FzZSJtYWlsdG86IjpjYXNlInRlbDoiOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fShuKT9uOm51bGx9ZnVuY3Rpb24gc2hhZG93KGUsdCxhLG49ITEpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOmEsZW51bWVyYWJsZTohbixjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITF9KTtyZXR1cm4gYX1jb25zdCBhYT1mdW5jdGlvbiBCYXNlRXhjZXB0aW9uQ2xvc3VyZSgpe2Z1bmN0aW9uIEJhc2VFeGNlcHRpb24oZSx0KXt0aGlzLm1lc3NhZ2U9ZTt0aGlzLm5hbWU9dH1CYXNlRXhjZXB0aW9uLnByb3RvdHlwZT1uZXcgRXJyb3I7QmFzZUV4Y2VwdGlvbi5jb25zdHJ1Y3Rvcj1CYXNlRXhjZXB0aW9uO3JldHVybiBCYXNlRXhjZXB0aW9ufSgpO2NsYXNzIFBhc3N3b3JkRXhjZXB0aW9uIGV4dGVuZHMgYWF7Y29uc3RydWN0b3IoZSx0KXtzdXBlcihlLCJQYXNzd29yZEV4Y2VwdGlvbiIpO3RoaXMuY29kZT10fX1jbGFzcyBVbmtub3duRXJyb3JFeGNlcHRpb24gZXh0ZW5kcyBhYXtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUsIlVua25vd25FcnJvckV4Y2VwdGlvbiIpO3RoaXMuZGV0YWlscz10fX1jbGFzcyBJbnZhbGlkUERGRXhjZXB0aW9uIGV4dGVuZHMgYWF7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSwiSW52YWxpZFBERkV4Y2VwdGlvbiIpfX1jbGFzcyBSZXNwb25zZUV4Y2VwdGlvbiBleHRlbmRzIGFhe2NvbnN0cnVjdG9yKGUsdCxhKXtzdXBlcihlLCJSZXNwb25zZUV4Y2VwdGlvbiIpO3RoaXMuc3RhdHVzPXQ7dGhpcy5taXNzaW5nPWF9fWNsYXNzIEZvcm1hdEVycm9yIGV4dGVuZHMgYWF7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSwiRm9ybWF0RXJyb3IiKX19Y2xhc3MgQWJvcnRFeGNlcHRpb24gZXh0ZW5kcyBhYXtjb25zdHJ1Y3RvcihlKXtzdXBlcihlLCJBYm9ydEV4Y2VwdGlvbiIpfX1mdW5jdGlvbiBieXRlc1RvU3RyaW5nKGUpeyJvYmplY3QiPT10eXBlb2YgZSYmdm9pZCAwIT09ZT8ubGVuZ3RofHx1bnJlYWNoYWJsZSgiSW52YWxpZCBhcmd1bWVudCBmb3IgYnl0ZXNUb1N0cmluZyIpO2NvbnN0IHQ9ZS5sZW5ndGgsYT04MTkyO2lmKHQ8YSlyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGUpO2NvbnN0IG49W107Zm9yKGxldCBzPTA7cz