@adyen/kyc-components 3.26.2 → 3.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/es/adyen-kyc-components.es.js +782 -701
  2. package/dist/style.css +157 -281
  3. package/dist/types/components/BasicInformation/component/BasicInformationComponent.d.ts +1 -1
  4. package/dist/types/components/BasicInformation/types.d.ts +1 -0
  5. package/dist/types/components/BusinessDetails/types.d.ts +1 -0
  6. package/dist/types/components/BusinessSelection/BusinessInformationCard.d.ts +2 -1
  7. package/dist/types/components/BusinessSelection/component/BusinessSelectionComponent.d.ts +1 -1
  8. package/dist/types/components/BusinessSelection/types.d.ts +1 -0
  9. package/dist/types/components/Dropins/BusinessDetailsDropin/types.d.ts +1 -1
  10. package/dist/types/components/Dropins/CompanyDropin/components/CompanyDropinComponent.d.ts +1 -1
  11. package/dist/types/components/Dropins/CompanySearchDropin/components/CompanySearchDropinComponent.d.ts +1 -1
  12. package/dist/types/components/Dropins/DropinLayout/EmbeddedActionBar/EmbeddedActionBar.d.ts +1 -1
  13. package/dist/types/components/Dropins/FormWrapper/FormWrapper.d.ts +2 -1
  14. package/dist/types/components/EmbeddedDropins/CreateContractingComponent/CreateContractingComponent.d.ts +6 -0
  15. package/dist/types/components/EmbeddedDropins/ManageTransferInstrumentComponent/ManageTransferInstrumentOverview/ManageTransferInstrumentOverview.d.ts +2 -3
  16. package/dist/types/components/EmbeddedDropins/ManageTransferInstrumentComponent/ManageTransferInstrumentOverviewItem/ManageTransferInstrumentOverviewItem.d.ts +1 -3
  17. package/dist/types/components/EmbeddedDropins/ManageTransferInstrumentComponent/ManageTransferInstrumentOverviewItemModal/ManageTransferInstrumentOverviewItemModal.d.ts +11 -0
  18. package/dist/types/components/PayoutAccount/types.d.ts +1 -0
  19. package/dist/types/components/StepProgressIndicator/StepProgressIndicator.d.ts +8 -0
  20. package/dist/types/components/{internal → embedded-ui}/EmbeddedStatus/EmbeddedStatus.d.ts +3 -3
  21. package/dist/types/components/{internal → embedded-ui}/EmbeddedStatus/statusToTag.d.ts +3 -3
  22. package/dist/types/components/index.d.ts +2 -0
  23. package/dist/types/components/internal/Modal/Modal.d.ts +7 -16
  24. package/dist/types/components/internal/StructuredList/StructuredList.d.ts +10 -0
  25. package/dist/types/components/internal/Svg/svgs.d.ts +2 -3
  26. package/dist/types/core/hooks/singpass/useSingpassMyInfoLogin.d.ts +1 -2
  27. package/dist/types/core/hooks/useBusinessData/types.d.ts +1 -0
  28. package/dist/types/core/hooks/useFormComposer.d.ts +1 -0
  29. package/package.json +1 -1
  30. package/dist/es/owners-DT55tjrZ.js +0 -5
  31. package/dist/es/signatory-BUpU_luQ.js +0 -10
  32. package/dist/es/user-business-BZ3Ko-Oi.js +0 -11
  33. package/dist/types/components/EmbeddedDropins/ManageTransferInstrumentComponent/AddTransferInstrument/AddTransferInstrument.d.ts +0 -4
  34. package/dist/types/components/EmbeddedDropins/ManageTransferInstrumentComponent/ManageTransferInstrumentOverviewItemSummary/ManageTransferInstrumentOverviewItemSummary.d.ts +0 -8
  35. package/dist/types/components/internal/NewModal/Modal.d.ts +0 -11
@@ -51,7 +51,7 @@ const defaultTrans = {
51
51
  ICO: "IČO (Identifikační číslo)",
52
52
  MBO: "MBO",
53
53
  MBS: "Matični broj subjekta trgovačkog suda (MBS)",
54
- Mehrwertsteuernummer: "Mehrwertsteuernummer (MwST), Numéro de TVA, Numero dellimposta sul valore aggiunto (IVA), VAT number",
54
+ Mehrwertsteuernummer: "Mehrwertsteuernummer (MwST), Numéro de TVA, Numero dell'imposta sul valore aggiunto (IVA), VAT number",
55
55
  NIF: "NIF (Número de Identificación Fiscal)",
56
56
  NIFdeIVA: "Número de Identificación a efectos de IVA (Impuesto sobre el Valor Añadido)",
57
57
  NIP: "Numer identyfikacji podatkowej (NIP)",
@@ -83,7 +83,7 @@ const defaultTrans = {
83
83
  acceptedDocumentsForPartnerships: "Accepted documents for partnerships",
84
84
  acceptedDocumentsForPrivateCompanies: "Accepted documents for private companies",
85
85
  acceptedDocumentsForPublicCompanies: "Accepted documents for public companies",
86
- accountCantBeSetUp: "Your account cant be set up as your information couldnt be verified. To find out more, reach out to customer support.",
86
+ accountCantBeSetUp: "Your account can't be set up as your information couldn't be verified. To find out more, reach out to customer support.",
87
87
  accountDetailsDescription: "Provide a few details about you to start accepting live payments.",
88
88
  accountHolder: "Account holder",
89
89
  accountHolderDescriptionCompany: "The bank account holder has to have the same name as your company.",
@@ -97,9 +97,10 @@ const defaultTrans = {
97
97
  accountVerification: "Account Verification",
98
98
  achRoutingNumber: "ACH routing number",
99
99
  acknowledgePciRequirements: "We hereby acknowledge that we must remain compliant with the aforementioned PCI DSS requirements at all times as long as we want to receive payments. Consequently, we must continuously reassess our environment and implement any additional PCI DSS requirements if our environment changes.",
100
+ actionNeeded: "Action needed",
100
101
  add: "Add",
101
102
  addAndVerifyYourBankDetails: "Add and verify your bank account details",
102
- addAnotherBankAccount: "Add another bank account",
103
+ addBankAccount: "Add bank account",
103
104
  addBankDetails: "Add bank details",
104
105
  addDecisionMaker: "Add decision-maker",
105
106
  addEntityOwner: "Add owner details",
@@ -119,7 +120,7 @@ const defaultTrans = {
119
120
  addressRegisteredWithSecretaryOfState: "Address registered with the Secretary of State for this company.",
120
121
  addresses: "Addresses",
121
122
  adoptionCertificate: "Adoption certificate",
122
- adyenKeepsDataAsLongAsLegallyRequired: "Adyen only keeps your data for as long as were legally required to. It wont be used for any other purposes or by other third parties than those stated.",
123
+ adyenKeepsDataAsLongAsLegallyRequired: "Adyen only keeps your data for as long as we're legally required to. It won't be used for any other purposes or by other third parties than those stated.",
123
124
  adyenWillOnlyGetTemporaryAccess: "Adyen will only gain temporary access to your bank details, and your data is never shared with third parties.",
124
125
  anAssociation: "An association",
125
126
  anAssociationDescription: "The account belongs to a group of people acting together for a specific non-commercial purpose",
@@ -127,7 +128,9 @@ const defaultTrans = {
127
128
  andResubmit: "and submit again.",
128
129
  annualReport: "Annual Report",
129
130
  annualTurnover: "Annual turnover",
131
+ annualTurnoverCurrency: "Annual turnover currency",
130
132
  annualTurnoverHelper: "The annual sales revenue minus all discounts and sales taxes. Also known as net sales.",
133
+ annualTurnoverValue: "Annual turnover value",
131
134
  apartmentSuite: "Apartment / Suite",
132
135
  apartmentSuiteOptional: "Apartment / Suite (optional)",
133
136
  areYouACompany: "Are you a company?",
@@ -162,9 +165,6 @@ const defaultTrans = {
162
165
  bankCode: "Bank code",
163
166
  bankCountry: "Bank country/region",
164
167
  bankDetails: "Bank details",
165
- bankDetailsBeingProcessed: "Your bank details are being processed at the moment. Come back later to check the status.",
166
- bankDetailsNotVerified: "Bank account details couldn't be verified. Review the information to see what needs to be adjusted.",
167
- bankDetailsVerified: "Your bank details are verified and you are ready to use it.",
168
168
  bankDocument: "Bank document",
169
169
  bankDocumentDescription: "We need an official document to verify your bank account details.",
170
170
  bankDocumentFileDescription: "Add a description for this bank account (optional)",
@@ -172,6 +172,7 @@ const defaultTrans = {
172
172
  bankDocumentHeaderOptional: "Upload a bank document (optional)",
173
173
  bankName: "Bank name",
174
174
  bankruptcyInsolvency: "Yes, the company is filing for bankruptcy or insolvency",
175
+ bankStatement: "Bank statement",
175
176
  bankStatementAlreadyUploaded: "Bank statement has already been uploaded, is too large, or the account has already been added; try another",
176
177
  bankStatementDocument: "Bank statement",
177
178
  basedOnTheAboveSignatory: "Based on the above, the signatory above asserts that the information within this attestation form fairly represents the results of the assessment.",
@@ -182,7 +183,7 @@ const defaultTrans = {
182
183
  basicInformationFormHeading: "Basic details about your business",
183
184
  basicInformationFormName: "Basic details",
184
185
  becauseYoureUnderXWeNeedToCollectInformationAboutALegalRepresentative: "Because you're under %{age}, we need to collect information about a legal representative in another step",
185
- beforeSubmittingYourCapitalLoanApplication: "Before submitting your capital loan application, we need to collect some information about you and your business. This information is required by EU financial regulations and will not affect your businesss credit score.",
186
+ beforeSubmittingYourCapitalLoanApplication: "Before submitting your capital loan application, we need to collect some information about you and your business. This information is required by EU financial regulations and will not affect your business's credit score.",
186
187
  belowTaxThreshold: "Earnings are below the mandatory indirect tax registration threshold in this country/region of establishment",
187
188
  beneficiariesDetailsIncl: "Beneficiaries details including number of beneficiaries, full legal names, and any default beneficiaries",
188
189
  beneficiary: "Beneficiary",
@@ -223,7 +224,7 @@ const defaultTrans = {
223
224
  cadastroDePessoasFisicas: "Cadastro de Pessoas Físicas (CPF)",
224
225
  canNotCompleteInstantVerification: "Can not complete instant verification?",
225
226
  cancel: "Cancel",
226
- cantSetUpAcccount: "You cant set up an account",
227
+ cantSetUpAcccount: "You can't set up an account",
227
228
  capitalUserTerms: "Capital User Terms",
228
229
  cardUserTerms: "Card User Terms",
229
230
  cashManagementTrust: "Cash management trust",
@@ -274,7 +275,7 @@ const defaultTrans = {
274
275
  companyRegistrationAddressFormDescription: "Specify the address registered to your company with the Secretary of State.",
275
276
  companyRegistrationAddressFormName: "Registered address",
276
277
  companyRegistrationDocument: "Company registration document",
277
- companyRegistrationDocumentFormDescription: "We need an official document to verify your organizations details.",
278
+ companyRegistrationDocumentFormDescription: "We need an official document to verify your organization's details.",
278
279
  companyRegistrationDocumentFormHeading: "Upload a registration document",
279
280
  companyRegistrationDocumentFormName: "Registration document",
280
281
  companyRegistrationNumber: "Company registration number",
@@ -282,7 +283,7 @@ const defaultTrans = {
282
283
  companyStructure: "Company structure",
283
284
  companyStructureFormDescription: "What type of company do you have?",
284
285
  companyStructureFormName: "Company structure",
285
- companyTaxDocumentFormDescription: "We need an official document to verify your organizations tax details.",
286
+ companyTaxDocumentFormDescription: "We need an official document to verify your organization's tax details.",
286
287
  companyTaxDocumentFormHeading: "Upload a tax document",
287
288
  companyTaxDocumentFormName: "Tax document",
288
289
  companyTrustee: "Company trustee",
@@ -360,8 +361,10 @@ const defaultTrans = {
360
361
  doNotHaveYTunnus: "I do not have a Y-TUNNUS",
361
362
  documentAddressedToName: "The document has to be addressed to %{name}",
362
363
  documentCannotBeDamaged: "The document cannot be damaged",
363
- documentIssuedByGovernmentAuthority: "The document has to be issued by a government authority. Its usually given when a business is created at the local commercial register",
364
+ documentIssuedByGovernmentAuthority: "The document has to be issued by a government authority. It's usually given when a business is created at the local commercial register",
364
365
  documentNotExpiredOrDamaged: "The document cannot be expired or damaged",
366
+ documentName: "Document name",
367
+ documentUpload: "Document upload",
365
368
  documentRequirements: "Document requirements",
366
369
  documentShowsTaxIdOfCompany: "The document shows the tax ID number of the company",
367
370
  documentType: "Document type",
@@ -373,7 +376,7 @@ const defaultTrans = {
373
376
  doingBusinessAsNameFiling: "Doing business as (DBA) filing",
374
377
  doingBusinessAsNameFiling__FR: "Trading name filing",
375
378
  doingBusinessAsNameFiling__US: "Doing business as (DBA) filing, such as your articles of incorporation",
376
- dontHaveAccessOnlineBanking: "Dont have access to online banking environment?",
379
+ dontHaveAccessOnlineBanking: "Don't have access to online banking environment?",
377
380
  download: "Download",
378
381
  downloadACopy: "Download a copy",
379
382
  downloadAsPdf: "Download as PDF",
@@ -429,12 +432,12 @@ const defaultTrans = {
429
432
  entityEstablishingTrust: "The entity that establishes a trust.",
430
433
  entityOwning25OrMoreOfTrust: "The entity who owns 25% or more of the property in trust.",
431
434
  entityType: "Entity type",
432
- errorMessage_1_10: "Information couldnt be verified",
435
+ errorMessage_1_10: "Information couldn't be verified",
433
436
  errorMessage_1_1000: "Verification failed. Legal entity declined",
434
437
  errorMessage_1_1001: "There were some technical issues in the verification process.",
435
438
  errorMessage_1_1002: "There are more questions about the submitted information.",
436
439
  errorMessage_1_1003: "The document contained sensitive data.",
437
- errorMessage_1_11: "Document didnt meet requirements",
440
+ errorMessage_1_11: "Document didn't meet requirements",
438
441
  errorMessage_1_12: "Legal entity declined",
439
442
  errorMessage_1_30: "Individual details couldn't be verified",
440
443
  errorMessage_1_3000: "The user couldn't be verified.",
@@ -446,12 +449,12 @@ const defaultTrans = {
446
449
  errorMessage_1_3006: "The name didn't match the national ID number.",
447
450
  errorMessage_1_3007: "An incorrect national ID number was entered.",
448
451
  errorMessage_1_3008: "The ID document image was incomplete.",
449
- errorMessage_1_3009: "The photo on the ID document couldnt be recognized.",
452
+ errorMessage_1_3009: "The photo on the ID document couldn't be recognized.",
450
453
  errorMessage_1_3010: "The ID document image was incomplete or too blurry.",
451
454
  errorMessage_1_3011: "The ID document image was in black and white.",
452
- errorMessage_1_3012: "The image couldnt be recognized as a supported ID document.",
455
+ errorMessage_1_3012: "The image couldn't be recognized as a supported ID document.",
453
456
  errorMessage_1_3013: "The ID document wasn't a supported document type.",
454
- errorMessage_1_3014: "The ID document image didnt contain the MRZ code.",
457
+ errorMessage_1_3014: "The ID document image didn't contain the MRZ code.",
455
458
  errorMessage_1_3015: "The ID document was expired.",
456
459
  errorMessage_1_3016: "The ID document image was of too low quality.",
457
460
  errorMessage_1_3017: "The ID document image was a scan.",
@@ -462,47 +465,47 @@ const defaultTrans = {
462
465
  errorMessage_1_3022: "The ID document image only showed one side of the ID document.",
463
466
  errorMessage_1_3023: "The ID document image only showed parts of the ID document.",
464
467
  errorMessage_1_3024: "The ID document wasn't valid.",
465
- errorMessage_1_3025: "The state didnt match the one on the ID document.",
466
- errorMessage_1_3026: "The ID document didnt show an issuing state.",
468
+ errorMessage_1_3025: "The state didn't match the one on the ID document.",
469
+ errorMessage_1_3026: "The ID document didn't show an issuing state.",
467
470
  errorMessage_1_3027: "The ID document wasn't valid.",
468
- errorMessage_1_3028: "The ID number didnt match the one on the document.",
469
- errorMessage_1_3029: "The ID document didnt show a document number.",
471
+ errorMessage_1_3028: "The ID number didn't match the one on the document.",
472
+ errorMessage_1_3029: "The ID document didn't show a document number.",
470
473
  errorMessage_1_3030: "The ID document wasn't valid.",
471
474
  errorMessage_1_3031: "The ID document wasn't valid.",
472
- errorMessage_1_3032: "The first name didnt match the one on the ID document.",
473
- errorMessage_1_3033: "The last name didnt match the one on the ID document.",
474
- errorMessage_1_3034: "The date of birth didnt match the one on the ID document.",
475
- errorMessage_1_3035: "The country didnt match the one on the ID document.",
475
+ errorMessage_1_3032: "The first name didn't match the one on the ID document.",
476
+ errorMessage_1_3033: "The last name didn't match the one on the ID document.",
477
+ errorMessage_1_3034: "The date of birth didn't match the one on the ID document.",
478
+ errorMessage_1_3035: "The country didn't match the one on the ID document.",
476
479
  errorMessage_1_3036: "The ID document image was too low quality.",
477
480
  errorMessage_1_3037: "The last name didn't match the one on the proof of residential address.",
478
- errorMessage_1_3038: "The first name didnt match the one on the proof of residential address.",
479
- errorMessage_1_3039: "The date of birth didnt match the one on the proof of residential address.",
480
- errorMessage_1_3040: "The proof of residential address didnt show the date it was issued.",
481
- errorMessage_1_3041: "The proof of residential address didnt show a name.",
481
+ errorMessage_1_3038: "The first name didn't match the one on the proof of residential address.",
482
+ errorMessage_1_3039: "The date of birth didn't match the one on the proof of residential address.",
483
+ errorMessage_1_3040: "The proof of residential address didn't show the date it was issued.",
484
+ errorMessage_1_3041: "The proof of residential address didn't show a name.",
482
485
  errorMessage_1_3042: "The proof of residential address didn't show an issuing country.",
483
486
  errorMessage_1_3043: "The proof of residential address wasn't a supported document type.",
484
487
  errorMessage_1_3044: "The proof of residential address was too old.",
485
488
  errorMessage_1_3045: "The proof of residential address image was of too low quality.",
486
489
  errorMessage_1_3046: "The address on the proof of residential address was a PO box.",
487
490
  errorMessage_1_3047: "The proof of national ID number wasn't a supported document type.",
488
- errorMessage_1_3048: "The last name didnt match the one on the proof of national ID number.",
489
- errorMessage_1_3049: "The first name didnt match the one on the proof of national ID number.",
490
- errorMessage_1_3050: "The date of birth didnt match the one on the proof of national ID number.",
491
+ errorMessage_1_3048: "The last name didn't match the one on the proof of national ID number.",
492
+ errorMessage_1_3049: "The first name didn't match the one on the proof of national ID number.",
493
+ errorMessage_1_3050: "The date of birth didn't match the one on the proof of national ID number.",
491
494
  errorMessage_1_3051: "The proof of national ID number image was of too low quality.",
492
495
  errorMessage_1_3052: "An ID document is needed to verify the individual.",
493
496
  errorMessage_1_3062: "The name and 4 digit SSN couldn't be verified.",
494
497
  errorMessage_1_31: "ID document is needed",
495
- errorMessage_1_32: "ID document couldnt be processed",
496
- errorMessage_1_33: "ID document didnt meet requirements",
497
- errorMessage_1_34: "Image of the ID document didnt meet requirements",
498
+ errorMessage_1_32: "ID document couldn't be processed",
499
+ errorMessage_1_33: "ID document didn't meet requirements",
500
+ errorMessage_1_34: "Image of the ID document didn't meet requirements",
498
501
  errorMessage_1_35: "Individual details didn't match the ID document",
499
- errorMessage_1_36: "Proof of residency didnt meet requirements",
502
+ errorMessage_1_36: "Proof of residency didn't meet requirements",
500
503
  errorMessage_1_37: "Image of the proof of residency didn't meet the requirements",
501
504
  errorMessage_1_38: "Individual details didn't match the proof of residency",
502
505
  errorMessage_1_39: "Proof of national ID number didn't meet requirements",
503
506
  errorMessage_1_40: "Image of the proof of national ID number didn't meet the requirements",
504
507
  errorMessage_1_41: "Individual details didn't match the proof of national ID number",
505
- errorMessage_1_50: "Organization details couldnt be verified",
508
+ errorMessage_1_50: "Organization details couldn't be verified",
506
509
  errorMessage_1_5000: "The legal business name couldn't be verified.",
507
510
  errorMessage_1_5001: "The tax ID number couldn't be verified.",
508
511
  errorMessage_1_5002: "The state couldn't be verified.",
@@ -515,7 +518,7 @@ const defaultTrans = {
515
518
  errorMessage_1_5009: "The registration number was provided as tax ID.",
516
519
  errorMessage_1_5010: "The company details couldn't be verified. ",
517
520
  errorMessage_1_5011: "The trade name (doing business as) was entered.",
518
- errorMessage_1_5012: "The submitted company type didnt match the one on the registry.",
521
+ errorMessage_1_5012: "The submitted company type didn't match the one on the registry.",
519
522
  errorMessage_1_5013: "The company was not found in the database.",
520
523
  errorMessage_1_5014: "The registration number couldn't be verified. ",
521
524
  errorMessage_1_5015: "The registration number didn't match the legal business name.",
@@ -559,7 +562,7 @@ const defaultTrans = {
559
562
  errorMessage_1_5053: "The affiliation document was not issued within the last 6 months",
560
563
  errorMessage_1_5067: "The legal name didn't match the one on the VAT registry.",
561
564
  errorMessage_1_51: "Organization details didn't match the document",
562
- errorMessage_1_52: "Registration document didnt meet requirements",
565
+ errorMessage_1_52: "Registration document didn't meet requirements",
563
566
  errorMessage_1_53: "Tax document didn't meet requirements",
564
567
  errorMessage_1_54: "Proof of address didn't meet requirements",
565
568
  errorMessage_1_55: "Proof of ownership is needed",
@@ -634,7 +637,7 @@ const defaultTrans = {
634
637
  errorMessage_1_7013: "The bank document was too low quality.",
635
638
  errorMessage_1_7014: "The bank document wasn't a supported document type.",
636
639
  errorMessage_1_7015: "The bank account country didn't match the one on the bank document.",
637
- errorMessage_1_7016: "The branch code didnt match the one on the bank document.",
640
+ errorMessage_1_7016: "The branch code didn't match the one on the bank document.",
638
641
  errorMessage_1_7017: "The bank account currency didn't match the one on the bank document.",
639
642
  errorMessage_1_7018: "The bank document wasn't officially issued by the bank.",
640
643
  errorMessage_1_7019: "The bank document wasn't issued in the past 12 months.",
@@ -645,7 +648,7 @@ const defaultTrans = {
645
648
  errorMessage_1_72: "Verification could not be completed",
646
649
  errorMessage_1_73: "Bank account access could not be authenticated",
647
650
  errorMessage_1_74: "Bank statement is needed",
648
- errorMessage_1_75: "Bank statement didnt meet requirements",
651
+ errorMessage_1_75: "Bank statement didn't meet requirements",
649
652
  errorMessage_1_76: "Bank details didn't match the bank statement",
650
653
  errorMessage_2_8064: "UBO through ownership was missing.",
651
654
  errorMessage_2_8067: "Signatory was missing.",
@@ -731,7 +734,7 @@ const defaultTrans = {
731
734
  handelsregisternummer: "Handelsregisternummer",
732
735
  hasBankStampOrBankSignature: "Includes a bank stamp or signature",
733
736
  hasDba: "Does your business use a DBA name?",
734
- hasDba__helperText: "A Doing Business As (DBA) name is a version of your business name that may be more recognizable to shoppers but is different from the legal name.",
737
+ hasDba__helperText: "A Doing Business As (DBA) name is a version of your business' name that may be more recognizable to shoppers but is different from the legal name.",
735
738
  hasToBeOfficialDocumentFromBank: "Includes the bank logo, bank name, or bank-specific font",
736
739
  helpUsVerifyCompany: "Help us verify this company.",
737
740
  hideDetails: "Hide details",
@@ -764,11 +767,11 @@ const defaultTrans = {
764
767
  identityNumberExempt: "I don't have an identity number",
765
768
  identityNumberExempt__CA: "I don't have an SIN",
766
769
  identityNumberExempt__US: "I don't have an SSN",
767
- ifNoOwnersSpecifyControllingPersons: "If you dont have any owners holding 25% or more, then specify <strong>all controlling persons</strong>.",
770
+ ifNoOwnersSpecifyControllingPersons: "If you don't have any owners holding 25% or more, then specify <strong>all controlling persons</strong>.",
768
771
  imagesInColor: "Images have to be in color",
769
772
  inReview: "In review",
770
773
  inThePreviousStepOwnedByAParentCompany: "In the last step, you indicated that your business is owned by a parent company. We need to know some information about this company before submitting your application.",
771
- inThePreviousStepOwnedByAnUltimateParentCompany: "In a previous step, you indicated that your business parent company was owned by an ultimate parent company. We need to know some information about this company before submitting your application.",
774
+ inThePreviousStepOwnedByAnUltimateParentCompany: "In a previous step, you indicated that your business' parent company was owned by an ultimate parent company. We need to know some information about this company before submitting your application.",
772
775
  includeFrontAndBack: "Include both the front and back side, each in separate file",
773
776
  includesEIN: "Includes your EIN (Employer Identification Number)",
774
777
  includesLegalCompanyName: "Includes the legal name of your company",
@@ -779,9 +782,9 @@ const defaultTrans = {
779
782
  industryAndNaceCode: "Industry and NACE code",
780
783
  industryExemption: "The goods or services provided are exempt from VAT/GST",
781
784
  infoInUploadedDocumentIsTrue: "All information in the uploaded document must be true and up-to-date.",
782
- informationCouldNotBeSubmitted: "Information couldnt be submitted",
785
+ informationCouldNotBeSubmitted: "Information couldn't be submitted",
783
786
  instant: "Instant",
784
- instantIDVerificationDescription: "Take a photo of a passport, identity card, or drivers license.",
787
+ instantIDVerificationDescription: "Take a photo of a passport, identity card, or driver's license.",
785
788
  instantVerification: "Instant verification",
786
789
  instantVerificationDescription: "Log in to your bank account and get instantly verified.",
787
790
  institutionNumber: "Institution number",
@@ -793,7 +796,7 @@ const defaultTrans = {
793
796
  introductionScreenCompanyDescriptionP1: "For example, your company name and registration number.",
794
797
  introductionScreenCompanyDescriptionP2: "Where to find this information",
795
798
  introductionScreenCompanyTitle: "Company details",
796
- introductionScreenDecisionMakerDescriptionLI1: "Drivers license",
799
+ introductionScreenDecisionMakerDescriptionLI1: "Driver's license",
797
800
  introductionScreenDecisionMakerDescriptionLI2: "Passport",
798
801
  introductionScreenDecisionMakerDescriptionLI3: "ID document",
799
802
  introductionScreenDecisionMakerDescriptionP1: "For example, the name and address of important people in your company.",
@@ -802,13 +805,13 @@ const defaultTrans = {
802
805
  introductionScreenEpilogueDescriptionP1: "We check all this information against official records to verify your identity and comply with financial regulations.",
803
806
  introductionScreenEpilogueDescriptionP2: "Your information will be used only for these purposes.",
804
807
  introductionScreenEpilogueTitle: "Why do we need this information?",
805
- introductionScreenIndividualDescriptionLI1: "Drivers license",
808
+ introductionScreenIndividualDescriptionLI1: "Driver's license",
806
809
  introductionScreenIndividualDescriptionLI2: "Passport",
807
810
  introductionScreenIndividualDescriptionLI3: "ID document",
808
811
  introductionScreenIndividualDescriptionP1: "For example, your name and residential address.",
809
812
  introductionScreenIndividualDescriptionP2: "Where to find this information",
810
813
  introductionScreenIndividualTitle: "Personal details",
811
- introductionScreenPrologueDescriptionP1: "Well ask for some details about your business as part of financial regulations.",
814
+ introductionScreenPrologueDescriptionP1: "We'll ask for some details about your business as part of financial regulations.",
812
815
  introductionScreenPrologueDescriptionP2: "Our advice? Have these details on hand so you can get verified quickly.",
813
816
  introductionScreenPrologueTitle: "Before you begin...",
814
817
  introductionScreenSoleProprietorCompanyDescriptionLI1: "Your sole proprietorship registration document",
@@ -816,16 +819,15 @@ const defaultTrans = {
816
819
  introductionScreenSoleProprietorCompanyDescriptionP2: "Where to find this information",
817
820
  introductionScreenSoleProprietorCompanyTitle: "Sole proprietorship details",
818
821
  introductionScreenTrustDescriptionLI1: "Your trust registration document",
819
- introductionScreenTrustDescriptionP1: "For example, your trusts name and business number. Youll also need to upload your trust deed.",
822
+ introductionScreenTrustDescriptionP1: "For example, your trust's name and business number. You'll also need to upload your trust deed.",
820
823
  introductionScreenTrustDescriptionP2: "Where to find this information",
821
- introductionScreenTrustMemberDescriptionLI1: "Drivers license",
824
+ introductionScreenTrustMemberDescriptionLI1: "Driver's license",
822
825
  introductionScreenTrustMemberDescriptionLI2: "Passport",
823
826
  introductionScreenTrustMemberDescriptionLI3: "ID document",
824
827
  introductionScreenTrustMemberDescriptionP1: "The name, date of birth, and address of trust members such as settlors and beneficiaries.",
825
828
  introductionScreenTrustMemberDescriptionP2: "Where to find this information",
826
829
  introductionScreenTrustMemberTitle: "Trust members",
827
830
  introductionScreenTrustTitle: "Trust details",
828
- invalidBirthDate: "Enter a valid birth date (TODO - explain why this is invalid)",
829
831
  invalidDateOfBirth: "Please enter a valid date of birth",
830
832
  invalidDateOfIncorporation: "Please enter a valid date of incorporation",
831
833
  invalidEmail: "Please enter a valid email",
@@ -920,7 +922,7 @@ const defaultTrans = {
920
922
  madeAMistake: "Made a mistake?",
921
923
  maintenanceModeMessage: "We're currently undergoing maintenance — please keep this page open until maintenance is complete to avoid losing unsaved changes.",
922
924
  makeSureToHaveYourTrustDeed: "Make sure to have your trust deed in hand to complete this information accurately.",
923
- manualIDVerificationDescription: "May take a few days. Upload a copy of a passport, identity, or drivers license.",
925
+ manualIDVerificationDescription: "May take a few days. Upload a copy of a passport, identity, or driver's license.",
924
926
  manualUpload: "Manual upload",
925
927
  manualVerificationDescription: "You also have to provide the bank account details.",
926
928
  maxFileSize: "Max file size: %{maxSize}. Maximal 1 page.",
@@ -931,7 +933,6 @@ const defaultTrans = {
931
933
  meetingRecords: "Board of directors' meeting records of decisions",
932
934
  memberDetails: "Member details",
933
935
  missingCompanyDetails: "Missing company details or root entity",
934
- missingDetailsToPerformPayouts: "We are missing some details in order to perform payouts, please add it.",
935
936
  missingMultipleDecisionMakers: "You haven't added all required decision-makers",
936
937
  mobileApplication: "Mobile Application",
937
938
  momsregistreringsnummer: "Momsregistreringsnummer",
@@ -942,7 +943,7 @@ const defaultTrans = {
942
943
  myInfoBusinessYouCanGetVerifiedDetails: "With Myinfo business, you can get your business's verified details instantly and skip uploading documents.",
943
944
  myInfoYouCanGetVerifiedDetails: "With Myinfo, you can get your verified details instantly and skip uploading documents.",
944
945
  myName: "My name",
945
- myNameDescription: "Its a personal bank account held in my own name",
946
+ myNameDescription: "It's a personal bank account held in my own name",
946
947
  mySoleProprietorName: "My sole proprietor name",
947
948
  mySoleProprietorNameDescription: "The account is in my name, but I am registered as a sole proprietor, sole trader, or freelancer",
948
949
  myinfoBusinessDetailsRetrieved: "Myinfo business details retrieved",
@@ -953,7 +954,7 @@ const defaultTrans = {
953
954
  nameOfTrustAgreement: "Name of trust agreement",
954
955
  nationalInsuranceNumber: "National Insurance Number (NINO)",
955
956
  nationality: "Nationality",
956
- naturalPersonDescription: "He/she doesnt have any business.",
957
+ naturalPersonDescription: "He/she doesn't have any business.",
957
958
  naturalPersonTitle: "Natural person",
958
959
  needHelpYouCanAlwaysReachOutToCustomerSupport: "Need help? You can always reach out to customer support.",
959
960
  next: "Next",
@@ -984,21 +985,21 @@ const defaultTrans = {
984
985
  onboardingRedirectAwaitingCtaButton: "Continue",
985
986
  onboardingRedirectAwaitingDescriptionP1: "Verify your business details to start receiving payments.",
986
987
  onboardingRedirectInReviewCtaButton: "Go to details",
987
- onboardingRedirectInReviewDescriptionP1: "Were reviewing your details. It might take up to 2 business days.",
988
+ onboardingRedirectInReviewDescriptionP1: "We're reviewing your details. It might take up to 2 business days.",
988
989
  onboardingRedirectLinkError: "Onboarding link not available at the moment, please try again later.",
989
990
  onboardingRedirectOpenError: "Pop-up blocker prevented redirecting, please allow pop-ups for this site.",
990
- onboardingRedirectRejectedDescriptionP1: "Your account cant be set up.",
991
+ onboardingRedirectRejectedDescriptionP1: "Your account can't be set up.",
991
992
  onboardingRedirectUnsuccessfulCtaButton: "Update details",
992
- onboardingRedirectUnsuccessfulDescriptionP1: "We couldnt verify some details. Check if theyre correct and make any updates needed.",
993
+ onboardingRedirectUnsuccessfulDescriptionP1: "We couldn't verify some details. Check if they're correct and make any updates needed.",
993
994
  onboardingRedirectVerifiedDescriptionP1: "Your details are verified.",
994
995
  onfidoIsOurTrustedPartner: "Onfido is our trusted partner helping speed up your account setup by verifying your identity in real-time. ",
995
996
  onfidoWillGiveFeedbackInRealTime: "Onfido will give you feedback in real-time",
996
997
  onlyEnterNormalCharacters: "Please only enter normal characters",
997
998
  operationalAddress: "Operational address",
998
999
  operationalAddressHeader: "Additional address",
999
- operationalAddressHeaderDescription: "Is there a different address for your companys main business operations?",
1000
+ operationalAddressHeaderDescription: "Is there a different address for your company's main business operations?",
1000
1001
  operationalAddressIsNotSameItemName: "Yes, our headquarters are at a different location",
1001
- operationalAddressIsSame: "Is there a different address for your companys main business operations?",
1002
+ operationalAddressIsSame: "Is there a different address for your company's main business operations?",
1002
1003
  operationalAddressIsSameItemName: "No, the registered address is where we operate",
1003
1004
  optional: "(optional)",
1004
1005
  orSoleProprietorshipName: "or sole proprietorship's name",
@@ -1009,7 +1010,7 @@ const defaultTrans = {
1009
1010
  otherInformation: "Other information",
1010
1011
  otherLegalMeasures: "Yes, the company is facing other legal measures",
1011
1012
  otherTrust: "Other trust",
1012
- ourFinancialServicesAreNotAvailableYetForPartnershipsAndAssociations: "Our financial services arent available yet for partnerships and associations",
1013
+ ourFinancialServicesAreNotAvailableYetForPartnershipsAndAssociations: "Our financial services aren't available yet for partnerships and associations",
1013
1014
  owner: "Owner",
1014
1015
  ownerDescription: "Someone who owns 25% or more of the company (directly or indirectly)",
1015
1016
  ownerGuideDescription: "An <strong>owner</strong> is someone who owns 25% or more of the company, through voting rights, equity, or similar.",
@@ -1094,12 +1095,12 @@ const defaultTrans = {
1094
1095
  publicCompanyTitle: "Public company",
1095
1096
  publicTradingTrust: "Public trading trust",
1096
1097
  ranIntoTechnicalError: "We ran into a technical error",
1097
- reasonForFillingCompanyAddressDetails: "We have to make sure the businesses using our services will not be misusing the funds or causing harm. To do that, well check all of this information against official records. This is a part of the financial regulations that we have to follow as a payments provider.",
1098
- reasonForFillingCompanyRegistrationDetails: "We have to make sure the businesses using our services will not be misusing the funds or causing harm. To do that, well check all of this information against official records. This is a part of the financial regulations that we have to follow as a payments provider.",
1099
- reasonForFillingIndividualAddressDetails: "We have to make sure that everyone who uses our services is who they say they are. To do that, well check all of this information against official records. This is a part of the financial regulations that we have to follow as a payments provider.",
1100
- reasonForFillingIndividualPersonalDetails: "We have to make sure that everyone who uses our services is who they say they are. To do that, well check all of this information against official records. This is a part of the financial regulations that we have to follow as a payments provider.",
1101
- reasonForFillingPayoutAccountDetails: "We have to make sure the businesses using our services will not be misusing the funds or causing harm. To do that, well check all of this information against official records. This is a part of the financial regulations that we have to follow as a payments provider.",
1102
- reasonForFillingPayoutDetails: "We have to make sure the businesses using our services will not be misusing the funds or causing harm. To do that, well check all of this information against official records. This is a part of the financial regulations that we have to follow as a payments provider.",
1098
+ reasonForFillingCompanyAddressDetails: "We have to make sure the businesses using our services will not be misusing the funds or causing harm. To do that, we'll check all of this information against official records. This is a part of the financial regulations that we have to follow as a payments provider.",
1099
+ reasonForFillingCompanyRegistrationDetails: "We have to make sure the businesses using our services will not be misusing the funds or causing harm. To do that, we'll check all of this information against official records. This is a part of the financial regulations that we have to follow as a payments provider.",
1100
+ reasonForFillingIndividualAddressDetails: "We have to make sure that everyone who uses our services is who they say they are. To do that, we'll check all of this information against official records. This is a part of the financial regulations that we have to follow as a payments provider.",
1101
+ reasonForFillingIndividualPersonalDetails: "We have to make sure that everyone who uses our services is who they say they are. To do that, we'll check all of this information against official records. This is a part of the financial regulations that we have to follow as a payments provider.",
1102
+ reasonForFillingPayoutAccountDetails: "We have to make sure the businesses using our services will not be misusing the funds or causing harm. To do that, we'll check all of this information against official records. This is a part of the financial regulations that we have to follow as a payments provider.",
1103
+ reasonForFillingPayoutDetails: "We have to make sure the businesses using our services will not be misusing the funds or causing harm. To do that, we'll check all of this information against official records. This is a part of the financial regulations that we have to follow as a payments provider.",
1103
1104
  region: "Region",
1104
1105
  registeredAddress: "Registered address",
1105
1106
  registeredAddressHeaderDescription: "The address as it appears on your company's official registration documents.",
@@ -1110,7 +1111,7 @@ const defaultTrans = {
1110
1111
  registrationAddress: "Registration address",
1111
1112
  registrationDetails: "Registration details",
1112
1113
  registrationDocument: "Registration document",
1113
- registrationDocumentSubTitle: "Upload your companys business registration document. We need to see this document so we can verify your company.",
1114
+ registrationDocumentSubTitle: "Upload your company's business registration document. We need to see this document so we can verify your company.",
1114
1115
  registrationNumber: "Registration number",
1115
1116
  registrationNumber__US: "State registration number",
1116
1117
  registrationNumber__helperText__US: "This helps us better identify and verify your business.",
@@ -1120,7 +1121,7 @@ const defaultTrans = {
1120
1121
  regonKrsNumber: "REGON / KRS number",
1121
1122
  rejected: "Rejected",
1122
1123
  relationshipTo: "Relationship to %{firstName} %{lastName}",
1123
- remediationFormErrorMessage: "Some information couldnt be verified. Information in this form may need to be adjusted.",
1124
+ remediationFormErrorMessage: "Some information couldn't be verified. Information in this form may need to be adjusted.",
1124
1125
  remediationMessage_1_100: "No remediation possible",
1125
1126
  remediationMessage_1_101: "Contact Support",
1126
1127
  remediationMessage_1_102: "Upload a different document",
@@ -1134,7 +1135,7 @@ const defaultTrans = {
1134
1135
  remediationMessage_1_307: "Upload a proof of national ID number",
1135
1136
  remediationMessage_1_308: "Upload a different proof of national ID number",
1136
1137
  remediationMessage_1_309: "Upload a different image of the proof of national ID number",
1137
- remediationMessage_1_316: "Provide complete 9-digits Social Security Number number or upload an ID document if you dont have SSN.",
1138
+ remediationMessage_1_316: "Provide complete 9-digits Social Security Number number or upload an ID document if you don't have SSN.",
1138
1139
  remediationMessage_1_500: "Update organization details",
1139
1140
  remediationMessage_1_501: "Upload a registration document",
1140
1141
  remediationMessage_1_502: "Upload a different registration document",
@@ -1172,7 +1173,7 @@ const defaultTrans = {
1172
1173
  removeThisBankAccount: "Remove this bank account",
1173
1174
  removeTrustMember: "Remove %{trustMember}",
1174
1175
  removing: "Removing...",
1175
- requiredIfApplicable: "Required if its applicable ",
1176
+ requiredIfApplicable: "Required if it's applicable ",
1176
1177
  requirements: "Requirements:",
1177
1178
  requiresDecisionMakers: "Requires decision-makers",
1178
1179
  requiresSignatory: "Requires signatory",
@@ -1187,6 +1188,7 @@ const defaultTrans = {
1187
1188
  rnaNumber: "RNA number",
1188
1189
  role: "Role",
1189
1190
  roleAndEntityType: "Role and entity type",
1191
+ routingNumber: "Routing number",
1190
1192
  routingNumberVisible: "Includes your routing number",
1191
1193
  salarySlip: "Salary slip",
1192
1194
  sameNameAsLegalName: "Same as legal name of the company",
@@ -1234,8 +1236,8 @@ const defaultTrans = {
1234
1236
  signatoryGuideDescription: "A <strong>signatory</strong> has been given authority to sign official documents on behalf of the company. Usually a signatory is also an owner or a controlling person.",
1235
1237
  signed: "Signed",
1236
1238
  signer: "Signer",
1237
- singingUpAsCompanyButLooksLikeYouAreAnIndividual: "Youre now signing up as an company. But it looks like youre an individual who uses your personal bank account to receive payouts.",
1238
- singingUpAsIndividualButLooksLikeYouAreACompany: "Youre now signing up as an individual. But it looks like youre a company that uses a company bank account to receive payouts.",
1239
+ singingUpAsCompanyButLooksLikeYouAreAnIndividual: "You're now signing up as an company. But it looks like you're an individual who uses your personal bank account to receive payouts.",
1240
+ singingUpAsIndividualButLooksLikeYouAreACompany: "You're now signing up as an individual. But it looks like you're a company that uses a company bank account to receive payouts.",
1239
1241
  siret: "SIRET",
1240
1242
  skRegistrationNumber: "Identifikačné číslo (IČO)",
1241
1243
  skTaxId: "Identifikačné číslo pre daň z pridanej hodnoty (IČ DPH)",
@@ -1250,7 +1252,7 @@ const defaultTrans = {
1250
1252
  someInformationWillNotBeSaved: "Some information that you entered previously will not be saved. ",
1251
1253
  someoneAppointedToManageACompanysBusinessAndAffairs: "Someone appointed to manage a company's business and affairs.",
1252
1254
  sorryAnErrorOccurred: "We are sorry, an error has occurred",
1253
- sorryWeCantSetUpAnAccountForYou: "Sorry, we cant set up an account for you",
1255
+ sorryWeCantSetUpAnAccountForYou: "Sorry, we can't set up an account for you",
1254
1256
  sortCode: "Sort code",
1255
1257
  ssn: "SSN",
1256
1258
  stamregister: "Stamregister erhverv (SE-nummer)",
@@ -1262,6 +1264,7 @@ const defaultTrans = {
1262
1264
  stateOrProvince__US__business: "In which state is your business registered?",
1263
1265
  stateOrProvince__placeHolder: "Select a state or province",
1264
1266
  stateOrProvince__placeHolder__US: "Select one...",
1267
+ status: "Status",
1265
1268
  "stepsX/YofForm": "Step %{activeFormIndex}/ %{totalForms} of %{taskNameTranslated}",
1266
1269
  stockExchangeInformation: "Stock exchange information",
1267
1270
  stockExchangeMIC: "Market Identifier Code (MIC)",
@@ -1317,7 +1320,7 @@ const defaultTrans = {
1317
1320
  thereWasAnErrorTryAgain: "There was an error, please try again",
1318
1321
  thisIsMyBusiness: "This is my business",
1319
1322
  thisMeansYouHaveAParentCompany: "If yes, this means you have a parent company, such as a global headquarters or a holding company.",
1320
- thisMeansYouHaveAnUltimateParentCompany: "If yes, this means you have an ultimate parent company. An ultimate parent company is the company thats highest in the corporate structure. Learn more.",
1323
+ thisMeansYouHaveAnUltimateParentCompany: "If yes, this means you have an ultimate parent company. An ultimate parent company is the company that's highest in the corporate structure. Learn more.",
1321
1324
  thisPageIsNowInactive: "This page is now inactive",
1322
1325
  thisSessionWillExpireIn: "This session will expire in %{timeUntilExpiry}. Continue working to avoid losing any unsaved data.",
1323
1326
  toCompleteProcessReviewAndSignOfficialDocumentation: "To complete this process, review and sign the official documentation.",
@@ -1335,7 +1338,7 @@ const defaultTrans = {
1335
1338
  trustDeed: "Trust deed",
1336
1339
  trustDetails: "Trust details",
1337
1340
  trustDetailsDescription: "To prepare your account, we need information about your trust.",
1338
- trustDocumentDescription: "We wont be able to verify your trust without all required information. Make sure the following information is visible on your document:",
1341
+ trustDocumentDescription: "We won't be able to verify your trust without all required information. Make sure the following information is visible on your document:",
1339
1342
  trustInstrument: "Trust instrument",
1340
1343
  trustMembers: "Trust members",
1341
1344
  trustMembersDescription: "Provide information for all trustee, settlor, protector and beneficiary associated with the trust contract.",
@@ -1408,7 +1411,7 @@ const defaultTrans = {
1408
1411
  vatNumberExempted: "Exempted from VAT",
1409
1412
  vatNummerMomsregistreringsnummerOrMomsnummer: "VAT-nummer, Momsregistreringsnummer, or Momsnummer",
1410
1413
  vatRegistrationNumber: "VAT registration number",
1411
- verificationErrorMessage: "Some information couldnt be verified. Click to see what needs to be adjusted.",
1414
+ verificationErrorMessage: "Some information couldn't be verified. Click to see what needs to be adjusted.",
1412
1415
  verificationMethod: "Verification method",
1413
1416
  verified: "Verified",
1414
1417
  verifiedInformation: "Verified information",
@@ -1430,7 +1433,7 @@ const defaultTrans = {
1430
1433
  whatIsTheDifferenceBetweenTheseRoles: "What is the difference between these roles?",
1431
1434
  whatTypeOfCompanyDoYouHave: "What type of company do you have?",
1432
1435
  whatTypeOfTrusteeAreYou: "What type of trustee are you?",
1433
- whatTypeOfYourMembersEntity: "Whats the type of your members entity?",
1436
+ whatTypeOfYourMembersEntity: "What's the type of your member's entity?",
1434
1437
  whereCanIFindTheseNumbersOnMyDriversLicense: "Where can I find these numbers on my driver's license?",
1435
1438
  whereToFindNumbersOnDriversLicense: "Depending on the issuing state the position of these numbers might differ, but the license number is always on the front side of the card and the card number is in most cases located on the back of the license.",
1436
1439
  whereToFindNumbersOnDriversLicense__NZ: "The license number and version number are always on the front side of the card.",
@@ -1440,8 +1443,8 @@ const defaultTrans = {
1440
1443
  whichTypeOfRegistrationNumberDoYouHave: "Which type of registration number do you have?",
1441
1444
  whichTypeOfTaxIdNumberDoYouHave: "Which type of tax identification number do you have?",
1442
1445
  whyDoINeedToFillInThisInformation: "Why do I need to fill in this information?",
1443
- wouldYouLikeToSignUpAsCompanyInstead: "Would you like to sign up as a company instead? (Youll have to re-enter some information from before.)",
1444
- wouldYouLikeToSignUpAsIndividualInstead: "Would you like to sign up as an individual instead? (Youll have to re-enter some information from before.)",
1446
+ wouldYouLikeToSignUpAsCompanyInstead: "Would you like to sign up as a company instead? (You'll have to re-enter some information from before.)",
1447
+ wouldYouLikeToSignUpAsIndividualInstead: "Would you like to sign up as an individual instead? (You'll have to re-enter some information from before.)",
1445
1448
  xCharactersLeft: "%{charactersLeft} characters left",
1446
1449
  xMinutes: "%{minutes} minutes",
1447
1450
  xMinutesAndYSeconds: "%{minutes} and %{seconds}",
@@ -1449,17 +1452,17 @@ const defaultTrans = {
1449
1452
  yes: "Yes",
1450
1453
  yesChange: "Yes, change",
1451
1454
  youAlsoHaveToUploadSomeSupportingDocuments: "You'll also have to upload some supporting documents.",
1452
- youAreIndividualOrCompanyAndUseBankAccountInNameOfPartnershipOrAssociation: "Youre an individual or company, and you use a bank account in the name of a partnership, or association.",
1453
- youAreIndividualOrCompanyAndUseBankAccountInNameOfTrustPartnershipOrAssociation: "Youre an individual or company, and you use a bank account in the name of a trust, partnership, or association.",
1454
- youAreNotSoleProprietorAndUseBankAccount: "Youre not a registered sole proprietor, and you use a bank account in your name.",
1455
- youAreRegisteredSoleProprietorAndUseBankAccount: "Youre a registered sole proprietor, and you use a bank account in your name or sole proprietorships name.",
1456
- youAreTrusteeManagingTheTrustForBeneficiaries: "Youre a trustee managing the trust for beneficiaries.",
1455
+ youAreIndividualOrCompanyAndUseBankAccountInNameOfPartnershipOrAssociation: "You're an individual or company, and you use a bank account in the name of a partnership, or association.",
1456
+ youAreIndividualOrCompanyAndUseBankAccountInNameOfTrustPartnershipOrAssociation: "You're an individual or company, and you use a bank account in the name of a trust, partnership, or association.",
1457
+ youAreNotSoleProprietorAndUseBankAccount: "You're not a registered sole proprietor, and you use a bank account in your name.",
1458
+ youAreRegisteredSoleProprietorAndUseBankAccount: "You're a registered sole proprietor, and you use a bank account in your name or sole proprietorship's name.",
1459
+ youAreTrusteeManagingTheTrustForBeneficiaries: "You're a trustee managing the trust for beneficiaries.",
1457
1460
  youCanOnlyUseABankAccountInTheCountryRegionWhereYouLive: "You can only use a bank account in the country/region where you live.",
1458
1461
  youCanOnlyUseABankAccountInTheCountryRegionWhereYourCompanyIsRegistered: "You can only use a bank account in the country/region where your company is registered.",
1459
- youHaveSuccessfullyProvidedTheIdDocument: "Youve successfully provided the ID document.",
1462
+ youHaveSuccessfullyProvidedTheIdDocument: "You've successfully provided the ID document.",
1460
1463
  youHaveUnsavedChanges: "You have unsaved changes",
1461
1464
  youMustXYearsOldToContinue: "You must be at least %{minimumAge} years old to continue",
1462
- youSuccessfullyVerifiedAccount: "Youve successfully verified your bank account.",
1465
+ youSuccessfullyVerifiedAccount: "You've successfully verified your bank account.",
1463
1466
  yourAssociationIsRegisteredItWasSetUpForNonCommercialPurpose: "Your association is registered. It was set up for recreational, cultural, or non-profit purposes.",
1464
1467
  yourBankWillConfirmYourAccountDetails: "Your bank will confirm your account details to us.",
1465
1468
  yourBusinessInformation: "Your business information",
@@ -1831,7 +1834,7 @@ class UserEvents {
1831
1834
  }
1832
1835
  }
1833
1836
  const userEvents = new UserEvents();
1834
- const logger$I = createLogger("useCompanySearch");
1837
+ const logger$J = createLogger("useCompanySearch");
1835
1838
  const LOW_RISK_COMPANY_DATA_COMPLIANCE_WINDOW = 1577664e5;
1836
1839
  function useCompanySearch({
1837
1840
  defaultData,
@@ -1955,7 +1958,7 @@ function useCompanySearch({
1955
1958
  state: companyData.state ?? stateOrProvince
1956
1959
  });
1957
1960
  } catch (e) {
1958
- logger$I.error(e);
1961
+ logger$J.error(e);
1959
1962
  setError(e);
1960
1963
  setStatus("error");
1961
1964
  } finally {
@@ -1988,7 +1991,7 @@ function useCompanySearch({
1988
1991
  indexSearch: handleCompanyIndexSearch,
1989
1992
  deepSearch: handleCompanyDeepSearch,
1990
1993
  resultsLimit: limit
1991
- })) == null ? void 0 : _a.catch((e) => logger$I.error(e));
1994
+ })) == null ? void 0 : _a.catch((e) => logger$J.error(e));
1992
1995
  }
1993
1996
  }, [legalCompanyName, country, stateOrProvince, taxIdentificationNumber, verifiedCompany, searchCompanies, handleCompanyIndexSearch, handleCompanyDeepSearch, limit, canVerify, baseTrackingPayload]);
1994
1997
  useEffect(() => {
@@ -2011,7 +2014,7 @@ function useCompanySearch({
2011
2014
  reset
2012
2015
  };
2013
2016
  }
2014
- const logger$H = createLogger("useBusinessData");
2017
+ const logger$I = createLogger("useBusinessData");
2015
2018
  const KNOWN_BROKEN_PRIMARY_SOURCE_CONNECTIONS = [StateCodesUS.Arkansas, StateCodesUS.Connecticut, StateCodesUS.Georgia, StateCodesUS.Hawaii, StateCodesUS.Kentucky, StateCodesUS.Maryland, StateCodesUS.Minnesota, StateCodesUS.Missouri, StateCodesUS.Montana, StateCodesUS.NewHampshire, StateCodesUS.NewMexico, StateCodesUS.SouthCarolina, StateCodesUS.Utah, StateCodesUS.Vermont, StateCodesUS.Wisconsin, StateCodesUS.Wyoming];
2016
2019
  function useBusinessData({
2017
2020
  handleCompanyIndexSearch,
@@ -2032,7 +2035,7 @@ function useBusinessData({
2032
2035
  const [invalidTin, setInvalidTin] = useState(false);
2033
2036
  const searchForBusiness = useCallback(async (data) => {
2034
2037
  if (!handleCompanyDeepSearch || !handleCompanyIndexSearch) {
2035
- logger$H.log("Missing handlers for searchForBusiness");
2038
+ logger$I.log("Missing handlers for searchForBusiness");
2036
2039
  return;
2037
2040
  }
2038
2041
  if (searchResults && objectsDeepEqual(cachedSearch, data)) return;
@@ -2051,7 +2054,7 @@ function useBusinessData({
2051
2054
  return results;
2052
2055
  } catch (e) {
2053
2056
  setIsSearching("error");
2054
- logger$H.error(e);
2057
+ logger$I.error(e);
2055
2058
  } finally {
2056
2059
  setCachedSearch(data);
2057
2060
  setIsSearching((prevState) => prevState !== "error" ? "loaded" : prevState);
@@ -2059,7 +2062,7 @@ function useBusinessData({
2059
2062
  }, [handleCompanyDeepSearch, handleCompanyIndexSearch, searchResults, cachedSearch]);
2060
2063
  const fetchBusinessData = useCallback(async (company) => {
2061
2064
  if (!handleGetCompanyDataset || !handleRefreshCompanyDataset) {
2062
- logger$H.log("Missing handlers for fetchBusinessData");
2065
+ logger$I.log("Missing handlers for fetchBusinessData");
2063
2066
  return;
2064
2067
  }
2065
2068
  if (cachedBusiness && objectsDeepEqual({
@@ -2086,14 +2089,14 @@ function useBusinessData({
2086
2089
  } catch (e) {
2087
2090
  setIsFetching("error");
2088
2091
  setCachedBusiness(void 0);
2089
- logger$H.error(e);
2092
+ logger$I.error(e);
2090
2093
  } finally {
2091
2094
  setIsFetching((prevState) => prevState !== "error" ? "loaded" : prevState);
2092
2095
  }
2093
2096
  }, [cachedBusiness, handleGetCompanyDataset, handleRefreshCompanyDataset]);
2094
2097
  const verifyBusinessData = useCallback(async (data, tin) => {
2095
2098
  if (!handleVerifyTin) {
2096
- logger$H.log("Missing handlers for verifyBusinessData");
2099
+ logger$I.log("Missing handlers for verifyBusinessData");
2097
2100
  return;
2098
2101
  }
2099
2102
  try {
@@ -2114,7 +2117,7 @@ function useBusinessData({
2114
2117
  return matched;
2115
2118
  } catch (e) {
2116
2119
  setIsVerifying("error");
2117
- logger$H.error(e);
2120
+ logger$I.error(e);
2118
2121
  } finally {
2119
2122
  setIsVerifying((prevState) => prevState !== "error" ? "loaded" : prevState);
2120
2123
  }
@@ -2125,7 +2128,7 @@ function useBusinessData({
2125
2128
  await (handleClearCompanyData == null ? void 0 : handleClearCompanyData());
2126
2129
  } catch (e) {
2127
2130
  setIsClearingTrustedData("error");
2128
- logger$H.error(e);
2131
+ logger$I.error(e);
2129
2132
  } finally {
2130
2133
  setIsClearingTrustedData((prevState) => prevState !== "error" ? "loaded" : prevState);
2131
2134
  }
@@ -2134,6 +2137,9 @@ function useBusinessData({
2134
2137
  setSearchResults(void 0);
2135
2138
  setVerifiedBusiness(void 0);
2136
2139
  };
2140
+ const resetTinVerification = () => {
2141
+ setInvalidTin(false);
2142
+ };
2137
2143
  return {
2138
2144
  // Methods
2139
2145
  searchForBusiness,
@@ -2141,6 +2147,7 @@ function useBusinessData({
2141
2147
  verifyBusinessData,
2142
2148
  clearTrustedBusinessData,
2143
2149
  resetBusinessData,
2150
+ resetTinVerification,
2144
2151
  // Data
2145
2152
  isSearching,
2146
2153
  isFetching,
@@ -2383,7 +2390,7 @@ const NO_ALPHABET_REGEX = /^[^a-zA-Z]*$/;
2383
2390
  const INDIVIDUAL_VALID_CHAR_REGEX = /^[\w\s\-—./']*$/;
2384
2391
  const OTHER_ENTITIES_VALID_CHAR_REGEX = /^[\w\s,.;:\-—&!?@()"'/\\+]+$/;
2385
2392
  const matchesRegex = (regex, input) => isString(input) && regex.test(input ?? "");
2386
- const hasRepeatedCharacters = (input) => !isEmpty(input) && new Set(input).size === 1;
2393
+ const hasRepeatedCharacters = (input) => !isEmpty(input) && input.length > 1 && new Set(input).size === 1;
2387
2394
  const isValidMinLength = (input, minLength = 1) => !isEmpty(input) && input.length >= minLength;
2388
2395
  const isInvalidName = (input) => {
2389
2396
  const invalidNames = /* @__PURE__ */ new Set(["John Doe", "Jane Doe", "ABCD", "ABCDE", "ABCDEF", "ABCDEFG", "My Customer", "An other", "n/a", "not applicable", "n/A", "N/A", "N/a", "N\\ /A", "not app", "null"]);
@@ -2428,6 +2435,7 @@ const svgs = {
2428
2435
  store: lazy(() => import("./store-BLl8m644.js")),
2429
2436
  trust: lazy(() => import("./partner-B9xMZpSw.js")),
2430
2437
  user: lazy(() => import("./person-lPJ07vyF.js")),
2438
+ "user-business": lazy(() => import("./document-person-BPjqMJVL.js")),
2431
2439
  upload: lazy(() => import("./upload-XwV0PfcC.js")),
2432
2440
  "users-3": lazy(() => import("./4-people-BTQ6Okmp.js")),
2433
2441
  warning: lazy(() => import("./warning-filled-Od0v7tGX.js")),
@@ -2452,10 +2460,7 @@ const svgs = {
2452
2460
  "singpass-verification-instant": lazy(() => Promise.resolve().then(() => singpassVerificationInstant)),
2453
2461
  "singpass-verification-manual": lazy(() => Promise.resolve().then(() => singpassVerificationManual)),
2454
2462
  // These do not have a good equivalent in the icon package for now
2455
- owners: lazy(() => import("./owners-DT55tjrZ.js")),
2456
2463
  review: lazy(() => import("./review-C4CnZ2XP.js")),
2457
- signatory: lazy(() => import("./signatory-BUpU_luQ.js")),
2458
- "user-business": lazy(() => import("./user-business-BZ3Ko-Oi.js")),
2459
2464
  // id verification
2460
2465
  "onfido-logo": lazy(() => import("./onfido-logo-i_oduqdE.js")),
2461
2466
  "tink-logo": lazy(() => import("./tink-logo-CXMbO28D.js")),
@@ -2464,7 +2469,8 @@ const svgs = {
2464
2469
  "plaid-logo": lazy(() => import("./plaid-logo-4nYeR9iX.js")),
2465
2470
  "trustly-logo": lazy(() => import("./trustly-logo-YJslAOYF.js"))
2466
2471
  };
2467
- const logger$G = createLogger("Icon");
2472
+ const unscalableIconNames = ["arrow-left", "arrow-right", "bank", "bin", "check", "checkmark", "checkmark-small", "chevron-down", "chevron-right", "chevron-left", "chevron-up", "company", "company-2", "contract", "cross", "decision-maker", "document", "download", "edit", "info-circle", "field-error", "image", "light-bulb", "location", "more-horiz", "new-document", "payout", "pci", "plus", "plus-small", "remove", "save", "search", "store", "trust", "user", "user-business", "upload", "users-3", "warning", "wrong"];
2473
+ const logger$H = createLogger("Icon");
2468
2474
  const Svg = ({
2469
2475
  className,
2470
2476
  name,
@@ -2473,8 +2479,9 @@ const Svg = ({
2473
2479
  type
2474
2480
  }) => {
2475
2481
  const LazyLoadedSvg = svgs[name];
2482
+ const viewBox = unscalableIconNames.includes(name) ? "0 0 16 16" : void 0;
2476
2483
  if (!LazyLoadedSvg) {
2477
- logger$G.error(`No such svg: "${name}"`);
2484
+ logger$H.error(`No such svg: "${name}"`);
2478
2485
  return null;
2479
2486
  }
2480
2487
  return jsx("span", {
@@ -2482,7 +2489,11 @@ const Svg = ({
2482
2489
  "data-testid": testId,
2483
2490
  children: jsx(Suspense, {
2484
2491
  fallback: null,
2485
- children: jsx(LazyLoadedSvg, {
2492
+ children: viewBox ? jsx(LazyLoadedSvg, {
2493
+ alt,
2494
+ "aria-hidden": type === "icon",
2495
+ viewBox
2496
+ }) : jsx(LazyLoadedSvg, {
2486
2497
  alt,
2487
2498
  "aria-hidden": type === "icon"
2488
2499
  })
@@ -2756,7 +2767,7 @@ function useFormRouterContext() {
2756
2767
  }
2757
2768
  return context;
2758
2769
  }
2759
- const logger$F = createLogger("Link");
2770
+ const logger$G = createLogger("Link");
2760
2771
  const getIconClass = (icon, external) => {
2761
2772
  if (external) {
2762
2773
  return "adyen-kyc-link__icon adyen-kyc-icon-external-link";
@@ -2768,7 +2779,7 @@ const getIconClass = (icon, external) => {
2768
2779
  };
2769
2780
  const isValidLink = (href) => {
2770
2781
  if (href === "#") {
2771
- logger$F.error('Links must include a valid href. If your href is "#", consider using a Button instead');
2782
+ logger$G.error('Links must include a valid href. If your href is "#", consider using a Button instead');
2772
2783
  return false;
2773
2784
  }
2774
2785
  return true;
@@ -3118,7 +3129,7 @@ const useSetting = (settingName) => {
3118
3129
  } = context;
3119
3130
  return getSetting(settingName);
3120
3131
  };
3121
- const logger$E = createLogger("useAllowedCountries");
3132
+ const logger$F = createLogger("useAllowedCountries");
3122
3133
  const useAllowedCountries = () => {
3123
3134
  const acceptedCountries = useSetting("acceptedCountries");
3124
3135
  const {
@@ -3127,7 +3138,7 @@ const useAllowedCountries = () => {
3127
3138
  const [allowedCountries, setAllowedCountries] = useState(acceptedCountries);
3128
3139
  useEffect(() => {
3129
3140
  if (acceptedCountries !== void 0) return;
3130
- getAllowedCountries2().then((response) => setAllowedCountries(response.countries)).catch(logger$E.error);
3141
+ getAllowedCountries2().then((response) => setAllowedCountries(response.countries)).catch(logger$F.error);
3131
3142
  }, [acceptedCountries]);
3132
3143
  return allowedCountries;
3133
3144
  };
@@ -3486,7 +3497,7 @@ function reducer({
3486
3497
  }
3487
3498
  };
3488
3499
  }
3489
- const logger$D = createLogger("useAsyncValidator");
3500
+ const logger$E = createLogger("useAsyncValidator");
3490
3501
  const useAsyncValidator = (asyncRules) => {
3491
3502
  const [asyncValidationResults, setAsyncValidationResults] = useState({});
3492
3503
  const clearAsyncValidationResults = useCallback(() => setAsyncValidationResults({}), []);
@@ -3507,7 +3518,7 @@ const useAsyncValidator = (asyncRules) => {
3507
3518
  hasError: !isValid
3508
3519
  }])
3509
3520
  });
3510
- }).catch(logger$D.error);
3521
+ }).catch(logger$E.error);
3511
3522
  }, [asyncRules, clearAsyncValidationResults]);
3512
3523
  return {
3513
3524
  asyncValidationResults,
@@ -3952,12 +3963,13 @@ const Tag = ({
3952
3963
  children
3953
3964
  });
3954
3965
  };
3955
- const styles$3 = {
3966
+ const styles$4 = {
3956
3967
  "adyen-kyc-dropdown": "adyen-kyc-dropdown",
3957
3968
  "adyen-kyc-dropdown-button": "adyen-kyc-dropdown-button",
3958
3969
  "adyen-kyc-dropdown-button--active": "adyen-kyc-dropdown-button--active",
3959
3970
  "adyen-kyc-filter-input": "adyen-kyc-filter-input",
3960
3971
  "adyen-kyc-dropdown-list": "adyen-kyc-dropdown-list",
3972
+ "adyen-kyc-dropdown-list__transformer": "adyen-kyc-dropdown-list__transformer",
3961
3973
  "adyen-kyc-dropdown-list--active": "adyen-kyc-dropdown-list--active",
3962
3974
  "adyen-kyc-dropdown-element": "adyen-kyc-dropdown-element"
3963
3975
  };
@@ -4008,10 +4020,10 @@ function SelectButton({
4008
4020
  "aria-haspopup": "listbox",
4009
4021
  className: cx({
4010
4022
  "adyen-kyc-dropdown-button": true,
4011
- [styles$3["adyen-kyc-dropdown-button"]]: true,
4023
+ [styles$4["adyen-kyc-dropdown-button"]]: true,
4012
4024
  "adyen-kyc-dropdown-button--readonly": readonly,
4013
4025
  "adyen-kyc-dropdown-button--active": showList,
4014
- [styles$3["adyen-kyc-dropdown-button--active"]]: showList,
4026
+ [styles$4["adyen-kyc-dropdown-button--active"]]: showList,
4015
4027
  "adyen-kyc-dropdown-button--invalid": isInvalid,
4016
4028
  "adyen-kyc-dropdown-field--valid": isValid,
4017
4029
  "adyen-kyc-dropdown-button-search": isSearch
@@ -4081,7 +4093,7 @@ const SelectButtonContentSingle = ({
4081
4093
  "aria-expanded": showList,
4082
4094
  "aria-owns": selectListId,
4083
4095
  autoComplete: "off",
4084
- className: cx("adyen-kyc-filter-input", [styles$3["adyen-kyc-filter-input"]]),
4096
+ className: cx("adyen-kyc-filter-input", [styles$4["adyen-kyc-filter-input"]]),
4085
4097
  onInput,
4086
4098
  placeholder,
4087
4099
  ref: filterInputRef,
@@ -4169,7 +4181,7 @@ const SelectListItem = ({
4169
4181
  }) => jsx("li", {
4170
4182
  "aria-disabled": !!item.disabled,
4171
4183
  "aria-selected": selected,
4172
- className: cx(["adyen-kyc-dropdown-element", styles$3["adyen-kyc-dropdown-element"], {
4184
+ className: cx(["adyen-kyc-dropdown-element", styles$4["adyen-kyc-dropdown-element"], {
4173
4185
  "adyen-kyc-dropdown-element--active": selected,
4174
4186
  "adyen-kyc-dropdown-element--disabled": !!item.disabled,
4175
4187
  "adyen-kyc-dropdown-multi-element": isMulti,
@@ -4217,8 +4229,7 @@ const SelectListItem = ({
4217
4229
  })]
4218
4230
  })
4219
4231
  });
4220
- const ITEM_HEIGHT = 35;
4221
- const VISIBLE_ITEMS = 10;
4232
+ const VISIBLE_ITEMS = 5;
4222
4233
  function SelectList({
4223
4234
  active,
4224
4235
  items,
@@ -4237,7 +4248,14 @@ function SelectList({
4237
4248
  const listRef = useRef(null);
4238
4249
  const [startIndex, setStartIndex] = useState(0);
4239
4250
  const [endIndex, setEndIndex] = useState(VISIBLE_ITEMS);
4240
- const [listHeight, setListHeight] = useState(0);
4251
+ const [itemHeight, setItemHeight] = useState(0);
4252
+ useEffect(() => {
4253
+ var _a, _b, _c;
4254
+ if (listRef.current && itemHeight === 0 && showList) {
4255
+ const height = ((_c = (_b = (_a = listRef.current) == null ? void 0 : _a.firstElementChild) == null ? void 0 : _b.firstElementChild) == null ? void 0 : _c.clientHeight) || 0;
4256
+ setItemHeight(height);
4257
+ }
4258
+ }, [itemHeight, showList]);
4241
4259
  const filteredItems = items.filter((item) => {
4242
4260
  var _a;
4243
4261
  if (isSearch) {
@@ -4253,18 +4271,12 @@ function SelectList({
4253
4271
  scrollTop
4254
4272
  } = listRef.current;
4255
4273
  const maxStartIndex = totalItems - VISIBLE_ITEMS;
4256
- const newStartIndex = Math.min(Math.max(0, Math.floor(scrollTop / ITEM_HEIGHT)), maxStartIndex);
4274
+ const newStartIndex = Math.min(Math.max(0, Math.floor(scrollTop / itemHeight)), maxStartIndex);
4257
4275
  const newEndIndex = Math.min(newStartIndex + VISIBLE_ITEMS, totalItems);
4258
4276
  setStartIndex(newStartIndex);
4259
4277
  setEndIndex(newEndIndex);
4260
4278
  }
4261
- }, [totalItems]);
4262
- useEffect(() => {
4263
- if (listRef.current) {
4264
- const newHeight = totalItems ? Math.min(totalItems, VISIBLE_ITEMS) * ITEM_HEIGHT : ITEM_HEIGHT;
4265
- setListHeight(newHeight);
4266
- }
4267
- }, [totalItems]);
4279
+ }, [totalItems, itemHeight]);
4268
4280
  const getItems = () => {
4269
4281
  if (loading) {
4270
4282
  return jsx("div", {
@@ -4294,35 +4306,31 @@ function SelectList({
4294
4306
  }
4295
4307
  return null;
4296
4308
  };
4297
- return jsx("ul", {
4309
+ const calculateMaxHeight = useCallback(() => totalItems > VISIBLE_ITEMS && itemHeight ? `${itemHeight * (VISIBLE_ITEMS - 1)}px` : "auto", [totalItems, itemHeight]);
4310
+ return jsx("div", {
4298
4311
  className: cx({
4299
4312
  test: true,
4300
4313
  "adyen-kyc-dropdown-list--above": showAbove,
4301
4314
  "adyen-kyc-dropdown-list": true,
4302
- [styles$3["adyen-kyc-dropdown-list"]]: true,
4315
+ [styles$4["adyen-kyc-dropdown-list"]]: true,
4303
4316
  "adyen-kyc-dropdown-list--active": showList,
4304
- [styles$3["adyen-kyc-dropdown-list--active"]]: showList
4317
+ [styles$4["adyen-kyc-dropdown-list--active"]]: showList
4305
4318
  }),
4306
4319
  id: props.selectListId,
4307
- ref: listRef,
4308
4320
  role: "listbox",
4309
4321
  onScroll: handleScroll,
4310
4322
  style: {
4311
- height: `${listHeight}px`,
4312
4323
  overflowY: totalItems > VISIBLE_ITEMS ? "auto" : "hidden",
4313
- position: "absolute"
4324
+ position: "absolute",
4325
+ maxHeight: calculateMaxHeight()
4314
4326
  },
4315
- children: jsx("div", {
4327
+ ref: listRef,
4328
+ children: jsx("ul", {
4329
+ className: "adyen-kyc-dropdown-list__transformer",
4316
4330
  style: {
4317
- height: `${totalItems * ITEM_HEIGHT}px`,
4318
- position: "relative"
4331
+ transform: `translateY(${startIndex * itemHeight}px)`
4319
4332
  },
4320
- children: jsx("div", {
4321
- style: {
4322
- transform: `translateY(${startIndex * ITEM_HEIGHT}px)`
4323
- },
4324
- children: getItems()
4325
- })
4333
+ children: getItems()
4326
4334
  })
4327
4335
  });
4328
4336
  }
@@ -4509,7 +4517,7 @@ const Select = ({
4509
4517
  };
4510
4518
  }, []);
4511
4519
  return jsxs("div", {
4512
- className: cx(["adyen-kyc-dropdown", styles$3["adyen-kyc-dropdown"], className, ...classNameModifiers.map((m) => `adyen-kyc-dropdown--${m}`)]),
4520
+ className: cx(["adyen-kyc-dropdown", styles$4["adyen-kyc-dropdown"], className, ...classNameModifiers.map((m) => `adyen-kyc-dropdown--${m}`)]),
4513
4521
  ref: selectContainerRef,
4514
4522
  onClick: (e) => {
4515
4523
  e.stopPropagation();
@@ -5063,31 +5071,31 @@ const euCountries = [
5063
5071
  "AT",
5064
5072
  "BE",
5065
5073
  "BG",
5074
+ "HR",
5066
5075
  "CY",
5067
5076
  "CZ",
5068
- "DE",
5069
5077
  "DK",
5070
5078
  "EE",
5071
- "ES",
5072
5079
  "FI",
5073
5080
  "FR",
5081
+ "DE",
5074
5082
  "GR",
5075
- "HR",
5076
5083
  "HU",
5077
5084
  "IE",
5078
5085
  "IT",
5086
+ "LV",
5079
5087
  "LT",
5080
5088
  "LU",
5081
- "LV",
5082
5089
  "MT",
5083
5090
  "NL",
5084
5091
  "PL",
5085
5092
  "PT",
5086
5093
  "RO",
5087
- "SE",
5094
+ "SK",
5088
5095
  "SI",
5089
- "SK"
5090
- /* Slovakia */
5096
+ "ES",
5097
+ "SE"
5098
+ /* Sweden */
5091
5099
  ];
5092
5100
  const validateNotEmptyOnBlur = {
5093
5101
  modes: ["blur"],
@@ -7434,7 +7442,7 @@ const deriveInputState = (isValid, isFocused, isDisabled, isOptional, hasNullish
7434
7442
  };
7435
7443
  };
7436
7444
  const MISMATCH_ANIMATION_NAME = "mismatchShake";
7437
- const logger$C = createLogger("MaskedInputText");
7445
+ const logger$D = createLogger("MaskedInputText");
7438
7446
  const MaskedInputText = ({
7439
7447
  value,
7440
7448
  onInput,
@@ -7480,7 +7488,7 @@ const MaskedInputText = ({
7480
7488
  };
7481
7489
  useEffect(() => {
7482
7490
  if (!mask) {
7483
- logger$C.warn("`mask` is undefined. No masking of input will take place.");
7491
+ logger$D.warn("`mask` is undefined. No masking of input will take place.");
7484
7492
  }
7485
7493
  }, [mask]);
7486
7494
  const getMaskResult = useCallback((pureValue) => {
@@ -7505,13 +7513,13 @@ const MaskedInputText = ({
7505
7513
  return;
7506
7514
  }
7507
7515
  if (preserveMismatchingInitialValue) {
7508
- logger$C.warn(`Value received "${value}" does not match mask`, maskResult, `
7516
+ logger$D.warn(`Value received "${value}" does not match mask`, maskResult, `
7509
7517
  Preserving mismatched initial value until user input.`);
7510
7518
  setPreservingMismatchedValue(true);
7511
7519
  return;
7512
7520
  }
7513
7521
  const fallback = displayValueToPure(maskResult.partialDisplayValue);
7514
- logger$C.warn(`Value received "${value}" does not match mask`, maskResult, `
7522
+ logger$D.warn(`Value received "${value}" does not match mask`, maskResult, `
7515
7523
  Falling back to partially valid value "${fallback}"`);
7516
7524
  onInput(fallback);
7517
7525
  }
@@ -11067,7 +11075,7 @@ const accountHolderValidationRules = {
11067
11075
  }
11068
11076
  };
11069
11077
  const accountHolderFields = ["accountHolder"];
11070
- const logger$B = createLogger("AccountHolder");
11078
+ const logger$C = createLogger("AccountHolder");
11071
11079
  function getAvailableAccountHolderOptions(legalEntityType, isChangeOfLegalEntityTypeAllowed, isTrustFlowEnabled, isSoleProprietorshipAllowed, isChangeToMyNameAllowed) {
11072
11080
  switch (legalEntityType) {
11073
11081
  case LegalEntityType.ORGANIZATION: {
@@ -11077,7 +11085,7 @@ function getAvailableAccountHolderOptions(legalEntityType, isChangeOfLegalEntity
11077
11085
  return [...isChangeToMyNameAllowed ? ["myName"] : [], ...isChangeOfLegalEntityTypeAllowed ? ["theCompanyIWorkFor"] : [], ...isTrustFlowEnabled ? ["aTrust"] : [], ...isSoleProprietorshipAllowed ? ["mySoleProprietorName"] : []];
11078
11086
  }
11079
11087
  default:
11080
- logger$B.error(`No available account holder options for legal entity type '${legalEntityType}'`);
11088
+ logger$C.error(`No available account holder options for legal entity type '${legalEntityType}'`);
11081
11089
  return [];
11082
11090
  }
11083
11091
  }
@@ -11314,15 +11322,16 @@ function DocumentGuidance({
11314
11322
  name: item.svgName
11315
11323
  }), jsxs("figcaption", {
11316
11324
  className: "adyen-kyc-document-guidance__description",
11317
- children: [item.valid ? jsx(Svg, {
11318
- type: "icon",
11325
+ children: [item.valid ? jsx(Icon, {
11319
11326
  name: "check",
11320
- className: cx("adyen-kyc-document-guidance__icon", "adyen-kyc-document-guidance__icon--valid")
11321
- }) : jsx(Svg, {
11322
- type: "icon",
11327
+ className: "adyen-kyc-document-guidance__icon"
11328
+ }) : jsx(Icon, {
11323
11329
  name: "cross",
11324
- className: cx("adyen-kyc-document-guidance__icon", "adyen-kyc-document-guidance__icon--invalid")
11325
- }), i18n.get(item.translationKey)]
11330
+ className: "adyen-kyc-document-guidance__icon adyen-kyc-document-guidance__icon--invalid"
11331
+ }), jsx("span", {
11332
+ className: "adyen-kyc-document-guidance__description-text",
11333
+ children: i18n.get(item.translationKey)
11334
+ })]
11326
11335
  })]
11327
11336
  }, item.translationKey))
11328
11337
  })
@@ -11644,7 +11653,7 @@ function Dropzone(props) {
11644
11653
  })]
11645
11654
  });
11646
11655
  }
11647
- const logger$A = createLogger("TextArea");
11656
+ const logger$B = createLogger("TextArea");
11648
11657
  function TextArea(props) {
11649
11658
  const {
11650
11659
  classNameModifiers,
@@ -11665,7 +11674,7 @@ function TextArea(props) {
11665
11674
  } = useI18nContext();
11666
11675
  const [value, setValue] = useState("");
11667
11676
  if (Object.prototype.hasOwnProperty.call(props, "onChange")) {
11668
- logger$A.error("Error: Form fields that rely on InputBase may not have an onChange property");
11677
+ logger$B.error("Error: Form fields that rely on InputBase may not have an onChange property");
11669
11678
  }
11670
11679
  const handleInput = (e) => {
11671
11680
  var _a;
@@ -12110,7 +12119,7 @@ function useIsElementVisible(ref, fallback = true) {
12110
12119
  }, [ref]);
12111
12120
  return isOnScreen;
12112
12121
  }
12113
- const logger$z = createLogger("SearchAddress");
12122
+ const logger$A = createLogger("SearchAddress");
12114
12123
  const SearchAddress = ({
12115
12124
  data,
12116
12125
  legalEntityId,
@@ -12154,7 +12163,7 @@ const SearchAddress = ({
12154
12163
  const response = await handleFindAddress(selectedAddressId);
12155
12164
  autocompleteAddressForm(response);
12156
12165
  } catch (e) {
12157
- logger$z.error(e);
12166
+ logger$A.error(e);
12158
12167
  }
12159
12168
  };
12160
12169
  const onDrilldown = async (selectedAddress) => {
@@ -12166,7 +12175,7 @@ const SearchAddress = ({
12166
12175
  }, legalEntityId);
12167
12176
  setItems((response == null ? void 0 : response.results) || []);
12168
12177
  } catch (e) {
12169
- logger$z.error(e);
12178
+ logger$A.error(e);
12170
12179
  }
12171
12180
  };
12172
12181
  const onChange = (e) => {
@@ -12221,7 +12230,7 @@ const SearchAddress = ({
12221
12230
  setItems([]);
12222
12231
  }
12223
12232
  } catch (e) {
12224
- logger$z.error(e);
12233
+ logger$A.error(e);
12225
12234
  }
12226
12235
  setLoading(false);
12227
12236
  }
@@ -13468,7 +13477,10 @@ function CompanyComponent(props) {
13468
13477
  if (companyCountry != null && companyCountry !== companyCountryPrev) {
13469
13478
  props.onCountryChange(companyCountry);
13470
13479
  }
13471
- this.customNavigationHandler = accountHolder === "myName" ? () => props.onTypeSwitch(LegalEntityType.INDIVIDUAL) : null;
13480
+ this.customNavigationHandler = accountHolder === "myName" ? () => {
13481
+ var _a2;
13482
+ return (_a2 = props.onTypeSwitch) == null ? void 0 : _a2.call(props, LegalEntityType.INDIVIDUAL);
13483
+ } : null;
13472
13484
  };
13473
13485
  return jsxs("div", {
13474
13486
  className: "adyen-kyc-company",
@@ -13993,7 +14005,7 @@ const payoutBaseMapping = {
13993
14005
  "bankAccount.accountIdentification.clearingNumber": "payoutAccountDetails.branchCode",
13994
14006
  "bankAccount.accountIdentification.bic": "payoutAccountDetails.swiftCode",
13995
14007
  "bankAccount.accountIdentification.sortCode": "payoutAccountDetails.branchCode",
13996
- "bankAccount.accountIdentification.routingNumber": "payoutAccountDetails.branchCode"
14008
+ "bankAccount.accountIdentification.routingNumber": "payoutAccountDetails.routingNumber"
13997
14009
  };
13998
14010
  const businessDetailsBaseMapping = {
13999
14011
  "basicInformation.country": "organization.registeredAddress.country",
@@ -15051,7 +15063,7 @@ const useIdVerificationToken = ({
15051
15063
  loadingStatus
15052
15064
  };
15053
15065
  };
15054
- const styles$2 = {
15066
+ const styles$3 = {
15055
15067
  "adyen-kyc-loading-input__form": "adyen-kyc-loading-input__form",
15056
15068
  "adyen-kyc-loading-input__form--loading-opacity0": "adyen-kyc-loading-input__form--loading-opacity0",
15057
15069
  "adyen-kyc-loading-input__form--loading-opacity0-1": "adyen-kyc-loading-input__form--loading-opacity0-1",
@@ -15079,12 +15091,12 @@ const LoaderWrapper = ({
15079
15091
  const digit = formOpacityStrArr[0];
15080
15092
  const decimal = formOpacityStrArr[1];
15081
15093
  const opacity = decimal ? `${digit}-${decimal}` : `${digit}`;
15082
- const wrapperClass = cx("adyen-kyc-loading-input__form", styles$2["adyen-kyc-loading-input__form"], {
15083
- [styles$2[`adyen-kyc-loading-input__form--loading-opacity${opacity}`]]: status === "loading"
15094
+ const wrapperClass = cx("adyen-kyc-loading-input__form", styles$3["adyen-kyc-loading-input__form"], {
15095
+ [styles$3[`adyen-kyc-loading-input__form--loading-opacity${opacity}`]]: status === "loading"
15084
15096
  });
15085
15097
  const loaderWrapperClass = cx({
15086
- [styles$2["adyen-kyc-loading-input__loader"]]: true,
15087
- [styles$2["adyen-kyc-loading-input__loader--active"]]: status === "loading" && showSpinner
15098
+ [styles$3["adyen-kyc-loading-input__loader"]]: true,
15099
+ [styles$3["adyen-kyc-loading-input__loader--active"]]: status === "loading" && showSpinner
15088
15100
  });
15089
15101
  const overlayClass = cx("adyen-kyc-loading-input", className);
15090
15102
  return jsxs("div", {
@@ -15153,7 +15165,7 @@ const initOnfido = async ({
15153
15165
  language: getOnfidoLocaleConfig(i18n)
15154
15166
  });
15155
15167
  };
15156
- const logger$y = createLogger("IdVerificationComponent");
15168
+ const logger$z = createLogger("IdVerificationComponent");
15157
15169
  function IdVerificationComponent({
15158
15170
  userDetails,
15159
15171
  legalEntityId,
@@ -15190,7 +15202,7 @@ function IdVerificationComponent({
15190
15202
  onIdVerificationError,
15191
15203
  onIdVerificationComplete
15192
15204
  });
15193
- })().catch(logger$y.error);
15205
+ })().catch(logger$z.error);
15194
15206
  return () => {
15195
15207
  if (onfidoSdk.current) onfidoSdk.current.tearDown();
15196
15208
  };
@@ -15240,7 +15252,7 @@ function IdDocumentAlreadyUpload(props) {
15240
15252
  })]
15241
15253
  });
15242
15254
  }
15243
- const logger$x = createLogger("IdDocumentInstantVerificationComponent");
15255
+ const logger$y = createLogger("IdDocumentInstantVerificationComponent");
15244
15256
  const idVerificationSchema = ["instantIdVerificationData", "idDocumentType"];
15245
15257
  const documentTypeValidationRules = {
15246
15258
  instantIdVerificationData: {
@@ -15322,7 +15334,7 @@ function IdDocumentInstantVerificationComponent(props) {
15322
15334
  userDetails: props.userDetails,
15323
15335
  legalEntityId: props.legalEntityId,
15324
15336
  onIdVerificationComplete: handleIdVerificationComplete,
15325
- onIdVerificationError: logger$x.error
15337
+ onIdVerificationError: logger$y.error
15326
15338
  }), jsxs("div", {
15327
15339
  className: "adyen-kyc-document-upload__manual-upload",
15328
15340
  children: [i18n.get("canNotCompleteInstantVerification"), " ", jsx("button", {
@@ -15747,7 +15759,7 @@ const phoneFormatters = {
15747
15759
  };
15748
15760
  const phoneFields = ["phoneNumber"];
15749
15761
  const DEFAULT_PHONE_PREFIX = "+1";
15750
- const logger$w = createLogger("PhoneInput");
15762
+ const logger$x = createLogger("PhoneInput");
15751
15763
  const usePhonePrefixes = () => {
15752
15764
  const [phonePrefixes, setPhonePrefixes] = useState();
15753
15765
  useEffect(() => {
@@ -15755,7 +15767,7 @@ const usePhonePrefixes = () => {
15755
15767
  const loaded = (await import("./phonePrefixes-zV4hciyK.js")).default;
15756
15768
  setPhonePrefixes(loaded);
15757
15769
  };
15758
- loadPhonePrefixes().catch(logger$w.error);
15770
+ loadPhonePrefixes().catch(logger$x.error);
15759
15771
  }, []);
15760
15772
  return phonePrefixes;
15761
15773
  };
@@ -16599,7 +16611,7 @@ const handleKeys = (keys, callback, propagationMode = "stopIfMatches") => (event
16599
16611
  callback();
16600
16612
  }
16601
16613
  };
16602
- const styles$1 = {
16614
+ const styles$2 = {
16603
16615
  "adyen-kyc-multi-select-list": "adyen-kyc-multi-select-list",
16604
16616
  "adyen-kyc-multi-select-list-item": "adyen-kyc-multi-select-list-item",
16605
16617
  "adyen-kyc-multi-select-list-item--with-description": "adyen-kyc-multi-select-list-item--with-description",
@@ -16611,7 +16623,7 @@ const MultiSelectList = ({
16611
16623
  onSelect,
16612
16624
  mapToSelectItem
16613
16625
  }) => jsx("ul", {
16614
- className: styles$1["adyen-kyc-multi-select-list"],
16626
+ className: styles$2["adyen-kyc-multi-select-list"],
16615
16627
  children: options.map((option) => {
16616
16628
  const item = mapToSelectItem(option);
16617
16629
  const isSelected = selected.includes(option);
@@ -16625,8 +16637,8 @@ const MultiSelectList = ({
16625
16637
  onKeyDown: handleKeys(["Enter", " "], handleSelect),
16626
16638
  onSelect: handleSelect,
16627
16639
  isMulti: true,
16628
- className: cx([styles$1["adyen-kyc-multi-select-list-item"], {
16629
- [styles$1["adyen-kyc-multi-select-list-item--with-description"]]: !!item.description
16640
+ className: cx([styles$2["adyen-kyc-multi-select-list-item"], {
16641
+ [styles$2["adyen-kyc-multi-select-list-item--with-description"]]: !!item.description
16630
16642
  }])
16631
16643
  }, item.id);
16632
16644
  })
@@ -16763,7 +16775,7 @@ const nameValidationRulesV4 = {
16763
16775
  errorMessage: "nameMustContainLetters"
16764
16776
  }, {
16765
16777
  modes: ["blur"],
16766
- validate: (input) => !matchesRegex(EMOJI_REGEX, input) && !hasRepeatedCharacters(input) && isValidMinLength(input, 2) && !isInvalidName(input) && matchesRegex(INDIVIDUAL_VALID_CHAR_REGEX, input),
16778
+ validate: (input) => !matchesRegex(EMOJI_REGEX, input) && !hasRepeatedCharacters(input) && !isInvalidName(input) && matchesRegex(INDIVIDUAL_VALID_CHAR_REGEX, input),
16767
16779
  errorMessage: "checkForTypos"
16768
16780
  }],
16769
16781
  lastName: [{
@@ -16776,7 +16788,7 @@ const nameValidationRulesV4 = {
16776
16788
  errorMessage: "nameMustContainLetters"
16777
16789
  }, {
16778
16790
  modes: ["blur"],
16779
- validate: (input) => !matchesRegex(EMOJI_REGEX, input) && !hasRepeatedCharacters(input) && isValidMinLength(input, 1) && !isInvalidName(input) && matchesRegex(INDIVIDUAL_VALID_CHAR_REGEX, input),
16791
+ validate: (input) => !matchesRegex(EMOJI_REGEX, input) && !hasRepeatedCharacters(input) && !isInvalidName(input) && matchesRegex(INDIVIDUAL_VALID_CHAR_REGEX, input),
16780
16792
  errorMessage: "checkForTypos"
16781
16793
  }]
16782
16794
  };
@@ -18196,7 +18208,10 @@ function IndividualComponent(props) {
18196
18208
  setIdVerificationMethodSelected(idVerificationMethod);
18197
18209
  }
18198
18210
  const accountHolder = (_j = (_i = currentState.data) == null ? void 0 : _i.personalDetails) == null ? void 0 : _j.accountHolder;
18199
- this.customNavigationHandler = accountHolder === "theCompanyIWorkFor" ? () => props.onTypeSwitch(LegalEntityType.ORGANIZATION) : null;
18211
+ this.customNavigationHandler = accountHolder === "theCompanyIWorkFor" ? () => {
18212
+ var _a3;
18213
+ return (_a3 = props.onTypeSwitch) == null ? void 0 : _a3.call(props, LegalEntityType.ORGANIZATION);
18214
+ } : null;
18200
18215
  setData(currentState.data);
18201
18216
  };
18202
18217
  useEffect(() => {
@@ -19031,7 +19046,7 @@ class AdyenKycSdkError extends Error {
19031
19046
  }
19032
19047
  let sdkToken;
19033
19048
  let fetchSdkToken;
19034
- const logger$v = createLogger("Session");
19049
+ const logger$w = createLogger("Session");
19035
19050
  const setSdkToken = (token) => {
19036
19051
  sdkToken = token;
19037
19052
  };
@@ -19054,7 +19069,7 @@ const refreshSession = async () => {
19054
19069
  setSdkToken(token);
19055
19070
  isSessionRefreshed = true;
19056
19071
  } catch (e) {
19057
- logger$v.error("Failed to fetch sdk token", e);
19072
+ logger$w.error("Failed to fetch sdk token", e);
19058
19073
  }
19059
19074
  return isSessionRefreshed;
19060
19075
  };
@@ -19064,7 +19079,7 @@ const addAnimationStartListener = (element, listener) => {
19064
19079
  const removeAnimationStartListener = (element, listener) => {
19065
19080
  element.removeEventListener("animationstart", listener, false);
19066
19081
  };
19067
- const logger$u = createLogger("Fetch");
19082
+ const logger$v = createLogger("Fetch");
19068
19083
  const getRequestObject = (options, data) => {
19069
19084
  const {
19070
19085
  headers = [],
@@ -19111,10 +19126,10 @@ const logFetchError = (message, level) => {
19111
19126
  case "info":
19112
19127
  case "warn":
19113
19128
  case "error":
19114
- logger$u[level](message);
19129
+ logger$v[level](message);
19115
19130
  break;
19116
19131
  default:
19117
- logger$u.error(message);
19132
+ logger$v.error(message);
19118
19133
  }
19119
19134
  };
19120
19135
  const handleFetchResponse = async (response, responseType) => {
@@ -19212,7 +19227,7 @@ const RELEVANT_MESSAGE_TYPES = ["account_verification_report_id", "error"];
19212
19227
  const TERMINAL_DATA_PROPS = ["accounts", "error", "reference"];
19213
19228
  const MOUNT_TIMEOUT = 10 * 1e3;
19214
19229
  const TINK_VENDOR = "Tink";
19215
- const logger$t = createLogger("iframeWidget");
19230
+ const logger$u = createLogger("iframeWidget");
19216
19231
  const isObjectData = (data) => typeof data === "object" && !Array.isArray(data) && data !== null;
19217
19232
  const isTerminalMessageData = (data) => isObjectData(data) && Object.entries(data).some(([prop]) => TERMINAL_DATA_PROPS.includes(prop));
19218
19233
  const parseMessageJson = (message) => {
@@ -19230,7 +19245,7 @@ const callbackErrorHandler = async (response) => {
19230
19245
  try {
19231
19246
  await response;
19232
19247
  } catch (ex) {
19233
- logger$t.error(ex);
19248
+ logger$u.error(ex);
19234
19249
  }
19235
19250
  return {
19236
19251
  error: "UNKNOWN_ERROR",
@@ -19333,7 +19348,7 @@ class IFrameWidget {
19333
19348
  message = responseData.errorMessage;
19334
19349
  }
19335
19350
  } catch (ex) {
19336
- logger$t.error(ex);
19351
+ logger$u.error(ex);
19337
19352
  }
19338
19353
  throw new AdyenKycSdkError(reason, jsonData.error);
19339
19354
  }
@@ -19524,7 +19539,7 @@ function BankVerificationWidget({
19524
19539
  ref: widgetContainerRef
19525
19540
  });
19526
19541
  }
19527
- const logger$s = createLogger("BankVerification");
19542
+ const logger$t = createLogger("BankVerification");
19528
19543
  const accountVerificationFields = ["verifiedAccountHolder", "verifiedBankCountry", "verifiedBankName", "verifiedCurrencyCode", "verifiedBankAccountNumber"];
19529
19544
  const InstantVerificationErrorContext = createContext(null);
19530
19545
  const useInstantVerificationErrorNotification = (notificationVisibilityDuration) => {
@@ -19556,7 +19571,7 @@ const usePreferredVendorForCountry = (country, getBankVerificationVendors) => {
19556
19571
  const vendor = vendors[0];
19557
19572
  setPreferredVendor(vendor.name ? vendor : void 0);
19558
19573
  };
19559
- getPreferredVendor().catch(logger$s.error);
19574
+ getPreferredVendor().catch(logger$t.error);
19560
19575
  }, [country, getBankVerificationVendors]);
19561
19576
  return preferredVendor;
19562
19577
  };
@@ -23282,7 +23297,8 @@ const useFormComposer = ({
23282
23297
  const [hasAlreadyNavigatedForm, setHasAlreadyNavigatedForm] = useState(false);
23283
23298
  const getFormIndex = (formId) => forms2.findIndex((form) => form.formId === formId);
23284
23299
  const currentStep = getFormIndex(activeForm.formId);
23285
- const isFinalStep = currentStep === forms2.length - 1;
23300
+ const totalSteps = forms2.length;
23301
+ const isFinalStep = currentStep === totalSteps - 1;
23286
23302
  const isFirstStep = currentStep === 0;
23287
23303
  const [hideHomeButton, setHideHomeButton] = useState(false);
23288
23304
  const [hideBackButton, setHideBackButton] = useState(false);
@@ -23383,7 +23399,8 @@ const useFormComposer = ({
23383
23399
  activeForm,
23384
23400
  shouldValidate,
23385
23401
  setShouldValidate,
23386
- currentStep
23402
+ currentStep,
23403
+ totalSteps
23387
23404
  };
23388
23405
  };
23389
23406
  const obscuredPayoutFields = ["bankAccountNumber", "iban"];
@@ -23446,7 +23463,7 @@ const useUnifyLoadingStatus = (setParentLoadingStatus, ...childLoadingStatuses)
23446
23463
  setParentLoadingStatus(loadingStatus);
23447
23464
  }, [...childLoadingStatuses]);
23448
23465
  };
23449
- const logger$r = createLogger("useScenarioConfiguration");
23466
+ const logger$s = createLogger("useScenarioConfiguration");
23450
23467
  const useScenarioConfiguration = ({
23451
23468
  getConfigurationData,
23452
23469
  getPayoutAccountFormatData,
@@ -23472,12 +23489,12 @@ const useScenarioConfiguration = ({
23472
23489
  const response = await getConfigurationData();
23473
23490
  setConfigurationResponse(response);
23474
23491
  } catch (err) {
23475
- logger$r.warn("WARNING: Configuration request failed - error:", err);
23492
+ logger$s.warn("WARNING: Configuration request failed - error:", err);
23476
23493
  } finally {
23477
23494
  setConfigurationLoadingStatus("success");
23478
23495
  }
23479
23496
  };
23480
- makeConfigCallAndSave().catch(logger$r.error);
23497
+ makeConfigCallAndSave().catch(logger$s.error);
23481
23498
  }, [getConfigurationData, setConfigurationLoadingStatus]);
23482
23499
  useEffect(() => {
23483
23500
  if (!getPayoutAccountFormatData) return;
@@ -23494,12 +23511,12 @@ const useScenarioConfiguration = ({
23494
23511
  const defaultAccountFormat = defaultPayoutAccountFormat[country] ?? allowedBankAccountFormats[0];
23495
23512
  setAccountFormat(existingBankAccountFormat ?? defaultAccountFormat);
23496
23513
  } catch (err) {
23497
- logger$r.warn("WARNING: Payout format request failed - error:", err);
23514
+ logger$s.warn("WARNING: Payout format request failed - error:", err);
23498
23515
  } finally {
23499
23516
  setpayoutFormatLoadingStatus("success");
23500
23517
  }
23501
23518
  };
23502
- makePayoutFormatCallAndSave().catch(logger$r.error);
23519
+ makePayoutFormatCallAndSave().catch(logger$s.error);
23503
23520
  }, [country, setAccountFormat, getPayoutAccountFormatData, setpayoutFormatLoadingStatus, existingBankAccountFormat]);
23504
23521
  const {
23505
23522
  fieldConfigurations,
@@ -24207,6 +24224,33 @@ const dbaNameFieldMetadata = {
24207
24224
  label: "dbaName",
24208
24225
  validators: [validateNotEmptyOnBlur]
24209
24226
  };
24227
+ const styles$1 = {
24228
+ "adyen-kyc-structured-list": "adyen-kyc-structured-list",
24229
+ "adyen-kyc-structured-list__list-item": "adyen-kyc-structured-list__list-item",
24230
+ "adyen-layout-md": "adyen-layout-md",
24231
+ "adyen-kyc-structured-list__label": "adyen-kyc-structured-list__label",
24232
+ "adyen-kyc-structured-list__value": "adyen-kyc-structured-list__value"
24233
+ };
24234
+ const StructuredList = ({
24235
+ items
24236
+ }) => {
24237
+ const {
24238
+ i18n
24239
+ } = useI18nContext();
24240
+ return jsx("dl", {
24241
+ className: styles$1["adyen-kyc-structured-list"],
24242
+ children: items.map((item) => jsxs("div", {
24243
+ className: styles$1["adyen-kyc-structured-list__list-item"],
24244
+ children: [jsx("dt", {
24245
+ className: styles$1["adyen-kyc-structured-list__label"],
24246
+ children: i18n.get(item.labelKey)
24247
+ }), jsx("dd", {
24248
+ className: styles$1["adyen-kyc-structured-list__value"],
24249
+ children: item.value
24250
+ })]
24251
+ }, item.labelKey))
24252
+ });
24253
+ };
24210
24254
  function VerifiedBusinessCard({
24211
24255
  verifiedBusiness
24212
24256
  }) {
@@ -24216,52 +24260,38 @@ function VerifiedBusinessCard({
24216
24260
  const [expanded, setExpanded] = useState(false);
24217
24261
  const address = (verifiedBusiness == null ? void 0 : verifiedBusiness.street) && (verifiedBusiness == null ? void 0 : verifiedBusiness.city) && (verifiedBusiness == null ? void 0 : verifiedBusiness.state) && (verifiedBusiness == null ? void 0 : verifiedBusiness.zipcode) ? `${verifiedBusiness == null ? void 0 : verifiedBusiness.street} ${verifiedBusiness.city} ${verifiedBusiness.state} ${verifiedBusiness.zipcode}` : verifiedBusiness == null ? void 0 : verifiedBusiness.address;
24218
24262
  const addressLink = (verifiedBusiness == null ? void 0 : verifiedBusiness.address) ? `https://www.google.com/maps/place/${verifiedBusiness == null ? void 0 : verifiedBusiness.address.replaceAll(" ", "+")}` : void 0;
24263
+ const baseItems = useMemo(() => [{
24264
+ labelKey: "legalCompanyName__US",
24265
+ value: verifiedBusiness == null ? void 0 : verifiedBusiness.name
24266
+ }, {
24267
+ labelKey: "registrationNumber__US",
24268
+ value: verifiedBusiness == null ? void 0 : verifiedBusiness.registrationNumber
24269
+ }].filter((item) => !!item.value), [verifiedBusiness == null ? void 0 : verifiedBusiness.name, verifiedBusiness == null ? void 0 : verifiedBusiness.registrationNumber]);
24270
+ const expandedItems = useMemo(() => [{
24271
+ labelKey: "legalForm",
24272
+ value: verifiedBusiness == null ? void 0 : verifiedBusiness.legalForm
24273
+ }, {
24274
+ labelKey: "address",
24275
+ value: jsxs("div", {
24276
+ className: "adyen-kyc-verified-business-card__address",
24277
+ children: [address, addressLink && jsx(Link, {
24278
+ external: true,
24279
+ href: addressLink,
24280
+ children: i18n.get("showOnMap")
24281
+ })]
24282
+ })
24283
+ }].filter((item) => !!item.value), [address, addressLink, i18n, verifiedBusiness == null ? void 0 : verifiedBusiness.legalForm]);
24219
24284
  return jsxs("section", {
24220
24285
  children: [jsx(Typography, {
24221
24286
  el: "h3",
24222
24287
  children: i18n.get("verifiedInformation")
24223
24288
  }), jsxs("div", {
24224
24289
  className: "adyen-kyc-verified-business-card",
24225
- children: [jsxs("ul", {
24226
- children: [jsxs("li", {
24227
- children: [jsx(Typography, {
24228
- className: "adyen-kyc-verified-business-card__data-title ",
24229
- children: i18n.get("legalCompanyName__US")
24230
- }), jsx(Typography, {
24231
- children: verifiedBusiness == null ? void 0 : verifiedBusiness.name
24232
- })]
24233
- }), jsxs("li", {
24234
- children: [jsx(Typography, {
24235
- className: "adyen-kyc-verified-business-card__data-title ",
24236
- children: i18n.get("registrationNumber__US")
24237
- }), jsx(Typography, {
24238
- children: verifiedBusiness == null ? void 0 : verifiedBusiness.registrationNumber
24239
- })]
24240
- })]
24290
+ children: [jsx(StructuredList, {
24291
+ items: baseItems
24241
24292
  }), jsx(Divider, {}), expanded && jsxs(Fragment, {
24242
- children: [((verifiedBusiness == null ? void 0 : verifiedBusiness.legalForm) || address) && jsxs("ul", {
24243
- children: [(verifiedBusiness == null ? void 0 : verifiedBusiness.legalForm) && jsxs("li", {
24244
- children: [jsx(Typography, {
24245
- className: "adyen-kyc-verified-business-card__data-title ",
24246
- children: i18n.get("legalForm")
24247
- }), jsx(Typography, {
24248
- children: verifiedBusiness == null ? void 0 : verifiedBusiness.legalForm
24249
- })]
24250
- }), address && jsxs("li", {
24251
- children: [jsx(Typography, {
24252
- className: "adyen-kyc-verified-business-card__data-title ",
24253
- children: i18n.get("address")
24254
- }), jsx(Typography, {
24255
- children: jsxs("div", {
24256
- className: "adyen-kyc-verified-business-card__address",
24257
- children: [address, addressLink && jsx(Link, {
24258
- external: true,
24259
- href: addressLink,
24260
- children: i18n.get("showOnMap")
24261
- })]
24262
- })
24263
- })]
24264
- })]
24293
+ children: [jsx(StructuredList, {
24294
+ items: expandedItems
24265
24295
  }), jsx(Divider, {})]
24266
24296
  }), jsx("div", {
24267
24297
  className: "adyen-kyc-verified-business-card__button",
@@ -24697,13 +24727,33 @@ function BusinessInformation({
24697
24727
  fetching,
24698
24728
  selectedBusiness
24699
24729
  }) {
24700
- const {
24701
- i18n
24702
- } = useI18nContext();
24703
24730
  const [showLoader, setShowLoader] = useState(false);
24704
24731
  const businessInformationClasses = cx("adyen-kyc-business-information", {
24705
24732
  "adyen-kyc-business-information--fetching": fetching
24706
24733
  });
24734
+ const items = useMemo(() => selectedBusiness ? entriesOf(selectedBusiness).reduce((acc, [key, value]) => {
24735
+ switch (key) {
24736
+ case "legalForm":
24737
+ if (value) acc[0].value = value;
24738
+ break;
24739
+ case "name":
24740
+ if (value) acc[1].value = value;
24741
+ break;
24742
+ case "address":
24743
+ if (value) acc[2].value = value;
24744
+ break;
24745
+ }
24746
+ return acc;
24747
+ }, [{
24748
+ labelKey: "legalForm",
24749
+ value: ""
24750
+ }, {
24751
+ labelKey: "legalCompanyName__US",
24752
+ value: ""
24753
+ }, {
24754
+ labelKey: "address",
24755
+ value: ""
24756
+ }]).filter((item) => !!item.value) : [], [selectedBusiness]);
24707
24757
  const setFetching = () => {
24708
24758
  setTimeout(() => {
24709
24759
  setShowLoader(true);
@@ -24726,36 +24776,8 @@ function BusinessInformation({
24726
24776
  if (!fetching) {
24727
24777
  return jsx("div", {
24728
24778
  className: businessInformationClasses,
24729
- children: jsxs("ul", {
24730
- className: "adyen-kyc-business-information__business-data",
24731
- children: [!!(selectedBusiness == null ? void 0 : selectedBusiness.legalForm) && jsxs("li", {
24732
- name: "legalForm",
24733
- children: [jsx(Typography, {
24734
- className: "adyen-kyc-business-data__key",
24735
- color: "secondary",
24736
- children: i18n.get("legalForm")
24737
- }), jsx(Typography, {
24738
- children: selectedBusiness.legalForm
24739
- })]
24740
- }), !!(selectedBusiness == null ? void 0 : selectedBusiness.name) && jsxs("li", {
24741
- name: "name",
24742
- children: [jsx(Typography, {
24743
- className: "adyen-kyc-business-data__key",
24744
- color: "secondary",
24745
- children: i18n.get("legalCompanyName__US")
24746
- }), jsx(Typography, {
24747
- children: selectedBusiness.name
24748
- })]
24749
- }), !!(selectedBusiness == null ? void 0 : selectedBusiness.address) && jsxs("li", {
24750
- name: "address",
24751
- children: [jsx(Typography, {
24752
- className: "adyen-kyc-business-data__key",
24753
- color: "secondary",
24754
- children: i18n.get("address")
24755
- }), jsx(Typography, {
24756
- children: selectedBusiness.address
24757
- })]
24758
- })]
24779
+ children: jsx(StructuredList, {
24780
+ items
24759
24781
  })
24760
24782
  });
24761
24783
  }
@@ -24768,6 +24790,7 @@ function BusinessInformationCard({
24768
24790
  fetching,
24769
24791
  failedToLoad,
24770
24792
  invalidTin,
24793
+ resetTinVerification,
24771
24794
  setIsBusinessSelection,
24772
24795
  handleSelectBusiness,
24773
24796
  handleConfirmSelection
@@ -24780,6 +24803,10 @@ function BusinessInformationCard({
24780
24803
  if (failedToLoad && selectedBusinessId === searchResult.id) return;
24781
24804
  return handleSelectBusiness(searchResult);
24782
24805
  };
24806
+ const handleGoBack = () => {
24807
+ setIsBusinessSelection(false);
24808
+ resetTinVerification();
24809
+ };
24783
24810
  return jsx(Card, {
24784
24811
  "aria-selected": selectedBusinessId === result.id,
24785
24812
  className: "adyen-kyc-business-information-card",
@@ -24804,7 +24831,7 @@ function BusinessInformationCard({
24804
24831
  actions: jsx(Button, {
24805
24832
  label: "Go back",
24806
24833
  testId: "backBtn",
24807
- onClick: () => setIsBusinessSelection(false),
24834
+ onClick: handleGoBack,
24808
24835
  showAsLink: true
24809
24836
  }),
24810
24837
  testId: "invalidTin"
@@ -24826,7 +24853,7 @@ function BusinessInformationCard({
24826
24853
  })
24827
24854
  });
24828
24855
  }
24829
- const logger$q = createLogger("BusinessSelection");
24856
+ const logger$r = createLogger("BusinessSelection");
24830
24857
  function BusinessSelectionComponent({
24831
24858
  showCompanyStructure,
24832
24859
  isSearching,
@@ -24837,6 +24864,7 @@ function BusinessSelectionComponent({
24837
24864
  invalidTin,
24838
24865
  fetchBusinessData,
24839
24866
  verifyBusinessData,
24867
+ resetTinVerification,
24840
24868
  proceedToManualDataEntry,
24841
24869
  handleNextClick,
24842
24870
  setIsBusinessSelection,
@@ -24869,7 +24897,7 @@ function BusinessSelectionComponent({
24869
24897
  setCurrentBusinessSelection(businessData);
24870
24898
  }
24871
24899
  } catch (e) {
24872
- logger$q.error(e);
24900
+ logger$r.error(e);
24873
24901
  }
24874
24902
  }, [fetchBusinessData, isFetching, selectedBusinessId]);
24875
24903
  const handleConfirmSelection = useCallback(async (data) => {
@@ -24880,7 +24908,7 @@ function BusinessSelectionComponent({
24880
24908
  handleNextClick == null ? void 0 : handleNextClick();
24881
24909
  }
24882
24910
  } catch (e) {
24883
- logger$q.error(e);
24911
+ logger$r.error(e);
24884
24912
  }
24885
24913
  }, [currentTin, handleNextClick, handleBusinessVerification]);
24886
24914
  const showLoader = isSearching === "loading" || isVerifying === "loading" || isClearingTrustedData === "loading" || isFetching === "loading" && (searchResults == null ? void 0 : searchResults.length) === 1;
@@ -24911,6 +24939,7 @@ function BusinessSelectionComponent({
24911
24939
  fetching: isFetching === "loading",
24912
24940
  failedToLoad: isFetching === "error",
24913
24941
  invalidTin,
24942
+ resetTinVerification,
24914
24943
  handleSelectBusiness,
24915
24944
  handleConfirmSelection,
24916
24945
  setIsBusinessSelection
@@ -25042,7 +25071,8 @@ function BasicInformationComponent({
25042
25071
  proceedToManualDataEntry,
25043
25072
  handleNextClick,
25044
25073
  setShowBusinessSelection,
25045
- setShowCompanyStructure
25074
+ setShowCompanyStructure,
25075
+ resetTinVerification
25046
25076
  }) {
25047
25077
  var _a, _b, _c, _d, _e;
25048
25078
  const {
@@ -25165,7 +25195,8 @@ function BasicInformationComponent({
25165
25195
  proceedToManualDataEntry,
25166
25196
  handleNextClick,
25167
25197
  setIsBusinessSelection: setShowBusinessSelection,
25168
- setShowCompanyStructure
25198
+ setShowCompanyStructure,
25199
+ resetTinVerification
25169
25200
  });
25170
25201
  }
25171
25202
  return jsxs("form", {
@@ -25765,6 +25796,7 @@ function BusinessDetailsComponent(props) {
25765
25796
  searchResults,
25766
25797
  invalidTin,
25767
25798
  verifiedBusiness,
25799
+ resetTinVerification,
25768
25800
  handleNextClick,
25769
25801
  handleAddressSearch,
25770
25802
  handleFindAddress,
@@ -25813,7 +25845,8 @@ function BusinessDetailsComponent(props) {
25813
25845
  verifiedBusiness,
25814
25846
  setShowBusinessSelection,
25815
25847
  setShowCompanyStructure,
25816
- handleNextClick
25848
+ handleNextClick,
25849
+ resetTinVerification
25817
25850
  })
25818
25851
  }), jsx("div", {
25819
25852
  className: formWrapperClasses(forms2.companyStructure.formId),
@@ -26076,68 +26109,60 @@ const ExpiredBanner = () => {
26076
26109
  children: i18n.get("startANewSessionFromTheSamePlaceYouOriginallyAccessed")
26077
26110
  });
26078
26111
  };
26079
- const Modal$1 = ({
26080
- content,
26081
- footer,
26112
+ const Modal = ({
26082
26113
  header,
26083
- classNames,
26114
+ children,
26115
+ footer,
26084
26116
  size = "medium",
26085
- title,
26086
- isDismissible = true,
26087
- onClose = noop,
26088
- role = "dialog"
26117
+ onBack,
26118
+ onClose
26089
26119
  }) => {
26090
- const {
26091
- i18n
26092
- } = useI18nContext();
26093
- const closeModal = useCallback(() => {
26094
- if (isDismissible) {
26095
- onClose();
26096
- }
26097
- }, [isDismissible, onClose]);
26098
- useEffect(() => {
26099
- const handleEscapeKey = ({
26100
- code
26101
- }) => {
26102
- if (isDismissible && code === "Escape") {
26103
- closeModal();
26104
- }
26105
- };
26106
- document.documentElement.classList.add("u-overflow-hidden");
26107
- document.addEventListener("keydown", handleEscapeKey);
26108
- return () => {
26109
- document.documentElement.classList.remove("u-overflow-hidden");
26110
- document.removeEventListener("keydown", handleEscapeKey);
26111
- };
26112
- }, [closeModal, isDismissible]);
26113
- return jsx("div", {
26114
- className: cx("adyen-kyc-overlay", "adyen-kyc-overlay--visible"),
26115
- role: "none",
26120
+ const modalRef = useRef(null);
26121
+ useLayoutEffect(() => {
26122
+ const modalElement = modalRef.current;
26123
+ if (!modalElement) return;
26124
+ modalElement.showModal();
26125
+ modalElement.focus();
26126
+ modalElement.blur();
26127
+ return () => modalElement.close();
26128
+ }, []);
26129
+ return jsx("dialog", {
26130
+ ref: modalRef,
26131
+ className: cx("adyen-kyc-modal", {
26132
+ "adyen-kyc-modal--small": size === "small",
26133
+ "adyen-kyc-modal--large": size === "large",
26134
+ "adyen-kyc-modal--fullscreen": size === "fullscreen",
26135
+ "adyen-kyc-modal--with-backButton": onBack
26136
+ }),
26137
+ onClose,
26116
26138
  children: jsxs("div", {
26117
- className: cx(classNames == null ? void 0 : classNames.modal, "adyen-kyc-modal", {
26118
- "adyen-kyc-modal--small": size === "small",
26119
- "adyen-kyc-modal--large": size === "large"
26120
- }),
26121
- "aria-labelledby": title,
26122
- "aria-modal": "true",
26123
- role,
26124
- children: [isDismissible && jsx(Button, {
26125
- title: i18n.get("close"),
26126
- "aria-label": i18n.get("close"),
26127
- type: "button",
26128
- icon: "cross",
26129
- tertiary: true,
26130
- className: "adyen-kyc-modal__close",
26131
- onClick: () => onClose()
26132
- }), header && jsx("div", {
26133
- className: cx(classNames == null ? void 0 : classNames.header, "adyen-kyc-modal__header"),
26139
+ className: "adyen-kyc-modal__wrapper",
26140
+ children: [header && jsx("header", {
26141
+ className: "adyen-kyc-modal__header",
26134
26142
  children: header
26135
- }), content && jsx("div", {
26136
- className: cx(classNames == null ? void 0 : classNames.content, "adyen-kyc-modal__content"),
26137
- children: content
26138
- }), footer && jsx("div", {
26139
- className: cx(classNames == null ? void 0 : classNames.footer, "adyen-kyc-modal__footer"),
26140
- children: footer
26143
+ }), jsx("section", {
26144
+ className: "adyen-kyc-modal__content",
26145
+ children
26146
+ }), jsx("div", {
26147
+ children: footer && jsx("footer", {
26148
+ className: "adyen-kyc-modal__footer",
26149
+ children: footer
26150
+ })
26151
+ }), jsxs("section", {
26152
+ className: "adyen-kyc-modal-top-bar",
26153
+ children: [onBack ? jsx(Button, {
26154
+ tertiary: true,
26155
+ "aria-label": "back",
26156
+ icon: "arrow-left",
26157
+ onClick: onBack,
26158
+ shaded: true
26159
+ }) : jsx("div", {}), jsx(Button, {
26160
+ tertiary: true,
26161
+ "aria-label": "close",
26162
+ icon: "cross",
26163
+ onClick: onClose,
26164
+ shaded: true
26165
+ })]
26141
26166
  })]
26142
26167
  })
26143
26168
  });
@@ -26208,24 +26233,29 @@ const ExpiryModal = ({
26208
26233
  leftoverSeconds
26209
26234
  } = getDurationInMinutesAndSeconds(secondsUntilExpiry);
26210
26235
  const hasExpired = secondsUntilExpiry <= 0;
26211
- return jsx(Modal$1, {
26236
+ return jsx(Modal, {
26212
26237
  size: "small",
26213
- header: i18n.get("sessionTimeout"),
26214
- content: hasExpired ? i18n.get("toProtectYourInformationThisSessionHasExpired") : i18n.get({
26215
- key: "thisSessionWillExpireIn",
26216
- values: {
26217
- timeUntilExpiry: formatMinutesAndSeconds(minutes, leftoverSeconds, i18n)
26218
- }
26238
+ onClose: onContinue,
26239
+ header: jsx(Typography, {
26240
+ variant: "title",
26241
+ children: i18n.get("sessionTimeout")
26219
26242
  }),
26220
- footer: jsx(Button, {
26221
- label: hasExpired ? i18n.get("close") : i18n.get("continue"),
26222
- onClick: () => onContinue()
26243
+ footer: jsx("div", {
26244
+ className: "adyen-kyc-expiry-modal__footer",
26245
+ children: jsx(Button, {
26246
+ label: hasExpired ? i18n.get("close") : i18n.get("continue"),
26247
+ onClick: () => onContinue()
26248
+ })
26223
26249
  }),
26224
- classNames: {
26225
- header: "adyen-kyc-expiry-modal__header",
26226
- footer: "adyen-kyc-expiry-modal__footer"
26227
- },
26228
- onClose: onContinue
26250
+ children: jsx(Typography, {
26251
+ variant: "body",
26252
+ children: hasExpired ? i18n.get("toProtectYourInformationThisSessionHasExpired") : i18n.get({
26253
+ key: "thisSessionWillExpireIn",
26254
+ values: {
26255
+ timeUntilExpiry: formatMinutesAndSeconds(minutes, leftoverSeconds, i18n)
26256
+ }
26257
+ })
26258
+ })
26229
26259
  });
26230
26260
  };
26231
26261
  const ALMOST_EXPIRED_THRESHOLD = 2 * 60 * 1e3;
@@ -26281,7 +26311,7 @@ const useExpiryThreshold = (expiry) => {
26281
26311
  };
26282
26312
  };
26283
26313
  const ExpiryContext = createContext(false);
26284
- const logger$p = createLogger("ExpiryProvider");
26314
+ const logger$q = createLogger("ExpiryProvider");
26285
26315
  const ExpiryProvider = ({
26286
26316
  expiry: initialExpiry,
26287
26317
  eventEmitter,
@@ -26315,7 +26345,7 @@ const ExpiryProvider = ({
26315
26345
  refreshExpiry().then((newExpiry) => {
26316
26346
  setExpiry(newExpiry);
26317
26347
  setModalDismissed(false);
26318
- }).catch(logger$p.error);
26348
+ }).catch(logger$q.error);
26319
26349
  }
26320
26350
  }), children]
26321
26351
  });
@@ -26335,7 +26365,7 @@ const ExpiryProvider = ({
26335
26365
  });
26336
26366
  };
26337
26367
  const useHasExpired = () => useContext(ExpiryContext);
26338
- const logger$o = createLogger("FormRouterContextProvider");
26368
+ const logger$p = createLogger("FormRouterContextProvider");
26339
26369
  function FormRouterContextProvider({
26340
26370
  children,
26341
26371
  forms: forms2,
@@ -26355,7 +26385,7 @@ function FormRouterContextProvider({
26355
26385
  if (formIndex > -1) {
26356
26386
  setFormIndex(formIndex);
26357
26387
  } else {
26358
- logger$o.error("No form was found to have that field so form navigation failed.");
26388
+ logger$p.error("No form was found to have that field so form navigation failed.");
26359
26389
  }
26360
26390
  }
26361
26391
  }), [forms2, handleGetIdVerificationToken, setFormIndex]);
@@ -26371,7 +26401,7 @@ const StepProgressIndicator = ({
26371
26401
  fillBefore,
26372
26402
  thick
26373
26403
  }) => stepsCount > 0 ? jsx("div", {
26374
- "aria-label": `Step ${activeStepIndex + 1} of ${stepsCount}`,
26404
+ "aria-label": `Step ${activeStepIndex} of ${stepsCount}`,
26375
26405
  className: "adyen-kyc-progress",
26376
26406
  role: "group",
26377
26407
  children: jsx("ol", {
@@ -26387,70 +26417,12 @@ const StepProgressIndicator = ({
26387
26417
  }),
26388
26418
  children: jsx("span", {
26389
26419
  className: "adyen-kyc-progress__step-label",
26390
- children: `Step ${stepNumber + 1}: ${stepNumber < activeStepIndex ? "completed" : "not completed"}`
26420
+ children: `Step ${stepNumber}: ${stepNumber < activeStepIndex ? "completed" : "not completed"}`
26391
26421
  })
26392
26422
  }, stepNumber);
26393
26423
  })
26394
26424
  })
26395
26425
  }) : null;
26396
- const Modal = ({
26397
- title,
26398
- children,
26399
- footer,
26400
- fullscreen = false,
26401
- onBack,
26402
- onClose
26403
- }) => {
26404
- const modalRef = useRef(null);
26405
- useLayoutEffect(() => {
26406
- const modalElement = modalRef.current;
26407
- if (!modalElement) return;
26408
- modalElement.showModal();
26409
- modalElement.focus();
26410
- modalElement.blur();
26411
- return () => modalElement.close();
26412
- }, []);
26413
- return jsx("dialog", {
26414
- ref: modalRef,
26415
- className: cx("adyen-kyc-modal2", {
26416
- "adyen-kyc-modal2__fullscreen": fullscreen
26417
- }),
26418
- onClose,
26419
- children: jsxs("div", {
26420
- className: "adyen-kyc-modal2-wrapper",
26421
- children: [title && jsx("header", {
26422
- children: jsx(Typography, {
26423
- el: "h2",
26424
- variant: "title-l",
26425
- children: title
26426
- })
26427
- }), jsx("section", {
26428
- className: "adyen-kyc-modal2-content",
26429
- children
26430
- }), jsx("div", {
26431
- children: footer && jsx("footer", {
26432
- className: "adyen-kyc-modal2-footer",
26433
- children: footer
26434
- })
26435
- }), jsxs("section", {
26436
- className: "adyen-kyc-modal2-top-bar",
26437
- children: [onBack ? jsx(Button, {
26438
- tertiary: true,
26439
- "aria-label": "back",
26440
- icon: "arrow-left",
26441
- onClick: onBack,
26442
- shaded: true
26443
- }) : jsx("div", {}), jsx(Button, {
26444
- tertiary: true,
26445
- "aria-label": "close",
26446
- icon: "cross",
26447
- onClick: onClose,
26448
- shaded: true
26449
- })]
26450
- })]
26451
- })
26452
- });
26453
- };
26454
26426
  const DropinLayout = ({
26455
26427
  content,
26456
26428
  footer,
@@ -26630,7 +26602,8 @@ const FormWrapper = ({
26630
26602
  canSubmit: canSubmit2,
26631
26603
  onSubmit,
26632
26604
  problems,
26633
- currentStep
26605
+ currentStep,
26606
+ totalSteps
26634
26607
  }) => {
26635
26608
  var _a;
26636
26609
  const {
@@ -26698,7 +26671,7 @@ const FormWrapper = ({
26698
26671
  const embeddedFooter = jsx(EmbeddedActionBar, {
26699
26672
  left: jsx(StepProgressIndicator, {
26700
26673
  activeStepIndex: currentStep ?? 0,
26701
- stepsCount: 3,
26674
+ stepsCount: totalSteps ?? 3,
26702
26675
  fillBefore: true,
26703
26676
  thick: true
26704
26677
  }),
@@ -26865,7 +26838,7 @@ const mapBusinessDetailsSchemaToLegalEntity = (data) => {
26865
26838
  requestObj.type = LegalEntityType.ORGANIZATION;
26866
26839
  return requestObj;
26867
26840
  };
26868
- const MANDATORY_API_FIELDS = ["basicInformation.legalCompanyName", "basicInformation.country"];
26841
+ const MANDATORY_API_FIELDS = ["additionalInformation.legalCompanyName", "basicInformation.country"];
26869
26842
  const parseConfiguration$7 = ({
26870
26843
  country,
26871
26844
  matchingScenario
@@ -27193,6 +27166,7 @@ function BusinessDetailsDropinComponent({
27193
27166
  return ((_a2 = currentState.data.basicInformation) == null ? void 0 : _a2.country) ?? country;
27194
27167
  }, [(_a = currentState.data.basicInformation) == null ? void 0 : _a.country, country]);
27195
27168
  const [initialData, setInitialData] = useState(mapLegalEntityToBusinessDetailsSchema(legalEntityResponse, Boolean(isTargetLegalEntityType), isNewEntryFlowEnabled ? accountHolder : void 0));
27169
+ const [trustedFields2, setTrustedFields] = useState(legalEntityResponse.trustedFields);
27196
27170
  const documentUtils = documentApiUtils(handleCreateDocument, handleGetDocument, handleUpdateDocument);
27197
27171
  useEffect(() => {
27198
27172
  var _a2;
@@ -27237,7 +27211,7 @@ function BusinessDetailsDropinComponent({
27237
27211
  isExperimentEnabled
27238
27212
  }), [currentCountry, currentState.data, isExperimentEnabled, taskType]);
27239
27213
  const initialForms = useMemo(() => getForms(currentCountry), [currentCountry]);
27240
- const derivedProps = useMemo(() => getPropsFromConfigurations(fieldConfigurations, initialForms, (currentProblems == null ? void 0 : currentProblems.remediationActions) ? Object.values(currentProblems == null ? void 0 : currentProblems.remediationActions) : [], (currentProblems == null ? void 0 : currentProblems.missingData) ?? [], legalEntityResponse ? getFieldsWithExistingData(legalEntityResponse, isExperimentEnabled) : [], customRules, {}, {}, legalEntityResponse.trustedFields), [customRules, fieldConfigurations, initialForms, isExperimentEnabled, legalEntityResponse, currentProblems == null ? void 0 : currentProblems.missingData, currentProblems == null ? void 0 : currentProblems.remediationActions]);
27214
+ const derivedProps = useMemo(() => getPropsFromConfigurations(fieldConfigurations, initialForms, (currentProblems == null ? void 0 : currentProblems.remediationActions) ? Object.values(currentProblems == null ? void 0 : currentProblems.remediationActions) : [], (currentProblems == null ? void 0 : currentProblems.missingData) ?? [], legalEntityResponse ? getFieldsWithExistingData(legalEntityResponse, isExperimentEnabled) : [], customRules, {}, {}, trustedFields2), [fieldConfigurations, initialForms, currentProblems == null ? void 0 : currentProblems.remediationActions, currentProblems == null ? void 0 : currentProblems.missingData, legalEntityResponse, isExperimentEnabled, customRules, trustedFields2]);
27241
27215
  const isSkippingCompanyStructure = useEnableNewEntryFlow() && organizationTypesToSkipCompanyStructureForm.includes((_d = legalEntityResponse == null ? void 0 : legalEntityResponse.organization) == null ? void 0 : _d.type) && accountHolder !== "aTrust";
27242
27216
  const isSkippingCompanyRegistrationDocument = currentCountry === "CA" && ((_e = currentState.data.additionalInformation) == null ? void 0 : _e.registrationNumber) && ((_f = currentState.valid.additionalInformation) == null ? void 0 : _f.registrationNumber) && !((_g = currentState.data.companyRegistrationDocument) == null ? void 0 : _g.registrationDocument);
27243
27217
  const forms2 = useMemo(() => {
@@ -27289,6 +27263,7 @@ function BusinessDetailsDropinComponent({
27289
27263
  verifyBusinessData,
27290
27264
  clearTrustedBusinessData,
27291
27265
  resetBusinessData,
27266
+ resetTinVerification,
27292
27267
  isSearching,
27293
27268
  isFetching,
27294
27269
  isVerifying,
@@ -27434,6 +27409,12 @@ function BusinessDetailsDropinComponent({
27434
27409
  const proceedToManualDataEntry = useCallback(async () => {
27435
27410
  await clearTrustedBusinessData().then(() => setShowCompanyStructure(true));
27436
27411
  }, [clearTrustedBusinessData]);
27412
+ useEffect(() => {
27413
+ var _a2;
27414
+ if ((trustedFields2 == null ? void 0 : trustedFields2.length) && ((_a2 = legalEntityResponse.organization) == null ? void 0 : _a2.registeredAddress.country) !== currentCountry) {
27415
+ setTrustedFields(void 0);
27416
+ }
27417
+ }, [currentCountry]);
27437
27418
  return jsx(FormWrapper, {
27438
27419
  taskName: taskName ?? "businessDetails",
27439
27420
  gotoFormByFormIndex: goToForm,
@@ -27473,6 +27454,7 @@ function BusinessDetailsDropinComponent({
27473
27454
  setShowCompanyStructure,
27474
27455
  searchResults,
27475
27456
  invalidTin,
27457
+ resetTinVerification,
27476
27458
  verifiedBusiness,
27477
27459
  isSearching,
27478
27460
  isFetching,
@@ -27488,42 +27470,6 @@ function BusinessDetailsDropinComponent({
27488
27470
  })
27489
27471
  });
27490
27472
  }
27491
- const getTrustedFieldsByProvider = (provider, trustedFields2) => trustedFields2.find((tf) => tf.provider === provider);
27492
- const parseTrustedFieldsIntoReadOnlyFields = (trustedFields2, mapping) => {
27493
- const formFieldsMapped = [];
27494
- trustedFields2.fields.forEach((field) => {
27495
- for (const [key, value] of Object.entries(mapping)) {
27496
- if (value === field) {
27497
- formFieldsMapped.push(key);
27498
- }
27499
- }
27500
- });
27501
- const readOnlyFields = {};
27502
- formFieldsMapped.forEach((field) => {
27503
- const tokenizedField = field.split(".");
27504
- const formField = tokenizedField.pop();
27505
- const formId = tokenizedField.pop();
27506
- if (formField && formId) {
27507
- if (formId in readOnlyFields) {
27508
- readOnlyFields[formId].push(formField);
27509
- } else {
27510
- readOnlyFields[formId] = [formField];
27511
- }
27512
- }
27513
- });
27514
- return readOnlyFields;
27515
- };
27516
- const trustedFields = ({
27517
- fields,
27518
- trustedFieldsProvider,
27519
- apiMapping
27520
- }) => {
27521
- if (!fields || !trustedFieldsProvider || !apiMapping) {
27522
- return {};
27523
- }
27524
- const trustedFieldsOfProvider = getTrustedFieldsByProvider(trustedFieldsProvider, fields);
27525
- return trustedFieldsOfProvider ? parseTrustedFieldsIntoReadOnlyFields(trustedFieldsOfProvider, apiMapping) : {};
27526
- };
27527
27473
  const parseConfiguration$6 = ({
27528
27474
  country,
27529
27475
  matchingScenario
@@ -27574,7 +27520,7 @@ function CompanyDropinComponent({
27574
27520
  handleHomeClick,
27575
27521
  onTypeSwitch,
27576
27522
  onChange,
27577
- trustedFieldsProvider
27523
+ trustedFields: trustedFields2
27578
27524
  }) {
27579
27525
  var _a, _b, _c, _d, _e;
27580
27526
  const {
@@ -27638,12 +27584,6 @@ function CompanyDropinComponent({
27638
27584
  isSettingEnabled,
27639
27585
  isExperimentEnabled
27640
27586
  }), [country, data, taskType, requiredFields, isSettingEnabled]);
27641
- const legalEntityTrustedFields = legalEntityResponse == null ? void 0 : legalEntityResponse.trustedFields;
27642
- const trustedFieldsOfProvider = useMemo(() => trustedFields({
27643
- fields: legalEntityTrustedFields,
27644
- trustedFieldsProvider,
27645
- apiMapping: companyComponentsKeyMapping
27646
- }), [legalEntityTrustedFields, trustedFieldsProvider]);
27647
27587
  const derivedProps = useMemo(() => ({
27648
27588
  ...getPropsFromConfigurations(fieldConfigurations, companyForms, (problems == null ? void 0 : problems.remediationActions) ? Object.values(problems == null ? void 0 : problems.remediationActions) : [], (problems == null ? void 0 : problems.missingData) ?? [], legalEntityResponse ? getFieldsWithExistingData(legalEntityResponse) : [], fieldsFromCustomRules)
27649
27589
  }), [fieldConfigurations, fieldsFromCustomRules, problems == null ? void 0 : problems.remediationActions]);
@@ -27721,7 +27661,7 @@ function CompanyDropinComponent({
27721
27661
  legalEntityName: dataSubmitted.companyNameAndCountry.legalCompanyName,
27722
27662
  usedAdditionalAddress: dataSubmitted.companyRegistrationAddress.operationalAddressIsSame === operationalAddressIsSameIds.OPERATIONAL_ADDRESS_IS_NOT_SAME
27723
27663
  };
27724
- const newAccountHolder = dataSubmitted.companyType.accountHolder ?? accountHolder;
27664
+ const newAccountHolder = dataSubmitted.companyType.accountHolder || accountHolder;
27725
27665
  legalEntity.entityAssociations = filterOutUnwantedAssociationsIfRootLE(taskType, legalEntityResponse, newAccountHolder);
27726
27666
  if (!isCountryOfGoverningLawEnabled && ((_a2 = legalEntity.organization) == null ? void 0 : _a2.countryOfGoverningLaw)) {
27727
27667
  delete legalEntity.organization.countryOfGoverningLaw;
@@ -27921,7 +27861,7 @@ function CompanyDropinComponent({
27921
27861
  ref: formRef,
27922
27862
  shouldValidate,
27923
27863
  isTopLevelEntity: taskType === TaskTypes.COMPANY,
27924
- readOnlyFields: trustedFieldsOfProvider
27864
+ readOnlyFields: trustedFields2
27925
27865
  })
27926
27866
  });
27927
27867
  }
@@ -28327,6 +28267,12 @@ function CompanyBasics({
28327
28267
  const {
28328
28268
  isSettingEnabled
28329
28269
  } = useSettingsContext();
28270
+ const {
28271
+ isExperimentEnabled
28272
+ } = useExperimentsContext();
28273
+ const isStrictNameAndAddressValidationEnabled = isExperimentEnabled(ExperimentNames.StrictNameAndAddressValidationV4);
28274
+ const LegalCompanyNameDefaultFieldConfig = isStrictNameAndAddressValidationEnabled ? defaultFieldConfigV4 : defaultFieldConfig$a;
28275
+ const LegalCompanyNameDefaultFieldMetadata = isStrictNameAndAddressValidationEnabled ? defaultFieldMetadataV4 : defaultFieldMetadata$a;
28330
28276
  const {
28331
28277
  updateStateSlice
28332
28278
  } = useGlobalDataSlice(COMPANY_BASICS_FORM_ID);
@@ -28352,9 +28298,9 @@ function CompanyBasics({
28352
28298
  return (_a2 = initialFormUtilsProps.allFields) == null ? void 0 : _a2.reduce((acc, field) => {
28353
28299
  switch (field) {
28354
28300
  case "legalCompanyName":
28355
- return mergeFieldMetadataIntoProps(field, resolveFieldMetadata(defaultFieldConfig$a[country], {
28301
+ return mergeFieldMetadataIntoProps(field, resolveFieldMetadata(LegalCompanyNameDefaultFieldConfig[country], {
28356
28302
  isBusiness: false
28357
- }, defaultFieldMetadata$a), acc);
28303
+ }, LegalCompanyNameDefaultFieldMetadata), acc);
28358
28304
  case "country":
28359
28305
  return {
28360
28306
  ...acc,
@@ -28916,7 +28862,7 @@ const formatDataForSummary = (data, forms2, labels2, i18n) => {
28916
28862
  }
28917
28863
  }, {});
28918
28864
  };
28919
- const logger$n = createLogger("useFormTaskSubmit");
28865
+ const logger$o = createLogger("useFormTaskSubmit");
28920
28866
  function useCompanySearchTaskSubmit({
28921
28867
  task,
28922
28868
  forms: forms2,
@@ -28959,7 +28905,7 @@ function useCompanySearchTaskSubmit({
28959
28905
  });
28960
28906
  }
28961
28907
  } catch (e) {
28962
- logger$n.error(e);
28908
+ logger$o.error(e);
28963
28909
  userEvents.addEvent(CompanySearchEvents.DOCUMENTS_ERROR, {
28964
28910
  segmentation: {
28965
28911
  ...baseTrackingPayload,
@@ -29011,7 +28957,7 @@ function useCompanySearchTaskSubmit({
29011
28957
  ...trackingPayload
29012
28958
  }
29013
28959
  });
29014
- logger$n.log(submittedLegalEntity);
28960
+ logger$o.log(submittedLegalEntity);
29015
28961
  clearToasts();
29016
28962
  onExternalSubmit == null ? void 0 : onExternalSubmit(data);
29017
28963
  } catch (e) {
@@ -29035,7 +28981,7 @@ function useCompanySearchTaskSubmit({
29035
28981
  type: "error"
29036
28982
  });
29037
28983
  }
29038
- logger$n.error(e);
28984
+ logger$o.error(e);
29039
28985
  userEvents.addEvent(CompanySearchEvents.TASK_ERROR, {
29040
28986
  segmentation: {
29041
28987
  ...baseTrackingPayload,
@@ -29207,7 +29153,8 @@ function CompanySearchDropinComponent({
29207
29153
  handleGetCompanyDataset,
29208
29154
  handleRefreshCompanyDataset,
29209
29155
  handleVerifyTin,
29210
- onTypeSwitch
29156
+ onTypeSwitch,
29157
+ trustedFields: trustedFields2
29211
29158
  }) {
29212
29159
  var _a, _b, _c, _d, _e, _f, _g;
29213
29160
  const {
@@ -29390,13 +29337,14 @@ function CompanySearchDropinComponent({
29390
29337
  handleCompanyDeepSearch,
29391
29338
  handleGetCompanyDataset,
29392
29339
  handleRefreshCompanyDataset,
29393
- handleVerifyTin
29340
+ handleVerifyTin,
29341
+ readOnlyFields: trustedFields2
29394
29342
  })
29395
29343
  });
29396
29344
  }
29397
29345
  const IgnoreLocalStorageContext = createContext(false);
29398
29346
  const useIgnoreLocalStorage = () => useContext(IgnoreLocalStorageContext);
29399
- const logger$m = createLogger("useLocalStorage");
29347
+ const logger$n = createLogger("useLocalStorage");
29400
29348
  const useLocalStorage = (key, defaultValue, options) => {
29401
29349
  const {
29402
29350
  serializer,
@@ -29417,7 +29365,7 @@ const useLocalStorage = (key, defaultValue, options) => {
29417
29365
  const res = rawValueRef.current ? parser(rawValueRef.current) : defaultValue;
29418
29366
  return res;
29419
29367
  } catch (err) {
29420
- logger$m.error(err);
29368
+ logger$n.error(err);
29421
29369
  return defaultValue;
29422
29370
  }
29423
29371
  });
@@ -29448,7 +29396,7 @@ const useLocalStorage = (key, defaultValue, options) => {
29448
29396
  try {
29449
29397
  updateLocalStorage();
29450
29398
  } catch (err) {
29451
- logger$m.error(err);
29399
+ logger$n.error(err);
29452
29400
  }
29453
29401
  }, [value, ignoreLocalStorage]);
29454
29402
  useEffect(() => {
@@ -29461,7 +29409,7 @@ const useLocalStorage = (key, defaultValue, options) => {
29461
29409
  setValue(event.newValue ? parser(event.newValue) : void 0);
29462
29410
  }
29463
29411
  } catch (err) {
29464
- logger$m.error(err);
29412
+ logger$n.error(err);
29465
29413
  }
29466
29414
  };
29467
29415
  if (ignoreLocalStorage) return;
@@ -29490,6 +29438,42 @@ const useHasSeenSingpassSelection = ({
29490
29438
  setHasSeenSingpassSelection
29491
29439
  };
29492
29440
  };
29441
+ const getTrustedFieldsByProvider = (provider, trustedFields2) => trustedFields2.find((tf) => tf.provider === provider);
29442
+ const parseTrustedFieldsIntoReadOnlyFields = (trustedFields2, mapping) => {
29443
+ const formFieldsMapped = [];
29444
+ trustedFields2.fields.forEach((field) => {
29445
+ for (const [key, value] of Object.entries(mapping)) {
29446
+ if (value === field) {
29447
+ formFieldsMapped.push(key);
29448
+ }
29449
+ }
29450
+ });
29451
+ const readOnlyFields = {};
29452
+ formFieldsMapped.forEach((field) => {
29453
+ const tokenizedField = field.split(".");
29454
+ const formField = tokenizedField.pop();
29455
+ const formId = tokenizedField.pop();
29456
+ if (formField && formId) {
29457
+ if (formId in readOnlyFields) {
29458
+ readOnlyFields[formId].push(formField);
29459
+ } else {
29460
+ readOnlyFields[formId] = [formField];
29461
+ }
29462
+ }
29463
+ });
29464
+ return readOnlyFields;
29465
+ };
29466
+ const trustedFields = ({
29467
+ fields,
29468
+ trustedFieldsProvider,
29469
+ apiMapping
29470
+ }) => {
29471
+ if (!fields || !trustedFieldsProvider || !apiMapping) {
29472
+ return {};
29473
+ }
29474
+ const trustedFieldsOfProvider = getTrustedFieldsByProvider(trustedFieldsProvider, fields);
29475
+ return trustedFieldsOfProvider ? parseTrustedFieldsIntoReadOnlyFields(trustedFieldsOfProvider, apiMapping) : {};
29476
+ };
29493
29477
  const defaultSingpassState = {
29494
29478
  isLoading: false,
29495
29479
  isSuccess: false
@@ -29518,11 +29502,25 @@ const singpassReducer = (state, action) => {
29518
29502
  return state;
29519
29503
  }
29520
29504
  };
29505
+ const getApiMapping = (enableCompanySearchFlow, legalEntity) => {
29506
+ if (!legalEntity) return;
29507
+ const {
29508
+ type
29509
+ } = legalEntity;
29510
+ if (type === LegalEntityType.INDIVIDUAL) {
29511
+ return individualComponentsKeyMapping;
29512
+ }
29513
+ if (type === LegalEntityType.ORGANIZATION) {
29514
+ if (enableCompanySearchFlow) {
29515
+ return companySearchComponentsKeyMapping;
29516
+ }
29517
+ return companyComponentsKeyMapping;
29518
+ }
29519
+ };
29521
29520
  const useSingpassMyInfoLogin = ({
29522
29521
  legalEntity,
29523
29522
  accountHolder,
29524
- handleOpenSingpassAuthorizationLink,
29525
- apiMapping
29523
+ handleOpenSingpassAuthorizationLink
29526
29524
  }) => {
29527
29525
  const [state, dispatch] = useReducer(singpassReducer, defaultSingpassState);
29528
29526
  const {
@@ -29530,6 +29528,8 @@ const useSingpassMyInfoLogin = ({
29530
29528
  } = useExperimentsContext();
29531
29529
  const isSingpassForCompaniesEnabled = isExperimentEnabled("ShowSingPassButtonForCompanies");
29532
29530
  const isSingpassForIndividualsEnabled = isExperimentEnabled("ShowSingPassButtonForIndividuals");
29531
+ const enableCompanySearchFlow = isExperimentEnabled("EnableCompanySearchFlow");
29532
+ const apiMapping = getApiMapping(enableCompanySearchFlow, legalEntity);
29533
29533
  const isEligibleForSingpass = useMemo(() => {
29534
29534
  if (!legalEntity) {
29535
29535
  return false;
@@ -29608,7 +29608,7 @@ const useSingpassMyInfoLogin = ({
29608
29608
  trustedFields: trustedFields$1
29609
29609
  };
29610
29610
  };
29611
- const logger$l = createLogger("useAssociatedLegalArrangement");
29611
+ const logger$m = createLogger("useAssociatedLegalArrangement");
29612
29612
  function useAssociatedLegalArrangement({
29613
29613
  rootLegalEntity,
29614
29614
  getLegalEntity: getLegalEntity2
@@ -29619,7 +29619,7 @@ function useAssociatedLegalArrangement({
29619
29619
  var _a;
29620
29620
  const foundEntity = (_a = rootLegalEntity == null ? void 0 : rootLegalEntity.entityAssociations) == null ? void 0 : _a.find((entity) => entity.type === LegalEntityType.SOLE_PROPRIETORSHIP || entity.type === LegalEntityType.TRUST);
29621
29621
  if (foundEntity == null ? void 0 : foundEntity.legalEntityId) {
29622
- getAssociatedEntity(foundEntity == null ? void 0 : foundEntity.legalEntityId).then((res) => setAssociatedLegalArrangement(res)).catch(logger$l.error);
29622
+ getAssociatedEntity(foundEntity == null ? void 0 : foundEntity.legalEntityId).then((res) => setAssociatedLegalArrangement(res)).catch(logger$m.error);
29623
29623
  }
29624
29624
  }, [getAssociatedEntity, rootLegalEntity == null ? void 0 : rootLegalEntity.entityAssociations]);
29625
29625
  useEffect(() => {
@@ -29676,7 +29676,7 @@ const useCanSeeEntitySelection = (legalEntityId) => {
29676
29676
  setCanSeeEntitySelection: setCanSeeEntitySelectionIntoLocalStorage
29677
29677
  };
29678
29678
  };
29679
- const logger$k = createLogger("useExemptSettlor");
29679
+ const logger$l = createLogger("useExemptSettlor");
29680
29680
  const useExemptSettlor = ({
29681
29681
  trust,
29682
29682
  handleGetLegalEntity
@@ -29689,7 +29689,7 @@ const useExemptSettlor = ({
29689
29689
  }, [handleGetLegalEntity]);
29690
29690
  useEffect(() => {
29691
29691
  if (!(trust == null ? void 0 : trust.trust)) return;
29692
- updateExemptSettlor(trust).catch(logger$k.error);
29692
+ updateExemptSettlor(trust).catch(logger$l.error);
29693
29693
  }, [trust, updateExemptSettlor]);
29694
29694
  return exemptSettlor;
29695
29695
  };
@@ -31302,7 +31302,7 @@ const Introduction = ({
31302
31302
  return (introductionScreens == null ? void 0 : introductionScreens.length) ? jsxs("div", {
31303
31303
  className: "adyen-kyc-introduction",
31304
31304
  children: [jsx(StepProgressIndicator, {
31305
- activeStepIndex: activeIndex,
31305
+ activeStepIndex: activeIndex + 1,
31306
31306
  stepsCount: introductionScreens.length
31307
31307
  }), jsx("div", {
31308
31308
  className: "adyen-kyc-introduction__skip",
@@ -32699,8 +32699,7 @@ function IndividualDropinComponent({
32699
32699
  } = useSingpassMyInfoLogin({
32700
32700
  legalEntity: legalEntityResponse,
32701
32701
  accountHolder,
32702
- handleOpenSingpassAuthorizationLink,
32703
- apiMapping: individualComponentsKeyMapping
32702
+ handleOpenSingpassAuthorizationLink
32704
32703
  });
32705
32704
  const baseTrackingPayload = getBaseTrackingPayload({
32706
32705
  trackingConfig,
@@ -32944,7 +32943,7 @@ function IndividualDropinComponent({
32944
32943
  idDocumentType: idDocumentType || null
32945
32944
  }
32946
32945
  });
32947
- const accountHolderToEvaluated = ((_c2 = dataSubmitted.personalDetails) == null ? void 0 : _c2.accountHolder) ?? accountHolder;
32946
+ const accountHolderToEvaluated = ((_c2 = dataSubmitted.personalDetails) == null ? void 0 : _c2.accountHolder) || accountHolder;
32948
32947
  legalEntity.entityAssociations = filterOutUnwantedAssociationsIfRootLE(taskType, legalEntityResponse, accountHolderToEvaluated ?? void 0);
32949
32948
  const createdLegalEntity = await submitLegalEntity({
32950
32949
  dataSubmitted,
@@ -33091,7 +33090,8 @@ function IndividualDropinComponent({
33091
33090
  setShouldValidate,
33092
33091
  gotoFormByFormIndex,
33093
33092
  nextButtonLabel,
33094
- currentStep
33093
+ currentStep,
33094
+ totalSteps
33095
33095
  } = useFormComposer({
33096
33096
  problems,
33097
33097
  baseTrackingPayload,
@@ -33128,6 +33128,7 @@ function IndividualDropinComponent({
33128
33128
  hideNavigation,
33129
33129
  asModal,
33130
33130
  currentStep,
33131
+ totalSteps,
33131
33132
  children: jsx(IndividualComponent, {
33132
33133
  ...derivedProps,
33133
33134
  capabilities: getCapabilities(legalEntityResponse),
@@ -33159,7 +33160,7 @@ function IndividualDropinComponent({
33159
33160
  })
33160
33161
  });
33161
33162
  }
33162
- const logger$j = createLogger("useBankConfigurationHandler");
33163
+ const logger$k = createLogger("useBankConfigurationHandler");
33163
33164
  const useBankConfigurationHandlers = ({
33164
33165
  isEmbeddedDropin,
33165
33166
  handleGetBankVerificationVendors,
@@ -33182,7 +33183,7 @@ const useBankConfigurationHandlers = ({
33182
33183
  const bankVerificationVendorsResponse2 = callBankVerificationVendorsUpfront ? await handleGetBankVerificationVendors(bankAccountCountry) : [];
33183
33184
  setBankVerificationVendorsResponse(bankVerificationVendorsResponse2);
33184
33185
  setUseFreshProviderRedirectUrl(false);
33185
- })().catch(logger$j.error).finally(() => {
33186
+ })().catch(logger$k.error).finally(() => {
33186
33187
  setLoadingStatus("success");
33187
33188
  });
33188
33189
  }, [bankAccountCountry, useFreshProviderRedirectUrl]);
@@ -34585,7 +34586,7 @@ const serviceAgreementValidationRules = {
34585
34586
  errorMessage: "fieldIsRequired"
34586
34587
  }
34587
34588
  };
34588
- const logger$i = createLogger("useServiceAgreement");
34589
+ const logger$j = createLogger("useServiceAgreement");
34589
34590
  const FALLBACK_LANGUAGE_CODE$1 = "en";
34590
34591
  const useServiceAgreement = ({
34591
34592
  handleGetServiceAgreement,
@@ -34618,7 +34619,7 @@ const useServiceAgreement = ({
34618
34619
  contract
34619
34620
  });
34620
34621
  };
34621
- requestAcceptedServiceAgreement().catch(logger$i.error).finally(() => setLoading("success"));
34622
+ requestAcceptedServiceAgreement().catch(logger$j.error).finally(() => setLoading("success"));
34622
34623
  }, [acceptanceId, handleViewAcceptedTermsOfServiceDocument]);
34623
34624
  useEffect(() => {
34624
34625
  const requestServiceAgreement = async () => {
@@ -34633,7 +34634,7 @@ const useServiceAgreement = ({
34633
34634
  language: agreementLanguage
34634
34635
  });
34635
34636
  if (!document2) {
34636
- logger$i.log('"document" field was missing in response');
34637
+ logger$j.log('"document" field was missing in response');
34637
34638
  return;
34638
34639
  }
34639
34640
  const contract = JSON.parse(decodeURIComponent(escape(window.atob(document2))));
@@ -34651,7 +34652,7 @@ const useServiceAgreement = ({
34651
34652
  throw err;
34652
34653
  }
34653
34654
  };
34654
- requestServiceAgreement().catch(logger$i.error);
34655
+ requestServiceAgreement().catch(logger$j.error);
34655
34656
  }, [handleGetServiceAgreement, handleServiceAgreementIsNotAvailableInThatLanguage, agreementLanguage, legalEntityId, serviceAgreementType]);
34656
34657
  return {
34657
34658
  loading,
@@ -34668,7 +34669,7 @@ const serviceAgreementTypesTranslationMapping = {
34668
34669
  adyenFranchisee: "franchiseesTAndCs",
34669
34670
  adyenPccr: "pccr"
34670
34671
  };
34671
- const logger$h = createLogger("ServiceAgreementDropinComponent");
34672
+ const logger$i = createLogger("ServiceAgreementDropinComponent");
34672
34673
  const FALLBACK_LANGUAGE_CODE = "en";
34673
34674
  function ServiceAgreementDropinComponent({
34674
34675
  legalEntityResponse,
@@ -34880,7 +34881,7 @@ function ServiceAgreementDropinComponent({
34880
34881
  await requestAndDownload(i18n.languageCode);
34881
34882
  } catch (e) {
34882
34883
  if (i18n.languageCode !== FALLBACK_LANGUAGE_CODE) {
34883
- await requestAndDownload(FALLBACK_LANGUAGE_CODE).catch(logger$h.error);
34884
+ await requestAndDownload(FALLBACK_LANGUAGE_CODE).catch(logger$i.error);
34884
34885
  return;
34885
34886
  }
34886
34887
  showToast({
@@ -35727,7 +35728,7 @@ const hasProgressedBeyondEntitySelection = (legalEntity) => {
35727
35728
  return hasOwnEntityAssocation || !!hasOrganizationType;
35728
35729
  };
35729
35730
  const PAGES_WITH_POLLING = [TaskTypes.DECISION_MAKER_OVERVIEW, TaskTypes.TASKS_OVERVIEW];
35730
- const logger$g = createLogger("DropinComposerComponent");
35731
+ const logger$h = createLogger("DropinComposerComponent");
35731
35732
  const isOrganizationSettlorWithExemptionReasonEnabled = (enabled, country) => country === CountryCodes.Australia && enabled;
35732
35733
  function DropinComposerComponent({
35733
35734
  capabilities,
@@ -35786,8 +35787,7 @@ function DropinComposerComponent({
35786
35787
  } = useSingpassMyInfoLogin({
35787
35788
  legalEntity: rootLegalEntity,
35788
35789
  accountHolder,
35789
- handleOpenSingpassAuthorizationLink,
35790
- apiMapping: (legalEntityResponse == null ? void 0 : legalEntityResponse.type) === LegalEntityType.INDIVIDUAL ? individualComponentsKeyMapping : companyComponentsKeyMapping
35790
+ handleOpenSingpassAuthorizationLink
35791
35791
  });
35792
35792
  const hasUsedSingpass = Boolean(Object.keys(singpassTrustedFields).length);
35793
35793
  const rootLegalEntityCountry = getLegalEntityCountry(rootLegalEntity);
@@ -35853,7 +35853,7 @@ function DropinComposerComponent({
35853
35853
  setPciStatus(response);
35854
35854
  return response;
35855
35855
  } catch (e) {
35856
- logger$g.warn(i18n.get("failedToGetPciStatus"));
35856
+ logger$h.warn(i18n.get("failedToGetPciStatus"));
35857
35857
  }
35858
35858
  }
35859
35859
  return void 0;
@@ -35881,7 +35881,7 @@ function DropinComposerComponent({
35881
35881
  }, [additionalSalesChannels, i18n, rootLegalEntity.id, args.handleGetPciTemplate]);
35882
35882
  useEffect(() => {
35883
35883
  if (!tasks.includes(TaskTypes.PCI_DSS)) return;
35884
- getPciTemplate2().catch(logger$g.error);
35884
+ getPciTemplate2().catch(logger$h.error);
35885
35885
  }, [getPciTemplate2, tasks]);
35886
35886
  const addFetchedAcceptedByName = async (acceptanceInfo) => {
35887
35887
  try {
@@ -35891,7 +35891,7 @@ function DropinComposerComponent({
35891
35891
  acceptedByName: getLegalEntityNameBasedOnType(acceptedByEntity)
35892
35892
  };
35893
35893
  } catch (e) {
35894
- logger$g.warn(i18n.get("failedToFetchAcceptedByName"));
35894
+ logger$h.warn(i18n.get("failedToFetchAcceptedByName"));
35895
35895
  return {
35896
35896
  ...acceptanceInfo,
35897
35897
  acceptedByName: null
@@ -35905,7 +35905,7 @@ function DropinComposerComponent({
35905
35905
  const serviceAgreementAcceptanceInfosWithNames2 = await Promise.all(response.data.map(addFetchedAcceptedByName));
35906
35906
  setServiceAgreementAcceptanceInfosWithNames(serviceAgreementAcceptanceInfosWithNames2);
35907
35907
  } catch (e) {
35908
- logger$g.warn(i18n.get("failedToGetServiceAgreementStatus"));
35908
+ logger$h.warn(i18n.get("failedToGetServiceAgreementStatus"));
35909
35909
  }
35910
35910
  }
35911
35911
  };
@@ -35915,7 +35915,7 @@ function DropinComposerComponent({
35915
35915
  const response = await args.handleGetServiceAgreementStatus(rootLegalEntity.id);
35916
35916
  setServiceAgreementTypes(response.termsOfServiceTypes);
35917
35917
  } catch (e) {
35918
- logger$g.warn(i18n.get("failedToGetServiceAgreementStatus"));
35918
+ logger$h.warn(i18n.get("failedToGetServiceAgreementStatus"));
35919
35919
  }
35920
35920
  }
35921
35921
  };
@@ -35951,7 +35951,7 @@ function DropinComposerComponent({
35951
35951
  try {
35952
35952
  return await args.handleGetLegalEntity(rootLegalEntity.id);
35953
35953
  } catch (e) {
35954
- logger$g.warn("Failed to fetch legal entity details", e);
35954
+ logger$h.warn("Failed to fetch legal entity details", e);
35955
35955
  }
35956
35956
  }
35957
35957
  return void 0;
@@ -36011,7 +36011,7 @@ function DropinComposerComponent({
36011
36011
  label: i18n.get("successFullyRemovedTrustMember")
36012
36012
  });
36013
36013
  } catch (err) {
36014
- logger$g.error(`Failed to delete trust member`, err);
36014
+ logger$h.error(`Failed to delete trust member`, err);
36015
36015
  showToast({
36016
36016
  type: "error",
36017
36017
  label: i18n.get("failedToRemoveTrustMember")
@@ -36081,7 +36081,7 @@ function DropinComposerComponent({
36081
36081
  }
36082
36082
  break;
36083
36083
  default:
36084
- logger$g.warn(`Updating trust member type "${trustMember.trustMemberType}" is not implemented.`);
36084
+ logger$h.warn(`Updating trust member type "${trustMember.trustMemberType}" is not implemented.`);
36085
36085
  }
36086
36086
  showToast({
36087
36087
  label: i18n.get("successfullyUpdatedDetails"),
@@ -36089,7 +36089,7 @@ function DropinComposerComponent({
36089
36089
  });
36090
36090
  await refreshLegalArrangementAndRunOnSubmit(associatedLegalArrangement, 1);
36091
36091
  } catch (err) {
36092
- logger$g.error(err);
36092
+ logger$h.error(err);
36093
36093
  showToast({
36094
36094
  label: i18n.get("failedToUpdateDetails"),
36095
36095
  type: "error"
@@ -36103,7 +36103,7 @@ function DropinComposerComponent({
36103
36103
  setHasSeenSingpassSelection(true);
36104
36104
  window.open(authUrl, "_blank").focus();
36105
36105
  } catch (e) {
36106
- logger$g.error(e);
36106
+ logger$h.error(e);
36107
36107
  handleSingpassMyInfoLoginFailure(e);
36108
36108
  }
36109
36109
  }
@@ -36307,7 +36307,7 @@ function DropinComposerComponent({
36307
36307
  }
36308
36308
  };
36309
36309
  setIsLoadingConfiguration(true);
36310
- fetchConfiguration().catch(logger$g.error).finally(() => {
36310
+ fetchConfiguration().catch(logger$h.error).finally(() => {
36311
36311
  setIsLoadingConfiguration(false);
36312
36312
  onLoad();
36313
36313
  });
@@ -36341,7 +36341,7 @@ function DropinComposerComponent({
36341
36341
  const authUrl = await handleInitiateSingpassMyInfoLogin();
36342
36342
  window.open(authUrl, "_blank").focus();
36343
36343
  } catch (e) {
36344
- logger$g.error(e);
36344
+ logger$h.error(e);
36345
36345
  handleSingpassMyInfoLoginFailure(e);
36346
36346
  }
36347
36347
  },
@@ -36580,6 +36580,7 @@ function DropinComposerComponent({
36580
36580
  handleFindAddress: args == null ? void 0 : args.handleFindAddress,
36581
36581
  onTypeSwitch: navigateToTypeSwitcher,
36582
36582
  isTargetLegalEntityType: legalEntityType === LegalEntityType.ORGANIZATION,
36583
+ trustedFields: singpassTrustedFields,
36583
36584
  trustedFieldsProvider: isEligibleForSingpass && TrustedFieldsProvider.SINGPASS
36584
36585
  });
36585
36586
  case TaskTypes.COMPANY_SEARCH:
@@ -36616,7 +36617,9 @@ function DropinComposerComponent({
36616
36617
  handleVerifyTin: args.handleVerifyTin,
36617
36618
  onTypeSwitch: navigateToTypeSwitcher,
36618
36619
  isTargetLegalEntityType: legalEntityType === LegalEntityType.ORGANIZATION,
36619
- accountHolder
36620
+ accountHolder,
36621
+ trustedFields: singpassTrustedFields,
36622
+ trustedFieldsProvider: isEligibleForSingpass && TrustedFieldsProvider.SINGPASS
36620
36623
  });
36621
36624
  case TaskTypes.BUSINESS_DETAILS:
36622
36625
  return jsx("div", {
@@ -37514,6 +37517,61 @@ const useComponentApi = (rootLegalEntityId) => {
37514
37517
  };
37515
37518
  }, [base, rootLegalEntityId]);
37516
37519
  };
37520
+ const logger$g = createLogger("CreateContractingComponent");
37521
+ function CreateContractingComponent({
37522
+ legalEntityId,
37523
+ modalView
37524
+ }) {
37525
+ const {
37526
+ isModalView,
37527
+ setIsModalView
37528
+ } = useCoreContext();
37529
+ if (!legalEntityId) {
37530
+ throw new Error("Must provide at-least a legalEntityId");
37531
+ }
37532
+ const {
37533
+ getLegalEntity: getLegalEntity2,
37534
+ createLegalEntity: createLegalEntity2,
37535
+ updateLegalEntity: updateLegalEntity2,
37536
+ getDocument: getDocument2,
37537
+ createDocument: createDocument2,
37538
+ updateDocument: updateDocument2
37539
+ } = useComponentApi(legalEntityId);
37540
+ const [legalEntity, setLegalEntity] = useState();
37541
+ if (modalView) {
37542
+ setIsModalView(true);
37543
+ }
37544
+ useEffect(() => {
37545
+ getLegalEntity2(legalEntityId).then((res) => setLegalEntity(res)).catch(logger$g.error);
37546
+ }, [getLegalEntity2, legalEntityId]);
37547
+ const serviceAgreementTypes = [];
37548
+ const serviceAgreementAcceptanceInfos = [];
37549
+ const handleGetServiceAgreement = () => {
37550
+ };
37551
+ const handleViewAcceptedTermsOfServiceDocument = () => {
37552
+ };
37553
+ const handleDownloadAcceptedTermsOfServiceDocument = () => {
37554
+ };
37555
+ const handleDownloadUnacceptedTermsOfServiceDocument = () => {
37556
+ };
37557
+ const handleHomeClick = () => {
37558
+ };
37559
+ const handleSign = () => {
37560
+ };
37561
+ return jsx(ServiceAgreementDropinComponent, {
37562
+ taskType: TaskTypes.SERVICE_AGREEMENT,
37563
+ legalEntityResponse: legalEntity,
37564
+ serviceAgreementTypes,
37565
+ serviceAgreementAcceptanceInfos,
37566
+ handleGetServiceAgreement,
37567
+ handleViewAcceptedTermsOfServiceDocument,
37568
+ handleDownloadAcceptedTermsOfServiceDocument,
37569
+ handleDownloadUnacceptedTermsOfServiceDocument,
37570
+ handleHomeClick,
37571
+ handleSign,
37572
+ asModal: isModalView
37573
+ });
37574
+ }
37517
37575
  const logger$f = createLogger("CreateIndividualComponent");
37518
37576
  function CreateIndividualComponent({
37519
37577
  parentLegalEntityId,
@@ -37728,22 +37786,24 @@ const statusToTag = (status) => {
37728
37786
  translationKey: "rejected",
37729
37787
  variant: "red"
37730
37788
  };
37789
+ case TaskStatus.ERROR:
37790
+ return {
37791
+ translationKey: "actionNeeded",
37792
+ variant: "red"
37793
+ };
37731
37794
  case TaskStatus.PROCESSING:
37732
37795
  case OnboardingStatus.AWAITING_DATA:
37733
37796
  return {
37734
37797
  translationKey: "inReview",
37735
37798
  variant: "grey"
37736
37799
  };
37737
- case TaskStatus.ERROR:
37738
37800
  case OnboardingStatus.UNSUCCESSFUL:
37739
37801
  return {
37740
37802
  translationKey: "unsuccessful",
37741
37803
  variant: "red"
37742
37804
  };
37743
37805
  default:
37744
- return {
37745
- variant: "grey"
37746
- };
37806
+ return void 0;
37747
37807
  }
37748
37808
  };
37749
37809
  const EmbeddedStatus = ({
@@ -37757,7 +37817,8 @@ const EmbeddedStatus = ({
37757
37817
  onClick,
37758
37818
  light,
37759
37819
  className,
37760
- actionButton
37820
+ actionButton,
37821
+ ...props
37761
37822
  }) => {
37762
37823
  const {
37763
37824
  i18n
@@ -37773,6 +37834,7 @@ const EmbeddedStatus = ({
37773
37834
  "adyen-kyc-embedded-status--light": light
37774
37835
  }),
37775
37836
  onClick,
37837
+ ...props,
37776
37838
  children: [jsx("section", {
37777
37839
  className: styles["adyen-kyc-embedded-status__avatar"],
37778
37840
  children: loading ? jsx(Skeleton, {
@@ -37819,7 +37881,7 @@ const EmbeddedStatus = ({
37819
37881
  secondary: true,
37820
37882
  small: true
37821
37883
  })
37822
- }) : statusTag.translationKey && jsx("section", {
37884
+ }) : (statusTag == null ? void 0 : statusTag.translationKey) && jsx("section", {
37823
37885
  className: styles["adyen-kyc-embedded-status__tag"],
37824
37886
  children: loading ? jsx(Skeleton, {
37825
37887
  width: "8ch",
@@ -37849,7 +37911,7 @@ function LegalEntityStatus({
37849
37911
  status
37850
37912
  }) => {
37851
37913
  setOnboardingStatus(status);
37852
- if (status === OnboardingStatus.VERIFIED) {
37914
+ if (status !== OnboardingStatus.AWAITING_DATA) {
37853
37915
  fetchLegalEntity().then((newLegalEntity) => {
37854
37916
  setLegalEntity(newLegalEntity);
37855
37917
  setIsLoading(false);
@@ -37919,151 +37981,162 @@ function useInterval(callback, initialDelay = DEFAULT_POLLING_INTERVAL) {
37919
37981
  }, [timeoutId]);
37920
37982
  return timeoutId;
37921
37983
  }
37922
- function AddTransferInstrument({
37923
- onAdd
37924
- }) {
37925
- const {
37926
- i18n
37927
- } = useI18nContext();
37928
- return jsxs(Fragment, {
37929
- children: [jsx(Typography, {
37930
- el: "h1",
37931
- variant: "title-l",
37932
- children: i18n.get("bankDetails")
37933
- }), jsx(Typography, {
37934
- children: i18n.get("addMissingBankDetails")
37935
- }), jsx(Button, {
37936
- label: i18n.get("addBankDetails"),
37937
- onClick: onAdd
37938
- })]
37939
- });
37940
- }
37941
- function ManageTransferInstrumentOverviewItemSummary({
37984
+ function ManageTransferInstrumentOverviewItemModal({
37985
+ status,
37942
37986
  transferInstrument,
37943
- accountHolderName,
37944
- onEdit
37987
+ onEdit,
37988
+ onClose,
37989
+ onRemove
37945
37990
  }) {
37946
37991
  var _a, _b, _c;
37947
37992
  const {
37948
37993
  i18n
37949
37994
  } = useI18nContext();
37950
37995
  const datasetUtils = datasetUtilities(i18n.locale);
37996
+ const isReviewInProgress = status === "PROCESSING";
37997
+ const showEditButton = status !== "ERROR" && !(transferInstrument == null ? void 0 : transferInstrument.bankAccount.trustedSource);
37951
37998
  const problems = transferInstrument ? getCapabilityProblems(transferInstrument, transferInstrument.bankAccount.countryCode) : {};
37952
- const formatDataForSummary2 = (data) => {
37999
+ const formatDataForStructuredList = (data) => {
37953
38000
  var _a2, _b2;
37954
38001
  const summaryData = cloneObject(data);
37955
- if (summaryData.payoutAccountDetails) {
37956
- if ((_a2 = summaryData.payoutVerificationMethod) == null ? void 0 : _a2.bankCountry) {
37957
- summaryData.payoutAccountDetails.bankCountry = datasetUtils.getCountryName(summaryData.payoutVerificationMethod.bankCountry);
37958
- summaryData.payoutAccountDetails.currency = (_b2 = currencyByCountry[summaryData.payoutVerificationMethod.bankCountry]) == null ? void 0 : _b2[0];
37959
- }
37960
- summaryData.payoutAccountDetails.accountHolder = accountHolderName;
38002
+ if (!summaryData.payoutAccountDetails) return [];
38003
+ if ((_a2 = summaryData.payoutVerificationMethod) == null ? void 0 : _a2.bankCountry) {
38004
+ summaryData.payoutAccountDetails.bankCountry = datasetUtils.getCountryName(summaryData.payoutVerificationMethod.bankCountry);
38005
+ summaryData.payoutAccountDetails.currency = (_b2 = currencyByCountry[summaryData.payoutVerificationMethod.bankCountry]) == null ? void 0 : _b2[0];
37961
38006
  }
37962
- return summaryData;
38007
+ delete summaryData.payoutAccountDetails.transferInstrumentId;
38008
+ return entriesOf(summaryData.payoutAccountDetails).map(([key, value]) => ({
38009
+ labelKey: key,
38010
+ value
38011
+ }));
37963
38012
  };
37964
- const getSummaryData = (ti) => {
37965
- const mappedTI = mapTransferInstrumentToPayoutAccount(ti);
37966
- return formatDataForSummary2(mappedTI);
38013
+ const getStatusTag = () => {
38014
+ const statusTagProps = statusToTag(TaskStatus[status]);
38015
+ if (!statusTagProps) return;
38016
+ return jsx(Tag, {
38017
+ variant: statusTagProps.variant,
38018
+ children: i18n.get(statusTagProps.translationKey)
38019
+ });
37967
38020
  };
37968
- return jsxs(Fragment, {
37969
- children: [!!((_b = (_a = problems.BankAccount) == null ? void 0 : _a[transferInstrument.id]) == null ? void 0 : _b.verificationErrors) && jsx(VerificationErrorAlert, {
37970
- className: "adyen-kyc-manage-ti-overview-item-summary__error",
37971
- problems: (_c = problems.BankAccount) == null ? void 0 : _c[transferInstrument.id],
37972
- children: jsx(Button, {
37973
- className: "adyen-kyc-manage-ti-overview-item-summary__error-button",
37974
- label: i18n.get("editDetails"),
37975
- secondary: true,
37976
- onClick: onEdit
37977
- })
37978
- }), jsx(Summary, {
37979
- data: getSummaryData(transferInstrument),
37980
- forms: [payoutSteps.payoutAccountDetails(TaskTypes.PAYOUT, false)],
37981
- showFormHeader: false,
37982
- showSectionHeader: false,
37983
- omittedKeys: ["transferInstrumentId"]
37984
- })]
38021
+ const getPayoutDetailSummary = (ti) => {
38022
+ const mappedTI = formatDataForStructuredList(mapTransferInstrumentToPayoutAccount(ti));
38023
+ const statusTag = getStatusTag();
38024
+ mappedTI.push({
38025
+ labelKey: "status",
38026
+ value: statusTag
38027
+ });
38028
+ return mappedTI;
38029
+ };
38030
+ const getStructuredLists = () => {
38031
+ var _a2, _b2;
38032
+ if (!transferInstrument) return [];
38033
+ const summaries = [];
38034
+ summaries.push(getPayoutDetailSummary(transferInstrument));
38035
+ if (transferInstrument.documentDetails) {
38036
+ summaries.push([{
38037
+ labelKey: "verificationMethod",
38038
+ value: i18n.get("documentUpload")
38039
+ }, {
38040
+ labelKey: "documentType",
38041
+ value: i18n.get((_a2 = transferInstrument.documentDetails[0]) == null ? void 0 : _a2.type)
38042
+ }, {
38043
+ labelKey: "documentName",
38044
+ value: (_b2 = transferInstrument.documentDetails[0]) == null ? void 0 : _b2.fileName
38045
+ }]);
38046
+ }
38047
+ return summaries;
38048
+ };
38049
+ const modalHeader = jsx(Typography, {
38050
+ variant: "title-l",
38051
+ children: i18n.get("bankAccount")
38052
+ });
38053
+ const modalFooter = () => {
38054
+ if (!transferInstrument) return;
38055
+ const actions = jsxs(Fragment, {
38056
+ children: [jsx(Remove, {
38057
+ onRemove: async () => onRemove(transferInstrument.id),
38058
+ isRemoveDisabled: isReviewInProgress
38059
+ }), showEditButton && jsx(Button, {
38060
+ label: i18n.get("edit"),
38061
+ onClick: () => onEdit(transferInstrument.id),
38062
+ disabled: isReviewInProgress
38063
+ })]
38064
+ });
38065
+ return jsx(EmbeddedActionBar, {
38066
+ right: actions
38067
+ });
38068
+ };
38069
+ return jsx(Modal, {
38070
+ header: modalHeader,
38071
+ onClose: () => onClose(),
38072
+ footer: modalFooter(),
38073
+ children: !transferInstrument ? jsx(Loader, {}) : jsxs("div", {
38074
+ className: "adyen-kyc-manage-ti-overview-item-summary",
38075
+ children: [!!((_b = (_a = problems.BankAccount) == null ? void 0 : _a[transferInstrument.id]) == null ? void 0 : _b.verificationErrors) && jsx(VerificationErrorAlert, {
38076
+ className: "adyen-kyc-manage-ti-overview-item-summary__error",
38077
+ problems: (_c = problems.BankAccount) == null ? void 0 : _c[transferInstrument.id],
38078
+ children: jsx(Button, {
38079
+ className: "adyen-kyc-manage-ti-overview-item-summary__error-button",
38080
+ label: i18n.get("editDetails"),
38081
+ tertiary: true,
38082
+ onClick: () => onEdit(transferInstrument.id)
38083
+ })
38084
+ }), getStructuredLists().map((listItems) => jsx(Card, {
38085
+ className: "adyen-kyc-manage-ti-overview-item-summary__card",
38086
+ children: jsx(StructuredList, {
38087
+ items: listItems
38088
+ })
38089
+ }, listItems))]
38090
+ })
37985
38091
  });
37986
38092
  }
37987
- const statusDescription = {
37988
- FINISHED: "bankDetailsVerified",
37989
- ERROR: "bankDetailsNotVerified",
37990
- PROCESSING: "bankDetailsBeingProcessed",
37991
- DETAILS_REQUIRED: "missingDetailsToPerformPayouts"
37992
- };
37993
38093
  function ManageTransferInstrumentOverviewItem({
37994
38094
  transferInstrumentReference,
37995
38095
  transferInstrument,
37996
38096
  onEdit,
37997
38097
  onOpen,
37998
- onRemove,
37999
- accountHolderName
38098
+ onRemove
38000
38099
  }) {
38001
38100
  const {
38002
38101
  i18n
38003
38102
  } = useI18nContext();
38004
- const description = statusDescription[transferInstrumentReference.status];
38005
- const needMoreDetails = transferInstrumentReference.status === "DETAILS_REQUIRED";
38006
- const [isRemoving, setIsRemoving] = useState(false);
38007
- const status = !needMoreDetails ? jsx(TaskItemStatus, {
38008
- status: TaskStatus[transferInstrumentReference.status],
38009
- size: "large",
38010
- showText: false
38011
- }) : null;
38012
- const actions = jsxs("div", {
38013
- className: "adyen-kyc-manage-ti-overview-item__action",
38014
- children: [needMoreDetails && jsx(Button, {
38015
- label: i18n.get("completeAddingAccount"),
38016
- onClick: (e) => {
38017
- e.stopPropagation();
38018
- onEdit(transferInstrumentReference.transferInstrument.id);
38019
- },
38020
- secondary: true
38021
- }), jsx(Remove, {
38022
- label: isRemoving ? "removing" : "removeThisBankAccount",
38023
- onRemove: async () => onRemove(transferInstrumentReference.transferInstrument.id),
38024
- onRemoveStatusChange: setIsRemoving
38025
- })]
38026
- });
38027
- const title = jsxs("div", {
38028
- className: "adyen-kyc-manage-ti-overview-item__header",
38029
- children: [jsxs("div", {
38030
- className: "adyen-kyc-manage-ti-overview-item__title",
38031
- children: [status, jsx(Typography, {
38032
- el: "h2",
38033
- variant: "title-m",
38034
- children: transferInstrumentReference.transferInstrument.accountIdentifier
38035
- })]
38036
- }), jsx("p", {
38037
- className: "adyen-kyc-manage-ti-overview-item__subtitle",
38038
- children: description && i18n.get(description)
38103
+ const [modalOpen, setModalOpen] = useState(false);
38104
+ const isDetailsRequired = transferInstrumentReference.status === "DETAILS_REQUIRED";
38105
+ const onClick = (transferInstrumentId) => {
38106
+ if (isDetailsRequired) return;
38107
+ onOpen(transferInstrumentId);
38108
+ setModalOpen(true);
38109
+ };
38110
+ const actionButton = {
38111
+ labelKey: "continue",
38112
+ onClick: () => onEdit(transferInstrumentReference.transferInstrument.id)
38113
+ };
38114
+ return jsxs(Fragment, {
38115
+ children: [jsx(EmbeddedStatus, {
38116
+ status: TaskStatus[transferInstrumentReference.status],
38117
+ className: "adyen-kyc-manage-ti-overview-item",
38118
+ iconName: "bank",
38119
+ title: transferInstrumentReference.transferInstrument.accountIdentifier.replaceAll("*", "•"),
38120
+ subtitle: i18n.get("bankAccount"),
38121
+ onClick: () => onClick(transferInstrumentReference.transferInstrument.id),
38122
+ actionButton: isDetailsRequired ? actionButton : void 0,
38123
+ "aria-label": i18n.get("bankAccount")
38124
+ }, transferInstrumentReference.transferInstrument.id), modalOpen && jsx(ManageTransferInstrumentOverviewItemModal, {
38125
+ transferInstrument,
38126
+ onEdit,
38127
+ onRemove,
38128
+ onClose: () => setModalOpen(false),
38129
+ status: transferInstrumentReference.status
38039
38130
  })]
38040
38131
  });
38041
- return jsx(Accordion, {
38042
- className: "adyen-kyc-manage-ti-overview-item",
38043
- title,
38044
- onToggle: (state) => {
38045
- if (state === "open") onOpen(transferInstrumentReference.transferInstrument.id);
38046
- },
38047
- children: jsxs(Fragment, {
38048
- children: [!transferInstrument ? jsx(LoaderWrapper, {
38049
- className: "adyen-kyc-manage-ti-overview-item__loader",
38050
- status: "loading"
38051
- }) : jsx(ManageTransferInstrumentOverviewItemSummary, {
38052
- transferInstrument,
38053
- accountHolderName,
38054
- onEdit: () => onEdit(transferInstrument.id)
38055
- }), actions]
38056
- })
38057
- }, transferInstrumentReference.transferInstrument.id);
38058
38132
  }
38059
38133
  const logger$d = createLogger("ManageTransferInstrumentOverview");
38060
38134
  function ManageTransferInstrumentOverview({
38061
38135
  transferInstrumentReferences,
38062
- onAdd,
38063
38136
  onEdit,
38137
+ onAdd,
38064
38138
  onRemove,
38065
- legalEntityId,
38066
- accountHolderName
38139
+ legalEntityId
38067
38140
  }) {
38068
38141
  const {
38069
38142
  i18n
@@ -38074,6 +38147,7 @@ function ManageTransferInstrumentOverview({
38074
38147
  } = useComponentApi(legalEntityId);
38075
38148
  const [transferInstrumentsMap, setTransferInstrumentsMap] = useState({});
38076
38149
  const onShowBankDetails = async (transferInstrumentId) => {
38150
+ if (transferInstrumentsMap[transferInstrumentId]) return;
38077
38151
  try {
38078
38152
  const ti = await getTransferInstrument2(transferInstrumentId);
38079
38153
  setTransferInstrumentsMap({
@@ -38084,7 +38158,7 @@ function ManageTransferInstrumentOverview({
38084
38158
  logger$d.error(e);
38085
38159
  }
38086
38160
  };
38087
- const onRemoveTransferinstrument = async (transferInstrumentId) => {
38161
+ const onRemoveTransferInstrument = async (transferInstrumentId) => {
38088
38162
  try {
38089
38163
  await deleteTransferInstrument2(transferInstrumentId);
38090
38164
  onRemove(transferInstrumentId);
@@ -38093,24 +38167,20 @@ function ManageTransferInstrumentOverview({
38093
38167
  }
38094
38168
  };
38095
38169
  const transferInstrumentListEle = transferInstrumentReferences.map((transferInstrumentRef) => jsx(ManageTransferInstrumentOverviewItem, {
38096
- accountHolderName,
38097
38170
  transferInstrument: transferInstrumentsMap[transferInstrumentRef.transferInstrument.id],
38098
38171
  transferInstrumentReference: transferInstrumentRef,
38099
38172
  onEdit,
38100
- onRemove: onRemoveTransferinstrument,
38173
+ onRemove: onRemoveTransferInstrument,
38101
38174
  onOpen: onShowBankDetails
38102
38175
  }, transferInstrumentRef.transferInstrument.id));
38103
- return jsxs(Fragment, {
38104
- children: [jsx("section", {
38105
- className: "adyen-kyc-manage-ti-overview",
38106
- children: transferInstrumentListEle
38107
- }), jsx("div", {
38108
- className: "adyen-kyc-manage-ti-overview__action",
38109
- children: jsx(Button, {
38110
- secondary: true,
38111
- label: i18n.get("addAnotherBankAccount"),
38112
- onClick: onAdd
38113
- })
38176
+ return jsxs("section", {
38177
+ className: "adyen-kyc-manage-ti-overview",
38178
+ children: [transferInstrumentListEle, jsx(EmbeddedStatus, {
38179
+ title: i18n.get("addBankAccount"),
38180
+ iconName: "plus-small",
38181
+ light: true,
38182
+ onClick: () => onAdd(legalEntityId),
38183
+ "aria-label": i18n.get("addBankAccount")
38114
38184
  })]
38115
38185
  });
38116
38186
  }
@@ -38127,12 +38197,10 @@ function ManageTransferInstrumentComponent({
38127
38197
  setLocale
38128
38198
  } = useI18nContext();
38129
38199
  const {
38130
- getTransferInstruments: getTransferInstruments2,
38131
- getLegalEntity: getLegalEntity2
38200
+ getTransferInstruments: getTransferInstruments2
38132
38201
  } = useComponentApi(legalEntityId);
38133
38202
  const [transferInstruments, setTransferInstruments] = useState([]);
38134
38203
  const [loadingStatus, setLoadingStatus] = useState("loading");
38135
- const [accountHolderName, setAccountHolderName] = useState("");
38136
38204
  useDataset(datasetIdentifier.country);
38137
38205
  const refreshTransferInstruments = async () => {
38138
38206
  const transferInstrumentRefs = await getTransferInstruments2();
@@ -38143,11 +38211,9 @@ function ManageTransferInstrumentComponent({
38143
38211
  }) => status === "FINISHED");
38144
38212
  const timeoutId = useInterval(refreshTransferInstruments);
38145
38213
  const init2 = useCallback(async () => {
38146
- const [transferInstrumentRefs, legalEntity] = await Promise.all([getTransferInstruments2(), getLegalEntity2(legalEntityId)]);
38147
- const accountHolder = getPayoutAccountHolderName(legalEntity, i18n);
38148
- setAccountHolderName(accountHolder);
38214
+ const transferInstrumentRefs = await getTransferInstruments2();
38149
38215
  setTransferInstruments(transferInstrumentRefs);
38150
- }, [getTransferInstruments2, getLegalEntity2, i18n, legalEntityId]);
38216
+ }, [getTransferInstruments2]);
38151
38217
  useEffect(() => {
38152
38218
  eventEmitter == null ? void 0 : eventEmitter.on("updateLocale", (locale) => setLocale(locale));
38153
38219
  init2().catch(logger$c.error).finally(() => {
@@ -38165,22 +38231,27 @@ function ManageTransferInstrumentComponent({
38165
38231
  };
38166
38232
  const render2 = () => {
38167
38233
  if (loadingStatus === "loading") {
38168
- return jsx(Loader, {
38169
- size: "medium"
38234
+ return jsx(EmbeddedStatus, {
38235
+ loading: true
38170
38236
  });
38171
38237
  }
38172
- if (transferInstruments.length === 0) {
38173
- return jsx(AddTransferInstrument, {
38174
- onAdd: () => onAdd(legalEntityId)
38175
- });
38176
- }
38177
- return jsx(ManageTransferInstrumentOverview, {
38178
- transferInstrumentReferences: transferInstruments,
38179
- onAdd: () => onAdd(legalEntityId),
38180
- onEdit: (transferInstrumentId) => onEdit(transferInstrumentId, legalEntityId),
38181
- onRemove,
38182
- legalEntityId,
38183
- accountHolderName
38238
+ return jsxs(Fragment, {
38239
+ children: [!transferInstruments.length ? jsxs("div", {
38240
+ className: "adyen-kyc-u-margin-bottom-12",
38241
+ children: [jsx(Typography, {
38242
+ el: "h1",
38243
+ variant: "title-l",
38244
+ children: i18n.get("bankDetails")
38245
+ }), jsx(Typography, {
38246
+ children: i18n.get("addMissingBankDetails")
38247
+ })]
38248
+ }) : void 0, jsx(ManageTransferInstrumentOverview, {
38249
+ transferInstrumentReferences: transferInstruments,
38250
+ onEdit: (transferInstrumentId) => onEdit(transferInstrumentId, legalEntityId),
38251
+ onRemove,
38252
+ onAdd,
38253
+ legalEntityId
38254
+ })]
38184
38255
  });
38185
38256
  };
38186
38257
  return jsx("div", {
@@ -40081,6 +40152,7 @@ const componentsMap = {
40081
40152
  manageTransferInstrumentComponent: ManageTransferInstrumentComponent,
40082
40153
  onboardingDropinComponent: OnboardingDropinComponent,
40083
40154
  manageIndividualComponent: ManageIndividualComponent,
40155
+ createContractingComponent: CreateContractingComponent,
40084
40156
  viewVerificationStatusComponent: ViewVerificationStatusComponent,
40085
40157
  updateLegalEntityForHighExposureComponent: UpdateLegalEntityForHighExposure
40086
40158
  };
@@ -40537,7 +40609,7 @@ const ConfigurationApiProvider = ({
40537
40609
  isEmbeddedDropin,
40538
40610
  loadingContext
40539
40611
  } = authContext;
40540
- const sdkVersion = "3.26.2";
40612
+ const sdkVersion = "3.27.0";
40541
40613
  useAnalytics({
40542
40614
  onUserEvent,
40543
40615
  legalEntityId: rootLegalEntityId,
@@ -41219,7 +41291,7 @@ const DebugModal = ({
41219
41291
  };
41220
41292
  const copyToClipboard = async () => {
41221
41293
  const toCopy = {
41222
- sdkVersion: "3.26.2",
41294
+ sdkVersion: "3.27.0",
41223
41295
  experiments: Object.fromEntries(allExperimentsWithValues),
41224
41296
  settings: Object.fromEntries(allSettingsWithValues)
41225
41297
  };
@@ -41232,28 +41304,38 @@ const DebugModal = ({
41232
41304
  setDebugInfoCopied(false);
41233
41305
  }, 5e3);
41234
41306
  };
41235
- return jsx(Modal$1, {
41307
+ const header = jsxs("div", {
41308
+ className: "adyen-kyc-debug-modal__header",
41309
+ children: ["Debug ", jsx(Button, {
41310
+ label: "Copy debug info",
41311
+ icon: "document",
41312
+ onClick: copyToClipboard
41313
+ }), debugInfoCopied ? jsxs("span", {
41314
+ children: [jsx(Icon, {
41315
+ name: "check"
41316
+ }), " Copied!"]
41317
+ }) : void 0]
41318
+ });
41319
+ const footer = jsx(Button, {
41320
+ label: "Get LE data",
41321
+ onClick: () => fetchRootLeData(),
41322
+ disabled: !getRootLegalEntity
41323
+ });
41324
+ return jsx(Modal, {
41236
41325
  size: "large",
41237
- header: jsxs(Fragment, {
41238
- children: ["Debug ", jsx(Button, {
41239
- label: "Copy debug info",
41240
- icon: "document",
41241
- onClick: copyToClipboard
41242
- }), debugInfoCopied ? jsxs("span", {
41243
- children: [jsx(Icon, {
41244
- name: "check"
41245
- }), " Copied!"]
41246
- }) : void 0]
41247
- }),
41248
- content: jsxs(Fragment, {
41326
+ header,
41327
+ footer,
41328
+ onClose: onExit,
41329
+ children: jsxs(Fragment, {
41249
41330
  children: [jsxs("div", {
41250
41331
  className: "adyen-kyc-debug-modal__meta",
41251
41332
  children: [jsxs("span", {
41252
- children: ["SDK version: ", "3.26.2"]
41333
+ children: ["SDK version: ", "3.27.0"]
41253
41334
  }), jsxs("span", {
41254
41335
  children: ["rootLegalEntityId: ", rootLegalEntityId]
41255
41336
  })]
41256
41337
  }), jsxs("div", {
41338
+ className: "adyen-kyc-debug-modal__content",
41257
41339
  children: [jsx(DebugTable, {
41258
41340
  data: allExperimentsWithValues,
41259
41341
  keyHeading: "Experiment",
@@ -41266,17 +41348,7 @@ const DebugModal = ({
41266
41348
  }), rootLeData ? jsx("pre", {
41267
41349
  children: JSON.stringify(rootLeData, null, 2)
41268
41350
  }) : void 0]
41269
- }),
41270
- footer: jsx(Button, {
41271
- label: "Get LE data",
41272
- onClick: () => fetchRootLeData(),
41273
- disabled: !getRootLegalEntity
41274
- }),
41275
- classNames: {
41276
- header: "adyen-kyc-debug-modal__header",
41277
- content: "adyen-kyc-debug-modal__content"
41278
- },
41279
- onClose: onExit
41351
+ })
41280
41352
  });
41281
41353
  };
41282
41354
  const DebugWrapper = ({
@@ -42169,6 +42241,14 @@ const manageIndividualComponentSchema = {
42169
42241
  type: "string"
42170
42242
  }
42171
42243
  };
42244
+ const createContractingComponentSchema = {
42245
+ legalEntityId: {
42246
+ type: "string"
42247
+ },
42248
+ modalView: {
42249
+ type: "boolean"
42250
+ }
42251
+ };
42172
42252
  const viewVerificationStatusComponentSchema = {
42173
42253
  legalEntityId: {
42174
42254
  type: "string",
@@ -42228,6 +42308,7 @@ const componentsSchemaMap = {
42228
42308
  manageTransferInstrumentComponent: manageTransferInstrumentComponentSchema,
42229
42309
  createIndividualComponent: createIndividualComponentSchema,
42230
42310
  manageIndividualComponent: manageIndividualComponentSchema,
42311
+ createContractingComponent: createContractingComponentSchema,
42231
42312
  createTransferInstrumentComponent: createTransferInstrumentComponentSchema,
42232
42313
  viewVerificationStatusComponent: viewVerificationStatusComponentSchema,
42233
42314
  updateLegalEntityForHighExposureComponent: updateLegalEntityForHighExposureComponentSchema,