@adyen/kyc-components 3.41.4 → 3.41.6

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.
@@ -1455,7 +1455,23 @@ const defaultLocaleTranslations = {
1455
1455
  yourIbanShouldBeginWith_: "Your IBAN should begin with %{countryCode}.",
1456
1456
  yourLoanApplicationHasBeenReceived: "Thank you for providing your additional information. The data provided is being reviewed. You'll be notified if anything else is needed.",
1457
1457
  zentralesVereinsregisterId: "Zentrales Vereinsregister ID",
1458
- zipCode: "ZIP code"
1458
+ zipCode: "ZIP code",
1459
+ invalidInputError: "There was an invalid input error:",
1460
+ bankAccountNeeded: "A bank account is needed.",
1461
+ noIssuesFound: "No issues found.",
1462
+ newEntityAlwaysEmpty: "We still need to create this entity.",
1463
+ missingRequiredDecisionMakers: "We don't yet have sufficient decision makers.",
1464
+ missingRequiredTrustMembers: "We don't yet have sufficient trust members.",
1465
+ rootLegalEntityIsEmpty: "The root legal entity only has the minimum data (is empty).",
1466
+ legalRepresentativeNeeded: "The user is underage, therefore a legal representative is needed.",
1467
+ dataMissingError: "We are missing required data.",
1468
+ dataReviewNeeded: "A data review is neeced.",
1469
+ pendingStatusError: "There is an error with a pending status.",
1470
+ pendingCapabilities: "Some capabilities are still pending.",
1471
+ invalidCapabilities: "Some capabilities are invalid.",
1472
+ allCapabilitiesValid: "All capabilities are valid",
1473
+ task: "Task",
1474
+ reason: "Reason"
1459
1475
  };
1460
1476
  const enUS = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1461
1477
  __proto__: null,
@@ -12146,7 +12162,7 @@ const financialInfoValidationRules = {
12146
12162
  }
12147
12163
  };
12148
12164
  const financialInformationReportedValueOptions = "adyen-kyc-financial-information-reported-value-options";
12149
- const styles$8 = {
12165
+ const styles$a = {
12150
12166
  "financial-information-reported-value-options": "adyen-kyc-financial-information-reported-value-options",
12151
12167
  financialInformationReportedValueOptions
12152
12168
  };
@@ -12194,7 +12210,7 @@ const InputCurrency = ({
12194
12210
  };
12195
12211
  const reportedValue = "adyen-kyc-reported-value";
12196
12212
  const reportedValueInput = "adyen-kyc-reported-value-input";
12197
- const styles$7 = {
12213
+ const styles$9 = {
12198
12214
  "reported-value": "adyen-kyc-reported-value",
12199
12215
  reportedValue,
12200
12216
  "reported-value-input": "adyen-kyc-reported-value-input",
@@ -12211,7 +12227,7 @@ const ReportedValue = ({
12211
12227
  isValid
12212
12228
  }) => {
12213
12229
  const { i18n } = useI18nContext();
12214
- return /* @__PURE__ */ jsx("div", { className: styles$7.reportedValue, children: /* @__PURE__ */ jsx(Field, { name: fieldName, errorMessage, isValid, helper, children: (childProps) => /* @__PURE__ */ jsx(
12230
+ return /* @__PURE__ */ jsx("div", { className: styles$9.reportedValue, children: /* @__PURE__ */ jsx(Field, { name: fieldName, errorMessage, isValid, helper, children: (childProps) => /* @__PURE__ */ jsx(
12215
12231
  InputCurrency,
12216
12232
  {
12217
12233
  ...childProps,
@@ -12219,7 +12235,7 @@ const ReportedValue = ({
12219
12235
  currency,
12220
12236
  amount,
12221
12237
  onAmountChanged,
12222
- className: styles$7.reportedValueInput,
12238
+ className: styles$9.reportedValueInput,
12223
12239
  "aria-label": label
12224
12240
  }
12225
12241
  ) }) });
@@ -12356,7 +12372,7 @@ function FinancialInformation(props) {
12356
12372
  ],
12357
12373
  onChange: updateReportedValueOption,
12358
12374
  showContentOnlyOnSelected: true,
12359
- className: styles$8.financialInformationReportedValueOptions
12375
+ className: styles$a.financialInformationReportedValueOptions
12360
12376
  }
12361
12377
  )
12362
12378
  }
@@ -14785,6 +14801,7 @@ var TaskStatus = /* @__PURE__ */ ((TaskStatus2) => {
14785
14801
  TaskStatus2[TaskStatus2["SIGNED"] = 7] = "SIGNED";
14786
14802
  TaskStatus2[TaskStatus2["SUBMIT"] = 8] = "SUBMIT";
14787
14803
  TaskStatus2[TaskStatus2["REMOVING"] = 9] = "REMOVING";
14804
+ TaskStatus2[TaskStatus2["UNKNOWN"] = 10] = "UNKNOWN";
14788
14805
  return TaskStatus2;
14789
14806
  })(TaskStatus || {});
14790
14807
  const COUNTRIES_THAT_DONT_REQUIRE_SOLE_PROP_REGISTRATION = [
@@ -16281,7 +16298,7 @@ const useIdVerificationToken = ({
16281
16298
  };
16282
16299
  const loaderWrapperLoader = "adyen-kyc-loader-wrapper-loader";
16283
16300
  const loaderWrapperLoaderActive = "adyen-kyc-loader-wrapper-loader-active";
16284
- const styles$6 = {
16301
+ const styles$8 = {
16285
16302
  "loader-wrapper-loader": "adyen-kyc-loader-wrapper-loader",
16286
16303
  loaderWrapperLoader,
16287
16304
  "loader-wrapper-loader-active": "adyen-kyc-loader-wrapper-loader-active",
@@ -16298,13 +16315,13 @@ const LoaderWrapper = ({
16298
16315
  const opacitySyle = status === "loading" ? {
16299
16316
  opacity: formOpacityWhenLoading
16300
16317
  } : { opacity: 1 };
16301
- const loaderWrapperClass = cx(styles$6.loaderWrapperLoader, {
16302
- [styles$6.loaderWrapperLoaderActive]: status === "loading" && showSpinner
16318
+ const loaderWrapperClass = cx(styles$8.loaderWrapperLoader, {
16319
+ [styles$8.loaderWrapperLoaderActive]: status === "loading" && showSpinner
16303
16320
  });
16304
- const overlayClass = cx(styles$6.loaderWrapper, className);
16321
+ const overlayClass = cx(styles$8.loaderWrapper, className);
16305
16322
  return /* @__PURE__ */ jsxs("div", { className: overlayClass, style: { position: "relative" }, children: [
16306
16323
  /* @__PURE__ */ jsx("div", { className: loaderWrapperClass, children: /* @__PURE__ */ jsx(Loader, { size: loaderSize }) }),
16307
- /* @__PURE__ */ jsx("div", { className: styles$6.loaderWrapperForm, style: opacitySyle, children })
16324
+ /* @__PURE__ */ jsx("div", { className: styles$8.loaderWrapperForm, style: opacitySyle, children })
16308
16325
  ] });
16309
16326
  };
16310
16327
  const containerId = "adyen-kyc-id-verification";
@@ -18161,7 +18178,7 @@ const roleMetadata = {
18161
18178
  name: TrustMemberGuidanceLabel.TRUSTEE
18162
18179
  }
18163
18180
  };
18164
- const getRoleTagVariant$1 = (role) => {
18181
+ const getRoleTagVariant = (role) => {
18165
18182
  var _a;
18166
18183
  return ((_a = roleMetadata[role]) == null ? void 0 : _a.variant) ?? "blue";
18167
18184
  };
@@ -22813,7 +22830,7 @@ function Card({
22813
22830
  const skeleton = "adyen-kyc-skeleton";
22814
22831
  const skeletonCircle = "adyen-kyc-skeleton-circle";
22815
22832
  const skeletonText = "adyen-kyc-skeleton-text";
22816
- const styles$5 = {
22833
+ const styles$7 = {
22817
22834
  skeleton,
22818
22835
  "skeleton-circle": "adyen-kyc-skeleton-circle",
22819
22836
  skeletonCircle,
@@ -22826,9 +22843,9 @@ const Skeleton = ({
22826
22843
  height = "1em",
22827
22844
  width
22828
22845
  }) => {
22829
- const classNames = cx(styles$5.skeleton, {
22830
- [styles$5.skeletonCircle]: circle,
22831
- [styles$5.skeletonText]: text
22846
+ const classNames = cx(styles$7.skeleton, {
22847
+ [styles$7.skeletonCircle]: circle,
22848
+ [styles$7.skeletonText]: text
22832
22849
  });
22833
22850
  return /* @__PURE__ */ jsx("div", { className: classNames, style: { height, width } });
22834
22851
  };
@@ -22839,7 +22856,7 @@ const preferInstantVerificationMethodText = "adyen-kyc-prefer-instant-verificati
22839
22856
  const preferInstantVerificationMethodInstantButton = "adyen-kyc-prefer-instant-verification-method-instant-button";
22840
22857
  const preferInstantVerificationMethodActions = "adyen-kyc-prefer-instant-verification-method-actions";
22841
22858
  const preferInstantVerificationMethodManualButtonDarker = "adyen-kyc-prefer-instant-verification-method-manual-button-darker";
22842
- const styles$4 = {
22859
+ const styles$6 = {
22843
22860
  "prefer-instant-verification-method": "adyen-kyc-prefer-instant-verification-method",
22844
22861
  preferInstantVerificationMethod,
22845
22862
  "prefer-instant-verification-method-card": "adyen-kyc-prefer-instant-verification-method-card",
@@ -22889,13 +22906,13 @@ const PreferInstantVerificationMethod = ({
22889
22906
  setHideVerificationWidget(false);
22890
22907
  selectVerificationMethod("instantVerification");
22891
22908
  };
22892
- const providerBanner = provider && /* @__PURE__ */ jsx(Card, { background: "secondary", children: /* @__PURE__ */ jsxs("div", { className: styles$4.preferInstantVerificationMethodCard, children: [
22909
+ const providerBanner = provider && /* @__PURE__ */ jsx(Card, { background: "secondary", children: /* @__PURE__ */ jsxs("div", { className: styles$6.preferInstantVerificationMethodCard, children: [
22893
22910
  /* @__PURE__ */ jsx(
22894
22911
  Svg,
22895
22912
  {
22896
22913
  type: "image",
22897
22914
  name: "instant-verification-method",
22898
- className: styles$4.preferInstantVerificationMethodImage
22915
+ className: styles$6.preferInstantVerificationMethodImage
22899
22916
  }
22900
22917
  ),
22901
22918
  /* @__PURE__ */ jsx(
@@ -22903,7 +22920,7 @@ const PreferInstantVerificationMethod = ({
22903
22920
  {
22904
22921
  el: "p",
22905
22922
  variant: "body-stronger",
22906
- className: styles$4.preferInstantVerificationMethodText,
22923
+ className: styles$6.preferInstantVerificationMethodText,
22907
22924
  children: i18n.get("instantlyConnectAndVerifyYourBankAccount")
22908
22925
  }
22909
22926
  ),
@@ -22914,7 +22931,7 @@ const PreferInstantVerificationMethod = ({
22914
22931
  label: i18n.get("connectWith", {
22915
22932
  values: { providerName: iconName ? "" : provider.name }
22916
22933
  }),
22917
- className: styles$4.preferInstantVerificationMethodInstantButton,
22934
+ className: styles$6.preferInstantVerificationMethodInstantButton,
22918
22935
  onClick: handleClickProviderButton,
22919
22936
  disabled: bankInfoValidated,
22920
22937
  icon: iconName,
@@ -22934,16 +22951,16 @@ const PreferInstantVerificationMethod = ({
22934
22951
  retrieveBankAccountInfo
22935
22952
  }
22936
22953
  );
22937
- return /* @__PURE__ */ jsxs("div", { className: styles$4.preferInstantVerificationMethod, children: [
22954
+ return /* @__PURE__ */ jsxs("div", { className: styles$6.preferInstantVerificationMethod, children: [
22938
22955
  loadingStatus === "loading" ? /* @__PURE__ */ jsx(Skeleton, { height: "21rem" }) : instantVerificationAvailable && (showVerificationWidget ? bankVerificationWidget : providerBanner),
22939
- /* @__PURE__ */ jsx("div", { className: styles$4.preferInstantVerificationMethodActions, children: /* @__PURE__ */ jsx(
22956
+ /* @__PURE__ */ jsx("div", { className: styles$6.preferInstantVerificationMethodActions, children: /* @__PURE__ */ jsx(
22940
22957
  Button,
22941
22958
  {
22942
22959
  type: "button",
22943
22960
  label: i18n.get("addAccountManually"),
22944
22961
  tertiary: instantVerificationAvailable,
22945
22962
  className: cx({
22946
- [styles$4.preferInstantVerificationMethodManualButtonDarker]: instantVerificationAvailable
22963
+ [styles$6.preferInstantVerificationMethodManualButtonDarker]: instantVerificationAvailable
22947
22964
  }),
22948
22965
  onClick: () => selectVerificationMethod("manualVerification"),
22949
22966
  disabled: bankInfoValidated
@@ -25089,7 +25106,8 @@ function getEntityProblems(verificationErrors, entityType, isExperimentEnabled)
25089
25106
  currEntityProblems.remediationActions = remediationActions;
25090
25107
  currEntityProblems.statusWithReason = getPriorityStatus(entityProblems, {
25091
25108
  status: TaskStatus.ERROR,
25092
- reason: "invalidInputError"
25109
+ reason: "invalidInputError",
25110
+ details: { verificationError }
25093
25111
  });
25094
25112
  }
25095
25113
  break;
@@ -25099,7 +25117,8 @@ function getEntityProblems(verificationErrors, entityType, isExperimentEnabled)
25099
25117
  if (!isUnRelatedErrorCode(verificationError)) {
25100
25118
  currEntityProblems.statusWithReason = getPriorityStatus(entityProblems, {
25101
25119
  status: TaskStatus.DETAILS_REQUIRED,
25102
- reason: "dataMissingError"
25120
+ reason: "dataMissingError",
25121
+ details: { verificationError }
25103
25122
  });
25104
25123
  }
25105
25124
  break;
@@ -26420,7 +26439,7 @@ const structuredListListItem = "adyen-kyc-structured-list-list-item";
26420
26439
  const adyenLayoutMd = "adyen-layout-md";
26421
26440
  const structuredListLabel = "adyen-kyc-structured-list-label";
26422
26441
  const structuredListValue = "adyen-kyc-structured-list-value";
26423
- const styles$3 = {
26442
+ const styles$5 = {
26424
26443
  "structured-list": "adyen-kyc-structured-list",
26425
26444
  structuredList,
26426
26445
  "structured-list-list-item": "adyen-kyc-structured-list-list-item",
@@ -26434,9 +26453,9 @@ const styles$3 = {
26434
26453
  };
26435
26454
  const StructuredList = ({ items }) => {
26436
26455
  const { i18n } = useI18nContext();
26437
- return /* @__PURE__ */ jsx("dl", { className: styles$3.structuredList, children: items.map((item) => /* @__PURE__ */ jsxs("div", { className: styles$3.structuredListListItem, children: [
26438
- /* @__PURE__ */ jsx("dt", { className: styles$3.structuredListLabel, children: i18n.get(item.labelKey) }),
26439
- /* @__PURE__ */ jsx("dd", { className: styles$3.structuredListValue, children: item.value })
26456
+ return /* @__PURE__ */ jsx("dl", { className: styles$5.structuredList, children: items.map((item) => /* @__PURE__ */ jsxs("div", { className: styles$5.structuredListListItem, children: [
26457
+ /* @__PURE__ */ jsx("dt", { className: styles$5.structuredListLabel, children: i18n.get(item.labelKey) }),
26458
+ /* @__PURE__ */ jsx("dd", { className: styles$5.structuredListValue, children: item.value })
26440
26459
  ] }, item.labelKey)) });
26441
26460
  };
26442
26461
  function VerifiedBusinessCard({
@@ -28777,7 +28796,7 @@ const ExpiredBanner = () => {
28777
28796
  return /* @__PURE__ */ jsx(Alert, { variant: "warning", title: i18n.get("thisPageIsNowInactive"), children: i18n.get("startANewSessionFromTheSamePlaceYouOriginallyAccessed") });
28778
28797
  };
28779
28798
  const Modal = ({
28780
- header,
28799
+ header: header2,
28781
28800
  children,
28782
28801
  footer,
28783
28802
  size = "medium",
@@ -28833,7 +28852,7 @@ const Modal = ({
28833
28852
  shaded: true
28834
28853
  }
28835
28854
  ) : /* @__PURE__ */ jsx("div", {}),
28836
- !movableHeader && header && /* @__PURE__ */ jsx("header", { className: "adyen-kyc-modal__header", children: header }),
28855
+ !movableHeader && header2 && /* @__PURE__ */ jsx("header", { className: "adyen-kyc-modal__header", children: header2 }),
28837
28856
  onClose ? /* @__PURE__ */ jsx(
28838
28857
  Button,
28839
28858
  {
@@ -28848,7 +28867,7 @@ const Modal = ({
28848
28867
  ]
28849
28868
  }
28850
28869
  ),
28851
- movableHeader && header && /* @__PURE__ */ jsx("header", { className: "adyen-kyc-modal__header", children: header }),
28870
+ movableHeader && header2 && /* @__PURE__ */ jsx("header", { className: "adyen-kyc-modal__header", children: header2 }),
28852
28871
  /* @__PURE__ */ jsx("section", { className: "adyen-kyc-modal__content", children })
28853
28872
  ] }),
28854
28873
  /* @__PURE__ */ jsx("div", { children: footer && /* @__PURE__ */ jsx("footer", { className: "adyen-kyc-modal__footer", children: footer }) })
@@ -29163,7 +29182,7 @@ function FormNavigation({
29163
29182
  gotoForm,
29164
29183
  validateForm,
29165
29184
  className,
29166
- taskName,
29185
+ taskName: taskName2,
29167
29186
  verificationErrors,
29168
29187
  trackNavigation: trackNavigation2 = noop
29169
29188
  }) {
@@ -29183,13 +29202,13 @@ function FormNavigation({
29183
29202
  return activeForm2.isValid ? void 0 : validateForm;
29184
29203
  };
29185
29204
  return /* @__PURE__ */ jsxs("div", { className: cx("adyen-kyc-form-navigation", className), children: [
29186
- /* @__PURE__ */ jsx("div", { className: "adyen-kyc-form-navigation__header", children: i18n.get(taskName) }),
29205
+ /* @__PURE__ */ jsx("div", { className: "adyen-kyc-form-navigation__header", children: i18n.get(taskName2) }),
29187
29206
  /* @__PURE__ */ jsxs("ul", { className: "adyen-kyc-form-navigation__items", children: [
29188
29207
  forms && /* @__PURE__ */ jsx("li", { className: "adyen-kyc-form-navigation__home-button-item", children: /* @__PURE__ */ jsx("span", { className: "adyen-kyc-form-navigation__step-count", children: i18n.get("stepsX/YofForm", {
29189
29208
  values: {
29190
29209
  activeFormIndex: getFormIndex(activeForm) + 1,
29191
29210
  totalForms: forms.length,
29192
- taskNameTranslated: i18n.get(taskName)
29211
+ taskNameTranslated: i18n.get(taskName2)
29193
29212
  }
29194
29213
  }) }) }),
29195
29214
  forms.map((form) => /* @__PURE__ */ jsx(
@@ -29207,7 +29226,7 @@ function FormNavigation({
29207
29226
  }
29208
29227
  const FormWrapper = ({
29209
29228
  summary: summary2,
29210
- taskName,
29229
+ taskName: taskName2,
29211
29230
  children,
29212
29231
  handleNextClick,
29213
29232
  handleBackClick,
@@ -29250,13 +29269,13 @@ const FormWrapper = ({
29250
29269
  }
29251
29270
  };
29252
29271
  const showLegalCaption = ["solePropDetails", "companyDetails", "businessDetails"].includes(
29253
- taskName
29272
+ taskName2
29254
29273
  );
29255
29274
  const { isExperimentEnabled } = useExperimentsContext();
29256
29275
  const showExtraTaxExemptionReasons = isExperimentEnabled(
29257
29276
  ExperimentNames.ShowExtraTaxExemptionReasons
29258
29277
  );
29259
- const showTaxExemptedLegalCaption = showExtraTaxExemptionReasons && ((_a = summaryData.companyRegistrationDetails) == null ? void 0 : _a.vatAbsenceReason) && ["companyDetails", "businessDetails"].includes(taskName);
29278
+ const showTaxExemptedLegalCaption = showExtraTaxExemptionReasons && ((_a = summaryData.companyRegistrationDetails) == null ? void 0 : _a.vatAbsenceReason) && ["companyDetails", "businessDetails"].includes(taskName2);
29260
29279
  const summaryContent = /* @__PURE__ */ jsx("div", { className: "adyen-kyc-form-wrapper", children: /* @__PURE__ */ jsx(
29261
29280
  Summary,
29262
29281
  {
@@ -29353,7 +29372,7 @@ const FormWrapper = ({
29353
29372
  activeForm,
29354
29373
  gotoForm: gotoFormByFormIndex,
29355
29374
  validateForm,
29356
- taskName,
29375
+ taskName: taskName2,
29357
29376
  trackNavigation: ({ fromForm, toForm, component }) => trackNavigation({ fromForm, toForm, component, baseTrackingPayload, i18n }),
29358
29377
  verificationErrors: problems == null ? void 0 : problems.verificationErrors
29359
29378
  }
@@ -29815,7 +29834,7 @@ function BusinessDetailsDropinComponent({
29815
29834
  parentLegalEntity,
29816
29835
  trackingConfig,
29817
29836
  capabilities,
29818
- taskName,
29837
+ taskName: taskName2,
29819
29838
  hideDropinLayout,
29820
29839
  homeButtonLabel,
29821
29840
  taskType = TaskTypes.BUSINESS_DETAILS,
@@ -30271,7 +30290,7 @@ function BusinessDetailsDropinComponent({
30271
30290
  return /* @__PURE__ */ jsx(
30272
30291
  FormWrapper,
30273
30292
  {
30274
- taskName: taskName ?? "businessDetails",
30293
+ taskName: taskName2 ?? "businessDetails",
30275
30294
  gotoFormByFormIndex: goToForm,
30276
30295
  hideDropinLayout,
30277
30296
  hideHomeButton: hideHome,
@@ -30364,7 +30383,7 @@ function CompanyDropinComponent({
30364
30383
  country: parentCountry,
30365
30384
  problems: propProblems,
30366
30385
  hideDropinLayout,
30367
- taskName,
30386
+ taskName: taskName2,
30368
30387
  capabilities,
30369
30388
  homeButtonLabel,
30370
30389
  taskType = TaskTypes.COMPANY,
@@ -30710,7 +30729,7 @@ function CompanyDropinComponent({
30710
30729
  return /* @__PURE__ */ jsx(
30711
30730
  FormWrapper,
30712
30731
  {
30713
- taskName,
30732
+ taskName: taskName2,
30714
30733
  handleNextClick,
30715
30734
  gotoFormByFormIndex,
30716
30735
  handleHomeClick,
@@ -32126,8 +32145,9 @@ const TaskItemStatus = ({
32126
32145
  );
32127
32146
  case TaskStatus.DETAILS_REQUIRED:
32128
32147
  case TaskStatus.EMPTY:
32129
- default:
32130
32148
  return /* @__PURE__ */ jsx("span", { className: "adyen-kyc-task-status-details-required", children: statusLabel || i18n.get("add") });
32149
+ default:
32150
+ return /* @__PURE__ */ jsx("span", { className: "adyen-kyc-task-status-details-unknown", children: i18n.get("unknown") });
32131
32151
  }
32132
32152
  };
32133
32153
  const VerificationErrorAlert = ({
@@ -32346,7 +32366,7 @@ const EntityAssociation = ({
32346
32366
  Tag,
32347
32367
  {
32348
32368
  className: "adyen-kyc-entity-association__tag",
32349
- variant: getRoleTagVariant$1(type),
32369
+ variant: getRoleTagVariant(type),
32350
32370
  children: i18n.get(getRoleName(type))
32351
32371
  },
32352
32372
  type
@@ -32407,7 +32427,7 @@ const EntityGuidanceStatus = ({
32407
32427
  Tag,
32408
32428
  {
32409
32429
  className: "adyen-kyc-entity-status__tag",
32410
- variant: getRoleTagVariant$1(entityLabel),
32430
+ variant: getRoleTagVariant(entityLabel),
32411
32431
  children: i18n.get(getRoleName(entityLabel))
32412
32432
  },
32413
32433
  entityLabel
@@ -32565,7 +32585,7 @@ const getRegularTaskStatus = ({
32565
32585
  if (relevantEntityIds.length === 0) {
32566
32586
  return { status: TaskStatus.EMPTY, reason: "newEntityAlwaysEmpty" };
32567
32587
  }
32568
- if (isEmptyEntity(rootLegalEntity)) {
32588
+ if (relevantEntityIds.includes(rootLegalEntity.id) && isEmptyEntity(rootLegalEntity)) {
32569
32589
  return { status: TaskStatus.EMPTY, reason: "rootLegalEntityIsEmpty" };
32570
32590
  }
32571
32591
  const importantProblems = findImportantProblems(
@@ -32621,6 +32641,7 @@ const calculateTaskStatus = ({
32621
32641
  taskIdentifier,
32622
32642
  capabilityProblems,
32623
32643
  rootLegalEntity,
32644
+ accountHolder,
32624
32645
  legalRepresentative,
32625
32646
  trustMembers,
32626
32647
  transferInstruments
@@ -32657,9 +32678,16 @@ const calculateTaskStatus = ({
32657
32678
  if (!id) throw new Error("Decision maker task identifier should specify an ID");
32658
32679
  relevantEntityIds = [id];
32659
32680
  break;
32660
- case TaskTypes.TRUST:
32661
- relevantEntityIds = getOwnTrustLegalEntityIdAsArray(rootLegalEntity);
32681
+ case TaskTypes.TRUST: {
32682
+ const trustIds = getOwnTrustLegalEntityIdAsArray(rootLegalEntity);
32683
+ if (accountHolder === "aTrust" && trustIds.length === 0)
32684
+ return {
32685
+ status: TaskStatus.EMPTY,
32686
+ reason: "newEntityAlwaysEmpty"
32687
+ };
32688
+ relevantEntityIds = trustIds;
32662
32689
  break;
32690
+ }
32663
32691
  case TaskTypes.TRUST_MEMBER_OVERVIEW:
32664
32692
  if (!hasRequiredTrustMemberCount(trustMembers))
32665
32693
  return {
@@ -32714,6 +32742,7 @@ const splitTaskIdentifier = (taskIdentifier) => {
32714
32742
  const determineTaskIdentifiers = ({
32715
32743
  taskTypes: receivedTaskTypes,
32716
32744
  rootLegalEntity,
32745
+ accountHolder,
32717
32746
  capabilityProblems,
32718
32747
  trustMembers,
32719
32748
  transferInstruments
@@ -32734,7 +32763,12 @@ const determineTaskIdentifiers = ({
32734
32763
  const decisionMakers = getOwnDecisionMakersLegalEntityIds(rootLegalEntity);
32735
32764
  decisionMakers.forEach((id) => tasks.push(`DECISION_MAKER-${id}`));
32736
32765
  }
32737
- if (taskTypes.includes(TaskTypes.TRUST_MEMBER_OVERVIEW)) {
32766
+ if (accountHolder === "mySoleProprietorName") {
32767
+ tasks.push(TaskTypes.SOLE_PROPRIETOR_COMPANY);
32768
+ }
32769
+ if (accountHolder === "aTrust") {
32770
+ tasks.push(TaskTypes.TRUST);
32771
+ tasks.push(TaskTypes.TRUST_MEMBER_OVERVIEW);
32738
32772
  trustMembers.forEach((member) => {
32739
32773
  if (member.trustMemberType === "undefinedBeneficiary") {
32740
32774
  tasks.push(`TRUST_MEMBER-undefinedBeneficiary`);
@@ -32767,6 +32801,7 @@ const computed = dist.createComputed(
32767
32801
  ({
32768
32802
  taskTypes,
32769
32803
  rootLegalEntity,
32804
+ accountHolder,
32770
32805
  capabilityProblems,
32771
32806
  legalRepresentative,
32772
32807
  transferInstruments,
@@ -32775,6 +32810,7 @@ const computed = dist.createComputed(
32775
32810
  const tasks = determineTaskIdentifiers({
32776
32811
  taskTypes,
32777
32812
  rootLegalEntity,
32813
+ accountHolder,
32778
32814
  capabilityProblems,
32779
32815
  legalRepresentative,
32780
32816
  transferInstruments,
@@ -32784,6 +32820,7 @@ const computed = dist.createComputed(
32784
32820
  acc[taskIdentifier] = calculateTaskStatus({
32785
32821
  taskIdentifier,
32786
32822
  // we know that neither `rootLegalEntity` nor `capabilityProblems` are undefined if there are tasks
32823
+ accountHolder,
32787
32824
  capabilityProblems,
32788
32825
  rootLegalEntity,
32789
32826
  legalRepresentative,
@@ -32803,12 +32840,14 @@ const createTaskStore = () => createStore(
32803
32840
  // Defaults
32804
32841
  taskTypes: [],
32805
32842
  rootLegalEntity: void 0,
32843
+ accountHolder: void 0,
32806
32844
  capabilityProblems: void 0,
32807
32845
  legalRepresentative: void 0,
32808
32846
  trustMembers: [],
32809
32847
  transferInstruments: [],
32810
32848
  setTaskTypes: (taskTypes) => set({ taskTypes }),
32811
32849
  setRootLegalEntity: (rootLegalEntity) => set({ rootLegalEntity }),
32850
+ setAccountHolder: (accountHolder) => set({ accountHolder }),
32812
32851
  setCapabilityProblems: (capabilityProblems) => set({ capabilityProblems }),
32813
32852
  setLegalRepresentative: (legalRepresentative) => set({ legalRepresentative }),
32814
32853
  setTrustMembers: (trustMembers) => set({ trustMembers }),
@@ -32837,9 +32876,9 @@ const useGetTaskStatus = () => {
32837
32876
  var _a;
32838
32877
  const taskIdentifier = id ? `${taskType}-${id}` : taskType;
32839
32878
  const status = (_a = taskStatuses[taskIdentifier]) == null ? void 0 : _a.status;
32840
- if (!status) {
32841
- logger$r.warn(`No status for task '${taskIdentifier}', returning EMPTY`);
32842
- return TaskStatus.EMPTY;
32879
+ if (status === void 0) {
32880
+ logger$r.warn(`No status for task '${taskIdentifier}', returning UNKNOWN`);
32881
+ return TaskStatus.UNKNOWN;
32843
32882
  }
32844
32883
  return status;
32845
32884
  },
@@ -34042,7 +34081,7 @@ function TaskList({
34042
34081
  onNavigateToTask: () => handleOnNavigateToTaskPayout(),
34043
34082
  icon: "payout",
34044
34083
  title: canChangeEntityType ? i18n.get("bankAccountDetails") : i18n.get(hasPayinTaskNotPayout ? "payinDetails" : "payoutDetails"),
34045
- status: getTaskStatus(hasPayinTaskNotPayout ? TaskTypes.PAYIN : TaskTypes.PAYOUT) ?? TaskStatus.EMPTY,
34084
+ status: getTaskStatus(hasPayinTaskNotPayout ? TaskTypes.PAYIN : TaskTypes.PAYOUT),
34046
34085
  disabled: !canAddPayoutAccount,
34047
34086
  problems: getEmptyBankAccountProblems()
34048
34087
  }
@@ -34567,7 +34606,7 @@ function IndividualDropinComponent({
34567
34606
  trackingConfig,
34568
34607
  parentLegalEntity,
34569
34608
  legalEntityResponse,
34570
- taskName,
34609
+ taskName: taskName2,
34571
34610
  handleHomeClick,
34572
34611
  handleCloseClick,
34573
34612
  homeButtonLabel,
@@ -35089,7 +35128,7 @@ function IndividualDropinComponent({
35089
35128
  return /* @__PURE__ */ jsx(
35090
35129
  FormWrapper,
35091
35130
  {
35092
- taskName: taskName ?? "individualDetails",
35131
+ taskName: taskName2 ?? "individualDetails",
35093
35132
  activeForm,
35094
35133
  summary: {
35095
35134
  data: formatDataForSummary2(),
@@ -35292,7 +35331,7 @@ function PayoutDetailsDropinComponent({
35292
35331
  onSubmit: externalOnSubmit,
35293
35332
  onChange,
35294
35333
  taskType: propTaskType,
35295
- taskName,
35334
+ taskName: taskName2,
35296
35335
  capabilities,
35297
35336
  handleHomeClick,
35298
35337
  homeButtonLabel,
@@ -35664,7 +35703,7 @@ function PayoutDetailsDropinComponent({
35664
35703
  return /* @__PURE__ */ jsx(
35665
35704
  FormWrapper,
35666
35705
  {
35667
- taskName: taskName ?? "bankAccountDetails",
35706
+ taskName: taskName2 ?? "bankAccountDetails",
35668
35707
  activeForm,
35669
35708
  summary: {
35670
35709
  data: formatDataForSummary2(),
@@ -35727,11 +35766,11 @@ function PayoutDetailsDropinComponent({
35727
35766
  );
35728
35767
  }
35729
35768
  const outlinedIcon = "adyen-kyc-outlined-icon";
35730
- const styles$2 = {
35769
+ const styles$4 = {
35731
35770
  "outlined-icon": "adyen-kyc-outlined-icon",
35732
35771
  outlinedIcon
35733
35772
  };
35734
- const OutlinedIcon = ({ name }) => /* @__PURE__ */ jsx("div", { className: styles$2.outlinedIcon, children: /* @__PURE__ */ jsx(Icon, { name }) });
35773
+ const OutlinedIcon = ({ name }) => /* @__PURE__ */ jsx("div", { className: styles$4.outlinedIcon, children: /* @__PURE__ */ jsx(Icon, { name }) });
35735
35774
  const Splashscreen = ({ title, subtitle, icon, buttonText, onClick }) => {
35736
35775
  const { i18n } = useI18nContext();
35737
35776
  return /* @__PURE__ */ jsxs("div", { className: "adyen-kyc-splashscreen", children: [
@@ -36431,12 +36470,12 @@ const TrustRoleAndEntityType = (props) => {
36431
36470
  ] });
36432
36471
  };
36433
36472
  const settlorExemptionReasonsList = "adyen-kyc-settlor-exemption-reasons-list";
36434
- const styles$1 = {
36473
+ const styles$3 = {
36435
36474
  "settlor-exemption-reasons-list": "adyen-kyc-settlor-exemption-reasons-list",
36436
36475
  settlorExemptionReasonsList
36437
36476
  };
36438
36477
  const formatRolesForSummary = (roles, i18n) => roles.map((role) => i18n.get(getRoleName(role))).join(", ");
36439
- const formatSettlorExemptionReasonsForSummary = (reasons, i18n) => /* @__PURE__ */ jsx("ul", { className: styles$1.settlorExemptionReasonsList, children: reasons.map((reason) => /* @__PURE__ */ jsx("li", { children: i18n.get(reason) }, reason)) });
36478
+ const formatSettlorExemptionReasonsForSummary = (reasons, i18n) => /* @__PURE__ */ jsx("ul", { className: styles$3.settlorExemptionReasonsList, children: reasons.map((reason) => /* @__PURE__ */ jsx("li", { children: i18n.get(reason) }, reason)) });
36440
36479
  const formatRoleAndEntityTypeSummary = (data, i18n, isOrganizationSettlorWithExemptionEnabled) => {
36441
36480
  var _a, _b;
36442
36481
  const { trustMemberType, roles } = data;
@@ -38559,6 +38598,7 @@ function DropinComposerComponent({
38559
38598
  transferInstruments: rootLegalEntity.transferInstruments ?? []
38560
38599
  });
38561
38600
  }, []);
38601
+ useEffect(() => taskStore.setAccountHolder(accountHolder), [accountHolder]);
38562
38602
  const singpassBanner = isEligibleForSingpass ? /* @__PURE__ */ jsx(
38563
38603
  SingpassBanner,
38564
38604
  {
@@ -40068,7 +40108,7 @@ const embeddedStatusAvatar = "adyen-kyc-embedded-status-avatar";
40068
40108
  const embeddedStatusLight = "adyen-kyc-embedded-status-light";
40069
40109
  const embeddedStatusActionIndicator = "adyen-kyc-embedded-status-action-indicator";
40070
40110
  const embeddedStatusInfo = "adyen-kyc-embedded-status-info";
40071
- const styles = {
40111
+ const styles$2 = {
40072
40112
  "embedded-status": "adyen-kyc-embedded-status",
40073
40113
  embeddedStatus,
40074
40114
  "embedded-status-loading": "adyen-kyc-embedded-status-loading",
@@ -40124,22 +40164,22 @@ const EmbeddedStatus = ({
40124
40164
  "button",
40125
40165
  {
40126
40166
  type: "button",
40127
- className: cx(className, styles.embeddedStatus, "adyen-kyc-externalComponent", {
40128
- [styles.embeddedStatusLoading]: loading,
40129
- [styles.embeddedStatusLight]: light
40167
+ className: cx(className, styles$2.embeddedStatus, "adyen-kyc-externalComponent", {
40168
+ [styles$2.embeddedStatusLoading]: loading,
40169
+ [styles$2.embeddedStatusLight]: light
40130
40170
  }),
40131
40171
  onClick,
40132
40172
  ...props,
40133
40173
  children: [
40134
- /* @__PURE__ */ jsx("section", { className: styles.embeddedStatusAvatar, children: loading ? /* @__PURE__ */ jsx(Skeleton, { height: "100%", width: "100%", circle: true }) : /* @__PURE__ */ jsx(Icon, { className: styles.embeddedStatusIcon, name: iconName }) }),
40135
- /* @__PURE__ */ jsx("section", { className: styles.embeddedStatusInfo, children: loading ? /* @__PURE__ */ jsxs(Fragment, { children: [
40174
+ /* @__PURE__ */ jsx("section", { className: styles$2.embeddedStatusAvatar, children: loading ? /* @__PURE__ */ jsx(Skeleton, { height: "100%", width: "100%", circle: true }) : /* @__PURE__ */ jsx(Icon, { className: styles$2.embeddedStatusIcon, name: iconName }) }),
40175
+ /* @__PURE__ */ jsx("section", { className: styles$2.embeddedStatusInfo, children: loading ? /* @__PURE__ */ jsxs(Fragment, { children: [
40136
40176
  /* @__PURE__ */ jsx(Skeleton, { text: true, width: "20ch", height: "1em" }),
40137
40177
  /* @__PURE__ */ jsx(Skeleton, { text: true, width: "90%", height: "1em" })
40138
40178
  ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
40139
40179
  /* @__PURE__ */ jsx(Typography, { variant: "body-stronger", children: title }),
40140
40180
  /* @__PURE__ */ jsx(Typography, { variant: "caption", color: "secondary", children: subtitle })
40141
40181
  ] }) }),
40142
- actionIndicator ? /* @__PURE__ */ jsx("section", { className: styles.embeddedStatusButton, children: loading ? /* @__PURE__ */ jsx(Skeleton, { width: "5em", height: "2em" }) : /* @__PURE__ */ jsx(Typography, { variant: "body-stronger", className: styles.embeddedStatusActionIndicator, children: i18n.get(actionIndicator.labelKey) }) }) : (statusTag == null ? void 0 : statusTag.translationKey) && /* @__PURE__ */ jsx("section", { className: styles.embeddedStatusTag, children: loading ? /* @__PURE__ */ jsx(Skeleton, { width: "8ch", height: "1em" }) : /* @__PURE__ */ jsx(Tag, { variant: statusTag.variant, children: i18n.get(statusTag.translationKey) }) })
40182
+ actionIndicator ? /* @__PURE__ */ jsx("section", { className: styles$2.embeddedStatusButton, children: loading ? /* @__PURE__ */ jsx(Skeleton, { width: "5em", height: "2em" }) : /* @__PURE__ */ jsx(Typography, { variant: "body-stronger", className: styles$2.embeddedStatusActionIndicator, children: i18n.get(actionIndicator.labelKey) }) }) : (statusTag == null ? void 0 : statusTag.translationKey) && /* @__PURE__ */ jsx("section", { className: styles$2.embeddedStatusTag, children: loading ? /* @__PURE__ */ jsx(Skeleton, { width: "8ch", height: "1em" }) : /* @__PURE__ */ jsx(Tag, { variant: statusTag.variant, children: i18n.get(statusTag.translationKey) }) })
40143
40183
  ]
40144
40184
  }
40145
40185
  );
@@ -40261,15 +40301,15 @@ function TermsOfServiceStatus({
40261
40301
  async () => getServiceAgreementAcceptanceInfos2(legalEntityId),
40262
40302
  [getServiceAgreementAcceptanceInfos2, legalEntityId]
40263
40303
  );
40264
- const getStatus2 = useCallback(async () => {
40304
+ const getStatus = useCallback(async () => {
40265
40305
  const [signedRes, unsignedRes] = await Promise.all([getSigned(), getUnsigned()]);
40266
40306
  const signed = signedRes.data.map((d) => d.type);
40267
40307
  const unsigned = unsignedRes.termsOfServiceTypes;
40268
40308
  return signed.length !== 0 && unsigned.length === 0;
40269
40309
  }, [getUnsigned, getSigned]);
40270
40310
  useEffect(() => {
40271
- getStatus2().then((allSigned) => setHasSignedAll(allSigned)).catch((e) => logger$i.error(e)).finally(() => setIsLoading(false));
40272
- }, [getStatus2]);
40311
+ getStatus().then((allSigned) => setHasSignedAll(allSigned)).catch((e) => logger$i.error(e)).finally(() => setIsLoading(false));
40312
+ }, [getStatus]);
40273
40313
  return hasSignedAll ? /* @__PURE__ */ jsx(
40274
40314
  EmbeddedStatus,
40275
40315
  {
@@ -43609,7 +43649,7 @@ const ConfigurationApiProvider = ({
43609
43649
  }) => {
43610
43650
  const authContext = useAuthContext();
43611
43651
  const { isEmbeddedDropin, loadingContext } = authContext;
43612
- const sdkVersion = "3.41.4";
43652
+ const sdkVersion = "3.41.6";
43613
43653
  useAnalytics({
43614
43654
  onUserEvent,
43615
43655
  legalEntityId: rootLegalEntityId,
@@ -44233,7 +44273,124 @@ class BaseElement {
44233
44273
  }
44234
44274
  }
44235
44275
  }
44236
- const getRoleTagVariant = (value) => {
44276
+ const header = "adyen-kyc-header";
44277
+ const taskName = "adyen-kyc-task-name";
44278
+ const table = "adyen-kyc-table";
44279
+ const styles$1 = {
44280
+ header,
44281
+ "task-name": "adyen-kyc-task-name",
44282
+ taskName,
44283
+ table
44284
+ };
44285
+ const DebugTaskStatuses = ({ taskStatuses }) => {
44286
+ const { i18n } = useI18nContext();
44287
+ return /* @__PURE__ */ jsxs("table", { className: styles$1.table, children: [
44288
+ /* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsxs("tr", { className: styles$1.header, children: [
44289
+ /* @__PURE__ */ jsx("th", { children: i18n.get("task") }),
44290
+ /* @__PURE__ */ jsx("th", { children: i18n.get("status") }),
44291
+ /* @__PURE__ */ jsx("th", { children: i18n.get("reason") })
44292
+ ] }) }),
44293
+ /* @__PURE__ */ jsx("tbody", { children: entriesOf(taskStatuses).toSorted(([t1], [t2]) => t1.localeCompare(t2)).map(([task, status]) => {
44294
+ const { taskType, id } = splitTaskIdentifier(task);
44295
+ return /* @__PURE__ */ jsxs("tr", { children: [
44296
+ /* @__PURE__ */ jsxs("td", { className: styles$1.taskName, children: [
44297
+ taskType,
44298
+ id ? `: ${id}` : ""
44299
+ ] }),
44300
+ status ? /* @__PURE__ */ jsxs(Fragment, { children: [
44301
+ /* @__PURE__ */ jsx("td", { children: /* @__PURE__ */ jsx(TaskItemStatus, { status: status.status }) }),
44302
+ /* @__PURE__ */ jsxs("td", { children: [
44303
+ i18n.get(status.reason),
44304
+ /* @__PURE__ */ jsx(ExplainDetails, { status })
44305
+ ] })
44306
+ ] }) : /* @__PURE__ */ jsx(Fragment, {})
44307
+ ] }, task);
44308
+ }) })
44309
+ ] });
44310
+ };
44311
+ const ExplainDetails = ({ status }) => {
44312
+ const { reason, details } = status;
44313
+ switch (reason) {
44314
+ case "invalidInputError": {
44315
+ const verificationError = details.verificationError;
44316
+ const subErrors = verificationError.subErrors;
44317
+ return /* @__PURE__ */ jsxs("div", { children: [
44318
+ verificationError.code,
44319
+ ": ",
44320
+ verificationError.message,
44321
+ subErrors ? /* @__PURE__ */ jsx("ul", { children: (verificationError.subErrors ?? []).map((subError) => /* @__PURE__ */ jsxs("li", { children: [
44322
+ subError.code,
44323
+ ": ",
44324
+ subError.message
44325
+ ] }, subError.code)) }) : /* @__PURE__ */ jsx(Fragment, {})
44326
+ ] });
44327
+ }
44328
+ case "dataMissingError": {
44329
+ const verificationError = details.verificationError;
44330
+ const subErrors = verificationError.subErrors;
44331
+ return /* @__PURE__ */ jsxs("div", { children: [
44332
+ verificationError.code,
44333
+ ": ",
44334
+ verificationError.message,
44335
+ subErrors ? /* @__PURE__ */ jsx("ul", { children: (verificationError.subErrors ?? []).map((subError) => /* @__PURE__ */ jsxs("li", { children: [
44336
+ subError.code,
44337
+ ": ",
44338
+ subError.message
44339
+ ] }, subError.code)) }) : /* @__PURE__ */ jsx(Fragment, {})
44340
+ ] });
44341
+ }
44342
+ }
44343
+ };
44344
+ const tabs = "adyen-kyc-tabs";
44345
+ const styles = {
44346
+ tabs
44347
+ };
44348
+ const Tabs = ({ tabs: tabs2, activeTab, onChange }) => /* @__PURE__ */ jsx("div", { className: styles.tabs, children: tabs2.map(({ name, label, disabled }) => /* @__PURE__ */ jsx(
44349
+ Button,
44350
+ {
44351
+ onClick: () => onChange(name),
44352
+ label,
44353
+ secondary: activeTab === name ? true : void 0,
44354
+ disabled
44355
+ },
44356
+ name
44357
+ )) });
44358
+ const listToRecord = (list, getValue) => list.reduce(
44359
+ (acc, k) => ({
44360
+ ...acc,
44361
+ [k]: getValue(k)
44362
+ }),
44363
+ {}
44364
+ );
44365
+ const filterData = (data, searchTerm) => data.filter(({ key }) => key.toLowerCase().includes(searchTerm.toLowerCase()));
44366
+ const sortData = (data) => [...data].toSorted(({ key: keyA }, { key: keyB }) => keyA.localeCompare(keyB));
44367
+ const DebugTable = ({
44368
+ data,
44369
+ heading,
44370
+ searchTerm,
44371
+ tagPosition = "after",
44372
+ sort = false
44373
+ }) => {
44374
+ const filteredData = useMemo(() => {
44375
+ const filtered = searchTerm ? filterData(data, searchTerm) : data;
44376
+ return sort ? sortData(filtered) : filtered;
44377
+ }, [data, searchTerm]);
44378
+ return /* @__PURE__ */ jsxs("div", { children: [
44379
+ heading ? /* @__PURE__ */ jsx("h3", { children: heading }) : void 0,
44380
+ filteredData.length === 0 ? /* @__PURE__ */ jsxs("p", { children: [
44381
+ "No results found for ",
44382
+ /* @__PURE__ */ jsx("strong", { children: searchTerm })
44383
+ ] }) : /* @__PURE__ */ jsx("table", { children: /* @__PURE__ */ jsx("tbody", { children: filteredData.map(({ key, value, label, variant }) => /* @__PURE__ */ jsxs("tr", { children: [
44384
+ tagPosition === "before" ? /* @__PURE__ */ jsx("td", { children: /* @__PURE__ */ jsx(Tag, { variant: variant ?? "grey", className: "adyen-kyc-tag--large", children: value }) }) : void 0,
44385
+ /* @__PURE__ */ jsxs("td", { children: [
44386
+ /* @__PURE__ */ jsx("span", { className: "adyen-kyc-debug-modal__table-key", children: key }),
44387
+ label && /* @__PURE__ */ jsx("span", { children: label })
44388
+ ] }),
44389
+ tagPosition === "after" ? /* @__PURE__ */ jsx("td", { children: /* @__PURE__ */ jsx(Tag, { variant: variant ?? "grey", className: "adyen-kyc-tag--large", children: value }) }) : void 0
44390
+ ] }, key)) }) })
44391
+ ] });
44392
+ };
44393
+ const getSettingVariant = (value) => {
44237
44394
  switch (value) {
44238
44395
  case void 0:
44239
44396
  return "orange";
@@ -44245,166 +44402,184 @@ const getRoleTagVariant = (value) => {
44245
44402
  return "blue";
44246
44403
  }
44247
44404
  };
44248
- const getStatus = (value) => {
44249
- switch (value) {
44250
- case void 0:
44251
- return "undefined";
44252
- case true:
44253
- return "Enabled";
44254
- case false:
44255
- return "Disabled";
44256
- default:
44257
- return String(value);
44258
- }
44405
+ const DebugExperimentsAndSettings = ({
44406
+ experiments,
44407
+ settings
44408
+ }) => {
44409
+ const [searchTerm, setSearchTerm] = useState("");
44410
+ const experimentRows = entriesOf(experiments).map(
44411
+ ([experimentName, enabled]) => ({
44412
+ key: `${experimentName}`,
44413
+ value: enabled ? "Enabled" : "Disabled",
44414
+ variant: enabled ? "green" : "red"
44415
+ })
44416
+ );
44417
+ const settingRows = entriesOf(settings).map(([settingName, value]) => ({
44418
+ key: settingName,
44419
+ value: `${value}`,
44420
+ variant: getSettingVariant(value)
44421
+ }));
44422
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
44423
+ /* @__PURE__ */ jsx(
44424
+ InputText,
44425
+ {
44426
+ name: "search",
44427
+ value: searchTerm,
44428
+ classNameModifiers: ["search"],
44429
+ onInput: (e) => setSearchTerm(e.target.value),
44430
+ placeholder: "Search for Experiments/Settings 🔎",
44431
+ trimOnBlur: true,
44432
+ spellCheck: false,
44433
+ "aria-label": "Search experiments or settings",
44434
+ "aria-invalid": false
44435
+ }
44436
+ ),
44437
+ /* @__PURE__ */ jsx(
44438
+ DebugTable,
44439
+ {
44440
+ tagPosition: "before",
44441
+ data: experimentRows,
44442
+ heading: "Experiments",
44443
+ searchTerm,
44444
+ sort: true
44445
+ }
44446
+ ),
44447
+ /* @__PURE__ */ jsx(DebugTable, { data: settingRows, heading: "Settings", searchTerm, sort: true })
44448
+ ] });
44259
44449
  };
44260
- const filterData = (data, searchTerm) => data.filter(([key]) => key.toLowerCase().includes(searchTerm.toLowerCase()));
44261
- const sortData = (data) => [...data].sort(([keyA], [keyB]) => keyA.localeCompare(keyB));
44262
- const DebugTable = ({ data, keyHeading, searchTerm }) => {
44263
- const filteredData = sortData(filterData(data, searchTerm));
44264
- return /* @__PURE__ */ jsxs("div", { children: [
44265
- /* @__PURE__ */ jsx("h2", { children: keyHeading }),
44266
- filteredData.length === 0 ? /* @__PURE__ */ jsxs("p", { children: [
44267
- "No results found for ",
44268
- /* @__PURE__ */ jsx("strong", { children: searchTerm })
44269
- ] }) : /* @__PURE__ */ jsx("table", { children: /* @__PURE__ */ jsx("tbody", { children: filteredData.map(([keyName, value, label]) => /* @__PURE__ */ jsx("tr", { children: /* @__PURE__ */ jsxs("td", { children: [
44270
- /* @__PURE__ */ jsx("span", { className: "adyen-kyc-debug-modal__table-key", children: keyName }),
44271
- label && /* @__PURE__ */ jsx("span", { className: "adyen-kyc-debug-modal__table-label", children: label }),
44272
- /* @__PURE__ */ jsx(Tag, { variant: getRoleTagVariant(value), className: "adyen-kyc-tag--large", children: getStatus(value) })
44273
- ] }) }, keyName)) }) })
44450
+ const DebugLegalEntityData = ({ legalEntityData }) => {
44451
+ var _a;
44452
+ if (!legalEntityData) return /* @__PURE__ */ jsx(Fragment, {});
44453
+ const { rootLegalEntity, rootLegalEntityType } = legalEntityData;
44454
+ const uboDetails = ((_a = rootLegalEntity.entityAssociations) == null ? void 0 : _a.map(
44455
+ ({ name, type, jobTitle }) => (
44456
+ // If `name` is undefined, replace the tuple with `null` to easily filter it out later. Checking this to ensure that the 'data' for DebugTable always has a keyName.
44457
+ name ? {
44458
+ key: name,
44459
+ value: `${type}`,
44460
+ label: jobTitle,
44461
+ variant: "blue"
44462
+ } : null
44463
+ )
44464
+ ).filter(Boolean)) ?? [];
44465
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
44466
+ /* @__PURE__ */ jsxs("span", { children: [
44467
+ "Root legal entity type: ",
44468
+ /* @__PURE__ */ jsx(Tag, { children: rootLegalEntityType })
44469
+ ] }),
44470
+ uboDetails.length ? /* @__PURE__ */ jsx(DebugTable, { data: uboDetails, heading: "Decision Makers" }) : void 0,
44471
+ rootLegalEntity ? /* @__PURE__ */ jsx("pre", { children: JSON.stringify(rootLegalEntity, null, 2) }) : void 0
44274
44472
  ] });
44275
44473
  };
44474
+ const DebugMetadata = ({
44475
+ metadata: { sdkVersion, locale, rootLegalEntityId }
44476
+ }) => {
44477
+ const rows = [
44478
+ { key: "SDK version", value: sdkVersion, variant: "green" },
44479
+ { key: "Locale", value: locale, variant: "blue" },
44480
+ { key: "Root legal entity ID", value: rootLegalEntityId, variant: "teal" }
44481
+ ];
44482
+ return /* @__PURE__ */ jsx("div", { className: "adyen-kyc-debug-modal__meta", children: /* @__PURE__ */ jsx(DebugTable, { data: rows }) });
44483
+ };
44276
44484
  const logger = createLogger("DebugModal");
44277
44485
  const DebugModal = ({ rootLegalEntityId, onExit, getRootLegalEntity }) => {
44278
- var _a;
44279
44486
  const { isExperimentEnabled } = useExperimentsContext();
44280
44487
  const { getSetting } = useSettingsContext();
44281
- const [rootLeData, setRootLeData] = useState();
44488
+ const [legalEntityData, setLegalEntityData] = useState();
44282
44489
  const [debugInfoCopied, setDebugInfoCopied] = useState(false);
44283
- const [isRootLeDataEnabled, setIsRootLeDataEnabled] = useState(false);
44284
- const [searchTerm, setSearchTerm] = useState("");
44285
44490
  const { i18n } = useI18nContext();
44286
- const allExperimentsWithValues = valuesOf(ExperimentNames).map(
44287
- (experimentName) => [experimentName, isExperimentEnabled(experimentName)]
44288
- );
44289
- const allSettingsWithValues = valuesOf(SettingNames).map(
44290
- (settingName) => [settingName, getSetting(settingName)]
44291
- );
44292
- const debugModalMetaData = [
44293
- { key: "SDK version", value: "3.41.4", variant: "green" },
44294
- { key: "rootLegalEntityId", value: rootLegalEntityId, variant: "blue" },
44295
- { key: "Locale", value: i18n.locale, variant: "blue" },
44296
- { key: "Language", value: i18n.languageCode, variant: "blue" },
44297
- rootLeData && {
44298
- key: "rootLegalEntityType",
44299
- value: rootLeData.type,
44300
- variant: "blue"
44301
- }
44302
- ].filter(Boolean);
44303
- const fetchRootLeData = () => {
44491
+ const [tab, setTab] = useState("metadata");
44492
+ const metadata = {
44493
+ sdkVersion: "3.41.6",
44494
+ locale: i18n.locale,
44495
+ rootLegalEntityId
44496
+ };
44497
+ const experiments = listToRecord(valuesOf(ExperimentNames), isExperimentEnabled);
44498
+ const settings = listToRecord(valuesOf(SettingNames), getSetting);
44499
+ const taskStatuses = useTaskStatuses();
44500
+ const fetchLegalEntityData = async () => {
44304
44501
  if (!getRootLegalEntity) return;
44305
- getRootLegalEntity().then(setRootLeData).catch(logger.error);
44306
- };
44307
- const uboDetails = ((_a = rootLeData == null ? void 0 : rootLeData.entityAssociations) == null ? void 0 : _a.map(
44308
- ({ name, type, jobTitle }) => (
44309
- // If `name` is undefined, replace the tuple with `null` to easily filter it out later. Checking this to ensure that the 'data' for DebugTable always has a keyName.
44310
- name ? [name, type, jobTitle] : null
44311
- )
44312
- ).filter(
44313
- (item) => item !== null
44314
- )) ?? [];
44315
- const handleToggleRootLeData = () => {
44316
- if (!isRootLeDataEnabled) {
44317
- fetchRootLeData();
44318
- } else {
44319
- setRootLeData(void 0);
44320
- }
44321
- setIsRootLeDataEnabled(!isRootLeDataEnabled);
44502
+ const rootLegalEntity = await getRootLegalEntity();
44503
+ const data = {
44504
+ rootLegalEntity,
44505
+ rootLegalEntityType: rootLegalEntity.type
44506
+ };
44507
+ setLegalEntityData(data);
44508
+ return data;
44322
44509
  };
44323
44510
  const copyToClipboard = async () => {
44324
44511
  const toCopy = {
44325
- sdkVersion: "3.41.4",
44326
- experiments: Object.fromEntries(allExperimentsWithValues),
44327
- settings: Object.fromEntries(allSettingsWithValues)
44512
+ metadata,
44513
+ experiments,
44514
+ settings,
44515
+ taskStatuses,
44516
+ legalEntityData: await fetchLegalEntityData()
44328
44517
  };
44329
- if (getRootLegalEntity) {
44330
- toCopy.rootLegalEntity = await getRootLegalEntity();
44331
- }
44332
44518
  await window.navigator.clipboard.writeText(JSON.stringify(toCopy, null, 2));
44333
44519
  setDebugInfoCopied(true);
44334
44520
  setTimeout(() => {
44335
44521
  setDebugInfoCopied(false);
44336
44522
  }, 5e3);
44337
44523
  };
44338
- const header = /* @__PURE__ */ jsxs("div", { className: "adyen-kyc-debug-modal__header", children: [
44524
+ const changeTab = (tab2) => {
44525
+ if (tab2 === "legalEntityData") {
44526
+ fetchLegalEntityData().catch(logger.error);
44527
+ }
44528
+ setTab(tab2);
44529
+ };
44530
+ const header2 = /* @__PURE__ */ jsxs("div", { className: "adyen-kyc-debug-modal__header", children: [
44339
44531
  /* @__PURE__ */ jsx("h1", { children: "Debug" }),
44340
44532
  /* @__PURE__ */ jsx(
44341
- InputText,
44533
+ Tabs,
44342
44534
  {
44343
- name: "search",
44344
- value: searchTerm,
44345
- classNameModifiers: ["search"],
44346
- onInput: (e) => setSearchTerm(e.target.value),
44347
- placeholder: "Search for Experiments/Settings 🔎",
44348
- trimOnBlur: true,
44349
- spellCheck: false,
44350
- "aria-label": "Search experiments or settings",
44351
- "aria-invalid": false
44535
+ activeTab: tab,
44536
+ onChange: changeTab,
44537
+ tabs: [
44538
+ {
44539
+ name: "metadata",
44540
+ label: "Metadata"
44541
+ },
44542
+ {
44543
+ name: "experimentsSettings",
44544
+ label: "Experiments & Settings"
44545
+ },
44546
+ {
44547
+ name: "taskStatuses",
44548
+ label: "Task Statuses"
44549
+ },
44550
+ {
44551
+ name: "legalEntityData",
44552
+ label: "Legal Entity Data"
44553
+ }
44554
+ ]
44352
44555
  }
44353
44556
  )
44354
44557
  ] });
44355
- const footer = /* @__PURE__ */ jsxs("div", { className: "adyen-kyc-debug-modal__footer", children: [
44356
- /* @__PURE__ */ jsxs("div", { children: [
44357
- /* @__PURE__ */ jsx(
44358
- Button,
44359
- {
44360
- label: "Copy debug info",
44361
- "aria-label": "Copy debug info",
44362
- icon: "document",
44363
- onClick: () => {
44364
- copyToClipboard().catch((error) => {
44365
- logger.error("Error copying to clipboard:", error);
44366
- });
44367
- }
44368
- }
44369
- ),
44370
- debugInfoCopied ? /* @__PURE__ */ jsxs("span", { className: "adyen-kyc-debug-modal__footer--copy-status", children: [
44371
- /* @__PURE__ */ jsx(Icon, { name: "check" }),
44372
- " Copied!"
44373
- ] }) : void 0
44374
- ] }),
44558
+ const footer = /* @__PURE__ */ jsx("div", { className: "adyen-kyc-debug-modal__footer", children: /* @__PURE__ */ jsxs("div", { children: [
44375
44559
  /* @__PURE__ */ jsx(
44376
44560
  Button,
44377
44561
  {
44378
- icon: isRootLeDataEnabled ? "show" : "hide",
44379
- iconPosition: "left",
44380
- "aria-label": isRootLeDataEnabled ? "Hide LegalEntity Data" : "Show LegalEntity Data",
44381
- label: isRootLeDataEnabled ? "Hide LegalEntity Data" : "Show LegalEntity Data",
44382
- onClick: handleToggleRootLeData
44383
- }
44384
- )
44385
- ] });
44386
- return /* @__PURE__ */ jsx(Modal, { size: "fullscreen", header, footer, onClose: onExit, children: /* @__PURE__ */ jsxs(Fragment, { children: [
44387
- /* @__PURE__ */ jsx("div", { className: "adyen-kyc-debug-modal__meta", children: /* @__PURE__ */ jsx("table", { children: /* @__PURE__ */ jsx("tbody", { children: debugModalMetaData.map(({ key, value, variant }) => /* @__PURE__ */ jsx("tr", { children: /* @__PURE__ */ jsxs("td", { children: [
44388
- /* @__PURE__ */ jsx("span", { className: "adyen-kyc-debug-modal__table-key", children: key }),
44389
- /* @__PURE__ */ jsx(Tag, { variant, className: "adyen-kyc-tag--large", children: value })
44390
- ] }) }, key)) }) }) }),
44391
- /* @__PURE__ */ jsxs("div", { className: "adyen-kyc-debug-modal__content", children: [
44392
- rootLeData ? /* @__PURE__ */ jsxs(Fragment, { children: [
44393
- /* @__PURE__ */ jsx("h2", { children: "Legal Entity Data" }),
44394
- /* @__PURE__ */ jsx("pre", { children: JSON.stringify(rootLeData, null, 2) })
44395
- ] }) : void 0,
44396
- (uboDetails == null ? void 0 : uboDetails.length) ? /* @__PURE__ */ jsx(DebugTable, { data: uboDetails, keyHeading: "Decision Makers", searchTerm }) : "",
44397
- /* @__PURE__ */ jsx(
44398
- DebugTable,
44399
- {
44400
- data: allExperimentsWithValues,
44401
- keyHeading: "Experiments",
44402
- searchTerm
44562
+ label: "Copy debug info",
44563
+ "aria-label": "Copy debug info",
44564
+ icon: "document",
44565
+ onClick: () => {
44566
+ copyToClipboard().catch((error) => {
44567
+ logger.error("Error copying to clipboard:", error);
44568
+ });
44403
44569
  }
44404
- ),
44405
- /* @__PURE__ */ jsx(DebugTable, { data: allSettingsWithValues, keyHeading: "Settings", searchTerm })
44406
- ] })
44570
+ }
44571
+ ),
44572
+ debugInfoCopied ? /* @__PURE__ */ jsxs("span", { className: "adyen-kyc-debug-modal__footer--copy-status", children: [
44573
+ /* @__PURE__ */ jsx(Icon, { name: "check" }),
44574
+ " Copied!"
44575
+ ] }) : void 0
44407
44576
  ] }) });
44577
+ return /* @__PURE__ */ jsx(Modal, { size: "fullscreen", header: header2, footer, onClose: onExit, children: /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs("div", { className: "adyen-kyc-debug-modal__content", children: [
44578
+ tab === "metadata" ? /* @__PURE__ */ jsx(DebugMetadata, { metadata }) : void 0,
44579
+ tab === "taskStatuses" ? /* @__PURE__ */ jsx(DebugTaskStatuses, { taskStatuses }) : void 0,
44580
+ tab === "experimentsSettings" ? /* @__PURE__ */ jsx(DebugExperimentsAndSettings, { experiments, settings }) : void 0,
44581
+ tab === "legalEntityData" ? /* @__PURE__ */ jsx(DebugLegalEntityData, { legalEntityData }) : void 0
44582
+ ] }) }) });
44408
44583
  };
44409
44584
  const DebugWrapper = ({
44410
44585
  rootLegalEntityId,