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.

1,070 lines (1,069 loc) 37.5 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] = "63225805-9eae-4b92-a9e1-af4cad29e520", e._sentryDebugIdIdentifier = "sentry-dbid-63225805-9eae-4b92-a9e1-af4cad29e520"); } catch (e) {} import { r as useTranslation } from "./translation-BYvhW5zA.js"; import { t as CountryCodes } from "./country-code-CJk2hdPu.js"; import { c as CompanyTypesValues } from "./bafinUtils-BKq-s1Ka.js"; import { l as numericInputs, s as makeMask, u as spacer } from "./MaskedInput-_dYxgb7_.js"; import { a as validateNotEmptyOnBlur, o as validatePatternOnBlur } from "./patternValidators-DFve5Dzt.js"; import { M as businessRegistrationNumberMasks, N as stateFormatGuidanceText, j as businessRegistrationNumberPatterns } from "./utils-C9vhUXDJ.js"; import { t as Field } from "./Field-DoXLi6EY.js"; import { t as RadioGroup } from "./RadioGroup-qV8mGGwm.js"; import { useCallback, useEffect, useMemo } from "preact/hooks"; import { jsx } from "preact/jsx-runtime"; //#region src/components/Shared/fields/BusinessRegistrationNumberField/fieldConfig.ts var registrationNumberDefaultFieldMetadata = { label: "registrationNumber" }; var registrationNumberDefaultFieldConfig = { [CountryCodes.Australia]: ({ registrationNumberType }) => { switch (registrationNumberType) { case "incorporatedAssociationRegistrationNumber": return { label: "incorporatedAssociationRegistrationNumber", mask: businessRegistrationNumberMasks[CountryCodes.Australia].associationIncorporated, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.Australia].associationIncorporated), guidanceText: { key: "enterXToYCharactersForExample", values: { minChars: "3", maxChars: "20", example: "200312345A" } } }; default: return { label: "australianBusinessNumberAcn", mask: businessRegistrationNumberMasks[CountryCodes.Australia].default, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.Australia].default), guidanceText: { key: "enterNDigitsForExample", values: { numDigits: "9", example: "123 456 789" } } }; } }, [CountryCodes.Austria]: ({ registrationNumberType }) => { switch (registrationNumberType) { case "ZVR": return { label: "zentralesVereinsregisterId", mask: businessRegistrationNumberMasks[CountryCodes.Austria].ZVR, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.Austria].ZVR), guidanceText: { key: "enterTheRemainingNDigitsForExample", values: { numDigits: "9-10", example: "AT-ZVR-555769679" } } }; default: return { label: "firmenbuchnummer", mask: businessRegistrationNumberMasks[CountryCodes.Austria].firmenbuchnummer, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.Austria].firmenbuchnummer), guidanceText: { key: "enterAMaximumOfNCharactersWithAMixForExample", values: { maxChars: "9", example: "T1001a, FN89060n" } } }; } }, [CountryCodes.Belgium]: { label: "enterpriseNumber", mask: businessRegistrationNumberMasks[CountryCodes.Belgium].default, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.Belgium].default), guidanceText: { key: "enterNDigitsForExample", values: { numDigits: "10", example: "1234567890" } } }, [CountryCodes.Brazil]: { label: "CNPJ", mask: businessRegistrationNumberMasks[CountryCodes.Brazil].default, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.Brazil].default), guidanceText: { key: "enterNDigitsForExample", values: { numDigits: "14", example: "28.773.626/8318-21" } } }, [CountryCodes.Bulgaria]: { label: "uniqueIdentificationCode", mask: businessRegistrationNumberMasks[CountryCodes.Bulgaria].default, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.Bulgaria].default), guidanceText: { key: "enterNDigitsForExample", values: { numDigits: "9", example: "812114069" } } }, [CountryCodes.Canada]: { label: "businessIncorporationNumber", mask: businessRegistrationNumberMasks[CountryCodes.Canada].default, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.Canada].default), guidanceText: { key: "enterXToYCharactersForExample", values: { minChars: "5", maxChars: "10", example: "BC1234567" } } }, [CountryCodes.Croatia]: ({ registrationNumberType }) => { switch (registrationNumberType) { case "MBO": return { label: "MBO", mask: businessRegistrationNumberMasks[CountryCodes.Croatia].soleProprietorship, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.Croatia].soleProprietorship), guidanceText: { key: "enterNDigitsForExample", values: { numDigits: "8", example: "12345678" } } }; default: return { label: "MBS", mask: businessRegistrationNumberMasks[CountryCodes.Croatia].default, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.Croatia].default), guidanceText: { key: "enterNDigitsForExample", values: { numDigits: "9", example: "080020970" } } }; } }, [CountryCodes.Cyprus]: { label: "cyRegistrationNumber", mask: businessRegistrationNumberMasks[CountryCodes.Cyprus].default, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.Cyprus].default), guidanceText: { key: "enterEnglishLetterFollowedByXtoYDigitsForExample", values: { minDigits: "1", maxDigits: "8", example: "C12345678" } } }, [CountryCodes.CzechRepublic]: { label: "ICO", mask: businessRegistrationNumberMasks[CountryCodes.CzechRepublic].default, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.CzechRepublic].default), guidanceText: { key: "enterXToYDigitsForExample", values: { minDigits: "8", maxDigits: "10", example: "12345678" } } }, [CountryCodes.Denmark]: { label: "CVR-nummer", mask: businessRegistrationNumberMasks[CountryCodes.Denmark].default, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.Denmark].default), guidanceText: { key: "enterNDigitsForExample", values: { numDigits: "8", example: "22756214" } } }, [CountryCodes.Estonia]: { label: "registrikood", mask: businessRegistrationNumberMasks[CountryCodes.Estonia].default, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.Estonia].default), guidanceText: { key: "enterNDigitsForExample", values: { numDigits: "8", example: "10345833" } } }, [CountryCodes.Finland]: { label: "YTunnus", mask: businessRegistrationNumberMasks[CountryCodes.Finland].default, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.Finland].default), guidanceText: { key: "enterNDigitsForExample", values: { numDigits: "8", example: "1234567-8" } } }, [CountryCodes.France]: ({ registrationNumberType }) => registrationNumberType === "RNA" ? { label: "rnaNumber", mask: businessRegistrationNumberMasks[CountryCodes.France].RNA, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.France].RNA), guidanceText: { key: "enterTheRemainingNDigitsForExample", values: { numDigits: "9", example: "W123456789 or W9M1234567" } } } : { label: "siret", mask: businessRegistrationNumberMasks[CountryCodes.France].SIRET, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.France].SIRET), guidanceText: { key: "enterNDigitsForExample", values: { numDigits: "14", example: "542051180-00066" } } }, [CountryCodes.Germany]: { label: "handelsregisternummerOrVereinsregisternummer", mask: businessRegistrationNumberMasks[CountryCodes.Germany].default, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.Germany].default), guidanceText: { key: "enterAMaximumOfNCharactersWithAMixForExample", values: { maxChars: "20", example: "HRB100484, HRA123456ABCDE-A1234, VR350378A" } } }, [CountryCodes.Gibraltar]: { label: "companyRegistrationNumber", mask: businessRegistrationNumberMasks[CountryCodes.Gibraltar].default, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.Gibraltar].default), guidanceText: { key: "enterAMaximumOfNCharactersForExample", values: { maxChars: "8", example: "04366849" } } }, [CountryCodes.Greece]: { label: "GEMI-number", mask: businessRegistrationNumberMasks[CountryCodes.Greece].default, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.Greece].default), guidanceText: { key: "enterNDigitsForExample", values: { numDigits: "12", example: "757001000000" } } }, [CountryCodes.Guernsey]: { label: "registrationNumber", mask: businessRegistrationNumberMasks[CountryCodes.Guernsey].default, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.Guernsey].default), guidanceText: { key: "enterAMaximumOfNDigitsForExample", values: { maxDigits: "9", example: "123456" } } }, [CountryCodes.HongKong]: { label: "companyRegistrationNumber__HK", mask: businessRegistrationNumberMasks[CountryCodes.HongKong].default, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.HongKong].default), guidanceText: { key: "enterNDigitsForExample", values: { numDigits: "7", example: "1234567" } } }, [CountryCodes.Hungary]: ({ registrationNumberType }) => { switch (registrationNumberType) { case "nyilvantartasiSzam": return { label: "huRegistrationNumberForSoleProp", mask: businessRegistrationNumberMasks[CountryCodes.Hungary].nyilvantartasiSzam, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.Hungary].nyilvantartasiSzam), guidanceText: { key: "enterXToYDigitsForExample", values: { minDigits: "7", maxDigits: "10", example: "06123456" } } }; default: return { label: "huRegistrationNumber", mask: businessRegistrationNumberMasks[CountryCodes.Hungary].default, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.Hungary].default), guidanceText: { key: "enterNDigitsForExample", values: { numDigits: "10", example: "06-12-345678" } } }; } }, [CountryCodes.Ireland]: { label: "companyNumber", mask: businessRegistrationNumberMasks[CountryCodes.Ireland].default, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.Ireland].default), guidanceText: { key: "enterAMaximumOfNDigitsForExample", values: { maxDigits: "8", example: "10123456" } } }, [CountryCodes.IsleOfMan]: { label: "registrationNumber", mask: businessRegistrationNumberMasks[CountryCodes.IsleOfMan].default, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.IsleOfMan].default), guidanceText: { key: "enterNDigitsAndThen1LetterForExample", values: { numDigits: "6", example: "114293C" } } }, [CountryCodes.Italy]: ({ registrationNumberType }) => { switch (registrationNumberType) { case "CCIAA": return { label: "CCIAA", mask: businessRegistrationNumberMasks[CountryCodes.Italy].CCIAA, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.Italy].CCIAA), guidanceText: { key: "enterNLettersAndThenXToYDigitsForExample", values: { numLetters: "2", minDigits: "6", maxDigits: "7", example: "TO0091712" } } }; case "partitaIVA": return { label: "partitaIVA", validators: validatePatternOnBlur(/^\d{11}$/), mask: { mask: makeMask(spacer, ...numericInputs(11)) }, guidanceText: { key: "enterTheRemainingNDigitsForExample", values: { numDigits: "11", example: "47040001100" } } }; default: return { label: "codiceFiscalePartitaIVA", validators: validatePatternOnBlur(/^\d{11}$/), mask: { mask: makeMask(spacer, ...numericInputs(11)) }, guidanceText: { key: "enterTheRemainingNDigitsForExample", values: { numDigits: "11", example: "47040001100" } } }; } }, [CountryCodes.Japan]: { label: "corporateRegistrationNumber", mask: businessRegistrationNumberMasks[CountryCodes.Japan].default, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.Japan].default), guidanceText: { key: "enterAMaximumOfNCharactersForExample", values: { maxChars: "12", example: "224863141686" } } }, [CountryCodes.Jersey]: { label: "registrationNumber", mask: businessRegistrationNumberMasks[CountryCodes.Jersey].default, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.Jersey].default), guidanceText: { key: "enterAMaximumOfNCharactersForExample", values: { maxChars: "9", example: "123722" } } }, [CountryCodes.Latvia]: { label: "lvRegistrationNumber", mask: businessRegistrationNumberMasks[CountryCodes.Latvia].default, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.Latvia].default), guidanceText: { key: "enterNDigitsForExample", values: { numDigits: "11", example: "50003251661" } } }, [CountryCodes.Liechtenstein]: { label: "liRegistrationNumber", mask: businessRegistrationNumberMasks[CountryCodes.Liechtenstein].default, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.Liechtenstein].default), guidanceText: { key: "enterTheRemainingNDigitsForExample", values: { numDigits: "11", example: "FL-0001.012.124-5" } } }, [CountryCodes.Lithuania]: { label: "ltRegistrationNumber", mask: businessRegistrationNumberMasks[CountryCodes.Lithuania].default, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.Lithuania].default), guidanceText: { key: "enterXToYDigitsForExample", values: { minDigits: "6", maxDigits: "9", example: "123456789" } } }, [CountryCodes.Luxembourg]: { label: "luRegistrationNumber", mask: businessRegistrationNumberMasks[CountryCodes.Luxembourg].default, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.Luxembourg].default), guidanceText: { key: "enter1LetterAndThenNDigitsForExample", values: { example: "C127766" } } }, [CountryCodes.Malta]: { label: "companyRegistrationNumber", mask: businessRegistrationNumberMasks[CountryCodes.Malta].default, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.Malta].default), guidanceText: { key: "enterTheRemainingXToYDigitsForExample", values: { minDigits: "4", maxDigits: "6", example: "C 43070, P 1234" } } }, [CountryCodes.Malaysia]: { label: "SSM", mask: businessRegistrationNumberMasks[CountryCodes.Malaysia].default, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.Malaysia].default), guidanceText: { key: "enterXOrYDigitsForExample", values: { xDigits: "7", yDigits: "12", example: "1234567, 201901000005" } } }, [CountryCodes.Mexico]: { label: "RFC", mask: businessRegistrationNumberMasks[CountryCodes.Mexico].default, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.Mexico].default), guidanceText: { key: "enterNDigitsForExample", values: { numDigits: "12", example: "LFM200817DGA" } } }, [CountryCodes.Monaco]: ({ registrationNumberType }) => { switch (registrationNumberType) { case "mcRegistrationNumberSoleProp": return { label: "mcRegistrationNumberSoleProp", mask: businessRegistrationNumberMasks[CountryCodes.Monaco].soleProprietorship, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.Monaco].soleProprietorship), guidanceText: { key: "enterXToYCharactersWithAMixForExample", values: { minChars: "8", maxChars: "11", example: "8732P92873" } } }; default: return { label: "mcRegistrationNumber", mask: businessRegistrationNumberMasks[CountryCodes.Monaco].default, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.Monaco].default), guidanceText: { key: "enterXToYCharactersWithAMixForExample", values: { minChars: "8", maxChars: "11", example: "84SB02071" } } }; } }, [CountryCodes.Netherlands]: { label: "chamberOfCommerceRegistrationNumber", mask: businessRegistrationNumberMasks[CountryCodes.Netherlands].default, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.Netherlands].default), guidanceText: { key: "enterNDigitsForExample", values: { numDigits: "8", example: "34179503" } } }, [CountryCodes.NewZealand]: ({ registrationNumberType }) => registrationNumberType === "NZBN" ? { label: "NZBN", mask: businessRegistrationNumberMasks[CountryCodes.NewZealand].NZBN, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.NewZealand].NZBN), guidanceText: { key: "enterNDigitsForExample", values: { numDigits: "13", example: "1234567890123" } } } : { label: "companyNumberNZ", mask: businessRegistrationNumberMasks[CountryCodes.NewZealand].companyNumberNZ, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.NewZealand].companyNumberNZ), guidanceText: { key: "enterNDigitsForExample", values: { numDigits: "7", example: "1234567" } } }, [CountryCodes.Norway]: { label: "organisasjonsnummer", mask: businessRegistrationNumberMasks[CountryCodes.Norway].default, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.Norway].default), guidanceText: { key: "enterNDigitsForExample", values: { numDigits: "9", example: "923609016" } } }, [CountryCodes.Poland]: ({ registrationNumberType }) => registrationNumberType === "krsNumber" ? { label: "krsNumber", mask: businessRegistrationNumberMasks[CountryCodes.Poland].krsNumber, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.Poland].krsNumber), guidanceText: { key: "enterNDigitsForExample", values: { numDigits: "10", example: "1234567890" } } } : { label: "regon", mask: businessRegistrationNumberMasks[CountryCodes.Poland].regon, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.Poland].regon), guidanceText: { key: "enterNDigitsForExample", values: { numDigits: "9", example: "123456789" } } }, [CountryCodes.Portugal]: { label: "NIPC", mask: businessRegistrationNumberMasks[CountryCodes.Portugal].default, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.Portugal].default), guidanceText: { key: "enterNDigitsForExample", values: { numDigits: "9", example: "123456789" } } }, [CountryCodes.PuertoRico]: {}, [CountryCodes.Romania]: ({ registrationNumberType }) => registrationNumberType === "roRegNumberOldFormat" ? { label: "roRegNumberOldFormat_label", mask: businessRegistrationNumberMasks[CountryCodes.Romania].roRegNumberOldFormat, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.Romania].roRegNumberOldFormat), guidanceText: "roRegNumberOldFormat_maskGuidance" } : { label: "roRegNumberNewFormat_label", mask: businessRegistrationNumberMasks[CountryCodes.Romania].roRegNumberNewFormat, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.Romania].roRegNumberNewFormat), guidanceText: "roRegNumberNewFormat_maskGuidance" }, [CountryCodes.Singapore]: { label: "uen", mask: businessRegistrationNumberMasks[CountryCodes.Singapore].default, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.Singapore].default), guidanceText: { key: "enterXToYCharactersWithAMixForExample", values: { minChars: "9", maxChars: "10", example: "200312345A" } } }, [CountryCodes.Slovakia]: { label: "skRegistrationNumber", mask: businessRegistrationNumberMasks[CountryCodes.Slovakia].default, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.Slovakia].default), guidanceText: { key: "enterNDigitsForExample", values: { numDigits: "8", example: "12345678" } } }, [CountryCodes.Slovenia]: { label: "siRegistrationNumber", mask: businessRegistrationNumberMasks[CountryCodes.Slovenia].default, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.Slovenia].default), guidanceText: { key: "enterNDigitsForExample", values: { numDigits: "10", example: "1006500006" } } }, [CountryCodes.Spain]: { label: "NIF", mask: businessRegistrationNumberMasks[CountryCodes.Spain].default, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.Spain].default), guidanceText: { key: "enter1LetterAndThenNDigitsForExample", values: { numDigits: "8", example: "A39000013" } } }, [CountryCodes.Sweden]: { label: "organisationsnummer", mask: businessRegistrationNumberMasks[CountryCodes.Sweden].default, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.Sweden].default), guidanceText: { key: "enterNDigitsForExample", values: { numDigits: "10", example: "202100-5489" } } }, [CountryCodes.Switzerland]: { label: "chRegistrationNumber", mask: businessRegistrationNumberMasks[CountryCodes.Switzerland].default, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.Switzerland].default), guidanceText: { key: "enterTheRemainingNDigitsForExample", values: { numDigits: "9", example: "CHE-123.456.789" } } }, [CountryCodes.UnitedArabEmirates]: { label: "commercialLicence", validators: validateNotEmptyOnBlur }, [CountryCodes.UnitedKingdom]: ({ registrationNumberType }) => { switch (registrationNumberType) { case "charity": return { label: "charityNumber", mask: businessRegistrationNumberMasks[CountryCodes.UnitedKingdom].nonProfit, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.UnitedKingdom].nonProfit), guidanceText: { key: "enterThreeDifferingOptionsForExample", values: { firstOption: "6, 7 or 8 digits", secondOption: "6 digits with a 2-letter prefix", thirdOption: "6 digits with a suffix like -0", firstExample: "123456", secondExample: "SC012345", thirdExample: "123456-0" } } }; default: return { label: "companyNumber", mask: businessRegistrationNumberMasks[CountryCodes.UnitedKingdom].default, validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.UnitedKingdom].default), guidanceText: { key: "enterNCharactersForExample", values: { numChars: "8", example: "43668490" } } }; } }, [CountryCodes.UnitedStates]: ({ state }) => ({ label: "registrationNumber__US", mask: state ? businessRegistrationNumberMasks[CountryCodes.UnitedStates][state] : businessRegistrationNumberMasks[CountryCodes.UnitedStates].default, validators: state ? validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.UnitedStates][state]) : validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.UnitedStates].default), guidanceText: state ? stateFormatGuidanceText[state] : stateFormatGuidanceText.default }) }; var exemptFromRegistrationNumberDefaultFieldMetadata = { label: "iDontHaveARegistrationNumber", guidanceText: "thisOnlyAppliesToSomeBusinessStructures" }; var exemptFromRegistrationNumberDefaultFieldConfig = { [CountryCodes.Australia]: { label: "thisBusinessIsntRequiredToHaveAnACN", guidanceText: "thisOnlyAppliesToSomeBusinessStructures" }, [CountryCodes.Austria]: { label: "thisBusinessIsntRequiredToHaveAFirmenbuchnummer", guidanceText: "thisOnlyAppliesToSomeBusinessStructures" }, [CountryCodes.Finland]: { label: "thisBusinessIsntRequiredToHaveAYTunnus", guidanceText: "thisOnlyAppliesToSomeBusinessStructures" }, [CountryCodes.HongKong]: { label: "iDoNotHaveCompanyRegistrationNumber", guidanceText: "thisOnlyAppliesToSomeBusinessStructures" }, [CountryCodes.Germany]: { label: "thisBusinessIsntRequiredToHaveAHandelsregisternummerOrVereinsregisternummer", guidanceText: "thisOnlyAppliesToSomeBusinessStructures" }, [CountryCodes.Lithuania]: { label: "thisBusinessIsntRequiredToHaveALtRegistrationNumber", guidanceText: "thisOnlyAppliesToSomeBusinessStructures" }, [CountryCodes.Luxembourg]: { label: "thisBusinessIsntRequiredToHaveALuRegistrationNumber", guidanceText: "thisOnlyAppliesToSomeBusinessStructures" }, [CountryCodes.Poland]: { label: "thisBusinessIsntRequiredToHaveARegonKrsNumber", guidanceText: "thisOnlyAppliesToSomeBusinessStructures" }, [CountryCodes.PuertoRico]: { label: "thisBusinessIsntRequiredToHaveAnEIN", guidanceText: "thisOnlyAppliesToSomeBusinessStructures" }, [CountryCodes.Sweden]: { label: "thisBusinessIsntRequiredToHaveAnOrganisationsnummer", guidanceText: "thisOnlyAppliesToSomeBusinessStructures" }, [CountryCodes.Switzerland]: { label: "thisBusinessIsntRequiredToHaveAChRegistrationNumber", guidanceText: "thisOnlyAppliesToSomeBusinessStructures" } }; /** * Returns the helper text for the business registration number field. */ var getRegistrationNumberHelperText = (t, { country, companyType }) => { if (country === CountryCodes.Australia && companyType === CompanyTypesValues.INCORPORATED_ASSOCIATION) return t(($) => $["findYourIncorporatedAssociationNumberInThePublicRegistryForYourState"]); }; //#endregion //#region src/components/Shared/fields/BusinessRegistrationNumberField/registrationNumberTypes.ts var restrictedCompanyTypes = [ CompanyTypesValues.SOLE_PROPRIETORSHIP, CompanyTypesValues.UNINCORPORATED_PARTNERSHIP, CompanyTypesValues.INCORPORATED_PARTNERSHIP, CompanyTypesValues.INCORPORATED_ASSOCIATION, "trust" ]; var isRestrictedCompanyType = (companyType) => Boolean(companyType && restrictedCompanyTypes.includes(companyType)); var isApplicableOnlyForSingleRestrictedType = (option) => { if (!option.applicableOnlyFor || option.applicableOnlyFor.length !== 1) return false; return restrictedCompanyTypes.includes(option.applicableOnlyFor[0]); }; var companyRegistrationNumberOptions = { [CountryCodes.Australia]: [{ id: "incorporatedAssociationRegistrationNumber", name: "incorporatedAssociationRegistrationNumber", applicableOnlyFor: [CompanyTypesValues.INCORPORATED_ASSOCIATION] }, { id: "australianBusinessNumberAcn", name: "australianBusinessNumberAcn", applicableOnlyFor: [ CompanyTypesValues.PRIVATE_COMPANY, CompanyTypesValues.PUBLIC_COMPANY, CompanyTypesValues.UNLISTED_PUBLIC_COMPANY, CompanyTypesValues.UNINCORPORATED_PARTNERSHIP, CompanyTypesValues.INCORPORATED_PARTNERSHIP, CompanyTypesValues.GOVERNMENTAL_ORGANIZATION, CompanyTypesValues.NON_PROFIT_OR_CHARITABLE, CompanyTypesValues.SOLE_PROPRIETORSHIP ] }], [CountryCodes.Austria]: [{ id: "firmenbuchnummer", name: "firmenbuchnummer" }, { id: "ZVR", name: "zentralesVereinsregisterId", applicableOnlyFor: [CompanyTypesValues.NON_PROFIT_OR_CHARITABLE, CompanyTypesValues.INCORPORATED_ASSOCIATION] }], [CountryCodes.Croatia]: [{ id: "MBO", name: "MBO", applicableOnlyFor: [CompanyTypesValues.SOLE_PROPRIETORSHIP] }, { id: "MBS", name: "MBS", applicableOnlyFor: [ CompanyTypesValues.PRIVATE_COMPANY, CompanyTypesValues.PUBLIC_COMPANY, CompanyTypesValues.UNLISTED_PUBLIC_COMPANY, CompanyTypesValues.UNINCORPORATED_PARTNERSHIP, CompanyTypesValues.INCORPORATED_PARTNERSHIP, CompanyTypesValues.GOVERNMENTAL_ORGANIZATION, CompanyTypesValues.NON_PROFIT_OR_CHARITABLE ] }], [CountryCodes.France]: [{ id: "SIRET", name: "siret" }, { id: "RNA", name: "rnaNumber", applicableOnlyFor: [CompanyTypesValues.NON_PROFIT_OR_CHARITABLE] }], [CountryCodes.Hungary]: [{ id: "nyilvantartasiSzam", name: "huRegistrationNumberForSoleProp", applicableOnlyFor: [CompanyTypesValues.SOLE_PROPRIETORSHIP] }], [CountryCodes.Italy]: [ { id: "partitaIVA", name: "partitaIVA", applicableOnlyFor: [CompanyTypesValues.SOLE_PROPRIETORSHIP] }, { id: "codiceFiscalePartitaIVA", name: "codiceFiscalePartitaIVA", applicableOnlyFor: [ CompanyTypesValues.PRIVATE_COMPANY, CompanyTypesValues.PUBLIC_COMPANY, CompanyTypesValues.UNLISTED_PUBLIC_COMPANY, CompanyTypesValues.UNINCORPORATED_PARTNERSHIP, CompanyTypesValues.INCORPORATED_PARTNERSHIP, CompanyTypesValues.INCORPORATED_ASSOCIATION, CompanyTypesValues.GOVERNMENTAL_ORGANIZATION, CompanyTypesValues.NON_PROFIT_OR_CHARITABLE ] }, { id: "CCIAA", name: "CCIAA" } ], [CountryCodes.Monaco]: [{ id: "mcRegistrationNumberSoleProp", name: "mcRegistrationNumberSoleProp", applicableOnlyFor: [CompanyTypesValues.SOLE_PROPRIETORSHIP] }, { id: "mcRegistrationNumber", name: "mcRegistrationNumber", applicableOnlyFor: [ CompanyTypesValues.PRIVATE_COMPANY, CompanyTypesValues.GOVERNMENTAL_ORGANIZATION, CompanyTypesValues.INCORPORATED_ASSOCIATION, CompanyTypesValues.INCORPORATED_PARTNERSHIP, CompanyTypesValues.NON_PROFIT_OR_CHARITABLE, CompanyTypesValues.UNINCORPORATED_PARTNERSHIP, CompanyTypesValues.UNLISTED_PUBLIC_COMPANY ] }], [CountryCodes.NewZealand]: [{ id: "NZBN", name: "NZBN" }, { id: "companyNumberNZ", name: "companyNumberNZ", applicableOnlyFor: [ CompanyTypesValues.PRIVATE_COMPANY, CompanyTypesValues.PUBLIC_COMPANY, CompanyTypesValues.UNLISTED_PUBLIC_COMPANY ] }], [CountryCodes.Romania]: [{ id: "roRegNumberNewFormat", name: "roRegNumberNewFormat_label" }, { id: "roRegNumberOldFormat", name: "roRegNumberOldFormat_label" }], [CountryCodes.Poland]: [{ id: "regon", name: "regon" }, { id: "krsNumber", name: "krsNumber" }], [CountryCodes.UnitedKingdom]: [{ id: "companyNumber", name: "companyNumber", applicableOnlyFor: [ CompanyTypesValues.PRIVATE_COMPANY, CompanyTypesValues.GOVERNMENTAL_ORGANIZATION, CompanyTypesValues.INCORPORATED_ASSOCIATION, CompanyTypesValues.INCORPORATED_PARTNERSHIP, CompanyTypesValues.NON_PROFIT_OR_CHARITABLE, CompanyTypesValues.UNINCORPORATED_PARTNERSHIP, CompanyTypesValues.UNLISTED_PUBLIC_COMPANY, CompanyTypesValues.PUBLIC_COMPANY ] }, { id: "charity", name: "charityNumber", applicableOnlyFor: [CompanyTypesValues.NON_PROFIT_OR_CHARITABLE] }] }; /** * Returns the company registration number options for a given country and company type. * If ignoreApplicableOnlyFor is true, options specific to legal arrangements are excluded * for non-legal-arrangement entities. */ var getCompanyRegistrationNumberOptions = (country, companyType) => { const optionsForCountry = companyRegistrationNumberOptions[country]; if (!optionsForCountry) return optionsForCountry; if (isRestrictedCompanyType(companyType)) return optionsForCountry.filter((option) => option.applicableOnlyFor?.includes(companyType) ?? true); return optionsForCountry.filter((option) => !isApplicableOnlyForSingleRestrictedType(option)); }; /** * Returns the valid company types for a given registration number type and country. * @param country The country code * @param registrationNumberType The registration number type * @returns The valid company types for the given registration number type and country */ function getValidCompanyTypesForRegistrationNumberType(country, registrationNumberType) { if (!registrationNumberType) return void 0; const registrationNumberOption = companyRegistrationNumberOptions[country]?.find((option) => option.id === registrationNumberType); if (!registrationNumberOption?.applicableOnlyFor) return void 0; return registrationNumberOption.applicableOnlyFor.filter((companyType) => companyType !== "trust"); } //#endregion //#region src/components/Shared/fields/BusinessRegistrationNumberField/RegistrationNumberTypeSelector/inferCompanyRegistrationNumberType.ts /** * For existing data, we need to infer the company registration number type from the existing data. * Otherwise, the incorrect mask will be applied. * We don't store this choice in the API. * @param registrationNumber the existing company registration number * @param country the country of the LE * @param companyType the company type, e.g. `nonProfit` */ var inferCompanyRegistrationNumberType = (registrationNumber, country, companyType) => { const optionsForCountry = getCompanyRegistrationNumberOptions(country, companyType); const metadataFn = registrationNumberDefaultFieldConfig[country]; if (!optionsForCountry) return void 0; if (optionsForCountry.length === 1) return optionsForCountry[0].id; if (!optionsForCountry || !metadataFn) return void 0; const allMetaData = optionsForCountry.reduce((acc, option) => { const meta = typeof metadataFn === "function" ? metadataFn({ registrationNumberType: option.id }) : metadataFn; if (meta.label && !acc[meta.label]) acc[meta.label] = meta; return acc; }, {}); for (const option of optionsForCountry) { const fieldMetadata = allMetaData[option.name]; if (!fieldMetadata?.validators) continue; if ((Array.isArray(fieldMetadata.validators) ? fieldMetadata.validators : [fieldMetadata.validators]).every((validator) => validator.validate(registrationNumber))) return option.id; } }; //#endregion //#region src/components/Shared/fields/BusinessRegistrationNumberField/RegistrationNumberTypeSelector/getDefaultRegistrationNumberType.ts /** * Determines the default business registration number type based on exisiting information, country, and company/entity type. * This function follows a priority order: * 1. Infer the type from the number if possible * 2. Otherwise, use the first available business registration number type for the country * * @param registrationNumber - business registration number value * @param country - Country code to determine the business registration number type * @param companyType - The company type or entity type (i.e. Trust) of the business * @returns The determined business registration number type or undefined if none can be determined */ function getDefaultRegistrationNumberType(registrationNumber, country, companyType) { return registrationNumber ? inferCompanyRegistrationNumberType(registrationNumber, country, companyType) : getCompanyRegistrationNumberOptions(country, companyType)?.[0]?.id; } //#endregion //#region src/components/Shared/fields/BusinessRegistrationNumberField/RegistrationNumberTypeSelector/CompanyRegistrationNumberTypeSelector.tsx function CompanyRegistrationNumberTypeSelector({ country, companyType, selected, setSelected, exemptedOptionLabel }) { const { t } = useTranslation("common"); const options = useMemo(() => { const availableOptions = getCompanyRegistrationNumberOptions(country, companyType) ?? []; if (availableOptions.length === 0 || !exemptedOptionLabel) return availableOptions; return [...availableOptions, { id: "exempted", name: exemptedOptionLabel }]; }, [ companyType, country, exemptedOptionLabel ]); const handleSelect = useCallback((selectedStr) => { const newSelected = selectedStr; if (newSelected === "exempted") { if (exemptedOptionLabel) setSelected(newSelected); return; } setSelected(newSelected); }, [exemptedOptionLabel, setSelected]); useEffect(() => { if (options.length > 0 && (!selected || !options.some((option) => option.id === selected))) { if (selected === "exempted") return; setSelected(options[0].id); } }, [ options, selected, setSelected ]); if (options.length <= 1) return null; return /* @__PURE__ */ jsx(Field, { el: "fieldset", name: "companyRegistrationNumberType", label: t(($) => $["whichTypeOfRegistrationNumberDoYouHave"]), children: (childProps) => /* @__PURE__ */ jsx(RadioGroup, { ...childProps, name: "companyRegistrationNumberType", items: options, value: selected, onChange: handleSelect }) }); } //#endregion export { getValidCompanyTypesForRegistrationNumberType as a, getRegistrationNumberHelperText as c, getCompanyRegistrationNumberOptions as i, registrationNumberDefaultFieldConfig as l, getDefaultRegistrationNumberType as n, exemptFromRegistrationNumberDefaultFieldConfig as o, inferCompanyRegistrationNumberType as r, exemptFromRegistrationNumberDefaultFieldMetadata as s, CompanyRegistrationNumberTypeSelector as t, registrationNumberDefaultFieldMetadata as u };