@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.
943 lines • 262 kB
JavaScript
try {
let e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "7fa443be-df0e-45f9-aa76-fab78e6ca795", e._sentryDebugIdIdentifier = "sentry-dbid-7fa443be-df0e-45f9-aa76-fab78e6ca795");
} catch (e) {}
import { i as Typography, o as createLogger, r as useTranslation } from "./translation-BFxyJ1c5.js";
import { r as Loader, t as Button } from "./Button-oj6H8OrC.js";
import { r as httpPost, s as useApiContext } from "./http-D1NDkBxF.js";
import { r as useLegalEntity, t as ROOT_LE } from "./useLegalEntity-yxi9XhLi.js";
import { t as LegalEntityTypes } from "./legal-entity-type-VIfNYnJP.js";
import { t as useAccountHolder } from "./useAccountHolder-ClppK4-L.js";
import { t as useSettingsContext } from "./useSettingsContext-DzwVt0W0.js";
import { a as drop, c as objectsDeepEqual, d as keysOf, i as doArraysMatch, t as useAnalyticsContext, u as entriesOf } from "./useAnalyticsContext-BVFDMrVE.js";
import { t as useToggleContext } from "./useToggleContext-DaQUBF8O.js";
import { S as isUndefinedOrNull, b as isISIN, y as isEmpty } from "./validatorUtils-DRapRJ6z.js";
import { t as StackLayout } from "./StackLayout-Bhbj68nx.js";
import { t as Header } from "./Header-CPmJyuoP.js";
import { t as useAllowedCountries } from "./useAllowedCountries-x3yZO5Qw.js";
import { t as CountryCodes } from "./country-code-CX5KqMBr.js";
import { n as datasetUtilities } from "./datasetUtil-Zd4TCTDn.js";
import { t as Alert } from "./Alert-C6gL3JIt.js";
import { _ as businessDetailsDocumentMapping, f as solePropBusinessDetailsApiKeyMapping, g as businessDetailsComponentsKeyMapping, h as businessDetailsApiKeyMapping, m as solePropBusinessDetailsKeyMapping, p as solePropBusinessDetailsDocumentMapping } from "./processCapabilities-DlZY9-Jc.js";
import { p as TaskTypes, r as filterOutUnwantedAssociationsIfRootLE, s as getOwnEntityAssociations } from "./entityAssociationUtil-BEzUdPbm.js";
import { t as Scenarios } from "./get-scenarios-DnCVdYIC.js";
import { t as useBusinessLines } from "./useBusinessLines-CgnQUuie.js";
import { t as Card } from "./Card-vYndix5Y.js";
import { t as SettingNames } from "./types-CNZsK2dZ.js";
import { t as useToastContext } from "./useToastContext-CYgfHjSb.js";
import { t as CompanyTypesValues } from "./company-types-value-BYTAKfjo.js";
import { t as useInvalidateRootLegalEntity } from "./invalidateRootLegalEntity-CZr0iiji.js";
import { t as LoaderWrapper } from "./LoaderWrapper-Dq8TNJCi.js";
import { t as KEYBOARD_KEYS } from "./keys-fzUbt2xF.js";
import { n as ModalContent, t as Modal } from "./Modal-CioQJ7Q7.js";
import { t as Confirm } from "./Confirm-B6TWSuab.js";
import { t as HandlerContext } from "./HandlerContext-CIedIvkP.js";
import { t as useScenarios } from "./useScenarios-BxrbVsQp.js";
import { t as useCreateLegalEntity } from "./useCreateLegalEntity-BK1XURnK.js";
import { t as useUpdateLegalEntity } from "./useUpdateLegalEntity-CtaRaKZ6.js";
import { a as defaultFieldMetadata, c as mapAddressData, i as defaultFieldConfig, n as STATE_FIELD, o as getNestedTrustedFields, r as StateField, s as isDateOlderThanAYear, t as Address } from "./Address-D5EL-3iQ.js";
import { n as FormFlow, r as FormContextProvider, t as useFormContext } from "./useFormContext-Cx9-3iXR.js";
import { n as composePerScenarioFormConfigurations, r as getPropsFromConfigurations } from "./process-field-configurations-C7MuEj5q.js";
import { i as useFormComposer, t as addValidityToForms } from "./dropinUtils-IdasFZCU.js";
import { t as StructuredList } from "./StructuredList-w0Z2zLTk.js";
import { t as ErrorPanel } from "./ErrorPanel-B536hgSc.js";
import { n as mergeFieldMetadataIntoProps, t as createFormUtils } from "./formUtils-DCvL3uZG.js";
import { n as summaryStep, r as Summary_module_default } from "./Summary-B5IkOGJV.js";
import { t as useMultiForm } from "./useMultiForm-B3e1ImN3.js";
import { a as useScenarioConfiguration, i as uppercase, r as getPageName, t as mapExistingFile } from "./mapExistingFile-wp3Nf1-m.js";
import { t as useTaskLandedEvent } from "./useTaskLandedEvent-DInxWeqN.js";
import { a as alphanumericInputs, i as alphaInputs, l as numericInputs, s as makeMask, t as MaskedInput } from "./MaskedInput-BFPSwRto.js";
import { r as mapJpAddressSummaryNewSummary, t as mapJpAddressSchemaToAddressLocalizations } from "./mapJpAddressSchemaToAddressLocalizations-C-Kwjo9Q.js";
import { a as mapAddressLabelsNewSummary, c as COUNTRIES_WITH_STATES_DATASET, n as getAddressSchemaLabelsByCountry, r as getKeyForField, t as getAddressSchemaForCountry } from "./utils-CfTVU2Hq.js";
import { i as isValidationError, n as isBusinessSelectionLegalArrangementError, o as processValidationErrors, s as isMaintenanceModeError } from "./validationError-BzQCrJPn.js";
import { c as getDocument, l as getDocuments, o as createDocumentRequest, p as mergeProofOfOwnershipAttachments, s as documentApiUtils, u as getFileExtention } from "./validate-DDKy88ac.js";
import { r as formatObject } from "./utils-oc3EdK6K.js";
import { T as getFieldsWithExistingData, a as isRegistrationNumberAbsentStateV4Scenario, b as taxInformationDefaultFieldConfig, c as requestingBanking, f as getTaxIdNumberOptions, h as MemoizedDocumentUpload, i as COUNTRY_OF_GOVERNING_LAW_POSSIBLE, l as requestingIssuing, n as TaxInformationField, o as isUsingCompanySearch, p as getValidCompanyTypesForTaxIdNumberType, r as COUNTRIES_THAT_USE_TAX_ID_INSTEAD_OF_VAT, s as rules, t as TAX_INFORMATION_FIELD, u as countryToTaxInfoTypeMap, x as taxInformationDefaultFieldMetadata, y as getTaxInformationPlaceholderText } from "./TaxInformationField-DVc2iorX.js";
import { t as isJapanLocalizationEnabled } from "./japanSupportUtils-DcDqwV81.js";
import { a as validateNotEmptyOnBlur, n as validateJaKanaLegalCompanyName, o as validatePatternOnBlur, t as validateJaHaniLegalCompanyName } from "./patternValidators-BaQxw3ki.js";
import { c as useAddressCleanse, s as formatAddressForCleanse } from "./validate-qd_17no4.js";
import { t as resolveFieldMetadata } from "./fieldConfigurations-m7oWP1DZ.js";
import { t as Field } from "./Field-pcJkjIG_.js";
import { t as TileGroup } from "./TileGroup-D0YbtzZ0.js";
import { t as LandingLayout } from "./LandingLayout-z8j2xiqg.js";
import { r as useDebouncedCallback } from "./debouncedInputEvent-Dxv4-RAv.js";
import { t as Checkbox } from "./Checkbox-BCYjFPa4.js";
import { t as Link } from "./Link-6M1PZnz2.js";
import { t as InputText } from "./InputText-C30dZxS4.js";
import { n as formatDateObj, t as InputDate } from "./InputDate-XX9jaw9v.js";
import { n as CountryField, t as COUNTRY_FIELD } from "./CountryField-Dh4DfjBf.js";
import { t as RadioGroup } from "./RadioGroup-7g7Xv9rl.js";
import { t as toFullWidth } from "./toFullWidth-CSa3Sffs.js";
import { t as isEmpty$1 } from "./isEmpty-Dw2W8jeR.js";
import { n as mapApiScriptLocalizationToSchemaFields, r as mapSchemaFieldsToApiScriptLocalization, t as mapAddressLocalizationToJpAddressSchema } from "./mapAddressLocalizationToJpAddressSchema-Cu5HfF7K.js";
import { t as currencyByCountry } from "./types-qnPNJzLh.js";
import { t as Divider } from "./Divider-DMwncntz.js";
import { a as LegalFormField, i as InputCurrency, n as Currency, o as mapFinancialReportsToFinancialInformation, r as InputNumber, s as mapFinancialInformationToFinancialReport, t as CURRENCY_FIELD } from "./Currency-DtAL1CZd.js";
import { t as NewSummary } from "./NewSummary-C-LKBMpr.js";
import { t as ListItem } from "./ListItem-BWH4IPrj.js";
import { C as exemptFromRegistrationNumberDefaultFieldMetadata, E as registrationNumberDefaultFieldMetadata, T as registrationNumberDefaultFieldConfig, _ as BusinessRegistrationNumberField, b as getCompanyRegistrationNumberOptions, c as getDefaultVatNumberType, d as vatAbsenceReasonMetadata, f as doingBusinessAsAbsentFieldMetadata, g as BUSINESS_REGISTRATION_NUMBER_FIELD, h as DBA_NAME_FIELD, i as operationalAddressIsSameIds, l as defaultFieldConfig$1, m as DBANameField, o as VAT_NUMBER_FIELD, p as doingBusinessAsFieldMetadata, r as registrationAddressFields, s as VatNumberField, t as MemoizedConstitutionalDocument, u as defaultFieldMetadata$1, v as getDefaultRegistrationNumberType, w as getRegistrationNumberHelperText, x as getValidCompanyTypesForRegistrationNumberType, y as inferCompanyRegistrationNumberType } from "./ConstitutionalDocument-CnNB3LUI.js";
import { d as IndustryCodeField, h as useIndustryCodes, m as industryCodeFieldMetadata, n as useCreateBusinessLine, r as INDUSTRY_CODE_FIELD, t as useUpdateBusinessLine } from "./useUpdateBusinessLines-BUVnf_SX.js";
import { a as defaultFieldMetadata$2, i as defaultFieldConfigV4, o as defaultFieldMetadataV4, r as defaultFieldConfig$2, s as getLegalCompanyNameGuidanceText, t as LEGAL_COMPANY_NAME_FIELD } from "./LegalCompanyNameField-CW82YkTh.js";
import { A as formatCurrency, t as ALLOWED_SOF_SERVICES } from "./utils-DRjqyP-s.js";
import { s as organizationTypesToSkipCompanyStructureForm } from "./utils-BptSfkns.js";
import { Suspense, lazy } 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, useSignal } from "@preact/signals";
import { queryOptions, skipToken, useMutation, useQuery, useQueryClient } from "@tanstack/preact-query";
//#region src/components/Shared/fields/DateOfIncorporationField/DateOfIncorporationField.tsx
var DATE_OF_INCORPORATION_FIELD = ["dateOfIncorporation"];
function DateOfIncorporationField({ data, valid, errors, placeholder, readonly, handleChangeFor }) {
const { t } = useTranslation("common");
return /* @__PURE__ */ jsx(Field, {
name: "dateOfIncorporation",
label: t(($) => $["dateOfIncorporation"]),
errorMessage: errors.dateOfIncorporation,
isValid: valid.dateOfIncorporation,
children: (childProps) => /* @__PURE__ */ jsx(InputDate, {
...childProps,
"aria-required": true,
"aria-invalid": !valid.dateOfIncorporation,
name: "dateOfIncorporation",
value: data.dateOfIncorporation,
placeholder,
readonly,
onInput: handleChangeFor("dateOfIncorporation", "input"),
onBlur: handleChangeFor("dateOfIncorporation", "blur"),
max: formatDateObj(/* @__PURE__ */ new Date()),
min: formatDateObj(new Date(1900, 0, 1))
})
});
}
//#endregion
//#region src/components/Shared/fields/DateOfIncorporationField/fieldConfig.ts
var validateDateOfIncorporation = (dateOfIncorporation) => {
if (!dateOfIncorporation) return false;
const date = new Date(dateOfIncorporation);
return date < /* @__PURE__ */ new Date() && date > new Date(1900, 0, 1);
};
var dateOfIncorporationFieldMetadata = { validators: [validateNotEmptyOnBlur, {
modes: ["blur"],
validate: validateDateOfIncorporation,
errorMessage: "invalidDateOfIncorporation"
}] };
//#endregion
//#region src/components/Shared/fields/EInvoicingCodeField/EInvoicingCodeField.tsx
var EINVOICING_CODE_FIELD = ["eInvoicingCode"];
function EInvoicingCodeField({ data, valid, errors, labels, readonly, mask, shouldValidate, handleChangeFor }) {
const { t } = useTranslation("common");
const [noInvoicingCode, setNoInvoicingCode] = useState$1(false);
const handleNoInvoicingCode = () => {
setNoInvoicingCode(!noInvoicingCode);
handleChangeFor("eInvoicingCode")("0000000");
};
return /* @__PURE__ */ jsxs("div", {
className: "adyen-kyc-field",
children: [/* @__PURE__ */ jsx(MaskedInput, {
name: "eInvoicingCode",
type: "text",
label: labels.eInvoicingCode ?? "",
formatGuidance: t(($) => $["the7CharacterIdentifierAssignedToThis"], { example: "MP10YNU" }),
errorMessage: errors.eInvoicingCode,
isValid: valid.eInvoicingCode ?? false,
value: data.eInvoicingCode ?? "",
readonly: readonly || noInvoicingCode,
shouldValidate,
onInput: handleChangeFor("eInvoicingCode", "input"),
onBlur: handleChangeFor("eInvoicingCode", "blur"),
disabled: noInvoicingCode,
"aria-required": true,
"aria-invalid": !valid.eInvoicingCode,
...mask
}), /* @__PURE__ */ jsx(Field, {
name: "noEInvoicingCode",
children: (childProps) => /* @__PURE__ */ jsx(Checkbox, {
...childProps,
name: "noEInvoicingCode",
"aria-required": false,
"aria-invalid": false,
label: t(($) => $["thisCompanyDoesntHaveAnSDI"]),
checked: noInvoicingCode,
onChange: handleNoInvoicingCode
})
})]
});
}
//#endregion
//#region src/components/Shared/fields/EInvoicingCodeField/fieldConfig.ts
var eInvoicingCodeFieldMetadata = {
validators: validatePatternOnBlur(/^[A-Z0-9]{7}$/),
mask: {
mask: makeMask(...alphanumericInputs(16)),
transformOnType: uppercase
}
};
//#endregion
//#region src/components/Shared/fields/StockExchangeMICField/fieldConfig.ts
var stockExchangeMICFieldMetadata = {
validators: [validateNotEmptyOnBlur, validatePatternOnBlur(/^[a-zA-Z0-9]{4}$/)],
mask: {
mask: makeMask(...alphanumericInputs(4)),
transformOnType: uppercase
}
};
//#endregion
//#region src/components/Shared/fields/StockExchangeMICField/StockExchangeMICField.tsx
var STOCK_EXCHANGE_MIC_FIELD = ["stockExchangeMIC"];
function StockExchangeMICField({ data, valid, errors, readonly, mask, shouldValidate, handleChangeFor }) {
const { t } = useTranslation("common");
return /* @__PURE__ */ jsx(MaskedInput, {
name: "stockExchangeMIC",
type: "text",
label: t(($) => $["stockExchangeMIC"]),
formatGuidance: t(($) => $["enterNCharactersForExample"], {
numChars: "4",
example: "XNAS"
}),
...mask,
errorMessage: errors.stockExchangeMIC,
isValid: valid.stockExchangeMIC ?? false,
value: data.stockExchangeMIC ?? "",
readonly,
shouldValidate,
onInput: handleChangeFor("stockExchangeMIC", "input"),
onBlur: handleChangeFor("stockExchangeMIC", "blur"),
"aria-required": true,
"aria-invalid": !valid.stockExchangeMIC
});
}
//#endregion
//#region src/components/Shared/fields/StockISINField/fieldConfig.ts
var stockISINFieldMetadata = {
validators: [validateNotEmptyOnBlur, {
modes: ["blur"],
validate: (value) => !!value && isISIN(value)
}],
mask: {
mask: makeMask(...alphaInputs(2), ...alphanumericInputs(9), ...numericInputs(1)),
transformOnType: uppercase
}
};
//#endregion
//#region src/components/Shared/fields/StockISINField/StockISINField.tsx
var STOCK_ISIN_FIELD = ["stockISIN"];
function StockISINField({ data, valid, errors, readonly, mask, shouldValidate, handleChangeFor }) {
const { t } = useTranslation("common");
return /* @__PURE__ */ jsx(MaskedInput, {
name: "stockISIN",
type: "text",
label: t(($) => $["stockISIN"]),
formatGuidance: t(($) => $["validationPleaseEnterAValidStockISIN"], { example: "NL0012969182" }),
...mask,
errorMessage: errors.stockISIN,
isValid: valid.stockISIN ?? false,
value: data.stockISIN ?? "",
readonly,
shouldValidate,
onInput: handleChangeFor("stockISIN", "input"),
onBlur: handleChangeFor("stockISIN", "blur"),
"aria-required": true,
"aria-invalid": !valid.stockISIN
});
}
//#endregion
//#region src/components/Shared/fields/StockTickerSymbol/fieldConfig.ts
var stockTickerSymbolFieldMetadata = {
validators: [validateNotEmptyOnBlur, validatePatternOnBlur(/^[A-Z\d]{1,5}$/)],
mask: {
mask: makeMask(...alphanumericInputs(1), ...alphanumericInputs(4)),
transformOnType: uppercase
}
};
//#endregion
//#region src/components/Shared/fields/StockTickerSymbol/StockTickerSymbolField.tsx
var STOCK_TICKER_SYMBOL_FIELD = ["stockTickerSymbol"];
function StockTickerSymbolField({ data, valid, errors, readonly, mask, shouldValidate, handleChangeFor }) {
const { t } = useTranslation("common");
return /* @__PURE__ */ jsx(MaskedInput, {
name: "stockTickerSymbol",
type: "text",
label: t(($) => $["stockTickerSymbol"]),
formatGuidance: t(($) => $["enterAMaximumOfNCharactersForExample"], {
maxChars: "5",
example: "ADYEN"
}),
...mask,
errorMessage: errors.stockTickerSymbol,
isValid: valid.stockTickerSymbol ?? false,
value: data.stockTickerSymbol ?? "",
readonly,
shouldValidate,
onInput: handleChangeFor("stockTickerSymbol", "input"),
onBlur: handleChangeFor("stockTickerSymbol", "blur"),
"aria-required": true,
"aria-invalid": !valid.stockTickerSymbol
});
}
//#endregion
//#region src/utils/useDebouncedState.ts
/**
* Like {@link useState}, but waits for the given amount of time before applying *only* the most recent update.
*
* @param wait the time to wait, in milliseconds
* @param initialState (optional) the default value
*/
function useDebouncedState(wait, initialState) {
const [state, _setState] = useState$1(initialState);
return [state, useDebouncedCallback(_setState, wait)];
}
//#endregion
//#region src/components/EFP/fields/LegalFormField/types.ts
var LEGAL_FORM_FIELDS = ["legalForm", "legalFormLabel"];
var legalFormFieldMetadata = {
label: "legalForm",
validators: [validateNotEmptyOnBlur]
};
//#endregion
//#region src/components/Business/tasks/BusinessDetailsDropin/businessDetailsStore.ts
var isBankAccountRequestedForOrganization = signal(void 0);
var tinMatched = signal(void 0);
var businessMismatchModalOpen = signal(false);
var verifiedBusiness = signal(void 0);
var AdditionalInformation_module_default = {
"additional-information-content": "adyen-kyc-additional-information-content",
additionalInformationContent: "adyen-kyc-additional-information-content",
"additional-information-section-heading": "adyen-kyc-additional-information-section-heading",
additionalInformationSectionHeading: "adyen-kyc-additional-information-section-heading"
};
var VerifiedBusinessCard_module_default = {
"verified-business-card": "adyen-kyc-verified-business-card",
verifiedBusinessCard: "adyen-kyc-verified-business-card",
"verified-business-card-content": "adyen-kyc-verified-business-card-content",
verifiedBusinessCardContent: "adyen-kyc-verified-business-card-content",
"verified-business-card-content-collapsed": "adyen-kyc-verified-business-card-content-collapsed",
verifiedBusinessCardContentCollapsed: "adyen-kyc-verified-business-card-content-collapsed",
"verified-business-card-content-expanded": "adyen-kyc-verified-business-card-content-expanded",
verifiedBusinessCardContentExpanded: "adyen-kyc-verified-business-card-content-expanded",
"verified-business-card-expand-button": "adyen-kyc-verified-business-card-expand-button",
verifiedBusinessCardExpandButton: "adyen-kyc-verified-business-card-expand-button"
};
//#endregion
//#region src/components/Business/forms/AdditionalInformation/VerifiedBusinessCard/VerifiedBusinessCard.tsx
function VerifiedBusinessCard({ verifiedBusiness, verifiedAddress }) {
const { t } = useTranslation(["common"]);
const [expanded, setExpanded] = useState$1(false);
const address = verifiedAddress?.address && verifiedAddress.city && verifiedAddress.stateOrProvince && verifiedAddress.postalCode ? `${verifiedAddress.address} ${verifiedAddress.city} ${verifiedAddress.stateOrProvince} ${verifiedAddress.postalCode}` : verifiedAddress?.address;
const addressLink = `https://www.google.com/maps/place/${address?.replaceAll(" ", "+")}`;
const baseItems = useMemo$1(() => [{
term: t(($) => $["legalCompanyName__US"], { ns: "common" }),
details: verifiedBusiness?.name
}, {
term: t(($) => $["registrationNumber__US"], { ns: "common" }),
details: verifiedBusiness?.registrationNumber
}].filter((item) => !!item.details), [
verifiedBusiness?.name,
verifiedBusiness?.registrationNumber,
t
]);
const expandedItems = useMemo$1(() => [{
term: t(($) => $["legalForm"], { ns: "common" }),
details: verifiedBusiness?.legalForm
}, {
term: t(($) => $["address"], { ns: "common" }),
details: address && /* @__PURE__ */ jsxs(Fragment$1, { children: [
address,
/* @__PURE__ */ jsx("br", {}),
/* @__PURE__ */ jsx(Link, {
href: addressLink,
external: true,
children: t(($) => $["showOnMap"], { ns: "common" })
})
] })
}].filter((item) => !!item.details), [
address,
addressLink,
t,
verifiedBusiness?.legalForm
]);
const expandedContentClasses = cx(VerifiedBusinessCard_module_default.verifiedBusinessCardContent, {
[VerifiedBusinessCard_module_default.verifiedBusinessCardContentCollapsed]: !expanded,
[VerifiedBusinessCard_module_default.verifiedBusinessCardContentExpanded]: expanded
});
return /* @__PURE__ */ jsxs("section", {
className: VerifiedBusinessCard_module_default.verifiedBusinessCard,
children: [
/* @__PURE__ */ jsxs("div", {
className: VerifiedBusinessCard_module_default.verifiedBusinessCardContent,
children: [/* @__PURE__ */ jsx(StructuredList, { items: baseItems }), /* @__PURE__ */ jsx(Divider, {})]
}),
/* @__PURE__ */ jsxs("div", {
className: expandedContentClasses,
children: [/* @__PURE__ */ jsx(StructuredList, { items: expandedItems }), /* @__PURE__ */ jsx(Divider, {})]
}),
/* @__PURE__ */ jsx("div", {
className: VerifiedBusinessCard_module_default.verifiedBusinessCardExpandButton,
children: /* @__PURE__ */ jsx(Button, {
variant: "link",
onClick: () => setExpanded(!expanded),
children: expanded ? t(($) => $["hideDetails"], { ns: "common" }) : t(($) => $["showDetails"], { ns: "common" })
})
})
]
});
}
//#endregion
//#region src/components/Business/forms/AdditionalInformation/AdditionalInformation.tsx
var LazyJpAddress = lazy(async () => (await import("./JpAddress-CcvXXU8C.js")).JpAddress);
var ADDITIONAL_INFORMATION_FORM_ID = "additionalInformation";
var ADDITIONAL_INFORMATION_FIELDS = [
...DBA_NAME_FIELD,
...BUSINESS_REGISTRATION_NUMBER_FIELD,
...TAX_INFORMATION_FIELD,
...VAT_NUMBER_FIELD,
...INDUSTRY_CODE_FIELD,
...DATE_OF_INCORPORATION_FIELD,
...STOCK_EXCHANGE_MIC_FIELD,
...STOCK_ISIN_FIELD,
...STOCK_TICKER_SYMBOL_FIELD,
...EINVOICING_CODE_FIELD,
"legalFormDescription",
...LEGAL_FORM_FIELDS,
...registrationAddressFields
];
function AdditionalInformation({ id, country, companyType, shouldValidate, validationErrors = {}, verificationErrors = {} }) {
const { t, i18n } = useTranslation(["common", "business"]);
const { t: businessT } = useTranslation("business");
const { form } = useFormContext();
const { isFeatureEnabled } = useToggleContext();
const { data: rootLegalEntity } = useLegalEntity(ROOT_LE);
const verifiedBusiness$1 = verifiedBusiness.value;
const showVerified = !!verifiedBusiness$1;
const showStockData = companyType === CompanyTypesValues.PUBLIC_COMPANY;
const addressSchema = getAddressSchemaForCountry(country).filter((field) => !COUNTRIES_WITH_STATES_DATASET.includes(country) ? field !== "stateOrProvince" : true);
const currentCountryTaxInformation = form.data.additionalInformation?.taxInformation?.find((taxId) => taxId.country === country);
const businessLineTypes = [];
if (requestingBanking(rootLegalEntity)) businessLineTypes.push("banking");
if (requestingIssuing(rootLegalEntity)) businessLineTypes.push("issuing");
const [addressToCheck, setAddressToCheck] = useDebouncedState(500);
const { data: cleansedRegistrationAddress } = useAddressCleanse({
text: addressToCheck,
country
}, { enabled: Boolean(addressToCheck) });
const mustProvideOperationalAddress = cleansedRegistrationAddress?.poBox ?? false;
useEffect$1(() => setAddressToCheck(formatAddressForCleanse(form.data.additionalInformation?.registrationAddress ?? {})), [form.data.additionalInformation?.registrationAddress, setAddressToCheck]);
/**
* Map the existing verified address data returned from the business data provider to our local address schema.
* This must be done differently than the other verified data as the address
* component maintains its own local form state.
*/
const verifiedAddress = useMemo$1(() => {
if (!verifiedBusiness$1) return void 0;
if (form.defaultData?.additionalInformation?.registrationAddress?.address || form.defaultData?.additionalInformation?.operationalAddress?.address) return { override: { address: "" } };
return {
...verifiedBusiness$1.registeredAddress && { registrationAddress: mapAddressData(verifiedBusiness$1.registeredAddress) },
...verifiedBusiness$1.principalPlaceOfBusinessAddress && { operationalAddress: mapAddressData(verifiedBusiness$1.principalPlaceOfBusinessAddress) }
};
}, [
verifiedBusiness$1,
form.defaultData?.additionalInformation?.registrationAddress?.address,
form.defaultData?.additionalInformation?.operationalAddress?.address
]);
const registrationAddressValid = useRef$1(false);
const operationalAddressValid = useRef$1(false);
if (form.valid.additionalInformation?.registrationAddress !== registrationAddressValid.current) form.setValid("registrationAddress", registrationAddressValid.current, "additionalInformation");
if (form.data.additionalInformation?.operationalAddressIsSame === operationalAddressIsSameIds.OPERATIONAL_ADDRESS_IS_NOT_SAME && form.valid.additionalInformation?.operationalAddress !== operationalAddressValid.current) form.setValid("operationalAddress", operationalAddressValid.current, "additionalInformation");
const handleChangeFor = useCallback$1((fieldName, mode) => form.handleChangeFor(fieldName, "additionalInformation", mode), [form]);
const handleRegistrationAddressChange = (state) => {
handleChangeFor("registrationAddress")(state.data);
form.setValid("registrationAddress", Boolean(state.isValid), "additionalInformation");
registrationAddressValid.current = Boolean(state.isValid);
};
const handleOperationalAddressChange = (state) => {
handleChangeFor("operationalAddress")(state.data);
form.setValid("operationalAddress", Boolean(state.isValid), "additionalInformation");
operationalAddressValid.current = Boolean(state.isValid);
};
const handleOperationalAddressIsSameChange = useCallback$1((isChecked) => {
if (isChecked) {
handleChangeFor("operationalAddressIsSame")(operationalAddressIsSameIds.OPERATIONAL_ADDRESS_IS_SAME);
form.setValid("operationalAddress", true, "additionalInformation");
} else handleChangeFor("operationalAddressIsSame")(operationalAddressIsSameIds.OPERATIONAL_ADDRESS_IS_NOT_SAME);
}, [form, handleChangeFor]);
if (form.data.additionalInformation?.operationalAddressIsSame === null) handleOperationalAddressIsSameChange(true);
useEffect$1(() => {
if (mustProvideOperationalAddress && form.data.additionalInformation?.operationalAddressIsSame !== operationalAddressIsSameIds.OPERATIONAL_ADDRESS_IS_NOT_SAME) handleOperationalAddressIsSameChange(false);
}, [
handleOperationalAddressIsSameChange,
mustProvideOperationalAddress,
form.data.additionalInformation?.operationalAddressIsSame
]);
const formUtils = useMemo$1(() => {
const initialProps = {
data: form.data.additionalInformation ?? {},
fieldValidationErrors: validationErrors,
formVerificationErrors: verificationErrors,
allFields: form.allFields?.additionalInformation ?? [],
requiredFields: form.requiredFields?.additionalInformation ?? [],
optionalFields: form.optionalFields?.additionalInformation ?? [],
trustedFields: form.trustedFields?.additionalInformation ?? [],
obscuredFields: form.obscuredFields?.additionalInformation ?? [],
errors: form.errors.additionalInformation ?? {},
valid: form.valid.additionalInformation ?? {},
handleFieldChange: handleChangeFor
};
const formUtilProps = initialProps.allFields?.reduce((acc, field) => {
switch (field) {
case "hasDoingBusinessAs": return mergeFieldMetadataIntoProps("hasDoingBusinessAs", doingBusinessAsAbsentFieldMetadata, acc);
case "doingBusinessAs": return mergeFieldMetadataIntoProps("doingBusinessAs", doingBusinessAsFieldMetadata, acc);
case "registrationNumber": return mergeFieldMetadataIntoProps(field, resolveFieldMetadata(registrationNumberDefaultFieldConfig[country], { registrationNumberType: form.data.additionalInformation?.registrationNumberType }, registrationNumberDefaultFieldMetadata), acc);
case "taxInformation": return mergeFieldMetadataIntoProps(field, resolveFieldMetadata(taxInformationDefaultFieldConfig[country], {
taxIdNumberType: currentCountryTaxInformation?.type,
companyType
}, taxInformationDefaultFieldMetadata), acc);
case "vatNumber": return mergeFieldMetadataIntoProps(field, resolveFieldMetadata(defaultFieldConfig$1[country], { vatNumberType: form.data.additionalInformation?.vatNumberType }, defaultFieldMetadata$1), acc);
case "vatAbsenceReason": return mergeFieldMetadataIntoProps("vatAbsenceReason", vatAbsenceReasonMetadata, acc);
case "eInvoicingCode": return mergeFieldMetadataIntoProps("eInvoicingCode", eInvoicingCodeFieldMetadata, acc);
case "industryCodes": return mergeFieldMetadataIntoProps("industryCodes", industryCodeFieldMetadata, acc);
case "dateOfIncorporation": return mergeFieldMetadataIntoProps("dateOfIncorporation", dateOfIncorporationFieldMetadata, acc);
case "stockExchangeMIC": return mergeFieldMetadataIntoProps("stockExchangeMIC", stockExchangeMICFieldMetadata, acc);
case "stockISIN": return mergeFieldMetadataIntoProps("stockISIN", stockISINFieldMetadata, acc);
case "stockTickerSymbol": return mergeFieldMetadataIntoProps("stockTickerSymbol", stockTickerSymbolFieldMetadata, acc);
case "legalForm": return mergeFieldMetadataIntoProps("legalForm", legalFormFieldMetadata, acc);
default: return acc;
}
}, initialProps);
return createFormUtils(formUtilProps ?? initialProps, t);
}, [
companyType,
country,
currentCountryTaxInformation?.type,
form.allFields?.additionalInformation,
form.data.additionalInformation,
form.errors.additionalInformation,
form.obscuredFields?.additionalInformation,
form.optionalFields?.additionalInformation,
form.requiredFields?.additionalInformation,
form.trustedFields?.additionalInformation,
form.valid.additionalInformation,
handleChangeFor,
t,
validationErrors,
verificationErrors
]);
const showField = (fieldKeys) => fieldKeys.some((field) => formUtils.isRequiredField(field) || formUtils.isOptionalField(field));
const { data: industryCodes } = useIndustryCodes(businessLineTypes, i18n.language, { enabled: showField(INDUSTRY_CODE_FIELD) });
const datasetUtils = datasetUtilities(i18n.language);
const registrationAddressDescription = useMemo$1(() => {
return [
"US",
"NL",
"CZ"
].includes(country) ? t(($) => $["youBusinessOfficalAddressInTheCounty"], {
ns: "business",
country: datasetUtils.getCountryName(country)
}) : t(($) => $["youBusinessOfficalAddressInCounty"], {
ns: "business",
country: datasetUtils.getCountryName(country)
});
}, [
country,
datasetUtils,
t
]);
const showJapanLocalization = isJapanLocalizationEnabled(isFeatureEnabled, country);
let readOnlyAddressFields = [];
if (verifiedBusiness$1?.registeredAddress?.state && verifiedBusiness$1.registeredAddress.state === form.data.basicInformation?.stateOrProvince) readOnlyAddressFields = ["stateOrProvince"];
return /* @__PURE__ */ jsxs("form", {
id,
children: [
/* @__PURE__ */ jsx(Header, { title: t(($) => $["additionalInformationFormHeading"], { ns: "business" }) }),
/* @__PURE__ */ jsx(ErrorPanel, {
id: "ariaErrorField",
verificationErrors,
validationErrors,
formUtils
}),
/* @__PURE__ */ jsxs("div", {
className: AdditionalInformation_module_default.additionalInformationContent,
children: [
showVerified && /* @__PURE__ */ jsxs("section", { children: [/* @__PURE__ */ jsx("div", {
className: AdditionalInformation_module_default.additionalInformationSectionHeading,
children: /* @__PURE__ */ jsx(Typography, {
el: "h3",
variant: "title",
children: t(($) => $["verifiedInformation"], { ns: "business" })
})
}), /* @__PURE__ */ jsx(VerifiedBusinessCard, {
verifiedBusiness: verifiedBusiness$1,
verifiedAddress: verifiedAddress?.override ?? verifiedAddress?.registrationAddress ?? verifiedAddress?.operationalAddress
})] }),
/* @__PURE__ */ jsxs("section", { children: [showVerified && /* @__PURE__ */ jsx("div", {
className: AdditionalInformation_module_default.additionalInformationSectionHeading,
children: /* @__PURE__ */ jsx(Typography, {
el: "h3",
variant: "title",
children: t(($) => $["otherBusinessInformation"], { ns: "business" })
})
}), /* @__PURE__ */ jsxs("fieldset", { children: [
showField(LEGAL_FORM_FIELDS) && /* @__PURE__ */ jsx(LegalFormField, {
name: "legalForm",
countryCode: country,
data: { legalForm: formUtils.getFieldData(form.data.additionalInformation ?? {}, LEGAL_FORM_FIELDS).legalForm },
valid: formUtils.getFieldValid(form.valid.additionalInformation ?? {}, LEGAL_FORM_FIELDS),
errorMessage: form.errors.additionalInformation?.legalForm?.errorMessage,
handleChangeFor,
readonly: false,
label: formUtils.getLabel("legalForm", "businessStructure")
}),
showField(DBA_NAME_FIELD) && /* @__PURE__ */ jsx(DBANameField, {
data: formUtils.getFieldData(form.data.additionalInformation ?? {}, DBA_NAME_FIELD),
valid: formUtils.getFieldValid(form.valid.additionalInformation ?? {}, DBA_NAME_FIELD),
errors: formUtils.getFieldErrors(form.errors.additionalInformation ?? {}, validationErrors, DBA_NAME_FIELD),
readonly: formUtils.isReadOnly("doingBusinessAs"),
handleChangeFor
}),
showField(BUSINESS_REGISTRATION_NUMBER_FIELD) && /* @__PURE__ */ jsx(BusinessRegistrationNumberField, {
data: formUtils.getFieldData(form.data.additionalInformation ?? {}, BUSINESS_REGISTRATION_NUMBER_FIELD),
valid: formUtils.getFieldValid(form.valid.additionalInformation ?? {}, BUSINESS_REGISTRATION_NUMBER_FIELD),
errors: formUtils.getFieldErrors(form.errors.additionalInformation ?? {}, validationErrors, BUSINESS_REGISTRATION_NUMBER_FIELD),
labels: formUtils.getFieldLabels(BUSINESS_REGISTRATION_NUMBER_FIELD, { exemptedFromRegistrationNumber: "iDontHaveARegistrationNumber" }),
mask: formUtils.getMask("registrationNumber"),
helperText: getRegistrationNumberHelperText(businessT, {
country,
companyType
}),
readonly: formUtils.isReadOnly("registrationNumber"),
optional: formUtils.isOptionalField("registrationNumber"),
shouldValidate,
handleChangeFor,
country,
canExempt: showField(["exemptedFromRegistrationNumber"]),
companyType
}),
showField(TAX_INFORMATION_FIELD) && /* @__PURE__ */ jsx(TaxInformationField, {
data: formUtils.getFieldData(form.data.additionalInformation ?? {}, TAX_INFORMATION_FIELD),
valid: formUtils.getFieldValid(form.valid.additionalInformation ?? {}, TAX_INFORMATION_FIELD),
errors: formUtils.getFieldErrors(form.errors.additionalInformation ?? {}, validationErrors, TAX_INFORMATION_FIELD),
labels: formUtils.getFieldLabels(TAX_INFORMATION_FIELD, { exemptedFromTax: "iDontHaveATaxId" }),
mask: formUtils.getMask("taxInformation"),
readonly: formUtils.isReadOnly("taxInformation"),
shouldValidate,
handleChangeFor,
canExempt: showField(["exemptedFromTax"]),
country,
entityType: companyType,
defaultData: form.defaultData?.additionalInformation?.taxInformation,
registrationNumber: form.data.additionalInformation?.registrationNumber
}),
showField(VAT_NUMBER_FIELD) && /* @__PURE__ */ jsx(VatNumberField, {
data: formUtils.getFieldData(form.data.additionalInformation ?? {}, VAT_NUMBER_FIELD),
valid: formUtils.getFieldValid(form.valid.additionalInformation ?? {}, VAT_NUMBER_FIELD),
errors: formUtils.getFieldErrors(form.errors.additionalInformation ?? {}, validationErrors, VAT_NUMBER_FIELD),
labels: formUtils.getFieldLabels(VAT_NUMBER_FIELD, { exemptedFromVat: "iDontHaveAVatNumber" }),
mask: formUtils.getMask("vatNumber"),
readonly: formUtils.isReadOnly("vatNumber"),
handleChangeFor,
country,
canExempt: showField(["exemptedFromVat"]),
shouldValidate
}),
formUtils.isRequiredField("eInvoicingCode", false) && /* @__PURE__ */ jsx(EInvoicingCodeField, {
data: formUtils.getFieldData(form.data.additionalInformation ?? {}, EINVOICING_CODE_FIELD),
valid: formUtils.getFieldValid(form.valid.additionalInformation ?? {}, EINVOICING_CODE_FIELD),
errors: formUtils.getFieldErrors(form.errors.additionalInformation ?? {}, validationErrors, EINVOICING_CODE_FIELD),
labels: formUtils.getFieldLabels(EINVOICING_CODE_FIELD),
mask: formUtils.getMask("eInvoicingCode"),
readonly: formUtils.isReadOnly("eInvoicingCode"),
handleChangeFor
}),
showField(INDUSTRY_CODE_FIELD) && /* @__PURE__ */ jsx(IndustryCodeField, {
data: formUtils.getFieldData(form.data.additionalInformation ?? {}, INDUSTRY_CODE_FIELD),
valid: formUtils.getFieldValid(form.valid.additionalInformation ?? {}, INDUSTRY_CODE_FIELD),
errors: formUtils.getFieldErrors(form.errors.additionalInformation ?? {}, validationErrors, INDUSTRY_CODE_FIELD),
guidanceText: t(($) => $["primaryIndustryCodeGuidance"], { ns: "business" }),
readonly: formUtils.isReadOnly("industryCodes"),
handleChangeFor,
businessLineTypes,
single: true,
industryCodes: industryCodes ?? []
}),
showField(DATE_OF_INCORPORATION_FIELD) && /* @__PURE__ */ jsx(DateOfIncorporationField, {
data: formUtils.getFieldData(form.data.additionalInformation ?? {}, DATE_OF_INCORPORATION_FIELD),
valid: formUtils.getFieldValid(form.valid.additionalInformation ?? {}, DATE_OF_INCORPORATION_FIELD),
errors: formUtils.getFieldErrors(form.errors.additionalInformation ?? {}, validationErrors, DATE_OF_INCORPORATION_FIELD),
placeholder: t(($) => $["datePlaceholder"]),
readonly: formUtils.isReadOnly("dateOfIncorporation"),
handleChangeFor
})
] })] }),
showStockData && /* @__PURE__ */ jsxs("section", { children: [/* @__PURE__ */ jsx("div", {
className: AdditionalInformation_module_default.additionalInformationSectionHeading,
children: /* @__PURE__ */ jsx(Typography, {
el: "h3",
variant: "title",
children: t(($) => $["stockExchangeInformation"], { ns: "business" })
})
}), /* @__PURE__ */ jsxs("fieldset", { children: [
showField(STOCK_EXCHANGE_MIC_FIELD) && /* @__PURE__ */ jsx(StockExchangeMICField, {
data: formUtils.getFieldData(form.data.additionalInformation ?? {}, STOCK_EXCHANGE_MIC_FIELD),
valid: formUtils.getFieldValid(form.valid.additionalInformation ?? {}, STOCK_EXCHANGE_MIC_FIELD),
errors: formUtils.getFieldErrors(form.errors.additionalInformation ?? {}, validationErrors, STOCK_EXCHANGE_MIC_FIELD),
mask: formUtils.getMask("stockExchangeMIC"),
readonly: formUtils.isReadOnly("stockExchangeMIC"),
shouldValidate,
handleChangeFor
}),
showField(STOCK_ISIN_FIELD) && /* @__PURE__ */ jsx(StockISINField, {
data: formUtils.getFieldData(form.data.additionalInformation ?? {}, STOCK_ISIN_FIELD),
valid: formUtils.getFieldValid(form.valid.additionalInformation ?? {}, STOCK_ISIN_FIELD),
errors: formUtils.getFieldErrors(form.errors.additionalInformation ?? {}, validationErrors, STOCK_ISIN_FIELD),
mask: formUtils.getMask("stockISIN"),
readonly: formUtils.isReadOnly("stockISIN"),
shouldValidate,
handleChangeFor
}),
showField(STOCK_TICKER_SYMBOL_FIELD) && /* @__PURE__ */ jsx(StockTickerSymbolField, {
data: formUtils.getFieldData(form.data.additionalInformation ?? {}, STOCK_TICKER_SYMBOL_FIELD),
valid: formUtils.getFieldValid(form.valid.additionalInformation ?? {}, STOCK_TICKER_SYMBOL_FIELD),
errors: formUtils.getFieldErrors(form.errors.additionalInformation ?? {}, validationErrors, STOCK_TICKER_SYMBOL_FIELD),
mask: formUtils.getMask("stockTickerSymbol"),
readonly: formUtils.isReadOnly("stockTickerSymbol"),
shouldValidate,
handleChangeFor
})
] })] }),
/* @__PURE__ */ jsxs("section", {
"data-testid": "registeredBusinessAddress",
children: [/* @__PURE__ */ jsxs("div", {
className: AdditionalInformation_module_default.additionalInformationSectionHeading,
children: [/* @__PURE__ */ jsx(Typography, {
el: "h3",
variant: "title",
children: t(($) => $["registeredBusinessAddress"], { ns: "business" })
}), /* @__PURE__ */ jsx(Typography, {
el: "p",
variant: "body",
children: registrationAddressDescription
})]
}), showJapanLocalization ? /* @__PURE__ */ jsx(Suspense, {
fallback: /* @__PURE__ */ jsx(Loader, {}),
children: /* @__PURE__ */ jsx(LazyJpAddress, {
id: ADDITIONAL_INFORMATION_FORM_ID,
addressType: "registrationAddress",
data: {
...form.data.additionalInformation?.registrationAddress,
country
},
shouldValidate,
onChange: handleRegistrationAddressChange
})
}) : /* @__PURE__ */ jsx(Address, {
id: ADDITIONAL_INFORMATION_FORM_ID,
addressType: "registrationAddress",
data: {
...form.data.additionalInformation?.registrationAddress,
country
},
labels: getAddressSchemaLabelsByCountry(country),
requiredFields: addressSchema,
shouldValidate,
hideCountry: true,
optionalFields: ["otherAddressInformation"],
readOnlyFields: readOnlyAddressFields,
trustedFields: getNestedTrustedFields("registrationAddress", form.data.additionalInformation, form.trustedFields?.additionalInformation),
onChange: handleRegistrationAddressChange,
verifiedBusiness: verifiedBusiness$1,
verifiedAddress: verifiedAddress?.registrationAddress,
condensed: true
})]
}),
/* @__PURE__ */ jsxs("section", {
"data-testid": "principalPlaceOfBusiness",
children: [
/* @__PURE__ */ jsxs("div", {
className: AdditionalInformation_module_default.additionalInformationSectionHeading,
children: [/* @__PURE__ */ jsx(Typography, {
el: "h3",
variant: "title",
children: t(($) => $["principalPlaceOfBusiness"], { ns: "business" })
}), /* @__PURE__ */ jsx(Typography, {
el: "p",
variant: "body",
children: t(($) => $["thePhysicalLocationWhereABusiness"], { ns: "business" })
})]
}),
!mustProvideOperationalAddress && /* @__PURE__ */ jsx(Field, {
el: "fieldset",
name: "operationalAddressIsSame",
errorMessage: form.errors.additionalInformation?.operationalAddressIsSame?.errorMessage,
isValid: form.valid.additionalInformation?.operationalAddressIsSame,
children: (childProps) => /* @__PURE__ */ jsx(Checkbox, {
...childProps,
"aria-required": formUtils.isRequiredField("operationalAddressIsSame"),
"aria-invalid": !form.valid.additionalInformation?.operationalAddressIsSame,
name: "operationalAddressIsSame",
label: formUtils.getLabel("sameAsRegisteredAddress"),
checked: form.data.additionalInformation?.operationalAddressIsSame ? form.data.additionalInformation.operationalAddressIsSame === operationalAddressIsSameIds.OPERATIONAL_ADDRESS_IS_SAME : true,
onChange: handleOperationalAddressIsSameChange
})
}),
form.data.additionalInformation?.operationalAddressIsSame === operationalAddressIsSameIds.OPERATIONAL_ADDRESS_IS_NOT_SAME && (showJapanLocalization ? /* @__PURE__ */ jsx(Suspense, {
fallback: /* @__PURE__ */ jsx(Loader, {}),
children: /* @__PURE__ */ jsx(LazyJpAddress, {
id: ADDITIONAL_INFORMATION_FORM_ID,
addressType: "operationalAddress",
data: {
...form.data.additionalInformation.operationalAddress,
country
},
shouldValidate,
onChange: handleOperationalAddressChange
})
}) : /* @__PURE__ */ jsx(Address, {
id: ADDITIONAL_INFORMATION_FORM_ID,
addressType: "operationalAddress",
data: {
...form.defaultData?.additionalInformation?.operationalAddress,
country
},
labels: getAddressSchemaLabelsByCountry(country),
requiredFields: addressSchema,
shouldValidate,
hideCountry: true,
optionalFields: ["otherAddressInformation"],
trustedFields: getNestedTrustedFields("operationalAddress", form.data.additionalInformation, form.trustedFields?.additionalInformation),
onChange: handleOperationalAddressChange,
verifiedBusiness: verifiedBusiness$1,
verifiedAddress: verifiedAddress?.operationalAddress,
condensed: true
}))
]
})
]
})
]
});
}
//#endregion
//#region src/components/Shared/fields/LocalizedLegalCompanyNameField/types.ts
var JAPANESE_LEGAL_COMPANY_NAME_FIELDS = ["jaHaniLegalCompanyName", "jaKanaLegalCompanyName"];
//#endregion
//#region src/hooks/useLegalCompanyNameField/useLegalCompanyNameField.ts
function useLegalCompanyNameField({ data, valid, errors, fieldProblems, country, formUtils, handleChange, t }) {
const { isFeatureEnabled } = useToggleContext();
const fieldKeys = getFieldKeys(isFeatureEnabled, country);
const labels = formUtils.getFieldLabels(fieldKeys);
const fieldErrors = formUtils.getFieldErrors(errors, fieldProblems, fieldKeys);
const fieldsTransformInput = {
jaHaniLegalCompanyName: toFullWidth,
jaKanaLegalCompanyName: toFullWidth
};
const fieldsTransformMode = {
jaHaniLegalCompanyName: "blur",
jaKanaLegalCompanyName: "blur"
};
return fieldKeys.map((fieldKey) => {
if (formUtils.isRequiredField(fieldKey) || formUtils.isOptionalField(fieldKey)) {
const guidance = fieldKey === "legalCompanyName" ? getLegalCompanyNameGuidanceText(t, { country }) : void 0;
return {
name: fieldKey,
value: data[fieldKey] ?? "",
readonly: formUtils.isReadOnly(fieldKey),
onInput: handleChange(fieldKey, "input"),
onBlur: handleChange(fieldKey, "blur"),
isValid: valid[fieldKey],
errorMessage: fieldErrors[fieldKey],
label: labels[fieldKey],
guidance,
onKeyDown: handleKeyDown,
transformInput: fieldsTransformInput[fieldKey],
transformMode: fieldsTransformMode[fieldKey]
};
}
});
}
var getFieldKeys = (isFeatureEnabled = () => false, country) => {
if (isJapanLocalizationEnabled(isFeatureEnabled, country)) return [...JAPANESE_LEGAL_COMPANY_NAME_FIELDS, ...LEGAL_COMPANY_NAME_FIELD];
return LEGAL_COMPANY_NAME_FIELD;
};
var handleKeyDown = (e) => {
if (e.key === KEYBOARD_KEYS.enter) e.preventDefault();
};
//#endregion
//#region src/components/Shared/fields/CountryOfGoverningLawField/CountryOfGoverningLawField.tsx
var COUNTRY_OF_GOVERNING_LAW_FIELD = ["countryOfGoverningLaw"];
function CountryOfGoverningLawField({ data, valid, errors, labels, readonly, handleChangeFor, allowedCountries, country }) {
const { t } = useTranslation("common");
useEffect$1(() => {
if (country === CountryCodes.UnitedKingdom && !data.countryOfGoverningLaw) {
const countryOfGoverningLawEvent = { target: {
name: "countryOfGoverningLaw",
value: CountryCodes.UnitedKingdom
} };
handleChangeFor("countryOfGoverningLaw")(countryOfGoverningLawEvent);
}
}, [country]);
return /* @__PURE__ */ jsx(CountryField, {
name: "countryOfGoverningLaw",
data: { country: data.countryOfGoverningLaw },
valid: { country: valid.countryOfGoverningLaw },
errors: { country: errors.countryOfGoverningLaw },
labels: { country: labels?.countryOfGoverningLaw || t(($) => $["countryOfGoverningLaw"]) },
readonly,
allowedCountries,
handleChangeFor: () => handleChangeFor("countryOfGoverningLaw")
});
}
var localizedLegalCompanyNameFieldConfig = {
jaHaniLegalCompanyName: {
config: {
label: "jaHaniLegalCompanyName",
validators: validateJaHaniLegalCompanyName
},
metadata: { label: "jaHaniLegalCompanyName" }
},
jaKanaLegalCompanyName: {
config: {
label: "jaKanaLegalCompanyName",
validators: validateJaKanaLegalCompanyName
},
metadata: { label: "jaKanaLegalCompanyName" }
}
};
var BasicInformation_module_default = {
"basic-information": "adyen-kyc-basic-information",
basicInformation: "adyen-kyc-basic-information"
};
//#endregion
//#region src/components/Business/forms/BasicInformation/BasicInformation.tsx
var BASIC_INFORMATION_FIELDS = [
...COUNTRY_FIELD,
...LEGAL_COMPANY_NAME_FIELD,
"jaHaniLegalCompanyName",
"jaKanaLegalCompanyName",
...TAX_INFORMATION_FIELD,
...STATE_FIELD,
...BUSINESS_REGISTRATION_NUMBER_FIELD,
...COUNTRY_OF_GOVERNING_LAW_FIELD
];
var FormDescription = ({ description, t }) => {
return /* @__PURE__ */ jsxs("div", {
className: "adyen-kyc-form-header__description",
children: [
description,
" ",
/* @__PURE__ */ jsx(Link, {
href: "https://www.adyen.com/privacy-policy",
external: true,
children: t(($) => $["privacyStatement"])
})
]
});
};
function BasicInformation({ id, country, shouldValidate, validationErrors = {}, verificationErrors = {}, isTopLevelEntity, disableCountry, companyType }) {
const { t } = useTranslation(["common", "business"]);
const { t: businessT } = useTranslation("business");
const { isSettingEnabled } = useSettingsContext();
const { isFeatureEnabled } = useToggleContext();
const { form } = useFormContext();
const allowedCountries = useAllowedCountries();
const isAllowedEditPrefilledCountry = isSettingEnabled(SettingNames.AllowPrefilledCountryEdit);
const state = form.data.basicInformation?.stateOrProvince;
const currentCountryTaxInformation = form.data.basicInformation