@adyen/kyc-components 3.28.1 → 3.29.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 (30) hide show
  1. package/dist/es/adyen-kyc-components.es.js +514 -141
  2. package/dist/es/us-check-account-number-CHnzmLNd.js +39 -0
  3. package/dist/es/us-check-o5Ax_0LS.js +37 -0
  4. package/dist/es/us-check-routing-number-BtVf7GH3.js +40 -0
  5. package/dist/style.css +65 -11
  6. package/dist/types/components/ContractingStatus/ContractingStatus.d.ts +12 -0
  7. package/dist/types/components/Dropins/ServiceAgreementDropinComponent/types.d.ts +1 -1
  8. package/dist/types/components/EmbeddedDropins/ManageContractingComponent/ManageContractingComponent.d.ts +6 -0
  9. package/dist/types/components/PayoutAccount/component/CheckGuidance/CheckGuidance.d.ts +6 -0
  10. package/dist/types/components/embedded-ui/OutlinedIcon/OutlinedIcon.d.ts +5 -0
  11. package/dist/types/components/embedded-ui/Splashscreen/Splashscreen.d.ts +10 -0
  12. package/dist/types/components/index.d.ts +2 -0
  13. package/dist/types/components/internal/Address/types.d.ts +1 -1
  14. package/dist/types/components/internal/Address/utils.d.ts +1 -1
  15. package/dist/types/components/internal/BankAccountNumber/types.d.ts +2 -0
  16. package/dist/types/components/internal/BranchCode/types.d.ts +2 -0
  17. package/dist/types/components/internal/Button/Button.d.ts +1 -1
  18. package/dist/types/components/internal/Button/types.d.ts +1 -0
  19. package/dist/types/components/internal/Confirm/Confirm.d.ts +2 -0
  20. package/dist/types/components/internal/Confirm/types.d.ts +6 -0
  21. package/dist/types/components/internal/DecisionMakerRole/types.d.ts +1 -1
  22. package/dist/types/components/internal/FormFields/MaskedInputText/MaskedInputText.d.ts +2 -1
  23. package/dist/types/components/internal/IdFieldTypeSelector/countryIdNumberTypes.d.ts +1 -1
  24. package/dist/types/components/internal/Modal/Modal.d.ts +1 -1
  25. package/dist/types/components/internal/Skeleton/Skeleton.d.ts +0 -1
  26. package/dist/types/components/internal/Svg/svgs.d.ts +3 -0
  27. package/dist/types/utils/datasetUtil.d.ts +1 -1
  28. package/dist/types/utils/payout-account-util.d.ts +1 -0
  29. package/dist/types/utils/validatorUtils.d.ts +1 -1
  30. package/package.json +1 -1
@@ -95,7 +95,6 @@ const defaultTrans = {
95
95
  accountNumberOrIbanVisible: "Includes your account number or IBAN",
96
96
  accountNumberVisible: "Includes your account number",
97
97
  accountVerification: "Account Verification",
98
- achRoutingNumber: "ACH routing number",
99
98
  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
99
  actionNeeded: "Action needed",
101
100
  add: "Add",
@@ -137,6 +136,7 @@ const defaultTrans = {
137
136
  areYouACompany: "Are you a company?",
138
137
  areYouAnIndividual: "Are you an individual?",
139
138
  areYouSureToLeave: "Are you sure you want to leave?",
139
+ areYouSureYouWantToDeleteThisBankAccount: "Are you sure you want to delete this bank account?",
140
140
  arithmosEngraphes: "Αριθμός Εγγραφής Φ.Π.Α.",
141
141
  articlesOfIncorporation: "Articles of incorporation",
142
142
  arvonlisaveronumeroMervardesskattenummer: "Arvonlisäveronumero Mervärdesskattenummer",
@@ -238,6 +238,7 @@ const defaultTrans = {
238
238
  chamberOfCommerceExtract: "Chamber of Commerce extract",
239
239
  chamberOfCommerceRegistrationNumber: "Chamber of Commerce registration number",
240
240
  changeYourBusinessSetup: "Change your business setup?",
241
+ chargeCardUserAgreement: "Charge Card User Agreement",
241
242
  charitableTrust: "Charitable trust",
242
243
  charityNumber: "Charity number",
243
244
  charter: "Charter",
@@ -335,6 +336,7 @@ const defaultTrans = {
335
336
  decisionMakers: "Decision-makers",
336
337
  definedBeneficiary: "Defined beneficiary",
337
338
  definedBeneficiaryDescription: "A natural person, corporate entity, or member of a class in whose interest the trust is principally constituted or operates.",
339
+ "delete": "Delete",
338
340
  depositSlip: "Deposit slip",
339
341
  describeWhoIsABeneficiaryInYourTrust: "Describe in open format who is set to be a beneficiary in your trust deed",
340
342
  description: "Description",
@@ -406,6 +408,7 @@ const defaultTrans = {
406
408
  enterAMaximumOfNCharactersWithAMixForExample: "Enter a maximum of %{maxChars} characters, with a mix of letters and numbers. For example, %{example}",
407
409
  enterAMaximumOfNDigitsForExample: "Enter a maximum of %{maxDigits} digits. For example, %{example}",
408
410
  enterAMaximumOfNMoreDigitsForExample: "Enter a maximum of %{maxDigits} more digits. For example, %{example}",
411
+ enterEnglishLetterFollowedByXtoYDigitsForExample: "Enter an English-equivalent letter (C for HE, O for AE, P for Σ) followed by %{minDigits} - %{maxDigits} digits. For example, %{example}",
409
412
  enterLastNDigitsForExample: "Enter the last %{numDigits} digits. For example, %{example}",
410
413
  enterLastNameExactlyAsAppearInID: "Enter your last name(s) exactly as it appears on your identity document",
411
414
  enterNCharactersForExample: "Enter %{numChars} characters. For example, %{example}",
@@ -1023,6 +1026,7 @@ const defaultTrans = {
1023
1026
  parentCompany: "Parent company",
1024
1027
  parentCompanyInformation: "Parent company information",
1025
1028
  partitaIVA: "Partita IVA",
1029
+ codiceFiscalePartitaIVA: "Codice Fiscale / Partita IVA",
1026
1030
  partnerShipAgreement: "Partnership agreement",
1027
1031
  partnership: "Partnership",
1028
1032
  partnershipIncorporated: "Incorporated partnership",
@@ -1053,6 +1057,7 @@ const defaultTrans = {
1053
1057
  pciDssQuestionnaire: "PCI DSS questionnaire",
1054
1058
  pciSignFailed: "PCI signing failed",
1055
1059
  pciSignedSuccessfully: "PCI signed successfully",
1060
+ pciDssSelfAssesmentSignedSuccessfully: "PCI-DSS Self assesment questionnaire signed and dated",
1056
1061
  personAppointmentUnderTrustInstrument: "The person appointed under the trust instrument to direct or restrain the trustees in relation to their administration of the trust.",
1057
1062
  personalDetails: "Personal details",
1058
1063
  personnummer: "Personnummer",
@@ -1108,7 +1113,7 @@ const defaultTrans = {
1108
1113
  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.",
1109
1114
  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.",
1110
1115
  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.",
1111
- 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.",
1116
+ reasonForFillingPayoutDetails: "This bank account will be verified to prevent fraud or other misuse of funds in compliance with global regulations.",
1112
1117
  region: "Region",
1113
1118
  registeredAddress: "Registered address",
1114
1119
  registeredAddressHeaderDescription: "The address as it appears on your company's official registration documents.",
@@ -1225,8 +1230,10 @@ const defaultTrans = {
1225
1230
  selectTheApplicableRoles: "Select the applicable role(s)",
1226
1231
  selectTheBankToReceivePayouts: "After this page, you can select the bank where you would like to receive the payouts.",
1227
1232
  selectedSomeRolesBasedOnMyinfo: "We selected some roles based on Myinfo business data about your company's appointment holders and shareholders.",
1233
+ serviceAgreements: "Service agreements",
1228
1234
  serviceAgreementSignFailed: "Service agreement signing failed",
1229
1235
  serviceAgreementSignedSuccessfully: "Service agreement signed successfully",
1236
+ serviceAgreementSignedAndDated: "Service agreement signed and dated",
1230
1237
  sessionTimeout: "Session timeout",
1231
1238
  setUpYourAccount: "Set up your account",
1232
1239
  settlerDetailsIncl: "Settlor details including their full legal name and home address",
@@ -2052,6 +2059,21 @@ function useBusinessData({
2052
2059
  const [cachedBusiness, setCachedBusiness] = useState();
2053
2060
  const [verifiedBusiness, setVerifiedBusiness] = useState();
2054
2061
  const [invalidTin, setInvalidTin] = useState(false);
2062
+ const primarySourceSearch = async (data, indexSearch, deepSearch) => {
2063
+ let response;
2064
+ try {
2065
+ response = await deepSearch({
2066
+ ...data,
2067
+ limit: data.limit ?? 15
2068
+ });
2069
+ } catch (e) {
2070
+ response = await indexSearch({
2071
+ ...data,
2072
+ limit: data.limit ?? 15
2073
+ });
2074
+ }
2075
+ return response;
2076
+ };
2055
2077
  const searchForBusiness = useCallback(async (data) => {
2056
2078
  if (!handleCompanyDeepSearch || !handleCompanyIndexSearch) {
2057
2079
  logger$I.log("Missing handlers for searchForBusiness");
@@ -2060,17 +2082,15 @@ function useBusinessData({
2060
2082
  if (searchResults && objectsDeepEqual(cachedSearch, data)) return;
2061
2083
  try {
2062
2084
  setSearching("loading");
2063
- const {
2064
- results
2065
- } = KNOWN_BROKEN_PRIMARY_SOURCE_CONNECTIONS.includes(data.state) ? await handleCompanyIndexSearch({
2085
+ const response = KNOWN_BROKEN_PRIMARY_SOURCE_CONNECTIONS.includes(data.state) ? await handleCompanyIndexSearch({
2066
2086
  ...data,
2067
2087
  limit: data.limit ?? 15
2068
- }) : await handleCompanyDeepSearch({
2088
+ }) : await primarySourceSearch({
2069
2089
  ...data,
2070
2090
  limit: data.limit ?? 15
2071
- });
2072
- setSearchResults(results);
2073
- return results;
2091
+ }, handleCompanyIndexSearch, handleCompanyDeepSearch);
2092
+ setSearchResults(response == null ? void 0 : response.results);
2093
+ return response == null ? void 0 : response.results;
2074
2094
  } catch (e) {
2075
2095
  setSearching("error");
2076
2096
  logger$I.error(e);
@@ -2381,8 +2401,9 @@ const mergeFieldMetadataIntoProps = (fieldName, metadata, otherProps) => {
2381
2401
  const MAX_LENGTH = 30;
2382
2402
  const getMaxLengthByFieldAndCountry = (formattingRules, field, country, ignoreIfFormatterExists) => {
2383
2403
  var _a, _b, _c, _d;
2404
+ if (!country) return void 0;
2384
2405
  if ((_b = (_a = formattingRules[country]) == null ? void 0 : _a[field]) == null ? void 0 : _b.formatter) {
2385
- return null;
2406
+ return void 0;
2386
2407
  }
2387
2408
  const maxLength = (_d = (_c = formattingRules[country]) == null ? void 0 : _c[field]) == null ? void 0 : _d.maxlength;
2388
2409
  return maxLength || MAX_LENGTH;
@@ -2466,6 +2487,9 @@ const svgs = {
2466
2487
  "document-cutoff": lazy(() => import("./document-cut-off-D2vCeeIS.js")),
2467
2488
  "document-expired": lazy(() => import("./document-expired-_4Syh1xW.js")),
2468
2489
  "document-front": lazy(() => import("./document-front-9Glzn7ZR.js")),
2490
+ "us-check": lazy(() => import("./us-check-o5Ax_0LS.js")),
2491
+ "us-check-routing-number": lazy(() => import("./us-check-routing-number-BtVf7GH3.js")),
2492
+ "us-check-account-number": lazy(() => import("./us-check-account-number-CHnzmLNd.js")),
2469
2493
  "id-blurred": lazy(() => import("./id-blurred-A45CVnPk.js")),
2470
2494
  "id-cutoff": lazy(() => import("./id-cut-off-DMoJYcGr.js")),
2471
2495
  "id-front": lazy(() => import("./id-front-CTIDY7Nu.js")),
@@ -2552,6 +2576,7 @@ const Button = ({
2552
2576
  role,
2553
2577
  small,
2554
2578
  block,
2579
+ critical,
2555
2580
  shaded,
2556
2581
  label = "",
2557
2582
  icon,
@@ -2598,6 +2623,7 @@ const Button = ({
2598
2623
  "adyen-kyc-button--secondary": secondary,
2599
2624
  "adyen-kyc-button--tertiary": tertiary && !secondary,
2600
2625
  "adyen-kyc-button--block": block,
2626
+ "adyen-kyc-button--critical": critical,
2601
2627
  "adyen-kyc-button--small": small && label,
2602
2628
  "adyen-kyc-button--shaded": shaded && icon && tertiary,
2603
2629
  // disallow shaded effect if not just tertiary icon
@@ -3783,6 +3809,7 @@ const datasetIdentifier = {
3783
3809
  function datasetUtilities(locale) {
3784
3810
  return {
3785
3811
  getCountryName: (countryCode) => {
3812
+ if (!countryCode) return null;
3786
3813
  const datasetKey = createDatasetKey(datasetIdentifier.country, locale);
3787
3814
  return getDataName(datasetKey, countryCode);
3788
3815
  },
@@ -3974,15 +4001,31 @@ const Tag = ({
3974
4001
  children
3975
4002
  });
3976
4003
  };
3977
- const styles$4 = {
4004
+ const adyenKycDropdown = "adyen-kyc-dropdown";
4005
+ const adyenKycDropdownButton = "adyen-kyc-dropdown-button";
4006
+ const adyenKycDropdownButtonActive = "adyen-kyc-dropdown-button--active";
4007
+ const adyenKycFilterInput = "adyen-kyc-filter-input";
4008
+ const adyenKycDropdownList = "adyen-kyc-dropdown-list";
4009
+ const adyenKycDropdownListTransformer = "adyen-kyc-dropdown-list__transformer";
4010
+ const adyenKycDropdownListActive = "adyen-kyc-dropdown-list--active";
4011
+ const adyenKycDropdownElement = "adyen-kyc-dropdown-element";
4012
+ const styles$7 = {
3978
4013
  "adyen-kyc-dropdown": "adyen-kyc-dropdown",
4014
+ adyenKycDropdown,
3979
4015
  "adyen-kyc-dropdown-button": "adyen-kyc-dropdown-button",
4016
+ adyenKycDropdownButton,
3980
4017
  "adyen-kyc-dropdown-button--active": "adyen-kyc-dropdown-button--active",
4018
+ adyenKycDropdownButtonActive,
3981
4019
  "adyen-kyc-filter-input": "adyen-kyc-filter-input",
4020
+ adyenKycFilterInput,
3982
4021
  "adyen-kyc-dropdown-list": "adyen-kyc-dropdown-list",
4022
+ adyenKycDropdownList,
3983
4023
  "adyen-kyc-dropdown-list__transformer": "adyen-kyc-dropdown-list__transformer",
4024
+ adyenKycDropdownListTransformer,
3984
4025
  "adyen-kyc-dropdown-list--active": "adyen-kyc-dropdown-list--active",
3985
- "adyen-kyc-dropdown-element": "adyen-kyc-dropdown-element"
4026
+ adyenKycDropdownListActive,
4027
+ "adyen-kyc-dropdown-element": "adyen-kyc-dropdown-element",
4028
+ adyenKycDropdownElement
3986
4029
  };
3987
4030
  function SelectButtonElement({
3988
4031
  filterable,
@@ -4031,10 +4074,10 @@ function SelectButton({
4031
4074
  "aria-haspopup": "listbox",
4032
4075
  className: cx({
4033
4076
  "adyen-kyc-dropdown-button": true,
4034
- [styles$4["adyen-kyc-dropdown-button"]]: true,
4077
+ [styles$7["adyen-kyc-dropdown-button"]]: true,
4035
4078
  "adyen-kyc-dropdown-button--readonly": readonly,
4036
4079
  "adyen-kyc-dropdown-button--active": showList,
4037
- [styles$4["adyen-kyc-dropdown-button--active"]]: showList,
4080
+ [styles$7["adyen-kyc-dropdown-button--active"]]: showList,
4038
4081
  "adyen-kyc-dropdown-button--invalid": isInvalid,
4039
4082
  "adyen-kyc-dropdown-field--valid": isValid,
4040
4083
  "adyen-kyc-dropdown-button-search": isSearch
@@ -4104,7 +4147,7 @@ const SelectButtonContentSingle = ({
4104
4147
  "aria-expanded": showList,
4105
4148
  "aria-owns": selectListId,
4106
4149
  autoComplete: "off",
4107
- className: cx("adyen-kyc-filter-input", [styles$4["adyen-kyc-filter-input"]]),
4150
+ className: cx("adyen-kyc-filter-input", [styles$7["adyen-kyc-filter-input"]]),
4108
4151
  onInput,
4109
4152
  placeholder,
4110
4153
  ref: filterInputRef,
@@ -4192,7 +4235,7 @@ const SelectListItem = ({
4192
4235
  }) => jsx("li", {
4193
4236
  "aria-disabled": !!item.disabled,
4194
4237
  "aria-selected": selected,
4195
- className: cx(["adyen-kyc-dropdown-element", styles$4["adyen-kyc-dropdown-element"], {
4238
+ className: cx(["adyen-kyc-dropdown-element", styles$7["adyen-kyc-dropdown-element"], {
4196
4239
  "adyen-kyc-dropdown-element--active": selected,
4197
4240
  "adyen-kyc-dropdown-element--disabled": !!item.disabled,
4198
4241
  "adyen-kyc-dropdown-multi-element": isMulti,
@@ -4323,9 +4366,9 @@ function SelectList({
4323
4366
  test: true,
4324
4367
  "adyen-kyc-dropdown-list--above": showAbove,
4325
4368
  "adyen-kyc-dropdown-list": true,
4326
- [styles$4["adyen-kyc-dropdown-list"]]: true,
4369
+ [styles$7["adyen-kyc-dropdown-list"]]: true,
4327
4370
  "adyen-kyc-dropdown-list--active": showList,
4328
- [styles$4["adyen-kyc-dropdown-list--active"]]: showList
4371
+ [styles$7["adyen-kyc-dropdown-list--active"]]: showList
4329
4372
  }),
4330
4373
  id: props.selectListId,
4331
4374
  role: "listbox",
@@ -4528,7 +4571,7 @@ const Select = ({
4528
4571
  };
4529
4572
  }, []);
4530
4573
  return jsxs("div", {
4531
- className: cx(["adyen-kyc-dropdown", styles$4["adyen-kyc-dropdown"], className, ...classNameModifiers.map((m) => `adyen-kyc-dropdown--${m}`)]),
4574
+ className: cx(["adyen-kyc-dropdown", styles$7["adyen-kyc-dropdown"], className, ...classNameModifiers.map((m) => `adyen-kyc-dropdown--${m}`)]),
4532
4575
  ref: selectContainerRef,
4533
4576
  onClick: (e) => {
4534
4577
  e.stopPropagation();
@@ -5562,7 +5605,7 @@ const businessRegistrationNumberMasks = {
5562
5605
  },
5563
5606
  [CountryCodes.Cyprus]: {
5564
5607
  default: {
5565
- mask: makeMask(...alphaInputs(1), ...alphaInputs(1, true), ...numericInputs(1), ...numericInputs(7, true)),
5608
+ mask: makeMask(...customInputs(1, /^[COP]$/), ...numericInputs(1), ...numericInputs(7, true)),
5566
5609
  transformOnType: uppercase
5567
5610
  }
5568
5611
  },
@@ -6403,7 +6446,7 @@ const businessRegistrationNumberPatterns = {
6403
6446
  soleProprietorship: /^\d{8}$/
6404
6447
  },
6405
6448
  [CountryCodes.Cyprus]: {
6406
- default: /^[A-Z]{1,2}\d{1,8}$/
6449
+ default: /^[COP]{1}\d{1,8}$/
6407
6450
  },
6408
6451
  [CountryCodes.CzechRepublic]: {
6409
6452
  default: /^\d{8,10}$/
@@ -6750,13 +6793,11 @@ const defaultFieldConfig$9 = {
6750
6793
  mask: businessRegistrationNumberMasks[CountryCodes.Cyprus].default,
6751
6794
  validators: validatePatternOnBlur(businessRegistrationNumberPatterns[CountryCodes.Cyprus].default),
6752
6795
  guidanceText: {
6753
- key: "enterXToYLettersAndThenWToZDigitsForExample",
6796
+ key: "enterEnglishLetterFollowedByXtoYDigitsForExample",
6754
6797
  values: {
6755
- minLetters: "1",
6756
- maxLetters: "2",
6757
6798
  minDigits: "1",
6758
6799
  maxDigits: "8",
6759
- example: "HE337518"
6800
+ example: "C12345678"
6760
6801
  }
6761
6802
  }
6762
6803
  },
@@ -6952,18 +6993,16 @@ const defaultFieldConfig$9 = {
6952
6993
  case "partitaIVA":
6953
6994
  default:
6954
6995
  return {
6955
- label: "partitaIVA",
6996
+ label: "codiceFiscalePartitaIVA",
6956
6997
  validators: validatePatternOnBlur(/^\d{11}$/),
6957
6998
  mask: {
6958
- mask: makeMask(...nonInputs("IT", {
6959
- includeInValue: false
6960
- }), spacer, ...numericInputs(11))
6999
+ mask: makeMask(spacer, ...numericInputs(11))
6961
7000
  },
6962
7001
  guidanceText: {
6963
7002
  key: "enterTheRemainingNDigitsForExample",
6964
7003
  values: {
6965
7004
  numDigits: "11",
6966
- example: "IT47040001100"
7005
+ example: "47040001100"
6967
7006
  }
6968
7007
  }
6969
7008
  };
@@ -7458,6 +7497,7 @@ const MaskedInputText = ({
7458
7497
  value,
7459
7498
  onInput,
7460
7499
  onBlur,
7500
+ onFocus,
7461
7501
  onMismatch: onMismatchExternal,
7462
7502
  isValid: validationIsValid,
7463
7503
  errorMessage,
@@ -7625,6 +7665,7 @@ Falling back to partially valid value "${fallback}"`);
7625
7665
  }
7626
7666
  },
7627
7667
  onFocusHandler: (event) => {
7668
+ onFocus == null ? void 0 : onFocus();
7628
7669
  fieldOnFocus(event);
7629
7670
  setIsFocused(true);
7630
7671
  },
@@ -7719,7 +7760,7 @@ const companyRegistrationNumberOptions = {
7719
7760
  }],
7720
7761
  [CountryCodes.Italy]: [{
7721
7762
  id: "partitaIVA",
7722
- name: "partitaIVA"
7763
+ name: "codiceFiscalePartitaIVA"
7723
7764
  }, {
7724
7765
  id: "CCIAA",
7725
7766
  name: "CCIAA"
@@ -11950,7 +11991,7 @@ const LABELS = {
11950
11991
  }
11951
11992
  };
11952
11993
  const getKeyForField = (fieldName, country) => country ? LABELS[fieldName][country] || LABELS[fieldName].default : LABELS[fieldName].default;
11953
- const getAddressSchemaForCountry = (country) => ADDRESS_SCHEMAS[country] || ADDRESS_SCHEMAS.default;
11994
+ const getAddressSchemaForCountry = (country) => country && ADDRESS_SCHEMAS[country] ? ADDRESS_SCHEMAS[country] : ADDRESS_SCHEMAS.default;
11954
11995
  const getAddressSchemaLabelsByCountry = (country) => {
11955
11996
  const schema = getAddressSchemaForCountry(country);
11956
11997
  return schema.reduce((labels2, field) => ({
@@ -12786,11 +12827,10 @@ function Address(props) {
12786
12827
  const stateRef = useRef({
12787
12828
  setState: null
12788
12829
  });
12789
- const addressFields = ADDRESS_SCHEMAS[dataProp == null ? void 0 : dataProp.country] ?? ADDRESS_SCHEMAS.default;
12790
12830
  const datasetUtils = datasetUtilities(i18n.locale);
12791
- const requiredFields = (requiredFieldsProp == null ? void 0 : requiredFieldsProp.includes("stateOrProvince")) || dataProp.country && COUNTRIES_WITH_STATES_DATASET.includes(dataProp.country) ? addressFields : addressFields.filter((ad) => ad !== "stateOrProvince");
12792
- const rules2 = useMemo(() => addressValidationRules(dataProp.country), [dataProp.country]);
12793
- const rulesV4 = useMemo(() => addressValidationRulesV4(dataProp.country, i18n), [dataProp.country, i18n]);
12831
+ const requiredFields = (requiredFieldsProp == null ? void 0 : requiredFieldsProp.includes("stateOrProvince")) || (dataProp == null ? void 0 : dataProp.country) && COUNTRIES_WITH_STATES_DATASET.includes(dataProp == null ? void 0 : dataProp.country) ? getAddressSchemaForCountry(dataProp == null ? void 0 : dataProp.country) : getAddressSchemaForCountry(dataProp == null ? void 0 : dataProp.country).filter((ad) => ad !== "stateOrProvince");
12832
+ const rules2 = useMemo(() => (dataProp == null ? void 0 : dataProp.country) ? addressValidationRules(dataProp == null ? void 0 : dataProp.country) : {}, [dataProp == null ? void 0 : dataProp.country]);
12833
+ const rulesV4 = useMemo(() => (dataProp == null ? void 0 : dataProp.country) ? addressValidationRulesV4(dataProp == null ? void 0 : dataProp.country, i18n) : {}, [dataProp == null ? void 0 : dataProp.country, i18n]);
12794
12834
  const {
12795
12835
  data,
12796
12836
  errors,
@@ -12818,7 +12858,7 @@ function Address(props) {
12818
12858
  optionalFields: optionalFieldsProp
12819
12859
  }, i18n);
12820
12860
  useEffect(() => {
12821
- if (dataProp.country !== data.country && dataProp.country) {
12861
+ if ((dataProp == null ? void 0 : dataProp.country) !== data.country && (dataProp == null ? void 0 : dataProp.country)) {
12822
12862
  requiredFields.forEach((field) => {
12823
12863
  handleChangeFor(field, "input")("");
12824
12864
  });
@@ -12826,7 +12866,7 @@ function Address(props) {
12826
12866
  setShowAutocompletedAddressFields(false);
12827
12867
  setShowAddAddressButton(true);
12828
12868
  }
12829
- }, [dataProp.country]);
12869
+ }, [dataProp == null ? void 0 : dataProp.country]);
12830
12870
  useEffect(() => {
12831
12871
  if (handleAddressSearch && handleFindAddress) {
12832
12872
  setIsHandlerPresent(true);
@@ -12837,12 +12877,13 @@ function Address(props) {
12837
12877
  }
12838
12878
  }, []);
12839
12879
  useEffect(() => {
12880
+ var _a, _b;
12840
12881
  const processedData = ADDRESS_SCHEMA.reduce((acc, cur) => {
12841
12882
  if (!formUtils.isRequiredField(cur)) {
12842
12883
  delete acc[cur];
12843
12884
  return acc;
12844
12885
  }
12845
- const fallbackValue = !formUtils.isRequiredField(cur) && !data[cur] && dataProp[cur] ? dataProp[cur] : "N/A";
12886
+ const fallbackValue = !formUtils.isRequiredField(cur) && !data[cur] && (dataProp == null ? void 0 : dataProp[cur]) ? dataProp[cur] : "N/A";
12846
12887
  return {
12847
12888
  ...acc,
12848
12889
  [cur]: formUtils.isRequiredField(cur) || !!data[cur] ? data[cur] : fallbackValue
@@ -12877,7 +12918,7 @@ function Address(props) {
12877
12918
  },
12878
12919
  isValid
12879
12920
  });
12880
- stateRef.current.setState({
12921
+ (_b = (_a = stateRef.current).setState) == null ? void 0 : _b.call(_a, {
12881
12922
  type: "addToState",
12882
12923
  value: {
12883
12924
  ...addressState,
@@ -12937,8 +12978,8 @@ function Address(props) {
12937
12978
  }) => {
12938
12979
  const hasHouseNumber = !!houseNumberOrName;
12939
12980
  if (hasHouseNumber) {
12940
- const isHouseNumberFirst = COUNTRIES_WITH_HOUSE_NUMBER_FIRST.includes(data.country);
12941
- const needsComma = COUNTRIES_WITH_COMMA_SEPARATED.includes(data.country);
12981
+ const isHouseNumberFirst = data.country ? COUNTRIES_WITH_HOUSE_NUMBER_FIRST.includes(data.country) : false;
12982
+ const needsComma = data.country ? COUNTRIES_WITH_COMMA_SEPARATED.includes(data.country) : false;
12942
12983
  const formattedAddress = isHouseNumberFirst ? `${houseNumberOrName}${needsComma ? ", " : " "}${street}` : `${street}${needsComma ? ", " : " "}${houseNumberOrName}`;
12943
12984
  return handleChangeFor("address", "input")(formattedAddress);
12944
12985
  }
@@ -12980,7 +13021,7 @@ function Address(props) {
12980
13021
  className: "adyen-kyc-search-address",
12981
13022
  children: [jsx(SearchAddress, {
12982
13023
  handleChangeFor,
12983
- data: dataProp,
13024
+ data: dataProp ?? {},
12984
13025
  handleAddressSearch,
12985
13026
  handleFindAddress,
12986
13027
  legalEntityId,
@@ -12994,7 +13035,7 @@ function Address(props) {
12994
13035
  className: "adyen-kyc-search-address--below-location",
12995
13036
  children: [jsx(Icon, {
12996
13037
  name: "location"
12997
- }), datasetUtils.getCountryName(dataProp.country)]
13038
+ }), datasetUtils.getCountryName(dataProp == null ? void 0 : dataProp.country)]
12998
13039
  }), showAddAddressButton && jsx(Button, {
12999
13040
  showAsLink: true,
13000
13041
  testId: "addAddressManuallyBtn",
@@ -15090,21 +15131,49 @@ const useIdVerificationToken = ({
15090
15131
  loadingStatus
15091
15132
  };
15092
15133
  };
15093
- const styles$3 = {
15134
+ const adyenKycLoadingInputForm = "adyen-kyc-loading-input__form";
15135
+ const adyenKycLoadingInputFormLoadingOpacity0 = "adyen-kyc-loading-input__form--loading-opacity0";
15136
+ const adyenKycLoadingInputFormLoadingOpacity01 = "adyen-kyc-loading-input__form--loading-opacity0-1";
15137
+ const adyenKycLoadingInputFormLoadingOpacity02 = "adyen-kyc-loading-input__form--loading-opacity0-2";
15138
+ const adyenKycLoadingInputFormLoadingOpacity03 = "adyen-kyc-loading-input__form--loading-opacity0-3";
15139
+ const adyenKycLoadingInputFormLoadingOpacity04 = "adyen-kyc-loading-input__form--loading-opacity0-4";
15140
+ const adyenKycLoadingInputFormLoadingOpacity05 = "adyen-kyc-loading-input__form--loading-opacity0-5";
15141
+ const adyenKycLoadingInputFormLoadingOpacity06 = "adyen-kyc-loading-input__form--loading-opacity0-6";
15142
+ const adyenKycLoadingInputFormLoadingOpacity07 = "adyen-kyc-loading-input__form--loading-opacity0-7";
15143
+ const adyenKycLoadingInputFormLoadingOpacity08 = "adyen-kyc-loading-input__form--loading-opacity0-8";
15144
+ const adyenKycLoadingInputFormLoadingOpacity09 = "adyen-kyc-loading-input__form--loading-opacity0-9";
15145
+ const adyenKycLoadingInputFormLoadingOpacity1 = "adyen-kyc-loading-input__form--loading-opacity1";
15146
+ const adyenKycLoadingInputLoader = "adyen-kyc-loading-input__loader";
15147
+ const adyenKycLoadingInputLoaderActive = "adyen-kyc-loading-input__loader--active";
15148
+ const styles$6 = {
15094
15149
  "adyen-kyc-loading-input__form": "adyen-kyc-loading-input__form",
15150
+ adyenKycLoadingInputForm,
15095
15151
  "adyen-kyc-loading-input__form--loading-opacity0": "adyen-kyc-loading-input__form--loading-opacity0",
15152
+ adyenKycLoadingInputFormLoadingOpacity0,
15096
15153
  "adyen-kyc-loading-input__form--loading-opacity0-1": "adyen-kyc-loading-input__form--loading-opacity0-1",
15154
+ adyenKycLoadingInputFormLoadingOpacity01,
15097
15155
  "adyen-kyc-loading-input__form--loading-opacity0-2": "adyen-kyc-loading-input__form--loading-opacity0-2",
15156
+ adyenKycLoadingInputFormLoadingOpacity02,
15098
15157
  "adyen-kyc-loading-input__form--loading-opacity0-3": "adyen-kyc-loading-input__form--loading-opacity0-3",
15158
+ adyenKycLoadingInputFormLoadingOpacity03,
15099
15159
  "adyen-kyc-loading-input__form--loading-opacity0-4": "adyen-kyc-loading-input__form--loading-opacity0-4",
15160
+ adyenKycLoadingInputFormLoadingOpacity04,
15100
15161
  "adyen-kyc-loading-input__form--loading-opacity0-5": "adyen-kyc-loading-input__form--loading-opacity0-5",
15162
+ adyenKycLoadingInputFormLoadingOpacity05,
15101
15163
  "adyen-kyc-loading-input__form--loading-opacity0-6": "adyen-kyc-loading-input__form--loading-opacity0-6",
15164
+ adyenKycLoadingInputFormLoadingOpacity06,
15102
15165
  "adyen-kyc-loading-input__form--loading-opacity0-7": "adyen-kyc-loading-input__form--loading-opacity0-7",
15166
+ adyenKycLoadingInputFormLoadingOpacity07,
15103
15167
  "adyen-kyc-loading-input__form--loading-opacity0-8": "adyen-kyc-loading-input__form--loading-opacity0-8",
15168
+ adyenKycLoadingInputFormLoadingOpacity08,
15104
15169
  "adyen-kyc-loading-input__form--loading-opacity0-9": "adyen-kyc-loading-input__form--loading-opacity0-9",
15170
+ adyenKycLoadingInputFormLoadingOpacity09,
15105
15171
  "adyen-kyc-loading-input__form--loading-opacity1": "adyen-kyc-loading-input__form--loading-opacity1",
15172
+ adyenKycLoadingInputFormLoadingOpacity1,
15106
15173
  "adyen-kyc-loading-input__loader": "adyen-kyc-loading-input__loader",
15107
- "adyen-kyc-loading-input__loader--active": "adyen-kyc-loading-input__loader--active"
15174
+ adyenKycLoadingInputLoader,
15175
+ "adyen-kyc-loading-input__loader--active": "adyen-kyc-loading-input__loader--active",
15176
+ adyenKycLoadingInputLoaderActive
15108
15177
  };
15109
15178
  const LoaderWrapper = ({
15110
15179
  children,
@@ -15118,12 +15187,12 @@ const LoaderWrapper = ({
15118
15187
  const digit = formOpacityStrArr[0];
15119
15188
  const decimal = formOpacityStrArr[1];
15120
15189
  const opacity = decimal ? `${digit}-${decimal}` : `${digit}`;
15121
- const wrapperClass = cx("adyen-kyc-loading-input__form", styles$3["adyen-kyc-loading-input__form"], {
15122
- [styles$3[`adyen-kyc-loading-input__form--loading-opacity${opacity}`]]: status === "loading"
15190
+ const wrapperClass = cx("adyen-kyc-loading-input__form", styles$6["adyen-kyc-loading-input__form"], {
15191
+ [styles$6[`adyen-kyc-loading-input__form--loading-opacity${opacity}`]]: status === "loading"
15123
15192
  });
15124
15193
  const loaderWrapperClass = cx({
15125
- [styles$3["adyen-kyc-loading-input__loader"]]: true,
15126
- [styles$3["adyen-kyc-loading-input__loader--active"]]: status === "loading" && showSpinner
15194
+ [styles$6["adyen-kyc-loading-input__loader"]]: true,
15195
+ [styles$6["adyen-kyc-loading-input__loader--active"]]: status === "loading" && showSpinner
15127
15196
  });
15128
15197
  const overlayClass = cx("adyen-kyc-loading-input", className);
15129
15198
  return jsxs("div", {
@@ -16638,11 +16707,19 @@ const handleKeys = (keys, callback, propagationMode = "stopIfMatches") => (event
16638
16707
  callback();
16639
16708
  }
16640
16709
  };
16641
- const styles$2 = {
16710
+ const adyenKycMultiSelectList = "adyen-kyc-multi-select-list";
16711
+ const adyenKycMultiSelectListItem = "adyen-kyc-multi-select-list-item";
16712
+ const adyenKycMultiSelectListItemWithDescription = "adyen-kyc-multi-select-list-item--with-description";
16713
+ const adyenKycCheckboxLabel = "adyen-kyc-checkbox__label";
16714
+ const styles$5 = {
16642
16715
  "adyen-kyc-multi-select-list": "adyen-kyc-multi-select-list",
16716
+ adyenKycMultiSelectList,
16643
16717
  "adyen-kyc-multi-select-list-item": "adyen-kyc-multi-select-list-item",
16718
+ adyenKycMultiSelectListItem,
16644
16719
  "adyen-kyc-multi-select-list-item--with-description": "adyen-kyc-multi-select-list-item--with-description",
16645
- "adyen-kyc-checkbox__label": "adyen-kyc-checkbox__label"
16720
+ adyenKycMultiSelectListItemWithDescription,
16721
+ "adyen-kyc-checkbox__label": "adyen-kyc-checkbox__label",
16722
+ adyenKycCheckboxLabel
16646
16723
  };
16647
16724
  const MultiSelectList = ({
16648
16725
  options,
@@ -16650,7 +16727,7 @@ const MultiSelectList = ({
16650
16727
  onSelect,
16651
16728
  mapToSelectItem
16652
16729
  }) => jsx("ul", {
16653
- className: styles$2["adyen-kyc-multi-select-list"],
16730
+ className: styles$5["adyen-kyc-multi-select-list"],
16654
16731
  children: options.map((option) => {
16655
16732
  const item = mapToSelectItem(option);
16656
16733
  const isSelected = selected.includes(option);
@@ -16664,8 +16741,8 @@ const MultiSelectList = ({
16664
16741
  onKeyDown: handleKeys(["Enter", " "], handleSelect),
16665
16742
  onSelect: handleSelect,
16666
16743
  isMulti: true,
16667
- className: cx([styles$2["adyen-kyc-multi-select-list-item"], {
16668
- [styles$2["adyen-kyc-multi-select-list-item--with-description"]]: !!item.description
16744
+ className: cx([styles$5["adyen-kyc-multi-select-list-item"], {
16745
+ [styles$5["adyen-kyc-multi-select-list-item--with-description"]]: !!item.description
16669
16746
  }])
16670
16747
  }, item.id);
16671
16748
  })
@@ -16686,7 +16763,7 @@ const DecisionMakerRoleComponent = (props) => {
16686
16763
  fieldValidationErrors,
16687
16764
  requiredFields,
16688
16765
  allowedRoles,
16689
- trustedRoles
16766
+ trustedRoles = []
16690
16767
  } = props;
16691
16768
  const {
16692
16769
  i18n
@@ -16744,7 +16821,7 @@ const DecisionMakerRoleComponent = (props) => {
16744
16821
  onSelect: changeRoles,
16745
16822
  mapToSelectItem: (role) => ({
16746
16823
  ...makeSelectItemForRole(role, i18n),
16747
- disabled: allowedRoles ? !(allowedRoles == null ? void 0 : allowedRoles.includes(role)) : trustedRoles.includes(role)
16824
+ disabled: allowedRoles && !allowedRoles.includes(role) || trustedRoles.includes(role)
16748
16825
  })
16749
16826
  })
16750
16827
  })]
@@ -19641,7 +19718,8 @@ function InstantBankVerification({
19641
19718
  case "GENERIC_ERROR":
19642
19719
  errorTitle = i18n.get("ranIntoTechnicalError");
19643
19720
  break;
19644
- case "UNKNOWN_ERROR": {
19721
+ case "UNKNOWN_ERROR":
19722
+ default: {
19645
19723
  errorTitle = i18n.get("couldNotCompleteAccountCheck");
19646
19724
  break;
19647
19725
  }
@@ -19812,6 +19890,7 @@ const payoutCurrencySupport = {
19812
19890
  iban: [Currencies.CAD, Currencies.USD]
19813
19891
  }
19814
19892
  };
19893
+ const shouldShowCheckGuidance = (country) => country === "US";
19815
19894
  const shouldShowPayoutAccountFormatSelector = (country) => countriesWithLocalFormat.has(country);
19816
19895
  const shouldShowPayoutAlert = (country) => shouldShowPayoutAccountFormatSelector(country) || countriesWithMultipleCurrencies.has(country);
19817
19896
  const getSupportedCurrencyGuidance = (i18n, country, requiredFields) => {
@@ -19963,7 +20042,9 @@ function BankAccountNumber(props) {
19963
20042
  } = useI18nContext();
19964
20043
  const {
19965
20044
  country,
19966
- fieldConfig = defaultFieldConfig$4
20045
+ fieldConfig = defaultFieldConfig$4,
20046
+ onFocus,
20047
+ onBlur
19967
20048
  } = props;
19968
20049
  const metadata = resolveFieldMetadata(fieldConfig[country], {}, defaultFieldMetadata$4);
19969
20050
  const mergedProps = mergeFieldMetadataIntoProps("bankAccountNumber", metadata, props);
@@ -19981,6 +20062,10 @@ function BankAccountNumber(props) {
19981
20062
  fieldProblems: mergedProps == null ? void 0 : mergedProps.fieldValidationErrors,
19982
20063
  obscuredFields: mergedProps.obscuredFields
19983
20064
  });
20065
+ const handleBlur = () => {
20066
+ onBlur == null ? void 0 : onBlur();
20067
+ handleChangeFor("bankAccountNumber", "blur");
20068
+ };
19984
20069
  const {
19985
20070
  updateStateSlice
19986
20071
  } = useGlobalDataSlice("payoutAccountDetails", "bankAccountNumber");
@@ -20007,8 +20092,9 @@ function BankAccountNumber(props) {
20007
20092
  field: ["bankAccountNumber"],
20008
20093
  input: ["bankAccountNumber"]
20009
20094
  },
20010
- onBlur: handleChangeFor("bankAccountNumber", "blur"),
20095
+ onBlur: handleBlur,
20011
20096
  onInput: handleChangeFor("bankAccountNumber", "input"),
20097
+ onFocus,
20012
20098
  readonly: formUtils.isReadOnly("bankAccountNumber"),
20013
20099
  value: data.bankAccountNumber ?? "",
20014
20100
  acceptObscuredValue: formUtils.isObscured("bankAccountNumber")
@@ -20265,7 +20351,7 @@ const defaultFieldConfig$2 = {
20265
20351
  }
20266
20352
  },
20267
20353
  [CountryCodes.UnitedStates]: {
20268
- label: "achRoutingNumber",
20354
+ label: "routingNumber",
20269
20355
  validators: validatePatternOnBlur(/^\d{9}$/),
20270
20356
  mask: {
20271
20357
  mask: makeMask(...numericInputs(9))
@@ -20308,7 +20394,9 @@ function BranchCode(props) {
20308
20394
  } = useI18nContext();
20309
20395
  const {
20310
20396
  country,
20311
- fieldConfig = defaultFieldConfig$2
20397
+ fieldConfig = defaultFieldConfig$2,
20398
+ onFocus,
20399
+ onBlur
20312
20400
  } = props;
20313
20401
  const metadata = resolveFieldMetadata(fieldConfig[country], {}, defaultFieldMetadata$2);
20314
20402
  const mergedProps = mergeFieldMetadataIntoProps("branchCode", metadata, props);
@@ -20328,6 +20416,10 @@ function BranchCode(props) {
20328
20416
  const {
20329
20417
  updateStateSlice
20330
20418
  } = useGlobalDataSlice("payoutAccountDetails", "branchCode");
20419
+ const handleBlur = () => {
20420
+ onBlur == null ? void 0 : onBlur();
20421
+ handleChangeFor("branchCode", "blur");
20422
+ };
20331
20423
  useEffect(() => {
20332
20424
  updateStateSlice({
20333
20425
  data,
@@ -20351,7 +20443,8 @@ function BranchCode(props) {
20351
20443
  value: data.branchCode ?? "",
20352
20444
  readonly: formUtils.isReadOnly("branchCode"),
20353
20445
  onInput: handleChangeFor("branchCode", "input"),
20354
- onBlur: handleChangeFor("branchCode", "blur"),
20446
+ onBlur: handleBlur,
20447
+ onFocus,
20355
20448
  "aria-required": true,
20356
20449
  "aria-label": formUtils.getLabel("branchCode"),
20357
20450
  "aria-invalid": !valid.branchCode
@@ -20689,6 +20782,48 @@ function SwiftCode(props) {
20689
20782
  "aria-invalid": !valid.swiftCode
20690
20783
  });
20691
20784
  }
20785
+ const adyenKycCheckGuidance = "adyen-kyc-check-guidance";
20786
+ const adyenKycCheckGuidanceImage = "adyen-kyc-check-guidance__image";
20787
+ const adyenKycCheckGuidanceImageAnnotated = "adyen-kyc-check-guidance__image--annotated";
20788
+ const adyenKycCheckGuidanceImageInactive = "adyen-kyc-check-guidance__image--inactive";
20789
+ const adyenKycUsCheckAccountNumber = "adyen-kyc-us-check-account-number";
20790
+ const adyenKycUsCheckRoutingNumber = "adyen-kyc-us-check-routing-number";
20791
+ const styles$4 = {
20792
+ "adyen-kyc-check-guidance": "adyen-kyc-check-guidance",
20793
+ adyenKycCheckGuidance,
20794
+ "adyen-kyc-check-guidance__image": "adyen-kyc-check-guidance__image",
20795
+ adyenKycCheckGuidanceImage,
20796
+ "adyen-kyc-check-guidance__image--annotated": "adyen-kyc-check-guidance__image--annotated",
20797
+ adyenKycCheckGuidanceImageAnnotated,
20798
+ "adyen-kyc-check-guidance__image--inactive": "adyen-kyc-check-guidance__image--inactive",
20799
+ adyenKycCheckGuidanceImageInactive,
20800
+ "adyen-kyc-us-check-account-number": "adyen-kyc-us-check-account-number",
20801
+ adyenKycUsCheckAccountNumber,
20802
+ "adyen-kyc-us-check-routing-number": "adyen-kyc-us-check-routing-number",
20803
+ adyenKycUsCheckRoutingNumber
20804
+ };
20805
+ const CheckGuidance = ({
20806
+ annotated
20807
+ }) => jsxs("div", {
20808
+ className: styles$4["adyen-kyc-check-guidance"],
20809
+ children: [jsx(Svg, {
20810
+ type: "image",
20811
+ name: "us-check-account-number",
20812
+ className: cx(styles$4["adyen-kyc-check-guidance__image"], styles$4["adyen-kyc-check-guidance__image--annotated"], {
20813
+ [styles$4["adyen-kyc-check-guidance__image--inactive"]]: annotated !== "account"
20814
+ })
20815
+ }), jsx(Svg, {
20816
+ type: "image",
20817
+ name: "us-check-routing-number",
20818
+ className: cx(styles$4["adyen-kyc-check-guidance__image"], styles$4["adyen-kyc-check-guidance__image--annotated"], {
20819
+ [styles$4["adyen-kyc-check-guidance__image--inactive"]]: annotated !== "routing"
20820
+ })
20821
+ }), jsx(Svg, {
20822
+ name: "us-check",
20823
+ type: "image",
20824
+ className: styles$4["adyen-kyc-check-guidance__image"]
20825
+ })]
20826
+ });
20692
20827
  const payoutAccountFields = ["accountHolder", ...ibanFields, ...branchCodeFields, ...swiftCodeFields, ...currencyFields, ...bankAccountNumberFields, ...bankNameFields, ...bankCodeFields];
20693
20828
  function PayoutAccountComponent(props) {
20694
20829
  const {
@@ -20699,11 +20834,13 @@ function PayoutAccountComponent(props) {
20699
20834
  const {
20700
20835
  i18n
20701
20836
  } = useI18nContext();
20837
+ const [checkAnnotation, setCheckAnnotation] = useState();
20702
20838
  const {
20703
20839
  isSettingEnabled
20704
20840
  } = useSettingsContext();
20705
20841
  const bankAccountFormatSelectionAllowed = isSettingEnabled(SettingNames.AllowBankAccountFormatSelection);
20706
20842
  const {
20843
+ heading,
20707
20844
  country,
20708
20845
  id,
20709
20846
  legalEntityResponse,
@@ -20711,6 +20848,7 @@ function PayoutAccountComponent(props) {
20711
20848
  arePayoutAccountDetailsInvalid,
20712
20849
  invalidFieldNames
20713
20850
  } = props;
20851
+ const showCheckGuidance = shouldShowCheckGuidance(country);
20714
20852
  const {
20715
20853
  data,
20716
20854
  valid,
@@ -20753,19 +20891,15 @@ function PayoutAccountComponent(props) {
20753
20891
  className: "adyen-kyc-individual__payout-account",
20754
20892
  "aria-describedby": "ariaErrorField",
20755
20893
  children: [jsx(FormHeader, {
20756
- heading: props.heading
20894
+ heading
20757
20895
  }), jsx(ErrorPanel, {
20758
20896
  verificationErrors: props == null ? void 0 : props.formVerificationErrors,
20759
20897
  validationErrors: props == null ? void 0 : props.fieldValidationErrors,
20760
20898
  formUtils,
20761
20899
  id: "ariaErrorField"
20762
- }), jsx(ContextGuidance, {
20763
- page: "Payout account details",
20764
- titleId: "whyDoINeedToFillInThisInformation",
20765
- contentId: "reasonForFillingPayoutDetails",
20766
- title: i18n.get("whyDoINeedToFillInThisInformation"),
20767
- content: i18n.get("reasonForFillingPayoutDetails")
20768
- }), formUtils.isRequiredField("accountHolder") && jsx(Field, {
20900
+ }), showCheckGuidance ? jsx(CheckGuidance, {
20901
+ annotated: checkAnnotation
20902
+ }) : void 0, formUtils.isRequiredField("accountHolder") && jsx(Field, {
20769
20903
  name: "accountHolder",
20770
20904
  label: formUtils.getLabel("accountHolder"),
20771
20905
  helper: i18n.get(accountHolderDescriptionKey),
@@ -20789,7 +20923,9 @@ function PayoutAccountComponent(props) {
20789
20923
  }), formUtils.isRequiredField("bankAccountNumber") && jsx(BankAccountNumber, {
20790
20924
  ...bankAccountNumberProps,
20791
20925
  country,
20792
- dataStoreId: id
20926
+ dataStoreId: id,
20927
+ onFocus: showCheckGuidance ? () => setCheckAnnotation("account") : void 0,
20928
+ onBlur: showCheckGuidance ? () => setCheckAnnotation(void 0) : void 0
20793
20929
  }), formUtils.isRequiredField("iban") && jsx(Iban, {
20794
20930
  ...ibanProps,
20795
20931
  dataStoreId: id,
@@ -20807,12 +20943,18 @@ function PayoutAccountComponent(props) {
20807
20943
  }), formUtils.isRequiredField("branchCode") && jsx(BranchCode, {
20808
20944
  ...branchCodeProps,
20809
20945
  country,
20810
- dataStoreId: id
20946
+ dataStoreId: id,
20947
+ onFocus: showCheckGuidance ? () => setCheckAnnotation("routing") : void 0,
20948
+ onBlur: showCheckGuidance ? () => setCheckAnnotation(void 0) : void 0
20811
20949
  }), formUtils.isRequiredField("bankCity") && jsx(BankCity, {
20812
20950
  ...bankCityProps,
20813
20951
  dataStoreId: id
20814
20952
  }), shouldShowPayoutAlert(country) && jsx(Alert, {
20815
20953
  title: getSupportedCurrencyGuidance(i18n, country, requiredFields)
20954
+ }), jsx(Typography, {
20955
+ variant: "caption",
20956
+ color: "tertiary",
20957
+ children: i18n.get("reasonForFillingPayoutDetails")
20816
20958
  }), arePayoutAccountDetailsInvalid && jsx(Alert, {
20817
20959
  className: "adyen-kyc-u-margin-top-16",
20818
20960
  variant: "error",
@@ -24254,12 +24396,22 @@ const dbaNameFieldMetadata = {
24254
24396
  label: "dbaName",
24255
24397
  validators: [validateNotEmptyOnBlur]
24256
24398
  };
24257
- const styles$1 = {
24399
+ const adyenKycStructuredList = "adyen-kyc-structured-list";
24400
+ const adyenKycStructuredListListItem = "adyen-kyc-structured-list__list-item";
24401
+ const adyenLayoutMd = "adyen-layout-md";
24402
+ const adyenKycStructuredListLabel = "adyen-kyc-structured-list__label";
24403
+ const adyenKycStructuredListValue = "adyen-kyc-structured-list__value";
24404
+ const styles$3 = {
24258
24405
  "adyen-kyc-structured-list": "adyen-kyc-structured-list",
24406
+ adyenKycStructuredList,
24259
24407
  "adyen-kyc-structured-list__list-item": "adyen-kyc-structured-list__list-item",
24408
+ adyenKycStructuredListListItem,
24260
24409
  "adyen-layout-md": "adyen-layout-md",
24410
+ adyenLayoutMd,
24261
24411
  "adyen-kyc-structured-list__label": "adyen-kyc-structured-list__label",
24262
- "adyen-kyc-structured-list__value": "adyen-kyc-structured-list__value"
24412
+ adyenKycStructuredListLabel,
24413
+ "adyen-kyc-structured-list__value": "adyen-kyc-structured-list__value",
24414
+ adyenKycStructuredListValue
24263
24415
  };
24264
24416
  const StructuredList = ({
24265
24417
  items
@@ -24268,14 +24420,14 @@ const StructuredList = ({
24268
24420
  i18n
24269
24421
  } = useI18nContext();
24270
24422
  return jsx("dl", {
24271
- className: styles$1["adyen-kyc-structured-list"],
24423
+ className: styles$3["adyen-kyc-structured-list"],
24272
24424
  children: items.map((item) => jsxs("div", {
24273
- className: styles$1["adyen-kyc-structured-list__list-item"],
24425
+ className: styles$3["adyen-kyc-structured-list__list-item"],
24274
24426
  children: [jsx("dt", {
24275
- className: styles$1["adyen-kyc-structured-list__label"],
24427
+ className: styles$3["adyen-kyc-structured-list__label"],
24276
24428
  children: i18n.get(item.labelKey)
24277
24429
  }), jsx("dd", {
24278
- className: styles$1["adyen-kyc-structured-list__value"],
24430
+ className: styles$3["adyen-kyc-structured-list__value"],
24279
24431
  children: item.value
24280
24432
  })]
24281
24433
  }, item.labelKey))
@@ -24724,8 +24876,8 @@ function AdditionalInformationComponent({
24724
24876
  variant: "title",
24725
24877
  children: i18n.get("registeredBusinessAddress")
24726
24878
  }), jsx(Typography, {
24727
- el: "h4",
24728
- variant: "caption",
24879
+ el: "p",
24880
+ variant: "body",
24729
24881
  children: i18n.get("registeredBusinessAddressDescription")
24730
24882
  })]
24731
24883
  }), jsx(Address, {
@@ -24754,8 +24906,8 @@ function AdditionalInformationComponent({
24754
24906
  variant: "title",
24755
24907
  children: i18n.get("principalPlaceOfBusiness")
24756
24908
  }), jsx(Typography, {
24757
- el: "h4",
24758
- variant: "caption",
24909
+ el: "p",
24910
+ variant: "body",
24759
24911
  children: i18n.get("principalPlaceOfBusinessDescription")
24760
24912
  })]
24761
24913
  }), jsx(Field, {
@@ -26272,14 +26424,14 @@ const Modal = ({
26272
26424
  tertiary: true,
26273
26425
  "aria-label": "back",
26274
26426
  icon: "arrow-left",
26275
- className: "adyen-kyc-modal-button-blur",
26427
+ className: "adyen-kyc-modal-button",
26276
26428
  onClick: onBack,
26277
26429
  shaded: true
26278
26430
  }) : jsx("div", {}), onClose ? jsx(Button, {
26279
26431
  tertiary: true,
26280
26432
  "aria-label": "close",
26281
26433
  icon: "cross",
26282
- className: "adyen-kyc-modal-button-blur",
26434
+ className: "adyen-kyc-modal-button",
26283
26435
  onClick: onClose,
26284
26436
  shaded: true
26285
26437
  }) : jsx("div", {})]
@@ -26607,16 +26759,11 @@ const DropinLayout = ({
26607
26759
  if (modalOpen) {
26608
26760
  return jsx(Modal, {
26609
26761
  footer,
26610
- onClose: handleClose,
26762
+ onClose: !onBack ? handleClose : void 0,
26611
26763
  onBack,
26612
26764
  children: jsx("div", {
26613
- className: "adyen-kyc-dropin",
26614
- children: jsx("div", {
26615
- className: "adyen-kyc-dropin__content",
26616
- children: jsx("div", {
26617
- children: content
26618
- })
26619
- })
26765
+ className: "adyen-kyc-modal-content",
26766
+ children: content
26620
26767
  })
26621
26768
  });
26622
26769
  }
@@ -34676,6 +34823,47 @@ function RoleAndTypeDropinComponent({
34676
34823
  content
34677
34824
  });
34678
34825
  }
34826
+ const adyenKycOutlinedIcon = "adyen-kyc-outlined-icon";
34827
+ const styles$2 = {
34828
+ "adyen-kyc-outlined-icon": "adyen-kyc-outlined-icon",
34829
+ adyenKycOutlinedIcon
34830
+ };
34831
+ const OutlinedIcon = ({
34832
+ name
34833
+ }) => jsx("div", {
34834
+ className: styles$2["adyen-kyc-outlined-icon"],
34835
+ children: jsx(Icon, {
34836
+ name
34837
+ })
34838
+ });
34839
+ const Splashscreen = ({
34840
+ title,
34841
+ subtitle,
34842
+ icon,
34843
+ buttonText,
34844
+ onClick
34845
+ }) => {
34846
+ const {
34847
+ i18n
34848
+ } = useI18nContext();
34849
+ return jsxs("div", {
34850
+ className: "adyen-kyc-splashscreen",
34851
+ children: [icon && jsx(OutlinedIcon, {
34852
+ name: icon
34853
+ }), jsx(Typography, {
34854
+ el: "h2",
34855
+ variant: "title-l",
34856
+ children: title
34857
+ }), jsx(Typography, {
34858
+ el: "p",
34859
+ variant: "body",
34860
+ children: subtitle
34861
+ }), onClick && jsx(Button, {
34862
+ onClick,
34863
+ label: buttonText ?? i18n.get("finish")
34864
+ })]
34865
+ });
34866
+ };
34679
34867
  const serviceAgreementValidationRules = {
34680
34868
  signer: {
34681
34869
  modes: ["blur"],
@@ -34769,7 +34957,8 @@ const serviceAgreementTypesTranslationMapping = {
34769
34957
  adyenAccount: "businessAccountTerms",
34770
34958
  adyenCard: "cardUserTerms",
34771
34959
  adyenFranchisee: "franchiseesTAndCs",
34772
- adyenPccr: "pccr"
34960
+ adyenPccr: "pccr",
34961
+ adyenChargeCard: "chargeCardUserAgreement"
34773
34962
  };
34774
34963
  const logger$i = createLogger("ServiceAgreementDropinComponent");
34775
34964
  const FALLBACK_LANGUAGE_CODE = "en";
@@ -34823,7 +35012,9 @@ function ServiceAgreementDropinComponent({
34823
35012
  const forms2 = [...signedForms, ...formsToBeSigned];
34824
35013
  const [activeFormIndex, setActiveFormIndex] = useState(0);
34825
35014
  const [activeForm, setActiveForm] = useState(forms2[activeFormIndex]);
35015
+ const [hasFinished, setHasFinished] = useState(false);
34826
35016
  const canSign = (serviceAgreementTypes == null ? void 0 : serviceAgreementTypes.includes(activeForm.serviceAgreementType)) && !activeForm.acceptanceId;
35017
+ const isLastStep = activeFormIndex === forms2.length - 1;
34827
35018
  const showSignerCard = !!activeForm.acceptanceId;
34828
35019
  const handleServiceAgreementIsNotAvailableInThatLanguage = useCallback(() => {
34829
35020
  showToast({
@@ -35076,7 +35267,7 @@ function ServiceAgreementDropinComponent({
35076
35267
  homeButtonLabel: i18n.get("goToOverview"),
35077
35268
  onNext: canSign ? handleSignClick : () => gotoForm(activeFormIndex + 1),
35078
35269
  nextButtonLabel: i18n.get(canSign ? "sign" : "next"),
35079
- nextButtonDisabled: !canSign && activeFormIndex === forms2.length - 1,
35270
+ nextButtonDisabled: !canSign && isLastStep,
35080
35271
  onBack: () => gotoForm(activeFormIndex - 1),
35081
35272
  hideBackButton: activeFormIndex === 0,
35082
35273
  backButtonLabel: i18n.get("previous")
@@ -35084,6 +35275,15 @@ function ServiceAgreementDropinComponent({
35084
35275
  });
35085
35276
  const currentStep = signedForms.length;
35086
35277
  const totalSteps = forms2.length;
35278
+ const handleClick = async () => {
35279
+ if (canSign) {
35280
+ await handleSignClick();
35281
+ } else if (!isLastStep) {
35282
+ gotoForm(activeFormIndex + 1);
35283
+ } else {
35284
+ setHasFinished(true);
35285
+ }
35286
+ };
35087
35287
  const footer = jsx(EmbeddedActionBar, {
35088
35288
  left: jsx(StepProgressIndicator, {
35089
35289
  activeStepIndex: currentStep ?? 0,
@@ -35096,15 +35296,20 @@ function ServiceAgreementDropinComponent({
35096
35296
  jsx(Button, {
35097
35297
  secondary: !canSign,
35098
35298
  label: i18n.get(canSign ? "signAndContinue" : "next"),
35099
- onClick: canSign ? handleSignClick : () => gotoForm(activeFormIndex + 1)
35299
+ onClick: handleClick
35100
35300
  })
35101
35301
  )
35102
35302
  });
35303
+ const endScreen = hasFinished && jsx(Splashscreen, {
35304
+ icon: "check",
35305
+ title: i18n.get("serviceAgreementSignedAndDated"),
35306
+ onClick: handleCloseClick
35307
+ });
35103
35308
  return jsx(DropinLayout, {
35104
35309
  showAsModal: asModal,
35105
35310
  onClose: handleCloseClick,
35106
35311
  content: jsxs(Fragment, {
35107
- children: [!asEmbedded && sidebar, content]
35312
+ children: [!asEmbedded && sidebar, endScreen || content]
35108
35313
  }),
35109
35314
  footer: asEmbedded ? footer : void 0
35110
35315
  });
@@ -37664,7 +37869,8 @@ function CreateContractingComponent({
37664
37869
  getServiceAgreementAcceptanceInfos: getServiceAgreementAcceptanceInfos2,
37665
37870
  getAcceptedServiceAgreement: getAcceptedServiceAgreement2,
37666
37871
  downloadAcceptedServiceAgreement,
37667
- downloadUnacceptedServiceAgreement
37872
+ downloadUnacceptedServiceAgreement,
37873
+ acceptServiceAgreement: acceptServiceAgreement2
37668
37874
  } = useComponentApi(legalEntityId);
37669
37875
  const [isLoading, setIsLoading] = useState(true);
37670
37876
  const [legalEntity, setLegalEntity] = useState();
@@ -37686,6 +37892,14 @@ function CreateContractingComponent({
37686
37892
  data
37687
37893
  }) => setServiceAgreementAcceptanceInfos(data)).catch(logger$g.error);
37688
37894
  }, [getServiceAgreementAcceptanceInfos2, legalEntityId]);
37895
+ const handleSign = useCallback(
37896
+ // @ts-ignore-error:next-line ts does not infer type correctly
37897
+ async (...params) => {
37898
+ await acceptServiceAgreement2(...params);
37899
+ await Promise.all([fetchLegalEntity(), fetchUnsigned(), fetchSigned()]);
37900
+ },
37901
+ [acceptServiceAgreement2, fetchLegalEntity, fetchSigned, fetchUnsigned]
37902
+ );
37689
37903
  useEffect(() => {
37690
37904
  (async () => {
37691
37905
  setIsLoading(true);
@@ -37696,8 +37910,6 @@ function CreateContractingComponent({
37696
37910
  }, [fetchLegalEntity, fetchSigned, fetchUnsigned]);
37697
37911
  const handleHomeClick = () => {
37698
37912
  };
37699
- const handleSign = () => {
37700
- };
37701
37913
  return isLoading || !legalEntity ? jsx(Loader, {
37702
37914
  size: "medium"
37703
37915
  }) : jsx(ServiceAgreementDropinComponent, {
@@ -37873,14 +38085,19 @@ function CreateTransferInstrumentComponent({
37873
38085
  taskType: TaskTypes.PAYOUT
37874
38086
  });
37875
38087
  }
37876
- var OnboardingStatus = /* @__PURE__ */ ((OnboardingStatus2) => {
37877
- OnboardingStatus2["AWAITING_DATA"] = "AWAITING_DATA";
37878
- OnboardingStatus2["IN_REVIEW"] = "IN_REVIEW";
37879
- OnboardingStatus2["UNSUCCESSFUL"] = "UNSUCCESSFUL";
37880
- OnboardingStatus2["REJECTED"] = "REJECTED";
37881
- OnboardingStatus2["VERIFIED"] = "VERIFIED";
37882
- return OnboardingStatus2;
37883
- })(OnboardingStatus || {});
38088
+ const adyenKycSkeleton = "adyen-kyc-skeleton";
38089
+ const skeleton = "skeleton";
38090
+ const adyenKycSkeletonCircle = "adyen-kyc-skeleton__circle";
38091
+ const adyenKycSkeletonText = "adyen-kyc-skeleton__text";
38092
+ const styles$1 = {
38093
+ "adyen-kyc-skeleton": "adyen-kyc-skeleton",
38094
+ adyenKycSkeleton,
38095
+ skeleton,
38096
+ "adyen-kyc-skeleton__circle": "adyen-kyc-skeleton__circle",
38097
+ adyenKycSkeletonCircle,
38098
+ "adyen-kyc-skeleton__text": "adyen-kyc-skeleton__text",
38099
+ adyenKycSkeletonText
38100
+ };
37884
38101
  const Skeleton = ({
37885
38102
  circle = false,
37886
38103
  text = false,
@@ -37888,8 +38105,8 @@ const Skeleton = ({
37888
38105
  width
37889
38106
  }) => {
37890
38107
  const classNames = cx("adyen-kyc-skeleton", {
37891
- "adyen-kyc-skeleton__circle": circle,
37892
- "adyen-kyc-skeleton__text": text
38108
+ [styles$1["adyen-kyc-skeleton__circle"]]: circle,
38109
+ [styles$1["adyen-kyc-skeleton__text"]]: text
37893
38110
  });
37894
38111
  return jsx("div", {
37895
38112
  className: classNames,
@@ -37899,14 +38116,34 @@ const Skeleton = ({
37899
38116
  }
37900
38117
  });
37901
38118
  };
38119
+ const adyenKycEmbeddedStatus = "adyen-kyc-embedded-status";
38120
+ const adyenKycEmbeddedStatusLoading = "adyen-kyc-embedded-status--loading";
38121
+ const adyenKycEmbeddedStatusAvatar = "adyen-kyc-embedded-status__avatar";
38122
+ const adyenKycEmbeddedStatusLight = "adyen-kyc-embedded-status--light";
38123
+ const adyenKycEmbeddedStatusIcon = "adyen-kyc-embedded-status__icon";
38124
+ const adyenKycEmbeddedStatusInfo = "adyen-kyc-embedded-status__info";
37902
38125
  const styles = {
37903
38126
  "adyen-kyc-embedded-status": "adyen-kyc-embedded-status",
38127
+ adyenKycEmbeddedStatus,
37904
38128
  "adyen-kyc-embedded-status--loading": "adyen-kyc-embedded-status--loading",
38129
+ adyenKycEmbeddedStatusLoading,
37905
38130
  "adyen-kyc-embedded-status__avatar": "adyen-kyc-embedded-status__avatar",
38131
+ adyenKycEmbeddedStatusAvatar,
37906
38132
  "adyen-kyc-embedded-status--light": "adyen-kyc-embedded-status--light",
38133
+ adyenKycEmbeddedStatusLight,
37907
38134
  "adyen-kyc-embedded-status__icon": "adyen-kyc-embedded-status__icon",
37908
- "adyen-kyc-embedded-status__info": "adyen-kyc-embedded-status__info"
38135
+ adyenKycEmbeddedStatusIcon,
38136
+ "adyen-kyc-embedded-status__info": "adyen-kyc-embedded-status__info",
38137
+ adyenKycEmbeddedStatusInfo
37909
38138
  };
38139
+ var OnboardingStatus = /* @__PURE__ */ ((OnboardingStatus2) => {
38140
+ OnboardingStatus2["AWAITING_DATA"] = "AWAITING_DATA";
38141
+ OnboardingStatus2["IN_REVIEW"] = "IN_REVIEW";
38142
+ OnboardingStatus2["UNSUCCESSFUL"] = "UNSUCCESSFUL";
38143
+ OnboardingStatus2["REJECTED"] = "REJECTED";
38144
+ OnboardingStatus2["VERIFIED"] = "VERIFIED";
38145
+ return OnboardingStatus2;
38146
+ })(OnboardingStatus || {});
37910
38147
  const statusToTag = (status) => {
37911
38148
  switch (status) {
37912
38149
  case OnboardingStatus.IN_REVIEW:
@@ -37974,8 +38211,8 @@ const EmbeddedStatus = ({
37974
38211
  return jsxs("button", {
37975
38212
  type: "button",
37976
38213
  className: cx(className, styles["adyen-kyc-embedded-status"], {
37977
- "adyen-kyc-embedded-status--loading": loading,
37978
- "adyen-kyc-embedded-status--light": light
38214
+ [styles["adyen-kyc-embedded-status--loading"]]: loading,
38215
+ [styles["adyen-kyc-embedded-status--light"]]: light
37979
38216
  }),
37980
38217
  onClick,
37981
38218
  ...props,
@@ -38037,6 +38274,66 @@ const EmbeddedStatus = ({
38037
38274
  })]
38038
38275
  });
38039
38276
  };
38277
+ function ContractingStatus({
38278
+ legalEntityId,
38279
+ onClick,
38280
+ title,
38281
+ subtitle = ""
38282
+ }) {
38283
+ const {
38284
+ getServiceAgreementStatus: getServiceAgreementStatus2,
38285
+ getServiceAgreementAcceptanceInfos: getServiceAgreementAcceptanceInfos2
38286
+ } = useComponentApi(legalEntityId);
38287
+ const [isLoading, setIsLoading] = useState(true);
38288
+ const [hasSignedAll, setHasSignedAll] = useState(false);
38289
+ const getUnsigned = useCallback(async () => getServiceAgreementStatus2(legalEntityId), [getServiceAgreementStatus2, legalEntityId]);
38290
+ const getSigned = useCallback(async () => getServiceAgreementAcceptanceInfos2(legalEntityId), [getServiceAgreementAcceptanceInfos2, legalEntityId]);
38291
+ const getStatus = useCallback(async () => {
38292
+ const [signedRes, unsignedRes] = await Promise.all([getSigned(), getUnsigned()]);
38293
+ const signed = signedRes.data.map((d) => d.type);
38294
+ const unsigned = unsignedRes.termsOfServiceTypes;
38295
+ return signed.length !== 0 && unsigned.length === 0;
38296
+ }, [getUnsigned, getSigned]);
38297
+ useEffect(() => {
38298
+ getStatus().then((allSigned) => {
38299
+ setIsLoading(false);
38300
+ setHasSignedAll(allSigned);
38301
+ }).catch(() => {
38302
+ });
38303
+ });
38304
+ const handleClick = () => {
38305
+ onClick == null ? void 0 : onClick();
38306
+ };
38307
+ return hasSignedAll ? jsx(EmbeddedStatus, {
38308
+ onClick,
38309
+ title,
38310
+ subtitle,
38311
+ tagLabel: "complete",
38312
+ loading: isLoading
38313
+ }) : jsx(EmbeddedStatus, {
38314
+ onClick,
38315
+ actionButton: {
38316
+ labelKey: "sign",
38317
+ onClick: handleClick
38318
+ },
38319
+ title,
38320
+ subtitle,
38321
+ loading: isLoading
38322
+ });
38323
+ }
38324
+ function ManageContractingComponent({
38325
+ legalEntityId,
38326
+ onClick
38327
+ }) {
38328
+ const {
38329
+ i18n
38330
+ } = useI18nContext();
38331
+ return jsx(ContractingStatus, {
38332
+ legalEntityId,
38333
+ title: i18n.get("serviceAgreements"),
38334
+ onClick
38335
+ });
38336
+ }
38040
38337
  function LegalEntityStatus({
38041
38338
  legalEntityId,
38042
38339
  onClick
@@ -38125,6 +38422,51 @@ function useInterval(callback, initialDelay = DEFAULT_POLLING_INTERVAL) {
38125
38422
  }, [timeoutId]);
38126
38423
  return timeoutId;
38127
38424
  }
38425
+ const Confirm = ({
38426
+ onConfirm,
38427
+ title,
38428
+ confirmBtnLabel,
38429
+ onClose
38430
+ }) => {
38431
+ const {
38432
+ i18n
38433
+ } = useI18nContext();
38434
+ const [isInFlight, setIsInFlight] = useState(false);
38435
+ const handleConfirm = async () => {
38436
+ setIsInFlight(true);
38437
+ try {
38438
+ await onConfirm();
38439
+ } finally {
38440
+ setIsInFlight(false);
38441
+ onClose();
38442
+ }
38443
+ };
38444
+ const modalHeader = jsx(Typography, {
38445
+ variant: "title",
38446
+ el: "h3",
38447
+ className: "adyen-kyc-u-margin-top-8 adyen-kyc-u-margin-left-8",
38448
+ children: title
38449
+ });
38450
+ const modalFooter = jsx(EmbeddedActionBar, {
38451
+ right: jsxs(Fragment, {
38452
+ children: [jsx(Button, {
38453
+ label: i18n.get("cancel"),
38454
+ onClick: onClose,
38455
+ secondary: true
38456
+ }), jsx(Button, {
38457
+ label: confirmBtnLabel || i18n.get("confirm"),
38458
+ onClick: handleConfirm,
38459
+ critical: true,
38460
+ disabled: isInFlight
38461
+ })]
38462
+ })
38463
+ });
38464
+ return jsx(Modal, {
38465
+ header: modalHeader,
38466
+ footer: modalFooter,
38467
+ size: "small"
38468
+ });
38469
+ };
38128
38470
  function ManageTransferInstrumentOverviewItemModal({
38129
38471
  status,
38130
38472
  transferInstrument,
@@ -38136,6 +38478,7 @@ function ManageTransferInstrumentOverviewItemModal({
38136
38478
  const {
38137
38479
  i18n
38138
38480
  } = useI18nContext();
38481
+ const [confirmOpen, setConfirmOpen] = useState(false);
38139
38482
  const datasetUtils = datasetUtilities(i18n.locale);
38140
38483
  const isReviewInProgress = status === "PROCESSING";
38141
38484
  const showEditButton = status !== "ERROR" && !(transferInstrument == null ? void 0 : transferInstrument.bankAccount.trustedSource);
@@ -38192,14 +38535,23 @@ function ManageTransferInstrumentOverviewItemModal({
38192
38535
  };
38193
38536
  const modalHeader = jsx(Typography, {
38194
38537
  variant: "title-l",
38538
+ el: "h3",
38539
+ className: "adyen-kyc-manage-ti-overview-item-summary__header",
38195
38540
  children: i18n.get("bankAccount")
38196
38541
  });
38542
+ const handleRemove = async () => {
38543
+ await onRemove(transferInstrument.id);
38544
+ onClose();
38545
+ };
38197
38546
  const modalFooter = () => {
38198
38547
  if (!transferInstrument) return;
38199
38548
  const actions = jsxs(Fragment, {
38200
- children: [jsx(Remove, {
38201
- onRemove: async () => onRemove(transferInstrument.id),
38202
- isRemoveDisabled: isReviewInProgress
38549
+ children: [jsx(Button, {
38550
+ title: i18n.get("delete"),
38551
+ icon: "bin",
38552
+ secondary: true,
38553
+ disabled: isReviewInProgress,
38554
+ onClick: () => setConfirmOpen(true)
38203
38555
  }), showEditButton && jsx(Button, {
38204
38556
  label: i18n.get("edit"),
38205
38557
  onClick: () => onEdit(transferInstrument.id),
@@ -38210,28 +38562,35 @@ function ManageTransferInstrumentOverviewItemModal({
38210
38562
  right: actions
38211
38563
  });
38212
38564
  };
38213
- return jsx(Modal, {
38214
- header: modalHeader,
38215
- onClose: () => onClose(),
38216
- footer: modalFooter(),
38217
- children: !transferInstrument ? jsx(Loader, {}) : jsxs("div", {
38218
- className: "adyen-kyc-manage-ti-overview-item-summary",
38219
- children: [!!((_b = (_a = problems.BankAccount) == null ? void 0 : _a[transferInstrument.id]) == null ? void 0 : _b.verificationErrors) && jsx(VerificationErrorAlert, {
38220
- className: "adyen-kyc-manage-ti-overview-item-summary__error",
38221
- problems: (_c = problems.BankAccount) == null ? void 0 : _c[transferInstrument.id],
38222
- children: jsx(Button, {
38223
- className: "adyen-kyc-manage-ti-overview-item-summary__error-button",
38224
- label: i18n.get("editDetails"),
38225
- tertiary: true,
38226
- onClick: () => onEdit(transferInstrument.id)
38227
- })
38228
- }), getStructuredLists().map((listItems) => jsx(Card, {
38229
- className: "adyen-kyc-manage-ti-overview-item-summary__card",
38230
- children: jsx(StructuredList, {
38231
- items: listItems
38232
- })
38233
- }, listItems))]
38234
- })
38565
+ return jsxs(Fragment, {
38566
+ children: [jsx(Modal, {
38567
+ header: modalHeader,
38568
+ onClose,
38569
+ footer: modalFooter(),
38570
+ children: !transferInstrument ? jsx(Loader, {}) : jsxs("div", {
38571
+ className: "adyen-kyc-manage-ti-overview-item-summary",
38572
+ children: [!!((_b = (_a = problems.BankAccount) == null ? void 0 : _a[transferInstrument.id]) == null ? void 0 : _b.verificationErrors) && jsx(VerificationErrorAlert, {
38573
+ className: "adyen-kyc-manage-ti-overview-item-summary__error",
38574
+ problems: (_c = problems.BankAccount) == null ? void 0 : _c[transferInstrument.id],
38575
+ children: jsx(Button, {
38576
+ className: "adyen-kyc-manage-ti-overview-item-summary__error-button",
38577
+ label: i18n.get("editDetails"),
38578
+ tertiary: true,
38579
+ onClick: () => onEdit(transferInstrument.id)
38580
+ })
38581
+ }), getStructuredLists().map((listItems) => jsx(Card, {
38582
+ className: "adyen-kyc-manage-ti-overview-item-summary__card",
38583
+ children: jsx(StructuredList, {
38584
+ items: listItems
38585
+ })
38586
+ }, listItems))]
38587
+ })
38588
+ }), confirmOpen && jsx(Confirm, {
38589
+ title: i18n.get("areYouSureYouWantToDeleteThisBankAccount"),
38590
+ confirmBtnLabel: i18n.get("delete"),
38591
+ onConfirm: handleRemove,
38592
+ onClose: () => setConfirmOpen(false)
38593
+ })]
38235
38594
  });
38236
38595
  }
38237
38596
  function ManageTransferInstrumentOverviewItem({
@@ -38285,6 +38644,9 @@ function ManageTransferInstrumentOverview({
38285
38644
  const {
38286
38645
  i18n
38287
38646
  } = useI18nContext();
38647
+ const {
38648
+ showToast
38649
+ } = useToastContext();
38288
38650
  const {
38289
38651
  getTransferInstrument: getTransferInstrument2,
38290
38652
  deleteTransferInstrument: deleteTransferInstrument2
@@ -38307,6 +38669,10 @@ function ManageTransferInstrumentOverview({
38307
38669
  await deleteTransferInstrument2(transferInstrumentId);
38308
38670
  onRemove(transferInstrumentId);
38309
38671
  } catch (e) {
38672
+ showToast({
38673
+ label: i18n.get("thereWasAnErrorTryAgain"),
38674
+ type: "error"
38675
+ });
38310
38676
  logger$d.error(e);
38311
38677
  }
38312
38678
  };
@@ -40409,6 +40775,7 @@ const componentsMap = {
40409
40775
  onboardingDropinComponent: OnboardingDropinComponent,
40410
40776
  manageIndividualComponent: ManageIndividualComponent,
40411
40777
  createContractingComponent: CreateContractingComponent,
40778
+ manageContractingComponent: ManageContractingComponent,
40412
40779
  viewVerificationStatusComponent: ViewVerificationStatusComponent,
40413
40780
  updateLegalEntityForHighExposureComponent: UpdateLegalEntityForHighExposure
40414
40781
  };
@@ -40865,7 +41232,7 @@ const ConfigurationApiProvider = ({
40865
41232
  isEmbeddedDropin,
40866
41233
  loadingContext
40867
41234
  } = authContext;
40868
- const sdkVersion = "3.28.1";
41235
+ const sdkVersion = "3.29.0";
40869
41236
  useAnalytics({
40870
41237
  onUserEvent,
40871
41238
  legalEntityId: rootLegalEntityId,
@@ -41547,7 +41914,7 @@ const DebugModal = ({
41547
41914
  };
41548
41915
  const copyToClipboard = async () => {
41549
41916
  const toCopy = {
41550
- sdkVersion: "3.28.1",
41917
+ sdkVersion: "3.29.0",
41551
41918
  experiments: Object.fromEntries(allExperimentsWithValues),
41552
41919
  settings: Object.fromEntries(allSettingsWithValues)
41553
41920
  };
@@ -41586,7 +41953,7 @@ const DebugModal = ({
41586
41953
  children: [jsxs("div", {
41587
41954
  className: "adyen-kyc-debug-modal__meta",
41588
41955
  children: [jsxs("span", {
41589
- children: ["SDK version: ", "3.28.1"]
41956
+ children: ["SDK version: ", "3.29.0"]
41590
41957
  }), jsxs("span", {
41591
41958
  children: ["rootLegalEntityId: ", rootLegalEntityId]
41592
41959
  })]
@@ -42505,6 +42872,11 @@ const createContractingComponentSchema = {
42505
42872
  type: "boolean"
42506
42873
  }
42507
42874
  };
42875
+ const manageContractingComponentSchema = {
42876
+ legalEntityId: {
42877
+ type: "string"
42878
+ }
42879
+ };
42508
42880
  const viewVerificationStatusComponentSchema = {
42509
42881
  legalEntityId: {
42510
42882
  type: "string",
@@ -42565,6 +42937,7 @@ const componentsSchemaMap = {
42565
42937
  createIndividualComponent: createIndividualComponentSchema,
42566
42938
  manageIndividualComponent: manageIndividualComponentSchema,
42567
42939
  createContractingComponent: createContractingComponentSchema,
42940
+ manageContractingComponent: manageContractingComponentSchema,
42568
42941
  createTransferInstrumentComponent: createTransferInstrumentComponentSchema,
42569
42942
  viewVerificationStatusComponent: viewVerificationStatusComponentSchema,
42570
42943
  updateLegalEntityForHighExposureComponent: updateLegalEntityForHighExposureComponentSchema,